Why a history of the X.org fork?
Forks are experiments in open-source management ().
Management in open-source can be mysterious. In our technical world, we would
rather believe that anything important must be technical, and management seems
soft and poorly defined. We want to believe that all you need is good code,
and that management is for corporate types, whom we despise.
A fork is interesting because it usually comes about when one group of
developers thinks that they can do a better job managing a project than the
current group in charge.
The group doing the fork takes a risk, because forking is violation of the
code of honor. The group will probably have to start under a new project and
package name, and then compete with the old project for users.
If the fork fails and the old project succeeds, it is difficult to draw
conclusions about which project had better management, because of the inertia
bias against the fork. If both fail, the project may have already been doomed
by bad code or changes in fashion. If both succeed, the forkers were right
enough about the management to survive the resistance to forking. The most
interesting outcome is where the fork succeeds and the original project fails.
In this case we may be able to conclude that there really was a problem with
the old management that has been fixed by the fork.
The X.org fork of XFree86 is particularly interesting because, after the fork,
XFree86 went into steep decline and died, to be fully replaced by X.org. There
may be interesting lessons we can learn from why the fork happened.
I've set out the background in some detail because I think it is important to
be able to understand motivations and arguments of the actors in the fork
drama. The royalist defenders of the status quo and the revolutionaries
behind the fork make the same kind of arguments that I have seen often and
recently. Maybe seeing these arguments together with their outcome will help
make our own discussions easier to think about and better informed.
A sketch of early X history with some dramatis personae
attributes the original idea for X to Jim Gettys and Bob
Scheifler at MIT in 1984.
MIT released version X10R3 under what later became known as the MIT license in
MIT handed over stewardship to a newly formed MIT X consortium in 1988. The
consortium hired Jim Fulton, Keith Packard in early 1988, with others joining
later in the year.
The development of XFree86 itself started as a fork. Thomas Roell developed
the first X implementation for the Intel 386 chip, called X386. He donated the
code to the X consortium and this code was part of the X11R5 release in 1991
(). Roell then took a job with a company
called SGCS and further versions of his X386 code were not open source
(). A group of programmers found they were maintaining
the original open-source version of X386 and joined together to form a fork of
X386 called "XFree86" (). XFree86 was a joke from the X386
name. The original team for XFree86 was David Dawes, Glenn Lai, Jim Tsillas
and David Wexelblat ().
In order to get access to the development versions of the reference
X-consortium code, XFree86 needed to be a member of the X-consortium. To do
this, XFree86 formed a corporation called "XFree86 inc" in January 1994.
XFree86 inc then asked for donations for X-consortium membership, and joined
At least by May 1994, XFree86 had a BSD-like governance, with a core group and
a board of directors. The board of directors was David Dawes, Glenn Lai, Dirk
Hohndel, Rich Murphey, Jon Tombs, Jim Tsillas, and David Wexelblat
(). The core group was the same as or similar to the
board of directors at this stage ().
In November 1994 David Wexelblat handed over the XFree86 board presidency to
David Dawes (). Dawes continued as president at least until
In 1997, the X-consortium handed over X stewardship to a vendor group called
"The Open Group". In April 1998, the Open Group changed the X license to
require commercial entities to pay a license
Although [XFree86] may be able to claim several million users, the net
contribution to the development of the X Window System, as embodied by
specs, protocols or cash is a flat zero.
XFree86 decided to continue development without using any new code from the
Open Group reference implementation, in order to avoid the new license. At the
same time, the Open Group X development stalled () leaving
XFree86 to become the de-facto reference implementation. The Open Group
reverted to the old license in September 1998, and formed a new consortium for
X stewardship called X.Org in 1999 (). X.Org
(the consortium) went on to supervise the releases of the X reference
implementation. XFree86 joined the X.Org consortium as an honorary member in
the same year.
An article in 2001 said "Today, XFree86 is considered to be among the most
successful open source projects in existence." ().
By 1999 the board of directors was unchanged apart from the additions of Robin
Cutshaw and Marc Evans ().
By February 2003 the "core" group was 16 people, of which 7 were also on the
board of directors (at least as of 1999) ().
Now we're ready for the events around the fork.
Background to the fork
Although XFree86 had a development CVS repository, it was only available to
those granted "membership" of the project. The development mailing lists were
also not public (). This had been forced on the project
because of the initial contract with the X consortium. After the Open Group
had tried and failed to change the license, it appears that this was no longer
necessary, but nevertheless continued to be the case until Keith Packard
joined the project ().
Keith Packard started to work on XFree86 at the end of 1999 as an employee of
SuSE. He became a member of the XFree86 core in the same year (). He
moved to the Cambridge Research Laboratory to work for Compaq / HP at the end
of 2001 and continued to work on XFree86. Among his contributions were the
Render extension, (with
Jim Gettys) the XRandR
extension(), (with Carl
Worth) the Cairo rendering
library and the fontconfig
Packard successfully lobbied for open read access to the CVS repository, and
moving at least some of the development discussion to public mailing lists.
He said that some of the development discussion continued to be on private
mailing lists ().
Over a period of years before 2003 there seems have been considerable
frustration at the slow pace of XFree86 development, and the difficulty of
getting patches accepted. Mike Harris was a Redhat developer working on
XFree86. He complained in a blog post of very slow or completely failed patch
review, even from vendors like ATI, and the very small number of developers
with CVS write access given the size of the project (). In a
follow-up post he records his surprise at the level of support he had got for
his blog post by email (). A KDE developer agreed later that
there was a widespread impression of XFree86 as a slow and unresponsive
project (). Others had similar complaints
Packard felt that he had been gradually excluded from XFree86 management:
My ability to contribute to the project was severely curtailed in stages,
first administration of the public server, next permission to represent
XFree86 to other groups, then administration of the public mailing lists, and
finally CVS access. ()
He lost CVS access when he committed the XFIXES extension to CVS in November
I've stuck these features into a new XFIXES extension and included that in
XFree86 CVS so that others might see the code and specification and test
whether they solve the issues they're supposed to. This does not represent
any endorsement by the XFree86 project or it's [sic] members (other than
me), nor any assurance that the extension will be included in future XFree86
The extension appears to have been disabled by default ().
It seems the commit of XFIXES was just before a release feature freeze. Some
process occurred by which Packard lost his CVS commit rights on the basis that
he should have discussed the changes before committing (). David
Dawes refers to a rumor that Packard did this in order to cause a crisis
(). There does not appear to be any public record of this
decision at the time.
The forking fighting
In March 2003, David Dawes used an email asking for public discussion of
XFree86 to announce that the XFree86 board of directors had expelled Keith
Packard from the core group ():
It has been brought to the attention of the XFree86 Core Team that one of
its members, Keith Packard, has been actively (but privately) se)eking out
support for a fork of XFree86 that would be led by himself. He is also in
the process of forming a by-invitation-only group of vested interests to
discuss privately concerns he has about XFree86 and the future of X. He has
consistently refused to even disclose these concerns within the context of
the XFree86 Core Team, which makes his membership of that team unviable. As
a consequence, Keith Packard is no longer a member of the XFree86 Core Team.
The board claimed to have email evidence of Packard's intentions, but that
they were unable to release this evidence because the emails were private and
Packard had asked for them not to be released (). Packard
responded with permission to release the mails () and David
Wexelblat, for the board, said that they would release some version of the
emails soon after (). I could find no evidence that this
happened. It's possible that the email enclosed in () is an
example of the discussion leading to Packard's expulsion.
Packard didn't reply directly to the thread expelling him from the core, but
instead posted an appeal for open governance of XFree86 (). He
lists four problems:
- Limited development resources
- Slow release schedules
- Lack of cooperation with other projects
- Opacity of development processes
Packard thought that this was a problem of governance:
While the XFree86 Board of Directors is nominally in charge of XFree86, they
have absented themselves from governing the project and left that to the
XFree86 Core Team. The community is left wondering who is actually in charge
of XFree86. As a result, community trust in XFree86 leadership has suffered.
Decisions appear to be arbitrary and are not seen to reflect the will of the
community. The leadership has no accountability to the community: thus
community members have no ability to change project direction and the Board
has little incentive to do so. In addition, the lack of clear formal
policies has made it difficult to resolve disputes when the usual consensus
He appealed to the board of directors for a change in governance:
There are many ways to move from our current position to one of community
control, but for XFree86 to make the transition, the current Board of
Directors must have a desire to do so. I encourage the X community to
support a community government for X development and hope the XFree86 Board
will adopt this model.
The subsequent discussion was often bad-tempered.
An early reply by Alan Hourihane blamed 'limited development resources' on the
difficulty of the codebase, and emphasized the previous work of David Dawes:
As for the rest of the above. I'd urge people to think of how XFree86 has
got were it has - under the directive of the current team, headed by David
Dawes. David has worked tirelessly in his own time to bring XFree86 where it
is today. And I applaud him for that devotion. ()
David Dawes' employer, the CEO of Tungsten graphics () saw
problems in the organization of XFree86:
We are seeing Keith Packard, a loyal and dedicated XFree86 contributor,
publicly express his frustration with an organization in which he has more
personal control than the vast majority of other people whose livelihood
depends on XFree86's continued success. David Dawes has turned to that
constituency to assist him in resolving this situation. Both of these
actions imply there is an organizational problem within XFree86 itself.
He asked for greater democracy in governing the project:
The best organizational model I know of that adequately addresses both the
need to have managers who are the most knowledgeable and willing to work,
and the need to have a mechanism for all interested parties to voice their
concerns, is a representative democracy. XFree86 has historically resisted
that model. The increasing ubiquity of XFree86 has widened the discrepancy
between the desires of its constituency and those of its managing cadre.
Under those circumstances, a fork was inevitable. There is currently no way
for dissenting voices to have an opportunity to fairly affect the direction
of XFree86, no matter what percentage of interested parties agree.
In reply, David Wexelblat denied there were organizational problems, blaming
Well, I'm not convinced that's true. The organizational problem was Keith.
There are PROCESS problems, but I don't accept (at face value) that there
are organizational problems.
Wexelblat was clearly angry with Packard:
But what Keith is doing, at least how he's handled it, is just flat out
wrong. It's literally dishonest, and morally repugnant. Doesn't mean that
there aren't some valid issues to work, or that there is no need for
branching, but (a) it remains to be proven, and (b) I'll be damned if I'll
quietly accept it being done by someone who is lying to my face.
and didn't see a need for fully open governance:
But there are things that don't need to change:
- There is no reason for XFree86 BOD matters to be public. The XFree86
Project, Inc is a privately-held corporation.
- There is no reason for Core Team matters to be public. This is the
leadership forum, not a public forum. ()
David Dawes saw his opponents as trying to take over the hard work of others:
Some of those really old X guys (pre XFree86) left X for dead in the early
'90s. Now that they've seen that their attitudes then were short-sighted,
they want to come back and take over where they left off. If we'd listened
to them, we'd have abandoned it too. And they want us all to follow their
lead now? "Thanks for keeping it alive guys, but we'll take it from here,"
is the attitude. ()
Rich Murphey could not see the point of governance discussions:
You seem to have an obsession with governing, leading,
the will of the community and democracy.
Why are any of these critical to development success? They
have nothing to do with what motivates open-source developers.
The lack of direction for the core group was an advantage:
Core has very much to do, and as all-volunteer developers they pretty much
decide whatever they do themselves. There is a remarkable degree of
consensus, in part because there is no one imposing a direction or mandate
Developers are leaders and should not be accountable to any 'community':
The developers are the leaders. And yes, they have no
accountability to you because they are volunteers. They
code whatever they damn well please when the want to.
I wish you luck in holding everyone accountable to the
will of the community and imposing formal policies on everyone.
I can imagine how many developers that will attract ()
Alan Cox thought the problem was one
of resistance to change:
This isnt about voting, governance and dictatorship IMHO, its about change.
XFree86 is hard to get involved with usefully, resistant to cool ideas and
strongly wedded to an occasional not rolling regular release model.
He insisted that change was essential to the project:
X has to evolve, X has to do cool stuff, X has to let people break stuff, X
has to delegate trust to driver maintainers far more. To me it doesn't
matter if Keith and friends spin off an "Xperimental" or XFree itself
changes, but that change is vital to the future of X11.
If the XFree BOD doesn't want to be the evolving at high rate and really
believes the current plodding progress is the right path, don't harass Keith
work with him, endorse an Xperimental project and see what it produces. If
it works the community wins, if it fails you get both to smirk, and to take
the good bits and the lessons it learned. ()
Packard and other interested developers held a series of teleconferences in
late March / early April to discuss what to do next
(). They decided to
set up a new site for collaboration on X windows work,
xwin.org is a forum for community participation in X, not a development
project. The X development community needs to work together to form a
government. The hope is that community governance will encourage rapid
advances in the X window system
Packard explained his reasons for acting in a Linux Weekly News interview
The highest priority should be to create an environment where people are
encouraged to participate to whatever extent they are able, and where these
contributors feel ownership of their code and pride in the community in
which they work.
announced a fork of the XFree86 project. Xouvert did a first release in
December 2003, but the main XFree96 developers were not involved, and the
project slowed and folded relatively quickly thereafter ().
Cygwin loses patience
In October 2003, Cygwin publicly announced it would no longer contribute to
XFree86 development because they had been unable to persuade David Dawes to
give them CVS commit access ().
Egbert Eich commented as an XFree86 core member:
I understand that the level of frustration among contributors has risen to a
point that people are starting to use bad words. I've tried to get support
from individual core team members for giving you commit rights. After I was
unable to do so (maybe I asked the wrong ones) I decided to no longer persue
[sic] the issue. None of the initiatives I've made so far have been
I don't understand why people cannot deal with issues on the pragmatic level
by looking at how one can best distribute the workload so that the burdeon
[sic] on each individual volunteer is reduced. The discussion always turns
to who owes what to whom. This is the wrong question. All or most of us are
volunteers. Therefore noone owes anything to anybody ().
XFree86 core team disbands
David Dawes successfully proposed disbanding the XFree86 core team in December
I'm very pleased to announce that a majority of the XFree86 core team has
voted in favour of my proposal to disband the core team.
I believe that this is an acknowlegement [sic] that the core team was no
longer representative of the active, experienced and skilled XFree86
developers, or a place where technical discussion happens ()
The bare announcement caused considerable confusion, with some taking it to
mean that the XFree86 project was closing down (). There
was no indication of any other structure to replace the core. An ex-member of
the core team explained it as a way of avoiding potential complaint:
I think it doesn't really mean anything at all, so it's hard to say much
about it. The core team was basically an honor role, which outsiders
assumed was a kabal [sic] of some sort despite the core and bod [board of
directors] repeatedly explaining that it wasn't. Now it's gone, so people
will have to find something else to complain about. ()
Start of the X.org foundation
In January 2004, many of those involved in the discussion formed a new company
called the X.Org foundation (as distinct from the previous X.Org consortium).
A presentation to the Linux World Expo on 22nd January ()
gave the mission statement as:
To promote a proactive and participatory community for Open Source X Window
System and desktop development
The same presentation records that a development tree had been established.
The interim board of directors () was composed of
representatives from industry and free software organizations:
- Stuart Anderson, Free Standards Group
- Egbert Eich - SuSe
- Mattais Ettrich - KDE
- Jim Gettys - Hewlett Packard
- Georg Greve - FSF Europe
- Stuart Kreitman - SUN Microsystems
- Kevin Martin - Red Hat
- Jim McQuillan - Linux Terminal Server Project
- Leon Shiman - Shiman Associates
- Jeremy White - Code Weavers
License change and collapse of XFree86
On 29th January 2004, David Dawes announced a change to the base XFree86
added a non-standard clause that required any derived work to include a
specified acknowledgment of XFree86 in the documentation or "in the software
The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its
contributors", in the same place and form as other third-party
acknowledgments. Alternately, this acknowledgment may appear in the software
itself, in the same form and location as other such third-party
It later turned out that the board of directors had unanimously agreed to this
change in a private meeting ().
Most people considered that the new license did not allow derived code to use
the GPL license, because the GPL says that a GPL or derived work "may not
impose any further restrictions on the recipients' exercise of the rights
granted herein." (). Here the further restriction is the requirement
to acknowledge XFree86 in documentation or "in the software itself".
Dawes appeared unmoved by concerns about this change, suggesting that the GPL
ought to change instead:
Has anyone considered modifying the GPL to be more compatible with other
Open Source licences rather than trying to force all Open Source licences to
be a subset of the GPL? ()
The long email threads that followed were mostly against the license change
- e.g. (, ).
Richard Stallman joined the discussion to see if he could help restore GPL
compatibility () but Dawes was not ready to compromise:
However, I also believe that all of that is irrelevant, and that anyone who
writes software should have the freedom to set conditions on what others may
do with it(*). The choice for others is then either to accept the
conditions (legally enforcable or not), or to avoid said software.
(*) Providing of course that the act of setting the conditions is not itself
Dawes was clearly surprised that others on the board did not support his
unmoving position on the license:
I can't speak for why the XFree86 board that voted unanimously for the
change, (and some of whom were advocating more radical changes), have hung
me out to dry on this. I also can't speak for why some developers have
privately supported the change, but won't do so publicly. But then taking
the heat on things like this comes with the job. And I have very thick
asbestos undies, but boy do they itch :-) ()
X.org releases fork of X
In April 2004, the new X.Org foundation released their own fork of X
The new X.Org release, called X Window System Version 11 Release 6.7
(X11R6.7), builds on the work of the X.Org X11R6.6 and XFree86TM Project
Inc. V4.4RC2 releases to combine many of the latest developments from a
large number of the participants and companies working with the X Window
The announcement quotes Jim Gettys:
This release marks the return to community development of the X Window
System under governance open to all contributors for the first time since
the founding of the X Consortium in 1988.
Among other endorsements in that announcment, Branden Robinson of Debian
We're also delighted that the X.Org Foundation is dedicated to retaining the
licensing model that has made the X Window System an enduring success.
The decline and fall of XFree86
The license change appears to have been the last straw in forcing adoption of
X.org instead of XFree86 (). In a page dated from May 2004,
XFree86 lists the Linux and BSD distributions supporting the first release of
XFree86 that contained the license change (). The list
does not include SUSE, Redhat or Debian among many others.
The page at () gives a vivid summary of the almost complete
collapse of XFree86 at this point, with all significant developer and packager
interest switching to X.org.