Linus Torvalds" BitKeeper blunder

03.05.2005
Von Neil McAllister

Open source developers, as you might expect, typically use free compilers, editors, and other tools to build their software. But three years ago Linux creator Linus Torvalds began using a proprietary, closed-source software version control system called BitKeeper  to maintain the source code for the Linux kernel. It was a controversial decision, to be sure, and one that appears to have finally -- and perhaps predictably -- come back to bite him.

Version-control systems facilitate collaborative software projects by maintaining a central repository of source code. Developers can "check out" a copy of the code from the repository, make their changes, and then check their modified versions back in. The system resolves discrepancies between the different versions so that all the changes are eventually worked into a unified whole.

To check out code from a BitKeeper repository, you must use the proprietary, closed-source BitKeeper client software. Although BitKeeper"s creator, Larry McVoy, offered the client to open source developers free of charge, provided they complied with his license agreement, this arrangement didn"t sit well with those who preferred to maintain the spirit of free software in everything they did. Nonetheless, Torvalds felt BitKeeper was the best tool for the job, so he brushed these complaints aside.

Enter Andrew Tridgell, uber-hacker and Samba creator. Tridgell felt that if the Linux kernel source was to be kept in a BitKeeper repository, there ought to be another way to access it using open source tools. So he wrote a tool of his own after reverse-engineering the BitKeeper protocols. That"s when McVoy called foul.

McVoy claims Tridgell"s client violated the noncompete clause of BitKeeper"s license agreement. He says you must use the no-cost version of the official BitKeeper client, the commercial version, or nothing at all.

Tridgell protested. He hadn"t violated any license, he said, because he"d never agreed to one. He"d never even used McVoy"s BitKeeper client; he merely intercepted the server"s communications as they went across the wire and decoded them. But ultimately McVoy, still annoyed, chose to recall the free version of his client software in late April. From now on, open source developer or not, if you want to use BitKeeper, you must pay.

Let"s ignore who"s right or wrong in the McVoy/Tridgell debate for now. The upshot is that the Linux kernel project needs a new version-control system. And that makes Torvalds unhappy. The problem is, he should have known better from the start.

Torvalds seems to have fallen for the "free beer" argument: He didn"t have to pay for BitKeeper, so he figured it was good enough. But not having to pay is not, and has never been, the real purpose of free software. The point is to avoid the situation Torvalds eventually found himself in: McVoy didn"t like how his product was being used, so he took his ball and went home. Could you afford to switch gears in the middle of a project if one of your key software vendors did the same?

The business community likes to distance itself from the ideological debates surrounding free and open source software, but the BitKeeper case is a prime example of why enterprise IT management can"t ignore software licensing issues. You don"t want your PBX vendor telling you how to use your phone system, or your printer vendor telling you what to print. Wouldn"t you prefer software that didn"t tell you how to run your business either?