I am sponsoring this case for the X11 Engineering Group. It times out Wednesday, January 21 (allowing an extra day for the long holiday weekend in the US).
------------------------------------------------------------------------------- Template Version: @(#)sac_nextcase %I% %G% SMI This information is Copyright 2009 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: Xorg server 1.5 1.2. Name of Document Author/Supplier: Author: Alan Coopersmith 1.3 Date of This Document: 13 January, 2009 4. Technical Description This case updates the Xorg server (and the associated X servers based on its source base - Xephyr, Xvnc and /usr/X11/bin/Xvfb) from version 1.3 (which was a standalone release, between X11R7.2 and X11R7.3, covered in PSARC 2007/434), to version 1.5.3 (a bugfix update to the version 1.5 included in X11R7.4). This case requests a Minor Release Binding, since it depends on interfaces from PSARC 2005/399, which has a Minor Release binding. This case also introduces incompatible API & ABI for Xorg loadable modules, which would have to be carefully considered for a Micro/Patch release. Input Device configuration and hotplugging: ------------------------------------------- This version of Xorg converts from a static input device configuration either loaded from an xorg.conf file or from probing devices at startup, to dynamic configuration. At startup Xorg registers with HAL, and configures input devices based on HAL configurations, including adding new devices as they are hotplugged. Each device is tracked as a separate device via the X Input Extension, including keeping per-device XKB keyboard layout information. Keyboards and mice default to also being coalesced into the virtual core keyboard and pointer devices. Configuration options may be set in the HAL fdi files in /etc/hal/fdi/. The default configuration will be delivered in the file /etc/hal/fdi/preprobe/10osvendor/10-x11-input.fdi . More information on this new system can be found at: https://wiki.ubuntu.com/X/Config/Input#Input%20Configuration%20with%20HAL http://who-t.blogspot.com/2008/07/input-configuration-in-nutshell.html though those resources are Linux-centric, and refer to different drivers than used on Solaris ("evdev" instead of "kbd" & "mouse"). Other xorg.conf configuration changes: -------------------------------------- Previously, if an xorg.conf was present, it had to list all modules to be loaded at runtime in the "Module" section. Xorg will now load all modules in it's default builtin list *unless* an xorg.conf lists them with the "Disable" keyword in the module section. Previously, if an xorg.conf was present, it had to list all entries to be included in the default font path in the "Paths" section. Xorg will now include the entries from its default font path in the font path *unless* an xorg.conf sets the "UseDefaultFontPath" option to true and specifies its own font path. New xorg.conf options in this release: Option "GlxVisuals" "string" This option controls how many GLX visuals the GLX modules sets up. The default value is typical, which will setup up a typical subset of the GLXFBConfigs provided by the driver as GLX visuals. Other options are minimal, which will set up the minimal set allowed by the GLX specification and all which will setup GLX visuals for all GLXFBConfigs. Option "UseDefaultFontPath" "boolean" Include the default font path even if other paths are specified in xorg.conf. If enabled, other font paths are included as well. Enabled by default. Option "AllowEmptyInput" "boolean" If enabled, don't add the standard keyboard and mouse drivers, if there are no input devices in the config file. Enabled by default if AutoAddDevices and AutoEnableDevices is enabled, otherwise disabled. If AllowEmptyInput is on, devices using the kbd or mouse driver are ignored. Option "AutoAddDevices" "boolean" If this option is disabled, then no devices will be added from HAL events. Enabled by default. Option "AutoEnableDevices" "boolean" If this option is disabled, then the devices will be added (and the DevicePresenceNotify event sent), but not enabled, thus leaving policy up to the client. Enabled by default. These xorg.conf options are no longer supported in this release: RGBPath "path" sets the path name for the RGB color database. When this entry is not specified in the config file, the server falls back to the compiled-in default RGB path, which is: /usr/X11/share/X11/rgb Option "VTInit" "command" Runs command after the VT used by the server has been opened. The command string is passed to "/bin/sh -c", and is run with the real user's id with stdin and stdout set to the VT. The purpose of this option is to allow system dependent VT initialisation com- mands to be run. This option should rarely be needed. Default: not set. [Has never been supported on Solaris, since VT support has not yet been integrated to Solaris Xorg server.] If specified in an xorg.conf, a warning is logged, but the X server will continue to run. Loadable Module Interfaces: --------------------------- This release includes incompatible changes in several of the Xorg loadable module API/ABI's. The version numbers of the ABI's have had their major number incremented to reflect this, and modules reporting they require a different version number will not be loaded unless the -ignoreABI option is used. (Modules can also check ABI versions themselves, and choose which function variant to call or structure variant to access, based on the reported versions - this is the option used by nvidia's closed source driver for instance.) ABI versions in this release, compared to the previously shipped Xorg 1.3: ABI Name: 1.3: 1.5: ABI_ANSIC_VERSION 0.3 0.4 ABI_VIDEODRV_VERSION 1.2 4.1 ABI_XINPUT_VERSION 0.7 2.1 ABI_EXTENSION_VERSION 0.3 1.1 ABI_FONT_VERSION 0.5 0.6 (Major number increments represent incompatible change, minor number increments represent compatible additions. ABI numbers may increment multiple times during Xorg server minor version development cycles, to track changes for those following the head of the development stream.) The changes that resulted in these version number bumps include: - Replacing the X server's internal access permission checking with a much more fine-grained permission checking system, contributed by the NSA as part of their SELinux project. - A new version of the "devPrivates" mechanism used by device drivers, extensions, and other modules to allocate a private field in common data structures such as pixmaps, graphics contexts, windows, and other X server resources. - Replacement of the X server's own PCI bus access code with use of the libpciaccess code for probing devices, and reading/writing to device registers and memory. All modules built & delivered in the X consolidation have been updated to adjust to these changes, including all of the community-developed drivers and extensions, and the Sun created/maintained IA (Interactive Priority Class) and xtsol (Trusted Extensions) loadable modules. The X team has worked with the SPARC graphics team to help them produce updates to their drivers, which are planned for delivery in coordination with the Xorg 1.5 delivery. Nvidia tracks the open source community ABI changes for their Xorg driver for all supported platforms (Solaris, Linux & BSD), and the version integrated into Nevada already supports the Xorg 1.5 release ABI's. We are not aware of any other consumers of these Volatile ABI's which would need to be updated in coordination. Driver changes: --------------- The "via" driver has been replaced by the "openchrome" driver, as X.Org has abandoned maintenance of the original via driver and recommends use of the openchrome fork of the driver. The "vga" driver has been removed. "vesa" should still cover fallback for all devices which can still reasonably be used which do not have their own driver. The "nsc" and "cyrix" drivers for previous generations of the NSC/Cyrix/AMD Geode embeded chipset have been removed as they were not ported by the community to the new interfaces. The replacement "geode" driver is not provided as it has not yet been ported to Solaris. (The most common use of this chipset in a semi-traditional computer enviroment that we are aware of is in the One Laptop Per Child XO laptops, which Solaris/OpenSolaris have not been ported to.) Other Added Interfaces: ----------------------- The Xorg server now supports these new command line options: -modalias output a list of devices supported by each driver module in the format of the Linux modalias command Removed Interfaces: ------------------- These command-line options are no longer supported in this release: -scanpci scan the PCI bus and print information about each device [Use /usr/bin/scanpci instead.] -sp filename provide a policy file for use by the XC-SECURITY extension These extensions are no longer supported by the X server in this release: LG3D support for the Project Looking Glass 3-D research project Obsolete Interfaces: -------------------- While still supported in this release, these interfaces/features have been removed in the next release of the Xorg server, so are declared Obsolete at this time. (The Xorg 1.6 release from the community is currently in beta, with release expected within a month, so there may not be much time before a removal case comes forward for these, depending on how the community release date aligns with the OpenSolaris.Next release schedule.) Xservers built on the Xorg 1.6 code base will not support these extensions: - AppGroup - EVI (Extended Visual Information) - MIT-SUNDRY-NONSTANDARD - TOG-CUP (Colormap Utilization Policy) - XTrap - XFree86-Misc - XEvIE (X Event Interception Extension) Xservers built on the Xorg 1.6 code base will not support these command-line flags: -bestRefresh choose modes with the best refresh rate -co filename Use rgb color database in filename -showunresolved (undocumented/unused) ------------------------------------------------------------------------------- Imported Interfaces: -------------------- libmd (SHA1 routines) Stable PSARC 2005/426 libhal Volatile PSARC 2005/399 /etc/hal/fdi Volatile PSARC 2005/399 libdbus Volatile LSARC 2006/368 libpciaccess Volatile PSARC 2008/638 libpixman-1 Volatile LSARC 2008/637 Exported Interfaces: -------------------- Xorg -modalias command line option Volatile New xorg.conf options listed above Volatile [1] New Xorg module ABI's listed above Volatile Interfaces listed under "Obsolete Interfaces" Obsolete Volatile References in case materials directory: [1] xorg.conf.man.txt: xorg.conf(4) man page from Xorg 1.5.3 6. Resources and Schedule 6.4. Steering Committee requested information 6.4.1. Consolidation C-team Name: X 6.5. ARC review type: FastTrack 6.6. ARC Exposure: open