X.Org Community & OpenSolaris X release plans

I had to write up a proposal recently for releasing the source from the X Window System consolidation [1] in Solaris to the OpenSolaris program, based on the ideas we had discussed in the X group and with our management chain for how to handle this. It's a sizeable writeup, so it follows a bit later in this blog entry. There's a problem with the schedule I prepared as part of this plan though - it was based on the X.Org Community Release Plans, which called for Xorg 6.9/7.0 to be released on this approximate schedule:

  • XX Aug 2005: Release Candidate 1 (features & bug fixes)
  • XX Sep 2005: Release Candidate 2 (bug fixes only)
  • XX Sep 2005: Release Candidate final (critical bug fixes only)
  • XX Oct 2005: X11R6.9/X11R7 Release (Documentation changes only)

In the past we've found that the Release Candidate 1 phase is about the same quality as our integration criteria for Solaris - features finished, major bugs fixed, documentation mostly done except for some cleanup work - and so we've integrated those into our builds for testing, to help find problems early, hopefully in time so they can be fixed in the final release from the community as well as in our release.

Unfortunately, as you may have noticed, it's now September and the RC1 release hasn't come out yet from X.Org. The X.Org release managers recently posted a message[2] on this to the Xorg mailing list with details on what needs to be finished before the RC1 release can happen. There's a number of ways interested people can help to get the Xorg community releases ready for all platforms, and for those who want to see the Solaris X sources released via OpenSolaris, helping with that is the best way to help our release plans move forward too. Ways you can help include:

  • Building all the 7.0 modules and reporting any problems you find. Add configure.ac tests to replace any of the old Imake options or platform definitions.
  • Setting up a tinderbox to continually build on a specific platform, so we can find out as soon as possible if a change breaks the build on that platform.
  • Looking through the documentation to see what needs to be updated, especially because of the modularization/autotooling project.
  • Testing bugs in the Xorg products in freedesktop.org bugzilla to see if they're still reproducible with the latest code from CVS
  • Testing the proposed EXA patches for your hardware (if there are any yet) and reporting any bugs you find to the authors.

The xorg mailing list on freedesktop.org is the best place to ask if you have any questions about this. (If you try mailing me directly or responding here, don't expect a quick response, since I'm going to be out all week, and may not be near net much.)

So, remembering that the dates are probably slipping a few weeks, and that this is still just a proposal and not yet the fully approved plan, so still subject to change, here's the draft of our X for OpenSolaris release plans (slightly abridged for public release):

This open source offering will include code from the X Window System ("X") Consolidation for Solaris "Nevada" source gate. X source code will be released in stages.

This initial stage of X software consists mainly of software based on the open source Xorg software release from the X.Org Foundation, which Sun has modified for use on Solaris and incorporated into our Solaris packages, including the Xorg X server, graphics and input device drivers, and supporting files, and client libraries and programs for Xorg extensions. It will also include Sun's modifications to, and build and packaging infrastructure for several related software packages:

Future stages will include replacing existing components of Sun's X Window System, where possible, with the equivalent sources from the latest X.Org Foundation release. The existing X Window System in Solaris, and the X.Org Foundation software, are both derivatives from the original X Window System release X11R6 from the X Consortium at MIT, but both have diverged greatly from the original X11R6 in different ways. Between now and the Solaris Nevada release. we will be investigating each software module in our current software to determine what changes have been made to Sun's version, and if those changes are not present in the current X.Org version, whether we can and should contribute them to X.Org and then use the resulting X.Org open source release as the basis for our Solaris versions going forward. The remaining sources which are not based on components in the X.Org open source release will then be evaluated to determine if they can and should be released as open source, and if so whether to release via OpenSolaris or the X.Org Foundation, or both.

The software in this stage is all currently built by taking the unmodified community sources, applying Sun's changes, and then compiling. As such, to reduce the amount of work needed to release the software, we will only be releasing Sun's changes and the build and packaging environment needed. Users will be instructed to download both our sources and the original community sources from the community sites. The build scripts we provide will then combine the two into the sources used in Solaris.

The X consolidation sources in Solaris are also currently maintained in two separate gates, the main X gate, which contains all the sources to the X software released in Solaris 9 and before, and an Xorg gate, which was created in April 2004 for the project of porting the Xorg tree to Solaris. Because the Xorg gate is a new gate, based on open source software, we are going to begin our OpenSolaris releases by releasing all of this gate except for the closed-src directory. We will also be releasing selected components from the main X gate which also came from open source releases in recent times and were purposely kept in a separate subdirectory. The bulk of the main X gate is unfortunately a mix of open source and proprietary code that has been mixed and evolved over 15 years and as such needs more work before we can release it, so it will be reserved until future stages of our OpenSolaris release plans.

