Thursday, May 31, 2007

Don't be dumb, give it an A (GPL)

Today the FSF has introduced the latest draft of GPL v3 and, at the same time, of AGPL v3. I am not going to comment on the changes of the GPL v3 (although the compatibility with Apache licenses is a great step forward), but I would focus on the AGPL v3 (a.k.a. GNU Affero GPL).

In a nutshell, AGPL v3 is the same exact document of GPL v3, with an additional paragraph on Section 13, which says:
Notwithstanding any other provision of this License, if you modify the Program, your modified version must give all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to copy the Corresponding Source from a network server at no charge.
What this means is: if you run this software as a service (SaaS), everything else here applies. You must give back the source code. It closes the in(famous) ASP loophole.

Now, my suggestions on the last draft were:
  1. Do not make the provision as in the current Affero license, that forces the ASP to offer a service to download the source code while you are using the program (insane, think how you could apply this to mobile phones)
  2. Do not let Affero Inc. own the license but make sure it is managed by the FSF
  3. Make it OSI approved
It might be my lucky day... since they just created the next HPL (but compatible with the other licenses) and:
  1. The provision stated above is just perfect. You have to give the users an opportunity to receive the source code. CVS will do it.
  2. They changed the name of the license, adding GNU at the beginning. It is pretty clear who owns it now ;-)
  3. It is exactly as GPL v3 and I bet it will be OSI approved the day after it is final
The FSF did another interesting thing, compared to the last draft: they changed the license number of AGPL to v3 (from v2, as in the previous draft). So... there is no AGPL v2, like there is no Funambol v4... Aligning the two version numbers makes a lot of sense to me and it will prevent confusion.

Bottom line: if GPL v3 and AGPL v3 are exactly the same document and are 100% compatible, why would an open source developer choose to allow people to run its software as a service without returning the code to its community? It does not make any sense... Zero, nada... Every single developer that will have to choose between GPL and AGPL will go for AGPL. I guarantee it.

The only risk is ignorance. Therefore, the next fight is making sure that the entire open source community knows about AGPL. Let me start here.

Do not use GPL. Don't be dumb, give it an A. That's AGPL (and yes, I might have a t-shirt for OSCON ;-)