A Brief Word on Open Source Licensing and Content Management Systems

Posted in Web Design by John Learn on 25 March 2011

Are you looking into building a website with an open source content management system, but are worried about potential licensing issues? Most of the time, you needn't fret, but there are certain instances when your CMS’s license becomes very important.

First of all, why are open source CMS’s distributed with licenses?

It’s a matter of protecting the intellectual property rights of the creators of the CMS software. The authors of a piece of software get to define how that software can be used or modified; that’s their legal right. That’s why Apple can say that Mac OS may only be used on Apple hardware and why the free software foundation can sue Cisco for including their publicly available code in their routers.

Some folks don’t care what happens with their software after they’ve written it and make its source code available in the “public domain”. When in the public domain, others can do whatever they want with that software: use it, decompile it, modify the source, even resell it.

Usually, however, the authors want to instill some sort of restriction on the use or modification of the software. For example, if someone takes a developer’s code and alters it slightly to meet his needs, the original developer might want to be credited in some way noticeable to the end user. That's where the license comes in. It provides specific instructions on how (or if) the product and its source code can be used, modified or distributed.

So, what if I need to make changes to the source code?

Generally, open source licenses permit you to make modifications to the source code so that you can fix bugs, add functions and generally hack it up however you want to fit your specific needs. When you wish to redistribute your changes, however, things get more complicated.

It’s important to note that “redistribute”, doesn’t mean “use”. If you want to make changes to the CMS powering your website and then open it up for use by folks on the Internet (or a specific subset thereof), you’re not redistributing the work. It’s only if you take your modified CMS and give it — in source or compiled form — to someone else to use or adapt for their own purposes that you are redistributing it.

Why would I care about redistribution then?

Often, you wouldn’t. If you’re building a product that you intend to resell, however, you most certainly would. If, for example, I decide to modify the Joomla source code with specific features useful for photographers — a digital camera interface, perhaps — and then sell that new “Photography CMS” as a product that can be installed on a purchaser’s own web servers, then I may run into problems. Depending on how I do that, I may be violating the terms of the GPL license under which Joomla was released.

So, what can I do/not do with MY CMS?

It’s probably easiest to answer this in table form. Below, each CMS is grouped by its license. Each row contains a question that you may have thought about in this context and it’s answer for each license. Click on the license name to read the specific details of that license.

License
GPL BSD MIT
CMS Systems WordPress, Joomla, Drupal SilverStripe DotNetNuke
Can I run a public website using the CMS? Yes Yes Yes
Can I modify the CMS source code to suit my website? Yes Yes Yes
Do I then have to publish those changes? No, unless you're redistributing your changes No No
Can I make changes and then resell or otherwise redistribute my “new” CMS product? Yes, with restrictions Yes Yes
Can I redistribute my changes to the CMS under a different license? No Yes Yes
Can I redistribute my changes to the CMS without redistributing the source code as well? No Yes Yes
Can I redistribute the CMS with third-party components that themselves are under a different license? No Yes Yes

Conclusion

If you’re building a website for yourself, you don’t really need to be concerned about the license your open-source content management system comes under. If your intents are to produce a product from your changes, you might want to have a closer look at that license.