Friday September 30, 2005
alanc @ sun.com
Alan Coopersmith’s blog
Random thoughts of a disorganized mind...
(and though it should be obvious, while Sun pays me to think about things, they disclaim any responsibility for these thoughts, nor do I claim what I say matches in any way what Sun thinks)
Solaris Nevada X Consolidation Change Logs posted
[Also posted to OpenSolaris X Window System forum/mailing list.]
To help whet your appetite while waiting for our source release, I've posted the change logs for the X Consolidation for the Nevada builds so far, so you can see what's changed since Solaris 10 already:
http://opensolaris.org/os/community/x_win/changelogs/
For now, this is just a list of bug ids included in each build - once we get the source up, we can start including which files are changed for new builds.
As for the source release, we're still waiting on the X.Org community 6.9 RC 1 release - work on that seems to be going well at this point, and it may be out in the next two weeks. It will take some time after that to prepare our source release based on it, so we're probably looking at the end of October at the earliest, but it's hard to say exactly when just yet.
[Technorati Tags: Xorg, X11, Solaris, OpenSolaris]
Posted at 02:30PM Sep 30, 2005 by Alan Coopersmith in X11 |
Solaris patches for CAN-2005-2495
A security hole in processing XCreatePixmap requests in the Xserver (known as “CAN-2005-2495”) was announced this week. This affects most X servers based on the original X11R6 code from the X Consortium at MIT, so we've released preliminary patches for the Xsun & Xorg servers in Solaris. These haven't had time to go through the full patch regression test process yet, so aren't in the main patch site for now, but in the special Preliminary Security T-patches area on SunSolve.
Further details, including the list of which patches to use for each Solaris release, can be found in Security Sun Alert #101926. (And yes, there is a slight mistake in the current version since it references XPM files, which are not involved in this exploit - that was an accidental copy of the description from the previous libXpm security alerts. Unfortunately, I didn't notice that until after I told the Sun Alert team the draft alert was correct. I let them know it was wrong, so hopefully they can fix that. It should say something more like “A program that has access to the X server (via xhost or xauth authentication) can make calls that may allow it to execute arbitrary code with the privileges of the X server.” Which is of course, just another reason you should just say no to “xhost +”.)
[Technorati Tags: Xorg, X11, Solaris, security]
Posted at 04:18PM Sep 16, 2005 by Alan Coopersmith in Solaris | Comments[3]
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:
- FreeType font software from the FreeType Project (www.freetype.org)
- Bitstream Vera fonts, released by Bitstream in co-operation with the GNOME Project (www.gnome.org/fonts)
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: Xorg, X11, Solaris, OpenSolaris]
Posted at 11:21AM Sep 04, 2005 by Alan Coopersmith in X11 | Comments[3]
