Posted on | September 26, 2007 | No Comments
I’m up to my ears in software license politics.
There are many people ‘pushing and shoving’ in the legal arena where free software is developed. In one corner, Richard Stallman, steadfast as ever holding on to the ideals of the GPL. In another is Linus Torvalds who hates those ideals but loves the license. Then there’s the folks behind BSD who want everyone to use their license. Add to that the meyhem of hundreds of fed up software authors who just want to release a program and end up writing their own license which others take, modify and re-release. So, how does one decide with so many choices, most of them bad?
When I first started writing software, we licensed our programs like this :
* Booger, version 2 By Joe Public, January 1924
* If your cat gets pregnant because you used this,
* its not my fault.
* Donated to the public domain, hopefully you like it.
* Compile this program by typing :
* pick --disable-eating booger.c
I really, really like the GPL2 license. GPL2 enabled quite a bit of the free software that we use and improve today, like Ubuntu. Unfortunately, there were some really tricky loop holes in the GPL, Richard Stallman and the Free Software Foundation patched these holes and the brawl turned into an all out bar fight.
Tivo pulled a nasty trick. Tivo designed a computer (yes, a Tivo is a computer) that you buy, loaded with free software .. but you can’t modify the software. Therefore, you don’t get the four freedoms granted by the GPL. Your free to study it, share it, use it .. but you can’t modify it to suit your needs. This was not entirely Tivo’s fault, because a Tivo records live TV into digital formats, there are many copyright issues that had to be settled. A Tivo could easily be modified to re-broadcast live TV all over the Internet. Tivo had to, in order to succeed, give media giants some assurances that a Tivo would help, not hurt profits for their venture to become a supported success.
What Tivo effectively did was force the GPL to become more restrictive to industry when it comes to regulating what you can and can not do with free software that is specifically tailored to be used in homes. That, friends is why I don’t own a Tivo. Earning money from my free programs is hard enough, Tivo made it harder.
SRCE is one of my programs. SRCE does neat things like allow you to control thousands of computers from one place. SRCE uses nearly all of its own functions and does not rely on the Kernel of your operating system for anything. It will build and run just as well on old and new Linux Kernels, some people have reported success porting SRCE over to micro kernels like Minix with ease. Effectively, SRCE gives many computers running a Unix-like operating system a very efficient, non blocking ‘middle ground’ to control each-other securely and push files around.
I’m ready to put the final touches on SRCE, which involves just a little more documentation writing and packaging to make it play well with any flavor of GNU/Linux. Now, I need to re-license the software because its under the GPL2. SRCE is extremely attractive to appliance makers like Tivo. It would allow them to securely push media (or have devices get media) plus remote control of the user’s appliance. I’m not comfortable with a company like Tivo having control over something in your living room facilitated by a program that I wrote. This leads me to want to adopt the new Affero GPL license (the strictest one) which would prohibit Tivo from using my program in this manner.
Using the AGPL would shoot me in the foot. SRCE comes with two parts, a client and server. I need to be able to compile special versions of the client with a built in key to send to customers without source code (or key source), permitting them very limited control over some things on my network (such as re-booting a computer that they lease). If SRCE went to AGPL, I’d be violating my own license by doing this.
Now we move on to the idea of dual licensing SRCE. That would just bring me under the same fire that Red Hat and MySQL enjoy, however, it does solve some major problems:
- I can use SRCE as I need to use it (and for its original purpose)
- I can make deals with appliance makers offering them a license to use SRCE with restrictions on how they use it, being more or less restrictive than the AGPL (depending on the company)
- I can allow education partners (one university has already asked) a very permissive BSD-like academic license. Such a license would have strong anti-patent wording, but not mandate that they convey the full source code to students. This is needed, as the question was “Can I give students the socket libs but not the program”.
- I can make deals with web hosting companies, or companies that write control panels and offer licensing which relieves them of their obligation to convey the full source code to the client program, effectively making the client an executable key to a lock.
That sounds desirable, yes? Not quite. I would not only have to write each sub-license, I’d also have the responsibility of tracking and enforcing each license. One of the biggest reasons that I love and use the GPL is the help that programmers receive (legal help) should their copyright or license be violated. I can’t write my own license and expect the help of the Free Software Foundation in enforcing it.
I’m a programmer, not a lawyer Releasing software never used to be this difficult. I’ve got to decide quickly on a license option, or pull SRCE out of circulation, it was downloaded 15,000 times over the last 45 days, mostly by IP addresses in Asia (you know what that means, its probably already on videoke machines).
I talked to Alex Karlov, the co-author who lives in Siberia. His response, “I live in Russia, there is no such thing as copyright here, I don’t worry about such things”. Great, all I have to do is move to Siberia and the problem is solved!
There has got to be a way that I can keep SRCE completely free and make a little money from it in the process. Free software developers need to eat too SRCE took a couple of years to get to the point that it has. Making my own license really worries me, leaving it under GPL2 really worries me.
Adopting GPL3 for SRCE really hinders me because SRCE uses its own libraries, which could no longer mix with GPL2 programs that must remain GPL2 for various reasons (mostly dis-agreements from copyright holders). This means, improvements made to the libraries (or code from the libraries used in the GPL2 programs) could not find their way into the GPL3 version, unless I maintained a dual license (2 and 3), but then, what’s the point of having it under the more restrictive GPL3 if the same thing is available under GPL2? Argh! Maddening I tell you, Maddening.
If I take just the libraries from SRCE and release them as LGPL3 (or 2), I’ve basically defeated the purpose of adopting a more restrictive license. It is very important to me that my software is not used in a ‘tivo-ized’ way. Can someone please point me to something that I can do with my computer that is not haunted by patent or licensing issues? Whatever that might be, I’m happy to just go do that.
Tivo took quite a bit of the fun out of my hobby, please keep this in mind when you consider purchasing a Tivo. They really hurt developers who feel a degree of responsibility to ensure that their stuff is used as we intended it to be used.
GPL3 fits like a glove on every other program that I have developed. It would figure that Tivo pulls this stunt just after I spent a few years of my life writing a program that they would just love to get their hands on.
Its very interesting to be stuck in the middle of something where no middle ground seems to exist. I’m looking at a multi-billion dollar a year industry that was built on the backs of hobbyists. Every time I see this, I have to shake my head and wonder how I didn’t see it coming, I guess I was too busy writing software and building stuff.