I have a private (i.e. no chance of sharing the source) and commercial application, now I would like to use a library which is under the Apache 2.0 license.

I've read the Apache license and FAQ section, but I am not clear about this.

Is it the same as GPL3 which forces the application to provide the source code?

  • 4
    Note that Android, except the kernel, is under Apache 2.0 license and most vendors do not provide sources of their customizations. – Jan Hudec Nov 7 '14 at 15:02
  • 3
    See which licenses require including source code by looking at the "Include Source" column on this table in Wikipedia. – Basil Bourque Nov 7 '14 at 18:31

The Apache 2.0 license is very different from the GPL license, in at least two aspects:

  1. Under the Apache 2.0 license, you are allowed to distribute binaries without providing the source code with it. (Under the GPL, you must always provide the source code)
  2. The GPL license carries over to the entire application. The Apache 2.0 license does not and applies only to those parts that explicitly state they fall under the Apache 2.0 license.
    This means that if you use a library with Apache 2.0 license in your project, the permissions/rights/obligations from the Apache 2.0 license do not suddenly carry over to your code.

To distribute a (binary or unmodified) copy of an Apache 2.0 licensed library with your application, you must meet two requirements:

  • The users of your 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.
  • The users of your application must receive a copy of the NOTICES file that came with the library, if there is such a file.

The Apache 2.0 licence is completely unlike GPL. In particular, it 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:

So provided you meet the conditions listed (which are generally not onerous), then you do not have to redistribute your source code.