You are here:Home»KB»Programming»General»Which Open Source License Should I choose?
Monday, 17 October 2016 13:15

Which Open Source License Should I choose?

Written by

Firstly, IANAL (I am not a lawyer)

If at the end of this you are still not sure what license you want or should use, do not publish your code publically and keep it closed source.

I have loads of software I want to release but I am still struggling to choose which open source license to use or how they work. There are so many licenses out there and everyone has their own opinion.

I’m writing this article to help me get some plain English explanations of which license to choose, when I should choose a particular license.

I will be referencing a lot of other web pages in this article because there is no point in re-inventing the wheel; all that is needed is some guidance and the holes in information filling in. I find when researching this sort of topic that sometimes you cannot find the answers to key questions because everyone assumes that you should know them. I encourage you to read the information on the other sites as this is how I learnt as well. Because I have done the research you don’t have to spend days on the internet finding all the links.

What are Open Source Licenses?

These articles will give you a broad view of open source licenses.

 

Why do I need a license?

Permission

You need a license so people who want to use your software know what they can or can’t do and their responsibilities with it. If you do not include a license, people other than you have no right to use it and there seems to be a thing that you might be held liable.

Liability

All open source licenses have a common aspect that they protect you from liability, by clauses in the licenses, whichever you choose. Likewise if you use someone else’s software licensed via an open source license you cannot hold them liable.

If you do not use an open source license your software, if solely made by you, it is fully protected by copyright and no-one can come along and steal it or pass it of as theirs.

In regards to liability when software does not have a license (it must be a lawyer thing), if someone uses your code without permission, how is this your fault? I suspect that it is related to distribution of your code with permission and that you should have a good disclaimer and license before doing so.

Keeping Software Free

Using an open source license you ensure that you are not held liable and that your software will still be free. Not all open source licenses keep software free forever, but you can choose to what extent by choosing an appropriate license.

 

Don’t use Creative Commons for software licensing

The creative commons licenses are really made for creative works rather than code. I have seen that people have used the creative commons licenses to release software (not many) but I would not recommend it.

You can possibly use these licenses to for the accompanying assets such as images or videos within your software package.

  • The Creative Commons licenses have no concept of "source code.
  • Creative Commons is not typically applied to software, rather other forms of creative expression such as blog posts, articles, photos, course ware, etc.

 

Common Terms

There can be some terms that come up and seem very particular to the GPL license.

This is a glossary of terms that might pop up. The articles I have come across don’t always tell you all the terms, they just assume you know. Knowing these before you look at the licenses will help.

Dual License

A ‘Dual License’ is not a ‘Split License’

This is where the copyright holder (in this case, the original developer) can release the code under let’s say, the GPL license and the MIT license at the same time. You would do this I think by releasing 2 packages with the different license attached in them and they would be classed as separate entities. I am not sure if you can dual license in the same package.

Viral License

Viral license = any program/code that uses GPL code then has to be licensed under the same GPL otherwise you will be in violations of the license agreement for that additional GPL code. This license is non-revocable but only comes into play when you distribute the new package.

GPL is a viral license. When you make any derivative works that work must also be distributed under the GPL license. So the license spreads like a virus.

There are however some downsides to the GPL licenses. They are a viral license, so whenever you modify this code the new code is also licensed under the GPL. I you add some GPL code in to another software package, then that software must also be licensed under the GPL.

When combing a GPL package and a non-GPL package you must make sure that the non-GPL package’s license is compatible with the GPL license of the first software package. There is compatibility charts that can help you decide. For instance if you want to add MIT licensed code into your GPL package this is fine as the new work can be licensed under the GPL as no rights have been lost. However you cannot add a GPL work into a MIT licensed work and maintain the MIT license, it must be re-licensed under the GPL as this is the terms of the GPL (viral licence)

Links

 

Split License

A ‘Split License’ is not a ‘Dual License’

This is particular to the GPL family because of its viral nature (LGPL excluded of course).

This seems particular to the GPL licenses because of the issues using that license causes but I am not sure how you would apply this under other licenses but I assume it would be a similar method.

This is where you can keep your software GPL complaint for certain projects but keep the JS, CSS, images and other design media such as videos outside the scope of the GPL license.

Even though the design media is inside the same distribution media (I.e. .zip) this does not cause it to be covered under the GPL license. See notes from RocketTheme and their license terms. You can then add another license to cover those assets.

I do not know how to specify both license within the same package but I am assuming it must be done to prevent confusion.

Some people say this does not exist but there are many companies doing this and ecosystems allowing this, so as far as they are concerned this does exist.

 

Aggregation

This could potential be a very important part of the GPL when making ‘Split License’ products and also when you want to include many different libraries.

What is the difference between an “aggregate” and other kinds of “modified versions”? | GNU GPL License FAQ

Split License Links and Notes

