Overview - pagure-forgefed - Pagure.io

Updated a month ago but the context in which this software is being developed is unclear. Since zPlus is a coauthor of forgefed, it may be a late followup to the https://nlnet.nl/project/ForgeFed/ grant from 2020?

irc.libera.chat#peers chat log today

(10:52:10) dachary: zPlus: good morning! I was studying your code at https://notabug.org/zPlus/forgefed/src/master/forgefed/activitypub.py and noticed it is licensed under GPL-v2.0 only. Would you consider dual licensing it under AGPL-v3.0 as well ?
(10:56:57) bill-auger: a GPL/AGPL dual license would not make any sense - nor would a v2/v3 dual license - at least one of them would shadow the others
(10:58:09) bill-auger: 2.0 only is a poor choice though; but sometimes it is necessary - perhaps one of its dependencies is GPL2-only
(11:02:02) zPlus: I chose the license to match pagure’s
(11:17:27) dachary: dual licensing it under AGPL-v3.0 would allow it to be included in AGPL-v3.0 licensed software as well as GPL-v2.0, hence my question
(11:20:04) dachary: zPlus: an alternative would be to license it under GPLv2+ (i.e. or any later version). That would allow it to be included in GPLv2.0-only as well as GPLv2.0+, AGPLv3.0-only, AGPLv3.0+, GPLv3.0-only, GPLv3.0+
(11:21:32) dachary: but I’m not advocating that you should do it :slight_smile: Just asking about your own preference. Since you’re the author, it ultimately is your choice.
(11:25:28) Digit: is that normal, for GPL2+later to also go to AGPLs? hadnt realised
(11:54:15) zPlus: Digit: AFAIK both licenses do not allow relicensing from one to the other, but should have clauses that allow them to be linked together
(11:54:33) zPlus: I mean “linked” during compilation
(12:10:34) bill-auger: IIRC, a GPLv2-or-later can be upgraded to GPLv3-or-later by anyone; and GPLv3-or-later can be upgraded to AGPLv3-or-later by anyone
(12:11:21) bill-auger: so in effect, a GPLv2-or-later can be upgraded to AGPLv3-or-later transitively - its not “re-licensing” because the GPLv2 option would remain upstream
(12:12:27) bill-auger: but downstreams could effectively re-license their copies as AGPLv3-or-later
(12:19:22) bill-auger: that probebly does not help in this case though - if pagure is GPLv2-only, and if the forge-fed code is only useful while running in the pagure process, then the forge-fed code can only be used under the GPLv2 - the usual upgrade options would be invalid
(13:24:05) dachary: Most of https://notabug.org/zPlus/forgefed/src/master/forgefed/activitypub.py is not pagure specific and could be copy / pasted elsewhere, as long as the licences are compatible. There are other parts of zPlus work that are generaly useful for a python based ActivityPub implementation of forgefed.
(13:30:22) bill-auger: that was my original idea too - IIRC kalithea is also python
(13:34:06) bill-auger: i also remember that the spec was agreed to be CC0 - i added the general python functions i wrote, directly to the spec repo, under that presumption
(13:34:50) bill-auger: under the presumption that all reference implementation would be in the spec repo, all under the same CC0
(13:38:25) bill-auger: so that would be my suggestion for a license change - if the code is not fully-integrated into a pagure source-tree, but could be generally useful, then i would move it into the spec repo, and remove the GPL

The ActivityPub protocol is implemented using flask routes (see followers or inbox) and does not rely on an ActivityPub module that would help with implementing the protocol (for instance verifying signatures). There is a one test. The forgefed models are implemented as classes derived from dict with a constructor that takes a pagure object in argument and fills the values of the dict.