<title>Changing the BitKeeper License and Why it is Needed.</title>
<body style="background-color : style">
<h1>Changing the BitKeeper License and Why it is Needed</h1>
As was seen in the "Suitability of BitKeeper for Free Software
Developers", the BitKeeper License and its dynamics prevents it
from being employed for free software projects. This is unfortunate
since Larry McVoy's original intention was that BitKeeper would
eventually be adopted by all free software projects out there.
In this document, I will show that the restrictions on the BitKeeper
license have other bad side-effects as far as BitMover is concerned. I
believe that in order for BitKeeper to be widely deployed and become
a popular replacement for CVS, its license needs to drastically
changed. Note that I do not suggest making BitKeeper fully open-source
(see below), but the majority of developers out there will have no
problem using a solution that is only almost open-source.
<h2>Life and Death in the Hands of the License</h2>
There are several examples that show that the choice of a license is
the most important choice a project can take. Linus Torvalds claimed
in <a href="http://www.webreview.com/1998/04_10/developers/04_10_98_4.shtml">an interview</a> with him that "making Linux GPL'd was definitely the best thing I ever did". Many people claim its GPL nature gave Linux a very good
advantage over the BSD-licensed BSDs.
There is another example: MySQL. MySQL emerged at a time when the two
available SQL database systems were Postgres, which was BSD-licensed
and quite heavyweight, and mSQL or Mini-SQL, which was lightweight, with
a reduced functionality, freely distributable but required a license.
MySQL started as an internally used database by T.c.X DataKonsulter,
a Swedish consultants company. They decided to release it as
shrinkwrap as a not fully free but usable license, that required no
payment for depolyment on UNIX. As a result, MySQL became very popular
and is the most widely used Database server today.
So popular that many web applications (including one of my own) depend
on it and would not work with any other application. This is partly due
to the fact, that programmers work directly with the MySQL specific
API, and partly due to the fact that writing SQL that is portable
between various databases is surprisingly hard and many times one have
to rely on proprietary extensions. When MySQL.com was formed to
maintain the database, its investors requested that MySQL would be made open-source, so they will have a guarantee that it remain accessible for
use in case something happens to the company. MySQL AB released it under
Now, I believe releasing MySQL under the GPL in the first case would
have caused it to flourish, but there would have been little
possibility to earn money out of it for T.c.X/MySQL AB. By having
conquered the market first and then only GPLing it, MySQL was able
to gain a market dominance while still eventually being able to
open-source the code.
I think a similar analogy can be made to BitKeeper, which while being
a relatively successful commercial product, has yet to be widely
deployed among open-source developers.
Note that I'm not one of those people who believe the GPL is ideal for
everything. I think every project has an appropriate license depending
on the niche it is trying to fill. For example, I believe the Public
Domain was a very good choice for Freecell Solver (shameless plug)
because it made it an excellent choice for vendor of freeware and
shareware Freecell implementations who cannot comply with the
restrictions of the GPL. Similarily, I believe the change of Wine's
license to LGPL was a mistake and that they should have kept it as X11.
<h2>A Glimpse into the Future</h2>
Let's suppose the development of BitKeeper is present at
point x=3.0 and advances in speed 2t. Now let's suppose the development
of Subversion is at point x=1.0 and advances at speed 1t. (this is a
worst case scenario). However, the license of BitKeeper prevents it from
being deployed by free software developers.
Thus, BitKeeper would probably become the next ClearCase. (albeit
probably, a better one) Subversion (or something else) would become the
next CVS. Fair enough.
Now for two questions:
<li>Do you use ClearCase at home for your pet projects and revision control needs?</li>
Would you recommend ClearCase for your small workplace?
In the history of revision control systems, many of them went into
oblivion. SCCS, for instance. The Google
<a href=http://directory.google.com/Top/Computers/Software/Configuration_Management/Tools/">Configuration Management Tools</a>
directory lists many such implementations most of them are yet to make
a difference somewhere. SCCS died because it was made proprietary by
AT&T and replaced by RCS and later on CVS. BitKeeper can might as
well be a footnote in the history of SCMs, something very good that
persisted for a while until superceded by something better or more
readily available. Like ClearCase.
<h2>Why MvCoy's Attitude towards free users is wrong</h2>
The BitKeeper gratis license forces the user to upgrade to the
newer version should it come out. Furthermore, the license may
be changed between version to version. The new BitKeeper License
contains other restrictions such as a non-compete clause or the
fact the the source inside the repositories must be made available
under a free software license. And naturally, the source code is not
available, because someone may patch it to remove the OpenLogging
McVoy placed all these restrictions to prevent people from abusing
BitKeeper. What he does not realize that they would have abused it
with or without these restrictions, and that he is only harming free
users who are are doing nothing wrong but somehow are affected by
these restrictions. Moreover, it it very improbably that the abusers
would become paying customers. Most vendors of commercial, internal,
embedded or hardware-accompanied software, would either pay for
BitKeeper or use something else free-of-charge like CVS, Subversion
or Aegis. Those who don't respect copyright law enough to do so,
can hardly be expected to become paying customers.
Requiring the source to be published under a free software license is
draconic. Many times, free software developers keep not-so-free content
in the repositories, which they did not originate with. Other times, the
software is close to being open-source but not quite. OpenLogging and a
requirement that the repository be made online is enough. Even if the
contents are proprietary (and just sourceware), a person should be able
to use it. That's because he would pay should he wish to continue using
BitKeeper while keeping the source for himself.
The non-compete clause is especially useless. Even if I'm a developer
of a competing solution, using the BitKeeper binary will only help me
learn about its features. Even the source would only be enough to learn
about how it is implemented as I cannot direcyly use the soure in my
project, legally and practically. (the codebases may be completely
To sum up, all the restrictions that were added to BitKeeper along the
way, would not protect it from being abused, but would harm those users
who wish to happily use it, without doing anything wrong.
<h2>A Utopian Vision</h2>
BitKeeper is distributed as part of major distributions such as
RedHat, Mandrake, S.u.s.e.
BitKeeper is the most commonly used revision control system in
the open-source world, replacing CVS.
BitKeeper is deployed in many software houses who pay for
licensing for it.
BitMover is flooded with patches contributing functionality to
BitKeeper, some of them of very high quality. Thus, development
is much more rapid.
BitMover is very successful and the size of Rational.
How is it possible? By changing the license to make sure users can
continue using older versions, even modified. Removing the non-compete
clause and other irrational restrictions. Revealing the source
code is optional, but will do good in the long run.
BitMover is profitable now, which is good. But if Larry McVoy wishes
to make a greater difference he has to look beyond the near-term short
and false corporate interests, take a chance and make sure BitKeeper
is present everywhere. This cannot happen with its current licensing
scheme. Without it, BitKeeper would never become the next CVS, which
was his intention in the first place.
"Far better it is to dare mighty things, to win glorious triumphs,
even though checkered by failure, than to rank with those poor
spirits who neither enjoy much nor suffer much, because they
live in the gray twilight that knows not victory nor defeat."
The choice McVoy and Co. must make is now. Subversion and other
open-source alternatives may not be feature by feature compatible
with BitKeeper now, but they may become so in the future. There
were times where an open-source project surpassed the functionality
of a proprietary alternative, even though seemingly the latter had
more resources at its disposal. This may happen to BitKeeper, or
just most open-source developers would settle for something less
I am already involved in Subversion, and while it progresses
slowly, there are many interested developers there. The limitations
of CVS and attempts to resolve them are the talk of the day in
several Internet forums I subscribe to, or visit. If enough people
want something better than CVS and Open-Source or something similar,
you can be sure they get it. The question is would it be BitKeeper.
- an article by Joel Spolsky that explains how a platform vendor should
ship his playform.
<a href="http://better-scm.berlios.de/bk/bk_suitability.html">The Suitability of BitKeeper for Free Software Developers</a>