This is a mixture of links and notes because some of the notes point to specific sections on the related pages as opposed to the whole article. The rest are full articles on this subject.

  • Use a GPL-licensed image - Stack Overflow - Can I use a GPL-licensed image on my website without making the code to the site GPL?
  • licensing - GNU/GPL license and images - Stack Overflow - I want to use some icons and images that are distributed under GNU/GPL license. I won't modify them, just make them a part of my program. Can I do that? (of course I put an information about the author)
  • The difference between using free images vs GPL images - M.Online - In a nutshell, if you want to use the images only without any accreditation legally.
  • Images in GPL software | Ubuntu Forums - I know what releasing software under the GPL license means for the source code of the program, but what if anything does it mean for the images and pictures that are used in the software. Am I allowed to take images from a program that is released under GPL and use them in my own programs.
  • The trouble with artwork and free software licenses | Linux.com - Are you a crafter of icons, sounds, backgrounds and splash screens, or even window manager themes? Selecting the right license for your artwork to coexist with free software is no trivial task. Creative Commons (CC) and Free Software Foundation (FSF) licenses each have their advantages, but they are mutually incompatible. The two groups are beginning to move toward simplifying the situation, but in the meantime there are several things you can do to make license compatibility easier.
  • Licensing | Template Monster – The page makes note that the templates under GPLv3 can be re-distributed with no limitations but the images in the template are not covered by the license and are for demo purposes only.
  • Can CSS files be licensed under the GPL? - Quora - Code licenses cover source code. But it seems to me that the specification of margins, colours, and fonts is more of a visual design than an original work of code. Can you actually copyright the visual treatment that a CSS file specifies? If not, then it seems that you cannot license it under GPL (which relies upon Copyright law to be enforceable). Sure, code can be licensed, but can CSS files? What about XHTML?
  • What is Split Licensing and the GPL? | envato - On some of the Envato Markets (particularly ThemeForest and CodeCanyon) authors sell a range of items including themes and plugins for open source platforms. These platforms include WordPress, Drupal, Joomla, and a number of others, most of which are licensed under the General Public License (GPL).

    Themes and plugins sold on Envato Market are sold under a default split license. This means authors can protect their rights and freedoms to respect (and comply with) the GPL as well as to control their own work.
  • GPL Clarification - Joomla! – A forum thread on this real life issue
  • When GPL Becomes Almost-GPL — the CSS, Images and JavaScript Loophole - Slashdot – A forum thread discussion on the topic
  • What about GPL and Split License? - Visual Composer - WPBakery Knowledge Base – This is a brief paragraph describing the Split License.
  • Drupal and GPL (as I understand it) | Drupal.org – This seems to be a go to article on slit licensing and how Drupal handles it.
    • you CAN control, via licenses or agreements or what not, stuff that isn't covered by GPL. (Images, CSS layouts, media, and 'helper' programs like TinyMCE that don't directly connect to Drupal). This distinction is important.
    • In all of the discussions I've had with those knowledgeable about GPL and Drupal, I've been told that if your write a Drupal module, you're not writing something 'completely separate from Drupal.' The GPL classifies this as derivative or linked software. Thus the use of TinyMCE as an example -- the TinyMCE Drupal module is GPL-licensed, but the TinyMCE editor that it interfaces with is NOT.
    • see - Actually, you can. It's called dual-licensing, and allows your theme (released under GPL) to ALSO be released under a license that is GPL compatible but makes allowances for third-party libraries. (The LGPL is one example)…….
  • Explaining and Understanding the GNU General Public License (GPL) | @thetorquemag
    • This is a great and easy to read article and makes special attention to the other assets, JS, CSS and media.
    • Software Freedom Law Center confirms this
      However, the design elements—CSS, HTML, JavaScript, images and other media files—do not directly interact directly with WordPress. So unless the CSS, HTML, JS or other media elements in your theme are based on GPL’d media elements, they need not be licensed under the terms of the GPL.
    • It seems that design materials are not by default covered by the GPL.
    • The WordPress Foundation, and any sane advocate of open source, clearly feels that in the true spirit of freedom, the entire theme should be released under the GPL. However, even if you decide to follow a split model (release the code under GPL, excluding the design elements), you will still be on the safer side with the law.
    • CSS, HTML, JavaScript, images and other media files—do not directly interact directly with WordPress. So unless the CSS, HTML, JS or other media elements in your theme are based on GPL’d media elements, they need not be licensed under the terms of the GPL
  • I am writing software licensed under MIT and including GPL software. Should I include the whole GPL license text? - Quora - If your software includes GPL software, there is a strong likelihood that you are obligated by the terms of the GPL to license your code under the same GPL license. This is not always the case, but often is. So whereas you are asking how to deal with the license text -- you will also need to deal with the license terms.
  • If I modify code that is dual licensed under the GPL and an MIT license, are there are any issues releasing my modified code under an Apache 2.0 license? - Quora – This article has incorrectly used the term ‘Dual License’.
  • Licensing | Drupal.org
    it is possible to distribute a module that integrates with a 3rd party PHP or JavaScript library, as long as the library is under either a GPL or GPL-compatible license. Examples of compatible licenses include BSD/MIT-style "permissive" licenses or the Lesser General Public License (LGPL). The Free Software Foundation maintains a list of popular GPL-compatible licenses.

    This basically confirms (and its next paragraph) that you cannot distribute libraries that are proprietary or not compatible with the GPL license (whatever version)
  • GNU General Public License v2.0 - GPL License FAQ
    2.) If you didn't made a derivate in the sense of copyright? This is the other case. The license differs for non-derivate works, which are basically works on their own: "If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, does not apply to those sections when you distribute them as separate works." (In §2).

    this sort of handles shipping images and things that have copyright, " If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as"
  • Use a GPL-licensed image - Stack Overflow - A GPL licensed Image? I would be really surprised to see such a thing, as the GPL was built to target program code specifically. Can you show a real-world example?
  • GNU GPL v2.0 License - FAQ
    I would like to bundle GPL’d software with some sort of installation software. Does that installer need to have a GPL-compatible license?

    No. The installer and the files it installs are separate works. As a result, the terms of the GPL do not apply to the installation software.
  • I would like to release a program I wrote under the GNU GPL, but I would like to use the same code in non-free programs.

    To release a non-free program is always ethically tainted, but legally there is no obstacle to your doing this. If you are the copyright holder for the code, you can release it under various different non-exclusive licenses at various times.
  • Once released under GPL license, the GPL license cannot be-revoked. However if you are the original creator, you can dual release the code.
    • The code that was distributed via the GPL route must and will remain as GPL.
    • If you are the copyright holder you can distribute the code under different licenses, literal 1 zip package has the MIT license and the other has the GPL license are you are allowed to do this. Each package would go on its journey and be covered by the license you gave it without interfering with the other.
  • If someone contributes to your software and that code was under a GPL license your software would become licensed under GPL once distributed and this cannot be revoked. You could ask the supplier of the code to supply the code under another license that would not force the GPL license upon your software (if he has the right to do so) and in which case your software would not become licensed under the GPL. This is the nature of a viral license.
  • If you include image in your package you need to make sure that a license file notes that these are not GPL
  • Commercial WordPress Theme Directory Launches
    I think this is great news because it encourages commercial theme developers to adopt a “100% GPL compatible” license. Even though PHP in WordPress themes must be GPL, and artwork and CSS don’t, a pure PHP theme (without graphics or styling) would be pretty much useless to most end users.
  • Can CSS files be licensed under the GPL? - Quora
  • licensing - Can I provide a GPL app, with different licenced logo? - Programmers Stack Exchange – an in-depth thread on the subject.
  • Maintaining Permissive-Licensed Files in a GPL-Licensed Project: Guidelines for Developers - Software Freedom Law Center – This tells you how to handle copyright notices for code that is already licensed under GPL and you want to add permissive licensed files to your software. This article also alludes to the fact you can have permissive licensed files within your software without them becoming under the remit of the GPL license because they are separate works.
  • I am writing a website maintenance system (called a “content management system” by some), or some other application which generates web pages from templates. What license should I use for those templates? | GNU – This section shows the explicit exemption of Javascripts from the viral nature of the GPL when using within a template. A direct exception to JavaScript code, I think images and CSS are not mentions because they are creative works rather than code. This is backed up by the WordPress document. The GPL is code focussed and it is debatable if CSS is classed as code

 

GPL and WordPress – Split License - Case Example

These following links will described how GPL works with WordPress and covers the issue of ‘Split Licensing’.

