Question

I am publishing an Android app to the Google Play Store soon and have some questions regarding the use of libraries licensed under Apache 2.0. I am also releasing the source code on GitHub. I am only using these libraries, not modifying them. To me, these are two separate concerns so I will address them separately.

The published Android app

It is my understanding that software using libraries licensed under Apache 2.0 must include a copy of the license and give attribution. If this is correct, I would package the Apache 2.0 license in my app and link it in an "About" section, where I list the libraries used and each of their licenses.

GitHub source code

I believe this is a different case than the published Android app because it could be considered redistributing licensed software. My repository does not include the actual .jar files of the libraries, so I don't believe I'm redistributing the licensed software. Those .jar files are merely referenced, and the code in my repository uses these libraries. If this is considered a redistribution, I would include the licenses of each library in the Git repository, and that would be enough. If it isn't a redistribution, then I believe I have no obligation to include the licenses.

Please let me know if I am understanding the conditions of the Apache 2.0 license correctly and I will meet these conditions with my proposed solutions.

Was it helpful?

Solution

As a matter of courtesy, I would consider it appropriate to make a notation somewhere in your Github repository, to the effect of

This code uses [Library] which is licensed under the Apache 2.0 License, and can be obtained [here].

... irrespective of the licensing terms.

The Apache 2.0 license itself begins by defining some terms like "source," "object," "work" and "derived work." I won't repeat those definitions here, but suffice it to say that "source" means the source code, "object" means the executable library, "work" means the library in both source and object form, and "derived work" means a work that you have modified for your own purposes.

So, given that Apache defines "work" and "modified work" in terms of both source code and object code, the terms for redistribution are going to apply to both forms (i.e. the source code and the executable). This is further reinforced in the first paragraph of the Redistribution section, which states:

  1. 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:

Naturally, if you're not actually redistributing, these terms would not apply. I would consider that possibility unlikely for your published Android app, since it's going to need an executable version of the library in question or it won't work.

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