Why The Kallithea Project Exists

Post Syndicated from Bradley M. Kuhn original http://ebb.org/bkuhn/blog/2014/07/15/why-kallithea.html

[ This is a version of an essay
that I originally
published on Conservancy’s blog
].

Eleven days ago, Conservancy
announced
Kallithea
. Kallithea is a GPLv3’d system for hosting and managing
Mercurial
and Git repositories on one’s own servers.
As Conservancy mentioned in its announcement, Kallithea is indeed based on
code released under GPLv3 by RhodeCode GmbH. Below, I describe why I was
willing to participate in helping Conservancy become a non-profit home to
an obvious fork (as this is the first time Conservancy ever welcomed a fork
as a member project).

The primary impetus for Kallithea is that more recent versions of
RhodeCode GmbH’s codebase contain
a very
unorthodox and ambiguous license statement
, which states:

(1) The Python code and integrated HTML are licensed under the GPLv3 license as
is RhodeCode itself.
(2) All other parts of the RhodeCode including, but not limited to the CSS code,
images, and design are licensed according to the license purchased.

Simply put, this licensing scheme is — either (a) a GPL violation, (b) an
unclear license permission statement under the GPL which leaves the
redistributor feeling unclear about their rights, or (c) both.

When members of the Mercurial community first brought this license to
my attention about ten months ago, my first focus was to form a
formal opinion regarding (a). Of course, I did form such an
opinion, and you can probably guess what that is. However, I realized a
few weeks later that this analysis really didn’t matter in this case; the
situation called for a more innovative solution.

Indeed, I recalled at that time
the disputes
between AT&T and University of California at Berkeley over BSD
. In
that case, while nearly all of the BSD code was adjudicated as
freely licensed, the dispute itself was painful for the BSD
community. BSD’s development slowed nearly to a standstill for years while the
legal disagreement was resolved. Court action — even if
you’re in the right — isn’t always the fastest nor best way to push forward an
important Free Software project.

In the case of RhodeCode’s releases, there was an obvious and more
productive solution.
Namely, the
1.7.2 release of RhodeCode’s codebase, written primarily by Marcin
Kuzminski
was fully released under GPLv3-only, and provided an
excellent starting point to begin a GPLv3’d fork. Furthermore, some of the
improved code in the 2.2.5 era of RhodeCode’s codebase were explicitly
licensed under GPLv3 by RhodeCode GmbH itself. Finally, many volunteers
produced patches for all versions of RhodeCode’s codebase and released
those patches under GPLv3, too. Thus, there was already a burgeoning
GPLv3-friendly community yearning to begin.

My primary contribution, therefore, was to lead the process of vetting and
verifying a completely indisputable GPLv3’d version of the codebase. This
was extensive and time consuming work; I personally spent over 100 hours to
reach this point, and I suspect many Kallithea volunteers have already
spent that much and more. Ironically, the most complex part of the work so
far was verifying and organizing the licensing situation regarding
third-party Javascript (released under a myriad of various licenses). You
can see the details of that work by reading the revision history of
Kallithea (or, you can read an overview in
Kallithea’s
LICENSE file
).

Like with any Free Software codebase fork, acrimony and disagreement led
to Kallithea’s creation. However, as the person who made most of the
early changesets for Kallithea, I want to thank RhodeCode GmbH
for explicitly releasing some of their work under GPLv3. Even as I hereby
reiterate publicly my previously private request that RhodeCode GmbH
correct the parts of their licensing scheme that are (at best) problematic,
and (at worst) GPL-violating, I also point out this simple fact to
those who have been heavily criticizing and admonishing RhodeCode GmbH: the
situation could be much worse! RhodeCode could have simply never
released
any of their code under the GPLv3 in the first place. After all,
there are many well-known code hosting sites that refuse to release any of
their code (or release only a pittance of small components). By contrast,
the GPLv3’d RhodeCode software was nearly a working system that helped
bootstrap the Kallithea community. I’m grateful for that, and I welcome
RhodeCode developers to contribute to Kallithea under GPLv3. I note,
of course, that RhodeCode developers sadly can’t incorporate any of our
improvements in their codebase, due to their problematic license. However,
I extend again my offer (also made privately last year) to work with
RhodeCode GmbH to correct its licensing problems.