WordPress founder Matt Mullenweg decided to get legal clarification on how the GPL should be applied when it came to templates, were they derivative works or separate works. The article Themes are GPL, too | WordPress.org goes into detail about how WordPress themes can be licensed under a ‘Split License’ and still honour the GPL license.

WordPress now enforces a 100% GPL infrastructure/community, this means the PHP code, JavaScript, CSS, images and other media that are in a WordPress package/extension must all be licensed under the GPL with no exception to allow them to be added to the wordpress.com repository.

WordPress have gone above what is legally required by the GPL because normally the CSS, images and other media would not be automatically covered by the GPL as they are classed as separate works, not a derivative work of WordPress. JavaScript’s have a special exemption in the GPL (see here).

  • The WordPress License
  • License « WordPress Codex - Like most software, WordPress is distributed under a license, which means there are certain things that you are legally permitted (and not permitted) to do with WordPress software and source code. WordPress is distributed under a license called the GNU General Public License, a very popular license in the open source industry. If that doesn't ring a bell, read on.
  • Themes are GPL, too | WordPress - Matt Mullenweg
    • There have been some questions in the community about whether the GPL applies to themes like we’ve always assumed. To help clarify this point, I reached out to the Software Freedom Law Center, the world’s preeminent experts on the GPL, which spent time with WordPress’s code, community, and provided us with an official legal opinion. One sentence summary: PHP in WordPress themes must be GPL, artwork and CSS may be but are not required. This seems to be the go to document on the web in regards to split license and the handling of images, JS and CSS.
    • Matt summarised the SFLC opinion in one sentence: “PHP in WordPress themes must be GPL, artwork and CSS may be but are not required.” This I believe also includes JS
  • This article re-affirms the split license and the status of using JS, CSS, images and other media. “ThemeForest licenses all code for WordPress themes and plugins under the GPL automatically, but does not follow the interpretation that images, CSS files and other creative assets must also be licensed under the GPL. Let me be clear: this is a generally accepted interpretation that is considered legal under the GPL.”
  • There is No Such Thing as a Split License | Matt Mullenweg - In the past people weren’t sure if themes for WordPress were derivative works and needed to be GPL. In 2009 we got an outside legal opinion that cleared up the matter saying that the PHP in themes definitely had to be GPL, and for CSS and images it was optional. Basically everyone in the WP community went fully GPL, sometimes called 100% GPL, for all the files required to run their theme (PHP, JS, CSS, artwork).
  • WordPress themes, the GPL and the conundrum of derivative works – WP AND LEGAL STUFF -
    • Now, I know what some readers may be thinking – ‘not another post on the GPL/theme debate’ – but I could hardly write a blog on WP and legal stuff without considering the issue and I hope there’s a point or two in here that at least some people won’t have read before. And no, I don’t try to assert that there’s a single definitive answer.
    • in conclusion, the WordPress themes supplied contains elements that are derivative of WordPress’s copyrighted code. These themes, being collections of distinct works (images, CSS files, PHP files), need not be GPL-licensed as a whole. Rather, the PHP files are subject to the requirements of the GPL while the images and CSS are not. Third-party developers of such themes may apply restrictive copyrights to these elements if they wish.”
    • So, if one accepts the SFLC opinion, there are two GPL-compliant licensing models for distributed WordPress themes:
      • licensing a theme in its entirety under the GPL; or
      • applying a “split licence” to the theme (under this licence, the PHP code and integrated HTML are covered by the GPL with the rest of the author-created components (such as the CSS and images) being covered by alternative and usually proprietary terms).
  • (The split licensing model is the approach that has been adopted for the vast majority of WordPress themes on ThemeForest (which, for most practical purposes, usually limits use of the theme to one site), despite the fact that it’s now possible for a ThemeForest theme author to apply the GPL to a theme in its entirety. It has also been adopted by a number of other commercial theme providers.)
  • The view of the Software Freedom Law Center is that at least the PHP and any intermingled HTML needs to be released under the GPL. CSS and images, by contrast, can be but do not need to be. If those latter components are not also released under the GPL, two different sets of licensing rights apply to different components of a theme. This is essentially a strategy to constrain people’s uses of the theme to what is allowed by the non-GPL licensing rights. Not that many theme shops do this. Envato/ThemeForest does but it gives authors/developers the choice to opt for 100% GPL.
  • A House Divided: WordPress.org, Envato, and GPL Battle | @thetorquemag - There has been little secret about the issues between WordPress.org proper and Envato and the various and different interpretations to GPL, licensing, and distribution/ownership rights.
  • WordPress Licensing & the GPL | Theme Developer Handbook | WordPress Developer Resources - To develop WordPress themes for the public—either free or paid— you need to get acquainted with the GNU General Public License (GPL) that WordPress uses.
  • A Newbie's Guide to the GPL and WordPress Licensing - Confused about the GPL and WordPress licensing? We demystify the GPL and discuss what it means to the WordPress community and you.
  • Understanding the GPL licensing of WordPress – WP AND LEGAL STUFF - As I’ve noted previously, WordPress is licensed under the GNU General Public License (GPL), version 2. An excellent overview of the GPLv2
  • How WordPress is Licensed - Copyright, GPL & WordPress - In this post, Pragmatic have teamed up with Aurelia Butler-Ball from Verisona Law who specialises in rights management for the creative industries to explain how WordPress is licensed and what that means for people and businesses that use it.
  • licensing - What does exactly GPL license mean for my WordPress theme? - WordPress Development Stack Exchange – A thread around this issue
  • WordPress Theme Thesis Maker Backs Down, Adopts GPL - Chalk this one up as a victory for the free software movement: Thesis, the wildly popular proprietary WordPress theme from developer/designer Chris Pearson, is now available under a split GPL, the license that makes it possible to alter and redistribute this software as you see fit.

    The split GPL will allow the parts of Thesis that use WordPress code to be freely shared. All the PHP code is GPL, while CSS and JavaScript code sections remain proprietary. It's not a complete win for FOSS, but at least it's fair, compliant and fork-able.
  • A question on GPL licensing and the current WordPress debacle - faq - Discourse Meta - Unfortunately, WordPress (and Drupal) believe that all plugins and themes, including images and CSS10 fall under the GPL as well, since they use the WordPress API.
  • Would WordPress Sue The Maker Of Thesis, A Leading WordPress Theme? - with Chris Pearson and Matt Mullenweg - Mixergy - There was an argument brewing on Twitter today, so I invited the two guys at the centre of it to talk openly here. Chris Pearson, as you might have heard in his recent Mixergy interview, is racking up sales of Thesis, the popular premium theme he created for WordPress. Matt Mullenweg, the man behind WordPress says he’s happy that Chris is earning money, but insists that Thesis adopt the same license as WordPress, GPL, the most widely used free software license.
  • WordPress GPL | Codeable – This article describes the GPL and then describes how this fits in with the WordPress model.
  • Envato’s License Changes For The Worse – ThemeShaper - There’s been a lot of talk lately about ThemeForest, Envato, WordCamps, and the GPL. I’ve been paying close attention because, you know, themes. I love them. I think they’re a huge part of the WordPress mission to democratize publishing and I think the good ones are making the world a more beautiful and better place.
  • licensing - What does exactly GPL license mean for my WordPress theme? - WordPress Development Stack Exchange – An in-depth discussion using a case example.

 

