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


Reply via email to