Those future stages will include replacing existing components of Sun's X Window System, where possible, with the equivalent sources from the latest X.Org Foundation release. The existing X Window System in Solaris, and the X.Org Foundation software, are both derivatives from the original X Window System release X11R6 from the X Consortium at MIT, but both have diverged greatly from the original X11R6 in different ways. Between now and the Solaris Nevada release. we will be investigating each software module in our current software to determine what changes have been made to Sun's version, and if those changes are not present in the current X.Org version, whether we can and should contribute them to X.Org and then use the resulting X.Org open source release as the basis for our Solaris versions going forward. The remaining sources which are not based on components in the X.Org open source release will then be evaluated to determine if they can and should be released as open source, and if so whether to release via OpenSolaris or the X.Org Foundation.

The initial release should contain the source for these packages:

Packages for both SPARC & x86:
  SUNWxorg-client-docs      SUNWxorg-clientlibs       SUNWxorg-devel-docs
  SUNWxorg-client-programs  SUNWxorg-compatlinks      SUNWxorg-headers
  SUNWfontconfig            SUNWfontconfig-docs       SUNWfontconfig-root
  SUNWfreetype2             SUNWxwxft

Packages currently delivered only for x86:
  SUNWxorg-cfg              SUNWxorg-headers          SUNWxorg-xkb
  SUNWxorg-doc              SUNWxorg-mesa
  SUNWxorg-graphics-ddx     SUNWxorg-server

The one exception will be the code from the closed-src directory used to build part of SUNWxorg-server.

It will not contain any of the sources for these packages:

  SUNWi1of   SUNWxwdem  SUNWxwfs   SUNWxwman  SUNWxwplr  SUNWxwslb
  SUNWstsf   SUNWxwdim  SUNWxwfsw  SUNWxwmod  SUNWxwplt  SUNWxwsrc
  SUNWstsfr  SUNWxwdxm  SUNWxwhl   SUNWxwoft  SUNWxwpmn  SUNWxwsrv
  SUNWxwacx  SUNWxwfa   SUNWxwice  SUNWxwopt  SUNWxwpsr  SUNWxwsvr
  SUNWxwcft  SUNWxwfnt  SUNWxwinc  SUNWxwpft  SUNWxwrtl  SUNWxwxst
  SUNWxscreensaver-hacks     SUNWxscreensaver-hacks-gl

Sources for most, but not all, of the contents of those packages are expected to become available in later phases.

With only the sources in the initial release, users will have:

  • An X server for x86 hardware (Xorg)
  • Libraries and programs for extensions supported in Xorg but not Xsun
  • The font software used by the JDS/GNOME stack.

They will not have:

  • An X server for SPARC hardware, or the older Xsun server for x86.
  • The base X libraries needed by all X, CDE, and GNOME applications.
  • Support for input and output methods for various languages
  • Fonts other than Bitstream Vera
  • Base X clients such as xhost, xauth, xterm, etc.
  • The Xscreensaver used by GNOME

Many of those may be obtained from the open source X.Org software distribution, but they are not completely compatible drop-in replacements for the Solaris versions, and will not provide an X server usable on SPARC hardware. For now, users will still need to use the binaries provided in Solaris Express to get SPARC graphics support, libraries compatible with applications compiled against Solaris releases, accessibility support in Xscreensaver, and the full set of applications and fonts provided by Solaris, or bug fixes and enhancements we have not yet contributed back to the open source community.

The Xorg software in Solaris 10 and Nevada is currently based on Xorg 6.8.2, to which Sun has applied changes, fixed bugs, and brought back individual changes on an as-needed basis from the Xorg community CVS branch for the upcoming Xorg 6.9 branch, such as support for new models of graphics devices from ATI, nVidia, and Intel. Currently, we modify almost 300 files from the community release to build our sources - moving our baseline release to the Xorg 6.9 release will remove over 50% of those changes as we have either contributed the changes back that we made, or will be getting the newer versions of the files that we use directly from the Xorg baseline release.

Because of this, we are basing our OpenSolaris release plans on the schedule planned for the Xorg 6.9 release from the community. The community is actually working on two parallel releases right now - Xorg 6.9 & 7.0. The releases will contain the same code base, but are organized differently and use different build systems. Xorg 6.9 follows the style used by previous X11 releases, where the entire release is built and released as one monolithic source tree, of just over 15,000 files, built using the Imake build system X has always used, but few other projects have adopted. Xorg 7.0 breaks the tree down into individual modules, which can be built and released separately, to allow a more managable release process, and converts to using the GNU autoconf toolchain used by most other open source projects. To allow us to move faster to the new code line, we will first move to the Xorg 6.9 release, allowing us to adopt the new features utilizing our existing build infrastructure and without the additional risk of having to convert both our code base and our build system at the same time. This then needs to "soak" in Nevada to allow backporting to a Solaris 10 Update release.

