summaryrefslogtreecommitdiffstats
path: root/abs/core/xorg-server
diff options
context:
space:
mode:
authorCecil Hugh Watson <knoppmyth@gmail.com>2009-09-26 01:57:08 (GMT)
committerCecil Hugh Watson <knoppmyth@gmail.com>2009-09-26 01:57:08 (GMT)
commit7b29169fff9e7c624890c5edffe85def8a293136 (patch)
tree47753889faa3a2063b66d1c7e7681e703eb1b39a /abs/core/xorg-server
parentc491dea779dac29afff3578bf8245943817c2339 (diff)
downloadlinhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.zip
linhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.tar.gz
linhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.tar.bz2
LinHES 6.01.00
Diffstat (limited to 'abs/core/xorg-server')
-rw-r--r--abs/core/xorg-server/001_fedora_extramodes.patch85
-rw-r--r--abs/core/xorg-server/PKGBUILD101
-rw-r--r--abs/core/xorg-server/__changelog3
-rw-r--r--abs/core/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch16
-rw-r--r--abs/core/xorg-server/xorg-server.install25
-rw-r--r--abs/core/xorg-server/xserver-1.5-branch-4970d.patch246
-rw-r--r--abs/core/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch69
-rw-r--r--abs/core/xorg-server/xserver-1.5.3-AEI-on-by-default.patch108
8 files changed, 607 insertions, 46 deletions
diff --git a/abs/core/xorg-server/001_fedora_extramodes.patch b/abs/core/xorg-server/001_fedora_extramodes.patch
new file mode 100644
index 0000000..30743b8
--- /dev/null
+++ b/abs/core/xorg-server/001_fedora_extramodes.patch
@@ -0,0 +1,85 @@
+From: Adam Jackson <ajax@redhat.com>
+Date: Sun, 28 Oct 2007 09:37:52 +0100
+Subject: [PATCH] Fedora extra modes list
+
+---
+Index: xorg-server/hw/xfree86/common/extramodes
+===================================================================
+--- xorg-server.orig/hw/xfree86/common/extramodes
++++ xorg-server/hw/xfree86/common/extramodes
+@@ -3,16 +3,75 @@
+ //
+ // $XFree86: xc/programs/Xserver/hw/xfree86/etc/extramodes,v 1.5 2002/06/05 19:43:05 dawes Exp $
+ //
++// NOTE: Please keep all video modes sorted in order of X res, then Y res for
++// ease of maintenance and readability.
+
+ # 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
+
++# 1152x864 @ 60.00 Hz (GTF) hsync: 53.70 kHz; pclk: 81.62 MHz
++Modeline "1152x864" 81.62 1152 1216 1336 1520 864 865 868 895 -HSync +Vsync
++
++# 1152x864 @ 70.00 Hz (GTF) hsync: 63.00 kHz; pclk: 96.77 MHz
++Modeline "1152x864" 96.77 1152 1224 1344 1536 864 865 868 900 -HSync +Vsync
++
++# 1152x864 @ 75.00 Hz (GTF) hsync: 67.65 kHz; pclk: 104.99 MHz
++Modeline "1152x864" 104.99 1152 1224 1352 1552 864 865 868 902 -HSync +Vsync
++
++# 1152x864 @ 85.00 Hz (GTF) hsync: 77.10 kHz; pclk: 119.65 MHz
++Modeline "1152x864" 119.65 1152 1224 1352 1552 864 865 868 907 -HSync +Vsync
++
++# 1152x864 @ 85Hz (Red Hat custom modeline)
++ModeLine "1152x864" 121.5 1152 1216 1344 1568 864 865 868 911 +hsync -vsync
++
++# 1152x864 @ 100.00 Hz (GTF) hsync: 91.50 kHz; pclk: 143.47 MHz
++Modeline "1152x864" 143.47 1152 1232 1360 1568 864 865 868 915 -HSync +Vsync
++
++# 1360x768 59.96 Hz (CVT) hsync: 47.37 kHz; pclk: 72.00 MHz
++Modeline "1360x768" 72.00 1360 1408 1440 1520 768 771 781 790 +hsync -vsync
++
++# 1360x768 59.80 Hz (CVT) hsync: 47.72 kHz; pclk: 84.75 MHz
++Modeline "1360x768" 84.75 1360 1432 1568 1776 768 771 781 798 -hsync +vsync
++
+ # 1400x1050 @ 60Hz (VESA GTF) hsync: 65.5kHz
+ ModeLine "1400x1050" 122.0 1400 1488 1640 1880 1050 1052 1064 1082 +hsync +vsync
+
++# 1400x1050 @ 70.00 Hz (GTF) hsync: 76.51 kHz; pclk: 145.06 MHz
++Modeline "1400x1050" 145.06 1400 1496 1648 1896 1050 1051 1054 1093 -HSync +Vsync
++
+ # 1400x1050 @ 75Hz (VESA GTF) hsync: 82.2kHz
+ ModeLine "1400x1050" 155.8 1400 1464 1784 1912 1050 1052 1064 1090 +hsync +vsync
+
++# 1400x1050 @ 85.00 Hz (GTF) hsync: 93.76 kHz; pclk: 179.26 MHz
++Modeline "1400x1050" 179.26 1400 1504 1656 1912 1050 1051 1054 1103 -HSync +Vsync
++
++# 1440x900 @ 60.00 Hz (CVT) field rate 59.89 Hz; hsync: 55.93 kHz; pclk: 106.50 MHz
++Modeline "1440x900" 106.50 1440 1520 1672 1904 900 903 909 934 -HSync +Vsync
++
++# 1600x1024 for SGI 1600 SW
++ModeLine "1600x1024" 103.125 1600 1600 1656 1664 1024 1024 1029 1030 +Hsync +Vsync
++
++# 1680x1050 59.88 Hz (CVT 1.76MA-R) hsync: 64.67 kHz; pclk: 119.00 MHz
++Modeline "1680x1050" 119.00 1680 1728 1760 1840 1050 1053 1059 1080 +hsync -vsync
++
++# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz
++Modeline "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
++
++# 1680x1050 69.88 Hz (CVT) hsync: 76.58 kHz; pclk: 174.00 MHz
++Modeline "1680x1050" 174.00 1680 1800 1976 2272 1050 1053 1059 1096 -hsync +vsync
++
++# 1680x1050 74.89 Hz (CVT 1.76MA) hsync: 82.31 kHz; pclk: 187.00 MHz
++Modeline "1680x1050" 187.00 1680 1800 1976 2272 1050 1053 1059 1099 -hsync +vsync
++
++# 1680x1050 84.94 Hz (CVT 1.76MA) hsync: 93.86 kHz; pclk: 214.75 MHz
++Modeline "1680x1050" 214.75 1680 1808 1984 2288 1050 1053 1059 1105 -hsync +vsync
++
++# 1920x1080 59.93 Hz (CVT 2.07M9-R) hsync: 66.59 kHz; pclk: 138.50 MHz
++Modeline "1920x1080" 138.50 1920 1968 2000 2080 1080 1083 1088 1111 +hsync -vsync
++
++# 1920x1200 59.95 Hz (CVT 2.30MA-R) hsync: 74.04 kHz; pclk: 154.00 MHz
++Modeline "1920x1200" 154.00 1920 1968 2000 2080 1200 1203 1209 1235 +hsync -vsync
++
+ # 1920x1440 @ 85Hz (VESA GTF) hsync: 128.5kHz
+ Modeline "1920x1440" 341.35 1920 2072 2288 2656 1440 1441 1444 1512 -hsync +vsync
+
diff --git a/abs/core/xorg-server/PKGBUILD b/abs/core/xorg-server/PKGBUILD
index 0582a82..51f75f8 100644
--- a/abs/core/xorg-server/PKGBUILD
+++ b/abs/core/xorg-server/PKGBUILD
@@ -1,45 +1,54 @@
-# $Id: PKGBUILD 3240 2008-06-21 18:01:37Z jgc $
+# $Id: PKGBUILD 21903 2008-12-17 20:32:54Z jgc $
# Maintainer: Alexander Baldeck <kth5@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgname=xorg-server
-pkgver=1.4.2
-pkgrel=1
-_mesaver=7.0.3
+pkgver=1.5.3
+pkgrel=5
pkgdesc="X.Org X servers"
arch=('i686' 'x86_64')
license=('custom')
url="http://xorg.freedesktop.org"
-depends=('libxkbui' 'ncurses' 'libxxf86misc' 'libxfont'
- 'libxaw' 'libxxf86vm' 'xcursor-themes'
- 'xkeyboard-config' 'xorg-server-utils' 'xorg-utils' 'libdrm>=2.3.0'
- 'xorg-fonts-misc' 'pixman>=0.10' 'xbitmaps')
-makedepends=('pkgconfig' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto'
- 'xf86bigfontproto' 'resourceproto' 'evieext' 'damageproto>=1.1.0'
- 'compositeproto>=0.4' 'scrnsaverproto' 'libxres' 'xorg-util-macros'
- 'randrproto' 'glproto>=1.4.9' 'renderproto>=0.9.3' 'autoconf'
- 'automake' 'libtool' 'bison' 'flex' 'gcc' 'libxrender'
- 'libxfixes' 'quilt' 'mesa')
+depends=('libx11>=1.1.5' 'libxkbui>=1.0.2' 'libgl' 'libxfont>=1.3.3' 'openssl>=0.9.8h' 'libxxf86misc>=1.0.1' 'libpciaccess>=0.10.5' 'libxv>=1.0.4' 'libxaw>=1.0.4' 'pixman>=0.11.10' 'hal>=0.5.11' 'xcursor-themes' 'xkeyboard-config>=1.3' 'xorg-server-utils' 'xorg-utils' 'xorg-fonts-misc' 'xbitmaps' 'libdrm>=2.3.1' 'diffutils' 'xf86-input-evdev')
+makedepends=('glproto>=1.4.9' 'xf86driproto>=2.0.4' 'mesa>=7.2' 'randrproto>=1.2.2' 'renderproto>=0.9.3' 'scrnsaverproto>=1.1.0' 'fontsproto>=2.0.2' 'videoproto>=2.2.2' 'compositeproto>=0.4' 'trapproto>=3.4.3' 'resourceproto>=1.0.2' 'xineramaproto>=1.1.2' 'evieext>=1.0.2' 'libxkbfile>=1.0.5' 'libxmu>=1.0.4' 'libxpm>=3.5.7' 'libxxf86dga>=1.0.2' 'inputproto>=1.4.4' 'xcmiscproto>=1.1.2' 'bigreqsproto' 'libdrm=2.3.1' 'xtrans')
options=('!libtool')
provides=('x-server')
groups=('xorg')
install=xorg-server.install
source=(${url}/releases/individual/xserver/${pkgname}-${pkgver}.tar.bz2
- http://downloads.sourceforge.net/sourceforge/mesa3d/MesaLib-${_mesaver}.tar.bz2
- ftp://ftp.archlinux.org/other/xorg-server/xorg-server-patches-1.4.2-1.tar.bz2)
-md5sums=('fa2915ae377f61c340a18ebef484b64b'
- 'e6e6379d7793af40a6bc3ce1bace572e'
- 'bc907d6d69b55b445c3046a4d7ecc8ef')
+ xserver-1.5-branch-4970d.patch
+ 001_fedora_extramodes.patch
+ xorg-redhat-die-ugly-pattern-die-die-die.patch
+ xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch
+ xserver-1.5.3-AEI-on-by-default.patch)
+md5sums=('308971036e25250e7fe3cccfd5a120f8'
+ '61f9bb524501247dce647b218ad14347'
+ '033427f2b406cba8dd6103ff374e7156'
+ '1a336eb22e27cbf443ec5a2ecddfa93c'
+ '7b03ba9b75d795e4f7fdfaa550d97159'
+ '63d1d61d217005db7c23c4a98fc3e7eb')
build() {
- cd ${startdir}/src/${pkgname}-${pkgver}
- quilt push -a || return 1
- libtoolize --force --copy || return 1
- aclocal || return 1
- autoconf || return 1
- automake --add-missing || return 1
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # Upstream commits from server-1.5 branch
+ patch -Np1 -i "${srcdir}/xserver-1.5-branch-4970d.patch" || return 1
+
+ # extramodes
+ patch -Np1 -i "${srcdir}/001_fedora_extramodes.patch" || return 1
+
+ # Get rid of the ugly pattern
+ patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch" || return 1
+
+ # Patch from Fedora to fix FS#12248
+ patch -Np1 -i "${srcdir}/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch" || return 1
+
+ # Upstream patch to fix evdev issues with >=2.1.0
+ patch -Np1 -i "${srcdir}/xserver-1.5.3-AEI-on-by-default.patch" || return 1
+
+ # Fix dbus config path
+ sed -i -e 's/\$(sysconfdir)/\/etc/' config/Makefile.* || return 1
+
./configure --prefix=/usr \
- --with-mesa-source=${startdir}/src/Mesa-${_mesaver} \
--enable-ipv6 \
--enable-dri \
--disable-dmx \
@@ -54,39 +63,43 @@ build() {
--enable-glx-tls \
--enable-xorgcfg \
--enable-kdrive \
+ --enable-install-setuid \
+ --enable-config-hal \
+ --enable-config-dbus \
--disable-xfbdev \
--disable-xfake \
--disable-xsdl \
--disable-kdrive-vesa \
- --enable-install-setuid \
+ --disable-dri2 \
--disable-xprint \
+ --disable-static \
--sysconfdir=/etc/X11 \
--localstatedir=/var \
--with-default-font-path=/usr/share/fonts/misc,/usr/share/fonts/100dpi:unscaled,/usr/share/fonts/75dpi:unscaled,/usr/share/fonts/TTF,/usr/share/fonts/Type1 \
- --with-rgb-path=/usr/share/X11/rgb \
--with-xkb-path=/usr/share/X11/xkb \
- --with-xkb-output=/usr/share/X11/xkb/compiled \
- --with-dri-driver-path=/usr/lib/xorg/modules/dri \
- --disable-config-hal \
- --disable-static
+ --with-xkb-output=/var/lib/xkb \
+ --with-dri-driver-path=/usr/lib/xorg/modules/dri --enable-null-root-cursor || return 1
make || return 1
- make DESTDIR=${startdir}/pkg install || return 1
+ make DESTDIR="${pkgdir}" install || return 1
- install -m755 -d ${startdir}/pkg/etc/X11 || return 1
- install -m755 -d ${startdir}/pkg/var/lib || return 1
- mv ${startdir}/pkg/usr/share/X11/xkb/compiled ${startdir}/pkg/var/lib/xkb
- ln -sf /var/lib/xkb ${startdir}/pkg/usr/share/X11/xkb/compiled || return 1
+ rm -rf "${pkgdir}/var/log" || return 1
- cd ${startdir}/pkg/usr/lib/xorg/modules/extensions
- mv libGLcore.so libGLcore.xorg
- mv libglx.so libglx.xorg
+ install -m755 -d "${pkgdir}/etc/X11" || return 1
+ install -m755 -d "${pkgdir}/var/lib/xkb" || return 1
# No longer needed, but as nvidia-utils mangles these files,
# keep them like this so they can be restored
- mv ${startdir}/pkg/usr/lib/xorg/modules/libwfb.so \
- ${startdir}/pkg/usr/lib/xorg/modules/libwfb.so.1.4 || return 1
+ mv "${pkgdir}/usr/lib/xorg/modules/libwfb.so" \
+ "${pkgdir}/usr/lib/xorg/modules/libwfb.so.1.4" || return 1
+
+ # Needed for non-mesa drivers, libgl will restore it
+ mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \
+ "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg" || return 1
+
+ mv "${pkgdir}/usr/lib/xorg/modules/extensions/libdri.so" \
+ "${pkgdir}/usr/lib/xorg/modules/extensions/libdri.xorg" || return 1
- install -m755 -d ${startdir}/pkg/usr/share/licenses/${pkgname}
- install -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING ${startdir}/pkg/usr/share/licenses/${pkgname}/ || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
}
diff --git a/abs/core/xorg-server/__changelog b/abs/core/xorg-server/__changelog
new file mode 100644
index 0000000..2f87167
--- /dev/null
+++ b/abs/core/xorg-server/__changelog
@@ -0,0 +1,3 @@
+
+added --enable-null-root-cursor to configure line. -jm
+
diff --git a/abs/core/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch b/abs/core/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
new file mode 100644
index 0000000..4e782f1
--- /dev/null
+++ b/abs/core/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
@@ -0,0 +1,16 @@
+Remove the default root window grey stipple pattern, replacing it with
+blackness.
+
+--- xc/programs/Xserver/dix/window.c.die-ugly-pattern-die-die-die Tue Feb 12 16:33:04 2002
++++ xc/programs/Xserver/dix/window.c Tue Feb 12 16:45:32 2002
+@@ -119,8 +119,8 @@
+ *
+ ******/
+
+-static unsigned char _back_lsb[4] = {0x88, 0x22, 0x44, 0x11};
+-static unsigned char _back_msb[4] = {0x11, 0x44, 0x22, 0x88};
++static unsigned char _back_lsb[4] = {0x00, 0x00, 0x00, 0x00};
++static unsigned char _back_msb[4] = {0x00, 0x00, 0x00, 0x00};
+
+ int screenIsSaved = SCREEN_SAVER_OFF;
+
diff --git a/abs/core/xorg-server/xorg-server.install b/abs/core/xorg-server/xorg-server.install
index f7ff03a..c67438d 100644
--- a/abs/core/xorg-server/xorg-server.install
+++ b/abs/core/xorg-server/xorg-server.install
@@ -1,12 +1,33 @@
post_install() {
- rm -f /usr/lib/xorg/modules/libwfb.so
- ln -sf libwfb.so.1.4 /usr/lib/xorg/modules/libwfb.so
+ rm -f usr/lib/xorg/modules/libwfb.so
+ ln -sf libwfb.so.1.4 usr/lib/xorg/modules/libwfb.so
+
+ cmp usr/lib/xorg/modules/extensions/libdri.so usr/lib/xorg/modules/extensions/libglx.xorg >/dev/null 2>&1 && rm -f usr/lib/xorg/modules/extensions/libdri.so
+
+ # If the symlink is dead or non-existent, remove it and make a new one
+ if [ ! -e usr/lib/xorg/modules/extensions/libdri.so ]; then
+ rm -f usr/lib/xorg/modules/extensions/libdri.so
+ ln -sf libdri.xorg usr/lib/xorg/modules/extensions/libdri.so
+ fi
}
post_upgrade() {
+ if [ "`vercmp $2 1.4.99.906`" -lt 0 ]; then
+ cat << _EOF
+
+ Input device handling has changed in xorg-server 1.5.
+ Please read http://wiki.archlinux.org/index.php/Xorg_input_hotplugging.
+
+_EOF
+ fi
post_install
}
post_remove() {
rm -f /usr/lib/xorg/modules/libwfb.so
+
+ # If the symlink is dead, remove it
+ if [ ! -e usr/lib/xorg/modules/extensions/libdri.so ]; then
+ rm -f usr/lib/xorg/modules/extensions/libdri.so
+ fi
}
diff --git a/abs/core/xorg-server/xserver-1.5-branch-4970d.patch b/abs/core/xorg-server/xserver-1.5-branch-4970d.patch
new file mode 100644
index 0000000..23cdab0
--- /dev/null
+++ b/abs/core/xorg-server/xserver-1.5-branch-4970d.patch
@@ -0,0 +1,246 @@
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/config/x11-input.fdi xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/config/x11-input.fdi
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/config/x11-input.fdi 2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/config/x11-input.fdi 2008-12-16 19:19:00.000000000 +0000
+@@ -64,8 +64,8 @@
+ <merge key="input.x11_options.XkbRules" type="string">base</merge>
+
+ <!-- If we're using Linux, we use evdev by default (falling back to
+- keyboard otherwise). -->
+- <merge key="input.x11_driver" type="string">keyboard</merge>
++ kbd otherwise). -->
++ <merge key="input.x11_driver" type="string">kbd</merge>
+ <merge key="input.x11_options.XkbModel" type="string">pc105</merge>
+ <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
+ string="Linux">
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/exa/exa_accel.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/exa/exa_accel.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/exa/exa_accel.c 2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/exa/exa_accel.c 2008-12-16 19:19:00.000000000 +0000
+@@ -398,6 +398,10 @@
+ RegionPtr srcregion = NULL, dstregion = NULL;
+ xRectangle *rects;
+
++ /* avoid doing copy operations if no boxes */
++ if (nbox == 0)
++ return;
++
+ pSrcPixmap = exaGetDrawablePixmap (pSrcDrawable);
+ pDstPixmap = exaGetDrawablePixmap (pDstDrawable);
+
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/common/xf86Helper.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/common/xf86Helper.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/common/xf86Helper.c 2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/common/xf86Helper.c 2008-12-16 19:19:00.000000000 +0000
+@@ -448,10 +448,6 @@
+ #define GLOBAL_DEFAULT_DEPTH 24
+ #endif
+
+-#ifndef GLOBAL_DEFAULT_FBBPP
+-#define GLOBAL_DEFAULT_FBBPP 32
+-#endif
+-
+ _X_EXPORT Bool
+ xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int dummy, int fbbpp,
+ int depth24flags)
+@@ -529,7 +525,6 @@
+ if (depth > 0)
+ scrp->depth = depth;
+ } else {
+- scrp->bitsPerPixel = GLOBAL_DEFAULT_FBBPP;
+ scrp->depth = GLOBAL_DEFAULT_DEPTH;
+ }
+ }
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/os-support/linux/int10/linux.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/os-support/linux/int10/linux.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/os-support/linux/int10/linux.c 2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/os-support/linux/int10/linux.c 2008-12-16 19:19:00.000000000 +0000
+@@ -1,6 +1,6 @@
+ /*
+ * linux specific part of the int10 module
+- * Copyright 1999, 2000, 2001, 2002, 2003, 2004 Egbert Eich
++ * Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2008 Egbert Eich
+ */
+ #ifdef HAVE_XORG_CONFIG_H
+ #include <xorg-config.h>
+@@ -357,7 +357,10 @@
+ "shmat(low_mem) error: %s\n",strerror(errno));
+ return FALSE;
+ }
+-
++ if (mprotect((void*)0, V_RAM, PROT_READ|PROT_WRITE|PROT_EXEC) != 0)
++ xf86DrvMsg(pInt->scrnIndex, X_ERROR,
++ "Cannot set EXEC bit on low memory: %s\n", strerror(errno));
++
+ if (((linuxInt10Priv*)pInt->private)->highMem >= 0) {
+ addr = shmat(((linuxInt10Priv*)pInt->private)->highMem,
+ (char*)HIGH_MEM, 0);
+@@ -368,6 +371,11 @@
+ "shmget error: %s\n",strerror(errno));
+ return FALSE;
+ }
++ if (mprotect((void*)HIGH_MEM, HIGH_MEM_SIZE,
++ PROT_READ|PROT_WRITE|PROT_EXEC) != 0)
++ xf86DrvMsg(pInt->scrnIndex, X_ERROR,
++ "Cannot set EXEC bit on high memory: %s\n",
++ strerror(errno));
+ } else {
+ if ((fd = open(DEV_MEM, O_RDWR, 0)) >= 0) {
+ if (mmap((void *)(V_BIOS), SYS_BIOS - V_BIOS,
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaa.h xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaa.h
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaa.h 2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaa.h 2008-12-16 19:19:00.000000000 +0000
+@@ -2,6 +2,10 @@
+ #ifndef _XAA_H
+ #define _XAA_H
+
++#define XAA_VERSION_MAJOR 1
++#define XAA_VERSION_MINOR 2
++#define XAA_VERSION_RELEASE 1
++
+ /*
+
+ ******** OPERATION SPECIFIC FLAGS *********
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaaInitAccel.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaaInitAccel.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaaInitAccel.c 2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaaInitAccel.c 2008-12-16 19:19:00.000000000 +0000
+@@ -103,7 +103,9 @@
+ MODINFOSTRING1,
+ MODINFOSTRING2,
+ XORG_VERSION_CURRENT,
+- 1, 2, 0,
++ XAA_VERSION_MAJOR,
++ XAA_VERSION_MINOR,
++ XAA_VERSION_RELEASE,
+ ABI_CLASS_VIDEODRV, /* requires the video driver ABI */
+ ABI_VIDEODRV_VERSION,
+ MOD_CLASS_NONE,
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaawrap.h xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaawrap.h
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/hw/xfree86/xaa/xaawrap.h 2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/hw/xfree86/xaa/xaawrap.h 2008-12-16 19:19:00.000000000 +0000
+@@ -48,8 +48,8 @@
+ XAAPixmapPtr pixPriv = XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pDraw));\
+ GCFuncs *oldFuncs = pGC->funcs;\
+ pGC->funcs = pGCPriv->wrapFuncs;\
+- pGC->ops = pGCPriv->wrapOps
+-
++ pGC->ops = pGCPriv->wrapOps; \
++ SYNC_CHECK(pGC)
+
+ #define XAA_PIXMAP_OP_EPILOGUE(pGC)\
+ pGCPriv->wrapOps = pGC->ops;\
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/mi/miinitext.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/mi/miinitext.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/mi/miinitext.c 2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/mi/miinitext.c 2008-12-16 19:19:00.000000000 +0000
+@@ -661,7 +661,8 @@
+ #endif
+
+ #ifdef GLXEXT
+- GlxPushProvider(&__glXDRISWRastProvider);
++ if (serverGeneration == 1)
++ GlxPushProvider(&__glXDRISWRastProvider);
+ if (!noGlxExtension) GlxExtensionInit();
+ #endif
+ }
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/os/utils.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/os/utils.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/os/utils.c 2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/os/utils.c 2008-12-16 19:19:00.000000000 +0000
+@@ -1702,7 +1702,7 @@
+ int pid;
+ } *pidlist;
+
+-void (*old_alarm)(int) = NULL; /* XXX horrible awful hack */
++OsSigHandlerPtr old_alarm = NULL; /* XXX horrible awful hack */
+
+ pointer
+ Popen(char *command, char *type)
+@@ -1726,7 +1726,7 @@
+ }
+
+ /* Ignore the smart scheduler while this is going on */
+- old_alarm = signal(SIGALRM, SIG_IGN);
++ old_alarm = OsSignal(SIGALRM, SIG_IGN);
+ if (old_alarm == SIG_ERR) {
+ perror("signal");
+ return NULL;
+@@ -1737,7 +1737,7 @@
+ close(pdes[0]);
+ close(pdes[1]);
+ xfree(cur);
+- if (signal(SIGALRM, old_alarm) == SIG_ERR)
++ if (OsSignal(SIGALRM, old_alarm) == SIG_ERR)
+ perror("signal");
+ return NULL;
+ case 0: /* child */
+@@ -1914,7 +1914,7 @@
+ /* allow EINTR again */
+ OsReleaseSignals ();
+
+- if (old_alarm && signal(SIGALRM, old_alarm) == SIG_ERR) {
++ if (old_alarm && OsSignal(SIGALRM, old_alarm) == SIG_ERR) {
+ perror("signal");
+ return -1;
+ }
+diff -ruN xserver-4c6a89ee783d62fb75a738339351830c35b19a38/xkb/xkbEvents.c xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/xkb/xkbEvents.c
+--- xserver-4c6a89ee783d62fb75a738339351830c35b19a38/xkb/xkbEvents.c 2008-11-05 20:39:01.000000000 +0000
++++ xserver-4970d757a7364c1d2fb4db4e404e88e8ad989ddb/xkb/xkbEvents.c 2008-12-16 19:19:00.000000000 +0000
+@@ -109,7 +109,7 @@
+ register CARD16 changed,bState;
+
+ interest = kbd->xkb_interest;
+- if (!interest)
++ if (!interest || !kbd->key || !kbd->key->xkbInfo)
+ return;
+ xkbi = kbd->key->xkbInfo;
+ state= &xkbi->state;
+@@ -168,6 +168,9 @@
+ unsigned time = 0,initialized;
+ CARD16 changed;
+
++ if (!kbd->key || !kbd->key->xkbInfo)
++ return;
++
+ xkbi = kbd->key->xkbInfo;
+ initialized= 0;
+
+@@ -291,7 +294,7 @@
+ Time time = 0;
+
+ interest = kbd->xkb_interest;
+- if (!interest)
++ if (!interest || !kbd->key || !kbd->key->xkbInfo)
+ return;
+ xkbi = kbd->key->xkbInfo;
+
+@@ -401,6 +404,9 @@
+ Time time = 0;
+ XID winID = 0;
+
++ if (!kbd->key || !kbd->key->xkbInfo)
++ return;
++
+ xkbi = kbd->key->xkbInfo;
+
+ if ((force||(xkbi->desc->ctrls->enabled_ctrls&XkbAudibleBellMask))&&
+@@ -616,11 +622,12 @@
+ XkbInterestPtr interest;
+ Time time = 0;
+
+- xkbi = kbd->key->xkbInfo;
+ interest = kbd->xkb_interest;
+- if (!interest)
++ if (!interest || !kbd->key || !kbd->key->xkbInfo)
+ return;
+
++ xkbi = kbd->key->xkbInfo;
++
+ initialized = 0;
+ pEv->mods= xkbi->state.mods;
+ pEv->group= xkbi->state.group;
+@@ -996,6 +1003,10 @@
+ ClientPtr client = NULL;
+
+ found= False;
++
++ if (!dev->key || !dev->key->xkbInfo)
++ return found;
++
+ autoCtrls= autoValues= 0;
+ if ( dev->xkb_interest ) {
+ interest = dev->xkb_interest;
diff --git a/abs/core/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch b/abs/core/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch
new file mode 100644
index 0000000..2ac6095
--- /dev/null
+++ b/abs/core/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch
@@ -0,0 +1,69 @@
+From 638cab7e1dc3711f7fb04155bcdabf4b8895cc5e Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 4 Aug 2008 17:08:36 +0930
+Subject: [PATCH] xfree86: force SwitchCoreKeyboard for evdev devices (updated).
+
+If an evdev keyboard device is added through the HAL mechanism, force a
+SwitchCoreKeyboard to load the evdev map into the VCK. This way, by the time a
+client starts the evdev keymap is already there, leading to less pain lateron.
+
+Works if:
+- all keyboards are hotplugged through HAL, and/or
+- the xorg.conf keyboard uses the kbd driver.
+
+Has no effect (i.e. busted keymaps) if:
+- an evdev keyboard device has been specified in the xorg.conf.
+- we don't have a device at startup and plug a device in after starting the
+ desktop environment.
+- if the device we use isn't the first one reported by HAL.
+
+If HAL isn't set up, this patch is a noop.
+---
+ hw/xfree86/common/xf86Xinput.c | 31 +++++++++++++++++++++++++++++++
+ 1 files changed, 31 insertions(+), 0 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
+index 710e787..dacc3dc 100644
+--- a/hw/xfree86/common/xf86Xinput.c
++++ b/hw/xfree86/common/xf86Xinput.c
+@@ -423,6 +423,37 @@ NewInputDeviceRequest (InputOption *options, DeviceIntPtr *pdev)
+ (!is_auto || xf86Info.autoEnableDevices))
+ EnableDevice(dev);
+
++ /* XXX: The VCK always starts with built-in defaults for keymap. These
++ * defaults are different to the evdev ones. When the first key is hit on
++ * an extension device, the keymap is copied into the VCK's and any
++ * changes made at runtime to the VCK map are lost.
++ *
++ * Assumption: if we have at least one evdev keyboard device, we can
++ * ignore kbd devices. Force a SwitchCoreKeyboard so the VCK has the same
++ * keymap as we do.
++ *
++ * Next time we hit a key, we don't change the map over anymore (see
++ * SwitchCoreKeyboard), and live happily ever after.
++ * Until we have 2 physical keyboards. Or the first real keyboard isn't
++ * actually the one we use. Oh well.
++ *
++ */
++ if (dev->key)
++ {
++ InputInfoPtr info;
++
++ /* Search if there is one other keyboard that uses evdev. */
++ for (info = xf86InputDevs; info; info = info->next)
++ {
++ if (info != pInfo && info->dev && info->dev->key &&
++ (strcmp(info->drv->driverName, "evdev") == 0))
++ break;
++ }
++
++ if (!info)
++ SwitchCoreKeyboard(dev);
++ }
++
+ *pdev = dev;
+ return Success;
+
+--
+1.5.5.1
+
diff --git a/abs/core/xorg-server/xserver-1.5.3-AEI-on-by-default.patch b/abs/core/xorg-server/xserver-1.5.3-AEI-on-by-default.patch
new file mode 100644
index 0000000..d6cdf83
--- /dev/null
+++ b/abs/core/xorg-server/xserver-1.5.3-AEI-on-by-default.patch
@@ -0,0 +1,108 @@
+From 15bf414daa83967fd1f24bd48bd01ea941c11ce2 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@redhat.com>
+Date: Thu, 13 Nov 2008 10:17:33 +1000
+Subject: [PATCH] xfree86: AllowEmptyInput is true by default - update the xf86Info defaults.
+
+Also set AutoAddDevices and AutoEnableDevices to their defaults.
+
+And in doing so, switch the rest of the defaults over to named intializers.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
+(cherry picked from commit 0b56b44addc323a00eb7cd86240cb0dd4275bcf8)
+
+Conflicts:
+
+ hw/xfree86/common/xf86Globals.c
+---
+ hw/xfree86/common/xf86Globals.c | 69 ++++++++++++++++++++------------------
+ 1 files changed, 36 insertions(+), 33 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c
+index f5babbc..a5edd82 100644
+--- a/hw/xfree86/common/xf86Globals.c
++++ b/hw/xfree86/common/xf86Globals.c
+@@ -95,45 +95,48 @@ InputInfoPtr xf86InputDevs = NULL;
+ /* Globals that video drivers may not access */
+
+ xf86InfoRec xf86Info = {
+- -1, /* consoleFd */
+- -1, /* vtno */
+- FALSE, /* vtSysreq */
+- SKWhenNeeded, /* ddxSpecialKeys */
+- NULL, /* pMouse */
++ .consoleFd = -1,
++ .vtno = -1,
++ .vtSysreq = FALSE,
++ .ddxSpecialKeys = SKWhenNeeded,
++ .pMouse = NULL,
+ #ifdef XINPUT
+- NULL, /* mouseLocal */
++ .mouseLocal = NULL,
+ #endif
+- -1, /* lastEventTime */
+- FALSE, /* vtRequestsPending */
+- FALSE, /* inputPending */
+- FALSE, /* dontVTSwitch */
+- FALSE, /* dontZap */
+- FALSE, /* dontZoom */
+- FALSE, /* notrapSignals */
+- FALSE, /* caughtSignal */
+- FALSE, /* sharedMonitor */
+- NULL, /* currentScreen */
++ .lastEventTime = -1,
++ .vtRequestsPending = FALSE,
++ .inputPending = FALSE,
++ .dontVTSwitch = FALSE,
++ .dontZap = FALSE,
++ .dontZoom = FALSE,
++ .notrapSignals = FALSE,
++ .caughtSignal = FALSE,
++ .sharedMonitor = FALSE,
++ .currentScreen = NULL,
+ #ifdef CSRG_BASED
+- -1, /* screenFd */
+- -1, /* consType */
++ .screenFd = -1,
++ .consType = -1,
+ #endif
+- FALSE, /* allowMouseOpenFail */
+- TRUE, /* vidModeEnabled */
+- FALSE, /* vidModeAllowNonLocal */
+- TRUE, /* miscModInDevEnabled */
+- FALSE, /* miscModInDevAllowNonLocal */
+- PCIOsConfig, /* pciFlags */
+- Pix24DontCare, /* pixmap24 */
+- X_DEFAULT, /* pix24From */
++ .allowMouseOpenFail = FALSE,
++ .vidModeEnabled = TRUE,
++ .vidModeAllowNonLocal = FALSE,
++ .miscModInDevEnabled = TRUE,
++ .miscModInDevAllowNonLocal = FALSE,
++ .pciFlags = PCIOsConfig,
++ .pixmap24 = Pix24DontCare,
++ .pix24From = X_DEFAULT,
+ #ifdef __i386__
+- FALSE, /* pc98 */
++ .pc98 = FALSE,
+ #endif
+- TRUE, /* pmFlag */
+- LogNone, /* syncLog */
+- 0, /* estimateSizesAggressively */
+- FALSE, /* kbdCustomKeycodes */
+- FALSE, /* disableRandR */
+- X_DEFAULT /* randRFrom */
++ .pmFlag = TRUE,
++ .log = LogNone,
++ .estimateSizesAggressively = 0,
++ .kbdCustomKeycodes = FALSE,
++ .disableRandR = FALSE,
++ .randRFrom = X_DEFAULT,
++ .allowEmptyInput = TRUE,
++ .autoAddDevices = TRUE,
++ .autoEnableDevices = TRUE
+ };
+ const char *xf86ConfigFile = NULL;
+ const char *xf86InputDeviceList = NULL;
+--
+1.6.0.3
+