Wednesday 20 June 2007

Understanding the Open Source Licenses

First, to qualify what an open source license is: It doesn’t always mean that the general public is free to contribute, modify, or distribute the code or even that the licensed software is free of charge. At the base, open source means that if you ask nicely, they’ll let you see the source code, and you can at least modify it to suit your needs. Hence the distinction between Free (as in freedom) software and Open Source.

But there’s all kinds of shades between the two. The Open Source Initiative lists something like 50 licenses approved as meeting their definition. Some entities restrict redistribution for commercial reasons, or contribution for purposes of security or quality control. The most common licenses you’ll encounter:

GPL This is the Free Software Foundation’s own General Public License. It grants the most freedom, to obtain, modify, re-distribute, and even sell the software at a profit. The sole requirement is that you do not restrict others from enjoying the same rights - so it’s “share and share alike”, down to including a copy of the license for the next user. That’s version #2, the current version used by projects like the Linux kernel and the Gimp. The new version #3 which is creating quite a stir is aimed at adding further restrictions such as preventing GPL code form being used for purposes such as DRM. The dust is far from settling on this one! Even if it goes through, there’s nothing to stop anyone from continuing using GPL2.

MPL The Mozilla Public License, which is the license of Firefox, Seamonkey, and other derivatives. Somewhat like the GPL, with some provisions for intellectual property (the Firefox trademark logo). This exception led to the recent public snit between Debian and Firefox, where Debian ended up releasing its own version of Firefox, named “IceWeasel”, to dodge the logo issue. Debian, one of the oldest surviving Linux distros, frequently finds itself in a ‘watchdog’ position on matters of what is and isn’t legal.

CDDL Common Development and Distribution License, used by Sun for Open Solaris. Slightly more restrictive that the MPL, the open development must take place under Sun’s watchful approval and control, with very few rights to redistribute. Sun is pondering switching to GPL for Solaris, as they already have for their Java language.

BSD used in some form for all of Berkely Software Distribution software (Open BSD, Free BSD, etc.). The greatest freedom you can have, generally granting free use for any purpose at all, with the sole restriction that the supplier isn’t responsible for a blessed thing at all, at all.

The examples go on forever, and distinguishing between them is a job for language lawyers. Most of them are exactly the same for the end user; generally you can do what you want on your own computer. For programmers, however, the issue becomes muddier, as questions arise to what license is compatible with what other one, what license allows what right, and so on ad infinitum. Licenses are in a constant state of flux, with new versions popping up all the time. Just be aware that I’ve glossed over a lot, and of course this site is not for legal advice. I’ve also left out enough political/idealogical debate to fill the library of congress… aren’t you glad?

More info:

The Wiki definition of Open Source

The Free Software Foundation

The Debian License Page

No comments: