summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--community/ejabberd/PKGBUILD12
-rw-r--r--community/hostapd/PKGBUILD15
-rwxr-xr-xcommunity/mathomatic/PKGBUILD4
-rw-r--r--community/qtcreator/PKGBUILD72
-rw-r--r--community/tracker/PKGBUILD13
-rw-r--r--core/gcc/PKGBUILD22
-rw-r--r--core/glib2/PKGBUILD17
-rw-r--r--extra/boost/PKGBUILD29
-rw-r--r--extra/gtk3/PKGBUILD17
-rw-r--r--extra/pidgin/PKGBUILD14
-rw-r--r--extra/qt/PKGBUILD13
-rw-r--r--extra/qt/qtbug-16292.patch62
-rw-r--r--libre/mesa-demos-libre/LICENSE82
-rw-r--r--libre/mesa-demos-libre/PKGBUILD46
-rwxr-xr-xlibre/mesa-demos-libre/mesa-demos-libre.patch1192
-rw-r--r--multilib-testing/binutils-multilib/PKGBUILD75
-rw-r--r--multilib-testing/binutils-multilib/binutils.install17
-rw-r--r--multilib-testing/gcc-multilib/PKGBUILD8
-rw-r--r--multilib-testing/lib32-glibc/PKGBUILD133
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch42
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch13
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch11
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.13-futex.patch31
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch132
-rw-r--r--multilib-testing/lib32-glibc/glibc-__i686.patch13
-rw-r--r--multilib-testing/lib32-glibc/lib32-glibc.conf1
-rw-r--r--multilib/gcc-multilib/PKGBUILD27
-rw-r--r--staging/kdepim-runtime/PKGBUILD32
-rw-r--r--staging/kdepim-runtime/kdepim-runtime.install12
-rw-r--r--staging/kdepim/PKGBUILD253
-rw-r--r--staging/kdepim/kdepim-kleopatra.install12
-rw-r--r--staging/kdepim/kdepim-kmail.install12
-rw-r--r--staging/kdepim/kdepim-korganizer.install12
-rw-r--r--staging/kdepim/kdepim.install11
-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/pidgin/PKGBUILD14
-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
64 files changed, 3609 insertions, 133 deletions
diff --git a/community/ejabberd/PKGBUILD b/community/ejabberd/PKGBUILD
index eada33e78..beb61f679 100644
--- a/community/ejabberd/PKGBUILD
+++ b/community/ejabberd/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 44013 2011-04-01 16:47:17Z spupykin $
+# $Id: PKGBUILD 48921 2011-06-07 16:36:53Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Jeff 'codemac' Mickey <jeff@archlinux.org>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgname=ejabberd
-pkgver=2.1.6
-pkgrel=2
+pkgver=2.1.8
+pkgrel=1
pkgdesc="An erlang jabber server"
arch=(i686 x86_64)
url="http://www.ejabberd.im/"
@@ -18,7 +18,7 @@ install=ejabberd.install
source=(http://www.process-one.net/downloads/ejabberd/${pkgver/_/-}/ejabberd-${pkgver}.tar.gz \
ejabberd \
ejabberd.logrotate)
-md5sums=('f5a41edee2204c414150075331ced506'
+md5sums=('d7dae7e5a7986c5ad71beac2798cc406'
'd2ed73bc83b7f0e423a3fd7fdf1b43d6'
'f97c8a96160f30e0aecc9526c12e6606')
@@ -28,6 +28,10 @@ build() {
sed -i "s|EJABBERDDIR = \$(DESTDIR)@prefix@/var/lib/ejabberd|EJABBERDDIR = \$(DESTDIR)@prefix@/usr/lib/ejabberd|g" ./Makefile.in
[ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-pam --enable-odbc
make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}/src
make DESTDIR=${pkgdir} install
install -D -m 0755 ${srcdir}/ejabberd ${pkgdir}/etc/rc.d/ejabberd
diff --git a/community/hostapd/PKGBUILD b/community/hostapd/PKGBUILD
index 32419b099..507b7c3f7 100644
--- a/community/hostapd/PKGBUILD
+++ b/community/hostapd/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 48326 2011-05-31 10:29:12Z spupykin $
+# $Id: PKGBUILD 48888 2011-06-07 11:05:59Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
_madwifiver=0.9.4.4133
pkgname=hostapd
pkgver=0.7.3
-pkgrel=4
+pkgrel=5
pkgdesc="daemon for wireless software access points"
arch=('i686' 'x86_64')
url="http://hostap.epitest.fi/hostapd/"
@@ -14,7 +14,16 @@ makedepends=('svn')
provides=('hostapd')
conflicts=('hostapd')
backup=('etc/hostapd/hostapd.conf'
- 'etc/conf.d/hostapd')
+ 'etc/conf.d/hostapd'
+ 'etc/hostapd/hlr_auc_gw.milenage_db'
+ 'etc/hostapd/hostapd.accept'
+ 'etc/hostapd/hostapd.deny'
+ 'etc/hostapd/hostapd.eap_user'
+ 'etc/hostapd/hostapd.radius_clients'
+ 'etc/hostapd/hostapd.sim_db'
+ 'etc/hostapd/hostapd.vlan'
+ 'etc/hostapd/hostapd.wpa_psk'
+ 'etc/hostapd/wired.conf')
install=hostapd.install
source=(http://hostap.epitest.fi/releases/$pkgname-$pkgver.tar.gz
ftp://ftp.archlinux.org/other/madwifi/madwifi-${_madwifiver}.tar.bz2
diff --git a/community/mathomatic/PKGBUILD b/community/mathomatic/PKGBUILD
index 159de13ba..527e8f95c 100755
--- a/community/mathomatic/PKGBUILD
+++ b/community/mathomatic/PKGBUILD
@@ -3,7 +3,7 @@
# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
pkgname=mathomatic
-pkgver=15.5.3
+pkgver=15.6.1
pkgrel=1
pkgdesc="General purpose Computer Algebra System written in C"
arch=('i686' 'x86_64')
@@ -15,7 +15,7 @@ optdepends=('python2: for running /usr/share/doc/mathomatic/factorial/factorial'
'bash: for running a test script'
'gnuplot: for plotting')
source=(http://mathomatic.org/$pkgname-$pkgver.tar.bz2)
-md5sums=('661efbc2482acb343db521ea69a4a088')
+md5sums=('78d5eec8b64cbb3b00162f616f6a477c')
build() {
cd "$srcdir"/$pkgname-$pkgver
diff --git a/community/qtcreator/PKGBUILD b/community/qtcreator/PKGBUILD
index b22882fe9..8428d9f3e 100644
--- a/community/qtcreator/PKGBUILD
+++ b/community/qtcreator/PKGBUILD
@@ -1,29 +1,32 @@
-# $Id: PKGBUILD 43503 2011-03-26 23:39:42Z andrea $
+# $Id: PKGBUILD 48916 2011-06-07 16:02:27Z svenstaro $
# Maintainer: Imanol Celaya <ornitorrincos@archlinux-es.org>
+# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
# Contributor: Dan Vratil <progdan@progdansoft.com>
# Contributor: thotypous <matiasΘarchlinux-br·org>
# Contributor: delor <bartekpiech gmail com>
pkgbase=qtcreator
-pkgname=('qtcreator' 'qtcreator-todo-plugin' 'qtcreator-artisticstyle-plugin')
-pkgver=2.1.0
-pkgrel=3
+# artisticstyle plugin does currently not support qtcreator 2.2.0
+#pkgname=('qtcreator' 'qtcreator-todo-plugin' 'qtcreator-artisticstyle-plugin')
+pkgname=('qtcreator' 'qtcreator-todo-plugin')
+pkgver=2.2.0
+pkgrel=1
pkgdesc='Lightweight, cross-platform integrated development environment'
arch=('i686' 'x86_64')
url='http://qt.nokia.com/products/developer-tools'
license=('LGPL')
-depends=('qt>=4.7.2')
-makedepends=('git' 'qt-private-headers')
+depends=('qt>=4.7.3')
+makedepends=('git' 'qt-private-headers>=4.7.3')
options=('docs')
-source=("http://get.qt.nokia.com/qtcreator/qt-creator-${pkgver}-src.zip"
+source=("http://get.qt.nokia.com/qtcreator/qt-creator-${pkgver}-src.tar.gz"
'http://download.berlios.de/astyleplugin/ArtisticStylePlugin-0.6-src.zip'
- "ftp://ftp.archlinux.org/other/community/${pkgbase}/qt-creator-todo-plugin-git20110323.tar.bz2"
+ "https://gitorious.org/qt-creator-todo-plugin/qt-creator-todo-plugin/archive-tarball/88f8fc50"
'qtcreator.desktop')
-md5sums=('a6e48b4347314fb2a92b77f40b4fc9a5'
- '4dab1bb07ba5c39ae4c975a333d32ec1'
- '3b0f89d7a1e7dd19208998a2ba84abe1'
- '2c3ffbd66845b37be9804f2966815a10')
+md5sums=('4e02382db7b850f3a3b20c6a8707269e'
+ '4dab1bb07ba5c39ae4c975a333d32ec1'
+ '734a6f375e595de796f9802087845dfe'
+ '2c3ffbd66845b37be9804f2966815a10')
#_gitroot_todo="git://gitorious.org/qt-creator-todo-plugin/qt-creator-todo-plugin.git"
@@ -33,26 +36,27 @@ build() {
cd build
qmake ${srcdir}/qt-creator-${pkgver}-src/qtcreator.pro
- make
+ make --quiet
# Building TODO plugin
msg "Starting TODO plugin build...."
- cd $srcdir/qt-creator-todo-plugin
- sed -i "s|QTC_BUILD_DIR = /opt/qtcreator-2.0.92|QTC_BUILD_DIR = ${srcdir}/build|g" todoplugin.pro
- sed -i "s|QTC_SOURCE_DIR = /home/vass/qt-creator-2.1.0-beta1-src|QTC_SOURCE_DIR = $srcdir/qt-creator-${pkgver}-src/|g" todoplugin.pro
+ cd $srcdir/qt-creator-todo-plugin-qt-creator-todo-plugin
+ sed -i "s|QTC_BUILD_DIR = .*|QTC_BUILD_DIR = ${srcdir}/build|g" todoplugin.pro
+ sed -i "s|QTC_SOURCE_DIR = .*|QTC_SOURCE_DIR = $srcdir/qt-creator-${pkgver}-src/|g" todoplugin.pro
sed -i "s|\"2.0.92\"|\"${pkgver}\"|g" todo.pluginspec
qmake
make
- msg "Starting ArtisticStyle plugin build...."
- cd $srcdir/ArtisticStylePlugin-0.6
- qmake QTC_BUILD=$srcdir/build QTC_SOURCE=$srcdir/qt-creator-${pkgver}-src -config release
- make
+# msg "Starting ArtisticStyle plugin build...."
+# cd $srcdir/ArtisticStylePlugin-0.6
+# qmake QTC_BUILD=$srcdir/build QTC_SOURCE=$srcdir/qt-creator-${pkgver}-src -config release
+# make
}
package_qtcreator() {
optdepends=('qt-doc: for the integrated Qt documentation'
'gdb: for the debugger'
+ 'cmake: for cmake project suppport'
'openssh-askpass: for ssh support'
'git: for git support'
'mercurial: for mercurial support')
@@ -69,23 +73,27 @@ package_qtcreator() {
package_qtcreator-todo-plugin() {
license=('BSD')
- depends=('qtcreator=2.1.0')
+ depends=('qtcreator=2.2.0')
pkgdesc='TODO plugin for QtCreator'
- url='http://gitorious.org/qt-creator-todo-plugin'
+ url='http://gitorious.org/qt-creator-tod
+ install -Dm644 ${srcdir}/qtcreator.desktop \
+ ${pkgdir}/usr/share/applications/qtcreator.desktop
+ install -Dm644 ${srcdir}/qt-creator-${pkgver}-src/LGPL_EXCEPTION.TXT \
+ o-plugin'
- cd $srcdir/qt-creator-todo-plugin
+ cd $srcdir/qt-creator-todo-plugin-qt-creator-todo-plugin
make INSTALL_ROOT=$pkgdir/usr/ install
install -Dm644 LICENSE.BSD \
$pkgdir/usr/share/licenses/${pkgname}/LICENSE
}
-package_qtcreator-artisticstyle-plugin() {
- license=('GPL3' 'LGPL')
- depends=('qtcreator=2.1.0')
- pkgdesc='ArtisticStyle plugin for QtCreator'
- url='http://astyleplugin.berlios.de/index.php'
-
- cd $srcdir/ArtisticStylePlugin-0.6
- make INSTALL_ROOT=$pkgdir/usr/ install
-}
+#package_qtcreator-artisticstyle-plugin() {
+# license=('GPL3' 'LGPL')
+# depends=('qtcreator=2.2.0')
+# pkgdesc='ArtisticStyle plugin for QtCreator'
+# url='http://astyleplugin.berlios.de/index.php'
+#
+# cd $srcdir/ArtisticStylePlugin-0.6
+# make INSTALL_ROOT=$pkgdir/usr/ install
+#}
diff --git a/community/tracker/PKGBUILD b/community/tracker/PKGBUILD
index f6ec9331b..cee1f67cd 100644
--- a/community/tracker/PKGBUILD
+++ b/community/tracker/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 48646 2011-06-03 17:05:43Z stephane $
+# $Id: PKGBUILD 48893 2011-06-07 11:06:49Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: Alexander Fehr <pizzapunk gmail com>
pkgname=tracker
-pkgver=0.10.15
-pkgrel=2
+pkgver=0.10.16
+pkgrel=1
pkgdesc="Powerful object database, tag/metadata database, search tool and indexer"
arch=('i686' 'x86_64')
url="http://www.gnome.org/projects/tracker/"
@@ -25,7 +25,7 @@ conflicts=('libtracker')
provides=("libtracker")
install=tracker.install
source=(http://ftp.gnome.org/pub/GNOME/sources/tracker/0.10/tracker-$pkgver.tar.bz2)
-md5sums=('c948ef3988b08e81cad3ff980b17a0fd')
+md5sums=('5be2bdb5ee20d3e9a15c6e6649a733f7')
build() {
cd "$srcdir/$pkgname-$pkgver"
@@ -38,9 +38,8 @@ build() {
done
./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/$pkgname \
- --enable-video-extractor=gstreamer --disable-unac --disable-hal \
- --disable-devkit-power --disable-miner-evolution
- touch docs/manpages/tracker-search-bar.1
+ --enable-video-extractor=gstreamer --disable-hal \
+ --disable-miner-evolution
make
}
diff --git a/core/gcc/PKGBUILD b/core/gcc/PKGBUILD
index fb8985344..e7a51396a 100644
--- a/core/gcc/PKGBUILD
+++ b/core/gcc/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 123891 2011-05-14 08:26:23Z allan $
+# $Id: PKGBUILD 126413 2011-06-05 07:20:02Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
@@ -6,8 +6,8 @@
pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go')
pkgver=4.6.0
-pkgrel=5
-_snapshot=4.6-20110513
+pkgrel=6
+_snapshot=4.6-20110603
_libstdcppmanver=20110201 # Note: check source directory name when updating this
pkgdesc="The GNU Compiler Collection"
arch=('i686' 'x86_64')
@@ -15,18 +15,12 @@ license=('GPL' 'LGPL' 'FDL' 'custom')
url="http://gcc.gnu.org"
makedepends=('binutils>=2.21' 'libmpc' 'cloog' 'ppl' 'gcc-ada' 'dejagnu')
options=('!libtool' '!emptydirs')
-source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc,ada,go,testsuite}-${pkgver}.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,ada,go,testsuite}-${_snapshot}.tar.bz2
+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
ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
gcc_pure64.patch
gcc-hash-style-both.patch)
-md5sums=('2be769db16ac02f30fb62423b4c50145'
- 'a310d230945f4b3093dd3ca72839c649'
- '361a10c5a5545c80fd271b18036dd00c'
- 'f7db2f6ed34398361de62cb6b8eb53d2'
- '9b69c1d8874e8496c1965ee3e32eaa6d'
- '248e53b461078bf1c89528fb8e4ba051'
- 'e15a01b0d02ff12e975e4c2649e71e55'
+md5sums=('c97d52b2b4e6c8c5cf665ae3eb9e8e49'
'1e9fd2eaf0ee47ea64e82c48998f1999'
'4030ee1c08dd1e843c0225b772360e76'
'4df25b623799b148a0703eaeec8fdf3f')
@@ -89,7 +83,7 @@ package_gcc-libs()
{
pkgdesc="Runtime libraries shipped by GCC"
groups=('base')
- depends=('glibc>=2.11.1-2')
+ depends=('glibc>=2.13')
install=gcc-libs.install
cd gcc-build
@@ -118,7 +112,7 @@ package_gcc-libs()
package_gcc()
{
pkgdesc="The GNU Compiler Collection - C and C++ frontends"
- depends=('binutils>=2.20.1' 'libmpc>=0.8.1-2' 'cloog' 'ppl')
+ depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.21' 'libmpc' 'cloog' 'ppl')
groups=('base-devel')
install=gcc.install
diff --git a/core/glib2/PKGBUILD b/core/glib2/PKGBUILD
index 24bd5dfe2..93729d3a3 100644
--- a/core/glib2/PKGBUILD
+++ b/core/glib2/PKGBUILD
@@ -1,20 +1,21 @@
-# $Id: PKGBUILD 124444 2011-05-21 07:53:58Z ibiru $
+# $Id: PKGBUILD 126555 2011-06-06 09:24:36Z ibiru $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=glib2
-pkgver=2.28.7
+pkgver=2.28.8
pkgrel=1
pkgdesc="Common C routines used by GTK+ and other libs"
url="http://www.gtk.org/"
arch=(i686 x86_64)
license=('LGPL')
-depends=('pcre>=8.02')
+depends=('pcre>=8.12')
makedepends=('pkgconfig' 'python2')
+checkdepends=('pygobject' 'dbus-python')
options=('!libtool' '!docs')
-source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.28/glib-${pkgver}.tar.bz2
+source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.28/glib-${pkgver}.tar.xz
glib2.sh
glib2.csh)
-sha256sums=('0e1b3816a8934371d4ea2313dfbe25d10d16c950f8d02e0a7879ae10d91b1631'
+sha256sums=('4d7ca95dbde8e8f60ab428c765b0dbb8a44be9eb9316491803ce5ee7b4748353'
'9456872cdedcc639fb679448d74b85b0facf81033e27157d2861b991823b5a2a'
'8d5626ffa361304ad3696493c0ef041d0ab10c857f6ef32116b3e2878ecf89e3')
@@ -39,3 +40,9 @@ package() {
chmod -x "${_i}"
done
}
+
+check() {
+ cd "${srcdir}/glib-${pkgver}"
+ sed -i 's|!/usr/bin/env python|!/usr/bin/env python2|' gio/tests/gdbus-testserver.py
+ make -k check || true
+}
diff --git a/extra/boost/PKGBUILD b/extra/boost/PKGBUILD
index 9329f188a..c79772354 100644
--- a/extra/boost/PKGBUILD
+++ b/extra/boost/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 126149 2011-06-01 20:01:54Z ibiru $
+# $Id: PKGBUILD 126799 2011-06-07 11:40:27Z ibiru $
# Maintainer: kevin <kevin@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Kritoke <kritoke@gamebox.net>
@@ -8,7 +8,7 @@ pkgbase=boost
pkgname=('boost-libs' 'boost')
pkgver=1.46.1
_boostver=${pkgver//./_}
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64')
url="http://www.boost.org/"
makedepends=('icu' 'python' 'python2' 'bzip2' 'zlib' 'openmpi')
@@ -39,11 +39,19 @@ build() {
install -d "${_stagedir}"/usr/bin
install ${_bindir}/bjam "${_stagedir}"/usr/bin/bjam
- # build bcp
- cd "${srcdir}/${pkgbase}_${_boostver}/tools/bcp"
- ../build/v2/engine/src/${_bindir}/bjam --toolset=gcc
- install -m755 "${srcdir}/${pkgbase}_${_boostver}/dist/bin/bcp" \
- ${_stagedir}/usr/bin/bcp
+ # build tools
+ cd "${srcdir}/${pkgbase}_${_boostver}/tools/"
+ "${_stagedir}"/usr/bin/bjam --toolset=gcc
+
+ # copy the tools
+ cd "${srcdir}/${pkgbase}_${_boostver}/dist/bin"
+ for i in *;do
+ install -m755 "${i}" "${_stagedir}/usr/bin/${i}"
+ done
+
+ #boostbook needed by quickbook
+ cd "${srcdir}/${pkgbase}_${_boostver}/dist/"
+ cp -r share "${_stagedir}"
# build libs
cd "${srcdir}/${pkgbase}_${_boostver}"
@@ -59,7 +67,7 @@ build() {
# --layout=system no longer adds the -mt suffix for multi-threaded libs.
# install to ${_stagedir} in preparation for split packaging
- ./tools/build/v2/engine/src/${_bindir}/bjam \
+ "${_stagedir}"/usr/bin/bjam \
release debug-symbols=off threading=multi \
runtime-link=shared link=shared,static \
cflags=-fno-strict-aliasing \
@@ -82,7 +90,7 @@ package_boost() {
optdepends=('python: for python bindings'
'python2: for python2 bindings')
- install -d "${pkgdir}"/usr/{include,lib}
+ install -d "${pkgdir}"/usr/{include,lib,share}
# headers/source files
cp -r "${_stagedir}"/include/ "${pkgdir}"/usr/
@@ -92,6 +100,9 @@ package_boost() {
# utilities (bjam, bcp, pyste)
cp -r "${_stagedir}"/usr/* "${pkgdir}"/usr/
+ #boostbook
+ cp -r "${_stagedir}"/share/* "${pkgdir}"/usr/share
+
# license
install -D -m644 "${srcdir}/${pkgbase}_${_boostver}/LICENSE_1_0.txt" \
"${pkgdir}"/usr/share/licenses/boost/LICENSE_1_0.txt
diff --git a/extra/gtk3/PKGBUILD b/extra/gtk3/PKGBUILD
index 4cff80b52..bd05b7cdd 100644
--- a/extra/gtk3/PKGBUILD
+++ b/extra/gtk3/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 125375 2011-05-26 12:54:23Z ibiru $
+# $Id: PKGBUILD 126728 2011-06-06 21:19:26Z ibiru $
# Maintainer: Ionut Biru <ibiru@archlinux.org>
pkgname=gtk3
-pkgver=3.0.10
-pkgrel=2
+pkgver=3.0.11
+pkgrel=1
pkgdesc="The GTK+ Toolkit (v3)"
arch=('i686' 'x86_64')
url="http://www.gtk.org/"
@@ -13,16 +13,13 @@ makedepends=('gobject-introspection')
options=('!libtool' '!docs')
backup=(etc/gtk-3.0/settings.ini)
license=('LGPL')
-source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/3.0/gtk+-${pkgver}.tar.bz2
- settings.ini
- only_draw_resize_grip_if_its_window_exists.patch)
-sha256sums=('a217ed31aed9843810eabb241239e0f2c5ca0e14bd91687cf4180b3e346abc30'
- 'c214d3dcdcadda3d642112287524ab3e526ad592b70895c9f3e3733c23701621'
- 'fa2bd8085cae6cdb4f3b8baae11d3c0b38afec2eb4503f5bacabf87aee15313a')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/3.0/gtk+-${pkgver}.tar.xz
+ settings.ini)
+sha256sums=('e2e38b316c4657df0cf376c3b6aad63158a9068c557ad41033a677f29967001b'
+ 'c214d3dcdcadda3d642112287524ab3e526ad592b70895c9f3e3733c23701621')
build() {
cd "${srcdir}/gtk+-${pkgver}"
- patch -Np1 -i "${srcdir}/only_draw_resize_grip_if_its_window_exists.patch"
CXX=/bin/false ./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
diff --git a/extra/pidgin/PKGBUILD b/extra/pidgin/PKGBUILD
index 05883a1d8..d7930f9f7 100644
--- a/extra/pidgin/PKGBUILD
+++ b/extra/pidgin/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 124929 2011-05-25 09:33:46Z foutrelis $
+# $Id: PKGBUILD 126832 2011-06-07 15:43:55Z foutrelis $
# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
@@ -6,8 +6,8 @@
# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
pkgname=('pidgin' 'libpurple' 'finch')
-pkgver=2.7.11
-pkgrel=5
+pkgver=2.8.0
+pkgrel=1
arch=('i686' 'x86_64')
url="http://pidgin.im/"
license=('GPL')
@@ -17,19 +17,15 @@ makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'libsm'
'networkmanager')
options=('!libtool')
source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
- nm09-pidgin.patch
nm09-more.patch)
-md5sums=('07c2a2535b4d7436b5ec7685fe063fec'
- '744a21b4dbaf949dba7cd3b75b12b4fe'
+md5sums=('d1656c443a5d91f4aa0d95915f1f50c3'
'a673659d86c7a65aa710f7c8c7feda82')
build() {
cd "$srcdir/$pkgname-$pkgver"
- # Update for NetworkManager 0.9 connection states
- # (http://developer.pidgin.im/ticket/13505)
+ # Further fixes for NetworkManager 0.9
# (http://developer.pidgin.im/ticket/13859)
- patch -Np1 -i "$srcdir/nm09-pidgin.patch"
patch -Np1 -i "$srcdir/nm09-more.patch"
# Use Python 2
diff --git a/extra/qt/PKGBUILD b/extra/qt/PKGBUILD
index 1bec2cbf5..89e96034f 100644
--- a/extra/qt/PKGBUILD
+++ b/extra/qt/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 122539 2011-05-04 13:21:18Z andrea $
+# $Id: PKGBUILD 125344 2011-05-26 00:12:04Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgbase=qt
pkgname=('qt' 'qt-private-headers')
pkgver=4.7.3
-pkgrel=1
+pkgrel=2
arch=('i686' 'x86_64')
url='http://qt.nokia.com/'
license=('GPL3' 'LGPL')
@@ -17,12 +17,14 @@ options=('!libtool')
_pkgfqn="qt-everywhere-opensource-src-${pkgver}"
source=("ftp://ftp.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz"
'assistant.desktop' 'designer.desktop' 'linguist.desktop'
- 'qtconfig.desktop')
+ 'qtconfig.desktop'
+ 'qtbug-16292.patch')
md5sums=('49b96eefb1224cc529af6fe5608654fe'
'fc211414130ab2764132e7370f8e5caa'
'85179f5e0437514f8639957e1d8baf62'
'f11852b97583610f3dbb669ebc3e21bc'
- '6b771c8a81dd90b45e8a79afa0e5bbfd')
+ '6b771c8a81dd90b45e8a79afa0e5bbfd'
+ 'dc7ed8c2e8c68a175f7f05a34dccc937')
build() {
unset QMAKESPEC
@@ -31,6 +33,9 @@ build() {
export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
cd $srcdir/$_pkgfqn
+
+ # Already fixed upstream
+ patch -p1 -i "${srcdir}"/qtbug-16292.patch
sed -i "s|-O2|$CXXFLAGS|" mkspecs/common/g++.conf
sed -i "/^QMAKE_RPATH/s| -Wl,-rpath,||g" mkspecs/common/g++.conf
diff --git a/extra/qt/qtbug-16292.patch b/extra/qt/qtbug-16292.patch
new file mode 100644
index 000000000..9728e28f5
--- /dev/null
+++ b/extra/qt/qtbug-16292.patch
@@ -0,0 +1,62 @@
+From e340844bd614add505a39a3a6b915632476f6305 Mon Sep 17 00:00:00 2001
+From: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
+Date: Tue, 15 Feb 2011 11:19:26 +0100
+Subject: [PATCH] Fix crash in KPackageKit
+
+QTreeViewPrivate::itemHeight() may refer to an invalid QModelIndex
+after calling QTreeView::indexRowSizeHint().
+
+Same thing inside QTreeView::indexRowSizeHint(), since
+QHeaderView::count() will call
+QAbstractItemViewPrivate::executePostedLayout() which may invalidate
+all the QModelIndex.
+
+Reviewed-by: Olivier
+Task-number: QTBUG-16292
+---
+ src/gui/itemviews/qtreeview.cpp | 11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
+index f1f3236..c0573bb 100644
+--- a/src/gui/itemviews/qtreeview.cpp
++++ b/src/gui/itemviews/qtreeview.cpp
+@@ -2753,6 +2753,7 @@ int QTreeView::indexRowSizeHint(const QModelIndex &index) const
+
+ int start = -1;
+ int end = -1;
++ int indexRow = index.row();
+ int count = d->header->count();
+ bool emptyHeader = (count == 0);
+ QModelIndex parent = index.parent();
+@@ -2789,7 +2790,7 @@ int QTreeView::indexRowSizeHint(const QModelIndex &index) const
+ int logicalColumn = emptyHeader ? column : d->header->logicalIndex(column);
+ if (d->header->isSectionHidden(logicalColumn))
+ continue;
+- QModelIndex idx = d->model->index(index.row(), logicalColumn, parent);
++ QModelIndex idx = d->model->index(indexRow, logicalColumn, parent);
+ if (idx.isValid()) {
+ QWidget *editor = d->editorForIndex(idx).editor;
+ if (editor && d->persistent.contains(editor)) {
+@@ -3224,14 +3225,14 @@ int QTreeViewPrivate::itemHeight(int item) const
+ if (viewItems.isEmpty())
+ return 0;
+ const QModelIndex &index = viewItems.at(item).index;
++ if (!index.isValid())
++ return 0;
+ int height = viewItems.at(item).height;
+- if (height <= 0 && index.isValid()) {
++ if (height <= 0) {
+ height = q_func()->indexRowSizeHint(index);
+ viewItems[item].height = height;
+ }
+- if (!index.isValid() || height < 0)
+- return 0;
+- return height;
++ return qMax(height, 0);
+ }
+
+
+--
+1.6.1
+
diff --git a/libre/mesa-demos-libre/LICENSE b/libre/mesa-demos-libre/LICENSE
new file mode 100644
index 000000000..ae33d2709
--- /dev/null
+++ b/libre/mesa-demos-libre/LICENSE
@@ -0,0 +1,82 @@
+Disclaimer
+
+Mesa is a 3-D graphics library with an API which is very similar to
+that of OpenGL*
+To the extent that Mesa utilizes the OpenGL command syntax or state
+machine, it is being used with authorization from Silicon Graphics,
+Inc.(SGI). However, the author does not possess an OpenGL license
+from SGI, and makes no claim that Mesa is in any way a compatible
+replacement for OpenGL or associated with SGI. Those who want a
+licensed implementation of OpenGL should contact a licensed
+vendor.
+
+Please do not refer to the library as MesaGL (for legal
+reasons). It's just Mesa or The Mesa 3-D graphics
+library
+
+* OpenGL is a trademark of Silicon Graphics Incorporated.
+
+License / Copyright Information
+
+The Mesa distribution consists of several components. Different copyrights
+and licenses apply to different components. For example, GLUT is copyrighted
+by Mark Kilgard, some demo programs are copyrighted by SGI, some of the Mesa
+device drivers are copyrighted by their authors. See below for a list of
+Mesa's main components and the license for each.
+
+The core Mesa library is licensed according to the terms of the MIT license.
+This allows integration with the XFree86, Xorg and DRI projects.
+
+The default Mesa license is as follows:
+
+Copyright (C) 1999-2007 Brian Paul 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
+BRIAN PAUL 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.
+
+Attention, Contributors
+
+When contributing to the Mesa project you must agree to the licensing terms
+of the component to which you're contributing.
+The following section lists the primary components of the Mesa distribution
+and their respective licenses.
+
+
+Mesa Component Licenses
+
+Component Location Primary Author License
+----------------------------------------------------------------------------
+Main Mesa code src/mesa/ Brian Paul Mesa (MIT)
+
+Device drivers src/mesa/drivers/* See drivers See drivers
+
+Ext headers include/GL/glext.h SGI SGI Free B
+ include/GL/glxext.h
+
+GLUT src/glut/ Mark Kilgard Mark's copyright
+
+Mesa GLU library src/glu/mesa/ Brian Paul GNU-LGPL
+
+SGI GLU library src/glu/sgi/ SGI SGI Free B
+
+demo programs progs/demos/ various see source files
+
+X demos progs/xdemos/ Brian Paul see source files
+
+SGI demos progs/samples/ SGI SGI copyright
+
+RedBook demos progs/redbook/ SGI SGI copyright
diff --git a/libre/mesa-demos-libre/PKGBUILD b/libre/mesa-demos-libre/PKGBUILD
new file mode 100644
index 000000000..46f7a75e8
--- /dev/null
+++ b/libre/mesa-demos-libre/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id$
+# Maintainer: Joseph Yaworski <jy@dervormund.info>
+
+pkgname='mesa-demos-libre'
+pkgver=8.0.1
+pkgrel=1
+arch=(i686 x86_64)
+pkgdesc="Mesa demos and tools, libre"
+url="http://mesa3d.sourceforge.net"
+license=('custom')
+depends=('glew>=1.5.6')
+provides=("mesa-demos=$pkgver")
+replaces=('mesa-demos')
+conflicts=('mesa<7.9', 'mesa-demos')
+source=(http://repo.parabolagnulinux.org/other/$pkgname-$pkgver.tar.bz2
+ mesa-demos-libre.patch
+ LICENSE)
+
+mksource() {
+
+ wget ftp://ftp.freedesktop.org/pub/mesa/demos/${pkgver}/mesa-demos-${pkgver}.tar.bz2 \
+ -O - | tar xvf -
+
+ pushd mesa-demos-$pkgver
+ patch -Np1 -i ../mesa-demos-libre.patch
+ popd
+
+ tar cjf ${pkgname}-${pkgver}.tar.bz2 mesa-demos-${pkgver}/
+
+}
+
+build() {
+ cd "${srcdir}/mesa-demos-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/mesa-demos-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/mesa-demos"
+ install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa-demos/"
+}
+md5sums=('665a4ad12bff27ca2b655dd16554d36c'
+ '1858e95d40ac9e5e0b59753ce9e673e3'
+ '5c65a0fe315dd347e09b1f2826a1df5a')
diff --git a/libre/mesa-demos-libre/mesa-demos-libre.patch b/libre/mesa-demos-libre/mesa-demos-libre.patch
new file mode 100755
index 000000000..c5261f8e9
--- /dev/null
+++ b/libre/mesa-demos-libre/mesa-demos-libre.patch
@@ -0,0 +1,1192 @@
+diff -rauNp Desktop/mesa-demos-8.0.1//src/demos/Makefile.am mesa-demos-8.0.1//src/demos/Makefile.am
+--- Desktop/mesa-demos-8.0.1//src/demos/Makefile.am 2010-07-13 14:46:40.000000000 -0400
++++ mesa-demos-8.0.1/src/demos/Makefile.am 2011-06-04 15:34:18.000000000 -0400
+@@ -62,7 +62,6 @@ bin_PROGRAMS = \
+ morph3d \
+ multiarb \
+ paltex \
+- pointblast \
+ projtex \
+ ray \
+ readpix \
+@@ -71,7 +70,6 @@ bin_PROGRAMS = \
+ shadowtex \
+ singlebuffer \
+ spectex \
+- spriteblast \
+ stex3d \
+ teapot \
+ terrain \
+diff -rauNp Desktop/mesa-demos-8.0.1//src/demos/Makefile.in mesa-demos-8.0.1//src/demos/Makefile.in
+--- Desktop/mesa-demos-8.0.1//src/demos/Makefile.in 2010-07-13 14:53:23.000000000 -0400
++++ mesa-demos-8.0.1/src/demos/Makefile.in 2011-06-04 15:35:32.000000000 -0400
+@@ -73,11 +73,10 @@ host_triplet = @host@
+ @HAVE_GLUT_TRUE@ ipers$(EXEEXT) isosurf$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ lodbias$(EXEEXT) morph3d$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ multiarb$(EXEEXT) paltex$(EXEEXT) \
+-@HAVE_GLUT_TRUE@ pointblast$(EXEEXT) projtex$(EXEEXT) \
+-@HAVE_GLUT_TRUE@ ray$(EXEEXT) readpix$(EXEEXT) reflect$(EXEEXT) \
+-@HAVE_GLUT_TRUE@ renormal$(EXEEXT) shadowtex$(EXEEXT) \
+-@HAVE_GLUT_TRUE@ singlebuffer$(EXEEXT) spectex$(EXEEXT) \
+-@HAVE_GLUT_TRUE@ spriteblast$(EXEEXT) stex3d$(EXEEXT) \
++@HAVE_GLUT_TRUE@ projtex$(EXEEXT) ray$(EXEEXT) readpix$(EXEEXT) \
++@HAVE_GLUT_TRUE@ reflect$(EXEEXT) renormal$(EXEEXT) \
++@HAVE_GLUT_TRUE@ shadowtex$(EXEEXT) singlebuffer$(EXEEXT) \
++@HAVE_GLUT_TRUE@ spectex$(EXEEXT) stex3d$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ teapot$(EXEEXT) terrain$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ tessdemo$(EXEEXT) texcyl$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ texenv$(EXEEXT) textures$(EXEEXT) \
+@@ -188,9 +187,6 @@ multiarb_DEPENDENCIES = ../util/libutil.
+ paltex_SOURCES = paltex.c
+ paltex_OBJECTS = paltex.$(OBJEXT)
+ paltex_LDADD = $(LDADD)
+-pointblast_SOURCES = pointblast.c
+-pointblast_OBJECTS = pointblast.$(OBJEXT)
+-pointblast_LDADD = $(LDADD)
+ projtex_SOURCES = projtex.c
+ projtex_OBJECTS = projtex.$(OBJEXT)
+ projtex_DEPENDENCIES = ../util/libutil.la
+@@ -215,9 +211,6 @@ singlebuffer_LDADD = $(LDADD)
+ spectex_SOURCES = spectex.c
+ spectex_OBJECTS = spectex.$(OBJEXT)
+ spectex_LDADD = $(LDADD)
+-spriteblast_SOURCES = spriteblast.c
+-spriteblast_OBJECTS = spriteblast.$(OBJEXT)
+-spriteblast_LDADD = $(LDADD)
+ stex3d_SOURCES = stex3d.c
+ stex3d_OBJECTS = stex3d.$(OBJEXT)
+ stex3d_LDADD = $(LDADD)
+@@ -285,21 +278,20 @@ SOURCES = arbfplight.c arbfslight.c arbo
+ fbo_firecube.c fbotexture.c fire.c fogcoord.c fplight.c \
+ fslight.c gamma.c gearbox.c gears.c geartrain.c glinfo.c \
+ gloss.c gltestperf.c ipers.c isosurf.c lodbias.c morph3d.c \
+- multiarb.c paltex.c pointblast.c projtex.c ray.c readpix.c \
+- reflect.c renormal.c shadowtex.c singlebuffer.c spectex.c \
+- spriteblast.c stex3d.c teapot.c terrain.c tessdemo.c texcyl.c \
+- texenv.c textures.c trispd.c $(tunnel_SOURCES) tunnel2.c \
+- vao_demo.c winpos.c
++ multiarb.c paltex.c projtex.c ray.c readpix.c reflect.c \
++ renormal.c shadowtex.c singlebuffer.c spectex.c stex3d.c \
++ teapot.c terrain.c tessdemo.c texcyl.c texenv.c textures.c \
++ trispd.c $(tunnel_SOURCES) tunnel2.c vao_demo.c winpos.c
+ DIST_SOURCES = arbfplight.c arbfslight.c arbocclude.c bounce.c \
+ clearspd.c copypix.c cubemap.c dinoshade.c dissolve.c \
+ drawpix.c engine.c fbo_firecube.c fbotexture.c fire.c \
+ fogcoord.c fplight.c fslight.c gamma.c gearbox.c gears.c \
+ geartrain.c glinfo.c gloss.c gltestperf.c ipers.c isosurf.c \
+- lodbias.c morph3d.c multiarb.c paltex.c pointblast.c projtex.c \
+- ray.c readpix.c reflect.c renormal.c shadowtex.c \
+- singlebuffer.c spectex.c spriteblast.c stex3d.c teapot.c \
+- terrain.c tessdemo.c texcyl.c texenv.c textures.c trispd.c \
+- $(tunnel_SOURCES) tunnel2.c vao_demo.c winpos.c
++ lodbias.c morph3d.c multiarb.c paltex.c projtex.c ray.c \
++ readpix.c reflect.c renormal.c shadowtex.c singlebuffer.c \
++ spectex.c stex3d.c teapot.c terrain.c tessdemo.c texcyl.c \
++ texenv.c textures.c trispd.c $(tunnel_SOURCES) tunnel2.c \
++ vao_demo.c winpos.c
+ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+@@ -653,9 +645,6 @@ multiarb$(EXEEXT): $(multiarb_OBJECTS) $
+ paltex$(EXEEXT): $(paltex_OBJECTS) $(paltex_DEPENDENCIES)
+ @rm -f paltex$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(paltex_OBJECTS) $(paltex_LDADD) $(LIBS)
+-pointblast$(EXEEXT): $(pointblast_OBJECTS) $(pointblast_DEPENDENCIES)
+- @rm -f pointblast$(EXEEXT)
+- $(AM_V_CCLD)$(LINK) $(pointblast_OBJECTS) $(pointblast_LDADD) $(LIBS)
+ projtex$(EXEEXT): $(projtex_OBJECTS) $(projtex_DEPENDENCIES)
+ @rm -f projtex$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(projtex_OBJECTS) $(projtex_LDADD) $(LIBS)
+@@ -680,9 +669,6 @@ singlebuffer$(EXEEXT): $(singlebuffer_OB
+ spectex$(EXEEXT): $(spectex_OBJECTS) $(spectex_DEPENDENCIES)
+ @rm -f spectex$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(spectex_OBJECTS) $(spectex_LDADD) $(LIBS)
+-spriteblast$(EXEEXT): $(spriteblast_OBJECTS) $(spriteblast_DEPENDENCIES)
+- @rm -f spriteblast$(EXEEXT)
+- $(AM_V_CCLD)$(LINK) $(spriteblast_OBJECTS) $(spriteblast_LDADD) $(LIBS)
+ stex3d$(EXEEXT): $(stex3d_OBJECTS) $(stex3d_DEPENDENCIES)
+ @rm -f stex3d$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(stex3d_OBJECTS) $(stex3d_LDADD) $(LIBS)
+@@ -756,7 +742,6 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/morph3d.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multiarb.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paltex.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pointblast.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/projtex.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ray.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readpix.Po@am__quote@
+@@ -765,7 +750,6 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shadowtex.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/singlebuffer.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spectex.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spriteblast.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stex3d.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/teapot.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/terrain.Po@am__quote@
+diff -rauNp Desktop/mesa-demos-8.0.1//src/demos/pointblast.c mesa-demos-8.0.1//src/demos/pointblast.c
+--- Desktop/mesa-demos-8.0.1//src/demos/pointblast.c 2010-07-07 13:57:15.000000000 -0400
++++ mesa-demos-8.0.1/src/demos/pointblast.c 1969-12-31 19:00:00.000000000 -0500
+@@ -1,504 +0,0 @@
+-
+-/* Copyright (c) Mark J. Kilgard, 1997. */
+-
+-/* This program is freely distributable without licensing fees
+- and is provided without guarantee or warrantee expressed or
+- implied. This program is -not- in the public domain. */
+-
+-/* This example demonstrates how to render particle effects
+- with OpenGL. A cloud of pinkish/orange particles explodes with the
+- particles bouncing off the ground. When the EXT_point_parameters
+- is present , the particle size is attenuated based on eye distance. */
+-
+-
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <math.h> /* for cos(), sin(), and sqrt() */
+-#ifdef _WIN32
+-#include <windows.h>
+-#endif
+-#include <GL/glew.h>
+-#include <GL/glut.h>
+-
+-/* Some <math.h> files do not define M_PI... */
+-#ifndef M_PI
+-#define M_PI 3.14159265
+-#endif
+-
+-#if 0 /* For debugging. */
+-#undef GL_EXT_point_parameters
+-#endif
+-
+-static GLfloat angle = -150; /* in degrees */
+-static int spin = 0;
+-static int moving, begin;
+-static int newModel = 1;
+-static float theTime;
+-static int repeat = 1;
+-static int blend = 1;
+-int useMipmaps = 1;
+-int linearFiltering = 1;
+-
+-static GLfloat constant[3] = { 1/5.0, 0.0, 0.0 };
+-static GLfloat linear[3] = { 0.0, 1/5.0, 0.0 };
+-static GLfloat theQuad[3] = { 0.25, 0.0, 1/60.0 };
+-
+-#define MAX_POINTS 2000
+-
+-static int numPoints = 200;
+-
+-static GLfloat pointList[MAX_POINTS][3];
+-static GLfloat pointTime[MAX_POINTS];
+-static GLfloat pointVelocity[MAX_POINTS][2];
+-static GLfloat pointDirection[MAX_POINTS][2];
+-static int colorList[MAX_POINTS];
+-static int animate = 1, motion = 0;
+-
+-static GLfloat colorSet[][4] = {
+- /* Shades of red. */
+- { 0.7, 0.2, 0.4, 0.5 },
+- { 0.8, 0.0, 0.7, 0.5 },
+- { 1.0, 0.0, 0.0, 0.5 },
+- { 0.9, 0.3, 0.6, 0.5 },
+- { 1.0, 0.4, 0.0, 0.5 },
+- { 1.0, 0.0, 0.5, 0.5 },
+-};
+-
+-#define NUM_COLORS (sizeof(colorSet)/sizeof(colorSet[0]))
+-
+-#define DEAD (NUM_COLORS+1)
+-
+-
+-#if 0 /* drand48 might be better on Unix machines */
+-#define RANDOM_RANGE(lo, hi) ((lo) + (hi - lo) * drand48())
+-#else
+-static float float_rand(void) { return rand() / (float) RAND_MAX; }
+-#define RANDOM_RANGE(lo, hi) ((lo) + (hi - lo) * float_rand())
+-#endif
+-
+-#define MEAN_VELOCITY 3.0
+-#define GRAVITY 2.0
+-
+-/* Modeling units of ground extent in each X and Z direction. */
+-#define EDGE 12
+-
+-static void
+-makePointList(void)
+-{
+- float angle, velocity, direction;
+- int i;
+-
+- motion = 1;
+- for (i=0; i<numPoints; i++) {
+- pointList[i][0] = 0.0;
+- pointList[i][1] = 0.0;
+- pointList[i][2] = 0.0;
+- pointTime[i] = 0.0;
+- angle = (RANDOM_RANGE(60.0, 70.0)) * M_PI/180.0;
+- direction = RANDOM_RANGE(0.0, 360.0) * M_PI/180.0;
+- pointDirection[i][0] = cos(direction);
+- pointDirection[i][1] = sin(direction);
+- velocity = MEAN_VELOCITY + RANDOM_RANGE(-0.8, 1.0);
+- pointVelocity[i][0] = velocity * cos(angle);
+- pointVelocity[i][1] = velocity * sin(angle);
+- colorList[i] = rand() % NUM_COLORS;
+- }
+- theTime = 0.0;
+-}
+-
+-static void
+-updatePointList(void)
+-{
+- float distance;
+- int i;
+-
+- static double t0 = -1.;
+- double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
+- if (t0 < 0.0)
+- t0 = t;
+- dt = t - t0;
+- t0 = t;
+-
+- motion = 0;
+- for (i=0; i<numPoints; i++) {
+- distance = pointVelocity[i][0] * theTime;
+-
+- /* X and Z */
+- pointList[i][0] = pointDirection[i][0] * distance;
+- pointList[i][2] = pointDirection[i][1] * distance;
+-
+- /* Z */
+- pointList[i][1] =
+- (pointVelocity[i][1] - 0.5 * GRAVITY * pointTime[i])*pointTime[i];
+-
+- /* If we hit the ground, bounce the point upward again. */
+- if (pointList[i][1] <= 0.0) {
+- if (distance > EDGE) {
+- /* Particle has hit ground past the distance duration of
+- the particles. Mark particle as dead. */
+- colorList[i] = NUM_COLORS; /* Not moving. */
+- continue;
+- }
+-
+- pointVelocity[i][1] *= 0.8; /* 80% of previous up velocity. */
+- pointTime[i] = 0.0; /* Reset the particles sense of up time. */
+- }
+- motion = 1;
+- pointTime[i] += dt;
+- }
+- theTime += dt;
+- if (!motion && !spin) {
+- if (repeat) {
+- makePointList();
+- } else {
+- glutIdleFunc(NULL);
+- }
+- }
+-}
+-
+-static void
+-idle(void)
+-{
+- updatePointList();
+- if (spin) {
+- angle += 0.3;
+- newModel = 1;
+- }
+- glutPostRedisplay();
+-}
+-
+-static void
+-visible(int vis)
+-{
+- if (vis == GLUT_VISIBLE) {
+- if (animate && (motion || spin)) {
+- glutIdleFunc(idle);
+- }
+- } else {
+- glutIdleFunc(NULL);
+- }
+-}
+-
+-static void
+-recalcModelView(void)
+-{
+- glPopMatrix();
+- glPushMatrix();
+- glRotatef(angle, 0.0, 1.0, 0.0);
+- newModel = 0;
+-}
+-
+-static void
+-redraw(void)
+-{
+- int i;
+-
+- glDepthMask(GL_TRUE);
+- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+- if (newModel)
+- recalcModelView();
+-
+-
+- /* Draw the floor. */
+-/* glEnable(GL_TEXTURE_2D);*/
+- glColor3f(0.5, 1.0, 0.5);
+- glBegin(GL_QUADS);
+- glTexCoord2f(0.0, 0.0);
+- glVertex3f(-EDGE, -0.05, -EDGE);
+- glTexCoord2f(20.0, 0.0);
+- glVertex3f(EDGE, -0.05, -EDGE);
+- glTexCoord2f(20.0, 20.0);
+- glVertex3f(EDGE, -0.05, EDGE);
+- glTexCoord2f(0.0, 20.0);
+- glVertex3f(-EDGE, -0.05, EDGE);
+- glEnd();
+-
+- /* Allow particles to blend with each other. */
+- glDepthMask(GL_FALSE);
+-
+- if (blend)
+- glEnable(GL_BLEND);
+-
+- glDisable(GL_TEXTURE_2D);
+- glBegin(GL_POINTS);
+- for (i=0; i<numPoints; i++) {
+- /* Draw alive particles. */
+- if (colorList[i] != DEAD) {
+- glColor4fv(colorSet[colorList[i]]);
+- glVertex3fv(pointList[i]);
+- }
+- }
+- glEnd();
+-
+- glDisable(GL_BLEND);
+-
+- glutSwapBuffers();
+-}
+-
+-/* ARGSUSED2 */
+-static void
+-mouse(int button, int state, int x, int y)
+-{
+- /* Scene can be spun around Y axis using left
+- mouse button movement. */
+- if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) {
+- moving = 1;
+- begin = x;
+- }
+- if (button == GLUT_LEFT_BUTTON && state == GLUT_UP) {
+- moving = 0;
+- }
+-}
+-
+-/* ARGSUSED1 */
+-static void
+-mouseMotion(int x, int y)
+-{
+- if (moving) {
+- angle = angle + (x - begin);
+- begin = x;
+- newModel = 1;
+- glutPostRedisplay();
+- }
+-}
+-
+-static void
+-menu(int option)
+-{
+- switch (option) {
+- case 0:
+- makePointList();
+- break;
+-#ifdef GL_ARB_point_parameters
+- case 1:
+- glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, constant);
+- break;
+- case 2:
+- glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, linear);
+- break;
+- case 3:
+- glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, theQuad);
+- break;
+-#endif
+- case 4:
+- blend = 1;
+- break;
+- case 5:
+- blend = 0;
+- break;
+-#ifdef GL_ARB_point_parameters
+- case 6:
+- glPointParameterfARB(GL_POINT_FADE_THRESHOLD_SIZE_ARB, 1.0);
+- break;
+- case 7:
+- glPointParameterfARB(GL_POINT_FADE_THRESHOLD_SIZE_ARB, 10.0);
+- break;
+-#endif
+- case 8:
+- glEnable(GL_POINT_SMOOTH);
+- break;
+- case 9:
+- glDisable(GL_POINT_SMOOTH);
+- break;
+- case 10:
+- glPointSize(2.0);
+- break;
+- case 11:
+- glPointSize(4.0);
+- break;
+- case 12:
+- glPointSize(8.0);
+- break;
+- case 13:
+- spin = 1 - spin;
+- if (animate && (spin || motion)) {
+- glutIdleFunc(idle);
+- } else {
+- glutIdleFunc(NULL);
+- }
+- break;
+- case 14:
+- numPoints = 200;
+- break;
+- case 15:
+- numPoints = 500;
+- break;
+- case 16:
+- numPoints = 1000;
+- break;
+- case 17:
+- numPoints = 2000;
+- break;
+- case 666:
+- exit(0);
+- }
+- glutPostRedisplay();
+-}
+-
+-/* ARGSUSED1 */
+-static void
+-key(unsigned char c, int x, int y)
+-{
+- switch (c) {
+- case 13:
+- animate = 1 - animate; /* toggle. */
+- if (animate && (motion || spin)) {
+- glutIdleFunc(idle);
+- } else {
+- glutIdleFunc(NULL);
+- }
+- break;
+- case ' ':
+- animate = 1;
+- makePointList();
+- glutIdleFunc(idle);
+- break;
+- case 27:
+- exit(0);
+- }
+-}
+-
+-/* Nice floor texture tiling pattern. */
+-static char *circles[] = {
+- "....xxxx........",
+- "..xxxxxxxx......",
+- ".xxxxxxxxxx.....",
+- ".xxx....xxx.....",
+- "xxx......xxx....",
+- "xxx......xxx....",
+- "xxx......xxx....",
+- "xxx......xxx....",
+- ".xxx....xxx.....",
+- ".xxxxxxxxxx.....",
+- "..xxxxxxxx......",
+- "....xxxx........",
+- "................",
+- "................",
+- "................",
+- "................",
+-};
+-
+-static void
+-makeFloorTexture(void)
+-{
+- GLubyte floorTexture[16][16][3];
+- GLubyte *loc;
+- int s, t;
+-
+- /* Setup RGB image for the texture. */
+- loc = (GLubyte*) floorTexture;
+- for (t = 0; t < 16; t++) {
+- for (s = 0; s < 16; s++) {
+- if (circles[t][s] == 'x') {
+- /* Nice blue. */
+- loc[0] = 0x1f;
+- loc[1] = 0x1f;
+- loc[2] = 0x8f;
+- } else {
+- /* Light gray. */
+- loc[0] = 0xca;
+- loc[1] = 0xca;
+- loc[2] = 0xca;
+- }
+- loc += 3;
+- }
+- }
+-
+- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+-
+- if (useMipmaps) {
+- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+- GL_LINEAR_MIPMAP_LINEAR);
+- gluBuild2DMipmaps(GL_TEXTURE_2D, 3, 16, 16,
+- GL_RGB, GL_UNSIGNED_BYTE, floorTexture);
+- } else {
+- if (linearFiltering) {
+- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+- } else {
+- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+- }
+- glTexImage2D(GL_TEXTURE_2D, 0, 3, 16, 16, 0,
+- GL_RGB, GL_UNSIGNED_BYTE, floorTexture);
+- }
+-}
+-
+-int
+-main(int argc, char **argv)
+-{
+- int i;
+-
+- glutInitWindowSize(300, 300);
+- glutInit(&argc, argv);
+- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_MULTISAMPLE);
+-
+- for (i=1; i<argc; i++) {
+- if(!strcmp("-noms", argv[i])) {
+- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
+- printf("forcing no multisampling\n");
+- } else if(!strcmp("-nomipmaps", argv[i])) {
+- useMipmaps = 0;
+- } else if(!strcmp("-nearest", argv[i])) {
+- linearFiltering = 0;
+- }
+- }
+-
+- glutCreateWindow("point burst");
+- glewInit();
+- glutDisplayFunc(redraw);
+- glutMouseFunc(mouse);
+- glutMotionFunc(mouseMotion);
+- glutVisibilityFunc(visible);
+- glutKeyboardFunc(key);
+- glutCreateMenu(menu);
+- glutAddMenuEntry("Reset time", 0);
+- glutAddMenuEntry("Constant", 1);
+- glutAddMenuEntry("Linear", 2);
+- glutAddMenuEntry("Quadratic", 3);
+- glutAddMenuEntry("Blend on", 4);
+- glutAddMenuEntry("Blend off", 5);
+- glutAddMenuEntry("Threshold 1", 6);
+- glutAddMenuEntry("Threshold 10", 7);
+- glutAddMenuEntry("Point smooth on", 8);
+- glutAddMenuEntry("Point smooth off", 9);
+- glutAddMenuEntry("Point size 2", 10);
+- glutAddMenuEntry("Point size 4", 11);
+- glutAddMenuEntry("Point size 8", 12);
+- glutAddMenuEntry("Toggle spin", 13);
+- glutAddMenuEntry("200 points ", 14);
+- glutAddMenuEntry("500 points ", 15);
+- glutAddMenuEntry("1000 points ", 16);
+- glutAddMenuEntry("2000 points ", 17);
+- glutAddMenuEntry("Quit", 666);
+- glutAttachMenu(GLUT_RIGHT_BUTTON);
+-
+- if (!glutExtensionSupported("GL_ARB_point_parameters")) {
+- fprintf(stderr, "Sorry, GL_ARB_point_parameters is not supported.\n");
+- return -1;
+- }
+-
+- glShadeModel(GL_FLAT);
+- glEnable(GL_DEPTH_TEST);
+- glEnable(GL_POINT_SMOOTH);
+- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+- glPointSize(8.0);
+-#if GL_ARB_point_parameters
+- glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, theQuad);
+-#endif
+- glMatrixMode(GL_PROJECTION);
+- gluPerspective( /* field of view in degree */ 40.0,
+- /* aspect ratio */ 1.0,
+- /* Z near */ 0.5, /* Z far */ 40.0);
+- glMatrixMode(GL_MODELVIEW);
+- gluLookAt(0.0, 1.0, 8.0, /* eye location */
+- 0.0, 1.0, 0.0, /* center is at (0,0,0) */
+- 0.0, 1.0, 0.); /* up is in postivie Y direction */
+- glPushMatrix(); /* dummy push so we can pop on model
+- recalc */
+-
+- makePointList();
+- makeFloorTexture();
+-
+- glutMainLoop();
+- return 0; /* ANSI C requires main to return int. */
+-}
+diff -rauNp Desktop/mesa-demos-8.0.1//src/demos/spriteblast.c mesa-demos-8.0.1//src/demos/spriteblast.c
+--- Desktop/mesa-demos-8.0.1//src/demos/spriteblast.c 2010-07-07 13:57:15.000000000 -0400
++++ mesa-demos-8.0.1/src/demos/spriteblast.c 1969-12-31 19:00:00.000000000 -0500
+@@ -1,555 +0,0 @@
+-
+-/* Copyright (c) Mark J. Kilgard, 1997. */
+-
+-/* This program is freely distributable without licensing fees
+- and is provided without guarantee or warrantee expressed or
+- implied. This program is -not- in the public domain. */
+-
+-/* This example demonstrates how to render particle effects
+- with OpenGL. A cloud of pinkish/orange particles explodes with the
+- particles bouncing off the ground. When the EXT_point_parameters
+- is present , the particle size is attenuated based on eye distance. */
+-
+-
+-/* Modified by Brian Paul to test GL_ARB_point_sprite */
+-
+-
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <math.h> /* for cos(), sin(), and sqrt() */
+-#ifdef _WIN32
+-#include <windows.h>
+-#endif
+-#include <GL/glew.h>
+-#include <GL/glut.h>
+-
+-/* Some <math.h> files do not define M_PI... */
+-#ifndef M_PI
+-#define M_PI 3.14159265
+-#endif
+-
+-#if 0 /* For debugging. */
+-#undef GL_EXT_point_parameters
+-#endif
+-
+-static GLfloat angle = -150; /* in degrees */
+-static int spin = 0;
+-static int moving, begin;
+-static float theTime;
+-static int repeat = 1;
+-static int blend = 1;
+-int useMipmaps = 1;
+-int linearFiltering = 1;
+-
+-static GLfloat constant[3] = { .2, 0.0, 0.0 };
+-static GLfloat linear[3] = { .0, .1, 0.0 };
+-static GLfloat theQuad[3] = { .005, 0.1, 1/600.0 };
+-
+-#define MAX_POINTS 2000
+-
+-static int numPoints = 200;
+-
+-static GLfloat pointList[MAX_POINTS][3];
+-static GLfloat pointTime[MAX_POINTS];
+-static GLfloat pointVelocity[MAX_POINTS][2];
+-static GLfloat pointDirection[MAX_POINTS][2];
+-static int colorList[MAX_POINTS];
+-static int animate = 1, motion = 0, org = 0, sprite = 1, smooth = 1;
+-
+-static GLfloat colorSet[][4] = {
+- /* Shades of red. */
+- { 0.7, 0.2, 0.4, 0.5 },
+- { 0.8, 0.0, 0.7, 0.5 },
+- { 1.0, 0.0, 0.0, 0.5 },
+- { 0.9, 0.3, 0.6, 0.5 },
+- { 1.0, 0.4, 0.0, 0.5 },
+- { 1.0, 0.0, 0.5, 0.5 },
+-};
+-
+-#define NUM_COLORS (sizeof(colorSet)/sizeof(colorSet[0]))
+-
+-#define DEAD (NUM_COLORS+1)
+-
+-
+-/* GL */
+-static GLint spritePattern[16][16] = {
+- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+- { 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+- { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0 },
+- { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+- { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+- { 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0 },
+- { 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0 },
+- { 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0 },
+- { 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0 },
+- { 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0 },
+- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+-};
+-
+-
+-
+-
+-#if 0 /* drand48 might be better on Unix machines */
+-#define RANDOM_RANGE(lo, hi) ((lo) + (hi - lo) * drand48())
+-#else
+-static float float_rand(void) { return rand() / (float) RAND_MAX; }
+-#define RANDOM_RANGE(lo, hi) ((lo) + (hi - lo) * float_rand())
+-#endif
+-
+-#define MEAN_VELOCITY 3.0
+-#define GRAVITY 2.0
+-
+-/* Modeling units of ground extent in each X and Z direction. */
+-#define EDGE 12
+-
+-static void
+-makePointList(void)
+-{
+- float angle, velocity, direction;
+- int i;
+-
+- motion = 1;
+- for (i=0; i<numPoints; i++) {
+- pointList[i][0] = 0.0;
+- pointList[i][1] = 0.0;
+- pointList[i][2] = 0.0;
+- pointTime[i] = 0.0;
+- angle = (RANDOM_RANGE(60.0, 70.0)) * M_PI/180.0;
+- direction = RANDOM_RANGE(0.0, 360.0) * M_PI/180.0;
+- pointDirection[i][0] = cos(direction);
+- pointDirection[i][1] = sin(direction);
+- velocity = MEAN_VELOCITY + RANDOM_RANGE(-0.8, 1.0);
+- pointVelocity[i][0] = velocity * cos(angle);
+- pointVelocity[i][1] = velocity * sin(angle);
+- colorList[i] = rand() % NUM_COLORS;
+- }
+- theTime = 0.0;
+-}
+-
+-static void
+-updatePointList(void)
+-{
+- float distance;
+- int i;
+-
+- static double t0 = -1.;
+- double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
+- if (t0 < 0.0)
+- t0 = t;
+- dt = t - t0;
+- t0 = t;
+-
+- motion = 0;
+- for (i=0; i<numPoints; i++) {
+- distance = pointVelocity[i][0] * theTime;
+-
+- /* X and Z */
+- pointList[i][0] = pointDirection[i][0] * distance;
+- pointList[i][2] = pointDirection[i][1] * distance;
+-
+- /* Z */
+- pointList[i][1] =
+- (pointVelocity[i][1] - 0.5 * GRAVITY * pointTime[i])*pointTime[i];
+-
+- /* If we hit the ground, bounce the point upward again. */
+- if (pointList[i][1] <= 0.0) {
+- if (distance > EDGE) {
+- /* Particle has hit ground past the distance duration of
+- the particles. Mark particle as dead. */
+- colorList[i] = NUM_COLORS; /* Not moving. */
+- continue;
+- }
+-
+- pointVelocity[i][1] *= 0.8; /* 80% of previous up velocity. */
+- pointTime[i] = 0.0; /* Reset the particles sense of up time. */
+- }
+- motion = 1;
+- pointTime[i] += dt;
+- }
+- theTime += dt;
+- if (!motion && !spin) {
+- if (repeat) {
+- makePointList();
+- } else {
+- glutIdleFunc(NULL);
+- }
+- }
+-}
+-
+-static void
+-idle(void)
+-{
+- updatePointList();
+- if (spin) {
+- angle += 0.3;
+- }
+- glutPostRedisplay();
+-}
+-
+-static void
+-visible(int vis)
+-{
+- if (vis == GLUT_VISIBLE) {
+- if (animate && (motion || spin)) {
+- glutIdleFunc(idle);
+- }
+- } else {
+- glutIdleFunc(NULL);
+- }
+-}
+-
+-static void
+-redraw(void)
+-{
+- int i;
+-
+- glDepthMask(GL_TRUE);
+- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+-
+- glPushMatrix();
+- glRotatef(15.0, 1.0, 0.0, 0.0);
+- glRotatef(angle, 0.0, 1.0, 0.0);
+-
+-
+- /* Draw the floor. */
+-/* glEnable(GL_TEXTURE_2D);*/
+- glColor3f(0.1, 0.5, 1.0);
+- glBegin(GL_QUADS);
+- glTexCoord2f(0.0, 0.0);
+- glVertex3f(-EDGE, -0.05, -EDGE);
+- glTexCoord2f(20.0, 0.0);
+- glVertex3f(EDGE, -0.05, -EDGE);
+- glTexCoord2f(20.0, 20.0);
+- glVertex3f(EDGE, -0.05, EDGE);
+- glTexCoord2f(0.0, 20.0);
+- glVertex3f(-EDGE, -0.05, EDGE);
+- glEnd();
+-
+- /* Allow particles to blend with each other. */
+- glDepthMask(GL_FALSE);
+-
+- if (blend)
+- glEnable(GL_BLEND);
+-
+- if (sprite) {
+- glEnable(GL_TEXTURE_2D);
+-#ifdef GL_ARB_point_sprite
+- glEnable(GL_POINT_SPRITE_ARB);
+-#endif
+- }
+-
+- glColor3f(1,1,1);
+- glBegin(GL_POINTS);
+- for (i=0; i<numPoints; i++) {
+- /* Draw alive particles. */
+- if (colorList[i] != DEAD) {
+- if (!sprite) glColor4fv(colorSet[colorList[i]]);
+- glVertex3fv(pointList[i]);
+- }
+- }
+- glEnd();
+-
+- glDisable(GL_TEXTURE_2D);
+-#ifdef GL_ARB_point_sprite
+- glDisable(GL_POINT_SPRITE_ARB);
+-#endif
+- glDisable(GL_BLEND);
+-
+- glPopMatrix();
+-
+- glutSwapBuffers();
+-}
+-
+-/* ARGSUSED2 */
+-static void
+-mouse(int button, int state, int x, int y)
+-{
+- /* Scene can be spun around Y axis using left
+- mouse button movement. */
+- if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) {
+- moving = 1;
+- begin = x;
+- }
+- if (button == GLUT_LEFT_BUTTON && state == GLUT_UP) {
+- moving = 0;
+- }
+-}
+-
+-/* ARGSUSED1 */
+-static void
+-mouseMotion(int x, int y)
+-{
+- if (moving) {
+- angle = angle + (x - begin);
+- begin = x;
+- glutPostRedisplay();
+- }
+-}
+-
+-static void
+-menu(int option)
+-{
+- switch (option) {
+- case 0:
+- makePointList();
+- break;
+-#ifdef GL_ARB_point_parameters
+- case 1:
+- glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, constant);
+- break;
+- case 2:
+- glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, linear);
+- break;
+- case 3:
+- glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, theQuad);
+- break;
+-#endif
+- case 4:
+- blend = 1;
+- break;
+- case 5:
+- blend = 0;
+- break;
+-#ifdef GL_ARB_point_parameters
+- case 6:
+- glPointParameterfARB(GL_POINT_FADE_THRESHOLD_SIZE_ARB, 1.0);
+- break;
+- case 7:
+- glPointParameterfARB(GL_POINT_FADE_THRESHOLD_SIZE_ARB, 10.0);
+- break;
+-#endif
+- case 8:
+- glEnable(GL_POINT_SMOOTH);
+- smooth = 1;
+- break;
+- case 9:
+- glDisable(GL_POINT_SMOOTH);
+- smooth = 0;
+- break;
+- case 10:
+- glPointSize(16.0);
+- break;
+- case 11:
+- glPointSize(32.0);
+- break;
+- case 12:
+- glPointSize(64.0);
+- break;
+- case 13:
+- spin = 1 - spin;
+- if (animate && (spin || motion)) {
+- glutIdleFunc(idle);
+- } else {
+- glutIdleFunc(NULL);
+- }
+- break;
+- case 14:
+- numPoints = 200;
+- break;
+- case 15:
+- numPoints = 500;
+- break;
+- case 16:
+- numPoints = 1000;
+- break;
+- case 17:
+- numPoints = 2000;
+- break;
+- case 666:
+- exit(0);
+- }
+- glutPostRedisplay();
+-}
+-
+-/* ARGSUSED1 */
+-static void
+-key(unsigned char c, int x, int y)
+-{
+- switch (c) {
+- case 13:
+- animate = 1 - animate; /* toggle. */
+- if (animate && (motion || spin)) {
+- glutIdleFunc(idle);
+- } else {
+- glutIdleFunc(NULL);
+- }
+- break;
+- case ' ':
+- animate = 1;
+- makePointList();
+- glutIdleFunc(idle);
+- break;
+- case 'o':
+- case 'O':
+- org ^= 1;
+-#ifdef GL_VERSION_2_0
+-#ifdef GL_ARB_point_parameters
+- glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN,
+- org ? GL_LOWER_LEFT : GL_UPPER_LEFT);
+-#endif
+-#endif
+- glutPostRedisplay();
+- break;
+- case 't':
+- case 'T':
+- sprite ^= 1;
+- glutPostRedisplay();
+- break;
+- case 's':
+- case 'S':
+- (smooth ^= 1) ? glEnable(GL_POINT_SMOOTH) : glDisable(GL_POINT_SMOOTH);
+- glutPostRedisplay();
+- break;
+- case '0':
+- glPointSize(1.0);
+- glutPostRedisplay();
+- break;
+- case '1':
+- glPointSize(16.0);
+- glutPostRedisplay();
+- break;
+- case '2':
+- glPointSize(32.0);
+- glutPostRedisplay();
+- break;
+- case '3':
+- glPointSize(64.0);
+- glutPostRedisplay();
+- break;
+- case '4':
+- glPointSize(128.0);
+- glutPostRedisplay();
+- break;
+- case 27:
+- exit(0);
+- }
+-}
+-
+-
+-
+-static void
+-makeSprite(void)
+-{
+- GLubyte texture[16][16][4];
+- int i, j;
+-
+- if (!glutExtensionSupported("GL_ARB_point_sprite")) {
+- printf("Sorry, this demo requires GL_ARB_point_sprite.\n");
+- exit(0);
+- }
+- if (!glutExtensionSupported("GL_ARB_point_parameters")) {
+- printf("Sorry, this demo requires GL_ARB_point_parameters.\n");
+- exit(0);
+- }
+-
+- for (i = 0; i < 16; i++) {
+- for (j = 0; j < 16; j++) {
+- if (spritePattern[i][j]) {
+- texture[i][j][0] = 255;
+- texture[i][j][1] = 255;
+- texture[i][j][2] = 255;
+- texture[i][j][3] = 255;
+- }
+- else {
+- texture[i][j][0] = 255;
+- texture[i][j][1] = 0;
+- texture[i][j][2] = 0;
+- texture[i][j][3] = 0;
+- }
+- }
+- }
+-
+- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 16, 16, 0, GL_RGBA, GL_UNSIGNED_BYTE,
+- texture);
+- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+-#ifdef GL_ARB_point_sprite
+- glTexEnvi(GL_POINT_SPRITE_ARB, GL_COORD_REPLACE_ARB, GL_TRUE);
+-#endif
+-}
+-
+-
+-static void
+-reshape(int width, int height)
+-{
+- GLfloat h = (GLfloat) height / (GLfloat) width;
+-
+- glViewport(0, 0, (GLint) width, (GLint) height);
+- glMatrixMode(GL_PROJECTION);
+- glLoadIdentity();
+- glFrustum(-1.0, 1.0, -h, h, 2.0, 30.0);
+- glMatrixMode(GL_MODELVIEW);
+- glLoadIdentity();
+- glTranslatef(0.0, 0.0, -10.0);
+-}
+-
+-int
+-main(int argc, char **argv)
+-{
+- int i;
+-
+- glutInitWindowSize(600,300);
+- glutInit(&argc, argv);
+- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_MULTISAMPLE);
+-
+- for (i=1; i<argc; i++) {
+- if(!strcmp("-noms", argv[i])) {
+- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
+- printf("forcing no multisampling\n");
+- } else if(!strcmp("-nomipmaps", argv[i])) {
+- useMipmaps = 0;
+- } else if(!strcmp("-nearest", argv[i])) {
+- linearFiltering = 0;
+- }
+- }
+- glutCreateWindow("sprite blast");
+- glewInit();
+- glutReshapeFunc(reshape);
+- glutDisplayFunc(redraw);
+- glutMouseFunc(mouse);
+- glutMotionFunc(mouseMotion);
+- glutVisibilityFunc(visible);
+- glutKeyboardFunc(key);
+- glutCreateMenu(menu);
+- glutAddMenuEntry("Reset time", 0);
+- glutAddMenuEntry("Constant", 1);
+- glutAddMenuEntry("Linear", 2);
+- glutAddMenuEntry("Quadratic", 3);
+- glutAddMenuEntry("Blend on", 4);
+- glutAddMenuEntry("Blend off", 5);
+- glutAddMenuEntry("Threshold 1", 6);
+- glutAddMenuEntry("Threshold 10", 7);
+- glutAddMenuEntry("Point smooth on", 8);
+- glutAddMenuEntry("Point smooth off", 9);
+- glutAddMenuEntry("Point size 16", 10);
+- glutAddMenuEntry("Point size 32", 11);
+- glutAddMenuEntry("Point size 64", 12);
+- glutAddMenuEntry("Toggle spin", 13);
+- glutAddMenuEntry("200 points ", 14);
+- glutAddMenuEntry("500 points ", 15);
+- glutAddMenuEntry("1000 points ", 16);
+- glutAddMenuEntry("2000 points ", 17);
+- glutAddMenuEntry("Quit", 666);
+- glutAttachMenu(GLUT_RIGHT_BUTTON);
+-
+- makePointList();
+- makeSprite();
+-
+- glShadeModel(GL_FLAT);
+- glEnable(GL_DEPTH_TEST);
+- glEnable(GL_POINT_SMOOTH);
+- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+- glPointSize(32.0);
+-#ifdef GL_ARB_point_parameters
+- glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, theQuad);
+-#endif
+-
+- glutMainLoop();
+- return 0; /* ANSI C requires main to return int. */
+-}
diff --git a/multilib-testing/binutils-multilib/PKGBUILD b/multilib-testing/binutils-multilib/PKGBUILD
new file mode 100644
index 000000000..f3be8bdc7
--- /dev/null
+++ b/multilib-testing/binutils-multilib/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 48900 2011-06-07 12:25:49Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils-multilib
+pkgver=2.21
+pkgrel=9
+_date=20110605
+pkgdesc="A set of programs to assemble and manipulate binary and object files for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+groups=('multilib-devel')
+provides=("binutils=$pkgver-$pkgrel")
+conflicts=('binutils')
+depends=('glibc>=2.14' 'zlib')
+makedepends=('dejagnu' 'gcc-multilib') # Make sure we compile this with gcc-multilib
+options=('!libtool' '!distcc' '!ccache')
+install=binutils.install
+source=(http://mirrors.kernel.org/archlinux/other/binutils/binutils-${pkgver}_${_date}.tar.bz2)
+md5sums=('a2e7784d5d66c1d692a0a1fa248ea66c')
+
+build() {
+ cd ${srcdir}
+ mkdir binutils-build && cd binutils-build
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared \
+ --enable-64-bit-bfd --enable-multilib
+
+ # 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/multilib-testing/binutils-multilib/binutils.install b/multilib-testing/binutils-multilib/binutils.install
new file mode 100644
index 000000000..8bf9f3a47
--- /dev/null
+++ b/multilib-testing/binutils-multilib/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/multilib-testing/gcc-multilib/PKGBUILD b/multilib-testing/gcc-multilib/PKGBUILD
index de4f5f981..952d22b11 100644
--- a/multilib-testing/gcc-multilib/PKGBUILD
+++ b/multilib-testing/gcc-multilib/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 48786 2011-06-05 16:11:31Z heftig $
+# $Id: PKGBUILD 48902 2011-06-07 12:26:35Z heftig $
# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Allan McRae <allan@archlinux.org>
@@ -8,14 +8,14 @@
pkgbase='gcc-multilib'
pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib' 'gcc-go-multilib')
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 for multilib"
arch=('x86_64')
license=('GPL' 'LGPL' 'FDL' 'custom')
url="http://gcc.gnu.org"
-makedepends=('binutils-multilib>=2.21' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib' 'dejagnu'
+makedepends=('binutils-multilib>=2.21-9' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib' 'dejagnu'
'lib32-glibc>=2.13')
options=('!libtool' '!emptydirs')
source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.bz2
@@ -147,7 +147,7 @@ package_lib32-gcc-libs()
package_gcc-multilib()
{
pkgdesc="The GNU Compiler Collection - C and C++ frontends for multilib"
- depends=("gcc-libs-multilib=$pkgver-$pkgrel" 'binutils-multilib>=2.21' 'libmpc' 'cloog' 'ppl')
+ depends=("gcc-libs-multilib=$pkgver-$pkgrel" 'binutils-multilib>=2.21-9' 'libmpc' 'cloog' 'ppl')
groups=('multilib-devel')
provides=("gcc=$pkgver-$pkgrel")
conflicts=('gcc')
diff --git a/multilib-testing/lib32-glibc/PKGBUILD b/multilib-testing/lib32-glibc/PKGBUILD
new file mode 100644
index 000000000..f5958c7da
--- /dev/null
+++ b/multilib-testing/lib32-glibc/PKGBUILD
@@ -0,0 +1,133 @@
+# $Id: PKGBUILD 48898 2011-06-07 12:25:15Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuild with each new glibc version
+
+_pkgbasename=glibc
+pkgname=lib32-$_pkgbasename
+pkgver=2.14
+pkgrel=1
+_glibcdate=20110605
+pkgdesc="GNU C Library for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+depends=("glibc>=$pkgver")
+makedepends=('gcc-multilib>=4.4')
+options=('!strip' '!emptydirs')
+source=(http://mirrors.kernel.org/archlinux/other/glibc/${_pkgbasename}-${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
+ lib32-glibc.conf)
+md5sums=('a96742599fc8a99e52b9e344f39a1000'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '7d0154b7e17ea218c9fa953599d24cc4'
+ 'cea62cc6b903d222c5f26e05a3c0e0e6'
+ '6e052f1cb693d5d3203f50f9d4e8c33b')
+
+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
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+
+ echo "slibdir=/usr/lib32" >> configparms
+
+ export CC="gcc -m32"
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib32 --libexecdir=/usr/lib32 \
+ --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 i686-unknown-linux-gnu
+
+ 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 -rf ${pkgdir}/{etc,sbin,usr/{bin,sbin,share}}
+
+ # We need one 32 bit specific header file
+ find ${pkgdir}/usr/include -type f -not -name stubs-32.h -delete
+
+ # 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 usr/lib32/getconf/*
+
+ strip $STRIP_STATIC usr/lib32/*.a \
+ usr/lib32/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so
+
+ strip $STRIP_SHARED usr/lib32/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \
+ usr/lib32/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
+ usr/lib32/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
+ usr/lib32/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib32/{pt_chown,gconv/*.so}
+
+ # Dynamic linker
+ install -d -m755 ${pkgdir}/lib
+ ln -s ../usr/lib32/ld-linux.so.2 ${pkgdir}/lib/
+
+ # Add /usr/lib32 to the default library search path
+ install -Dm644 "$srcdir/lib32-glibc.conf" "$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf"
+
+ # Symlink /usr/lib32/locale to /usr/lib/locale
+ ln -s ../lib/locale "$pkgdir/usr/lib32/locale"
+}
diff --git a/multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch b/multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 000000000..cf1a97a18
--- /dev/null
+++ b/multilib-testing/lib32-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/multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch b/multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 000000000..d3abeff17
--- /dev/null
+++ b/multilib-testing/lib32-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/multilib-testing/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch b/multilib-testing/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch
new file mode 100644
index 000000000..e84754279
--- /dev/null
+++ b/multilib-testing/lib32-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/multilib-testing/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/multilib-testing/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
new file mode 100644
index 000000000..ce089b49c
--- /dev/null
+++ b/multilib-testing/lib32-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/multilib-testing/lib32-glibc/glibc-2.13-futex.patch b/multilib-testing/lib32-glibc/glibc-2.13-futex.patch
new file mode 100644
index 000000000..9b9c3ac45
--- /dev/null
+++ b/multilib-testing/lib32-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/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch b/multilib-testing/lib32-glibc/glibc-2.14-libdl-crash.patch
new file mode 100644
index 000000000..ee29f8c20
--- /dev/null
+++ b/multilib-testing/lib32-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/multilib-testing/lib32-glibc/glibc-__i686.patch b/multilib-testing/lib32-glibc/glibc-__i686.patch
new file mode 100644
index 000000000..28d5dd424
--- /dev/null
+++ b/multilib-testing/lib32-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/multilib-testing/lib32-glibc/lib32-glibc.conf b/multilib-testing/lib32-glibc/lib32-glibc.conf
new file mode 100644
index 000000000..9b08c3f43
--- /dev/null
+++ b/multilib-testing/lib32-glibc/lib32-glibc.conf
@@ -0,0 +1 @@
+/usr/lib32
diff --git a/multilib/gcc-multilib/PKGBUILD b/multilib/gcc-multilib/PKGBUILD
index 98dcef2a4..de4f5f981 100644
--- a/multilib/gcc-multilib/PKGBUILD
+++ b/multilib/gcc-multilib/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 47043 2011-05-14 11:08:03Z heftig $
+# $Id: PKGBUILD 48786 2011-06-05 16:11:31Z heftig $
# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Allan McRae <allan@archlinux.org>
@@ -8,28 +8,22 @@
pkgbase='gcc-multilib'
pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib' 'gcc-go-multilib')
pkgver=4.6.0
-pkgrel=5
-_snapshot=4.6-20110513
+pkgrel=6
+_snapshot=4.6-20110603
_libstdcppmanver=20110201 # Note: check source directory name when updating this
pkgdesc="The GNU Compiler Collection for multilib"
arch=('x86_64')
license=('GPL' 'LGPL' 'FDL' 'custom')
url="http://gcc.gnu.org"
makedepends=('binutils-multilib>=2.21' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib' 'dejagnu'
- 'lib32-glibc>=2.12.1')
+ 'lib32-glibc>=2.13')
options=('!libtool' '!emptydirs')
-source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc,ada,go,testsuite}-${pkgver}.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,ada,go,testsuite}-${_snapshot}.tar.bz2
+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
ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
gcc_pure64.patch
gcc-hash-style-both.patch)
-md5sums=('2be769db16ac02f30fb62423b4c50145'
- 'a310d230945f4b3093dd3ca72839c649'
- '361a10c5a5545c80fd271b18036dd00c'
- 'f7db2f6ed34398361de62cb6b8eb53d2'
- '9b69c1d8874e8496c1965ee3e32eaa6d'
- '248e53b461078bf1c89528fb8e4ba051'
- 'e15a01b0d02ff12e975e4c2649e71e55'
+md5sums=('c97d52b2b4e6c8c5cf665ae3eb9e8e49'
'1e9fd2eaf0ee47ea64e82c48998f1999'
'22cec272f9cc2801d3cd348feaca888b'
'4df25b623799b148a0703eaeec8fdf3f')
@@ -89,7 +83,7 @@ check() {
package_gcc-libs-multilib()
{
pkgdesc="Runtime libraries shipped by GCC for multilib"
- depends=('glibc>=2.11.1-2' "lib32-gcc-libs=$pkgver-$pkgrel")
+ depends=('glibc>=2.13' "lib32-gcc-libs=$pkgver-$pkgrel")
provides=("gcc-libs=$pkgver-$pkgrel")
conflicts=('gcc-libs')
install=gcc-libs.install
@@ -123,7 +117,7 @@ package_gcc-libs-multilib()
package_lib32-gcc-libs()
{
pkgdesc="Runtime libraries shipped by GCC (32-bit)"
- depends=('lib32-glibc>=2.12.1' "gcc-libs>=$pkgver")
+ depends=('lib32-glibc>=2.13' "gcc-libs>=$pkgver")
cd gcc-build
make -j1 -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
@@ -153,8 +147,7 @@ package_lib32-gcc-libs()
package_gcc-multilib()
{
pkgdesc="The GNU Compiler Collection - C and C++ frontends for multilib"
- depends=('binutils-multilib>=2.21' 'libmpc>=0.8.1-2' 'cloog' 'ppl'
- "gcc-libs-multilib=$pkgver-$pkgrel")
+ depends=("gcc-libs-multilib=$pkgver-$pkgrel" 'binutils-multilib>=2.21' 'libmpc' 'cloog' 'ppl')
groups=('multilib-devel')
provides=("gcc=$pkgver-$pkgrel")
conflicts=('gcc')
diff --git a/staging/kdepim-runtime/PKGBUILD b/staging/kdepim-runtime/PKGBUILD
new file mode 100644
index 000000000..0b0e8fb96
--- /dev/null
+++ b/staging/kdepim-runtime/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 126741 2011-06-07 06:22:29Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepim-runtime
+pkgver=4.6.0
+pkgrel=1
+pkgdesc='KDE PIM Runtime Environment'
+arch=('i686' 'x86_64')
+url='http://pim.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdepimlibs' 'kdebase-runtime')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/kdepim-${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('2a2e29ba805ae2c94fa4da6371693e59575d3ed8')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdepim-runtime/kdepim-runtime.install b/staging/kdepim-runtime/kdepim-runtime.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/staging/kdepim-runtime/kdepim-runtime.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/staging/kdepim/PKGBUILD b/staging/kdepim/PKGBUILD
new file mode 100644
index 000000000..1f014e745
--- /dev/null
+++ b/staging/kdepim/PKGBUILD
@@ -0,0 +1,253 @@
+# $Id: PKGBUILD 126753 2011-06-07 06:46:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdepim
+pkgname=('kdepim-akonadiconsole'
+ 'kdepim-akregator'
+ 'kdepim-blogilo'
+ 'kdepim-console'
+ 'kdepim-kaddressbook'
+ 'kdepim-kalarm'
+ 'kdepim-kjots'
+ 'kdepim-kleopatra'
+ 'kdepim-kmail'
+ 'kdepim-knode'
+ 'kdepim-knotes'
+ 'kdepim-kontact'
+ 'kdepim-korganizer'
+ 'kdepim-kresources'
+ 'kdepim-ktimetracker'
+ 'kdepim-libkdepim'
+ 'kdepim-wizards')
+pkgver=4.6.0
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://pim.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdepim')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss'
+ 'pilot-link' 'kde-agent')
+source=("http://download.kde.org/stable/${pkgbase}-${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('283ea87b68a4750194d785361f6534af59edacf9')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DKDEPIM_BUILD_MOBILE=OFF
+ make
+}
+
+package_kdepim-akonadiconsole() {
+ pkgdesc='Akonadi Management and Debugging Console'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/akonadiconsole
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-akregator() {
+ pkgdesc='A Feed Reader for KDE'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/akregator/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/akregator
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/akregator
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-blogilo() {
+ pkgdesc='A KDE Blogging Client'
+ depends=('kdepim-runtime')
+ url="http://kde.org/applications/internet/blogilo/"
+ replaces=('blogilo')
+ conflicts=('blogilo')
+ install='kdepim.install'
+ cd "${srcdir}"/build/blogilo
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/blogilo
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-console() {
+ pkgdesc='Command line tool for accessing calendar files'
+ depends=('kdepim-runtime')
+ url='http://pim.kde.org'
+ install='kdepim.install'
+ cd "${srcdir}"/build/console
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kaddressbook() {
+ pkgdesc='Contact Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kaddressbook/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/plugins/kaddressbook
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kalarm() {
+ pkgdesc='Personal Alarm Scheduler'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kalarm/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kalarm
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kalarm
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kjots() {
+ pkgdesc='Note Taker'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kjots/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kjots
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/kjots
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kleopatra() {
+ pkgdesc='Certificate Manager and Unified Crypto GUI'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/kleopatra/"
+ install='kdepim-kleopatra.install'
+ cd "${srcdir}"/build/kleopatra
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/kleopatra
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kmail() {
+ pkgdesc='Mail Client'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/kmail/"
+ install='kdepim-kmail.install'
+ conflicts=('kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
+ 'kdepim-mimelib' 'kdepim-plugins')
+ replaces=('kdepim-kmailcvt' 'kdepim-ksendemail' 'kdepim-libksieve'
+ 'kdepim-mimelib' 'kdepim-plugins')
+ optdepends=('cyrus-sasl-plugins: CRAM-MD5 authentication')
+ for i in kmail doc/kmail kmailcvt ksendemail libksieve mailcommon \
+ nepomuk_email_feeder ontologies templateparser kontact/plugins/kmail; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-knode() {
+ pkgdesc='News Reader'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/internet/knode/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knode
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knode
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-knotes() {
+ pkgdesc='Popup Notes'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/utilities/knotes/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/knotes
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/knotes
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kontact() {
+ pkgdesc='Personal Information Manager'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/kontact/"
+ install='kdepim.install'
+ conflcits=('kdepim-kontactinterfaces')
+ replaces=('kdepim-kontactinterfaces')
+ for i in kontact/src doc/kontact \
+ kontact/plugins/summary kontact/plugins/specialdates; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-korganizer() {
+ pkgdesc='Calendar and Scheduling Program'
+ depends=('kdepim-libkdepim')
+ url="http://kde.org/applications/office/korganizer"
+ install='kdepim-korganizer.install'
+ cd "${srcdir}"/build/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/korganizer
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/korganizer
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-kresources() {
+ pkgdesc='KDE PIM resources'
+ depends=('kdepim-libkdepim')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/kresources
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-ktimetracker() {
+ pkgdesc='Personal Time Tracker'
+ depends=('kdepim-kresources')
+ url="http://kde.org/applications/utilities/ktimetracker/"
+ install='kdepim.install'
+ cd "${srcdir}"/build/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/doc/ktimetracker
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}"/build/kontact/plugins/ktimetracker
+ make DESTDIR="${pkgdir}" install
+}
+
+package_kdepim-libkdepim() {
+ pkgdesc='Library for KDE PIM'
+ groups=()
+ depends=('kde-agent' 'kdepim-runtime')
+ url='http://pim.kde.org'
+ conflicts=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ replaces=('kdepim-icons' 'kdepim-libkleo' 'kdepim-libkpgp'
+ 'kdepim-strigi-analyzer' 'kdepim-akonadi')
+ for i in akonadi_next calendarsupport calendarviews incidenceeditor-ng \
+ kdgantt2 libkdepim libkdepimdbusinterfaces libkleo libkpgp \
+ messagecomposer messagecore messagelist messageviewer icons \
+ strigi-analyzer plugins/messageviewer plugins/ktexteditor; do
+ cd "${srcdir}"/build/${i}
+ make DESTDIR="${pkgdir}" install
+ done
+}
+
+package_kdepim-wizards() {
+ pkgdesc='KDE Groupware Wizard'
+ depends=('kdepim-kresources')
+ url='http://pim.kde.org'
+ cd "${srcdir}"/build/wizards
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/kdepim/kdepim-kleopatra.install b/staging/kdepim/kdepim-kleopatra.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdepim/kdepim-kleopatra.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdepim/kdepim-kmail.install b/staging/kdepim/kdepim-kmail.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdepim/kdepim-kmail.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdepim/kdepim-korganizer.install b/staging/kdepim/kdepim-korganizer.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/staging/kdepim/kdepim-korganizer.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/staging/kdepim/kdepim.install b/staging/kdepim/kdepim.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/staging/kdepim/kdepim.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
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/pidgin/PKGBUILD b/testing/pidgin/PKGBUILD
index 3ed646b74..879ac94dc 100644
--- a/testing/pidgin/PKGBUILD
+++ b/testing/pidgin/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 124935 2011-05-25 09:46:33Z foutrelis $
+# $Id: PKGBUILD 126837 2011-06-07 16:22:39Z foutrelis $
# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
@@ -6,8 +6,8 @@
# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
pkgname=('pidgin' 'libpurple' 'finch')
-pkgver=2.7.11
-pkgrel=6
+pkgver=2.8.0
+pkgrel=2
arch=('i686' 'x86_64')
url="http://pidgin.im/"
license=('GPL')
@@ -17,19 +17,15 @@ makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'libsm'
'networkmanager')
options=('!libtool')
source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
- nm09-pidgin.patch
nm09-more.patch)
-md5sums=('07c2a2535b4d7436b5ec7685fe063fec'
- '744a21b4dbaf949dba7cd3b75b12b4fe'
+md5sums=('d1656c443a5d91f4aa0d95915f1f50c3'
'a673659d86c7a65aa710f7c8c7feda82')
build() {
cd "$srcdir/$pkgname-$pkgver"
- # Update for NetworkManager 0.9 connection states
- # (http://developer.pidgin.im/ticket/13505)
+ # Further fixes for NetworkManager 0.9
# (http://developer.pidgin.im/ticket/13859)
- patch -Np1 -i "$srcdir/nm09-pidgin.patch"
patch -Np1 -i "$srcdir/nm09-more.patch"
# Use Python 2
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
+ ;;