backdrop-contrib / civicrm_blocks

Insert a CiviCRM Contribution page into a Backdrop Layout via a block.
GNU General Public License v2.0
0 stars 0 forks source link

Licensing questions #3

Closed laryn closed 5 years ago

laryn commented 5 years ago

This module is mostly taken from core Backdrop code (it extends the Block class and I used the BlockText class as a model). However the concept for some of the key functionality is informed from the core CiviCRM Wordpress integration. (For example, the use of CiviCRM's "invoke" and capturing a PHP buffer to a variable.)

If I can, I'd like to license this as GPL-2.0 or later (Backdrop's standard), so I can release as a standard Backdrop module and have it show up in the Project Browser, etc. But does borrowing inspiration from CiviCRM as noted above mean that I have to license as Affero-GPL-3.0?

laryn commented 5 years ago

I also note that there is an exception to allow GPL-3.0 code to be uploaded to contrib, but I'm not sure that includes Affero-GPL-3.0.

kreynen commented 5 years ago

Obligatory IANAL disclaimer. I also haven't worked with CiviCRM is several years. My understanding is that even though CiviCRM is licensed as AGPL-2.0, the modules and plugins to integrate with the various CMSes use the license of the CMS and are treated as independent projects bundled with the core CiviCRM project.

I lobbied for the GPL-3 option n for Backdrop contrib projects, but mainly so they could include Apache-2.0 libraries.

I think what you are asking is more about when a new module or plug-in is inspired by an existing module vs. reusing enough code that it would require inheriting a license.

That is a grey area. Drupal's policy is that ALL module and theme projects are derivates of Drupal core. That is not a common policy and it's unclear if this is legally enforceable. It is something the project has been able enforced by maintaining their own git servers and now using their own Gitlab instance.

Because Backdrop wants to maintain compatibility with Drupal and allow code to move back and forth between the projects, it makes sense to maintain the dual GPL-2.0 and GPL-3.0 licensing.

It's easier for me to think about this situation using a code snippet someone shared on Stack Exchange. I think most people would agree that you can take those snippets and alter them to work with your project without running into any licensing issues.

IMHO, being inspired by a CiviCRM or WordPress project and incorporating a similar approach into a new module for Backdrop could still be licensed as GPL-2.0 and GPL-3.0. I would only be worried if I was working the project and doing a minimal find and replace refactor.

There are only so many ways some functionality can be written in PHP. Because PHP is so popular, my guess is that if you look long enough you'll find something similar licensed with every popular license.

laryn commented 5 years ago

Thanks @kreynen! I'll see if I can get a response from a current CiviCRM team member or core developer related to the CiviCRM licensing. I'm thinking it will be okay to use GPL-2.0 or later but just want to make sure.

herbdool commented 5 years ago

The code you're borrowing is so minimal I wouldn't worry. I would just license it as GPL 2. What's the worst that can happen? I don't think anyone at CiviCRM is going to be up in arms.

christianwach commented 5 years ago

@laryn Likewise my IANAL disclaimer - just popped by to say that my WordPress plugins for CiviCRM are all GPL2+ licensed - example here. It's my understanding that this has no compatibility issues with the Affero-GPL license that CiviCRM uses. As a result, my plugins are listed in the WordPress Plugin Directory - example here.

In a wider context, it also seems that Affero-GPL projects can be included in GPL2+ projects without issues - e.g. there have been no licensing problems flagged by TPTB at the WordPress Plugin Directory which would prevent CiviCRM itself being listed there. (There are other reasons why CiviCRM isn't listed there yet, but they aren't related to licensing.) I can't seem to find the details of the licensing review right now, but @kcristiano may have the wiki page bookmarked.

IIRC, the main point of Affero is that it enhances GPL by ensuring that the code running on the servers that you interact with can be inspected - so, given that your code is freely published here, it seems to me that you have satisfied that purpose.

laryn commented 5 years ago

Thanks all. Given the nature of the code usage/inspiration detailed here and the advice of a handful of folks active in the CiviCRM world, it seems that it should be okay to follow Backdrop's licensing in this case and release the module in the regular Backdrop channels. I appreciate the feedback!

Future person: if you disagree, feel free to reopen.