0

Suppose that there is a library (Lib A) licensed under Apache 2.0

Can a develop[er wishing to create a new library (lib B) take pieces of the source code from Lib A and put it into the source for Lib B as it is being written, provided that proper credit is given?

Can a developer instead create a modified version of Lib A (say Lib C). Is there any difference under copyright or contract law?

Does it make any difference if Lib B or Lib C are only for individual use, or if the developer plans to distribute the new library in either case?

1

Yes

Either can be done legally.

The Apache 2.0 license provides that:

  1. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

...

  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:

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

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

4(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; and

4(d) 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, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.

You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.

The Wikipedia article on the license says:

The Apache License is permissive; unlike copyleft licenses, it does not require a derivative work of the software, or modifications to the original, to be distributed using the same license. It still requires application of the same license to all unmodified parts. In every licensed file, original copyright, patent, trademark, and attribution notices must be preserved (excluding notices that do not pertain to any part of the derivative works). In every licensed file changed, a notification must be added stating that changes have been made to that file.

A modified version of a library would be a derivative work. So would a new library that used significant amounts of source code copied from an existing library. The Apache 2.0 license allows a developer to create either kind of derivative work, and release it under any license provided that the terms (particularly section 4) are complied with, which would require preserving copyright and attribution statements from the original, and making it clear that the parts from the original are under the Apache 2.0 license.

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.