Creative Commons Licenses in the Plugin Directory

Back in February, the Creative Commons organization began taking steps to introduce compatibility between their licenses and the GPL. At that time, we took notice and started discussing the problems we’ve had with CC licenses in the directory in the past.

Part of the problem is that the Creative Commons licenses are so fragmented. It’s very much a choose-your-own adventure landscape for CC licenses, and many people don’t understand licensing very well in the first place (it can be confusing, I admit).

Since we require everything in our directory to be GPL Compatible, then it’s something we have to constantly scan for when even an accidental violation occurs.

Then, things became even more interesting in March, when gnu.org silently changed their compatibility page to state that CC-BY 4.0 was now considered compatible with all versions of the GPL. So, at that time, we started trying to ignore that particular case. It isn’t easy, because a lot of CC licensed code is licensed under version 3.0 of their licenses, which is not GPL Compatible. And the issue of CC-BY-SA was still very much up in the air.

However, last month, Creative Commons finally stepped up. CC-BY-SA 4.0 is now compatible with the GPLv3.

Accordingly, you can now use CC-BY 4.0 and CC-BY-SA 4.0 licensed code or images or anything else in the WordPress.org plugin and theme directories.

A few points of note:

  • Only version 4.0 is acceptable. Check before using third party code which may still be licensed using 3.0.
  • Only the Attribution (BY) and Share-Alike (SA) clauses are acceptable. The No-Derivs (ND) and Non-Commercial (NC) clauses are definitely not GPL-Compatible. Code or images using them cannot be used.
  • If the code you’re wanting to use has the Share-Alike (SA) clause, then it is only compatible with the GPLv3, not GPLv2. This means your plugin and all the other code in it must be licensed under the GPLv3. The GPLv2 is not compatible with the GPLv3.

The license compatibility page does mention that the compatibility is one-way. This is important, but probably not relevant for the most common cases we’re concerned with. The cases for plugins is likely that they want to use CC licensed code such as javascripts. The cases for themes is likely that they want to use images or other artistic work in the themes. Well, now you can do that. Just mention in the readme.txt for either where the work you’re using was obtained from, and the license that work is available under. Since you’re not relicensing the work, then one-way compatibility is not really an issue.

If you need it in simpler terms:

  • CC0 – This is equivalent to a public domain declaration, essentially, compatible with everything, and we have always allowed it.
  • CC-BY 4.0 – Compatible with any version of the GPL.
  • CC-BY-SA 4.0 – Compatible with the GPLv3 only.
  • Previous versions of CC licenses (like 3.0) – not compatible.
  • Any CC license containing “NC” or “ND” terms – not compatible.

So, if you have a favorite library or image that we’ve had to push back on you in the past for, take another look at it. The license might be compatible now. Also, if something is CC 3.0, consider asking the author of the work to bump that up to 4.0, so you can use it. It’s nicer for everybody to have more things out there compatible with each other.

(Note: everything above applies to themes too. I just don’t want to write two posts. 🙂 )

#gpl, #licensing

Isotope 2.2 And Up is GPL Compatible

For a long time, the Isotope jquery library has had a commercial license that made it not really compatible with the GPL.

Isotope v2.2.0 has shipped with revised licensing model that is GPLv3 by default. Purchasing a commercial license allows use outside of the GPL, under the Commercial License terms, without causing conflicts. You can read details at: http://isotope.metafizzy.co/license.html

You can see the whole history here: https://github.com/metafizzy/isotope/issues/800

The tl;dr is this: If you’re using Isotope 2.2 and up in your plugin, it’s permitted in the plugin repository but you need to license YOUR plugin as GPLv3.

#licensing

Font Awesome is permitted in the Plugin Repository

This took longer than we would have liked to say, but there were communication issues on multiple fronts.

You can use the Font Awesome font files and CSS in your code, per the current Font Awesome License:

  • The Font Awesome font is licensed under the SIL Open Font License – http://scripts.sil.org/OFL.
  • Font Awesome CSS, LESS, and SASS files are licensed under the MIT License – http://opensource.org/licenses/mit-license.html.
  • The Font Awesome pictograms are licensed under the CC BY 3.0 License – http://creativecommons.org/licenses/by/3.0/
  • Attribution is no longer required in Font Awesome 3.0, but much appreciated: Font Awesome by Dave Gandy – http://fortawesome.github.com/Font-Awesome.

As far as crediting is concerned, we feel attribution is always good. You should always put that in your source code, but your readme is optional. Credit links must be opt-in if they show on the front facing part of your site (this includes the login page), but that’s nothing new.

So with that said, we’re going through the plugins that had been closed for Font Awesome usage and opening them. If we missed yours, please email us at plugins at wordpress.org, with a link to the plugin (like https://wordpress.org/extend/plugins/font-awesome/ which is open) and we’ll check right away.

#3rd-party, #licensing

GPL and the Repository

All plugins hosted in the WordPress.org repository must be compatible with GPLv2 or later. That means all code that is on our servers, from images to CSS to JS to the PHP code, has to meet that requirement. This is an extra requirement than just the standard one of derivative code, but we strongly feel that proprietary content has no need to be in our repository. If your code needs to be split licensed, or you have to included proprietary code for any reason, we can’t host you on .org, but that has no bearing on how neat and cool your code might be.

For a list of various licenses, and their compatibility with GPLv2 please read this: http://www.gnu.org/licenses/license-list.html – We know not all of you are lawyers, and thankfully that list makes it easy to check what licenses do and don’t mesh. If something doesn’t have a license, ask the author please, and don’t assume.

The following code bases are popular (which is to say we see submissions with them pretty regularly), but at the time of this post, are not licensed GPL-compatible. None of this means you can’t or shouldn’t use this code on your sites or plugins, just that we can’t host it here if you do.

If there are plugins you find using these (or any non-GPL-Compatible) code bases in their plugin, please email plugins AT wordpress.org and we’ll get in touch with the developer. If you’re the author of one of those code bases, please consider re-releasing your code under a GPLv2 Compatible license! We’d love to be able to host your work here.

#gpl, #licensing

Plugin licensing: GPLv3 is now accepted

Cross-posted from the main development blog:

The plugin directory’s licensing guidelines have been updated. The guidelines will now allow code that is licensed under (or compatible with) version 3 of the GPL.

The guidelines still encourage use of “GPLv2 or later,” the same license as WordPress. However, we understand that many open source libraries use other licenses that are nonetheless compatible, such as GPLv2 only, GPLv3, and Apache 2.0.

Now may be a good time for plugin authors to review their plugins to ensure a license is specified. You can add License and License URI headers to readme.txt and the plugin’s headers. (You may also wish to include a copying permission statement.) For example:

License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

You can see this used in the sample readme.txt.

This change brings the guidelines in line with the themes directory, which has for some time accepted GPLv3-compatible code. (Probably a good time to note that Creative Commons licenses are still incompatible with the GPL, and the theme and plugin directories.)

#licensing