Case Example - RocketTheme

The questions and responses here are not and should not be classed as legally binding as they are advisory or opinion and might not reflect the law exactly.

I asked the question about the split license to RocketTheme and that went as follows:

QuantumWarp

Hi,

I am looking at your products but I would just like you to clear up some license issue I do not understand. I am a Joomla user.

The RocketTheme Joomla Extension License says that all the PHP code is GPLv2 but the JavaScript, CSS and images are not covered by the GPL license which leads me to 2 questions.

1) If these assets are included in the template/extension package with GPLv2 code are they not automatically covered by the GPLv2 license? If not, which you say, can you point me to the clause in the GPLv2 license which explains this so I can better understand this.

2) On the page https://www.rockettheme.com/legal/93-rockettheme-licenses you reference "The RocketTheme Proprietary Use License (v1.3)", is this the full license? (the one paragraph)

Thanks for your time

QW

RocketTheme

1) What specifically are you looking to do with our templates? We simply don't allow for reselling or bundling of our templates, where clients download our template packages from you. If you use our themes as part of a service, which involves substantive, individual customization to each client, then that is fine.

2) Yes, this is the entire license.

Kind regards,

QuantumWarp

I am trying to find out how the JavaScript, CSS and images files are outside the scope of the GPL license when I thought if you distributed a package with GPL that all inside that package was covered by the GPL. It is just a clarification of the license and how this has come to be. No hidden motive other than that.

RocketTheme

I think it falls under this statement:

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html

Kind regards,

 

Handling GPL Images

How do you attribute copyright or give attribution.

 

Compatible Licenses

This is a common issue with GPL because it is viral, it is required to change the licensing agreement of any code it comes into contact to that of the GPL, so you need to make sure the licensing agreement of the code you are adding gives you the right to transform that licensed code into GPL licensed code. If it does not, then you cannot merge the 2 code blocks together to distribute it as one. You can however use it for your own private use with no issue as you are not distributing the code.

There are other circumstances using other licenses where you need to check their compatibility, but they are a lot easier to deal with and probably do not require compatibility charts.

Some other open source licenses are compatible with GPL because they allow the GPL to take over or they extend the rights of their license. You cannot remove rights generally, but you can add them.

The LGPL license does not really have this problem because it allows itself to be treated as a library and does not require code that uses it to become covered under the LGPL/GPL license. The LGPL code and any modifications to it are still treated as per the normal GPL terms but the GPL is not pass to the larger code package (Weak Copyleft)

Links

 

Copyleft

You chose to include specific licensing conditions on reuse. Sometimes these are called 'Copyleft'.

When people refer to Copyleft licenses they usually mean the GPL family.

When you create a derivative work you must make sure that you keep the original copyright notices in place and also include a copy of the GPL license. I have also read that you should make a note of when any of the files have been modified, I have not actually seen how you do this or if by the fact you can download the history on GitHub perhaps is enough.

Copyleft comes in two basic varieties:

Strong Copyleft: When a software project contains some of your GPL code, the project as a whole must be distributed under the GPL licence, if it is distributed. The effect of this will be that the source code and any additions will made available to the public.

Weak Copyleft: When a software project contains your LGPL code, the LGPL parts of the project and its changes must be distributed under your LGPL licence, if it is distributed. The other parts may be distributed under their own licences (Split License), even though they both form part of a larger work (aggregation) including LGPL. The effect of this will be that the source code and changes to the LGPL will be available to the public the rest of the code can stay proprietary and not be available.

 

Permissive License

Permissive software licenses are easy to use and have few restrictions on their use.

Tivoization

This is where hardware will stop open source software being run if it has been altered. This was pioneered by TiVo as they used open source GPL software but used hardware to stop modified copies being run on their box.

Derivative Work

This is where you have used someone else’s code to base your new program or code.

 

Software Patents / Patent License Clause / Patent retaliation clause

Software cannot be patented; you can patent a method, process, etc., as long it is novel and non-obvious. This is the first thing you should know so you can understand this murky issue. Until I knew this I could not understand what everyone was on about.

 

Patent License

Prior Art – an American thing

Links and Notes

Patent Software / Tools

 

Other Common Terms

  • OSS = Open Source Software
  • FOSS = Free Open Source Software
  • FLOSS = Free Libre Open Source Software

 

License Type Overview

OSS licenses (that I will deal with) fall in to 2 basic groups:

  1. Permissive
    • You can do what you want with it
    • But must keep the copyright notices
  2. Copyleft / GPL Family
    • A Copyleft license that requires anyone who distributes your code or a derivative work to make the source available under the same terms,
    • A viral license
    • Used by WordPress/Drupal/Joomla

Mixing Licenses

These licenses give you your rights to use the software and outline your responsibilities to re-distribute them or derivatives of them. Generally speaking unless you re-distribute the code you can mix and match licenses with no issue, but things would get messy when you try and distribute them at a later date if the licenses are not compatible, so just bear this in mind.

Copyright

Generally speaking you should leave the license file in place; it does not need to be displayed within the program but a link from within in it on where to find the license. In particular a command line program when executed according to the GNU GPL license should display the fact that it is a GNU GPL program, see the Linux kernel.

You should as a general rule leave all the copyright notices in the source code files as well. I will cover this more on this issue later on.


Overview Links

License Libraries / Databases

These are sites have complete listings of the OSS licenses with their terms and conditions. Ideal to see what rights they give you or that you have to extend.

  • TLDRLegal - Software Licenses Explained in Plain English – really easy to use website. Each license has the Can, Cannot, Must conditions set out with short annotations and a quick summary
  • Licenses & Standards | Open Source Initiative - Open source licenses are licenses that comply with the Open Source Definition — in brief, they allow software to be freely used, modified, and shared. To be approved by the Open Source Initiative (also known as the OSI), a license must go through the Open Source Initiative's license review process.
  • CIPPIC Licensing Information Project – Each license has a well laid out page with information normal people can read to make a decision about licensing.
  • Licenses - CodeProject - This is a very easy to read list of the different licenses and their different features.
  • Licenses - Choose a License - Open source licenses grant permission to everyone to use, modify, and share licensed software for any purpose, subject to conditions preserving the provenance and openness of the software. The following licenses are arranged from one with the strongest of these conditions (GNU AGPLv3) to one with no conditions (Unlicensed). Notice that the popular licenses featured on the home page (GNU GPLv3, Apache License 2.0, and MIT License) fall within this spectrum.

