GPL 3 in the community?

i just noticed that the elgg community does not support GPL 3 licenses for plugins. when i was reading about licensing on github i thought that GPL3 was the best one for me at present. is there a reason why GPL 3 isn't an option here yet?

  • Because you haven't yet made a PR for adding it? :)

    Commit history of the community_plugins plugin doesn't have any details. Current options have just been dumped there in the very beginning.

  • oh ok, i thought there might be some kind of political reason for it's omission. the project edit page is a bit confusing in that it offers a list to choose from and then has a note saying that you must choose GPL2!

    anyway, i have created a pull request to add GPL3 here:

  • Well, it doesn't say it must be GPL2, but it must be *compatible* with it.

    Which in fact explains absence of GPL3 option as they are not compatible. Now the question is, why we're requiring compatibility with GPL2.

  • right, ok - yes. i vaguely recall this topic arising years ago and an explanation was given that i didn't agree with. i'm not sure if it was cash, brett or someone else, but i wasn't able to find the thread when searching the community here.

  • I remember this conversation as well, it was due to the incompatibility of GPL3 with GPL2.  I don't know the nuances of the licenses well enough to know what those incompatibilities are or what it means for the community.

  • License question... Oh Oh! Delicate matter.

    The incompatibility between GPLv2 and GPLv3 comes from the clauses (both in v2 and v3) that you are NOT allowed to require any additional restrictions when distributing any combined work (i.e. re-distribution any modified code). These clause is both in v2 and v3. BUT: GPLv3 contains ADDITIONAL requirements compared to GPLv2!!! So, you would be in violation of either v2 or v3 regardless what you do...

    The GPLv2 has some "loophole" allowing you to license under "GPLv2 or later". But the "or later" is not used by all (e.g. the Linux kernel is definitely only "GPLv2" only). The "or later" would mean that a change to GPLv3 is possible (at least I think it is automatically) without asking permission for a license change by ALL copyright holders.

    Question 1: what exactly is used by Elgg core - "GPLv2" or "GPLv2 or later"?

    Question 2: is GPLv3 really needed? It might be quite a hassle with different licenses used by Elgg core and plugins. If more than 2 licenses are combined (even 2 might already be incompatible with each other), it can easily result in a copyright violation. And what are the benefits of GPLv3? For one there is kind of a - very weak - anti-DRM clause (you still can use DRM stuff with GPLv3 but if someone else breaks the DRM it's not a copyright violation because you simply haven't implemented an effective DRM mechanism... great!!!). There's also a patent clause in GPLv3 (but I haven't understood what exactly is allowed not allowed here unfortunately).

    Personally speaking, I don't like the GPLv3 for one specific reason: if I release code under GPLv3 anyone is allowed to change the license to AGPLv3 (Affero GPLv3) without asking permission! The AGPLv3 fixes some loophole ("ASP loophole") in the GPLv3 with regards to usage of code in hosting environments / as Application Service Provider (ASP) - in other words: web applications (hmm... what's Elgg?). The AGPLv3 requires the possibility to for any user / visitor to download all the sources of the software used on a site (the AGPLv3 stuff at least - and I don't know what hassle it might become when mixing licenses). So, you would have to add either a download section to your site or you would have to provide (working) links to places where people can download the stuff (and I don't know if a simple link to the community site would be sufficient). In my eyes the AGPLv3 is kind of "too free" of a license due to this requirement. I simply don't want to (prominently visible?) add such a section knowing that 99.99% of people don't care anyway and I also don't want users of my code be required to provide such a section (surely not to be blamed by them if they don't (maybe not knowing they need to) and someone attacks them for violating the AGPLv3).

  • thanks for the info - i had not correctly understood the difference between GPL 2 and 3. the gnu page that describes the licenses is here:

    they recommend there to use GPL3. here's their table of compatibility showing that the 'GPL2 or later' versions are fine with GPL3:

    i actually misunderstood GPL2 as not being 'copyleft'.. so since i know now that GPL2 is copyleft, i am not particularly bothered by using GPL3.

  • so the tidypics_plus plugin i have created here includes the isotope package which is GPL3, so as i understand that means i can't upload tidypics_plus to elgg since i cannot list plugins as being GPL3. anyone got a comment on this?

  • to clarify, i meant that i can't upload tidypics_plus to the elgg community because part of it is GPL3... unless i am misunderstanding something, this appears to be an issue that needs a resolution.

  • License question... Oh Oh! Delicate matter.

    Yes, indeed! 

    Question 1: what exactly is used by Elgg core - "GPLv2" or "GPLv2 or later"?

    Elgg uses the GPLv2 license, i.e., not the "or later" version. An MIT version is available, but it covers ONLY the core. Everything under mod/ is GPLv2 only. 

    A GPLv2 license is required because of the linking issue. At the simplest and strictest interpretation, linking to GPLv2 code from a non-GPLv2-compatible code is in violation of the GPLv2. This is the entire reason the AGPL, LGPL, and GPLv3 were created. Since Elgg is GPLv2, plugins that use Elgg must also be compatible with GPLv2 or they are in violation of the license.

    Another issue is that code cannot be relicensed without the consent of the original copyright holders. Tidypics has gone through many authors and was originally released GPLv2 without the "or later" clause. This means that you cannot re-release it as GPLv3 without the copyright holders agreeing unless you replace all their code.

    With all licensing questions, all of this is up to debate until a court makes a ruling. My personal opinion is that linking to GPLv2 software from non-GPLv2 software is fine, but as a community we have to be sensitive to the stricter interpretation. 

    For the version of Tidypics hosted here, could I offer a solution of not bundling the GPLv3 lib, but requiring users to either download it themselves (manually or via composer)? Alternatively, you could host your own fully built version on GitHub and link to it from the readme. This is similar to what we do with Elgg MIT.