Enterprise Unix Roundup: The Bitkeeper Controversy
|Main||In Other News||Recent Updates||Tips of the Trade|
A few weeks ago we made passing mention of what has since come to be known as "the Bitkeeper Controversy." We knew there'd be more to say about the matter at a later date, but we weren't sure when that would be. As it turns out, we were just waiting for the right last word.
In a nutshell, Linux kernel development has depended in no small part on a revision management system called Bitkeeper. "The Bitkeeper Controversy" is another one of those baroque Linux stories that cause casual observers to shake their heads and go back to wondering if Longhorn will ship with a better version of Solitaire.
Bitkeeper was adopted after widespread complaints about how Linux leader Linus Torvalds was keeping up with the patches sent to him; its adoption prompted even more complaints because the software is not Open Source or Free. As problematic as Bitkeeper's license was, however, it solved a much bigger problem, which was the lack of a Free or Open Source alternative that could come near Bitkeeper's capabilities. In a case study moment of marketing insight, Bitkeeper's owner smoothed out the license objections not by taking the product Open Source, but by giving it away to Linux developers at no cost.
Longtime Linux observers might wonder how giving a proprietary product away for no money would smooth over objections to the product's proprietary nature. The answer to that question is fairly simple, and it's part of the core conflict that forces us to use unwieldy constructions like "the Free and Open Source software community" or opaque acronyms like "FOSS." Part of that community (the "Free Software" wing) has assigned a certain moral value to software; another part of that community (the "Open Source" wing) downplays discussions about software morality in favor of what it prefers to think of as "pragmatism."
At the time Bitkeeper was selected, the self-styled pragmatists weren't interested in worrying about the license behind a needed tool, and they were even less interested in building an open source alternative. If no suitable alternative is available, the reasoning went, we'll just have to chalk it up to one of life's funny contradictions. And they went back to coding.
All was as well as it could be under this arrangement, until recently, when Bitkeeper's owner began to complain that certain Linux developers were trying to reverse-engineer his product. After some unsuccessful back and forth, the no-cost version of Bitkeeper was slated to be pulled, and the Linux kernel team was left without a way to keep its patches straight.
In the pragmatist version of this narrative, this is how the story ended:
Linus Torvalds announced he was working on his own patch tracking system, called "git." It was picked up by the kernel developers who needed to stay in sync with Linus, and the Linux kernel rumbled on.
Two weeks ago, that was where things stood, and it didn't stir us to revisit the story. What got us to provide this recap was commentary from Richard Stallman of the Free Software Foundation, who argued against adopting Bitkeeper in 2002, and who has provided, more than anyone, the most consistent voice in favor of considering the ethical dimensions of software licensing:
The Free Software Movement has said 'Think of free speech, not free beer' for 15 years. McVoy said the opposite; he invited developers to focus on the lack of monetary price, instead of on freedom. A free software activist would dismiss this suggestion, but those in our community who value technical advantage above freedom and community were susceptible to it.
It was also, whether intentionally or not, a powerful political PR campaign, telling the free software community that freedom-denying software is acceptable as long as it's convenient. If we had taken that attitude towards Unix in 1984, where would we be today? Nowhere. If we had accepted using Unix, instead of setting out to replace it, nothing like the GNU/Linux system would exist.
Free Software activists haven't been able to point to a more straightforward object lesson since the legendary closed-source printer driver, which inspired Stallman to launch the movement in the first place.
If concerns about the dangers of lock-in and dependence on a tool that's available only at whim aren't pragmatic, what is?