Monday, August 14, 2006

The Honest Public License

A few weeks ago, I wrote a post about my way of doing dual licensing, keeping myself honest with the open source community. Today, I would like to turn the table and ask the community to be honest with itself.

The problem I am addressing is the famous "ASP loophole" of the GPL v2. Famous because everybody in the industry talks about it, but nobody has ever done anything about it ;-) The loophole is easy to explain: GPL v2 talks about distribution of software and includes a
copyleft clause that triggers when you distribute your code (that is, everything around the code becomes GPL as well). In 1991, we used floppies to distribute software. I still remember booting Linux with the boot and root floppies and getting the network piece of the OS with N1, N2, etc. Nowadays, the world of software is seeing a shift to distributing software as a service (SaaS). I believe 90% of the software will be distributed as SaaS in the coming years.

What's the ASP loophole? Some people interpret distribution of software as a service not as distribution of software (because GPL v2 was created before web services were on the horizon and therefore did not address them in the license). They believe that they can use open source software to offer services to the public, without returning anything to the community. That's taking open source software as free beer. It is just not being honest with the community, to the people who sweat to write the code to see someone running away with it and not contributing anything back. That's totally against the spirit of free software and the GPL. You have the freedom to use it for yourself or internally in your organization, but when you distribute it to the public, you have to give back to the community. It is that simple. That's the spirit of GPL. That's why open source will take over the world of software: it creates great software and phenomenal support.

I have always included distribution of software as a service in my interpretation of the GPL, but I am not a lawyer. And lawyers always find a way around something, if it is not spelled out in a clear way (I am talking about my brother, mostly ;-) Therefore, for my interpretation to be valid, a brief clarification of the GPL v2 is needed.

That's why we created the first draft of the
Honest Public License, a slight modification of GPL v2 with just an additional paragraph (here you can see the diff between HPL and GPL v2). We took that paragraph from the latest draft of GPL v3, relaxing it a bit (what's in GPL v3 was taken from AGPL, but I feel it to be too strong, since it is not based on trust -> I trust my community, I do not need to force them to open a service for me to suck up their code). The goal is to make HPL upward compatible with GPL v3 as much as possible (one note: the FSF is thinking about the ASP loophole, not just Affero or me ;-) We sent it to the FSF for review (I would love to keep the preamble, if they allow me to do it), to lots of open source luminaries (that gave it the thumbs up) and intend to submit it to the OSI.

The goal of HPL is to keep the community honest with itself. The use of the name "Honest" is ABSOLUTELY not intended to mean that GPL or any other licenses are dishonest. It is quite the opposite, actually. But some people are taking advantage of a GPL legal loophole and are defeating the spirit of the GPL. HPL is just GPL extended to cover the distribution of software as a service to the public. It does not take away any freedom (i.e. you can use it internally in your corporation), it just covers when someone distributes the code to the public (whether with a floppy or as a service). It is meant to keep people honest with their community.

What motivated this new license now? We have a general availability version of
Funambol coming out in September. I already know there are commercial companies that are live with our code and do not return anything. More than two years ago, we did something similar, switching Sync4j from BSD to GPL. There were companies taking our code and running away with it, without returning anything. One even managed to get public with software based on our code, and our community never saw a line of their modifications. Now is no different. On top of this, I followed a discussion on Matt's blog, which made me think that nobody has ever done anything about the loophole because large interests are at stake (I really would love to see the improvements to the Linux file system that have been made, I could use them for my open source project ;-)

In any case, this is a battle for open source, not against anyone in particular. It is a fight to keep the spirit of open source alive, more than anything else. We'll keep the license open for comments for thirty days (please click on comments below to leave your opinion) and then we will finalize it. My hope is that HPL one day will disappear because GPL v3 will supersede it. I plan to work hard to make it happen in the upcoming months.