4

I'm working on an app for android. I found this project on GitHub licensed under Apache 2.0. I am planning to make modifications to the project and use it commercially. I am also planning to monetize it.

The Apache 2.0 license says:

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:

  (a) You must give any other recipients of the Work or
      Derivative Works a copy of this License; and

  (b) You must cause any modified files to carry prominent notices
      stating that You changed the files; and

  (c) You must retain, in the Source form of any Derivative Works
      that You distribute, all copyright, patent, trademark, and
      attribution notices from the Source form of the Work,
      excluding those notices that do not pertain to any part of
      the Derivative Works

Which gives rise to these questions:

  1. Do I need to provide credit (link back) to the original project?

  2. I understand that I need to provide a human-readable copy of the Apache 2.0 license in my app, but where do I do that?

  3. If I want to publish my app under a different license from Apache, how do I do that? Do I need to display my license on the same page as the Apache 2.0 license? I want to make it less confusing for the user.

  4. What does (b) in the Apache 2.0 license mean? My app has hundreds of activities (pages containing code). Do I need to specify what and where exactly I made changes?

  5. What does (c) mean in the Apache 2.0 license? I am lost.

  6. I am also using a bunch of different libraries in my project like dexter. Do I need to give a license and credit for each library I use?

1 Answer 1

2

When you want to publish a creative work such as an app, you need a license from all copyright holders – this includes the copyright holders of any libraries you include. Open source licenses such as the Apache 2.0 license allow any kind of use (including commercial use) as long as you follow the terms of the license. Often, the only condition of these licenses is that you provide suitable attribution.

As per clause 4 you may “provide additional or different license terms and conditions” so while you do have to show users the Apache license, you do not have to license your app under the Apache license. You do not have to choose any special license, as the default license is “all rights reserved”. If you want to provide your own license terms you would usually ask them to agree to an EULA before they sign up for your app.

The Apache license makes a distinction between the source code of a project, or its “object form” (for example, an executable or an installable app).

  • In the source code, you need to keep any legal notices intact, most importantly any copyright notices. If you make any modification to these files, you have to add a note about that to the file itself, i.e. add a Change Log within the file. This is what clauses 4(b) and 4(c) are about. You do not have to list the changes, you only have to record the fact that you modified the file.

  • In any case, you must give users a copy of the license as per clause 4(a) and of the NOTICE file, if any exists, see clause 4(d). But in case of object form, users can't look at the source code. If a software has a manual, that manual would be a suitable place.

    But GUI software often does not have manuals. It is therefore customary to make these notices accessible in a common place within the app, e.g. “Help → About this software” for a desktop app or “Settings → Open Source” for an Android app.

    In general, wherever you mention your own copyright of the app you should also mention that you have licensed some parts.

Common browsers provide a good example of how to attribute open source libraries.

  • Google Chrome: chrome://credits/ shows the license and a link to the homepage of each used project. It includes a number of Apache-2 licensed software, though most of these only show the project's license file and do not show actual copyright notices (this is technically fine by the terms of the Apache-2 license).

    Desktop: Help → About Google Chrome → open source software
    Mobile: Settings → About Google Chrome → Legal Notices → Open Source Licenses

  • Firefox: about:license. What Firefox does very well is trying to list the files in the code base to which the license applies.

    Desktop: Help → About Firefox → License Information
    Mobile: Settings → Mozilla Firefox → About Firefox → License Information

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.