General Licensing Links

 

Permissive Licenses

These licenses are very relaxed and allow you to distribute your code without liability and that your copyright information to remain in place but places no further restrictions upon the code or it’s re-use.

In general:

  • You can do whatever you want with them
  • Use them in commercial, personal, network or public works
  • You can use the code in proprietary or closed source projects
  • You cannot be held liable
  • You must leave the copyright in place
  • You do not have to distribute the source code or source code from derived works
  • Licenses like the MIT, Apache, and BSD come without a Copyleft requirement.

The Family

MIT

The MIT license currently is the most popular permissive license being used on GitHub. It is very easy to use, you can just copy the license into your software package, update the copyright info and add copyright notices to your source code files and you are done. The MIT license does not directly cover patents although some lawyers say it does by cause of the explicit terms of how the software can be distributed. According to GitHub and choosealicense.com this is the license they recommend if you want a simple and permissive license.

 

BSD

This license has had several variations but is regarded as being the first OSS license. This license as the MIT license has no specific patent clauses.

There are at least 3 variants of the BSD license:

  • The 2-clause BSD License (or Simplified BSD License) is totally equivalent of the MIT License
  • The 3-clause BSD License (or New BSD License) adds one clause, specifying that neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from the software without specific prior written permission. This version is compatible with the GPL allowing you to mix 3-clause-BSD licensed code into GPL software.
  • The 4-clause BSD License (or Original BSD License) adds another clause, specifying that all advertising materials mentioning features or use of the software must display an acknowledgement saying that the product includes software developed by the copyright holder. This 4-clause BSD License is not compatible with the GPL. Code with this license cannot be relicensed according to the GPL terms, as the fourth clause adds a requirement that is not required in the GPL.

Links

 

Apache 2.0

The apache license is a permissive license that has specific patent clauses in it. So if you are worried about patents but need a permissive license then you should use Apache 2.0, GitHub also recommends using this license if you are concerned about patents. Twitter Bootstrap uses this license and seem quite popular.

If you think you will have issues with patents I recommend looking at this license and using all of the resources in the Patents section in this article so you fully understand the rules to the patents game.

Links

Other

  • WTFPL – Do What the F**k You Want to Public License - The WTFPL is a very permissive license for software and other scientific or artistic works that offers a great degree of freedom. In fact, it is probably the best license out there. This site provides information on how to make the most of the WTFPL.

General Permissive Links

These are topical links about permissive licenses and are not specific to one of the 3 I have outlined.

 

Copyleft / GNU GPL Family

All the GNU GPL Licenses are Viral Copyleft licenses and are similar in what they try to achieve, but the variants have different roles. The GPL licenses are very harsh but do protect software freedom. There primary goal is to keep software free and open and to that end they are very good. The GPL only gets applies when you distribute the software and after that is non-revocable.

Technically, if I buy a theme or plugin and it’s released under the GPL, I have the right to share it with friends, make copies, and even improve it. Of course, if I improve or extend it and release it to the community, it has to also be distributed under the same license. There are certain circumstances when you can change the license but the new license must be compatible with the license that you received the code with.

  • GPL license only comes into play when you distribute your code.
  • You can use any GPL code in any of your own programs without having to license it under the GPL. If you only use it privately and do not distribute it. Distribution is the act of selling or supplying the code to a client, putting it on GitHub, sharing it on Facebook or any other fashion where you effectively lose control of it.
  • Under the GPL if you have compiled version of the software which is made from GPL licensed software then you must make the source code available (distribute it) with the compiled version.
  • GPL forces your software and future versions of it to stay in the public domain
  • In the GPL, trademarks are excluded and are not covered by the license
  • When a GPL command line binary is executed it should display the that it is GPL licensed (i.e. Linux kernel)
  • GPLv2 is used by Joomla, Drupal, WordPress

 

The Family and their roles

Now you must understand there are different versions of most of the GPL license and that each different type has a slightly different use, so what I have mentioned above is a generalised outline.

GPL(v1)

This is the original version of the GNU GPL licenses and is no longer used

GPL v2

This is the most used of the GPL licenses, especially with the “or later” clause. This will be covered later.

GPL v3

This is the latest iteration of the GPL license. This is essential the same as the GPLv2 but with better wording for international law and several new clauses have been added to cover new threats to software freedom, in particular:

  1. Tivoization
  2. Patent Protection

Links

 

LGPL / Lesser GPL

This was previously known as the ‘Library GPL’. Its purpose is to keep the GPL license intact for your code but allow you to use your code as a library within another software package without requiring that package to then be licensed under the GPL license. You do however still have to release that portion of your code that is covered under the LGPL under the normal terms of the GPL.

LGPL allows the software/code to be used in a project without forcing the whole package that it is added to become GPL licensed. The normal terms of the GPL apply to this section of code only. I.e. PHPMmailer. This is ideal for libraries. I also do not think that it forces you to distribute your code, I need to check this. This is more compatible with other licenses

 

AGPL / Affero General Public License

This GPL licenses allows the use of GPL code when it is runs as SaaS or server based where it is not possible to show the code or license, so in the spirit of software freedom the AGPL license was developed.

The GNU Affero General Public License is a modified version of the ordinary GNU GPL version 3 and is more aggressive.

It has one added requirement: if you run a modified program on a server and let other users communicate with it there, your must also allow the users to download the source code corresponding to the GPL software running there.

The purpose of the GNU Affero GPL is to prevent a problem that affects developers of free programs that are often used on servers.

Links

 

GPL (or later) Clause

The Clause
"this program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.”

What is it?

This is a very powerful clause. If you release software under the GPLv2, then that is the one and only license, derivatives or further distributions can be released under (obviously the copyright holder can re-release under another license).

How to use it

So if you add this clause in to the license you are free to upgrade the software license to a later version of the GPL. This has the advantage that you can either use the current version of the GPL to increase compatibility with other open source software or select a later version which has more protections and more rights. These later versions could also have better compatibilities with other open source licenses.

Example

It not be possible to combine GPLv2 and GPLv3 software together as the licenses are not compatible, but if the GPLv2 has the “or later” clause then you can effectively re-licensed the software to GPLv3 which therefore makes the licenses compatible which then then allows them to be merged both under the GPLv3 license and you can then distribute the new package legally.

