Let me throw some perspective into this discussion. This is a completely
personally-biased diatribe, me speaking as me, not me speaking for XFree86.
Please read through ALL of this, then quote/reply/flame away on whatever
part(s) you disagree with...
History Part I
--------------
Some of you may be too young to have any idea who I am. I, along with David
Dawes, Jim Tsillas, and Glenn Lai, created XFree86 a little less than 11
years ago. I have been basically inactive with XFree86 for a goodly number
of years now, but remain on the Board of Directors, and lurk on the Core
Team. I care very much about this project and the people involved, and pop
my head up once in a while to kibbitz when necessary. It's necessary now.
I'll come back to history in a little bit; it's important.
The Keith Issue
---------------
What Keith has done is among the most low-class, unprofessional, and
tactless things I have ever experienced in my professional career. While
still a member of the XFree86 Core Team, he has explicitly attempted to
subvert XFree86 by soliciting individuals and corporations to create an
alternative to XFree86. Including inviting certain Core Team members to join
him. At no time did Keith ever discuss his issues with the Core Team or
Board of Directors. When confronted with his actions earlier this week, he
blatantly lied to the Core Team about what he was doing. When his
solicitation email was sent into the Core Team list, showing the blatant
lies in his previous assertions, he stopped responding.
If Keith felt that XFree86 was so badly broken that it needed to be
replaced, he should have had the professional integrity to resign and go do
his own thing.
For Keith to blatantly lie to the Core Team about what he was doing is
utterly unacceptable.
There is an email thread documenting this. Some members of the BOD wanted to
post the email, or quotes therefrom, with the announcement. I and some of
the others were utterly uncomfortable doing that. I don't think anyone on
the BOD or Core Team would have any issues with an independent audit of this
email thread, if there are concerns about the veracity of what I say, but
airing that in public isn't appropriate, IMHO.
Bottom line, in my opinion, is that what Keith did is unacceptable on its
face and he deserves to be held accountable for it. So he's out.
The Governance Question
-----------------------
So why is it that everyone feels like they can tell XFree86 how to run their
project? This I cannot fathom. XFree86 is far more open than some Open
Source projects; far less open than others.
Linux itself has an incredibly small number of people who decide what goes
in the kernel and what doesn't. Each of the distribution vendors deals with
their own version of the kernel; they maintain it themselves, contribute
fixes/changes back, some of those fixes/changes are accepted into the
official kernel, and some aren't.
Yet people somehow believe that XFree86 has to let anyone push any change
they want into the source tree, period, and if we don't do that, we need to
go. That's silly.
The root of the governance question that Keith and his compatriots are after
is VERY simple, based on two points:
- Keith needs to lead - anyone who questions is wrong. The way the XFIXES
extension was handled should really prove this to everyone. You don't
blindly commit server extensions without discussion with either the
development community or the Core Team.
- Commercial enterprises, one of which Keith represents, should be given
special dispensation to change XFree86. They should be allowed to commit
changes, be represented on the Core Team, etc, simply because they make
money from X-based products.
Keith claims that he wants to empower individuals, but I think that's a
crok, based on his statements and actions (there are more email threads to
back this up, if need be). Keith wants to empower (a) Keith and (b) certain
commercial interests.
History Part II
---------------
Back when XFree86 came into being, the keeper of X was the MIT X Consortium.
XFree86 came to be because X11R5 was released with a bunch of bugs on x86
platforms, and some of us wanted to fix them. I proposed the four of us put
that work together into a single fix package. We tried to feed this back to
the X Consortium, tried to align with the X Consortium, etc, but it was
impossible.
The reason it was impossible was the X Consortium by-laws only recognized
corporate membership. There was no concept of individual membership. So
XFree86 became a de-facto branch of official X, supporting platforms that
weren't supported by the official versions, and fixing things for which
public fixes were never made.
After a while of doing this, we decided that we REALLY needed to get a voice
in the X Consortium. The XFree86 Project, Inc was incorporated for one
reason and one reason only - to create a corporate entity by which we could
obtain membership in the X Consortium, and to manage the contributed funds
that paid for it ($5000/year at the time). The XFree86 BOD is the BOD of
this little corporation.
XFree86 has always been a meritocracy - you moved up the food chain by
working your ass off. We used to be VERY closed, with several levels of
teams (Core, Alpha, Beta), required commitments, signoffs, etc. David has
eliminated most of that, except for the Core Team, which remains a
meritocracy. Core Team members have come and gone; a very small few have
gone inactive and lurk (like me), but most just go away after they get
bored.
[An interesting side note, for those who are uncomfortable with the Core
Team name, is that MANY Open Source projects use the term Core Team for
their leadership, and AFAIK, they all got it from us - FreeBSD was the first
one I can think of]
Becoming a Core Team member has largely been a matter of someone on the Core
Team proposing adding someone who's been active, and if no one objects
loudly enough, they're invited. We've had people decline the invitation -
they feel there's a responsibility to it.
In our meritocracy, it has always been INDIVIDUAL merit, with no recognition
of association, employer, whatever. Simply what that individual has
contributed to the project. There is one, and only one, exception. A few
years back, we had a pretty high representation of S.u.S.E. employees on the
Core Team, and it made me uncomfortable. I pushed hard to have a Red Hat
employee added to the Core Team, to address what I perceived as bias. Which
we did, over the objections of several other Core Team members. It was
pointless. This person did nothing whatsoever (that I can recall) except
take half-finished development stuff and put it in Red Hat distributions,
leading to a number of support issues for both XFree86 and Red Hat.
More On Governance
------------------
What Keith appears to be trying to create harkens back to the days of the X
Consortium, The Open Group, and the initial rounds of X.Org, where
corporate/commercial representation won the day. We are not interested in
that. Nor do I think anyone should be. I believe that all Open Source
projects are best lead by a meritocracy.
The concept of the community voting for membership in the leadership of the
project is an almost, if not totally, non-existant concept in the Open
Source world (feel free to show me examples). I'm not talking about advocacy
groups, like Linux International. I'm talking about development projects.
XFree86 has no interest in this, as far as I can tell.
Now, for the questions of "who defines X", this is a very interesting
question. Formally, officially, X.Org defines X. But as far as most of the
world can tell, they've abdicated, and so XFree86 de-facto defines X (at the
moment). Is this how it should be? That's a very important question to be
answered. XFree86 was never about "defining X". It was about "fix what's
broken, and support some new devices and platforms". Only relatively
recently did XFree86 wind up defining X.
I think it's a VERY important discussion to have. And I hope it's what
happens in this forum. It is my personal opinion that "defining X" really
belongs with an organization that enjoys formal standards, verification
suites, etc. My personal suggestion would be for LSB to take it on. I think
XFree86 is better left building/fixing X than defining it. But that's my
opinion, and I don't even use X, so it probably counts for nothing.
On Branches
-----------
I personally believe that branches are a healthy thing. If you go back in
the history of XFree86, you will find that there have been a number of
branches (the first of which dealt with developing support for graphics
accellerators, and was also caused by a difference in philosphy). Some of
these branches have merged back, some have died off, some continue.
Many of the things that Keith wants to work on would probably be suited to
branching XFree86. I'm not sure if others agree with me on this; to be seen.
But I think branches are reasonable for developing new extensions, new
devices, new models, etc.
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.
The downside of branching is dilution of an already limited resource pool,
and creating problems for those that depend on a stable platform
(distribution vendors, IHVs, etc). So branching needs to be done carefully,
and for well-defined purposes. Like targetting fundamentally different
platforms/audiences, or experimental work that is intended to be folded
back.
On Who Works On XFree86
-----------------------
Another thing to note is that XFree86 has dramatically less commercial
support than just about any "cornerstone" Open Source project. Maybe that's
because of our "meritocracy" and focus on individual contributors; I dunno.
I know that these companies have LOTS of people working on Linux kernels,
databases, desktops, whatever, and bloody few pay very many to work on X. So
it mostly falls to a very small handful of people. Who are pretty much
volunteering, and doing what they can when they can.
For example, the whole noise about bug tracking. Rather than venting forever
at David Dawes and XFree86 not having a tracking system, why not just shut
up and pay someone to do it? If David has to choose between spending his
time on release management and bugzilla, he's gonna work on release
management. Etc, etc, for whatever the volunteers choose to work on.
For many of the things commercial entities complain about, I say "put up or
shut up".
On Changing XFree86
-------------------
Which is not to say that there aren't things to change. Things have changed
a LOT in response to criticism. Some of us think David has over-reacted in
some of his responses, some think he hasn't gone far enough. But one thing
is the case - David Dawes is the leader of XFree86. He is the leader by vote
of the Board of Directors of the corporation, and he is the leader of the
Core Team by unanimous consent. For all the discussion there has been about
issues and changes (and there has been a bunch of discussion), no one has
asked David to step down or change the way he's doing things.
Is there more to change? Yes.
- I believe we do need more committer access. Not open access, but more
committer access. Mostly to reduce load on the people who are currently
responsible. I believe this is already in progress.
- We need to work on more efficient releases. This is in David Dawes' hands
almost exclusively, and we need to find a way to help him out.
- We need to sort out the who-builds vs who-defines issues. Openly and not
underhandedly.
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.
- There is no reason to change the meritocracy, other than to work on
promoting sufficient people through it, of sufficient
skill/quality/integridy to get the work done.
On The Future Of X
------------------
A number of people has questioned the relevence of X in general. To be
perfectly honest, I'm one of them. I've even pissed off Keith and many
others on the Core Team by pointing out that X is obsolescent. I've been
working in the Windows world for years now, and client-server display
systems are utterly irrelvent to the majority of real-world computer users.
X needs to be replaced by a direct-rendered model, on which a
backwards-compatible X server can be reasonably trivially implemented.
But that's my opinion.
On DWex Shutting Up
-------------------
Never happen.
:-)
Seriously, though - I await your responses.
--
David Wexelblat, Chief Architect mailto:DavidWexelblat@aol.com
America Online, Inc http://www.aol.com/
44900 Prentice Drive - 24B:P08 (703) 265-1158 (voice)
Dulles, VA 20166 (703) 265-1301 (fax)
Please send private email to: mailto:dwex@xfree86.org