For the past year, there has been a slow and steady stream of news events regarding XFree86, X11, or new X server implementations. To those not paying close attention (and even those who are), the meaning of some of these events may not be clear. In this brief article, I attempt to share my impression on what the changes mean for users of free software on the desktop. It appears that XFree86 is in some turmoil, and it may leave some to infer that free desktop systems will suffer.
Editorial Notice: All opinions are those of the author and not necessarily those of osnews.com
In fact, the growing popularity of GNU/Linux is focusing developer attention on improving XFree86 and the XFree86 development model, or implementing a new X server which can meet the growing demands of free software on the desktop. The recent shakeups in the X11 community are pushing towards a more modular and open development model that can remedy many of longstanding criticisms leveled at the X Window System.
The X Window System is a lynchpin for the free desktop. The vast majority of Free desktop users run XFree86 today. If it is not configured properly, or not properly supported by a user’s hardware, he or she cannot do graphical operations, including anything from using a windowing environment like Gnome, viewing movies, or using 3D applications. It is important to remember that XFree86 is used not just by GNU/Linux users, but also FreeBSD, OpenBSD, NetBSD, MacOS X, and even some MS Windows users. As such, many users have a stake in the future of X11 development in general, and also in XFree86 in
- X Window System (X11): a network transparent protocol for graphical display.
- X Server: a piece of software which implements the X11
protocol. This software handles the rendering to the screen for X
- XFree86: an open-source X
server. This program is shipped with most free unix work-a-like
systems, such as GNU/Linux and FreeBSD, etc., as well as by some
proprietary systems, such as Apple’s MacOS X. The project is led by
- X Client: a piece of software that connects to an X server in
order to display graphics. This is usually a graphical software
program such as Mozilla.
convenience libraries which wrap the X protocol to simplify the
process of writing software that can act as an X client. In
principle, this software library can be used with any X
An excellent history of the X Window System can be found at Wikipedia. Discussions of most of the recent developments can be found in OSNews.com’s X11 coverage. The point of this article is to provide some perspective on the meaning of these developments.
March 2003 – April 2003
The first major X event of 2003 occurred in March:
Keith Packard was kicked out of the XFree86 Core Team for
privately seeking support for a fork of XFree86. In April, Packard, a leader at FreeDesktop.org, along with
Mike Harris from
Redhat held a
teleconference to discuss more open X development. Several
well known hackers attended. The main result of that
teleconference was the establishment of a (now defunct) xwin.org
site to organize X development. The basic problems frustrating
users and developers have to do with the slow pace of XFree86
development: patches are not accepted in a timely fashion, new
drivers cannot be released without re-releasing the whole package,
new developers are not readily accepted, and architectures other
than x86 are not well-tested
(some Debian developers share their pain). Perhaps the most
important problem is the monolithic nature of the XFree86 code. The
of files alone in the 4.3.0 release of XFree86 is over 1 MB.
The XFree86 team avoids external dependencies, preferring to keep
their own versions of widely-used libraries like fontconfig,
freetype, GNU tar, and zlib in the tree. The Xlibs are lumped into
the distribution of XFree86 as well, rather than being contained in
a separate module. Several X clients (such as xterm, xclock, xeyes,
etc.) are also part of the distribution. The lack of
modularization, along with the relatively closed development
process, means that many of the
purported benefits of open source development can not take hold.
August 2003 – February 2004
Months passed. In August 2003, an actual fork of XFree86 was announced in the form of the Xouvert project. This project aims to improve X11 development by using a more open developement model.
Taylor laid out a general plan for modularizing XFree86, and
this is the current goal of Xouvert. In order to keep in sync with
the improvements to the main XFree86.org source tree, Xouvert
developers use Gnu Arch as
the revision control system. Arch, being designed to excel at
distributed development, allows the Xouvert developers to
incorporate improvements made to XFree86 along with their own
efforts to modularize and improve the code.
Cygwin is a Linux-like
environment for Windows. There is a port of XFree86 to Cygwin
called Cygwin/X. In late
October 2003, OSNews reported
that Cygwin/X was no longer
associated with XFree86.org. The Cygwin developers stopped
working with XFree86.org because they became frustrated with their
inability to get their patches in to the main tree. They saw David
Dawes’ failure to give them CVS commit access as a passive signal
that he did not want them to ever have CVS commit access. This is a
case of personalities (or at least a centralized development model)
getting in the way of actual development.
In early November 2003, early reports of
Keith Packard’s X
Server began to circulate. The new X Server, hosted by Freedesktop.org, showed off
support for transparent windows, a la MacOS X, with some sexy screen
shots. There was some early confusion on the origin of this
software. One of the first reports called it a fork or
XFree86, which it is not. It is based on KDrive,
a tiny X Server written by Keith Packard.
December 2003 began with the first Xouvert
Release. Unfortunately, a lack of activity on the Xouvert Mailing
List and a lack of any binary releases suggest that progress
has been slower than many had hoped. At the end of the December,
Dawes announced that the XFree86 Core Team had disbanded. The
meaning of this announcement was not clear to all, but basically
the problem was that the core team was a sort of closed advisory
group which was not doing any useful advising. It was the same
group that Keith Packard was kicked out of in March. The core group
was not the group doing the major development. This was hailed
as a positive development.
In January 2004, it was announced that
some X.org and XFree86 developers were now working together as a
single group . The two organizations were not to join, as was
initially thought. Finally, it seemed that the announcement was
probably not very meaningful, but it is a reflection of the turmoil
surrounding X development and the efforts of some to reform the
organizations involved. Shortly thereafter, Freedesktop.org
announced that they had packaged the Xlibs from the XFree86 package.
The packaging of Xlibs, in some ways, was the most significant
development over the past year. For the first time, actual work had
been done, and code was ready. Many people have sought to
modularize and modernize X, but this was a concrete result. Many of
the Xlibs are independent of the particular X server, and as such,
Freedesktop.org can use them in conjunction with their own X Server. January
ended with XFree86 changing its
license to one that appears to prohibit GPL programs from
linking to any of the new XFree86 code, due to the fact that the
new license has an advertising clause, and the GPL prohibits any
constraints being placed on software carrying the GPL license.
During February 2004, various developers pondered the
implications of the new license. Mandrake Linux was one of
the first to reject the new XFree86 license and
revert to 4.3. By mid-February,
most major free Unix organizations had rejected the license.
Precisely what this means is unclear. One of three things will
happen: XFree86.org will revert to the old license, the various
GNU/Linux and BSD distributions will each maintain their own
version of XFree86, or a new project will be formed to manage a
fork of XFree86.
What we need now is good leadership. The plan is clear: break the XFree86 source into at several parts: libraries, X servers, and X clients. Many distributions already produce separate packages for each of the major components of XFree86, but the key is to do this work in the XFree86 tree (or a commonly-used fork thereof). Freedesktop.org has already done some of this work by releasing a packaged version of just the Xlib sources. All the major vendors should support this effort. The job that remains is large, and needs at least one full-time developer to act as a “Linus” for project.
The next bit of work is to get a
version of the source to the XFree86 X server packaged without the
Xlibs, in-tree dependencies, or X clients (xterm, xclock, etc.).
Lastly, due to the age of the XFree86 code, there are many parts
which can be made modern, such as converting the build system from
libc i18n with iconv, and removing all
in-tree dependencies. These jobs won’t necessarily be great fun,
but, once they are completed, the X Window System will be in a
position to improve quickly. Further, many of the issues about
maintenance will be resolved if the source is not in one big CVS
module, with one person controlling who gets CVS access to any of
There are many exciting ideas for the X Window System, including
the new Freedesktop.org X Server
with translucency, an OpenGL
back-end for XFree86, X Compression for slower links, XCB Xlib replacement and no doubt many others. Once XFree86 is split, we can replace each part with the best of breed. At that point, the improvements in Free Desktops can be fluid and frequent.
About the author
P. Oscar Boykin is a post-doctorate researcher in Quantum Information and Complex Networks at UCLA’s Electrical Engineering department. Boykin is a big Free Software fan and enjoys programming.