Notes

  • This statement allows, without re-contacting the author the ability to use later versions of the GPL
  • You can make the GPL license just refer to that version or not put this clause in, and if so the version can never be altered (Linux kernel)
  • Once you re-license under GPLv3 from GPLv2 you cannot go back (assuming you have distributed it). You could re-release another copy under GPLv2 but that would be classed as a separate entity.
  • Linus Torvalds specifically leaves out the “or later” clause as he does not like GPLv3 and because this clause is left out you can only use the GPLv2 for the Linux kernel.

Links

 

GPL Question and Answers

  • If an image is released in the public domain it cannot be copyrights, therefore you cannot apply the GPL to it. Can you still distribute it on sites that require GPL compliance? According to WordPress CC0 is compatible with GPL.
  • If an image is GPL and you supply it with code to make software, does this by implication require the whole package code + image to be released under the GPL license. No because they are classed as separate works unless specified.
  • Is it possible to distribute a copyrighted image with a GPL program and still have the image retain its copyright and not be subjected to the GPL? Yes, this falls under the Split License; however you need to make sure you have the rights to distribute the image.
  • can you do this with icons and smaller images? These would be classed as separate works no would not be virally infected with GPL.
  • same questions for videos and other media? These would be classed as separate works no would not be virally infected with GPL.
  • As a follow-up, can you add 3rd party JavaScripts which have copyright in to your GPL program and still distribute it as GPL without the 3rd party libraries being covered? The package as a whole could not be distributed as a GPL software, you would need to have a ‘Split License’ model. Javascripts have special exemptions in the GPL license. The GPL code would still be GPL and could be distributed under that license. When distributing the package with the copyrighted JavaScript you need to make sure you have the permission from the copyright holder to distribute it.
  • Does the use of remote GPL software (i.e. CMS) mean that your software would have to be covered under the GPL license? The viral nature of the GPL requires derivative works to be license under the GPL. This means that plugin and theme PHP code that interacts or uses the CMS system must be GPL. With media or creative assets such as images, icons, JavaScript and CSS that come with these extensions these do not have to be. For WordPress extensions the WordPress community made it a requirement for the extensions to be 100% GPL including assets, but this is not a legal requirement of the GPL license.
  • If someone forms my software, do they have to rename it (assuming no trademarks)? This is a tricky one, I don’t think they are obliged unless the software makes out or purports to be something git is not. For instance someone cannot make a copy of your software, make it really bad and distribute it and make out that this is your copy. I would need some clarification on whether it is mandatory to change the name.
  • If there are trademarks in the software, do these need to be removed as they would imply that that new person was authorized by the trademark. From my understanding the GPL protects and respects trademarks, this means that if the software name is a trademark then the software must be renamed, you would not get automatic rights to use artworks or logos if they are trademark specific and these would need to be removed and replaced as needed.
  • You cannot copyright software if it is in the public domain as it cannot have any copyright. This is correct, if the item has been released into the public domain (this could be very specific to US law) then it cannot have copyright assigned to it, so technically you cannot apply the GPL license to them but it is compatible.

 

GPL General Links

 

License Comparison

These are links to comparisons of the various licenses

Comparison Charts

Other links

 

License Choosing Tools

These are some interactive tools to help you select the appropriate license. It is most likely going to be one outlined on this page unless you have specific needs.

Other Tools

  • Add a License (GitHub) – Once you have picked a license this tool will add a license file to all of your public GitHub repositories in the correct fashion.
  • Open source licensing - User Documentation - GitHub provides an option to include a software license in your project when you create a new repository. These are instructions on how to add a license.
  • List of Licensing Tools - Open Source Initiative - This page is a list of open source tools that can be used for creating, manipulating, and evaluating licensing information. The list has been created by OSI community members, but OSI does not endorse any particular tool on the list.
  • Text Compare Tool - CLIPol – This is a tool that allows you to compare the texts of 2 licenses
  • Easy Attribution Document Generator | tldrlegal - Many OSS licenses require you to credit the author or link back to the open source code/component you used.
  • This tool is a quick way to generate an HTML "attribution" document to plop into your application.

 

Choosing your license

So now you know about the licenses on the ‘market’ so what now?

Decide what you want to do with your software, how do you want to distribute it? But in the end apart from some subtleties it comes down to:

  1. Permissive License (MIT, BSD, Apache)
  2. Copyleft Viral License (GPL) (With or without the “or Later” clause)

And of course you have to consider any license that already exists on the code if you have made, if a derivative work.

New Code / Your Code

If you want your code to be used by the wider world and you are not bothered where or by whom then use one of the permissive licenses. This allows companies to use your software in proprietary software and they do not have to share the changes to your code.

If you want your software to be used but always available and those derivatives of that work must always be available then choose the GPL license. This limits who can use the software, but keeps it in the free software world forever, once it is release, it and old of its children will be free forever.

Derivative Work / Pre-existing Code

If the code is already licensed under GPL you are stuck with it unless it says “or later” and in which case you case use a later version of the license.

If the code has another license such as MIT, you can carry on using that license or you can add that code to GPL licensed software.

Generally speaking, if the software already has a license you should use that unless you need to change it for specific reasons, and if you by the license are allowed to.

Still not sure!

  • Don’t rush; go through all of the ‘Choosing Tools’.
  • See what some of the larger opens source projects are using.
  • Don’t release your software until you are sure.
  • Look through the research in this article
  • Ask on forums for some advice and point them to this article so they know what you know.

Choosing Links

 

Changing License

Now I have chosen my license how to I handle the copyright and any attributions

 

Copyright Notices – examples and where to put them

  • How so with split licenses
  • See the envato license example
  • Look at Joomla
  • I need to look how to show the changes?

Where do I put my copyright code, should I put it in every file, where does the license go etc...? Questions all to be answered here!

Remember license and copyright are different, so I would recommend putting the copyright notice at the top of every significant piece of code, or all files covered.

30/300 lines thing – i.e. significant code otherwise it is a bit pointless, not significant enough.

Most of these licenses say you need to leave the copyright in place. The copyright notices should be put at the top of all of your files. Check Joomla, WordPress, Joomla and Prestashop examples to see how they look. Don’t forget this is not the license file which usually should be included.

In the licenses where they say you must add a notice as to when it was changed, or even when you make loads of changes is how to apply the copyright, who owns it?

I do not think it is mandatory to add a copyright notice to the top of each code file but it asserts your rights and is particularly useful if that 1 file is taken out of context.

You should not remove copyright notices that are already there. But how would thins work if you completely re-write the file or there is not much left of the original file, surely you would own the copy right?

GPL says

  • If you have copied code from other programs covered by the same license, copy their copyright notices too.
  • Put all the copyright notices together, right near the top of each file.
  • From reading if the program is interactive you must display the fact that the software is GNU GPL licensed, specifically the Linux kernel when it is run displays GBU GPL licensed,

