Skip to main content

More freedom, or less? (Or: Qt to be released under LGPL)

Posted by terrencebarr on March 30, 2009 at 12:47 AM PDT

A couple of weeks ago at FOSDEM in the Java Libre Room we had a discussion about whether pure GPL (as in 'strict' - with no exceptions) is still up to date given the evolution of open source and it's increased acceptance and use in the IT industry.

Pure GPL without any exceptions is a strong copyleft license. A key goal of the license is to safeguard certain software freedoms by requiring distributed derived works to be licensed under the same strong copyleft terms.

By design, the GPL limits the freedom of developers, users, and commercial companies in the way they can build upon, distribute, and license software that includes GPL-licensed code. Effectively, this also limits the use of GPL'ed code to likewise projects - and misses out on driving adoption of the code and functionality into the big pool of non-GPL projects and code that exists in the industry today. But isn't adoption a key measure of success for free and open source software?

On the flip-side, more permissive licenses (such as GPL with Classpath Exception, LGPL, APL, and others) give companies, developers, and users more freedoms in using and combining open source code. This tends to drive wider penetration of the code base and allows more people to benefit from the features of the original code. Undeniably, the trade-off is that some of the important software freedoms (such as the ones imparted by the GPL) are unavailable in this scenario or have much more limited reach.

To me this really boils down to a few very interesting questions:

  • Does pure GPL mean more freedom, or less?
  • Freedom for whom?
  • And what kinds of freedoms?
  • Is there a price to pay for adoption?

The release of Qt under LGPL is a great real-world use case for this topic. Some excellent arguments and counter-arguments are being made by Bradley Kuhn ("LGPL'ing of Qt Will Encourage More Software Freedom") and Richard Stallman ("Why you shouldn't use the Lesser GPL for your next library"). The discussion goes straight to the heart of the open source movement and free software philosophy.

I'd be interested in hearing your thoughts.


-- Terrence

PS: Many thanks to Andrew Haley from RedHat and Mark Wielarrd from Classpath for an insightful ongoing discussion on the topic!


Thanks all for the good comments so far.

-- Terrence

Adoption (or popularity) brings some benefits such as wider testing of the software, a bigger pool of potential contributors, and a perhaps a bigger market to sell related services into. And, all else being equal, a more liberal licence will increase adoption. Personally, I think there are sound arguments (involving value judgements of course!) in favour of compromising on "freedom" for the sake of adoption (which, incidentally, is exactly why I chose the LGPL for my project JFreeChart). I think the important thing is to understand the nature of the compromise. And choose according to your own circumstances.

Substantially agree with the above; in particular ronaldtm's observation about the different freedom levels in function for the perspective. I've just to add, in order to support the second assertion by samkass, that all the major customers I've worked or still work for have got, of course, explicit bans for FLOSS with potentially business-dangerous licenses (such as GPL). Stallman has got the merit of innovating the world, by introducting the whole concept of "open source", but I've no doubts that his approach to the matter is way too ideological.

GPL clearly means less freedom than LGPL. With GPL, no commercial entity will touch it, as it tries to spread itself to software written under a commercial model. And if people don't use it, people don't contribute to it. LGPL (or GPL with classpath) allows the full freedom of the library developer to be expressed while also giving the commercial entity full freedom to their works. As a practical matter, GPL'ing a library (as opposed to a full application) is a sure-fire ticket to obsolescence. If you exclude the 90%+ of the world from using your library, no matter how well-intentioned, then the majority of money and effort will go elsewhere. An alternative will pop up that will be cheap and good enough-- and might not even be LGPL. Even if commercial entities don't give back to LGPL as much as the author would like, certainly having people use it, file bugs on it, suggest improvements, etc., is a better state than being ignored. At best, you'll be creating an eco-system of development around your LGPL'ed library that allows both commercial and volunteer contributions.

GPL means more freedom to the *software*, and less freedom for *programmers* (or anyone who creates software). By that I mean a software you release as GPL (and any software someone creates using it) will remain free. The software will be free, not the programmers who may want to use it to create more software.

May be it depends alot on the product? As I can see - both Qt and Qt Jambi are losing in adoption to LGPLed competitors as GTK, Swing and SWT, beeing more powerful at the same time. For them LGPL may be winning strategy. Don't you think so? As for me, GPL is LESS freedom, I can't develop something based on GPL and leave sources at home, for example. But if I want to create something really free - GPL will guarantee that my product and all based products will be free also.