Take inventory of licenses for third party code prior to distributing your application

  Follow me: Follow Bruce Kirkpatrick by email subscription Bruce Kirkpatrick on Twitter Bruce Kirkpatrick on Facebook
Mon, Jan 28, 2013 at 12:50AM

Most developers don't need to worry about legal use of third party software when all code stays behind the corporate firewall and is never sold or shared with others.  However, I want to give our code away as free open source projects.   Over the years we have relied on various third party Javascript, PHP and code examples to build our application and when you do that, you need to be sure you keep inventory of the associated licenses and ensure you have the right to distribute those projects along with your application.

Last night, I researched all the licenses used for all of the third party code I've used to make sure I'm using them all correctly.  In a few cases, I needed to restore the license file.  I ended up with 25 different third party projects after removing some of the unused ones.

Fortunately, I had been careful in the past to not use commercial proprietary code.  After this review, I found that all of the projects were using MIT, GPL, MPL, LGPL and/or BSD licenses, which are compatible with each other and can be distributed as long as I include the licenses for each.

The way these third parties license their code doesn't put any limitations on how I license my code.   However, someone adopting my project will need to agree to all of the licenses across the entire suite of software.   Fortunately, if a developer doesn't plan on re-distributing my source code, they wouldn't need to be very concerned with this.  Nearly all of the third party code is written with Javascript, which is publicly visible anyway, so it's harder to protect.

When reviewing which license all the most notable CMS solutions have chosen, it was clear that most are using the GPL license

Including some of the ones I consider my biggest competitors including Wordpress, Joomla, Mura and Farcry.

GPL is also used for most linux based software like MySQL and Linux and this is because it is designed to prevent companies like Microsoft from reusing that code commercially without also releasing their source code under the GPL license.

The GPL license says you can make free copies and changes to the source code and that you must pass these rights on to anyone that uses that  source code.

It seems frameworks are generally more free, with a "do whatever you want license", which makes it easier to use them on proprietary software projects:
Codeigniter is a Custom Free License
Symfony is MIT
Jquery is MIT

Railo is LGPL - which means you can do commercial add-ons for it and still distribute everything together and prevent piracy as much as you want on your code.  This makes Railo a bit less restrictive them most other "free" software.

The GPL license requires that anyone selling commercial plug-ins would be required to make their source code available for those plug-ins if the user requests it.  The LGPL license would not try to dictate this condition to plug-in developers.  There is a lot of negative press regarding WordPress plug-ins being required to be GPL license, and it really doesn't make much sense in my opinion and probably discourages WordPress development somewhat.

It seems that releasing the project as GPL but with the exception that plugins and themes can be licensed differently would be the best compromise.  This allows people to distribute it easier, which will allow it to be used in more situations when proprietary uses are required.

Bookmark & Share