Links

License Examples

You can download these examples and examine the licenses to see what they look like in the real world

 

GitHub and Licensing

This is not as simple as you think as not everything that is publically viewable on GitHub is open source.

  • GitHub: You can manually add a license using the browser. For example, when you are on a repository home page, you can click on the + icon. To make the process easier, if you name the newly created file LICENSE.md, the license picker automatically appears.
  • It came to my attention that software does not have to be open source on GitHub and the only conditions that apply is that your code is publically viewable and that others users have the right to mark a fork of your software. This is where the right you have extended end and the murky area where GitHub is failing. Read the following conversion regarding a repository that has no license (i.e. you have proprietary copy right) is then forked, the forker will not have the right to use that code as open source but he will think he has.
  • GitHub has clarified the Licensing situation in clear terms on this page - Licensing a repository - User Documentation

GitHub Links

 

GitHub License issue / Email Conversation / Forker Issue

The questions and responses here are not and should not be classed as legally binding as they are advisory or opinion and might not reflect the law exactly.

QuantumWarp

Hello

Can you clarify the following point:

As far as I know that to use GitHub free, your software/code must be open source. However if you do not define any license in your code, then that code is still fully copyrighted to the author, All Rights Reserved?.

Under “F. Copyright and Content Ownership” of your terms of service:

We claim no intellectual property rights over the material you provide to the Service. Your profile and materials uploaded remain yours. However, by setting your pages to be viewed publicly, you agree to allow others to view your Content. By setting your repositories to be viewed publicly, you agree to allow others to view and fork your repositories.

So please can you tell me what happens to a repository of mine that has no defined license that is forked, what rights does the new recipient of the fork receive?

This issue is not covered in your terms of service. You even note that most of your projects are not licensed in this article.

Thanks

GitHub

Hi Jon,

As far as I know that to use GitHub free, your software/code must be open

source. [...]

So please can you tell me what happens to a repository of mine that has no

defined license that is forked, what rights does the new recipient of the

fork receive?

Great questions! It's not a requirement that projects in public repositories have any particular license or define themselves as "open source" or "open content". The Terms of Service only require that you grant others the right to view and fork the content, but you retain all other rights to your content by default.

That said, many people choose to apply an explicit license or copyright statement in order to make sure that it's clear to other users which specific rights they do or do not wish to grant. In that case, I'd strongly recommend getting in touch with a legal professional for advice about which option is most appropriate for your project.

Hope that clears things up!

Cheers,

Jack

QuantumWarp

Hi,

I would then ask that GitHub make an announcement (modal box) when anyone forks a repository that they might not be able to use it as they please, but only view it for education. You could also disable forking for repositories that do not have a license specified.

If a correct license is configured for the repo then an announcement of that license could be made upon forking of the repository of the basic terms of the license.

Currently it is possibly that I could fork a repository and illegally use the content. End users need to be made aware of this.

Most people are under the impression that all publically viewable code on GitHub is open source software that can be used as open source software things, however after the email from you below I now know that this is not the case. GitHub really needs to clear this up because it is just a matter of time before someone (not me) might take legal action for misleading people.

The forking procedure implies that you can now do what you want with the code if there is no defined license, I would re-iterate during the forking process that GitHub advise the forker that they might not have the right to distribute or use this code but only “fork it to view”, they cannot alter it (which makes forking pointless) unless a license is present, in which case GitHub can advise this during the forking process (with a modal box).

I would also go as far as to send out and email perhaps outlining this and mention this issue in your terms and conditions. Perhaps update your terms and send out the email advising people of this.

Your feedback is welcome

GitHub

Hi Jon,

Thanks for all the feedback and feature suggestions! Our team is taking these ideas into consideration (but I of course can't make any promises about if or when any particular suggestion you've made might be implemented).

In the meantime, if you do find that another user has used your code or project in a way that you did not allow, a great first step is to try contacting the user directly; in many cases, this type of thing turns out to be a misunderstanding that can be resolved by reaching out to them. If that's not possible, we follow the DMCA Takedown Policy:

https://help.github.com/articles/dmca-takedown-policy

Best,
Jack

QuantumWarp

Hi Jack,

As a follow up on forks, can you clarify the following from the page:

https://help.github.com/articles/dmca-takedown-policy/

