Amazon.com Widgets A Note on Delphi Open Source Licensing

A Note on Delphi Open Source Licensing

By Nick at May 12, 2011 23:29
Filed Under: Delphi, Software Development, TechBiz

I love open source code.  I love the notion of sharing and working together for the betterment of a community. I love the free stuff that I can use because of the generosity of open source developers. 

Open source development often can be bogged down by licensing decisions.  I don’t know how many bits have been spilled arguing over the exact meaning the Lesser GNU Public License (LGPL), or whether the GNU Public License (GPL) is one step away from a socialist worker’s paradise or not, but surely it’s a lot of bits. 

Well, I’m going to spill a few more.

I totally get the GPL – I respect it, and I laud the folks that do work on GPL-based projects.  They are really giving away for free (as in speech) their work to others.  Linux exists because of the GPL. I get why the license exists. I understand the whole “Free Beer/Free Speech” thing.   Some amazing, awesome things exist because of the GPL.  It’s all good.

However…..

The GPL is completely incompatible with commercial software.  Totally, utterly, and completely incompatible.  If you use GPL source code in your commercial application, you are obligated to release your entire application as a GPL Open Source project.  Everything.  Obviously, if you sell your software, you very likely don’t want to do that.  (I recognize that there are folks that will, and more power to them…..).

Now, Delphi is a development tool used by a whole lot of businesses – businesses that are likely not to want to make their source code available under the GPL.  And so open source projects that are aimed at Delphi developers make a very limiting decision if they release their code under the GPL.  A Delphi library of code with the GPL attached to it will severely limit the number of Delphi  users that can or will use that library. 

Many of the popular open source libraries for Delphi use a much less restrictive license.  All the Turbopower code was released under the Mozilla Public License (MPL) which is much less restrictive, only requiring you to share any changes you make to the MPL project itself.  Others use the Apache License which is very permissive.  But some do use the GPL.

Now, I’m going to give some advice to those folks who publish Delphi source code under the GPL:  Issue it under an alternative license – one that businesses can handle.  I’d recommend MPL at the most strict end of the spectrum.  We are going to start using the Delphi Spring Framework, and that is licensed under the very friendly Apache license.  I’d love to use the Emballo framework as well – particularly for the Mock object classes, but it is licensed under the GPL, and so we really can’t touch it. A project like the Emballo project is also available for use under the LGPL and worth considering.

The GPL is great – it works well in the Linux world and where other open source development tools reign supreme.  But for more commercial-based eco-systems like Delphi, a business-friendly license is much more in order. 

Comments (17) -

5/13/2011 12:21:10 AM #

Serg

You did not mentioned WTFPL ver.2 licence - http://en.wikipedia.org/wiki/WTFPL . Great for free opensource projects

Serg Russia |

5/13/2011 1:06:05 AM #

Sebastian Jänicke

Oh yes, I totally agree. We spend a lot of time in re-inventing the wheel. Just because someone decided to release only under the GPL.

I myself release every open source product under a triple license (GPL/LGPL/MPL). And perhaps I'll add a MIT style license too.

Sebastian Jänicke Germany |

5/13/2011 3:50:50 AM #

kmorwath

As many, you misunderstood the GPL: "They are really giving away for free (as in speech) their work to others". Nowhere the GPL says that. You can ask money for your programs, and ask money for the code. You are just obliged to make code available, at a price not higher than what you ask for the executables. Of course, those obtaining the code can modify and redistribute it.

kmorwath United States |

5/13/2011 5:56:53 AM #

Sebastian Gingter

One possibility is to offer the GPL and also a commercial, less restrictive licence.

If a business really wants to use that, it's likely that they think they want to use it because a) rewriting it is (more) expensive or b) it really good and saves a lot of time. Both is worth money to the company, so you can charge for it.

That also makes maintaining the project more fun, likly because someone pays money the maintainer can use for paying hosting etc. And it's a motivation to continue.

Sebastian Gingter Germany |

5/13/2011 6:17:13 AM #

HMcG

+1 for WTFPL,  http://sam.zoy.org/wtfpl/

But can I....
Yes, you can!

HMcG United Kingdom |

5/13/2011 8:42:16 AM #

Warren P.

I'm not aware of even one important Delphi open-source library that doesn't use an open permissive license (MPL/APACHE/BSD).

I have made some component contributions to big Delphi projects like the JVCL, and the fact that I could use my time at work, to take something that was 90% what I needed for my commercial application, and add it to my delphi app, makes it a net win for everybody;  Those who use my components after me, get a bit of a "leg up".  I started from somewhere other than "zero", and so did others.  Collaboration just makes economic sense for everybody, in this case.  

I applaud everybody who finds a way to make commercial closed-source development, and open-source development a matter of co-operation, which is mutually beneficial for all involved.  Delphi is an awesome piece of commercial software. And a huge amount of the ecosystem (third party components) that I rely on, are open source.  It's a very interesting hybrid situation.

Software development, and all knowledge-based endeavours are not zero sum games. We can all do more, when we all do more together.

Warren

Warren P. Canada |

5/13/2011 10:53:45 AM #

Craig Peterson

I agree, and would similarly advise against the LGPL.  A lot of people seem to assume that the LGPL and MPL are roughly equivalent, and that's not true since the LGPL requires the ability to relink the library.  That means either including the LGPL bits in a separate DLL or distributing your app's DCUs.  Some libraries use the LGPL and include an exception to allow binary linking, but in that case it really is close to the MPL, so you might as well use it and avoid any confusion.

Craig Peterson United States |

5/13/2011 12:45:41 PM #