In parallel, once Xorg 7.0 is released, we will start using the individual module sources to replace existing components of the main Solaris X11 tree, which is currently a mix of X11R6.0, X11R6.4, X11R6.6, XFree86 4.3, X11R6.8, Sun enhancements and 3rd-party code. Each module will be analyzed and we can determine then if there are any changes to our source not present in the open source versions. When differences are found, we will analyze them to see if they should be maintained or removed, and if we maintain them, whether we can contribute our changes back to X.Org for future releases. This is expected to be a gradual process occuring over the lifetime of the Solaris Nevada development cycle, slowly increasing the amount of the Solaris X source which is available via OpenSolaris and decreasing the amount of differences between our releases and the community releases.

The current proposed dates for the community 6.9 & 7.0 releases (which as you can see are still a bit rough) are:

    \* XX Aug 2005: Release Candidate 1 (features & bug fixes)
    \* XX Sep 2005: Release Candidate 2 (bug fixes only)
    \* XX Sep 2005: Release Candidate final (critical bug fixes only)
    \* XX Oct 2005: X11R6.9/X11R7 Release (Documentation changes only)
    \* April 2006: X11R7.1 Release (tentative)
    (see http://wiki.x.org/wiki/X11R6970ReleasePlan for details)
Given that, our proposed schedule for integration into Solaris Nevada and release of source via OpenSolaris is:

Now:
Work on contributing Sun changes from Solaris XORG tree to X.org community CVS for 6.9 release to minimize the number of Sun-custom changes we have to carry forward for 6.9.
Nevada Build 24 (X code changes from 8/30-9/12)
Integrate Xorg 6.9 RC1. First build to have source released via OpenSolaris - will consist of XORG tree (except closed-src directory) and open-src directory of XSUN tree.
Nevada Build 25 (X code changes from 9/13-9/26)
Integrate Xorg 6.9 RC2
Nevada Build 26 (X code changes from 9/27-10/10)
Integrate Xorg 6.9 Release. Begin integrating library & client packages from Xorg 7.0 Release into open-src directory of XSUN tree to replace existing code.
Sometime in Q2 CY2006 (depending on Xorg 7.1 community schedule)
Integrate Xorg 7.1 into XSUN open-src tree, including all bits currently in XORG tree. Close Nevada XORG tree permanently.

[1] For those not familiar with the Solaris terms, a "consolidation" is a set of related software packages built and integrated into the OS together. The initial OpenSolaris release was from the "OS/Networking", or "ON", consolidation, consisting of the kernel and core utilities. I work on the Solaris X Window System consolidation, usually known as "X" for short, which consists of the software you'ld find in the X.Org tree, plus similar custom software from Sun. It does not include CDE/Motif, JDS, or the Xsun graphics card modules, which all come from their own consolidations.

[2] Solaris fans should note that there's only two OS'es listed as fully supported in the modular release, and our favorite OS is one of them! Fans of other OS'es should note this is mainly because Sun's X engineering group is putting in the time to make this happen, and all you need to do to add your OS to the list is to respond to the call for volunteers to help out on other OS'es. Some work has been put in towards supporting the various BSD flavors, CygWin, and MacOS X, but not enough to be ready to claim full support yet.

[Technorati Tags: , , , ]

Comments:

Will you be able to release driver source for sparc-specific video cards later than the Creator3D, or are these some of the sources which will never be releasable?

Posted by Luke on September 04, 2005 at 03:45 PM PDT #

I think most people would be happy with just binary sparc driver just like the nvidia. This would be a great and very possible move to make, as it would allow you guy more time to get OSS drivers out but allow testing of X.org on all solaris platforms. If its been good enough for the linux community to use binary driver then it should be good enough for us.

Posted by jpdrawneek on September 05, 2005 at 09:41 AM PDT #

Well I won't be able to release the source to the SPARC drivers as part of our release plans, because the sources for those aren't in the source trees I'm working with or in the control of the group I work for. The SPARC graphics team is responsible for those and would be the ones responsible. For cards later than Creator 3D, only 2 models were actually made by Sun - the UPA slot Elite 3D (afb) and the very rare XVR-4000 (Zulu, which only works in the Sun Fire V880z). The PCI cards sold in SPARC workstations and chipsets built into low-end SPARC workstation motherboards are all OEM'ed from other companies - 3Dlabs, ATI, and TechSource.

The last report I heard from the SPARC graphics group though, was that they had no plans to release any sources via OpenSolaris. I did ask them to consider making their drivers available for redistribution in binary form like the other encumbered parts of OpenSolaris, but haven't heard if they will be doing so or not yet (quite possibly because I'm not at work this week, and haven't been keeping up on work e-mail).

Posted by Alan Coopersmith on September 07, 2005 at 08:18 AM PDT #

Post a Comment:
Comments are closed for this entry.
About

Engineer working on Oracle Solaris and with the X.Org open source community.

Disclaimer

The views expressed on this blog are my own and do not necessarily reflect the views of Oracle, the X.Org Foundation, or anyone else.

See Also
Follow me on twitter

Search

Categories
Archives
« August 2015
SunMonTueWedThuFriSat
      
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
     
Today