B. What About Forks? (or What's a Fork?)

One of the best features of Git is the ability for users to "fork" one another's repositories. What does that mean? In essence, it means that users can make a copy of a project and then make changes to that copy to either push back to the main project or just keep as their own variation of a project. We call each of these copies a "fork" of the original repository, which in turn may also be called the "parent" of the fork.

GitHub will not automatically disable forks when disabling a parent repository. This is because forks belong to different users, may have been altered in significant ways, and may be licensed or used in a different way that is protected by the fair-use doctrine. GitHub does not conduct any independent investigation into forks. We expect copyright owners to conduct that investigation and, if they believe that the forks are also infringing, expressly include forks in their takedown notice. “”

Questions

If I have not specified a license, I own the copyright but by the terms and conditions of GitHub I allow users to see my code and make forks of it (public repositories). The following points are in contravention of this statement.

  • This says that the user who has forked the project is allowed to keep as their own variation of the code
  • This is because forks belong to different users,
  • …may have been altered in significant ways, and may be licensed or used in a different way that is protected by the fair-use doctrine.

Could you just further explain these because it says that the forker owns the code and this conflicts with the notation that not all code on GitHub is opensource. Unless a license is specified the forker has no right to use the code for himself. However GitHub can say that the forker can keep and use the code for the sole purpose of reviing the code and then pushing it back to the parent repository.

I would also like the fair-use clause explained as GitHub does noto clarify this at all. Can fair-use allow people to steal my code?

Thanks

QW

GitHub

Hi Jon,

Thanks for your reply. The complex nature of your questions regarding fair use, the DMCA, and the impact they could have on your code would be best addressed by a legal professional. Unfortunately, GitHub is not in a position to offer legal advice; we can only recommend including a license in any code you make public to prevent licensing ambiguities.

Best,

Elizabeth

QuantumWarp

Hi,

With all dues respects, this is an issue GitHub has created and needs to be looked at by GitHub, not by me or my lawyer.

The answer you have given me not really good enough as I don’t think you have read my issue properly.

The things I have mentioned are created by your terms and conditions but the consequences are not covered by the said terms and conditions.

Could I ask you guys to re-look at this.

Thanks for your help

QW

GitHub

Hi Jon —

I'm on the GitHub Legal team. Elizabeth passed along your concerns to us. Thanks for the feedback.

As Elizabeth noted, GitHub cannot give you any legal advice about the consequences of your licensing choices. This is an ethical issue that unfortunately I cannot bend — as a lawyer, I represent GitHub, not you.

Reading over your message, however, I think it may suffice to say that when our DMCA policy states that "forks belong to different users" we did not intend to imply that, from a copyright or intellectual property standpoint, any rights are transferred. Rather, we intended to convey the idea that that different the fork creator has administrative control over the fork that the parent creator does not. I hope that clears up any confusion.

Cheers,

Jesse

QuantumWarp

Hi Jesse

Many thanks for this reply. I do feel that it answers the question.

My own license choice was never really the issue, but the creation of forks without a license (as a test case for raising the point).

Might I suggest that this (your response or something similar) is added to you terms of use as there seems to be some ambiguity of this issue on the internet, I have not been the only one to notice this "Grey area" and I am sure that this would clear that up for content creators and forkers who might not understand the intricacies of copyright.

I must also stress that I appreciate what GitHub does for the open source community and this feedback is only to bring to light this issue for positive gain.

Thanks

Jon

GitHub

HI Jon —

We will definitely take theses issues into consideration, both from a legal/Terms perspective as well as with respect to potential product improvements. Thanks again.

-Jesse=

 

Envato Tools and Documents

Envato seems to be the leading force behind the ‘Split License’ model and as such they have documentation on how to make Templates in the correct format which I am sure they have run past their lawyers.

 

Conclusion

I am just going to go over the main points I have learned

General

If you own the copyright you can distribute that code under more than 1 license. Currently I do not know of the exact mechanism for this but you could create 2 zip files, each one having a different license.

Permissive Licenses

These are far simpler to understand and are probably why they are getting a higher adoption that the GPL licenses. You do not need to be a lawyer to understand them. However the trade of is that they can be used by commercial and proprietary systems that are not public. These licenses do not ensure that you code of future iterations of the code will remain in the public sphere, this in its self has pros and cons.

The BSD license comes in several variants;

  • The 2-clause BSD License (or Simplified BSD License) is totally equivalent of the MIT License.
  • The 3-clause BSD License (or New BSD License) adds one clause, specifying that neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from the software without specific prior written permission.
  • The 4-clause BSD License (or Original BSD License) is no longer used.

Over time clauses were removed from the BSD license until it was the same as the MIT license and this is one of the reasons everyone uses the MIT license as it is easy to understand and there is only 1 version to choose.

Most people use the MIT license for simple code and a permissive license but where patents are an issue then they use Apache 2.0, this is the choice that seems to be the most recommend on the internet including from GitHub and Choosealicense.com

GPL Licenses

  • There are different version of most of the GPL licenses effectively v2 and v3. The v2 license with the “or later” clause is the most popular.
  • The GPLv2 and GPLv3 are different and the main differences are the inclusion of 2 clauses covering, Tivoization and patents.
  • The GPL licenses are a viral license. The means that when you use someone else’s code in your GPL software it becomes licensed under the GPL license. This is also conversely true, if you use someone else’s GPL code in your code, then your code becomes licensed under the GPL license. This is the natural of a Viral Copyleft license. The LGPL license does not follow this rule.
  • The LGPL is called a weak Copyleft license as it allows itself to be including in other people’s software without that software being required to become licensed under the GPL. The LGPL licensed code that is added does still need to be distributed under the LGPL terms but these are not force to the rest of the software. The GNU GPL people don’t promote this license, but they have made it none the less. However
  • The AGPL license covers running GPL software from a server where the end user is never likely to see the source code but establishes that the source code must be made available.
  • Output content from such things as Joomla or WordPress are not covered by the GPL, it does not extend to the content.
  • You can sell and distribute GPL code freely even if you did not make it or own the copy right. This is a legal thing.
  • The GPL license cannot be applied to ‘Public Domain’ stuff because by its nature the assets do not, and cannot have copyright assigned to them.
  • Just putting the license within the root of the software does not make it licensed under the GPL. You need to add copyright notices along with the fact that it is licenses under the GPL in all source files. You do not have to adds it to every file but is better because if any of your code is used those copyrights and license need to stay in place.

GPL and WordPress

This debate which is now over really made clear some things about the GPL license.

It was put that the themes of WordPress were not derivative works but separate works and should not be covered under the GPL. Mark Wallenburg the founder of WordPress decided to get the software foundation to examine the case and give a legal answer.

The answer that came back is, In a WordPress theme:

  • The PHP code is a derivative work of WordPress and as such WordPress’ GPL license now covers the theme’s PHP code
  • The CSS and images are class a separate works and therefore are not covered by the GPL, even though they are in the same zip file. I also assume this covers other media such as videos.
  • Javascripts have a specific exemption within the GPL that is, if they are only referenced/loaded by the browser and they take no part in the server side processing then they are not covered by the GPL and are classed as separate works.
  • You can cover the assets (CSS, JS, Images and other media) with a proprietary license should you wish.

This gave rise to the split license. So now it has been proved that split licenses are legal and compatible with the GPL it does not fit in with Marks ethos for WordPress, so he made as a condition to upload extensions and themes to worpress.com then those extensions and templates must be 100% GPL compatible. This includes all the assets within such as CSS, JavaScript, images and more. I do not know how this would affect extensions that use other software, libraries etc... This is not a requirement of the GPL what mark has done but a WordPress thing. Drupal and Joomla openly accept extensions and templates with a split license. Evanto WordPress themes can either be 100% GPL or a ‘Split License’, the author gets to choose.

So this case study clearly deals with separate assets within a zip file or template and says that they do not automatically get covered by the GPL but can be if you choose and assuming you has the right to do this.

This ‘Split License’ is a way that some software houses can control their software distribution but comply with the open source nature of WordPress, Joomla, Drupal and more that use the open source model or specifically the GPL license.

Patents

Software cannot be patented; you can patent a method, process, etc., as long it is novel and non-obvious.

If you are worried about patents, don’t put your code into the public domain and if you decide you really need to then either use the Apache Permissive license or the GPL family of licenses (GPLv3 or equivalent) which have specific patent clauses in them.

Finally

If you are still not sure what license you want or should use, do not publish your code publically and keep it closed source. Also seek a lawyer’s advice on what to do next. Until you publish nothing has been written in stone and can be fixed.

The article should at the very least of informed you of what questions you need to ask.

My Choice for open source software:

  • MIT = I want it simple and permissive
  • Apache = I want it simple and permissive but I am concerned about patents
  • GPLv2 (with or later clause) = Free Forever, High GPL compatibility, benefits the community, can select newer version of GPL if needed. My code cannot be used in closed software.
  • GPLv3 (with or later clause) = Free Forever, benefits the community, has Patent clause to protect me, can select newer version of GPL if needed. My code cannot be used in closed software.
Read 20263 times Last modified on Wednesday, 13 December 2017 12:15