Question

I'm creating an Android app which is soon ready for release.

I'm just going to implement a tab system using this library. I read that it is licensed under the Apache 2.0 License. I've never used any licensed libraries for apps/programs/games that I've distributed (because I haven't distributed any), so I don't have any experience with licenses and licensed libraries, so I wonder if there are anything to keep in mind when distributing an app which uses a library licensed under the Apache 2.0 License.

Keep in mind

  • I asked this question at StackOverflow, but I was recommended to move it to Programmers instead, but to check the help center if this site accepted this kind of question before I posted. I did, and as far I could see and understand of what I read, this kind of question is allowed.
  • I have read several of the Similar Questions, and found answers for some of my questions, but there are still some things I wonder, and that I want to be clear so I don't make any mistakes.

These are the remaining questions

  • I read that "the users of my application must receive a copy of the Apache 2.0 License. To avoid confusion, you should also state which parts of the distribution the license applies to." Is it enough to just put a link to the Apache 2.0 License on the "About app" page in the app, and tell the name of the licensed library together with the link?
  • Continuing on the above question: How do I need to "state which parts of the distribution the license applies to." Does that just mean that I shall tell which part of my app which is licensed (in other words, that the library is the licensed part)?
  • Am I allowed to modify the source of the library, then include the modified version in my app and sell it?
  • (this has nothing to do with licensed libraries) Do I need to apply a license for my app? If yes, which one is recommended? Will my app be protected by copyright automatically when I upload it to Google Play Store? What is recommended to protect it from "copycats"?

Is there any recommendations or guidelines? I would like to know so that I don't make any mistakes and have to pay fines or get in trouble or something like that. Thanks!

UPDATE: I've read amon's answer and found some more questions:

  • As I understand from what amon said, my app is protected by copyright automatically. He also said that I can register the copyright and that that might give me some advantages in some jurisdictions. Where do I register the copyright?
  • What parts of the license do I have to print out on the "about"-page? Is it enough to put this (from the Apache 2.0 Library website) below the information text of the library and put a link to a separate page (in the app) with the whole Apache 2.0 License?:

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

More questions might come.

Was it helpful?

Solution

There are well-established patterns for attributing the libraries you use. In general, you put this attribution in the same place where you'd put your copyright notice.

  • In a desktop application: Often there is a menu item “Help > About”, which displays a small info window with the application name, version number, copyright, and developer contact. This would be a good place to display licenses of used libraries.

  • In a mobile app: In your settings menu you might have an info item “About” which contains the same info as the above case, or an “Open Source” item that lists used open-source libraries and their licenses.

You should also list these licenses along with your terms of service or your end user license agreement, especially when these open-source licenses confer special priveleges to the user.

I would expect the “about”-page to look somewhat like this:

My Application v1.2.3

© 2015 my company

Found a bug? Please [help us fix it](opens bug report form).

By using this application, you agree to our [terms and services](opens dialog).

This app uses the following open-source libraries:

Library Foo [website]

Library Foo copyright and license

Library Bar [website]

Library Bar copyright and license

You should spell out the whole license and not rely on external websites – all the legal information should be accessible without internet connectivity. Of course you can design the page so that the user won't have to scroll endlessly, though many writers of legal text seem to be fond of endless repetitive blathering IN ALL CAPS FOR WORSE LEGIBILITY.

Before accepting a license, make sure to read and understand it. Some licenses also have an official FAQ page that addresses many common questions. However, the Apache 2.0 license is fairly short and simple. Here is a relevant excerpt:

4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:

  • You must give any other recipients of the Work or Derivative Works a copy of this License; and
  • You must cause any modified files to carry prominent notices stating that You changed the files; and
  • […]
  • If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, […]

You may add Your own copyright statement to Your modifications and may provide additional or different license terms […], provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

If the license allows you to modify the library and distribute the modified library, you may sell it. The Apache 2.0 license does allow this within certain restrictions. E.g. you would have to clearly list your changes to the original library, and attribute the original library even when your modified library uses a different license.


Regarding your “do I need a license”/“how do I get copyright” question:

You automatically own copyright for all your creative works, but you should clearly state your copyright by listing the years of publication and the name of the copyright holder. E.g. if I published a program in 2012 and issued updates in 2014 and 2015, I would write “© 2012, 2014–2015 amon”. In addition to this, formally registering your copyright can have some advantages in some jurisdictions.

The default license for everything copyrighted is “all rights reserved”. However, by distributing an app you probably imply a license to your users allowing them to use your app. Also, by using a market place such as the Google Play Store you accept their terms of service, which may subject you to certain requirements and give the users certain permissions – but I haven't read the relevant terms. It will probably make sense to provide your own terms of service in addition to any implicit licenses. However, you do not have to pick an existing open-source license.

Your legal requirements when publishing an app don't end here. Especially when you collect, store, or transmit data, you are probably subject to various data protection laws around the world. Note that this might happen even if you are not collection this data as part of the normal workings of this app, but “only” for advertising, analytics, or crash reporting.

If there is any way your app could make you money, your business plan should include talking to a specialized lawyer about terms of service, licenses, and privacy policies.

Licensed under: CC-BY-SA with attribution
scroll top