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