backdrop-ops / backdropcms.org

Issue tracker for the BackdropCMS.org website
https://backdropcms.org
25 stars 21 forks source link

Clarify "or later" for GPLv2 in Backdrop Contributed Project Group Agreement #50

Open kreynen opened 9 years ago

kreynen commented 9 years ago

The updated https://github.com/backdrop-ops/contrib reads well, but the "or later" license is now only used in reference to Backdrop itself and "additional code, libraries, images, fonts or other assets". I don't think it's clear that any module or theme code committed to Backdrop Contributed Project Group must be licensed as GPLv2 or later vs. just GPLv2.

You want both Backdrop core and contrib to have the option of being distributed GPLv3, right? Getting the "or latter" right is really important for both future compatibility and allowing distributions that include code with licenses only compatible with GPLv3 today.

The way Drupal.org can make the statement that "everything downloaded from Drupal.org is GPLv2 or GPLv2 compatible" while still being able to offer Drupal distributions as GPLv3 is through https://www.drupal.org/git-repository-usage-policy. Everyone who has committed code to CVS and GIT has agreed to the GPLv2 or later licensing policy. The packaging script running on Drupal.org includes only adds the GPLv2 license so what we've downloaded from Drupal.org is really only licensed as GPLv2 with the option of distributing it under GPLv3 if it was hosted somewhere other than Drupal.org.

A big reason to get this right is that GPLv3 isn't actually compatible with GPLv2.

https://www.gnu.org/philosophy/license-list.html#GNUGPL

"Please note that GPLv3 is not compatible with GPLv2 by itself. However, most software released under GPLv2 allows you to use the terms of later versions of the GPL as well."

I know. WTF?!? But in order to distribute contributed modules with Backdrop and additional Apache2 or AGPLv3 code, everything must be be GPLv2 or later... not strictly GPLv2. It's also worth reading http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#VersionTwoOrLater

By requiring users to agree to a GPLv2 or later policy when joining the Backdrop Contributed Project Group, you are achieving the same thing Drupal has with their Git Usage Policy. While neither project can control how users license this code outside of specific repositories they control (I can legally make my fork of Drupal or Backdrop GPLv3), the GPLv2 or later requirement as a policy is a powerful tool. I avoids having to go back to every contributor if you ever wanted to move Backdrop and all of the modules and themes in the Backdrop Contributed Project Group to GPLv3 in the future and keeps contrib compatible with other popular open source licenses for specific distributions.

quicksketch commented 9 years ago

Thanks @kreynen! It all makes sense to me. Could you file a PR against the README.md with the changes you're suggesting?

quicksketch commented 9 years ago

We also need to update the example at https://github.com/backdrop-ops/contrib/blob/master/examples/README.md.