--- xorg-server-1.1.1.orig/debian/xdmx-tools.install +++ xorg-server-1.1.1/debian/xdmx-tools.install @@ -0,0 +1,5 @@ +usr/bin/dmx* +usr/bin/vdltodmx +usr/bin/xdmx +usr/share/man/man1/vdltodmx.1x +usr/share/man/man1/dmxtodmx.1x --- xorg-server-1.1.1.orig/debian/control +++ xorg-server-1.1.1/debian/control @@ -0,0 +1,140 @@ +Source: xorg-server +Section: x11 +Priority: optional +Maintainer: Debian X Strike Force +Uploaders: David Nusinow , Branden Robinson , Fabio M. Di Nitto +# all the Build-Depends up to x11proto-xf86-dri-dev are for the normal Xorg +# server, and common dependencies for the DIX. +# x11proto-xf86dri-dev and libdrm-dev are for DRI support for the Xorg server. +# everything on is for the DMX and Xnest servers. +Build-Depends: debhelper (>= 4.0.0), pkg-config, bison, flex, x11proto-bigreqs-dev, x11proto-composite-dev, x11proto-core-dev, x11proto-damage-dev, x11proto-evie-dev, x11proto-fixes-dev, x11proto-kb-dev (>= 1.0.1-1), x11proto-xinerama-dev, x11proto-randr-dev, x11proto-record-dev, x11proto-render-dev, x11proto-resource-dev, x11proto-scrnsaver-dev, x11proto-trap-dev, x11proto-video-dev, x11proto-xcmisc-dev, x11proto-xext-dev (>= 6.9.99.0-1), x11proto-xf86bigfont-dev, x11proto-xf86dga-dev, x11proto-xf86misc-dev, x11proto-xf86vidmode-dev, xtrans-dev, libxau-dev (>= 1:0.99.1-1), libxdmcp-dev (>= 1:0.99.1-1), libxfont-dev, libfontenc-dev, libxkbfile-dev (>= 1:0.99.1-1), x11proto-xf86dri-dev, libdrm-dev, mesa-swx11-source (>= 6.5.0.git.20060810-0ubuntu1), x11proto-gl-dev (>= 1.4.1-1), libgl1-mesa-dev (>= 6.5.0.git.20060810-0ubuntu1), libxmuu-dev (>= 1:0.99.1-1), libxext-dev (>= 1:0.99.1-1), libx11-dev (>= 1:0.99.2-1), libxrender-dev (>= 1:0.9.0-1), libxi-dev (>= 1:0.99.1-1), x11proto-dmx-dev, quilt, libdmx-dev (>= 1:1.0.1-1), libxpm-dev (>= 1:3.5.3-1), libxaw7-dev (>= 1:0.99.1-1), libxt-dev (>= 1:0.99.1-1), libxmu-dev (>= 1:0.99.1-1), libxtst-dev (>= 1:0.99.1-1), libxres-dev (>= 1:0.99.1-1) +Build-Conflicts: xlibs-static-dev +Standards-Version: 3.6.1.0 + +Package: xserver-xorg-core +Architecture: any +Depends: x11-common (>= 1:7.0.0), xserver-xorg-video-all | xserver-xorg-video, xserver-xorg-input-all | xserver-xorg-input, ${shlibs:Depends}, ${misc:Depends} +Recommends: xkb-data +Conflicts: xserver-xorg (<< 6.8.2-38), xserver-xfree86 (<< 1:7.0.0) +Replaces: xserver-xorg (<< 6.8.2-38), xserver-xfree86 (<< 1:7.0.0) +Provides: xserver +Description: X.Org X server -- core server + The X.Org X server is an X server for several architectures and operating + systems, which is derived from the XFree86 4.x series of X servers. + . + The X.Org server supports most modern graphics hardware from most vendors, + and supersedes all XFree86 X servers. + . + More information about X.Org can be found at: + + + . + This module can be found as the module 'xserver/xorg' at + :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg + +Package: xserver-xorg-dev +Architecture: any +Depends: ${misc:Depends} +Description: X.Org X server -- development files + This package provides development files for the X.Org ('Xorg') X server. + This is not quite the same as the DDK (Driver Development Kit) from the + XFree86 4.x and X.Org 6.7, 6.8 and 6.9 series of servers; it provides + headers and a pkg-config file for drivers using autotools to build + against. + . + Unless you are developing or building a driver, you probably want + xserver-xorg and/or xserver-xorg-core instead. + . + More information about X.Org can be found at: + + + . + This module can be found as the module 'xserver/xorg' at + :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg + +Package: xdmx +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Distributed Multihead X server + Xdmx is a proxy X server that uses one or more other X servers as its + display device(s). It provides multi-head X functionality for displays that + might be located on different machines. Xdmx functions as a front-end X server + that acts as a proxy to a set of back-end X servers. All of the visible + rendering is passed to the back-end X servers. Clients connect to the Xdmx + front-end, and everything appears as it would in a regular multi-head + configuration. If Xinerama is enabled (e.g., with +xinerama on the command + line), the clients see a single large screen. + . + More information about X.Org can be found at: + + + . + This module can be found as the module 'xserver/xorg' at + :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg + +Package: xdmx-tools +Architecture: any +Depends: xdmx, ${shlibs:Depends}, ${misc:Depends} +Replaces: xdmx (<= 1:1.0.2-1) +Description: Distributed Multihead X tools + This package provides a collection of tools used for administration of + the Xdmx server; see the xdmx package for more information. + . + More information about X.Org can be found at: + + + . + This module can be found as the module 'xserver/xorg' at + :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg + +Package: xnest +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Nested X server + Xnest is a nested X server that simply relays all its requests to another + X server, where it runs as a client. This means that it appears as another + window in your current X session. Xnest relies upon its parent X server + for font services. + . + Use of the Xephyr X server instead of Xnest is recommended. + . + More information about X.Org can be found at: + + + . + This module can be found as the module 'xserver/xorg' at + :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg + +Package: xvfb +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, xauth, xfonts-base +Recommends: xbase-clients +Description: Virtual Framebuffer 'fake' X server + Xvfb provides an X server that can run on machines with no display hardware + and no physical input devices. It emulates a dumb framebuffer using virtual + memory. The primary use of this server was intended to be server testing, + but other novel uses for it have been found, including testing clients + against unusual depths and screen configurations, doing batch processing with + Xvfb as a background rendering engine, load testing, as an aid to porting the + X server to a new platform, and providing an unobtrusive way to run + applications that don't really need an X server but insist on having one + anyway. + . + This package also contains a convenience script called xvfb-run which + simplifies the automated execution of X clients in a virtual server + environment. This convenience script requires the use of the xauth + program. + . + More information about X.Org can be found at: + + + . + This module can be found as the module 'xserver/xorg' at + :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg + +Package: xserver-xephyr +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Nested X server + Xephyr is an advanced nested X server. It is similar to Xnest but it supports + modern extensions such as Render, RandR, and Composite. --- xorg-server-1.1.1.orig/debian/changelog +++ xorg-server-1.1.1/debian/changelog @@ -0,0 +1,595 @@ +xorg-server (1:1.1.1-0ubuntu11) edgy; urgency=low + + * debian/patches/16_only_switch_vt_when_active.patch: + Add a check to prevent the X server from changing the VT when killing + GDM from the console. + + -- Ryan Lortie Thu, 21 Sep 2006 01:26:35 -0400 + +xorg-server (1:1.1.1-0ubuntu10) edgy; urgency=low + + * Build xserver-xephyr from xorg-server package. Malone: #57077, #57084 + + -- Tollef Fog Heen Wed, 6 Sep 2006 12:57:32 +0200 + +xorg-server (1:1.1.1-0ubuntu9) edgy; urgency=low + + * Enable composite extension by default + * Add patch from fd.o bugzilla #7916 to avoid aiglx hangs on vt + switches + + -- Matthew Garrett Sat, 26 Aug 2006 03:20:31 +0100 + +xorg-server (1:1.1.1-0ubuntu8) edgy; urgency=low + + * Steal patch from Fedora to allow compiz to trigger the disabling of + XAA off-screen pixmaps + + -- Matthew Garrett Wed, 23 Aug 2006 21:26:08 +0100 + +xorg-server (1:1.1.1-0ubuntu7) edgy; urgency=low + + * (temporarily) Removed Breaks: section from xserver-xorg-core (necessary + until apt-get properly supports this feature) + * Tightened Build-Depends: mesa-swx11-source to >= + 6.5.0.git.20060810-0ubuntu1 + * Tightened Build-Depends of libgl1-mesa-dev to >= + 6.5.0.git.20060810-0ubuntu1 + + -- Rodrigo Parra Novo Tue, 15 Aug 2006 07:26:07 -0300 + +xorg-server (1:1.1.1-0ubuntu6) edgy; urgency=low + + * Tightened Build-Depends of mesa-swx11-source to version 6.5.0.git.20060809 + * Removed patch 003_fedora_root_window_black_pattern.patch (not necessary + for Ubuntu) + + -- Rodrigo Parra Novo Fri, 11 Aug 2006 11:41:29 -0300 + +xorg-server (1:1.1.1-0ubuntu5) edgy; urgency=low + + * Renamed 003_ubuntu_sharevts_load_cpu.patch to + 002_ubuntu_sharevts_load_cpu.patch + * Added 003_fedora_root_window_black_pattern.patch (black background + pattern instead of default X background pattern. Feel free to revert if + you feel strongly against this one) + * Added 005_fdo4320_composite_fastpath.patch and + 016_fdo7482_xdmx_render_fix.patch (upstream bug fixes, bug numbers + annotated on patch names) + * Added 004_fedora_init_origins_fix.patch (multihead initialization) + * Added 006_ubuntu_fpic_libxf86config.patch + * Added 007_fedora_dont_backfill_bg_none.patch + * Added 008_fedora_gl_include_inferiors.patch, + 009_fedora_mesa_copy_sub_buffer.patch, + 010_fedora_no_move_damage.patch, + 012_fedora_tfp_damage.patch and + 014_fedora_no_composite_in_xnest.patch (further aiglx support) + * 011_fedora_pci_scan_fixes.patch (pci scan fixes - testing is needed to + check if an extra upstream patch for pci domains is also necessary) + * Added 015_fedora_sane_default_mode.patch (tweak default mode - please feel + free to revert this patch if you feel strongly against it) + * Added 017_fedora_add_missing_headers_to_sdk.patch + * Added 018_ubuntu_linux_kernel_include_fixes.patch and + 013_ubuntu_symlink_mesa_source.patch (build fixes against current + linux-kernel-modules * mesa-swx11-source - these already existed before, + but were applied directly to the source tree, instead of being quilt + patches) + * Just for reference: debian patch #02 is candidate for removal on next + upload. I'll refrain from removing it now to diminish the chances of this + being a breaks-for-everyone release + * Moved SecurityPolicy example from /usr/share/doc/examples/ to + /usr/share/doc/xserver-xorg-core/ + + -- Rodrigo Parra Novo Mon, 7 Aug 2006 17:21:05 -0300 + +xorg-server (1:1.1.1-0ubuntu4) edgy; urgency=low + + * Added new Breaks: section to xorg-server-core: + xserver-xorg-driver-all, xserver-xorg-driver-apm, + xserver-xorg-driver-ark, xserver-xorg-driver-ati, + xserver-xorg-driver-chips, xserver-xorg-driver-cirrus, + xserver-xorg-driver-cyrix, xserver-xorg-driver-dummy, + xserver-xorg-driver-fbdev, xserver-xorg-driver-glint, + xserver-xorg-driver-i128, xserver-xorg-driver-i740, + xserver-xorg-driver-i810, xserver-xorg-driver-imstt, + xserver-xorg-driver-mga, xserver-xorg-driver-neomagic, + xserver-xorg-driver-newport, xserver-xorg-driver-nsc, + xserver-xorg-driver-nv, xserver-xorg-driver-rendition, + xserver-xorg-driver-s3, xserver-xorg-driver-s3virge, + xserver-xorg-driver-savage, xserver-xorg-driver-siliconmotion, + xserver-xorg-driver-sis, xserver-xorg-driver-sisusb, + xserver-xorg-driver-tdfx, xserver-xorg-driver-tga, + xserver-xorg-driver-trident, xserver-xorg-driver-tseng, + xserver-xorg-driver-v4l, xserver-xorg-driver-vesa, + xserver-xorg-driver-vga, xserver-xorg-driver-via, + xserver-xorg-driver-vmware, xserver-xorg-driver-voodoo, + xserver-xorg-video-all (<< 7.0.22ubuntu7), + xserver-xorg-video-apm (<< 1:1.1.1-0ubuntu1), + xserver-xorg-video-ark (<< 1:0.6.0-0ubuntu1), + xserver-xorg-video-ati (<< 1:6.6.1-0ubuntu1), + xserver-xorg-video-chips (<< 1:1.1.1-0ubuntu1), + xserver-xorg-video-cirrus (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-cyrix (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-dummy (<< 1:0.2.0-0ubuntu1), + xserver-xorg-video-fbdev (<< 1:0.3.0-0ubuntu1), + xserver-xorg-video-glint (<< 1:1.1.1-0ubuntu1), + xserver-xorg-video-i128 (<< 1:1.2.0-0ubuntu1), + xserver-xorg-video-i740 (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-i810 (<< 1:1.6.1-0ubuntu1), + xserver-xorg-video-imstt (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-mga (<< 1:1.4.1-0ubuntu1), + xserver-xorg-video-neomagic (<< 1:1.1.1-0ubuntu1), + xserver-xorg-video-newport (<< 1:0.2.0-0ubuntu1), + xserver-xorg-video-nsc (<< 1:2.8.1-0ubuntu1), + xserver-xorg-video-nv (<< 1:1.2.0-0ubuntu1), + xserver-xorg-video-rendition (<< 1:4.1.0-0ubuntu1), + xserver-xorg-video-s3 (<< 1:0.4.1-0ubuntu1), + xserver-xorg-video-s3virge (<< 1:1.9.1-0ubuntu1), + xserver-xorg-video-savage (<< 1:2.1.1-0ubuntu1), + xserver-xorg-video-siliconmotion (<< 1:1.4.1-0ubuntu1), + xserver-xorg-video-sis (<< 1:0.9.1-0ubuntu1), + xserver-xorg-video-sisusb (<< 1:0.8.1-0ubuntu1), + xserver-xorg-video-tdfx (<< 1:1.2.1-0ubuntu1), + xserver-xorg-video-tga (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-trident (<< 1:1.2.1-0ubuntu1), + xserver-xorg-video-tseng (<< 1:1.1.0-0ubuntu1), + xserver-xorg-video-v4l (<< 1:0.1.1-0ubuntu1), + xserver-xorg-video-vesa (<< 1:1.2.1-0ubuntu1), + xserver-xorg-video-vga (<< 1:4.1.0-0ubuntu1), + xserver-xorg-video-via (<< 1:0.2.1-0ubuntu1), + xserver-xorg-video-vmware (<< 1:10.13.0-0ubuntu1), + xserver-xorg-video-voodoo (<< 1:1.1.0-oubuntu1) + + -- Rodrigo Parra Novo Tue, 1 Aug 2006 22:59:55 -0300 + +xorg-server (1:1.1.1-0ubuntu3) edgy; urgency=low + + * Build with -fno-stack-protector (see LP#54650) + + -- Matt Zimmerman Mon, 31 Jul 2006 16:28:59 -0700 + +xorg-server (1:1.1.1-0ubuntu2) edgy; urgency=low + + * (sparc only) removed stale inclusion of asm/kbio.h on + hw/xfree86/os-support/linux/lnx_io.c and + hw/xfree86/os-support/linux/lnx_kbd.c + * Update debian/serverabiver to 1:1.1.1 + + -- Rodrigo Parra Novo Mon, 31 Jul 2006 12:53:22 -0300 + +xorg-server (1:1.1.1-0ubuntu1) edgy; urgency=low + + * New Upstream version + * Changed Build-Depends from mesa-swrast-source to mesa-swx11-source, + following Debian package nomenclature + * Re-did 12_security_policy_in_etc.diff for 1.1.1 + * Dropped 15_security_allocate_local.diff (applied upstream) + * Dropped 16_SECURITY_setuid.diff (applied upstream) + * Dropped 000_ubuntu_fix_read_kernel_mapping.patch (applied upstream) + * Dropped 002_ubuntu_fix_for_certain_intel_chipsets.patch (applied upstream) + * Updated versioned Build-Depends on mesa-swx11-source to version + 6.5.0.cvs.20060725-0ubuntu1 + * Added arrayobj.c, arrayobj.h, bitset.h & rbadaptors.h to + GL/symlink-mesa.sh (linked from mesa-swx11-source) + * Added arrayobj.c to default build target on GL/mesa/main + + -- Rodrigo Parra Novo Tue, 25 Jul 2006 20:06:28 -0300 + +xorg-server (1:1.0.2-9ubuntu3) edgy; urgency=low + + * Drop Depends: *-driver-* now that the transion is complete. + + -- Fabio M. Di Nitto Wed, 12 Jul 2006 13:00:28 +0200 + +xorg-server (1:1.0.2-9ubuntu2) edgy; urgency=low + + * Fix postinst script. + (Closes: #52538) + + -- Fabio M. Di Nitto Tue, 11 Jul 2006 08:13:23 +0200 + +xorg-server (1:1.0.2-9ubuntu1) edgy; urgency=low + + * Sync with Debian unstable: + - Merge remaing patches from ubuntu: + . 001_ubuntu_add_extra_modelines_from_xorg.patch + . 002_ubuntu_fix_for_certain_intel_chipsets.patch + . 003_ubuntu_sharevts_load_cpu.patch + - Change B-D from mesa-swx11-source to mesa-swrast-source while we wait + for mesa to be merged. + - Keep --with-xkb-path set to /etc/X11/xkb waiting for xkeyboard-config + merge. + - Merge xserver-xorg-video* with xserver-xorg-driver* server Depends: + - xvfb Depends: xauth, xfonts-base + - Keep xserver-xorg-core.postinst from Ubuntu. + - Call genscripts from debian/rules. + - Install Xnest man page. + - Readd small server utils to the core package again. + - xdmx-tools Replaces: xdmx (<= 1:1.0.2-0ubuntu10) due to xdmx binary + change of package. + - Ship SecurityPolicy example. + + -- Fabio M. Di Nitto Mon, 10 Jul 2006 09:37:07 +0200 + +xorg-server (1:1.0.2-9) unstable; urgency=high + + [ Denis Barbier ] + * Fix 13_debian_add_xkbpath_env_variable.diff, XKBPATH environment + variable was not always taken into account. + + [ David Nusinow ] + * Remove two Ubuntu packaging holdovers. Have xvfb recommend xbase-clients + rather than xauth, and have xserver-xorg-core recommend xkb-data rather + than xkeyboard-config. Thanks Sterling MacNay. + * Security update. Fix for setuid privledge escalation vulernabilities. + See http://lists.freedesktop.org/archives/xorg/2006-June/016146.html for + the full advisory. + + -- David Nusinow Sat, 1 Jul 2006 19:11:36 -0400 + +xorg-server (1:1.0.2-8) unstable; urgency=low + + * Move xserverrc back to xbase-clients. Thanks Benjamin Mesing. + * Add 15_security_allocate_local.diff. This fixes Bug fd.o bug #6642. + Fix buffer overflow in Render. (CVE 2006-1526). Patch by Eric Anholt. + + -- David Nusinow Tue, 2 May 2006 21:47:17 -0400 + +xorg-server (1:1.0.2-7) unstable; urgency=low + + * Ship xserverrc again in /etc/X11/xinit. Thanks Bastian Kleineidam and + Vasilis Vasaitis. (closes: #357713) + + -- David Nusinow Wed, 26 Apr 2006 00:01:16 -0400 + +xorg-server (1:1.0.2-6) unstable; urgency=low + + [ David Nusinow ] + * Use -DNO_INLINE on s390. Thanks Bastian Blank and Julien Cristau. + (closes: #362641) + * Re-add xvfb-run and manpage to xvfb package. Thanks Josselin Mouette and + Jamie Wilkinson. (closes: #363494) + * Add 014_debian_always_look_in_our_module_path.diff. This will cause the + server to always look in the default module path even if they've specified + an alternate path in their xorg.conf file via the ModulePath option. A + note to users: you should remove this part of your xorg.conf unless you + need it, as the server will look in the right place for modules if you + don't specify a location. + * Run dh_install with --list-missing + * Add missing manpages all around. Thanks Roland Mas and Jan Hudec. + (closes: #362489, #364199) + * Actually install apps to xdmx-tools. Thanks Xavier Bestel. + (closes: #356813) + + [ Denis Barbier ] + * Add 13_debian_add_xkbpath_env_variable.diff so that the server takes + the XKBPATH environment variable into account. (closes: #363229) + + -- David Nusinow Sat, 22 Apr 2006 17:06:23 -0400 + +xorg-server (1:1.0.2-5) unstable; urgency=low + + * Add 11_debian_always_use_default_font_path.diff from Eugene Konev. This + patch causes the server to add the default font path to whatever the user + has specified. Right now, that's /usr/share/fonts/X11, as defined on + configure in debian/rules. Thanks Eugene, this will definitely go a long + way. + * Document how to get rid of error loading glcore (and other modules) in + NEWS.Debian. Thanks Matej Vela and others. + * Provide the virtual 'xserver' package. Thanks Steve Langasek and Daniel + Stone. (closes: #362750) + * Add 12_security_policy_in_etc.diff from Eugene Konev. This will allow us + to tell the server on configure to look in /etc/X11/xserver for the + SecurityPolicy file. Thanks Joey Hess and Eugene. (closes: #362246) + + -- David Nusinow Mon, 17 Apr 2006 00:34:08 -0400 + +xorg-server (1:1.0.2-4) unstable; urgency=low + + * Document the need to update paths in xserver-xorg-core's NEWS file. + (closes: #362077, #362244, #362431) + * Make xserver-xorg-core Architecture: any. (closes: #362150) + * Build with --with-fontdir=/usr/share/fonts/X11. Remove + --with-default-font-path option to make this work. Thanks Eugene Konev. + + -- David Nusinow Thu, 13 Apr 2006 23:54:06 -0400 + +xorg-server (1:1.0.2-3) unstable; urgency=low + + * Add build-conflicts on xlibs-static-dev. Thanks Zephaniah E. Hull. + + -- David Nusinow Tue, 11 Apr 2006 18:44:51 -0400 + +xorg-server (1:1.0.2-2) unstable; urgency=low + + * Upload to unstable + * Add versioned build-dep on libdmx-dev. Thanks Frank Lichtenheld. + (closes: #361752) + + -- David Nusinow Mon, 10 Apr 2006 19:34:04 -0400 + +xorg-server (1:1.0.2-1) experimental; urgency=low + + [ David Nusinow ] + * New upstream release. Fixes CVE-2006-0745 + + [ Denis Barbier ] + * Set XKB base path to /usr/share/X11/xkb. + + -- David Nusinow Mon, 20 Mar 2006 21:41:04 -0500 + +xorg-server (1:1.0.2-0ubuntu10) dapper; urgency=low + + * Backport a fix for Intel bridge handling: + debian/patches/002_fix_for_certain_intel_chipsets.patch + (Closes Ubuntu: #29880) + + -- Paul Sladen Sun, 14 May 2006 19:01:32 +0100 + +xorg-server (1:1.0.2-0ubuntu9) dapper; urgency=low + + * Add 1680x1050 60 and 85Hz Modelines. Thanks to Bart Verwilst for the data. + (Closes Ubuntu: #6096) + + -- Fabio M. Di Nitto Fri, 05 May 2006 12:38:22 +0200 + +xorg-server (1:1.0.2-0ubuntu8) dapper; urgency=low + + * Fix "XCB rendertest crashes server": + - Add patch 001-CVE-2006-1526.patch.dpatch. + (CVE-2006-1526) + + -- Fabio M. Di Nitto Wed, 03 May 2006 09:01:09 +0200 + +xorg-server (1:1.0.2-0ubuntu7) dapper; urgency=low + + * Ship again xorg.conf(5) + (Closes Ubuntu: #33703) + + -- Fabio M. Di Nitto Mon, 01 May 2006 13:37:40 +0200 + +xorg-server (1:1.0.2-0ubuntu6) dapper; urgency=low + + * Fix severe internal memory corruption: + - Add patch: 000-fix-read-kernel-mapping.patch.dpatch. + (freedesktop bugzilla: #6472) + + -- Fabio M. Di Nitto Fri, 21 Apr 2006 08:07:33 +0200 + +xorg-server (1:1.0.2-0ubuntu5) dapper; urgency=low + + * Fix CPU load when using -sharevts: + - Add patch: 991_sharevts-load-cpu.patch + (Thanks for the initial patch to Michael Witrant) + (Closes Ubuntu: #33611) + + -- Fabio M. Di Nitto Mon, 10 Apr 2006 13:30:26 +0200 + +xorg-server (1:1.0.2-0ubuntu4) dapper; urgency=low + + * Fix SecurityPolicy path to /etc/X11/xserver/SecurityPolicy + and ship an example. NOTE: this file is NOT installed by default, + the WARNING you see in Xorg.0.log is an harmless WARNING. + Add patch: 990_ubuntu_fix_security_policy_path.patch. + (Close Ubuntu: #31608) + + * Readd manpages to the different packages. + + * Ship again ioport, gtf, pcitweak and scanpci. + (Closes Ubuntu: #37720) + + -- Fabio M. Di Nitto Tue, 04 Apr 2006 16:33:00 +0200 + +xorg-server (1:1.0.2-0ubuntu3) dapper; urgency=low + + * What about shipping xorg-server.m4 to make developer life easier? + + -- Fabio M. Di Nitto Thu, 23 Mar 2006 10:32:55 +0100 + +xorg-server (1:1.0.2-0ubuntu2) dapper; urgency=low + + * xserver-xorg-dev Depends: x11proto-randr-dev. + (Closes Ubuntu: #35594) + + -- Fabio M. Di Nitto Wed, 22 Mar 2006 08:09:46 +0100 + +xorg-server (1:1.0.2-0ubuntu1) dapper; urgency=low + + * New upstream release: + - Drop patches: + + CVE-2006-0745 + + add-missing-sparc-include + + fix-backtrace + + fix-crash-on-null-addr + + * UVF execption granted by mdz. + + -- Fabio M. Di Nitto Tue, 21 Mar 2006 05:39:01 +0100 + +xorg-server (1:1.0.1-2) experimental; urgency=low + + [ David Nusinow ] + * Add versioned dependency on x11-common + * Remove old cruft in our patches directory + * Port patches from trunk + + 030_libvgahw_gcc4_volatile_fix.diff + + general/026_xc_programs_manpage_overhaul.diff + + arm/303_arm_cache_flush.diff + + arm/315_arm_is_not_x86_and_has_no_vga.diff + + general/099e_xorgconf_manpage_overhaul.diff + + s390/500_s390_support.diff + + debian/910_debian_Xserver_RTFF.diff + * add 04_read_rom_in_chunks.diff. This reads PCI ROM in large chunks rather + than one byte at a time. This patch by Alex Williamson and forwarded to us + by Dann Frazier. Thanks to both of them. (closes: #353168) + * Don't build xserver-xorg-core on s390. This means putting all the other + arches as being explicitly listed. Damn !s390. + * Version the conflict with xserver-xfree86 to allow for the transition + package to be installed + * Remove README.DRI, as it is non-free. Add it to prune list. + * Add 10_dont_look_in_home_for_config.diff to prevent looking in a user's + home directory for xorg.conf. Thanks Daniel Stone for the patch. + + -- David Nusinow Sun, 12 Mar 2006 16:18:13 -0500 + +xorg-server (1:1.0.1-1) experimental; urgency=low + + * First upload to Debian + * Add bison and flex to the build-depends + * Define INSTALL in debian/rules + * Add xserver-xorg-core dependency xserver-xorg-video-all | + xserver-xorg-video. The former is a metapackage that depends on all the + video drivers we ship and the latter is a virtual package that each video + driver provides. This scheme will install the metapackage by default but + will permit any single video driver to satsify the dependency. Do the same + thing for the input drivers. + * switch dpatch build-dependency to quilt + * Deal with mesa packaging rename: build-dep on mesa-swrast-source -> + mesa-swx11-source + * Change xserver-core depends to be on x11-common rather than xorg-common + * Have xserver-xorg-dev install the files in /usr/share/aclocal so we get + xorg-server.m4 + * Manually set permissions on serverabiver installation + * Set the default font path to /usr/share/fonts/X11 instead of + /usr/share/X11/fonts. Thanks Eugene Konev. + + -- David Nusinow Mon, 20 Feb 2006 00:18:45 -0500 + +xorg-server (1:1.0.1-0ubuntu8) dapper; urgency=low + + * [SECURITY] Fix CVE-2006-0745. + + -- Fabio M. Di Nitto Tue, 21 Mar 2006 05:33:50 +0100 + +xorg-server (1:1.0.1-0ubuntu7) dapper; urgency=low + + * debian/control: + - xvfb Depends on xfonts-base too, fix pointed by fabbione + + -- Sebastien Bacher Fri, 3 Mar 2006 22:21:56 +0100 + +xorg-server (1:1.0.1-0ubuntu5) dapper; urgency=low + + * Add missing include on sparc. Fix FTBFS. + + -- Fabio M. Di Nitto Wed, 01 Feb 2006 13:45:41 +0100 + +xorg-server (1:1.0.1-0ubuntu4) dapper; urgency=low + + * Backport from upstream HEAD at Daniel's request: + - Add forgotten HAVE_BACKTRACE define, so that we actually get + backtraces when Xorg segfaults. + + -- Colin Watson Fri, 27 Jan 2006 13:47:56 +0000 + +xorg-server (1:1.0.1-0ubuntu3) dapper; urgency=low + + * Depend on x11-common rather than xorg-common and xserver-common + + -- Tollef Fog Heen Wed, 18 Jan 2006 17:13:12 +0100 + +xorg-server (1:1.0.1-0ubuntu2) dapper; urgency=low + + * Add flex to build-deps, fixing FTBFS. + + -- Tollef Fog Heen Wed, 18 Jan 2006 12:34:03 +0100 + +xorg-server (1:1.0.1-0ubuntu1) dapper; urgency=low + + * New upstream release. + + -- Daniel Stone Fri, 6 Jan 2006 08:00:52 +1100 + +xorg-server (1:1.0.0-0ubuntu1) dapper; urgency=low + + * New upstream release. + + fbCompositeGeneral is now around 97.3% less stuffed (closes: + Ubuntu#20286). + + 'Fix' mouse issues in the DIX by adding XFree86Server defines (sigh; + closes: Ubuntu#20200). + + Fix Emulate3Buttons mouse posting (closes: Ubuntu#11308). + * Bump Build-Depends on libxt-dev (appdefaultdir), libdrm-dev (libdrm2), and + mesa-swrast-source (new files). + * Add --with-fontdir and scotch --with-default-font-path to fix font paths + for non-Xorg servers (closes: Ubuntu#20157). + * Fix path to SecurityPolicy and RGB_DB. + * Move update-linux-hardened-support call to xserver-xorg-core postinst + (from xserver-xorg postinst). + * Add patch to os/access.c so we don't crash on a null-addressed interface + (closes: Ubuntu#20414). + + -- Daniel Stone Tue, 13 Dec 2005 07:27:13 +1100 + +xorg-server (1:0.99.3-0ubuntu6) dapper; urgency=low + + * Fix xserver-xorg-dev Depends field to only depend on the headers this + this package actually uses. + * Re-add xvfb-run to xfvb (closes: Ubuntu#20157). + + -- Daniel Stone Mon, 5 Dec 2005 15:04:14 +1100 + +xorg-server (1:0.99.3-0ubuntu5) dapper; urgency=low + + * Add -ffunction-sections where needed + * Depend: xserver-common: needed for dexconf and /usr/X11R6/bin/X + + -- LaMont Jones Sat, 26 Nov 2005 05:15:36 +0000 + +xorg-server (1:0.99.3-0ubuntu4) dapper; urgency=low + + * Add two more dependencies to build the other half of the video drivers: + - x11proto-xext-dev, x11proto-video-dev + + -- Adam Conrad Fri, 25 Nov 2005 02:36:44 +1100 + +xorg-server (1:0.99.3-0ubuntu3) dapper; urgency=low + + * Add a few dependencies to xorg-server-dev as the path of least resistance + to get all the various input and video drivers to build again: + - For the video drivers: x11proto-randr-dev, x11proto-render-dev, + x11proto-fonts-dev, x11proto-xf86dri-dev, libdrm-dev + - For the input drivers: x11proto-core-dev, x11proto-input-dev, + x11proto-randr-dev (why do input drivers want randr?) + + -- Adam Conrad Thu, 24 Nov 2005 18:51:25 +1100 + +xorg-server (1:0.99.3-0ubuntu2) dapper; urgency=low + + * Add missing libfreetype6-dev build-depends. + + -- Daniel Stone Thu, 24 Nov 2005 10:26:44 +1100 + +xorg-server (1:0.99.3-0ubuntu1) dapper; urgency=low + + * New upstream release. + + -- Daniel Stone Mon, 21 Nov 2005 14:13:41 +1100 + +xorg-server (1:0.99.2+cvs.20051025-3) dapper; urgency=low + + * Version mesa-swrast-source Build-Dep to 6.4.0 or higher, so GLcore is a + little less crash-happy (e.g. when moving your glxgears window). + * Export /usr/share/xserver-xorg/serverabiver to xserver-xorg-dev, which + describes the relationship needed from a driver on xserver-xorg-core. + + -- Daniel Stone Fri, 28 Oct 2005 13:00:26 +1000 + +xorg-server (1:0.99.2+cvs.20051025-2) dapper; urgency=low + + * Add Build-Deps on libxaw7-dev, libxmu-dev, libxt-dev, libxpm-dev, + libx11-dev, libxtst-dev, and libxres-dev for DMX utils. + + -- Daniel Stone Wed, 26 Oct 2005 14:34:40 +1000 + +xorg-server (1:0.99.2+cvs.20051025-1) dapper; urgency=low + + * Update to new upstream version. + * All applicable patches have been committed upstream, bar #989 and #990. + + -- Daniel Stone Thu, 20 Oct 2005 10:26:33 +1000 + +xorg-server (1:0.99.0+cvs.20050901-1) breezy; urgency=low + + * First xorg-server release. + + -- Daniel Stone Wed, 6 Jul 2005 15:48:17 +1000 --- xorg-server-1.1.1.orig/debian/rules +++ xorg-server-1.1.1/debian/rules @@ -0,0 +1,132 @@ +#!/usr/bin/make -f +# debian/rules for the Debian xorg-server package. +# Copyright © 2004 Scott James Remnant +# Copyright © 2005 Daniel Stone +# Copyright © 2005 David Nusinow + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +include debian/xsfbs/xsfbs.mk + +CFLAGS = -Wall -g -fno-stack-protector +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + confflags += --build=$(DEB_HOST_GNU_TYPE) +else + confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) +endif + +INSTALL=/usr/bin/install + +# s390 chokes on inline functions. See #362641 +ifeq ($(DEB_HOST_ARCH), s390) + CFLAGS += -DNO_INLINE +endif + +# disable-static is so we don't get libfoo.a for modules. now if only we could +# kill the .las. +confflags += --disable-static \ + --enable-xorg \ + --enable-dri --with-mesa-source=/usr/share/mesa-source \ + --with-fontdir=/usr/share/fonts/X11 \ + --with-serverconfig-path=/etc/X11/xserver \ + --enable-xtrap \ + --enable-dmx \ + --enable-vfb \ + --disable-lbx \ + --disable-xprint \ + --disable-xorgconfig \ + --disable-xorgcfg \ + --with-xkb-path=/etc/X11/xkb \ + --with-xkb-output=/var/lib/xkb \ + --enable-kdrive \ + --enable-xephyr \ + --disable-xsdl \ + + +build: genscripts build-stamp +build-stamp: patch + dh_testdir + + mkdir -p obj-$(DEB_BUILD_GNU_TYPE)/GL + cd obj-$(DEB_BUILD_GNU_TYPE) && \ + ../configure --prefix=/usr --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info --sysconfdir=/etc \ + --localstatedir=/var $(confflags) CFLAGS="$(CFLAGS)" + cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE) + + touch build-stamp + +clean: xsfclean + dh_testdir + dh_testroot + rm -f build-stamp + + rm -f config.cache config.log config.status + rm -f */config.cache */config.log */config.status + rm -f conftest* */conftest* + rm -rf autom4te.cache */autom4te.cache + rm -rf obj-* + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install + + # oh, yuck. + find $(CURDIR)/debian/tmp/usr/lib/xorg -type f -name '*.la' | \ + xargs rm -f + + install -m 755 debian/local/xvfb-run debian/tmp/usr/bin + install debian/local/xvfb-run.1 debian/tmp/usr/share/man/man1 + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + + dh_installdocs + dh_installchangelogs + dh_install --sourcedir=debian/tmp --list-missing + $(INSTALL) -d $(CURDIR)/debian/xserver-xorg-dev/usr/share/xserver-xorg + $(INSTALL) -m644 $(CURDIR)/debian/serverabiver \ + $(CURDIR)/debian/xserver-xorg-dev/usr/share/xserver-xorg/serverabiver + install -d $(CURDIR)/debian/xserver-xorg-core/usr/share/doc/xserver-xorg-core/ + install -m644 $(CURDIR)/Xext/SecurityPolicy \ + $(CURDIR)/debian/xserver-xorg-core/usr/share/doc/xserver-xorg-core/SecurityPolicy + dh_link + dh_strip --exclude=usr/lib/xorg/modules + find debian/xserver-xorg-core/usr/lib/xorg/modules -name "lib*.so" | \ + xargs --no-run-if-empty \ + strip --strip-debug --remove-section=.note --remove-section=.comment + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +# Build architecture-independent files here. +binary-indep: build install +# Nothing to do + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install --- xorg-server-1.1.1.orig/debian/xserver-xorg-core.NEWS +++ xorg-server-1.1.1/debian/xserver-xorg-core.NEWS @@ -0,0 +1,27 @@ +xserver-xorg-core (1:1.0.2-5) unstable; urgency=low + + * Several users have reported an error on load like the following: + + "(EE) Failed to load module "GLcore" (loader failed, 7)" + + To resolve this error and the related ones in the logfile above it, + remove the line to load the glcore module in your /etc/X11/xorg.conf. + Other similar errors about module loading can be resolved the same way. + If you have not customized your config file by hand, you can run the + command "dpkg-reconfigure xserver-xorg" as root to do this for you. + + -- David Nusinow Wed, 12 Apr 2006 19:38:51 -0400 + +xserver-xorg-core (1:1.0.2-3) unstable; urgency=low + + * With the latest updates of Xorg, we have transitioned from X11R6 to + X11R7. Part of this transition involves changing the paths to the + xfonts and the xkb data files, as well as the modules loaded by the X + server. One way to automatically update the paths is to run + "dpkg-reconfigure xserver-xorg" as root and it will automatically + generate a new config file for you. Note that this will currently not + work for people who have customized config files due to a bug, so + you'll have to manually edit your config if you have customized it + previously. + + -- David Nusinow Wed, 12 Apr 2006 19:38:51 -0400 --- xorg-server-1.1.1.orig/debian/xserver-xephyr.install +++ xorg-server-1.1.1/debian/xserver-xephyr.install @@ -0,0 +1 @@ +usr/bin/Xephyr --- xorg-server-1.1.1.orig/debian/xserver-xorg-dev.install +++ xorg-server-1.1.1/debian/xserver-xorg-dev.install @@ -0,0 +1,3 @@ +usr/include/xorg/* +usr/lib/pkgconfig/xorg-server.pc +usr/share/aclocal/* --- xorg-server-1.1.1.orig/debian/local/xvfb-run.1 +++ xorg-server-1.1.1/debian/local/xvfb-run.1 @@ -0,0 +1,284 @@ +.\" $Id: xvfb-run.1 2138 2005-01-17 23:40:27Z branden $ +.\" +.\" Copyright 1998-2004 Branden Robinson . +.\" +.\" This is free software; you may redistribute it and/or modify +.\" it under the terms of the GNU General Public License as +.\" published by the Free Software Foundation; either version 2, +.\" or (at your option) any later version. +.\" +.\" This is distributed in the hope that it will be useful, but +.\" WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License with +.\" the Debian operating system, in /usr/share/common-licenses/GPL; if +.\" not, write to the Free Software Foundation, Inc., 59 Temple Place, +.\" Suite 330, Boston, MA 02111-1307 USA +.\" +.\" We need the URL macro from groff's www macro package, but also want +.\" things to work all right for people who don't have it. So we define +.\" our own URL macro and let the www macro package override it if it's +.\" available. +.de URL +\\$2 \(laURL: \\$1 \(ra\\$3 +.. +.if \n[.g] .mso www.tmac +.TH xvfb\-run 1 "2004\-11\-12" "Debian Project" +.SH NAME +xvfb\-run \- run specified X client or command in a virtual X server environment +.SH SYNOPSIS +.B xvfb\-run +[ +.I options +] +.I command +.SH DESCRIPTION +.B xvfb\-run +is a wrapper for the +.BR Xvfb (1x) +command which simplifies the task of running commands (typically an X +client, or a script containing a list of clients to be run) within a virtual +X server environment. +.PP +.B xvfb\-run +sets up an X authority file (or uses an existing user\-specified one), +writes a cookie to it (see +.BR xauth (1x)) +and then starts the +.B Xvfb +X server as a background process. +The process ID of +.B Xvfb +is stored for later use. +The specified +.I command +is then run using the X display corresponding to the +.B Xvfb +server +just started and the X authority file created earlier. +.PP +When the +.I command +exits, its status is saved, the +.B Xvfb +server is killed (using the process ID stored earlier), the X authority +cookie removed, and the authority file deleted (if the user did not specify +one to use). +.B xvfb\-run +then exits with the exit status of +.IR command . +.PP +.B xvfb\-run +requires the +.B xauth +command to function. +.SH OPTIONS +.TP +.B \-a\fR,\fB \-\-auto\-servernum +Try to get a free server number, starting at 99, or the argument to +.BR \-\-server\-num . +.TP +.BI \-e\ file \fR,\fB\ \-\-error\-file= file +Store output from +.B xauth +and +.B Xvfb +in +.IR file . +The default is +.IR /dev/null . +.TP +.BI \-f\ file \fR,\fB\ \-\-auth\-file= file +Store X authentication data in +.IR file . +By default, a temporary directory called +.IR xvfb\-run. PID +(where PID is the process ID of +.B xvfb\-run +itself) is created in the directory specified by the environment variable +.B TMPDIR +(or +.I /tmp +if that variable is null or unset), and the +.BR tempfile (1) +command is used to create a file in that temporary directory called +.IR Xauthority . +.TP +.B \-h\fR,\fB \-\-help +Display a usage message and exit. +.TP +.BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber +Use +.I servernumber +as the server number (but see the +.B \-a\fR,\fB \-\-auto\-servernum +option above). +The default is 99. +.TP +.B \-l\fR,\fB \-\-listen\-tcp +Enable TCP port listening in the X server. +For security reasons (to avoid denial\-of\-service attacks or exploits), +TCP port listening is disabled by default. +.TP +.BI \-p\ protocolname \fR,\fB\ \-\-xauth\-protocol= protocolname +Use +.I protocolname +as the X authority protocol to use. +The default is \(oq.\(cq, which +.B xauth +interprets as its own default protocol, which is MIT\-MAGIC\-COOKIE\-1. +.TP +.BI \-s\ arguments \fR,\fB\ \-\-server\-args= arguments +Pass +.I arguments +to the +.B Xvfb +server. +Be careful to quote any whitespace characters that may occur within +.I arguments +to prevent them from regarded as separators for +.BR xvfb\-run 's +own arguments. +Also, note that specification of \(oq\-nolisten tcp\(cq in +.I arguments +may override the function of +.BR xvfb\-run 's +own +.B \-l\fR,\fB \-\-listen\-tcp +option, and that specification of the server number (e.g., \(oq:1\(cq) may +be ignored because of the way the X server parses its argument list. +Use the +.B xvfb\-run +option +.BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber +to achieve the latter function. +The default is \(oq\-screen 0 640x480x8\(cq. +.TP +.BI \-w\ delay \fR,\fB\ \-\-wait= delay +Wait +.I delay +seconds after launching +.B Xvfb +before attempting to start the specified command. +The default is 3. +.SH ENVIRONMENT +.TP +.B COLUMNS +indicates the width of the terminal device in character cells. +This value is used for formatting diagnostic messages. +If not set, the terminal is queried using +.BR stty (1) +to determine its width. +If that fails, a value of \(oq80\(cq is assumed. +.TP +.B TMPDIR +specifies the directory in which to place +.BR xvfb\-run 's +temporary directory for storage of the X authority file; only used if the +.B \-f +or +.B \-\-auth\-file +options are not specified. +.SH "OUTPUT FILES" +.PP +Unless the +.B \-f +or +.B \-\-auth\-file +options are specified, a temporary +directory and file within it are created (and deleted) to store the X +authority cookies used by the +.B Xvfb +server and client(s) run under it. +See +.BR tempfile (1). +If \-f or \-\-auth\-file are used, then the specified X authority file is +only written to, not created or deleted (though +.B xauth +creates an authority file itself if told to use use that does not already +exist). +.PP +An error file with a user\-specified name is also created if the +.B \-e +or +.B \-\-error\-file +options are specifed; see above. +.SH "EXIT STATUS" +.B xvfb\-run +uses its exit status as well as output to standard error to communicate +diagnostics. +The exit status of \(oq1\(cq is not used, and should be interpreted as failure +of the specified command. +.TP +0 +.B xvfb\-run +only uses this exit status if the +.B \-h\fR,\fB \-\-help +option is given. +In all other situations, this may be interpreted as success of the specified +command. +.TP +2 +No command to run was specified. +.TP +3 +The +.B xauth +command is not available. +.TP +4 +The temporary directory that was going to be used already exists; since +.B xvfb\-run +produces a uniquely named directory, this may indicate an attempt by another +process on the system to exploit a temporary file race condition. +.TP +5 +A problem was encountered while cleaning up the temporary directory. +.TP +6 +A problem was encountered while using +.BR getopt (1) +to parse the command\-line arguments. +.SH EXAMPLES +.TP +.B xvfb\-run \-\-auto\-servernum \-\-server\-num=1 xlogo +runs the +.BR xlogo (1x) +demonstration client inside the +.B Xvfb +X server on the first available server number greater than or equal to 1. +.TP +.B xvfb\-run \-\-server\-args="\-screen 0 1024x768x24" ico \-faces +runs the +.BR ico (1x) +demonstration client (and passes it the +.B \-faces +argument) inside the +.B Xvfb +X server, configured with a root window of 1024 by 768 pixels and a color +depth of 24 bits. +.PP +Note that the demo X clients used in the above examples will not exit on +their own, so they will have to be killed before +.B xvfb\-run +will exit. +.SH BUGS +See +.URL "http://bugs.debian.org/xvfb" "the Debian Bug Tracking System" . +If you wish to report a bug in +.BR xvfb\-run , +please see +.I /usr/share/doc/debian/bug\-reporting.txt +or the +.BR reportbug (1) +command. +.SH AUTHOR +.B xfvb\-run +was written by Branden Robinson and Jeff Licquia with sponsorship from +Progeny Linux Systems. +.SH "SEE ALSO" +.BR Xvfb (1x), +.BR xauth (1x) +.\" vim:set et tw=80: --- xorg-server-1.1.1.orig/debian/local/xvfb-run +++ xorg-server-1.1.1/debian/local/xvfb-run @@ -0,0 +1,172 @@ +#!/bin/sh + +# $Id: xvfb-run 2027 2004-11-16 14:54:16Z branden $ + +# This script starts an instance of Xvfb, the "fake" X server, runs a command +# with that server available, and kills the X server when done. The return +# value of the command becomes the return value of this script. +# +# If anyone is using this to build a Debian package, make sure the package +# Build-Depends on xvfb, xbase-clients, and xfonts-base. + +set -e + +PROGNAME=xvfb-run +SERVERNUM=99 +AUTHFILE= +ERRORFILE=/dev/null +STARTWAIT=3 +XVFBARGS="-screen 0 640x480x8" +LISTENTCP="-nolisten tcp" +XAUTHPROTO=. + +# Query the terminal to establish a default number of columns to use for +# displaying messages to the user. This is used only as a fallback in the event +# the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while the +# script is running, and this cannot, only being calculated once.) +DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true +if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" >/dev/null 2>&1; then + DEFCOLUMNS=80 +fi + +# Display a message, wrapping lines at the terminal width. +message () { + echo "$PROGNAME: $*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS} +} + +# Display an error message. +error () { + message "error: $*" >&2 +} + +# Display a usage message. +usage () { + if [ -n "$*" ]; then + message "usage error: $*" + fi + cat <&2 + exit 2 +fi + +if ! which xauth >/dev/null; then + error "xauth command not found" + exit 3 +fi + +# If the user did not specify an X authorization file to use, set up a temporary +# directory to house one. +if [ -z "$AUTHFILE" ]; then + XVFB_RUN_TMPDIR="${TMPDIR:-/tmp}/$PROGNAME.$$" + if ! mkdir -p -m 700 "$XVFB_RUN_TMPDIR"; then + error "temporary directory $XVFB_RUN_TMPDIR already exists" + exit 4 + fi + AUTHFILE=$(tempfile -n "$XVFB_RUN_TMPDIR/Xauthority") +fi + +# Start Xvfb. +MCOOKIE=$(mcookie) +XAUTHORITY=$AUTHFILE xauth add ":$SERVERNUM" "$XAUTHPROTO" "$MCOOKIE" \ + >"$ERRORFILE" 2>&1 +XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >"$ERRORFILE" \ + 2>&1 & +XVFBPID=$! +sleep "$STARTWAIT" + +# Start the command and save its exit status. +set +e +DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1 +RETVAL=$? +set -e + +# Kill Xvfb now that the command has exited. +kill $XVFBPID + +# Clean up. +XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >"$ERRORFILE" 2>&1 +if [ -n "$XVFB_RUN_TMPDIR" ]; then + if ! rm -r "$XVFB_RUN_TMPDIR"; then + error "problem while cleaning up temporary directory" + exit 5 + fi +fi + +# Return the executed command's exit status. +exit $RETVAL + +# vim:set ai et sts=4 sw=4 tw=80: --- xorg-server-1.1.1.orig/debian/substvars +++ xorg-server-1.1.1/debian/substvars @@ -0,0 +1 @@ +shlibs:Depends=libc6 (>= 2.3.4-1) --- xorg-server-1.1.1.orig/debian/xsfbs/xsfbs-autoreconf.mk +++ xorg-server-1.1.1/debian/xsfbs/xsfbs-autoreconf.mk @@ -0,0 +1,150 @@ +#!/usr/bin/make -f +# $Id: xsfbs-autoreconf.mk 2284 2006-06-06 18:02:50Z branden $ + +# Automagical conversion of autoreconf results into quilt patches. + +# Copyright 2006 Eugene Konev +# +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or . + +# The idea behind this is storing changes produced by autoreconf as a +# separate patch on quilt stack (on top of stack actually). +# The only usable target here is 'autoreconf`. Other targets are not +# supposed to be called directly. DO NOT invoke them, unless you know what +# you are doing. +# The autoreconf target will check if files with names in $(RECONF_CHECKFILES) +# were changed during patching (from upstream version or from previously +# autoreconfed version) and call actual autoreconfing if they were. +# The actual autoreconfing target (doautoreconf) WILL FAIL after +# calling autoreconf and pushing changes into quilt stack by design. It +# should never be invoked by automatic build process. +# The proposed use is adding autoreconf into clean's prerequisites before +# xsfclean like: +# - clean: xsfclean +# + clean: autoreconf xsfclean +# This will ensure it is called when you build package with dpkg-buildpackage. + +# This dir will be used for producing diff of autoreconfed tree +RECONF_DIR := xsfautoreconf + +# This files will be checked for changes +RECONF_CHECKFILES += configure.ac Makefile.am + +# This files will not be hardlinked but copied +RECONF_NOLINKFILES += aclocal.m4 + +# This files/dirs will be pruned after autoreconf run +RECONF_PRUNEFILES += autom4te.cache config.h.in~ aclocal.m4~ + +# Internal target. Never invoke directly. +stampdir_target+=check.md5sum +$(STAMP_DIR)/check.md5sum: + dh_testdir + $(MAKE) -f debian/rules prepare + for F in $(RECONF_CHECKFILES); do \ + find . -wholename ./$(STAMP_DIR) -prune -o -name $$F -print | \ + LC_ALL=C sort | xargs --no-run-if-empty md5sum >>$@; \ + done + +# Internal target. Never invoke directly. +$(STAMP_DIR)/clean.md5sum: + dh_testdir + $(MAKE) -f debian/rules unpatch + rm -f $(STAMP_DIR)/check.md5sum + $(MAKE) -f debian/rules $(STAMP_DIR)/check.md5sum + mv $(STAMP_DIR)/check.md5sum $@ + +# Internal target. Never invoke directly. +debian/patches/patched.md5sum: + dh_testdir + [ -f $(STAMP_DIR)/clean.md5sum ] || \ + $(MAKE) -f debian/rules $(STAMP_DIR)/clean.md5sum + + $(MAKE) -f debian/rules patch + rm -f $(STAMP_DIR)/check.md5sum + $(MAKE) -f debian/rules $(STAMP_DIR)/check.md5sum + if ! diff $(STAMP_DIR)/clean.md5sum \ + $(STAMP_DIR)/check.md5sum > /dev/null; then \ + $(MAKE) -f debian/rules doautoreconf; \ + else \ + mv $(STAMP_DIR)/check.md5sum $@; \ + fi + +# Internal target. Never invoke directly. +,PHONY: doautoreconf +doautoreconf: patch + quilt push -a >>$(STAMP_DIR)/log/autoreconf 2>&1 || true + if quilt applied | grep ^autoreconf.diff$$ > /dev/null; then \ + quilt pop -a >>$(STAMP_DIR)/log/autoreconf 2>&1; \ + quilt rename -p autoreconf.diff autoreconf-old.diff \ + >>$(STAMP_DIR)/log/autoreconf 2>&1; \ + quilt delete autoreconf-old.diff >>$(STAMP_DIR)/log/autoreconf 2>&1; \ + quilt push -a >>$(STAMP_DIR)/log/autoreconf 2>&1; \ + fi + + if [ -e $(RECONF_DIR) ]; then \ + echo "ERROR: $(RECONF_DIR) already exists. Cleanup by hand"; \ + exit 1; \ + fi + + mkdir -p $(RECONF_DIR)/before + find . -maxdepth 1 -mindepth 1 ! -wholename ./$(RECONF_DIR) \ + -a ! -wholename ./debian -a ! -wholename ./patches \ + -a ! -wholename ./.pc -a ! -wholename ./$(STAMP_DIR) | \ + xargs -i{} cp -al {} $(RECONF_DIR)/before/ + + for F in $(RECONF_PRUNEFILES); do \ + find $(RECONF_DIR)/before -name $$F -print | \ + xargs --no-run-if-empty rm -r; \ + done + + cp -al $(RECONF_DIR)/before $(RECONF_DIR)/after + + for F in $(RECONF_NOLINKFILES); do \ + find . -wholename ./$(RECONF_DIR) -prune -o -wholename ./debian \ + -prune -o -wholename ./$(STAMP_DIR) -prune -o -name $$F \ + -print | \ + xargs --no-run-if-empty -i{} cp --remove-destination {} \ + $(RECONF_DIR)/after/{}; \ + done + + cd $(RECONF_DIR)/after && autoreconf -v --install && \ + for F in $(RECONF_PRUNEFILES); do \ + find . -name $$F -print | \ + xargs --no-run-if-empty rm -r; \ + done + + cd $(RECONF_DIR) && diff -Nru before after > autoreconf.diff || true + + quilt import $(RECONF_DIR)/autoreconf.diff \ + >>$(STAMP_DIR)/log/autoreconf 2>&1 + + mv $(STAMP_DIR)/check.md5sum debian/patches/patched.md5sum + + rm -r $(RECONF_DIR) && rm -f patches/autoreconf-old.diff + + @echo + @echo "****************************************************************" + @echo " This target is made to fail INTENTIONALLY. It should NEVER " + @echo " be invoked during automatic builds. " + @echo + @echo " This target was invoked because you added/removed/changed " + @echo " patches which modify either configure.ac or Makefile.am and, " + @echo " thus, require autoreconf run. And all autoreconfing should " + @echo " happen before uploading. " + @echo + @echo " (See also debian/xsfbs/xsfbs-autoreconf.mk) " + @echo + @echo " If you see this message, autoreconfing actually SUCCEEDED, " + @echo " and your build should finish successfully, when rerun. " + @echo "****************************************************************" + @echo + exit 1; + +.PHONY: autoreconf +autoreconf: debian/patches/patched.md5sum patch $(STAMP_DIR)/check.md5sum + if ! diff $(STAMP_DIR)/check.md5sum \ + debian/patches/patched.md5sum > /dev/null; then \ + $(MAKE) -f debian/rules doautoreconf; \ + fi --- xorg-server-1.1.1.orig/debian/xsfbs/xsfbs.sh +++ xorg-server-1.1.1/debian/xsfbs/xsfbs.sh @@ -0,0 +1,884 @@ +# $Id: xsfbs.sh 2295 2006-06-09 02:34:26Z dnusinow $ + +# This is the X Strike Force shell library for X Window System package +# maintainer scripts. It serves to define shell functions commonly used by +# such packages, and performs some error checking necessary for proper operation +# of those functions. By itself, it does not "do" much; the maintainer scripts +# invoke the functions defined here to accomplish package installation and +# removal tasks. + +# If you are reading this within a Debian package maintainer script (e.g., +# /var/lib/dpkg)info/PACKAGE.{config,preinst,postinst,prerm,postrm}), you can +# skip past this library by scanning forward in this file to the string +# "GOBSTOPPER". + +SOURCE_VERSION=@SOURCE_VERSION@ +OFFICIAL_BUILD=@OFFICIAL_BUILD@ + +# Use special abnormal exit codes so that problems with this library are more +# easily tracked down. +SHELL_LIB_INTERNAL_ERROR=86 +SHELL_LIB_THROWN_ERROR=74 +SHELL_LIB_USAGE_ERROR=99 + +# old -> new variable names +if [ -z "$DEBUG_XORG_PACKAGE" ] && [ -n "$DEBUG_XFREE86_PACKAGE" ]; then + DEBUG_XORG_PACKAGE="$DEBUG_XFREE86_PACKAGE" +fi +if [ -z "$DEBUG_XORG_DEBCONF" ] && [ -n "$DEBUG_XFREE86_DEBCONF" ]; then + DEBUG_XORG_DEBCONF="$DEBUG_XFREE86_DEBCONF" +fi + +# initial sanity checks +if [ -z "$THIS_PACKAGE" ]; then + cat >&2 < on the World Wide Web for +instructions, read the file /usr/share/doc/debian/bug-reporting.txt from the +"doc-debian" package, or install the "reportbug" package and use the command of +the same name to file a report against version $SOURCE_VERSION of this package. +EOF + exit $SHELL_LIB_USAGE_ERROR +fi + +if [ -z "$THIS_SCRIPT" ]; then + cat >&2 < on the World Wide Web for +instructions, read the file /usr/share/doc/debian/bug-reporting.txt from the +"doc-debian" package, or install the "reportbug" package and use the command of +the same name to file a report against version $SOURCE_VERSION of the +"$THIS_PACKAGE" package. +EOF + exit $SHELL_LIB_USAGE_ERROR +fi + +trap "message;\ + message \"Received signal. Aborting $THIS_PACKAGE package $THIS_SCRIPT script.\";\ + message;\ + exit 1" HUP INT QUIT TERM + +reject_nondigits () { + # syntax: reject_nondigits [ operand ... ] + # + # scan operands (typically shell variables whose values cannot be trusted) for + # characters other than decimal digits and barf if any are found + while [ -n "$1" ]; do + # does the operand contain anything but digits? + if ! expr "$1" : "[[:digit:]]\+$" > /dev/null 2>&1; then + # can't use die(), because it wraps message() which wraps this function + echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_nondigits() encountered" \ + "possibly malicious garbage \"$1\"" >&2 + exit $SHELL_LIB_THROWN_ERROR + fi + shift + done +} + +reject_whitespace () { + # syntax: reject_whitespace [ operand ] + # + # scan operand (typically a shell variable whose value cannot be trusted) for + # whitespace characters and barf if any are found + if [ -n "$1" ]; then + # does the operand contain any whitespace? + if expr "$1" : "[[:space:]]" > /dev/null 2>&1; then + # can't use die(), because I want to avoid forward references + echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_whitespace() encountered" \ + "possibly malicious garbage \"$1\"" >&2 + exit $SHELL_LIB_THROWN_ERROR + fi + fi +} + +reject_unlikely_path_chars () { + # syntax: reject_unlikely_path_chars [ operand ... ] + # + # scan operands (typically shell variables whose values cannot be trusted) for + # characters unlikely to be seen in a path and which the shell might + # interpret and barf if any are found + while [ -n "$1" ]; do + # does the operand contain any funny characters? + if expr "$1" : '.*[!$&()*;<>?|].*' > /dev/null 2>&1; then + # can't use die(), because I want to avoid forward references + echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_unlikely_path_chars()" \ + "encountered possibly malicious garbage \"$1\"" >&2 + exit $SHELL_LIB_THROWN_ERROR + fi + shift + done +} + +# Query the terminal to establish a default number of columns to use for +# displaying messages to the user. This is used only as a fallback in the +# event the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while +# the script is running, and this cannot, only being calculated once.) +DEFCOLUMNS=$(stty size 2> /dev/null | awk '{print $2}') || true +if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" > /dev/null 2>&1; then + DEFCOLUMNS=80 +fi + +message () { + # pretty-print messages of arbitrary length + reject_nondigits "$COLUMNS" + echo "$*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS} >&2 +} + +observe () { + # syntax: observe message ... + # + # issue observational message suitable for logging someday when support for + # it exists in dpkg + if [ -n "$DEBUG_XORG_PACKAGE" ]; then + message "$THIS_PACKAGE $THIS_SCRIPT note: $*" + fi +} + +warn () { + # syntax: warn message ... + # + # issue warning message suitable for logging someday when support for + # it exists in dpkg; also send to standard error + message "$THIS_PACKAGE $THIS_SCRIPT warning: $*" +} + +die () { + # syntax: die message ... + # + # exit script with error message + message "$THIS_PACKAGE $THIS_SCRIPT error: $*" + exit $SHELL_LIB_THROWN_ERROR +} + +internal_error () { + # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message + message "internal error: $*" + if [ -n "$OFFICIAL_BUILD" ]; then + message "Please report a bug in the $THIS_SCRIPT script of the" \ + "$THIS_PACKAGE package, version $SOURCE_VERSION to the Debian Bug" \ + "Tracking System. Include all messages above that mention the" \ + "$THIS_PACKAGE package. Visit " \ + " on the World Wide Web for" \ + "instructions, read the file" \ + "/usr/share/doc/debian/bug-reporting.txt from the doc-debian" \ + "package, or install the reportbug package and use the command of" \ + "the same name to file a report." + fi + exit $SHELL_LIB_INTERNAL_ERROR +} + +usage_error () { + message "usage error: $*" + message "Please report a bug in the $THIS_SCRIPT script of the" \ + "$THIS_PACKAGE package, version $SOURCE_VERSION to the Debian Bug" \ + "Tracking System. Include all messages above that mention the" \ + "$THIS_PACKAGE package. Visit " \ + " on the World Wide Web for" \ + "instructions, read the file" \ + "/usr/share/doc/debian/bug-reporting.txt from the doc-debian" \ + "package, or install the reportbug package and use the command of" \ + "the same name to file a report." + exit $SHELL_LIB_USAGE_ERROR +} + + +maplink () { + # returns what symlink should point to; i.e., what the "sane" answer is + # Keep this in sync with the debian/*.links files. + # This is only needed for symlinks to directories. + # + # XXX: Most of these look wrong in the X11R7 world and need to be fixed. + # If we've stopped using this function, fixing it might enable us to re-enable + # it again and catch more errors. + case "$1" in + /etc/X11/xkb/compiled) echo /var/lib/xkb ;; + /etc/X11/xkb/xkbcomp) echo /usr/X11R6/bin/xkbcomp ;; + /usr/X11R6/lib/X11/app-defaults) echo /etc/X11/app-defaults ;; + /usr/X11R6/lib/X11/fs) echo /etc/X11/fs ;; + /usr/X11R6/lib/X11/lbxproxy) echo /etc/X11/lbxproxy ;; + /usr/X11R6/lib/X11/proxymngr) echo /etc/X11/proxymngr ;; + /usr/X11R6/lib/X11/rstart) echo /etc/X11/rstart ;; + /usr/X11R6/lib/X11/twm) echo /etc/X11/twm ;; + /usr/X11R6/lib/X11/xdm) echo /etc/X11/xdm ;; + /usr/X11R6/lib/X11/xinit) echo /etc/X11/xinit ;; + /usr/X11R6/lib/X11/xkb) echo /etc/X11/xkb ;; + /usr/X11R6/lib/X11/xserver) echo /etc/X11/xserver ;; + /usr/X11R6/lib/X11/xsm) echo /etc/X11/xsm ;; + /usr/bin/X11) echo ../X11R6/bin ;; + /usr/bin/rstartd) echo ../X11R6/bin/rstartd ;; + /usr/include/X11) echo ../X11R6/include/X11 ;; + /usr/lib/X11) echo ../X11R6/lib/X11 ;; + *) internal_error "maplink() called with unknown path \"$1\"" ;; + esac +} + +analyze_path () { + # given a supplied set of pathnames, break each one up by directory and do an + # ls -dl on each component, cumulatively; i.e. + # analyze_path /usr/X11R6/bin -> ls -dl /usr /usr/X11R6 /usr/X11R6/bin + # Thanks to Randolph Chung for this clever hack. + + #local f g + + while [ -n "$1" ]; do + reject_whitespace "$1" + _g= + message "Analyzing $1:" + for _f in $(echo "$1" | tr / \ ); do + if [ -e /$_g$_f ]; then + ls -dl /$_g$_f /$_g$_f.dpkg-* 2> /dev/null || true + _g=$_g$_f/ + else + message "/$_g$_f: nonexistent; directory contents of /$_g:" + ls -l /$_g + break + fi + done + shift + done +} + +find_culprits () { + #local f p dpkg_info_dir possible_culprits smoking_guns bad_packages package \ + # msg + + reject_whitespace "$1" + message "Searching for overlapping packages..." + _dpkg_info_dir=/var/lib/dpkg/info + if [ -d $_dpkg_info_dir ]; then + if [ "$(echo $_dpkg_info_dir/*.list)" != "$_dpkg_info_dir/*.list" ]; then + _possible_culprits=$(ls -1 $_dpkg_info_dir/*.list | egrep -v \ + "(xbase-clients|x11-common|xfs|xlibs)") + if [ -n "$_possible_culprits" ]; then + _smoking_guns=$(grep -l "$1" $_possible_culprits || true) + if [ -n "$_smoking_guns" ]; then + _bad_packages=$(printf "\\n") + for f in $_smoking_guns; do + # too bad you can't nest parameter expansion voodoo + p=${f%*.list} # strip off the trailing ".list" + _package=${p##*/} # strip off the directories + _bad_packages=$(printf "%s\n%s" "$_bad_packages" "$_package") + done + _msg=$(cat < /dev/null 2>&1; then + message "The readlink command was not found. Please install version" \ + "1.13.1 or later of the debianutils package." + readlink () { + # returns what symlink in $1 actually points to + perl -e '$l = shift; exit 1 unless -l $l; $r = readlink $l; exit 1 unless $r; print "$r\n"' "$1" + } +fi + +check_symlink () { + # syntax: check_symlink symlink + # + # See if specified symlink points where it is supposed to. Return 0 if it + # does, and 1 if it does not. + # + # Primarily used by check_symlinks_and_warn() and check_symlinks_and_bomb(). + + #local symlink + + # validate arguments + if [ $# -ne 1 ]; then + usage_error "check_symlink() called with wrong number of arguments;" \ + "expected 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + _symlink="$1" + + if [ "$(maplink "$_symlink")" = "$(readlink "$_symlink")" ]; then + return 0 + else + return 1 + fi +} + +check_symlinks_and_warn () { + # syntax: check_symlinks_and_warn symlink ... + # + # For each argument, check for symlink sanity, and warn if it isn't sane. + # + # Call this function from a preinst script in the event $1 is "upgrade" or + # "install". + + #local errmsg symlink + + # validate arguments + if [ $# -lt 1 ]; then + usage_error "check_symlinks_and_warn() called with wrong number of" \ + "arguments; expected at least 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + while [ -n "$1" ]; do + _symlink="$1" + if [ -L "$_symlink" ]; then + if ! check_symlink "$_symlink"; then + observe "$_symlink symbolic link points to wrong location" \ + "$(readlink "$_symlink"); removing" + rm "$_symlink" + fi + elif [ -e "$_symlink" ]; then + _errmsg="$_symlink exists and is not a symbolic link; this package cannot" + _errmsg="$_errmsg be installed until this" + if [ -f "$_symlink" ]; then + _errmsg="$_errmsg file" + elif [ -d "$_symlink" ]; then + _errmsg="$_errmsg directory" + else + _errmsg="$_errmsg thing" + fi + _errmsg="$_errmsg is removed" + die "$_errmsg" + fi + shift + done +} + +check_symlinks_and_bomb () { + # syntax: check_symlinks_and_bomb symlink ... + # + # For each argument, check for symlink sanity, and bomb if it isn't sane. + # + # Call this function from a postinst script. + + #local problem symlink + + # validate arguments + if [ $# -lt 1 ]; then + usage_error "check_symlinks_and_bomb() called with wrong number of" + "arguments; expected at least 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + while [ -n "$1" ]; do + _problem= + _symlink="$1" + if [ -L "$_symlink" ]; then + if ! check_symlink "$_symlink"; then + _problem=yes + warn "$_symlink symbolic link points to wrong location" \ + "$(readlink "$_symlink")" + fi + elif [ -e "$_symlink" ]; then + _problem=yes + warn "$_symlink is not a symbolic link" + else + _problem=yes + warn "$_symlink symbolic link does not exist" + fi + if [ -n "$_problem" ]; then + analyze_path "$_symlink" "$(readlink "$_symlink")" + find_culprits "$_symlink" + die "bad symbolic links on system" + fi + shift + done +} + +font_update () { + # run $UPDATECMDS in $FONTDIRS + + #local dir cmd shortcmd x_font_dir_prefix + + _x_font_dir_prefix="/usr/share/fonts/X11" + + if [ -z "$UPDATECMDS" ]; then + usage_error "font_update() called but \$UPDATECMDS not set" + fi + if [ -z "$FONTDIRS" ]; then + usage_error "font_update() called but \$FONTDIRS not set" + fi + + reject_unlikely_path_chars "$UPDATECMDS" + reject_unlikely_path_chars "$FONTDIRS" + + for _dir in $FONTDIRS; do + if [ -d "$_x_font_dir_prefix/$_dir" ]; then + for _cmd in $UPDATECMDS; do + if which "$_cmd" > /dev/null 2>&1; then + _shortcmd=${_cmd##*/} + observe "running $_shortcmd in $_dir font directory" + _cmd_opts= + if [ "$_shortcmd" = "update-fonts-alias" ]; then + _cmd_opts=--x11r7-layout + fi + if [ "$_shortcmd" = "update-fonts-dir" ]; then + _cmd_opts=--x11r7-layout + fi + if [ "$_shortcmd" = "update-fonts-scale" ]; then + _cmd_opts=--x11r7-layout + fi + $_cmd $_cmd_opts $_dir || warn "$_cmd $_cmd_opts $_dir" \ + "failed; font directory data may not" \ + "be up to date" + else + warn "$_cmd not found; not updating corresponding $_dir font" \ + "directory data" + fi + done + else + warn "$_dir is not a directory; not updating font directory data" + fi + done +} + +remove_conffile_prepare () { + # syntax: remove_conffile_prepare filename official_md5sum ... + # + # Check a conffile "filename" against a list of canonical MD5 checksums. + # If the file's current MD5 checksum matches one of the "official_md5sum" + # operands provided, then prepare the conffile for removal from the system. + # We defer actual deletion until the package is configured so that we can + # roll this operation back if package installation fails. + # + # Call this function from a preinst script in the event $1 is "upgrade" or + # "install" and verify $2 to ensure the package is being upgraded from a + # version (or installed over a version removed-but-not-purged) prior to the + # one in which the conffile was obsoleted. + + #local conffile current_checksum + + # validate arguments + if [ $# -lt 2 ]; then + usage_error "remove_conffile_prepare() called with wrong number of" \ + "arguments; expected at least 2, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + _conffile="$1" + shift + + # does the _conffile even exist? + if [ -e "$_conffile" ]; then + # calculate its checksum + _current_checksum=$(md5sum < "$_conffile" | sed 's/[[:space:]].*//') + # compare it to each supplied checksum + while [ -n "$1" ]; do + if [ "$_current_checksum" = "$1" ]; then + # we found a match; move the confffile and stop looking + observe "preparing obsolete conffile $_conffile for removal" + mv "$_conffile" "$_conffile.$THIS_PACKAGE-tmp" + break + fi + shift + done + fi +} + +remove_conffile_commit () { + # syntax: remove_conffile_commit filename + # + # Complete the removal of a conffile "filename" that has become obsolete. + # + # Call this function from a postinst script after having used + # remove_conffile_prepare() in the preinst. + + #local conffile + + # validate arguments + if [ $# -ne 1 ]; then + usage_error "remove_conffile_commit() called with wrong number of" \ + "arguments; expected 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + _conffile="$1" + + # if the temporary file created by remove_conffile_prepare() exists, remove it + if [ -e "$_conffile.$THIS_PACKAGE-tmp" ]; then + observe "committing removal of obsolete conffile $_conffile" + rm "$_conffile.$THIS_PACKAGE-tmp" + fi +} + +remove_conffile_rollback () { + # syntax: remove_conffile_rollback filename + # + # Roll back the removal of a conffile "filename". + # + # Call this function from a postrm script in the event $1 is "abort-upgrade" + # or "abort-install" is after having used remove_conffile_prepare() in the + # preinst. + + #local conffile + + # validate arguments + if [ $# -ne 1 ]; then + usage_error "remove_conffile_rollback() called with wrong number of" \ + "arguments; expected 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + _conffile="$1" + + # if the temporary file created by remove_conffile_prepare() exists, move it + # back + if [ -e "$_conffile.$THIS_PACKAGE-tmp" ]; then + observe "rolling back removal of obsolete conffile $_conffile" + mv "$_conffile.$THIS_PACKAGE-tmp" "$_conffile" + fi +} + +replace_conffile_with_symlink_prepare () { + # syntax: replace_conffile_with_symlink_prepare oldfilename newfilename \ + # official_md5sum ... + # + # Check a conffile "oldfilename" against a list of canonical MD5 checksums. + # If the file's current MD5 checksum matches one of the "official_md5sum" + # operands provided, then prepare the conffile for removal from the system. + # We defer actual deletion until the package is configured so that we can + # roll this operation back if package installation fails. Otherwise copy it + # to newfilename and let dpkg handle it through conffiles mechanism. + # + # Call this function from a preinst script in the event $1 is "upgrade" or + # "install" and verify $2 to ensure the package is being upgraded from a + # version (or installed over a version removed-but-not-purged) prior to the + # one in which the conffile was obsoleted. + + #local conffile current_checksum + + # validate arguments + if [ $# -lt 3 ]; then + usage_error "replace_conffile_with_symlink_prepare() called with wrong" \ + " number of arguments; expected at least 3, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + _oldconffile="$1" + shift + _newconffile="$1" + shift + + remove_conffile_prepare "$_oldconffile" "$@" + # If $_oldconffile still exists, then md5sums didn't match. + # Copy it to new one. + if [ -f "$_oldconffile" ]; then + cp "$_oldconffile" "$_newconffile" + fi + +} + +replace_conffile_with_symlink_commit () { + # syntax: replace_conffile_with_symlink_commit oldfilename + # + # Complete the removal of a conffile "oldfilename" that has been + # replaced by a symlink. + # + # Call this function from a postinst script after having used + # replace_conffile_with_symlink_prepare() in the preinst. + + #local conffile + + # validate arguments + if [ $# -ne 1 ]; then + usage_error "replace_conffile_with_symlink_commit() called with wrong" \ + "number of arguments; expected 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + _conffile="$1" + + remove_conffile_commit "$_conffile" +} + +replace_conffile_with_symlink_rollback () { + # syntax: replace_conffile_with_symlink_rollback oldfilename newfilename + # + # Roll back the replacing of a conffile "oldfilename" with symlink to + # "newfilename". + # + # Call this function from a postrm script in the event $1 is "abort-upgrade" + # or "abort-install" and verify $2 to ensure the package failed to upgrade + # from a version (or install over a version removed-but-not-purged) prior + # to the one in which the conffile was obsoleted. + # You should have used replace_conffile_with_symlink_prepare() in the + # preinst. + + #local conffile + + # validate arguments + if [ $# -ne 2 ]; then + usage_error "replace_conffile_with_symlink_rollback() called with wrong" \ + "number of arguments; expected 2, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + _oldconffile="$1" + _newconffile="$2" + + remove_conffile_rollback "$_oldconffile" + if [ -f "$_newconffile" ]; then + rm "$_newconffile" + fi +} + +run () { + # syntax: run command [ argument ... ] + # + # Run specified command with optional arguments and report its exit status. + # Useful for commands whose exit status may be nonzero, but still acceptable, + # or commands whose failure is not fatal to us. + # + # NOTE: Do *not* use this function with db_get or db_metaget commands; in + # those cases the return value of the debconf command *must* be checked + # before the string returned by debconf is used for anything. + + #local retval + + # validate arguments + if [ $# -lt 1 ]; then + usage_error "run() called with wrong number of arguments; expected at" \ + "least 1, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + "$@" || _retval=$? + + if [ ${_retval:-0} -ne 0 ]; then + observe "command \"$*\" exited with status $_retval" + fi +} + +register_x_lib_dir_with_ld_so () { + # syntax: register_x_lib_dir_with_ld_so + # + # Configure the dynamic loader ld.so to search /usr/X11R6/lib for shared + # libraries. + # + # Call this function from the postinst script of a package that places a + # shared library in /usr/X11R6/lib, before invoking ldconfig. + + #local dir ldsoconf + + _dir="/usr/X11R6/lib" + _ldsoconf="/etc/ld.so.conf" + + # is the line not already present? + if ! fgrep -qsx "$_dir" "$_ldsoconf"; then + observe "adding $_dir directory to $_ldsoconf" + echo "$_dir" >> "$_ldsoconf" + fi +} + +deregister_x_lib_dir_with_ld_so () { + # syntax: deregister_x_lib_dir_with_ld_so + # + # Configure dynamic loader ld.so to not search /usr/X11R6/lib for shared + # libraries, if and only if no shared libaries remain there. + # + # Call this function from the postrm script of a package that places a shared + # library in /usr/X11R6/lib, in the event "$1" is "remove", and before + # invoking ldconfig. + + #local dir ldsoconf fgrep_status cmp_status + + _dir="/usr/X11R6/lib" + _ldsoconf="/etc/ld.so.conf" + + # is the line present? + if fgrep -qsx "$_dir" "$_ldsoconf"; then + # are there any shared objects in the directory? + if [ "$(echo "$_dir"/lib*.so.*.*)" = "$_dir/lib*.so.*.*" ]; then + # glob expansion produced nothing, so no shared libraries are present + observe "removing $_dir directory from $_ldsoconf" + # rewrite the file (very carefully) + set +e + fgrep -svx "$_dir" "$_ldsoconf" > "$_ldsoconf.dpkg-tmp" + _fgrep_status=$? + set -e + case $_fgrep_status in + 0|1) ;; # we don't actually care if any lines matched or not + *) die "error reading \"$_ldsoconf\"; fgrep exited with status" \ + "$_fgrep_status" ;; + esac + set +e + cmp -s "$_ldsoconf.dpkg-tmp" "$_ldsoconf" + _cmp_status=$? + set -e + case $_cmp_status in + 0) rm "$_ldsoconf.dpkg-tmp" ;; # files are identical + 1) mv "$_ldsoconf.dpkg-tmp" "$_ldsoconf" ;; # files differ + *) die "error comparing \"$_ldsoconf.dpkg-tmp\" to \"$_ldsoconf\";" \ + "cmp exited with status $_cmp_status" ;; + esac + fi + fi +} + +make_symlink_sane () { + # syntax: make_symlink_sane symlink target + # + # Ensure that the symbolic link symlink exists, and points to target. + # + # If symlink does not exist, create it and point it at target. + # + # If symlink exists but is not a symbolic link, back it up. + # + # If symlink exists, is a symbolic link, but points to the wrong location, fix + # it. + # + # If symlink exists, is a symbolic link, and already points to target, do + # nothing. + # + # This function wouldn't be needed if ln had an -I, --idempotent option. + + # Validate arguments. + if [ $# -ne 2 ]; then + usage_error "make_symlink_sane() called with wrong number of arguments;" \ + "expected 2, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + # We could just use the positional parameters as-is, but that makes things + # harder to follow. + #local symlink target + + _symlink="$1" + _target="$2" + + if [ -L "$_symlink" ] && [ "$(readlink "$_symlink")" = "$_target" ]; then + observe "link from $_symlink to $_target already exists" + else + observe "creating symbolic link from $_symlink to $_target" + mkdir -p "${_target%/*}" "${_symlink%/*}" + ln -s -b -S ".dpkg-old" "$_target" "$_symlink" + fi +} + +migrate_dir_to_symlink () { + # syntax: migrate_dir_to_symlink old_location new_location + # + # Per Debian Policy section 6.5.4, "A directory will never be replaced by a + # symbolic link to a directory or vice versa; instead, the existing state + # (symlink or not) will be left alone and dpkg will follow the symlink if + # there is one." + # + # We have to do it ourselves. + # + # This function moves the contents of old_location, a directory, into + # new_location, a directory, then makes old_location a symbolic link to + # new_location. + # + # old_location need not exist, but if it does, it must be a directory (or a + # symlink to a directory). If it is not, it is backed up. If new_location + # exists already and is not a directory, it is backed up. + # + # This function should be called from a package's preinst so that other + # packages unpacked after this one --- but before this package's postinst runs + # --- are unpacked into new_location even if their payloads contain + # old_location filespecs. + + # Validate arguments. + if [ $# -ne 2 ]; then + usage_error "migrate_dir_to_symlink() called with wrong number of" + "arguments; expected 2, got $#" + exit $SHELL_LIB_USAGE_ERROR + fi + + # We could just use the positional parameters as-is, but that makes things + # harder to follow. + local _new _old + + _old="$1" + _new="$2" + + # Is old location a symlink? + if [ -L "$_old" ]; then + # Does it already point to new location? + if [ "$(readlink "$_old")" = "$_new" ]; then + # Nothing to do; migration has already been done. + observe "migration of $_old to $_new already done" + return 0 + else + # Back it up. + warn "backing up symbolic link $_old as $_old.dpkg-old" + mv -b "$_old" "$_old.dpkg-old" + fi + fi + + # Does old location exist, but is not a directory? + if [ -e "$_old" ] && ! [ -d "$_old" ]; then + # Back it up. + warn "backing up non-directory $_old as $_old.dpkg-old" + mv -b "$_old" "$_old.dpkg-old" + fi + + observe "migrating $_old to $_new" + + # Is new location a symlink? + if [ -L "$_new" ]; then + # Does it point the wrong way, i.e., back to where we're migrating from? + if [ "$(readlink "$_new")" = "$_old" ]; then + # Get rid of it. + observe "removing symbolic link $_new which points to $_old" + rm "$_new" + else + # Back it up. + warn "backing up symbolic link $_new as $_new.dpkg-old" + mv -b "$_new" "$_new.dpkg-old" + fi + fi + + # Does new location exist, but is not a directory? + if [ -e "$_new" ] && ! [ -d "$_new" ]; then + warn "backing up non-directory $_new as $_new.dpkg-old" + mv -b "$_new" "$_new.dpkg-old" + fi + + # Create new directory if it does not yet exist. + if ! [ -e "$_new" ]; then + observe "creating $_new" + mkdir -p "$_new" + fi + + # Copy files in old location to new location. Back up any filenames that + # already exist in the new location with the extension ".dpkg-old". + observe "copying files from $_old to $_new" + if ! (cd "$_old" && cp -a -b -S ".dpkg-old" . "$_new"); then + die "error(s) encountered while copying files from $_old to $_new" + fi + + # Remove files at old location. + observe "removing $_old" + rm -r "$_old" + + # Create symlink from old location to new location. + make_symlink_sane "$_old" "$_new" +} + +# vim:set ai et sw=2 ts=2 tw=80: + +# GOBSTOPPER: The X Strike Force shell library ends here. --- xorg-server-1.1.1.orig/debian/xsfbs/xsfbs.mk +++ xorg-server-1.1.1/debian/xsfbs/xsfbs.mk @@ -0,0 +1,359 @@ +#!/usr/bin/make -f +# $Id: xsfbs.mk 2284 2006-06-06 18:02:50Z branden $ + +# Debian rules file for xorg-x11 source package + +# Copyright 1996 Stephen Early +# Copyright 1997 Mark Eichin +# Copyright 1998-2005 Branden Robinson +# Copyright 2005 David Nusinow +# +# Licensed under the GNU General Public License, version 2. See the file +# /usr/share/common-licenses/GPL or . + +# Originally by Stephen Early +# Modified by Mark W. Eichin +# Modified by Adam Heath +# Modified by Branden Robinson +# Modified by Fabio Massimo Di Nitto +# Modified by David Nusinow +# Acknowledgements to Manoj Srivastava. + +# Pass $(DH_OPTIONS) into the environment for debhelper's benefit. +export DH_OPTIONS + +# Set up parameters for the upstream build environment. + +# Determine (source) package name from Debian changelog. +SOURCE_NAME:=$(shell dpkg-parsechangelog -ldebian/changelog \ + | grep '^Source:' | awk '{print $$2}') + +# Determine package version from Debian changelog. +SOURCE_VERSION:=$(shell dpkg-parsechangelog -ldebian/changelog \ + | grep '^Version:' | awk '{print $$2}') + +# Determine upstream version number. +UPSTREAM_VERSION:=$(shell echo $(SOURCE_VERSION) | sed 's/-.*//') + +# Determine the source version without the epoch for make-orig-tar-gz +NO_EPOCH_VER:=$(shell echo $(UPSTREAM_VERSION) | sed 's/^.://') + +# Figure out who's building this package. +BUILDER:=$(shell echo $${DEBEMAIL:-$${EMAIL:-$$(echo $$LOGNAME@$$(cat /etc/mailname 2>/dev/null))}}) + +# Find out if this is an official build; an official build has nothing but +# digits, dots, and/or the strings "woody" or "sarge" in the Debian part of the +# version number. Anything else indicates an unofficial build. +OFFICIAL_BUILD:=$(shell VERSION=$(SOURCE_VERSION); if ! expr "$$(echo $${VERSION\#\#*-} | sed 's/\(woody\|sarge\)//g')" : ".*[^0-9.].*" >/dev/null 2>&1; then echo yes; fi) + +# Set up parameters for the Debian build environment. + +# Determine our architecture. +BUILD_ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH) +# Work around some old-time dpkg braindamage. +BUILD_ARCH:=$(subst i486,i386,$(BUILD_ARCH)) +# The DEB_HOST_ARCH variable may be set per the Debian cross-compilation policy. +ifdef DEB_HOST_ARCH + ARCH:=$(DEB_HOST_ARCH) +else + # dpkg-cross sets the ARCH environment variable; if set, use it. + ifdef ARCH + ARCH:=$(ARCH) + else + ARCH:=$(BUILD_ARCH) + endif +endif + +# $(STAMP_DIR) houses stamp files for complex targets. +STAMP_DIR:=stampdir + +# $(SOURCE_DIR) houses one or more source trees. +SOURCE_DIR:=build-tree + +# $(SOURCE_TREE) is the location of the source tree to be compiled. If there +# is more than one, others are found using this name plus a suffix to indicate +# the purpose of the additional tree (e.g., $(SOURCE_TREE)-custom). The +# "setup" target is responsible for creating such trees. +#SOURCE_TREE:=$(SOURCE_DIR)/xc +#FIXME We need to define this in our debian/rules file + +# $(DEBTREEDIR) is where all install rules are told (via $(DESTDIR)) to place +# their files. +DEBTREEDIR:=$(CURDIR)/debian/tmp + +# All "important" targets have four lines: +# 1) A target name that is invoked by a package-building tool or the user. +# This consists of a dependency on a "$(STAMP_DIR)/"-prefixed counterpart. +# 2) A line delcaring 1) as a phony target (".PHONY:"). +# 3) A "$(STAMP_DIR)/"-prefixed target which does the actual work, and may +# depend on other targets. +# 4) A line declaring 3) as a member of the $(stampdir_targets) variable; the +# "$(STAMP_DIR)/" prefix is omitted. +# +# This indirection is needed so that the "stamp" files that signify when a rule +# is done can be located in a separate "stampdir". Recall that make has no way +# to know when a goal has been met for a phony target (like "build" or +# "install"). +# +# At the end of each "$(STAMP_DIR)/" target, be sure to run the command ">$@" +# so that the target will not be run again. Removing the file will make Make +# run the target over. + +# All phony targets should be declared as dependencies of .PHONY, even if they +# do not have "($STAMP_DIR)/"-prefixed counterparts. + +# Define a harmless default rule to keep things from going nuts by accident. +.PHONY: default +default: + +# Set up the $(STAMP_DIR) directory. +.PHONY: stampdir +stampdir_targets+=stampdir +stampdir: $(STAMP_DIR)/stampdir +$(STAMP_DIR)/stampdir: + mkdir $(STAMP_DIR) + >$@ + +# Set up the package build directory as quilt expects to find it. +.PHONY: prepare +stampdir_targets+=prepare +prepare: $(STAMP_DIR)/genscripts $(STAMP_DIR)/prepare $(STAMP_DIR)/patches $(STAMP_DIR)/log +$(STAMP_DIR)/prepare: $(STAMP_DIR)/stampdir + if [ ! -e $(STAMP_DIR)/patches ]; then \ + mkdir $(STAMP_DIR)/patches; \ + ln -s $(STAMP_DIR)/patches .pc; \ + echo 2 >$(STAMP_DIR)/patches/.version; \ + fi; \ + if [ ! -e $(STAMP_DIR)/log ]; then \ + mkdir $(STAMP_DIR)/log; \ + fi; \ + if [ ! -e patches ]; then \ + ln -s debian/patches patches; \ + fi; \ + >$@ + +# Apply all patches to the upstream source. +.PHONY: patch +stampdir_targets+=patch +patch: $(STAMP_DIR)/patch +$(STAMP_DIR)/patch: $(STAMP_DIR)/prepare + if ! [ `which quilt` ]; then \ + echo "Couldn't find quilt. Please install it or add it to the build-depends for this package."; \ + exit 1; \ + fi; \ + if quilt next; then \ + echo -n "Applying patches..."; \ + if quilt push -a -v >$(STAMP_DIR)/log/patch 2>&1; then \ + echo "successful."; \ + else \ + echo "failed! (check $(STAMP_DIR)/log/patch for details)"; \ + exit 1; \ + fi; \ + else \ + echo "No patches to apply"; \ + fi; \ + >$@ + +# Revert all patches to the upstream source. +.PHONY: unpatch +unpatch: + rm -f $(STAMP_DIR)/patch + @echo -n "Unapplying patches..."; \ + if [ -e $(STAMP_DIR)/patches/applied-patches ]; then \ + if quilt pop -a -v >$(STAMP_DIR)/log/unpatch 2>&1; then \ + echo "successful."; \ + else \ + echo "failed! (check $(STAMP_DIR)/log/unpatch for details)"; \ + exit 1; \ + fi; \ + else \ + echo "nothing to do."; \ + fi + +# Clean the generated maintainer scripts. +.PHONY: cleanscripts +cleanscripts: + rm -f $(STAMP_DIR)/genscripts + rm -f debian/*.config \ + debian/*.postinst \ + debian/*.postrm \ + debian/*.preinst \ + debian/*.prerm + +# Clean the package build tree. +.PHONY: xsfclean +xsfclean: cleanscripts unpatch + dh_testdir + rm -f .pc patches + rm -rf $(STAMP_DIR) $(SOURCE_DIR) + rm -rf imports + dh_clean debian/shlibs.local \ + debian/MANIFEST.$(ARCH) debian/MANIFEST.$(ARCH).new \ + debian/po/pothead + +# Generate the debconf templates POT file header. +debian/po/pothead: debian/po/pothead.in + sed -e 's/SOURCE_VERSION/$(SOURCE_VERSION)/' \ + -e 's/DATE/$(shell date "+%F %X%z"/)' <$< >$@ + +# Update POT and PO files. +.PHONY: updatepo +updatepo: debian/po/pothead + debian/scripts/debconf-updatepo --pot-header=pothead --verbose + +# Use the MANIFEST files to determine whether we're shipping everything we +# expect to ship, and not shipping anything we don't expect to ship. +.PHONY: check-manifest +stampdir_targets+=check-manifest +check-manifest: $(STAMP_DIR)/check-manifest +$(STAMP_DIR)/check-manifest: $(STAMP_DIR)/install + # Compare manifests. + (cd debian/tmp && find -type f | LC_ALL=C sort | cut -c3-) \ + >debian/MANIFEST.$(ARCH).new + # Construct MANIFEST files from MANIFEST.$(ARCH).in and + # MANIFEST.$(ARCH).all or MANIFEST.all. + if expr "$(findstring -DBuildFonts=NO,$(IMAKE_DEFINES))" \ + : "-DBuildFonts=NO" >/dev/null 2>&1; then \ + LC_ALL=C sort -u debian/MANIFEST.$(ARCH).in >debian/MANIFEST.$(ARCH); \ + else \ + if [ -e debian/MANIFEST.$(ARCH).all ]; then \ + LC_ALL=C sort -u debian/MANIFEST.$(ARCH).in debian/MANIFEST.$(ARCH).all >debian/MANIFEST.$(ARCH); \ + else \ + LC_ALL=C sort -u debian/MANIFEST.$(ARCH).in debian/MANIFEST.all >debian/MANIFEST.$(ARCH); \ + fi; \ + fi + # Confirm that the installed file list has not changed. + if [ -e debian/MANIFEST.$(ARCH) ]; then \ + if ! cmp -s debian/MANIFEST.$(ARCH) debian/MANIFEST.$(ARCH).new; then \ + diff -U 0 debian/MANIFEST.$(ARCH) debian/MANIFEST.$(ARCH).new || DIFFSTATUS=$$?; \ + case $${DIFFSTATUS:-0} in \ + 0) ;; \ + 1) if [ -n "$$IGNORE_MANIFEST_CHANGES" ]; then \ + echo 'MANIFEST check failed; ignoring problem because \$$IGNORE_MANIFEST_CHANGES set' >&2; \ + echo 'Please ensure that the package maintainer has an up-to-date version of the' >&2; \ + echo 'MANIFEST.$(ARCH).in file.' >&2; \ + else \ + echo 'MANIFEST check failed; please see debian/README' >&2; \ + exit 1; \ + fi; \ + ;; \ + *) echo "diff reported unexpected exit status $$DIFFSTATUS when performing MANIFEST check" >&2; \ + exit 1; \ + ;; \ + esac; \ + fi; \ + fi + >$@ + +# Because we build (and install) different files depending on whether or not +# any architecture-independent packages are being created, the list of files we +# expect to see will differ; see the discussion of the "build" target above. +.PHONY: check-manifest-arch check-manifest-indep +check-manifest-arch: IMAKE_DEFINES+= -DBuildSpecsDocs=NO -DBuildFonts=NO -DInstallHardcopyDocs=NO +check-manifest-arch: check-manifest +check-manifest-indep: check-manifest + +# Remove files from the upstream source tree that we don't need, or which have +# licensing problems. It must be run before creating the .orig.tar.gz. +# +# Note: This rule is for Debian package maintainers' convenience, and is not +# needed for conventional build scenarios. +.PHONY: prune-upstream-tree +prune-upstream-tree: + # Ensure we're in the correct directory. + dh_testdir + grep -rvh '^#' debian/prune/ | xargs --no-run-if-empty rm -rf + +# Change to what should be the correct directory, ensure it is, and if +# so, create the .orig.tar.gz file. Exclude the debian directory and its +# contents, and any .svn directories and their contents (so that we can safely +# build an .orig.tar.gz from SVN checkout, not just an export). +# +# Note: This rule is for Debian package maintainers' convenience, and is not +# needed for conventional build scenarios. +# +# This rule *IS* the recommended method for creating a new .orig.tar.gz file, +# for the rare situations when one is needed. +.PHONY: make-orig-tar-gz +make-orig-tar-gz: clean prune-upstream-tree + ( cd .. \ + && if [ $(shell basename $(CURDIR)) != $(SOURCE_NAME)-$(NO_EPOCH_VER) ]; then \ + echo "Our current working directory has the wrong name. Renaming..." >&2; \ + mv $(CURDIR) $(SOURCE_NAME)-$(NO_EPOCH_VER); \ + fi; \ + tar --exclude=debian --exclude=debian/* \ + --exclude=.svn --exclude=.svn/* \ + -cf - $(SOURCE_NAME)-$(NO_EPOCH_VER) \ + | gzip -9 >$(SOURCE_NAME)_$(NO_EPOCH_VER).orig.tar.gz; \ + ) + +# Verify that there are no offsets or fuzz in the patches we apply. +# +# Note: This rule is for Debian package maintainers' convenience, and is not +# needed for conventional build scenarios. +.PHONY: patch-audit +patch-audit: prepare unpatch + @echo -n "Auditing patches..."; \ + >$(STAMP_DIR)/log/patch; \ + FUZZY=; \ + while [ -n "$$(quilt next)" ]; do \ + RESULT=$$(quilt push -v | tee -a $(STAMP_DIR)/log/patch | grep ^Hunk | sed 's/^Hunk.*\(succeeded\|FAILED\).*/\1/');\ + case "$$RESULT" in \ + succeeded) \ + echo "fuzzy patch: $$(quilt top)" \ + | tee -a $(STAMP_DIR)/log/$$(quilt top); \ + FUZZY=yes; \ + ;; \ + FAILED) \ + echo "broken patch: $$(quilt next)" \ + | tee -a $(STAMP_DIR)/log/$$(quilt next); \ + exit 1; \ + ;; \ + esac; \ + done; \ + if [ -n "$$FUZZY" ]; then \ + echo "there were fuzzy patches; please fix."; \ + exit 1; \ + else \ + echo "done."; \ + fi + +# Generate the maintainer scripts. +.PHONY: genscripts +stampdir_targets+=genscripts +genscripts: $(STAMP_DIR)/genscripts +$(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir + for FILE in debian/*.config.in \ + debian/*.postinst.in \ + debian/*.postrm.in \ + debian/*.preinst.in \ + debian/*.prerm.in; do \ + if [ -e "$$FILE" ]; then \ + MAINTSCRIPT=$$(echo $$FILE | sed 's/.in$$//'); \ + sed -n '1,/^#INCLUDE_SHELL_LIB#$$/p' <$$FILE \ + | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >$$MAINTSCRIPT.tmp; \ + cat debian/xsfbs/xsfbs.sh >>$$MAINTSCRIPT.tmp; \ + sed -n '/^#INCLUDE_SHELL_LIB#$$/,$$p' <$$FILE \ + | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >>$$MAINTSCRIPT.tmp; \ + sed -e 's/@SOURCE_VERSION@/$(SOURCE_VERSION)/' \ + -e 's/@OFFICIAL_BUILD@/$(OFFICIAL_BUILD)/' \ + -e 's/@DEFAULT_DCRESOLUTIONS@/$(DEFAULT_DCRESOLUTIONS)/' \ + <$$MAINTSCRIPT.tmp >$$MAINTSCRIPT; \ + rm $$MAINTSCRIPT.tmp; \ + fi; \ + done + # Validate syntax of generated shell scripts. + #sh debian/scripts/validate-posix-sh debian/*.config \ + # debian/*.postinst \ + # debian/*.postrm \ + # debian/*.preinst \ + # debian/*.prerm + >$@ + +# Generate the shlibs.local file. +debian/shlibs.local: + cat debian/*.shlibs >$@ + +include debian/xsfbs/xsfbs-autoreconf.mk + +# vim:set noet ai sts=8 sw=8 tw=0: --- xorg-server-1.1.1.orig/debian/copyright +++ xorg-server-1.1.1/debian/copyright @@ -0,0 +1,826 @@ + Licenses + + The X.Org Foundation + + March 2004 + +1. Introduction + +The X.org Foundation X Window System distribution is a compilation of code +and documentation from many sources. This document is intended primarily as +a guide to the licenses used in the distribution: you must check each file +and/or package for precise redistribution terms. None-the-less, this summary +may be useful to many users. No software incorporating the XFree86 1.1 +license has been incorporated. + +This document is based on the compilation from XFree86. + +2. XFree86 License + +XFree86 code without an explicit copyright is covered by the following copy- +right/license: + +Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- +NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the XFree86 Project shall not +be used in advertising or otherwise to promote the sale, use or other deal- +ings in this Software without prior written authorization from the XFree86 +Project. + +3. Other Licenses + +Portions of code are covered by the following licenses/copyrights. See indi- +vidual files for the copyright dates. + +3.1 X/MIT Copyrights + +3.1.1 X Consortium + +Copyright (C) X Consortium + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is fur- +nished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X +CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. + +X Window System is a trademark of X Consortium, Inc. + +3.1.2 The Open Group + +Copyright The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- +NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + +3.2 Berkeley-based copyrights: + +o + +3.2.1 General + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- +CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- +CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- +ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +3.2.2 UCB/LBL + +Copyright (c) 1993 The Regents of the University of California. All rights +reserved. + +This software was developed by the Computer Systems Engineering group at +Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to +Berkeley. + +All advertising materials mentioning features or use of this software must +display the following acknowledgement: This product includes software devel- +oped by the University of California, Lawrence Berkeley Laboratory. + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: This product includes soft- + ware developed by the University of California, Berkeley and its con- + tributors. + + 4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DIS- +CLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +3.2.3 The NetBSD Foundation, Inc. + +Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved. + +This code is derived from software contributed to The NetBSD Foundation by +Ben Collver + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: This product includes soft- + ware developed by the NetBSD Foundation, Inc. and its contributors. + + 4. Neither the name of The NetBSD Foundation nor the names of its con- + tributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSE- +QUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAM- +AGE. + +3.2.4 Theodore Ts'o. + +Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights +reserved. + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + and the entire permission notice in its entirety, including the dis- + claimer of warranties. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. he name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- +CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- +ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +3.2.5 Theo de Raadt and Damien Miller + +Copyright (c) 1995,1999 Theo de Raadt. All rights reserved. Copyright (c) +2001-2002 Damien Miller. All rights reserved. + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- +CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- +CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- +ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +3.2.6 Todd C. Miller + +Copyright (c) 1998 Todd C. Miller + +Permission to use, copy, modify, and distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright +notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MER- +CHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR ANY +SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER +RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CON- +TRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +3.2.7 Thomas Winischhofer + +Copyright (C) 2001-2004 Thomas Winischhofer + +Redistribution and use in source and binary forms, with or without modifica- +tion, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- +CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- +ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +3.3 NVIDIA Corp + +Copyright (c) 1996 NVIDIA, Corp. All rights reserved. + +NOTICE TO USER: The source code is copyrighted under U.S. and international +laws. NVIDIA, Corp. of Sunnyvale, California owns the copyright and as +design patents pending on the design and interface of the NV chips. Users +and possessors of this source code are hereby granted a nonexclusive, roy- +alty-free copyright and design patent license to use this code in individual +and commercial software. + +Any use of this source code must include, in the user documentation and +internal comments to the code, notices to the end user as follows: + +Copyright (c) 1996 NVIDIA, Corp. NVIDIA design patents pending in the U.S. +and foreign countries. + +NVIDIA, CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE +CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WAR- +RANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE +FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAM- +AGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. + +3.4 GLX Public License + +GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License") + +Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby +grants permission to Recipient (defined below), under Recipient's copyrights +in the Original Software (defined below), to use, copy, modify, merge, pub- +lish, distribute, sublicense and/or sell copies of Subject Software (defined +below), and to permit persons to whom the Subject Software is furnished in +accordance with this License to do the same, subject to all of the following +terms and conditions, which Recipient accepts by engaging in any such use, +copying, modifying, merging, publishing, distributing, sublicensing or sell- +ing: + +1. Definitions. + + (a) "Original Software" means source code of computer software code + which is described in Exhibit A as Original Software. + + (b) "Modifications" means any addition to or deletion from the sub- + stance or structure of either the Original Software or any previous + Modifications. When Subject Software is released as a series of + files, a Modification means (i) any addition to or deletion from + the contents of a file containing Original Software or previous + Modifications and (ii) any new file that contains any part of the + Original Code or previous Modifications. + + (c) "Subject Software" means the Original Software or Modifications + or the combination of the Original Software and Modifications, or + portions of any of the foregoing. + + (d) "Recipient" means an individual or a legal entity exercising + rights under, and complying with all of the terms of, this License. + For legal entities, "Recipient" includes any entity which controls, + is controlled by, or is under common control with Recipient. For + purposes of this definition, "control" of an entity means (a) the + power, direct or indirect, to direct or manage such entity, or (b) + ownership of fifty percent (50%) or more of the outstanding shares + or beneficial ownership of such entity. + +2. Redistribution of Source Code Subject to These Terms. Redistributions of +Subject Software in source code form must retain the notice set forth in +Exhibit A, below, in every file. A copy of this License must be included in +any documentation for such Subject Software where the recipients' rights +relating to Subject Software are described. Recipient may distribute the +source code version of Subject Software under a license of Recipient's +choice, which may contain terms different from this License, provided that +(i) Recipient is in compliance with the terms of this License, and (ii) the +license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13 +of this License, which terms may not be modified or superseded by any other +terms of such license. If Recipient distributes the source code version under +a different license Recipient must make it absolutely clear that any terms +which differ from this License are offered by Recipient alone, not by SGI. +Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as +a result of any such terms Recipient offers. + +3. Redistribution in Executable Form. The notice set forth in Exhibit A must +be conspicuously included in any notice in an executable version of Subject +Software, related documentation or collateral in which Recipient describes +the user's rights relating to the Subject Software. Recipient may distribute +the executable version of Subject Software under a license of Recipient's +choice, which may contain terms different from this License, provided that +(i) Recipient is in compliance with the terms of this License, and (ii) the +license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of +this License, which terms may not be modified or superseded by any other +terms of such license. If Recipient distributes the executable version under +a different license Recipient must make it absolutely clear that any terms +which differ from this License are offered by Recipient alone, not by SGI. +Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as +a result of any such terms Recipient offers. + +4. Termination. This License and the rights granted hereunder will terminate +automatically if Recipient fails to comply with terms herein and fails to +cure such breach within 30 days of the breach. Any sublicense to the Subject +Software which is properly granted shall survive any termination of this +License absent termination by the terms of such sublicense. Provisions which, +by their nature, must remain in effect beyond the termination of this License +shall survive. + +5. No Trademark Rights. This License does not grant any rights to use any +trade name, trademark or service mark whatsoever. No trade name, trademark or +service mark of SGI may be used to endorse or promote products derived from +the Subject Software without prior written permission of SGI. + +6. No Other Rights. This License does not grant any rights with respect to +the OpenGL API or to any software or hardware implementation thereof or to +any other software whatsoever, nor shall any other rights or licenses not +expressly granted hereunder arise by implication, estoppel or otherwise with +respect to the Subject Software. Title to and ownership of the Original Soft- +ware at all times remains with SGI. All rights in the Original Software not +expressly granted under this License are reserved. + +7. Compliance with Laws; Non-Infringement. Recipient shall comply with all +applicable laws and regulations in connection with use and distribution of +the Subject Software, including but not limited to, all export and import +control laws and regulations of the U.S. government and other countries. +Recipient may not distribute Subject Software that (i) in any way infringes +(directly or contributorily) the rights (including patent, copyright, trade +secret, trademark or other intellectual property rights of any kind) of any +other person or entity or (ii) breaches any representation or warranty, +express, implied or statutory, which under any applicable law it might be +deemed to have been distributed. + +8. Claims of Infringement. If Recipient at any time has knowledge of any one +or more third party claims that reproduction, modification, use, distribu- +tion, import or sale of Subject Software (including particular functionality +or code incorporated in Subject Software) infringes the third party's intel- +lectual property rights, Recipient must place in a well-identified web page +bearing the title "LEGAL" a description of each such claim and a description +of the party making each such claim in sufficient detail that a user of the +Subject Software will know whom to contact regarding the claim. Also, upon +gaining such knowledge of any such claim, Recipient must conspicuously +include the URL for such web page in the Exhibit A notice required under Sec- +tions 2 and 3, above, and in the text of any related documentation, license +agreement or collateral in which Recipient describes end user's rights relat- +ing to the Subject Software. If Recipient obtains such knowledge after it +makes Subject Software available to any other person or entity, Recipient +shall take other steps (such as notifying appropriate mailing lists or news- +groups) reasonably calculated to inform those who received the Subject Soft- +ware that new knowledge has been obtained. + +9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, +WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT +LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER- +CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO +RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE +PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER- +VICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN +ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED +HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THE- +ORY, WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIA- +BILITY), CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR +ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY +CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK +STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER +COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF +THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY +TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO +THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO +NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, +SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT. + +11. Indemnity. Recipient shall be solely responsible for damages arising, +directly or indirectly, out of its utilization of rights under this License. +Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc. +from and against any loss, liability, damages, costs or expenses (including +the payment of reasonable attorneys fees) arising out of Recipient's use, +modification, reproduction and distribution of the Subject Software or out of +any representation or warranty made by Recipient. + +12. U.S. Government End Users. The Subject Software is a "commercial item" +consisting of "commercial computer software" as such terms are defined in +title 48 of the Code of Federal Regulations and all U.S. Government End +Users acquire only the rights set forth in this License and are subject to +the terms of this License. + +13. Miscellaneous. This License represents the complete agreement concerning +subject matter hereof. If any provision of this License is held to be unen- +forceable, such provision shall be reformed so as to achieve as nearly as +possible the same economic effect as the original provision and the remainder +of this License will remain in effect. This License shall be governed by and +construed in accordance with the laws of the United States and the State of +California as applied to agreements entered into and to be performed entirely +within California between California residents. Any litigation relating to +this License shall be subject to the exclusive jurisdiction of the Federal +Courts of the Northern District of California (or, absent subject matter +jurisdiction in such courts, the courts of the State of California), with +venue lying exclusively in Santa Clara County, California, with the losing +party responsible for costs, including without limitation, court costs and +reasonable attorneys fees and expenses. The application of the United Nations +Convention on Contracts for the International Sale of Goods is expressly +excluded. Any law or regulation which provides that the language of a con- +tract shall be construed against the drafter shall not apply to this License. + +Exhibit A + +The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and +13 of the GLX Public License Version 1.0 (the "License"). You may not use +this file except in compliance with those sections of the License. You may +obtain a copy of the License at Silicon Graphics, Inc., attn: Legal Services, +2011 N. Shoreline Blvd., Mountain View, CA 94043 or at +http://www.sgi.com/software/opensource/glx/license.html. + +Software distributed under the License is distributed on an "AS IS" basis. +ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED +WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON- +INFRINGEMENT. See the License for the specific language governing rights and +limitations under the License. + +The Original Software is GLX version 1.2 source code, released February, +1999. The developer of the Original Software is Silicon Graphics, Inc. Those +portions of the Subject Software created by Silicon Graphics, Inc. are Copy- +right (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved. + +3.5 CID Font Code Public License + +CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License") + +Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI") +hereby grants permission to Recipient (defined below), under SGI's copyrights +in the Original Software (defined below), to use, copy, modify, merge, pub- +lish, distribute, sublicense and/or sell copies of Subject Software (defined +below) in both source code and executable form, and to permit persons to whom +the Subject Software is furnished in accordance with this License to do the +same, subject to all of the following terms and conditions, which Recipient +accepts by engaging in any such use, copying, modifying, merging, publica- +tion, distributing, sublicensing or selling: + +1. Definitions. + + a. "Original Software" means source code of computer software code + that is described in Exhibit A as Original Software. + + b. "Modifications" means any addition to or deletion from the sub- + stance or structure of either the Original Software or any previous + Modifications. When Subject Software is released as a series of + files, a Modification means (i) any addition to or deletion from + the contents of a file containing Original Software or previous + Modifications and (ii) any new file that contains any part of the + Original Code or previous Modifications. + + c. "Subject Software" means the Original Software or Modifications + or the combination of the Original Software and Modifications, or + portions of any of the foregoing. + + d. "Recipient" means an individual or a legal entity exercising + rights under the terms of this License. For legal entities, "Recip- + ient" includes any entity that controls, is controlled by, or is + under common control with Recipient. For purposes of this defini- + tion, "control" of an entity means (i) the power, direct or indi- + rect, to direct or manage such entity, or (ii) ownership of fifty + percent (50%) or more of the outstanding shares or beneficial own- + ership of such entity. + + e. "Required Notice" means the notice set forth in Exhibit A to + this License. + + f. "Accompanying Technology" means any software or other technology + that is not a Modification and that is distributed or made publicly + available by Recipient with the Subject Software. Separate soft- + ware files that do not contain any Original Software or any previ- + ous Modification shall not be deemed a Modification, even if such + software files are aggregated as part of a product, or in any + medium of storage, with any file that does contain Original Soft- + ware or any previous Modification. + +2. License Terms. All distribution of the Subject Software must be made sub- +ject to the terms of this License. A copy of this License and the Required +Notice must be included in any documentation for Subject Software where +Recipient's rights relating to Subject Software and/or any Accompanying Tech- +nology are described. Distributions of Subject Software in source code form +must also include the Required Notice in every file distributed. In addition, +a ReadMe file entitled "Important Legal Notice" must be distributed with each +distribution of one or more files that incorporate Subject Software. That +file must be included with distributions made in both source code and exe- +cutable form. A copy of the License and the Required Notice must be included +in that file. Recipient may distribute Accompanying Technology under a +license of Recipient's choice, which may contain terms different from this +License, provided that (i) Recipient is in compliance with the terms of this +License, (ii) such other license terms do not modify or supersede the terms +of this License as applicable to the Subject Software, (iii) Recipient hereby +indemnifies SGI for any liability incurred by SGI as a result of the distri- +bution of Accompanying Technology or the use of other license terms. + +3. Termination. This License and the rights granted hereunder will terminate +automatically if Recipient fails to comply with terms herein and fails to +cure such breach within 30 days of the breach. Any sublicense to the Subject +Software that is properly granted shall survive any termination of this +License absent termination by the terms of such sublicense. Provisions which, +by their nature, must remain in effect beyond the termination of this License +shall survive. + +4. Trademark Rights. This License does not grant any rights to use any trade +name, trademark or service mark whatsoever. No trade name, trademark or ser- +vice mark of SGI may be used to endorse or promote products derived from or +incorporating any Subject Software without prior written permission of SGI. + +5. No Other Rights. No rights or licenses not expressly granted hereunder +shall arise by implication, estoppel or otherwise. Title to and ownership of +the Original Software at all times remains with SGI. All rights in the Origi- +nal Software not expressly granted under this License are reserved. + +6. Compliance with Laws; Non-Infringement. Recipient shall comply with all +applicable laws and regulations in connection with use and distribution of +the Subject Software, including but not limited to, all export and import +control laws and regulations of the U.S. government and other countries. +Recipient may not distribute Subject Software that (i) in any way infringes +(directly or contributorily) the rights (including patent, copyright, trade +secret, trademark or other intellectual property rights of any kind) of any +other person or entity, or (ii) breaches any representation or warranty, +express, implied or statutory, which under any applicable law it might be +deemed to have been distributed. + +7. Claims of Infringement. If Recipient at any time has knowledge of any one +or more third party claims that reproduction, modification, use, distribu- +tion, import or sale of Subject Software (including particular functionality +or code incorporated in Subject Software) infringes the third party's intel- +lectual property rights, Recipient must place in a well-identified web page +bearing the title "LEGAL" a description of each such claim and a description +of the party making each such claim in sufficient detail that a user of the +Subject Software will know whom to contact regarding the claim. Also, upon +gaining such knowledge of any such claim, Recipient must conspicuously +include the URL for such web page in the Required Notice, and in the text of +any related documentation, license agreement or collateral in which Recipient +describes end user's rights relating to the Subject Software. If Recipient +obtains such knowledge after it makes Subject Software available to any other +person or entity, Recipient shall take other steps (such as notifying appro- +priate mailing lists or newsgroups) reasonably calculated to provide such +knowledge to those who received the Subject Software. + +8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, +WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT +LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER- +CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO +RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE +PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER- +VICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN +ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED +HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, +WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY), +CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT +ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND +LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED. + +10. Indemnity. Recipient shall be solely responsible for damages arising, +directly or indirectly, out of its utilization of rights under this License. +Recipient will defend, indemnify and hold SGI and its successors and assigns +harmless from and against any loss, liability, damages, costs or expenses +(including the payment of reasonable attorneys fees) arising out of (Recipi- +ent's use, modification, reproduction and distribution of the Subject Soft- +ware or out of any representation or warranty made by Recipient. + +11. U.S. Government End Users. The Subject Software is a "commercial item" +consisting of "commercial computer software" as such terms are defined in +title 48 of the Code of Federal Regulations and all U.S. Government End Users +acquire only the rights set forth in this License and are subject to the +terms of this License. + +12. Miscellaneous. This License represents the complete agreement concerning +subject matter hereof. If any provision of this License is held to be unen- +forceable by any judicial or administrative authority having proper jurisdic- +tion with respect thereto, such provision shall be reformed so as to achieve +as nearly as possible the same economic effect as the original provision and +the remainder of this License will remain in effect. This License shall be +governed by and construed in accordance with the laws of the United States +and the State of California as applied to agreements entered into and to be +performed entirely within California between California residents. Any liti- +gation relating to this License shall be subject to the exclusive jurisdic- +tion of the Federal Courts of the Northern District of California (or, absent +subject matter jurisdiction in such courts, the courts of the State of Cali- +fornia), with venue lying exclusively in Santa Clara County, California, with +the losing party responsible for costs, including without limitation, court +costs and reasonable attorneys fees and expenses. The application of the +United Nations Convention on Contracts for the International Sale of Goods is +expressly excluded. Any law or regulation that provides that the language of +a contract shall be construed against the drafter shall not apply to this +License. + +Exhibit A + +Copyright (c) 1994-1999 Silicon Graphics, Inc. + +The contents of this file are subject to the CID Font Code Public License +Version 1.0 (the "License"). You may not use this file except in compliance +with the License. You may obtain a copy of the License at Silicon Graphics, +Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043 +or at http://www.sgi.com/software/opensource/cid/license.html + +Software distributed under the License is distributed on an "AS IS" basis. +ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED +WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON- +INFRINGEMENT. See the License for the specific language governing rights and +limitations under the License. + +The Original Software (as defined in the License) is CID font code that was +developed by Silicon Graphics, Inc. Those portions of the Subject Software +(as defined in the License) that were created by Silicon Graphics, Inc. are +Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved. + +[NOTE: When using this text in connection with Subject Software delivered +solely in object code form, Recipient may replace the words "this file" with +"this software" in both the first and second sentences.] + +3.6 Bitstream Vera Fonts Copyright + +The fonts have a generous copyright, allowing derivative works (as long as +"Bitstream" or "Vera" are not in the names), and full redistribution (so long +as they are not *sold* by themselves). They can be be bundled, redistributed +and sold with any software. + +The fonts are distributed under the following copyright: + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is +a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the fonts accompanying this license ("Fonts") and associated documentation +files (the "Font Software"), to reproduce and distribute the Font Software, +including without limitation the rights to use, copy, merge, publish, dis- +tribute, and/or sell copies of the Font Software, and to permit persons to +whom the Font Software is furnished to do so, subject to the following condi- +tions: + +The above copyright and trademark notices and this permission notice shall be +included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular +the designs of glyphs or characters in the Fonts may be modified and addi- +tional glyphs or characters may be added to the Fonts, only if the fonts are +renamed to names not containing either the words "Bitstream" or the word +"Vera". + +This License becomes null and void to the extent applicable to Fonts or Font +Software that has been modified and is distributed under the "Bitstream Vera" +names. + +The Font Software may be sold as part of a larger software package but no +copy of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDA- +TION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN- +ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR +INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT- +WARE. + +Except as contained in this notice, the names of Gnome, the Gnome Foundation, +and Bitstream Inc., shall not be used in advertising or otherwise to promote +the sale, use or other dealings in this Font Software without prior written +authorization from the Gnome Foundation or Bitstream Inc., respectively. For +further information, contact: fonts at gnome dot org. + +3.7 Bigelow & Holmes Inc and URW++ GmbH Luxi font license + +Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction +code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a regis- +tered trademark of Bigelow & Holmes Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of these Fonts and associated documentation files (the "Font Software"), to +deal in the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, sublicense, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished to do +so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice shall be +included in all copies of one or more of the Font Software. + +The Font Software may not be modified, altered, or added to, and in particu- +lar the designs of glyphs or characters in the Fonts may not be modified nor +may additional glyphs or characters be added to the Fonts. This License +becomes null and void when the Fonts or Font Software have been modified. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++ +GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN- +ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR +INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT- +WARE. + +Except as contained in this notice, the names of Bigelow & Holmes Inc. and +URW++ GmbH. shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Font Software without prior written +authorization from Bigelow & Holmes Inc. and URW++ GmbH. + +For further information, contact: + +info@urwpp.de or design@bigelowandholmes.com + + $Id: LICENSE,v 1.3 2004/09/03 23:41:21 kem Exp $ + + +$XdotOrg$ --- xorg-server-1.1.1.orig/debian/xserver-xorg-core.postinst.in +++ xorg-server-1.1.1/debian/xserver-xorg-core.postinst.in @@ -0,0 +1,18 @@ +#!/bin/sh + +set -e + +THIS_PACKAGE=xserver-xorg-core +THIS_SCRIPT=postinst + +#INCLUDE_SHELL_LIB# + +if [ -x /sbin/update-linux-hardened-support ]; then + /sbin/update-linux-hardened-support || true +fi + +#DEBHELPER# + +exit 0 + +# vim:set ai et sts=2 sw=2 tw=80: --- xorg-server-1.1.1.orig/debian/xserver-xorg-core.install +++ xorg-server-1.1.1/debian/xserver-xorg-core.install @@ -0,0 +1,16 @@ +usr/bin/ioport +usr/bin/gtf +usr/bin/pcitweak +usr/bin/scanpci +usr/lib/xorg/modules/*.so +usr/lib/xorg/modules/extensions/*.so +usr/lib/xorg/modules/fonts/* +usr/lib/xorg/modules/linux/*.so +usr/lib/xorg/modules/multimedia/*.so +usr/bin/Xorg +usr/share/man/man1/Xserver.1x +usr/share/man/man1/gtf.1x +usr/share/man/man1/pcitweak.1x +usr/share/man/man1/scanpci.1x +usr/share/man/man1/Xorg.1x +usr/share/man/man5/xorg.conf.5x --- xorg-server-1.1.1.orig/debian/xvfb.install +++ xorg-server-1.1.1/debian/xvfb.install @@ -0,0 +1,4 @@ +usr/bin/Xvfb +usr/bin/xvfb-run +usr/share/man/man1/xvfb-run.1 +usr/share/man/man1/Xvfb.1x --- xorg-server-1.1.1.orig/debian/xdmx.install +++ xorg-server-1.1.1/debian/xdmx.install @@ -0,0 +1,3 @@ +usr/bin/Xdmx +usr/share/man/man1/xdmxconfig.1x +usr/share/man/man1/Xdmx.1x --- xorg-server-1.1.1.orig/debian/compat +++ xorg-server-1.1.1/debian/compat @@ -0,0 +1 @@ +4 --- xorg-server-1.1.1.orig/debian/serverabiver +++ xorg-server-1.1.1/debian/serverabiver @@ -0,0 +1 @@ +1:1.1.1 --- xorg-server-1.1.1.orig/debian/xnest.install +++ xorg-server-1.1.1/debian/xnest.install @@ -0,0 +1,2 @@ +usr/bin/Xnest +usr/share/man/man1/Xnest.1x --- xorg-server-1.1.1.orig/debian/prune/non-free +++ xorg-server-1.1.1/debian/prune/non-free @@ -0,0 +1 @@ +hw/xfree86/doc/README.DRI --- xorg-server-1.1.1.orig/debian/patches/series +++ xorg-server-1.1.1/debian/patches/series @@ -0,0 +1,34 @@ +001_ubuntu_add_extra_modelines_from_xorg.patch -p1 +02_libvgahw_gcc4_volatile_fix.diff +03_xnest_manpage_overhaul.diff +04_read_rom_in_chunks.diff +05_arm_cache_flush.diff -p3 +06_arm_is_not_x86_and_has_no_vga.diff -p3 +07_xorgconf_manpage_overhaul.diff -p0 +08_s390_servermd.diff -p3 +09_debian_xserver_rtff.diff -p0 +10_dont_look_in_home_for_config.diff -p0 +11_debian_always_use_default_font_path.diff -p1 +12_security_policy_in_etc.diff -p1 +13_debian_add_xkbpath_env_variable.diff +14_debian_always_look_in_our_module_path.diff +15_fedora_disable_offscreen_pixmaps.diff +16_only_switch_vt_when_active.diff +002_ubuntu_sharevts_load_cpu.patch -p1 +004_fedora_init_origins_fix.patch -p0 +005_fdo4320_composite_fastpath.patch -p0 +006_ubuntu_fpic_libxf86config.patch +007_fedora_dont_backfill_bg_none.patch -p0 +008_fedora_gl_include_inferiors.patch -p0 +009_fedora_mesa_copy_sub_buffer.patch -p0 +010_fedora_no_move_damage.patch -p0 +011_fedora_pci_scan_fixes.patch +012_fedora_tfp_damage.patch -p0 +013_ubuntu_symlink_mesa_source.patch +014_fedora_no_composite_in_xnest.patch +015_fedora_sane_default_mode.patch +016_fdo7482_xdmx_render_fix.patch -p1 +017_fedora_add_missing_headers_to_sdk.patch -p0 +018_ubuntu_linux_kernel_include_fixes.patch +019_ubuntu_enable_composite.diff +020_ubuntu_fix_aiglx_hangs.diff --- xorg-server-1.1.1.orig/debian/patches/16_only_switch_vt_when_active.diff +++ xorg-server-1.1.1/debian/patches/16_only_switch_vt_when_active.diff @@ -0,0 +1,31 @@ +diff -urP xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_init.c xorg-server-1.1.1+/hw/xfree86/os-support/linux/lnx_init.c +--- xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_init.c 2006-07-05 14:31:41.000000000 -0400 ++++ xorg-server-1.1.1+/hw/xfree86/os-support/linux/lnx_init.c 2006-09-21 01:23:57.000000000 -0400 +@@ -345,10 +345,25 @@ + + if (VTSwitch) + { ++ struct vt_stat vts; ++ + /* +- * Perform a switch back to the active VT when we were started ++ * Perform a switch back to the active VT when we were started. ++ * We cannot rely on vtSema to determine if the server was the ++ * active VT at the time of shutdown since it has already been ++ * released. Instead, we manually check the current VT and ++ * compare it with the VT we were running on. + */ +- if (activeVT >= 0) { ++ if (ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts) < 0) ++ { ++ /* If this failed, fall back to old behaviour ++ * of always switching. */ ++ xf86Msg(X_WARNING,"xf86OpenConsole: VT_GETSTATE failed: %s\n", ++ strerror(errno)); ++ vts.v_active = xf86Info.vtno; ++ } ++ ++ if (activeVT >= 0 && vts.v_active == xf86Info.vtno) { + if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, activeVT) < 0) + xf86Msg(X_WARNING, "xf86CloseConsole: VT_ACTIVATE failed: %s\n", + strerror(errno)); --- xorg-server-1.1.1.orig/debian/patches/15_fedora_disable_offscreen_pixmaps.diff +++ xorg-server-1.1.1/debian/patches/15_fedora_disable_offscreen_pixmaps.diff @@ -0,0 +1,72 @@ +--- xorg-server-1.1.1/hw/xfree86/xaa/xaaInit.c.offscreen-pixmaps 2006-07-05 14:31:42.000000000 -0400 ++++ xorg-server-1.1.1/hw/xfree86/xaa/xaaInit.c 2006-08-08 14:02:05.000000000 -0400 +@@ -4,6 +4,7 @@ + #include + #endif + ++#include + #include "misc.h" + #include "xf86.h" + #include "xf86_OSproc.h" +@@ -20,6 +21,7 @@ + #include "xaawrap.h" + #include "xf86fbman.h" + #include "servermd.h" ++#include "selection.h" + + #define MAX_PREALLOC_MEM 65536 /* MUST be >= 1024 */ + +@@ -98,6 +100,29 @@ + xfree(infoRec); + } + ++static void ++SelectionChangedCallback (CallbackListPtr *list, ++ pointer xaaData, pointer callData) ++{ ++ static char atom_name[] = "_COMPIZ_GL_INCLUDE_INFERIORS"; ++ ++ SelectionInfoRec *info = callData; ++ XAAInfoRecPtr infoRec = xaaData; ++ ScreenPtr pScreen = infoRec->pScrn->pScreen; ++ Atom atom; ++ ++ atom = MakeAtom(atom_name, strlen(atom_name), 0); ++ if (info->selection->selection == atom && ++ info->kind == SelectionSetOwner && ++ info->selection->window != None) ++ { ++ infoRec->offscreenDepths = 0; ++ infoRec->Flags &= ~OFFSCREEN_PIXMAPS; ++ ++ XAAMoveOutOffscreenPixmaps(pScreen); ++ XAAInvalidatePixmapCache(pScreen); ++ } ++} + + Bool + XAAInit(ScreenPtr pScreen, XAAInfoRecPtr infoRec) +@@ -228,11 +253,11 @@ + if(infoRec->Flags & MICROSOFT_ZERO_LINE_BIAS) + miSetZeroLineBias(pScreen, OCTANT1 | OCTANT2 | OCTANT3 | OCTANT4); + ++ AddCallback(&SelectionCallback, SelectionChangedCallback, infoRec); ++ + return TRUE; + } + +- +- + static Bool + XAACloseScreen (int i, ScreenPtr pScreen) + { +@@ -264,6 +289,9 @@ + + xfree ((pointer) pScreenPriv); + ++ DeleteCallback(&SelectionCallback, SelectionChangedCallback, ++ pScreenPriv->AccelInfoRec); ++ + return (*pScreen->CloseScreen) (i, pScreen); + } + --- xorg-server-1.1.1.orig/debian/patches/004_fedora_init_origins_fix.patch +++ xorg-server-1.1.1/debian/patches/004_fedora_init_origins_fix.patch @@ -0,0 +1,25 @@ +Patch by krh@redhat.com: + + In a multihead setup, if only the first screen can be + initialized, but the second screen is mentioned first in the + ServerLayout section, the xf86InitOrigins() function will crash + because the screen referred to in the e.g. "RightOf" part is + non-existent. + +--- hw/xfree86/common/xf86Cursor.c.init-origins-fix 2004-10-18 22:22:42.675899006 -0400 ++++ hw/xfree86/common/xf86Cursor.c 2004-10-18 22:21:42.540867549 -0400 +@@ -566,6 +566,14 @@ + + screen = &xf86ConfigLayout.screens[i]; + ++ if (screen->refscreen != NULL && ++ screen->refscreen->screennum >= xf86NumScreens) { ++ screensLeft &= ~(1 << i); ++ xf86Msg(X_WARNING, "Not including screen \"%s\" in origins calculation.\n", ++ screen->screen->id); ++ continue; ++ } ++ + switch(screen->where) { + case PosObsolete: + OldStyleConfig = TRUE; --- xorg-server-1.1.1.orig/debian/patches/020_ubuntu_fix_aiglx_hangs.diff +++ xorg-server-1.1.1/debian/patches/020_ubuntu_fix_aiglx_hangs.diff @@ -0,0 +1,295 @@ +diff -ur GL.bak/glx/global.c GL/glx/global.c +--- GL.bak/glx/global.c 2006-07-05 19:31:36 +0100 ++++ a/GL/glx/global.c 2006-08-26 02:47:36 +0100 +@@ -68,10 +68,3 @@ + ** Reply for most singles. + */ + xGLXSingleReply __glXReply; +- +-/* +-** A set of state for each client. The 0th one is unused because client +-** indices start at 1, not 0. +-*/ +-__GLXclientState *__glXClients[MAXCLIENTS+1]; +- +diff -ur GL.bak/glx/glxdri.c GL/glx/glxdri.c +--- GL.bak/glx/glxdri.c 2006-08-23 22:13:48 +0100 ++++ a/GL/glx/glxdri.c 2006-08-26 02:45:32 +0100 +@@ -63,27 +63,30 @@ + #define STRINGIFY(macro_or_string) STRINGIFY_ARG (macro_or_string) + #define STRINGIFY_ARG(contents) #contents + +-typedef struct __GLXDRIscreen __GLXDRIscreen; +-typedef struct __GLXDRIcontext __GLXDRIcontext; ++typedef struct __GLXDRIscreen __GLXDRIscreen; ++typedef struct __GLXDRIcontext __GLXDRIcontext; + typedef struct __GLXDRIdrawable __GLXDRIdrawable; + + struct __GLXDRIscreen { +- __GLXscreen base; ++ __GLXscreen base; + +- __DRIscreen driScreen; +- void *driver; ++ xf86EnterVTProc *enterVT; ++ xf86LeaveVTProc *leaveVT; ++ ++ __DRIscreen driScreen; ++ void *driver; + }; + + struct __GLXDRIcontext { +- __GLXcontext base; ++ __GLXcontext base; + +- __DRIcontext driContext; ++ __DRIcontext driContext; + }; + + struct __GLXDRIdrawable { +- __GLXdrawable base; ++ __GLXdrawable base; + +- __DRIdrawable *driDrawable; ++ __DRIdrawable *driDrawable; + }; + + /* History: +@@ -504,8 +507,7 @@ + + static __DRIscreen *findScreen(__DRInativeDisplay *dpy, int scrn) + { +- __GLXDRIscreen *screen = +- (__GLXDRIscreen *) __glXgetActiveScreen(scrn); ++ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(scrn); + + return &screen->driScreen; + } +@@ -699,6 +701,30 @@ + + static const char dri_driver_path[] = DRI_DRIVER_PATH; + ++static Bool ++glxDRIEnterVT (int index, int flags) ++{ ++ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index); ++ ++ LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n"); ++ ++ glxResumeClients(); ++ ++ return (*screen->enterVT) (index, flags); ++} ++ ++static void ++glxDRILeaveVT (int index, int flags) ++{ ++ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index); ++ ++ LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n"); ++ ++ glxSuspendClients(); ++ ++ return (*screen->leaveVT) (index, flags); ++} ++ + static __GLXscreen * + __glXDRIscreenProbe(ScreenPtr pScreen) + { +@@ -723,6 +749,7 @@ + void *dev_priv = NULL; + char filename[128]; + Bool isCapable; ++ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + + if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable")) { + LogMessage(X_ERROR, "AIGLX: DRI module not loaded\n"); +@@ -892,6 +919,11 @@ + + __glXsetEnterLeaveServerFuncs(__glXDRIenterServer, __glXDRIleaveServer); + ++ screen->enterVT = pScrn->EnterVT; ++ pScrn->EnterVT = glxDRIEnterVT; ++ screen->leaveVT = pScrn->LeaveVT; ++ pScrn->LeaveVT = glxDRILeaveVT; ++ + LogMessage(X_INFO, + "AIGLX: Loaded and initialized %s\n", filename); + +Only in GL/glx: glxdri.c.orig +diff -ur GL.bak/glx/glxext.c GL/glx/glxext.c +--- GL.bak/glx/glxext.c 2006-08-23 22:13:47 +0100 ++++ a/GL/glx/glxext.c 2006-08-26 02:46:43 +0100 +@@ -33,7 +33,7 @@ + #include "glxutil.h" + #include "glxext.h" + +-static Bool inDispatch; ++static __GLXclientState *__glXClients[MAXCLIENTS + 1]; + + /* + ** Forward declarations. +@@ -186,6 +186,10 @@ + return True; + } + ++static __GLXcontext *glxPendingDestroyContexts; ++static int glxServerLeaveCount; ++static int glxBlockClients; ++ + /* + ** Free a context. + */ +@@ -203,13 +207,14 @@ + * __glXDispatch() or as a callback from the resource manager. In + * the latter case we need to lift the DRI lock manually. */ + +- if (!inDispatch) +- __glXleaveServer(); +- +- cx->destroy(cx); +- +- if (!inDispatch) +- __glXenterServer(); ++ if (glxBlockClients) { ++ __glXleaveServer(); ++ cx->destroy(cx); ++ __glXenterServer(); ++ } else { ++ cx->next = glxPendingDestroyContexts; ++ glxPendingDestroyContexts = cx; ++ } + + return GL_TRUE; + } +@@ -308,7 +313,7 @@ + /* + ** Initialize table of client state. There is never a client 0. + */ +- for (i=1; i <= MAXCLIENTS; i++) { ++ for (i = 1; i <= MAXCLIENTS; i++) { + __glXClients[i] = 0; + } + +@@ -379,11 +384,43 @@ + + /************************************************************************/ + +-/* +-** Top level dispatcher; all commands are executed from here down. +-*/ ++void glxSuspendClients(void) ++{ ++ int i; ++ ++ for (i = 1; i <= MAXCLIENTS; i++) { ++ if (__glXClients[i] == NULL || !__glXClients[i]->inUse) ++ continue; ++ ++ IgnoreClient(__glXClients[i]->client); ++ } ++ ++ glxBlockClients = TRUE; ++} ++ ++void glxResumeClients(void) ++{ ++ __GLXcontext *cx, *next; ++ int i; + +-/* I cried when I wrote this. Damn you XAA! */ ++ glxBlockClients = FALSE; ++ ++ for (i = 1; i <= MAXCLIENTS; i++) { ++ if (__glXClients[i] == NULL || !__glXClients[i]->inUse) ++ continue; ++ ++ AttendClient(__glXClients[i]->client); ++ } ++ ++ __glXleaveServer(); ++ for (cx = glxPendingDestroyContexts; cx != NULL; cx = next) { ++ next = cx->next; ++ ++ cx->destroy(cx); ++ } ++ glxPendingDestroyContexts = NULL; ++ __glXenterServer(); ++} + + static void + __glXnopEnterServer(void) +@@ -408,14 +445,19 @@ + + void __glXenterServer(void) + { +- (*__glXenterServerFunc)(); ++ glxServerLeaveCount--; ++ ++ if (glxServerLeaveCount == 0) ++ (*__glXenterServerFunc)(); + } + + void __glXleaveServer(void) + { +- (*__glXleaveServerFunc)(); +-} ++ if (glxServerLeaveCount == 0) ++ (*__glXleaveServerFunc)(); + ++ glxServerLeaveCount++; ++} + + /* + ** Top level dispatcher; all commands are executed from here down. +@@ -468,6 +510,15 @@ + return __glXBadLargeRequest; + } + ++ /* If we're currently blocking GLX clients, just put this guy to ++ * sleep, reset the request and return. */ ++ if (glxBlockClients) { ++ ResetCurrentRequest(client); ++ client->sequence--; ++ IgnoreClient(client); ++ return(client->noClientException); ++ } ++ + /* + ** Use the opcode to index into the procedure table. + */ +@@ -478,12 +529,8 @@ + + __glXleaveServer(); + +- inDispatch = True; +- + retval = proc(cl, (GLbyte *) stuff); + +- inDispatch = False; +- + __glXenterServer(); + + return retval; +diff -ur GL.bak/glx/glxserver.h GL/glx/glxserver.h +--- GL.bak/glx/glxserver.h 2006-07-05 19:31:36 +0100 ++++ a/GL/glx/glxserver.h 2006-08-26 02:45:32 +0100 +@@ -136,6 +136,9 @@ + void __glXenterServer(void); + void __glXleaveServer(void); + ++void glxSuspendClients(void); ++void glxResumeClients(void); ++ + /* + ** State kept per client. + */ +@@ -176,8 +179,6 @@ + char *GLClientextensions; + }; + +-extern __GLXclientState *__glXClients[]; +- + /************************************************************************/ + + /* --- xorg-server-1.1.1.orig/debian/patches/14_debian_always_look_in_our_module_path.diff +++ xorg-server-1.1.1/debian/patches/14_debian_always_look_in_our_module_path.diff @@ -0,0 +1,15 @@ +Index: xorg-server-1.0.2/hw/xfree86/common/xf86Config.c +=================================================================== +--- xorg-server-1.0.2.orig/hw/xfree86/common/xf86Config.c 2006-04-22 12:24:18.000000000 -0400 ++++ xorg-server-1.0.2/hw/xfree86/common/xf86Config.c 2006-04-22 12:29:21.000000000 -0400 +@@ -696,7 +696,9 @@ + + if (fileconf) { + if (xf86ModPathFrom != X_CMDLINE && fileconf->file_modulepath) { +- xf86ModulePath = fileconf->file_modulepath; ++ char *mpath = xnfalloc(strlen(DEFAULT_MODULE_PATH) + strlen(fileconf->file_modulepath) + 2); ++ sprintf(mpath, "%s,%s", fileconf->file_modulepath, DEFAULT_MODULE_PATH); ++ xf86ModulePath = mpath; + xf86ModPathFrom = X_CONFIG; + } + } --- xorg-server-1.1.1.orig/debian/patches/019_ubuntu_enable_composite.diff +++ xorg-server-1.1.1/debian/patches/019_ubuntu_enable_composite.diff @@ -0,0 +1,13 @@ +diff -ur os2/utils.c os/utils.c +--- os2/utils.c 2006-08-23 22:13:50 +0100 ++++ a/os/utils.c 2006-08-26 02:39:23 +0100 +@@ -139,7 +139,8 @@ + #ifdef XFree86Server + /* COMPOSITE is disabled by default for now until the + * interface is stable */ +- #define COMPOSITE_DEFAULT FALSE ++ /* Enabled as an experiment to see what breaks...*/ ++ #define COMPOSITE_DEFAULT TRUE + #else + #define COMPOSITE_DEFAULT TRUE + #endif --- xorg-server-1.1.1.orig/debian/patches/13_debian_add_xkbpath_env_variable.diff +++ xorg-server-1.1.1/debian/patches/13_debian_add_xkbpath_env_variable.diff @@ -0,0 +1,31 @@ +Index: xorg-server-1.0.2/xkb/xkbInit.c +=================================================================== +--- xorg-server-1.0.2.orig/xkb/xkbInit.c ++++ xorg-server-1.0.2/xkb/xkbInit.c +@@ -906,6 +906,14 @@ + extern unsigned char XkbDfltAccessXOptions; + + int ++xkbInitGlobals() ++{ ++ char * xkbpath= getenv("XKBPATH"); ++ if (xkbpath!=NULL) ++ XkbBaseDirectory= xkbpath; ++} ++ ++int + XkbProcessArguments(int argc,char *argv[],int i) + { + if (strcmp(argv[i],"-kb")==0) { +Index: xorg-server-1.0.2/os/utils.c +=================================================================== +--- xorg-server-1.0.2.orig/os/utils.c ++++ xorg-server-1.0.2/os/utils.c +@@ -712,6 +712,7 @@ + */ + void InitGlobals(void) + { ++ xkbInitGlobals(); + ddxInitGlobals(); + } + --- xorg-server-1.1.1.orig/debian/patches/010_fedora_no_move_damage.patch +++ xorg-server-1.1.1/debian/patches/010_fedora_no_move_damage.patch @@ -0,0 +1,33 @@ +Disable damage notifications on move for manually redirected windows. +The automatic compositor needs damage notification on move, but a +compositing manager doesn't. + +--- ./composite/compwindow.c.spiffiffity 2006-03-29 12:51:53.000000000 -0500 ++++ ./composite/compwindow.c 2006-04-13 23:18:42.000000000 -0400 +@@ -571,12 +571,15 @@ + } + else + { ++ CompWindowPtr cw = GetCompWindow (pWin); ++ + ptOldOrg.x -= dx; + ptOldOrg.y -= dy; + REGION_TRANSLATE (prgnSrc, prgnSrc, + pWin->drawable.x - ptOldOrg.x, + pWin->drawable.y - ptOldOrg.y); +- DamageDamageRegion (&pWin->drawable, prgnSrc); ++ if (pWin->redirectDraw && cw->update == CompositeRedirectAutomatic) ++ DamageDamageRegion (&pWin->drawable, prgnSrc); + } + cs->CopyWindow = pScreen->CopyWindow; + pScreen->CopyWindow = compCopyWindow; +@@ -655,7 +658,8 @@ + /* + * Report that as damaged so it will be redrawn + */ +- DamageDamageRegion (&pWin->drawable, &damage); ++ if (cw->update == CompositeRedirectAutomatic) ++ DamageDamageRegion (&pWin->drawable, &damage); + REGION_UNINIT (pScreen, &damage); + /* + * Save the new border clip region --- xorg-server-1.1.1.orig/debian/patches/12_security_policy_in_etc.diff +++ xorg-server-1.1.1/debian/patches/12_security_policy_in_etc.diff @@ -0,0 +1,32 @@ +diff -uNr xorg-server-1.1.1.orig/configure.ac xorg-server-1.1.1/configure.ac +--- xorg-server-1.1.1.orig/configure.ac 2006-07-07 20:44:45.000000000 -0300 ++++ xorg-server-1.1.1/configure.ac 2006-07-25 10:14:49.000000000 -0300 +@@ -375,6 +375,9 @@ + AC_ARG_WITH(rgb-path, AS_HELP_STRING([--with-rgb-path=PATH], [Path to RGB database (default: ${datadir}/X11/rgb)]), + [ RGBPATH="$withval" ], + [ RGBPATH="${datadir}/X11/rgb" ]) ++AC_ARG_WITH(serverconfig-path, AS_HELP_STRING([--with-serverconfig-path=PATH], [Path to server config (default: ${libdir}/xserver)]), ++ [ SERVERCONFIG="$withval" ], ++ [ SERVERCONFIG="${libdir}/xserver" ]) + AC_ARG_WITH(dri-driver-path, AS_HELP_STRING([--with-dri-driver-path=PATH], [Path to DRI drivers (default: ${libdir}/dri)]), + [ DRI_DRIVER_PATH="$withval" ], + [ DRI_DRIVER_PATH="${libdir}/dri" ]) +@@ -806,6 +809,7 @@ + + AC_DEFINE_DIR(COMPILEDDEFAULTFONTPATH, FONTPATH, [Default font path]) + AC_DEFINE_DIR(RGB_DB, RGBPATH, [Default RGB path]) ++AC_DEFINE_DIR(SERVERCONFIGdir, SERVERCONFIG, [Server config path]) + AC_DEFINE_DIR(DRI_DRIVER_PATH, DRI_DRIVER_PATH, [Default DRI driver path]) + AC_DEFINE_UNQUOTED(XVENDORNAME, ["$VENDOR_STRING"], [Vendor name]) + AC_DEFINE_UNQUOTED(XVENDORNAMESHORT, ["$VENDOR_STRING_SHORT"], [Short vendor name]) +diff -uNr xorg-server-1.1.1.orig/Xext/Makefile.am xorg-server-1.1.1/Xext/Makefile.am +--- xorg-server-1.1.1.orig/Xext/Makefile.am 2006-07-05 15:38:46.000000000 -0300 ++++ xorg-server-1.1.1/Xext/Makefile.am 2006-07-25 10:15:20.000000000 -0300 +@@ -73,7 +73,6 @@ + if XCSECURITY + BUILTIN_SRCS += $(XCSECURITY_SRCS) + +-SERVERCONFIGdir = $(libdir)/xserver + SERVERCONFIG_DATA = SecurityPolicy + AM_CFLAGS += -DDEFAULTPOLICYFILE=\"$(SERVERCONFIGdir)/SecurityPolicy\" + endif --- xorg-server-1.1.1.orig/debian/patches/015_fedora_sane_default_mode.patch +++ xorg-server-1.1.1/debian/patches/015_fedora_sane_default_mode.patch @@ -0,0 +1,24 @@ +--- xorg-server-1.1.1/hw/xfree86/common/xf86Mode.c.sanedefaultmode 2006-07-18 14:30:20.000000000 -0400 ++++ xorg-server-1.1.1/hw/xfree86/common/xf86Mode.c 2006-07-18 14:31:04.000000000 -0400 +@@ -1280,8 +1280,8 @@ + scrp->monitor->hsync[i].hi = hsync[i].hi; + } + } else { +- scrp->monitor->hsync[0].lo = 28; +- scrp->monitor->hsync[0].hi = 33; ++ scrp->monitor->hsync[0].lo = 31.5; ++ scrp->monitor->hsync[0].hi = 37.9; + scrp->monitor->nHsync = 1; + } + type = "default "; +@@ -1309,8 +1309,8 @@ + scrp->monitor->vrefresh[i].hi = vrefresh[i].hi; + } + } else { +- scrp->monitor->vrefresh[0].lo = 43; +- scrp->monitor->vrefresh[0].hi = 72; ++ scrp->monitor->vrefresh[0].lo = 50; ++ scrp->monitor->vrefresh[0].hi = 70; + scrp->monitor->nVrefresh = 1; + } + type = "default "; --- xorg-server-1.1.1.orig/debian/patches/05_arm_cache_flush.diff +++ xorg-server-1.1.1/debian/patches/05_arm_cache_flush.diff @@ -0,0 +1,19 @@ +$Id: 303_arm_cache_flush.diff 486 2005-08-03 04:51:11Z dnusinow $ + +This patch re-enables cache flushing on ARM. Which joker turned this +off? + +Index: xc/programs/Xserver/hw/xfree86/loader/elfloader.c +=================================================================== +--- xc/programs/Xserver/hw/xfree86/loader/elfloader.c.orig 2005-08-02 22:04:19.000000000 -0400 ++++ xc/programs/Xserver/hw/xfree86/loader/elfloader.c 2005-08-03 00:20:24.000000000 -0400 +@@ -2536,9 +2536,7 @@ + val = symval - (unsigned long)dest32 + val; + val >>= 2; + *dest32 = (*dest32 & 0xff000000) | (val & 0x00ffffff); +-#ifdef NOTYET + arm_flush_cache(dest32); +-#endif + } + break; + --- xorg-server-1.1.1.orig/debian/patches/017_fedora_add_missing_headers_to_sdk.patch +++ xorg-server-1.1.1/debian/patches/017_fedora_add_missing_headers_to_sdk.patch @@ -0,0 +1,8 @@ +--- hw/xfree86/parser/Makefile.am.parser-add-missing-headers-to-sdk 2005-12-20 16:05:34.000000000 -0500 ++++ hw/xfree86/parser/Makefile.am 2005-12-20 16:06:57.000000000 -0500 +@@ -32,3 +32,5 @@ + xf86Parser.h \ + xf86tokens.h \ + cpconfig.c ++ ++sdk_HEADERS = xf86Parser.h xf86Optrec.h --- xorg-server-1.1.1.orig/debian/patches/001_ubuntu_add_extra_modelines_from_xorg.patch +++ xorg-server-1.1.1/debian/patches/001_ubuntu_add_extra_modelines_from_xorg.patch @@ -0,0 +1,63 @@ +--- foo/hw/xfree86/common/extramodes.orig 2005-03-28 14:40:18.784980424 +1000 ++++ bar/hw/xfree86/common/extramodes 2005-03-28 15:04:04.731203648 +1000 +@@ -7,27 +7,53 @@ + # 832x624 @ 75Hz (74.55Hz) (fix if the official/Apple spec is different) hsync: 49.725kHz + ModeLine "832x624" 57.284 832 864 928 1152 624 625 628 667 -Hsync -Vsync + ++# 1280x768 @ 60Hz (LCD native res) hsync: 47.70kHz ++ModeLine "1280x768" 80.14 1280 1344 1480 1680 768 769 772 795 ++ ++# 1280x800 @ 60Hz (LCD native res) hsync: 49.68kHz ++ModeLine "1280x800" 83.46 1280 1344 1480 1680 800 801 804 828 ++ + # 1152x768 @ 54.8Hz (Titanium PowerBook) hsync: 44.2kHz +-ModeLine "1152x768" 64.995 1152 1178 1314 1472 768 771 777 806 +hsync +vsync ++ModeLine "1152x768" 64.995 1152 1178 1314 1472 768 771 777 806 +hsync +vsync ++ ++# 1152x864 @ 85Hz (Red Hat custom modeline) ++ModeLine "1152x864" 121.5 1152 1216 1344 1568 864 865 868 911 +hsync -vsync + + # 1400x1050 @ 60Hz (VESA GTF) hsync: 65.5kHz + ModeLine "1400x1050" 122.0 1400 1488 1640 1880 1050 1052 1064 1082 +hsync +vsync + ++# 1400x1050 @ 70Hz (Red Hat custom modeline) hsync: 76.8kHz ++ModeLine "1400x1050" 151.0 1400 1464 1656 1960 1050 1051 1054 1100 +hsync +vsync ++ + # 1400x1050 @ 75Hz (VESA GTF) hsync: 82.2kHz + ModeLine "1400x1050" 155.8 1400 1464 1784 1912 1050 1052 1064 1090 +hsync +vsync + ++# 1400x1050 @ 85Hz (Red Hat custom modeline) hsync: 93.2 kHz ++ModeLine "1400x1050" 184.0 1400 1464 1656 1960 1050 1051 1054 1100 +hsync +vsync ++ ++# 1440x900 @ 100Hz (17" iMac LCD) hsync: 67 kHz ++ModeLine "1440x900" 108.84 1440 1472 1880 1912 900 918 927 946 +hsync +vsync ++ + # 1600x1024 @ 60Hz (SGI 1600SW) hsync: 64.0kHz +-Modeline "1600x1024" 106.910 1600 1620 1640 1670 1024 1027 1030 1067 -hsync -vsync ++ModeLine "1600x1024" 106.910 1600 1620 1640 1670 1024 1027 1030 1067 -hsync -vsync ++ ++# 1680x1050 @ 60Hz (LCD native res) hsync: 64.22kHz ++ModeLine "1680x1050" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 ++ ++# 1920x1200 @ 60Hz (LCD native res) hsync: 74.52kHz ++ModeLine "1920x1200" 193.16 1920 2048 2256 2592 1200 1201 1204 1242 ++ ++# 1920x1200 @ 70Hz (Red Hat custom modeline - bugzilla #53364) hsync: 87.50 KHz ++ModeLine "1920x1200" 230.0 1920 1936 2096 2528 1200 1201 1204 1250 -HSync -VSync + + # 1920x1440 @ 85Hz (VESA GTF) hsync: 128.5kHz +-Modeline "1920x1440" 341.35 1920 2072 2288 2656 1440 1441 1444 1512 -hsync +vsync ++ModeLine "1920x1440" 341.35 1920 2072 2288 2656 1440 1441 1444 1512 -hsync +vsync + + # 2048x1536 @ 60Hz (VESA GTF) hsync: 95.3kHz +-Modeline "2048x1536" 266.95 2048 2200 2424 2800 1536 1537 1540 1589 -hsync +vsync ++ModeLine "2048x1536" 266.95 2048 2200 2424 2800 1536 1537 1540 1589 -hsync +vsync + + # 2048x1536 @ 75Hz (VESA GTF) hsync: 120.2kHz +-Modeline "2048x1536" 340.48 2048 2216 2440 2832 1536 1537 1540 1603 -hsync +vsync ++ModeLine "2048x1536" 340.48 2048 2216 2440 2832 1536 1537 1540 1603 -hsync +vsync + + # 2048x1536 @ 85Hz (VESA GTF) hsync: 137.0kHz +-Modeline "2048x1536" 388.04 2048 2216 2440 2832 1536 1537 1540 1612 -hsync +vsync +- ++ModeLine "2048x1536" 388.04 2048 2216 2440 2832 1536 1537 1540 1612 -hsync +vsync --- xorg-server-1.1.1.orig/debian/patches/11_debian_always_use_default_font_path.diff +++ xorg-server-1.1.1/debian/patches/11_debian_always_use_default_font_path.diff @@ -0,0 +1,19 @@ +Index: xorg-server-1.0.2/hw/xfree86/common/xf86Config.c +=================================================================== +--- xorg-server-1.0.2.orig/hw/xfree86/common/xf86Config.c 2006-04-15 17:01:15.000000000 +0800 ++++ xorg-server-1.0.2/hw/xfree86/common/xf86Config.c 2006-04-15 17:02:43.000000000 +0800 +@@ -616,9 +616,11 @@ + if (fileconf->file_fontpath) { + char *f = xf86ValidateFontPath(fileconf->file_fontpath); + pathFrom = X_CONFIG; +- if (*f) +- defaultFontPath = f; +- else { ++ if (*f) { ++ char *fp = xnfalloc(strlen(defaultFontPath) + strlen(f) + 2); ++ sprintf(fp, "%s,%s", f, defaultFontPath); ++ defaultFontPath = fp; ++ } else { + xf86Msg(X_WARNING, + "FontPath is completely invalid. Using compiled-in default.\n"); + fontPath = NULL; --- xorg-server-1.1.1.orig/debian/patches/007_fedora_dont_backfill_bg_none.patch +++ xorg-server-1.1.1/debian/patches/007_fedora_dont_backfill_bg_none.patch @@ -0,0 +1,21 @@ +Disable backfilling of windows created with bg=none, which otherwise +would force a framebuffer readback. + +--- ./composite/compalloc.c.spiffiffity 2006-03-13 16:59:55.000000000 -0500 ++++ ./composite/compalloc.c 2006-04-12 16:37:50.000000000 -0400 +@@ -478,6 +478,7 @@ + * Copy bits from the parent into the new pixmap so that it will + * have "reasonable" contents in case for background None areas. + */ ++#if 0 + if (pGC) + { + XID val = IncludeInferiors; +@@ -492,6 +493,7 @@ + w, h, 0, 0); + FreeScratchGC (pGC); + } ++#endif + return pPixmap; + } + --- xorg-server-1.1.1.orig/debian/patches/10_dont_look_in_home_for_config.diff +++ xorg-server-1.1.1/debian/patches/10_dont_look_in_home_for_config.diff @@ -0,0 +1,10 @@ +--- hw/xfree86/common/xf86Config.c.orig 2006-03-11 20:19:59.000000000 +0200 ++++ hw/xfree86/common/xf86Config.c 2006-03-11 20:20:04.000000000 +0200 +@@ -98,7 +98,6 @@ + "/etc/X11/%R," "%P/etc/X11/%R," \ + "%E," "%F," \ + "/etc/X11/%F," "%P/etc/X11/%F," \ +- "%D/%X," \ + "/etc/X11/%X-%M," "/etc/X11/%X," "/etc/%X," \ + "%P/etc/X11/%X.%H," "%P/etc/X11/%X-%M," \ + "%P/etc/X11/%X," \ --- xorg-server-1.1.1.orig/debian/patches/08_s390_servermd.diff +++ xorg-server-1.1.1/debian/patches/08_s390_servermd.diff @@ -0,0 +1,29 @@ +$Id: 500_s390_support.diff 689 2005-10-19 22:11:30Z dnusinow $ + +Miscellaneous fixes for S/390. + +This patch by Gerhard Tonn. + +Not submitted to XFree86. + +Index: xc/programs/Xserver/include/servermd.h +=================================================================== +--- xc/programs/Xserver/include/servermd.h.orig 2005-10-18 19:45:06.000000000 -0400 ++++ xc/programs/Xserver/include/servermd.h 2005-10-18 22:41:18.000000000 -0400 +@@ -518,7 +518,15 @@ + #define GLYPHPADBYTES 4 + #define GETLEFTBITS_ALIGNMENT 1 + #endif +- ++ ++/* linux on IBM S/390 */ ++#if defined (linux) && defined (__s390__) ++#define IMAGE_BYTE_ORDER MSBFirst ++#define BITMAP_BIT_ORDER MSBFirst ++#define GLYPHPADBYTES 4 ++#define GETLEFTBITS_ALIGNMENT 1 ++#endif /* linux/s390 */ ++ + /* size of buffer to use with GetImage, measured in bytes. There's obviously + * a trade-off between the amount of stack (or whatever ALLOCATE_LOCAL gives + * you) used and the number of times the ddx routine has to be called. --- xorg-server-1.1.1.orig/debian/patches/002_ubuntu_sharevts_load_cpu.patch +++ xorg-server-1.1.1/debian/patches/002_ubuntu_sharevts_load_cpu.patch @@ -0,0 +1,27 @@ +diff -urNad xorg-server-1.0.2~/hw/xfree86/os-support/linux/lnx_init.c xorg-server-1.0.2/hw/xfree86/os-support/linux/lnx_init.c +--- xorg-server-1.0.2~/hw/xfree86/os-support/linux/lnx_init.c 2006-04-10 14:47:04.000000000 +0200 ++++ xorg-server-1.0.2/hw/xfree86/os-support/linux/lnx_init.c 2006-04-10 14:48:01.000000000 +0200 +@@ -286,9 +286,7 @@ + FatalError("Unable to set screen info\n"); + close(fbfd); + #endif +- } else { /* ShareVTs */ +- close(xf86Info.consoleFd); +- } ++ } + signal(SIGUSR2, xf86ReloadInputDevs); + } else { /* serverGeneration != 1 */ + if (!ShareVTs && VTSwitch) +@@ -317,7 +315,11 @@ + int vtno = -1; + #endif + +- if (ShareVTs) return; ++ if (ShareVTs) ++ { ++ close(xf86Info.consoleFd); ++ return; ++ } + + #if defined(DO_OS_FONTRESTORE) + if (ioctl(xf86Info.consoleFd, VT_GETSTATE, &vts) < 0) --- xorg-server-1.1.1.orig/debian/patches/04_read_rom_in_chunks.diff +++ xorg-server-1.1.1/debian/patches/04_read_rom_in_chunks.diff @@ -0,0 +1,16 @@ +Index: xorg-server-X11R7.0-1.0.1/hw/xfree86/os-support/bus/linuxPci.c +=================================================================== +--- xorg-server-X11R7.0-1.0.1.orig/hw/xfree86/os-support/bus/linuxPci.c 2006-01-04 23:07:36.000000000 -0500 ++++ xorg-server-X11R7.0-1.0.1/hw/xfree86/os-support/bus/linuxPci.c 2006-02-26 23:33:05.000000000 -0500 +@@ -742,8 +742,10 @@ + write(fd, "1", 2); + lseek(fd, 0, SEEK_SET); + ++ len = min(Len, st.st_size); ++ + /* copy the ROM until we hit Len, EOF or read error */ +- for (i = 0; i < Len && read(fd, Buf, 1) > 0; Buf++, i++) ++ for (; len && (size = read(fd, Buf, len)) > 0 ; Buf+=size, len-=size) + ; + + write(fd, "0", 2); --- xorg-server-1.1.1.orig/debian/patches/014_fedora_no_composite_in_xnest.patch +++ xorg-server-1.1.1/debian/patches/014_fedora_no_composite_in_xnest.patch @@ -0,0 +1,15 @@ +--- xorg-server-1.1.1/hw/xnest/Args.c.no-xnest-composite 2006-07-05 14:31:42.000000000 -0400 ++++ xorg-server-1.1.1/hw/xnest/Args.c 2006-07-25 14:02:33.000000000 -0400 +@@ -51,9 +51,12 @@ + Bool xnestDoDirectColormaps = False; + Window xnestParentWindow = 0; + ++/* XXX terrible hack */ ++extern Bool noCompositeExtension; + /* ddxInitGlobals - called by |InitGlobals| from os/util.c */ + void ddxInitGlobals(void) + { ++ noCompositeExtension = TRUE; + } + + int --- xorg-server-1.1.1.orig/debian/patches/03_xnest_manpage_overhaul.diff +++ xorg-server-1.1.1/debian/patches/03_xnest_manpage_overhaul.diff @@ -0,0 +1,653 @@ +Index: xorg-server-X11R7.0-1.0.1/hw/xnest/Xnest.man.pre +=================================================================== +--- xorg-server-X11R7.0-1.0.1.orig/hw/xnest/Xnest.man.pre 2006-01-04 23:07:24.000000000 -0500 ++++ xorg-server-X11R7.0-1.0.1/hw/xnest/Xnest.man.pre 2006-02-26 21:29:59.000000000 -0500 +@@ -1,6 +1,6 @@ + .\" $Xorg: Xnest.man,v 1.3 2000/08/17 19:53:28 cpqbld Exp $ + .\" Copyright (c) 1993, 1994 X Consortium +-.\" ++.\" + .\" Permission is hereby granted, free of charge, to any person obtaining + .\" a copy of this software and associated documentation files (the + .\" "Software"), to deal in the Software without restriction, including +@@ -8,10 +8,10 @@ + .\" distribute, sublicense, and/or sell copies of the Software, and to + .\" permit persons to whom the Software is furnished to do so, subject to + .\" the following conditions: +-.\" ++.\" + .\" The above copyright notice and this permission notice shall be included + .\" in all copies or substantial portions of the Software. +-.\" ++.\" + .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +@@ -19,7 +19,7 @@ + .\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + .\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + .\" OTHER DEALINGS IN THE SOFTWARE. +-.\" ++.\" + .\" Except as contained in this notice, the name of the X Consortium shall + .\" not be used in advertising or otherwise to promote the sale, use or + .\" other dealings in this Software without prior written authorization +@@ -27,238 +27,402 @@ + .\" + .\" $XFree86: xc/programs/Xserver/hw/xnest/Xnest.man,v 1.6 2001/01/27 18:21:00 dawes Exp $ + .\" +-.TH XNEST 1 __xorgversion__ ++.TH Xnest __mansuffix__ __xorgversion__ + .SH NAME + Xnest \- a nested X server + .SH SYNOPSIS + .B Xnest +-[-options] ++[ ++.I options ++] + .SH DESCRIPTION +-\fIXnest\fP is a client and a server. \fIXnest\fP is a client of the +-real server which manages windows and graphics requests on its behalf. +-\fIXnest\fP is a server to its own clients. \fIXnest\fP manages +-windows and graphics requests on their behalf. To these clients +-\fIXnest\fP appears to be a conventional server. ++.B Xnest ++is both an X client and an X server. ++.B Xnest ++is a client of the real server which manages windows and graphics requests on ++its behalf. ++.B Xnest ++is a server to its own clients. ++.B Xnest ++manages windows and graphics requests on their behalf. ++To these clients, ++.B Xnest ++appears to be a conventional server. + .SH OPTIONS +-\fIXnest\fP supports all standard options of the sample server +-implementation. For more details, please see the manual page on your +-system for \fIXserver\fP. The following additional arguments are +-supported as well. +-.TP 4 +-.B \-display \fIstring\fP ++.B Xnest ++supports all standard options of the sample server implementation. ++For more details, please see ++.BR Xserver (__mansuffix__). ++The following additional arguments are supported as well. ++.TP ++.BI "\-display " string + This option specifies the display name of the real server that +-\fIXnest\fP should try to connect with. If it is not provided on the +-command line \fIXnest\fP will read the \fIDISPLAY\fP environment +-variable in order to find out the same information. +-.TP 4 ++.B Xnest ++should try to connect to. ++If it is not provided on the command line, ++.B Xnest ++will read the ++.I DISPLAY ++environment variable in order to find out this information. ++.TP + .B \-sync +-This option tells \fIXnest\fP to synchronize its window and graphics +-operations with the real server. This is a useful option for +-debugging, but it will slow down the performance considerably. It +-should not be used unless absolutely necessary. +-.TP 4 ++This option tells ++.B Xnest ++to synchronize its window and graphics operations with the real server. ++This is a useful option for debugging, but it will slow down ++.BR Xnest 's ++performance considerably. ++It should not be used unless absolutely necessary. ++.TP + .B \-full +-This option tells \fIXnest\fP to utilize full regeneration of real +-server objects and reopen a new connection to the real server each +-time the nested server regenerates. The sample server implementation +-regenerates all objects in the server when the last client of this +-server terminates. When this happens, \fIXnest\fP by default +-maintains the same top level window and the same real server +-connection in each new generation. If the user selects full +-regeneration, even the top level window and the connection to the real +-server will be regenerated for each server generation. +-.TP 4 +-.B \-class \fIstring\fP ++This option tells ++.B Xnest ++to utilize full regeneration of real server objects and reopen a new connection ++to the real server each time the nested server regenerates. ++The sample server implementation regenerates all objects in the server when the ++last client of this server terminates. ++When this happens, ++.B Xnest ++by default maintains the same top-level window and the same real server ++connection in each new generation. ++If the user selects full regeneration, even the top-level window and the ++connection to the real server will be regenerated for each server generation. ++.TP ++.BI "\-class " string + This option specifies the default visual class of the nested server. +-It is similar to the \fI-cc\fP option from the set of standard options +-except that it will accept a string rather than a number for the +-visual class specification. The string must be one of the following +-six values: \fIStaticGray\fP, \fIGrayScale\fP, \fIStaticColor\fP, +-\fIPseudoColor\fP, \fITrueColor\fP, or \fIDirectColor\fP. If both, +-\fI-class\fP and \fI-cc\fP options are specified, the last instance of +-either option assumes precedence. The class of the default visual of +-the nested server need not be the same as the class of the default +-visual of the real server; although, it has to be supported by the +-real server. See \fIxdpyinfo\fP for a list of supported visual +-classes on the real server before starting \fIXnest\fP. If the user +-chooses a static class, all the colors in the default colormap will be +-preallocated. If the user chooses a dynamic class, colors in the +-default colormap will be available to individual clients for +-allocation. +-.TP 4 +-.B \-depth \fIint\fP ++It is similar to the ++.B \-cc ++option from the set of standard options except that it will accept a string ++rather than a number for the visual class specification. ++The ++.I string ++must be one of the following six values: ++.BR StaticGray , ++.BR GrayScale , ++.BR StaticColor , ++.BR PseudoColor , ++.BR TrueColor , ++or ++.BR DirectColor . ++If both the ++.B \-class ++and ++.B \-cc ++options are specified, the last instance of either option takes precedence. ++The class of the default visual of the nested server need not be the same as the ++class of the default visual of the real server, but it must be supported by the ++real server. ++Use ++.BR xdpyinfo (__mansuffix__) ++to obtain a list of supported visual classes on the real server before starting ++.BR Xnest . ++If the user chooses a static class, all the colors in the default color map will ++be preallocated. ++If the user chooses a dynamic class, colors in the default color map will be ++available to individual clients for allocation. ++.TP ++.BI "\-depth " int + This option specifies the default visual depth of the nested server. +-The depth of the default visual of the nested server need not be the +-same as the depth of the default visual of the real server; although, +-it has to be supported by the real server. See \fIxdpyinfo\fP for a +-list of supported visual depths on the real server before starting +-\fIXnest\fP. +-.TP 4 ++The depth of the default visual of the nested server need not be the same as the ++depth of the default visual of the real server, but it must be supported by the ++real server. ++Use ++.BR xdpyinfo (__mansuffix__) ++to obtain a list of supported visual depths on the real server before starting ++.BR Xnest . ++.TP + .B \-sss +-This option tells \fIXnest\fP to use the software screen saver. By +-default \fIXnest\fP will use the screen saver that corresponds to the +-hardware screen saver in the real server. Of course, even this screen +-saver is software generated since \fIXnest\fP does not control any +-actual hardware. However, it is treated as a hardware screen saver +-within the sample server code. +-.TP 4 +-.B \-geometry \fIWxH+X+Y\fP +-This option specifies geometry parameters for the top level +-\fIXnest\fP windows. These windows corresponds to the root windows of +-the nested server. The width and height specified with this option +-will be the maximum width and height of each top level \fIXnest\fP +-window. \fIXnest\fP will allow the user to make any top level window +-smaller, but it will not actually change the size of the nested server +-root window. As of yet, there is no mechanism within the sample +-server implementation to change the size of the root window after +-screen initialization. In order to do so, one would probably need to +-extend the X protocol. Therefore, it is not likely that this will be +-available any time soon. If this option is not specified \fIXnest\fP +-will choose width and height to be 3/4 of the dimensions of the root +-window of the real server. +-.TP 4 +-.B \-bw \fIint\fP +-This option specifies the border width of the top level \fIXnest\fP +-window. The integer parameter must be a positive number. The default +-border width is 1. +-.TP 4 +-.B \-name \fIstring\fP +-This option specifies the name of the top level \fIXnest\fP window. ++This option tells ++.B Xnest ++to use the software screen saver. ++By default, ++.B Xnest ++will use the screen saver that corresponds to the hardware screen saver in the ++real server. ++Of course, even this screen saver is software-generated since ++.B Xnest ++does not control any actual hardware. ++However, it is treated as a hardware screen saver within the sample server code. ++.TP ++.B \-geometry \fIW\fBx\fIH\fB+\fIX\fB+\fIY\fP ++This option specifies the geometry parameters for the top-level ++.B Xnest ++window. ++See \(lqGEOMETRY SPECIFICATIONS\(rq in ++.BR X (__miscmansuffix__) ++for a discusson of this option's syntax. ++This window corresponds to the root window of the nested server. ++The width ++.I W ++and height ++.I H ++specified with this option will be the maximum width and height of each ++top-level ++.B Xnest ++window. ++.B Xnest ++will allow the user to make any top-level window smaller, but it will not ++actually change the size of the nested server root window. ++.B Xnest ++does not yet support the RANDR extension for resizing, rotation, and reflection ++of the root window. ++If this option is not specified, ++.B Xnest ++will choose ++.I W ++and ++.I H ++to be 3/4ths the dimensions of the root window of the real server. ++.TP ++.BI "\-bw " int ++This option specifies the border width of the top-level ++.B Xnest ++window. ++The integer parameter ++.I int ++must be positive. ++The default border width is 1. ++.TP ++.BI "\-name " string ++This option specifies the name of the top-level ++.B Xnest ++window as ++.IR string . + The default value is the program name. +-.TP 4 +-.B \-scrns \fIint\fP +-This option specifies the number of screens to create in the nested +-server. For each screen, \fIXnest\fP will create a separate top level +-window. Each screen is referenced by the number after the dot in the +-client display name specification. For example, \fIxterm -display +-:1.1\fP will open an \fIxterm\fP client in the nested server with the +-display number \fI:1\fP on the second screen. The number of screens +-is limited by the hard coded constant in the server sample code which +-is usually 3. +-.TP 4 ++.TP ++.BI "\-scrns " int ++This option specifies the number of screens to create in the nested server. ++For each screen, ++.B Xnest ++will create a separate top-level window. ++Each screen is referenced by the number after the dot in the client display name ++specification. ++For example, ++.B xterm \-display :1.1 ++will open an ++.BR xterm (__mansuffix__) ++client in the nested server with the display number ++.B :1 ++on the second screen. ++The number of screens is limited by the hard-coded constant in the server sample ++code, which is usually 3. ++.TP + .B \-install +-This option tells \fIXnest\fP to do its own colormap installation by +-bypassing the real window manager. For it to work properly the user +-will probably have to temporarily quit the real window manager. By +-default \fIXnest\fP will keep the nested client window whose colormap +-should be installed in the real server in the +-\fIWM\_COLORMAP\_WINDOWS\fP property of the top level \fIXnest\fP +-window. If this colormap is of the same visual type as the root +-window of the nested server, \fIXnest\fP will associate this colormap +-with the top level \fIXnest\fP window as well. Since this does not +-have to be the case, window managers should look primarily at the +-\fIWM\_COLORMAP\_WINDOWS\fP property rather than the colormap +-associated with the top level \fIXnest\fP window. Unfortunately, +-window managers are not very good at doing that yet so this option +-might come in handy. +-.TP 4 +-.B \-parent \fIwindow_id\fP +-This option tells \fIXnest\fP to use the \fIwindow_id\fP as the +-root window instead of creating a window. This option is used +-by the xrx xnestplugin. +-.SH USAGE +-Starting up \fIXnest\fP is as simple as starting up \fIxclock\fP from +-a terminal emulator. If a user wishes to run \fIXnest\fP on the same +-workstation as the real server, it is important that the nested server +-is given its own listening socket address. Therefore, if there is a +-server already running on the user's workstation, \fIXnest\fP will +-have to be started up with a new display number. Since there is +-usually no more than one server running on a workstation, specifying +-\fIXnest :1\fP on the command line will be sufficient for most users. +-For each server running on the workstation the display number needs to +-be incremented by one. Thus, if you wish to start another +-\fIXnest\fP, you will need to type \fIXnest :2\fP on the command line. +-.PP +-To run clients in the nested server each client needs to be given the +-same display number as the nested server. For example, \fIxterm +--display :1\fP will start up an \fIxterm\fP in the first nested server +-and \fIxterm -display :2\fP will start an \fIxterm\fP in the second +-nested server from the example above. Additional clients can be +-started from these \fIxterm\fPs in each nested server. +-.SH XNEST AS A CLIENT +-\fIXnest\fP behaves and looks to the real server and other real +-clients as another real client. It is a rather demanding client, +-however, since almost any window or graphics request from a nested +-client will result in a window or graphics request from \fIXnest\fP to +-the real server. Therefore, it is desirable that \fIXnest\fP and the +-real server are on a local network, or even better, on the same +-machine. As of now, \fIXnest\fP assumes that the real server supports +-the shape extension. There is no way to turn off this assumption +-dynamically. \fIXnest\fP can be compiled without the shape extension +-built in, and in that case the real server need not support it. The +-dynamic shape extension selection support should be considered in +-further development of \fIXnest\fP. +-.PP +-Since \fIXnest\fP need not use the same default visual as the the real +-server, the top level window of the \fIXnest\fP client always has its +-own colormap. This implies that other windows' colors will not be +-displayed properly while the keyboard or pointer focus is in the +-\fIXnest\fP window, unless the real server has support for more than +-one installed colormap at any time. The colormap associated with the +-top window of the \fIXnest\fP client need not be the appropriate +-colormap that the nested server wants installed in the real server. +-In the case that a nested client attempts to install a colormap of a +-different visual from the default visual of the nested server, +-\fIXnest\fP will put the top window of this nested client and all +-other top windows of the nested clients that use the same colormap +-into the \fIWM\_COLORMAP\_WINDOWS\fP property of the top level +-\fIXnest\fP window on the real server. Thus, it is important that the +-real window manager that manages the \fIXnest\fP top level window +-looks at the \fIWM\_COLORMAP\_WINDOWS\fP property rather than the +-colormap associated with the top level \fIXnest\fP window. Since most +-window managers appear to not implement this convention properly as of +-yet, \fIXnest\fP can optionally do direct installation of colormaps +-into the real server bypassing the real window manager. If the user +-chooses this option, it is usually necessary to temporarily disable +-the real window manager since it will interfere with the \fIXnest\fP +-scheme of colormap installation. +-.PP +-Keyboard and pointer control procedures of the nested server change +-the keyboard and pointer control parameters of the real server. +-Therefore, after \fIXnest\fP is started up, it will change the +-keyboard and pointer controls of the real server to its own internal +-defaults. Perhaps there should be a command line option to tell +-\fIXnest\fP to inherit the keyboard and pointer control parameters +-from the real server rather than imposing its own. This is a future +-consideration. +-.SH XNEST AS A SERVER +-\fIXnest\fP as a server looks exactly like a real server to its own +-clients. For the clients there is no way of telling if they are +-running on a real or a nested server. +-.PP +-As already mentioned, \fIXnest\fP is a very user friendly server when +-it comes to customization. \fIXnest\fP will pick up a number of +-command line arguments that can configure its default visual class and +-depth, number of screens, etc. In the future, \fIXnest\fP should read +-a customization input file to provide even greater freedom and +-simplicity in selecting the desired layout. Unfortunately, there is +-no support for backing store and save under as of yet, but this should +-also be considered in the future development of \fIXnest\fP. ++This option tells ++.B Xnest ++to do its own color map installation by bypassing the real window manager. ++For it to work properly, the user will probably have to temporarily quit the ++real window manager. ++By default, ++.B Xnest ++will keep the nested client window whose color map should be installed in the ++real server in the ++.I WM_COLORMAP_WINDOWS ++property of the top-level ++.B Xnest ++window. ++If this color map is of the same visual type as the root window of the nested ++server, ++.B Xnest ++will associate this color map with the top-level ++.B Xnest ++window as well. ++Since this does not have to be the case, window managers should look primarily ++at the ++.I WM_COLORMAP_WINDOWS ++property rather than the color map associated with the top-level ++.B Xnest ++window. ++.\" Is the following still true? This sentence is several years old. ++Unfortunately, window managers are not very good at doing that yet so this ++option might come in handy. ++.TP ++.BI "\-parent " window_id ++This option tells ++.B Xnest ++to use ++.I window_id ++as the root window instead of creating a window. ++.\" XRX is dead, dead, dead. ++.\" This option is used by the xrx xnestplugin. ++.SH "EXTENDED DESCRIPTION" ++Starting up ++.B Xnest ++is just as simple as starting up ++.BR xclock (__mansuffix__) ++from a terminal emulator. ++If a user wishes to run ++.B Xnest ++on the same ++workstation as the real server, it is important that the nested server is given ++its own listening socket address. ++Therefore, if there is a server already running on the user's workstation, ++.B Xnest ++will have to be started up with a new display number. ++Since there is usually no more than one server running on a workstation, ++specifying ++.RB \(oq "Xnest :1" \(cq ++on the command line will be sufficient for most users. ++For each server running on the workstation, the display number needs to be ++incremented by one. ++Thus, if you wish to start another ++.BR Xnest , ++you will need to type ++.RB \(oq "Xnest :2" \(cq ++on the command line. ++.PP ++To run clients in the nested server, each client needs to be given the same ++display number as the nested server. ++For example, ++.RB \(oq "xterm \-display :1" \(cq ++will start up an ++.B xterm ++process in the first nested server ++and ++.RB \(oq "xterm \-display :2" \(cq ++will start an ++.B xterm ++in the second nested server from the example above. ++Additional clients can be started from these ++.BR xterm s ++in each nested server. ++.SS "Xnest as a client" ++.B Xnest ++behaves and looks to the real server and other real clients as another real ++client. ++It is a rather demanding client, however, since almost any window or graphics ++request from a nested client will result in a window or graphics request from ++.B Xnest ++to the real server. ++Therefore, it is desirable that ++.B Xnest ++and the real server are on a local network, or even better, on the same machine. ++.B Xnest ++assumes that the real server supports the SHAPE extension. ++There is no way to turn off this assumption dynamically. ++.B Xnest ++can be compiled without the SHAPE extension built in, in which case the real ++server need not support it. ++Dynamic SHAPE extension selection support may be considered in further ++development of ++.BR Xnest . ++.PP ++Since ++.B Xnest ++need not use the same default visual as the the real server, the top-level ++window of the ++.B Xnest ++client always has its own color map. ++This implies that other windows' colors will not be displayed properly while the ++keyboard or pointer focus is in the ++.B Xnest ++window, unless the real server has support for more than one installed color map ++at any time. ++The color map associated with the top window of the ++.B Xnest ++client need not be the appropriate color map that the nested server wants ++installed in the real server. ++In the case that a nested client attempts to install a color map of a different ++visual from the default visual of the nested server, ++.B Xnest ++will put the top window of this nested client and all other top windows of the ++nested clients that use the same color map into the ++.I WM_COLORMAP_WINDOWS ++property of the top-level ++.B Xnest ++window on the real server. ++Thus, it is important that the real window manager that manages the ++.B Xnest ++top-level window looks at the ++.I WM_COLORMAP_WINDOWS ++property rather than the color map associated with the top-level ++.B Xnest ++window. ++Since most window managers don't yet appear to implement this convention ++properly, ++.B Xnest ++can optionally do direct installation of color maps into the real server ++bypassing the real window manager. ++If the user chooses this option, it is usually necessary to temporarily disable ++the real window manager since it will interfere with the ++.B Xnest ++scheme of color map installation. ++.PP ++Keyboard and pointer control procedures of the nested server change the keyboard ++and pointer control parameters of the real server. ++Therefore, after ++.B Xnest ++is started up, it will change the keyboard and pointer controls of the real ++server to its own internal defaults. ++.SS "Xnest as a server" ++.B Xnest ++as a server looks exactly like a real server to its own clients. ++For the clients, there is no way of telling if they are running on a real or a ++nested server. ++.PP ++As already mentioned, ++.B Xnest ++is a very user-friendly server when it comes to customization. ++.B Xnest ++will pick up a number of command-line arguments that can configure its default ++visual class and depth, number of screens, etc. + .PP + The only apparent intricacy from the users' perspective about using +-\fIXnest\fP as a server is the selection of fonts. \fIXnest\fP +-manages fonts by loading them locally and then passing the font name +-to the real server and asking it to load that font remotely. This +-approach avoids the overload of sending the glyph bits across the +-network for every text operation, although it is really a bug. The +-proper implementation of fonts should be moved into the \fIos\fP +-layer. The consequence of this approach is that the user will have to +-worry about two different font paths - a local one for the nested +-server and a remote one for the real server - since \fIXnest\fP does +-not propagate its font path to the real server. The reason for this +-is because real and nested servers need not run on the same file +-system which makes the two font paths mutually incompatible. Thus, if +-there is a font in the local font path of the nested server, there is +-no guarantee that this font exists in the remote font path of the real +-server. \fIXlsfonts\fP client, if run on the nested server will list +-fonts in the local font path and if run on the real server will list +-fonts in the remote font path. Before a font can be successfully +-opened by the nested server it has to exist in local and remote font +-paths. It is the users' responsibility to make sure that this is the +-case. ++.B Xnest ++as a server is the selection of fonts. ++.B Xnest ++manages fonts by loading them locally and then passing the font name to the real ++server and asking it to load that font remotely. ++This approach avoids the overload of sending the glyph bits across the network ++for every text operation, although it is really a bug. ++The consequence of this approach is that the user will have to worry about two ++different font paths \(em a local one for the nested server and a remote one for ++the real server \(em since ++.B Xnest ++does not propagate its font path to the real server. ++The reason for this is because real and nested servers need not run on the same ++file system which makes the two font paths mutually incompatible. ++Thus, if there is a font in the local font path of the nested server, there is ++no guarantee that this font exists in the remote font path of the real server. ++The ++.BR xlsfonts (__mansuffix__) ++client, if run on the nested server, will list fonts in the local font path and, ++if run on the real server, will list fonts in the remote font path. ++Before a font can be successfully opened by the nested server, it has to exist ++in local and remote font paths. ++It is the users' responsibility to make sure that this is the case. ++.SH "FUTURE DIRECTIONS" ++Make dynamic the requirement for the SHAPE extension in the real server, rather ++than having to recompile ++.B Xnest ++to turn this requirement on and off. ++.PP ++Perhaps there should be a command-line option to tell ++.B Xnest ++to inherit the keyboard and pointer control parameters from the real server ++rather than imposing its own. ++.PP ++.B Xnest ++should read a customization input file to provide even greater freedom and ++simplicity in selecting the desired layout. ++.PP ++There is no support for backing store and save unders, but this should also be ++considered. ++.PP ++.\" Is the following still true now that client-side font rendering is ++.\" considered the way to go? ++The proper implementation of fonts should be moved into the ++.I os ++layer. + .SH BUGS +-Won't run well on servers supporting different visual depths. +-Still crashes randomly. Probably has some memory leaks. ++Doesn't run well on servers supporting different visual depths. ++.PP ++Still crashes randomly. ++.PP ++Probably has some memory leaks. + .SH AUTHOR + Davor Matic, MIT X Consortium +- ++.SH "SEE ALSO" ++.BR Xserver (__mansuffix__), ++.BR xdpyinfo (__mansuffix__), ++.BR X (__miscmansuffix__) --- xorg-server-1.1.1.orig/debian/patches/09_debian_xserver_rtff.diff +++ xorg-server-1.1.1/debian/patches/09_debian_xserver_rtff.diff @@ -0,0 +1,52 @@ +$Id: 910_debian_Xserver_RTFF.diff 486 2005-08-03 04:51:11Z dnusinow $ + +Give the user a far stronger clue as to what to do when their font configuration +is horribly screwed up; this patch by Branden Robinson. + +Index: dix/main.c +=================================================================== +--- dix/main.c.orig 2006-03-05 19:50:04.000000000 -0500 ++++ dix/main.c 2006-03-05 19:51:59.000000000 -0500 +@@ -409,10 +409,42 @@ + defaultFontPath); + } + if (!SetDefaultFont(defaultTextFont)) ++#ifdef DEBIAN ++ FatalError("could not open default font '%s';\n" ++"the X server's font paths might be misconfigured, remote font server(s)\n" ++"may be unreachable, and/or local fonts may not be installed or are not\n" ++"configured correctly.\n" ++"\n" ++"People inexperienced with the X Window System should have the\n" ++"\"xorg\" package installed.\n" ++"# apt-get install xorg\n" ++"\n" ++"Other useful commands to run include:\n" ++"$ dpkg --status x11-common\n" ++"$ dpkg --status xfonts-base\n" ++"$ zmore /usr/share/doc/x11-common/FAQ.gz", defaultTextFont); ++#else + FatalError("could not open default font '%s'", defaultTextFont); ++#endif + if (!(rootCursor = CreateRootCursor(defaultCursorFont, 0))) ++#ifdef DEBIAN ++ FatalError("could not open default cursor font '%s';\n" ++"the X server's font paths might be misconfigured, remote font server(s)\n" ++"may be unreachable, and/or local fonts may not be installed or are not\n" ++"configured correctly.\n" ++"\n" ++"People inexperienced with the X Window System should have the\n" ++"\"xorg\" package installed.\n" ++"# apt-get install xorg\n" ++"\n" ++"Other useful commands to run include:\n" ++"$ dpkg --status x11-common\n" ++"$ dpkg --status xfonts-base\n" ++"$ zmore /usr/share/doc/x11-common/FAQ.gz", defaultTextFont); ++#else + FatalError("could not open default cursor font '%s'", + defaultCursorFont); ++#endif + #ifdef DPMSExtension + /* check all screens, looking for DPMS Capabilities */ + DPMSCapableFlag = DPMSSupported(); --- xorg-server-1.1.1.orig/debian/patches/011_fedora_pci_scan_fixes.patch +++ xorg-server-1.1.1/debian/patches/011_fedora_pci_scan_fixes.patch @@ -0,0 +1,486 @@ +--- xorg-server-1.1.0/hw/xfree86/os-support/bus/Pci.h.pci-scan 2006-06-19 14:43:59.000000000 -0400 ++++ xorg-server-1.1.0/hw/xfree86/os-support/bus/Pci.h 2006-06-19 14:44:37.000000000 -0400 +@@ -439,6 +439,8 @@ + extern int pciFuncNum; + extern PCITAG pciDeviceTag; + ++extern int xf86MaxPciDevs; ++ + extern pciBusInfo_t *pciBusInfo[]; + + #endif /* _PCI_H */ +--- xorg-server-1.1.0/hw/xfree86/os-support/bus/linuxPci.c.pci-scan 2006-05-16 16:45:20.000000000 -0400 ++++ xorg-server-1.1.0/hw/xfree86/os-support/bus/linuxPci.c 2006-06-19 14:43:36.000000000 -0400 +@@ -108,6 +108,9 @@ + /* bridge */ NULL + }; + ++/* from lnx_pci.c. */ ++extern int lnxPciInit(void); ++ + void + linuxPciInit() + { +@@ -123,6 +126,7 @@ + pciFindFirstFP = pciGenFindFirst; + pciFindNextFP = pciGenFindNext; + pciSetOSBIOSPtr(linuxPciHandleBIOS); ++ xf86MaxPciDevs = lnxPciInit(); + } + + static int +@@ -130,32 +134,45 @@ + { + static int lbus,ldev,lfunc,fd = -1,is_write = 0; + int bus, dev, func; +- char file[32]; ++ char file[64]; + struct stat ignored; ++ static int is26 = -1; + + bus = PCI_BUS_FROM_TAG(tag); + dev = PCI_DEV_FROM_TAG(tag); + func = PCI_FUNC_FROM_TAG(tag); ++ if (is26 == -1) { ++ if (stat("/sys/bus/pci",&ignored) < 0) ++ is26 = 0; ++ else ++ is26 = 1; ++ } ++ + if (fd == -1 || (write && (!is_write)) + || bus != lbus || dev != ldev || func != lfunc) { + if (fd != -1) + close(fd); +- if (bus < 256) { +- sprintf(file,"/proc/bus/pci/%02x",bus); +- if (stat(file, &ignored) < 0) +- sprintf(file, "/proc/bus/pci/0000:%02x/%02x.%1x", +- bus, dev, func); +- else +- sprintf(file, "/proc/bus/pci/%02x/%02x.%1x", +- bus, dev, func); +- } else { +- sprintf(file,"/proc/bus/pci/%04x",bus); +- if (stat(file, &ignored) < 0) +- sprintf(file, "/proc/bus/pci/0000:%04x/%02x.%1x", +- bus, dev, func); +- else +- sprintf(file, "/proc/bus/pci/%04x/%02x.%1x", +- bus, dev, func); ++ if (is26) ++ sprintf(file,"/sys/bus/pci/devices/0000:%02x:%02x.%01x/config", ++ bus, dev, func); ++ else { ++ if (bus < 256) { ++ sprintf(file,"/proc/bus/pci/%02x",bus); ++ if (stat(file, &ignored) < 0) ++ sprintf(file, "/proc/bus/pci/0000:%02x/%02x.%1x", ++ bus, dev, func); ++ else ++ sprintf(file, "/proc/bus/pci/%02x/%02x.%1x", ++ bus, dev, func); ++ } else { ++ sprintf(file,"/proc/bus/pci/%04x",bus); ++ if (stat(file, &ignored) < 0) ++ sprintf(file, "/proc/bus/pci/0000:%04x/%02x.%1x", ++ bus, dev, func); ++ else ++ sprintf(file, "/proc/bus/pci/%04x/%02x.%1x", ++ bus, dev, func); ++ } + } + if (write) { + fd = open(file,O_RDWR); +--- xorg-server-1.1.0/hw/xfree86/os-support/bus/Pci.c.pci-scan 2006-05-18 19:51:34.000000000 -0400 ++++ xorg-server-1.1.0/hw/xfree86/os-support/bus/Pci.c 2006-06-19 14:43:36.000000000 -0400 +@@ -238,6 +238,8 @@ + + static int (*pciOSHandleBIOS)(PCITAG Tag, int basereg, unsigned char *buf, int len); + ++int xf86MaxPciDevs = MAX_PCI_DEVICES; ++ + /* + * Platform specific PCI function pointers. + * +@@ -938,7 +940,7 @@ + xf86MsgVerb(X_INFO, 2, "PCI: PCI scan (all values are in hex)\n"); + #endif + +- while (idx < MAX_PCI_DEVICES && tag != PCI_NOT_FOUND) { ++ while (idx < xf86MaxPciDevs && tag != PCI_NOT_FOUND) { + devp = xcalloc(1, sizeof(pciDevice)); + if (!devp) { + xf86Msg(X_ERROR, +@@ -1001,6 +1003,8 @@ + #endif + + pci_devp[idx++] = devp; ++ if (idx == xf86MaxPciDevs) ++ break; + tag = pciFindNext(); + + #ifdef DEBUGPCI +--- xorg-server-1.1.0/hw/xfree86/os-support/linux/lnx_pci.c.pci-scan 2006-05-18 19:51:34.000000000 -0400 ++++ xorg-server-1.1.0/hw/xfree86/os-support/linux/lnx_pci.c 2006-06-19 14:43:36.000000000 -0400 +@@ -23,70 +23,113 @@ + #define PCIADDR_FMT "%lx" + #endif + +-FILE *xf86OSLinuxPCIFile = NULL; ++int lnxPciInit(void); ++ ++struct pci_dev { ++ unsigned int bus; ++ unsigned int devfn; ++ PCIADDR_TYPE offset[7]; ++ PCIADDR_TYPE size[7]; ++ struct pci_dev *next; ++}; ++ ++struct pci_dev *xf86OSLinuxPCIDevs = NULL; ++int xf86OSLinuxNumPciDevs = 0; ++ ++static struct pci_dev *xf86OSLinuxGetPciDevs(void) { ++ char c[0x200]; ++ FILE *file = NULL; ++ struct pci_dev *tmp, *ret = NULL; ++ unsigned int num; ++ char *res; ++ ++ file = fopen("/proc/bus/pci/devices", "r"); ++ if (!file) return NULL; ++ ++ xf86OSLinuxNumPciDevs = 0; ++ ++ do { ++ res = fgets(c, 0x1ff, file); ++ if (res) { ++ tmp = xcalloc(sizeof(struct pci_dev),1); ++ num = sscanf(res, ++ /*bus+dev vendorid deviceid irq */ ++ "%02x%02x\t%*04x%*04x\t%*x" ++ /* 7 PCI resource base addresses */ ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT ++ /* 7 PCI resource sizes, and then optionally a driver name */ ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT ++ "\t" PCIADDR_FMT, ++ &tmp->bus,&tmp->devfn,&tmp->offset[0],&tmp->offset[1],&tmp->offset[2],&tmp->offset[3], ++ &tmp->offset[4],&tmp->offset[5],&tmp->offset[6], &tmp->size[0], &tmp->size[1], &tmp->size[2], ++ &tmp->size[3], &tmp->size[4], &tmp->size[5], &tmp->size[6]); ++ if (num != 16) { /* apparantly not 2.3 style */ ++ xfree(tmp); ++ fclose(file); ++ return NULL; ++ } ++ if (ret) { ++ tmp->next = ret; ++ } ++ ret = tmp; ++ xf86OSLinuxNumPciDevs++; ++ } ++ } while (res); ++ fclose(file); ++ return ret; ++} ++ ++/* not to be confused with linuxPciInit (i.e. ARCH_PCI_INIT), found in ++ * os-support/bus/linuxPci.c. */ ++int lnxPciInit(void) { ++ if (!xf86OSLinuxPCIDevs) ++ xf86OSLinuxPCIDevs = xf86OSLinuxGetPciDevs(); ++ return xf86OSLinuxNumPciDevs; ++} + + Bool + xf86GetPciSizeFromOS(PCITAG tag, int index, int* bits) + { +- char c[0x200]; +- char *res; +- unsigned int bus, devfn, dev, fn; +- unsigned PCIADDR_TYPE size[7]; +- unsigned int num; ++ unsigned int dev, fn; + signed PCIADDR_TYPE Size; ++ struct pci_dev *device; + + if (index > 7) +- return FALSE; ++ return FALSE; + +- if (!xf86OSLinuxPCIFile && \ +- !(xf86OSLinuxPCIFile = fopen("/proc/bus/pci/devices","r"))) +- return FALSE; +- do { +- res = fgets(c,0x1ff,xf86OSLinuxPCIFile); +- if (res) { +- num = sscanf(res, +- /*bus+dev vendorid deviceid irq */ +- "%02x%02x\t%*04x%*04x\t%*x" +- /* 7 PCI resource base addresses */ +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT +- /* 7 PCI resource sizes, and then optionally a driver name */ +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT, +- &bus,&devfn,&size[0],&size[1],&size[2],&size[3], +- &size[4],&size[5],&size[6]); +- if (num != 9) { /* apparantly not 2.3 style */ +- fseek(xf86OSLinuxPCIFile, 0L, SEEK_SET); +- return FALSE; +- } +- dev = devfn >> 3; +- fn = devfn & 0x7; +- if (tag == pciTag(bus,dev,fn)) { +- *bits = 0; +- if (size[index] != 0) { +- Size = size[index] - ((PCIADDR_TYPE) 1); +- while (Size & ((PCIADDR_TYPE) 0x01)) { +- Size = Size >> ((PCIADDR_TYPE) 1); +- (*bits)++; +- } +- } +- fseek(xf86OSLinuxPCIFile, 0L, SEEK_SET); +- return TRUE; +- } +- } +- } while (res); ++ if (!xf86OSLinuxPCIDevs) { ++ xf86OSLinuxPCIDevs = xf86OSLinuxGetPciDevs(); ++ } ++ if (!xf86OSLinuxPCIDevs) ++ return FALSE; ++ ++ for (device = xf86OSLinuxPCIDevs; device; device = device->next) { ++ dev = device->devfn >> 3; ++ fn = device->devfn & 0x7; ++ if (tag == pciTag(device->bus,dev,fn)) { ++ *bits = 0; ++ if (device->size[index] != 0) { ++ Size = device->size[index] - ((PCIADDR_TYPE) 1); ++ while (Size & ((PCIADDR_TYPE) 0x01)) { ++ Size = Size >> ((PCIADDR_TYPE) 1); ++ (*bits)++; ++ } ++ } ++ return TRUE; ++ } ++ } + +- fseek(xf86OSLinuxPCIFile, 0L, SEEK_SET); + return FALSE; + } + +@@ -96,59 +139,28 @@ + Bool + xf86GetPciOffsetFromOS(PCITAG tag, int index, unsigned long* bases) + { +- FILE *file; +- char c[0x200]; +- char *res; +- unsigned int bus, devfn, dev, fn; +- unsigned PCIADDR_TYPE offset[7]; +- unsigned int num; ++ unsigned int dev, fn; ++ struct pci_dev *device; + + if (index > 7) + return FALSE; + +- if (!(file = fopen("/proc/bus/pci/devices","r"))) ++ if (!xf86OSLinuxPCIDevs) { ++ xf86OSLinuxPCIDevs = xf86OSLinuxGetPciDevs(); ++ } ++ if (!xf86OSLinuxPCIDevs) + return FALSE; +- do { +- res = fgets(c,0x1ff,file); +- if (res) { +- num = sscanf(res, +- /*bus+dev vendorid deviceid irq */ +- "%02x%02x\t%*04x%*04x\t%*x" +- /* 7 PCI resource base addresses */ +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- /* 7 PCI resource sizes, and then optionally a driver name */ +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT +- "\t" PCIADDR_IGNORE_FMT, +- &bus,&devfn,&offset[0],&offset[1],&offset[2],&offset[3], +- &offset[4],&offset[5],&offset[6]); +- if (num != 9) { /* apparantly not 2.3 style */ +- fclose(file); +- return FALSE; +- } + +- dev = devfn >> 3; +- fn = devfn & 0x7; +- if (tag == pciTag(bus,dev,fn)) { +- /* return the offset for the index requested */ +- *bases = offset[index]; +- fclose(file); +- return TRUE; +- } ++ for (device = xf86OSLinuxPCIDevs; device; device = device->next) { ++ dev = device->devfn >> 3; ++ fn = device->devfn & 0x7; ++ if (tag == pciTag(device->bus,dev,fn)) { ++ /* return the offset for the index requested */ ++ *bases = device->offset[index]; ++ return TRUE; + } +- } while (res); ++ } + +- fclose(file); + return FALSE; + } + +@@ -156,81 +168,48 @@ + unsigned long + xf86GetOSOffsetFromPCI(PCITAG tag, int space, unsigned long base) + { +- FILE *file; +- char c[0x200]; +- char *res; +- unsigned int bus, devfn, dev, fn; +- unsigned PCIADDR_TYPE offset[7]; +- unsigned PCIADDR_TYPE size[7]; +- unsigned int num; ++ unsigned int dev, fn; + unsigned int ndx; ++ struct pci_dev *device; + +- if (!(file = fopen("/proc/bus/pci/devices","r"))) +- return 0; +- do { +- res = fgets(c,0x1ff,file); +- if (res) { +- num = sscanf(res, +- /*bus+dev vendorid deviceid irq */ +- "%02x%02x\t%*04x%*04x\t%*x" +- /* 7 PCI resource base addresses */ +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- /* 7 PCI resource sizes, and then optionally a driver name */ +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT +- "\t" PCIADDR_FMT, +- &bus,&devfn,&offset[0],&offset[1],&offset[2],&offset[3], +- &offset[4],&offset[5],&offset[6], &size[0], &size[1], &size[2], +- &size[3], &size[4], &size[5], &size[6]); +- if (num != 16) { /* apparantly not 2.3 style */ +- fclose(file); +- return 0; +- } ++ if (!xf86OSLinuxPCIDevs) { ++ xf86OSLinuxPCIDevs = xf86OSLinuxGetPciDevs(); ++ } ++ if (!xf86OSLinuxPCIDevs) { ++ return FALSE; ++ } + +- dev = devfn >> 3; +- fn = devfn & 0x7; +- if (tag == pciTag(bus,dev,fn)) { +- /* ok now look through all the BAR values of this device */ +- pciConfigPtr pDev = xf86GetPciConfigFromTag(tag); +- +- for (ndx=0; ndx<7; ndx++) { +- unsigned long savePtr, flagMask; +- if (ndx == 6) +- savePtr = pDev->pci_baserom; +- else /* this the ROM bar */ +- savePtr = (&pDev->pci_base0)[ndx]; +- /* Ignore unset base addresses. The kernel may +- * have reported non-zero size and address even +- * if they are disabled (e.g. disabled ROM BAR). +- */ +- if (savePtr == 0) +- continue; +- /* Remove memory attribute bits, different for IO +- * and memory ranges. */ +- flagMask = (savePtr & 0x1) ? ~0x3UL : ~0xFUL; +- savePtr &= flagMask; +- +- /* find the index of the incoming base */ +- if (base >= savePtr && base < (savePtr + size[ndx])) { +- fclose(file); +- return (offset[ndx] & flagMask) + (base - savePtr); +- } ++ for (device = xf86OSLinuxPCIDevs; device; device = device->next) { ++ dev = device->devfn >> 3; ++ fn = device->devfn & 0x7; ++ if (tag == pciTag(device->bus, dev, fn)) { ++ /* ok now look through all the BAR values of this device */ ++ pciConfigPtr pDev = xf86GetPciConfigFromTag(tag); ++ ++ for (ndx=0; ndx<7; ndx++) { ++ unsigned long savePtr, flagMask; ++ if (ndx == 6) ++ savePtr = pDev->pci_baserom; ++ else /* this the ROM bar */ ++ savePtr = (&pDev->pci_base0)[ndx]; ++ /* Ignore unset base addresses. The kernel may ++ * have reported non-zero size and address even ++ * if they are disabled (e.g. disabled ROM BAR). ++ */ ++ if (savePtr == 0) ++ continue; ++ /* Remove memory attribute bits, different for IO ++ * and memory ranges. */ ++ flagMask = (savePtr & 0x1) ? ~0x3UL : ~0xFUL; ++ savePtr &= flagMask; ++ ++ /* find the index of the incoming base */ ++ if (base >= savePtr && base < (savePtr + device->size[ndx])) { ++ return (device->offset[ndx] & flagMask) + (base - savePtr); + } + } + } +- } while (res); ++ }; + +- fclose(file); + return 0; +- + } --- xorg-server-1.1.1.orig/debian/patches/006_ubuntu_fpic_libxf86config.patch +++ xorg-server-1.1.1/debian/patches/006_ubuntu_fpic_libxf86config.patch @@ -0,0 +1,24 @@ +diff -uNr xorg-server-1.1.1.orig/hw/xfree86/parser/Makefile.am xorg-server-1.1.1/hw/xfree86/parser/Makefile.am +--- xorg-server-1.1.1.orig/hw/xfree86/parser/Makefile.am 2006-07-05 15:31:41.000000000 -0300 ++++ xorg-server-1.1.1/hw/xfree86/parser/Makefile.am 2006-08-07 13:31:36.000000000 -0300 +@@ -23,7 +23,7 @@ + DRI.c \ + Extensions.c + +-AM_CFLAGS = $(XORG_CFLAGS) ++AM_CFLAGS = $(XORG_CFLAGS) -fPIC + + EXTRA_DIST = \ + Configint.h \ +diff -uNr xorg-server-1.1.1.orig/hw/xfree86/parser/Makefile.in xorg-server-1.1.1/hw/xfree86/parser/Makefile.in +--- xorg-server-1.1.1.orig/hw/xfree86/parser/Makefile.in 2006-07-07 20:46:00.000000000 -0300 ++++ xorg-server-1.1.1/hw/xfree86/parser/Makefile.in 2006-08-07 13:33:50.000000000 -0300 +@@ -560,7 +560,7 @@ + DRI.c \ + Extensions.c + +-AM_CFLAGS = $(XORG_CFLAGS) ++AM_CFLAGS = $(XORG_CFLAGS) -fPIC + EXTRA_DIST = \ + Configint.h \ + configProcs.h \ --- xorg-server-1.1.1.orig/debian/patches/012_fedora_tfp_damage.patch +++ xorg-server-1.1.1/debian/patches/012_fedora_tfp_damage.patch @@ -0,0 +1,217 @@ +--- ./GL/glx/glxdrawable.h.tfp-damage 2006-03-11 19:11:33.000000000 -0500 ++++ ./GL/glx/glxdrawable.h 2006-06-20 20:33:53.000000000 -0400 +@@ -41,6 +41,8 @@ + ** + */ + ++#include ++ + typedef struct { + + DrawablePtr pDraw; +@@ -49,7 +51,7 @@ + ScreenPtr pScreen; + Bool idExists; + int refcnt; +- ++ DamagePtr pDamage; + } __GLXpixmap; + + struct __GLXdrawable { +--- ./GL/glx/glxcmds.c.tfp-damage 2006-05-09 13:44:26.000000000 -0400 ++++ ./GL/glx/glxcmds.c 2006-06-20 20:33:53.000000000 -0400 +@@ -1271,6 +1271,7 @@ + pGlxPixmap->pGlxScreen = pGlxScreen; + pGlxPixmap->pScreen = pScreen; + pGlxPixmap->idExists = True; ++ pGlxPixmap->pDamage = NULL; + pGlxPixmap->refcnt = 0; + + pGlxPixmap->modes = modes; +--- ./GL/glx/glxdri.c.tfp-damage 2006-04-02 21:25:21.000000000 -0400 ++++ ./GL/glx/glxdri.c 2006-06-21 00:39:40.000000000 -0400 +@@ -296,24 +296,18 @@ + } + + static void +-glxFillAlphaChannel (PixmapPtr pixmap) ++glxFillAlphaChannel (PixmapPtr pixmap, int x, int y, int width, int height) + { +- int i, j; +- CARD32 *pixels = (CARD32 *)pixmap->devPrivate.ptr; ++ int i; ++ CARD32 *p, *end, *pixels = (CARD32 *)pixmap->devPrivate.ptr; + CARD32 rowstride = pixmap->devKind / 4; +- CARD32 x, y; +- +- x = pixmap->drawable.x; +- y = pixmap->drawable.y; + +- for (i = y; i < pixmap->drawable.height + y; ++i) ++ for (i = y; i < y + height; i++) + { +- for (j = x; j < pixmap->drawable.width + x; ++j) +- { +- int index = i * rowstride + j; +- +- pixels[index] |= 0xFF000000; +- } ++ p = &pixels[i * rowstride + x]; ++ end = p + width; ++ while (p < end) ++ *p++ |= 0xFF000000; + } + } + +@@ -326,7 +320,6 @@ + * - No fbconfig handling for TEXTURE_TARGET + * - No fbconfig exposure of Y inversion state + * - No GenerateMipmapEXT support (due to no FBO support) +- * - No damage tracking between binds + * - No support for anything but 16bpp and 32bpp-sparse pixmaps + */ + +@@ -335,38 +328,103 @@ + int buffer, + __GLXpixmap *glxPixmap) + { ++ RegionPtr pRegion; + PixmapPtr pixmap; + int bpp; +- Bool npot; ++ GLenum target, format, type; + + pixmap = (PixmapPtr) glxPixmap->pDraw; +- bpp = pixmap->drawable.depth >= 24 ? 4 : 2; /* XXX 24bpp packed, 8, etc */ +- ++ if (!glxPixmap->pDamage) { ++ glxPixmap->pDamage = DamageCreate(NULL, NULL, DamageReportNone, ++ TRUE, glxPixmap->pScreen, NULL); ++ if (!glxPixmap->pDamage) ++ return BadAlloc; ++ ++ DamageRegister ((DrawablePtr) pixmap, glxPixmap->pDamage); ++ pRegion = NULL; ++ } else { ++ pRegion = DamageRegion(glxPixmap->pDamage); ++ if (REGION_NIL(pRegion)) ++ return Success; ++ } ++ ++ /* XXX 24bpp packed, 8, etc */ ++ if (pixmap->drawable.depth >= 24) { ++ bpp = 4; ++ format = GL_BGRA; ++ type = GL_UNSIGNED_BYTE; ++ } else { ++ bpp = 2; ++ format = GL_RGB; ++ type = GL_UNSIGNED_SHORT_5_6_5; ++ } ++ ++ if (!(glxCountBits(pixmap->drawable.width) == 1 && ++ glxCountBits(pixmap->drawable.height) == 1) ++ /* || strstr(CALL_GetString(GL_EXTENSIONS, ++ "GL_ARB_texture_non_power_of_two")) */) ++ target = GL_TEXTURE_RECTANGLE_ARB; ++ else ++ target = GL_TEXTURE_2D; ++ + CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH, +- pixmap->devKind / bpp) ); +- CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, +- pixmap->drawable.y) ); +- CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, +- pixmap->drawable.x) ); +- +- if (pixmap->drawable.depth == 24) +- glxFillAlphaChannel(pixmap); +- +- npot = !(glxCountBits(pixmap->drawable.width) == 1 && +- glxCountBits(pixmap->drawable.height) == 1) /* || +- strstr(CALL_GetString(GL_EXTENSIONS, +- "GL_ARB_texture_non_power_of_two")) */ ; +- +- CALL_TexImage2D( GET_DISPATCH(), +- ( npot ? GL_TEXTURE_RECTANGLE_ARB : GL_TEXTURE_2D, +- 0, +- bpp == 4 ? 4 : 3, +- pixmap->drawable.width, +- pixmap->drawable.height, +- 0, +- bpp == 4 ? GL_BGRA : GL_RGB, +- bpp == 4 ? GL_UNSIGNED_BYTE : GL_UNSIGNED_SHORT_5_6_5, +- pixmap->devPrivate.ptr ) ); ++ pixmap->devKind / bpp) ); ++ if (pRegion == NULL) ++ { ++ if (pixmap->drawable.depth == 24) ++ glxFillAlphaChannel(pixmap, ++ pixmap->drawable.x, ++ pixmap->drawable.y, ++ pixmap->drawable.width, ++ pixmap->drawable.height); ++ ++ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, ++ pixmap->drawable.x) ); ++ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, ++ pixmap->drawable.y) ); ++ ++ CALL_TexImage2D( GET_DISPATCH(), ++ (target, ++ 0, ++ bpp == 4 ? 4 : 3, ++ pixmap->drawable.width, ++ pixmap->drawable.height, ++ 0, ++ format, ++ type, ++ pixmap->devPrivate.ptr) ); ++ } else { ++ int i, numRects; ++ BoxPtr p; ++ ++ numRects = REGION_NUM_RECTS (pRegion); ++ p = REGION_RECTS (pRegion); ++ for (i = 0; i < numRects; i++) ++ { ++ if (pixmap->drawable.depth == 24) ++ glxFillAlphaChannel(pixmap, ++ pixmap->drawable.x + p[i].x1, ++ pixmap->drawable.y + p[i].y1, ++ p[i].x2 - p[i].x1, ++ p[i].y2 - p[i].y1); ++ ++ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS, ++ pixmap->drawable.x + p[i].x1) ); ++ CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS, ++ pixmap->drawable.y + p[i].y1) ); ++ ++ CALL_TexSubImage2D( GET_DISPATCH(), ++ (target, ++ 0, ++ p[i].x1, p[i].y1, ++ p[i].x2 - p[i].x1, p[i].y2 - p[i].y1, ++ format, ++ type, ++ pixmap->devPrivate.ptr) ); ++ } ++ } ++ ++ DamageEmpty(glxPixmap->pDamage); + + return Success; + } +--- ./GL/glx/glxext.c.tfp-damage 2006-03-16 20:47:25.000000000 -0500 ++++ ./GL/glx/glxext.c 2006-06-20 20:33:53.000000000 -0400 +@@ -141,6 +141,10 @@ + + pGlxPixmap->idExists = False; + if (!pGlxPixmap->refcnt) { ++ if (pGlxPixmap->pDamage) { ++ DamageUnregister (pGlxPixmap->pDraw, pGlxPixmap->pDamage); ++ DamageDestroy(pGlxPixmap->pDamage); ++ } + /* + ** The DestroyPixmap routine should decrement the refcount and free + ** only if it's zero. --- xorg-server-1.1.1.orig/debian/patches/02_libvgahw_gcc4_volatile_fix.diff +++ xorg-server-1.1.1/debian/patches/02_libvgahw_gcc4_volatile_fix.diff @@ -0,0 +1,70 @@ +gcc4 has issues with libvgahw.a. This patch is a workaround stolen from +https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=161242 (by Olivier +Baudron). See also Debian #318218 and bugs merged to it + +Index: xorg-server-X11R7.0-1.0.1/hw/xfree86/vgahw/vgaHW.c +=================================================================== +--- xorg-server-X11R7.0-1.0.1.orig/hw/xfree86/vgahw/vgaHW.c 2006-01-04 23:08:15.000000000 -0500 ++++ xorg-server-X11R7.0-1.0.1/hw/xfree86/vgahw/vgaHW.c 2006-02-26 18:18:48.000000000 -0500 +@@ -432,12 +432,16 @@ + static void + mmioWriteAttr(vgaHWPtr hwp, CARD8 index, CARD8 value) + { ++ volatile CARD8 tmp; ++ + if (hwp->paletteEnabled) + index &= ~0x20; + else + index |= 0x20; + +- (void) minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET); ++ /* gcc-4.0 -O2 is broken : needs a volatile assignment */ ++ tmp = minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET); ++ + moutb(VGA_ATTR_INDEX, index); + moutb(VGA_ATTR_DATA_W, value); + } +@@ -445,12 +449,16 @@ + static CARD8 + mmioReadAttr(vgaHWPtr hwp, CARD8 index) + { ++ volatile CARD8 tmp; ++ + if (hwp->paletteEnabled) + index &= ~0x20; + else + index |= 0x20; + +- (void) minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET); ++ /* gcc-4.0 -O2 is broken : needs a volatile assignment */ ++ tmp = minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET); ++ + moutb(VGA_ATTR_INDEX, index); + return minb(VGA_ATTR_DATA_R); + } +@@ -470,7 +478,11 @@ + static void + mmioEnablePalette(vgaHWPtr hwp) + { +- (void) minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET); ++ volatile CARD8 tmp; ++ ++ /* gcc-4.0 -O2 is broken : needs a volatile assignment */ ++ tmp = minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET); ++ + moutb(VGA_ATTR_INDEX, 0x00); + hwp->paletteEnabled = TRUE; + } +@@ -478,7 +490,11 @@ + static void + mmioDisablePalette(vgaHWPtr hwp) + { +- (void) minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET); ++ volatile CARD8 tmp; ++ ++ /* gcc-4.0 -O2 is broken : needs a volatile assignment */ ++ tmp = minb(hwp->IOBase + VGA_IN_STAT_1_OFFSET); ++ + moutb(VGA_ATTR_INDEX, 0x20); + hwp->paletteEnabled = FALSE; + } --- xorg-server-1.1.1.orig/debian/patches/07_xorgconf_manpage_overhaul.diff +++ xorg-server-1.1.1/debian/patches/07_xorgconf_manpage_overhaul.diff @@ -0,0 +1,2208 @@ +$Id: 099e_xorgconf_manpage_overhaul.diff 966 2005-12-24 22:35:05Z dnusinow $ + +Major stylistic cleanups, greatly expanded cross-reference ("SEE ALSO") +section and some typo fixes. + +This patch by Branden Robinson. + +Not submitted to XFree86. + +Forward-ported by Fabio M. Di Nitto. + +NOTE: Branden you must really love this package! + +Index: hw/xfree86/doc/man/xorg.conf.man.pre +=================================================================== +--- hw/xfree86/doc/man/xorg.conf.man.pre.orig 2005-12-24 16:45:02.000000000 -0500 ++++ hw/xfree86/doc/man/xorg.conf.man.pre 2005-12-24 17:12:31.000000000 -0500 +@@ -3,7 +3,7 @@ + .ds q \N'34' + .TH __xconfigfile__ __filemansuffix__ __vendorversion__ + .SH NAME +-__xconfigfile__ - Configuration File for __xservername__ ++__xconfigfile__ \- configuration File for __xservername__ X server + .SH INTRODUCTION + .B __xservername__ + supports several mechanisms for supplying/obtaining configuration and +@@ -21,9 +21,10 @@ + .SH DESCRIPTION + .B __xservername__ + uses a configuration file called +-.B __xconfigfile__ +-for its initial setup. This configuration file is searched for in the +-following places when the server is started as a normal user: ++.I __xconfigfile__ ++for its initial setup. ++This configuration file is searched for in the following places when the ++server is started as a normal user: + .PP + .RS 4 + .nf +@@ -31,30 +32,31 @@ + .IR __projectroot__/etc/X11/ + .IB /etc/X11/ $XORGCONFIG + .IB __projectroot__/etc/X11/ $XORGCONFIG +-.I /etc/X11/__xconfigfile__-4 ++.I /etc/X11/__xconfigfile__\-4 + .I /etc/X11/__xconfigfile__ + .I /etc/__xconfigfile__ + .IR __projectroot__/etc/X11/__xconfigfile__. +-.I __projectroot__/etc/X11/__xconfigfile__-4 ++.I __projectroot__/etc/X11/__xconfigfile__\-4 + .I __projectroot__/etc/X11/__xconfigfile__ + .IR __projectroot__/lib/X11/__xconfigfile__. +-.I __projectroot__/lib/X11/__xconfigfile__-4 ++.I __projectroot__/lib/X11/__xconfigfile__\-4 + .I __projectroot__/lib/X11/__xconfigfile__ + .fi + .RE + .PP + where + .I +-is a relative path (with no ".." components) specified with the ++is a relative path (with no \(lq..\(rq components) specified with the + .B \-config + command line option, + .B $XORGCONFIG +-is the relative path (with no ".." components) specified by that ++is the relative path (with no \(lq..\(rq components) specified by that + environment variable, and + .I +-is the machine's hostname as reported by gethostname(3). ++is the machine's hostname as reported by ++.BR gethostname (__oslibmansuffix__). + .PP +-When the __xservername__ server is started by the "root" user, the config file ++When the __xservername__ server is started by the \(lqroot\(rq user, the config file + search locations are as follows: + .PP + .RS 4 +@@ -66,14 +68,14 @@ + .IB /etc/X11/ $XORGCONFIG + .IB __projectroot__/etc/X11/ $XORGCONFIG + .BI $HOME /__xconfigfile__ +-.I /etc/X11/__xconfigfile__-4 ++.I /etc/X11/__xconfigfile__\-4 + .I /etc/X11/__xconfigfile__ + .I /etc/__xconfigfile__ + .IR __projectroot__/etc/X11/__xconfigfile__. +-.I __projectroot__/etc/X11/__xconfigfile__-4 ++.I __projectroot__/etc/X11/__xconfigfile__\-4 + .I __projectroot__/etc/X11/__xconfigfile__ + .IR __projectroot__/lib/X11/__xconfigfile__. +-.I __projectroot__/lib/X11/__xconfigfile__-4 ++.I __projectroot__/lib/X11/__xconfigfile__\-4 + .I __projectroot__/lib/X11/__xconfigfile__ + .fi + .RE +@@ -90,13 +92,13 @@ + is the path specified by that environment variable (usually the home + directory), and + .I +-is the machine's hostname as reported by gethostname(3). ++is the machine's hostname as reported by ++.BR gethostname (__oslibmansuffix__). + .PP + The +-.B __xconfigfile__ +-file is composed of a number of sections which may be present in any +-order. Each section has +-the form: ++.I __xconfigfile__ ++file is composed of a number of sections which may be present in any order. ++Each section has the form: + .PP + .RS 4 + .nf +@@ -121,13 +123,14 @@ + .BR "Modes " "Video modes descriptions" + .BR "Screen " "Screen configuration" + .BR "ServerLayout " "Overall layout" +-.BR "DRI " "DRI-specific configuration" +-.BR "Vendor " "Vendor-specific configuration" ++.BR "DRI " "DRI\-specific configuration" ++.BR "Vendor " "Vendor\-specific configuration" + .fi + .RE + .PP + The following obsolete section names are still recognised for compatibility +-purposes. In new config files, the ++purposes. ++In new config files, the + .B InputDevice + section should be used instead. + .PP +@@ -144,35 +147,38 @@ + .PP + The + .B ServerLayout +-sections are at the highest level. They bind together the input and +-output devices that will be used in a session. The input devices +-are described in the ++sections are at the highest level. ++They bind together the input and output devices that will be used in a session. ++The input devices are described in the + .B InputDevice +-sections. Output devices usually consist of multiple independent +-components (e.g., a graphics board and a monitor). These multiple +-components are bound together in the ++sections. ++Output devices usually consist of multiple independent components (e.g., ++a graphics board and a monitor). ++These multiple components are bound together in the + .B Screen + sections, and it is these that are referenced by the + .B ServerLayout +-section. Each ++section. ++Each + .B Screen +-section binds together a graphics board and a monitor. The graphics +-boards are described in the ++section binds together a graphics board and a monitor. ++The graphics boards are described in the + .B Device + sections, and the monitors are described in the + .B Monitor + sections. + .PP +-Config file keywords are case-insensitive, and "_" characters are +-ignored. Most strings (including ++Config file keywords are case\-insensitive, and \(lq_\(rq characters are ++ignored. ++Most strings (including + .B Option + names) are also case-insensitive, and insensitive to white space and +-"_" characters. ++\(lq_\(rq characters. + .PP +-Each config file entry usually takes up a single line in the file. +-They consist of a keyword, which is possibly followed by one or +-more arguments, with the number and types of the arguments depending +-on the keyword. The argument types are: ++Each config file entry usually takes up a single line in the file. They ++consist of a keyword, which is possibly followed by one or more arguments, ++with the number and types of the arguments depending on the keyword. ++The argument types are: + .PP + .RS 4 + .nf +@@ -182,17 +188,18 @@ + .fi + .RE + .PP +-Note: hex integer values must be prefixed with "0x", and octal values +-with "0". ++Note: hex integer values must be prefixed with \(lq0x\(rq, and octal values ++with \(lq0\(rq. + .PP + A special keyword called + .B Option +-may be used to provide free-form data to various components of the server. ++may be used to provide free\-form data to various components of the server. + The + .B Option +-keyword takes either one or two string arguments. The first is the option +-name, and the optional second argument is the option value. Some commonly +-used option value types include: ++keyword takes either one or two string arguments. ++The first is the option name, and the optional second argument is the ++option value. ++Some commonly used option value types include: + .PP + .RS 4 + .nf +@@ -209,8 +216,8 @@ + .B Option + values, not just strings, must be enclosed in quotes. + .PP +-Boolean options may optionally have a value specified. When no value +-is specified, the option's value is ++Boolean options may optionally have a value specified. ++When no value is specified, the option's value is + .BR TRUE . + The following boolean option values are recognised as + .BR TRUE : +@@ -263,30 +270,35 @@ + the value and the expectations of the appropriate range of the value. + It is recommended that the units always be specified when using frequency + option values to avoid any errors in determining the value. +-.SH FILES SECTION ++.SH "FILES SECTION" + The + .B Files + section is used to specify some path names required by the server. +-Some of these paths can also be set from the command line (see Xserver(__appmansuffix__) +-and __xservername__(__appmansuffix__)). The command line settings override the values specified +-in the config file. The ++Some of these paths can also be set from the command line (see ++.BR Xserver (__appmansuffix__) ++and ++.BR __xservername__ (__appmansuffix__)). ++The command line settings override the values specified in the config ++file. ++The + .B Files + section is optional, as are all of the entries that may appear in it. + .PP + The entries that can appear in this section are: + .TP 7 + .BI "FontPath \*q" path \*q +-sets the search path for fonts. This path is a comma separated list of +-font path elements which the __xservername__ server searches for font databases. ++sets the search path for fonts. ++This path is a comma separated list of font path elements which the __xservername__ ++server searches for font databases. + Multiple + .B FontPath + entries may be specified, and they will be concatenated to build up the + fontpath used by the server. Font path elements may be either absolute +-directory paths, or a font server identifier. Font server identifiers +-have the form: ++directory paths, or a font server identifier. ++Font server identifiers have the form: + .PP + .RS 11 +-.IR / : ++.IR / : + .RE + .PP + .RS 7 +@@ -294,16 +306,16 @@ + .I + is the transport type to use to connect to the font server (e.g., + .B unix +-for UNIX-domain sockets or ++for UNIX\-domain sockets or + .B tcp + for a TCP/IP connection), + .I + is the hostname of the machine running the font server, and +-.I ++.I + is the port number that the font server is listening on (usually 7100). + .PP + When this entry is not specified in the config file, the server falls back +-to the compiled-in default font path, which contains the following ++to the compiled\-in default font path, which contains the following + font path elements: + .PP + .RS 4 +@@ -340,7 +352,7 @@ + .BI "RGBPath \*q" path \*q + 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: ++to the compiled\-in default RGB path, which is: + .PP + .RS 11 + .I __projectroot__/lib/X11/rgb +@@ -352,9 +364,10 @@ + binary format RGB color databases. + .TP 7 + .BI "ModulePath \*q" path \*q +-sets the search path for loadable __xservername__ server modules. This path is +-a comma separated list of directories which the __xservername__ server searches +-for loadable modules loading in the order specified. Multiple ++sets the search path for loadable __xservername__ server modules. ++This path is a comma separated list of directories which the __xservername__ server ++searches for loadable modules loading in the order specified. ++Multiple + .B ModulePath + entries may be specified, and they will be concatenated to build the + module search path used by the server. +@@ -362,8 +375,8 @@ + .ig + .TP 7 + .BI "LogFile \*q" path \*q +-sets the name of the __xservername__ server log file. The default log file name +-is ++sets the name of the __xservername__ server log file. ++The default log file name is + .PP + .RS 11 + .RI __logdir__/__xservername__. .log +@@ -374,15 +387,18 @@ + .I + is the display number for the __xservername__ server. + .. +-.SH SERVERFLAGS SECTION ++.SH "SERVERFLAGS SECTION" + In addition to options specific to this section (described below), the + .B ServerFlags + section is used to specify some global +-__xservername__ server options. All of the entries in this section are ++__xservername__ server options. ++All of the entries in this section are + .BR Options , + although for compatibility purposes some of the old style entries are +-still recognised. Those old style entries are not documented here, and +-using them is discouraged. The ++still recognised. ++Those old style entries are not documented here, and using them is ++discouraged. ++The + .B ServerFlags + section is optional, as are the entries that may be specified in it. + .PP +@@ -394,11 +410,12 @@ + .B Options + specified in the active + .B ServerLayout +-section. Options with command line equivalents are overridden when their +-command line equivalent is used. The options recognised by this section +-are: ++section. ++Options with command line equivalents are overridden when their command ++line equivalent is used. ++The options recognised by this section are: + .TP 7 +-.BI "Option \*qDefaultServerLayout\*q \*q" layout-id \*q ++.BI "Option \*qDefaultServerLayout\*q \*q" layout\-id \*q + This specifies the default + .B ServerLayout + section to use in the absence of the +@@ -406,148 +423,185 @@ + command line option. + .TP 7 + .BI "Option \*qNoTrapSignals\*q \*q" boolean \*q +-This prevents the __xservername__ server from trapping a range of unexpected +-fatal signals and exiting cleanly. Instead, the __xservername__ server will die +-and drop core where the fault occurred. The default behaviour is +-for the __xservername__ server to exit cleanly, but still drop a core file. In +-general you never want to use this option unless you are debugging +-an __xservername__ server problem and know how to deal with the consequences. ++This prevents the __xservername__ server from trapping a range of unexpected fatal ++signals and exiting cleanly. ++Instead, the __xservername__ server will die and drop core where the fault occurred. ++The default behaviour is for the __xservername__ server to exit cleanly, but still drop a ++core file. ++In general you never want to use this option unless you are debugging an __xservername__ ++server problem and know how to deal with the consequences. + .TP 7 + .BI "Option \*qDontVTSwitch\*q \*q" boolean \*q + This disallows the use of the + .BI Ctrl+Alt+F n + sequence (where + .RI F n +-refers to one of the numbered function keys). That sequence is normally +-used to switch to another \*qvirtual terminal\*q on operating systems +-that have this feature. When this option is enabled, that key sequence has +-no special meaning and is passed to clients. Default: off. ++refers to one of the numbered function keys). ++That sequence is normally used to switch to another \*qvirtual terminal\*q ++on operating systems that have this feature. ++When this option is enabled, that key sequence has no special meaning and ++is passed to clients. ++Default: off. + .TP 7 + .BI "Option \*qDontZap\*q \*q" boolean \*q + This disallows the use of the + .B Ctrl+Alt+Backspace +-sequence. That sequence is normally used to terminate the __xservername__ server. +-When this option is enabled, that key sequence has no special meaning +-and is passed to clients. Default: off. ++sequence. ++That sequence is normally used to terminate the __xservername__ server. ++When this option is enabled, that key sequence has no special meaning and ++is passed to clients. ++Default: off. + .TP 7 + .BI "Option \*qDontZoom\*q \*q" boolean \*q + This disallows the use of the +-.B Ctrl+Alt+Keypad-Plus ++.B Ctrl+Alt+Keypad\-Plus + and +-.B Ctrl+Alt+Keypad-Minus +-sequences. These sequences allows you to switch between video modes. ++.B Ctrl+Alt+Keypad\-Minus ++sequences. ++These sequences allows you to switch between video modes. + When this option is enabled, those key sequences have no special meaning +-and are passed to clients. Default: off. ++and are passed to clients. ++Default: off. + .TP 7 + .BI "Option \*qDisableVidModeExtension\*q \*q" boolean \*q + This disables the parts of the VidMode extension used by the xvidtune client +-that can be used to change the video modes. Default: the VidMode extension +-is enabled. ++that can be used to change the video modes. ++Default: the VidMode extension is enabled. + .TP 7 + .BI "Option \*qAllowNonLocalXvidtune\*q \*q" boolean \*q + This allows the xvidtune client (and other clients that use the VidMode +-extension) to connect from another host. Default: off. ++extension) to connect from another host. ++Default: off. + .TP 7 + .BI "Option \*qDisableModInDev\*q \*q" boolean \*q +-This disables the parts of the __xservername__-Misc extension that can be used to +-modify the input device settings dynamically. Default: that functionality +-is enabled. ++This disables the parts of the __xservername__\-Misc extension that can be used to ++modify the input device settings dynamically. ++Default: that functionality is enabled. + .TP 7 + .BI "Option \*qAllowNonLocalModInDev\*q \*q" boolean \*q + This allows a client to connect from another host and change keyboard +-and mouse settings in the running server. Default: off. ++and mouse settings in the running server. ++Default: off. + .TP 7 + .BI "Option \*qAllowMouseOpenFail\*q \*q" boolean \*q + This allows the server to start up even if the mouse device can't be +-opened/initialised. Default: false. ++opened/initialised. ++Default: false. + .TP 7 + .BI "Option \*qVTInit\*q \*q" command \*q + Runs + .I 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 +-commands to be run. This option should rarely be needed. Default: not set. ++The command string is passed to \*q/bin/sh \-c\*q, 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 ++commands to be run. ++This option should rarely be needed. ++Default: not set. + .TP 7 + .BI "Option \*qVTSysReq\*q \*q" boolean \*q +-enables the SYSV-style VT switch sequence for non-SYSV systems +-which support VT switching. This sequence is +-.B Alt-SysRq +-followed +-by a function key ++enables the SYSV\-style VT switch sequence for non\-SYSV systems ++which support VT switching. ++This sequence is ++.B Alt\-SysRq ++followed by a function key + .RB ( Fn ). + This prevents the __xservername__ server trapping the + keys used for the default VT switch sequence, which means that clients can +-access them. Default: off. ++access them. ++Default: off. + .TP 7 + .BI "Option \*qXkbDisable\*q \*q" boolean \*q +-disable/enable the XKEYBOARD extension. The \-kb command line +-option overrides this config file option. Default: XKB is enabled. ++disable/enable the XKEYBOARD extension. ++The \-kb command line option overrides this config file option. ++Default: XKB is enabled. + .\" The following four options are "undocumented". + .ig + .TP 7 + .BI "Option \*qPciProbe1\*q" +-Use PCI probe method 1. Default: set. ++Use PCI probe method 1. ++Default: set. + .TP 7 + .BI "Option \*qPciProbe2\*q" +-Use PCI probe method 2. Default: not set. ++Use PCI probe method 2. ++Default: not set. + .TP 7 + .BI "Option \*qPciForceConfig1\*q" +-Force the use PCI config type 1. Default: not set. ++Force the use PCI config type 1. ++Default: not set. + .TP 7 + .BI "Option \*qPciForceConfig2\*q" +-Force the use PCI config type 2. Default: not set. ++Force the use PCI config type 2. ++Default: not set. + .. + .TP 7 + .BI "Option \*qBlankTime\*q \*q" time \*q +-sets the inactivity timeout for the blanking phase of the screensaver. ++sets the inactivity timeout for the ++.B blank ++phase of the screensaver. + .I time +-is in minutes. This is equivalent to the __xservername__ server's `-s' flag, +-and the value can be changed at run-time with xset(__appmansuffix__). Default: 10 +-minutes. ++is in minutes. ++This is equivalent to the __xservername__ server's ++.B \-s ++flag, and the value can be changed at run\-time with ++.BR xset(__appmansuffix__). ++Default: 10 minutes. + .TP 7 + .BI "Option \*qStandbyTime\*q \*q" time \*q +-sets the inactivity timeout for the "standby" phase of DPMS mode. ++sets the inactivity timeout for the ++.B standby ++phase of DPMS mode. + .I time +-is in minutes, and the value can be changed at run-time with xset(__appmansuffix__). +-Default: 20 minutes. This is only suitable for VESA DPMS compatible +-monitors, and may not be supported by all video drivers. It is only +-enabled for screens that have the ++is in minutes, and the value can be changed at run\-time with ++.BR xset(__appmansuffix__). ++Default: 20 minutes. ++This is only suitable for VESA DPMS compatible monitors, and may not be ++supported by all video drivers. ++It is only enabled for screens that have the + .B \*qDPMS\*q + option set (see the MONITOR section below). + .TP 7 + .BI "Option \*qSuspendTime\*q \*q" time \*q +-sets the inactivity timeout for the "suspend" phase of DPMS mode. ++sets the inactivity timeout for the ++.B suspend ++phase of DPMS mode. + .I time +-is in minutes, and the value can be changed at run-time with xset(__appmansuffix__). +-Default: 30 minutes. This is only suitable for VESA DPMS compatible +-monitors, and may not be supported by all video drivers. It is only +-enabled for screens that have the ++is in minutes, and the value can be changed at run\-time with ++.BR xset(__appmansuffix__). ++Default: 30 minutes. ++This is only suitable for VESA DPMS compatible monitors, and may not be ++supported by all video drivers. ++It is only enabled for screens that have the + .B \*qDPMS\*q + option set (see the MONITOR section below). + .TP 7 + .BI "Option \*qOffTime\*q \*q" time \*q +-sets the inactivity timeout for the "off" phase of DPMS mode. ++sets the inactivity timeout for the ++.B off ++phase of DPMS mode. + .I time +-is in minutes, and the value can be changed at run-time with xset(__appmansuffix__). +-Default: 40 minutes. This is only suitable for VESA DPMS compatible +-monitors, and may not be supported by all video drivers. It is only +-enabled for screens that have the ++is in minutes, and the value can be changed at run\-time with ++.BR xset(__appmansuffix__). ++Default: 40 minutes. ++This is only suitable for VESA DPMS compatible monitors, and may not be ++supported by all video drivers. ++It is only enabled for screens that have the + .B \*qDPMS\*q + option set (see the MONITOR section below). + .TP 7 + .BI "Option \*qPixmap\*q \*q" bpp \*q +-This sets the pixmap format to use for depth 24. Allowed values for ++This sets the pixmap format to use for depth 24. ++Allowed values for + .I bpp +-are 24 and 32. Default: 32 unless driver constraints don't allow this +-(which is rare). Note: some clients don't behave well when this value +-is set to 24. ++are 24 and 32. ++Default: 32 unless driver constraints don't allow this (which is rare). ++Note: some clients don't behave well when this value is set to 24. + .TP 7 + .BI "Option \*qPC98\*q \*q" boolean \*q +-Specify that the machine is a Japanese PC-98 machine. This should not +-be enabled for anything other than the Japanese-specific PC-98 +-architecture. Default: auto-detected. ++Specify that the machine is a Japanese PC\-98 machine. ++This should not be enabled for anything other than the Japanese\-specific ++PC\-98 architecture. ++Default: auto\-detected. + .\" Doubt this should be documented. + .ig + .TP 7 +@@ -557,66 +611,73 @@ + .. + .TP 7 + .BI "Option \*qNoPM\*q \*q" boolean \*q +-Disables something to do with power management events. Default: PM +-enabled on platforms that support it. ++Disables something to do with power management events. ++Default: PM enabled on platforms that support it. + .TP 7 + .BI "Option \*qXinerama\*q \*q" boolean \*q +-enable or disable XINERAMA extension. Default is disabled. ++enable or disable XINERAMA extension. ++Default is disabled. + .TP 7 + .BI "Option \*qAllowDeactivateGrabs\*q \*q" boolean \*q + This option enables the use of the +-.B Ctrl+Alt+Keypad-Divide +-key sequence to deactivate any active keyboard and mouse grabs. Default: +-off. ++.B Ctrl+Alt+Keypad\-Divide ++key sequence to deactivate any active keyboard and mouse grabs. ++Default: off. + .TP 7 + .BI "Option \*qAllowClosedownGrabs\*q \*q" boolean \*q + This option enables the use of the +-.B Ctrl+Alt+Keypad-Multiply +-key sequence to kill clients with an active keyboard or mouse grab as +-well as killing any application that may have locked the server, normally +-using the XGrabServer(__libmansuffix__) Xlib function. Default: off. ++.B Ctrl+Alt+Keypad\-Multiply ++key sequence to kill clients with an active keyboard or mouse grab as well ++as killing any application that may have locked the server, normally using ++the ++.BR XGrabServer(__libmansuffix__) ++Xlib function. ++Default: off. + .br + Note that the options +-.BI AllowDeactivateGrabs ++.B AllowDeactivateGrabs + and +-.BI AllowClosedownGrabs ++.B AllowClosedownGrabs + will allow users to remove the grab used by screen saver/locker programs. +-An API was written to such cases. If you enable this option, make sure +-your screen saver/locker is updated. ++An API was written to such cases. ++If you enable this option, make sure your screen saver/locker is updated. ++Default: off. + .TP 7 + .BI "Option \*qHandleSpecialKeys\*q \*q" when \*q + This option controls when the server uses the builtin handler to process + special key combinations (such as + .BR Ctrl+Alt+Backspace ). +-Normally the XKEYBOARD extension keymaps will provide mappings for each +-of the special key combinations, so the builtin handler is not needed +-unless the XKEYBOARD extension is disabled. The value of ++Normally the XKEYBOARD extension keymaps will provide mappings for each of ++the special key combinations, so the builtin handler is not needed unless ++the XKEYBOARD extension is disabled. ++The value of + .I when + can be + .BR Always , + .BR Never , + or + .BR WhenNeeded . +-Default: Use the builtin handler only if needed. The server will scan +-the keymap for a mapping to the ++Default: Use the builtin handler only if needed. ++The server will scan the keymap for a mapping to the + .B Terminate + action and, if found, use XKEYBOARD for processing actions, otherwise + the builtin handler will be used. +-.SH MODULE SECTION ++.SH "MODULE SECTION" + The + .B Module + section is used to specify which __xservername__ server modules should be loaded. + This section is ignored when the __xservername__ server is built in static form. + The types of modules normally loaded in this section are __xservername__ server +-extension modules, and font rasteriser modules. Most other module types +-are loaded automatically when they are needed via other mechanisms. ++extension modules, and font rasteriser modules. ++Most other module types are loaded automatically when they are needed via ++other mechanisms. + The + .B Module + section is optional, as are all of the entries that may be specified in + it. + .PP +-Entries in this section may be in two forms. The first and most commonly +-used form is an entry that uses the ++Entries in this section may be in two forms. ++The first and most commonly used form is an entry that uses the + .B Load + keyword, as described here: + .TP 7 +@@ -624,8 +685,9 @@ + This instructs the server to load the module called + .IR modulename . + The module name given should be the module's standard name, not the +-module file name. The standard name is case-sensitive, and does not +-include the "lib" prefix, or the ".a", ".o", or ".so" suffixes. ++module file name. ++The standard name is case\-sensitive, and does not include the \(lqlib\(rq ++prefix, or the \(lq.a\(rq, \(lq.o\(rq, or \(lq.so\(rq suffixes. + .PP + .RS 7 + Example: the Type 1 font rasteriser can be loaded with the following entry: +@@ -644,13 +706,13 @@ + that are passed to the module when it is loaded. + .PP + Example: the extmod module (which contains a miscellaneous group of +-server extensions) can be loaded, with the __xservername__-DGA extension ++server extensions) can be loaded, with the __xservername__\-DGA extension + disabled by using the following entry: + .PP + .RS 4 + .nf + .B "SubSection \*qextmod\*q" +-.B " Option \*qomit XFree86-DGA\*q" ++.B " Option \*qomit XFree86\-DGA\*q" + .B EndSubSection + .fi + .RE +@@ -672,17 +734,20 @@ + .fi + .RE + .PP +-The "bitmap" font modules is loaded automatically. It is recommended +-that at very least the "extmod" extension module be loaded. If it isn't +-some commonly used server extensions (like the SHAPE extension) will not be +-available. +-.SH INPUTDEVICE SECTION ++The \(lqbitmap\(rq font module is loaded automatically. ++It is recommended ++that at very least the \(lqextmod\(rq extension module be loaded. ++If it isn't, some commonly used server extensions (like the SHAPE ++extension) will not be available. ++.SH "INPUTDEVICE SECTION" + The config file may have multiple + .B InputDevice +-sections. There will normally be at least two: one for the core (primary) +-keyboard, and one of the core pointer. If either of these two is missing, +-a default configuration for the missing ones will be used. Currently the +-default configuration may not work as expected on all platforms. ++sections. ++There will normally be at least two: one for the core (primary) keyboard, ++and one of the core pointer. ++If either of these two is missing, a default configuration for the missing ++ones will be used. ++Currently the default configuration may not work as expected on all platforms. + .PP + .B InputDevice + sections have the following format: +@@ -704,18 +769,21 @@ + .B Driver + entries are required in all + .B InputDevice +-sections. All other entries are optional. ++sections. ++All other entries are optional. + .PP + The + .B Identifier +-entry specifies the unique name for this input device. The ++entry specifies the unique name for this input device. ++The + .B Driver + entry specifies the name of the driver to use for this input device. + When using the loadable server, the input driver module + .RI \*q inputdriver \*q + will be loaded for each active + .B InputDevice +-section. An ++section. ++An + .B InputDevice + section is considered active if it is referenced by an active + .B ServerLayout +@@ -725,7 +793,10 @@ + .B \-pointer + command line options, or if it is selected implicitly as the core pointer + or keyboard device in the absence of such explicit references. +-The most commonly used input drivers are "keyboard" and "mouse". ++The most commonly used input drivers are ++.BR keyboard (__drivermansuffix__) ++and ++.BR mouse (__drivermansuffix__). + .PP + In the absence of an explicitly specified core input device, the first + .B InputDevice +@@ -733,21 +804,24 @@ + .B CorePointer + (or + .BR CoreKeyboard ) +-is used. If there is no match there, the first ++is used. ++If there is no match there, the first + .B InputDevice +-that uses the "mouse" (or "keyboard" or "kbd") driver is used. The final +-fallback is to use built-in default configurations. ++that uses the \(lqmouse\(rq (or \(lqkeyboard\(rq or \(lqkbd\(rq) driver is used. ++The final fallback is to use built\-in default configurations. + .PP + .B InputDevice +-sections recognise some driver-independent ++sections recognise some driver\-independent + .BR Options , +-which are described here. See the individual input driver manual pages +-for a description of the device-specific options. ++which are described here. ++See the individual input driver manual pages for a description of the ++device\-specific options. + .TP 7 + .BI "Option \*qCorePointer\*q" + When this is set, the input device is installed as the core (primary) +-pointer device. There must be exactly one core pointer. If this option +-is not set here, or in the ++pointer device. ++There must be exactly one core pointer. ++If this option is not set here, or in the + .B ServerLayout + section, or from the + .B \-pointer +@@ -759,8 +833,9 @@ + .TP 7 + .BI "Option \*qCoreKeyboard\*q" + When this is set, the input device is to be installed as the core +-(primary) keyboard device. There must be exactly one core keyboard. If +-this option is not set here, in the ++(primary) keyboard device. ++There must be exactly one core keyboard. ++If this option is not set here, in the + .B ServerLayout + section, or from the + .B \-keyboard +@@ -774,19 +849,21 @@ + .TP 7 + .BI "Option \*qSendCoreEvents\*q \*q" boolean \*q + Both of these options are equivalent, and when enabled cause the +-input device to always report core events. This can be used, for +-example, to allow an additional pointer device to generate core +-pointer events (like moving the cursor, etc). ++input device to always report core events. ++This can be used, for example, to allow an additional pointer device to ++generate core pointer events (like moving the cursor, etc). + .TP 4 + .BI "Option \*qHistorySize\*q \*q" number \*q +-Sets the motion history size. Default: 0. ++Sets the motion history size. ++Default: 0. + .TP 7 + .BI "Option \*qSendDragEvents\*q \*q" boolean \*q + ??? +-.SH DEVICE SECTION ++.SH "DEVICE SECTION" + The config file may have multiple + .B Device +-sections. There must be at least one, for the video card being used. ++sections. ++There must be at least one, for the video card being used. + .PP + .B Device + sections have the following format: +@@ -812,27 +889,30 @@ + .PP + The + .B Identifier +-entry specifies the unique name for this graphics device. The ++entry specifies the unique name for this graphics device. ++The + .B Driver + entry specifies the name of the driver to use for this graphics device. + When using the loadable server, the driver module + .RI \*q driver \*q + will be loaded for each active + .B Device +-section. A ++section. ++A + .B Device + section is considered active if it is referenced by an active + .B Screen + section. + .PP + .B Device +-sections recognise some driver-independent entries and ++sections recognise some driver\-independent entries and + .BR Options , +-which are described here. Not all drivers make use of these +-driver-independent entries, and many of those that do don't require them +-to be specified because the information is auto-detected. See the +-individual graphics driver manual pages for further information about +-this, and for a description of the device-specific options. ++which are described here. ++Not all drivers make use of these ++driver\-independent entries, and many of those that do don't require them ++to be specified because the information is auto\-detected. ++See the individual graphics driver manual pages for further information ++about this, and for a description of the device\-specific options. + Note that most of the + .B Options + listed here (but not the other entries) may be specified in the +@@ -841,118 +921,132 @@ + .B Device + section. + .TP 7 +-.BI "BusID \*q" bus-id \*q +-This specifies the bus location of the graphics card. For PCI/AGP cards, ++.BI "BusID \*q" bus\-id \*q ++This specifies the bus location of the graphics card. ++For PCI/AGP cards, + the +-.I bus-id ++.I bus\-id + string has the form + .BI PCI: bus : device : function +-(e.g., "PCI:1:0:0" might be appropriate for an AGP card). +-This field is usually optional in single-head configurations when using +-the primary graphics card. In multi-head configurations, or when using +-a secondary graphics card in a single-head configuration, this entry is +-mandatory. Its main purpose is to make an unambiguous connection between +-the device section and the hardware it is representing. This information +-can usually be found by running the __xservername__ server with the ++(e.g., \(lqPCI:1:0:0\(rq might be appropriate for an AGP card). ++This field is usually optional in single\-head configurations when using ++the primary graphics card. ++In multi\-head configurations, or when using a secondary graphics card in a ++single\-head configuration, this entry is mandatory. ++Its main purpose is to make an unambiguous connection between the device ++section and the hardware it is representing. ++This information can usually be found by running the __xservername__ server with the + .B \-scanpci + command line option. + .TP 7 + .BI "Screen " number + This option is mandatory for cards where a single PCI entity can drive more + than one display (i.e., multiple CRTCs sharing a single graphics accelerator +-and video memory). One ++and video memory). ++One + .B Device + section is required for each head, and this + parameter determines which head each of the + .B Device +-sections applies to. The legal values of ++sections applies to. ++The legal values of + .I number + range from 0 to one less than the total number of heads per entity. + Most drivers require that the primary screen (0) be present. + .TP 7 + .BI "Chipset \*q" chipset \*q + This usually optional entry specifies the chipset used on the graphics +-board. In most cases this entry is not required because the drivers +-will probe the hardware to determine the chipset type. Don't +-specify it unless the driver-specific documentation recommends that you +-do. ++board. ++In most cases this entry is not required because the drivers will probe the ++hardware to determine the chipset type. ++Don't specify it unless the driver\-specific documentation recommends that ++you do. + .TP 7 +-.BI "Ramdac \*q" ramdac-type \*q ++.BI "Ramdac \*q" ramdac\-type \*q + This optional entry specifies the type of RAMDAC used on the graphics +-board. This is only used by a few of the drivers, and in most cases it +-is not required because the drivers will probe the hardware to determine +-the RAMDAC type where possible. Don't specify it unless the +-driver-specific documentation recommends that you do. ++board. ++This is only used by a few of the drivers, and in most cases it is not ++required because the drivers will probe the hardware to determine the ++RAMDAC type where possible. ++Don't specify it unless the driver\-specific documentation recommends that ++you do. + .TP 7 + .BI "DacSpeed " speed + .TP 7 +-.BI "DacSpeed " "speed-8 speed-16 speed-24 speed-32" ++.BI "DacSpeed " "speed\-8 speed\-16 speed\-24 speed\-32" + This optional entry specifies the RAMDAC speed rating (which is usually +-printed on the RAMDAC chip). The speed is in MHz. When one value is +-given, it applies to all framebuffer pixel sizes. When multiple values +-are give, they apply to the framebuffer pixel sizes 8, 16, 24 and 32 +-respectively. This is not used by many drivers, and only needs to be +-specified when the speed rating of the RAMDAC is different from the +-defaults built in to driver, or when the driver can't auto-detect the +-correct defaults. Don't specify it unless the driver-specific +-documentation recommends that you do. ++printed on the RAMDAC chip). ++The speed is in MHz. ++When one value is given, it applies to all framebuffer pixel sizes. ++When multiple values are given, they apply to the framebuffer pixel sizes ++8, 16, 24 and 32 respectively. ++This is not used by many drivers, and only needs to be specified when the ++speed rating of the RAMDAC is different from the defaults built in to ++driver, or when the driver can't auto\-detect the correct defaults. ++Don't specify it unless the driver\-specific documentation recommends that ++you do. + .TP 7 + .BI "Clocks " "clock ..." +-specifies the pixel that are on your graphics board. The clocks are in +-MHz, and may be specified as a floating point number. The value is +-stored internally to the nearest kHz. The ordering of the clocks is +-important. It must match the order in which they are selected on the +-graphics board. Multiple ++specifies the pixel that are on your graphics board. ++The clocks are in MHz, and may be specified as a floating point number. ++The value is stored internally to the nearest kHz. ++The ordering of the clocks is important. ++It must match the order in which they are selected on the graphics board. ++Multiple + .B Clocks +-lines may be specified, and each is concatenated to form the list. Most +-drivers do not use this entry, and it is only required for some older +-boards with non-programmable clocks. Don't specify this entry unless +-the driver-specific documentation explicitly recommends that you do. ++lines may be specified, and each is concatenated to form the list. ++Most drivers do not use this entry, and it is only required for some older ++boards with non\-programmable clocks. ++Don't specify this entry unless the driver\-specific documentation ++explicitly recommends that you do. + .TP +-.BI "ClockChip \*q" clockchip-type \*q +-This optional entry is used to specify the clock chip type on graphics +-boards which have a programmable clock generator. Only a few __xservername__ +-drivers support programmable clock chips. For details, see the appropriate +-driver manual page. ++.BI "ClockChip \*q" clockchip\-type \*q ++This optional entry is used to specify the clock chip type on ++graphics boards which have a programmable clock generator. ++Only a few __xservername__ drivers support programmable clock chips. ++For details, see the appropriate driver manual page. + .TP 7 + .BI "VideoRam " "mem" + This optional entry specifies the amount of video ram that is installed +-on the graphics board. This is measured in kBytes. In most cases this +-is not required because the __xservername__ server probes the graphics board to +-determine this quantity. The driver-specific documentation should +-indicate when it might be needed. ++on the graphics board. ++This is measured in kBytes. ++In most cases this is not required because the __xservername__ server probes the graphics ++board to determine this quantity. ++The driver\-specific documentation should indicate when it might be needed. + .TP 7 + .BI "BiosBase " "baseaddress" +-This optional entry specifies the base address of the video BIOS for +-the VGA board. This address is normally auto-detected, and should only +-be specified if the driver-specific documentation recommends it. ++This optional entry specifies the base address of the video BIOS ++for the VGA board. ++This address is normally auto\-detected, and should only be specified if ++the driver\-specific documentation recommends it. + .TP 7 + .BI "MemBase " "baseaddress" + This optional entry specifies the memory base address of a graphics +-board's linear frame buffer. This entry is not used by many drivers, +-and it should only be specified if the driver-specific documentation +-recommends it. ++board's linear frame buffer. ++This entry is not used by many drivers, and it should only be specified if ++the driver\-specific documentation recommends it. + .TP 7 + .BI "IOBase " "baseaddress" +-This optional entry specifies the IO base address. This entry is not +-used by many drivers, and it should only be specified if the +-driver-specific documentation recommends it. ++This optional entry specifies the IO base address. ++This entry is not used by many drivers, and it should only be specified if ++the driver\-specific documentation recommends it. + .TP 7 + .BI "ChipID " "id" + This optional entry specifies a numerical ID representing the chip type. +-For PCI cards, it is usually the device ID. This can be used to override +-the auto-detection, but that should only be done when the driver-specific +-documentation recommends it. ++For PCI cards, it is usually the device ID. ++This can be used to override the auto\-detection, but that should only be ++done when the driver\-specific documentation recommends it. + .TP 7 + .BI "ChipRev " "rev" +-This optional entry specifies the chip revision number. This can be +-used to override the auto-detection, but that should only be done when +-the driver-specific documentation recommends it. ++This optional entry specifies the chip revision number. ++This can be used to override the auto\-detection, but that should only be ++done when the driver\-specific documentation recommends it. + .TP 7 + .BI "TextClockFreq " "freq" + This optional entry specifies the pixel clock frequency that is used +-for the regular text mode. The frequency is specified in MHz. This is +-rarely used. ++for the regular text mode. ++The frequency is specified in MHz. ++This is rarely used. + .ig + .TP 7 + This optional entry allows an IRQ number to be specified. +@@ -961,19 +1055,22 @@ + .B Options + Option flags may be specified in the + .B Device +-sections. These include driver-specific options and driver-independent +-options. The former are described in the driver-specific documentation. ++sections. ++These include driver\-specific options and driver\-independent options. ++The former are described in the driver\-specific documentation. + Some of the latter are described below in the section about the + .B Screen + section, and they may also be included here. + +-.SH VIDEOADAPTOR SECTION +-Nobody wants to say how this works. Maybe nobody knows ... ++.SH "VIDEOADAPTOR SECTION" ++Nobody wants to say how this works. ++Maybe nobody knows ... + +-.SH MONITOR SECTION ++.SH "MONITOR SECTION" + The config file may have multiple + .B Monitor +-sections. There should normally be at least one, for the monitor being used, ++sections. ++There should normally be at least one, for the monitor being used, + but a default configuration will be created when one isn't specified. + .PP + .B Monitor +@@ -997,22 +1094,25 @@ + .PP + The + .B Identifier +-entry specifies the unique name for this monitor. The ++entry specifies the unique name for this monitor. ++The + .B Monitor + section provides information about the specifications of the monitor, +-monitor-specific ++monitor\-specific + .BR Options , +-and information about the video modes to use with the monitor. Specifying +-video modes is optional because the server now has a built-in list of +-VESA standard modes. When modes are specified explicitly in the ++and information about the video modes to use with the monitor. ++Specifying video modes is optional because the server now has a built\-in ++list of VESA standard modes. ++When modes are specified explicitly in the + .B Monitor + section (with the + .BR Modes , + .BR ModeLine , + or + .B UseModes +-keywords), built-in modes with the same names are not included. Built-in +-modes with different names are, however, still implicitly included. ++keywords), built\-in modes with the same names are not included. ++Built\-in modes with different names are, however, still implicitly ++included. + .PP + The entries that may be used in + .B Monitor +@@ -1024,69 +1124,78 @@ + .BI "ModelName \*q" model \*q + This optional entry specifies the monitor's model. + .TP 7 +-.BI "HorizSync " "horizsync-range" ++.BI "HorizSync " "horizsync\-range" + gives the range(s) of horizontal sync frequencies supported by the + monitor. +-.I horizsync-range ++.I horizsync\-range + may be a comma separated list of either discrete values or ranges of +-values. A range of values is two values separated by a dash. By default +-the values are in units of kHz. They may be specified in MHz or Hz if ++values. ++A range of values is two values separated by a dash. ++By default the values are in units of kHz. ++They may be specified in MHz or Hz if + .B MHz + or + .B Hz +-is added to the end of the line. The data given here is used by the +-__xservername__ server to determine if video modes are within the specifications +-of the monitor. This information should be available in the monitor's +-handbook. If this entry is omitted, a default range of 28\-33kHz is +-used. ++is added to the end of the line. ++The data given here is used by the __xservername__ server to determine if video modes are ++within the specifications of the monitor. ++This information should be available in the monitor's handbook. ++If this entry is omitted, a default range of 28\-33kHz is used. + .TP 7 +-.BI "VertRefresh " "vertrefresh-range" ++.BI "VertRefresh " "vertrefresh\-range" + gives the range(s) of vertical refresh frequencies supported by the + monitor. +-.I vertrefresh-range ++.I vertrefresh\-range + may be a comma separated list of either discrete values or ranges of +-values. A range of values is two values separated by a dash. By default +-the values are in units of Hz. They may be specified in MHz or kHz if ++values. ++A range of values is two values separated by a dash. ++By default the values are in units of Hz. ++They may be specified in MHz or kHz if + .B MHz + or + .B kHz +-is added to the end of the line. The data given here is used by the +-__xservername__ server to determine if video modes are within the specifications +-of the monitor. This information should be available in the monitor's +-handbook. If this entry is omitted, a default range of 43-72Hz is used. ++is added to the end of the line. ++The data given here is used by the __xservername__ server to determine if video modes are ++within the specifications of the monitor. ++This information should be available in the monitor's handbook. ++If this entry is omitted, a default range of 43\-72Hz is used. + .TP 7 + .BI "DisplaySize " "width height" + This optional entry gives the width and height, in millimetres, of the +-picture area of the monitor. If given this is used to calculate the +-horizontal and vertical pitch (DPI) of the screen. ++picture area of the monitor. ++If given, this is used to calculate the horizontal and vertical pitch (DPI) ++of the screen. ++.TP 7 ++.BI "Gamma " "gamma\-value" ++.TP 7 ++.BI "Gamma " "red\-gamma green\-gamma blue\-gamma" ++This is an optional entry that can be used to specify the gamma ++correction for the monitor. ++It may be specified as either a single value or as three separate RGB ++values. ++The values should be in the range 0.1 to 10.0, and the default is 1.0. ++Not all drivers are capable of using this information. + .TP 7 +-.BI "Gamma " "gamma-value" +-.TP 7 +-.BI "Gamma " "red-gamma green-gamma blue-gamma" +-This is an optional entry that can be used to specify the gamma correction +-for the monitor. It may be specified as either a single value or as +-three separate RGB values. The values should be in the range 0.1 to +-10.0, and the default is 1.0. Not all drivers are capable of using this +-information. +-.TP 7 +-.BI "UseModes \*q" modesection-id \*q ++.BI "UseModes \*q" modesection\-id \*q + Include the set of modes listed in the + .B Modes + section called +-.IR modesection-id. ++.IR modesection\-id. + This make all of the modes defined in that section available for use by + this monitor. + .TP 7 + .BI "Mode \*q" name \*q +-This is an optional multi-line entry that can be used to provide +-definitions for video modes for the monitor. In most cases this isn't +-necessary because the built-in set of VESA standard modes will be +-sufficient. The ++This is an optional multi\-line entry that can be used to provide ++definitions for video modes for the monitor. ++In most cases this isn't necessary because the built\-in set of VESA ++standard modes will be sufficient. ++The + .B Mode +-keyword indicates the start of a multi-line video mode description. ++keyword indicates the start of a multi\-line video mode description. + The mode description is terminated with the + .B EndMode +-keyword. The mode description consists of the following entries: ++keyword. ++The mode description consists of the following entries: + .RS 7 + .TP 4 + .BI "DotClock " clock +@@ -1122,52 +1231,60 @@ + may be used to select the composite sync polarity. + .TP 4 + .BI "HSkew " hskew +-specifies the number of pixels (towards the right edge of the screen) +-by which the display enable signal is to be skewed. Not all drivers +-use this information. This option might become necessary to override +-the default value supplied by the server (if any). "Roving" horizontal +-lines indicate this value needs to be increased. If the last few pixels +-on a scan line appear on the left of the screen, this value should be +-decreased. ++specifies the number of pixels (towards the right edge of the screen) by ++which the display enable signal is to be skewed. ++Not all drivers use this information. ++This option might become necessary to override the default value supplied ++by the server (if any). ++\(lqRoving\(rq horizontal lines indicate this value needs to be increased. ++If the last few pixels on a scan line appear on the left of the screen, ++this value should be decreased. + .TP 4 + .BI "VScan " vscan + specifies the number of times each scanline is painted on the screen. +-Not all drivers use this information. Values less than 1 are treated +-as 1, which is the default. Generally, the ++Not all drivers use this information. ++Values less than 1 are treated as 1, which is the default. ++Generally, the + .B \*qDoubleScan\*q + .B Flag + mentioned above doubles this value. + .RE + .TP 7 +-.BI "ModeLine \*q" name \*q " mode-description" ++.BI "ModeLine \*q" name \*q " mode\-description" + This entry is a more compact version of the + .B Mode + entry, and it also can be used to specify video modes for the monitor. +-is a single line format for specifying video modes. In most cases this +-isn't necessary because the built-in set of VESA standard modes will be +-sufficient. ++is a single line format for specifying video modes. ++In most cases this isn't necessary because the built\-in set of VESA ++standard modes will be sufficient. + .PP + .RS 7 + The +-.I mode-description +-is in four sections, the first three of which are mandatory. The first +-is the dot (pixel) clock. This is a single number specifying the pixel +-clock rate for the mode in MHz. The second section is a list of four +-numbers specifying the horizontal timings. These numbers are the ++.I mode\-description ++is in four sections, the first three of which are mandatory. ++The first is the dot (pixel) clock. ++This is a single number specifying the pixel clock rate for the mode in ++MHz. ++The second section is a list of four numbers specifying the horizontal ++timings. ++These numbers are the + .IR hdisp , + .IR hsyncstart , + .IR hsyncend , + and + .I htotal +-values. The third section is a list of four numbers specifying the +-vertical timings. These numbers are the ++values. ++The third section is a list of four numbers specifying the vertical ++timings. ++These numbers are the + .IR vdisp , + .IR vsyncstart , + .IR vsyncend , + and + .I vtotal +-values. The final section is a list of flags specifying other +-characteristics of the mode. ++values. ++The final section is a list of flags specifying other characteristics of ++the mode. + .B Interlace + indicates that the mode is interlaced. + .B DoubleScan +@@ -1186,7 +1303,8 @@ + .B +CSync + and + .B \-CSync +-may be used to select the composite sync polarity. The ++may be used to select the composite sync polarity. ++The + .B HSkew + and + .B VScan +@@ -1205,20 +1323,22 @@ + and + .BR \*qSyncOnGreen\*q . + +-.SH MODES SECTION ++.SH "MODES SECTION" + The config file may have multiple + .B Modes +-sections, or none. These sections provide a way of defining sets of +-video modes independently of the ++sections, or none. ++These sections provide a way of defining sets of video modes independently ++of the + .B Monitor + sections. + .B Monitor + sections may include the definitions provided in these sections by + using the + .B UseModes +-keyword. In most cases the ++keyword. ++In most cases the + .B Modes +-sections are not necessary because the built-in set of VESA standard modes ++sections are not necessary because the built\-in set of VESA standard modes + will be sufficient. + .PP + .B Modes +@@ -1246,21 +1366,24 @@ + entries that are described above in the + .B Monitor + section. +-.SH SCREEN SECTION ++.SH "SCREEN SECTION" + The config file may have multiple + .B Screen +-sections. There must be at least one, for the "screen" being used. +-A "screen" represents the binding of a graphics device ++sections. ++There must be at least one, for the \(lqscreen\(rq being used. ++A \(lqscreen\(rq represents the binding of a graphics device + .RB ( Device + section) and a monitor + .RB ( Monitor +-section). A ++section). ++A + .B Screen +-section is considered "active" if it is referenced by an active ++section is considered \(lqactive\(rq if it is referenced by an active + .B ServerLayout + section or by the + .B \-screen +-command line option. If neither of those is present, the first ++command line option. ++If neither of those is present, the first + .B Screen + section found in the config file is considered the active one. + .PP +@@ -1288,94 +1411,104 @@ + .B Identifier + and + .B Device +-entries are mandatory. All others are optional. ++entries are mandatory. ++All others are optional. + .PP + The + .B Identifier +-entry specifies the unique name for this screen. The ++entry specifies the unique name for this screen. ++The + .B Screen + section provides information specific to the whole screen, including +-screen-specific ++screen\-specific + .BR Options . +-In multi-head configurations, there will be multiple active ++In multi\-head configurations, there will be multiple active + .B Screen + sections, one for each head. + The entries available + for this section are: + .TP 7 +-.BI "Device \*q" device-id \*q ++.BI "Device \*q" device\-id \*q + This mandatory entry specifies the + .B Device +-section to be used for this screen. This is what ties a specific +-graphics card to a screen. The +-.I device-id ++section to be used for this screen. ++This is what ties a specific graphics card to a screen. ++The ++.I device\-id + must match the + .B Identifier + of a + .B Device + section in the config file. + .TP 7 +-.BI "Monitor \*q" monitor-id \*q ++.BI "Monitor \*q" monitor\-id \*q + specifies which monitor description is to be used for this screen. + If a + .B Monitor +-name is not specified, a default configuration is used. Currently the default +-configuration may not function as expected on all platforms. ++name is not specified, a default configuration is used. ++Currently the default configuration may not function as expected on all ++platforms. + .TP 7 +-.BI "VideoAdaptor \*q" xv-id \*q ++.BI "VideoAdaptor \*q" xv\-id \*q + specifies an optional Xv video adaptor description to be used with this + screen. + .TP 7 + .BI "DefaultDepth " depth +-specifies which color depth the server should use by default. The ++specifies which color depth the server should use by default. ++The + .B \-depth +-command line option can be used to override this. If neither is specified, +-the default depth is driver-specific, but in most cases is 8. ++command line option can be used to override this. ++If neither is specified, the default depth is driver\-specific, but in most ++cases is 8. + .TP 7 + .BI "DefaultFbBpp " bpp +-specifies which framebuffer layout to use by default. The ++specifies which framebuffer layout to use by default. ++The + .B \-fbbpp +-command line option can be used to override this. In most cases the +-driver will chose the best default value for this. The only case where +-there is even a choice in this value is for depth 24, where some hardware +-supports both a packed 24 bit framebuffer layout and a sparse 32 bit +-framebuffer layout. ++command line option can be used to override this. ++In most cases the driver will chose the best default value for this. ++The only case where there is even a choice in this value is for depth 24, ++where some hardware supports both a packed 24 bit framebuffer layout and a ++sparse 32 bit framebuffer layout. + .TP 7 + .B Options + Various + .B Option + flags may be specified in the + .B Screen +-section. Some are driver-specific and are described in the driver +-documentation. Others are driver-independent, and will eventually be +-described here. ++section. ++Some are driver\-specific and are described in the driver documentation. ++Others are driver\-independent, and will eventually be described here. + .\" XXX These should really be in an xaa man page. + .TP 7 + .BI "Option \*qAccel\*q" + Enables XAA (X Acceleration Architecture), a mechanism that makes video +-cards' 2D hardware acceleration available to the +-__xservername__ server. This +-option is on by default, but it may be necessary to turn it off if there +-are bugs in the driver. There are many options to disable specific +-accelerated operations, listed below. Note that disabling an operation +-will have no effect if the operation is not accelerated (whether due to +-lack of support in the hardware or in the driver). ++cards' 2D hardware acceleration available to the __xservername__ server. ++This option is on by default, but it may be necessary to turn it off if ++there are bugs in the driver. ++There are many options to disable specific accelerated operations, listed ++below. ++Note that disabling an operation will have no effect if the operation is ++not accelerated (whether due to lack of support in the hardware or in the ++driver). + .TP 7 + .BI "Option \*qBiosLocation\*q \*q" address \*q + Set the location of the BIOS for the Int10 module. One may select a BIOS + of another card for posting or the legacy V_BIOS range located at 0xc0000 +-or an alternative address (BUS_ISA). This is only useful under very +-special circumstances and should be used with extreme care. ++or an alternative address (BUS_ISA). ++This is only useful under very special circumstances and should be used with ++extreme care. + .TP 7 + .BI "Option \*qInitPrimary\*q \*q" boolean \*q +-Use the Int10 module to initialize the primary graphics card. Normally, +-only secondary cards are soft-booted using the Int10 module, as the ++Use the Int10 module to initialize the primary graphics card. ++Normally, only secondary cards are soft-booted using the Int10 module, as the + primary card has already been initialized by the BIOS at boot time. + Default: false. + .TP 7 + .BI "Option \*qNoInt10\*q \*q" boolean \*q + Disables the Int10 module, a module that uses the int10 call to the BIOS +-of the graphics card to initialize it. Default: false. ++of the graphics card to initialize it. ++Default: false. + .TP 7 + .BI "Option \*qNoMTRR\*q" + Disables MTRR (Memory Type Range Register) support, a feature of modern +@@ -1385,14 +1518,14 @@ + .TP 7 + .BI "Option \*qXaaNoCPUToScreenColorExpandFill\*q" + Disables accelerated rectangular expansion blits from source patterns +-stored in system memory (using a memory-mapped aperture). ++stored in system memory (using a memory\-mapped aperture). + .TP 7 + .BI "Option \*qXaaNoColor8x8PatternFillRect\*q" +-Disables accelerated fills of a rectangular region with a full-color ++Disables accelerated fills of a rectangular region with a full\-color + pattern. + .TP 7 + .BI "Option \*qXaaNoColor8x8PatternFillTrap\*q" +-Disables accelerated fills of a trapezoidal region with a full-color ++Disables accelerated fills of a trapezoidal region with a full\-color + pattern. + .TP 7 + .BI "Option \*qXaaNoDashedBresenhamLine\*q" +@@ -1402,8 +1535,8 @@ + Disables accelerated dashed line draws between two arbitrary points. + .TP 7 + .BI "Option \*qXaaNoImageWriteRect\*q" +-Disables accelerated transfers of full-color rectangular patterns from +-system memory to video memory (using a memory-mapped aperture). ++Disables accelerated transfers of full\-color rectangular patterns from ++system memory to video memory (using a memory\-mapped aperture). + .TP 7 + .BI "Option \*qXaaNoMono8x8PatternFillRect\*q" + Disables accelerated fills of a rectangular region with a monochrome +@@ -1424,7 +1557,7 @@ + stored in system memory (one scan line at a time). + .TP 7 + .BI "Option \*qXaaNoScanlineImageWriteRect\*q" +-Disables accelerated transfers of full-color rectangular patterns from ++Disables accelerated transfers of full\-color rectangular patterns from + system memory to video memory (one scan line at a time). + .TP 7 + .BI "Option \*qXaaNoScreenToScreenColorExpandFill\*q" +@@ -1439,10 +1572,10 @@ + Disables accelerated solid Bresenham line draws. + .TP 7 + .BI "Option \*qXaaNoSolidFillRect\*q" +-Disables accelerated solid-color fills of rectangles. ++Disables accelerated solid\-color fills of rectangles. + .TP 7 + .BI "Option \*qXaaNoSolidFillTrap\*q" +-Disables accelerated solid-color fills of Bresenham trapezoids. ++Disables accelerated solid\-color fills of Bresenham trapezoids. + .TP 7 + .BI "Option \*qXaaNoSolidHorVertLine\*q" + Disables accelerated solid horizontal and vertical line draws. +@@ -1454,27 +1587,30 @@ + .B Screen + section may optionally contain one or more + .B Display +-subsections. Those subsections provide depth/fbbpp specific configuration +-information, and the one chosen depends on the depth and/or fbbpp that +-is being used for the screen. The ++subsections. ++Those subsections provide depth/fbbpp specific configuration information, ++and the one chosen depends on the depth and/or fbbpp that is being used for ++the screen. ++The + .B Display + subsection format is described in the section below. + +-.SH DISPLAY SUBSECTION ++.SH "DISPLAY SUBSECTION" + Each + .B Screen + section may have multiple + .B Display +-subsections. +-The "active" ++subsections. ++The \(lqactive\(rq + .B Display + subsection is the first that matches the depth and/or fbbpp values being + used, or failing that, the first that has neither a depth or fbbpp value +-specified. The ++specified. ++The + .B Display +-subsections are optional. When there isn't one that matches the depth +-and/or fbbpp values being used, all the parameters that can be specified +-here fall back to their defaults. ++subsections are optional. ++When there isn't one that matches the depth and/or fbbpp values being used, ++all the parameters that can be specified here fall back to their defaults. + .PP + .B Display + subsections have the following format: +@@ -1488,78 +1624,88 @@ + .B " EndSubSection" + .fi + .RE +-.PP + .TP 7 + .BI "Depth " depth + This entry specifies what colour depth the + .B Display +-subsection is to be used for. This entry is usually specified, +-but it may be omitted to create a match-all ++subsection is to be used for. ++This entry is usually specified, but it may be omitted to create a match\-all + .B Display + subsection or when wishing to match only against the + .B FbBpp +-parameter. The range of ++parameter. ++The range of + .I depth +-values that are allowed depends on the driver. Most driver support +-8, 15, 16 and 24. Some also support 1 and/or 4, and some may support +-other values (like 30). Note: ++values that are allowed depends on the driver. ++Most drivers support 8, 15, 16 and 24. ++Some also support 1 and/or 4, and some may support other values (like 30). ++Note: + .I depth + means the number of bits in a pixel that are actually used to determine +-the pixel colour. 32 is not a valid ++the pixel colour. ++32 is not a valid + .I depth +-value. Most hardware that uses 32 bits per pixel only uses 24 of them +-to hold the colour information, which means that the colour depth is +-24, not 32. ++value. ++Most hardware that uses 32 bits per pixel only uses 24 of them to hold the ++colour information, which means that the colour depth is 24, not 32. + .TP 7 + .BI "FbBpp " bpp + This entry specifies the framebuffer format this + .B Display +-subsection is to be used for. This entry is only needed when providing +-depth 24 configurations that allow a choice between a 24 bpp packed +-framebuffer format and a 32bpp sparse framebuffer format. In most cases +-this entry should not be used. ++subsection is to be used for. ++This entry is only needed when providing depth 24 configurations that allow ++a choice between a 24 bpp packed framebuffer format and a 32bpp sparse ++framebuffer format. ++In most cases this entry should not be used. + .TP 7 +-.BI "Weight " "red-weight green-weight blue-weight" ++.BI "Weight " "red\-weight green\-weight blue\-weight" + This optional entry specifies the relative RGB weighting to be used + for a screen is being used at depth 16 for drivers that allow multiple +-formats. This may also be specified from the command line with the ++formats. ++This may also be specified from the command line with the + .B \-weight +-option (see __xservername__(__appmansuffix__)). ++option (see ++.BR __xservername__(__appmansuffix__)). + .TP 7 + .BI "Virtual " "xdim ydim" + This optional entry specifies the virtual screen resolution to be used. + .I xdim + must be a multiple of either 8 or 16 for most drivers, and a multiple +-of 32 when running in monochrome mode. The given value will be rounded +-down if this is not the case. Video modes which are too large for the +-specified virtual size will be rejected. If this entry is not present, +-the virtual screen resolution will be set to accommodate all the valid +-video modes given in the ++of 32 when running in monochrome mode. ++The given value will be rounded down if this is not the case. ++Video modes which are too large for the specified virtual size will be ++rejected. ++If this entry is not present, the virtual screen resolution will be set to ++accommodate all the valid video modes given in the + .B Modes +-entry. Some drivers/hardware combinations do not support virtual screens. +-Refer to the appropriate driver-specific documentation for details. ++entry. ++Some drivers/hardware combinations do not support virtual screens. ++Refer to the appropriate driver\-specific documentation for details. + .TP 7 + .BI "ViewPort " "x0 y0" + This optional entry sets the upper left corner of the initial display. + This is only relevant when the virtual screen resolution is different +-from the resolution of the initial video mode. If this entry is not +-given, then the initial display will be centered in the virtual display +-area. +-.TP 7 +-.BI "Modes \*q" mode-name \*q " ..." +-This optional entry specifies the list of video modes to use. Each +-.I mode-name +-specified must be in double quotes. They must correspond to those +-specified or referenced in the appropriate ++from the resolution of the initial video mode. ++If this entry is not given, then the initial display will be centered in ++the virtual display area. ++.TP 7 ++.BI "Modes \*q" mode\-name \*q " ..." ++This optional entry specifies the list of video modes to use. ++Each ++.I mode\-name ++specified must be in double quotes. ++They must correspond to those specified or referenced in the appropriate + .B Monitor +-section (including implicitly referenced built-in VESA standard modes). ++section (including implicitly referenced built\-in VESA standard modes). + The server will delete modes from this list which don't satisfy various +-requirements. The first valid mode in this list will be the default +-display mode for startup. The list of valid modes is converted internally +-into a circular list. It is possible to switch to the next mode with +-.B Ctrl+Alt+Keypad-Plus ++requirements. ++The first valid mode in this list will be the default display mode for ++startup. ++The list of valid modes is converted internally into a circular list. ++It is possible to switch to the next mode with ++.B Ctrl+Alt+Keypad\-Plus + and to the previous mode with +-.BR Ctrl+Alt+Keypad-Minus . ++.BR Ctrl+Alt+Keypad\-Minus . + When this entry is omitted, the valid modes referenced by the appropriate + .B Monitor + section will be used. If the +@@ -1567,10 +1713,12 @@ + section contains no modes, then the selection will be taken from the + built-in VESA standard modes. + .TP 7 +-.BI "Visual \*q" visual-name \*q +-This optional entry sets the default root visual type. This may also +-be specified from the command line (see the Xserver(__appmansuffix__) man page). The +-visual types available for depth 8 are (default is ++.BI "Visual \*q" visual\-name \*q ++This optional entry sets the default root visual type. ++This may also be specified from the command line (see the ++.BR Xserver(__appmansuffix__) ++man page). ++The visual types available for depth 8 are (default is + .BR PseudoColor ): + .PP + .RS 11 +@@ -1616,43 +1764,48 @@ + .RE + .TP 7 + .BI "Black " "red green blue" +-This optional entry allows the "black" colour to be specified. This +-is only supported at depth 1. The default is black. ++This optional entry allows the \(lqblack\(rq colour to be specified. ++This is only supported at depth 1. ++The default is black. + .TP 7 + .BI "White " "red green blue" +-This optional entry allows the "white" colour to be specified. This +-is only supported at depth 1. The default is white. ++This optional entry allows the \(lqwhite\(rq colour to be specified. ++This is only supported at depth 1. ++The default is white. + .TP 7 + .B Options + Option flags may be specified in the + .B Display +-subsections. These may include driver-specific options and +-driver-independent options. The former are described in the +-driver-specific documentation. Some of the latter are described above +-in the section about the ++subsections. ++These may include driver\-specific options and driver\-independent options. ++The former are described in the driver\-specific documentation. ++Some of the latter are described above in the section about the + .B Screen + section, and they may also be included here. +-.SH SERVERLAYOUT SECTION ++.SH "SERVERLAYOUT SECTION" + The config file may have multiple + .B ServerLayout +-sections. +-A "server layout" represents the binding of one or more screens ++sections. ++A \(lqserver layout\(rq represents the binding of one or more screens + .RB ( Screen + sections) and one or more input devices + .RB ( InputDevice +-sections) to form a complete configuration. In multi-head configurations, +-it also specifies the relative layout of the heads. A ++sections) to form a complete configuration. ++In multi\-head configurations, it also specifies the relative layout of the ++heads. ++A + .B ServerLayout +-section is considered "active" if it is referenced by the ++section is considered \(lqactive\(rq if it is referenced by the + .B \-layout + command line option or by an + .B "Option \*qDefaultServerLayout\*q" + entry in the + .B ServerFlags +-section (the former takes precedence over the latter). If those options are +-not used, the first ++section (the former takes precedence over the latter). ++If those options are not used, the first + .B ServerLayout +-section found in the config file is considered the active one. If no ++section found in the config file is considered the active one. ++If no + .B ServerLayout + sections are present, the single active screen and two active (core) + input devices are selected as described in the relevant sections above. +@@ -1664,9 +1817,9 @@ + .nf + .B "Section \*qServerLayout\*q" + .BI " Identifier \*q" name \*q +-.BI " Screen \*q" screen-id \*q ++.BI " Screen \*q" screen\-id \*q + .I " ..." +-.BI " InputDevice \*q" idev-id \*q ++.BI " InputDevice \*q" idev\-id \*q + .I " ..." + .I " options" + .I " ..." +@@ -1684,10 +1837,11 @@ + .PP + The + .B Identifier +-entry specifies the unique name for this server layout. The ++entry specifies the unique name for this server layout. ++The + .B ServerLayout + section provides information specific to the whole session, including +-session-specific ++session\-specific + .BR Options . + The + .B ServerFlags +@@ -1698,21 +1852,25 @@ + .PP + The entries that may be used in this section are described here. + .TP 7 +-.BI "Screen " "screen-num" " \*qscreen-id\*q " "position-information" ++.BI "Screen " "screen\-num" " \*qscreen\-id\*q " "position\-information" + One of these entries must be given for each screen being used in +-a session. The +-.I screen-id ++a session. ++The ++.I screen\-id + field is mandatory, and specifies the + .B Screen +-section being referenced. The +-.I screen-num ++section being referenced. ++The ++.I screen\-num + field is optional, and may be used to specify the screen number +-in multi-head configurations. When this field is omitted, the +-screens will be numbered in the order that they are listed in. +-The numbering starts from 0, and must be consecutive. The +-.I position-information +-field describes the way multiple screens are positioned. There are +-a number of different ways that this information can be provided: ++in multi\-head configurations. ++When this field is omitted, the screens will be numbered in the order that ++they are listed in. ++The numbering starts from 0, and must be consecutive. ++The ++.I position\-information ++field describes the way multiple screens are positioned. ++There are a number of different ways that this information can be provided: + .RS 7 + .TP 4 + .I "x y" +@@ -1722,48 +1880,53 @@ + .RI ( x , y ). + The + .B Absolute +-keyword is optional. Some older versions of __xservername__ (4.2 and earlier) don't +-recognise the ++keyword is optional. ++Some older versions of __xservername__ (4.2 and earlier) don't recognise the + .B Absolute + keyword, so it's safest to just specify the coordinates without it. + .TP 4 +-.BI "RightOf \*q" screen-id \*q ++.BI "RightOf \*q" screen\-id \*q + .TP 4 +-.BI "LeftOf \*q" screen-id \*q ++.BI "LeftOf \*q" screen\-id \*q + .TP 4 +-.BI "Above \*q" screen-id \*q ++.BI "Above \*q" screen\-id \*q + .TP 4 +-.BI "Below \*q" screen-id \*q ++.BI "Below \*q" screen\-id \*q + .TP 4 +-.BI "Relative \*q" screen-id \*q " x y" +-These give the screen's location relative to another screen. The first four +-position the screen immediately to the right, left, above or below the +-other screen. When positioning to the right or left, the top edges are +-aligned. When positioning above or below, the left edges are aligned. ++.BI "Relative \*q" screen\-id \*q " x y" ++These give the screen's location relative to another screen. ++The first four position the screen immediately to the right, left, above or ++below the other screen. ++When positioning to the right or left, the top edges are aligned. ++When positioning above or below, the left edges are aligned. + The + .B Relative + form specifies the offset of the screen's origin (upper left corner) + relative to the origin of another screen. + .RE + .TP 7 +-.BI "InputDevice \*q" idev-id "\*q \*q" option \*q " ..." ++.BI "InputDevice \*q" idev\-id "\*q \*q" option \*q " ..." + One of these entries should be given for each input device being used in +-a session. Normally at least two are required, one each for the core +-pointer and keyboard devices. If either of those is missing, suitable ++a session. ++Normally at least two are required, one each for the core pointer and ++keyboard devices. ++If either of those is missing, suitable + .B InputDevice + entries are searched for using the method described above in the + .B INPUTDEVICE + section. The +-.I idev-id ++.I idev\-id + field is mandatory, and specifies the name of the + .B InputDevice +-section being referenced. Multiple ++section being referenced. ++Multiple + .I option +-fields may be specified, each in double quotes. The options permitted +-here are any that may also be given in the ++fields may be specified, each in double quotes. ++The options permitted here are any that may also be given in the + .B InputDevice +-sections. Normally only session-specific input device options would be +-used here. The most commonly used options are: ++sections. ++Normally only session\-specific input device options would be used here. ++The most commonly used options are: + .PP + .RS 11 + .nf +@@ -1781,8 +1944,9 @@ + .B Options + In addition to the following, any option permitted in the + .B ServerFlags +-section may also be specified here. When the same option appears in both +-places, the value given here overrides the one given in the ++section may also be specified here. ++When the same option appears in both places, the value given here overrides ++the one given in the + .B ServerFlags + section. + .TP 7 +@@ -1795,9 +1959,11 @@ + .BR "DEVICE SECTION" , + above) for the format of the + .I bus\-id +-parameter. This option overrides ++parameter. ++This option overrides + .BR SingleCard , +-if specified. At present, only PCI devices can be isolated in this manner. ++if specified. ++At present, only PCI devices can be isolated in this manner. + .TP 7 + .BI "Option \*qSingleCard\*q \*q" boolean \*q + As +@@ -1821,68 +1987,102 @@ + .B "EndSection" + .fi + .RE +-.SH DRI SECTION ++.SH "DRI SECTION" + This optional section is used to provide some information for the +-Direct Rendering Infrastructure. Details about the format of this section +-can be found on-line at ++Direct Rendering Infrastructure. ++Details about the format of this section ++can be found in the README.DRI document, which is also available on-line at + .IR . +-.SH VENDOR SECTION ++.SH "VENDOR SECTION" + The optional + .B Vendor +-section may be used to provide vendor-specific configuration information. ++section may be used to provide vendor\-specific configuration information. + Multiple + .B Vendor + sections may be present, and they may contain an + .B Identifier + entry and multiple + .B Option +-flags. The data therein is not used in this release. ++flags. ++The data therein is not used in this release. + .PP + .SH FILES +-For an example of an __xconfigfile__ file, see the file installed as ++For an example of an ++.I __xconfigfile__ ++file, see the file installed as + __projectroot__/lib/X11/__xconfigfile__.eg. +-.fi + .SH "SEE ALSO" +-X(__miscmansuffix__), +-Xserver(__appmansuffix__), +-__xservername__(__appmansuffix__), +-apm(__drivermansuffix__), +-.\" .IR ati(__drivermansuffix__), +-chips(__drivermansuffix__), +-cirrus(__drivermansuffix__), +-cyrix(__drivermansuffix__), +-fbdev(__drivermansuffix__), +-glide(__drivermansuffix__), +-glint(__drivermansuffix__), +-i128(__drivermansuffix__), +-i740(__drivermansuffix__), +-i810(__drivermansuffix__), +-imstt(__drivermansuffix__), +-mga(__drivermansuffix__), +-neomagic(__drivermansuffix__), +-nv(__drivermansuffix__), +-r128(__drivermansuffix__), +-rendition(__drivermansuffix__), +-savage(__drivermansuffix__), +-s3virge(__drivermansuffix__), +-.\" .IR shadowfb(__drivermansuffix__), +-siliconmotion(__drivermansuffix__), +-sis(__drivermansuffix__), +-sunbw2(__drivermansuffix__), +-suncg14(__drivermansuffix__), +-suncg3(__drivermansuffix__), +-suncg6(__drivermansuffix__), +-sunffb(__drivermansuffix__), +-sunleo(__drivermansuffix__), +-suntcx(__drivermansuffix__), +-tdfx(__drivermansuffix__), +-tga(__drivermansuffix__), +-trident(__drivermansuffix__), +-tseng(__drivermansuffix__), +-v4l(__drivermansuffix__), +-vesa(__drivermansuffix__), +-vga(__drivermansuffix__), +-vmware(__drivermansuffix__), ++General: ++.BR X (__miscmansuffix__), ++.BR Xserver (__appmansuffix__), ++.BR __xservername__ (__appmansuffix__). ++.PP ++.B Not all modules or interfaces are available on all platforms. ++.PP ++Display drivers: ++.BR apm (__drivermansuffix__), ++.\" .BR ati (__drivermansuffix__), ++.BR chips (__drivermansuffix__), ++.BR cirrus (__drivermansuffix__), ++.BR cyrix (__drivermansuffix__), ++.BR fbdev (__drivermansuffix__), ++.BR glide (__drivermansuffix__), ++.BR glint (__drivermansuffix__), ++.BR i128 (__drivermansuffix__), ++.BR i740 (__drivermansuffix__), ++.BR i810 (__drivermansuffix__), ++.BR imstt (__drivermansuffix__), ++.BR mga (__drivermansuffix__), ++.BR neomagic (__drivermansuffix__), ++.BR nv (__drivermansuffix__), ++.BR r128 (__drivermansuffix__), ++.BR rendition (__drivermansuffix__), ++.BR savage (__drivermansuffix__), ++.BR s3virge (__drivermansuffix__), ++.BR siliconmotion (__drivermansuffix__), ++.BR sis (__drivermansuffix__), ++.BR sunbw2 (__drivermansuffix__), ++.BR suncg14 (__drivermansuffix__), ++.BR suncg3 (__drivermansuffix__), ++.BR suncg6 (__drivermansuffix__), ++.BR sunffb (__drivermansuffix__), ++.BR sunleo (__drivermansuffix__), ++.BR suntcx (__drivermansuffix__), ++.BR tdfx (__drivermansuffix__), ++.BR tga (__drivermansuffix__), ++.BR trident (__drivermansuffix__), ++.BR tseng (__drivermansuffix__), ++.BR vesa (__drivermansuffix__), ++.BR vga (__drivermansuffix__), ++.BR via (__drivermansuffix__), ++.BR vmware (__drivermansuffix__). ++.PP ++Input drivers: ++.\" .BR acecad (__drivermansuffix__), ++.\" .BR calcomp (__drivermansuffix__), ++.BR citron (__drivermansuffix__), ++.BR dmc (__drivermansuffix__), ++.BR dynapro (__drivermansuffix__), ++.BR elographics (__drivermansuffix__), ++.BR fpit (__drivermansuffix__), ++.BR js_x (__drivermansuffix__), ++.BR kbd (__drivermansuffix__), ++.BR keyboard (__drivermansuffix__), ++.\" .BR magictouch (__drivermansuffix__), ++.BR microtouch (__drivermansuffix__), ++.BR mouse (__drivermansuffix__), ++.BR mutouch (__drivermansuffix__), ++.BR palmax (__drivermansuffix__), ++.BR penmount (__drivermansuffix__), ++.BR tek4957 (__drivermansuffix__), ++.\" .BR ur98 (__drivermansuffix__), ++.BR void (__drivermansuffix__), ++.BR wacom (__drivermansuffix__). ++.PP ++Other modules and interfaces: ++.BR fbdevhw (__drivermansuffix__), ++.\" .BR shadowfb (__drivermansuffix__), ++.BR v4l (__drivermansuffix__). + .br + .SH AUTHORS + This manual page was largely rewritten by David Dawes --- xorg-server-1.1.1.orig/debian/patches/009_fedora_mesa_copy_sub_buffer.patch +++ xorg-server-1.1.1/debian/patches/009_fedora_mesa_copy_sub_buffer.patch @@ -0,0 +1,361 @@ +--- ./GL/glx/glxdrawable.h.mesa-copy-sub-buffer 2006-07-06 21:40:41.000000000 -0400 ++++ ./GL/glx/glxdrawable.h 2006-07-06 21:56:33.000000000 -0400 +@@ -58,6 +58,8 @@ + void (*destroy)(__GLXdrawable *private); + GLboolean (*resize)(__GLXdrawable *private); + GLboolean (*swapBuffers)(__GLXdrawable *); ++ void (*copySubBuffer)(__GLXdrawable *drawable, ++ int x, int y, int w, int h); + + /* + ** list of drawable private structs +--- ./GL/glx/glxcmds.c.mesa-copy-sub-buffer 2006-07-06 21:40:41.000000000 -0400 ++++ ./GL/glx/glxcmds.c 2006-07-06 22:30:01.000000000 -0400 +@@ -1331,21 +1331,14 @@ + + /*****************************************************************************/ + +-/* +-** NOTE: There is no portable implementation for swap buffers as of +-** this time that is of value. Consequently, this code must be +-** implemented by somebody other than SGI. +-*/ +-int __glXSwapBuffers(__GLXclientState *cl, GLbyte *pc) ++static __GLXdrawable * ++SyncContextGetDrawable (__GLXclientState *cl, GLXContextTag tag, ++ XID drawId, int *status) + { + ClientPtr client = cl->client; + DrawablePtr pDraw; +- xGLXSwapBuffersReq *req = (xGLXSwapBuffersReq *) pc; +- GLXContextTag tag = req->contextTag; +- XID drawId = req->drawable; + __GLXpixmap *pGlxPixmap; + __GLXcontext *glxc = NULL; +- int error; + + /* + ** Check that the GLX drawable is valid. +@@ -1361,11 +1354,11 @@ + ** Drawable is an X pixmap, which is not allowed. + */ + client->errorValue = drawId; +- return __glXBadDrawable; ++ *status = __glXBadDrawable; ++ return NULL; + } + } else { +- pGlxPixmap = (__GLXpixmap *) LookupIDByType(drawId, +- __glXPixmapRes); ++ pGlxPixmap = (__GLXpixmap *) LookupIDByType(drawId, __glXPixmapRes); + if (pGlxPixmap) { + /* + ** Drawable is a GLX pixmap. +@@ -1375,21 +1368,23 @@ + ** Drawable is neither a X window nor a GLX pixmap. + */ + client->errorValue = drawId; +- return __glXBadDrawable; ++ *status = __glXBadDrawable; ++ return NULL; + } + } + + if (tag) { + glxc = __glXLookupContextByTag(cl, tag); + if (!glxc) { +- return __glXBadContextTag; ++ *status = __glXBadContextTag; ++ return NULL; + } + /* + ** The calling thread is swapping its current drawable. In this case, + ** glxSwapBuffers is in both GL and X streams, in terms of + ** sequentiality. + */ +- if (__glXForceCurrent(cl, tag, &error)) { ++ if (__glXForceCurrent(cl, tag, status)) { + /* + ** Do whatever is needed to make sure that all preceding requests + ** in both streams are completed before the swap is executed. +@@ -1397,33 +1392,53 @@ + CALL_Finish( GET_DISPATCH(), () ); + __GLX_NOTE_FLUSHED_CMDS(glxc); + } else { +- return error; ++ return NULL; + } + } + ++ *status = Success; + if (pDraw) { +- __GLXdrawable *glxPriv; ++ __GLXdrawable *glxPriv; + + if (glxc) { + glxPriv = __glXGetDrawable(glxc, pDraw, drawId); + if (glxPriv == NULL) { +- return __glXBadDrawable; ++ *status = __glXBadDrawable; ++ return NULL; + } + } + else { + glxPriv = __glXFindDrawable(drawId); + if (glxPriv == NULL) { + /* This is a window we've never seen before, do nothing */ +- return Success; ++ return NULL; + } + } + +- if ((*glxPriv->swapBuffers)(glxPriv) == GL_FALSE) { +- return __glXBadDrawable; +- } ++ return glxPriv; + } + +- return Success; ++ return NULL; ++} ++ ++/* ++** NOTE: There is no portable implementation for swap buffers as of ++** this time that is of value. Consequently, this code must be ++** implemented by somebody other than SGI. ++*/ ++int __glXSwapBuffers(__GLXclientState *cl, GLbyte *pc) ++{ ++ xGLXSwapBuffersReq *req = (xGLXSwapBuffersReq *) pc; ++ GLXContextTag tag = req->contextTag; ++ __GLXdrawable *glxPriv; ++ int status; ++ ++ glxPriv = SyncContextGetDrawable (cl, tag, req->drawable, &status); ++ if (glxPriv && (*glxPriv->swapBuffers)(glxPriv) == GL_FALSE) { ++ return __glXBadDrawable; ++ } ++ ++ return status; + } + + +@@ -1544,6 +1559,30 @@ + pGlxPixmap); + } + ++int __glXCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc) ++{ ++ xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc; ++ GLXContextTag tag = req->contextTag; ++ __GLXdrawable *glxPriv; ++ GLXDrawable drawId; ++ int x, y, width, height; ++ int status; ++ ++ pc += __GLX_VENDPRIV_HDR_SIZE; ++ ++ drawId = *((CARD32 *) (pc)); ++ x = *((INT32 *) (pc + 4)); ++ y = *((INT32 *) (pc + 8)); ++ width = *((INT32 *) (pc + 12)); ++ height = *((INT32 *) (pc + 16)); ++ ++ glxPriv = SyncContextGetDrawable (cl, tag, drawId, &status); ++ if (glxPriv) ++ (*glxPriv->copySubBuffer)(glxPriv, x, y, width, height); ++ ++ return status; ++} ++ + /* + ** Get drawable attributes + */ +@@ -2173,7 +2212,9 @@ + case X_GLXvop_BindTexImageEXT: + return __glXBindTexImageEXT(cl, pc); + case X_GLXvop_ReleaseTexImageEXT: +- return __glXReleaseTexImageEXT(cl, pc); ++ return __glXReleaseTexImageEXT(cl, pc); ++ case X_GLXvop_CopySubBufferMESA: ++ return __glXCopySubBufferMESA(cl, pc); + } + #endif + +--- ./GL/glx/glxdri.c.mesa-copy-sub-buffer 2006-07-06 21:40:41.000000000 -0400 ++++ ./GL/glx/glxdri.c 2006-07-06 21:59:38.000000000 -0400 +@@ -112,12 +112,28 @@ + * months ago. :( + * 20050727 - Gut all the old interfaces. This breaks compatability with + * any DRI driver built to any previous version. ++ * 20060314 - Added support for GLX_MESA_copy_sub_buffer. + */ ++ + #define INTERNAL_VERSION 20050727 + + static const char CREATE_NEW_SCREEN_FUNC[] = + "__driCreateNewScreen_" STRINGIFY (INTERNAL_VERSION); + ++/* The DRI driver entry point version wasn't bumped when the ++ * copySubBuffer functionality was added to the DRI drivers, but the ++ * functionality is still conditional on the value of the ++ * internal_api_version passed to __driCreateNewScreen. However, the ++ * screen constructor doesn't fail for a DRI driver that's older than ++ * the passed in version number, so there's no way we can know for ++ * sure that we can actually use the copySubBuffer functionality. But ++ * since the earliest (and at this point only) released mesa version ++ * (6.5) that uses the 20050727 entry point does have copySubBuffer, ++ * we'll just settle for that. We still have to pass in a higher to ++ * the screen constructor to enable the functionality. ++ */ ++#define COPY_SUB_BUFFER_INTERNAL_VERSION 20060314 ++ + static void + __glXDRIleaveServer(void) + { +@@ -177,6 +193,27 @@ + return TRUE; + } + ++static void ++__glXDRIdrawableCopySubBuffer(__GLXdrawable *basePrivate, ++ int x, int y, int w, int h) ++{ ++ __GLXDRIdrawable *private = (__GLXDRIdrawable *) basePrivate; ++ __GLXDRIscreen *screen; ++ ++ /* FIXME: We're jumping through hoops here to get the DRIdrawable ++ * which the dri driver tries to keep to it self... cf. FIXME in ++ * createDrawable. */ ++ ++ screen = (__GLXDRIscreen *) __glXgetActiveScreen(private->base.pDraw->pScreen->myNum); ++ private->driDrawable = (screen->driScreen.getDrawable)(NULL, ++ private->base.drawId, ++ screen->driScreen.private); ++ ++ (*private->driDrawable->copySubBuffer)(NULL, ++ private->driDrawable->private, ++ x, y, w, h); ++} ++ + static __GLXdrawable * + __glXDRIcontextCreateDrawable(__GLXcontext *context, + DrawablePtr pDraw, +@@ -195,10 +232,11 @@ + return NULL; + } + +- private->base.destroy = __glXDRIdrawableDestroy; +- private->base.resize = __glXDRIdrawableResize; +- private->base.swapBuffers = __glXDRIdrawableSwapBuffers; +- ++ private->base.destroy = __glXDRIdrawableDestroy; ++ private->base.resize = __glXDRIdrawableResize; ++ private->base.swapBuffers = __glXDRIdrawableSwapBuffers; ++ private->base.copySubBuffer = __glXDRIdrawableCopySubBuffer; ++ + #if 0 + /* FIXME: It would only be natural that we called + * driScreen->createNewDrawable here but the DRI drivers manage +@@ -218,7 +256,6 @@ + return &private->base; + } + +- + static void + __glXDRIcontextDestroy(__GLXcontext *baseContext) + { +@@ -770,7 +807,7 @@ + __DRIframebuffer framebuffer; + int fd = -1; + int status; +- int api_ver = INTERNAL_VERSION; ++ int api_ver = COPY_SUB_BUFFER_INTERNAL_VERSION; + drm_magic_t magic; + drmVersionPtr version; + char *driverName; +--- ./GL/glx/g_disptab.h.mesa-copy-sub-buffer 2006-03-11 19:11:33.000000000 -0500 ++++ ./GL/glx/g_disptab.h 2006-07-06 21:56:33.000000000 -0400 +@@ -48,6 +48,7 @@ + extern int __glXSwapBuffers(__GLXclientState*, GLbyte*); + extern int __glXBindTexImageEXT(__GLXclientState *cl, GLbyte *pc); + extern int __glXReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc); ++extern int __glXCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc); + extern int __glXGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc); + extern int __glXUseXFont(__GLXclientState*, GLbyte*); + extern int __glXCreateGLXPixmap(__GLXclientState*, GLbyte*); +@@ -76,6 +77,7 @@ + extern int __glXSwapSwapBuffers(__GLXclientState*, GLbyte*); + extern int __glXSwapBindTexImageEXT(__GLXclientState *cl, GLbyte *pc); + extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc); ++extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc); + extern int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc); + extern int __glXSwapUseXFont(__GLXclientState*, GLbyte*); + extern int __glXSwapCreateGLXPixmap(__GLXclientState*, GLbyte*); +@@ -105,4 +107,11 @@ + extern __GLXdispatchSingleProcPtr __glXSingleTable[__GLX_SINGLE_TABLE_SIZE]; + extern __GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE]; + extern __GLXdispatchSingleProcPtr __glXSwapSingleTable[__GLX_SINGLE_TABLE_SIZE]; ++ ++/* Copied from mesa src/glx/x11/glxcmds.c ++ * ++ * Apparently there's no standardized opcode for this extension. ++ */ ++#define X_GLXvop_CopySubBufferMESA 5154 /* temporary */ ++ + #endif /* _GLX_g_disptab_h_ */ +--- ./GL/glx/glxscreens.c.mesa-copy-sub-buffer 2006-03-20 15:10:29.000000000 -0500 ++++ ./GL/glx/glxscreens.c 2006-07-06 21:56:33.000000000 -0400 +@@ -139,6 +139,7 @@ + "GLX_SGIX_swap_barrier " + #endif + "GLX_SGIX_fbconfig " ++ "GLX_MESA_copy_sub_buffer " + ; + + __GLXscreen **__glXActiveScreens; +--- ./GL/glx/glxcmdsswap.c.mesa-copy-sub-buffer 2006-04-02 22:09:15.000000000 -0400 ++++ ./GL/glx/glxcmdsswap.c 2006-07-06 21:56:33.000000000 -0400 +@@ -432,6 +432,31 @@ + return __glXReleaseTexImageEXT(cl, (GLbyte *)pc); + } + ++int __glXSwapCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc) ++{ ++ xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc; ++ GLXDrawable *drawId; ++ int *buffer; ++ ++ (void) drawId; ++ (void) buffer; ++ ++ __GLX_DECLARE_SWAP_VARIABLES; ++ ++ pc += __GLX_VENDPRIV_HDR_SIZE; ++ ++ __GLX_SWAP_SHORT(&req->length); ++ __GLX_SWAP_INT(&req->contextTag); ++ __GLX_SWAP_INT(pc); ++ __GLX_SWAP_INT(pc + 4); ++ __GLX_SWAP_INT(pc + 8); ++ __GLX_SWAP_INT(pc + 12); ++ __GLX_SWAP_INT(pc + 16); ++ ++ return __glXCopySubBufferMESA(cl, pc); ++ ++} ++ + int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc) + { + xGLXVendorPrivateWithReplyReq *req = (xGLXVendorPrivateWithReplyReq *)pc; +@@ -899,7 +924,9 @@ + case X_GLXvop_BindTexImageEXT: + return __glXSwapBindTexImageEXT(cl, pc); + case X_GLXvop_ReleaseTexImageEXT: +- return __glXSwapReleaseTexImageEXT(cl, pc); ++ return __glXSwapReleaseTexImageEXT(cl, pc); ++ case X_GLXvop_CopySubBufferMESA: ++ return __glXSwapCopySubBufferMESA(cl, pc); + } + #endif + --- xorg-server-1.1.1.orig/debian/patches/06_arm_is_not_x86_and_has_no_vga.diff +++ xorg-server-1.1.1/debian/patches/06_arm_is_not_x86_and_has_no_vga.diff @@ -0,0 +1,97 @@ +$Id: 315_arm_is_not_x86_and_has_no_vga.diff 689 2005-10-19 22:11:30Z dnusinow $ + +The files xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c + xc/programs/Xserver/hw/xfree86/common/xf86Bus.c and + xc/programs/Xserver/hw/xfree86/vgahw/vhaHW.h +require some checks for the ARM architecture to prevent the X server from +trying to execute code meant only for x86. This is consistent with other +non-x86 platforms. + +This patch by Peter Naulls, updated by Wookey. + +Not submitted to XFree86. + +Index: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c +=================================================================== +--- xc/programs/Xserver/hw/xfree86/common/xf86Bus.c.orig 2005-10-18 19:44:24.000000000 -0400 ++++ xc/programs/Xserver/hw/xfree86/common/xf86Bus.c 2005-10-18 22:40:27.000000000 -0400 +@@ -3078,7 +3078,7 @@ + CheckGenericGA() + { + /* This needs to be changed for multiple domains */ +-#if !defined(__sparc__) && !defined(__powerpc__) && !defined(__mips__) && !defined(__ia64__) ++#if !defined(__sparc__) && !defined(__powerpc__) && !defined(__mips__) && !defined(__ia64__) && !defined(__arm__) + IOADDRESS GenericIOBase = VGAHW_GET_IOBASE(); + CARD8 CurrentValue, TestValue; + +Index: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c +=================================================================== +--- xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c.orig 2005-10-18 19:44:57.000000000 -0400 ++++ xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c 2005-10-18 22:40:27.000000000 -0400 +@@ -466,7 +466,7 @@ + Base,realBase,alignOff); + #endif + +-#if defined(__ia64__) ++#if defined(__ia64__) || defined(__arm__) + #ifndef MAP_WRITECOMBINED + #define MAP_WRITECOMBINED 0x00010000 + #endif +@@ -596,7 +596,7 @@ + #if defined(__powerpc__) + munmap(ioBase, 0x20000); + ioBase = NULL; +-#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) ++#elif !defined(__mc68000__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__) + iopl(0); + ioperm(0, 1024, 0); + #endif +@@ -615,7 +615,7 @@ + Bool + xf86DisableInterrupts() + { +-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__ia64__) && !defined(__sh__) && !defined(__hppa__) ++#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__ia64__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__) + if (!ExtendedEnabled) + if (iopl(3) || ioperm(0, 1024, 1)) + return (FALSE); +@@ -634,7 +634,7 @@ + asm("cli"); + # endif + #endif +-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__ia64__) && !defined(__hppa__) ++#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__ia64__) && !defined(__hppa__) && !defined(__arm__) + if (!ExtendedEnabled) { + iopl(0); + ioperm(0, 1024, 0); +@@ -647,7 +647,7 @@ + void + xf86EnableInterrupts() + { +-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__ia64__) && !defined(__sh__) && !defined(__hppa__) ++#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__ia64__) && !defined(__sh__) && !defined(__hppa__) && !defined(__arm__) + if (!ExtendedEnabled) + if (iopl(3) || ioperm(0, 1024, 1)) + return; +@@ -666,7 +666,7 @@ + asm("sti"); + # endif + #endif +-#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__ia64__) && !defined(__hppa__) ++#if !defined(__mc68000__) && !defined(__powerpc__) && !defined(__sparc__) && !defined(__mips__) && !defined(__sh__) && !defined(__ia64__) && !defined(__hppa__) && !defined(__arm__) + if (!ExtendedEnabled) { + iopl(0); + ioperm(0, 1024, 0); +Index: xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.h +=================================================================== +--- xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.h.orig 2005-10-18 19:45:00.000000000 -0400 ++++ xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.h 2005-10-18 22:40:27.000000000 -0400 +@@ -176,7 +176,7 @@ + #define BITS_PER_GUN 6 + #define COLORMAP_SIZE 256 + +-#if defined(__powerpc__) ++#if defined(__powerpc__) || defined(__arm__) + #define DACDelay(hw) /* No legacy VGA support */ + #else + #define DACDelay(hw) \ --- xorg-server-1.1.1.orig/debian/patches/008_fedora_gl_include_inferiors.patch +++ xorg-server-1.1.1/debian/patches/008_fedora_gl_include_inferiors.patch @@ -0,0 +1,67 @@ +--- ./hw/xfree86/dri/dri.c-gl-include-inferiors 2006-04-02 21:34:54.000000000 -0400 ++++ ./hw/xfree86/dri/dri.c 2006-06-12 20:58:00.000000000 -0400 +@@ -69,6 +69,8 @@ + #include "mi.h" + #include "mipointer.h" + ++#include "selection.h" ++ + #if defined(XFree86LOADER) && !defined(PANORAMIX) + extern Bool noPanoramiXExtension; + #endif +@@ -1116,6 +1118,31 @@ + return TRUE; + } + ++extern Selection *CurrentSelections; ++extern int NumCurrentSelections; ++ ++static Bool ++DRIIncludeInferiors(void) ++{ ++ ++ static Atom atom = BAD_RESOURCE; ++ static char atom_name[] = "_COMPIZ_GL_INCLUDE_INFERIORS"; ++ int i; ++ ++ if (atom == BAD_RESOURCE) { ++ atom = MakeAtom(atom_name, strlen(atom_name), True); ++ if (atom == BAD_RESOURCE) ++ return False; ++ } ++ ++ for (i = 0; i < NumCurrentSelections; i++) ++ if (CurrentSelections[i].selection == atom && ++ CurrentSelections[i].window != None) ++ return True; ++ ++ return False; ++} ++ + Bool + DRIGetDrawableInfo(ScreenPtr pScreen, + DrawablePtr pDrawable, +@@ -1134,6 +1161,7 @@ + { + DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen); + DRIDrawablePrivPtr pDRIDrawablePriv, pOldDrawPriv; ++ RegionPtr pClipList; + WindowPtr pWin, pOldWin; + int i; + +@@ -1227,8 +1255,13 @@ + #endif + *W = (int)(pWin->drawable.width); + *H = (int)(pWin->drawable.height); +- *numClipRects = REGION_NUM_RECTS(&pWin->clipList); +- *pClipRects = (drm_clip_rect_t *)REGION_RECTS(&pWin->clipList); ++ if (DRIIncludeInferiors()) ++ pClipList = &pWin->borderClip; ++ else ++ pClipList = &pWin->clipList; ++ ++ *numClipRects = REGION_NUM_RECTS(pClipList); ++ *pClipRects = (drm_clip_rect_t *)REGION_RECTS(pClipList); + + if (!*numClipRects && pDRIPriv->fullscreen) { + /* use fake full-screen clip rect */ --- xorg-server-1.1.1.orig/debian/patches/016_fdo7482_xdmx_render_fix.patch +++ xorg-server-1.1.1/debian/patches/016_fdo7482_xdmx_render_fix.patch @@ -0,0 +1,14 @@ +4c225a3a8b2e7e5e5510347d8473f1318bbac769 +diff --git a/hw/dmx/dmxpict.c b/hw/dmx/dmxpict.c +index 9a76a66..9cdd123 100644 +--- a/hw/dmx/dmxpict.c ++++ b/hw/dmx/dmxpict.c +@@ -662,7 +662,7 @@ static int dmxProcRenderSetPictureFilter + int nparams; + REQUEST(xRenderSetPictureFilterReq); + +- REQUEST_SIZE_MATCH(xRenderSetPictureFilterReq); ++ REQUEST_AT_LEAST_SIZE(xRenderSetPictureFilterReq); + VERIFY_PICTURE(pPicture, stuff->picture, client, SecurityWriteAccess, + RenderErrBase + BadPicture); + --- xorg-server-1.1.1.orig/debian/patches/005_fdo4320_composite_fastpath.patch +++ xorg-server-1.1.1/debian/patches/005_fdo4320_composite_fastpath.patch @@ -0,0 +1,45 @@ +Patch is based on comment #11 in fdo bug #4320, but taking into account +anholt's comment #25. Adam Jackson suggested modifying the patch with: + + so basically s/ || pDst->format==PICT_a8.*)/)/g + +So I've modified the patch, commenting out the code suggested bya ajax. + + -- mharris + + +Index: hw/xfree86/xaa/xaaPict.c +=================================================================== +RCS file: /cvs/xorg/xserver/xorg/hw/xfree86/xaa/xaaPict.c,v +retrieving revision 1.10 +diff -u -p -u -r1.10 xaaPict.c +--- hw/xfree86/xaa/xaaPict.c 3 Jul 2005 08:53:49 -0000 1.10 ++++ hw/xfree86/xaa/xaaPict.c 2 Feb 2006 17:33:58 -0000 +@@ -506,12 +506,21 @@ XAAComposite (CARD8 op, + XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen); + XAA_RENDER_PROLOGUE(pScreen, Composite); + +- if((op == PictOpSrc) && !pMask && infoRec->pScrn->vtSema && +- infoRec->ScreenToScreenBitBlt && +- pSrc->pDrawable && +- DRAWABLE_IS_ON_CARD(pSrc->pDrawable) && +- DRAWABLE_IS_ON_CARD(pDst->pDrawable) && +- !pSrc->transform && !pSrc->repeat && (pSrc->format == pDst->format)) ++ if(!pMask && infoRec->pScrn->vtSema && ++ infoRec->ScreenToScreenBitBlt && ++ pSrc->pDrawable && ++ DRAWABLE_IS_ON_CARD(pSrc->pDrawable) && ++ DRAWABLE_IS_ON_CARD(pDst->pDrawable) && ++ !pSrc->transform && ++ (!pSrc->repeat || (xSrc >= 0 && ySrc >= 0 && ++ xSrc+width<=pSrc->pDrawable->width && ++ ySrc+height<=pSrc->pDrawable->height)) && ++ ((op == PictOpSrc && pSrc->format == pDst->format) || ++ (op == PictOpOver && !pSrc->alphaMap && !pDst->alphaMap && ++ ((pSrc->format==PICT_x8r8g8b8 && ++ (pDst->format==PICT_x8r8g8b8 /* || pDst->format==PICT_a8r8g8b8 */ )) || ++ (pSrc->format==PICT_x8b8g8r8 && ++ (pDst->format==PICT_x8b8g8r8 /* || pDst->format==PICT_a8b8g8r8 */ )))))) + { + XAACompositeSrcCopy(pSrc, pDst, xSrc, ySrc, xDst, yDst, width, height); + } else if(!pSrc->pDrawable || (pMask && !pMask->pDrawable) || --- xorg-server-1.1.1.orig/debian/patches/018_ubuntu_linux_kernel_include_fixes.patch +++ xorg-server-1.1.1/debian/patches/018_ubuntu_linux_kernel_include_fixes.patch @@ -0,0 +1,22 @@ +--- xorg-server-1.1.1.orig/hw/xfree86/os-support/linux/lnx_io.c ++++ xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_io.c +@@ -74,7 +74,7 @@ + #include + #ifdef __sparc__ + #include +-#include ++/* #include */ + #endif + + /* Deal with spurious kernel header change in struct kbd_repeat. +--- xorg-server-1.1.1.orig/hw/xfree86/os-support/linux/lnx_kbd.c ++++ xorg-server-1.1.1/hw/xfree86/os-support/linux/lnx_kbd.c +@@ -104,7 +104,7 @@ + #include + #ifdef __sparc__ + #include +-#include ++/* #include */ + #endif + + /* Deal with spurious kernel header change in struct kbd_repeat. --- xorg-server-1.1.1.orig/debian/patches/013_ubuntu_symlink_mesa_source.patch +++ xorg-server-1.1.1/debian/patches/013_ubuntu_symlink_mesa_source.patch @@ -0,0 +1,59 @@ +--- xorg-server-1.1.1.orig/GL/symlink-mesa.sh ++++ xorg-server-1.1.1/GL/symlink-mesa.sh +@@ -88,8 +88,11 @@ + action api_noop.h + action api_validate.c + action api_validate.h ++ action arrayobj.c ++ action arrayobj.h + action attrib.c + action attrib.h ++ action bitset.h + action blend.c + action blend.h + action bufferobj.c +@@ -168,6 +171,7 @@ + action polygon.h + action rastpos.c + action rastpos.h ++ action rbadaptors.h + action renderbuffer.c + action renderbuffer.h + action simple_list.h +--- xorg-server-1.1.1.orig/GL/mesa/main/Makefile.am ++++ xorg-server-1.1.1/GL/mesa/main/Makefile.am +@@ -29,6 +29,7 @@ + api_loopback.c \ + api_noop.c \ + api_validate.c \ ++ arrayobj.c \ + attrib.c \ + blend.c \ + bufferobj.c \ +--- xorg-server-1.1.1.orig/GL/mesa/main/Makefile.in ++++ xorg-server-1.1.1/GL/mesa/main/Makefile.in +@@ -57,7 +57,7 @@ + libmain_la_LIBADD = + @NEED_VSNPRINTF_TRUE@am__objects_1 = vsnprintf.lo + nodist_libmain_la_OBJECTS = accum.lo api_arrayelt.lo api_loopback.lo \ +- api_noop.lo api_validate.lo attrib.lo blend.lo bufferobj.lo \ ++ api_noop.lo api_validate.lo arrayobj.lo attrib.lo blend.lo bufferobj.lo \ + buffers.lo clip.lo colortab.lo context.lo convolve.lo debug.lo \ + depth.lo depthstencil.lo dlist.lo drawpix.lo enable.lo \ + enums.lo eval.lo execmem.lo extensions.lo fbobject.lo \ +@@ -563,6 +563,7 @@ + api_loopback.c \ + api_noop.c \ + api_validate.c \ ++ arrayobj.c \ + attrib.c \ + blend.c \ + bufferobj.c \ +@@ -674,6 +675,7 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/api_loopback.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/api_noop.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/api_validate.Plo@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/arrayobj.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attrib.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/blend.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bufferobj.Plo@am__quote@