UP | HOME

Relicensing

Table of Contents

Relicensing from Apache-2.0 license to AGPL-3.0-or-latere

I found a particularly interesting project to contribute and it looked like it was unmaintained, thus I decided to give life back to it under my own terms, this means change the license and tinker with it. The project is asmrepl which is licensed under the Apache-2.0 (SPDX format) and I want to fork it under the AGPL-3.0-or-later.

You SHOULD read the articles mentioned resources section beforehand if you want to fully understand my babble (And to stop making it a babble).

DISCLAIMER

I am not, by any means, a lawyer; I also have not talked to any lawyer about this. This blog is just the way I think a relicensing should be done after reading information that I found in different sources.

Why AGPL?

Because user freedom and privacy should be respected in a world where big corporations take code from permissive projects and make them their own programs. Even though the GPLv3 license exists, it does not covered program that are run in servers (thus never conveyed explicitly), for this reason the AGPL was made to ensure user freedom when network servers are used.

Apache-2.0 requirements to relicense

I will comment sections of the Apache-2.0 license that are needed to take care to migrate to the AGPL license.

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

Every file should have a header with the license it is using, this is not a requirement but it is helpful when a project has either double license or is in transition to a new license (which is the case). Modifications can be added to the header of the file being modifying or to a central NOTICE file.

(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

I must keep any source code of any copyright-able thing that is not modifying, since I am modifying the project as whole I should not keep any thing related to the name "asmrepl", however I can use the project's name and author's name in the NOTICE file to give credit to the original project.

(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.

This states that a derivative work should have a NOTICE file if the project originally had a NOTICE file, but it states anything if the project did not have one, which in this case I added the file and added attribution to the original author and name, I also add attribution to the current name and how some files kept the old license since those files were not modifying.

Hardest part of the relicensing

  • Keep control over which files are under one license or the other.
  • AGPL code can be combine with Apache code, but not the inverse.
  • Change the license of a file since it has to be modify enough to be considered a "derivative work".

Resources