4

The Apache 2.0 license defines (emphasis added):

"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).

Then, article 4.a says:

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

Suppose I'm developing an app which uses a library distributed under the Apache 2.0 license. The distribution channels are the official Android and Apple app stores. My users download, install and manage my app entirely through those channels. As a result, there's never a point in which I'm able to provide any kind of documentation to my users except by one of two means:

  1. In some view inside the app itself or

  2. in the source code, available at its GitWhatever repository.

Now, the app is open source (MIT license), and I can include anything in the source code package that I want. My concern is if I would need to implement functionality in the app itself to display the Apache 2.0 license to users of the app, since I have no other way of providing it to them in the Work in its Object form.

In case it might matter, the Apache 2.0 code in question is not just referenced in the app's build profile (package.json), but is an actual copy, slightly modified. A copy of the Apache 2.0 license already exists in the source code package and the changes are properly denoted as per the Apache 2.0 license.

My concern regards if and how to provide the app's users with the license, given that the distribution channels of the Work in its Object form are out of my control, i.e. whether this scenario requires me to extend the app's functionality to show the license to the end-users of the app, or if I've fulfilled the requirement by including it in the source code package.

Hope I'm being clear. Thanks in advance.

5

Combining the two articles, we see clearly that

You must give any other recipients of the work of authorship, whether in Source or Object form, a copy of this License

For the avoidance of doubt: yes, this is a requirement.

It is also widely observed in the free phone software world. Apps generally have an option somewhere down under the menus that either displays, or links you through to, a copy of the licence under which the app was conveyed, or (in the case of works incorporating free third-party code under a different but compatible licence, which I note would include yours) relevant licences. I don't propose to go into the question of whether linking is sufficient except to note that including the full text isn't very painful, so you might as well. Going alphabetically through the apps on my phone that have such an option, I find:

  • Agram: info -> about app
  • Appbak: (column of three dots) -> view license
  • APV PDF Viewer: (column of three dots) -> About
  • Barcode Scanner: (column of three dots) -> Help -> Privacy policy, Legal and License information
  • Bitcoin Wallet: (column of three dots) -> Settings -> About
  • Browser: (column of three dots) -> Settings -> About Browser -> Legal information -> Open-source licences

I could go into C, but hopefully you get the idea (there were two other applications in A and B that didn't seem to have any such option). It is very normal practice, if not completely ubiquitous, to include this information inside the app as described.

| improve this answer | |
  • Thank you for the response. I'm sure it's normal, and I'm quite aware of what effort is involved. But is it required? Am I in violation of the license if I do not include it as a view available to the end user in the output binary of my app, but only the source tree? – Teekin Apr 16 at 22:29
  • @Teekin see the first para of my answer: yes, it is required. I've added a short second para to make that even more explicit. – MadHatter Apr 17 at 5:13
  • Thank you for clearing that up. This still leaves me confused as to all the unmodified libraries that are merely included in the build, i.e. used by the app but not in the repo. Do I need to list the licenses of those as well? It seems unrealistic and in fact not very useful but it appears to me that strictly speaking it's also required. I'm using about 600 packages. – Teekin Apr 17 at 14:02
  • If you are distributing those libraries, then yes, you do. – MadHatter Apr 17 at 14:38
  • Comments are not for extended discussion; this conversation has been moved to chat. – MadHatter Apr 26 at 10:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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