summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
Diffstat (limited to 'testing')
-rw-r--r--testing/archboot/PKGBUILD2
-rw-r--r--testing/ghc/PKGBUILD2
-rw-r--r--testing/haddock/PKGBUILD2
-rw-r--r--testing/haskell-cgi/PKGBUILD2
-rw-r--r--testing/haskell-deepseq/PKGBUILD2
-rw-r--r--testing/haskell-fgl/PKGBUILD2
-rw-r--r--testing/haskell-ghc-paths/PKGBUILD2
-rw-r--r--testing/haskell-glut/PKGBUILD2
-rw-r--r--testing/haskell-haskell-src/PKGBUILD2
-rw-r--r--testing/haskell-html/PKGBUILD2
-rw-r--r--testing/haskell-http/PKGBUILD2
-rw-r--r--testing/haskell-hunit/PKGBUILD2
-rw-r--r--testing/haskell-mtl/PKGBUILD2
-rw-r--r--testing/haskell-network/PKGBUILD2
-rw-r--r--testing/haskell-opengl/PKGBUILD2
-rw-r--r--testing/haskell-parallel/PKGBUILD2
-rw-r--r--testing/haskell-parsec/PKGBUILD2
-rw-r--r--testing/haskell-platform/PKGBUILD2
-rw-r--r--testing/haskell-quickcheck/PKGBUILD2
-rw-r--r--testing/haskell-regex-base/PKGBUILD2
-rw-r--r--testing/haskell-regex-compat/PKGBUILD2
-rw-r--r--testing/haskell-regex-posix/PKGBUILD2
-rw-r--r--testing/haskell-stm/PKGBUILD2
-rw-r--r--testing/haskell-syb/PKGBUILD2
-rw-r--r--testing/haskell-text/PKGBUILD2
-rw-r--r--testing/haskell-transformers/PKGBUILD2
-rw-r--r--testing/haskell-xhtml/PKGBUILD2
-rw-r--r--testing/haskell-zlib/PKGBUILD2
-rw-r--r--testing/make/PKGBUILD2
-rw-r--r--testing/mesa/PKGBUILD161
-rw-r--r--testing/xorg-appres/PKGBUILD24
-rw-r--r--testing/xorg-bdftopcf/PKGBUILD24
-rw-r--r--testing/xorg-font-util/PKGBUILD27
-rw-r--r--testing/xorg-iceauth/PKGBUILD24
-rw-r--r--testing/xorg-luit/PKGBUILD25
-rw-r--r--testing/xorg-mkfontscale/PKGBUILD24
-rw-r--r--testing/xorg-oclock/PKGBUILD23
-rw-r--r--testing/xorg-server/10-quirks.conf10
-rw-r--r--testing/xorg-server/PKGBUILD189
-rw-r--r--testing/xorg-server/bg-none-revert.patch58
-rw-r--r--testing/xorg-server/glx-pixmap-crash.patch85
-rw-r--r--testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch16
-rw-r--r--testing/xorg-server/xserver-1.10-pointer-barriers.patch1054
-rw-r--r--testing/xorg-server/xvfb-run180
-rw-r--r--testing/xorg-server/xvfb-run.1282
-rw-r--r--testing/xorg-sessreg/PKGBUILD24
-rw-r--r--testing/xorg-setxkbmap/PKGBUILD24
-rw-r--r--testing/xorg-smproxy/PKGBUILD24
-rw-r--r--testing/xorg-twm/PKGBUILD30
-rw-r--r--testing/xorg-x11perf/PKGBUILD28
-rw-r--r--testing/xorg-xauth/PKGBUILD24
-rw-r--r--testing/xorg-xbacklight/PKGBUILD24
-rw-r--r--testing/xorg-xbiff/PKGBUILD27
-rw-r--r--testing/xorg-xcalc/PKGBUILD23
-rw-r--r--testing/xorg-xclipboard/PKGBUILD23
-rw-r--r--testing/xorg-xclock/PKGBUILD23
-rw-r--r--testing/xorg-xcmsdb/PKGBUILD24
-rw-r--r--testing/xorg-xconsole/PKGBUILD23
-rw-r--r--testing/xorg-xcursorgen/PKGBUILD24
-rw-r--r--testing/xorg-xdm/LICENSE132
-rw-r--r--testing/xorg-xdm/PKGBUILD43
-rw-r--r--testing/xorg-xdm/Xsession-loginshell.patch15
-rw-r--r--testing/xorg-xdm/Xsession-xsm.patch22
-rw-r--r--testing/xorg-xdm/xdm.pam8
-rw-r--r--testing/xorg-xdpyinfo/PKGBUILD24
-rw-r--r--testing/xorg-xdriinfo/PKGBUILD24
-rw-r--r--testing/xorg-xedit/PKGBUILD23
-rw-r--r--testing/xorg-xev/PKGBUILD24
-rw-r--r--testing/xorg-xeyes/PKGBUILD23
-rw-r--r--testing/xorg-xfd/PKGBUILD23
-rw-r--r--testing/xorg-xfontsel/PKGBUILD23
-rw-r--r--testing/xorg-xfs/PKGBUILD64
-rw-r--r--testing/xorg-xfs/xfs.rc46
-rw-r--r--testing/xorg-xgamma/PKGBUILD24
-rw-r--r--testing/xorg-xhost/PKGBUILD24
-rw-r--r--testing/xorg-xinit/06_move_serverauthfile_into_tmp.diff20
-rw-r--r--testing/xorg-xinit/PKGBUILD49
-rw-r--r--testing/xorg-xinit/xinitrc17
-rw-r--r--testing/xorg-xinit/xserverrc1
-rw-r--r--testing/xorg-xinit/xsession10
-rw-r--r--testing/xorg-xinput/PKGBUILD24
-rw-r--r--testing/xorg-xkbcomp/PKGBUILD24
-rw-r--r--testing/xorg-xkbevd/PKGBUILD24
-rw-r--r--testing/xorg-xkbutils/PKGBUILD24
-rw-r--r--testing/xorg-xkill/PKGBUILD24
-rw-r--r--testing/xorg-xload/PKGBUILD23
-rw-r--r--testing/xorg-xlogo/PKGBUILD23
-rw-r--r--testing/xorg-xlsatoms/PKGBUILD24
-rw-r--r--testing/xorg-xlsclients/PKGBUILD24
-rw-r--r--testing/xorg-xmag/PKGBUILD23
-rw-r--r--testing/xorg-xman/PKGBUILD23
-rw-r--r--testing/xorg-xmessage/PKGBUILD23
-rw-r--r--testing/xorg-xmodmap/PKGBUILD24
-rw-r--r--testing/xorg-xpr/PKGBUILD27
-rw-r--r--testing/xorg-xpr/copyright.patch75
-rw-r--r--testing/xorg-xprop/PKGBUILD24
-rw-r--r--testing/xorg-xrandr/PKGBUILD25
-rw-r--r--testing/xorg-xrdb/PKGBUILD24
-rw-r--r--testing/xorg-xrefresh/PKGBUILD24
-rw-r--r--testing/xorg-xset/PKGBUILD24
-rw-r--r--testing/xorg-xsetroot/PKGBUILD24
-rw-r--r--testing/xorg-xvidtune/PKGBUILD23
-rw-r--r--testing/xorg-xvinfo/PKGBUILD24
-rw-r--r--testing/xorg-xwd/PKGBUILD24
-rw-r--r--testing/xorg-xwininfo/PKGBUILD24
-rw-r--r--testing/xorg-xwud/PKGBUILD24
106 files changed, 3739 insertions, 182 deletions
diff --git a/testing/archboot/PKGBUILD b/testing/archboot/PKGBUILD
index 9f2ddcd51..bb665e5e0 100644
--- a/testing/archboot/PKGBUILD
+++ b/testing/archboot/PKGBUILD
@@ -5,7 +5,7 @@ pkgname=archboot
pkgver=2011.05
pkgrel=2
pkgdesc="Advanced, modular arch boot/install image creation utility"
-arch=(i686 x86_64)
+arch=(i686 x86_64 'mips64el')
license=('GPL')
url="http://www.archlinux.org/"
depends=('mkinitcpio>=0.6.12-1' 'mksyslinux>=2010.08-1' 'mkpxelinux>=2010.08-1' 'mkisolinux>=2010.08-1' 'initscripts>=2011.05.2-1' 'subversion>=1.6.15-2' 'wget>=1.12-7' 'bash>=4.2.010-1' 'coreutils>=8.12-1' 'cryptsetup>=1.3.0-1' 'dialog>=1.1_20110302-1' 'e2fsprogs>=1.41.14-1' 'findutils>=4.4.2-3' 'gawk>=3.1.8-2' 'grep>=2.7-1' 'iputils>=20101006-1' 'jfsutils>=1.1.14-2' 'less>=443-1' 'lvm2>=2.02.85-1' 'mdadm>=3.2.1-3' 'module-init-tools>=3.12-2' 'nano>=2.2.6-1' 'ncurses>=5.9-1' 'net-tools>=1.60-14' 'gnu-netcat>=0.7.1-3' 'ntfsprogs>=2011.4.12-1' 'pcmciautils>=017-2' 'procps>=3.2.8-3' 'psmisc>=22.13-1' 'reiserfsprogs>=3.6.21-3' 'sed>=4.2.1-3' 'snarf>=7.0-4' 'syslog-ng>=3.2.4-1' 'sysvinit>=2.88-2' 'tar>=1.26-1' 'util-linux>=2.19.1-2' 'which>=2.20-4' 'kbd>=1.15.3-1' 'wireless_tools>=29-4' 'xfsprogs>=3.1.5-1' 'dnsutils>=9.8.0.P1-1' 'hdparm>=9.37-1' 'memtest86+>=4.20-1' 'inetutils>=1.8-2' 'openssh>=5.8p2-6' 'hwdetect>=2011.03-1' 'shadow>=4.1.4.3-1' 'bridge-utils>=1.4-4' 'ifenslave>=1.1.0-6' 'cpufrequtils>=008-1' 'links>=2.3pre1-1' 'tcp_wrappers>=7.6-12' 'dosfstools>=3.0.11-1' 'glibc>=2.13-5' 'linux-api-headers>=2.6.38.1-1' 'kernel26>=2.6.38.6-2' 'kernel26-lts>=2.6.32.40-1' 'xinetd>=2.3.14-6' 'kexec-tools>=2.0.2-3' 'ppp>=2.4.5-2' 'rp-pppoe>=3.10-6' 'lilo>=23.2-1' 'iptables>=1.4.10-1' 'capi4k-utils>=050718-7' 'isdn4k-utils>=3.2p1-6' 'ntfs-3g>=2011.4.12-1' 'pciutils>=3.1.7-4' 'usbutils>=002-3' 'vpnc>=0.5.3-3' 'openvpn>=2.2.0-1' 'b43-fwcutter>=014-1' 'wpa_supplicant>=0.7.3-3' 'rsync>=3.0.8-1' 'gzip>=1.4-2' 'libarchive>=2.8.4-2' 'device-mapper>=2.02.85-1' 'screen>=4.0.3-11' 'elfutils>=0.152-1' 'pam>=1.1.3-1' 'cracklib>=2.8.18-1' 'nfs-utils>=1.2.3-2' 'nfsidmap>=0.24-2' 'readline>=6.2.001-1' 'acl>=2.2.51-1' 'attr>=2.4.46-1' 'pcre>=8.12-1' 'cpio>=2.11-2' 'fuse>=2.8.5-1' 'libusb>=1.0.8-1' 'vim>=7.3.177-1' 'lzo2>=2.05-1' 'libsasl>=2.1.23-5' 'libldap>=2.4.24-1' 'gpm>=1.20.6-6' 'libevent>=2.0.11-1' 'gcc-libs>=4.6.0-5' 'sdparm>=1.06-1' 'licenses>=2.8-1' 'pptpclient>=1.7.2-3' 'ndiswrapper>=1.56-9' 'ndiswrapper-utils>=1.56-2' 'zd1211-firmware>=1.4-4' 'ipw2100-fw>=1.3-5' 'ipw2200-fw>=3.1-3' 'smbclient>=3.5.8-3' 'bittorrent>=5.2.2-4' 'dhcpcd>=5.2.12-1' 'openssl>=1.0.0.d-1' 'git>=1.7.5.1-1' 'dmraid>=1.0.0.rc16.3-1' 'linux-atm>=2.5.1-2' 'netcfg>=2.5.4-1' 'tiacx>=20080210-21' 'tiacx-firmware>=2-3' 'parted>=2.3-1' 'tzdata>=2011g-1' 'ntp>=4.2.6.p3-3' 'libgcrypt>=1.4.6-3' 'iw>=0.9.22-1' 'crda>=1.1.1-3' 'libnl>=1.1-2' 'iproute2>=2.6.38-2' 'wireless-regdb>=2010.11.24-1' 'v86d>=0.1.10-1' 'dhclient>=4.2.1.1-1' 'syslinux>=4.04-1' 'mtools>=4.0.16-1' 'fsarchiver>=0.6.12-1' 'xz>=5.0.2-1' 'libtirpc>=0.2.1-3' 'librpcsecgss>=0.19-5' 'rpcbind>=0.2.0-3' 'testdisk>=6.12-1' 'wipe>=2.3.1-1' 'ddrescue>=1.14-1' 'udev>=168-1' 'ifplugd>=0.28-7' 'wpa_actiond>=1.1-2' 'nouveau-firmware>=20091212-4' 'rfkill>=0.4-2' 'libgssglue>=0.1-4' 'mkinitcpio-nfs-utils>=0.2-1' 'gptfdisk>=0.7.1-1' 'nilfs-utils>=2.0.23-1' 'btrfs-progs-unstable>=0.19.20101006-1' 'ndiswrapper-lts>=1.56-5' 'nouveau-drm-lts>=0.0.16_20100313-5' 'linux-firmware>=20110512-2' 'iana-etc>=2.30-1' 'libusb-compat>=0.1.3-1' 'eject>=2.1.5-5' 'keyutils>=1.4-1')
diff --git a/testing/ghc/PKGBUILD b/testing/ghc/PKGBUILD
index a526404af..89927c6f6 100644
--- a/testing/ghc/PKGBUILD
+++ b/testing/ghc/PKGBUILD
@@ -10,7 +10,7 @@ pkgname=ghc
pkgver=7.0.3
pkgrel=1
pkgdesc="The Glasgow Haskell Compiler"
-arch=(i686 x86_64)
+arch=(i686 x86_64 'mips64el')
url="http://www.haskell.org/ghc/"
license=("custom")
depends=('perl' 'gmp>=5.0' gcc)
diff --git a/testing/haddock/PKGBUILD b/testing/haddock/PKGBUILD
index e061249d3..adfe76b8c 100644
--- a/testing/haddock/PKGBUILD
+++ b/testing/haddock/PKGBUILD
@@ -7,7 +7,7 @@ pkgrel=1
pkgdesc="Documentation-generation tool for Haskell libraries"
url="http://hackage.haskell.org/package/${pkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
makedepends=(alex happy)
depends=(ghc sh 'haskell-mtl' 'haskell-xhtml' 'haskell-ghc-paths') # cannot have more strict deps here
options=('strip')
diff --git a/testing/haskell-cgi/PKGBUILD b/testing/haskell-cgi/PKGBUILD
index ebee2e82e..06680157c 100644
--- a/testing/haskell-cgi/PKGBUILD
+++ b/testing/haskell-cgi/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=3
pkgdesc="A library for writing CGI programs"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=('ghc=7.0.2-2' 'haskell-mtl=2.0.1.0-2' 'haskell-network=2.3.0.2-2' 'haskell-parsec=3.1.1-2' 'haskell-xhtml=3000.2.0.1-7')
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
diff --git a/testing/haskell-deepseq/PKGBUILD b/testing/haskell-deepseq/PKGBUILD
index b89f39f8b..f570bc221 100644
--- a/testing/haskell-deepseq/PKGBUILD
+++ b/testing/haskell-deepseq/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=2
pkgdesc="Fully evaluate data structures"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh)
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
diff --git a/testing/haskell-fgl/PKGBUILD b/testing/haskell-fgl/PKGBUILD
index 4a866601d..00946fb2e 100644
--- a/testing/haskell-fgl/PKGBUILD
+++ b/testing/haskell-fgl/PKGBUILD
@@ -6,7 +6,7 @@ pkgrel=4
pkgdesc="Martin Erwig's Functional Graph Library"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
makedepends=()
depends=('ghc=7.0.2-2' 'haskell-mtl=2.0.1.0-2')
options=('strip')
diff --git a/testing/haskell-ghc-paths/PKGBUILD b/testing/haskell-ghc-paths/PKGBUILD
index 5a744ac49..1a4efb892 100644
--- a/testing/haskell-ghc-paths/PKGBUILD
+++ b/testing/haskell-ghc-paths/PKGBUILD
@@ -6,7 +6,7 @@ pkgrel=4
pkgdesc="Knowledge of GHC's installation directories"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
makedepends=()
depends=(ghc=7.0.2) # cannot have stricter dep here due to haddock
options=('strip')
diff --git a/testing/haskell-glut/PKGBUILD b/testing/haskell-glut/PKGBUILD
index a42385959..7760c10f5 100644
--- a/testing/haskell-glut/PKGBUILD
+++ b/testing/haskell-glut/PKGBUILD
@@ -6,7 +6,7 @@ pkgrel=6
pkgdesc="A binding for the OpenGL Utility Toolkit"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
makedepends=()
depends=('ghc=7.0.2-2' 'haskell-opengl=2.2.3.0-6' 'freeglut')
options=('strip')
diff --git a/testing/haskell-haskell-src/PKGBUILD b/testing/haskell-haskell-src/PKGBUILD
index 8b9340c4f..c34c4763b 100644
--- a/testing/haskell-haskell-src/PKGBUILD
+++ b/testing/haskell-haskell-src/PKGBUILD
@@ -7,7 +7,7 @@ pkgrel=2
pkgdesc="Facilities for manipulating Haskell source code: an abstract syntax, lexer, parser and pretty-printer."
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=('ghc=7.0.2-2' 'haskell-syb=0.3-2' sh)
makedepends=(happy)
options=('strip')
diff --git a/testing/haskell-html/PKGBUILD b/testing/haskell-html/PKGBUILD
index 10a04cbdf..30c8af470 100644
--- a/testing/haskell-html/PKGBUILD
+++ b/testing/haskell-html/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=9
pkgdesc="HTML combinator library"
url="http://hackage.haskell.org/package/html"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh)
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
diff --git a/testing/haskell-http/PKGBUILD b/testing/haskell-http/PKGBUILD
index 80fce6663..1d4431362 100644
--- a/testing/haskell-http/PKGBUILD
+++ b/testing/haskell-http/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=3
pkgdesc="A library for client-side HTTP"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=('ghc=7.0.2-2' sh 'haskell-network=2.3.0.2-2' 'haskell-parsec=3.1.1-2' 'haskell-mtl=2.0.1.0-2')
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
diff --git a/testing/haskell-hunit/PKGBUILD b/testing/haskell-hunit/PKGBUILD
index 634fd49f3..fdd2808d1 100644
--- a/testing/haskell-hunit/PKGBUILD
+++ b/testing/haskell-hunit/PKGBUILD
@@ -7,7 +7,7 @@ pkgrel=2
pkgdesc="A unit testing framework for Haskell"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh)
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
diff --git a/testing/haskell-mtl/PKGBUILD b/testing/haskell-mtl/PKGBUILD
index ea29d2633..39947fcbf 100644
--- a/testing/haskell-mtl/PKGBUILD
+++ b/testing/haskell-mtl/PKGBUILD
@@ -7,7 +7,7 @@ pkgrel=2
pkgdesc="Monad transformer library"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh 'haskell-transformers=0.2.2.0-2')
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
diff --git a/testing/haskell-network/PKGBUILD b/testing/haskell-network/PKGBUILD
index 685e5fe2b..f2182e7f6 100644
--- a/testing/haskell-network/PKGBUILD
+++ b/testing/haskell-network/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=2
pkgdesc="Networking-related facilities"
url="http://hackage.haskell.org/package/network"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh 'haskell-parsec=3.1.1-2')
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
diff --git a/testing/haskell-opengl/PKGBUILD b/testing/haskell-opengl/PKGBUILD
index a45b3f303..e6dd664db 100644
--- a/testing/haskell-opengl/PKGBUILD
+++ b/testing/haskell-opengl/PKGBUILD
@@ -6,7 +6,7 @@ pkgrel=6
pkgdesc="A binding for the OpenGL graphics system"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
makedepends=()
depends=('ghc=7.0.2-2' 'mesa')
options=('strip')
diff --git a/testing/haskell-parallel/PKGBUILD b/testing/haskell-parallel/PKGBUILD
index 1191611e8..b868c2e2c 100644
--- a/testing/haskell-parallel/PKGBUILD
+++ b/testing/haskell-parallel/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=3
pkgdesc="Parallel programming library"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh 'haskell-deepseq=1.1.0.2-2')
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
diff --git a/testing/haskell-parsec/PKGBUILD b/testing/haskell-parsec/PKGBUILD
index 516621979..87ef7c91a 100644
--- a/testing/haskell-parsec/PKGBUILD
+++ b/testing/haskell-parsec/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=2
pkgdesc="Monadic parser combinators"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh 'haskell-mtl=2.0.1.0-2')
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
diff --git a/testing/haskell-platform/PKGBUILD b/testing/haskell-platform/PKGBUILD
index 0b6c908d2..10bf275f9 100644
--- a/testing/haskell-platform/PKGBUILD
+++ b/testing/haskell-platform/PKGBUILD
@@ -5,7 +5,7 @@ pkgrel=3
pkgdesc="The Haskell Platform"
url="http://hackage.haskell.org/platform/"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=('ghc=7.0.2-2'
'haskell-glut=2.1.2.1-6'
'haskell-http=4000.1.1-3'
diff --git a/testing/haskell-quickcheck/PKGBUILD b/testing/haskell-quickcheck/PKGBUILD
index 3da28a0cb..809a94484 100644
--- a/testing/haskell-quickcheck/PKGBUILD
+++ b/testing/haskell-quickcheck/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=3
pkgdesc="Automatic testing of Haskell programs"
url="http://hackage.haskell.org/package/QuickCheck"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 haskell-mtl=2.0.1.0-2 sh)
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
diff --git a/testing/haskell-regex-base/PKGBUILD b/testing/haskell-regex-base/PKGBUILD
index a28c3daa0..5f212f71e 100644
--- a/testing/haskell-regex-base/PKGBUILD
+++ b/testing/haskell-regex-base/PKGBUILD
@@ -7,7 +7,7 @@ pkgrel=4
pkgdesc="Interface API for regex-posix,pcre,parsec,tdfa,dfa"
url="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/regex-base"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh 'haskell-mtl=2.0.1.0-2')
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
diff --git a/testing/haskell-regex-compat/PKGBUILD b/testing/haskell-regex-compat/PKGBUILD
index b0778ac42..06f9fded1 100644
--- a/testing/haskell-regex-compat/PKGBUILD
+++ b/testing/haskell-regex-compat/PKGBUILD
@@ -7,7 +7,7 @@ pkgrel=4
pkgdesc="Replaces and enhances Text.Regex"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh 'haskell-regex-base=0.93.2-4' 'haskell-regex-posix=0.94.4-2')
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
diff --git a/testing/haskell-regex-posix/PKGBUILD b/testing/haskell-regex-posix/PKGBUILD
index 69f3773d6..257b5b430 100644
--- a/testing/haskell-regex-posix/PKGBUILD
+++ b/testing/haskell-regex-posix/PKGBUILD
@@ -7,7 +7,7 @@ pkgrel=2
pkgdesc="The posix regex backend for regex-base"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh 'haskell-regex-base=0.93.2-4')
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
diff --git a/testing/haskell-stm/PKGBUILD b/testing/haskell-stm/PKGBUILD
index 5f3a97ed7..e0412423b 100644
--- a/testing/haskell-stm/PKGBUILD
+++ b/testing/haskell-stm/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=2
pkgdesc="A modular composable concurrency abstraction."
url="http://hackage.haskell.org/package/stm"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh)
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
diff --git a/testing/haskell-syb/PKGBUILD b/testing/haskell-syb/PKGBUILD
index f90006a56..0db1b5c99 100644
--- a/testing/haskell-syb/PKGBUILD
+++ b/testing/haskell-syb/PKGBUILD
@@ -7,7 +7,7 @@ pkgrel=2
pkgdesc="A library for client-side HTTP"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=('ghc=7.0.2-2' sh)
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
diff --git a/testing/haskell-text/PKGBUILD b/testing/haskell-text/PKGBUILD
index e60891918..857b0f796 100644
--- a/testing/haskell-text/PKGBUILD
+++ b/testing/haskell-text/PKGBUILD
@@ -7,7 +7,7 @@ pkgrel=2
pkgdesc="An efficient packed Unicode text type."
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=('ghc=7.0.2-2' sh 'haskell-deepseq=1.1.0.2-2')
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
diff --git a/testing/haskell-transformers/PKGBUILD b/testing/haskell-transformers/PKGBUILD
index c14b2eecc..ea81addc7 100644
--- a/testing/haskell-transformers/PKGBUILD
+++ b/testing/haskell-transformers/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=2
pkgdesc="Concrete functor and monad transformers"
url="http://hackage.haskell.org/package/${_hkgname}"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh)
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
diff --git a/testing/haskell-xhtml/PKGBUILD b/testing/haskell-xhtml/PKGBUILD
index 63abbbb64..812b3a388 100644
--- a/testing/haskell-xhtml/PKGBUILD
+++ b/testing/haskell-xhtml/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=7
pkgdesc="Combinators for producing XHTML 1.0, including the Strict, Transitional and Frameset variants."
url="http://hackage.haskell.org/package/xhtml"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 sh)
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
diff --git a/testing/haskell-zlib/PKGBUILD b/testing/haskell-zlib/PKGBUILD
index 7aca7312b..06a6b9f54 100644
--- a/testing/haskell-zlib/PKGBUILD
+++ b/testing/haskell-zlib/PKGBUILD
@@ -8,7 +8,7 @@ pkgrel=2
pkgdesc="Compression and decompression in the gzip and zlib formats"
url="http://hackage.haskell.org/package/zlib"
license=('custom:BSD3')
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
depends=(ghc=7.0.2-2 'zlib' sh)
options=('strip')
source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
diff --git a/testing/make/PKGBUILD b/testing/make/PKGBUILD
index bba3253fc..832522a78 100644
--- a/testing/make/PKGBUILD
+++ b/testing/make/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=make
pkgver=3.82
pkgrel=3
pkgdesc="GNU make utility to maintain groups of programs"
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://www.gnu.org/software/make"
license=('GPL3')
groups=('base-devel')
diff --git a/testing/mesa/PKGBUILD b/testing/mesa/PKGBUILD
index 93e6e6e42..b2c0db5bd 100644
--- a/testing/mesa/PKGBUILD
+++ b/testing/mesa/PKGBUILD
@@ -3,7 +3,7 @@
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgbase=mesa
-pkgname=('mesa' 'libgl' 'libgles' 'libegl' 'ati-dri' 'intel-dri' 'unichrome-dri' 'mach64-dri' 'mga-dri' 'r128-dri' 'savage-dri' 'sis-dri' 'tdfx-dri' 'nouveau-dri') # 'llvm-dri')
+pkgname=('mesa' 'libgl' 'libgles' 'libegl' 'sis-dri') # 'llvm-dri')
_git=true
#_git=false
@@ -14,12 +14,12 @@ if [ "${_git}" = "true" ]; then
pkgver=7.10.2
fi
pkgrel=1
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
makedepends=('glproto>=1.4.12' 'pkgconfig' 'libdrm>=2.4.25' 'libxxf86vm>=1.1.1' 'libxdamage>=1.1.3' 'expat>=2.0.1' 'libx11>=1.4.3' 'libxt>=1.1.1'
'gcc-libs>=4.5' 'dri2proto=2.3' 'python2' 'libxml2' 'imake' 'llvm')
url="http://mesa3d.sourceforge.net"
license=('custom')
-source=(LICENSE gnome-shell-shader-fix.patch nouveau-fix-header.patch)
+source=(LICENSE gnome-shell-shader-fix.patch nouveau-fix-header.patch mesa-7.5-mips-wmb.patch)
if [ "${_git}" = "true" ]; then
# mesa git shot from 7.11 branch - see for state: http://cgit.freedesktop.org/mesa/mesa/commit/?id=608a4a17feea9fba2812d4e5c01dd6dbadc5d6e0
source=(${source[@]} 'ftp://ftp.archlinux.org/other/mesa/mesa-608a4a17feea9fba2812d4e5c01dd6dbadc5d6e0.tar.bz2')
@@ -27,10 +27,6 @@ if [ "${_git}" = "true" ]; then
source=(${source[@]} "ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2"
)
fi
-md5sums=('5c65a0fe315dd347e09b1f2826a1df5a'
- '3ec78f340f9387abd7a37b195e764cbf'
- '67c87b77cc2236b52a3b47dad3fbb5d4'
- '8d1a895110a6d3b7c51b3521f794bae2')
build() {
if [ "${_git}" = "true" ]; then
@@ -47,15 +43,14 @@ patch -Np1 -i "${srcdir}/gnome-shell-shader-fix.patch"
patch -Np1 -i "${srcdir}/nouveau-fix-header.patch"
fi
+ # WMB for MIPS patch from Fedora
+ patch -Np1 -i $srcdir/mesa-7.5-mips-wmb.patch
+
if [ "${_git}" = "true" ]; then
./autogen.sh --prefix=/usr \
--with-dri-driverdir=/usr/lib/xorg/modules/dri \
- --enable-gallium-r300 \
- --enable-gallium-r600 \
- --enable-gallium-nouveau \
+ --with-dri-drivers=sis \
--enable-gallium-llvm \
- --enable-gallium-egl \
- --enable-gallium-swrast \
--enable-glx-tls \
--with-driver=dri \
--enable-xcb \
@@ -74,10 +69,7 @@ if [ "${_git}" = "true" ]; then
else
./configure --prefix=/usr \
--with-dri-driverdir=/usr/lib/xorg/modules/dri \
- --enable-gallium-radeon \
- --enable-gallium-r600 \
- --enable-gallium-nouveau \
- --enable-gallium-swrast \
+ --with-dri-drivers=sis \
--enable-glx-tls \
--with-driver=dri \
--enable-xcb \
@@ -206,109 +198,6 @@ fi
install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa/"
}
-package_ati-dri() {
- depends=("libgl=${pkgver}")
- pkgdesc="Mesa DRI + Gallium3D r300 drivers for AMD/ATI Radeon"
- conflicts=('xf86-video-ati<6.9.0-6')
-
-if [ "${_git}" = "true" ]; then
- cd ${srcdir}/mesa-*/src/mesa/drivers/dri
- else
- cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
-fi
- make -C radeon DESTDIR="${pkgdir}" install
- make -C r200 DESTDIR="${pkgdir}" install
- # classic mesa driver for R300 r300_dri.so
- #make -C r300 DESTDIR="${pkgdir}" install <------- deprecated
- # gallium3D driver for R300 r300_dri.so
-if [ "${_git}" = "true" ]; then
- make -C ${srcdir}/mesa-*/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install
- make -C ${srcdir}/mesa-*/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install
- else
- make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install
- make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install
-fi
- #make -C r600 DESTDIR="${pkgdir}" install
-}
-
-package_intel-dri() {
- depends=("libgl=${pkgver}")
- pkgdesc="Mesa DRI drivers for Intel"
-
-if [ "${_git}" = "true" ]; then
- cd ${srcdir}/mesa-*/src/mesa/drivers/dri
- else
- cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
-fi
- make -C i810 DESTDIR="${pkgdir}" install
- make -C i915 DESTDIR="${pkgdir}" install
- make -C i965 DESTDIR="${pkgdir}" install
-}
-
-package_unichrome-dri() {
- depends=("libgl=${pkgver}")
- pkgdesc="Mesa DRI drivers for S3 Graphics/VIA Unichrome"
-
-if [ "${_git}" = "true" ]; then
- cd ${srcdir}/mesa-*/src/mesa/drivers/dri
- else
- cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
-fi
- make -C unichrome DESTDIR="${pkgdir}" install
-}
-
-package_mach64-dri() {
- depends=("libgl=${pkgver}")
- pkgdesc="Mesa DRI drivers for ATI Mach64"
- conflicts=('xf86-video-mach64<6.8.2')
-
-if [ "${_git}" = "true" ]; then
- cd ${srcdir}/mesa-*/src/mesa/drivers/dri
- else
- cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
-fi
- make -C mach64 DESTDIR="${pkgdir}" install
-}
-
-package_mga-dri() {
- depends=("libgl=${pkgver}")
- pkgdesc="Mesa DRI drivers for Matrox"
- conflicts=('xf86-video-mga<1.4.11')
-
-if [ "${_git}" = "true" ]; then
- cd ${srcdir}/mesa-*/src/mesa/drivers/dri
- else
- cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
-fi
- make -C mga DESTDIR="${pkgdir}" install
-}
-
-package_r128-dri() {
- depends=("libgl=${pkgver}")
- pkgdesc="Mesa DRI drivers for ATI Rage128"
- conflicts=('xf86-video-r128<6.8.1')
-
-if [ "${_git}" = "true" ]; then
- cd ${srcdir}/mesa-*/src/mesa/drivers/dri
- else
- cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
-fi
- make -C r128 DESTDIR="${pkgdir}" install
-}
-
-package_savage-dri() {
- depends=("libgl=${pkgver}")
- pkgdesc="Mesa DRI drivers for S3 Sraphics/VIA Savage"
- conflicts=('xf86-video-savage<2.3.1')
-
-if [ "${_git}" = "true" ]; then
- cd ${srcdir}/mesa-*/src/mesa/drivers/dri
- else
- cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
-fi
- make -C savage DESTDIR="${pkgdir}" install
-}
-
package_sis-dri() {
depends=("libgl=${pkgver}")
pkgdesc="Mesa DRI drivers for SiS"
@@ -322,40 +211,6 @@ fi
make -C sis DESTDIR="${pkgdir}" install
}
-package_tdfx-dri() {
- depends=("libgl=${pkgver}")
- pkgdesc="Mesa DRI drivers for 3dfx"
- conflicts=('xf86-video-tdfx<1.4.3')
-
-if [ "${_git}" = "true" ]; then
- cd ${srcdir}/mesa-*/src/mesa/drivers/dri
- else
- cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
-fi
- make -C tdfx DESTDIR="${pkgdir}" install
-}
-
-package_nouveau-dri() {
- depends=("libgl=${pkgver}")
- pkgdesc="Mesa classic DRI + Gallium3D drivers for Nouveau"
-
-if [ "${_git}" = "true" ]; then
- cd ${srcdir}/mesa-*/src/mesa/drivers/dri
- else
- cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
-fi
-
- # classic mesa driver for nv10 , nv20 nouveau_vieux_dri.so
- make -C nouveau DESTDIR="${pkgdir}" install
-
- # gallium3D driver for nv30 - nv40 - nv50 nouveau_dri.so
-if [ "${_git}" = "true" ]; then
- make -C ${srcdir}/mesa-*/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
- else
- make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
-fi
-}
-
#package_llvm-dri() {
# depends=("libgl=${pkgver}")
# pkgdesc="Mesa common LLVM support"
diff --git a/testing/xorg-appres/PKGBUILD b/testing/xorg-appres/PKGBUILD
new file mode 100644
index 000000000..9af921b3b
--- /dev/null
+++ b/testing/xorg-appres/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113951 2011-03-10 22:00:42Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-appres
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="List X application resource database"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxt')
+makedepends=('xorg-util-macros')
+conflicts=('xorg-res-utils')
+source=(http://xorg.freedesktop.org/archive/individual/app/appres-${pkgver}.tar.bz2)
+sha1sums=('7303f12fae8cce92da2dbd88c9d31d816dc5da06')
+
+build() {
+ cd "${srcdir}/appres-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-bdftopcf/PKGBUILD b/testing/xorg-bdftopcf/PKGBUILD
new file mode 100644
index 000000000..80920d665
--- /dev/null
+++ b/testing/xorg-bdftopcf/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113655 2011-03-10 14:27:34Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-bdftopcf
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Convert X font from Bitmap Distribution Format to Portable Compiled Format"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxfont')
+makedepends=('xorg-util-macros' 'xproto')
+groups=('xorg' 'xorg-apps')
+source=(http://xorg.freedesktop.org/archive/individual/app/bdftopcf-${pkgver}.tar.bz2)
+sha1sums=('146b4ece2867479045c3b4593b22c9f1d21da14a')
+
+build() {
+ cd "${srcdir}/bdftopcf-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-font-util/PKGBUILD b/testing/xorg-font-util/PKGBUILD
new file mode 100644
index 000000000..09ec5570f
--- /dev/null
+++ b/testing/xorg-font-util/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-font-util
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X.Org font utilities"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+makedepends=('xorg-util-macros')
+replaces=('font-util')
+provides=('font-util')
+conflicts=('font-util')
+groups=('xorg-fonts' 'xorg')
+source=(${url}/releases/individual/font/font-util-${pkgver}.tar.bz2)
+sha1sums=('011fa9c8fe08d9f6f848df570374ed1cb7488146')
+
+build() {
+ cd "${srcdir}/font-util-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-mapdir=/usr/share/fonts/util --with-fontrootdir=/usr/share/fonts
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-iceauth/PKGBUILD b/testing/xorg-iceauth/PKGBUILD
new file mode 100644
index 000000000..7489c6c08
--- /dev/null
+++ b/testing/xorg-iceauth/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113660 2011-03-10 14:29:50Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-iceauth
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="ICE authority file utility"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libice')
+makedepends=('xorg-util-macros' 'xproto')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/iceauth-${pkgver}.tar.bz2)
+sha1sums=('9b446c0d1815dce48bdea32db7dea7e429f6a310')
+
+build() {
+ cd "${srcdir}/iceauth-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-luit/PKGBUILD b/testing/xorg-luit/PKGBUILD
new file mode 100644
index 000000000..3b7f03484
--- /dev/null
+++ b/testing/xorg-luit/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 113665 2011-03-10 14:31:25Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-luit
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="Filter that can be run between an arbitrary application and
+a UTF-8 terminal emulator"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libfontenc')
+groups=('xorg' 'xorg-apps')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/luit-${pkgver}.tar.bz2)
+sha1sums=('fa974b417f6b65c241398d8d011207c6facb0766')
+
+build() {
+ cd "${srcdir}/luit-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-mkfontscale/PKGBUILD b/testing/xorg-mkfontscale/PKGBUILD
new file mode 100644
index 000000000..fd5ee0a7f
--- /dev/null
+++ b/testing/xorg-mkfontscale/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113678 2011-03-10 14:41:30Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-mkfontscale
+pkgver=1.0.8
+pkgrel=1
+pkgdesc="Create an index of scalable font files for X"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('freetype2' 'libfontenc')
+makedepends=('xorg-util-macros' 'xproto')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/mkfontscale-${pkgver}.tar.bz2)
+sha1sums=('accfb12751bf3b7ae7b28c1b0b863d5be871398f')
+
+build() {
+ cd "${srcdir}/mkfontscale-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-oclock/PKGBUILD b/testing/xorg-oclock/PKGBUILD
new file mode 100644
index 000000000..0453c41e4
--- /dev/null
+++ b/testing/xorg-oclock/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-oclock
+pkgver=1.0.2
+pkgrel=1
+pkgdesc="Round X clock"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu' 'libxext')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/oclock-${pkgver}.tar.bz2)
+sha1sums=('ba606d39fba6021c4db76d79751779f7b5c862e9')
+
+build() {
+ cd "${srcdir}/oclock-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-server/10-quirks.conf b/testing/xorg-server/10-quirks.conf
new file mode 100644
index 000000000..7afad22dc
--- /dev/null
+++ b/testing/xorg-server/10-quirks.conf
@@ -0,0 +1,10 @@
+# Collection of quirks and blacklist/whitelists for specific devices.
+
+
+# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable
+# http://bugs.freedesktop.org/show_bug.cgi?id=22442
+Section "InputClass"
+ Identifier "ThinkPad HDAPS accelerometer blacklist"
+ MatchProduct "ThinkPad HDAPS accelerometer data"
+ Option "Ignore" "on"
+EndSection
diff --git a/testing/xorg-server/PKGBUILD b/testing/xorg-server/PKGBUILD
new file mode 100644
index 000000000..bd16d9086
--- /dev/null
+++ b/testing/xorg-server/PKGBUILD
@@ -0,0 +1,189 @@
+# $Id: PKGBUILD 119887 2011-04-16 12:07:45Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=xorg-server
+pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-common' 'xorg-server-devel')
+pkgver=1.10.1
+pkgrel=1
+arch=('i686' 'x86_64' 'mips64el')
+license=('custom')
+url="http://xorg.freedesktop.org"
+makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto' 'inputproto' 'fontsproto' 'videoproto' 'compositeproto' 'recordproto' 'scrnsaverproto' 'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont' 'renderproto' 'libpciaccess' 'libxv' 'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres' 'xorg-xkbcomp' 'xorg-util-macros' 'xorg-font-util')
+options=('!libtool')
+source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2
+ bg-none-revert.patch
+ glx-pixmap-crash.patch
+ xserver-1.10-pointer-barriers.patch
+ xorg-redhat-die-ugly-pattern-die-die-die.patch
+ xvfb-run
+ xvfb-run.1
+ 10-quirks.conf)
+sha1sums=('59ada4c9a59f7f1eb4b68c359e9cd58272aa4809'
+ '629c6d8d52126eab81ee1b72a9e4209535f8cb81'
+ '19e7164dcf9814ad64231b50a46f651b0e68a27a'
+ '1b95e91384a57d966428c7db98ed06f4cc562f91'
+ '0efcdf61bde3c0cd813072b94e2b30ab922775b9'
+ 'c94f742d3f9cabf958ae58e4015d9dd185aabedc'
+ '6838fc00ef4618c924a77e0fb03c05346080908a'
+ '993798f3d22ad672d769dae5f48d1fa068d5578f')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ # Get rid of the ugly pattern
+ patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch"
+
+ # Add pointer barrier support, patch from Fedora
+ patch -Np1 -i "${srcdir}/xserver-1.10-pointer-barriers.patch"
+
+ # Patches from ~ajax/xserver xserver-next branch
+ patch -Np1 -i "${srcdir}/bg-none-revert.patch"
+ patch -Np1 -i "${srcdir}/glx-pixmap-crash.patch"
+
+ autoreconf
+ ./configure --prefix=/usr \
+ --enable-ipv6 \
+ --enable-dri \
+ --enable-dmx \
+ --enable-xvfb \
+ --enable-xnest \
+ --enable-composite \
+ --enable-xcsecurity \
+ --enable-xorg \
+ --enable-xephyr \
+ --enable-glx-tls \
+ --enable-kdrive \
+ --enable-install-setuid \
+ --enable-config-udev \
+ --disable-config-dbus \
+ --enable-record \
+ --disable-xfbdev \
+ --disable-xfake \
+ --disable-static \
+ --sysconfdir=/etc/X11 \
+ --localstatedir=/var \
+ --with-xkb-path=/usr/share/X11/xkb \
+ --with-xkb-output=/var/lib/xkb \
+ --with-fontrootdir=/usr/share/fonts
+ make
+
+ sed -e 's/^DMX_SUBDIRS =.*/DMX_SUBDIRS =/' \
+ -e 's/^XVFB_SUBDIRS =.*/XVFB_SUBDIRS =/' \
+ -e 's/^XNEST_SUBDIRS =.*/XNEST_SUBDIRS = /' \
+ -e 's/^KDRIVE_SUBDIRS =.*/KDRIVE_SUBDIRS =/' \
+ -i hw/Makefile
+}
+
+package_xorg-server-common() {
+ pkgdesc="Xorg server common files"
+ depends=('xkeyboard-config' 'xorg-xkbcomp' 'xorg-setxkbmap' 'xorg-fonts-misc')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-common"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/xorg-server-common"
+
+ make -C xkb DESTDIR="${pkgdir}" install-data
+
+ install -m755 -d "${pkgdir}/usr/share/man/man1"
+ install -m644 doc/man/Xserver.1 "${pkgdir}/usr/share/man/man1/"
+
+ install -m755 -d "${pkgdir}/usr/lib/xorg"
+ install -m644 dix/protocol.txt "${pkgdir}/usr/lib/xorg/"
+}
+
+package_xorg-server() {
+ pkgdesc="Xorg X server"
+ depends=(libxdmcp libxfont udev libpciaccess libdrm pixman libgcrypt libxau xorg-server-common xf86-input-evdev)
+ backup=('etc/X11/xorg.conf.d/10-evdev.conf' 'etc/X11/xorg.conf.d/10-quirks.conf')
+ provides=('x-server')
+ groups=('xorg')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/etc/X11"
+ mv "${pkgdir}/usr/share/X11/xorg.conf.d" "${pkgdir}/etc/X11/"
+ install -m644 "${srcdir}/10-quirks.conf" "${pkgdir}/etc/X11/xorg.conf.d/"
+
+ rmdir "${pkgdir}/usr/share/X11"
+
+ # 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"
+
+ rm -rf "${pkgdir}/var"
+
+ rm -f "${pkgdir}/usr/share/man/man1/Xserver.1"
+ rm -f "${pkgdir}/usr/lib/xorg/protocol.txt"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server/COPYING"
+
+ rm -rf "${pkgdir}/usr/lib/pkgconfig"
+ rm -rf "${pkgdir}/usr/include"
+ rm -rf "${pkgdir}/usr/share/aclocal"
+}
+
+package_xorg-server-xephyr() {
+ pkgdesc="A nested X server that runs as an X application"
+ depends=(libxfont libgl libgcrypt libxv pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/kdrive"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xephyr"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xephyr/COPYING"
+}
+
+package_xorg-server-xvfb() {
+ pkgdesc="Virtual framebuffer X server"
+ depends=(libxfont libxdmcp libxau libgcrypt pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/vfb"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 "${srcdir}/xvfb-run" "${pkgdir}/usr/bin/"
+ install -m644 "${srcdir}/xvfb-run.1" "${pkgdir}/usr/share/man/man1/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xvfb"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xvfb/COPYING"
+}
+
+package_xorg-server-xnest() {
+ pkgdesc="A nested X server that runs as an X application"
+ depends=(libxfont libxext libgcrypt pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/xnest"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xnest"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xnest/COPYING"
+}
+
+package_xorg-server-xdmx() {
+ pkgdesc="Distributed Multihead X Server and utilities"
+ depends=(libxfont libxi libgcrypt libxaw libxrender libdmx libxfixes pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/dmx"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xdmx"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xdmx/COPYING"
+}
+
+package_xorg-server-devel() {
+ pkgdesc="Development files for the X.Org X server"
+ depends=(xproto randrproto renderproto xextproto inputproto kbproto fontsproto videoproto dri2proto xineramaproto xorg-util-macros pixman libpciaccess)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}/usr/bin"
+ rm -rf "${pkgdir}/usr/share/man"
+ rm -rf "${pkgdir}/usr/share/doc"
+ rm -rf "${pkgdir}/usr/share/X11"
+ rm -rf "${pkgdir}/usr/lib/xorg"
+ rm -rf "${pkgdir}/var"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-devel"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-devel/COPYING"
+}
diff --git a/testing/xorg-server/bg-none-revert.patch b/testing/xorg-server/bg-none-revert.patch
new file mode 100644
index 000000000..1a38f1f41
--- /dev/null
+++ b/testing/xorg-server/bg-none-revert.patch
@@ -0,0 +1,58 @@
+From 3bc6ed2d8c9028ec28015d05b60af67a194f3694 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 29 Mar 2011 14:09:46 +0000
+Subject: Revert "composite: Don't backfill non-bg-None windows"
+
+This reverts commit 6dd775f57d2f94f0ddaee324aeec33b9b66ed5bc.
+
+Bugzilla: https://bugs.freedesktop.org/34427
+
+Acked-by: Alex Deucher <alexdeucher@gmail.com>
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+diff --git a/composite/compalloc.c b/composite/compalloc.c
+index e4064f6..7164c0d 100644
+--- a/composite/compalloc.c
++++ b/composite/compalloc.c
+@@ -508,17 +508,6 @@ compUnredirectOneSubwindow (WindowPtr pParent, WindowPtr pWin)
+ return Success;
+ }
+
+-static int
+-bgNoneVisitWindow(WindowPtr pWin, void *null)
+-{
+- if (pWin->backgroundState != BackgroundPixmap)
+- return WT_WALKCHILDREN;
+- if (pWin->background.pixmap != None)
+- return WT_WALKCHILDREN;
+-
+- return WT_STOPWALKING;
+-}
+-
+ static PixmapPtr
+ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h, Bool map)
+ {
+@@ -539,21 +528,6 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h, Bool map)
+ if (!map)
+ return pPixmap;
+
+- /*
+- * If there's no bg=None in the tree, we're done.
+- *
+- * We could optimize this more by collection the regions of all the
+- * bg=None subwindows and feeding that in as the clip for the
+- * CopyArea below, but since window trees are shallow these days it
+- * might not be worth the effort.
+- */
+- if (TraverseTree(pWin, bgNoneVisitWindow, NULL) == WT_NOMATCH)
+- return pPixmap;
+-
+- /*
+- * Copy bits from the parent into the new pixmap so that it will
+- * have "reasonable" contents in case for background None areas.
+- */
+ if (pParent->drawable.depth == pWin->drawable.depth)
+ {
+ GCPtr pGC = GetScratchGC (pWin->drawable.depth, pScreen);
+--
+cgit v0.8.3-6-g21f6
diff --git a/testing/xorg-server/glx-pixmap-crash.patch b/testing/xorg-server/glx-pixmap-crash.patch
new file mode 100644
index 000000000..48f258eb5
--- /dev/null
+++ b/testing/xorg-server/glx-pixmap-crash.patch
@@ -0,0 +1,85 @@
+From 390ba6686d1baf80627c01d4a4273981d6606cc9 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Mon, 28 Mar 2011 16:30:09 +0000
+Subject: glx: Fix lifetime tracking for pixmaps
+
+GLX pixmaps take a reference on the underlying pixmap; X and GLX pixmap
+IDs can be destroyed in either order with no error. Only windows need
+to be tracked under both XIDs.
+
+Fixes piglit/glx-pixmap-life.
+
+Reviewed-by: Michel Dänzer <michel@daenzer.net>
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+diff --git a/glx/glxcmds.c b/glx/glxcmds.c
+index 66d4c7e..d5b764f 100644
+--- a/glx/glxcmds.c
++++ b/glx/glxcmds.c
+@@ -1127,10 +1127,11 @@ DoCreateGLXDrawable(ClientPtr client, __GLXscreen *pGlxScreen,
+ return BadAlloc;
+ }
+
+- /* Add the glx drawable under the XID of the underlying X drawable
+- * too. That way we'll get a callback in DrawableGone and can
+- * clean up properly when the drawable is destroyed. */
+- if (drawableId != glxDrawableId &&
++ /*
++ * Windows aren't refcounted, so track both the X and the GLX window
++ * so we get called regardless of destruction order.
++ */
++ if (drawableId != glxDrawableId && type == GLX_DRAWABLE_WINDOW &&
+ !AddResource(pDraw->id, __glXDrawableRes, pGlxDraw)) {
+ pGlxDraw->destroy (pGlxDraw);
+ return BadAlloc;
+@@ -1161,6 +1162,8 @@ DoCreateGLXPixmap(ClientPtr client, __GLXscreen *pGlxScreen, __GLXconfig *config
+ err = DoCreateGLXDrawable(client, pGlxScreen, config, pDraw, drawableId,
+ glxDrawableId, GLX_DRAWABLE_PIXMAP);
+
++ ((PixmapPtr)pDraw)->refcnt++;
++
+ return err;
+ }
+
+diff --git a/glx/glxext.c b/glx/glxext.c
+index 3f3dd79..9cfc096 100644
+--- a/glx/glxext.c
++++ b/glx/glxext.c
+@@ -118,15 +118,15 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
+ {
+ __GLXcontext *c, *next;
+
+- /* If this drawable was created using glx 1.3 drawable
+- * constructors, we added it as a glx drawable resource under both
+- * its glx drawable ID and it X drawable ID. Remove the other
+- * resource now so we don't a callback for freed memory. */
+- if (glxPriv->drawId != glxPriv->pDraw->id) {
+- if (xid == glxPriv->drawId)
+- FreeResourceByType(glxPriv->pDraw->id, __glXDrawableRes, TRUE);
+- else
+- FreeResourceByType(glxPriv->drawId, __glXDrawableRes, TRUE);
++ if (glxPriv->type == GLX_DRAWABLE_WINDOW) {
++ /* If this was created by glXCreateWindow, free the matching resource */
++ if (glxPriv->drawId != glxPriv->pDraw->id) {
++ if (xid == glxPriv->drawId)
++ FreeResourceByType(glxPriv->pDraw->id, __glXDrawableRes, TRUE);
++ else
++ FreeResourceByType(glxPriv->drawId, __glXDrawableRes, TRUE);
++ }
++ /* otherwise this window was implicitly created by MakeCurrent */
+ }
+
+ for (c = glxAllContexts; c; c = next) {
+@@ -143,6 +143,10 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
+ c->readPriv = NULL;
+ }
+
++ /* drop our reference to any backing pixmap */
++ if (glxPriv->type == GLX_DRAWABLE_PIXMAP)
++ glxPriv->pDraw->pScreen->DestroyPixmap((PixmapPtr)glxPriv->pDraw);
++
+ glxPriv->destroy(glxPriv);
+
+ return True;
+--
+cgit v0.8.3-6-g21f6
diff --git a/testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch b/testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
new file mode 100644
index 000000000..4e782f1c6
--- /dev/null
+++ b/testing/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/testing/xorg-server/xserver-1.10-pointer-barriers.patch b/testing/xorg-server/xserver-1.10-pointer-barriers.patch
new file mode 100644
index 000000000..099565436
--- /dev/null
+++ b/testing/xorg-server/xserver-1.10-pointer-barriers.patch
@@ -0,0 +1,1054 @@
+From 14f1112bec18ccece8e732fe6c200a56546230c7 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Thu, 17 Mar 2011 13:56:17 -0400
+Subject: [PATCH] CRTC confine and pointer barriers
+
+---
+ dix/events.c | 7 +
+ dix/getevents.c | 12 +-
+ include/dix.h | 1 +
+ include/protocol-versions.h | 2 +-
+ mi/mipointer.c | 16 ++-
+ mi/mipointer.h | 6 +
+ randr/randr.c | 2 +
+ randr/randrstr.h | 4 +
+ randr/rrcrtc.c | 155 ++++++++++++++++
+ test/Makefile.am | 4 +-
+ xfixes/cursor.c | 408 ++++++++++++++++++++++++++++++++++++++++++-
+ xfixes/xfixes.c | 24 ++-
+ xfixes/xfixes.h | 17 ++
+ xfixes/xfixesint.h | 16 ++
+ 14 files changed, 658 insertions(+), 16 deletions(-)
+
+diff --git a/dix/events.c b/dix/events.c
+index 07f8b05..d2be84f 100644
+--- a/dix/events.c
++++ b/dix/events.c
+@@ -328,6 +328,13 @@ IsMaster(DeviceIntPtr dev)
+ return dev->type == MASTER_POINTER || dev->type == MASTER_KEYBOARD;
+ }
+
++Bool
++IsFloating(DeviceIntPtr dev)
++{
++ return GetMaster(dev, MASTER_KEYBOARD) == NULL;
++}
++
++
+ /**
+ * Max event opcode.
+ */
+diff --git a/dix/getevents.c b/dix/getevents.c
+index 794df42..c66e516 100644
+--- a/dix/getevents.c
++++ b/dix/getevents.c
+@@ -812,7 +812,11 @@ accelPointer(DeviceIntPtr dev, int first, int num, int *valuators, CARD32 ms)
+ * miPointerSetPosition() and then scale back into device coordinates (if
+ * needed). miPSP will change x/y if the screen was crossed.
+ *
++ * The coordinates provided are always absolute. The parameter mode whether
++ * it was relative or absolute movement that landed us at those coordinates.
++ *
+ * @param dev The device to be moved.
++ * @param mode Movement mode (Absolute or Relative)
+ * @param x Pointer to current x-axis value, may be modified.
+ * @param y Pointer to current y-axis value, may be modified.
+ * @param x_frac Fractional part of current x-axis value, may be modified.
+@@ -824,7 +828,8 @@ accelPointer(DeviceIntPtr dev, int first, int num, int *valuators, CARD32 ms)
+ * @param screeny_frac Fractional part of screen y coordinate, as above.
+ */
+ static void
+-positionSprite(DeviceIntPtr dev, int *x, int *y, float x_frac, float y_frac,
++positionSprite(DeviceIntPtr dev, int mode,
++ int *x, int *y, float x_frac, float y_frac,
+ ScreenPtr scr, int *screenx, int *screeny, float *screenx_frac, float *screeny_frac)
+ {
+ int old_screenx, old_screeny;
+@@ -863,7 +868,7 @@ positionSprite(DeviceIntPtr dev, int *x, int *y, float x_frac, float y_frac,
+ old_screeny = *screeny;
+ /* This takes care of crossing screens for us, as well as clipping
+ * to the current screen. */
+- miPointerSetPosition(dev, screenx, screeny);
++ _miPointerSetPosition(dev, mode, screenx, screeny);
+
+ if (dev->u.master) {
+ dev->u.master->last.valuators[0] = *screenx;
+@@ -1193,7 +1198,8 @@ GetPointerEvents(EventList *events, DeviceIntPtr pDev, int type, int buttons,
+
+ set_raw_valuators(raw, &mask, raw->valuators.data);
+
+- positionSprite(pDev, &x, &y, x_frac, y_frac, scr, &cx, &cy, &cx_frac, &cy_frac);
++ positionSprite(pDev, (flags & POINTER_ABSOLUTE) ? Absolute : Relative,
++ &x, &y, x_frac, y_frac, scr, &cx, &cy, &cx_frac, &cy_frac);
+ updateHistory(pDev, &mask, ms);
+
+ /* Update the valuators with the true value sent to the client*/
+diff --git a/include/dix.h b/include/dix.h
+index 12e4b59..3f99098 100644
+--- a/include/dix.h
++++ b/include/dix.h
+@@ -570,6 +570,7 @@ extern Bool _X_EXPORT IsPointerDevice( DeviceIntPtr dev);
+ extern Bool _X_EXPORT IsKeyboardDevice(DeviceIntPtr dev);
+ extern Bool IsPointerEvent(InternalEvent *event);
+ extern _X_EXPORT Bool IsMaster(DeviceIntPtr dev);
++extern _X_EXPORT Bool IsFloating(DeviceIntPtr dev);
+
+ extern _X_HIDDEN void CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master);
+ extern _X_HIDDEN int CorePointerProc(DeviceIntPtr dev, int what);
+diff --git a/include/protocol-versions.h b/include/protocol-versions.h
+index 1d33bdd..1dc66ad 100644
+--- a/include/protocol-versions.h
++++ b/include/protocol-versions.h
+@@ -126,7 +126,7 @@
+ #define SERVER_XF86VIDMODE_MINOR_VERSION 2
+
+ /* Fixes */
+-#define SERVER_XFIXES_MAJOR_VERSION 4
++#define SERVER_XFIXES_MAJOR_VERSION 5
+ #define SERVER_XFIXES_MINOR_VERSION 0
+
+ /* X Input */
+diff --git a/mi/mipointer.c b/mi/mipointer.c
+index 554397a..85f1949 100644
+--- a/mi/mipointer.c
++++ b/mi/mipointer.c
+@@ -229,6 +229,10 @@ miPointerSetCursorPosition(DeviceIntPtr pDev, ScreenPtr pScreen,
+ SetupScreen (pScreen);
+
+ GenerateEvent = generateEvent;
++
++ if (pScreen->ConstrainCursorHarder)
++ pScreen->ConstrainCursorHarder(pDev, pScreen, Absolute, &x, &y);
++
+ /* device dependent - must pend signal and call miPointerWarpCursor */
+ (*pScreenPriv->screenFuncs->WarpCursor) (pDev, pScreen, x, y);
+ if (!generateEvent)
+@@ -484,7 +488,7 @@ miPointerMoveNoEvent (DeviceIntPtr pDev, ScreenPtr pScreen,
+ }
+
+ void
+-miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y)
++_miPointerSetPosition(DeviceIntPtr pDev, int mode, int *x, int *y)
+ {
+ miPointerScreenPtr pScreenPriv;
+ ScreenPtr pScreen;
+@@ -529,6 +533,9 @@ miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y)
+ if (*y >= pPointer->limits.y2)
+ *y = pPointer->limits.y2 - 1;
+
++ if (pScreen->ConstrainCursorHarder)
++ pScreen->ConstrainCursorHarder(pDev, pScreen, mode, x, y);
++
+ if (pPointer->x == *x && pPointer->y == *y &&
+ pPointer->pScreen == pScreen)
+ return;
+@@ -536,6 +543,13 @@ miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y)
+ miPointerMoveNoEvent(pDev, pScreen, *x, *y);
+ }
+
++/* ABI hack */
++void
++miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y)
++{
++ _miPointerSetPosition(pDev, Absolute, x, y);
++}
++
+ void
+ miPointerGetPosition(DeviceIntPtr pDev, int *x, int *y)
+ {
+diff --git a/mi/mipointer.h b/mi/mipointer.h
+index 3c86110..6b6010c 100644
+--- a/mi/mipointer.h
++++ b/mi/mipointer.h
+@@ -131,6 +131,12 @@ extern _X_EXPORT void miPointerGetPosition(
+
+ /* Moves the cursor to the specified position. May clip the co-ordinates:
+ * x and y are modified in-place. */
++extern _X_EXPORT void _miPointerSetPosition(
++ DeviceIntPtr pDev,
++ int mode,
++ int *x,
++ int *y);
++
+ extern _X_EXPORT void miPointerSetPosition(
+ DeviceIntPtr pDev,
+ int *x,
+diff --git a/randr/randr.c b/randr/randr.c
+index 6077705..d337129 100644
+--- a/randr/randr.c
++++ b/randr/randr.c
+@@ -270,6 +270,8 @@ Bool RRScreenInit(ScreenPtr pScreen)
+
+ wrap (pScrPriv, pScreen, CloseScreen, RRCloseScreen);
+
++ pScreen->ConstrainCursorHarder = RRConstrainCursorHarder;
++
+ pScrPriv->numOutputs = 0;
+ pScrPriv->outputs = NULL;
+ pScrPriv->numCrtcs = 0;
+diff --git a/randr/randrstr.h b/randr/randrstr.h
+index 7ea6080..d8dd37d 100644
+--- a/randr/randrstr.h
++++ b/randr/randrstr.h
+@@ -297,6 +297,7 @@ typedef struct _rrScrPriv {
+ int rate;
+ int size;
+ #endif
++ Bool discontiguous;
+ } rrScrPrivRec, *rrScrPrivPtr;
+
+ extern _X_EXPORT DevPrivateKeyRec rrPrivKeyRec;
+@@ -700,6 +701,9 @@ ProcRRGetPanning (ClientPtr client);
+ int
+ ProcRRSetPanning (ClientPtr client);
+
++void
++RRConstrainCursorHarder (DeviceIntPtr, ScreenPtr, int, int *, int *);
++
+ /* rrdispatch.c */
+ extern _X_EXPORT Bool
+ RRClientKnowsRates (ClientPtr pClient);
+diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
+index 98206a2..d4d8f2a 100644
+--- a/randr/rrcrtc.c
++++ b/randr/rrcrtc.c
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright © 2006 Keith Packard
++ * Copyright 2010 Red Hat, Inc
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+@@ -22,6 +23,7 @@
+
+ #include "randrstr.h"
+ #include "swaprep.h"
++#include "mipointer.h"
+
+ RESTYPE RRCrtcType;
+
+@@ -292,6 +294,92 @@ RRCrtcPendingProperties (RRCrtcPtr crtc)
+ return FALSE;
+ }
+
++static void
++crtc_bounds(RRCrtcPtr crtc, int *left, int *right, int *top, int *bottom)
++{
++ *left = crtc->x;
++ *top = crtc->y;
++
++ switch (crtc->rotation) {
++ case RR_Rotate_0:
++ case RR_Rotate_180:
++ default:
++ *right = crtc->x + crtc->mode->mode.width;
++ *bottom = crtc->y + crtc->mode->mode.height;
++ return;
++ case RR_Rotate_90:
++ case RR_Rotate_270:
++ *right = crtc->x + crtc->mode->mode.height;
++ *bottom = crtc->y + crtc->mode->mode.width;
++ return;
++ }
++}
++
++/* overlapping counts as adjacent */
++static Bool
++crtcs_adjacent(const RRCrtcPtr a, const RRCrtcPtr b)
++{
++ /* left, right, top, bottom... */
++ int al, ar, at, ab;
++ int bl, br, bt, bb;
++ int cl, cr, ct, cb; /* the overlap, if any */
++
++ crtc_bounds(a, &al, &ar, &at, &ab);
++ crtc_bounds(b, &bl, &br, &bt, &bb);
++
++ cl = max(al, bl);
++ cr = min(ar, br);
++ ct = max(at, bt);
++ cb = min(ab, bb);
++
++ return (cl <= cr) && (ct <= cb);
++}
++
++/* Depth-first search and mark all CRTCs reachable from cur */
++static void
++mark_crtcs (rrScrPrivPtr pScrPriv, int *reachable, int cur)
++{
++ int i;
++ reachable[cur] = TRUE;
++ for (i = 0; i < pScrPriv->numCrtcs; ++i) {
++ if (reachable[i] || !pScrPriv->crtcs[i]->mode)
++ continue;
++ if (crtcs_adjacent(pScrPriv->crtcs[cur], pScrPriv->crtcs[i]))
++ mark_crtcs(pScrPriv, reachable, i);
++ }
++}
++
++static void
++RRComputeContiguity (ScreenPtr pScreen)
++{
++ rrScrPriv(pScreen);
++ Bool discontiguous = TRUE;
++ int i, n = pScrPriv->numCrtcs;
++
++ int *reachable = calloc(n, sizeof(int));
++ if (!reachable)
++ goto out;
++
++ /* Find first enabled CRTC and start search for reachable CRTCs from it */
++ for (i = 0; i < n; ++i) {
++ if (pScrPriv->crtcs[i]->mode) {
++ mark_crtcs(pScrPriv, reachable, i);
++ break;
++ }
++ }
++
++ /* Check that all enabled CRTCs were marked as reachable */
++ for (i = 0; i < n; ++i)
++ if (pScrPriv->crtcs[i]->mode && !reachable[i])
++ goto out;
++
++ discontiguous = FALSE;
++
++out:
++ free(reachable);
++ pScrPriv->discontiguous = discontiguous;
++}
++
+ /*
+ * Request that the Crtc be reconfigured
+ */
+@@ -306,6 +394,7 @@ RRCrtcSet (RRCrtcPtr crtc,
+ {
+ ScreenPtr pScreen = crtc->pScreen;
+ Bool ret = FALSE;
++ Bool recompute = TRUE;
+ rrScrPriv(pScreen);
+
+ /* See if nothing changed */
+@@ -318,6 +407,7 @@ RRCrtcSet (RRCrtcPtr crtc,
+ !RRCrtcPendingProperties (crtc) &&
+ !RRCrtcPendingTransform (crtc))
+ {
++ recompute = FALSE;
+ ret = TRUE;
+ }
+ else
+@@ -381,6 +471,10 @@ RRCrtcSet (RRCrtcPtr crtc,
+ RRPostPendingProperties (outputs[o]);
+ }
+ }
++
++ if (recompute)
++ RRComputeContiguity(pScreen);
++
+ return ret;
+ }
+
+@@ -1349,3 +1443,64 @@ ProcRRGetCrtcTransform (ClientPtr client)
+ free(reply);
+ return Success;
+ }
++
++void
++RRConstrainCursorHarder(DeviceIntPtr pDev, ScreenPtr pScreen, int mode, int *x, int *y)
++{
++ rrScrPriv (pScreen);
++ int i;
++
++ /* intentional dead space -> let it float */
++ if (pScrPriv->discontiguous)
++ return;
++
++ /* if we're moving inside a crtc, we're fine */
++ for (i = 0; i < pScrPriv->numCrtcs; i++) {
++ RRCrtcPtr crtc = pScrPriv->crtcs[i];
++
++ int left, right, top, bottom;
++
++ if (!crtc->mode)
++ continue;
++
++ crtc_bounds(crtc, &left, &right, &top, &bottom);
++
++ if ((*x >= left) && (*x <= right) && (*y >= top) && (*y <= bottom))
++ return;
++ }
++
++ /* if we're trying to escape, clamp to the CRTC we're coming from */
++ for (i = 0; i < pScrPriv->numCrtcs; i++) {
++ RRCrtcPtr crtc = pScrPriv->crtcs[i];
++ int nx, ny;
++ int left, right, top, bottom;
++
++ if (!crtc->mode)
++ continue;
++
++ crtc_bounds(crtc, &left, &right, &top, &bottom);
++ miPointerGetPosition(pDev, &nx, &ny);
++
++ if ((nx >= left) && (nx <= right) && (ny >= top) && (ny <= bottom)) {
++ if ((*x <= left) || (*x >= right)) {
++ int dx = *x - nx;
++
++ if (dx > 0)
++ *x = right;
++ else if (dx < 0)
++ *x = left;
++ }
++
++ if ((*y <= top) || (*y >= bottom)) {
++ int dy = *y - ny;
++
++ if (dy > 0)
++ *y = bottom;
++ else if (dy < 0)
++ *y = top;
++ }
++
++ return;
++ }
++ }
++}
+diff --git a/test/Makefile.am b/test/Makefile.am
+index 456221e..ccdb859 100644
+--- a/test/Makefile.am
++++ b/test/Makefile.am
+@@ -1,6 +1,6 @@
+ if UNITTESTS
+ SUBDIRS= . xi2
+-check_PROGRAMS = xkb input xtest
++check_PROGRAMS = xkb input xtest list fixes
+ check_LTLIBRARIES = libxservertest.la
+
+ TESTS=$(check_PROGRAMS)
+@@ -16,6 +16,8 @@ endif
+ xkb_LDADD=$(TEST_LDADD)
+ input_LDADD=$(TEST_LDADD)
+ xtest_LDADD=$(TEST_LDADD)
++list_LDADD=$(TEST_LDADD)
++fixes_LDADD=$(TEST_LDADD)
+
+ libxservertest_la_LIBADD = \
+ $(XSERVER_LIBS) \
+diff --git a/xfixes/cursor.c b/xfixes/cursor.c
+index fb608f6..5c55c95 100644
+--- a/xfixes/cursor.c
++++ b/xfixes/cursor.c
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
++ * Copyright 2010 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+@@ -50,13 +51,16 @@
+ #include "cursorstr.h"
+ #include "dixevents.h"
+ #include "servermd.h"
++#include "mipointer.h"
+ #include "inputstr.h"
+ #include "windowstr.h"
+ #include "xace.h"
++#include "list.h"
+
+ static RESTYPE CursorClientType;
+ static RESTYPE CursorHideCountType;
+ static RESTYPE CursorWindowType;
++RESTYPE PointerBarrierType;
+ static CursorPtr CursorCurrent[MAXDEVICES];
+
+ static DevPrivateKeyRec CursorScreenPrivateKeyRec;
+@@ -107,6 +111,14 @@ typedef struct _CursorHideCountRec {
+ XID resource;
+ } CursorHideCountRec;
+
++typedef struct PointerBarrierClient *PointerBarrierClientPtr;
++
++struct PointerBarrierClient {
++ ScreenPtr screen;
++ struct PointerBarrier barrier;
++ struct list entry;
++};
++
+ /*
+ * Wrap DisplayCursor to catch cursor change events
+ */
+@@ -114,7 +126,9 @@ typedef struct _CursorHideCountRec {
+ typedef struct _CursorScreen {
+ DisplayCursorProcPtr DisplayCursor;
+ CloseScreenProcPtr CloseScreen;
++ ConstrainCursorHarderProcPtr ConstrainCursorHarder;
+ CursorHideCountPtr pCursorHideCounts;
++ struct list barriers;
+ } CursorScreenRec, *CursorScreenPtr;
+
+ #define GetCursorScreen(s) ((CursorScreenPtr)dixLookupPrivate(&(s)->devPrivates, CursorScreenPrivateKey))
+@@ -184,9 +198,11 @@ CursorCloseScreen (int index, ScreenPtr pScreen)
+ Bool ret;
+ CloseScreenProcPtr close_proc;
+ DisplayCursorProcPtr display_proc;
++ ConstrainCursorHarderProcPtr constrain_proc;
+
+ Unwrap (cs, pScreen, CloseScreen, close_proc);
+ Unwrap (cs, pScreen, DisplayCursor, display_proc);
++ Unwrap (cs, pScreen, ConstrainCursorHarder, constrain_proc);
+ deleteCursorHideCountsForScreen(pScreen);
+ ret = (*pScreen->CloseScreen) (index, pScreen);
+ free(cs);
+@@ -1029,6 +1045,391 @@ CursorFreeWindow (pointer data, XID id)
+ return 1;
+ }
+
++static BOOL
++barrier_is_horizontal(const struct PointerBarrier *barrier)
++{
++ return barrier->y1 == barrier->y2;
++}
++
++static BOOL
++barrier_is_vertical(const struct PointerBarrier *barrier)
++{
++ return barrier->x1 == barrier->x2;
++}
++
++/**
++ * @return The set of barrier movement directions the movement vector
++ * x1/y1 → x2/y2 represents.
++ */
++int
++barrier_get_direction(int x1, int y1, int x2, int y2)
++{
++ int direction = 0;
++
++ /* which way are we trying to go */
++ if (x2 > x1)
++ direction |= BarrierPositiveX;
++ if (x2 < x1)
++ direction |= BarrierNegativeX;
++ if (y2 > y1)
++ direction |= BarrierPositiveY;
++ if (y2 < y1)
++ direction |= BarrierNegativeY;
++
++ return direction;
++}
++
++/**
++ * Test if the barrier may block movement in the direction defined by
++ * x1/y1 → x2/y2. This function only tests whether the directions could be
++ * blocked, it does not test if the barrier actually blocks the movement.
++ *
++ * @return TRUE if the barrier blocks the direction of movement or FALSE
++ * otherwise.
++ */
++BOOL
++barrier_is_blocking_direction(const struct PointerBarrier *barrier, int direction)
++{
++ /* Barriers define which way is ok, not which way is blocking */
++ return (barrier->directions & direction) != direction;
++}
++
++/**
++ * Test if the movement vector x1/y1 → x2/y2 is intersecting with the
++ * barrier. A movement vector with the startpoint or endpoint on the barrier
++ * itself counts as intersecting.
++ *
++ * @param x1 X start coordinate of movement vector
++ * @param y1 Y start coordinate of movement vector
++ * @param x2 X end coordinate of movement vector
++ * @param y2 Y end coordinate of movement vector
++ * @param[out] distance The distance between the start point and the
++ * intersection with the barrier (if applicable).
++ * @return TRUE if the barrier intersects with the given vector
++ */
++BOOL
++barrier_is_blocking(const struct PointerBarrier *barrier,
++ int x1, int y1, int x2, int y2,
++ double *distance)
++{
++ BOOL rc = FALSE;
++ float ua, ub, ud;
++ int dir = barrier_get_direction(x1, y1, x2, y2);
++
++ /* Algorithm below doesn't handle edge cases well, hence the extra
++ * checks. */
++ if (barrier_is_vertical(barrier)) {
++ /* handle immediate barrier adjacency, moving away */
++ if (dir & BarrierPositiveX && x1 == barrier->x1)
++ return FALSE;
++ if (dir & BarrierNegativeX && x1 == (barrier->x1 - 1))
++ return FALSE;
++ /* startpoint on barrier */
++ if (x1 == barrier->x1 && y1 >= barrier->y1 && y1 <= barrier->y2) {
++ *distance = 0;
++ return TRUE;
++ }
++ /* endpoint on barrier */
++ if (x2 == barrier->x1 && y2 >= barrier->y1 && y2 <= barrier->y2) {
++ *distance = abs(x2 - x1);
++ return TRUE;
++ }
++ } else {
++ /* handle immediate barrier adjacency, moving away */
++ if (dir & BarrierPositiveY && y1 == barrier->y1)
++ return FALSE;
++ if (dir & BarrierNegativeY && y1 == (barrier->y1 - 1))
++ return FALSE;
++ /* startpoint on barrier */
++ if (y1 == barrier->y1 && x1 >= barrier->x1 && x1 <= barrier->x2) {
++ *distance = 0;
++ return TRUE;
++ }
++ /* endpoint on barrier */
++ if (y2 == barrier->y1 && x2 >= barrier->x1 && x2 <= barrier->x2) {
++ *distance = abs(y2 - y1);
++ return TRUE;
++ }
++ }
++
++ /* not an edge case, compute distance */
++ ua = 0;
++ ud = (barrier->y2 - barrier->y1) * (x2 - x1) - (barrier->x2 - barrier->x1) * (y2 - y1);
++ if (ud != 0) {
++ ua = ((barrier->x2 - barrier->x1) * (y1 - barrier->y1) -
++ (barrier->y2 - barrier->y1) * (x1 - barrier->x1)) / ud;
++ ub = ((x2 - x1) * (y1 - barrier->y1) -
++ (y2 - y1) * (x1 - barrier->x1)) / ud;
++ if (ua < 0 || ua > 1 || ub < 0 || ub > 1)
++ ua = 0;
++ }
++
++ if (ua > 0 && ua <= 1)
++ {
++ double ix = barrier->x1 + ua * (barrier->x2 - barrier->x1);
++ double iy = barrier->y1 + ua * (barrier->y2 - barrier->y1);
++
++ *distance = sqrt(pow(x1 - ix, 2) + pow(y1 - iy, 2));
++ rc = TRUE;
++ }
++
++ return rc;
++}
++
++/**
++ * Find the nearest barrier that is blocking movement from x1/y1 to x2/y2.
++ *
++ * @param dir Only barriers blocking movement in direction dir are checked
++ * @param x1 X start coordinate of movement vector
++ * @param y1 Y start coordinate of movement vector
++ * @param x2 X end coordinate of movement vector
++ * @param y2 Y end coordinate of movement vector
++ * @return The barrier nearest to the movement origin that blocks this movement.
++ */
++static struct PointerBarrier*
++barrier_find_nearest(CursorScreenPtr cs, int dir,
++ int x1, int y1, int x2, int y2)
++{
++ struct PointerBarrierClient *c;
++ struct PointerBarrier *nearest = NULL;
++ double min_distance = INT_MAX; /* can't get higher than that in X anyway */
++
++ list_for_each_entry(c, &cs->barriers, entry) {
++ struct PointerBarrier *b = &c->barrier;
++ double distance;
++
++ if (!barrier_is_blocking_direction(b, dir))
++ continue;
++
++ if (barrier_is_blocking(b, x1, y1, x2, y2, &distance))
++ {
++ if (min_distance > distance)
++ {
++ min_distance = distance;
++ nearest = b;
++ }
++ }
++ }
++
++ return nearest;
++}
++
++/**
++ * Clamp to the given barrier given the movement direction specified in dir.
++ *
++ * @param barrier The barrier to clamp to
++ * @param dir The movement direction
++ * @param[out] x The clamped x coordinate.
++ * @param[out] y The clamped x coordinate.
++ */
++void
++barrier_clamp_to_barrier(struct PointerBarrier *barrier, int dir, int *x, int *y)
++{
++ if (barrier_is_vertical(barrier)) {
++ if ((dir & BarrierNegativeX) & ~barrier->directions)
++ *x = barrier->x1;
++ if ((dir & BarrierPositiveX) & ~barrier->directions)
++ *x = barrier->x1 - 1;
++ }
++ if (barrier_is_horizontal(barrier))
++ {
++ if ((dir & BarrierNegativeY) & ~barrier->directions)
++ *y = barrier->y1;
++ if ((dir & BarrierPositiveY) & ~barrier->directions)
++ *y = barrier->y1 - 1;
++ }
++}
++
++static void
++CursorConstrainCursorHarder(DeviceIntPtr dev, ScreenPtr screen, int mode, int *x, int *y)
++{
++ CursorScreenPtr cs = GetCursorScreen(screen);
++
++ if (!list_is_empty(&cs->barriers) && !IsFloating(dev) && mode == Relative) {
++ int ox, oy;
++ int dir;
++ struct PointerBarrier *nearest = NULL;
++
++ /* where are we coming from */
++ miPointerGetPosition(dev, &ox, &oy);
++
++ /* How this works:
++ * Given the origin and the movement vector, get the nearest barrier
++ * to the origin that is blocking the movement.
++ * Clamp to that barrier.
++ * Then, check from the clamped position to the original
++ * destination, again finding the nearest barrier and clamping.
++ */
++ dir = barrier_get_direction(ox, oy, *x, *y);
++
++ nearest = barrier_find_nearest(cs, dir, ox, oy, *x, *y);
++ if (nearest) {
++ barrier_clamp_to_barrier(nearest, dir, x, y);
++
++ if (barrier_is_vertical(nearest)) {
++ dir &= ~(BarrierNegativeX | BarrierPositiveX);
++ ox = *x;
++ } else if (barrier_is_horizontal(nearest)) {
++ dir &= ~(BarrierNegativeY | BarrierPositiveY);
++ oy = *y;
++ }
++
++ nearest = barrier_find_nearest(cs, dir, ox, oy, *x, *y);
++ if (nearest) {
++ barrier_clamp_to_barrier(nearest, dir, x, y);
++ }
++ }
++ }
++
++ if (cs->ConstrainCursorHarder) {
++ screen->ConstrainCursorHarder = cs->ConstrainCursorHarder;
++ screen->ConstrainCursorHarder(dev, screen, mode, x, y);
++ screen->ConstrainCursorHarder = CursorConstrainCursorHarder;
++ }
++}
++
++static struct PointerBarrierClient *
++CreatePointerBarrierClient(ScreenPtr screen, ClientPtr client,
++ xXFixesCreatePointerBarrierReq *stuff)
++{
++ CursorScreenPtr cs = GetCursorScreen(screen);
++ struct PointerBarrierClient *ret = malloc(sizeof(*ret));
++
++ if (ret) {
++ ret->screen = screen;
++ ret->barrier.x1 = min(stuff->x1, stuff->x2);
++ ret->barrier.x2 = max(stuff->x1, stuff->x2);
++ ret->barrier.y1 = min(stuff->y1, stuff->y2);
++ ret->barrier.y2 = max(stuff->y1, stuff->y2);
++ ret->barrier.directions = stuff->directions & 0x0f;
++ if (barrier_is_horizontal(&ret->barrier))
++ ret->barrier.directions &= ~(BarrierPositiveX | BarrierNegativeX);
++ if (barrier_is_vertical(&ret->barrier))
++ ret->barrier.directions &= ~(BarrierPositiveY | BarrierNegativeY);
++ list_add(&ret->entry, &cs->barriers);
++ }
++
++ return ret;
++}
++
++int
++ProcXFixesCreatePointerBarrier (ClientPtr client)
++{
++ int err;
++ WindowPtr pWin;
++ struct PointerBarrierClient *barrier;
++ struct PointerBarrier b;
++ REQUEST (xXFixesCreatePointerBarrierReq);
++
++ REQUEST_SIZE_MATCH(xXFixesCreatePointerBarrierReq);
++ LEGAL_NEW_RESOURCE(stuff->barrier, client);
++
++ err = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
++ if (err != Success) {
++ client->errorValue = stuff->window;
++ return err;
++ }
++
++ /* This sure does need fixing. */
++ if (stuff->num_devices)
++ return BadImplementation;
++
++ b.x1 = stuff->x1;
++ b.x2 = stuff->x2;
++ b.y1 = stuff->y1;
++ b.y2 = stuff->y2;
++
++ if (!barrier_is_horizontal(&b) && !barrier_is_vertical(&b))
++ return BadValue;
++
++ /* no 0-sized barriers */
++ if (barrier_is_horizontal(&b) && barrier_is_vertical(&b))
++ return BadValue;
++
++ if (!(barrier = CreatePointerBarrierClient(pWin->drawable.pScreen,
++ client, stuff)))
++ return BadAlloc;
++
++ if (!AddResource(stuff->barrier, PointerBarrierType, &barrier->barrier))
++ return BadAlloc;
++
++ return Success;
++}
++
++int
++SProcXFixesCreatePointerBarrier (ClientPtr client)
++{
++ int n;
++ REQUEST(xXFixesCreatePointerBarrierReq);
++
++ swaps(&stuff->length, n);
++ REQUEST_SIZE_MATCH(xXFixesCreatePointerBarrierReq);
++ swapl(&stuff->barrier, n);
++ swapl(&stuff->window, n);
++ swaps(&stuff->x1, n);
++ swaps(&stuff->y1, n);
++ swaps(&stuff->x2, n);
++ swaps(&stuff->y2, n);
++ swapl(&stuff->directions, n);
++ return ProcXFixesVector[stuff->xfixesReqType](client);
++}
++
++static int
++CursorFreeBarrier(void *data, XID id)
++{
++ struct PointerBarrierClient *b = NULL, *barrier;
++ ScreenPtr screen;
++ CursorScreenPtr cs;
++
++ barrier = container_of(data, struct PointerBarrierClient, barrier);
++ screen = barrier->screen;
++ cs = GetCursorScreen(screen);
++
++ /* find and unlink from the screen private */
++ list_for_each_entry(b, &cs->barriers, entry) {
++ if (b == barrier) {
++ list_del(&b->entry);
++ break;
++ }
++ }
++
++ free(barrier);
++ return Success;
++}
++
++int
++ProcXFixesDestroyPointerBarrier (ClientPtr client)
++{
++ int err;
++ void *barrier;
++ REQUEST (xXFixesDestroyPointerBarrierReq);
++
++ REQUEST_SIZE_MATCH(xXFixesDestroyPointerBarrierReq);
++
++ err = dixLookupResourceByType((void **)&barrier, stuff->barrier,
++ PointerBarrierType, client,
++ DixDestroyAccess);
++ if (err != Success) {
++ client->errorValue = stuff->barrier;
++ return err;
++ }
++
++ FreeResource(stuff->barrier, RT_NONE);
++ return Success;
++}
++
++int
++SProcXFixesDestroyPointerBarrier (ClientPtr client)
++{
++ int n;
++ REQUEST(xXFixesDestroyPointerBarrierReq);
++
++ swaps(&stuff->length, n);
++ REQUEST_SIZE_MATCH(xXFixesDestroyPointerBarrierReq);
++ swapl(&stuff->barrier, n);
++ return ProcXFixesVector[stuff->xfixesReqType](client);
++}
++
+ Bool
+ XFixesCursorInit (void)
+ {
+@@ -1048,8 +1449,10 @@ XFixesCursorInit (void)
+ cs = (CursorScreenPtr) calloc(1, sizeof (CursorScreenRec));
+ if (!cs)
+ return FALSE;
++ list_init(&cs->barriers);
+ Wrap (cs, pScreen, CloseScreen, CursorCloseScreen);
+ Wrap (cs, pScreen, DisplayCursor, CursorDisplayCursor);
++ Wrap (cs, pScreen, ConstrainCursorHarder, CursorConstrainCursorHarder);
+ cs->pCursorHideCounts = NULL;
+ SetCursorScreen (pScreen, cs);
+ }
+@@ -1059,7 +1462,10 @@ XFixesCursorInit (void)
+ "XFixesCursorHideCount");
+ CursorWindowType = CreateNewResourceType(CursorFreeWindow,
+ "XFixesCursorWindow");
++ PointerBarrierType = CreateNewResourceType(CursorFreeBarrier,
++ "XFixesPointerBarrier");
+
+- return CursorClientType && CursorHideCountType && CursorWindowType;
++ return CursorClientType && CursorHideCountType && CursorWindowType &&
++ PointerBarrierType;
+ }
+
+diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c
+index e8c7bf1..a57884b 100644
+--- a/xfixes/xfixes.c
++++ b/xfixes/xfixes.c
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
++ * Copyright 2010 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+@@ -47,10 +48,6 @@
+
+ #include "xfixesint.h"
+ #include "protocol-versions.h"
+-/*
+- * Must use these instead of the constants from xfixeswire.h. They advertise
+- * what we implement, not what the protocol headers define.
+- */
+
+ static unsigned char XFixesReqCode;
+ int XFixesEventBase;
+@@ -97,11 +94,12 @@ ProcXFixesQueryVersion(ClientPtr client)
+
+ /* Major version controls available requests */
+ static const int version_requests[] = {
+- X_XFixesQueryVersion, /* before client sends QueryVersion */
+- X_XFixesGetCursorImage, /* Version 1 */
+- X_XFixesChangeCursorByName, /* Version 2 */
+- X_XFixesExpandRegion, /* Version 3 */
+- X_XFixesShowCursor, /* Version 4 */
++ X_XFixesQueryVersion, /* before client sends QueryVersion */
++ X_XFixesGetCursorImage, /* Version 1 */
++ X_XFixesChangeCursorByName, /* Version 2 */
++ X_XFixesExpandRegion, /* Version 3 */
++ X_XFixesShowCursor, /* Version 4 */
++ X_XFixesDestroyPointerBarrier, /* Version 5 */
+ };
+
+ #define NUM_VERSION_REQUESTS (sizeof (version_requests) / sizeof (version_requests[0]))
+@@ -142,6 +140,9 @@ int (*ProcXFixesVector[XFixesNumberRequests])(ClientPtr) = {
+ /*************** Version 4 ****************/
+ ProcXFixesHideCursor,
+ ProcXFixesShowCursor,
++/*************** Version 5 ****************/
++ ProcXFixesCreatePointerBarrier,
++ ProcXFixesDestroyPointerBarrier,
+ };
+
+ static int
+@@ -205,6 +206,9 @@ static int (*SProcXFixesVector[XFixesNumberRequests])(ClientPtr) = {
+ /*************** Version 4 ****************/
+ SProcXFixesHideCursor,
+ SProcXFixesShowCursor,
++/*************** Version 5 ****************/
++ SProcXFixesCreatePointerBarrier,
++ SProcXFixesDestroyPointerBarrier,
+ };
+
+ static int
+@@ -260,6 +264,8 @@ XFixesExtensionInit(void)
+ EventSwapVector[XFixesEventBase + XFixesCursorNotify] =
+ (EventSwapPtr) SXFixesCursorNotifyEvent;
+ SetResourceTypeErrorValue(RegionResType, XFixesErrorBase + BadRegion);
++ SetResourceTypeErrorValue(PointerBarrierType,
++ XFixesErrorBase + BadBarrier);
+ }
+ }
+
+diff --git a/xfixes/xfixes.h b/xfixes/xfixes.h
+index 1638350..5765e64 100644
+--- a/xfixes/xfixes.h
++++ b/xfixes/xfixes.h
+@@ -30,6 +30,7 @@
+ #include "resource.h"
+
+ extern _X_EXPORT RESTYPE RegionResType;
++extern _X_EXPORT RESTYPE PointerBarrierType;
+ extern _X_EXPORT int XFixesErrorBase;
+
+ #define VERIFY_REGION(pRegion, rid, client, mode) \
+@@ -51,5 +52,21 @@ extern _X_EXPORT int XFixesErrorBase;
+ extern _X_EXPORT RegionPtr
+ XFixesRegionCopy (RegionPtr pRegion);
+
++struct PointerBarrier {
++ CARD16 x1, x2, y1, y2;
++ CARD32 directions;
++};
++
++
++extern int
++barrier_get_direction(int, int, int, int);
++extern BOOL
++barrier_is_blocking(const struct PointerBarrier*, int, int, int, int, double*);
++extern BOOL
++barrier_is_blocking_direction(const struct PointerBarrier*, int);
++extern void
++barrier_clamp_to_barrier(struct PointerBarrier *barrier, int dir, int *x, int *y);
++
++
+
+ #endif /* _XFIXES_H_ */
+diff --git a/xfixes/xfixesint.h b/xfixes/xfixesint.h
+index d005369..6ba276e 100644
+--- a/xfixes/xfixesint.h
++++ b/xfixes/xfixesint.h
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
++ * Copyright 2010 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+@@ -278,6 +279,21 @@ ProcXFixesShowCursor (ClientPtr client);
+ int
+ SProcXFixesShowCursor (ClientPtr client);
+
++/* Version 5 */
++
++int
++ProcXFixesCreatePointerBarrier (ClientPtr client);
++
++int
++SProcXFixesCreatePointerBarrier (ClientPtr client);
++
++int
++ProcXFixesDestroyPointerBarrier (ClientPtr client);
++
++int
++SProcXFixesDestroyPointerBarrier (ClientPtr client);
++
++/* Xinerama */
+ extern int (*PanoramiXSaveXFixesVector[XFixesNumberRequests])(ClientPtr);
+ void PanoramiXFixesInit (void);
+ void PanoramiXFixesReset (void);
+--
+1.7.4
+
diff --git a/testing/xorg-server/xvfb-run b/testing/xorg-server/xvfb-run
new file mode 100644
index 000000000..4c2f4e0d3
--- /dev/null
+++ b/testing/xorg-server/xvfb-run
@@ -0,0 +1,180 @@
+#!/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 <<EOF
+Usage: $PROGNAME [OPTION ...] COMMAND
+Run COMMAND (usually an X client) in a virtual X server environment.
+Options:
+-a --auto-servernum try to get a free server number, starting at
+ --server-num
+-e FILE --error-file=FILE file used to store xauth errors and Xvfb
+ output (default: $ERRORFILE)
+-f FILE --auth-file=FILE file used to store auth cookie
+ (default: ./.Xauthority)
+-h --help display this usage message and exit
+-n NUM --server-num=NUM server number to use (default: $SERVERNUM)
+-l --listen-tcp enable TCP port listening in the X server
+-p PROTO --xauth-protocol=PROTO X authority protocol name to use
+ (default: xauth command's default)
+-s ARGS --server-args=ARGS arguments (other than server number and
+ "-nolisten tcp") to pass to the Xvfb server
+ (default: "$XVFBARGS")
+-w DELAY --wait=DELAY delay in seconds to wait for Xvfb to start
+ before running COMMAND (default: $STARTWAIT)
+EOF
+}
+
+# Find a free server number by looking at .X*-lock files in /tmp.
+find_free_servernum() {
+ # Sadly, the "local" keyword is not POSIX. Leave the next line commented in
+ # the hope Debian Policy eventually changes to allow it in /bin/sh scripts
+ # anyway.
+ #local i
+
+ i=$SERVERNUM
+ while [ -f /tmp/.X$i-lock ]; do
+ i=$(($i + 1))
+ done
+ echo $i
+}
+
+# Clean up files
+clean_up() {
+ if [ -e "$AUTHFILE" ]; then
+ XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >>"$ERRORFILE" 2>&1
+ fi
+ if [ -n "$XVFB_RUN_TMPDIR" ]; then
+ if ! rm -r "$XVFB_RUN_TMPDIR"; then
+ error "problem while cleaning up temporary directory"
+ exit 5
+ fi
+ fi
+}
+
+# Parse the command line.
+ARGS=$(getopt --options +ae:f:hn:lp:s:w: \
+ --long auto-servernum,error-file:,auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \
+ --name "$PROGNAME" -- "$@")
+GETOPT_STATUS=$?
+
+if [ $GETOPT_STATUS -ne 0 ]; then
+ error "internal error; getopt exited with status $GETOPT_STATUS"
+ exit 6
+fi
+
+eval set -- "$ARGS"
+
+while :; do
+ case "$1" in
+ -a|--auto-servernum) SERVERNUM=$(find_free_servernum) ;;
+ -e|--error-file) ERRORFILE="$2"; shift ;;
+ -f|--auth-file) AUTHFILE="$2"; shift ;;
+ -h|--help) SHOWHELP="yes" ;;
+ -n|--server-num) SERVERNUM="$2"; shift ;;
+ -l|--listen-tcp) LISTENTCP="" ;;
+ -p|--xauth-protocol) XAUTHPROTO="$2"; shift ;;
+ -s|--server-args) XVFBARGS="$2"; shift ;;
+ -w|--wait) STARTWAIT="$2"; shift ;;
+ --) shift; break ;;
+ *) error "internal error; getopt permitted \"$1\" unexpectedly"
+ exit 6
+ ;;
+ esac
+ shift
+done
+
+if [ "$SHOWHELP" ]; then
+ usage
+ exit 0
+fi
+
+if [ -z "$*" ]; then
+ usage "need a command to run" >&2
+ exit 2
+fi
+
+if ! which xauth >/dev/null; then
+ error "xauth command not found"
+ exit 3
+fi
+
+# tidy up after ourselves
+trap clean_up EXIT
+
+# 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="$(mktemp -d -t $PROGNAME.XXXXXX)"
+ AUTHFILE="$XVFB_RUN_TMPDIR/Xauthority"
+fi
+
+# Start Xvfb.
+MCOOKIE=$(mcookie)
+XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1
+add :$SERVERNUM $XAUTHPROTO $MCOOKIE
+EOF
+XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" \
+ 2>&1 &
+XVFBPID=$!
+sleep "$STARTWAIT"
+if ! kill -0 $XVFBPID 2>/dev/null; then
+ echo "Xvfb failed to start" >&2
+ exit 1
+fi
+
+# 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
+
+# Return the executed command's exit status.
+exit $RETVAL
+
+# vim:set ai et sts=4 sw=4 tw=80:
diff --git a/testing/xorg-server/xvfb-run.1 b/testing/xorg-server/xvfb-run.1
new file mode 100644
index 000000000..137d3a196
--- /dev/null
+++ b/testing/xorg-server/xvfb-run.1
@@ -0,0 +1,282 @@
+.\" $Id: xvfb-run.1 2138 2005-01-17 23:40:27Z branden $
+.\"
+.\" Copyright 1998-2004 Branden Robinson <branden@debian.org>.
+.\"
+.\" 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 use 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:
diff --git a/testing/xorg-sessreg/PKGBUILD b/testing/xorg-sessreg/PKGBUILD
new file mode 100644
index 000000000..9b1f56573
--- /dev/null
+++ b/testing/xorg-sessreg/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113683 2011-03-10 14:43:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-sessreg
+pkgver=1.0.6
+pkgrel=2
+pkgdesc="Register X sessions in system utmp/utmpx databases"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-util-macros' 'xproto')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/sessreg-${pkgver}.tar.bz2)
+sha1sums=('6f260f1ddc366da070a6d60301b9fb64a99c119a')
+
+build() {
+ cd "${srcdir}/sessreg-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-setxkbmap/PKGBUILD b/testing/xorg-setxkbmap/PKGBUILD
new file mode 100644
index 000000000..2aceaead9
--- /dev/null
+++ b/testing/xorg-setxkbmap/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113688 2011-03-10 14:45:16Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-setxkbmap
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="Set the keyboard using the X Keyboard Extension"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxkbfile')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(${url}/releases/individual/app/setxkbmap-${pkgver}.tar.bz2)
+sha1sums=('860785e16313d30792fe62604f65d84281812322')
+
+build() {
+ cd "${srcdir}/setxkbmap-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-smproxy/PKGBUILD b/testing/xorg-smproxy/PKGBUILD
new file mode 100644
index 000000000..7fd915c9c
--- /dev/null
+++ b/testing/xorg-smproxy/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113698 2011-03-10 14:47:17Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-smproxy
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Allows X applications that do not support X11R6 session management to participate in an X11R6 session"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libsm' 'libxt' 'libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/smproxy-${pkgver}.tar.bz2)
+sha1sums=('ea9639b6d0669f157ac62b807cdba64f509b25ed')
+
+build() {
+ cd "${srcdir}/smproxy-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-twm/PKGBUILD b/testing/xorg-twm/PKGBUILD
new file mode 100644
index 000000000..802fb69ba
--- /dev/null
+++ b/testing/xorg-twm/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 113881 2011-03-10 17:47:05Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-twm
+pkgver=1.0.6
+pkgrel=2
+pkgdesc="Tab Window Manager for the X Window System"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+backup=(etc/X11/twm/system.twmrc)
+license=('custom')
+depends=('libxmu')
+makedepends=('xorg-util-macros')
+source=(${url}/releases/individual/app/twm-${pkgver}.tar.bz2)
+sha1sums=('5c28194c9c620b34df56fdee140d662425ba8a86')
+
+build() {
+ cd "${srcdir}/twm-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/twm-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc/X11/twm"
+ install -m644 src/system.twmrc "${pkgdir}/etc/X11/twm/"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/testing/xorg-x11perf/PKGBUILD b/testing/xorg-x11perf/PKGBUILD
new file mode 100644
index 000000000..42fc8adc9
--- /dev/null
+++ b/testing/xorg-x11perf/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 113703 2011-03-10 14:49:36Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-x11perf
+pkgver=1.5.3
+pkgrel=2
+pkgdesc="Simple X server performance benchmarker"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu' 'libxrender' 'libxft' 'libxext')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/x11perf-${pkgver}.tar.bz2)
+sha1sums=('2fd00ba38c36c569751bbe3d60917df2a39e10ba')
+
+build() {
+ cd "${srcdir}/x11perf-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/x11perf-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xauth/PKGBUILD b/testing/xorg-xauth/PKGBUILD
new file mode 100644
index 000000000..26935f83f
--- /dev/null
+++ b/testing/xorg-xauth/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113711 2011-03-10 14:51:46Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xauth
+pkgver=1.0.5
+pkgrel=2
+pkgdesc="X.Org authorization settings program"
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(${url}/releases/individual/app/xauth-${pkgver}.tar.bz2)
+sha1sums=('6d94b5822e8ce08630a8ff510230246d5ed45290')
+
+build() {
+ cd "${srcdir}/xauth-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xbacklight/PKGBUILD b/testing/xorg-xbacklight/PKGBUILD
new file mode 100644
index 000000000..2b1a3c230
--- /dev/null
+++ b/testing/xorg-xbacklight/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113718 2011-03-10 14:54:32Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xbacklight
+pkgver=1.1.2
+pkgrel=2
+pkgdesc="RandR-based backlight control application"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxrandr' 'libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xbacklight-${pkgver}.tar.bz2)
+sha1sums=('e297b359ab83f3844ca5ea1c23280b2f8bb71cfd')
+
+build() {
+ cd "${srcdir}/xbacklight-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xbiff/PKGBUILD b/testing/xorg-xbiff/PKGBUILD
new file mode 100644
index 000000000..47bd31dd8
--- /dev/null
+++ b/testing/xorg-xbiff/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 108983 2011-02-05 10:35:36Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xbiff
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Watch mailboxes for new message delivery"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxext')
+makedepends=('xorg-util-macros' 'xbitmaps')
+source=(http://xorg.freedesktop.org/archive/individual/app/xbiff-${pkgver}.tar.bz2)
+sha1sums=('17337a951264f0f96f6d03893f9dfd9cf8f12a5a')
+
+build() {
+ cd "${srcdir}/xbiff-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/xbiff-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xcalc/PKGBUILD b/testing/xorg-xcalc/PKGBUILD
new file mode 100644
index 000000000..d4d16a8c4
--- /dev/null
+++ b/testing/xorg-xcalc/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xcalc
+pkgver=1.0.4.1
+pkgrel=1
+pkgdesc="Scientific calculator for X"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xcalc-${pkgver}.tar.bz2)
+sha1sums=('2206fc4bf3719c43fa13a6c64a37b40607d8e5e2')
+
+build() {
+ cd "${srcdir}/xcalc-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xclipboard/PKGBUILD b/testing/xorg-xclipboard/PKGBUILD
new file mode 100644
index 000000000..60c4d624b
--- /dev/null
+++ b/testing/xorg-xclipboard/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xclipboard
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X clipboard manager"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xclipboard-${pkgver}.tar.bz2)
+sha1sums=('922ddf89acd0781156e9ccdf191a3e0c6376415a')
+
+build() {
+ cd "${srcdir}/xclipboard-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xclock/PKGBUILD b/testing/xorg-xclock/PKGBUILD
new file mode 100644
index 000000000..f3d2ee24e
--- /dev/null
+++ b/testing/xorg-xclock/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xclock
+pkgver=1.0.5
+pkgrel=1
+pkgdesc="X clock"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu' 'libxaw' 'libxrender' 'libxft' 'libxkbfile')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xclock-${pkgver}.tar.bz2)
+sha1sums=('1651ac8961c0aa287a6a7412ee5e6d3bfc3bb3e2')
+
+build() {
+ cd "${srcdir}/xclock-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xcmsdb/PKGBUILD b/testing/xorg-xcmsdb/PKGBUILD
new file mode 100644
index 000000000..9687e02fb
--- /dev/null
+++ b/testing/xorg-xcmsdb/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113723 2011-03-10 14:58:44Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xcmsdb
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="Device Color Characterization utility for X Color Management System"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xcmsdb-${pkgver}.tar.bz2)
+sha1sums=('14df39b4d5518f551302c210131dcc5bac03f3ff')
+
+build() {
+ cd "${srcdir}/xcmsdb-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xconsole/PKGBUILD b/testing/xorg-xconsole/PKGBUILD
new file mode 100644
index 000000000..1ecc9eeac
--- /dev/null
+++ b/testing/xorg-xconsole/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xconsole
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="Monitor system console messages with X"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xconsole-${pkgver}.tar.bz2)
+sha1sums=('195299d4948ba4c62e961ddd0bd4572283244715')
+
+build() {
+ cd "${srcdir}/xconsole-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xcursorgen/PKGBUILD b/testing/xorg-xcursorgen/PKGBUILD
new file mode 100644
index 000000000..31e374a1d
--- /dev/null
+++ b/testing/xorg-xcursorgen/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113731 2011-03-10 15:00:48Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xcursorgen
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Create an X cursor file from PNG images"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxcursor' 'libpng')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xcursorgen-${pkgver}.tar.bz2)
+sha1sums=('244c180aae8cc07175b93f314d5bbbf24171658a')
+
+build() {
+ cd "${srcdir}/xcursorgen-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xdm/LICENSE b/testing/xorg-xdm/LICENSE
new file mode 100644
index 000000000..5f8d6fcc0
--- /dev/null
+++ b/testing/xorg-xdm/LICENSE
@@ -0,0 +1,132 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/app/
+
+Copyright 1988, 1989, 1990, 1991, 1994, 1998
+The Open Group
+Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+
+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, FITNESS 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.
+
+prngc.c:
+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
+modification, 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 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR 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.
+
+dm_socket.h, dm_error.h, dm_auth.h
+Copyright 1998 by Thomas E. Dickey <dickey@clark.net>
+
+ 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 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.
+IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) 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(s) of the above copyright
+holders shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization.
+
+genauth.c:
+Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All
+rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, 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 disclaimer 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. 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 ``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, 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 NOT ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+Makefile.am
+Copyright 2005 Red Hat, Inc.
+
+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, and that the name of Red Hat not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Red Hat makes no
+representations about the suitability of this software for any purpose. It
+is provided "as is" without express or implied warranty.
+
+RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES 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 SOFTWARE.
diff --git a/testing/xorg-xdm/PKGBUILD b/testing/xorg-xdm/PKGBUILD
new file mode 100644
index 000000000..ddce2fa0a
--- /dev/null
+++ b/testing/xorg-xdm/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 105533 2011-01-10 11:03:46Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgname=xorg-xdm
+pkgver=1.1.10
+pkgrel=2
+pkgdesc="X Display Manager"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('pam' 'libxaw' 'libxinerama' 'xorg-xrdb' 'xorg-sessreg' 'libxft')
+makedepends=('pkgconfig')
+backup=(etc/X11/xdm/Xaccess etc/X11/xdm/Xresources etc/X11/xdm/Xservers etc/X11/xdm/xdm-config etc/pam.d/xdm etc/X11/xdm/Xsetup_0 etc/X11/xdm/Xsession)
+options=('!libtool')
+source=(${url}/releases/individual/app/xdm-${pkgver}.tar.bz2
+ Xsession-loginshell.patch
+ Xsession-xsm.patch
+ xdm.pam)
+md5sums=('329383040cdbda5b5c8ce6c7e1120c97'
+ '234ae568e7b22cbc09433bb396ff3d80'
+ '2c30078c50bc653d72eb5114506eb313'
+ '419d6289ba6f851135f5c70c0e3cbec4')
+
+build() {
+ cd "${srcdir}/xdm-${pkgver}"
+ patch -Np0 -i "${srcdir}/Xsession-loginshell.patch"
+ patch -Np1 -i "${srcdir}/Xsession-xsm.patch"
+ ./configure --prefix=/usr \
+ --disable-xdm-auth \
+ --disable-static \
+ --with-xdmconfigdir=/etc/X11/xdm \
+ --with-xdmscriptdir=/etc/X11/xdm \
+ --with-pixmapdir=/usr/share/xdm/pixmaps
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/var/lib/xdm"
+ install -m755 -d "${pkgdir}/etc/pam.d"
+ install -m644 "${srcdir}/xdm.pam" "${pkgdir}/etc/pam.d/xdm"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+ sed -i -e 's/\/X11R6//g' "${pkgdir}"/etc/X11/xdm/*
+}
diff --git a/testing/xorg-xdm/Xsession-loginshell.patch b/testing/xorg-xdm/Xsession-loginshell.patch
new file mode 100644
index 000000000..3710752ef
--- /dev/null
+++ b/testing/xorg-xdm/Xsession-loginshell.patch
@@ -0,0 +1,15 @@
+--- config/Xsession.cpp.orig 2008-06-21 13:57:36.000000000 +0000
++++ config/Xsession.cpp 2008-06-21 14:01:25.000000000 +0000
+@@ -56,11 +56,7 @@
+ resources=$HOME/.Xresources
+
+ if [ -s "$startup" ]; then
+- if [ -x "$startup" ]; then
+- exec "$startup"
+- else
+- exec /bin/sh "$startup"
+- fi
++ exec /bin/sh -ls -c "$startup"
+ else
+ if [ -r "$resources" ]; then
+ BINDIR/xrdb -load "$resources"
diff --git a/testing/xorg-xdm/Xsession-xsm.patch b/testing/xorg-xdm/Xsession-xsm.patch
new file mode 100644
index 000000000..a2d4d6cc6
--- /dev/null
+++ b/testing/xorg-xdm/Xsession-xsm.patch
@@ -0,0 +1,22 @@
+diff -Naur xdm-1.1.8-orig/config/Xsession.cpp xdm-1.1.8/config/Xsession.cpp
+--- xdm-1.1.8-orig/config/Xsession.cpp 2008-05-21 14:08:45.000000000 -0400
++++ xdm-1.1.8/config/Xsession.cpp 2009-04-28 02:56:11.000000000 -0400
+@@ -54,6 +54,7 @@
+
+ startup=$HOME/.xsession
+ resources=$HOME/.Xresources
++xinitrc=$HOME/.xinitrc
+
+ if [ -s "$startup" ]; then
+ if [ -x "$startup" ]; then
+@@ -83,5 +84,9 @@
+ exec `eval $XDESKTOP`
+ }
+ #endif
+- exec BINDIR/xsm
++ if [ -r "$xinitrc" ]; then
++ exec /bin/sh -ls -c "$xinitrc"
++ else
++ exec /bin/sh -l /etc/X11/xinit/xinitrc
++ fi
+ fi
diff --git a/testing/xorg-xdm/xdm.pam b/testing/xorg-xdm/xdm.pam
new file mode 100644
index 000000000..862b83fa2
--- /dev/null
+++ b/testing/xorg-xdm/xdm.pam
@@ -0,0 +1,8 @@
+#%PAM-1.0
+auth required pam_unix.so
+auth required pam_nologin.so
+auth required pam_env.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_unix.so
+session required pam_limits.so
diff --git a/testing/xorg-xdpyinfo/PKGBUILD b/testing/xorg-xdpyinfo/PKGBUILD
new file mode 100644
index 000000000..084e22b54
--- /dev/null
+++ b/testing/xorg-xdpyinfo/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113736 2011-03-10 15:06:24Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xdpyinfo
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="Display information utility for X"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxext' 'libxtst' 'libxxf86vm' 'libxxf86dga' 'libxrender' 'libxcomposite' 'libxinerama' 'libdmx')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xdpyinfo-${pkgver}.tar.bz2)
+sha1sums=('5d53cd31afd40bdc4575b5347f2cda67f135f5f2')
+
+build() {
+ cd "${srcdir}/xdpyinfo-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xdriinfo/PKGBUILD b/testing/xorg-xdriinfo/PKGBUILD
new file mode 100644
index 000000000..f247c07ee
--- /dev/null
+++ b/testing/xorg-xdriinfo/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113746 2011-03-10 15:15:21Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xdriinfo
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Query configuration information of DRI drivers"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libgl')
+makedepends=('xorg-util-macros' 'glproto' 'mesa')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xdriinfo-${pkgver}.tar.bz2)
+sha1sums=('723482b3fc627d7cc6124fec43dd1c21d102daaa')
+
+build() {
+ cd "${srcdir}/xdriinfo-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xedit/PKGBUILD b/testing/xorg-xedit/PKGBUILD
new file mode 100644
index 000000000..d9f9d49d7
--- /dev/null
+++ b/testing/xorg-xedit/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xedit
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Simple text editor for X"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xedit-${pkgver}.tar.bz2)
+sha1sums=('e6f8735d09c9da67bba3cd3c39f34f5d1fc79a70')
+
+build() {
+ cd "${srcdir}/xedit-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xev/PKGBUILD b/testing/xorg-xev/PKGBUILD
new file mode 100644
index 000000000..7e981106a
--- /dev/null
+++ b/testing/xorg-xev/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113751 2011-03-10 15:22:05Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xev
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="Print contents of X events"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xev-${pkgver}.tar.bz2)
+sha1sums=('77dcbdaa2046db56f31936f921843bd05df2255f')
+
+build() {
+ cd "${srcdir}/xev-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xeyes/PKGBUILD b/testing/xorg-xeyes/PKGBUILD
new file mode 100644
index 000000000..5c18175bb
--- /dev/null
+++ b/testing/xorg-xeyes/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xeyes
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="Follow the mouse/SHAPE extension X demo"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxt' 'libxext' 'libxmu' 'libxrender')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xeyes-${pkgver}.tar.bz2)
+sha1sums=('efe6116d31a7f69e4fb6038613e52b0960b9b61c')
+
+build() {
+ cd "${srcdir}/xeyes-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xfd/PKGBUILD b/testing/xorg-xfd/PKGBUILD
new file mode 100644
index 000000000..5c4bba1c6
--- /dev/null
+++ b/testing/xorg-xfd/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xfd
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="Displays all the characters in a font using either the X11 core protocol or libXft2"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'fontconfig' 'libxft' 'libxrender' 'libxmu')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xfd-${pkgver}.tar.bz2)
+sha1sums=('9cf24f00b428bc02d8635634cdb3b7422e7d74a5')
+
+build() {
+ cd "${srcdir}/xfd-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xfontsel/PKGBUILD b/testing/xorg-xfontsel/PKGBUILD
new file mode 100644
index 000000000..827003048
--- /dev/null
+++ b/testing/xorg-xfontsel/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xfontsel
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Point and click selection of X11 font names"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xfontsel-${pkgver}.tar.bz2)
+sha1sums=('df2eb12b90339b7091bd362b095344015ec8b6fa')
+
+build() {
+ cd "${srcdir}/xfontsel-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xfs/PKGBUILD b/testing/xorg-xfs/PKGBUILD
new file mode 100644
index 000000000..cb7244db9
--- /dev/null
+++ b/testing/xorg-xfs/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 108976 2011-02-05 10:30:46Z andyrtr $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xfs
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X.Org X11 xfs font server"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+backup=('etc/X11/fs/config')
+depends=('xorg-font-utils' 'libxfont>=1.4.0' 'libfs>=1.0.2' 'libx11>=1.2.2')
+makedepends=('pkgconfig' 'xtrans')
+source=(${url}/releases/individual/app/xfs-${pkgver}.tar.bz2
+ ${url}/releases/individual/app/xfsinfo-1.0.3.tar.bz2
+ ${url}/releases/individual/app/fslsfonts-1.0.3.tar.bz2
+ ${url}/releases/individual/app/fstobdf-1.0.4.tar.bz2
+ ${url}/releases/individual/app/showfont-1.0.3.tar.bz2
+ xfs.rc)
+md5sums=('e02c6cae689c082b8c98a421df8f8670'
+ 'aae6fa48b5c2ce9186a5ff4ccc14a1d4'
+ '9b50d967ac6d4bae9bffb62a5e527a50'
+ 'fc1f42aac16d6b76c79a1a3a0fb6a53b'
+ '50b466ab6ed4a5b8df5abf1ef844309a'
+ '251f5447f64151e9bb096ebc9f999c3f')
+
+build() {
+ cd "${srcdir}"
+ pushd xfs-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make configdir=/etc/X11/fs
+ popd
+
+ for i in xfsinfo-* fslsfonts-* fstobdf-* showfont-*; do
+ if [ -d "${i}" ]; then
+ pushd "${i}"
+ ./configure --prefix=/usr
+ make
+ popd
+ fi
+ done
+}
+
+package() {
+ cd "${srcdir}"
+ pushd xfs-${pkgver}
+ make configdir=/etc/X11/fs DESTDIR="${pkgdir}" install
+ sed -i -e 's|/lib/X11/|/share/|g' "${pkgdir}/etc/X11/fs/config"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.xfs"
+ popd
+
+ for i in xfsinfo-* fslsfonts-* fstobdf-* showfont-*; do
+ if [ -d "${i}" ]; then
+ pushd "${i}"
+ make DESTDIR="${pkgdir}" install
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.${i%-*}"
+ popd
+ fi
+ done
+ install -m755 -d "${pkgdir}/etc/rc.d"
+ install -m755 "${srcdir}/xfs.rc" "${pkgdir}/etc/rc.d/xfs"
+}
diff --git a/testing/xorg-xfs/xfs.rc b/testing/xorg-xfs/xfs.rc
new file mode 100644
index 000000000..caac86106
--- /dev/null
+++ b/testing/xorg-xfs/xfs.rc
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/xfs`
+case "$1" in
+ start)
+ stat_busy "Starting X.Org fontserver"
+ if [ -z "$PID" ]; then
+ /usr/bin/xfs -daemon &> /dev/null
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon xfs
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping X.Org fontserver"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon xfs
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ reload)
+ stat_busy "Reloading X.Org fontserver configuration"
+ [ ! -z "$PID" ] && kill -HUP $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|reload}"
+esac
diff --git a/testing/xorg-xgamma/PKGBUILD b/testing/xorg-xgamma/PKGBUILD
new file mode 100644
index 000000000..fd9a43f7c
--- /dev/null
+++ b/testing/xorg-xgamma/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113756 2011-03-10 15:23:53Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xgamma
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Alter a monitor's gamma correction"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxxf86vm')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xgamma-${pkgver}.tar.bz2)
+sha1sums=('c4124b42618c6d4bc9eb9690348b5d60e4c9daed')
+
+build() {
+ cd "${srcdir}/xgamma-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xhost/PKGBUILD b/testing/xorg-xhost/PKGBUILD
new file mode 100644
index 000000000..82519eab8
--- /dev/null
+++ b/testing/xorg-xhost/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113761 2011-03-10 15:26:14Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xhost
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Server access control program for X"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xhost-${pkgver}.tar.bz2)
+sha1sums=('b4fde9899861f1a97395f8c7197db00cc44242a7')
+
+build() {
+ cd "${srcdir}/xhost-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xinit/06_move_serverauthfile_into_tmp.diff b/testing/xorg-xinit/06_move_serverauthfile_into_tmp.diff
new file mode 100644
index 000000000..99e8a6754
--- /dev/null
+++ b/testing/xorg-xinit/06_move_serverauthfile_into_tmp.diff
@@ -0,0 +1,20 @@
+Move startx auth files in /tmp so they are removed on reboot.
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=357736
+The trap patch didn't seem to work on reboot.
+---
+ startx.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: xinit/startx.cpp
+===================================================================
+--- xinit.orig/startx.cpp
++++ xinit/startx.cpp
+@@ -273,7 +273,7 @@
+ dummy=0
+
+ XCOMM create a file with auth information for the server. ':0' is a dummy.
+- xserverauthfile=$HOME/.serverauth.$$
++ xserverauthfile=`mktemp -p /tmp serverauth.XXXXXXXXXX`
+ trap "rm -f '$xserverauthfile'" HUP INT QUIT ILL TRAP KILL BUS TERM
+ xauth -q -f "$xserverauthfile" << EOF
+ add :$dummy . $mcookie
diff --git a/testing/xorg-xinit/PKGBUILD b/testing/xorg-xinit/PKGBUILD
new file mode 100644
index 000000000..4fb60183c
--- /dev/null
+++ b/testing/xorg-xinit/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 113891 2011-03-10 19:11:37Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xorg-xinit
+pkgver=1.3.0
+pkgrel=3
+pkgdesc="X.Org initialisation program "
+arch=(i686 x86_64 'mips64el')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libx11' 'xorg-xauth')
+makedepends=('xorg-util-macros')
+optdepends=('xorg-twm' 'xterm')
+backup=('etc/skel/.xinitrc'
+ 'etc/skel/.xsession'
+ 'etc/X11/xinit/xserverrc'
+ 'etc/X11/xinit/xinitrc')
+source=(${url}/releases/individual/app/xinit-${pkgver}.tar.bz2
+ 06_move_serverauthfile_into_tmp.diff
+ xinitrc
+ xsession
+ xserverrc)
+options=(!emptydirs)
+md5sums=('bc4e8b7d1919597cc37a0d24aa149dda'
+ 'abd072ec435ce084cf4e89c58f83d45c'
+ 'c7b406c3c5c1e8011b3ac7d6b29c1a2c'
+ '7873d97db30d6c279ed37e3559e7c59d'
+ 'c5baef10fdb7239594daee72a94ddab3')
+
+build() {
+ cd "${srcdir}/xinit-${pkgver}"
+ patch -Np1 -i "${srcdir}/06_move_serverauthfile_into_tmp.diff"
+ sed -i -e 's/XSLASHGLOB.sh/XSLASHGLOB/' xinitrc.cpp
+ ./configure --prefix=/usr --with-xinitdir=/etc/X11/xinit
+ make
+}
+
+package() {
+ cd "${srcdir}/xinit-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/etc/skel"
+ install -m644 "${srcdir}/xinitrc" "${pkgdir}/etc/skel/.xinitrc"
+ install -m644 "${srcdir}/xsession" "${pkgdir}/etc/skel/.xsession"
+ install -m644 "${srcdir}/xserverrc" "${pkgdir}/etc/X11/xinit/xserverrc"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xinit/xinitrc b/testing/xorg-xinit/xinitrc
new file mode 100644
index 000000000..dbd080d00
--- /dev/null
+++ b/testing/xorg-xinit/xinitrc
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# ~/.xinitrc
+#
+# Executed by startx (run your window manager from here)
+
+if [ -d /etc/X11/xinit/xinitrc.d ]; then
+ for f in /etc/X11/xinit/xinitrc.d/*; do
+ [ -x "$f" ] && . "$f"
+ done
+ unset f
+fi
+
+# exec gnome-session
+# exec startkde
+# exec startxfce4
+# ...or the Window Manager of your choice
diff --git a/testing/xorg-xinit/xserverrc b/testing/xorg-xinit/xserverrc
new file mode 100644
index 000000000..6f746cdce
--- /dev/null
+++ b/testing/xorg-xinit/xserverrc
@@ -0,0 +1 @@
+exec /usr/bin/X -nolisten tcp "$@"
diff --git a/testing/xorg-xinit/xsession b/testing/xorg-xinit/xsession
new file mode 100644
index 000000000..a16dc0b84
--- /dev/null
+++ b/testing/xorg-xinit/xsession
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#
+# ~/.xsession
+#
+# Executed by xdm/gdm/kdm at login
+#
+
+/bin/bash --login -i ~/.xinitrc
+
diff --git a/testing/xorg-xinput/PKGBUILD b/testing/xorg-xinput/PKGBUILD
new file mode 100644
index 000000000..a7afa3c17
--- /dev/null
+++ b/testing/xorg-xinput/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113766 2011-03-10 15:27:48Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xinput
+pkgver=1.5.3
+pkgrel=2
+pkgdesc="Small commandline tool to configure devices"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxi')
+makedepends=('xorg-util-macros' 'inputproto')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xinput-${pkgver}.tar.bz2)
+sha1sums=('70f258279acaa45fb77820ae3f8c2bee9f2d2235')
+
+build() {
+ cd "${srcdir}/xinput-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xkbcomp/PKGBUILD b/testing/xorg-xkbcomp/PKGBUILD
new file mode 100644
index 000000000..10d77df9d
--- /dev/null
+++ b/testing/xorg-xkbcomp/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113771 2011-03-10 15:39:50Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xkbcomp
+pkgver=1.2.1
+pkgrel=2
+pkgdesc="X Keyboard description compiler"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxkbfile')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(${url}/releases/individual/app/xkbcomp-${pkgver}.tar.bz2)
+sha1sums=('02d7e7b67a6ef3035f92f9e541252bf85e3f0385')
+
+build() {
+ cd "${srcdir}/xkbcomp-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xkbevd/PKGBUILD b/testing/xorg-xkbevd/PKGBUILD
new file mode 100644
index 000000000..e95a0944d
--- /dev/null
+++ b/testing/xorg-xkbevd/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113776 2011-03-10 15:41:46Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xkbevd
+pkgver=1.1.2
+pkgrel=2
+pkgdesc="XKB event daemon"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxkbfile')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(${url}/releases/individual/app/xkbevd-${pkgver}.tar.bz2)
+sha1sums=('f7d4eb5485c2b450266e4e467106f4d8560f4edd')
+
+build() {
+ cd "${srcdir}/xkbevd-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xkbutils/PKGBUILD b/testing/xorg-xkbutils/PKGBUILD
new file mode 100644
index 000000000..81e2c9050
--- /dev/null
+++ b/testing/xorg-xkbutils/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113779 2011-03-10 15:42:12Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xkbutils
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="XKB utility demos"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxt' 'libx11')
+makedepends=('xorg-util-macros' 'xproto' 'inputproto')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xkbutils-${pkgver}.tar.bz2)
+sha1sums=('e5a2619b9449f95e02b520b492de0575bc4551d6')
+
+build() {
+ cd "${srcdir}/xkbutils-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xkill/PKGBUILD b/testing/xorg-xkill/PKGBUILD
new file mode 100644
index 000000000..a2b3f1580
--- /dev/null
+++ b/testing/xorg-xkill/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113786 2011-03-10 15:44:09Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xkill
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="Kill a client by its X resource"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xkill-${pkgver}.tar.bz2)
+sha1sums=('bab7b9c7f3bc053d743eb339cf5fa496bace57e5')
+
+build() {
+ cd "${srcdir}/xkill-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xload/PKGBUILD b/testing/xorg-xload/PKGBUILD
new file mode 100644
index 000000000..1451a91a0
--- /dev/null
+++ b/testing/xorg-xload/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xload
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="System load average display for X"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xload-${pkgver}.tar.bz2)
+sha1sums=('dcad93d769b0614466f1e48fed5dd956349cfcfb')
+
+build() {
+ cd "${srcdir}/xload-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xlogo/PKGBUILD b/testing/xorg-xlogo/PKGBUILD
new file mode 100644
index 000000000..56fbc99e2
--- /dev/null
+++ b/testing/xorg-xlogo/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xlogo
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Draw [old] X logo"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libsm' 'libxaw' 'libxmu' 'libxt' 'libxext' 'libx11' 'libxrender' 'libxft')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xlogo-${pkgver}.tar.bz2)
+sha1sums=('5016e74ba16ac80f3eac1c97738a6afbfc8b3bdd')
+
+build() {
+ cd "${srcdir}/xlogo-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xlsatoms/PKGBUILD b/testing/xorg-xlsatoms/PKGBUILD
new file mode 100644
index 000000000..9a7f32f6e
--- /dev/null
+++ b/testing/xorg-xlsatoms/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113790 2011-03-10 15:44:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xlsatoms
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="List interned atoms defined on server"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxcb')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xlsatoms-${pkgver}.tar.bz2)
+sha1sums=('2982df6844d60cd12a09208808ab6baa767fe35f')
+
+build() {
+ cd "${srcdir}/xlsatoms-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xlsclients/PKGBUILD b/testing/xorg-xlsclients/PKGBUILD
new file mode 100644
index 000000000..46ecd019c
--- /dev/null
+++ b/testing/xorg-xlsclients/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113796 2011-03-10 15:46:24Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xlsclients
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="List client applications running on a display"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxcb' 'xcb-util')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xlsclients-${pkgver}.tar.bz2)
+sha1sums=('67bfdcb089e8669df7ec5bc7a137e037047f2535')
+
+build() {
+ cd "${srcdir}/xlsclients-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xmag/PKGBUILD b/testing/xorg-xmag/PKGBUILD
new file mode 100644
index 000000000..4e3728a34
--- /dev/null
+++ b/testing/xorg-xmag/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xmag
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="Magnify parts of the screen"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xmag-${pkgver}.tar.bz2)
+sha1sums=('95695d4d4a731e5deb4196a0cc6d04ecaba023fe')
+
+build() {
+ cd "${srcdir}/xmag-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xman/PKGBUILD b/testing/xorg-xman/PKGBUILD
new file mode 100644
index 000000000..49e9fd5db
--- /dev/null
+++ b/testing/xorg-xman/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xman
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="Unix manual page viewer"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxt')
+makedepends=('xorg-util-macros' 'xproto' 'libxmu')
+source=(http://xorg.freedesktop.org/archive/individual/app/xman-${pkgver}.tar.bz2)
+sha1sums=('c8e1170e837da4bc280ee907030b3f9245608ef2')
+
+build() {
+ cd "${srcdir}/xman-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xmessage/PKGBUILD b/testing/xorg-xmessage/PKGBUILD
new file mode 100644
index 000000000..82c3fe420
--- /dev/null
+++ b/testing/xorg-xmessage/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xmessage
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Display a message or query in a window"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xmessage-${pkgver}.tar.bz2)
+sha1sums=('a8bfefbbe7785fa0e58ed4f596f4d79ba0b4d9b2')
+
+build() {
+ cd "${srcdir}/xmessage-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xmodmap/PKGBUILD b/testing/xorg-xmodmap/PKGBUILD
new file mode 100644
index 000000000..92942a1e3
--- /dev/null
+++ b/testing/xorg-xmodmap/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113801 2011-03-10 15:47:06Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xmodmap
+pkgver=1.0.5
+pkgrel=2
+pkgdesc="Utility for modifying keymaps and button mappings"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xmodmap-${pkgver}.tar.bz2)
+sha1sums=('c97fb42f40b094868f6ef445f25c600f326b1942')
+
+build() {
+ cd "${srcdir}/xmodmap-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xpr/PKGBUILD b/testing/xorg-xpr/PKGBUILD
new file mode 100644
index 000000000..6bd56b68f
--- /dev/null
+++ b/testing/xorg-xpr/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 113806 2011-03-10 15:48:32Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xpr
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="Print an X window dump from xwd"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xpr-${pkgver}.tar.bz2
+ copyright.patch)
+sha1sums=('9dbd0ff136b612285e00d92d0c7675a4207b1c4a'
+ 'd2649781330400b83cf3553d9cfd6e02dd93a2bd')
+
+build() {
+ cd "${srcdir}/xpr-${pkgver}"
+ patch -Np1 -i "${srcdir}/copyright.patch"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xpr/copyright.patch b/testing/xorg-xpr/copyright.patch
new file mode 100644
index 000000000..18e718246
--- /dev/null
+++ b/testing/xorg-xpr/copyright.patch
@@ -0,0 +1,75 @@
+From 11569289123fb178e23fd1aa284e9fa10e6c1e8c Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri, 06 Aug 2010 22:09:48 +0000
+Subject: Fill in COPYING file with copyright notices from source code
+
+Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+---
+diff --git a/COPYING b/COPYING
+index 7f33cbf..0f9d8e0 100644
+--- a/COPYING
++++ b/COPYING
+@@ -1,12 +1,53 @@
+-This is a stub file. This package has not yet had its complete licensing
+-information compiled. Please see the individual source files for details on
+-your rights to use and modify this software.
+
+-Please submit updated COPYING files to the Xorg bugzilla:
++Copyright (c) 1985, 1988 X Consortium
+
+-https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
++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 furnished to do so, subject to
++the following conditions:
+
+-All licensing questions regarding this software should be directed at the
+-Xorg mailing list:
++The above copyright notice and this permission notice shall be included
++in all copies or substantial portions of the Software.
+
+-http://lists.freedesktop.org/mailman/listinfo/xorg
++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.
++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.
++
++Copyright 1986 by Marvin Solomon and the University of Wisconsin
++
++Permission to use, copy, modify, and distribute this
++software and its documentation for any purpose and without
++fee is hereby granted, provided that the above copyright
++notice appear in all copies and that both that copyright
++notice and this permission notice appear in supporting
++documentation, and that the names of Marvin Solomon and
++the University of Wisconsin not be used in
++advertising or publicity pertaining to distribution of the
++software without specific, written prior permission.
++Neither Marvin Solomon nor the University of Wisconsin
++makes any representations about the suitability of
++this software for any purpose. It is provided "as is"
++without express or implied warranty.
++
++Copyright (c) 1988 by Hewlett-Packard Company
++
++Permission to use, copy, modify, and distribute this software
++and its documentation for any purpose and without fee is hereby
++granted, provided that the above copyright notice appear in all
++copies and that both that copyright notice and this permission
++notice appear in supporting documentation, and that
++Hewlett-Packard not be used in advertising or publicity
++pertaining to distribution of the software without specific, written
++prior permission.
+--
+cgit v0.8.3-6-g21f6
diff --git a/testing/xorg-xprop/PKGBUILD b/testing/xorg-xprop/PKGBUILD
new file mode 100644
index 000000000..6864ab180
--- /dev/null
+++ b/testing/xorg-xprop/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113811 2011-03-10 15:49:11Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xprop
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="Property displayer for X"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xprop-${pkgver}.tar.bz2)
+sha1sums=('278f83c5077eed1d96c180bdc0a6f22ba5279a66')
+
+build() {
+ cd "${srcdir}/xprop-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xrandr/PKGBUILD b/testing/xorg-xrandr/PKGBUILD
new file mode 100644
index 000000000..d92a05d1d
--- /dev/null
+++ b/testing/xorg-xrandr/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 113816 2011-03-10 15:50:41Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xrandr
+pkgver=1.3.4
+pkgrel=2
+pkgdesc="Primitive command line interface to RandR extension"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxrandr' 'libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xrandr-${pkgver}.tar.bz2)
+sha1sums=('637949501b8a45d32d9cab809e8822ee45b69414')
+
+build() {
+ cd "${srcdir}/xrandr-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+ rm -f "${pkgdir}/usr/bin/xkeystone"
+}
diff --git a/testing/xorg-xrdb/PKGBUILD b/testing/xorg-xrdb/PKGBUILD
new file mode 100644
index 000000000..60fb89669
--- /dev/null
+++ b/testing/xorg-xrdb/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 118463 2011-04-07 07:16:02Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xrdb
+pkgver=1.0.9
+pkgrel=1
+pkgdesc="X server resource database utility"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu' 'mcpp')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xrdb-${pkgver}.tar.bz2)
+sha1sums=('efa5f2420411988d6a6e142934393fd272507857')
+
+build() {
+ cd "${srcdir}/xrdb-${pkgver}"
+ ./configure --prefix=/usr --with-cpp=/usr/bin/mcpp
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xrefresh/PKGBUILD b/testing/xorg-xrefresh/PKGBUILD
new file mode 100644
index 000000000..de950df12
--- /dev/null
+++ b/testing/xorg-xrefresh/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113826 2011-03-10 15:53:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xrefresh
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Refresh all or part of an X screen"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xrefresh-${pkgver}.tar.bz2)
+sha1sums=('5e85ee14ea9a357c1d4372bbc068a8d452a134aa')
+
+build() {
+ cd "${srcdir}/xrefresh-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xset/PKGBUILD b/testing/xorg-xset/PKGBUILD
new file mode 100644
index 000000000..caebe0d8f
--- /dev/null
+++ b/testing/xorg-xset/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113831 2011-03-10 15:57:21Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xset
+pkgver=1.2.1
+pkgrel=2
+pkgdesc="User preference utility for X"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xset-${pkgver}.tar.bz2)
+sha1sums=('9b1eb8835637dd70eea1a1365df5d909a306cc2c')
+
+build() {
+ cd "${srcdir}/xset-${pkgver}"
+ ./configure --prefix=/usr --without-fontcache --without-xf86misc
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xsetroot/PKGBUILD b/testing/xorg-xsetroot/PKGBUILD
new file mode 100644
index 000000000..3758d9c6a
--- /dev/null
+++ b/testing/xorg-xsetroot/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113846 2011-03-10 16:01:58Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xsetroot
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="Classic X utility to set your root window background to a given pattern or color"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxmu' 'libx11' 'libxcursor')
+makedepends=('xorg-util-macros' 'xbitmaps')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xsetroot-${pkgver}.tar.bz2)
+sha1sums=('1ef9ddd80c7013dc6d33e5c421537eb8b0427da4')
+
+build() {
+ cd "${srcdir}/xsetroot-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xvidtune/PKGBUILD b/testing/xorg-xvidtune/PKGBUILD
new file mode 100644
index 000000000..e7426b638
--- /dev/null
+++ b/testing/xorg-xvidtune/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xvidtune
+pkgver=1.0.2
+pkgrel=1
+pkgdesc="Video mode tuner for Xorg"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxxf86vm' 'libxt' 'libxaw' 'libxmu' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xvidtune-${pkgver}.tar.bz2)
+sha1sums=('2f3f821943018c07efd4547afa4313ac92718b1e')
+
+build() {
+ cd "${srcdir}/xvidtune-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xvinfo/PKGBUILD b/testing/xorg-xvinfo/PKGBUILD
new file mode 100644
index 000000000..4684113fb
--- /dev/null
+++ b/testing/xorg-xvinfo/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113836 2011-03-10 15:58:02Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xvinfo
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="Prints out the capabilities of any video adaptors associated with the display that are accessible through the X-Video extension"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxv')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xvinfo-${pkgver}.tar.bz2)
+sha1sums=('dc326464748fa608da50386112a89024804c1910')
+
+build() {
+ cd "${srcdir}/xvinfo-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xwd/PKGBUILD b/testing/xorg-xwd/PKGBUILD
new file mode 100644
index 000000000..a4de8a9f1
--- /dev/null
+++ b/testing/xorg-xwd/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113841 2011-03-10 16:01:03Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xwd
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="X Window System image dumping utility"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xwd-${pkgver}.tar.bz2)
+sha1sums=('4ef4fd9072a507e9a1ee88ba1d28b314006cc109')
+
+build() {
+ cd "${srcdir}/xwd-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xwininfo/PKGBUILD b/testing/xorg-xwininfo/PKGBUILD
new file mode 100644
index 000000000..8f17bce09
--- /dev/null
+++ b/testing/xorg-xwininfo/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113851 2011-03-10 16:03:22Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xwininfo
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="Command-line utility to print information about windows on an X server"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxcb')
+makedepends=('xorg-util-macros' 'libx11')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xwininfo-${pkgver}.tar.bz2)
+sha1sums=('945e5d51632876e304e001003c8068f34ffe299e')
+
+build() {
+ cd "${srcdir}/xwininfo-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-xwud/PKGBUILD b/testing/xorg-xwud/PKGBUILD
new file mode 100644
index 000000000..5b7a4a430
--- /dev/null
+++ b/testing/xorg-xwud/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113855 2011-03-10 16:04:19Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xwud
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="X Window System image undumping utility"
+arch=(i686 x86_64 'mips64el')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xwud-${pkgver}.tar.bz2)
+sha1sums=('2e706d50c7039e3daa4963d36ab703e48aa652ed')
+
+build() {
+ cd "${srcdir}/xwud-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}