Make WordPress Plugins

Tagged: licensing Toggle Comment Threads | Keyboard Shortcuts

  • Samuel Wood (Otto) 10:51 pm on November 6, 2015 Permalink |
    Tags: , licensing   

    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. 🙂 )

  • Ipstenu (Mika Epstein) 5:50 pm on April 14, 2015 Permalink |
    Tags: 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.

  • Ipstenu (Mika Epstein) 10:18 pm on May 1, 2013 Permalink |
    Tags: , 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:

    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.

  • Ipstenu (Mika Epstein) 5:31 pm on December 20, 2012 Permalink |
    Tags: , 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.

    • Mike Schinkel 5:44 pm on December 20, 2012 Permalink | Log in to Reply

      Great points @ipstenu.

      It would be helpful if you could explicitly clarify something though. In some cases the required functionality is really only available via commercially licensed software; I’m working on just such a plugin right now. I assume that it’s acceptable to publish a GPLv2+ licensed plugin that requires the commercially licensed software as a library but that puts the onus on the user to acquire a copy of said commercially licensed software? Thanks in advance.


      • Ipstenu (Mika Epstein) 6:17 pm on December 20, 2012 Permalink | Log in to Reply

        Mike – That’s a real sticky situation, and we try to judge each one individually. If the entire purpose of the plugin requires you to download non GPL software, we probably won’t approve it. But if some additional functionality requires it (like Viper’s Video Quicktags says you have to download FLV if you want to use that), it’s okay.

        • Mike Schinkel 8:04 pm on December 20, 2012 Permalink | Log in to Reply

          Really? Not what I expected to hear.

          I have an Export Post Content to MS Word plugin I’m working on for a client and it requires PHPDOCX and I have been thinking it would be nice to package it up and put in the plugin repository for those who need MS Word export.

          P.S. Of course I guess I could limit the functionality significantly and bundle their LGPLversion but that’s take recoding work and I might not get to it anytime soon.

          • Ipstenu (Mika Epstein) 8:20 pm on December 20, 2012 Permalink | Log in to Reply

            I did say probably. It’s a lot of case-by-case, but we’re trying to avoid situations where you download plugins that outright don’t work, because you have to install other stuff. (Obvious exceptions would be bridge software, that connects WP to other apps.)

            • Jane Wells 1:27 pm on December 24, 2012 Permalink

              we’re trying to avoid situations where you download plugins that outright don’t work


            • pflammer 4:58 pm on June 23, 2015 Permalink

              Hi Mika, if I wanted to make a bridge plugin on WordPress that would download and install a database management system (it has non-GPL components, would not be hosted on wordpress.org, and does not directly interact with WordPress), then from your comment on bridge software, it sounds like this would be acceptible to host the installer on wordpress.org, as long as the installer was GPL. Is that correct or at least the general rule?

            • Ipstenu (Mika Epstein) 8:15 am on June 24, 2015 Permalink

              @pflammer – No, the plugin would not be permitted because it’s downloading non GPL code. The bridge connector is fine. The part where it downloads and installs is not. That’s not a bridge, that’s an installer.

            • pflammer 1:40 pm on June 24, 2015 Permalink

              @Ipstenu, I think I see. So bridge plugin would only be software that somehow links other apps to WordPress, but the user must install the other software independent of WordPress. Is that correct? Do you know of any example bridge plugins that are acceptible on WordPress.org? That might give me a better idea of what we might do. Thanks!

            • Ipstenu (Mika Epstein) 8:07 am on June 25, 2015 Permalink

              @pflammer I mean like https://wordpress.org/plugins/bridgedd/

              You can google for more examples, but basically it’s a plugin that allows single sign on between the two and/or data to be sent back and first. Pretty much any plugin that has an API to connect to other services is a type of bridge.

          • imranpak 1:50 pm on March 6, 2013 Permalink | Log in to Reply

            Hello Mike,

            Please share that plugin with me.



    • Charleston Software Associates 5:46 pm on December 20, 2012 Permalink | Log in to Reply

      jQuery Lightbox? There are a ton of plugins I’ve used for client sites that include that script.

      Does this mean if a plugin sources the script from another source, like Google Code for example, it still is not GPL compliant? For example, the files bundled with the plugin do not contain the actual jQuery Lightbox code but simply a for example?

      I don’t think any of my plugins are doing this but good to know what the nuances are. Especially since I’m planning a WordPress driven streaming radio plugin + companion client plugin and considered some of the very items you have on this list!

      • Charleston Software Associates 5:48 pm on December 20, 2012 Permalink | Log in to Reply

        Keep forgetting my code block on comments!

        • but simply use an a href = “..otherURL/jqlightbox.js” for example
      • Ipstenu (Mika Epstein) 6:19 pm on December 20, 2012 Permalink | Log in to Reply

        Read the URL we linked to. Says pretty clearly

        “This work is licensed under a Creative Commons Attribution-Share Alike 2.5 Brazil License.”

        That’s not compatible. However remember this rule is only to be hosted on .org. We’re not talking about using for clients, just in plugins we host for you 🙂 Does that make sense?

        Edit: As long as the code ins’t included in the plugin we have on .org, it’s okay. We do discourage telling people to download it from external sources (see Mike’s comment above you), but we take them case-by-case.

        • Charleston Software Associates 7:11 pm on December 20, 2012 Permalink | Log in to Reply

          @Ipsentnu – Thanks Mika, I get it. I meant that I’m using plugins found on the .org directory that contain jQuery Lightbox scripts IN the trunk svn repo hosted on the .org site. Many of those (see related comments) are carrying along scripts that specifically cite licenses that are NOT GPLv2 compatible, like the jQuery Lightbox script you reference in the original post.

          Now that those client sites are deployed I’m not so interested in that SPECIFIC issue. However my media streaming system will require pieces that are not readily available in GPLv2 format. I guess, based on your response to Mike, that I’ll have to find a way to marginalize those pieces and keep them out of the repo.

          Is it OK to say “if you want to use feature X” you will need to download “Y”? In my case I’d need a creative way to get the FLV player installed for the client listener. Thinking out loud here… Maybe hooks + filters that look for a “ride along” plugin that simply extends the feature set with “FLV fallback for non-HTML5 browsers”.

          Sorry for all the posts. I’m working on a big project and was planning on using WordPress as a key piece for the backend & front-end UI elements. Fully understanding this is kind of important before development starts in earnest next month.

          • Lance
          • Ipstenu (Mika Epstein) 7:41 pm on December 20, 2012 Permalink | Log in to Reply

            The answer is ‘maybe.’

            If the entire use of your plugin hinges on non GPL code, then probably not. If it’s just an extra feature, then probably yes.

            And like I said, if you see plugins in the .org repo that are using those specific versions of the code (check the links, lots of people use the same names), then please email us 🙂

      • Charleston Software Associates 6:53 pm on December 20, 2012 Permalink | Log in to Reply

        Lets try some examples just so I am really clear on this. I’d hate to put a lot of time into a plugin and have it not listed here after months of work because of a license conflict.

        This plugin (a fairly popular one) has a modified port of jQuery Lightbox:

        The modified port is itself questionable because it does not retain the original license but instead says “BSD license for details refer to license.txt” (license.txt is missing, BTW which is ANOTHER subtle but important point about software licenses, I’ll leave that discussion for later). The Gnu link provided makes it sound like Original BSD is NOT compatible with GPL only “Modified BSD” or “3-Clause BSD” is compatible.

        This can/will get confusing in a hurry. Maybe WordPress should host a list of known licenses that will not be accepted and post it somewhere near the plugin authors/submission page. The Gnu list is a great start but could be made easier to follow for non-legalish people like myself.

        • Lance
        • Samuel Wood (Otto) 7:11 pm on December 20, 2012 Permalink | Log in to Reply

          There is more than one project named “jQuery Lightbox”, because “Lightbox” itself was quite popular and spawned more than one imitator. Some of these imitators are compatible, some are not. The one you linked to is compatible. The one Mika linked to is not.

          Regarding “BSD”: nobody uses the “original BSD” license, pretty much ever. When somebody says “BSD-licensed”, it’s an almost 100% certain bet that they are referring to the modified BSD license. I have *never* seen a use of the original BSD license, ever.

          WordPress has no plans to make any sort of list of which licenses are acceptable or not, because we don’t have to. That list on gnu.org is fairly extensive and covers the vast majority of licenses out there. Any others we can evaluate on a case by case basis.

      • Charleston Software Associates 7:00 pm on December 20, 2012 Permalink | Log in to Reply

        Here is another one… as noted, this gets confusing in a hurry…


        This plugin clearly cites AGPL version 3.

        AGPL v3 *is* GPL compatible, but here is the catch, it is specifically NOT GPLv2 compatible, thus the entire plugin is considering “not GPLv2” compatible.

        Am I understanding this correctly?

        • Ipstenu (Mika Epstein) 7:45 pm on December 20, 2012 Permalink | Log in to Reply

          Do me a huge favor. Take a deep breath 🙂 You sound like you’re panicking here, and there’s no need to. We’re not making cancer fighting tools here, just code. All this can be fixed and sorted out, if we all stay calm and take our time.

          AGPL is messy. We’ll have to look into that one closely. I don’t have an answer for you right now.

          And note: GPLv2 or later. GPLv3 is okay.

          Edit: Actually he can just upgrade to the MIT version of the code – https://github.com/balupton/jquery-lightbox – I’ll email him.

          • Charleston Software Associates 8:36 pm on December 20, 2012 Permalink | Log in to Reply

            Thanks Mika. Not panicked, just trying to get clarification with some examples for reference.

            Another company I worked with had plugin listings pulled from .org for non-compliance. Related premium add-on sales went from $250/day to $0 instantaneously. Before I put months of effort into my new project I want to make sure I do all I can to maintain a good relationship with .org.

            It is 100% clear now. There may be some gray area that will be evaluated on a case-by-case basis. In over-simplified terms, don’t use the directory as a “free advert” for non-GPLv2 stuff.

    • toscho 2:47 am on December 21, 2012 Permalink | Log in to Reply

      Please close the last link. 🙂

    • Fabien 11:44 am on December 21, 2012 Permalink | Log in to Reply

      Many thanks to you for what you are doing for the free software community ! Long live the GPL !

    • takien 4:02 pm on February 8, 2013 Permalink | Log in to Reply

      Hello, I’m writing ClipArt plugin (submitted to .org and currently being reviewed).

      What plugin does:

      • Search clipart images from openclipart.org, (Images is licensed as Creative Common).
      • Save image into user’s WordPress, and insert into post if they wish.

      Will this cause a problem? While images are not hosted here (wordpress.org).

      Thank you.

      • Ipstenu (Mika Epstein) 7:56 pm on February 8, 2013 Permalink | Log in to Reply

        The images are different.

        We care if the code and images in the plugin itself are GPL compatible. If the stuff you install to your site later via image uploads isn’t, well that’s on you 🙂 That should be fine. (FYI, we’re backlogged on reviews by a couple days)

    • chassett 5:47 pm on October 3, 2013 Permalink | Log in to Reply

      I read all of the existing comments, and want to outline another case and see if it is OK. I am writing a plug-in that will “iframe” content delivered from our web servers. The parent code that hosts the iframe will reside on wordpress.org and all of its code is GPL compatible. However, the iframe it serves up from our web servers contains Highchart charting software. The code served up in the iframe is not included in our plugin and is not hosted at wordpress.org. Is this OK? BTW, thanks for this thread, obviously very important.

      • Ipstenu (Mika Epstein) 8:33 pm on October 3, 2013 Permalink | Log in to Reply

        Yes and no, but it’s less an issue of the GPL and more one of the iframe. If you consider how YouTube is embedded, it’s in a frame, btu it’s called via an api, so there’s not exactly iframe IN the code to be abused (we don’t like iframes much for that reason)

        Please email plugins@wordpress.org if you need more information about that.

        In so far as GPL goes, you SHOULD be okay 🙂

    • paoltaia 2:15 pm on April 17, 2014 Permalink | Log in to Reply

      Quick question, if I release a plugin on wordpress.org 100% GPL and sell extensions for this plugin on my website with a Split GPL (excluding css, js and images) are we infringing wordpress licence?
      If the answer is yes, will the main plugin be taken down from wordpress repository?

    • gioni 9:32 am on October 12, 2015 Permalink | Log in to Reply

      It would be helpful if you could explicitly clarify something about using assets from sites like Creativemarket or Photodune. Can I bundle assets, which I bought, with my plugin? They does not have GPL-like license: https://creativemarket.com/licenses/simple

      • Ipstenu (Mika Epstein) 4:09 pm on October 13, 2015 Permalink | Log in to Reply

        We can’t give you a one-answer-fits-all because there is no such thing. We can look at each case and try to help you understand if it can be used.

        Looking at the linked license, I would say the added restrictions about how you can’t sell products using their stuff makes it flat out NOT GPL.

        the item cannot be resold or redistributed on its own, or used in a product offered for sale where the item contributes to the core value of the product being sold.

        That would be putting an extra restriction on the usage, which is against the GPL, so no. Can’t use ’em.

        Now they did say this:

        Portions of some products may be covered by an open source software license such as the GPL (GNU General Public License). In these cases, any portions of the product not covered by an open source license will be covered by this license.

        Those portions you can use. But otherwise, unless it explicitly says it’s GPL, you cannot use their stuff in your plugins here.

  • Andrew Nacin 5:06 am on May 11, 2012 Permalink |
    Tags: 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.)

compose new post
next post/next comment
previous post/previous comment
show/hide comments
go to top
go to login
show/hide help
shift + esc
Skip to toolbar