posted by Oscar Boykin on Wed 25th Feb 2004 08:59 UTC

"X11 developments in 2003, Page 2/2"
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. Owen 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 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 The Cygwin developers stopped working with 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, 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, David 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 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, 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, 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: 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.

The Future

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). 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 imake to autotools, using 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 the parts.

There are many exciting ideas for the X Window System, including the new 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.
Table of contents
  1. "X11 developments in 2003, Page 1/2"
  2. "X11 developments in 2003, Page 2/2"
e p (0)    51 Comment(s)

Technology White Papers

See More