Archive of UserLand's first discussion group, started October 5, 1998.

Open Source Agreements

Author:Eric Kidd
Posted:8/21/2000; 3:59:51 PM
Topic:A History of "Open Source"
Msg #:19889 (In response to 19861)
Prev/Next:19888 / 19890

Another issue. The GNU agreement is impossible for an honorable developer who does both commercial and open source software to use. This is also a rider. It hurts open source, because it keeps out people who don't fully subscribe to the Stallman philosophy, but still want to make a contribution.

The BSD developers have been making this exact argument for years. They never bought into Stallman's beliefs. They did their own work, and used their own licenses.

Someday, I want to write a third history of open source software, told from the perspective of the BSD developers. They're certainly no less important than the GNU Project, or the Minix hackers who came to the aid of Linus.

Open Source Agreements

There are way too many open source licenses out there. I'm going to divide them into three categories:

I discuss each category below.

"Do Anything You Want"

This is the approach favored by FreeBSD and the XFree86 Project. This code can be used by anybody, for any purpose.

If you use the XFree86 license, you won't create outages for anybody.

(The BSD license works the same way, but there are some buggy versions floating around. It's easier just to recommend the XFree86 license, and avoid the risk of using an obsolete version of the BSD license.)

These licenses provide a wonderful common ground, because everybody can use this code, and everybody can contribute to it. Such code could become part of anything from Radio Userland to the GNU Project.

Unscrupulous Middlemen

But sometimes a developer decides to give away a major application, one which represents many years of work.

There's a big risk here. The world is full of unscrupulous middlemen. And more than a few folks would be happy to exploit such generosity to earn a quick buck.

This is what happened to the first generation of BSD developers, by the way. Back in the 80's, they released some wonderful code under a BSD license. They invited the Unix vendors to build on top of this code, and to contribute something back.

The Unix vendors thanked the BSD developers profusely. And then, without a flicker in their smiles, the Unix vendors knifed the BSD developers in the back. They took the BSD code, made it gratuitously incompatible in a thousand different ways, and sold it as their own products. (Out of a dozen companies, only Sun Microsystems and Digital contributed anything significant in return.) AT&T's lawyers, though, were the ones who twisted the knife--they snarfed the BSD code into System V Unix, and then promptly filed a lawsuit against the BSD developers.

Such gratitude. This event was probably the greatest tragedy of the Unix wars.

"I Expect You to Share My Code with Others"

This sort of tragedy is why Stallman wrote the General Public License. The GPL is about ten pages long, but the basic request is simple:

"I shared this code with you. If you give my code to other people, I expect you to give them the same rights I gave you."

The GPL protects the Linux kernel. This time around, EvilScumCorp can't knife Linus Torvalds and the other kernel hackers in the back.

But the GPL causes serious outages, too. The FreeBSD developers can't just borrow several pages of code from the Linux kernel--they need to locate a few dozen developers and get their permission first. The Linux developers, on the other hand, can easily use code from FreeBSD. For example, the Linux TCP/IP stack is based on BSD code. [Update: Well, not quite. Mr. Felter and I discuss this topic below.]

So the GPL is a decidedly mixed blessing: It protects developers against dishonest middlemen, but it also makes life hard for honest developers working on other projects.

If you ever want permission to use GPL'd code in your own project (under different terms), ask the author. If you're honest--and you're not talking to Stallman himself--you'll probably get permission. If you look like a slimeball middleman, you'll get run out of town.

"Please Consult Subsection 3(c)"

Certain coporations want to join the open source community, but they employ too many lawyers to ever co-operate with anyone. These companies write their own licenses, even longer than the GPL, and throw in all sorts of incomprehensible legalese.

I was once negotiating with a lawyer to release some wonderful code as open source. She was using a modified version of the Mozilla Public License, with lots of sections entirely missing. I asked her why she had cut stuff out. She said that the MPL was utterly incomprehensible and "gave lawyers a bad name."

We eventually agreed to a no-outage compromise. Her company would release the code under two licenses: a simplified version of the MPL, and the standard GPL. In turn, our project would release our enhancements under both licenses as well.

This way, Stallman could use the code in the GNU project, but the lawyer's company would be able to use their own licensing terms as well. This was a very awkward bit of legal gymnastics, and I don't recommend trying it unless absolutely necessary.

The Mozilla project is currently going through the same process. If you try to use a license like the MPL, you'll probably encounter the same headaches.

So please try to keep things simple, if you can.

What I Do

I hate outages. So most of the time, I use the XFree86 license.

But I also hate lying, thieving middlemen. So if I'm expecting to get ripped off in a big way, I use the GPL. In this case, the rules are simple--you can use my code, but you have to match my generosity measure for measure. If you don't like my terms, you can contact me personally. If you want to screw me over, we can see each other in court.

Why Certain Investors Like the GPL

Nautilus uses the GPL, by the way. This is how Eazel protects their investors from EvilScumCorp. And if you don't think that EvilScumCorp has joined the Linux community, read the following article in Upside:

In short, this week's LinuxWorld was a tale of two conferences. On the one hand, you still had the same old hackers discussing the best way to improve the Linux kernel. On the other, you had the high-tech business community playing its usual game of 32-dimension chess.

I don't really mind the chess game--I just don't want to see the Linux community be the biggest loser of all.


There are responses to this message:

This page was archived on 6/13/2001; 4:56:08 PM.

© Copyright 1998-2001 UserLand Software, Inc.