Chris

Well, GPL works great in the world otherwise people wouldn't have noticed the license at all.
I wonder why there should be an exception to Delphi users? It is to the author what license s/he uses and if s/he don't want companies to use her/his closed source then nobody should persuade her/him. This article seems to me like a call to Delphi developers to help companies to work for them for free. But why?
I wonder what the companies do for the OSS project they use? Do they send help and money or do they just use the code for free? Shouldn't that be more like a symbiosis instead? I've seen a lot of companies which integrated a MPL project and never released fixes they made internally. Is is too much work? If that system worked, OSS projects like the ones from JEDI or Indy would have flourished. But they are getting older and older.

If a company really wants to use an OSS project, it still can ask the original author to use it in its project because the author can change the license. But that can cost money and if the author is no more available?... well that's life.


Chris Germany |

5/13/2011 12:51:38 PM #

Oliver

Really? See, you assume that people chose the GPL for some arbitrary reason. But perhaps they didn't?! I for one have much code released under lenient licenses such as BSD, MIT and others (including PD). But I also released code under GPL and maintain code under GPL. In all cases a very careful thinking process preceded the decision to choose either license type. In two cases I joined a project that was under GPL already, so not much of a choice from my end. And changing the license of a project with numerous contributors is almost impossible.

I agree that specifically for libraries the GPL is a rather bad choice, but it is the choice of those who do the work, not yours. And as well-intentioned as the post may have been, it comes a bit across as: "Give me all your code at my conditions".

See, someone actually has to do the work, has to document and maintain the code base. If people thought that they would get back anything - even just gratitude - they would probably release it under a more lenient license. But let me tell you, in all the projects in which I am involved only in one we receive an occasional donation. It averages at 50 USD per year, which does not even pay the hosting costs or, say, a code signing certificate. For all other projects the most I got was an rare "thank you", but more often annoyed comments about something the commenter didn't like about the code or questions to help them out with this or that (related or not) - free of charge, of course.

When people give something away "freely", it's either strings attached (GPL) or they expect to profit with career chances or receive some gratitude. From experience the expectation about gratitude (and I'm not just talking about the monetary aspect) barely ever works.

Remember, there is not just the choice between GPL and others. There is also the choice not to release code at all. I know I prefer the open source choice ...

Oliver Iceland |

5/13/2011 12:59:57 PM #

Barry Kelly

GPL (2) also works well for server-side stuff. If you're running the code on a server, you're not distributing it; and not distributing it means you don't trigger the GPL terms.

Barry Kelly United Kingdom |

5/13/2011 2:13:33 PM #

nick

Chris, Oliver --

Hey, I'm not telling anyone what to do -- I thought I was clear that the GPL is great and that people should release their code under whatever license they want to release it under.  

My only point is that if you release Delphi code under the GPL, the number of people that will use it is limited.  I'm not sure that is really disputable.  Delphi is to a large degree a business app development tool, and businesses generally can't use the GPL.

But by all means, license your code under whatever license you want.  

nick United States |

5/13/2011 4:29:56 PM #

Kyle

@Nick

I think the primary purpose of the GPL is to enforce a sort of quid pro quo transaction: namely if you use my code, I have a right to your code.  Of course, just because I release my code under GPL doesn't mean I won't release it to you under a more permissive license for a fee.  But in that instance, it's still quid pro quo, just money in exchange for code rights in that instance.

Kyle United States |

5/14/2011 1:16:47 PM #

Oliver

Nick, but doesn't that hold for other languages the same way? And doesn't the current landscape of projects and licenses across the various programming languages prove that it works?

I think the issue at hand is more that Delphi is only a comparably tiny market and that it caters a segment that is not very friendly to FLOSS (when compared with others). There are, without doubt, great FLOSS programs for Windows. But overall software specific to Windows is less likely to be FLOSS than that for other platforms. Consider that Delphi only forms a small part of those and you have an explanation why - in absolute numbers - there are so many less projects under more lenient licenses.

But I think the solution that problem space is less in the hands of the developers ;)

Oliver Iceland |

5/17/2011 4:50:06 PM #

DHR

Please see article about this:

QA Dept: Legally Blind
delphihaters.blogspot.com/.../...egally-blind.html

Smile

DHR United States |

5/17/2011 4:52:56 PM #

DHR

Hi Nick, how are you?

How can I notify Embarcadero of a source code leak?
delphihaters.blogspot.com/.../...ce-code-leak.html

DHR United States |

5/19/2011 9:12:00 AM #

EMB

Hey Nick,

  I agree with you.
But you explained not much about LGPL. I did not get what are your opinions about the use of it.

In other way, I know why "GNU-people" should not use it.
http://www.gnu.org/licenses/why-not-lgpl.html

Smile

EMB Brazil |

5/19/2011 1:52:14 PM #

Magno Machado Paulo

I'm the original author of Emballo. When I first released it, I was very careful regarding the license because I really wanted it to fit on commercial projects, and this is why I choose LGPL (and not GPL), because it protect the framework itself, while also permits it to be used on commercial, closed-source applications.

Magno Machado Paulo Brazil |

Pingbacks and trackbacks (1)+

Comments are closed

My Book

A Pithy Quote for You

"Never interrupt your enemy when he is making a mistake."    –  Napoleon Bonaparte

Amazon Gift Cards

General Disclaimer

The views I express here are entirely my own and not necessarily those of any other rational person or organization.  However, I strongly recommend that you agree with pretty much everything I say because, well, I'm right.  Most of the time. Except when I'm not, in which case, you shouldn't agree with me.

Month List