summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
authorNicolas Reynolds <fauno@kiwwwi.com.ar>2011-06-09 13:03:24 -0300
committerNicolas Reynolds <fauno@kiwwwi.com.ar>2011-06-09 13:03:24 -0300
commit06a22f3bf7a44edf24bd02b6023cf05a6bc77256 (patch)
tree583c62f4fbd0d8ed3401fb1f34ea5756b8aee8d4 /testing
parentd54a0874c6641a08e4cc71269e8be3a1919e70a4 (diff)
parent498f3fc095103b2a220a00b27d43f4dae02d5459 (diff)
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts: core/gcc/PKGBUILD extra/qt/PKGBUILD multilib/gcc-multilib/PKGBUILD testing/pidgin/PKGBUILD
Diffstat (limited to 'testing')
-rw-r--r--testing/avahi/PKGBUILD75
-rw-r--r--testing/avahi/avahi-daemon-dbus.patch11
-rw-r--r--testing/avahi/avahi.install21
-rw-r--r--testing/avahi/gnome-nettool.pngbin0 -> 4509 bytes
-rw-r--r--testing/binutils/PKGBUILD83
-rw-r--r--testing/binutils/binutils.install17
-rw-r--r--testing/gcc/PKGBUILD8
-rw-r--r--testing/glibc/PKGBUILD172
-rw-r--r--testing/glibc/glibc-2.10-bz4781.patch42
-rw-r--r--testing/glibc/glibc-2.10-dont-build-timezone.patch13
-rw-r--r--testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch11
-rw-r--r--testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--testing/glibc/glibc-2.13-futex.patch31
-rw-r--r--testing/glibc/glibc-2.14-libdl-crash.patch132
-rw-r--r--testing/glibc/glibc-__i686.patch13
-rw-r--r--testing/glibc/glibc.install20
-rwxr-xr-xtesting/glibc/locale-gen42
-rw-r--r--testing/glibc/locale.gen.txt23
-rwxr-xr-xtesting/glibc/nscd40
-rw-r--r--testing/linux-api-headers/PKGBUILD39
-rw-r--r--testing/nouveau-drm-lts/COPYING48
-rw-r--r--testing/nouveau-drm-lts/Makefile102
-rw-r--r--testing/nouveau-drm-lts/PKGBUILD47
-rw-r--r--testing/nouveau-drm-lts/dont_check_for_pthread.patch49
-rw-r--r--testing/nouveau-drm-lts/nouveau-drm.install16
-rw-r--r--testing/valgrind/PKGBUILD45
-rw-r--r--testing/valgrind/glibc-patch-version.patch52
-rw-r--r--testing/valgrind/valgrind-3.6.1-glibc-2.14.patch67
28 files changed, 1241 insertions, 4 deletions
diff --git a/testing/avahi/PKGBUILD b/testing/avahi/PKGBUILD
new file mode 100644
index 000000000..63f079778
--- /dev/null
+++ b/testing/avahi/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 126809 2011-06-07 12:12:31Z bisson $
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=avahi
+pkgver=0.6.30
+pkgrel=3
+pkgdesc='A multicast/unicast DNS-SD framework'
+arch=('i686' 'x86_64')
+url='http://www.avahi.org/'
+license=('LGPL')
+depends=('expat' 'libdaemon' 'glib2' 'dbus' 'libcap' 'gdbm')
+optdepends=('gtk3: avahi-discover-standalone, bshell, bssh, bvnc'
+ 'gtk2: gtk2 bindings'
+ 'qt3: qt3 bindings'
+ 'qt: qt bindings'
+ 'pygtk: avahi-bookmarks, avahi-discover'
+ 'twisted: avahi-bookmarks'
+ 'mono: mono bindings'
+ 'dbus-python: avahi-discover'
+ 'nss-mdns: NSS support for mDNS')
+makedepends=('qt' 'qt3' 'pygtk' 'mono' 'intltool' 'dbus-python'
+ 'gtk-sharp-2' 'gobject-introspection' 'gtk3')
+backup=(etc/avahi/avahi-daemon.conf etc/avahi/services/{sftp-,}ssh.service)
+install=avahi.install
+conflicts=('howl' 'mdnsresponder')
+provides=('howl' 'mdnsresponder')
+replaces=('howl' 'mdnsresponder')
+options=('!libtool')
+source=("http://www.avahi.org/download/avahi-${pkgver}.tar.gz"
+ 'avahi-daemon-dbus.patch'
+ 'gnome-nettool.png')
+sha1sums=('5b77443537600a00770e4c77e3c443eeb5861d06'
+ '36735096a6eeb3a4012fe14f875259ee8558e220'
+ 'cf56387c88aed246b9f435efc182ef44de4d52f3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's/netdev/network/g' avahi-daemon/avahi-dbus.conf
+ patch -p1 -i "../avahi-daemon-dbus.patch"
+
+ # pygtk requires python2; make it explicit in case other python are installed: FS#21865
+ PYTHON=python2 \
+ PKG_CONFIG_PATH=/opt/qt/lib/pkgconfig \
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-monodoc \
+ --disable-doxygen-doc \
+ --disable-xmltoman \
+ --enable-compat-libdns_sd \
+ --enable-compat-howl \
+ --with-distro=archlinux \
+ --with-avahi-priv-access-group=network \
+ --with-autoipd-user=avahi \
+ --with-autoipd-group=avahi \
+ --with-systemdsystemunitdir=/lib/systemd/system # See FS#20999
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m 644 ../gnome-nettool.png "${pkgdir}"/usr/share/pixmaps/gnome-nettool.png
+
+ cd "${pkgdir}"
+ sed -i '1c #!/usr/bin/python2' usr/bin/avahi-{bookmarks,discover}
+ # howl and mdnsresponder compatability
+ (cd usr/include; ln -s avahi-compat-libdns_sd/dns_sd.h dns_sd.h; ln -s avahi-compat-howl howl)
+ (cd usr/lib/pkgconfig; ln -s avahi-compat-howl.pc howl.pc)
+}
diff --git a/testing/avahi/avahi-daemon-dbus.patch b/testing/avahi/avahi-daemon-dbus.patch
new file mode 100644
index 000000000..ef7272082
--- /dev/null
+++ b/testing/avahi/avahi-daemon-dbus.patch
@@ -0,0 +1,11 @@
+diff -aur old/initscript/archlinux/avahi-daemon.in new/initscript/archlinux/avahi-daemon.in
+--- old/initscript/archlinux/avahi-daemon.in 2010-06-29 05:30:35.000000000 +0200
++++ new/initscript/archlinux/avahi-daemon.in 2011-06-07 12:20:03.237701492 +0200
+@@ -33,6 +33,7 @@
+
+ case "$1" in
+ start)
++ ck_daemon dbus && /etc/rc.d/dbus start
+ stat_busy "Starting $DESC"
+ $DAEMON -D > /dev/null 2>&1
+ if [ $? -gt 0 ]; then
diff --git a/testing/avahi/avahi.install b/testing/avahi/avahi.install
new file mode 100644
index 000000000..7c75c3dd4
--- /dev/null
+++ b/testing/avahi/avahi.install
@@ -0,0 +1,21 @@
+post_install() {
+ getent group avahi &>/dev/null || groupadd -r -g 84 avahi >/dev/null
+ getent passwd avahi &>/dev/null || useradd -r -u 84 -g avahi -d / -s /bin/false -c avahi avahi >/dev/null
+
+ cat <<EOF
+==> The following daemons may be added to DAEMONS in /etc/rc.conf:
+==> avahi-daemon: the mdns responder, you probably want this.
+==> dbus needs to be running when you start it.
+==> avahi-dnsconfd: daemon used for peer-to-peer automatic dns
+==> configuration on dhcp-less networks.
+
+==> To use some of the client applications you will have to install python.
+==> In addition, pygtk is required for the graphical ones and
+==> twisted for avahi-bookmarks.
+EOF
+}
+
+post_remove() {
+ getent passwd avahi &>/dev/null && userdel avahi >/dev/null
+ getent group avahi &>/dev/null && groupdel avahi >/dev/null
+}
diff --git a/testing/avahi/gnome-nettool.png b/testing/avahi/gnome-nettool.png
new file mode 100644
index 000000000..227d0678a
--- /dev/null
+++ b/testing/avahi/gnome-nettool.png
Binary files differ
diff --git a/testing/binutils/PKGBUILD b/testing/binutils/PKGBUILD
new file mode 100644
index 000000000..bcfd44008
--- /dev/null
+++ b/testing/binutils/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id: PKGBUILD 126772 2011-06-07 07:37:01Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils
+pkgver=2.21
+pkgrel=9
+_date=20110605
+pkgdesc="A set of programs to assemble and manipulate binary and object files"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+groups=('base')
+depends=('glibc>=2.14' 'zlib')
+makedepends=('dejagnu')
+options=('!libtool' '!distcc' '!ccache')
+install=binutils.install
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
+md5sums=('a2e7784d5d66c1d692a0a1fa248ea66c')
+
+mksource() {
+ mkdir ${pkgname}-${_date}
+ cd ${pkgname}-${_date}
+ export _TAG=binutils-2_21-branch
+ export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src'
+ cvs -z9 co -r $_TAG binutils || return 1
+ mv src binutils
+ tar -cvjf ../binutils-${pkgver}_${_date}.tar.bz2 binutils/*
+}
+
+build() {
+ cd ${srcdir}
+ mkdir binutils-build && cd binutils-build
+
+ [[ $CARCH == "x86_64" ]] && CONFIGFLAG="--enable-64-bit-bfd --disable-multilib"
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared $CONFIGFLAG
+
+ # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.
+ make configure-host
+
+ make tooldir=${pkgdir}/usr
+}
+
+check() {
+ cd ${srcdir}/binutils-build
+
+ # do not abort on errors - manually check log files
+ make -k -j1 check || true
+}
+
+package() {
+ cd ${srcdir}/binutils-build
+ make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
+
+ # Add some useful headers
+ install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include
+ install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include
+
+ # Rebuild libiberty.a with -fPIC
+ make -C libiberty clean
+ make CFLAGS="$CFLAGS -fPIC" -C libiberty
+ install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
+
+ # Rebuild libbfd.a with -fPIC
+ make -C bfd clean
+ # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
+ make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd
+ install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
+
+ # Remove Windows/Novell specific man pages
+ rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
+
+ # Remove these symlinks, they are not ABI stable.
+ # Programs should compile static to the .a file.
+ rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
+ echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so
+ echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so
+}
diff --git a/testing/binutils/binutils.install b/testing/binutils/binutils.install
new file mode 100644
index 000000000..8bf9f3a47
--- /dev/null
+++ b/testing/binutils/binutils.install
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/testing/gcc/PKGBUILD b/testing/gcc/PKGBUILD
index e7a51396a..cedbfa948 100644
--- a/testing/gcc/PKGBUILD
+++ b/testing/gcc/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 126413 2011-06-05 07:20:02Z allan $
+# $Id: PKGBUILD 126776 2011-06-07 08:00:51Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
@@ -6,14 +6,14 @@
pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go')
pkgver=4.6.0
-pkgrel=6
+pkgrel=7
_snapshot=4.6-20110603
_libstdcppmanver=20110201 # Note: check source directory name when updating this
pkgdesc="The GNU Compiler Collection"
arch=('i686' 'x86_64')
license=('GPL' 'LGPL' 'FDL' 'custom')
url="http://gcc.gnu.org"
-makedepends=('binutils>=2.21' 'libmpc' 'cloog' 'ppl' 'gcc-ada' 'dejagnu')
+makedepends=('binutils>=2.21-9' 'libmpc' 'cloog' 'ppl' 'gcc-ada' 'dejagnu')
options=('!libtool' '!emptydirs')
source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-${_snapshot}.tar.bz2
@@ -112,7 +112,7 @@ package_gcc-libs()
package_gcc()
{
pkgdesc="The GNU Compiler Collection - C and C++ frontends"
- depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.21' 'libmpc' 'cloog' 'ppl')
+ depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.21-9' 'libmpc' 'cloog' 'ppl')
groups=('base-devel')
install=gcc.install
diff --git a/testing/glibc/PKGBUILD b/testing/glibc/PKGBUILD
new file mode 100644
index 000000000..51a4b2ae0
--- /dev/null
+++ b/testing/glibc/PKGBUILD
@@ -0,0 +1,172 @@
+# $Id: PKGBUILD 126794 2011-06-07 10:57:24Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each new glibc version
+
+pkgname=glibc
+pkgver=2.14
+pkgrel=1
+_glibcdate=20110605
+pkgdesc="GNU C Library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('linux-api-headers>=2.6.39' 'tzdata')
+makedepends=('gcc>=4.4')
+backup=(etc/locale.gen
+ etc/nscd.conf)
+options=('!strip')
+install=glibc.install
+source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz
+ glibc-2.10-dont-build-timezone.patch
+ glibc-2.10-bz4781.patch
+ glibc-__i686.patch
+ glibc-2.12.1-static-shared-getpagesize.patch
+ glibc-2.12.2-ignore-origin-of-privileged-program.patch
+ glibc-2.13-futex.patch
+ glibc-2.14-libdl-crash.patch
+ nscd
+ locale.gen.txt
+ locale-gen)
+md5sums=('a96742599fc8a99e52b9e344f39a1000'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '7d0154b7e17ea218c9fa953599d24cc4'
+ 'cea62cc6b903d222c5f26e05a3c0e0e6'
+ 'b587ee3a70c9b3713099295609afde49'
+ '07ac979b6ab5eeb778d55f041529d623'
+ '476e9113489f93b348b21e144b6a8fcf')
+
+mksource() {
+ git clone git://sourceware.org/git/glibc.git
+ pushd glibc
+ git checkout -b glibc-2.14-arch origin/master
+ # git checkout -b glibc-2.14-arch origin/release/2.14/master
+ popd
+ tar -cvJf glibc-${pkgver}_${_glibcdate}.tar.xz glibc/*
+}
+
+build() {
+ cd ${srcdir}/glibc
+
+ # timezone data is in separate package (tzdata)
+ patch -Np1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781
+ patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=411
+ # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
+ patch -Np1 -i ${srcdir}/glibc-__i686.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=11929
+ # using Fedora "fix" as patch in that bug report causes breakages...
+ patch -Np1 -i ${srcdir}/glibc-2.12.1-static-shared-getpagesize.patch
+
+ # http://www.exploit-db.com/exploits/15274/
+ # http://sourceware.org/git/?p=glibc.git;a=patch;h=d14e6b09 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.12.2-ignore-origin-of-privileged-program.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=12403
+ patch -Np1 -i ${srcdir}/glibc-2.13-futex.patch
+
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=675155e9 (only fedora branch...)
+ # http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
+ patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
+
+ install -dm755 ${pkgdir}/etc
+ touch ${pkgdir}/etc/ld.so.conf
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ if [[ ${CARCH} = "i686" ]]; then
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+ fi
+
+ echo "slibdir=/lib" >> configparms
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-kernel=2.6.27 \
+ --with-tls --with-__thread \
+ --enable-bind-now --without-gd \
+ --without-cvs --disable-profile \
+ --disable-multi-arch
+
+ make
+}
+
+check() {
+ cd ${srcdir}/glibc-build
+
+ # some errors are expected - manually check log files
+ make -k check || true
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+ make install_root=${pkgdir} install
+
+ rm ${pkgdir}/etc/ld.so.{cache,conf}
+
+ install -dm755 ${pkgdir}/etc/rc.d
+ install -dm755 ${pkgdir}/usr/sbin
+ install -dm755 ${pkgdir}/usr/lib/locale
+ install -m644 ${srcdir}/glibc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
+ install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd
+ install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin
+ install -m644 ${srcdir}/glibc/posix/gai.conf ${pkgdir}/etc/gai.conf
+
+ sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf
+
+ # create /etc/locale.gen
+ install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
+ sed -i "s|/| |g" ${srcdir}/glibc/localedata/SUPPORTED
+ sed -i 's|\\| |g' ${srcdir}/glibc/localedata/SUPPORTED
+ sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/glibc/localedata/SUPPORTED
+ cat ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
+ sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen
+
+ if [[ ${CARCH} = "x86_64" ]]; then
+ # fix for the linker
+ sed -i '/RTLDLIST/s%lib64%lib%' ${pkgdir}/usr/bin/ldd
+ # Comply with multilib binaries, they look for the linker in /lib64
+ mkdir ${pkgdir}/lib64
+ cd ${pkgdir}/lib64
+ ln -v -s ../lib/ld* .
+ fi
+
+ # manually strip files as stripping libpthread-*.so and libthread_db.so
+ # with the default $STRIP_SHARED breaks gdb and stripping ld-*.so breaks
+ # valgrind on x86_64
+
+ cd $pkgdir
+ strip $STRIP_BINARIES sbin/{ldconfig,sln} \
+ usr/bin/{gencat,getconf,getent,iconv,locale} \
+ usr/bin/{localedef,pcprofiledump,rpcgen,sprof} \
+ usr/lib/getconf/* \
+ usr/sbin/{iconvconfig,nscd}
+ [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4
+
+ strip $STRIP_STATIC usr/lib/*.a \
+ lib/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so
+
+ strip $STRIP_SHARED lib/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \
+ lib/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
+ lib/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
+ lib/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib/{pt_chown,gconv/*.so}
+
+# add usr/lib/audit/sotruss-lib.so, usr/bin/sotruss
+
+}
diff --git a/testing/glibc/glibc-2.10-bz4781.patch b/testing/glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 000000000..cf1a97a18
--- /dev/null
+++ b/testing/glibc/glibc-2.10-bz4781.patch
@@ -0,0 +1,42 @@
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/i386/clone.S glibc/sysdeps/unix/sysv/linux/i386/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -120,9 +120,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (eip);
+ /* Note: %esi is zero. */
+ movl %esi,%ebp /* terminate the stack frame */
+ #ifdef RESET_PID
+@@ -155,7 +152,6 @@
+ jmp L(haspid)
+ .previous
+ #endif
+- cfi_endproc;
+
+ cfi_startproc
+ PSEUDO_END (BP_SYM (__clone))
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S glibc/sysdeps/unix/sysv/linux/x86_64/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -89,9 +89,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (rip);
+ /* Clear the frame pointer. The ABI suggests this be done, to mark
+ the outermost frame obviously. */
+ xorl %ebp, %ebp
+@@ -116,7 +113,6 @@
+ /* Call exit with return value from function call. */
+ movq %rax, %rdi
+ call HIDDEN_JUMPTARGET (_exit)
+- cfi_endproc;
+
+ cfi_startproc;
+ PSEUDO_END (BP_SYM (__clone))
diff --git a/testing/glibc/glibc-2.10-dont-build-timezone.patch b/testing/glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 000000000..d3abeff17
--- /dev/null
+++ b/testing/glibc/glibc-2.10-dont-build-timezone.patch
@@ -0,0 +1,13 @@
+timezone data has been split into the package sys-libs/timezone-data
+
+--- glibc-2.4/Makeconfig
++++ glibc-2.4/Makeconfig
+@@ -931,7 +931,7 @@
+ stdlib stdio-common libio malloc string wcsmbs time dirent \
+ grp pwd posix io termios resource misc socket sysvipc gmon \
+ gnulib iconv iconvdata wctype manual shadow gshadow po argp \
+- crypt nss localedata timezone rt conform debug \
++ crypt nss localedata rt conform debug \
+ $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
+
+ ifndef avoid-generated
diff --git a/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch b/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch
new file mode 100644
index 000000000..e84754279
--- /dev/null
+++ b/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch
@@ -0,0 +1,11 @@
+--- glibc-2.12-192-g7c08a05/sysdeps/unix/sysv/linux/getpagesize.c
++++ glibc-2.12.90-17/sysdeps/unix/sysv/linux/getpagesize.c
+@@ -28,7 +28,7 @@
+ int
+ __getpagesize ()
+ {
+-#ifdef __ASSUME_AT_PAGESIZE
++#if 0 && defined __ASSUME_AT_PAGESIZE
+ assert (GLRO(dl_pagesize) != 0);
+ return GLRO(dl_pagesize);
+ #else
diff --git a/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
new file mode 100644
index 000000000..ce089b49c
--- /dev/null
+++ b/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
@@ -0,0 +1,26 @@
+From d14e6b09d60d52cc12f0396c3106b14e1bd0fe8f Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Thu, 9 Dec 2010 15:00:59 +0100
+Subject: [PATCH 1/1] Ignore origin of privileged program
+
+---
+ ChangeLog | 5 +++++
+ elf/dl-object.c | 3 +++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/elf/dl-object.c b/elf/dl-object.c
+index 22a1635..7674d49 100644
+--- a/elf/dl-object.c
++++ b/elf/dl-object.c
+@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const char *libname, int type,
+ out:
+ new->l_origin = origin;
+ }
++ else if (INTUSE(__libc_enable_secure) && type == lt_executable)
++ /* The origin of a privileged program cannot be trusted. */
++ new->l_origin = (char *) -1;
+
+ return new;
+ }
+--
+1.7.2
diff --git a/testing/glibc/glibc-2.13-futex.patch b/testing/glibc/glibc-2.13-futex.patch
new file mode 100644
index 000000000..9b9c3ac45
--- /dev/null
+++ b/testing/glibc/glibc-2.13-futex.patch
@@ -0,0 +1,31 @@
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
++++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+@@ -210,7 +210,7 @@ pthread_rwlock_timedrdlock:
+ cfi_restore(%r12)
+ retq
+
+-#ifdef __ASSUME_PRIVATE_FUTEX
++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+ cfi_adjust_cfa_offset(16)
+ cfi_rel_offset(%r12, 8)
+ cfi_rel_offset(%r13, 0)
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
++++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
+@@ -192,7 +192,7 @@ pthread_rwlock_timedwrlock:
+
+ 7: movq %rdx, %rax
+
+-#ifndef __ASSUME_PRIVATE_FUTEX
++#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ addq $16, %rsp
+ cfi_adjust_cfa_offset(-16)
+ popq %r14
+@@ -207,7 +207,7 @@ pthread_rwlock_timedwrlock:
+ cfi_restore(%r12)
+ retq
+
+-#ifdef __ASSUME_PRIVATE_FUTEX
++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+ cfi_adjust_cfa_offset(16)
+ cfi_rel_offset(%r12, 8)
+ cfi_rel_offset(%r13, 0)
diff --git a/testing/glibc/glibc-2.14-libdl-crash.patch b/testing/glibc/glibc-2.14-libdl-crash.patch
new file mode 100644
index 000000000..ee29f8c20
--- /dev/null
+++ b/testing/glibc/glibc-2.14-libdl-crash.patch
@@ -0,0 +1,132 @@
+diff --git a/elf/dl-close.c b/elf/dl-close.c
+index 73b2a2f..9bd91e3 100644
+--- a/elf/dl-close.c
++++ b/elf/dl-close.c
+@@ -1,5 +1,5 @@
+ /* Close a shared object opened by `_dl_open'.
+- Copyright (C) 1996-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1996-2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -119,17 +119,8 @@ _dl_close_worker (struct link_map *map)
+ if (map->l_direct_opencount > 0 || map->l_type != lt_loaded
+ || dl_close_state != not_pending)
+ {
+- if (map->l_direct_opencount == 0)
+- {
+- if (map->l_type == lt_loaded)
+- dl_close_state = rerun;
+- else if (map->l_type == lt_library)
+- {
+- struct link_map **oldp = map->l_initfini;
+- map->l_initfini = map->l_orig_initfini;
+- _dl_scope_free (oldp);
+- }
+- }
++ if (map->l_direct_opencount == 0 && map->l_type == lt_loaded)
++ dl_close_state = rerun;
+
+ /* There are still references to this object. Do nothing more. */
+ if (__builtin_expect (GLRO(dl_debug_mask) & DL_DEBUG_FILES, 0))
+diff --git a/elf/dl-deps.c b/elf/dl-deps.c
+index 9e30594..3890d00 100644
+--- a/elf/dl-deps.c
++++ b/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *map,
+ nneeded * sizeof needed[0]);
+ atomic_write_barrier ();
+ l->l_initfini = l_initfini;
++ l->l_free_initfini = 1;
+ }
+
+ /* If we have no auxiliary objects just go on to the next map. */
+@@ -681,6 +682,7 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ l_initfini[nlist] = NULL;
+ atomic_write_barrier ();
+ map->l_initfini = l_initfini;
++ map->l_free_initfini = 1;
+ if (l_reldeps != NULL)
+ {
+ atomic_write_barrier ();
+@@ -689,5 +691,5 @@ Filters not supported with LD_TRACE_PRELINKING"));
+ _dl_scope_free (old_l_reldeps);
+ }
+ if (old_l_initfini != NULL)
+- map->l_orig_initfini = old_l_initfini;
++ _dl_scope_free (old_l_initfini);
+ }
+diff --git a/elf/dl-libc.c b/elf/dl-libc.c
+index 7be9483..a13fce3 100644
+--- a/elf/dl-libc.c
++++ b/elf/dl-libc.c
+@@ -265,13 +265,13 @@ libc_freeres_fn (free_mem)
+
+ for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)
+ {
+- /* Remove all additional names added to the objects. */
+ for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
+ {
+ struct libname_list *lnp = l->l_libname->next;
+
+ l->l_libname->next = NULL;
+
++ /* Remove all additional names added to the objects. */
+ while (lnp != NULL)
+ {
+ struct libname_list *old = lnp;
+@@ -279,6 +279,10 @@ libc_freeres_fn (free_mem)
+ if (! old->dont_free)
+ free (old);
+ }
++
++ /* Free the initfini dependency list. */
++ if (l->l_free_initfini)
++ free (l->l_initfini);
+ }
+
+ if (__builtin_expect (GL(dl_ns)[ns]._ns_global_scope_alloc, 0) != 0
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 4a9109e..617e30e 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2251,6 +2251,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lnp->dont_free = 1;
+ lnp = lnp->next;
+ }
++ l->l_free_initfini = 0;
+
+ if (l != &GL(dl_rtld_map))
+ _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+diff --git a/include/link.h b/include/link.h
+index e877104..051b99a 100644
+--- a/include/link.h
++++ b/include/link.h
+@@ -1,6 +1,6 @@
+ /* Data structure for communication from the run-time dynamic linker for
+ loaded ELF shared objects.
+- Copyright (C) 1995-2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
++ Copyright (C) 1995-2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -192,6 +192,9 @@ struct link_map
+ during LD_TRACE_PRELINKING=1
+ contains any DT_SYMBOLIC
+ libraries. */
++ unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++ freed, ie. not allocated with
++ the dummy malloc in ld.so. */
+
+ /* Collected information about own RPATH directories. */
+ struct r_search_path_struct l_rpath_dirs;
+@@ -240,9 +243,6 @@ struct link_map
+
+ /* List of object in order of the init and fini calls. */
+ struct link_map **l_initfini;
+- /* The init and fini list generated at startup, saved when the
+- object is also loaded dynamically. */
+- struct link_map **l_orig_initfini;
+
+ /* List of the dependencies introduced through symbol binding. */
+ struct link_map_reldeps
diff --git a/testing/glibc/glibc-__i686.patch b/testing/glibc/glibc-__i686.patch
new file mode 100644
index 000000000..28d5dd424
--- /dev/null
+++ b/testing/glibc/glibc-__i686.patch
@@ -0,0 +1,13 @@
+diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile
+--- glibc-old//sysdeps/i386/Makefile 2010-03-18 11:52:30.000000000 +1000
++++ glibc//sysdeps/i386/Makefile 2010-04-16 15:05:50.000000000 +1000
+@@ -1,6 +1,7 @@
+ # The mpn functions need a #define for asm syntax flavor.
+-# Every i386 port in use uses gas syntax (I think).
+-asm-CPPFLAGS += -DGAS_SYNTAX
++# Every i386 port in use uses gas syntax (I think). Don't replace
++# __i686 in __i686.get_pc_thunk.bx.
++asm-CPPFLAGS += -DGAS_SYNTAX -U __i686
+
+ # The i386 `long double' is a distinct type we support.
+ long-double-fcts = yes
diff --git a/testing/glibc/glibc.install b/testing/glibc/glibc.install
new file mode 100644
index 000000000..7f85ade96
--- /dev/null
+++ b/testing/glibc/glibc.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11})
+
+post_upgrade() {
+ sbin/ldconfig -r .
+ [ -x sbin/init ] && sbin/init u
+ usr/sbin/locale-gen
+
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/glibc/locale-gen b/testing/glibc/locale-gen
new file mode 100755
index 000000000..5aff344c4
--- /dev/null
+++ b/testing/glibc/locale-gen
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+set -e
+
+LOCALEGEN=/etc/locale.gen
+LOCALES=/usr/share/i18n/locales
+if [ -n "$POSIXLY_CORRECT" ]; then
+ unset POSIXLY_CORRECT
+fi
+
+
+[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
+
+# Remove all old locale dir and locale-archive before generating new
+# locale data.
+rm -rf /usr/lib/locale/* || true
+
+umask 022
+
+is_entry_ok() {
+ if [ -n "$locale" -a -n "$charset" ] ; then
+ true
+ else
+ echo "error: Bad entry '$locale $charset'"
+ false
+ fi
+}
+
+echo "Generating locales..."
+while read locale charset; do \
+ case $locale in \#*) continue;; "") continue;; esac; \
+ is_entry_ok || continue
+ echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
+ echo -n ".$charset"; \
+ echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
+ echo -n '...'; \
+ if [ -f $LOCALES/$locale ]; then input=$locale; else \
+ input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \
+ localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \
+ echo ' done'; \
+done < $LOCALEGEN
+echo "Generation complete."
diff --git a/testing/glibc/locale.gen.txt b/testing/glibc/locale.gen.txt
new file mode 100644
index 000000000..ccdd81734
--- /dev/null
+++ b/testing/glibc/locale.gen.txt
@@ -0,0 +1,23 @@
+# Configuration file for locale-gen
+#
+# lists of locales that are to be generated by the locale-gen command.
+#
+# Each line is of the form:
+#
+# <locale> <charset>
+#
+# where <locale> is one of the locales given in /usr/share/i18n/locales
+# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
+#
+# Examples:
+# en_US ISO-8859-1
+# en_US.UTF-8 UTF-8
+# de_DE ISO-8859-1
+# de_DE@euro ISO-8859-15
+#
+# The locale-gen command will generate all the locales,
+# placing them in /usr/lib/locale.
+#
+# A list of supported locales is included in this file.
+# Uncomment the ones you need.
+#
diff --git a/testing/glibc/nscd b/testing/glibc/nscd
new file mode 100755
index 000000000..8b14f2a3f
--- /dev/null
+++ b/testing/glibc/nscd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/nscd`
+case "$1" in
+ start)
+ stat_busy "Starting nscd"
+ # create necessary directories if they don't already exist
+ mkdir -p /var/run/nscd /var/db/nscd 2>/dev/null
+ # remove stale files
+ rm -f /var/db/nscd/* /var/run/nscd/* 2>/dev/null
+ [ -z "$PID" ] && /usr/sbin/nscd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon nscd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping nscd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon nscd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/linux-api-headers/PKGBUILD b/testing/linux-api-headers/PKGBUILD
new file mode 100644
index 000000000..0a3f8da6e
--- /dev/null
+++ b/testing/linux-api-headers/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 126765 2011-06-07 07:31:07Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=linux-api-headers
+pkgver=2.6.39.1
+_basever=2.6.39
+pkgrel=1
+pkgdesc="Kernel headers sanitized for use in userspace"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL2')
+provides=("kernel-headers=${pkgver}")
+conflicts=('kernel-headers')
+replaces=('kernel-headers')
+source=(http://www.kernel.org/pub/linux/kernel/v2.6/linux-${_basever}.tar.bz2
+ http://www.kernel.org/pub/linux/kernel/v2.6/patch-${pkgver}.bz2)
+md5sums=('1aab7a741abe08d42e8eccf20de61e05'
+ '215f7ebaafe1175dbc5d1e439c9a96d5')
+
+build() {
+ cd ${srcdir}/linux-${_basever}
+ [[ $pkgver != $_basever ]] && patch -Np1 -i ${srcdir}/patch-${pkgver}
+
+ make mrproper
+ make headers_check
+}
+
+package() {
+ cd ${srcdir}/linux-${_basever}
+ make INSTALL_HDR_PATH=${pkgdir}/usr headers_install
+
+ # use headers from libdrm
+ rm -rf ${pkgdir}/usr/include/drm
+
+ # clean-up unnecessary files generated during install
+ find ${pkgdir} -name .install -or -name ..install.cmd | xargs rm -f
+}
diff --git a/testing/nouveau-drm-lts/COPYING b/testing/nouveau-drm-lts/COPYING
new file mode 100644
index 000000000..6e74c337c
--- /dev/null
+++ b/testing/nouveau-drm-lts/COPYING
@@ -0,0 +1,48 @@
+ Copyright 2005 Adam Jackson.
+
+ 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 on the rights to use, copy, modify, merge,
+ publish, distribute, sub license, 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 (including the
+ next paragraph) 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
+ NON-INFRINGEMENT. IN NO EVENT SHALL ADAM JACKSON 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.
+
+------------------------------------------------------------------------
+
+ Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ 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 (including the
+ next paragraph) 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 PRECISION INSIGHT AND/OR ITS
+ SUPPLIERS 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.
diff --git a/testing/nouveau-drm-lts/Makefile b/testing/nouveau-drm-lts/Makefile
new file mode 100644
index 000000000..123bc5339
--- /dev/null
+++ b/testing/nouveau-drm-lts/Makefile
@@ -0,0 +1,102 @@
+# This Makefile is loosely based on the drm.git/linux-core/Makefile and
+# the preliminary work by Christopher James Halse Rogers.
+# Edited by Pekka Paalanen <pq@iki.fi>
+
+# By default, the build is done against the running linux kernel source.
+# To build against a different kernel source tree, set LINUXDIR:
+#
+# make LINUXDIR=/path/to/kernel/source
+
+# By default, it is assumed the Nouveau kernel tree is found in $PWD/../.
+# To use a different path to the Nouveau kernel tree, set NOUVEAUROOTDIR:
+#
+# make NOUVEAUROOTDIR=/path/to/nouveau/linux-2.6
+
+
+ifndef LINUXDIR
+RUNNING_REL := $(shell uname -r)
+
+LINUXDIR := $(shell if [ -e /lib/modules/$(RUNNING_REL)/source ]; then \
+ echo /lib/modules/$(RUNNING_REL)/source; \
+ else echo /lib/modules/$(RUNNING_REL)/build; fi)
+endif
+
+NOUVEAUGITREMOTE ?= origin
+NOUVEAUROOTDIR ?= $(CURDIR)/..
+override NOUVEAUROOTDIR := $(abspath $(NOUVEAUROOTDIR))
+
+TESTFILE := include/drm/nouveau_drm.h
+ifeq ($(wildcard $(NOUVEAUROOTDIR)/$(TESTFILE)),)
+$(error $(NOUVEAUROOTDIR) does not look like the right kernel tree, \
+ please set NOUVEAUROOTDIR)
+endif
+
+GIT_REVISION := $(shell GIT_DIR=$(NOUVEAUROOTDIR)/.git \
+ git describe --always --abbrev=17 2> /dev/null)
+
+DRMINC := -I$(NOUVEAUROOTDIR)/include/drm
+DRMDIR := $(NOUVEAUROOTDIR)/drivers/gpu/drm
+DRMCFG := \
+ CONFIG_DRM=m \
+ CONFIG_DRM_KMS_HELPER=m \
+ CONFIG_DRM_TTM=m \
+ CONFIG_DRM_NOUVEAU=m \
+ CONFIG_DRM_NOUVEAU_KMS=n \
+ CONFIG_DRM_NOUVEAU_BACKLIGHT=y \
+ CONFIG_DRM_NOUVEAU_DEBUG=y \
+ CONFIG_DRM_I2C_CH7006=m \
+ CONFIG_DRM_TDFX=n \
+ CONFIG_DRM_R128=n \
+ CONFIG_DRM_RADEON=n \
+ CONFIG_DRM_MGA=n \
+ CONFIG_DRM_I810=n \
+ CONFIG_DRM_I830=n \
+ CONFIG_DRM_I915=n \
+ CONFIG_DRM_SIS=n \
+ CONFIG_DRM_SAVAGE=n \
+ CONFIG_DRM_VIA=n
+
+EXTRA_CFLAGS :=
+MYEXTRA_CFLAGS :=
+MYEXTRA_CFLAGS += -DCONFIG_DRM_NOUVEAU_BACKLIGHT
+MYEXTRA_CFLAGS += -DCONFIG_DRM_NOUVEAU_DEBUG
+
+ifneq ($(GIT_REVISION),)
+MYEXTRA_CFLAGS += '-DGIT_REVISION=\"$(GIT_REVISION)\"'
+endif
+
+MYPARMS := -C $(LINUXDIR) KCPPFLAGS="$(DRMINC)" SUBDIRS="$(DRMDIR)" $(DRMCFG)
+
+MYEXTRA_CFLAGS += $(EXTRA_CFLAGS)
+ifneq ($(MYEXTRA_CFLAGS),)
+MYPARMS += EXTRA_CFLAGS="$(MYEXTRA_CFLAGS)"
+endif
+
+.PHONY: all modules install clean archive FORCE
+
+all: modules
+FORCE:
+
+modules:
+ $(MAKE) $(MYPARMS) modules
+
+install:
+ $(MAKE) $(MYPARMS) modules_install
+
+clean:
+ $(MAKE) $(MYPARMS) clean
+
+archive: newttm-devel-compat.tar.gz newttm-devel.tar.gz master.tar.gz
+
+newttm-devel-compat.tar.gz: EXTRAS=nouveau README-nouveau
+
+%.tar: FORCE
+ GIT_DIR=$(NOUVEAUROOTDIR)/.git \
+ git archive --format=tar --prefix=$*/ $(NOUVEAUGITREMOTE)/$* \
+ drivers/gpu/drm include/drm $(EXTRAS) > $@
+
+%.tar.gz: %.tar
+ gzip -9 -c $< > $@
+
+# The commit id of the archive can be read with
+# $ zcat foo.tar.gz | git get-tar-commit-id
diff --git a/testing/nouveau-drm-lts/PKGBUILD b/testing/nouveau-drm-lts/PKGBUILD
new file mode 100644
index 000000000..1284563f4
--- /dev/null
+++ b/testing/nouveau-drm-lts/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 126820 2011-06-07 13:57:50Z tpowa $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: buddabrod <buddabrod@gmail.com>
+
+pkgname=nouveau-drm-lts
+_snapdate=20100313
+pkgver=0.0.16_${_snapdate} # see master/drivers/gpu/drm/nouveau/nouveau_drv.h for version
+_kernver='2.6.32-lts'
+pkgrel=6
+pkgdesc="nvidia opensource X driver"
+arch=('i686' 'x86_64')
+url="http://nouveau.freedesktop.org/"
+depends=("kernel26-lts>=2.6.32" "kernel26-lts<2.6.33")
+makedepends=("kernel26-lts-headers>=2.6.32" "kernel26-lts-headers<2.6.33")
+# http://nouveau.freedesktop.org/wiki/InstallDRM#head-771a47a133fba6a5a70253656e76c61e9bff93bd
+optdepends=('nouveau-firmware: needed for very new card (NV50 family and above) to work properly where the OSS replacement does not work well')
+#makedepends=('git' 'autoconf' 'pkgconfig')
+install=nouveau-drm.install
+license=('GPL')
+options=('!strip')
+source=(ftp://ftp.archlinux.org/other/${pkgname/-lts//}/master-${_snapdate}.tar.gz
+ # http://people.freedesktop.org/~pq/nouveau-drm/master.tar.gz
+ # get the Makefile from http://cgit.freedesktop.org/nouveau/linux-2.6/plain/nouveau/Makefile?h=master-compat
+ Makefile)
+md5sums=('ad7ad0fb73d56bcff3d2b54a70c3d511'
+ 'e7d5df80186d5c736e82b0a7d46216bc')
+
+build() {
+ cd ${srcdir}/master
+ mkdir nouveau
+ cp $srcdir/Makefile ${srcdir}/master/nouveau/
+ cd nouveau
+ make LINUXDIR=/lib/modules/${_kernver}/build DRM_MODULES="nouveau"
+}
+
+package() {
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/drm.ko ${pkgdir}/lib/modules/${_kernver}/updates/drm.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/drm_kms_helper.ko ${pkgdir}/lib/modules/${_kernver}/updates/drm_kms_helper.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/nouveau/nouveau.ko ${pkgdir}/lib/modules/${_kernver}/kernel/drivers/video/nouveau.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/ttm/ttm.ko ${pkgdir}/lib/modules/${_kernver}/updates/ttm.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/i2c/ch7006.ko ${pkgdir}/lib/modules/${_kernver}/updates/ch7006.ko
+
+ # install script
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" ${startdir}/nouveau-drm.install
+ # gzip -9 modules
+ find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
+}
diff --git a/testing/nouveau-drm-lts/dont_check_for_pthread.patch b/testing/nouveau-drm-lts/dont_check_for_pthread.patch
new file mode 100644
index 000000000..050f55767
--- /dev/null
+++ b/testing/nouveau-drm-lts/dont_check_for_pthread.patch
@@ -0,0 +1,49 @@
+diff -ru libdrm-2.4.0/configure.ac libdrm-2.4.0-nostubs/configure.ac
+--- libdrm-2.4.0/configure.ac 2008-10-09 21:57:09.000000000 +0200
++++ libdrm-2.4.0-nostubs/configure.ac 2008-10-21 10:48:24.000000000 +0200
+@@ -32,10 +32,6 @@
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+
+-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
+-AC_SUBST(PTHREADSTUBS_CFLAGS)
+-AC_SUBST(PTHREADSTUBS_LIBS)
+-
+ pkgconfigdir=${libdir}/pkgconfig
+ AC_SUBST(pkgconfigdir)
+ AC_ARG_ENABLE(udev, AS_HELP_STRING([--enable-udev],
+diff -ru libdrm-2.4.0/libdrm/intel/Makefile.am libdrm-2.4.0-nostubs/libdrm/intel/Makefile.am
+--- libdrm-2.4.0/libdrm/intel/Makefile.am 2008-10-14 01:39:32.000000000 +0200
++++ libdrm-2.4.0-nostubs/libdrm/intel/Makefile.am 2008-10-21 10:49:00.000000000 +0200
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir)/libdrm \
+ -I$(top_srcdir)/libdrm/intel \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/shared-core
+
+ libdrm_intel_la_LTLIBRARIES = libdrm_intel.la
+ libdrm_intel_ladir = $(libdir)
+ libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_intel_la_LIBADD = ../libdrm.la
+
+ libdrm_intel_la_SOURCES = \
+ intel_bufmgr.c \
+--- libdrm-2.4.5/libdrm/nouveau/Makefile.am.orig 2009-02-28 19:06:24.000000000 +0000
++++ libdrm-2.4.5/libdrm/nouveau/Makefile.am 2009-02-28 19:06:33.000000000 +0000
+@@ -2,13 +2,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir)/libdrm \
+ -I$(top_srcdir)/libdrm/nouveau \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/shared-core
+
+ libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
+ libdrm_nouveau_ladir = $(libdir)
+ libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_nouveau_la_LIBADD = ../libdrm.la
+
+ libdrm_nouveau_la_SOURCES = \
+ nouveau_device.c \
diff --git a/testing/nouveau-drm-lts/nouveau-drm.install b/testing/nouveau-drm-lts/nouveau-drm.install
new file mode 100644
index 000000000..beadaa563
--- /dev/null
+++ b/testing/nouveau-drm-lts/nouveau-drm.install
@@ -0,0 +1,16 @@
+post_install() {
+ KERNEL_VERSION='2.6.32-lts'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+ echo "if you are running kms in early mode please rebuild your initrd"
+}
+
+post_upgrade() {
+ post_install $1
+ rmmod nouveau || echo 'In order to use the new nouveau module, exit Xserver and unload it manually.'
+}
+
+post_remove() {
+ KERNEL_VERSION='2.6.32-lts'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+}
+
diff --git a/testing/valgrind/PKGBUILD b/testing/valgrind/PKGBUILD
new file mode 100644
index 000000000..a181f374c
--- /dev/null
+++ b/testing/valgrind/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 126782 2011-06-07 10:02:00Z allan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=valgrind
+pkgver=3.6.1
+pkgrel=2
+pkgdesc="A tool to help find memory-management problems in programs"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://valgrind.org/"
+depends=('glibc>=2.14' 'glibc<2.15' 'perl')
+makedepends=('gdb')
+options=('!emptydirs')
+source=(http://valgrind.org/downloads/${pkgname}-${pkgver}.tar.bz2
+ valgrind-3.6.1-glibc-2.14.patch
+ glibc-patch-version.patch)
+md5sums=('2c3aa122498baecc9d69194057ca88f5'
+ '560032ce5d27ef0c7c1af32c3fd45833'
+ 'b657f0ebdde3d9aefc9fd16f9e653702')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # make sure our CFLAGS are respected
+ sed -i -e 's:^CFLAGS="-Wno-long-long":CFLAGS="$CFLAGS -Wno-long-long":' configure.in
+
+ # glibc-2.14 compatibility
+ patch -Np1 -i ${srcdir}/valgrind-3.6.1-glibc-2.14.patch
+
+ # prevent need to rebuild with glibc patch level version bumps
+ patch -Np1 -i ${srcdir}/glibc-patch-version.patch
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-only64bit
+ else
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ fi
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/testing/valgrind/glibc-patch-version.patch b/testing/valgrind/glibc-patch-version.patch
new file mode 100644
index 000000000..2c6830aef
--- /dev/null
+++ b/testing/valgrind/glibc-patch-version.patch
@@ -0,0 +1,52 @@
+Saves having to rebuild valgrind on glibc-x.x.* patch level releases
+
+diff -Naur valgrind-3.5.0-old//glibc-2.X.supp.in valgrind-3.5.0/glibc-2.X.supp.in
+--- valgrind-3.5.0-old//glibc-2.X.supp.in 2009-08-19 23:37:48.000000000 +1000
++++ valgrind-3.5.0/glibc-2.X.supp.in 2010-05-22 19:43:08.088007038 +1000
+@@ -168,9 +168,9 @@
+ Memcheck:Param
+ socketcall.sendto(msg)
+ fun:__sendto_nocancel
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
+ }
+ {
+ glibc24-64bit-padding-1c
+@@ -180,7 +180,7 @@
+ fun:__nscd_get_map_ref
+ fun:nscd_get*_r
+ fun:*nscd*
+- obj:/*libc-@GLIBC_VERSION@.so
++ obj:/*libc-@GLIBC_VERSION@*.so
+ }
+
+
+@@ -199,18 +199,18 @@
+ Memcheck:Param
+ socketcall.sendto(msg)
+ fun:send
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
+ }
+ {
+ X11-64bit-padding-4b
+ Memcheck:Param
+ socketcall.send(msg)
+ fun:send
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
+ }
+
+ ##----------------------------------------------------------------------##
diff --git a/testing/valgrind/valgrind-3.6.1-glibc-2.14.patch b/testing/valgrind/valgrind-3.6.1-glibc-2.14.patch
new file mode 100644
index 000000000..7fd217016
--- /dev/null
+++ b/testing/valgrind/valgrind-3.6.1-glibc-2.14.patch
@@ -0,0 +1,67 @@
+--- valgrind/configure.in.jj 2010-10-21 03:14:02.000000000 +0200
++++ valgrind/configure.in 2010-11-05 17:09:18.674455299 +0100
+@@ -749,6 +759,13 @@ case "${GLIBC_VERSION}" in
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
++ 2.14)
++ AC_MSG_RESULT(2.14 family)
++ AC_DEFINE([GLIBC_2_14], 1, [Define to 1 if you're using glibc 2.14.x])
++ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++ ;;
+ aix5)
+ AC_MSG_RESULT(AIX 5.1 or 5.2 or 5.3)
+ AC_DEFINE([AIX5_LIBC], 1, [Define to 1 if you're using AIX 5.1 or 5.2 or 5.3])
+@@ -762,7 +779,7 @@ case "${GLIBC_VERSION}" in
+
+ *)
+ AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
+- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.13])
++ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.14])
+ AC_MSG_ERROR([or AIX 5.1 or 5.2 or 5.3 GLIBC_VERSION])
+ AC_MSG_ERROR([or Darwin libc])
+ ;;
+--- valgrind/config.h.in.jj 2010-10-20 22:20:49.000000000 +0200
++++ valgrind/config.h.in 2010-11-05 17:08:33.863454886 +0100
+@@ -33,6 +33,9 @@
+ /* Define to 1 if you're using glibc 2.13.x */
+ #undef GLIBC_2_13
+
++/* Define to 1 if you're using glibc 2.14.x */
++#undef GLIBC_2_14
++
+ /* Define to 1 if you're using glibc 2.2.x */
+ #undef GLIBC_2_2
+
+--- valgrind/configure.jj 2010-10-21 03:16:18.000000000 +0200
++++ valgrind/configure 2010-11-05 17:09:39.163455396 +0100
+@@ -6367,6 +6389,18 @@ $as_echo "#define GLIBC_2_13 1" >>confde
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
++ 2.14)
++ echo "$as_me:$LINENO: result: 2.14 family" >&5
++echo "${ECHO_T}2.14 family" >&6
++
++cat >>confdefs.h <<\_ACEOF
++#define GLIBC_2_14 1
++_ACEOF
++
++ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++ ;;
+ aix5)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: AIX 5.1 or 5.2 or 5.3" >&5
+ $as_echo "AIX 5.1 or 5.2 or 5.3" >&6; }
+@@ -6387,7 +6421,7 @@ $as_echo "#define DARWIN_LIBC 1" >>confd
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported version ${GLIBC_VERSION}" >&5
+ $as_echo "unsupported version ${GLIBC_VERSION}" >&6; }
+- as_fn_error "Valgrind requires glibc version 2.2 - 2.13" "$LINENO" 5
++ as_fn_error "Valgrind requires glibc version 2.2 - 2.14" "$LINENO" 5
+ as_fn_error "or AIX 5.1 or 5.2 or 5.3 GLIBC_VERSION" "$LINENO" 5
+ as_fn_error "or Darwin libc" "$LINENO" 5
+ ;;