Many discussions happened regarding accepting copyleft contributions to forgejo:
From my understanding many people are in favor of accepting AGPLv3(+) contributions, while some people object. I compiled the following list of objections:
From what I gather, both objections do not hold for a GPL license (as it has been noticed, git is available under GPLv2 and is already used by everyone interacting with Forgejo).
Therefore I propose that Forgejo starts accepting contributions which are compatible with the GPLv3-or-later license.
Why the v3-or-later variant of GPL?
Since Forgejo may later accept AGPL contributions, v3 is necessary (there is no AGPL license compatible with GPLv2 as far as I know).
The -or-later part has been discussed and I believe that this paragraph of the license is protective enough:
The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
(it explicitely states that future differences are only permitted to address new problems or concerns)
Since Forgejo is exclusively accessed by the network, what new rights does it provides to its users?
As-is it will only provide more rights to people getting a modified Forgejo for self-hosting (not may people I think. Might be the case for projects like https://www.allspice.io which might propose self-hosting binary). However it prepares the path to eventually migrate to AGPL, once the compliance objection can be addressed.
What licenses are compatibles with GPLv3-or-later?
According to this wikipedia graph, projects having the following licenses can be linked/used in a GPLv3-or-later project (IANAL):
- GPLv3-or-later (obviously)
- GPLv2-or-later
- LGPL (2.1-only, 2.1-or-later, 3.0-only, 3.0-or-later)
- MPL-2.0
- Apache / MIT / BSD
Proposed timeline if this agreement is accepted
Since this change is significant, I would suggest letting at least 3-4 weeks for any objection I may have missed or incorrectly addressed.
Afterwards:
- The proposed blog post can be published
- The actual LICENSE of the project can be changed with the first merged PR which is not compatible with the current license
- Preparation work can be done to address the AGPL-compliance objection above (i.e.: provide a way for anyone self-hosting forgejo to be AGPL-compliant with the lowest effort possible)
- Once the above work has been merged, propose a new agreement to accept AGPL contributions
Many discussions happened regarding accepting copyleft contributions to forgejo:
- https://codeberg.org/forgejo/governance/pulls/20 [MISSION] on Forgejo accepting copyleft contributions
- https://codeberg.org/forgejo/discussions/issues/6 Relicensing Forgejo as copyleft
- https://codeberg.org/forgejo/meta/issues/86 [Discussion] Relicensing Forgejo as copyleft
- https://codeberg.org/forgejo/website/pulls/204 Forgejo welcomes copyleft contributions
From my understanding many people are in favor of accepting AGPLv3(+) contributions, while some people object. I compiled the following list of objections:
- lot of work/uncertainty to ensure you comply with it https://codeberg.org/forgejo/meta/issues/86#issuecomment-819747
- some company policy simply ban AGPL-licensed products (see [Google policy](https://opensource.google/documentation/reference/thirdparty/licenses) for instance)
From what I gather, both objections do not hold for a GPL license (as it has been noticed, `git` is available under GPLv2 and is already used by everyone interacting with Forgejo).
## Therefore I propose that Forgejo starts accepting contributions which are compatible with the GPLv3-or-later license.
**Why the v3-or-later variant of GPL?**
Since Forgejo may later accept AGPL contributions, **v3** is necessary (there is no AGPL license compatible with GPLv2 as far as I know).
The **-or-later** part has been discussed and I believe that this paragraph of the license is protective enough:
> The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
(it explicitely states that future differences are only permitted to address **new problems or concerns**)
**Since Forgejo is exclusively accessed by the network, what new rights does it provides to its users?**
As-is it will only provide more rights to people getting a modified Forgejo for self-hosting (not may people I think. Might be the case for projects like https://www.allspice.io which might propose self-hosting binary). However it prepares the path to eventually migrate to AGPL, once the compliance objection can be addressed.
**What licenses are compatibles with GPLv3-or-later?**
According to this [wikipedia graph](https://en.wikipedia.org/wiki/License_compatibility#/media/File:Floss-license-slide-image.svg), projects having the following licenses can be linked/used in a GPLv3-or-later project (IANAL):
- GPLv3-or-later (obviously)
- GPLv2-or-later
- LGPL (2.1-only, 2.1-or-later, 3.0-only, 3.0-or-later)
- MPL-2.0
- Apache / MIT / BSD
## Proposed timeline if this agreement is accepted
Since this change is significant, I would suggest letting at least 3-4 weeks for any objection I may have missed or incorrectly addressed.
Afterwards:
- The [proposed blog post](https://codeberg.org/forgejo/website/pulls/204) can be published
- The actual LICENSE of the project can be changed with the first merged PR which is not compatible with the current license
- Preparation work can be done to address the AGPL-compliance objection above (i.e.: provide a way for anyone self-hosting forgejo to be AGPL-compliant with the lowest effort possible)
- Once the above work has been merged, propose a new agreement to accept AGPL contributions