summaryrefslogtreecommitdiff
path: root/multilib
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9 /multilib
Tue Apr 5 14:26:38 UTC 2011
Diffstat (limited to 'multilib')
-rw-r--r--multilib/binutils-multilib/PKGBUILD76
-rw-r--r--multilib/binutils-multilib/binutils.git-39637246.patch700
-rw-r--r--multilib/binutils-multilib/binutils.install17
-rw-r--r--multilib/chuck/PKGBUILD41
-rw-r--r--multilib/gcc-multilib/PKGBUILD267
-rw-r--r--multilib/gcc-multilib/gcc-ada.install22
-rw-r--r--multilib/gcc-multilib/gcc-fortran.install18
-rw-r--r--multilib/gcc-multilib/gcc-hash-style-both.patch163
-rw-r--r--multilib/gcc-multilib/gcc-libs.install14
-rw-r--r--multilib/gcc-multilib/gcc.install22
-rw-r--r--multilib/gcc-multilib/gcc_pure64.patch24
-rw-r--r--multilib/lib32-acl/PKGBUILD34
-rw-r--r--multilib/lib32-alsa-lib/PKGBUILD32
-rw-r--r--multilib/lib32-alsa-oss/PKGBUILD33
-rw-r--r--multilib/lib32-alsa-plugins/PKGBUILD35
-rw-r--r--multilib/lib32-atk/PKGBUILD34
-rw-r--r--multilib/lib32-attr/PKGBUILD35
-rw-r--r--multilib/lib32-audiofile/PKGBUILD32
-rw-r--r--multilib/lib32-cairo/PKGBUILD36
-rw-r--r--multilib/lib32-cairo/cairo-1.10.0-buggy_gradients.patch13
-rwxr-xr-xmultilib/lib32-curl/PKGBUILD55
-rw-r--r--multilib/lib32-db/PKGBUILD40
-rw-r--r--multilib/lib32-dbus-core/PKGBUILD42
-rw-r--r--multilib/lib32-e2fsprogs/PKGBUILD37
-rw-r--r--multilib/lib32-expat/CVE-2009-3560.patch13
-rw-r--r--multilib/lib32-expat/CVE-2009-3720.patch12
-rw-r--r--multilib/lib32-expat/PKGBUILD39
-rw-r--r--multilib/lib32-flac/PKGBUILD41
-rw-r--r--multilib/lib32-flac/flac-1.2.1-gcc-4.3-includes.patch11
-rw-r--r--multilib/lib32-fontconfig/30-urw-aliases.patch13
-rw-r--r--multilib/lib32-fontconfig/PKGBUILD40
-rw-r--r--multilib/lib32-freetype2/PKGBUILD42
-rw-r--r--multilib/lib32-freetype2/freetype-2.2.1-enable-valid.patch20
-rw-r--r--multilib/lib32-freetype2/freetype-2.3.0-enable-spr.patch11
-rw-r--r--multilib/lib32-gdk-pixbuf2/PKGBUILD45
-rw-r--r--multilib/lib32-gdk-pixbuf2/gdk-pixbuf2.install11
-rw-r--r--multilib/lib32-giflib/PKGBUILD48
-rw-r--r--multilib/lib32-glew/PKGBUILD34
-rw-r--r--multilib/lib32-glib/PKGBUILD43
-rw-r--r--multilib/lib32-glib/aclocal-fixes.patch11
-rw-r--r--multilib/lib32-glib/gcc340.patch15
-rw-r--r--multilib/lib32-glib2/PKGBUILD38
-rw-r--r--multilib/lib32-glibc/PKGBUILD123
-rw-r--r--multilib/lib32-glibc/glibc-2.10-bz4781.patch42
-rw-r--r--multilib/lib32-glibc/glibc-2.10-dont-build-timezone.patch13
-rw-r--r--multilib/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch11
-rw-r--r--multilib/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--multilib/lib32-glibc/glibc-2.13-prelink.patch26
-rw-r--r--multilib/lib32-glibc/glibc-__i686.patch13
-rw-r--r--multilib/lib32-glibc/lib32-glibc.conf1
-rw-r--r--multilib/lib32-gnutls/PKGBUILD36
-rw-r--r--multilib/lib32-gtk/PKGBUILD42
-rw-r--r--multilib/lib32-gtk/aclocal-fixes.patch11
-rw-r--r--multilib/lib32-gtk2/PKGBUILD53
-rw-r--r--multilib/lib32-gtk2/gtk-modules-32.patch12
-rw-r--r--multilib/lib32-gtk2/gtk2.install16
-rw-r--r--multilib/lib32-gtk2/xid-collision-debug.patch15
-rw-r--r--multilib/lib32-heimdal/001_all_heimdal-no_libedit.patch10
-rw-r--r--multilib/lib32-heimdal/002_all_heimal-fPIC.patch12
-rw-r--r--multilib/lib32-heimdal/003_all_heimdal-rxapps.patch22
-rw-r--r--multilib/lib32-heimdal/005_all_heimdal-suid_fix.patch20
-rw-r--r--multilib/lib32-heimdal/012_all_heimdal-berkdb.patch124
-rw-r--r--multilib/lib32-heimdal/013_all_heimdal-pthread-lib.patch11
-rw-r--r--multilib/lib32-heimdal/014_all_heimdal-path.patch50
-rw-r--r--multilib/lib32-heimdal/PKGBUILD69
-rw-r--r--multilib/lib32-jack/PKGBUILD39
-rw-r--r--multilib/lib32-lcms/PKGBUILD37
-rw-r--r--multilib/lib32-libasyncns/PKGBUILD39
-rw-r--r--multilib/lib32-libcanberra/PKGBUILD57
-rw-r--r--multilib/lib32-libcap/PKGBUILD26
-rw-r--r--multilib/lib32-libcups/PKGBUILD38
-rw-r--r--multilib/lib32-libdrm/PKGBUILD47
-rw-r--r--multilib/lib32-libdrm/git_nouveau.diff327
-rw-r--r--multilib/lib32-libdrm/no-pthread-stubs.patch65
-rw-r--r--multilib/lib32-libgcrypt/PKGBUILD40
-rw-r--r--multilib/lib32-libgpg-error/PKGBUILD35
-rw-r--r--multilib/lib32-libice/PKGBUILD37
-rw-r--r--multilib/lib32-libjpeg/PKGBUILD39
-rw-r--r--multilib/lib32-libldap/PKGBUILD61
-rw-r--r--multilib/lib32-libldap/ntlm.patch230
-rw-r--r--multilib/lib32-libmikmod/PKGBUILD53
-rw-r--r--multilib/lib32-libmikmod/libmikmod-3.1.12-64bit-fix.diff47
-rw-r--r--multilib/lib32-libmikmod/libmikmod-3.1.12-exitcrash-fix.diff21
-rw-r--r--multilib/lib32-libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff15
-rw-r--r--multilib/lib32-libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff112
-rw-r--r--multilib/lib32-libmikmod/libmikmod-CVE-2009-0179.patch33
-rw-r--r--multilib/lib32-libmng/PKGBUILD38
-rw-r--r--multilib/lib32-libogg/PKGBUILD38
-rw-r--r--multilib/lib32-libpng/PKGBUILD55
-rw-r--r--multilib/lib32-libpulse/PKGBUILD55
-rw-r--r--multilib/lib32-libsamplerate/PKGBUILD35
-rw-r--r--multilib/lib32-libsm/PKGBUILD36
-rw-r--r--multilib/lib32-libsndfile/PKGBUILD39
-rw-r--r--multilib/lib32-libstdc++5/PKGBUILD46
-rw-r--r--multilib/lib32-libstdc++5/gcc-3.4.3-no_multilib_amd64.patch11
-rw-r--r--multilib/lib32-libtiff/PKGBUILD39
-rw-r--r--multilib/lib32-libtiff/libtiff-CVE-2009-2285.patch22
-rw-r--r--multilib/lib32-libusb-compat/PKGBUILD33
-rw-r--r--multilib/lib32-libusb/PKGBUILD34
-rw-r--r--multilib/lib32-libvdpau/PKGBUILD37
-rw-r--r--multilib/lib32-libvorbis/PKGBUILD39
-rw-r--r--multilib/lib32-libx11/PKGBUILD37
-rw-r--r--multilib/lib32-libxau/PKGBUILD37
-rw-r--r--multilib/lib32-libxcb/PKGBUILD46
-rw-r--r--multilib/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch12
-rw-r--r--multilib/lib32-libxcomposite/PKGBUILD36
-rw-r--r--multilib/lib32-libxcursor/PKGBUILD36
-rw-r--r--multilib/lib32-libxdamage/PKGBUILD35
-rw-r--r--multilib/lib32-libxdmcp/PKGBUILD38
-rw-r--r--multilib/lib32-libxext/PKGBUILD37
-rw-r--r--multilib/lib32-libxfixes/PKGBUILD35
-rw-r--r--multilib/lib32-libxft/PKGBUILD35
-rw-r--r--multilib/lib32-libxi/PKGBUILD37
-rw-r--r--multilib/lib32-libxinerama/PKGBUILD36
-rw-r--r--multilib/lib32-libxml2/PKGBUILD40
-rw-r--r--multilib/lib32-libxml2/shared_library_versionning.patch21
-rw-r--r--multilib/lib32-libxmu/PKGBUILD38
-rw-r--r--multilib/lib32-libxpm/PKGBUILD36
-rw-r--r--multilib/lib32-libxrandr/PKGBUILD36
-rw-r--r--multilib/lib32-libxrender/PKGBUILD35
-rw-r--r--multilib/lib32-libxslt/PKGBUILD37
-rw-r--r--multilib/lib32-libxss/PKGBUILD39
-rw-r--r--multilib/lib32-libxt/PKGBUILD37
-rw-r--r--multilib/lib32-libxtst/PKGBUILD38
-rw-r--r--multilib/lib32-libxv/PKGBUILD37
-rw-r--r--multilib/lib32-libxvmc/PKGBUILD37
-rw-r--r--multilib/lib32-libxxf86dga/PKGBUILD38
-rw-r--r--multilib/lib32-libxxf86vm/PKGBUILD37
-rw-r--r--multilib/lib32-mesa/PKGBUILD341
-rw-r--r--multilib/lib32-mpg123/PKGBUILD39
-rw-r--r--multilib/lib32-ncurses/PKGBUILD73
-rw-r--r--multilib/lib32-ncurses/set_field_buffer.patch9
-rw-r--r--multilib/lib32-nspr/PKGBUILD56
-rw-r--r--multilib/lib32-nspr/nspr.pc.in10
-rw-r--r--multilib/lib32-nss/PKGBUILD81
-rw-r--r--multilib/lib32-nss/add_spi+cacert_ca_certs.patch561
-rw-r--r--multilib/lib32-nss/nss-no-rpath.patch14
-rw-r--r--multilib/lib32-nss/nss-nolocalsql.patch52
-rw-r--r--multilib/lib32-nss/nss.pc.in11
-rw-r--r--multilib/lib32-nss/ssl-renegotiate-transitional.patch21
-rw-r--r--multilib/lib32-openal/PKGBUILD35
-rw-r--r--multilib/lib32-openssl/PKGBUILD56
-rw-r--r--multilib/lib32-openssl/ca-dir.patch33
-rw-r--r--multilib/lib32-openssl/no-rpath.patch11
-rw-r--r--multilib/lib32-pango/PKGBUILD44
-rw-r--r--multilib/lib32-pango/pango-modules-conffile.patch20
-rw-r--r--multilib/lib32-pango/pango.install21
-rw-r--r--multilib/lib32-pcre/PKGBUILD36
-rw-r--r--multilib/lib32-pixman/PKGBUILD33
-rw-r--r--multilib/lib32-qt/PKGBUILD94
-rw-r--r--multilib/lib32-readline/PKGBUILD50
-rw-r--r--multilib/lib32-sdl/PKGBUILD44
-rw-r--r--multilib/lib32-sdl/sdl-1.2.14-fix-disappearing-cursor.patch17
-rw-r--r--multilib/lib32-sdl/sdl-1.2.14-fix-mouse-clicking.patch23
-rw-r--r--multilib/lib32-sdl/sdl-1.2.14-joystick-crash.diff14
-rw-r--r--multilib/lib32-sdl_image/PKGBUILD36
-rw-r--r--multilib/lib32-sdl_ttf/PKGBUILD31
-rw-r--r--multilib/lib32-speex/PKGBUILD33
-rw-r--r--multilib/lib32-sqlite3/PKGBUILD50
-rw-r--r--multilib/lib32-talloc/PKGBUILD41
-rw-r--r--multilib/lib32-tdb/PKGBUILD35
-rw-r--r--multilib/lib32-udev/PKGBUILD36
-rw-r--r--multilib/lib32-util-linux/PKGBUILD52
-rw-r--r--multilib/lib32-v4l-utils/PKGBUILD35
-rw-r--r--multilib/lib32-xcb-util/PKGBUILD35
-rw-r--r--multilib/lib32-zlib/PKGBUILD44
-rw-r--r--multilib/lib32-zlib/zlib-1.2.5-lfs-decls.patch13
-rw-r--r--multilib/libtool-multilib/PKGBUILD64
-rw-r--r--multilib/libtool-multilib/libtool.install22
-rw-r--r--multilib/nspluginwrapper/PKGBUILD42
-rw-r--r--multilib/nspluginwrapper/npw-viewer.c.patch13
-rw-r--r--multilib/nspluginwrapper/nspluginwrapper-20090625-fix-npident-array-sending.patch178
-rw-r--r--multilib/nspluginwrapper/nspluginwrapper-native-windows.patch14
-rw-r--r--multilib/q4wine/PKGBUILD25
-rw-r--r--multilib/q4wine/q4wine.desktop18
-rw-r--r--multilib/wine/PKGBUILD142
-rw-r--r--multilib/wine/wine.install12
-rw-r--r--multilib/wine_gecko/PKGBUILD32
-rw-r--r--multilib/zsnes/PKGBUILD56
-rw-r--r--multilib/zsnes/zsnes.desktop9
-rw-r--r--multilib/zsnes/zsnes.patch68
-rw-r--r--multilib/zsnes/zsnes_icon.pngbin0 -> 7301 bytes
182 files changed, 8920 insertions, 0 deletions
diff --git a/multilib/binutils-multilib/PKGBUILD b/multilib/binutils-multilib/PKGBUILD
new file mode 100644
index 000000000..b65338bef
--- /dev/null
+++ b/multilib/binutils-multilib/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 39366 2011-02-09 12:53:42Z 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=4
+_date=20110209
+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.13' '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
+ binutils.git-39637246.patch)
+md5sums=('673ef8f4fc0b497232b4458982e76179'
+ 'dd72cb6df5467bc6237cff2a886099d0')
+
+build() {
+ cd ${srcdir}/binutils
+ patch -Np1 -i ${srcdir}/binutils.git-39637246.patch
+
+ 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
+
+ # 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/binutils-multilib/binutils.git-39637246.patch b/multilib/binutils-multilib/binutils.git-39637246.patch
new file mode 100644
index 000000000..460450e43
--- /dev/null
+++ b/multilib/binutils-multilib/binutils.git-39637246.patch
@@ -0,0 +1,700 @@
+diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
+index 777d7cf..c4c34a1 100644
+--- a/gas/config/tc-i386.c
++++ b/gas/config/tc-i386.c
+@@ -1060,7 +1060,6 @@ i386_align_code (fragS *fragP, int count)
+ else
+ patt = f32_patt;
+ break;
+- case PROCESSOR_PENTIUMPRO:
+ case PROCESSOR_PENTIUM4:
+ case PROCESSOR_NOCONA:
+ case PROCESSOR_CORE:
+@@ -1080,6 +1079,7 @@ i386_align_code (fragS *fragP, int count)
+ case PROCESSOR_I386:
+ case PROCESSOR_I486:
+ case PROCESSOR_PENTIUM:
++ case PROCESSOR_PENTIUMPRO:
+ case PROCESSOR_GENERIC32:
+ patt = f32_patt;
+ break;
+diff --git a/gas/testsuite/gas/i386/nops-1-i686.d b/gas/testsuite/gas/i386/nops-1-i686.d
+index 7752ee2..137d5c2 100644
+--- a/gas/testsuite/gas/i386/nops-1-i686.d
++++ b/gas/testsuite/gas/i386/nops-1-i686.d
+@@ -10,25 +10,41 @@ Disassembly of section .text:
+
+ 0+ <nop15>:
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 0d jmp 10 <nop14>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+10 <nop14>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+20 <nop13>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+30 <nop12>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bf 00 00 00 00 lea 0x0\(%edi\),%edi
+
+ 0+40 <nop11>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -36,7 +52,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+50 <nop10>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -45,7 +62,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d 76 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+60 <nop9>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -55,7 +73,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 89 f6 mov %esi,%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+70 <nop8>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -66,7 +85,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+80 <nop7>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -78,7 +98,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+90 <nop6>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -91,7 +111,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
+
+ 0+a0 <nop5>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -105,7 +125,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+b0 <nop4>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -120,7 +141,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+c0 <nop3>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -136,7 +157,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
++[ ]*[a-f0-9]+: 8d 76 00 lea 0x0\(%esi\),%esi
+
+ 0+d0 <nop2>:
+ [ ]*[a-f0-9]+: 90 nop
+diff --git a/gas/testsuite/gas/i386/nops-3-i686.d b/gas/testsuite/gas/i386/nops-3-i686.d
+index 30d2627..5c114f4 100644
+--- a/gas/testsuite/gas/i386/nops-3-i686.d
++++ b/gas/testsuite/gas/i386/nops-3-i686.d
+@@ -9,9 +9,37 @@ Disassembly of section .text:
+
+ 0+ <nop>:
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 1d jmp 20 <nop\+0x20>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+ [ ]*[a-f0-9]+: 89 c3 mov %eax,%ebx
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+ #pass
+diff --git a/gas/testsuite/gas/i386/nops-4-i686.d b/gas/testsuite/gas/i386/nops-4-i686.d
+index 3d8420b..c61f08d 100644
+--- a/gas/testsuite/gas/i386/nops-4-i686.d
++++ b/gas/testsuite/gas/i386/nops-4-i686.d
+@@ -9,30 +9,135 @@ Disassembly of section .text:
+
+ 0+ <nop31>:
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 1d jmp 20 <nop30>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+
+ 0+20 <nop30>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1c jmp 40 <nop29>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+40 <nop29>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1b jmp 60 <nop28>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+60 <nop28>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1a jmp 80 <nop27>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+80 <nop27>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -40,8 +145,32 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 19 jmp a0 <nop26>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+a0 <nop26>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -50,8 +179,31 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 18 jmp c0 <nop25>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+c0 <nop25>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -61,8 +213,30 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 17 jmp e0 <nop24>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+e0 <nop24>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -73,8 +247,29 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 16 jmp 100 <nop23>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+100 <nop23>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -86,8 +281,28 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 15 jmp 120 <nop22>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+120 <nop22>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -100,8 +315,27 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 14 jmp 140 <nop21>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+140 <nop21>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -115,8 +349,26 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 13 jmp 160 <nop20>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+160 <nop20>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -131,8 +383,25 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 12 jmp 180 <nop19>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+180 <nop19>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -148,8 +417,24 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 11 jmp 1a0 <nop18>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1a0 <nop18>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -166,8 +451,23 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 10 jmp 1c0 <nop17>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1c0 <nop17>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -185,8 +485,22 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 0f jmp 1e0 <nop16>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1e0 <nop16>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -205,6 +519,19 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 0e jmp 200 <align>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+ #pass
diff --git a/multilib/binutils-multilib/binutils.install b/multilib/binutils-multilib/binutils.install
new file mode 100644
index 000000000..8bf9f3a47
--- /dev/null
+++ b/multilib/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/chuck/PKGBUILD b/multilib/chuck/PKGBUILD
new file mode 100644
index 000000000..06811dea5
--- /dev/null
+++ b/multilib/chuck/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 35414 2010-12-20 02:07:32Z heftig $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+
+pkgname=chuck
+pkgver=1.2.1.3
+pkgrel=5
+pkgdesc="Concurrent, on-the-fly audio programming language."
+arch=('i686' 'x86_64')
+url="http://chuck.cs.princeton.edu/"
+license=('GPL')
+depends=('gcc-libs' 'libsndfile' 'alsa-lib')
+makedepends=('bison' 'flex')
+source=(http://chuck.cs.princeton.edu/release/files/$pkgname-$pkgver.tgz)
+md5sums=('ac8459b4067c2491fbdeb61d122a5985')
+
+if [[ $CARCH == x86_64 ]]; then
+ depends=('lib32-gcc-libs' 'lib32-libsndfile' 'lib32-alsa-lib')
+ makedepends+=('gcc-multilib')
+fi
+
+build() {
+ if [[ $CARCH == x86_64 ]]; then
+ export CC='gcc -m32'
+ export CXX='g++ -m32'
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ fi
+
+ cd $srcdir/$pkgname-$pkgver/src
+ CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ # This can be linux-alsa linux-jack linux-oss osx win32
+ make linux-alsa
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver/src
+ install -D -m 755 chuck $pkgdir/usr/bin/chuck
+}
diff --git a/multilib/gcc-multilib/PKGBUILD b/multilib/gcc-multilib/PKGBUILD
new file mode 100644
index 000000000..b3ec427ea
--- /dev/null
+++ b/multilib/gcc-multilib/PKGBUILD
@@ -0,0 +1,267 @@
+# $Id: PKGBUILD 38863 2011-02-02 11:14:23Z ibiru $
+# 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
+# NOTE: libtool requires rebuilt with each new gcc version
+
+pkgbase='gcc-multilib'
+pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib')
+pkgver=4.5.2
+pkgrel=6
+_snapshot=4.5-20110127
+_libstdcppmanver=4.5.2 # Note: check source directory name when updating this
+pkgdesc="The GNU Compiler Collection for multilib"
+arch=('x86_64')
+license=('GPL' 'LGPL' 'custom')
+url="http://gcc.gnu.org"
+makedepends=('binutils-multilib>=2.21' 'libmpc' 'cloog-ppl>=0.15.9-2' 'elfutils' 'gcc-ada-multilib' 'dejagnu'
+ 'glibc>=2.11.1-2' 'lib32-glibc>=2.12.1')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc,ada,testsuite}-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,ada,testsuite}-${_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=('7dbdf06186dc98955221b2f7b987645b'
+ '4893036a98d8bedf44fe0741dfec6e1f'
+ 'c741c614e975c858cffb9e78b0b5124f'
+ 'b141fadc984cc0c1c0f15feb16db14e5'
+ '067672b640d0b912298791c1837606bc'
+ 'daffd2ba5917a263cdff5f38dcf8c323'
+ '2776eab5ebb7f9cc62dd2199a3a24382'
+ '22cec272f9cc2801d3cd348feaca888b'
+ '6fd395bacbd7b6e47c7b74854b478363')
+
+if [ -n "${_snapshot}" ]; then
+ _basedir="${srcdir}/gcc-${_snapshot}"
+else
+ _basedir="${srcdir}/gcc-${pkgver}"
+fi
+
+build() {
+ cd ${_basedir}
+
+ # "Add" ppl-0.11 compatibility
+ sed -i "/ppl_minor_version=/s#10#11#" configure
+
+ # Do not install libiberty
+ sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
+
+ # Do not run fixincludes
+ sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+
+ patch -Np1 -i ${srcdir}/gcc_pure64.patch
+ patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ cd ${srcdir}
+ mkdir gcc-build && cd gcc-build
+ ${_basedir}/configure --prefix=/usr \
+ --enable-languages=c,c++,fortran,objc,obj-c++,ada \
+ --enable-shared --enable-threads=posix --enable-__cxa_atexit \
+ --enable-clocale=gnu --enable-gnu-unique-object \
+ --enable-lto --enable-plugin \
+ --enable-gold --with-plugin-ld=ld.gold \
+ --enable-multilib --disable-libstdcxx-pch \
+ --with-system-zlib --with-ppl \
+ --with-cloog --with-cloog-include=/usr/include/cloog-ppl \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+
+ # increase stack size to prevent test failures
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
+ ulimit -s 32768
+
+ # do not abort on error as some are "expected"
+ make -k check || true
+ ${_basedir}/contrib/test_summary
+}
+
+package_gcc-libs-multilib()
+{
+ pkgdesc="Runtime libraries shipped by GCC for multilib"
+ depends=('glibc>=2.11.1-2' "lib32-gcc-libs=$pkgver-$pkgrel")
+ provides=("gcc-libs=$pkgver-$pkgrel")
+ conflicts=('gcc-libs')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+ make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+ make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
+ make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
+
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+ # I thought I said to only install the lib...
+ rm -rf ${pkgdir}/usr/lib/gcc/
+ rm -rf ${pkgdir}/usr/lib32
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-libs-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_lib32-gcc-libs()
+{
+ pkgdesc="Runtime libraries shipped by GCC (32-bit)"
+ depends=('lib32-glibc>=2.12.1' "gcc-libs>=$pkgver")
+
+ cd gcc-build
+ make -j1 -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+ make -j1 -C $CHOST/32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # I thought I said to only install the lib...
+ rm -rf ${pkgdir}/usr/lib
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+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>=0.15.9-2' 'elfutils' \
+ "gcc-libs-multilib=$pkgver-$pkgrel")
+ groups=('multilib-devel')
+ provides=("gcc=$pkgver-$pkgrel")
+ conflicts=('gcc')
+ install=gcc.install
+
+ cd gcc-build
+
+ # much, much easier to install the lot and clean-up the mess
+ make -j1 DESTDIR=${pkgdir} install
+ rm $pkgdir/usr/bin/{*gfortran,gnat*}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{{,32/}ada{include,lib},finclude,include/objc}/*
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,{,32/}libgfortranbegin.a}
+ rm $pkgdir/usr/lib{,32}/{*.so*,lib{gfortran,objc}.a}
+ rm $pkgdir/usr/share/info/{gfortran,gnat*,libgomp}.info
+ rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
+ rm $pkgdir/usr/share/man/man1/gfortran.1
+
+ # many packages require these symlinks
+ install -dm755 ${pkgdir}/lib
+ ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
+ ln -sf gcc ${pkgdir}/usr/bin/cc
+ ln -sf g++ ${pkgdir}/usr/bin/c++
+
+ # POSIX conformance launcher scripts for c89 and c99
+ cat > $pkgdir/usr/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+ case "$opt" in
+ -ansi|-std=c89|-std=iso9899:1990) fl="";;
+ -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ cat > $pkgdir/usr/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+ case "$opt" in
+ -std=c99|-std=iso9899:1999) fl="";;
+ -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ chmod 755 $pkgdir/usr/bin/c{8,9}9
+
+ # install the libstdc++ man pages
+ install -dm755 ${pkgdir}/usr/share/man/man3
+ install -m644 ${srcdir}/libstdc++-api-${_libstdcppmanver}.man/man3/* \
+ ${pkgdir}/usr/share/man/man3/
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-fortran-multilib()
+{
+ pkgdesc="Fortran front-end for GCC for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-fortran=$pkgver-$pkgrel")
+ conflicts=('gcc-fortran')
+ install=gcc-fortran.install
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libgfortran
+ make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
+ make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
+ install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
+
+ # remove libraries included in gcc-libs
+ rm -f ${pkgdir}/usr/lib{,32}/libgfortran.so*
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-fortran-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-objc-multilib()
+{
+ pkgdesc="Objective-C front-end for GCC for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-objc=$pkgver-$pkgrel")
+ conflicts=('gcc-objc')
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libobjc
+ install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+ install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+
+ # remove libraries included in gcc-libs
+ rm -f ${pkgdir}/usr/lib{,32}/libobjc.so*
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-objc-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-ada-multilib()
+{
+ pkgdesc="Ada front-end for GCC (GNAT) for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-ada=$pkgver-$pkgrel")
+ conflicts=('gcc-ada')
+ install=gcc-ada.install
+
+ cd gcc-build
+ make -j1 -C gcc DESTDIR=$pkgdir ada.install-{common,info}
+ install -m755 gcc/gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
+ make -j1 -C $CHOST/32/libada DESTDIR=${pkgdir} \
+ INSTALL="install" INSTALL_DATA="install -m644" install-gnatlib
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-ada-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
diff --git a/multilib/gcc-multilib/gcc-ada.install b/multilib/gcc-multilib/gcc-ada.install
new file mode 100644
index 000000000..81794685f
--- /dev/null
+++ b/multilib/gcc-multilib/gcc-ada.install
@@ -0,0 +1,22 @@
+infodir=usr/share/info
+filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/gcc-multilib/gcc-fortran.install b/multilib/gcc-multilib/gcc-fortran.install
new file mode 100644
index 000000000..2aeab7123
--- /dev/null
+++ b/multilib/gcc-multilib/gcc-fortran.install
@@ -0,0 +1,18 @@
+infodir=usr/share/info
+file="gfortran.info"
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/gcc-multilib/gcc-hash-style-both.patch b/multilib/gcc-multilib/gcc-hash-style-both.patch
new file mode 100644
index 000000000..fbb210598
--- /dev/null
+++ b/multilib/gcc-multilib/gcc-hash-style-both.patch
@@ -0,0 +1,163 @@
+#! /bin/sh -e
+
+# DP: Link using --hash-style=both (alpha, amd64, ia64, i386, powerpc, ppc64, s390, sparc)
+
+dir=
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+ pdir="-d $3"
+ dir="$3/"
+elif [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch)
+ patch $pdir -f --no-backup-if-mismatch -p0 < $0
+ #cd ${dir}gcc && autoconf
+ ;;
+ -unpatch)
+ patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
+ #rm ${dir}gcc/configure
+ ;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+2006-07-11 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/linux.h (LINK_SPEC): Add --hash-style=both.
+ * config/i386/linux64.h (LINK_SPEC): Likewise.
+ * config/rs6000/sysv4.h (LINK_OS_LINUX_SPEC): Likewise.
+ * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
+ LINK_OS_LINUX_SPEC64): Likewise.
+ * config/s390/linux.h (LINK_SPEC): Likewise.
+ * config/ia64/linux.h (LINK_SPEC): Likewise.
+ * config/sparc/linux.h (LINK_SPEC): Likewise.
+ * config/sparc/linux64.h (LINK_SPEC, LINK_ARCH32_SPEC,
+ LINK_ARCH64_SPEC): Likewise.
+ * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
+
+--- gcc/config/alpha/linux-elf.h.orig 2007-08-04 08:55:58.000000000 +0200
++++ gcc/config/alpha/linux-elf.h 2007-09-01 15:47:26.605865578 +0200
+@@ -39,7 +39,7 @@
+
+ #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
+
+-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
++#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
+ %{O*:-O3} %{!O*:-O1} \
+ %{shared:-shared} \
+ %{!shared: \
+--- gcc/config/s390/linux.h.orig 2007-08-04 08:55:59.000000000 +0200
++++ gcc/config/s390/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -77,7 +77,7 @@
+
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{static:-static} \
+--- gcc/config/sparc/linux.h.orig 2007-08-04 08:56:01.000000000 +0200
++++ gcc/config/sparc/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -132,7 +132,7 @@
+
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
++#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
+ %{!mno-relax:%{!r:-relax}} \
+ %{!shared: \
+ %{!ibcs: \
+--- gcc/config/sparc/linux64.h.orig 2007-08-04 08:56:01.000000000 +0200
++++ gcc/config/sparc/linux64.h 2007-09-01 15:47:26.605865578 +0200
+@@ -166,7 +166,7 @@
+ { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
+ { "link_arch", LINK_ARCH_SPEC },
+
+-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+@@ -175,7 +175,7 @@
+ %{static:-static}}} \
+ "
+
+-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+@@ -256,7 +256,7 @@
+ #else /* !SPARC_BI_ARCH */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+--- gcc/config/i386/linux.h.orig 2007-08-04 08:56:07.000000000 +0200
++++ gcc/config/i386/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -108,7 +108,7 @@
+ { "dynamic_linker", LINUX_DYNAMIC_LINKER }
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
++#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+--- gcc/config/i386/linux64.h.orig 2007-08-04 08:56:07.000000000 +0200
++++ gcc/config/i386/linux64.h 2007-09-01 15:48:27.336781690 +0200
+@@ -65,7 +65,7 @@
+ #endif
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
++#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/ia64/linux.h.orig 2006-12-12 18:59:53.000000000 +0100
++++ gcc/config/ia64/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -40,7 +40,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "\
++#define LINK_SPEC "--hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/rs6000/sysv4.h.orig 2007-08-08 23:37:49.000000000 +0200
++++ gcc/config/rs6000/sysv4.h 2007-09-01 15:47:26.615865729 +0200
+@@ -901,7 +901,7 @@
+ #define LINUX_DYNAMIC_LINKER \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
+
+-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
+
+--- gcc/config/rs6000/linux64.h.orig 2007-08-04 08:56:12.000000000 +0200
++++ gcc/config/rs6000/linux64.h 2007-09-01 15:47:26.615865729 +0200
+@@ -354,11 +354,11 @@
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
+
+
+-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}}"
+
+-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}"
+
diff --git a/multilib/gcc-multilib/gcc-libs.install b/multilib/gcc-multilib/gcc-libs.install
new file mode 100644
index 000000000..b5fbf9211
--- /dev/null
+++ b/multilib/gcc-multilib/gcc-libs.install
@@ -0,0 +1,14 @@
+infodir=usr/share/info
+file="libgomp.info"
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/gcc-multilib/gcc.install b/multilib/gcc-multilib/gcc.install
new file mode 100644
index 000000000..a7a405288
--- /dev/null
+++ b/multilib/gcc-multilib/gcc.install
@@ -0,0 +1,22 @@
+infodir=usr/share/info
+filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/gcc-multilib/gcc_pure64.patch b/multilib/gcc-multilib/gcc_pure64.patch
new file mode 100644
index 000000000..8c6b08171
--- /dev/null
+++ b/multilib/gcc-multilib/gcc_pure64.patch
@@ -0,0 +1,24 @@
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
+--- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
+@@ -49,7 +49,7 @@
+ done. */
+
+ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
+--- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/multilib/lib32-acl/PKGBUILD b/multilib/lib32-acl/PKGBUILD
new file mode 100644
index 000000000..6cfc4ec30
--- /dev/null
+++ b/multilib/lib32-acl/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id$
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=lib32-acl
+pkgver=2.2.49
+pkgrel=1
+pkgdesc="Access control list libraries (32-bit)"
+arch=('x86_64')
+url="http://savannah.nongnu.org/projects/acl"
+license=('LGPL')
+depends=('lib32-attr' 'acl')
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(http://mirrors.zerg.biz/nongnu/acl/acl-${pkgver}.src.tar.gz)
+sha256sums=('b9c7f4752e4ef4930a62fa5aa0d7efe1cba2b5a3a2d6ee2b45c0a70c72b7e5d5')
+
+build() {
+ cd "${srcdir}/acl-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ export INSTALL_USER=root INSTALL_GROUP=root
+ ./configure --prefix=/usr --libdir=/usr/lib32 --libexecdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/acl-${pkgver}"
+
+ make DIST_ROOT="${pkgdir}" install install-lib install-dev
+
+ rm -rf ${pkgdir}/usr/{bin,include,share}
+}
diff --git a/multilib/lib32-alsa-lib/PKGBUILD b/multilib/lib32-alsa-lib/PKGBUILD
new file mode 100644
index 000000000..8dff0f1d3
--- /dev/null
+++ b/multilib/lib32-alsa-lib/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 40235 2011-02-22 08:22:12Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=alsa-lib
+pkgname=lib32-${_pkgbasename}
+pkgver=1.0.24.1
+pkgrel=1
+pkgdesc="An alternative implementation of Linux sound support (32 bit)"
+arch=('x86_64')
+url="http://www.alsa-project.org"
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('gcc-multilib')
+license=('GPL')
+options=(!libtool)
+source=(ftp://ftp.alsa-project.org/pub/lib/${_pkgbasename}-$pkgver.tar.bz2)
+
+build() {
+ cd $srcdir/${_pkgbasename}-$pkgver
+ export CC='gcc -m32'
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ ./configure --prefix=/usr --libdir=/usr/lib32 --disable-python
+ make
+}
+
+package() {
+ cd $srcdir/${_pkgbasename}-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # Clean up lib32 package
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+}
+md5sums=('7cc05f25e1d5b65da8fb3fdcd540f226')
diff --git a/multilib/lib32-alsa-oss/PKGBUILD b/multilib/lib32-alsa-oss/PKGBUILD
new file mode 100644
index 000000000..bf8874c8e
--- /dev/null
+++ b/multilib/lib32-alsa-oss/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 26502 2010-09-15 22:26:51Z bluewind $
+# Maintainer: judd <jvinet@zeroflux.org>
+
+_pkgbasename=alsa-oss
+pkgname=lib32-${_pkgbasename}
+pkgver=1.0.17
+pkgrel=2
+pkgdesc="OSS compatibility library (32 bit)"
+arch=(x86_64)
+license=('GPL')
+url="http://www.alsa-project.org"
+options=(!libtool)
+depends=('lib32-glibc' 'lib32-alsa-lib' 'alsa-oss')
+source=(ftp://ftp.alsa-project.org/pub/oss-lib/${_pkgbasename}-$pkgver.tar.bz2)
+md5sums=('1b1850c2fc91476a73d50f537cbd402f')
+
+build() {
+ cd $srcdir/${_pkgbasename}-$pkgver
+
+ export CC='gcc -m32'
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/${_pkgbasename}-$pkgver
+
+ make DESTDIR="$pkgdir" install
+
+ # Clean up lib32 package
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+}
diff --git a/multilib/lib32-alsa-plugins/PKGBUILD b/multilib/lib32-alsa-plugins/PKGBUILD
new file mode 100644
index 000000000..4a0ce214d
--- /dev/null
+++ b/multilib/lib32-alsa-plugins/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 40238 2011-02-22 08:27:39Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=alsa-plugins
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.24
+pkgrel=1
+pkgdesc="Extra alsa plugins (32-bit)"
+arch=(x86_64)
+url="http://www.alsa-project.org"
+license=(GPL)
+depends=(lib32-alsa-lib $_pkgbasename)
+makedepends=(lib32-{libpulse,jack,speex,libsamplerate} gcc-multilib)
+optdepends=('lib32-libpulse: PulseAudio plugin'
+ 'lib32-jack: Jack plugin'
+ 'lib32-libsamplerate: libsamplerate resampling plugin'
+ 'lib32-speex: libspeexdsp resampling plugin')
+options=('!libtool')
+source=("ftp://ftp.alsa-project.org/pub/plugins/$_pkgbasename-$pkgver.tar.bz2")
+md5sums=('e4d4c90e11ab9d1a117afbbc1edd2b16')
+
+build() {
+ cd "$srcdir/$_pkgbasename-$pkgver"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32 --disable-avcodec
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgbasename-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/multilib/lib32-atk/PKGBUILD b/multilib/lib32-atk/PKGBUILD
new file mode 100644
index 000000000..2243310b5
--- /dev/null
+++ b/multilib/lib32-atk/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 27946 2010-09-30 16:10:31Z heftig $
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Maintainer: Mikko Seppälä <t-r-a-y@mbnet.fi>
+_pkgbasename=atk
+pkgname=lib32-$_pkgbasename
+pkgver=1.32.0
+pkgrel=1
+pkgdesc="A library providing a set of interfaces for accessibility (32-bit)"
+arch=('x86_64')
+license=('LGPL')
+depends=('lib32-glib2>=2.25.17' $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${_pkgbasename}/1.32/${_pkgbasename}-${pkgver}.tar.bz2)
+url='http://www.gtk.org/'
+sha256sums=('e9a3e598f75c4db1af914f8b052dd9f7e89e920a96cc187c18eb06b8339cb16e')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --disable-introspection
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+}
diff --git a/multilib/lib32-attr/PKGBUILD b/multilib/lib32-attr/PKGBUILD
new file mode 100644
index 000000000..af308863a
--- /dev/null
+++ b/multilib/lib32-attr/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26511 2010-09-15 22:28:05Z bluewind $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+_pkgbasename=attr
+pkgname=lib32-$_pkgbasename
+pkgver=2.4.44
+pkgrel=4
+pkgdesc="Extended attribute support library for ACL support (32-bit)"
+arch=(x86_64)
+url="http://oss.sgi.com/projects/xfs/"
+license=('LGPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('gcc-multilib' 'gettext')
+options=('!libtool')
+source=(ftp://ftp.archlinux.org/other/attr/attr-${pkgver}.src.tar.gz)
+sha256sums=('e01fa00686072a02dddf994e6217be950f51c1dc0852ad2e210c48b6e8de793a')
+
+build() {
+ cd $srcdir/attr-$pkgver
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ autoconf
+ ./configure --prefix=/usr --libdir=/usr/lib32 --libexecdir=/usr/lib32
+ make
+
+ # Doesn't like building as non-root
+
+ make prefix=${pkgdir}/usr \
+ PKG_LIB_DIR=$pkgdir/usr/lib32 \
+ PKG_DEVLIB_DIR=$pkgdir/usr/lib32 \
+ install-lib install-dev
+
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+}
diff --git a/multilib/lib32-audiofile/PKGBUILD b/multilib/lib32-audiofile/PKGBUILD
new file mode 100644
index 000000000..467f9bd3d
--- /dev/null
+++ b/multilib/lib32-audiofile/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 26514 2010-09-15 22:28:30Z bluewind $
+# Maintainer: dorphell <dorphell@archlinux.org>
+_pkgbasename=audiofile
+pkgname=lib32-$_pkgbasename
+pkgver=0.2.7
+pkgrel=3
+pkgdesc="Silicon Graphics Audio File Library (32-bit)"
+arch=('x86_64')
+url="http://www.68k.org/~michael/audiofile/"
+license=('LGPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${_pkgbasename}/0.2/${_pkgbasename}-${pkgver}.tar.bz2)
+sha256sums=('61efd278627415b5468426fc9e52aef32ea0fdac12b56bcdd72734c2ece5945e')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-cairo/PKGBUILD b/multilib/lib32-cairo/PKGBUILD
new file mode 100644
index 000000000..a8cbc6b72
--- /dev/null
+++ b/multilib/lib32-cairo/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 43547 2011-03-27 14:25:07Z bluewind $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+_pkgbasename=cairo
+pkgname=lib32-$_pkgbasename
+pkgver=1.10.2
+pkgrel=2
+pkgdesc="Cairo vector graphics library (32-bit)"
+arch=('x86_64')
+url="http://cairographics.org/"
+license=('LGPL' 'MPL')
+depends=('lib32-libpng' 'lib32-libxrender' 'lib32-fontconfig'
+ 'lib32-pixman' 'lib32-glib2' ${_pkgbasename})
+makedepends=('gcc-multilib')
+source=(http://cairographics.org/releases/${_pkgbasename}-${pkgver}.tar.gz
+ cairo-1.10.0-buggy_gradients.patch)
+sha1sums=('ccce5ae03f99c505db97c286a0c9a90a926d3c6e'
+ '8b843a9934e5112b6188e5bcf4adfc1fdaf9fa04')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-tee
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-cairo/cairo-1.10.0-buggy_gradients.patch b/multilib/lib32-cairo/cairo-1.10.0-buggy_gradients.patch
new file mode 100644
index 000000000..368e356d3
--- /dev/null
+++ b/multilib/lib32-cairo/cairo-1.10.0-buggy_gradients.patch
@@ -0,0 +1,13 @@
+--- a/src/cairo-xlib-display.c.ubuntu 2010-08-04 11:57:49.000000000 +0200
++++ b/src/cairo-xlib-display.c 2010-08-04 11:58:28.000000000 +0200
+@@ -353,11 +353,7 @@
+ /* Prior to Render 0.10, there is no protocol support for gradients and
+ * we call function stubs instead, which would silently consume the drawing.
+ */
+-#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
+ display->buggy_gradients = TRUE;
+-#else
+- display->buggy_gradients = FALSE;
+-#endif
+ display->buggy_pad_reflect = FALSE;
+ display->buggy_repeat = FALSE;
diff --git a/multilib/lib32-curl/PKGBUILD b/multilib/lib32-curl/PKGBUILD
new file mode 100755
index 000000000..48ab2a1b7
--- /dev/null
+++ b/multilib/lib32-curl/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 36008 2010-12-25 14:36:29Z ibiru $
+# Maintainer: Florian Pritz <flo@xssn.at>
+
+_pkgbasename=curl
+pkgname=lib32-$_pkgbasename
+pkgver=7.21.3
+pkgrel=1
+pkgdesc="An URL retrieval utility and library (32-bit)"
+arch=('x86_64')
+url="http://curl.haxx.se"
+license=('MIT')
+depends=('lib32-zlib' 'lib32-openssl' 'bash' 'ca-certificates' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=("http://curl.haxx.se/download/${_pkgbasename}-${pkgver}.tar.bz2")
+md5sums=('5b57fee22090b5c43a6886fdd35af2ce')
+
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ ./configure \
+ --with-random=/dev/urandom \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --disable-dependency-tracking \
+ --enable-ipv6 \
+ --disable-ldaps \
+ --disable-ldap \
+ --enable-manual \
+ --enable-versioned-symbols \
+ --with-ca-path=/etc/ssl/certs \
+ --without-libidn \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{share,bin}
+ #we need curlbuild.h
+ find ${pkgdir}/usr/include/curl -type f -not -name curlbuild.h -delete
+ #now save it as curlbuild-32.h
+ mv ${pkgdir}/usr/include/curl/curlbuild.h ${pkgdir}/usr/include/curl/curlbuild-32.h
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-db/PKGBUILD b/multilib/lib32-db/PKGBUILD
new file mode 100644
index 000000000..93be51e47
--- /dev/null
+++ b/multilib/lib32-db/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 35318 2010-12-18 21:29:14Z heftig $
+# Maintainer: Biru Ionut <biru.ionut at gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+_pkgbasename=db
+pkgname=lib32-$_pkgbasename
+pkgver=5.1.19
+pkgrel=1
+pkgdesc="The Berkeley DB embedded database system (32-bit)"
+arch=('x86_64')
+url="http://www.oracle.com/technology/software/products/berkeley-db/index.html"
+license=('custom')
+depends=('lib32-gcc-libs' $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(http://download-uk.oracle.com/berkeley-db/db-${pkgver}.tar.gz)
+md5sums=('76fcbfeebfcd09ba0b4d96bfdf8d884d')
+
+build() {
+ cd ${srcdir}/$_pkgbasename-${pkgver}/build_unix
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ../dist/configure --prefix=/usr --enable-compat185 \
+ --enable-shared --enable-static --enable-cxx --enable-dbm \
+ --libdir=/usr/lib32
+ make LIBSO_LIBS=-lpthread
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}/build_unix
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{docs,include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-dbus-core/PKGBUILD b/multilib/lib32-dbus-core/PKGBUILD
new file mode 100644
index 000000000..ac3a2e24a
--- /dev/null
+++ b/multilib/lib32-dbus-core/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 26527 2010-09-15 22:30:16Z bluewind $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+pkgname=lib32-dbus-core
+_pkgbasename=dbus-core
+pkgver=1.4.0
+pkgrel=2
+pkgdesc="Freedesktop.org message bus system (32-bit)"
+arch=('x86_64')
+url="http://www.freedesktop.org/Software/dbus"
+license=('GPL' 'custom')
+depends=('lib32-glibc' 'lib32-expat' 'dbus-core')
+makedepends=('gcc-multilib')
+options=(!libtool)
+source=(http://dbus.freedesktop.org/releases/dbus/dbus-${pkgver}.tar.gz)
+md5sums=('f59618b18d2fb2bd1fce9e1c5a2a3282')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/dbus-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib32 \
+ --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \
+ --with-system-pid-file=/var/run/dbus.pid \
+ --enable-inotify --disable-dnotify \
+ --disable-verbose-mode --disable-static \
+ --disable-tests --disable-asserts --without-x
+ make
+}
+package() {
+ cd "${srcdir}/dbus-${pkgver}"
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{bin,include,lib,share}
+ rm -rf "${pkgdir}"/{etc,var}
+
+ mkdir -p "${pkgdir}/usr/share/licenses"
+ ln -s ${_pkgbasename} "${pkgdir}/usr/share/licenses/${pkgname}"
+}
diff --git a/multilib/lib32-e2fsprogs/PKGBUILD b/multilib/lib32-e2fsprogs/PKGBUILD
new file mode 100644
index 000000000..ca7e2eb25
--- /dev/null
+++ b/multilib/lib32-e2fsprogs/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: mightyjaym <jm.ambrosino@free.fr>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+
+_pkgbasename=e2fsprogs
+pkgname=lib32-e2fsprogs
+pkgver=1.41.14
+pkgrel=2
+pkgdesc="Ext2 filesystem libraries (32-bit)"
+arch=(x86_64)
+license=('GPL' 'LGPL' 'MIT')
+url="http://e2fsprogs.sourceforge.net"
+depends=('lib32-util-linux' $_pkgbasename)
+makedepends=('bc' 'gcc-multilib')
+source=("http://downloads.sourceforge.net/sourceforge/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz")
+sha1sums=('24f9364fa3d4c0d7d00cb627b819d0e51055d6c5')
+
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 --with-root-prefix="" --enable-elf-shlibs \
+ --disable-{debugfs,imager,resizer,fsck,uuidd,libuuid,libblkid}
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install-libs
+
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-expat/CVE-2009-3560.patch b/multilib/lib32-expat/CVE-2009-3560.patch
new file mode 100644
index 000000000..5fe9c36c8
--- /dev/null
+++ b/multilib/lib32-expat/CVE-2009-3560.patch
@@ -0,0 +1,13 @@
+diff -urNad trunk~/lib/xmlparse.c trunk/lib/xmlparse.c
+--- trunk~/lib/xmlparse.c 2007-05-08 04:25:35.000000000 +0200
++++ trunk/lib/xmlparse.c 2009-12-29 21:57:22.141732904 +0100
+@@ -3703,6 +3703,9 @@
+ return XML_ERROR_UNCLOSED_TOKEN;
+ case XML_TOK_PARTIAL_CHAR:
+ return XML_ERROR_PARTIAL_CHAR;
++ case -XML_TOK_PROLOG_S:
++ tok = -tok;
++ break;
+ case XML_TOK_NONE:
+ #ifdef XML_DTD
+ /* for internal PE NOT referenced between declarations */
diff --git a/multilib/lib32-expat/CVE-2009-3720.patch b/multilib/lib32-expat/CVE-2009-3720.patch
new file mode 100644
index 000000000..65d16431f
--- /dev/null
+++ b/multilib/lib32-expat/CVE-2009-3720.patch
@@ -0,0 +1,12 @@
+diff -urNad trunk~/lib/xmltok_impl.c trunk/lib/xmltok_impl.c
+--- trunk~/lib/xmltok_impl.c 2006-11-26 18:34:46.000000000 +0100
++++ trunk/lib/xmltok_impl.c 2009-10-22 21:42:41.000000000 +0200
+@@ -1744,7 +1744,7 @@
+ const char *end,
+ POSITION *pos)
+ {
+- while (ptr != end) {
++ while (ptr < end) {
+ switch (BYTE_TYPE(enc, ptr)) {
+ #define LEAD_CASE(n) \
+ case BT_LEAD ## n: \
diff --git a/multilib/lib32-expat/PKGBUILD b/multilib/lib32-expat/PKGBUILD
new file mode 100644
index 000000000..c50cb9c79
--- /dev/null
+++ b/multilib/lib32-expat/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 26535 2010-09-15 22:31:07Z bluewind $
+
+_pkgbasename=expat
+pkgname=lib32-${_pkgbasename}
+pkgver=2.0.1
+pkgrel=7
+pkgdesc="An XML Parser library written in C (32 bit)"
+arch=('x86_64')
+url="http://expat.sourceforge.net/"
+license=('custom')
+makedepends=('gcc-multilib')
+depends=('lib32-glibc' "${_pkgbasename}")
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/expat/${_pkgbasename}-${pkgver}.tar.gz
+ CVE-2009-3560.patch
+ CVE-2009-3720.patch)
+md5sums=('ee8b492592568805593f81f8cdf2a04c'
+ '50603cac0f03aabc7087415251f592be'
+ 'f3eeb796f28945899216b815e5901996')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -Np1 -i $srcdir/CVE-2009-3560.patch
+ patch -Np1 -i $srcdir/CVE-2009-3720.patch
+ export CC='gcc -m32'
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ ./configure --prefix=/usr --libdir=/usr/lib32 --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/"
+ ln -s ${_pkgbasename} "${pkgdir}/usr/share/licenses/${pkgname}"
+
+ # Clean up lib32 package
+ rm -rf "${pkgdir}"/usr/{bin,include,share/man}
+}
diff --git a/multilib/lib32-flac/PKGBUILD b/multilib/lib32-flac/PKGBUILD
new file mode 100644
index 000000000..00c2b8791
--- /dev/null
+++ b/multilib/lib32-flac/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 26539 2010-09-15 22:31:33Z bluewind $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=flac
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.1
+pkgrel=7
+pkgdesc="Free Lossless Audio Codec (32-bit)"
+arch=('x86_64')
+url="http://flac.sourceforge.net/"
+license=('custom:Xiph' 'LGPL' 'GPL' 'FDL')
+depends=('lib32-libogg' 'lib32-gcc-libs' $_pkgbasename)
+makedepends=('nasm' gcc-multilib)
+options=('!libtool' '!makeflags')
+source=(http://downloads.sf.net/sourceforge/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz
+ flac-1.2.1-gcc-4.3-includes.patch)
+md5sums=('153c8b15a54da428d1f0fadc756c22c7'
+ 'b9d245422bbc547b18a72897366bea77')
+sha1sums=('bd54354900181b59db3089347cc84ad81e410b38'
+ '7e9f8c2ef4d9daf5ddd20df63b608fe19b8c1560')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ patch -Np1 -i ${srcdir}/flac-1.2.1-gcc-4.3-includes.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-shared \
+ --disable-rpath --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-flac/flac-1.2.1-gcc-4.3-includes.patch b/multilib/lib32-flac/flac-1.2.1-gcc-4.3-includes.patch
new file mode 100644
index 000000000..52fec8be5
--- /dev/null
+++ b/multilib/lib32-flac/flac-1.2.1-gcc-4.3-includes.patch
@@ -0,0 +1,11 @@
+diff -Naur flac-1.2.1-orig/examples/cpp/encode/file/main.cpp flac-1.2.1/examples/cpp/encode/file/main.cpp
+--- flac-1.2.1-orig/examples/cpp/encode/file/main.cpp 2007-09-13 09:58:03.000000000 -0600
++++ flac-1.2.1/examples/cpp/encode/file/main.cpp 2007-11-18 12:59:45.000000000 -0600
+@@ -30,6 +30,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <cstring>
+ #include "FLAC++/metadata.h"
+ #include "FLAC++/encoder.h"
+
diff --git a/multilib/lib32-fontconfig/30-urw-aliases.patch b/multilib/lib32-fontconfig/30-urw-aliases.patch
new file mode 100644
index 000000000..8077b869e
--- /dev/null
+++ b/multilib/lib32-fontconfig/30-urw-aliases.patch
@@ -0,0 +1,13 @@
+--- a/conf.d/30-urw-aliases.conf 2009-08-06 16:23:57.000000000 +0100
++++ b/conf.d/30-urw-aliases.conf 2009-08-06 16:25:07.000000000 +0100
+@@ -29,6 +29,10 @@
+ <family>Zapf Dingbats</family>
+ <accept><family>Dingbats</family></accept>
+ </alias>
++ <alias binding="same">
++ <family>ZapfDingbats</family>
++ <accept><family>Dingbats</family></accept>
++ </alias>
+ <match target="pattern">
+ <test name="family">
+ <string>Symbol</string>
diff --git a/multilib/lib32-fontconfig/PKGBUILD b/multilib/lib32-fontconfig/PKGBUILD
new file mode 100644
index 000000000..36f52ba32
--- /dev/null
+++ b/multilib/lib32-fontconfig/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 26542 2010-09-15 22:31:59Z bluewind $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=fontconfig
+pkgname=lib32-$_pkgbasename
+pkgver=2.8.0
+pkgrel=3
+pkgdesc="A library for configuring and customizing font access (32-bit)"
+arch=(x86_64)
+url="http://www.fontconfig.org/release/"
+license=('custom')
+depends=('lib32-expat>=2.0.1' 'lib32-freetype2>=2.3.11' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://www.fontconfig.org/release/${_pkgbasename}-${pkgver}.tar.gz
+ 30-urw-aliases.patch)
+md5sums=('77e15a92006ddc2adbb06f840d591c0e'
+ '51bc6cb633b50f3c28793361738aac5b')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -Np1 -i "${srcdir}/30-urw-aliases.patch"
+ # enable Position Independent Code for prelinking
+ export CFLAGS="${CFLAGS} -fPIC"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin} "$pkgdir"/{etc,var}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-freetype2/PKGBUILD b/multilib/lib32-freetype2/PKGBUILD
new file mode 100644
index 000000000..17e4917b2
--- /dev/null
+++ b/multilib/lib32-freetype2/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 35255 2010-12-18 00:33:57Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=freetype2
+pkgname=lib32-$_pkgbasename
+pkgver=2.4.4
+pkgrel=1
+pkgdesc="TrueType font rendering library (32-bit)"
+arch=(x86_64)
+license=('GPL')
+url="http://freetype.sourceforge.net"
+depends=('lib32-zlib' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver}.tar.bz2
+ freetype-2.3.0-enable-spr.patch
+ freetype-2.2.1-enable-valid.patch)
+md5sums=('b3e2b6e2f1c3e0dffa1fd2a0f848b671'
+ '816dc8619a6904a7385769433c0a8653'
+ '214119610444c9b02766ccee5e220680')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/freetype-${pkgver}"
+ patch -Np1 -i "${srcdir}/freetype-2.3.0-enable-spr.patch"
+ patch -Np1 -i "${srcdir}/freetype-2.2.1-enable-valid.patch"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/freetype-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-freetype2/freetype-2.2.1-enable-valid.patch b/multilib/lib32-freetype2/freetype-2.2.1-enable-valid.patch
new file mode 100644
index 000000000..c78b6b70f
--- /dev/null
+++ b/multilib/lib32-freetype2/freetype-2.2.1-enable-valid.patch
@@ -0,0 +1,20 @@
+--- freetype-2.2.1/modules.cfg.orig 2006-07-07 21:01:09.000000000 -0400
++++ freetype-2.2.1/modules.cfg 2006-07-07 21:01:54.000000000 -0400
+@@ -110,7 +110,7 @@
+ AUX_MODULES += cache
+
+ # TrueType GX/AAT table validation. Needs ftgxval.c below.
+-# AUX_MODULES += gxvalid
++AUX_MODULES += gxvalid
+
+ # Support for streams compressed with gzip (files with suffix .gz).
+ #
+@@ -124,7 +124,7 @@
+
+ # OpenType table validation. Needs ftotval.c below.
+ #
+-# AUX_MODULES += otvalid
++AUX_MODULES += otvalid
+
+ # Auxiliary PostScript driver component to share common code.
+ #
diff --git a/multilib/lib32-freetype2/freetype-2.3.0-enable-spr.patch b/multilib/lib32-freetype2/freetype-2.3.0-enable-spr.patch
new file mode 100644
index 000000000..8432e28a4
--- /dev/null
+++ b/multilib/lib32-freetype2/freetype-2.3.0-enable-spr.patch
@@ -0,0 +1,11 @@
+--- freetype-2.3.0/include/freetype/config/ftoption.h.spf 2007-01-18 14:27:34.000000000 -0500
++++ freetype-2.3.0/include/freetype/config/ftoption.h 2007-01-18 14:27:48.000000000 -0500
+@@ -92,7 +92,7 @@
+ /* This is done to allow FreeType clients to run unmodified, forcing */
+ /* them to display normal gray-level anti-aliased glyphs. */
+ /* */
+-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
++#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING
+
+
+ /*************************************************************************/
diff --git a/multilib/lib32-gdk-pixbuf2/PKGBUILD b/multilib/lib32-gdk-pixbuf2/PKGBUILD
new file mode 100644
index 000000000..03df23902
--- /dev/null
+++ b/multilib/lib32-gdk-pixbuf2/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 91063 2010-09-21 19:21:24Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+_pkgbasename=gdk-pixbuf2
+pkgname=lib32-$_pkgbasename
+pkgver=2.22.1
+pkgrel=1
+pkgdesc="An image loading library for gtk2 (32-bit)"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('lib32-glib2>=2.25.15'
+ lib32-lib{'png>=1.4.3','tiff>=3.9.4','jpeg>=8.0.2',x11}
+ $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool' '!docs')
+install=gdk-pixbuf2.install
+source=(http://download.gnome.org/sources/gdk-pixbuf/2.22/gdk-pixbuf-${pkgver}.tar.bz2)
+sha256sums=('6ce87eda24af9362307b2593c154d0b660f4e26d0abf2e71d46d0ddd55fd953d')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --without-libjasper \
+ --with-included-loaders=png
+ make
+}
+
+package() {
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/etc
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ cd "${pkgdir}"/usr/bin
+ mv gdk-pixbuf-query-loaders gdk-pixbuf-query-loaders-32
+ rm gdk-pixbuf-csource
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/lib32-gdk-pixbuf2/gdk-pixbuf2.install b/multilib/lib32-gdk-pixbuf2/gdk-pixbuf2.install
new file mode 100644
index 000000000..92d58ef04
--- /dev/null
+++ b/multilib/lib32-gdk-pixbuf2/gdk-pixbuf2.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gdk-pixbuf-query-loaders-32 --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache
+}
diff --git a/multilib/lib32-giflib/PKGBUILD b/multilib/lib32-giflib/PKGBUILD
new file mode 100644
index 000000000..a311cfa8e
--- /dev/null
+++ b/multilib/lib32-giflib/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Baptiste Daroussin <baptiste.daroussin@gmail.com>
+# Contributor: Grigorios Bouzakis <grbzks[at]gmail[dot]com>
+# Contributor: mightyjaym <jm.ambrosino@free.fr>
+
+_pkgbasename=giflib
+pkgname=lib32-$_pkgbasename
+pkgver=4.1.6
+pkgrel=5
+pkgdesc="A library for reading and writing gif images (32-bit)"
+url="http://sourceforge.net/projects/giflib/"
+arch=('x86_64')
+license=('MIT')
+depends=('lib32-libx11' 'lib32-libsm' $_pkgbasename)
+makedepends=(gcc-multilib)
+provides=("lib32-libungif=${pkgver}")
+conflicts=('lib32-libungif')
+replaces=('lib32-libungif')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/giflib/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('7125644155ae6ad33dbc9fc15a14735f')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # libungif compatibility - instructions taken from Redhat specfile
+ MAJOR=`echo ${pkgver} | sed 's/\([0-9]\+\)\..*/\1/'`
+ gcc -shared -Wl,-soname,libungif.so.${MAJOR} -Llib/.libs -lgif -o libungif.so.${pkgver}
+ install -m755 libungif.so.${pkgver} ${pkgdir}/usr/lib32/
+ ln -sf libungif.so.${pkgver} ${pkgdir}/usr/lib32/libungif.so.4
+ ln -sf libungif.so.4 ${pkgdir}/usr/lib32/libungif.so
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ install -m755 -d ${pkgdir}/usr/share/licenses
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-glew/PKGBUILD b/multilib/lib32-glew/PKGBUILD
new file mode 100644
index 000000000..ca8a47eaf
--- /dev/null
+++ b/multilib/lib32-glew/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 39623 2011-02-13 10:47:57Z bluewind $
+# Maintainer: Florian Pritz <flo@xinu.at>
+
+_pkgbasename=glew
+pkgname=lib32-$_pkgbasename
+pkgver=1.5.8
+pkgrel=2
+pkgdesc="A cross-platform C/C++ extension loading library (32 bit)"
+arch=('x86_64')
+url="http://glew.sourceforge.net"
+license=('BSD' 'MIT' 'GPL')
+depends=('lib32-libxmu' 'lib32-libxi' 'lib32-mesa' "$_pkgbasename>=$pkgver")
+makedepends=('gcc-multilib')
+source=(http://downloads.sourceforge.net/${_pkgbasename}/${_pkgbasename}-${pkgver}.tgz)
+md5sums=('342c8dc64fb9daa6af245b132e086bdd')
+sha1sums=('450946935faa20ac4950cb42ff025be2c1f7c22e')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ sed -i 's|CC = cc|CC = gcc -m32|' config/Makefile.linux
+ sed -i 's|LD = cc|LD = gcc -m32|' config/Makefile.linux
+ sed -i 's|lib64|lib32|' config/Makefile.linux
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make GLEW_DEST="${pkgdir}/usr" install
+ chmod 0755 "${pkgdir}/usr/lib32/libGLEW.so.${pkgver}"
+
+ rm -rf "${pkgdir}"/usr/{include,bin,lib32/libGLEW.a}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-glib/PKGBUILD b/multilib/lib32-glib/PKGBUILD
new file mode 100644
index 000000000..a863c66f6
--- /dev/null
+++ b/multilib/lib32-glib/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 29612 2010-10-17 13:00:45Z pschmitz $
+
+_pkgbasename=glib
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.10
+pkgrel=11
+pkgdesc="Common C routines used by Gtk+ and other libs (32-bit)"
+arch=('x86_64')
+url="http://www.gtk.org/"
+license=('LGPL')
+depends=('lib32-glibc' "${_pkgbasename}")
+makedepends=('gcc-multilib')
+options=('!libtool' '!docs')
+source=("ftp://ftp.gtk.org/pub/gtk/v1.2/${_pkgbasename}-${pkgver}.tar.gz"
+ 'gcc340.patch'
+ 'aclocal-fixes.patch')
+md5sums=('6fe30dad87c77b91b632def29dd69ef9'
+ '877b3330e822a4be69a0f8a8c268cfd7'
+ 'e52c4b88427b9785bb8049dbdc9ff6fb')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ patch -Np1 -i ../gcc340.patch
+ patch -Np0 -i ../aclocal-fixes.patch
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --libdir=/usr/lib32 \
+ --infodir=/usr/share/info \
+ --host=x86_64-unknown-linux-gnu \
+ --target=x86_64-unknown-linux-gnu
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}"/usr/{share,include,bin,lib32/glib}
+}
diff --git a/multilib/lib32-glib/aclocal-fixes.patch b/multilib/lib32-glib/aclocal-fixes.patch
new file mode 100644
index 000000000..b064074aa
--- /dev/null
+++ b/multilib/lib32-glib/aclocal-fixes.patch
@@ -0,0 +1,11 @@
+--- glib.m4.orig 2006-03-05 13:13:24.000000000 +0000
++++ glib.m4 2006-03-05 13:13:35.000000000 +0000
+@@ -5,7 +5,7 @@
+ dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or
+ dnl gthread is specified in MODULES, pass to glib-config
+ dnl
+-AC_DEFUN(AM_PATH_GLIB,
++AC_DEFUN([AM_PATH_GLIB],
+ [dnl
+ dnl Get the cflags and libraries from the glib-config script
+ dnl
diff --git a/multilib/lib32-glib/gcc340.patch b/multilib/lib32-glib/gcc340.patch
new file mode 100644
index 000000000..941111ae7
--- /dev/null
+++ b/multilib/lib32-glib/gcc340.patch
@@ -0,0 +1,15 @@
+diff -Naur glib-1.2.10.orig/glib.h glib-1.2.10/glib.h
+--- glib-1.2.10.orig/glib.h 2001-02-27 04:44:38.000000000 +0100
++++ glib-1.2.10/glib.h 2004-05-27 15:50:32.436527848 +0200
+@@ -271,8 +271,10 @@
+
+ /* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with
+ * macros, so we can refer to them as strings unconditionally.
++ *
++ * Unfortunately these are _not_ treated as strings anymore in GCC3.4.
+ */
+-#ifdef __GNUC__
++#if defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
+ #define G_GNUC_FUNCTION __FUNCTION__
+ #define G_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__
+ #else /* !__GNUC__ */
diff --git a/multilib/lib32-glib2/PKGBUILD b/multilib/lib32-glib2/PKGBUILD
new file mode 100644
index 000000000..e9fce3398
--- /dev/null
+++ b/multilib/lib32-glib2/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 36638 2011-01-05 16:58:45Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+_pkgbasename=glib2
+pkgname=lib32-$_pkgbasename
+pkgver=2.26.1
+pkgrel=2
+pkgdesc="Common C routines used by GTK+ 2.4 and other libs (32-bit)"
+url="http://www.gtk.org/"
+arch=('x86_64')
+license=('LGPL')
+depends=('lib32-pcre' 'lib32-zlib' 'lib32-dbus-core' $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool' '!docs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.26/glib-${pkgver}.tar.bz2)
+sha256sums=('7a74ff12b6b9dee1f2d0e520b56b68b621920c4f4250bdf23468e515625c28d5')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/glib-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32 \
+ --enable-static --enable-shared --with-pcre=system --disable-fam
+ make
+}
+
+package() {
+ cd "${srcdir}/glib-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/{etc,usr/{share,include}}
+
+ cd "${pkgdir}"/usr/bin
+ mv gio-querymodules gio-querymodules-32
+ rm -f gdbus glib* gobject-query gsettings gtester*
+}
diff --git a/multilib/lib32-glibc/PKGBUILD b/multilib/lib32-glibc/PKGBUILD
new file mode 100644
index 000000000..2308cb13a
--- /dev/null
+++ b/multilib/lib32-glibc/PKGBUILD
@@ -0,0 +1,123 @@
+# $Id: PKGBUILD 39932 2011-02-18 23:00:49Z 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.13
+pkgrel=4
+_glibcdate=20110117
+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-prelink.patch
+ lib32-glibc.conf)
+md5sums=('b7b17d9c6b5b71b5e5322e04ca63c190'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '24dfab6fd244f3773523412588ecc52c'
+ '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=12489
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=25b3aada (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.13-prelink.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
+
+ # 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/lib32-glibc/glibc-2.10-bz4781.patch b/multilib/lib32-glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 000000000..cf1a97a18
--- /dev/null
+++ b/multilib/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/lib32-glibc/glibc-2.10-dont-build-timezone.patch b/multilib/lib32-glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 000000000..d3abeff17
--- /dev/null
+++ b/multilib/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/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch b/multilib/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch
new file mode 100644
index 000000000..e84754279
--- /dev/null
+++ b/multilib/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/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/multilib/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
new file mode 100644
index 000000000..ce089b49c
--- /dev/null
+++ b/multilib/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/lib32-glibc/glibc-2.13-prelink.patch b/multilib/lib32-glibc/glibc-2.13-prelink.patch
new file mode 100644
index 000000000..bef7998a8
--- /dev/null
+++ b/multilib/lib32-glibc/glibc-2.13-prelink.patch
@@ -0,0 +1,26 @@
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 9a560b3..201c9cf 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2168,6 +2168,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ we need it in the memory handling later. */
+ GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist;
+
++ /* Remember the last search directory added at startup, now that
++ malloc will no longer be the one from dl-minimal.c. */
++ GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
++
+ if (prelinked)
+ {
+ if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL)
+@@ -2288,10 +2292,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lossage);
+ }
+
+- /* Remember the last search directory added at startup, now that
+- malloc will no longer be the one from dl-minimal.c. */
+- GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
+-
+ if (! prelinked && rtld_multiple_ref)
+ {
+ /* There was an explicit ref to the dynamic linker as a shared lib.
diff --git a/multilib/lib32-glibc/glibc-__i686.patch b/multilib/lib32-glibc/glibc-__i686.patch
new file mode 100644
index 000000000..28d5dd424
--- /dev/null
+++ b/multilib/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/lib32-glibc/lib32-glibc.conf b/multilib/lib32-glibc/lib32-glibc.conf
new file mode 100644
index 000000000..9b08c3f43
--- /dev/null
+++ b/multilib/lib32-glibc/lib32-glibc.conf
@@ -0,0 +1 @@
+/usr/lib32
diff --git a/multilib/lib32-gnutls/PKGBUILD b/multilib/lib32-gnutls/PKGBUILD
new file mode 100644
index 000000000..c9a313f09
--- /dev/null
+++ b/multilib/lib32-gnutls/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 35315 2010-12-18 20:32:19Z ibiru $
+# Maintainer: Biru Ionut <ionut@archlinux.ro
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+_pkgbasename=gnutls
+pkgname=lib32-$_pkgbasename
+pkgver=2.10.4
+pkgrel=1
+pkgdesc="A library which provides a secure layer over a reliable transport layer (32-bit)"
+arch=('x86_64')
+license=('GPL3' 'LGPL')
+url="http://www.gnu.org/software/gnutls/"
+options=('libtool')
+# uses built-in libtasn1 for the moment
+depends=(lib32-{gcc-libs,readline,libgcrypt,zlib})
+makedepends=('gcc-multilib')
+source=(ftp://ftp.gnu.org/gnu/gnutls/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('4e1517084018a8b1fdc96daabea40528')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --with-zlib --disable-guile
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+}
diff --git a/multilib/lib32-gtk/PKGBUILD b/multilib/lib32-gtk/PKGBUILD
new file mode 100644
index 000000000..bc1f236a4
--- /dev/null
+++ b/multilib/lib32-gtk/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 29612 2010-10-17 13:00:45Z pschmitz $
+
+_pkgbasename=gtk
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.10
+pkgrel=11
+pkgdesc="The GTK+ toolkit (32-bit)"
+arch=('x86_64')
+url="http://www.gtk.org/"
+license=('LGPL')
+depends=('lib32-libxi' 'lib32-glib' "${_pkgbasename}")
+makedepends=('gcc-multilib' 'lib32-libxt')
+options=('!libtool')
+source=("ftp://ftp.gtk.org/pub/gtk/v1.2/gtk+-${pkgver}.tar.gz"
+ 'aclocal-fixes.patch')
+md5sums=('4d5cb2fc7fb7830e4af9747a36bfce20'
+ 'c59d4906602d99a7468f7334b6fc3b4e')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/gtk+-${pkgver}
+ patch -p0 -i ${srcdir}/aclocal-fixes.patch
+
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib32 \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --host=x86_64-unknown-linux-gnu \
+ --target=x86_64-unknown-linux-gnu \
+ --with-xinput=xfree
+ make
+}
+
+package() {
+ cd ${srcdir}/gtk+-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}/"{usr/{share,include,bin},etc}
+}
diff --git a/multilib/lib32-gtk/aclocal-fixes.patch b/multilib/lib32-gtk/aclocal-fixes.patch
new file mode 100644
index 000000000..dd2ffbd44
--- /dev/null
+++ b/multilib/lib32-gtk/aclocal-fixes.patch
@@ -0,0 +1,11 @@
+--- gtk.m4.orig 2006-03-05 13:18:09.000000000 +0000
++++ gtk.m4 2006-03-05 13:18:20.000000000 +0000
+@@ -4,7 +4,7 @@
+ dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+ dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
+ dnl
+-AC_DEFUN(AM_PATH_GTK,
++AC_DEFUN([AM_PATH_GTK],
+ [dnl
+ dnl Get the cflags and libraries from the gtk-config script
+ dnl
diff --git a/multilib/lib32-gtk2/PKGBUILD b/multilib/lib32-gtk2/PKGBUILD
new file mode 100644
index 000000000..60be9458c
--- /dev/null
+++ b/multilib/lib32-gtk2/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 33371 2010-11-24 00:05:20Z lcarlier $
+# Maintainer: Ionut Biru <ibiru@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+
+_pkgbasename=gtk2
+pkgname=lib32-$_pkgbasename
+pkgver=2.22.1
+pkgrel=2
+pkgdesc="The GTK+ Toolkit (v2) (32-bit)"
+arch=('x86_64')
+url="http://www.gtk.org/"
+install=gtk2.install
+depends=(lib32-{'atk>=1.30.0','pango>=1.28.0','cairo>=1.10.0','heimdal>=1.3.2','gnutls>=2.8.6','gdk-pixbuf2>=2.22.1'}
+ lib32-lib{'cups>=1.4.4',xcursor,'xrandr>=1.3','xi>=1.3',xinerama,xcomposite,xdamage}
+ $_pkgbasename)
+makedepends=('pkgconfig' 'gcc-multilib')
+options=('!libtool' '!docs')
+license=('LGPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.22/gtk+-${pkgver}.tar.bz2
+ xid-collision-debug.patch
+ gtk-modules-32.patch)
+sha256sums=('965bc124f0d25087c4cb2a64cbfd7e4f896e05be8d560fbba68dd8685ba24d07'
+ 'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558'
+ '2effb13404442ae266d4c663347e88cd1ca19e9a83b452da1743bac16af9c7b0')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/gtk+-${pkgver}"
+ patch -Np1 -i "${srcdir}/xid-collision-debug.patch"
+ patch -p1 -i ${srcdir}/gtk-modules-32.patch
+
+ CXX=/bin/false ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libdir=/usr/lib32 \
+ --with-xinput=yes
+ make
+}
+
+package() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/etc
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ cd "${pkgdir}"/usr/bin
+ mv gtk-query-immodules-2.0 gtk-query-immodules-2.0-32
+ rm -f gtk-builder-convert gtk-demo gtk-update-icon-cache
+}
diff --git a/multilib/lib32-gtk2/gtk-modules-32.patch b/multilib/lib32-gtk2/gtk-modules-32.patch
new file mode 100644
index 000000000..a2530c3bf
--- /dev/null
+++ b/multilib/lib32-gtk2/gtk-modules-32.patch
@@ -0,0 +1,12 @@
+diff -ur gtk+-2.20.1/gtk/gtkrc.c gtk+-2.20.1-32/gtk/gtkrc.c
+--- gtk+-2.20.1/gtk/gtkrc.c 2010-05-03 01:28:21.000000000 +0200
++++ gtk+-2.20.1-32/gtk/gtkrc.c 2010-08-26 07:22:42.316920033 +0200
+@@ -450,7 +450,7 @@
+ if (im_module_file)
+ result = g_strdup (im_module_file);
+ else
+- result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules", NULL);
++ result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules-32", NULL);
+ }
+
+ return result;
diff --git a/multilib/lib32-gtk2/gtk2.install b/multilib/lib32-gtk2/gtk2.install
new file mode 100644
index 000000000..49f86f550
--- /dev/null
+++ b/multilib/lib32-gtk2/gtk2.install
@@ -0,0 +1,16 @@
+post_install() {
+ GTK_PATH=/usr/lib32/gtk-2.0 usr/bin/gtk-query-immodules-2.0-32 > etc/gtk-2.0/gtk.immodules-32
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f etc/gtk-2.0/gtk.immodules-32 &>/dev/null
+ rm -f etc/gtk-2.0/gdk-pixbuf.loaders-32 &>/dev/null
+}
diff --git a/multilib/lib32-gtk2/xid-collision-debug.patch b/multilib/lib32-gtk2/xid-collision-debug.patch
new file mode 100644
index 000000000..d61238c3b
--- /dev/null
+++ b/multilib/lib32-gtk2/xid-collision-debug.patch
@@ -0,0 +1,15 @@
+--- gtk+-2.18.3/gdk/x11/gdkxid.c 2009-06-19 04:59:18.000000000 +0200
++++ gtk+-2.18.3/gdk/x11/gdkxid.c.new 2009-07-22 11:30:12.000000000 +0200
+@@ -56,10 +56,10 @@
+ if (!display_x11->xid_ht)
+ display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash,
+ (GEqualFunc) gdk_xid_equal);
+-
++/*
+ if (g_hash_table_lookup (display_x11->xid_ht, xid))
+ g_warning ("XID collision, trouble ahead");
+-
++*/
+ g_hash_table_insert (display_x11->xid_ht, xid, data);
+ }
+
diff --git a/multilib/lib32-heimdal/001_all_heimdal-no_libedit.patch b/multilib/lib32-heimdal/001_all_heimdal-no_libedit.patch
new file mode 100644
index 000000000..a551bdce1
--- /dev/null
+++ b/multilib/lib32-heimdal/001_all_heimdal-no_libedit.patch
@@ -0,0 +1,10 @@
+--- cf/krb-readline.m4 2005-06-16 18:28:32.000000000 +0200
++++ cf/krb-readline.m4 2005-06-27 23:17:06.000000000 +0200
+@@ -6,7 +6,6 @@
+ dnl el_init
+
+ AC_DEFUN([KRB_READLINE],[
+-AC_FIND_FUNC_NO_LIBS(el_init, edit, [], [], [$LIB_tgetent])
+ if test "$ac_cv_func_el_init" = yes ; then
+ AC_CACHE_CHECK(for four argument el_init, ac_cv_func_el_init_four,[
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
diff --git a/multilib/lib32-heimdal/002_all_heimal-fPIC.patch b/multilib/lib32-heimdal/002_all_heimal-fPIC.patch
new file mode 100644
index 000000000..c67dbae76
--- /dev/null
+++ b/multilib/lib32-heimdal/002_all_heimal-fPIC.patch
@@ -0,0 +1,12 @@
+--- lib/editline/Makefile.am 2005-06-16 18:28:44.000000000 +0200
++++ lib/editline/Makefile.am 2005-06-27 23:21:02.000000000 +0200
+@@ -41,6 +41,9 @@
+
+ EXTRA_DIST = $(man_MANS)
+
++$(libeditline_la_OBJECTS): %.lo: %.c
++ $(LTCOMPILE) -fPIC -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
++
+ snprintf.c:
+ $(LN_S) $(srcdir)/../roken/snprintf.c .
+ strdup.c:
diff --git a/multilib/lib32-heimdal/003_all_heimdal-rxapps.patch b/multilib/lib32-heimdal/003_all_heimdal-rxapps.patch
new file mode 100644
index 000000000..40fc05f08
--- /dev/null
+++ b/multilib/lib32-heimdal/003_all_heimdal-rxapps.patch
@@ -0,0 +1,22 @@
+--- appl/kx/rxtelnet.in 2005-06-16 18:29:10.000000000 +0200
++++ appl/kx/rxtelnet.in 2005-06-27 23:21:34.000000000 +0200
+@@ -2,7 +2,7 @@
+ # $Id: rxtelnet.in,v 1.31 2004/03/07 17:22:06 lha Exp $
+ #
+ usage="Usage: $0 [-l username] [-k] [-fF] [-t args_to_telnet] [-x args_to_xterm] [-K args_to_kx] [-w term_emulator] [-b telnet_binary] [-n] [-v] [-h | --help] [--version] host [port]"
+-binary=telnet
++binary=ktelnet
+ term=
+ kx_args=-P
+ while true
+--- appl/kx/rxterm.in 2005-06-16 18:29:10.000000000 +0200
++++ appl/kx/rxterm.in 2005-06-27 23:21:55.000000000 +0200
+@@ -2,7 +2,7 @@
+ # $Id: rxterm.in,v 1.23 2002/03/18 17:37:34 joda Exp $
+ #
+ usage="Usage: $0 [-l username] [-k] [-f] [-r rsh_args] [-x xterm_args] [-K kx_args] [-w term_emulator] [-b rsh_binary][-v] [-h | --help] [--version] host"
+-binary=rsh
++binary=krsh
+ term=xterm
+ while true
+ do
diff --git a/multilib/lib32-heimdal/005_all_heimdal-suid_fix.patch b/multilib/lib32-heimdal/005_all_heimdal-suid_fix.patch
new file mode 100644
index 000000000..35a9ed9f6
--- /dev/null
+++ b/multilib/lib32-heimdal/005_all_heimdal-suid_fix.patch
@@ -0,0 +1,20 @@
+--- appl/su/Makefile.am 2005-06-16 18:27:46.000000000 +0200
++++ appl/su/Makefile.am 2005-06-27 23:25:21.000000000 +0200
+@@ -7,6 +7,7 @@
+ bin_PROGRAMS = su
+ bin_SUIDS = su
+ su_SOURCES = su.c supaths.h
++su_LDFLAGS = -Wl,-z,now
+ man_MANS = su.1
+
+ LDADD = $(LIB_kafs) \
+--- appl/otp/Makefile.am 2005-06-16 18:28:46.000000000 +0200
++++ appl/otp/Makefile.am 2005-06-27 23:25:40.000000000 +0200
+@@ -8,6 +8,7 @@
+ bin_SUIDS = otp
+ otp_SOURCES = otp.c otp_locl.h
+ otpprint_SOURCES = otpprint.c otp_locl.h
++otp_LDFLAGS = -Wl,-z,now
+
+ man_MANS = otp.1 otpprint.1
+
diff --git a/multilib/lib32-heimdal/012_all_heimdal-berkdb.patch b/multilib/lib32-heimdal/012_all_heimdal-berkdb.patch
new file mode 100644
index 000000000..46762c220
--- /dev/null
+++ b/multilib/lib32-heimdal/012_all_heimdal-berkdb.patch
@@ -0,0 +1,124 @@
+Binary files heimdal-0.7-old/cf/.find-func-no-libs2.m4.swp and heimdal-0.7/cf/.find-func-no-libs2.m4.swp differ
+Index: heimdal/cf/db.m4
+===================================================================
+--- heimdal.orig/cf/db.m4
++++ heimdal/cf/db.m4
+@@ -18,24 +18,13 @@ db_type=unknown
+
+ if test "$enable_berkeley_db" != no; then
+
+- AC_CHECK_HEADERS([ \
+- db4/db.h \
+- db3/db.h \
+- db.h \
+- db_185.h \
+- ])
++ AC_CHECK_HEADERS([db.h])
+
+ dnl db_create is used by db3 and db4
+
+- AC_FIND_FUNC_NO_LIBS(db_create, db4 db3 db, [
++ AC_FIND_FUNC_NO_LIBS(db_create, db, [
+ #include <stdio.h>
+- #ifdef HAVE_DB4_DB_H
+- #include <db4/db.h>
+- #elif defined(HAVE_DB3_DB_H)
+- #include <db3/db.h>
+- #else
+ #include <db.h>
+- #endif
+ ],[NULL, NULL, 0])
+
+ if test "$ac_cv_func_db_create" = "yes"; then
+@@ -50,17 +39,9 @@ dnl db_create is used by db3 and db4
+
+ dnl dbopen is used by db1/db2
+
+- AC_FIND_FUNC_NO_LIBS(dbopen, db2 db, [
++ AC_FIND_FUNC_NO_LIBS(dbopen, db, [
+ #include <stdio.h>
+- #if defined(HAVE_DB2_DB_H)
+- #include <db2/db.h>
+- #elif defined(HAVE_DB_185_H)
+- #include <db_185.h>
+- #elif defined(HAVE_DB_H)
+ #include <db.h>
+- #else
+- #error no db.h
+- #endif
+ ],[NULL, 0, 0, 0, NULL])
+
+ if test "$ac_cv_func_dbopen" = "yes"; then
+Index: heimdal/lib/hdb/db.c
+===================================================================
+--- heimdal.orig/lib/hdb/db.c
++++ heimdal/lib/hdb/db.c
+@@ -37,11 +37,7 @@ RCSID("$Id: db.c 20215 2007-02-09 21:59:
+
+ #if HAVE_DB1
+
+-#if defined(HAVE_DB_185_H)
+-#include <db_185.h>
+-#elif defined(HAVE_DB_H)
+ #include <db.h>
+-#endif
+
+ static krb5_error_code
+ DB_close(krb5_context context, HDB *db)
+Index: heimdal/lib/hdb/db3.c
+===================================================================
+--- heimdal.orig/lib/hdb/db3.c
++++ heimdal/lib/hdb/db3.c
+@@ -37,13 +37,7 @@ RCSID("$Id: db3.c 21610 2007-07-17 07:10
+
+ #if HAVE_DB3
+
+-#ifdef HAVE_DB4_DB_H
+-#include <db4/db.h>
+-#elif defined(HAVE_DB3_DB_H)
+-#include <db3/db.h>
+-#else
+ #include <db.h>
+-#endif
+
+ static krb5_error_code
+ DB_close(krb5_context context, HDB *db)
+Index: heimdal/lib/roken/getcap.c
+===================================================================
+--- heimdal.orig/lib/roken/getcap.c
++++ heimdal/lib/roken/getcap.c
+@@ -38,11 +38,13 @@
+ #include "roken.h"
+ RCSID("$Id: getcap.c 16561 2006-01-13 14:25:32Z lha $");
+
++#if defined(HAVE_DBOPEN) && defined(HAVE_DB_H)
++#define USE_DB
++#endif
++
+ #include <sys/types.h>
+ #include <ctype.h>
+-#if defined(HAVE_DB_185_H)
+-#include <db_185.h>
+-#elif defined(HAVE_DB_H)
++#ifdef USE_DB
+ #include <db.h>
+ #endif
+ #include <errno.h>
+Index: heimdal/lib/roken/ndbm_wrap.c
+===================================================================
+--- heimdal.orig/lib/roken/ndbm_wrap.c
++++ heimdal/lib/roken/ndbm_wrap.c
+@@ -37,13 +37,7 @@ RCSID("$Id: ndbm_wrap.c 21634 2007-07-17
+ #endif
+
+ #include "ndbm_wrap.h"
+-#if defined(HAVE_DB4_DB_H)
+-#include <db4/db.h>
+-#elif defined(HAVE_DB3_DB_H)
+-#include <db3/db.h>
+-#else
+ #include <db.h>
+-#endif
+
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/multilib/lib32-heimdal/013_all_heimdal-pthread-lib.patch b/multilib/lib32-heimdal/013_all_heimdal-pthread-lib.patch
new file mode 100644
index 000000000..19f879407
--- /dev/null
+++ b/multilib/lib32-heimdal/013_all_heimdal-pthread-lib.patch
@@ -0,0 +1,11 @@
+--- heimdal-0.7.1/cf/pthreads.m4.old 2005-09-09 12:12:28.000000000 +0000
++++ heimdal-0.7.1/cf/pthreads.m4 2005-09-17 22:23:23.000000000 +0000
+@@ -32,7 +32,7 @@
+ 2.*)
+ native_pthread_support=yes
+ PTHREADS_CFLAGS=-pthread
+- PTHREADS_LIBS=-pthread
++ PTHREADS_LIBS=-lpthread
+ ;;
+ esac
+ ;;
diff --git a/multilib/lib32-heimdal/014_all_heimdal-path.patch b/multilib/lib32-heimdal/014_all_heimdal-path.patch
new file mode 100644
index 000000000..36a86f1f9
--- /dev/null
+++ b/multilib/lib32-heimdal/014_all_heimdal-path.patch
@@ -0,0 +1,50 @@
+--- appl/rcp/rcp.c.old 2006-05-03 13:31:59.398493625 +0200
++++ appl/rcp/rcp.c 2006-05-03 13:32:04.494485981 +0200
+@@ -34,7 +34,7 @@
+ #include "rcp_locl.h"
+ #include <getarg.h>
+
+-#define RSH_PROGRAM "rsh"
++#define RSH_PROGRAM "krsh"
+
+ struct passwd *pwd;
+ uid_t userid;
+--- appl/rcp/rcp_locl.h.old 2006-05-03 02:30:31.602025409 +0200
++++ appl/rcp/rcp_locl.h 2006-05-03 02:30:35.886018983 +0200
+@@ -64,4 +64,4 @@
+ #define _PATH_CP "/bin/cp"
+ #endif
+ #undef _PATH_RSH
+-#define _PATH_RSH BINDIR "/rsh"
++#define _PATH_RSH BINDIR "/krsh"
+--- appl/telnet/telnetd/telnetd.h.old 2006-05-03 02:23:14.582680939 +0200
++++ appl/telnet/telnetd/telnetd.h 2006-05-03 02:23:23.746667193 +0200
+@@ -192,7 +192,7 @@
+ #endif
+
+ #undef _PATH_LOGIN
+-#define _PATH_LOGIN BINDIR "/login"
++#define _PATH_LOGIN BINDIR "/klogin"
+
+ /* fallbacks */
+
+--- appl/login/shadow.c.old 2006-05-05 06:31:29.517138115 +0200
++++ appl/login/shadow.c 2006-05-05 06:32:26.433052741 +0200
+@@ -38,7 +38,7 @@
+ #ifdef HAVE_SHADOW_H
+
+ #ifndef _PATH_CHPASS
+-#define _PATH_CHPASS "/usr/bin/passwd"
++#define _PATH_CHPASS "/usr/bin/kpasswd"
+ #endif
+
+ static int
+@@ -52,7 +52,7 @@
+ printf("fork /bin/passwd");
+ exit(1);
+ case 0:
+- execlp(_PATH_CHPASS, "passwd", who->pw_name, (char *) 0);
++ execlp(_PATH_CHPASS, "kpasswd", who->pw_name, (char *) 0);
+ exit(1);
+ default:
+ waitpid(pid, &status, 0);
diff --git a/multilib/lib32-heimdal/PKGBUILD b/multilib/lib32-heimdal/PKGBUILD
new file mode 100644
index 000000000..a60499d78
--- /dev/null
+++ b/multilib/lib32-heimdal/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 26560 2010-09-15 22:34:46Z bluewind $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: webjdm <web.jdm@gmail.com>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+
+_pkgbasename=heimdal
+pkgname=lib32-$_pkgbasename
+pkgver=1.3.3
+pkgrel=3
+pkgdesc="Implementation of Kerberos V5 libraries (32-bit)"
+arch=('x86_64')
+url="http://www.h5l.org/"
+license=('custom')
+depends=('lib32-e2fsprogs' 'lib32-openssl' 'lib32-db' lib32-sqlite3 $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool' '!emptydirs')
+source=(http://www.h5l.org/dist/src/${_pkgbasename}-${pkgver}.tar.gz
+ 001_all_heimdal-no_libedit.patch
+ 002_all_heimal-fPIC.patch
+ 003_all_heimdal-rxapps.patch
+ 005_all_heimdal-suid_fix.patch
+ 012_all_heimdal-berkdb.patch
+ 013_all_heimdal-pthread-lib.patch
+ 014_all_heimdal-path.patch)
+md5sums=('963c09f1b14c41660be70b55fae9f163'
+ '98e28f11f906c967aac22d6184102c9e'
+ '6d5571bdedba2e2423b90bccdbac2c0a'
+ '2feec3924ee5230b54175b4d4000c872'
+ '45aeb207f360f9f4e9e0fabc8bfeecbc'
+ '56f5d10d0ec40f2fda82ef144ffac1e0'
+ '1b8665b771c4eb6b56ea8582c96e56e3'
+ '8208ae8c0b6ff5ab4f64af1693e9e396')
+
+build() {
+ cd ${srcdir}/heimdal-${pkgver}
+ patch -Np0 -i ${srcdir}/001_all_heimdal-no_libedit.patch
+ patch -Np0 -i ${srcdir}/002_all_heimal-fPIC.patch
+ patch -Np0 -i ${srcdir}/003_all_heimdal-rxapps.patch
+ patch -Np0 -i ${srcdir}/005_all_heimdal-suid_fix.patch
+ patch -Np1 -i ${srcdir}/012_all_heimdal-berkdb.patch
+ patch -Np1 -i ${srcdir}/013_all_heimdal-pthread-lib.patch
+ patch -Np0 -i ${srcdir}/014_all_heimdal-path.patch
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ libtoolize --force
+ aclocal -I cf
+ autoconf
+ automake
+
+ ./configure --prefix=/usr --enable-shared=yes --without-x \
+ --libdir=/usr/lib32 \
+ --with-openssl-lib=/usr/lib32 \
+ --with-readline-lib=/usr/lib32 \
+ --with-readline-include=/usr/include/readline \
+ --with-sqlite3-lib=/usr/lib32 \
+ --with-sqlite3-include=/usr/include
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{etc,bin,sbin,include,share,libexec}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-jack/PKGBUILD b/multilib/lib32-jack/PKGBUILD
new file mode 100644
index 000000000..067f0eb1e
--- /dev/null
+++ b/multilib/lib32-jack/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 41464 2011-03-06 21:01:51Z schiv $
+# Maintainer: tobias <tobias@archlinux.net>
+# Maintainer: Ray Rashif <schivmeister@gmail.com>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+_pkgbasename=jack
+pkgname=lib32-$_pkgbasename
+_longname=jack-audio-connection-kit
+pkgver=0.120.1
+pkgrel=1
+pkgdesc="A low-latency audio server (32-bit)"
+arch=('x86_64')
+license=('GPL' 'LGPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+url="http://jackaudio.org/"
+options=('!libtool')
+source=(http://jackaudio.org/downloads/${_longname}-${pkgver}.tar.gz)
+md5sums=('e45bab906be64e4e2752cbd855a8efd5')
+
+build() {
+ cd ${srcdir}/${_longname}-${pkgver}
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make -C libjack
+}
+
+package() {
+ cd ${srcdir}/${_longname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install-pkgconfigDATA
+ make -C libjack DESTDIR=${pkgdir} install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/lib32-lcms/PKGBUILD b/multilib/lib32-lcms/PKGBUILD
new file mode 100644
index 000000000..8d1c5279f
--- /dev/null
+++ b/multilib/lib32-lcms/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 26566 2010-09-15 22:35:39Z bluewind $
+# Maintainer: Tobias Kieslich <neri@archlinux.org>
+# Contributor: Ben <contrasutra@myrealbox.com>
+
+_pkgbasename=lcms
+pkgname=lib32-$_pkgbasename
+pkgver=1.19
+pkgrel=3
+pkgdesc="Lightweight color management development library/engine (32-bit)"
+arch=(x86_64)
+license=('custom')
+depends=('lib32-libtiff>=3.9.4' $_pkgbasename)
+makedepends=(gcc-multilib)
+url="http://www.littlecms.com"
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('8af94611baf20d9646c7c2c285859818')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libasyncns/PKGBUILD b/multilib/lib32-libasyncns/PKGBUILD
new file mode 100644
index 000000000..83a1aae24
--- /dev/null
+++ b/multilib/lib32-libasyncns/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 26569 2010-09-15 22:36:05Z bluewind $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+_pkgbasename=libasyncns
+pkgname=lib32-$_pkgbasename
+pkgver=0.8
+pkgrel=5
+pkgdesc="A C library for Linux/Unix for executing name service queries asynchronously (32-bit)"
+arch=(x86_64)
+url="http://0pointer.de/lennart/projects/libasyncns"
+license=('LGPL')
+options=('!libtool')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('gcc-multilib')
+source=(http://0pointer.de/lennart/projects/libasyncns/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('1f553d6ce1ad255bc83b3d8e9384f515')
+
+build() {
+ cd ${srcdir}/libasyncns-${pkgver}
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ # Fix libdir
+ sed -i '/^libdir=/s:/lib:/lib32:' *.pc.in
+
+ ./configure --prefix=/usr --disable-lynx --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/libasyncns-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}"/usr/{include,share}
+}
diff --git a/multilib/lib32-libcanberra/PKGBUILD b/multilib/lib32-libcanberra/PKGBUILD
new file mode 100644
index 000000000..0a9eaed3b
--- /dev/null
+++ b/multilib/lib32-libcanberra/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 35301 2010-12-18 02:01:34Z heftig $
+# Maintainer: Florian Pritz <flo@xssn.at>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libcanberra
+pkgbase=lib32-$_pkgbasename
+pkgname=(lib32-libcanberra lib32-libcanberra-pulse)
+pkgver=0.26
+pkgrel=3
+pkgdesc="A small and lightweight implementation of the XDG Sound Theme Specification (32-bit)"
+arch=(x86_64)
+license=('LGPL')
+depends=('lib32-libvorbis>=1.3.1' 'lib32-libtool>=2.2.10' 'lib32-gtk2>=2.21.8' 'lib32-alsa-lib>=1.0.23' 'lib32-tdb>=1.2.1' $_pkgbasename)
+makedepends=('gtk-doc' lib32-libpulse gcc-multilib libtool-multilib)
+options=(!emptydirs)
+url=http://0pointer.de/lennart/projects/libcanberra
+source=("$url/$_pkgbasename-$pkgver.tar.gz")
+md5sums=('ee2c66ada7c851a4e7b6eb1682285a24')
+
+build() {
+ cd "$srcdir/$_pkgbasename-$pkgver"
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --sysconfdir=/etc --prefix=/usr --localstatedir=/var \
+ --disable-static --with-builtin=dso --enable-null --disable-oss \
+ --enable-alsa --disable-gstreamer --enable-pulse \
+ --libdir=/usr/lib32
+ make
+}
+
+package_lib32-libcanberra() {
+ cd "$srcdir/$_pkgbasename-$pkgver"
+
+ make -j1 DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}/usr/lib32/libcanberra-gtk.la"
+ rm -f "${pkgdir}/usr/lib32/gtk-2.0/modules/"*.la
+
+
+ # Split libcanberra-pulse
+ mkdir pulse-plugin
+ mv "${pkgdir}"/usr/lib32/${_pkgbasename}-${pkgver}/${_pkgbasename}-pulse.* pulse-plugin
+
+ rm -rf "${pkgdir}"/{etc,usr/{include,share,bin}}
+}
+
+package_lib32-libcanberra-pulse() {
+ pkgdesc="PulseAudio plugin for libcanberra (32-bit)"
+ depends=("$pkgbase=$pkgver-$pkgrel" 'lib32-libpulse')
+
+ cd "$srcdir/$_pkgbasename-$pkgver"
+
+ mkdir -p "${pkgdir}/usr/lib32/${_pkgbasename}-${pkgver}"
+ mv pulse-plugin/* "${pkgdir}/usr/lib32/${_pkgbasename}-${pkgver}"
+}
diff --git a/multilib/lib32-libcap/PKGBUILD b/multilib/lib32-libcap/PKGBUILD
new file mode 100644
index 000000000..465de6153
--- /dev/null
+++ b/multilib/lib32-libcap/PKGBUILD
@@ -0,0 +1,26 @@
+#$Id: PKGBUILD 64614 2010-01-21 11:40:53Z allan $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+
+_pkgbasename=libcap
+pkgname=lib32-$_pkgbasename
+pkgver=2.19
+pkgrel=4
+pkgdesc="POSIX 1003.1e capabilities (32-bit)"
+arch=(x86_64)
+url="http://www.kernel.org/pub/linux/libs/security/linux-privs/"
+license=('GPL')
+depends=('lib32-attr' $_pkgbasename)
+makedepends=('gcc-multilib')
+source=(http://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('9caa6dafc9e3db4cbaecdb8e48f23fa2')
+
+build() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ make -C libcap CC="gcc -m32" prefix=/usr lib=lib32 DESTDIR=${pkgdir} install
+ chmod 755 ${pkgdir}/usr/lib32/libcap.so.${pkgver}
+
+ rm -rf "${pkgdir}/usr/include"
+}
diff --git a/multilib/lib32-libcups/PKGBUILD b/multilib/lib32-libcups/PKGBUILD
new file mode 100644
index 000000000..bb32ba425
--- /dev/null
+++ b/multilib/lib32-libcups/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 32274 2010-11-13 00:50:15Z heftig $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+_pkgbasename=libcups
+pkgname=lib32-$_pkgbasename
+pkgver=1.4.5
+pkgrel=1
+pkgdesc="The CUPS Printing System - client libraries (32-bit)"
+arch=('x86_64')
+license=('GPL')
+url="http://www.cups.org/"
+depends=(lib32-glibc $_pkgbasename)
+makedepends=(gcc-multilib)
+source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2)
+md5sums=('50729f6fc46ba54223e0eaf5009f3419')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/cups-${pkgver}
+
+ aclocal -I config-scripts
+ autoconf -I config-scripts
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-ldap --enable-raw-printing --disable-gssapi --disable-dbus \
+ --enable-ssl=no --disable-gnutls --disable-threads \
+ --with-optim="$CFLAGS" --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/cups-${pkgver}
+ make BUILDROOT=${pkgdir} install-libs
+}
+
diff --git a/multilib/lib32-libdrm/PKGBUILD b/multilib/lib32-libdrm/PKGBUILD
new file mode 100644
index 000000000..d178f7bb3
--- /dev/null
+++ b/multilib/lib32-libdrm/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 39076 2011-02-06 10:56:39Z ibiru $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libdrm
+pkgname=lib32-$_pkgbasename
+pkgver=2.4.23
+pkgrel=1
+pkgdesc="Userspace interface to kernel DRM services (32-bit)"
+arch=(x86_64)
+license=('custom')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+url="http://dri.freedesktop.org/"
+source=(http://dri.freedesktop.org/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.bz2
+ no-pthread-stubs.patch)
+md5sums=('7577ff36ec364d88fae466d4f7fc5fc6'
+ '9b5ec3bbebe86921e2057694c42f65b8')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
+ libtoolize --force
+ aclocal
+ autoconf
+ automake
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --enable-intel --enable-radeon \
+ --enable-vmwgfx-experimental-api --enable-nouveau-experimental-api \
+ --enable-udev
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libdrm/git_nouveau.diff b/multilib/lib32-libdrm/git_nouveau.diff
new file mode 100644
index 000000000..034eded01
--- /dev/null
+++ b/multilib/lib32-libdrm/git_nouveau.diff
@@ -0,0 +1,327 @@
+From 09b1062628f2cbddb3ebae20e7b3b8a0a93acebf Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Tue, 28 Sep 2010 20:45:27 +0000
+Subject: nouveau: Let the user choose the push buffer size.
+
+Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+Acked-by: Ben Skeggs <bskeggs@redhat.com>
+---
+diff --git a/nouveau/nouveau_channel.c b/nouveau/nouveau_channel.c
+index 40a0b34..ded5424 100644
+--- a/nouveau/nouveau_channel.c
++++ b/nouveau/nouveau_channel.c
+@@ -28,7 +28,8 @@
+
+ int
+ nouveau_channel_alloc(struct nouveau_device *dev, uint32_t fb_ctxdma,
+- uint32_t tt_ctxdma, struct nouveau_channel **chan)
++ uint32_t tt_ctxdma, int pushbuf_size,
++ struct nouveau_channel **chan)
+ {
+ struct nouveau_device_priv *nvdev = nouveau_device(dev);
+ struct nouveau_channel_priv *nvchan;
+@@ -90,7 +91,7 @@ nouveau_channel_alloc(struct nouveau_device *dev, uint32_t fb_ctxdma,
+ return ret;
+ }
+
+- ret = nouveau_pushbuf_init(&nvchan->base);
++ ret = nouveau_pushbuf_init(&nvchan->base, pushbuf_size);
+ if (ret) {
+ nouveau_channel_free((void *)&nvchan);
+ return ret;
+diff --git a/nouveau/nouveau_channel.h b/nouveau/nouveau_channel.h
+index ddcf8e4..d61a4c0 100644
+--- a/nouveau/nouveau_channel.h
++++ b/nouveau/nouveau_channel.h
+@@ -49,7 +49,7 @@ struct nouveau_channel {
+
+ int
+ nouveau_channel_alloc(struct nouveau_device *, uint32_t fb, uint32_t tt,
+- struct nouveau_channel **);
++ int pushbuf_size, struct nouveau_channel **);
+
+ void
+ nouveau_channel_free(struct nouveau_channel **);
+diff --git a/nouveau/nouveau_private.h b/nouveau/nouveau_private.h
+index 5a952f7..4c53534 100644
+--- a/nouveau/nouveau_private.h
++++ b/nouveau/nouveau_private.h
+@@ -37,8 +37,8 @@
+ #include "nouveau_pushbuf.h"
+ #include "nouveau_reloc.h"
+
+-#define CALPB_BUFFERS 4
+-#define CALPB_BUFSZ 16384
++#define CALPB_BUFFERS 3
++
+ struct nouveau_pushbuf_priv {
+ uint32_t cal_suffix0;
+ uint32_t cal_suffix1;
+@@ -64,7 +64,7 @@ struct nouveau_pushbuf_priv {
+ #define nouveau_pushbuf(n) ((struct nouveau_pushbuf_priv *)(n))
+
+ int
+-nouveau_pushbuf_init(struct nouveau_channel *);
++nouveau_pushbuf_init(struct nouveau_channel *, int buf_size);
+ void
+ nouveau_pushbuf_fini(struct nouveau_channel *);
+
+diff --git a/nouveau/nouveau_pushbuf.c b/nouveau/nouveau_pushbuf.c
+index 28b8018..90836bc 100644
+--- a/nouveau/nouveau_pushbuf.c
++++ b/nouveau/nouveau_pushbuf.c
+@@ -78,7 +78,7 @@ nouveau_pushbuf_fini_call(struct nouveau_channel *chan)
+ }
+
+ static int
+-nouveau_pushbuf_init_call(struct nouveau_channel *chan)
++nouveau_pushbuf_init_call(struct nouveau_channel *chan, int buf_size)
+ {
+ struct drm_nouveau_gem_pushbuf req;
+ struct nouveau_channel_priv *nvchan = nouveau_channel(chan);
+@@ -101,7 +101,7 @@ nouveau_pushbuf_init_call(struct nouveau_channel *chan)
+
+ for (i = 0; i < CALPB_BUFFERS; i++) {
+ ret = nouveau_bo_new(dev, flags | NOUVEAU_BO_MAP,
+- 0, CALPB_BUFSZ, &nvpb->buffer[i]);
++ 0, buf_size, &nvpb->buffer[i]);
+ if (ret) {
+ nouveau_pushbuf_fini_call(chan);
+ return ret;
+@@ -114,13 +114,13 @@ nouveau_pushbuf_init_call(struct nouveau_channel *chan)
+ }
+
+ int
+-nouveau_pushbuf_init(struct nouveau_channel *chan)
++nouveau_pushbuf_init(struct nouveau_channel *chan, int buf_size)
+ {
+ struct nouveau_channel_priv *nvchan = nouveau_channel(chan);
+ struct nouveau_pushbuf_priv *nvpb = &nvchan->pb;
+ int ret;
+
+- ret = nouveau_pushbuf_init_call(chan);
++ ret = nouveau_pushbuf_init_call(chan, buf_size);
+ if (ret)
+ return ret;
+
+--
+cgit v0.8.3-6-g21f6
+From 1b9187c43a0c17600611edb9e299141748e87974 Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Tue, 28 Sep 2010 20:47:11 +0000
+Subject: nouveau: Define buffer object usage flags.
+
+Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+Acked-by: Ben Skeggs <bskeggs@redhat.com>
+---
+diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h
+index fe917de..f115eab 100644
+--- a/include/drm/nouveau_drm.h
++++ b/include/drm/nouveau_drm.h
+@@ -80,6 +80,7 @@ struct drm_nouveau_gpuobj_free {
+ #define NOUVEAU_GETPARAM_VM_VRAM_BASE 12
+ #define NOUVEAU_GETPARAM_GRAPH_UNITS 13
+ #define NOUVEAU_GETPARAM_PTIMER_TIME 14
++#define NOUVEAU_GETPARAM_HAS_BO_USAGE 15
+ struct drm_nouveau_getparam {
+ uint64_t param;
+ uint64_t value;
+@@ -95,6 +96,12 @@ struct drm_nouveau_setparam {
+ #define NOUVEAU_GEM_DOMAIN_GART (1 << 2)
+ #define NOUVEAU_GEM_DOMAIN_MAPPABLE (1 << 3)
+
++#define NOUVEAU_GEM_TILE_LAYOUT_MASK 0x0000ff00
++#define NOUVEAU_GEM_TILE_16BPP 0x00000001
++#define NOUVEAU_GEM_TILE_32BPP 0x00000002
++#define NOUVEAU_GEM_TILE_ZETA 0x00000004
++#define NOUVEAU_GEM_TILE_NONCONTIG 0x00000008
++
+ struct drm_nouveau_gem_info {
+ uint32_t handle;
+ uint32_t domain;
+diff --git a/nouveau/nouveau_bo.c b/nouveau/nouveau_bo.c
+index 32b23b6..c1432b0 100644
+--- a/nouveau/nouveau_bo.c
++++ b/nouveau/nouveau_bo.c
+@@ -52,7 +52,8 @@ nouveau_bo_info(struct nouveau_bo_priv *nvbo, struct drm_nouveau_gem_info *arg)
+ nvbo->offset = arg->offset;
+ nvbo->map_handle = arg->map_handle;
+ nvbo->base.tile_mode = arg->tile_mode;
+- nvbo->base.tile_flags = arg->tile_flags;
++ /* XXX - flag inverted for backwards compatibility */
++ nvbo->base.tile_flags = arg->tile_flags ^ NOUVEAU_GEM_TILE_NONCONTIG;
+ return 0;
+ }
+
+@@ -140,6 +141,10 @@ nouveau_bo_kalloc(struct nouveau_bo_priv *nvbo, struct nouveau_channel *chan)
+
+ info->tile_mode = nvbo->base.tile_mode;
+ info->tile_flags = nvbo->base.tile_flags;
++ /* XXX - flag inverted for backwards compatibility */
++ info->tile_flags ^= NOUVEAU_GEM_TILE_NONCONTIG;
++ if (!nvdev->has_bo_usage)
++ info->tile_flags &= NOUVEAU_GEM_TILE_LAYOUT_MASK;
+
+ ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_GEM_NEW,
+ &req, sizeof(req));
+diff --git a/nouveau/nouveau_bo.h b/nouveau/nouveau_bo.h
+index 1e77ab0..3a1f2d4 100644
+--- a/nouveau/nouveau_bo.h
++++ b/nouveau/nouveau_bo.h
+@@ -39,6 +39,12 @@
+ #define NOUVEAU_BO_IFLUSH (1 << 15)
+ #define NOUVEAU_BO_DUMMY (1 << 31)
+
++#define NOUVEAU_BO_TILE_LAYOUT_MASK 0x0000ff00
++#define NOUVEAU_BO_TILE_16BPP 0x00000001
++#define NOUVEAU_BO_TILE_32BPP 0x00000002
++#define NOUVEAU_BO_TILE_ZETA 0x00000004
++#define NOUVEAU_BO_TILE_SCANOUT 0x00000008
++
+ struct nouveau_bo {
+ struct nouveau_device *device;
+ uint32_t handle;
+diff --git a/nouveau/nouveau_device.c b/nouveau/nouveau_device.c
+index 9a091fb..2ffcba6 100644
+--- a/nouveau/nouveau_device.c
++++ b/nouveau/nouveau_device.c
+@@ -95,6 +95,11 @@ nouveau_device_open_existing(struct nouveau_device **dev, int close,
+ }
+ nvdev->base.chipset = value;
+
++ ret = nouveau_device_get_param(&nvdev->base,
++ NOUVEAU_GETPARAM_HAS_BO_USAGE, &value);
++ if (!ret)
++ nvdev->has_bo_usage = value;
++
+ *dev = &nvdev->base;
+ return 0;
+ }
+diff --git a/nouveau/nouveau_drmif.h b/nouveau/nouveau_drmif.h
+index bc860d2..ec226a2 100644
+--- a/nouveau/nouveau_drmif.h
++++ b/nouveau/nouveau_drmif.h
+@@ -35,6 +35,7 @@ struct nouveau_device_priv {
+ drm_context_t ctx;
+ drmLock *lock;
+ int needs_close;
++ int has_bo_usage;
+ };
+ #define nouveau_device(n) ((struct nouveau_device_priv *)(n))
+
+--
+cgit v0.8.3-6-g21f6
+From c5286f4a871e054b63dee8a60a6f06574c4ca1b8 Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Thu, 21 Oct 2010 21:02:43 +0000
+Subject: nouveau: Define the HAS_PAGEFLIP getparam.
+
+Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+---
+diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h
+index f115eab..b18cad0 100644
+--- a/include/drm/nouveau_drm.h
++++ b/include/drm/nouveau_drm.h
+@@ -81,6 +81,7 @@ struct drm_nouveau_gpuobj_free {
+ #define NOUVEAU_GETPARAM_GRAPH_UNITS 13
+ #define NOUVEAU_GETPARAM_PTIMER_TIME 14
+ #define NOUVEAU_GETPARAM_HAS_BO_USAGE 15
++#define NOUVEAU_GETPARAM_HAS_PAGEFLIP 16
+ struct drm_nouveau_getparam {
+ uint64_t param;
+ uint64_t value;
+--
+cgit v0.8.3-6-g21f6
+From d0a4f2e292e5b347f7e5ee2cdbe4f077986eb9da Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Sun, 31 Oct 2010 00:22:29 +0000
+Subject: nouveau: Avoid unnecessary call to CPU_FINI.
+
+nouveau_bo_unmap called the CPU_FINI IOCTL even if it was a NOSYNC
+mapping. It caused no harmful effects (actually CPU_FINI is a no-op on
+recent enough kernels) besides the precious CPU cycles being wasted.
+
+Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+---
+diff --git a/nouveau/nouveau_bo.c b/nouveau/nouveau_bo.c
+index c1432b0..d6bb22d 100644
+--- a/nouveau/nouveau_bo.c
++++ b/nouveau/nouveau_bo.c
+@@ -434,6 +434,8 @@ nouveau_bo_map_range(struct nouveau_bo *bo, uint32_t delta, uint32_t size,
+ (flags & NOUVEAU_BO_NOWAIT), 0);
+ if (ret)
+ return ret;
++
++ nvbo->map_refcnt++;
+ }
+
+ bo->map = (char *)nvbo->map + delta;
+@@ -458,13 +460,14 @@ nouveau_bo_unmap(struct nouveau_bo *bo)
+ {
+ struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
+
+- if (bo->map && !nvbo->sysmem) {
++ if (bo->map && !nvbo->sysmem && nvbo->map_refcnt) {
+ struct nouveau_device_priv *nvdev = nouveau_device(bo->device);
+ struct drm_nouveau_gem_cpu_fini req;
+
+ req.handle = nvbo->handle;
+ drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GEM_CPU_FINI,
+ &req, sizeof(req));
++ nvbo->map_refcnt--;
+ }
+
+ bo->map = NULL;
+diff --git a/nouveau/nouveau_private.h b/nouveau/nouveau_private.h
+index 4c53534..124fe87 100644
+--- a/nouveau/nouveau_private.h
++++ b/nouveau/nouveau_private.h
+@@ -115,6 +115,7 @@ struct nouveau_bo_priv {
+ uint32_t global_handle;
+ drm_handle_t handle;
+ uint64_t map_handle;
++ int map_refcnt;
+ void *map;
+
+ /* Last known information from kernel on buffer status */
+--
+cgit v0.8.3-6-g21f6
+From d17681d538ce86a3f8d6d1c7407df3ceb2bcc499 Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Sat, 20 Nov 2010 13:32:45 +0000
+Subject: nouveau: Add implicit pushbuf flush before gpuobj destruction.
+
+It makes sure that GPU object destruction is executed in order with
+respect to the previous FIFO commands.
+
+Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+Acked-by: Ben Skeggs <bskeggs@redhat.com>
+---
+diff --git a/nouveau/nouveau_grobj.c b/nouveau/nouveau_grobj.c
+index 2b6e53a..df2ffb9 100644
+--- a/nouveau/nouveau_grobj.c
++++ b/nouveau/nouveau_grobj.c
+@@ -99,6 +99,8 @@ nouveau_grobj_free(struct nouveau_grobj **grobj)
+ if (nvgrobj->base.grclass) {
+ struct drm_nouveau_gpuobj_free f;
+
++ FIRE_RING(&chan->base);
++
+ f.channel = chan->drm.channel;
+ f.handle = nvgrobj->base.handle;
+ drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GPUOBJ_FREE,
+diff --git a/nouveau/nouveau_notifier.c b/nouveau/nouveau_notifier.c
+index f8cfd8b..513fa63 100644
+--- a/nouveau/nouveau_notifier.c
++++ b/nouveau/nouveau_notifier.c
+@@ -80,6 +80,8 @@ nouveau_notifier_free(struct nouveau_notifier **notifier)
+ nvchan = nouveau_channel(nvnotify->base.channel);
+ nvdev = nouveau_device(nvchan->base.device);
+
++ FIRE_RING(&nvchan->base);
++
+ f.channel = nvchan->drm.channel;
+ f.handle = nvnotify->base.handle;
+ drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GPUOBJ_FREE, &f, sizeof(f));
+--
+cgit v0.8.3-6-g21f6
diff --git a/multilib/lib32-libdrm/no-pthread-stubs.patch b/multilib/lib32-libdrm/no-pthread-stubs.patch
new file mode 100644
index 000000000..6602f8785
--- /dev/null
+++ b/multilib/lib32-libdrm/no-pthread-stubs.patch
@@ -0,0 +1,65 @@
+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],
+--- libdrm-2.4.16/intel/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/intel/Makefile.am.new 2009-12-07 08:11:32.235748069 +0000
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/intel \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ 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@ @CLOCK_LIB@
++libdrm_intel_la_LIBADD = ../libdrm.la @CLOCK_LIB@
+
+ libdrm_intel_la_SOURCES = \
+ intel_atomic.h \
+--- libdrm-2.4.16/radeon/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/radeon/Makefile.am.new 2009-12-07 08:12:31.889075388 +0000
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/radeon \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la
+ libdrm_radeon_ladir = $(libdir)
+ libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_radeon_la_LIBADD = ../libdrm.la
+
+ libdrm_radeon_la_SOURCES = \
+ radeon_bo_gem.c \
+--- libdrm-2.4.16/nouveau/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/nouveau/Makefile.am.new 2009-12-07 08:13:01.489072320 +0000
+@@ -2,13 +2,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/nouveau \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ 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/multilib/lib32-libgcrypt/PKGBUILD b/multilib/lib32-libgcrypt/PKGBUILD
new file mode 100644
index 000000000..e266ea00c
--- /dev/null
+++ b/multilib/lib32-libgcrypt/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 26587 2010-09-15 22:38:34Z bluewind $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+_pkgbasename=libgcrypt
+pkgname=lib32-$_pkgbasename
+pkgver=1.4.6
+pkgrel=3
+pkgdesc="a general purpose crypto library based on the code used (32-bit)"
+arch=(x86_64)
+url="http://www.gnupg.org"
+license=('LGPL')
+depends=('lib32-libgpg-error>=1.7' $_pkgbasename)
+makedepends=(gcc-multilib libtool-multilib)
+options=(!libtool)
+source=(ftp://ftp.gnupg.org/gcrypt/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.bz2
+ #ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgcrypt/${_pkgbasename}-${pkgver}.tar.bz2
+)
+md5sums=('dbf99425a4fe9217c84ce3a35d938634')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ # Use 32-bit assembler
+ sed 's:path="amd64":path="i586 i386":' -i mpi/config.links
+
+ # keep static library for , needed for cryptsetup
+ ./configure --prefix=/usr --disable-padlock-support --libdir=/usr/lib32 --enable-shared
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin,sbin}
+}
diff --git a/multilib/lib32-libgpg-error/PKGBUILD b/multilib/lib32-libgpg-error/PKGBUILD
new file mode 100644
index 000000000..6467c668a
--- /dev/null
+++ b/multilib/lib32-libgpg-error/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26590 2010-09-15 22:39:01Z bluewind $
+# Maintainer: judd <jvinet@zeroflux.org>
+
+_pkgbasename=libgpg-error
+pkgname=lib32-$_pkgbasename
+pkgver=1.9
+pkgrel=4
+pkgdesc="Support library for libgcrypt (32-bit)"
+arch=(x86_64)
+url="http://www.gnupg.org"
+license=('LGPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=(!libtool)
+source=(ftp://ftp.gnupg.org/gcrypt/libgpg-error/${_pkgbasename}-${pkgver}.tar.bz2)
+ #ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgpg-error/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('521b98aa9395e7eaf0ef2236233a0796')
+
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}"/${_pkgbasename}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}"/${_pkgbasename}-${pkgver}
+ make DESTDIR="${pkgdir}/" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-libice/PKGBUILD b/multilib/lib32-libice/PKGBUILD
new file mode 100644
index 000000000..6e65dd044
--- /dev/null
+++ b/multilib/lib32-libice/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 31526 2010-11-01 23:47:50Z heftig $
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libice
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.7
+pkgrel=1
+pkgdesc="X11 Inter-Client Exchange library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('lib32-glibc' 'xproto>=7.0.18' $_pkgbasename)
+makedepends=('pkgconfig' 'xtrans>=1.2.5' 'gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libICE-${pkgver}.tar.bz2)
+license=('custom')
+sha1sums=('c7d0f4c5b0e999385445b8be1bc89aec4e5de71d')
+
+build() {
+ cd "${srcdir}/libICE-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32
+
+ make
+}
+
+package() {
+ cd "${srcdir}/libICE-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libjpeg/PKGBUILD b/multilib/lib32-libjpeg/PKGBUILD
new file mode 100644
index 000000000..46c3ad07e
--- /dev/null
+++ b/multilib/lib32-libjpeg/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 38658 2011-01-30 08:53:28Z bluewind $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+_pkgbasename=libjpeg
+pkgname=lib32-$_pkgbasename
+pkgver=8.3.0
+_pkgver=8c
+pkgrel=1
+pkgdesc="Library of JPEG support functions (32-bit)"
+arch=('x86_64')
+url="http://www.ijg.org/"
+license=('custom')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('libtool' 'gcc-multilib')
+options=('!libtool')
+source=(http://www.ijg.org/files/jpegsrc.v${_pkgver}.tar.gz)
+md5sums=('a2c10c04f396a9ce72894beb18b4e1f9')
+
+build() {
+ cd $srcdir/jpeg-${_pkgver}
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --enable-shared --enable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/jpeg-${_pkgver}
+ make DESTDIR="$pkgdir" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libldap/PKGBUILD b/multilib/lib32-libldap/PKGBUILD
new file mode 100644
index 000000000..2ea6c2202
--- /dev/null
+++ b/multilib/lib32-libldap/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 26599 2010-09-15 22:40:16Z bluewind $
+# Maintainer:
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+_pkgbasename=libldap
+pkgname=lib32-$_pkgbasename
+pkgver=2.4.22
+pkgrel=3
+pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://www.openldap.org/"
+depends=('lib32-openssl' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=("ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-${pkgver}.tgz"
+ 'ntlm.patch')
+md5sums=('ef01b52255ce8e3fbf8aa34f6fe7598b'
+ 'dfa9eb6f2fd9d0a3dab0e1860923489e')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/openldap-${pkgver}
+
+ patch -Np1 -i ${srcdir}/ntlm.patch
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/sbin \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var/lib/openldap \
+ --enable-crypt --enable-dynamic \
+ --with-threads --disable-wrappers \
+ --disable-spasswd --without-cyrus-sasl \
+ --disable-bdb --disable-hdb --libdir=/usr/lib32
+
+ cd include
+ make
+
+ cd ../libraries
+ make depend
+ make
+
+}
+
+package() {
+ cd ${srcdir}/openldap-${pkgver}
+
+ cd include
+ make DESTDIR=${pkgdir} install
+
+ cd ../libraries
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin} "$pkgdir/etc"
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libldap/ntlm.patch b/multilib/lib32-libldap/ntlm.patch
new file mode 100644
index 000000000..a4fe4d45a
--- /dev/null
+++ b/multilib/lib32-libldap/ntlm.patch
@@ -0,0 +1,230 @@
+Patch from evolution-exchange (2.10.3). The ldap_ntlm_bind function is
+actually called by evolution-data-server, checked at version 1.12.2.
+Without this patch, the Exchange addressbook integration uses simple binds
+with cleartext passwords.
+
+Russ checked with openldap-software for upstream's opinion on this patch
+on 2007-12-21. Upstream had never received it as a patch submission and
+given that it's apparently only for older Exchange servers that can't do
+SASL and DIGEST-MD5, it's not very appealing.
+
+Bug#457374 filed against evolution-data-server asking if this support is
+still required on 2007-12-21.
+
+Index: trunk/include/ldap.h
+===================================================================
+--- trunk.orig/include/ldap.h
++++ trunk/include/ldap.h
+@@ -2461,5 +2461,25 @@
+ LDAPControl **ctrls,
+ LDAPDerefRes **drp ));
+
++/*
++ * hacks for NTLM
++ */
++#define LDAP_AUTH_NTLM_REQUEST ((ber_tag_t) 0x8aU)
++#define LDAP_AUTH_NTLM_RESPONSE ((ber_tag_t) 0x8bU)
++LDAP_F( int )
++ldap_ntlm_bind LDAP_P((
++ LDAP *ld,
++ LDAP_CONST char *dn,
++ ber_tag_t tag,
++ struct berval *cred,
++ LDAPControl **sctrls,
++ LDAPControl **cctrls,
++ int *msgidp ));
++LDAP_F( int )
++ldap_parse_ntlm_bind_result LDAP_P((
++ LDAP *ld,
++ LDAPMessage *res,
++ struct berval *challenge));
++
+ LDAP_END_DECL
+ #endif /* _LDAP_H */
+Index: trunk/libraries/libldap/ntlm.c
+===================================================================
+--- /dev/null
++++ trunk/libraries/libldap/ntlm.c
+@@ -0,0 +1,138 @@
++/* $OpenLDAP: pkg/ldap/libraries/libldap/ntlm.c,v 1.1.4.10 2002/01/04 20:38:21 kurt Exp $ */
++/*
++ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
++ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
++ */
++
++/* Mostly copied from sasl.c */
++
++#include "portable.h"
++
++#include <stdlib.h>
++#include <stdio.h>
++
++#include <ac/socket.h>
++#include <ac/string.h>
++#include <ac/time.h>
++#include <ac/errno.h>
++
++#include "ldap-int.h"
++
++int
++ldap_ntlm_bind(
++ LDAP *ld,
++ LDAP_CONST char *dn,
++ ber_tag_t tag,
++ struct berval *cred,
++ LDAPControl **sctrls,
++ LDAPControl **cctrls,
++ int *msgidp )
++{
++ BerElement *ber;
++ int rc;
++ ber_int_t id;
++
++ Debug( LDAP_DEBUG_TRACE, "ldap_ntlm_bind\n", 0, 0, 0 );
++
++ assert( ld != NULL );
++ assert( LDAP_VALID( ld ) );
++ assert( msgidp != NULL );
++
++ if( msgidp == NULL ) {
++ ld->ld_errno = LDAP_PARAM_ERROR;
++ return ld->ld_errno;
++ }
++
++ /* create a message to send */
++ if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
++ ld->ld_errno = LDAP_NO_MEMORY;
++ return ld->ld_errno;
++ }
++
++ assert( LBER_VALID( ber ) );
++
++ LDAP_NEXT_MSGID( ld, id );
++ rc = ber_printf( ber, "{it{istON}" /*}*/,
++ id, LDAP_REQ_BIND,
++ ld->ld_version, dn, tag,
++ cred );
++
++ /* Put Server Controls */
++ if( ldap_int_put_controls( ld, sctrls, ber ) != LDAP_SUCCESS ) {
++ ber_free( ber, 1 );
++ return ld->ld_errno;
++ }
++
++ if ( ber_printf( ber, /*{*/ "N}" ) == -1 ) {
++ ld->ld_errno = LDAP_ENCODING_ERROR;
++ ber_free( ber, 1 );
++ return ld->ld_errno;
++ }
++
++ /* send the message */
++ *msgidp = ldap_send_initial_request( ld, LDAP_REQ_BIND, dn, ber, id );
++
++ if(*msgidp < 0)
++ return ld->ld_errno;
++
++ return LDAP_SUCCESS;
++}
++
++int
++ldap_parse_ntlm_bind_result(
++ LDAP *ld,
++ LDAPMessage *res,
++ struct berval *challenge)
++{
++ ber_int_t errcode;
++ ber_tag_t tag;
++ BerElement *ber;
++ ber_len_t len;
++
++ Debug( LDAP_DEBUG_TRACE, "ldap_parse_ntlm_bind_result\n", 0, 0, 0 );
++
++ assert( ld != NULL );
++ assert( LDAP_VALID( ld ) );
++ assert( res != NULL );
++
++ if ( ld == NULL || res == NULL ) {
++ return LDAP_PARAM_ERROR;
++ }
++
++ if( res->lm_msgtype != LDAP_RES_BIND ) {
++ ld->ld_errno = LDAP_PARAM_ERROR;
++ return ld->ld_errno;
++ }
++
++ if ( ld->ld_error ) {
++ LDAP_FREE( ld->ld_error );
++ ld->ld_error = NULL;
++ }
++ if ( ld->ld_matched ) {
++ LDAP_FREE( ld->ld_matched );
++ ld->ld_matched = NULL;
++ }
++
++ /* parse results */
++
++ ber = ber_dup( res->lm_ber );
++
++ if( ber == NULL ) {
++ ld->ld_errno = LDAP_NO_MEMORY;
++ return ld->ld_errno;
++ }
++
++ tag = ber_scanf( ber, "{ioa" /*}*/,
++ &errcode, challenge, &ld->ld_error );
++ ber_free( ber, 0 );
++
++ if( tag == LBER_ERROR ) {
++ ld->ld_errno = LDAP_DECODING_ERROR;
++ return ld->ld_errno;
++ }
++
++ ld->ld_errno = errcode;
++
++ return( ld->ld_errno );
++}
++
+Index: trunk/libraries/libldap/Makefile.in
+===================================================================
+--- trunk.orig/libraries/libldap/Makefile.in
++++ trunk/libraries/libldap/Makefile.in
+@@ -27,7 +27,7 @@
+ init.c options.c print.c string.c util-int.c schema.c \
+ charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
+ tls2.c tls_o.c tls_g.c tls_m.c \
+- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
++ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
+ assertion.c deref.c
+
+ OBJS = bind.lo open.lo result.lo error.lo compare.lo search.lo \
+@@ -40,7 +40,7 @@
+ init.lo options.lo print.lo string.lo util-int.lo schema.lo \
+ charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
+ tls2.lo tls_o.lo tls_g.lo tls_m.lo \
+- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
++ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
+ assertion.lo deref.lo
+
+ LDAP_INCDIR= ../../include
+Index: trunk/libraries/libldap_r/Makefile.in
+===================================================================
+--- trunk.orig/libraries/libldap_r/Makefile.in
++++ trunk/libraries/libldap_r/Makefile.in
+@@ -29,7 +29,7 @@
+ init.c options.c print.c string.c util-int.c schema.c \
+ charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
+ tls2.c tls_o.c tls_g.c tls_m.c \
+- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
++ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
+ assertion.c deref.c
+ SRCS = threads.c rdwr.c rmutex.c tpool.c rq.c \
+ thr_posix.c thr_cthreads.c thr_thr.c thr_lwp.c thr_nt.c \
+@@ -47,7 +47,7 @@
+ init.lo options.lo print.lo string.lo util-int.lo schema.lo \
+ charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
+ tls2.lo tls_o.lo tls_g.lo tls_m.lo \
+- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
++ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
+ assertion.lo deref.lo
+
+ LDAP_INCDIR= ../../include
diff --git a/multilib/lib32-libmikmod/PKGBUILD b/multilib/lib32-libmikmod/PKGBUILD
new file mode 100644
index 000000000..4f29981ef
--- /dev/null
+++ b/multilib/lib32-libmikmod/PKGBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Peter Lewis <plewis@aur.archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Jesse Juhani Jaara <jesse.jaara@gmail.com>
+
+pkgname=lib32-libmikmod
+pkgver=3.1.12
+pkgrel=5
+pkgdesc="A portable sound library"
+license=('GPL' 'LGPL')
+url="http://sourceforge.net/projects/mikmod/"
+arch=('x86_64')
+depends=('libmikmod' 'lib32-glibc')
+makedepends=('gcc-multilib')
+options=('!libtool')
+install=
+source=(http://downloads.sourceforge.net/mikmod/libmikmod-${pkgver}.tar.gz
+ libmikmod-3.1.12-64bit-fix.diff
+ libmikmod-3.1.12-exitcrash-fix.diff
+ libmikmod-3.1.12-loopingvolume-fix.diff
+ libmikmod-3.1.12-md_sngchn-fix.diff
+ libmikmod-CVE-2009-0179.patch)
+md5sums=('9f3c740298260d5f88981fc0d51f6f16'
+ 'dc7ffd8d6d355e9d6ec671b7f2b2adc7'
+ '03a4f5bfcecddf5f515672d6d477b7f7'
+ 'a837fd876cbd2ac27419b802504489db'
+ '076d39de19de36b880ed90297f1ee0d1'
+ 'fa91f4bc17164be32bec0ea7a73f2aaa')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/libmikmod-$pkgver
+
+ # patches from sdl_mixer-1.2.11 source
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-64bit-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-exitcrash-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-loopingvolume-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-md_sngchn-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-CVE-2009-0179.patch
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/libmikmod-$pkgver
+ make DESTDIR=$pkgdir install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
+
diff --git a/multilib/lib32-libmikmod/libmikmod-3.1.12-64bit-fix.diff b/multilib/lib32-libmikmod/libmikmod-3.1.12-64bit-fix.diff
new file mode 100644
index 000000000..cd7800881
--- /dev/null
+++ b/multilib/lib32-libmikmod/libmikmod-3.1.12-64bit-fix.diff
@@ -0,0 +1,47 @@
+Date: Sun, 04 Jul 2004 11:53:23 +0200
+From: Josselin Mouette
+Subject: Re: sdl 64bit problem [PATCH]
+
+Le sam, 03/07/2004 � 18:20 +0200, Hans-Frieder Vogt a �crit :
+> Hi list,
+>
+> I found the problem that lead to the distorted sound in tuxracer on AMD64. It
+> may have also been the cause for the other reported sound problems with SDL.
+> The problem is not in SDL, but in SDL-mixer.
+> There, music files (*.it, and probably others as well) are incorrectly read on
+> all 64 bit architectures but Alpha, due to an incorrect data type definition.
+> The attached patch should solve the problem for all 64 bit architectures on
+> Linux, since at least cpp defines _LP64 and __LP64__ for them.
+> _LP64 indicates that long ints and pointers are 64 bits, but integers are 32
+> bits.
+> I am not sure whether the usage of _LP64 is also standard for the commercial
+> compilers, and for other Unixes, but at least Solaris 9 defines _LP64 in the
+> 64 bit environment as well.
+>
+> Josselin,
+> could you include this patch into your next debian packages?
+
+diff -ru libmikmod-3.1.12.orig/include/mikmod.h.in libmikmod-3.1.12/include/mikmod.h.in
+--- libmikmod-3.1.12.orig/include/mikmod.h.in 2007-12-15 01:24:19.000000000 -0800
++++ libmikmod-3.1.12/include/mikmod.h.in 2009-10-05 00:18:56.000000000 -0700
+@@ -85,7 +85,7 @@
+
+ @DOES_NOT_HAVE_SIGNED@
+
+-#if defined(__arch64__) || defined(__alpha) || defined(__x86_64)
++#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64)
+ /* 64 bit architectures */
+
+ typedef signed char SBYTE; /* 1 byte, signed */
+diff -ru libmikmod-3.1.12.orig/include/mikmod_internals.h libmikmod-3.1.12/include/mikmod_internals.h
+--- libmikmod-3.1.12.orig/include/mikmod_internals.h 2007-12-15 04:24:51.000000000 -0800
++++ libmikmod-3.1.12/include/mikmod_internals.h 2009-10-05 00:19:15.000000000 -0700
+@@ -50,7 +50,7 @@
+ /*========== More type definitions */
+
+ /* SLONGLONG: 64bit, signed */
+-#if defined (__arch64__) || defined(__alpha)
++#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64)
+ typedef long SLONGLONG;
+ #define NATIVE_64BIT_INT
+ #elif defined(__WATCOMC__)
diff --git a/multilib/lib32-libmikmod/libmikmod-3.1.12-exitcrash-fix.diff b/multilib/lib32-libmikmod/libmikmod-3.1.12-exitcrash-fix.diff
new file mode 100644
index 000000000..fe62892b5
--- /dev/null
+++ b/multilib/lib32-libmikmod/libmikmod-3.1.12-exitcrash-fix.diff
@@ -0,0 +1,21 @@
+Date: 15 Apr 2002 11:01:19 +0200
+From: Guillaume Cottenceau <gc@mandrakesoft.com>
+
+Unfortunately, I should have double checked that the following
+fix (authored by Dave Goehrig <dave@cthulhu-burger.org>, not me),
+was really in the CVS... it's not, as of stable 1.2.3 at least.
+Please include it, it fixes a segfault on exiting a program which
+disabled MOD music during its execution.
+
+diff -ru libmikmod-3.1.12.orig/playercode/virtch_common.c libmikmod-3.1.12/playercode/virtch_common.c
+--- libmikmod-3.1.12.orig/playercode/virtch_common.c 2007-12-15 01:26:53.000000000 -0800
++++ libmikmod-3.1.12/playercode/virtch_common.c 2009-10-05 00:37:12.000000000 -0700
+@@ -347,7 +347,7 @@
+
+ void VC1_SampleUnload(SWORD handle)
+ {
+- if (handle<MAXSAMPLEHANDLES) {
++ if (Samples && handle<MAXSAMPLEHANDLES) {
+ if (Samples[handle])
+ free(Samples[handle]);
+ Samples[handle]=NULL;
diff --git a/multilib/lib32-libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff b/multilib/lib32-libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff
new file mode 100644
index 000000000..f0ce70e34
--- /dev/null
+++ b/multilib/lib32-libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff
@@ -0,0 +1,15 @@
+Yi-Huang Han - Wed Oct 24 21:55:47 PDT 2001
+ * Fixed MOD music volume when looping
+
+diff -ru libmikmod-3.1.12.orig/playercode/mplayer.c libmikmod-3.1.12/playercode/mplayer.c
+--- libmikmod-3.1.12.orig/playercode/mplayer.c 2009-10-05 00:19:59.000000000 -0700
++++ libmikmod-3.1.12/playercode/mplayer.c 2009-10-05 00:44:35.000000000 -0700
+@@ -3019,7 +3019,7 @@
+ {
+ MUTEX_LOCK(vars);
+ if (pf)
+- pf->volume=(volume<0)?0:(volume>128)?128:volume;
++ pf->volume=pf->initvolume=(volume<0)?0:(volume>128)?128:volume;
+ MUTEX_UNLOCK(vars);
+ }
+
diff --git a/multilib/lib32-libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff b/multilib/lib32-libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff
new file mode 100644
index 000000000..45cc355ae
--- /dev/null
+++ b/multilib/lib32-libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff
@@ -0,0 +1,112 @@
+This patch fixes "buffer overflow due to md_numchn - ID: 1630158"
+
+diff -ru libmikmod-3.1.12.orig/playercode/mplayer.c libmikmod-3.1.12/playercode/mplayer.c
+--- libmikmod-3.1.12.orig/playercode/mplayer.c 2007-12-15 01:26:28.000000000 -0800
++++ libmikmod-3.1.12/playercode/mplayer.c 2009-10-04 23:48:36.000000000 -0700
+@@ -52,6 +52,8 @@
+ will wait */
+ /*static*/ MODULE *pf = NULL;
+
++#define NUMVOICES(mod) (md_sngchn < (mod)->numvoices ? md_sngchn : (mod)->numvoices)
++
+ #define HIGH_OCTAVE 2 /* number of above-range octaves */
+
+ static UWORD oldperiods[OCTAVE*2]={
+@@ -248,14 +250,14 @@
+ MP_VOICE *a;
+ ULONG t,k,tvol,pp;
+
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (((mod->voice[t].main.kick==KICK_ABSENT)||
+ (mod->voice[t].main.kick==KICK_ENV))&&
+ Voice_Stopped_internal(t))
+ return t;
+
+ tvol=0xffffffUL;t=-1;a=mod->voice;
+- for (k=0;k<md_sngchn;k++,a++) {
++ for (k=0;k<NUMVOICES(mod);k++,a++) {
+ /* allow us to take over a nonexisting sample */
+ if (!a->main.s)
+ return k;
+@@ -2249,12 +2251,12 @@
+
+ switch (dat) {
+ case 0x0: /* past note cut */
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (mod->voice[t].master==a)
+ mod->voice[t].main.fadevol=0;
+ break;
+ case 0x1: /* past note off */
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (mod->voice[t].master==a) {
+ mod->voice[t].main.keyoff|=KEY_OFF;
+ if ((!(mod->voice[t].venv.flg & EF_ON))||
+@@ -2263,7 +2265,7 @@
+ }
+ break;
+ case 0x2: /* past note fade */
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (mod->voice[t].master==a)
+ mod->voice[t].main.keyoff|=KEY_FADE;
+ break;
+@@ -2318,7 +2320,7 @@
+ SAMPLE *s;
+
+ mod->totalchn=mod->realchn=0;
+- for (channel=0;channel<md_sngchn;channel++) {
++ for (channel=0;channel<NUMVOICES(mod);channel++) {
+ aout=&mod->voice[channel];
+ i=aout->main.i;
+ s=aout->main.s;
+@@ -2736,7 +2738,7 @@
+ if (a->dct!=DCT_OFF) {
+ int t;
+
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if ((!Voice_Stopped_internal(t))&&
+ (mod->voice[t].masterchn==channel)&&
+ (a->main.sample==mod->voice[t].main.sample)) {
+@@ -2978,6 +2980,11 @@
+ if (!(mod->voice=(MP_VOICE*)_mm_calloc(md_sngchn,sizeof(MP_VOICE))))
+ return 1;
+
++ /* mod->numvoices was used during loading to clamp md_sngchn.
++ After loading it's used to remember how big mod->voice is.
++ */
++ mod->numvoices = md_sngchn;
++
+ Player_Init_internal(mod);
+ return 0;
+ }
+@@ -3086,7 +3093,7 @@
+ pf->patbrk=0;
+ pf->vbtick=pf->sngspd;
+
+- for (t=0;t<md_sngchn;t++) {
++ for (t=0;t<NUMVOICES(pf);t++) {
+ Voice_Stop_internal(t);
+ pf->voice[t].main.i=NULL;
+ pf->voice[t].main.s=NULL;
+@@ -3111,7 +3118,7 @@
+ pf->patbrk=0;
+ pf->vbtick=pf->sngspd;
+
+- for (t=0;t<md_sngchn;t++) {
++ for (t=0;t<NUMVOICES(pf);t++) {
+ Voice_Stop_internal(t);
+ pf->voice[t].main.i=NULL;
+ pf->voice[t].main.s=NULL;
+@@ -3138,7 +3145,7 @@
+ pf->sngpos=pos;
+ pf->vbtick=pf->sngspd;
+
+- for (t=0;t<md_sngchn;t++) {
++ for (t=0;t<NUMVOICES(pf);t++) {
+ Voice_Stop_internal(t);
+ pf->voice[t].main.i=NULL;
+ pf->voice[t].main.s=NULL;
diff --git a/multilib/lib32-libmikmod/libmikmod-CVE-2009-0179.patch b/multilib/lib32-libmikmod/libmikmod-CVE-2009-0179.patch
new file mode 100644
index 000000000..0c47e6545
--- /dev/null
+++ b/multilib/lib32-libmikmod/libmikmod-CVE-2009-0179.patch
@@ -0,0 +1,33 @@
+diff -ur libmikmod-3.1.11.orig/loaders/load_xm.c libmikmod-3.1.11/loaders/load_xm.c
+--- libmikmod-3.1.11.orig/loaders/load_xm.c 2004-01-21 18:43:53.000000000 +0100
++++ libmikmod-3.1.11/loaders/load_xm.c 2008-04-16 04:30:45.000000000 +0200
+@@ -622,7 +622,8 @@
+ /* read the remainder of the header */
+ for(u=headend-_mm_ftell(modreader);u;u--) _mm_read_UBYTE(modreader);
+
+- if(_mm_eof(modreader)) {
++ /* last instrument is at the end of file in version 0x0104 */
++ if(_mm_eof(modreader) && (mh->version<0x0104 || t<of.numins-1)) {
+ free(nextwav);free(wh);
+ nextwav=NULL;wh=NULL;
+ _mm_errno = MMERR_LOADING_SAMPLEINFO;
+diff -ur libmikmod-3.1.11.orig/playercode/mloader.c libmikmod-3.1.11/playercode/mloader.c
+--- libmikmod-3.1.11.orig/playercode/mloader.c 2004-01-21 18:43:53.000000000 +0100
++++ libmikmod-3.1.11/playercode/mloader.c 2008-04-16 04:30:45.000000000 +0200
+@@ -450,10 +450,12 @@
+ if (!l->Init || l->Init()) {
+ _mm_rewind(modreader);
+ ok = l->Load(curious);
+- /* propagate inflags=flags for in-module samples */
+- for (t = 0; t < of.numsmp; t++)
+- if (of.samples[t].inflags == 0)
+- of.samples[t].inflags = of.samples[t].flags;
++ if (ok) {
++ /* propagate inflags=flags for in-module samples */
++ for (t = 0; t < of.numsmp; t++)
++ if (of.samples[t].inflags == 0)
++ of.samples[t].inflags = of.samples[t].flags;
++ }
+ } else
+ ok = 0;
+
diff --git a/multilib/lib32-libmng/PKGBUILD b/multilib/lib32-libmng/PKGBUILD
new file mode 100644
index 000000000..eb42ad374
--- /dev/null
+++ b/multilib/lib32-libmng/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 26602 2010-09-15 22:40:41Z bluewind $
+# Maintainer: Florian Pritz <flo@xssn.at>
+_pkgbasename=libmng
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.10
+pkgrel=5
+pkgdesc="A collection of routines used to create and manipulate MNG format graphics files (32-bit)"
+arch=('x86_64')
+url="http://www.libmng.com/"
+license=('custom')
+depends=('lib32-zlib' 'lib32-libjpeg>=8' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/$_pkgbasename/$_pkgbasename-$pkgver.tar.gz)
+md5sums=('a464ae7d679781beebdf7440d144b7bd')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/$_pkgbasename-$pkgver
+ ln -s makefiles/configure.in .
+ ln -s makefiles/Makefile.am .
+ autoreconf --force --install
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/$_pkgbasename-$pkgver
+
+ make DESTDIR=$pkgdir install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libogg/PKGBUILD b/multilib/lib32-libogg/PKGBUILD
new file mode 100644
index 000000000..ff8614b23
--- /dev/null
+++ b/multilib/lib32-libogg/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 40915 2011-03-01 15:20:49Z bluewind $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=libogg
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.2
+pkgrel=1
+pkgdesc="Ogg bitstream and framing library (32-bit)"
+arch=('x86_64')
+url="http://www.xiph.org/ogg/"
+license=('BSD')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://downloads.xiph.org/releases/ogg/$_pkgbasename-$pkgver.tar.gz)
+md5sums=('5a9fcabc9a1b7c6f1cd75ddc78f36c56')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/${_pkgbasename}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=$pkgdir install
+
+ rm -rf "$pkgdir"/usr/{share,bin}
+ find "$pkgdir"/usr/include/ogg -type f -not -name config_types.h -delete
+ mv "$pkgdir"/usr/include/ogg/config_types{,-32}.h
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libpng/PKGBUILD b/multilib/lib32-libpng/PKGBUILD
new file mode 100644
index 000000000..6ace33ee4
--- /dev/null
+++ b/multilib/lib32-libpng/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 37276 2011-01-13 18:48:07Z bluewind $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Travis Willard <travis@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+_pkgbasename=libpng
+pkgname=lib32-$_pkgbasename
+pkgver=1.4.5
+_apngver=1.4.5
+pkgrel=1
+pkgdesc="A collection of routines used to create PNG format graphics files (32-bit)"
+arch=('x86_64')
+url="http://www.libpng.org/pub/png/libpng.html"
+license=('custom')
+depends=('lib32-zlib' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.xz"
+ "http://downloads.sourceforge.net/sourceforge/libpng-apng/libpng-${_apngver}-apng.patch.gz")
+md5sums=('37d420c7d8294aac438c150bb4335901'
+ '459affb0ac7e0f1ae4d99b88234cb3db')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ # Add animated PNG (apng) support
+ # see http://sourceforge.net/projects/libpng-apng/
+ patch -p1 -i "${srcdir}/libpng-${_apngver}-apng.patch"
+
+# libtoolize --force --copy
+# aclocal
+# autoconf
+# automake --add-missing
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ cd contrib/pngminus
+ make PNGLIB="-L${pkgdir}/usr/lib32 -lpng" -f makefile.std png2pnm pnm2png
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libpulse/PKGBUILD b/multilib/lib32-libpulse/PKGBUILD
new file mode 100644
index 000000000..01f9efc6d
--- /dev/null
+++ b/multilib/lib32-libpulse/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 33577 2010-11-26 02:49:09Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+_pkgbasename=libpulse
+pkgname=lib32-$_pkgbasename
+pkgdesc="A featureful, general-purpose sound server (32-bit client libraries)"
+pkgver=0.9.22
+pkgrel=1
+arch=(x86_64)
+url="http://pulseaudio.org/"
+license=(GPL LGPL)
+depends=(lib32-{dbus-core,xcb-util}
+ lib32-lib{asyncns,cap,xtst,sm,sndfile}
+ $_pkgbasename)
+makedepends=(pkgconfig gcc-multilib libtool-multilib intltool lib32-glib2 lib32-speex)
+optdepends=('lib32-alsa-plugins: ALSA support')
+provides=("lib32-pulseaudio=$pkgver")
+conflicts=(lib32-pulseaudio)
+replaces=(lib32-pulseaudio)
+options=(!emptydirs !libtool !makeflags)
+source=("http://0pointer.de/lennart/projects/pulseaudio/pulseaudio-$pkgver.tar.gz")
+md5sums=('ca85ab470669b05e100861654cf5eb3c')
+
+_libs="libpulsecommon-$pkgver.la libpulse.la libpulse-simple.la libpulse-mainloop-glib.la libpulsedsp.la"
+
+build() {
+ cd "$srcdir/pulseaudio-$pkgver"
+
+ # Don't break circular dependency between libpulse and libpulsecommon
+ LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib32 \
+ --libexecdir=/usr/lib32 \
+ --localstatedir=/var \
+ --disable-hal \
+ --disable-rpath \
+ --disable-default-build-tests
+
+ make -C src $_libs
+}
+
+package() {
+ cd "$srcdir/pulseaudio-$pkgver"
+ make -C src lib_LTLIBRARIES="$_libs" DESTDIR="$pkgdir" install-libLTLIBRARIES
+ make DESTDIR="$pkgdir" install-pkgconfigDATA
+}
diff --git a/multilib/lib32-libsamplerate/PKGBUILD b/multilib/lib32-libsamplerate/PKGBUILD
new file mode 100644
index 000000000..c618d6681
--- /dev/null
+++ b/multilib/lib32-libsamplerate/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 33260 2010-11-23 15:20:46Z bluewind $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=libsamplerate
+pkgname=lib32-$_pkgbasename
+pkgver=0.1.7
+pkgrel=3
+pkgdesc="Secret Rabbit Code - aka Sample Rate Converter for audio (32-bit)"
+arch=('x86_64')
+url="http://www.mega-nerd.com/SRC/index.html"
+license=('GPL')
+depends=('lib32-libsndfile' $_pkgbasename)
+makedepedns=('gcc-multilib')
+options=('!libtool')
+source=(http://www.mega-nerd.com/SRC/libsamplerate-${pkgver}.tar.gz)
+md5sums=('6731a81cb0c622c483b28c0d7f90867d')
+sha1sums=('f3f803ec5feae5a3fdb0fa3937277669e854386e')
+
+build() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-libsm/PKGBUILD b/multilib/lib32-libsm/PKGBUILD
new file mode 100644
index 000000000..8a88d6e4e
--- /dev/null
+++ b/multilib/lib32-libsm/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 31529 2010-11-01 23:52:46Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libsm
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X11 Session Management library (32-bit)"
+arch=(x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libice' 'lib32-util-linux-ng' $_pkgbasename)
+makedepends=('xorg-util-macros' 'xtrans' 'gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libSM-${pkgver}.tar.bz2)
+sha1sums=('f78bc72f0b3ec26cbf980f84f014422ba854544d')
+
+build() {
+ cd "${srcdir}/libSM-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libSM-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libsndfile/PKGBUILD b/multilib/lib32-libsndfile/PKGBUILD
new file mode 100644
index 000000000..3d1c36d17
--- /dev/null
+++ b/multilib/lib32-libsndfile/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 43016 2011-03-23 20:35:57Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=libsndfile
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.24
+pkgrel=1
+pkgdesc="A C library for reading and writing files containing sampled sound (32-bit)"
+arch=('x86_64')
+url="http://www.mega-nerd.com/libsndfile"
+license=('LGPL')
+depends=('lib32-flac' 'lib32-libvorbis' $_pkgbasename)
+makedepends=('lib32-alsa-lib' 'gcc-multilib')
+options=('!libtool')
+source=(http://www.mega-nerd.com/libsndfile/files/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('8f823c30c1d8d44830db6ab845d6679e')
+sha1sums=('ade2dad272b52f61bb58aca3a4004b28549ee0f8')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ export GETCONF="getconf -v POSIX_V7_ILP32_OFFBIG"
+ export GETCONF_DIR="/usr/lib32/getconf"
+
+ ./configure --prefix=/usr --disable-sqlite --libdir=/usr/lib32
+ make -C src
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make -C src DESTDIR="${pkgdir}" install
+ make DESTDIR="$pkgdir" install-pkgconfigDATA
+
+ rm -rf "$pkgdir/usr/include"
+}
diff --git a/multilib/lib32-libstdc++5/PKGBUILD b/multilib/lib32-libstdc++5/PKGBUILD
new file mode 100644
index 000000000..3d30a4b0e
--- /dev/null
+++ b/multilib/lib32-libstdc++5/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 26620 2010-09-15 22:43:15Z bluewind $
+
+pkgname=lib32-libstdc++5
+pkgver=3.3.6
+pkgrel=5
+pkgdesc="Legacy GNU Standard C++ library version 3 (32 bit)"
+arch=(x86_64)
+url="http://gcc.gnu.org"
+license=('GPL' 'LGPL')
+depends=('lib32-gcc-libs')
+makedepends=('gcc-multilib' 'binutils-multilib')
+options=('!libtool' '!makeflags')
+source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++}-${pkgver}.tar.bz2
+ gcc-3.4.3-no_multilib_amd64.patch)
+md5sums=('18c52e6fb8966b7700665dca289d077f'
+ '6b3d00b8d079805be1b895f7f6ce47a0'
+ 'b2a96584f4cee72362695ba44c911c40')
+
+build(){
+ export CFLAGS=$(echo $CFLAGS | sed 's|-mtune=generic||')
+ export CXXFLAGS=$(echo $CXXFLAGS | sed 's|-mtune=generic||')
+ cd ${srcdir}/gcc-${pkgver}
+
+ patch -Np0 -i ../gcc-3.4.3-no_multilib_amd64.patch
+ # No fixincludes
+ sed -i -e 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+
+ mkdir ../gcc-build
+ cd ../gcc-build
+ # We build the full multilib libstdc++5 here, no idea how to restrict
+ # the build process to the 32 bit version only.
+ ../gcc-${pkgver}/configure --prefix=/usr --enable-shared \
+ --enable-languages=c++ --enable-threads=posix --enable-__cxa_atexit \
+ --enable-multilib
+ make all-target-libstdc++-v3 BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O"
+}
+
+package() {
+ cd ${srcdir}/gcc-build
+ make DESTDIR=${pkgdir} install-target-libstdc++-v3
+
+ # Only install the lib32 files
+ rm -rf ${pkgdir}/usr/{include,share,lib}
+ rm -f ${pkgdir}/usr/lib32/*.a
+ rm -f ${pkgdir}/usr/lib32/libstdc++.so
+}
diff --git a/multilib/lib32-libstdc++5/gcc-3.4.3-no_multilib_amd64.patch b/multilib/lib32-libstdc++5/gcc-3.4.3-no_multilib_amd64.patch
new file mode 100644
index 000000000..6ba6694db
--- /dev/null
+++ b/multilib/lib32-libstdc++5/gcc-3.4.3-no_multilib_amd64.patch
@@ -0,0 +1,11 @@
+--- gcc/config/i386/t-linux64.orig 2003-06-28 00:19:59.000000000 +0000
++++ gcc/config/i386/t-linux64 2003-06-28 00:20:07.000000000 +0000
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 ../lib
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/multilib/lib32-libtiff/PKGBUILD b/multilib/lib32-libtiff/PKGBUILD
new file mode 100644
index 000000000..92858840d
--- /dev/null
+++ b/multilib/lib32-libtiff/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 26623 2010-09-15 22:43:40Z bluewind $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+_pkgbasename=libtiff
+pkgname=lib32-$_pkgbasename
+pkgver=3.9.4
+pkgrel=3
+pkgdesc="Library for manipulation of TIFF images (32-bit)"
+arch=('x86_64')
+url="http://www.remotesensing.org/libtiff/"
+license=('custom')
+depends=('lib32-libjpeg' 'lib32-zlib' $_pkgbasename)
+makedepends=('lib32-libgl' 'lib32-libxmu' 'lib32-libxi' gcc-multilib)
+options=('!libtool')
+source=(ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz \
+ libtiff-CVE-2009-2285.patch)
+md5sums=('2006c1bdd12644dbf02956955175afd6' 'ff61077408727a82281f77a94f555e2a')
+sha1sums=('a4e32d55afbbcabd0391a9c89995e8e8a19961de' 'eadce8c8bd72ea9c74f35300bf299131813b0c8b')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/tiff-${pkgver}"
+ patch -p1 < ../libtiff-CVE-2009-2285.patch
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/tiff-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libtiff/libtiff-CVE-2009-2285.patch b/multilib/lib32-libtiff/libtiff-CVE-2009-2285.patch
new file mode 100644
index 000000000..435a84b53
--- /dev/null
+++ b/multilib/lib32-libtiff/libtiff-CVE-2009-2285.patch
@@ -0,0 +1,22 @@
+Index: tiff-3.8.2/libtiff/tif_lzw.c
+===================================================================
+--- tiff-3.8.2.orig/libtiff/tif_lzw.c
++++ tiff-3.8.2/libtiff/tif_lzw.c
+@@ -421,7 +421,7 @@ LZWDecode(TIFF* tif, tidata_t op0, tsize
+ NextCode(tif, sp, bp, code, GetNextCode);
+ if (code == CODE_EOI)
+ break;
+- if (code == CODE_CLEAR) {
++ if (code >= CODE_CLEAR) {
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
+ "LZWDecode: Corrupted LZW table at scanline %d",
+ tif->tif_row);
+@@ -624,7 +624,7 @@ LZWDecodeCompat(TIFF* tif, tidata_t op0,
+ NextCode(tif, sp, bp, code, GetNextCodeCompat);
+ if (code == CODE_EOI)
+ break;
+- if (code == CODE_CLEAR) {
++ if (code >= CODE_CLEAR) {
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
+ "LZWDecode: Corrupted LZW table at scanline %d",
+ tif->tif_row);
diff --git a/multilib/lib32-libusb-compat/PKGBUILD b/multilib/lib32-libusb-compat/PKGBUILD
new file mode 100644
index 000000000..fba67c477
--- /dev/null
+++ b/multilib/lib32-libusb-compat/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id$
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: arjan <arjan@archlinux.org>
+
+pkgname=lib32-libusb-compat
+pkgver=0.1.3
+pkgrel=1
+pkgdesc="Library to enable user space application programs to communicate with USB devices"
+arch=('x86_64')
+depends=('lib32-libusb' 'libusb-compat')
+makedepends=('gcc-multilib')
+url="http://libusb.sourceforge.net/"
+license=('LGPL')
+source=(http://downloads.sourceforge.net/libusb/libusb-compat-0.1/libusb-compat-$pkgver/libusb-compat-${pkgver}.tar.bz2)
+options=('!libtool')
+md5sums=('570ac2ea085b80d1f74ddc7c6a93c0eb')
+
+build() {
+ cd ${srcdir}/libusb-compat-${pkgver}
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/libusb-compat-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/usr/{bin,include}
+}
diff --git a/multilib/lib32-libusb/PKGBUILD b/multilib/lib32-libusb/PKGBUILD
new file mode 100644
index 000000000..d79cf8aed
--- /dev/null
+++ b/multilib/lib32-libusb/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=lib32-libusb
+pkgver=1.0.8
+pkgrel=1
+pkgdesc="Library to enable user space application programs to communicate with USB devices. (32-bit)"
+arch=('x86_64')
+url="http://libusb.sourceforge.net/"
+license=('LGPL')
+depends=('lib32-glibc' 'libusb')
+makedepends=('gcc-multilib')
+source=(http://downloads.sourceforge.net/libusb/libusb-${pkgver}.tar.bz2)
+options=(!libtool)
+md5sums=('37d34e6eaa69a4b645a19ff4ca63ceef')
+
+build() {
+ cd "${srcdir}/libusb-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+
+ make
+}
+
+package () {
+ cd "${srcdir}/libusb-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ rm -rf ${pkgdir}/usr/include
+}
+
diff --git a/multilib/lib32-libvdpau/PKGBUILD b/multilib/lib32-libvdpau/PKGBUILD
new file mode 100644
index 000000000..795e0f051
--- /dev/null
+++ b/multilib/lib32-libvdpau/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 41886 2011-03-10 14:20:26Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: TryA <tryagainprod {at} gmail.com>
+
+_pkgbasename=libvdpau
+pkgname=lib32-libvdpau
+pkgver=0.4.1
+pkgrel=3
+pkgdesc="Nvidia VDPAU library (32-bit)"
+arch=('x86_64')
+url=http://cgit.freedesktop.org/~aplattner/libvdpau
+depends=(${_pkgbasename})
+options=('!libtool')
+license=('custom')
+source=(http://people.freedesktop.org/~aplattner/vdpau/${_pkgbasename}-${pkgver}.tar.gz)
+makedepends=('lib32-libx11')
+sha256sums=('061b6f86c64912f79851bfefcac4f77b401e9a939dbbb7b1ec795bc7d5aaf59b')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/include
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libvorbis/PKGBUILD b/multilib/lib32-libvorbis/PKGBUILD
new file mode 100644
index 000000000..6f0b9fb1d
--- /dev/null
+++ b/multilib/lib32-libvorbis/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 33990 2010-11-30 15:16:40Z bluewind $
+# Maintainer: Tobias Kieslich <tobias@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+_pkgbasename=libvorbis
+pkgname=lib32-$_pkgbasename
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="Vorbis codec library (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://www.xiph.org/ogg/vorbis/"
+depends=('lib32-libogg' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://downloads.xiph.org/releases/vorbis/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('c870b9bd5858a0ecb5275c14486d9554')
+
+build() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ #-march=i686 optimizes too much, strip it out
+ CFLAGS=${CFLAGS/-march=$CARCH} ./configure --prefix=/usr --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libx11/PKGBUILD b/multilib/lib32-libx11/PKGBUILD
new file mode 100644
index 000000000..232afa456
--- /dev/null
+++ b/multilib/lib32-libx11/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 35267 2010-12-18 01:14:35Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libx11
+pkgname=lib32-$_pkgbasename
+pkgver=1.4.0
+pkgrel=1
+pkgdesc="X11 client-side library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxcb' 'xproto' 'kbproto' $_pkgbasename)
+makedepends=('xorg-util-macros' 'xextproto' 'xtrans' 'inputproto' 'gcc-multilib')
+options=('!libtool')
+license=('custom:XFREE86')
+source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.bz2)
+sha1sums=('3d198f5578733d6c3d81c005025875f6d084668e')
+
+build() {
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libX11-${pkgver}"
+ ./configure --prefix=/usr --disable-static --disable-xf86bigfont \
+ --libdir=/usr/lib32 --disable-specs
+ make
+ make check
+}
+
+package() {
+ cd "${srcdir}/libX11-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxau/PKGBUILD b/multilib/lib32-libxau/PKGBUILD
new file mode 100644
index 000000000..728804d46
--- /dev/null
+++ b/multilib/lib32-libxau/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 26632 2010-09-15 22:44:58Z bluewind $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libxau
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.6
+pkgrel=2
+pkgdesc="X11 authorisation library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('pkgconfig' 'xproto>=7.0.15' 'gcc-multilib')
+license=('custom')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXau-${pkgver}.tar.bz2)
+sha1sums=('0e1ab449f98026e4599f6e0d7491810d36c8fe4d')
+
+build() {
+ cd "${srcdir}/libXau-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXau-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxcb/PKGBUILD b/multilib/lib32-libxcb/PKGBUILD
new file mode 100644
index 000000000..fb15b6e01
--- /dev/null
+++ b/multilib/lib32-libxcb/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 26635 2010-09-15 22:45:22Z bluewind $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libxcb
+pkgname=lib32-$_pkgbasename
+pkgver=1.7
+pkgrel=2
+pkgdesc="X11 client-side library (32-bit)"
+arch=(x86_64)
+url="http://xcb.freedesktop.org/"
+depends=('xcb-proto>=1.6' 'lib32-libxdmcp' 'lib32-libxau'
+ $_pkgbasename)
+makedepends=('pkgconfig' 'libxslt' 'python' 'gcc-multilib'
+ 'autoconf')
+conflicts=('libx11<1.1.99.2')
+options=('!libtool')
+license=('custom')
+source=(${url}/dist/${_pkgbasename}-${pkgver}.tar.bz2
+ libxcb-1.1-no-pthread-stubs.patch)
+sha1sums=('7540f0587907bce421914f0ddb813810cb2f36f8'
+ '3455e84642283bc91c8313af319002a20bbcbdf4')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libxcb-1.1-no-pthread-stubs.patch"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ libtoolize --force --copy
+ aclocal
+ autoconf
+ automake --add-missing
+ ./configure --prefix=/usr --enable-xinput --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch b/multilib/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch
new file mode 100644
index 000000000..f17de1b1d
--- /dev/null
+++ b/multilib/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch
@@ -0,0 +1,12 @@
+diff -up libxcb-1.1/configure.ac.pthread-stubs libxcb-1.1/configure.ac
+--- libxcb-1.1/configure.ac.pthread-stubs 2007-11-04 18:17:11.000000000 -0500
++++ libxcb-1.1/configure.ac 2007-11-12 10:27:06.000000000 -0500
+@@ -31,7 +31,7 @@ AC_SUBST(HTML_CHECK_RESULT)
+
+ # Checks for pkg-config packages
+ PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.6)
+-NEEDED="pthread-stubs xau >= 0.99.2"
++NEEDED="xau >= 0.99.2"
+ PKG_CHECK_MODULES(NEEDED, $NEEDED)
+
+ have_xdmcp="no"
diff --git a/multilib/lib32-libxcomposite/PKGBUILD b/multilib/lib32-libxcomposite/PKGBUILD
new file mode 100644
index 000000000..8eb4d24ab
--- /dev/null
+++ b/multilib/lib32-libxcomposite/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 31532 2010-11-01 23:56:56Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxcomposite
+pkgname=lib32-$_pkgbasename
+pkgver=0.4.3
+pkgrel=1
+pkgdesc="X11 Composite extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxfixes' 'compositeproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=(!libtool)
+source=(${url}/releases/individual/lib/libXcomposite-${pkgver}.tar.bz2)
+sha1sums=('081b26b556d55e20d7956c80a2ea2854962aecec')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXcomposite-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXcomposite-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxcursor/PKGBUILD b/multilib/lib32-libxcursor/PKGBUILD
new file mode 100644
index 000000000..ee8df1005
--- /dev/null
+++ b/multilib/lib32-libxcursor/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 31535 2010-11-02 00:00:15Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+_pkgbasename=libxcursor
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.11
+pkgrel=1
+pkgdesc="X cursor management library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxfixes' 'lib32-libxrender' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXcursor-${pkgver}.tar.bz2)
+sha1sums=('35491bd17cbcdda712e1a064c67ccbc523e2702c')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXcursor-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXcursor-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxdamage/PKGBUILD b/multilib/lib32-libxdamage/PKGBUILD
new file mode 100644
index 000000000..17e003925
--- /dev/null
+++ b/multilib/lib32-libxdamage/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26644 2010-09-15 22:46:36Z bluewind $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxdamage
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.3
+pkgrel=3
+pkgdesc="X11 damaged region extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxfixes>=4.0.4' $_pkgbasename)
+makedepends=('pkg-config' 'damageproto>=1.2.0' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXdamage-${pkgver}.tar.bz2)
+sha1sums=('7d96e8de107fede16951cb47d5e147630fbc7dee')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXdamage-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXdamage-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install || return 1
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxdmcp/PKGBUILD b/multilib/lib32-libxdmcp/PKGBUILD
new file mode 100644
index 000000000..9f8ebf468
--- /dev/null
+++ b/multilib/lib32-libxdmcp/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 35270 2010-12-18 01:18:05Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxdmcp
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="X11 Display Manager Control Protocol library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('xproto' 'lib32-glibc' $_pkgbasename)
+makedepends=('xorg-util-macros' 'gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXdmcp-${pkgver}.tar.bz2)
+sha1sums=('28132db24727552f77e998e6a6798a5b9b30789f')
+
+build() {
+ cd ${srcdir}/libXdmcp-${pkgver}
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/libXdmcp-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxext/PKGBUILD b/multilib/lib32-libxext/PKGBUILD
new file mode 100644
index 000000000..7c6e68080
--- /dev/null
+++ b/multilib/lib32-libxext/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 31542 2010-11-02 00:03:44Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxext
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X11 miscellaneous extensions library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libx11' 'xextproto' $_pkgbasename)
+makedepends=('xorg-util-macros' 'gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXext-${pkgver}.tar.bz2)
+sha1sums=('090d7109c5fffde8a0063e10f22f3e2ec48cf19e')
+
+build() {
+ cd "${srcdir}/libXext-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXext-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxfixes/PKGBUILD b/multilib/lib32-libxfixes/PKGBUILD
new file mode 100644
index 000000000..a8b980fa5
--- /dev/null
+++ b/multilib/lib32-libxfixes/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26653 2010-09-15 22:47:51Z bluewind $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxfixes
+pkgname=lib32-$_pkgbasename
+pkgver=4.0.5
+pkgrel=3
+pkgdesc="X11 miscellaneous 'fixes' extension library (32-bit)"
+arch=('x86_64')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libx11>=1.3.4' $_pkgbasename)
+makedepends=('pkg-config' gcc-multilib "fixesproto>=4.1.1")
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXfixes-${pkgver}.tar.bz2)
+sha1sums=('255dfb9a8c50d795c60711ec4764f76cd0620cbf')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXfixes-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXfixes-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxft/PKGBUILD b/multilib/lib32-libxft/PKGBUILD
new file mode 100644
index 000000000..6036674d0
--- /dev/null
+++ b/multilib/lib32-libxft/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 31474 2010-10-31 22:37:35Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+_pkgbasename=libxft
+pkgname=lib32-$_pkgbasename
+pkgver=2.2.0
+pkgrel=1
+pkgdesc="FreeType-based font drawing library for X (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-fontconfig' 'lib32-libxrender')
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXft-${pkgver}.tar.bz2)
+sha1sums=('ed29784259f4e26df78141035560ae8a7c62e83f')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/libXft-${pkgver}
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib32 --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/libXft-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxi/PKGBUILD b/multilib/lib32-libxi/PKGBUILD
new file mode 100644
index 000000000..4f3f85361
--- /dev/null
+++ b/multilib/lib32-libxi/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 39079 2011-02-06 10:58:56Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxi
+pkgname=lib32-$_pkgbasename
+pkgver=1.4.1
+pkgrel=1
+pkgdesc="X11 Input extension library (32-bit)"
+arch=('x86_64')
+url="http://xorg.freedesktop.org"
+depends=('lib32-libxext' 'inputproto' $_pkgbasename)
+makedepends=('pkgconfig' 'xorg-util-macros' gcc-multilib)
+options=(!libtool)
+license=('custom')
+source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2)
+sha1sums=('15c9d369cc76c73b5e3833ba3b39355e6cc06636')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXi-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXi-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxinerama/PKGBUILD b/multilib/lib32-libxinerama/PKGBUILD
new file mode 100644
index 000000000..ba7920554
--- /dev/null
+++ b/multilib/lib32-libxinerama/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 31546 2010-11-02 00:05:46Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+_pkgbasename=libxinerama
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X11 Xinerama extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxext' 'xineramaproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=(!libtool)
+source=(${url}/releases/individual/lib/libXinerama-${pkgver}.tar.bz2)
+sha1sums=('f030b0cfcce15502aac78188524f32a6f29bd0a4')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXinerama-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXinerama-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxml2/PKGBUILD b/multilib/lib32-libxml2/PKGBUILD
new file mode 100644
index 000000000..94cd5c9d8
--- /dev/null
+++ b/multilib/lib32-libxml2/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 33687 2010-11-27 15:36:04Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+_pkgbasename=libxml2
+pkgname=lib32-$_pkgbasename
+pkgver=2.7.8
+pkgrel=1
+pkgdesc="XML parsing library, version 2 (32-bit)"
+arch=(x86_64)
+license=('custom')
+depends=('lib32-zlib>=1.2.4' 'lib32-readline>=6.1' 'lib32-ncurses>=5.7' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+url="http://www.xmlsoft.org/"
+source=(ftp://ftp.xmlsoft.org/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz
+ shared_library_versionning.patch)
+md5sums=('8127a65e8c3b08856093099b52599c86'
+ '84aeb7c6db023eae044e95d9211dba53')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -Np1 -i "${srcdir}/shared_library_versionning.patch"
+ autoreconf -fi
+ ./configure --prefix=/usr --with-threads --with-history --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin} "$pkgdir/usr/lib32/xml2Conf.sh"
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxml2/shared_library_versionning.patch b/multilib/lib32-libxml2/shared_library_versionning.patch
new file mode 100644
index 000000000..a0b62bca9
--- /dev/null
+++ b/multilib/lib32-libxml2/shared_library_versionning.patch
@@ -0,0 +1,21 @@
+From 00819877651b87842ed878898ba17dba489820f0 Mon Sep 17 00:00:00 2001
+From: Daniel Veillard <veillard@redhat.com>
+Date: Thu, 04 Nov 2010 20:53:14 +0000
+Subject: Reactivate the shared library versionning script
+
+---
+diff --git a/configure.in b/configure.in
+index 59d0629..a1d2c89 100644
+--- a/configure.in
++++ b/configure.in
+@@ -84,7 +84,7 @@ else
+ esac
+ fi
+ AC_SUBST(VERSION_SCRIPT_FLAGS)
+-AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -z "$VERSION_SCRIPT_FLAGS"])
++AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
+
+ dnl
+ dnl We process the AC_ARG_WITH first so that later we can modify
+--
+cgit v0.8.3.1
diff --git a/multilib/lib32-libxmu/PKGBUILD b/multilib/lib32-libxmu/PKGBUILD
new file mode 100644
index 000000000..269d698d7
--- /dev/null
+++ b/multilib/lib32-libxmu/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 35276 2010-12-18 01:22:30Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxmu
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="X11 miscellaneous micro-utility library (32-bit)"
+arch=('x86_64')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxext' 'lib32-libxt' $_pkgbasename)
+makedepends=('xorg-util-macros' 'gcc-multilib')
+license=('custom')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXmu-${pkgver}.tar.bz2)
+sha1sums=('81876a0848070bfc4476a2538fc16898eb6d96cd')
+
+build() {
+ cd "${srcdir}/libXmu-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXmu-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxpm/PKGBUILD b/multilib/lib32-libxpm/PKGBUILD
new file mode 100644
index 000000000..4535195de
--- /dev/null
+++ b/multilib/lib32-libxpm/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 35279 2010-12-18 01:24:10Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libxpm
+pkgname=lib32-$_pkgbasename
+pkgver=3.5.9
+pkgrel=1
+pkgdesc="X11 pixmap library (32-bit)"
+arch=(x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxt' 'lib32-libxext' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXpm-${pkgver}.tar.bz2)
+sha1sums=('38258a1d589d3f157e0338d0fd13eec11bc4a39b')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXpm-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXpm-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxrandr/PKGBUILD b/multilib/lib32-libxrandr/PKGBUILD
new file mode 100644
index 000000000..370b5cde2
--- /dev/null
+++ b/multilib/lib32-libxrandr/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 31551 2010-11-02 00:08:36Z heftig $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libxrandr
+pkgname=lib32-$_pkgbasename
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="X11 RandR extension library (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxext' 'lib32-libxrender' 'randrproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXrandr-${pkgver}.tar.bz2)
+sha1sums=('8e89622b0656cb2eb22c1f3c646c797dc648ead5')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXrandr-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXrandr-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxrender/PKGBUILD b/multilib/lib32-libxrender/PKGBUILD
new file mode 100644
index 000000000..67dcf1678
--- /dev/null
+++ b/multilib/lib32-libxrender/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26677 2010-09-15 22:51:11Z bluewind $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxrender
+pkgname=lib32-$_pkgbasename
+pkgver=0.9.6
+pkgrel=4
+pkgdesc="X Rendering Extension client library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libx11>=1.3.4' $_pkgbasename)
+makedepends=('pkgconfig' 'gcc-multilib' renderproto)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXrender-${pkgver}.tar.bz2)
+sha1sums=('65bd96dc17da6b064f95109da02d9c9d14cb06dc')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXrender-${pkgver}"
+ ./configure --prefix=/usr --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXrender-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxslt/PKGBUILD b/multilib/lib32-libxslt/PKGBUILD
new file mode 100644
index 000000000..735c35a14
--- /dev/null
+++ b/multilib/lib32-libxslt/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 26680 2010-09-15 22:51:35Z bluewind $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+_pkgbasename=libxslt
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.26
+pkgrel=5
+pkgdesc="XML stylesheet transformation library (32-bit)"
+arch=('x86_64')
+url="http://xmlsoft.org/XSLT/"
+license=('custom')
+depends=('lib32-libxml2>=2.7.7' 'lib32-libgcrypt>=1.4.4' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(ftp://xmlsoft.org/libxslt/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('e61d0364a30146aaa3001296f853b2b9')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 --without-python
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxss/PKGBUILD b/multilib/lib32-libxss/PKGBUILD
new file mode 100644
index 000000000..b796a93a5
--- /dev/null
+++ b/multilib/lib32-libxss/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 35282 2010-12-18 01:28:22Z heftig $
+# Maintainer: Florian Pritz <flo@xssn.at>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+_pkgbasename=libxss
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="X11 Screen Saver extension library (32-bit)"
+arch=(x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxext' 'scrnsaverproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXScrnSaver-${pkgver}.tar.bz2)
+sha1sums=('3c29e2222fd68e26e408234c51c6d8b2edf6ab19')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXScrnSaver-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXScrnSaver-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxt/PKGBUILD b/multilib/lib32-libxt/PKGBUILD
new file mode 100644
index 000000000..e1c414ab2
--- /dev/null
+++ b/multilib/lib32-libxt/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 31554 2010-11-02 00:10:38Z heftig $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxt
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.9
+pkgrel=1
+pkgdesc="X11 toolkit intrinsics library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libsm' 'lib32-libx11' $_pkgbasename)
+makedepends=('xorg-util-macros' 'gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXt-${pkgver}.tar.bz2)
+sha1sums=('3222c028b37e70a1d0d88feba5e52c2408e6bd5c')
+
+build() {
+ cd "${srcdir}/libXt-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXt-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxtst/PKGBUILD b/multilib/lib32-libxtst/PKGBUILD
new file mode 100644
index 000000000..bbddb6c40
--- /dev/null
+++ b/multilib/lib32-libxtst/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 35285 2010-12-18 01:30:43Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxtst
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X11 Testing -- Resource extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxext' 'lib32-libxi' 'recordproto' 'inputproto' $_pkgbasename)
+makedepends=('gcc-multilib' 'xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXtst-${pkgver}.tar.bz2)
+sha1sums=('9fb06ed599caf7f9e7115cbbfadf02b47c17aa72')
+
+build() {
+ cd "${srcdir}/libXtst-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXtst-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxv/PKGBUILD b/multilib/lib32-libxv/PKGBUILD
new file mode 100644
index 000000000..317fe2281
--- /dev/null
+++ b/multilib/lib32-libxv/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 35288 2010-12-18 01:31:33Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxv
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.6
+pkgrel=1
+pkgdesc="X11 Video extension library (32-bit)"
+arch=(x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxext' 'videoproto' $_pkgbasename)
+makedepends=('pkgconfig' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXv-${pkgver}.tar.bz2)
+sha1sums=('9ebb6d7936a7b247b9b0f6dc81def39a18e4214c')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${startdir}/src/libXv-${pkgver}
+ ./configure --prefix=/usr --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${startdir}/src/libXv-${pkgver}
+
+ make DESTDIR=${startdir}/pkg install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxvmc/PKGBUILD b/multilib/lib32-libxvmc/PKGBUILD
new file mode 100644
index 000000000..539b563f2
--- /dev/null
+++ b/multilib/lib32-libxvmc/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 26695 2010-09-15 22:53:40Z bluewind $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxvmc
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.6
+pkgrel=3
+pkgdesc="X11 Video Motion Compensation extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxv>=1.0.5' $_pkgbasename)
+makedepends=('pkgconfig' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXvMC-${pkgver}.tar.bz2)
+sha1sums=('4ace7e7ce6b646b5715b2efa561affc89bc87f91')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/libXvMC-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/libXvMC-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+
+}
diff --git a/multilib/lib32-libxxf86dga/PKGBUILD b/multilib/lib32-libxxf86dga/PKGBUILD
new file mode 100644
index 000000000..3b9733151
--- /dev/null
+++ b/multilib/lib32-libxxf86dga/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 35291 2010-12-18 01:33:35Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+_pkgbasename=libxxf86dga
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="X11 Direct Graphics Access extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxext' 'xf86dgaproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXxf86dga-${pkgver}.tar.bz2)
+sha1sums=('333a9f5c61eba896f420969561606551174645cd')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXxf86dga-${pkgver}"
+ ./configure --prefix=/usr --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXxf86dga-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxxf86vm/PKGBUILD b/multilib/lib32-libxxf86vm/PKGBUILD
new file mode 100644
index 000000000..e455615c8
--- /dev/null
+++ b/multilib/lib32-libxxf86vm/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 35294 2010-12-18 01:34:58Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxxf86vm
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X11 XFree86 video mode extension library (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxext' 'xf86vidmodeproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXxf86vm-${pkgver}.tar.bz2)
+sha1sums=('2ff2d2b3c60a5c5c0cc4e0a18492d3b7168a03af')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXxf86vm-${pkgver}"
+ ./configure --prefix=/usr --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXxf86vm-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-mesa/PKGBUILD b/multilib/lib32-mesa/PKGBUILD
new file mode 100644
index 000000000..d6e047987
--- /dev/null
+++ b/multilib/lib32-mesa/PKGBUILD
@@ -0,0 +1,341 @@
+# $Id: PKGBUILD 41096 2011-03-03 18:58:55Z lcarlier $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase=lib32-mesa
+pkgname=('lib32-mesa' 'lib32-libgl' 'lib32-libgles' 'lib32-libegl' 'lib32-ati-dri' 'lib32-intel-dri' 'lib32-unichrome-dri' 'lib32-mach64-dri' 'lib32-mga-dri' 'lib32-r128-dri' 'lib32-savage-dri'
+'lib32-sis-dri' 'lib32-tdfx-dri' 'lib32-nouveau-dri')
+
+#_git=true
+_git=false
+
+if [ "${_git}" = "true" ]; then
+ pkgver=7.10.0.git20110215
+ else
+ pkgver=7.10.1
+fi
+
+pkgrel=1
+arch=(x86_64)
+makedepends=('glproto>=1.4.12' 'pkgconfig' 'lib32-libdrm>=2.4.23' 'lib32-libxxf86vm>=1.1.0' 'lib32-libxdamage>=1.1.3' 'lib32-expat>=2.0.1' 'lib32-libx11>=1.3.5' 'lib32-libxt>=1.0.8'
+'lib32-gcc-libs>=4.5' 'dri2proto=2.3' 'lib32-talloc' 'python2' 'libxml2' 'gcc-multilib' imake 'lib32-udev')
+url="http://mesa3d.sourceforge.net"
+license=('custom')
+if [ "${_git}" = "true" ]; then
+ # mesa git shot from 7.10 branch - see for state: http://cgit.freedesktop.org/mesa/mesa/commit/?h=7.10&id=cc1636b6db85604510f97f8a37d7fd0ecf453866
+ source=('ftp://ftp.archlinux.org/other/mesa/mesa-cc1636b6db85604510f97f8a37d7fd0ecf453866.tar.bz2')
+ md5sums=('f0d9daab4aaaacfd3b756dcb23b268af')
+else
+ source=("ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2")
+ md5sums=('efe8da4d80c2a5d32a800770b8ce5dfa')
+fi
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ autoreconf -vfi
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+ fi
+
+ # python2 build fixes
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" $(find $srcdir -name '*.py')
+ sed -i -e "s|PYTHON2 = python|PYTHON2 = python2|" configs/{default,autoconf.in}
+ sed -i -e "s|python|python2|" src/gallium/auxiliary/Makefile
+
+ if [ "${_git}" = "true" ]; then
+ ./autogen.sh --prefix=/usr \
+ --with-dri-driverdir=/usr/lib32/xorg/modules/dri \
+ --enable-gallium-radeon \
+ --enable-gallium-r600 \
+ --enable-gallium-nouveau \
+ --enable-gallium-swrast \
+ --enable-glx-tls \
+ --with-driver=dri \
+ --enable-xcb \
+ --with-state-trackers=dri,glx \
+ --disable-glut \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-egl \
+ --disable-gallium-egl \
+ --enable-32-bit \
+ --libdir=/usr/lib32
+ else
+ ./configure --prefix=/usr \
+ --with-dri-driverdir=/usr/lib32/xorg/modules/dri \
+ --enable-gallium-radeon \
+ --enable-gallium-r600 \
+ --enable-gallium-nouveau \
+ --enable-gallium-swrast \
+ --enable-glx-tls \
+ --with-driver=dri \
+ --enable-xcb \
+ --with-state-trackers=dri,glx \
+ --disable-glut \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-egl \
+ --disable-gallium-egl \
+ --enable-32-bit \
+ --libdir=/usr/lib32
+ fi
+
+ make
+}
+
+package_lib32-libgl() {
+ depends=('lib32-libdrm>=2.4.23' 'lib32-libxxf86vm>=1.1.0' 'lib32-libxdamage>=1.1.3' 'lib32-expat>=2.0.1' 'lib32-gcc-libs>=4.5' 'libgl')
+ pkgdesc="Mesa 3-D graphics library and DRI software rasterizer (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+ fi
+
+ install -m755 -d "${pkgdir}/usr/lib32"
+ install -m755 -d "${pkgdir}/usr/lib32/xorg/modules/extensions"
+
+ bin/minstall lib32/libGL.so* "${pkgdir}/usr/lib32/"
+
+ if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-swrast DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-swrast DESTDIR="${pkgdir}" install
+ fi
+ ln -s swrastg_dri.so "${pkgdir}/usr/lib32/xorg/modules/dri/swrast_dri.so"
+ ln -s libglx.xorg "${pkgdir}/usr/lib32/xorg/modules/extensions/libglx.so"
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ install -m755 -d "${pkgdir}/usr/share/licenses/libgl"
+ ln -s libgl "$pkgdir/usr/share/licenses/libgl/lib32-libgl"
+}
+
+package_lib32-libgles() {
+ depends=('libgles')
+ pkgdesc="Mesa GLES libraries (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+ fi
+
+ install -m755 -d "${pkgdir}/usr/lib32"
+ install -m755 -d "${pkgdir}/usr/lib32/pkgconfig"
+ bin/minstall lib32/libGLESv* "${pkgdir}/usr/lib32/"
+ bin/minstall src/mapi/es1api/glesv1_cm.pc "${pkgdir}/usr/lib32/pkgconfig/"
+ bin/minstall src/mapi/es2api/glesv2.pc "${pkgdir}/usr/lib32/pkgconfig/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libgles"
+ ln -s libgles "$pkgdir/usr/share/licenses/libgles/lib32-libgles"
+}
+
+package_lib32-libegl() {
+ depends=('lib32-udev' 'libegl')
+ pkgdesc="Mesa libEGL libraries (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+ fi
+
+ install -m755 -d "${pkgdir}/usr/lib32"
+ install -m755 -d "${pkgdir}/usr/lib32/egl"
+ install -m755 -d "${pkgdir}/usr/lib32/pkgconfig"
+ bin/minstall lib32/libEGL.so* "${pkgdir}/usr/lib32/"
+ bin/minstall lib32/egl/* "${pkgdir}/usr/lib32/egl/"
+ bin/minstall src/egl/main/egl.pc "${pkgdir}/usr/lib32/pkgconfig/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libegl"
+ ln -s libgles "$pkgdir/usr/share/licenses/libegl/lib32-libegl"
+}
+
+package_lib32-mesa() {
+ depends=('lib32-libgl' 'lib32-libx11>=1.3.5' 'lib32-libxt>=1.0.8' 'mesa')
+ pkgdesc="Mesa 3-D graphics libraries and include files (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+ fi
+
+ make DESTDIR="${pkgdir}" install
+
+
+ rm -f "${pkgdir}/usr/lib32/libGL.so"*
+ rm -f "${pkgdir}/usr/lib32/libGLESv"*
+ rm -f "${pkgdir}/usr/lib32/libEGL"*
+ rm -rf "${pkgdir}/usr/lib32/egl"
+ rm -f ${pkgdir}/usr/lib32/pkgconfig/{glesv1_cm.pc,glesv2.pc,egl.pc}
+ rm -rf "$pkgdir"/{usr/include,usr/lib32/xorg}
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/mesa"
+ ln -s mesa "$pkgdir/usr/share/licenses/mesa/lib32-mesa"
+}
+
+package_lib32-ati-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI + Gallium3D for r300 and later chipsets drivers for AMD/ATI Radeon (32-bit)"
+ conflicts=('xf86-video-ati<6.9.0-6')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C radeon DESTDIR="${pkgdir}" install
+ make -C r200 DESTDIR="${pkgdir}" install
+
+ # DRI drivers for r300 and r600 are removed
+ # gallium3D driver for R300 and R600 r300_dri.so/r600_dri.so
+ if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install
+ fi
+}
+
+package_lib32-intel-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for Intel (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C i810 DESTDIR="${pkgdir}" install
+ make -C i915 DESTDIR="${pkgdir}" install
+ make -C i965 DESTDIR="${pkgdir}" install
+}
+
+package_lib32-unichrome-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for S3 Graphics/VIA Unichrome (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C unichrome DESTDIR="${pkgdir}" install
+}
+
+package_lib32-mach64-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Mach64 (32-bit)"
+ conflicts=('xf86-video-mach64<6.8.2')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C mach64 DESTDIR="${pkgdir}" install
+}
+
+package_lib32-mga-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for Matrox (32-bit)"
+ conflicts=('xf86-video-mga<1.4.11')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C mga DESTDIR="${pkgdir}" install
+}
+
+package_lib32-r128-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Rage128 (32-bit)"
+ conflicts=('xf86-video-r128<6.8.1')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C r128 DESTDIR="${pkgdir}" install
+}
+
+package_lib32-savage-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for S3 Sraphics/VIA Savage (32-bit)"
+ conflicts=('xf86-video-savage<2.3.1')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C savage DESTDIR="${pkgdir}" install
+}
+
+package_lib32-sis-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for SiS (32-bit)"
+ conflicts=('xf86-video-sis<0.10.2')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C sis DESTDIR="${pkgdir}" install
+}
+
+package_lib32-tdfx-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for 3dfx (32-bit)"
+ conflicts=('xf86-video-tdfx<1.4.3')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C tdfx DESTDIR="${pkgdir}" install
+}
+
+package_lib32-nouveau-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa classic DRI + Gallium3D drivers for Nouveau (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ # classic mesa driver for nv10 , nv20 nouveau_vieux_dri.so
+ make -C nouveau DESTDIR="${pkgdir}" install
+ # gallium3D driver for nv30 - nv40 - nv50 nouveau_dri.so
+ if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
+ fi
+}
+
diff --git a/multilib/lib32-mpg123/PKGBUILD b/multilib/lib32-mpg123/PKGBUILD
new file mode 100644
index 000000000..289c0baad
--- /dev/null
+++ b/multilib/lib32-mpg123/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 26707 2010-09-15 22:56:36Z bluewind $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+_pkgbasename=mpg123
+pkgname=lib32-$_pkgbasename
+pkgver=1.12.3
+pkgrel=5
+pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3 (32-bit)"
+arch=('x86_64')
+url="http://sourceforge.net/projects/mpg123"
+license=('GPL2' 'LGPL2.1')
+depends=('lib32-glibc' 'lib32-libtool' 'lib32-alsa-lib' $_pkgbasename)
+makedepends=('lib32-sdl' gcc-multilib libtool-multilib)
+optdepends=('lib32-sdl: for additional audio support')
+options=('libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('c1568be2d1715786bd6b1a89ec6fa7ef')
+sha1sums=('5e92d3c918f6095264089f711a9f38a5d2168b31')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ ./configure --prefix=/usr --with-audio="alsa sdl" --with-cpu=i586 --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-ncurses/PKGBUILD b/multilib/lib32-ncurses/PKGBUILD
new file mode 100644
index 000000000..d31a7ec98
--- /dev/null
+++ b/multilib/lib32-ncurses/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 35258 2010-12-18 00:55:35Z heftig $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+_pkgbasename=ncurses
+pkgname=lib32-${_pkgbasename}
+pkgver=5.7
+pkgrel=6
+pkgdesc="System V Release 4.0 curses emulation library (32-bit)"
+arch=('x86_64')
+url="http://www.gnu.org/software/ncurses/"
+license=('MIT')
+depends=('lib32-glibc' ${_pkgbasename})
+makedepends=("gcc-multilib")
+source=(ftp://ftp.gnu.org/pub/gnu/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz
+ set_field_buffer.patch)
+md5sums=('cce05daf61a64501ef6cd8da1f727ec6'
+ '04c8d6d95140a29d72c0eb685a2eeffd')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/
+ mkdir ncurses{,w}-build
+
+ # http://permalink.gmane.org/gmane.comp.lib.ncurses.bugs/3559
+ patch -Np1 -i ${srcdir}/set_field_buffer.patch
+
+ cd ${srcdir}/ncursesw-build
+ ../${_pkgbasename}-${pkgver}/configure --prefix=/usr --mandir=/usr/share/man \
+ --with-shared --with-normal --without-debug --without-ada \
+ --with-install-prefix=${pkgdir} --enable-widec --libdir=/usr/lib32
+ make
+
+ # libncurses.so.5 for external binary support
+ cd ${srcdir}/ncurses-build
+# [ $CARCH = "x86_64" ] && CONFIGFLAG="--with-chtype=long"
+ ../${_pkgbasename}-${pkgver}/configure --prefix=/usr \
+ --with-shared --with-normal --without-debug --without-ada \
+ --with-install-prefix=${pkgdir} $CONFIGFLAG --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/ncursesw-build
+ make install
+
+ install -dm755 ${pkgdir}/usr/lib32
+
+ # Fool packages looking to link to non-wide-character ncurses libraries
+ for lib in curses ncurses form panel menu; do
+ rm -f ${pkgdir}/usr/lib32/lib${lib}.so
+ echo "INPUT(-l${lib}w)" >${pkgdir}/usr/lib32/lib${lib}.so
+ ln -sf lib${lib}w.a ${pkgdir}/usr/lib32/lib${lib}.a
+ done
+ ln -sf libncurses++w.a ${pkgdir}/usr/lib32/libncurses++.a
+
+ # Some packages look for -lcurses during build
+ rm -f ${pkgdir}/usr/lib32/libcursesw.so
+ echo "INPUT(-lncursesw)" >${pkgdir}/usr/lib32/libcursesw.so
+ ln -sf libncurses.so ${pkgdir}/usr/lib32/libcurses.so
+ ln -sf libncursesw.a ${pkgdir}/usr/lib32/libcursesw.a
+ ln -sf libncurses.a ${pkgdir}/usr/lib32/libcurses.a
+
+ # non-widec compatibility library
+ cd ${srcdir}/ncurses-build
+ install -Dm755 lib/libncurses.so.${pkgver} ${pkgdir}/usr/lib32/libncurses.so.${pkgver}
+ ln -sf libncurses.so.${pkgver} ${pkgdir}/usr/lib32/libncurses.so.5
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-ncurses/set_field_buffer.patch b/multilib/lib32-ncurses/set_field_buffer.patch
new file mode 100644
index 000000000..a2132043e
--- /dev/null
+++ b/multilib/lib32-ncurses/set_field_buffer.patch
@@ -0,0 +1,9 @@
+--- src/ncurses-5.7/form/frm_driver.c 2008/10/18 16:25:00 1.88
++++ src/ncurses-5.7/form/frm_driver.c 2008/12/06 23:08:12
+@@ -4366,6 +4366,7 @@
+ delwin(field->working);
+ field->working = newpad(field->drows, field->dcols);
+ }
++ len = Buffer_Length(field);
+ wclear(field->working);
+ mvwaddstr(field->working, 0, 0, value);
diff --git a/multilib/lib32-nspr/PKGBUILD b/multilib/lib32-nspr/PKGBUILD
new file mode 100644
index 000000000..f3bf0198f
--- /dev/null
+++ b/multilib/lib32-nspr/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 26713 2010-09-15 22:57:32Z bluewind $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+_pkgbasename=nspr
+pkgname=lib32-$_pkgbasename
+pkgver=4.8.6
+pkgrel=2
+pkgdesc="Netscape Portable Runtime (32-bit)"
+arch=('x86_64')
+url="http://www.mozilla.org/projects/nspr/"
+license=('MPL' 'GPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('zip' 'gcc-multilib')
+options=(!emptydirs)
+source=(ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${pkgver}/src/${_pkgbasename}-${pkgver}.tar.gz
+ nspr.pc.in)
+md5sums=('592c275728c29d193fdba8009165990b'
+ 'bce1611f3117b53fc904cab549c09967')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ unset CFLAGS
+ unset CXXFLAGS
+ ./mozilla/nsprpub/configure \
+ --prefix=/usr \
+ --libdir=/usr/lib32 \
+ --includedir=/usr/include/nspr \
+ --enable-optimize \
+ --disable-debug ${confflags}
+ make
+
+ NSPR_LIBS=`./config/nspr-config --libs`
+ NSPR_CFLAGS=`./config/nspr-config --cflags`
+ NSPR_VERSION=`./config/nspr-config --version`
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ sed "${srcdir}/nspr.pc.in" -e "s,%libdir%,/usr/lib32," \
+ -e "s,%prefix%,/usr," \
+ -e "s,%exec_prefix%,/usr/bin," \
+ -e "s,%includedir%,/usr/include/nspr," \
+ -e "s,%NSPR_VERSION%,${NSPR_VERSION}," \
+ -e "s,%FULL_NSPR_LIBS%,${NSPR_LIBS}," \
+ -e "s,%FULL_NSPR_CFLAGS%,${NSPR_CFLAGS}," > "${srcdir}/nspr.pc"
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -D "${srcdir}/nspr.pc" "${pkgdir}"/usr/lib32/pkgconfig/nspr.pc
+ chmod 644 "${pkgdir}/usr/lib32/pkgconfig/nspr.pc"
+ ln -sf nspr.pc "${pkgdir}/usr/lib32/pkgconfig/mozilla-nspr.pc"
+
+ chmod 644 ${pkgdir}/usr/lib32/*.a
+
+ rm -rf "${pkgdir}"/usr/{bin,share,include}
+}
diff --git a/multilib/lib32-nspr/nspr.pc.in b/multilib/lib32-nspr/nspr.pc.in
new file mode 100644
index 000000000..1d8f4a0ca
--- /dev/null
+++ b/multilib/lib32-nspr/nspr.pc.in
@@ -0,0 +1,10 @@
+prefix=%prefix%
+exec_prefix=%exec_prefix%
+libdir=%libdir%
+includedir=%includedir%
+
+Name: NSPR
+Description: The Netscape Portable Runtime
+Version: %NSPR_VERSION%
+Libs: %FULL_NSPR_LIBS%
+Cflags: %FULL_NSPR_CFLAGS%
diff --git a/multilib/lib32-nss/PKGBUILD b/multilib/lib32-nss/PKGBUILD
new file mode 100644
index 000000000..1663f1c25
--- /dev/null
+++ b/multilib/lib32-nss/PKGBUILD
@@ -0,0 +1,81 @@
+# $Id: PKGBUILD 35060 2010-12-15 09:33:55Z heftig $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+_pkgbasename=nss
+pkgname=lib32-$_pkgbasename
+pkgver=3.12.8
+pkgrel=1
+pkgdesc="Mozilla's Netscape Security Services Library that implements PKI support (32-bit)"
+arch=('x86_64')
+url="http://www.mozilla.org/projects/security/pki/nss/"
+license=('MPL' 'GPL')
+_nsprver=4.8.6
+depends=("lib32-nspr>=${_nsprver}" 'lib32-sqlite3>=3.6.17' "$_pkgbasename" 'lib32-zlib')
+makedepends=('gcc-multilib' 'perl')
+source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/src/${_pkgbasename}-${pkgver}.tar.gz
+ nss-no-rpath.patch
+ nss.pc.in
+ add_spi+cacert_ca_certs.patch
+ ssl-renegotiate-transitional.patch)
+options=('!strip')
+md5sums=('40bf1bb0c7567827d3768d1fc6081100'
+ 'e5c97db0c884d5f4cfda21e562dc9bba'
+ 'c547b030c57fe1ed8b77c73bf52b3ded'
+ '7f39c19b1dfd62d7db7d8bf19f156fed'
+ 'd83c7b61abb7e9f8f7bcd157183d1ade')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ # Adds the SPI Inc. and CAcert.org CA certificates - patch from Debian
+ patch -Np1 -i "${srcdir}/add_spi+cacert_ca_certs.patch"
+ # Adds transitional SSL renegotiate support - patch from Debian
+ patch -Np1 -i "${srcdir}/ssl-renegotiate-transitional.patch"
+ # Removes rpath
+ patch -Np0 -i "${srcdir}/nss-no-rpath.patch"
+
+ make -C mozilla/security/nss/lib/ckfw/builtins generate
+
+ unset CFLAGS
+ unset CXXFLAGS
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ export BUILD_OPT=1
+ export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
+ export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
+ export NSS_USE_SYSTEM_SQLITE=1
+ export NSPR_INCLUDE_DIR=`pkg-config --cflags-only-I nspr | sed 's/-I//'`
+ export NSPR_LIB_DIR=`pkg-config --libs-only-L nspr | sed 's/-L.//'`
+
+ make -j 1 -C mozilla/security/coreconf
+ make -j 1 -C mozilla/security/dbm
+ make -j 1 -C mozilla/security/nss
+
+ NSS_VMAJOR=`grep "#define.*NSS_VMAJOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'`
+ NSS_VMINOR=`grep "#define.*NSS_VMINOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'`
+ NSS_VPATCH=`grep "#define.*NSS_VPATCH" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'`
+
+ sed "${srcdir}/nss.pc.in" -e "s,%libdir%,/usr/lib32,g" \
+ -e "s,%prefix%,/usr,g" \
+ -e "s,%exec_prefix%,/usr/bin,g" \
+ -e "s,%includedir%,/usr/include/nss,g" \
+ -e "s,%NSPR_VERSION%,${_nsprver},g" \
+ -e "s,%NSS_VERSION%,${pkgver},g" > \
+ "${srcdir}/nss.pc"
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ install -m755 -d "${pkgdir}/usr/lib32/pkgconfig"
+ install -m644 "${srcdir}"/nss.pc "${pkgdir}/usr/lib32/pkgconfig/nss.pc"
+ ln -sf nss.pc "${pkgdir}/usr/lib32/pkgconfig/mozilla-nss.pc"
+ chmod 644 ${pkgdir}/usr/lib32/pkgconfig/*.pc
+
+ for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so \
+ libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so
+ do
+ install -m755 mozilla/dist/*.OBJ/lib/${file} "${pkgdir}/usr/lib32/"
+ done
+
+ install -m644 mozilla/dist/*.OBJ/lib/libcrmf.a "${pkgdir}/usr/lib32/"
+ install -m644 mozilla/dist/*.OBJ/lib/*.chk "${pkgdir}/usr/lib32/"
+
+}
diff --git a/multilib/lib32-nss/add_spi+cacert_ca_certs.patch b/multilib/lib32-nss/add_spi+cacert_ca_certs.patch
new file mode 100644
index 000000000..1cc7c18f5
--- /dev/null
+++ b/multilib/lib32-nss/add_spi+cacert_ca_certs.patch
@@ -0,0 +1,561 @@
+--- a/mozilla/security/nss/lib/ckfw/builtins/certdata.txt
++++ b/mozilla/security/nss/lib/ckfw/builtins/certdata.txt
+@@ -20926,3 +20926,558 @@ CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+ CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+ CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+ CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
++
++#
++# Certificate "CAcert.org Class 1 Root CA"
++#
++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 1 Root CA"
++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
++CKA_SUBJECT MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_ID UTF8 "0"
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\000
++END
++CKA_VALUE MULTILINE_OCTAL
++\060\202\007\075\060\202\005\045\240\003\002\001\002\002\001\000
++\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060
++\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157\164
++\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150\164
++\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164\056
++\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103\101
++\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101\165
++\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206\110
++\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164\100
++\143\141\143\145\162\164\056\157\162\147\060\036\027\015\060\063
++\060\063\063\060\061\062\062\071\064\071\132\027\015\063\063\060
++\063\062\071\061\062\062\071\064\071\132\060\171\061\020\060\016
++\006\003\125\004\012\023\007\122\157\157\164\040\103\101\061\036
++\060\034\006\003\125\004\013\023\025\150\164\164\160\072\057\057
++\167\167\167\056\143\141\143\145\162\164\056\157\162\147\061\042
++\060\040\006\003\125\004\003\023\031\103\101\040\103\145\162\164
++\040\123\151\147\156\151\156\147\040\101\165\164\150\157\162\151
++\164\171\061\041\060\037\006\011\052\206\110\206\367\015\001\011
++\001\026\022\163\165\160\160\157\162\164\100\143\141\143\145\162
++\164\056\157\162\147\060\202\002\042\060\015\006\011\052\206\110
++\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002
++\012\002\202\002\001\000\316\042\300\342\106\175\354\066\050\007
++\120\226\362\240\063\100\214\113\361\073\146\077\061\345\153\002
++\066\333\326\174\366\361\210\217\116\167\066\005\101\225\371\011
++\360\022\317\106\206\163\140\267\156\176\350\300\130\144\256\315
++\260\255\105\027\014\143\372\147\012\350\326\322\277\076\347\230
++\304\360\114\372\340\003\273\065\135\154\041\336\236\040\331\272
++\315\146\062\067\162\372\367\010\365\307\315\130\311\216\347\016
++\136\352\076\376\034\241\024\012\025\154\206\204\133\144\146\052
++\172\251\113\123\171\365\210\242\173\356\057\012\141\053\215\262
++\176\115\126\245\023\354\352\332\222\236\254\104\101\036\130\140
++\145\005\146\370\300\104\275\313\224\367\102\176\013\367\145\150
++\230\121\005\360\363\005\221\004\035\033\027\202\354\310\127\273
++\303\153\172\210\361\260\162\314\045\133\040\221\354\026\002\022
++\217\062\351\027\030\110\320\307\005\056\002\060\102\270\045\234
++\005\153\077\252\072\247\353\123\110\367\350\322\266\007\230\334
++\033\306\064\177\177\311\034\202\172\005\130\053\010\133\363\070
++\242\253\027\135\146\311\230\327\236\020\213\242\322\335\164\232
++\367\161\014\162\140\337\315\157\230\063\235\226\064\166\076\044
++\172\222\260\016\225\036\157\346\240\105\070\107\252\327\101\355
++\112\267\022\366\327\033\203\212\017\056\330\011\266\131\327\252
++\004\377\322\223\175\150\056\335\213\113\253\130\272\057\215\352
++\225\247\240\303\124\211\245\373\333\213\121\042\235\262\303\276
++\021\276\054\221\206\213\226\170\255\040\323\212\057\032\077\306
++\320\121\145\207\041\261\031\001\145\177\105\034\207\365\174\320
++\101\114\117\051\230\041\375\063\037\165\014\004\121\372\031\167
++\333\324\024\034\356\201\303\035\365\230\267\151\006\221\042\335
++\000\120\314\201\061\254\022\007\173\070\332\150\133\346\053\324
++\176\311\137\255\350\353\162\114\363\001\345\113\040\277\232\246
++\127\312\221\000\001\213\241\165\041\067\265\143\015\147\076\106
++\117\160\040\147\316\305\326\131\333\002\340\360\322\313\315\272
++\142\267\220\101\350\335\040\344\051\274\144\051\102\310\042\334
++\170\232\377\103\354\230\033\011\121\113\132\132\302\161\361\304
++\313\163\251\345\241\013\002\003\001\000\001\243\202\001\316\060
++\202\001\312\060\035\006\003\125\035\016\004\026\004\024\026\265
++\062\033\324\307\363\340\346\216\363\275\322\260\072\356\262\071
++\030\321\060\201\243\006\003\125\035\043\004\201\233\060\201\230
++\200\024\026\265\062\033\324\307\363\340\346\216\363\275\322\260
++\072\356\262\071\030\321\241\175\244\173\060\171\061\020\060\016
++\006\003\125\004\012\023\007\122\157\157\164\040\103\101\061\036
++\060\034\006\003\125\004\013\023\025\150\164\164\160\072\057\057
++\167\167\167\056\143\141\143\145\162\164\056\157\162\147\061\042
++\060\040\006\003\125\004\003\023\031\103\101\040\103\145\162\164
++\040\123\151\147\156\151\156\147\040\101\165\164\150\157\162\151
++\164\171\061\041\060\037\006\011\052\206\110\206\367\015\001\011
++\001\026\022\163\165\160\160\157\162\164\100\143\141\143\145\162
++\164\056\157\162\147\202\001\000\060\017\006\003\125\035\023\001
++\001\377\004\005\060\003\001\001\377\060\062\006\003\125\035\037
++\004\053\060\051\060\047\240\045\240\043\206\041\150\164\164\160
++\163\072\057\057\167\167\167\056\143\141\143\145\162\164\056\157
++\162\147\057\162\145\166\157\153\145\056\143\162\154\060\060\006
++\011\140\206\110\001\206\370\102\001\004\004\043\026\041\150\164
++\164\160\163\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\057\162\145\166\157\153\145\056\143\162\154\060
++\064\006\011\140\206\110\001\206\370\102\001\010\004\047\026\045
++\150\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162
++\164\056\157\162\147\057\151\156\144\145\170\056\160\150\160\077
++\151\144\075\061\060\060\126\006\011\140\206\110\001\206\370\102
++\001\015\004\111\026\107\124\157\040\147\145\164\040\171\157\165
++\162\040\157\167\156\040\143\145\162\164\151\146\151\143\141\164
++\145\040\146\157\162\040\106\122\105\105\040\150\145\141\144\040
++\157\166\145\162\040\164\157\040\150\164\164\160\072\057\057\167
++\167\167\056\143\141\143\145\162\164\056\157\162\147\060\015\006
++\011\052\206\110\206\367\015\001\001\004\005\000\003\202\002\001
++\000\050\307\356\234\202\002\272\134\200\022\312\065\012\035\201
++\157\211\152\231\314\362\150\017\177\247\341\215\130\225\076\275
++\362\006\303\220\132\254\265\140\366\231\103\001\243\210\160\234
++\235\142\235\244\207\257\147\130\015\060\066\073\346\255\110\323
++\313\164\002\206\161\076\342\053\003\150\361\064\142\100\106\073
++\123\352\050\364\254\373\146\225\123\212\115\135\375\073\331\140
++\327\312\171\151\073\261\145\222\246\306\201\202\134\234\315\353
++\115\001\212\245\337\021\125\252\025\312\037\067\300\202\230\160
++\141\333\152\174\226\243\216\056\124\076\117\041\251\220\357\334
++\202\277\334\350\105\255\115\220\163\010\074\224\145\260\004\231
++\166\177\342\274\302\152\025\252\227\004\067\044\330\036\224\116
++\155\016\121\276\326\304\217\312\226\155\367\103\337\350\060\145
++\047\073\173\273\103\103\143\304\103\367\262\354\150\314\341\031
++\216\042\373\230\341\173\132\076\001\067\073\213\010\260\242\363
++\225\116\032\313\233\315\232\261\333\262\160\360\055\112\333\330
++\260\343\157\105\110\063\022\377\376\074\062\052\124\367\304\367
++\212\360\210\043\302\107\376\144\172\161\300\321\036\246\143\260
++\007\176\244\057\323\001\217\334\237\053\266\306\010\251\017\223
++\110\045\374\022\375\237\102\334\363\304\076\366\127\260\327\335
++\151\321\006\167\064\012\113\322\312\240\377\034\306\214\311\026
++\276\304\314\062\067\150\163\137\010\373\121\367\111\123\066\005
++\012\225\002\114\362\171\032\020\366\330\072\165\234\363\035\361
++\242\015\160\147\206\033\263\026\365\057\345\244\353\171\206\371
++\075\013\302\163\013\245\231\254\157\374\147\270\345\057\013\246
++\030\044\215\173\321\110\065\051\030\100\254\223\140\341\226\206
++\120\264\172\131\330\217\041\013\237\317\202\221\306\073\277\153
++\334\007\221\271\227\126\043\252\266\154\224\306\110\006\074\344
++\316\116\252\344\366\057\011\334\123\157\056\374\164\353\072\143
++\231\302\246\254\211\274\247\262\104\240\015\212\020\343\154\362
++\044\313\372\233\237\160\107\056\336\024\213\324\262\040\011\226
++\242\144\361\044\034\334\241\065\234\025\262\324\274\125\056\175
++\006\365\234\016\125\364\132\326\223\332\166\255\045\163\114\305
++\103
++END
++
++# Trust for Certificate "CAcert.org Class 1 Root CA"
++CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 1 Root CA"
++CKA_CERT_SHA1_HASH MULTILINE_OCTAL
++\023\134\354\066\364\234\270\351\073\032\262\160\315\200\210\106
++\166\316\217\063
++END
++CKA_CERT_MD5_HASH MULTILINE_OCTAL
++\246\033\067\136\071\015\234\066\124\356\275\040\061\106\037\153
++END
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\000
++END
++CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
++
++#
++# Certificate "CAcert.org Class 3 Root CA"
++#
++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 3 Root CA"
++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
++CKA_SUBJECT MULTILINE_OCTAL
++\060\124\061\024\060\022\006\003\125\004\012\023\013\103\101\143
++\145\162\164\040\111\156\143\056\061\036\060\034\006\003\125\004
++\013\023\025\150\164\164\160\072\057\057\167\167\167\056\103\101
++\143\145\162\164\056\157\162\147\061\034\060\032\006\003\125\004
++\003\023\023\103\101\143\145\162\164\040\103\154\141\163\163\040
++\063\040\122\157\157\164
++END
++CKA_ID UTF8 "0"
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\001
++END
++CKA_VALUE MULTILINE_OCTAL
++\060\202\006\010\060\202\003\360\240\003\002\001\002\002\001\001
++\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060
++\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157\164
++\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150\164
++\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164\056
++\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103\101
++\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101\165
++\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206\110
++\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164\100
++\143\141\143\145\162\164\056\157\162\147\060\036\027\015\060\065
++\061\060\061\064\060\067\063\066\065\065\132\027\015\063\063\060
++\063\062\070\060\067\063\066\065\065\132\060\124\061\024\060\022
++\006\003\125\004\012\023\013\103\101\143\145\162\164\040\111\156
++\143\056\061\036\060\034\006\003\125\004\013\023\025\150\164\164
++\160\072\057\057\167\167\167\056\103\101\143\145\162\164\056\157
++\162\147\061\034\060\032\006\003\125\004\003\023\023\103\101\143
++\145\162\164\040\103\154\141\163\163\040\063\040\122\157\157\164
++\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001
++\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001
++\000\253\111\065\021\110\174\322\046\176\123\224\317\103\251\335
++\050\327\102\052\213\363\207\170\031\130\174\017\236\332\211\175
++\341\373\353\162\220\015\164\241\226\144\253\237\240\044\231\163
++\332\342\125\166\307\027\173\365\004\254\106\270\303\276\177\144
++\215\020\154\044\363\141\234\300\362\220\372\121\346\365\151\001
++\143\303\017\126\342\112\102\317\342\104\214\045\050\250\305\171
++\011\175\106\271\212\363\351\363\064\051\010\105\344\034\237\313
++\224\004\034\201\250\024\263\230\145\304\103\354\116\202\215\011
++\321\275\252\133\215\222\320\354\336\220\305\177\012\302\343\353
++\346\061\132\136\164\076\227\063\131\350\303\003\075\140\063\277
++\367\321\157\107\304\315\356\142\203\122\156\056\010\232\244\331
++\025\030\221\246\205\222\107\260\256\110\353\155\267\041\354\205
++\032\150\162\065\253\377\360\020\135\300\364\224\247\152\325\073
++\222\176\114\220\005\176\223\301\054\213\244\216\142\164\025\161
++\156\013\161\003\352\257\025\070\232\324\322\005\162\157\214\371
++\053\353\132\162\045\371\071\106\343\162\033\076\004\303\144\047
++\042\020\052\212\117\130\247\003\255\276\264\056\023\355\135\252
++\110\327\325\175\324\052\173\134\372\106\004\120\344\314\016\102
++\133\214\355\333\362\317\374\226\223\340\333\021\066\124\142\064
++\070\217\014\140\233\073\227\126\070\255\363\322\133\213\240\133
++\352\116\226\270\174\327\325\240\206\160\100\323\221\051\267\242
++\074\255\365\214\273\317\032\222\212\344\064\173\300\330\154\137
++\351\012\302\303\247\040\232\132\337\054\135\122\134\272\107\325
++\233\357\044\050\160\070\040\057\325\177\051\300\262\101\003\150
++\222\314\340\234\314\227\113\105\357\072\020\012\253\160\072\230
++\225\160\255\065\261\352\205\053\244\034\200\041\061\251\256\140
++\172\200\046\110\000\270\001\300\223\143\125\042\221\074\126\347
++\257\333\072\045\363\217\061\124\352\046\213\201\131\371\241\321
++\123\021\305\173\235\003\366\164\021\340\155\261\054\077\054\206
++\221\231\161\232\246\167\213\064\140\321\024\264\054\254\235\257
++\214\020\323\237\304\152\370\157\023\374\163\131\367\146\102\164
++\036\212\343\370\334\322\157\230\234\313\107\230\225\100\005\373
++\351\002\003\001\000\001\243\201\277\060\201\274\060\017\006\003
++\125\035\023\001\001\377\004\005\060\003\001\001\377\060\135\006
++\010\053\006\001\005\005\007\001\001\004\121\060\117\060\043\006
++\010\053\006\001\005\005\007\060\001\206\027\150\164\164\160\072
++\057\057\157\143\163\160\056\103\101\143\145\162\164\056\157\162
++\147\057\060\050\006\010\053\006\001\005\005\007\060\002\206\034
++\150\164\164\160\072\057\057\167\167\167\056\103\101\143\145\162
++\164\056\157\162\147\057\143\141\056\143\162\164\060\112\006\003
++\125\035\040\004\103\060\101\060\077\006\010\053\006\001\004\001
++\201\220\112\060\063\060\061\006\010\053\006\001\005\005\007\002
++\001\026\045\150\164\164\160\072\057\057\167\167\167\056\103\101
++\143\145\162\164\056\157\162\147\057\151\156\144\145\170\056\160
++\150\160\077\151\144\075\061\060\060\015\006\011\052\206\110\206
++\367\015\001\001\004\005\000\003\202\002\001\000\177\010\210\241
++\332\032\120\111\332\211\373\241\010\162\363\212\367\036\304\072
++\264\171\133\040\060\261\105\336\302\135\323\145\151\361\302\135
++\124\124\074\205\137\271\173\102\221\302\231\375\033\121\233\253
++\106\245\241\020\123\236\155\210\254\163\156\054\063\246\360\364
++\236\340\165\301\076\210\105\251\341\146\103\376\126\132\321\172
++\101\170\367\100\332\112\072\361\013\133\245\273\026\006\346\302
++\347\223\271\205\115\227\117\261\036\070\103\200\357\233\015\214
++\357\270\247\140\000\207\127\175\036\104\034\313\043\357\233\074
++\231\235\257\265\051\034\105\171\026\226\115\047\155\361\034\154
++\303\302\125\144\263\274\024\342\363\244\037\036\062\374\047\025
++\005\317\335\056\256\076\202\141\173\360\041\020\030\366\104\352
++\123\071\371\334\320\232\040\340\306\273\340\273\132\117\304\231
++\310\007\275\265\275\242\333\056\142\015\102\064\101\274\377\213
++\212\365\121\042\252\210\060\000\342\260\324\274\276\145\272\325
++\003\127\171\233\350\334\310\115\370\120\355\221\245\122\050\242
++\254\373\066\130\076\351\224\053\221\120\207\033\326\136\326\214
++\314\367\017\020\014\122\116\320\026\141\345\345\012\154\277\027
++\307\162\106\127\234\230\365\154\140\143\172\157\136\271\116\057
++\310\271\271\273\152\205\274\230\015\355\371\076\227\204\064\224
++\256\000\257\241\345\347\222\156\116\275\363\342\331\024\213\134
++\322\353\001\154\240\027\245\055\020\353\234\172\112\275\275\356
++\316\375\355\042\100\253\160\070\210\365\012\207\152\302\253\005
++\140\311\110\005\332\123\301\336\104\167\152\263\363\074\074\355
++\200\274\246\070\112\051\044\137\376\131\073\233\045\172\126\143
++\000\144\271\135\244\142\175\127\066\117\255\203\357\037\222\123
++\240\216\167\127\335\345\141\021\075\043\000\220\114\074\372\243
++\140\223\004\243\257\065\366\016\152\217\117\112\140\247\205\005
++\154\106\241\217\364\307\166\343\241\131\127\367\161\262\304\156
++\024\134\155\155\101\146\337\033\223\261\324\000\303\356\313\317
++\074\075\041\200\251\137\143\145\374\335\340\137\244\364\053\360
++\205\161\101\324\147\045\373\032\261\227\256\326\231\202\023\101
++\322\156\245\033\231\047\200\347\013\251\250\000
++END
++
++# Trust for Certificate "CAcert.org Class 3 Root CA"
++CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 3 Root CA"
++CKA_CERT_SHA1_HASH MULTILINE_OCTAL
++\333\114\102\151\007\077\351\302\243\175\211\012\134\033\030\304
++\030\116\052\055
++END
++CKA_CERT_MD5_HASH MULTILINE_OCTAL
++\163\077\065\124\035\104\311\351\132\112\357\121\255\003\006\266
++END
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\001
++END
++CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
++
++#
++# Certificate "Software in the Public Interest, Inc. Root CA (2008)"
++#
++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "Software in the Public Interest, Inc. Root CA (2008)"
++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
++CKA_SUBJECT MULTILINE_OCTAL
++\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123
++\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141
++\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144
++\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125
++\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040
++\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162
++\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157
++\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004
++\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101
++\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206
++\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163
++\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147
++END
++CKA_ID UTF8 "0"
++CKA_ISSUER MULTILINE_OCTAL
++\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123
++\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141
++\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144
++\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125
++\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040
++\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162
++\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157
++\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004
++\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101
++\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206
++\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163
++\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\011\000\350\216\266\311\370\052\024\050
++END
++CKA_VALUE MULTILINE_OCTAL
++\060\202\010\016\060\202\005\366\240\003\002\001\002\002\011\000
++\350\216\266\311\370\052\024\050\060\015\006\011\052\206\110\206
++\367\015\001\001\005\005\000\060\201\274\061\013\060\011\006\003
++\125\004\006\023\002\125\123\061\020\060\016\006\003\125\004\010
++\023\007\111\156\144\151\141\156\141\061\025\060\023\006\003\125
++\004\007\023\014\111\156\144\151\141\156\141\160\157\154\151\163
++\061\050\060\046\006\003\125\004\012\023\037\123\157\146\164\167
++\141\162\145\040\151\156\040\164\150\145\040\120\165\142\154\151
++\143\040\111\156\164\145\162\145\163\164\061\023\060\021\006\003
++\125\004\013\023\012\150\157\163\164\155\141\163\164\145\162\061
++\036\060\034\006\003\125\004\003\023\025\103\145\162\164\151\146
++\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171\061
++\045\060\043\006\011\052\206\110\206\367\015\001\011\001\026\026
++\150\157\163\164\155\141\163\164\145\162\100\163\160\151\055\151
++\156\143\056\157\162\147\060\036\027\015\060\070\060\065\061\063
++\060\070\060\067\065\066\132\027\015\061\070\060\065\061\061\060
++\070\060\067\065\066\132\060\201\274\061\013\060\011\006\003\125
++\004\006\023\002\125\123\061\020\060\016\006\003\125\004\010\023
++\007\111\156\144\151\141\156\141\061\025\060\023\006\003\125\004
++\007\023\014\111\156\144\151\141\156\141\160\157\154\151\163\061
++\050\060\046\006\003\125\004\012\023\037\123\157\146\164\167\141
++\162\145\040\151\156\040\164\150\145\040\120\165\142\154\151\143
++\040\111\156\164\145\162\145\163\164\061\023\060\021\006\003\125
++\004\013\023\012\150\157\163\164\155\141\163\164\145\162\061\036
++\060\034\006\003\125\004\003\023\025\103\145\162\164\151\146\151
++\143\141\164\145\040\101\165\164\150\157\162\151\164\171\061\045
++\060\043\006\011\052\206\110\206\367\015\001\011\001\026\026\150
++\157\163\164\155\141\163\164\145\162\100\163\160\151\055\151\156
++\143\056\157\162\147\060\202\002\042\060\015\006\011\052\206\110
++\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002
++\012\002\202\002\001\000\334\066\346\107\102\302\304\121\165\051
++\207\100\303\330\216\041\006\322\030\116\353\357\040\275\220\074
++\205\020\023\214\051\133\224\143\366\364\055\361\006\102\221\271
++\031\304\102\151\010\277\213\066\105\352\050\005\063\111\110\240
++\047\103\223\065\212\101\330\170\263\360\357\263\156\055\335\321
++\313\175\352\364\165\046\323\076\220\072\356\327\347\054\004\265
++\174\341\365\174\305\116\357\167\275\134\242\223\063\222\316\175
++\201\110\317\153\265\042\054\010\203\375\323\325\317\073\055\375
++\265\111\220\133\366\255\115\023\312\336\323\246\235\123\121\161
++\143\106\370\112\026\134\230\356\055\155\232\026\241\166\220\342
++\140\103\231\326\211\326\154\056\172\230\262\013\003\054\343\172
++\117\307\335\343\314\343\112\152\215\171\122\372\364\301\257\056
++\217\052\010\313\033\051\202\222\162\103\274\316\210\251\252\247
++\212\121\103\125\205\232\067\003\170\223\310\360\275\264\101\310
++\007\102\232\313\065\227\172\212\201\145\336\035\124\010\001\361
++\144\134\267\027\032\121\274\036\303\131\207\166\030\026\230\356
++\277\366\147\201\213\006\065\305\113\155\131\031\307\322\306\110
++\276\156\024\050\203\112\020\234\033\365\157\274\251\216\365\151
++\376\262\301\125\314\347\024\311\371\133\024\123\121\007\352\316
++\075\344\117\050\037\074\141\011\327\063\322\156\247\156\324\307
++\023\011\157\153\135\024\356\235\211\033\245\152\362\366\370\320
++\162\216\352\162\037\057\064\152\051\012\305\012\354\034\100\205
++\022\367\246\245\323\117\255\300\205\214\114\174\163\040\314\123
++\030\361\262\130\114\001\365\277\352\144\325\134\071\305\316\154
++\314\123\132\126\272\101\017\045\337\153\120\266\307\212\240\275
++\002\302\305\073\125\245\262\144\042\204\121\050\126\256\061\356
++\136\373\013\026\115\106\005\221\200\104\355\254\155\360\127\250
++\372\353\141\110\240\313\033\263\037\216\315\305\041\167\003\204
++\036\374\254\243\103\010\143\214\355\371\047\357\264\260\135\147
++\326\117\355\320\213\076\135\133\311\221\275\226\002\204\075\305
++\115\274\102\077\164\375\074\135\254\134\110\066\136\207\061\057
++\030\154\304\150\356\241\213\311\131\320\030\343\000\200\263\124
++\047\056\231\360\025\123\002\003\001\000\001\243\202\002\017\060
++\202\002\013\060\035\006\003\125\035\016\004\026\004\024\064\161
++\321\070\327\025\066\203\107\153\327\067\144\102\073\216\215\122
++\235\253\060\201\361\006\003\125\035\043\004\201\351\060\201\346
++\200\024\064\161\321\070\327\025\066\203\107\153\327\067\144\102
++\073\216\215\122\235\253\241\201\302\244\201\277\060\201\274\061
++\013\060\011\006\003\125\004\006\023\002\125\123\061\020\060\016
++\006\003\125\004\010\023\007\111\156\144\151\141\156\141\061\025
++\060\023\006\003\125\004\007\023\014\111\156\144\151\141\156\141
++\160\157\154\151\163\061\050\060\046\006\003\125\004\012\023\037
++\123\157\146\164\167\141\162\145\040\151\156\040\164\150\145\040
++\120\165\142\154\151\143\040\111\156\164\145\162\145\163\164\061
++\023\060\021\006\003\125\004\013\023\012\150\157\163\164\155\141
++\163\164\145\162\061\036\060\034\006\003\125\004\003\023\025\103
++\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150\157
++\162\151\164\171\061\045\060\043\006\011\052\206\110\206\367\015
++\001\011\001\026\026\150\157\163\164\155\141\163\164\145\162\100
++\163\160\151\055\151\156\143\056\157\162\147\202\011\000\350\216
++\266\311\370\052\024\050\060\017\006\003\125\035\023\001\001\377
++\004\005\060\003\001\001\377\060\021\006\011\140\206\110\001\206
++\370\102\001\001\004\004\003\002\000\007\060\011\006\003\125\035
++\022\004\002\060\000\060\056\006\011\140\206\110\001\206\370\102
++\001\015\004\041\026\037\123\157\146\164\167\141\162\145\040\151
++\156\040\164\150\145\040\120\165\142\154\151\143\040\111\156\164
++\145\162\145\163\164\060\060\006\011\140\206\110\001\206\370\102
++\001\004\004\043\026\041\150\164\164\160\163\072\057\057\143\141
++\056\163\160\151\055\151\156\143\056\157\162\147\057\143\141\055
++\143\162\154\056\160\145\155\060\062\006\011\140\206\110\001\206
++\370\102\001\003\004\045\026\043\150\164\164\160\163\072\057\057
++\143\141\056\163\160\151\055\151\156\143\056\157\162\147\057\143
++\145\162\164\055\143\162\154\056\160\145\155\060\041\006\003\125
++\035\021\004\032\060\030\201\026\150\157\163\164\155\141\163\164
++\145\162\100\163\160\151\055\151\156\143\056\157\162\147\060\016
++\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\015
++\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\002
++\001\000\264\315\275\340\271\352\262\003\053\176\062\351\336\162
++\077\311\113\202\136\235\342\257\125\011\242\014\124\350\317\030
++\074\050\040\035\251\273\003\002\057\122\071\042\371\027\317\255
++\147\220\263\003\177\330\025\343\153\176\273\233\126\001\257\065
++\324\332\271\307\147\027\233\324\325\016\067\263\040\101\056\014
++\001\304\133\371\145\076\302\141\350\322\360\152\225\160\303\306
++\157\325\065\244\254\131\162\341\211\337\241\240\235\044\275\051
++\171\351\141\052\331\323\036\311\106\244\010\170\101\222\162\017
++\253\024\165\355\011\360\242\360\134\357\303\012\142\040\267\302
++\050\146\256\114\057\056\217\105\143\046\226\360\356\061\346\213
++\125\233\252\072\371\202\071\035\210\074\342\007\165\032\341\017
++\261\060\274\161\062\322\072\376\372\241\211\363\103\054\326\162
++\304\171\247\025\110\005\300\330\055\162\002\343\313\075\026\152
++\272\311\270\021\020\342\111\205\314\226\107\140\005\045\056\357
++\165\131\063\365\107\031\026\357\332\154\137\007\310\246\120\266
++\035\313\146\064\045\374\146\203\353\305\266\060\101\370\106\104
++\142\250\301\014\124\346\352\114\132\050\346\256\306\267\376\177
++\073\226\250\056\356\307\150\076\335\000\075\051\257\052\143\253
++\137\356\111\052\055\305\334\373\321\306\323\321\227\126\122\206
++\266\224\353\324\140\121\267\374\036\233\314\002\233\324\037\217
++\371\112\217\266\056\050\073\027\314\305\246\005\343\322\323\265
++\306\003\311\341\110\102\233\313\077\344\027\340\376\015\001\225
++\011\272\270\015\161\344\011\160\167\102\330\115\341\102\251\140
++\203\327\027\211\103\322\324\335\247\030\266\253\324\044\045\207
++\265\324\342\374\056\042\151\275\255\150\054\377\162\265\230\252
++\006\234\347\052\152\270\241\223\166\316\260\363\177\234\341\340
++\117\270\330\206\106\245\063\002\054\045\141\067\052\222\310\254
++\201\164\150\143\207\063\166\275\005\177\136\325\325\002\155\275
++\257\377\052\132\252\111\354\230\171\107\123\221\366\016\064\132
++\311\245\306\353\262\343\305\254\266\240\160\065\273\310\121\151
++\320\362\265\242\062\156\274\077\240\067\071\174\161\066\246\005
++\337\014\022\344\026\247\305\326\313\143\243\225\160\077\346\004
++\243\140
++END
++
++# Trust for Certificate "Software in the Public Interest, Inc. Root CA (2008)"
++CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "Software in the Public Interest, Inc. Root CA (2008)"
++CKA_CERT_SHA1_HASH MULTILINE_OCTAL
++\257\160\210\103\203\202\002\025\315\141\306\274\354\375\067\044
++\251\220\103\034
++END
++CKA_CERT_MD5_HASH MULTILINE_OCTAL
++\052\107\237\140\273\203\164\157\001\003\327\013\015\366\015\170
++END
++CKA_ISSUER MULTILINE_OCTAL
++\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123
++\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141
++\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144
++\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125
++\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040
++\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162
++\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157
++\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004
++\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101
++\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206
++\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163
++\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\011\000\350\216\266\311\370\052\024\050
++END
++CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
diff --git a/multilib/lib32-nss/nss-no-rpath.patch b/multilib/lib32-nss/nss-no-rpath.patch
new file mode 100644
index 000000000..35ea57315
--- /dev/null
+++ b/multilib/lib32-nss/nss-no-rpath.patch
@@ -0,0 +1,14 @@
+--- ./mozilla/security/nss/cmd/platlibs.mk.withrpath 2007-02-19 07:17:06.000000000 +0100
++++ ./mozilla/security/nss/cmd/platlibs.mk 2007-02-19 07:18:07.000000000 +0100
+@@ -52,9 +52,9 @@
+
+ ifeq ($(OS_ARCH), Linux)
+ ifeq ($(USE_64), 1)
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:$$ORIGIN/../lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:$$ORIGIN/../lib'
+ else
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib'
+ endif
+ endif
+
diff --git a/multilib/lib32-nss/nss-nolocalsql.patch b/multilib/lib32-nss/nss-nolocalsql.patch
new file mode 100644
index 000000000..dc75a223f
--- /dev/null
+++ b/multilib/lib32-nss/nss-nolocalsql.patch
@@ -0,0 +1,52 @@
+diff -up ./mozilla/security/nss/lib/Makefile.nolocalsql ./mozilla/security/nss/lib/Makefile
+--- ./mozilla/security/nss/lib/Makefile.nolocalsql 2010-02-27 16:40:25.891777537 -0800
++++ ./mozilla/security/nss/lib/Makefile 2010-02-27 16:41:59.175902327 -0800
+@@ -62,11 +62,11 @@ ifndef USE_SYSTEM_ZLIB
+ ZLIB_SRCDIR = zlib # Add the zlib directory to DIRS.
+ endif
+
+-ifndef MOZILLA_CLIENT
+-ifndef NSS_USE_SYSTEM_SQLITE
+-SQLITE_SRCDIR = sqlite # Add the sqlite directory to DIRS.
+-endif
+-endif
++#ifndef MOZILLA_CLIENT
++#ifndef NSS_USE_SYSTEM_SQLITE
++#SQLITE_SRCDIR = sqlite # Add the sqlite directory to DIRS.
++#endif
++#endif
+
+ ifndef MOZILLA_CLIENT
+ ifeq ($(OS_ARCH),Linux)
+diff -up ./mozilla/security/nss/lib/softoken/legacydb/manifest.mn.nolocalsql ./mozilla/security/nss/lib/softoken/legacydb/manifest.mn
+--- ./mozilla/security/nss/lib/softoken/legacydb/manifest.mn.nolocalsql 2010-02-27 16:44:24.998777709 -0800
++++ ./mozilla/security/nss/lib/softoken/legacydb/manifest.mn 2010-02-27 16:45:08.533803472 -0800
+@@ -46,9 +46,9 @@ MAPFILE = $(OBJDIR)/nssdbm.def
+
+ DEFINES += -DSHLIB_SUFFIX=\"$(DLL_SUFFIX)\" -DSHLIB_PREFIX=\"$(DLL_PREFIX)\" -DSOFTOKEN_LIB_NAME=\"$(notdir $(SHARED_LIBRARY))\"
+
+-ifdef MOZILLA_CLIENT
+-INCLUDES += -I$(DIST)/include/sqlite3
+-endif
++#ifdef MOZILLA_CLIENT
++#INCLUDES += -I$(DIST)/include/sqlite3
++#endif
+
+ CSRCS = \
+ dbmshim.c \
+diff -up ./mozilla/security/nss/lib/softoken/manifest.mn.nolocalsql ./mozilla/security/nss/lib/softoken/manifest.mn
+--- ./mozilla/security/nss/lib/softoken/manifest.mn.nolocalsql 2010-02-27 16:42:52.213902231 -0800
++++ ./mozilla/security/nss/lib/softoken/manifest.mn 2010-02-27 16:43:34.040776788 -0800
+@@ -47,9 +47,9 @@ MAPFILE = $(OBJDIR)/softokn.def
+
+ DEFINES += -DSHLIB_SUFFIX=\"$(DLL_SUFFIX)\" -DSHLIB_PREFIX=\"$(DLL_PREFIX)\" -DSOFTOKEN_LIB_NAME=\"$(notdir $(SHARED_LIBRARY))\" -DSHLIB_VERSION=\"$(LIBRARY_VERSION)\"
+
+-ifdef MOZILLA_CLIENT
+-INCLUDES += -I$(DIST)/include/sqlite3
+-endif
++#ifdef MOZILLA_CLIENT
++#INCLUDES += -I$(DIST)/include/sqlite3
++#endif
+
+ EXPORTS = \
+ secmodt.h \
diff --git a/multilib/lib32-nss/nss.pc.in b/multilib/lib32-nss/nss.pc.in
new file mode 100644
index 000000000..d47b9e146
--- /dev/null
+++ b/multilib/lib32-nss/nss.pc.in
@@ -0,0 +1,11 @@
+prefix=%prefix%
+exec_prefix=%exec_prefix%
+libdir=%libdir%
+includedir=%includedir%
+
+Name: NSS
+Description: Network Security Services
+Version: %NSS_VERSION%
+Requires: nspr >= %NSPR_VERSION%
+Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3
+Cflags: -I${includedir}
diff --git a/multilib/lib32-nss/ssl-renegotiate-transitional.patch b/multilib/lib32-nss/ssl-renegotiate-transitional.patch
new file mode 100644
index 000000000..f457c5551
--- /dev/null
+++ b/multilib/lib32-nss/ssl-renegotiate-transitional.patch
@@ -0,0 +1,21 @@
+Enable transitional scheme for ssl renegotiation:
+
+(from mozilla/security/nss/lib/ssl/ssl.h)
+Disallow unsafe renegotiation in server sockets only, but allow clients
+to continue to renegotiate with vulnerable servers.
+This value should only be used during the transition period when few
+servers have been upgraded.
+
+diff --git a/mozilla/security/nss/lib/ssl/sslsock.c b/mozilla/security/nss/lib/ssl/sslsock.c
+index f1d1921..c074360 100644
+--- a/mozilla/security/nss/lib/ssl/sslsock.c
++++ b/mozilla/security/nss/lib/ssl/sslsock.c
+@@ -181,7 +181,7 @@ static sslOptions ssl_defaults = {
+ PR_FALSE, /* noLocks */
+ PR_FALSE, /* enableSessionTickets */
+ PR_FALSE, /* enableDeflate */
+- 2, /* enableRenegotiation (default: requires extension) */
++ 3, /* enableRenegotiation (default: transitional) */
+ PR_FALSE, /* requireSafeNegotiation */
+ };
+
diff --git a/multilib/lib32-openal/PKGBUILD b/multilib/lib32-openal/PKGBUILD
new file mode 100644
index 000000000..6201cdf24
--- /dev/null
+++ b/multilib/lib32-openal/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 42890 2011-03-22 08:03:47Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Jason Chu <jchu@xentac.net>
+
+_pkgbasename=openal
+pkgname=lib32-$_pkgbasename
+pkgver=1.13
+pkgrel=2
+pkgdesc="OpenAL audio library for use with opengl (32-bit)"
+arch=('x86_64')
+url="http://www.openal.org/"
+license=('LGPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('lib32-alsa-lib' 'lib32-sdl' 'lib32-libpulse' 'pkgconfig' 'cmake' gcc-multilib)
+options=('!libtool')
+source=(http://kcat.strangesoft.net/openal-releases/openal-soft-${pkgver}.tar.bz2)
+md5sums=('58b7d2809790c70681b825644c5f3614')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-soft-${pkgver}/build
+ cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D LIB_SUFFIX=32 ..
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-soft-${pkgver}/build
+ make DESTDIR=${pkgdir}/ install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-openssl/PKGBUILD b/multilib/lib32-openssl/PKGBUILD
new file mode 100644
index 000000000..2f5fd6a6d
--- /dev/null
+++ b/multilib/lib32-openssl/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 39457 2011-02-10 15:44:47Z bluewind $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+_pkgbasename=openssl
+pkgname=lib32-$_pkgbasename
+_ver=1.0.0d
+# use a pacman compatible version scheme
+pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
+pkgrel=1
+pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (32-bit)'
+arch=('x86_64')
+url='https://www.openssl.org'
+license=('custom:BSD')
+depends=(lib32-zlib $_pkgbasename)
+optdepends=('ca-certificates' perl gcc-multilib)
+options=('!makeflags')
+source=("https://www.openssl.org/source/${_pkgbasename}-${_ver}.tar.gz"
+ 'no-rpath.patch'
+ 'ca-dir.patch')
+md5sums=('40b6ea380cc8a5bf9734c2f8bf7e701e'
+ 'dc78d3d06baffc16217519242ce92478'
+ '3bf51be3a1bbd262be46dc619f92aa90')
+
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/$_pkgbasename-$_ver
+
+ # remove rpath: http://bugs.archlinux.org/task/14367
+ patch -p0 -i $srcdir/no-rpath.patch
+ # set ca dir to /etc/ssl by default
+ patch -p0 -i $srcdir/ca-dir.patch
+ # mark stack as non-executable: http://bugs.archlinux.org/task/12434
+ ./Configure linux-elf --prefix=/usr --openssldir=/etc/ssl --libdir=lib32 \
+ shared zlib enable-md2 -Wa,--noexecstack
+
+ make
+
+ # the test fails due to missing write permissions in /etc/ssl
+ # revert this patch for make test
+ #patch -p0 -R -i $srcdir/ca-dir.patch
+ #make test
+ #patch -p0 -i $srcdir/ca-dir.patch
+}
+
+package() {
+ cd $srcdir/$_pkgbasename-$_ver
+ make INSTALL_PREFIX=$pkgdir install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin} "$pkgdir/etc"
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-openssl/ca-dir.patch b/multilib/lib32-openssl/ca-dir.patch
new file mode 100644
index 000000000..41d1386d3
--- /dev/null
+++ b/multilib/lib32-openssl/ca-dir.patch
@@ -0,0 +1,33 @@
+--- apps/CA.pl.in 2006-04-28 02:30:49.000000000 +0200
++++ apps/CA.pl.in 2010-04-01 00:35:02.600553509 +0200
+@@ -53,7 +53,7 @@
+ $X509="$openssl x509";
+ $PKCS12="$openssl pkcs12";
+
+-$CATOP="./demoCA";
++$CATOP="/etc/ssl";
+ $CAKEY="cakey.pem";
+ $CAREQ="careq.pem";
+ $CACERT="cacert.pem";
+--- apps/CA.sh 2009-10-15 19:27:47.000000000 +0200
++++ apps/CA.sh 2010-04-01 00:35:02.600553509 +0200
+@@ -68,7 +68,7 @@
+ X509="$OPENSSL x509"
+ PKCS12="openssl pkcs12"
+
+-if [ -z "$CATOP" ] ; then CATOP=./demoCA ; fi
++if [ -z "$CATOP" ] ; then CATOP=/etc/ssl ; fi
+ CAKEY=./cakey.pem
+ CAREQ=./careq.pem
+ CACERT=./cacert.pem
+--- apps/openssl.cnf 2009-04-04 20:09:43.000000000 +0200
++++ apps/openssl.cnf 2010-04-01 00:35:02.607220681 +0200
+@@ -39,7 +39,7 @@
+ ####################################################################
+ [ CA_default ]
+
+-dir = ./demoCA # Where everything is kept
++dir = /etc/ssl # Where everything is kept
+ certs = $dir/certs # Where the issued certs are kept
+ crl_dir = $dir/crl # Where the issued crl are kept
+ database = $dir/index.txt # database index file.
diff --git a/multilib/lib32-openssl/no-rpath.patch b/multilib/lib32-openssl/no-rpath.patch
new file mode 100644
index 000000000..ebd95e23d
--- /dev/null
+++ b/multilib/lib32-openssl/no-rpath.patch
@@ -0,0 +1,11 @@
+--- Makefile.shared.no-rpath 2005-06-23 22:47:54.000000000 +0200
++++ Makefile.shared 2005-11-16 22:35:37.000000000 +0100
+@@ -153,7 +153,7 @@
+ NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
+ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
+
+-DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"
++DO_GNU_APP=LDFLAGS="$(CFLAGS)"
+
+ #This is rather special. It's a special target with which one can link
+ #applications without bothering with any features that have anything to
diff --git a/multilib/lib32-pango/PKGBUILD b/multilib/lib32-pango/PKGBUILD
new file mode 100644
index 000000000..a3951d41d
--- /dev/null
+++ b/multilib/lib32-pango/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 27942 2010-09-30 15:32:18Z heftig $
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+# Maintainer: Biru Ionut <ionut@archlinux.ro>
+_pkgbasename=pango
+pkgname=lib32-$_pkgbasename
+pkgver=1.28.3
+pkgrel=1
+pkgdesc="A library for layout and rendering of text (32-bit)"
+arch=('x86_64')
+license=('LGPL')
+depends=('lib32-glib2>=2.25.15' 'lib32-cairo>=1.10.0' 'lib32-libxft>=2.1.14'
+ 'lib32-freetype2>=2.4.2' $_pkgbasename)
+makedepends=("gcc-multilib")
+options=('!libtool' '!emptydirs')
+install=pango.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${_pkgbasename}/1.28/${_pkgbasename}-${pkgver}.tar.bz2
+ pango-modules-conffile.patch)
+url="http://www.pango.org/"
+sha256sums=('5e278bc9430cc7bb00270f183360d262c5006b51248e8b537ea904573f200632'
+ '4a178b60dd420ae53baeabbecfaaeca4070a4b777b2b3f36d137cd70b5a270c3')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -p0 < ${srcdir}/pango-modules-conffile.patch
+ # No libthai support yet
+ ./configure --prefix=/usr --libdir=/usr/lib32 --sysconfdir=/etc \
+ --localstatedir=/var --with-included-modules=basic-fc \
+ --with-dynamic-modules=arabic-fc,arabic-lang,basic-fc,basic-win32,basic-x,basic-atsui,hangul-fc,hebrew-fc,indic-fc,indic-lang,khmer-fc,syriac-fc,tibetan-fc \
+ --disable-introspection
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "$pkgdir"/etc
+ rm -rf "$pkgdir"/usr/{bin/pango-view,share,include}
+ mv "$pkgdir"/usr/bin/pango-querymodules "$pkgdir"/usr/bin/pango-querymodules-32
+}
diff --git a/multilib/lib32-pango/pango-modules-conffile.patch b/multilib/lib32-pango/pango-modules-conffile.patch
new file mode 100644
index 000000000..a959cf1c8
--- /dev/null
+++ b/multilib/lib32-pango/pango-modules-conffile.patch
@@ -0,0 +1,20 @@
+--- pango/modules.c.orig 2010-08-26 06:45:49.329259966 +0200
++++ pango/modules.c 2010-08-26 06:46:13.786685177 +0200
+@@ -529,7 +529,7 @@
+
+ if (!file_str)
+ file_str = g_build_filename (pango_get_sysconf_subdirectory (),
+- "pango.modules",
++ "pango.modules-32",
+ NULL);
+
+ files = pango_split_file_list (file_str);
+@@ -640,7 +640,7 @@
+ if (!no_module_warning)
+ {
+ gchar *filename = g_build_filename (pango_get_sysconf_subdirectory (),
+- "pango.modules",
++ "pango.modules-32",
+ NULL);
+ g_critical ("No modules found:\n"
+ "No builtin or dynamically loaded modules were found.\n"
diff --git a/multilib/lib32-pango/pango.install b/multilib/lib32-pango/pango.install
new file mode 100644
index 000000000..173b6820f
--- /dev/null
+++ b/multilib/lib32-pango/pango.install
@@ -0,0 +1,21 @@
+# arg 1: the new package version
+post_install() {
+ # we need to ldconfig first, in case xfree86's libs aren't
+ # in ld.so.cache yet
+ sbin/ldconfig -r .
+ usr/bin/pango-querymodules-32 >etc/pango/pango.modules-32
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ -f etc/pango/pango.modules-32 ]; then
+ rm etc/pango/pango.modules-32
+ fi
+ post_install $1
+}
+
+# arg 1: the old package version
+pre_remove() {
+ rm etc/pango/pango.modules-32
+}
diff --git a/multilib/lib32-pcre/PKGBUILD b/multilib/lib32-pcre/PKGBUILD
new file mode 100644
index 000000000..277e397df
--- /dev/null
+++ b/multilib/lib32-pcre/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 26731 2010-09-15 23:01:13Z bluewind $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+_pkgbasename=pcre
+pkgname=lib32-$_pkgbasename
+pkgver=8.10
+pkgrel=3
+pkgdesc="A library that implements Perl 5-style regular expressions (32-bit)"
+arch=('x86_64')
+url="http://pcre.sourceforge.net"
+license=('custom')
+depends=('lib32-gcc-libs' $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('780867a700e9d4e4b9cb47aa5453e4b2')
+
+build() {
+ cd "${srcdir}"/${_pkgbasename}-${pkgver}
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --enable-utf8 --enable-unicode-properties
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-pixman/PKGBUILD b/multilib/lib32-pixman/PKGBUILD
new file mode 100644
index 000000000..b2e57ee93
--- /dev/null
+++ b/multilib/lib32-pixman/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 38980 2011-02-04 14:53:22Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+_pkgbasename=pixman
+pkgname=lib32-$_pkgbasename
+pkgver=0.20.2
+pkgrel=1
+pkgdesc="Pixman library (32-bit)"
+arch=('x86_64')
+url="http://xorg.freedesktop.org"
+license=('custom')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(http://xorg.freedesktop.org/releases/individual/lib/${_pkgbasename}-${pkgver}.tar.bz2)
+sha1sums=('9972c8f8ce484f7649d9f588168cd29f61c05c63')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/usr/include
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-qt/PKGBUILD b/multilib/lib32-qt/PKGBUILD
new file mode 100644
index 000000000..ca494b37f
--- /dev/null
+++ b/multilib/lib32-qt/PKGBUILD
@@ -0,0 +1,94 @@
+# $Id: PKGBUILD 32045 2010-11-09 15:51:29Z bluewind $
+# Maintainer: Florian Pritz <flo@xssn.at>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+_pkgbasename=qt
+pkgname=lib32-$_pkgbasename
+pkgver=4.7.1
+pkgrel=1
+pkgdesc='A cross-platform application and UI framework (32-bit)'
+arch=('x86_64')
+url='http://qt.nokia.com/'
+license=('GPL3' 'LGPL')
+depends=(lib32-{fontconfig,sqlite3,alsa-lib,glib2,dbus-core,openssl}
+ lib32-lib{png,tiff,mng,gl,sm,xrandr,xv,xi} $_pkgbasename)
+optdepends=('lib32-libxinerama: Xinerama support'
+ 'lib32-libxcursor: Xcursor support'
+ 'lib32-libxfixes: Xfixes support')
+makedepends=(cups gcc-multilib lib32-{mesa,libcups,libxfixes,gtk2})
+options=('!libtool')
+_pkgfqn="qt-everywhere-opensource-src-${pkgver}"
+source=("ftp://ftp.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz")
+md5sums=('6f88d96507c84e9fea5bf3a71ebeb6d7')
+
+build() {
+ unset QMAKESPEC
+ export QT4DIR=$srcdir/$_pkgfqn
+ export PATH=${QT4DIR}/bin:${PATH}
+ export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/$_pkgfqn
+
+ sed -e "s|-O2|$CXXFLAGS -m32|" \
+ -e "/^QMAKE_RPATH/s| -Wl,-rpath,||g" \
+ -e "/^QMAKE_LINK\s/s|g++|g++ -m32|g" \
+ -e "/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g" \
+ -i mkspecs/common/g++.conf
+
+ ./configure -confirm-license -opensource -v -platform linux-g++-32 \
+ -prefix /usr \
+ -libdir /usr/lib32 \
+ -plugindir /usr/lib32/qt/plugins \
+ -importdir /usr/lib32/qt/imports \
+ -datadir /usr/share/qt \
+ -translationdir /usr/share/qt/translations \
+ -sysconfdir /etc \
+ -largefile \
+ -system-sqlite \
+ -xmlpatterns \
+ -no-phonon \
+ -no-phonon-backend \
+ -svg \
+ -webkit \
+ -script \
+ -scripttools \
+ -system-zlib \
+ -system-libtiff \
+ -system-libpng \
+ -system-libmng \
+ -system-libjpeg \
+ -nomake demos \
+ -nomake examples \
+ -nomake docs \
+ -nomake tools \
+ -no-rpath \
+ -openssl-linked \
+ -optimized-qmake \
+ -dbus \
+ -reduce-relocations \
+ -no-separate-debug-info \
+ -gtkstyle \
+ -opengl \
+ -no-openvg \
+ -glib
+
+ make
+}
+
+package() {
+ cd $srcdir/$_pkgfqn
+ make INSTALL_ROOT=$pkgdir install
+
+ # Fix wrong path in pkgconfig files
+ find ${pkgdir}/usr/lib32/pkgconfig -type f -name '*.pc' \
+ -exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
+ # Fix wrong path in prl files
+ find ${pkgdir}/usr/lib32 -type f -name '*.prl' \
+ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-readline/PKGBUILD b/multilib/lib32-readline/PKGBUILD
new file mode 100644
index 000000000..08aaf0132
--- /dev/null
+++ b/multilib/lib32-readline/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 26740 2010-09-15 23:02:31Z bluewind $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+_pkgbasename=readline
+pkgname=lib32-$_pkgbasename
+_patchlevel=002 #prepare for some patches
+pkgver=6.1.$_patchlevel
+pkgrel=3
+pkgdesc="GNU readline library (32-bit)"
+arch=(x86_64)
+url="http://tiswww.case.edu/php/chet/readline/rltop.html"
+license=('GPL')
+depends=('lib32-glibc' 'lib32-ncurses' $_pkgbasename)
+makedepends=('gcc-multilib')
+source=(http://ftp.gnu.org/gnu/readline/readline-6.1.tar.gz)
+if [ $_patchlevel -gt 00 ]; then
+ for (( p=1; p<=$_patchlevel; p++ )); do
+ source=(${source[@]} http://ftp.gnu.org/gnu/readline/readline-6.1-patches/readline61-$(printf "%03d" $p))
+ done
+fi
+md5sums=('fc2f7e714fe792db1ce6ddc4c9fb4ef3'
+ 'c642f2e84d820884b0bf9fd176bc6c3f'
+ '1a76781a1ea734e831588285db7ec9b1')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-6.1
+ for p in ../readline61-*; do
+ [ -e "$p" ] || continue
+ msg "applying patch ${p}"
+ patch -Np0 -i ${p}
+ done
+
+ # Remove RPATH from shared objects (FS#14366)
+ sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make SHLIB_LIBS=-lncurses
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-6.1
+
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-sdl/PKGBUILD b/multilib/lib32-sdl/PKGBUILD
new file mode 100644
index 000000000..51eda45e5
--- /dev/null
+++ b/multilib/lib32-sdl/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 33692 2010-11-27 16:54:21Z heftig $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+_pkgbasename=sdl
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.14
+pkgrel=8
+pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (32-bit)"
+arch=('x86_64')
+url="http://www.libsdl.org"
+license=('LGPL')
+depends=('lib32-libxext' 'lib32-libxrender' 'lib32-libx11' $_pkgbasename)
+makedepends=('lib32-alsa-lib' 'lib32-mesa' 'lib32-libpulse' gcc-multilib)
+options=('!libtool')
+source=(http://www.libsdl.org/release/SDL-${pkgver}.tar.gz
+ sdl-1.2.14-joystick-crash.diff
+ sdl-1.2.14-fix-mouse-clicking.patch
+ sdl-1.2.14-fix-disappearing-cursor.patch)
+md5sums=('e52086d1b508fa0b76c52ee30b55bec4'
+ '9d8890b3817736a5d365f7497f096634'
+ '04d8c179f125e04bcd4c9d60e013c2d7'
+ 'a6cf3e71b653aa97d0d8ae6c0a789807')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/SDL-${pkgver}
+ patch -Np1 -i $srcdir/sdl-1.2.14-joystick-crash.diff
+ patch -Np1 -i $srcdir/sdl-1.2.14-fix-mouse-clicking.patch
+ patch -Np1 -i $srcdir/sdl-1.2.14-fix-disappearing-cursor.patch
+ ./configure --prefix=/usr --disable-nasm --enable-alsa \
+ --with-x --disable-rpath --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/SDL-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-sdl/sdl-1.2.14-fix-disappearing-cursor.patch b/multilib/lib32-sdl/sdl-1.2.14-fix-disappearing-cursor.patch
new file mode 100644
index 000000000..fcd3c314d
--- /dev/null
+++ b/multilib/lib32-sdl/sdl-1.2.14-fix-disappearing-cursor.patch
@@ -0,0 +1,17 @@
+Index: SDL-1.2.14/src/video/x11/SDL_x11events.c
+===================================================================
+--- SDL-1.2.14.orig/src/video/x11/SDL_x11events.c 2010-04-30 09:16:35.000000000 -0400
++++ SDL-1.2.14/src/video/x11/SDL_x11events.c 2010-04-30 09:16:35.000000000 -0400
+@@ -444,8 +444,10 @@
+ if ( xevent.xcrossing.mode == NotifyUngrab )
+ printf("Mode: NotifyUngrab\n");
+ #endif
+- if ( xevent.xcrossing.detail != NotifyInferior ) {
+- if ( this->input_grab == SDL_GRAB_OFF ) {
++ if ( (xevent.xcrossing.mode != NotifyGrab) &&
++ (xevent.xcrossing.mode != NotifyUngrab) &&
++ (xevent.xcrossing.detail != NotifyInferior) ) {
++ if ( this->input_grab == SDL_GRAB_OFF ) {
+ posted = SDL_PrivateAppActive(0, SDL_APPMOUSEFOCUS);
+ } else {
+ posted = SDL_PrivateMouseMotion(0, 0,
diff --git a/multilib/lib32-sdl/sdl-1.2.14-fix-mouse-clicking.patch b/multilib/lib32-sdl/sdl-1.2.14-fix-mouse-clicking.patch
new file mode 100644
index 000000000..7d3e5acfc
--- /dev/null
+++ b/multilib/lib32-sdl/sdl-1.2.14-fix-mouse-clicking.patch
@@ -0,0 +1,23 @@
+--- SDL-1.2.14/src/video/x11/SDL_x11events.c.orig 2010-04-08 11:57:05.003169834 -0700
++++ SDL-1.2.14/src/video/x11/SDL_x11events.c 2010-04-08 12:33:51.690926340 -0700
+@@ -423,12 +423,15 @@
+ if ( xevent.xcrossing.mode == NotifyUngrab )
+ printf("Mode: NotifyUngrab\n");
+ #endif
+- if ( this->input_grab == SDL_GRAB_OFF ) {
+- posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS);
++ if ( (xevent.xcrossing.mode != NotifyGrab) &&
++ (xevent.xcrossing.mode != NotifyUngrab) ) {
++ if ( this->input_grab == SDL_GRAB_OFF ) {
++ posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS);
++ }
++ posted = SDL_PrivateMouseMotion(0, 0,
++ xevent.xcrossing.x,
++ xevent.xcrossing.y);
+ }
+- posted = SDL_PrivateMouseMotion(0, 0,
+- xevent.xcrossing.x,
+- xevent.xcrossing.y);
+ }
+ break;
+
diff --git a/multilib/lib32-sdl/sdl-1.2.14-joystick-crash.diff b/multilib/lib32-sdl/sdl-1.2.14-joystick-crash.diff
new file mode 100644
index 000000000..949e18b96
--- /dev/null
+++ b/multilib/lib32-sdl/sdl-1.2.14-joystick-crash.diff
@@ -0,0 +1,14 @@
+Description: Fix crash with joystick detection.
+Index: libsdl1.2-1.2.14/src/joystick/linux/SDL_sysjoystick.c
+===================================================================
+--- libsdl1.2-1.2.14.orig/src/joystick/linux/SDL_sysjoystick.c 2010-01-12 12:37:36.000000000 -0500
++++ libsdl1.2-1.2.14/src/joystick/linux/SDL_sysjoystick.c 2010-01-12 12:38:27.000000000 -0500
+@@ -700,7 +700,7 @@
+ continue;
+ }
+ if ( test_bit(i, absbit) ) {
+- int values[5];
++ int values[6];
+
+ if ( ioctl(fd, EVIOCGABS(i), values) < 0 )
+ continue;
diff --git a/multilib/lib32-sdl_image/PKGBUILD b/multilib/lib32-sdl_image/PKGBUILD
new file mode 100644
index 000000000..70ccc252f
--- /dev/null
+++ b/multilib/lib32-sdl_image/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 29403 2010-10-14 00:20:35Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+
+_pkgbasename=sdl_image
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.10
+pkgrel=3
+pkgdesc="A simple library to load images of various formats as SDL surfaces (32-bit)"
+arch=('x86_64')
+url="http://www.libsdl.org/projects/SDL_image/"
+license=('LGPL')
+depends=('lib32-sdl' 'lib32-libpng' 'lib32-libjpeg' 'lib32-libtiff' 'lib32-zlib' "$_pkgbasename")
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(http://www.libsdl.org/projects/SDL_image/release/SDL_image-${pkgver}.tar.gz)
+md5sums=('6c06584b31559e2b59f2b982d0d1f628')
+
+build() {
+ export CC='gcc -m32'
+ export PKG_CONFIG_PATH='/usr/lib32/pkgconfig'
+
+ cd ${srcdir}/SDL_image-${pkgver}
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/SDL_image-${pkgver}
+
+ make DESTDIR=$pkgdir install
+ rm -rf $pkgdir/usr/include
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/multilib/lib32-sdl_ttf/PKGBUILD b/multilib/lib32-sdl_ttf/PKGBUILD
new file mode 100644
index 000000000..19f3f0014
--- /dev/null
+++ b/multilib/lib32-sdl_ttf/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 35154 2010-12-16 21:15:47Z heftig $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Esa lakaniemi <esalaka@gmail.com>
+
+_pkgbasename=sdl_ttf
+pkgname=lib32-$_pkgbasename
+pkgver=2.0.10
+pkgrel=3
+pkgdesc="A library that allows you to use TrueType fonts in your SDL applications (32-bit)"
+arch=('x86_64')
+url="http://www.libsdl.org/projects/SDL_ttf/"
+license=('LGPL')
+options=('!libtool')
+depends=('lib32-sdl' 'lib32-freetype2' $_pkgbasename)
+makedepends=('gcc-multilib')
+source=(http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-$pkgver.tar.gz)
+sha256sums=('7d38704bcc7c34029c2dcb73b2d4857e8ad76341c6e0faed279eb9f743c66c6a')
+
+build() {
+ cd "${srcdir}"/SDL_ttf-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32 CC="gcc -m32" PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+ make
+}
+
+package() {
+ cd "${srcdir}"/SDL_ttf-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}"/usr/include
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/multilib/lib32-speex/PKGBUILD b/multilib/lib32-speex/PKGBUILD
new file mode 100644
index 000000000..d6f1ea20d
--- /dev/null
+++ b/multilib/lib32-speex/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 26746 2010-09-15 23:03:23Z bluewind $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=speex
+pkgname=lib32-$_pkgbasename
+pkgver=1.2rc1
+pkgrel=3
+pkgdesc="A free codec for free speech (32-bit)"
+arch=(x86_64)
+license=('BSD')
+depends=('lib32-libogg' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://downloads.us.xiph.org/releases/$_pkgbasename/$_pkgbasename-$pkgver.tar.gz)
+md5sums=('c4438b22c08e5811ff10e2b06ee9b9ae')
+url="http://www.speex.org/"
+
+build() {
+ cd $srcdir/speex-$pkgver
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/speex-$pkgver
+ make DESTDIR=$pkgdir install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-sqlite3/PKGBUILD b/multilib/lib32-sqlite3/PKGBUILD
new file mode 100644
index 000000000..a1e3d8fec
--- /dev/null
+++ b/multilib/lib32-sqlite3/PKGBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Biru Ionut <ionut@archlinux.ro>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+# Contributor: Kaos < gianlucaatlas dot gmail dot com >
+
+_pkgbasename=sqlite3
+pkgname=lib32-sqlite3
+_amalgamationver=3070400
+pkgver=3.7.4
+pkgrel=1
+pkgdesc="A C library that implements an SQL database engine (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://www.sqlite.org/"
+depends=(lib32-glibc $_pkgbasename)
+makedepends=('tcl' 'gcc-multilib' 'lib32-readline')
+source=(http://www.sqlite.org/sqlite-src-${_amalgamationver}.zip)
+options=(!libtool)
+md5sums=('2b5c53328505893599de6e2055996d7a')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/sqlite-src-${_amalgamationver}
+ export LTLINK_EXTRAS="-ldl"
+ export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE"
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --enable-threadsafe \
+ --enable-threads-override-locks \
+ --enable-cross-thread-connections \
+ --disable-static --disable-tcl \
+ --enable-load-extension
+
+ # rpath removal
+ sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+
+ make
+}
+
+
+package() {
+ cd ${srcdir}/sqlite-src-${_amalgamationver}
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-talloc/PKGBUILD b/multilib/lib32-talloc/PKGBUILD
new file mode 100644
index 000000000..f67679998
--- /dev/null
+++ b/multilib/lib32-talloc/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 29311 2010-10-12 21:12:22Z lcarlier $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+_pkgbasename=talloc
+pkgname=lib32-$_pkgbasename
+pkgver=2.0.1
+pkgrel=1
+pkgdesc="talloc is a hierarchical pool based memory allocator with destructors (32-bit)"
+arch=(x86_64)
+license=('GPL3')
+url="http://talloc.samba.org/"
+source=(http://samba.org/ftp/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz)
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+md5sums=('c6e736540145ca58cb3dcb42f91cf57b')
+
+build() {
+ export CC="gcc -m32"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/samba \
+ --localstatedir=/var \
+ --enable-talloc-compat1 \
+ --enable-largefile \
+ --libdir=/usr/lib32
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=$pkgdir/ install
+
+ # fix permission
+ chmod 644 $pkgdir/usr/lib32/libtalloc.a
+ rm -rf $pkgdir/usr/include
+}
+
diff --git a/multilib/lib32-tdb/PKGBUILD b/multilib/lib32-tdb/PKGBUILD
new file mode 100644
index 000000000..db639ad6e
--- /dev/null
+++ b/multilib/lib32-tdb/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Florian Pritz <flo@xssn.at>
+
+_pkgbasename=tdb
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.1
+pkgrel=3
+pkgdesc="A Trivia Database similar to GDBM but allows simultaneous commits (32-bit)"
+arch=(x86_64)
+license=('GPL3')
+url="http://tdb.samba.org/"
+depends=(lib32-glibc $_pkgbasename)
+makedepends=(gcc-multilib libxslt)
+options=(force)
+source=(http://samba.org/ftp/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('73ea81282a82e5c959d9c082af2d0215')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr \
+ --localstatedir=/var \
+ --sysconfdir=/etc/samba \
+ --libdir=/usr/lib32 \
+ --disable-python
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make -j1 DESTDIR="$pkgdir" install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-udev/PKGBUILD b/multilib/lib32-udev/PKGBUILD
new file mode 100644
index 000000000..32f92ba54
--- /dev/null
+++ b/multilib/lib32-udev/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id$
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=('lib32-udev')
+pkgver=166
+pkgrel=1
+arch=('x86_64')
+pkgdesc="The userspace dev tools (udev) (32-bit)"
+url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
+license=('GPL')
+options=(!makeflags !libtool)
+depends=('lib32-glibc' 'lib32-glib2' 'lib32-acl' 'lib32-libusb-compat' 'udev')
+makedepends=('gcc-multilib' 'coreutils' 'util-linux' 'pciutils' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection')
+source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-$pkgver.tar.bz2)
+md5sums=('4db27d73fdbe94f47fd89fdd105c2dfb')
+
+build() {
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/udev-$pkgver
+
+ ./configure --libdir=/usr/lib32
+ make
+}
+
+package() {
+
+ cd $srcdir/udev-$pkgver
+
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/usr/{etc,include,lib,libexec,sbin,share}
+ rm -rf ${pkgdir}/usr/lib32/girepository*
+}
diff --git a/multilib/lib32-util-linux/PKGBUILD b/multilib/lib32-util-linux/PKGBUILD
new file mode 100644
index 000000000..026d52a1b
--- /dev/null
+++ b/multilib/lib32-util-linux/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 41742 2011-03-08 19:17:58Z dreisner $
+# Maintainer: judd <jvinet@zeroflux.org>
+
+_pkgbasename=util-linux
+pkgname=lib32-$_pkgbasename
+pkgver=2.19
+pkgrel=1
+pkgdesc="Miscellaneous system utilities for Linux (32-bit)"
+url="http://userweb.kernel.org/~kzak/util-linux-ng/"
+arch=('x86_64')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('gcc-multilib')
+provides=('lib32-util-linux-ng')
+conflicts=('lib32-util-linux-ng')
+replaces=('lib32-util-linux-ng')
+license=('GPL2')
+options=('!libtool' '!emptydirs')
+source=(ftp://ftp.kernel.org/pub/linux/utils/${_pkgbasename}/v2.19/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('590ca71aad0b254e2631d84401f28255')
+
+shopt -s extglob
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ # hardware clock
+ sed -e 's%etc/adjtime%var/lib/hwclock/adjtime%' -i hwclock/hwclock.c
+ mkdir -p "${pkgdir}/var/lib/hwclock"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./autogen.sh
+ ./configure --without-ncurses --libdir=/usr/lib32
+
+ cd shlibs
+ for lib in *; do
+ make -C $lib
+ done
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="$pkgdir" install
+
+ # remove unnecessary files
+ cd "$pkgdir"
+ rm -rf !(usr)
+ cd usr
+ rm -rf !(lib32)
+}
diff --git a/multilib/lib32-v4l-utils/PKGBUILD b/multilib/lib32-v4l-utils/PKGBUILD
new file mode 100644
index 000000000..db5a9c594
--- /dev/null
+++ b/multilib/lib32-v4l-utils/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 88966 2010-08-26 18:32:27Z thomas $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+_pkgbasename=v4l-utils
+pkgname=lib32-$_pkgbasename
+pkgver=0.8.3
+pkgrel=1
+pkgdesc="Userspace tools and conversion library for Video 4 Linux (32-bit)"
+arch=('x86_64')
+url="http://freshmeat.net/projects/libv4l"
+provides=("lib32-libv4l=$pkgver")
+replaces=('lib32-libv4l')
+conflicts=('lib32-libv4l')
+license=('LGPL')
+makedepends=('gcc-multilib')
+depends=('lib32-gcc-libs' $_pkgbasename)
+source=(http://linuxtv.org/downloads/v4l-utils/${_pkgbasename}-${pkgver}.tar.bz2)
+sha256sums=('525ebed7ef6e0f6a4bb68fe10403a3725eb1ec31a4c557c68256079b00e283b5')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ sed -i 's|CFLAGS :=|CFLAGS ?=|' Make.rules
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ make PREFIX=/usr LIBDIR=/usr/lib32
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make install PREFIX=/usr LIBDIR=/usr/lib32 DESTDIR="${pkgdir}/"
+ rm -rf "${pkgdir}"/{usr/{include,share,bin,sbin},etc}
+}
diff --git a/multilib/lib32-xcb-util/PKGBUILD b/multilib/lib32-xcb-util/PKGBUILD
new file mode 100644
index 000000000..85ea8751c
--- /dev/null
+++ b/multilib/lib32-xcb-util/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26758 2010-09-15 23:05:03Z bluewind $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+_pkgbasename=xcb-util
+pkgname=lib32-xcb-util
+pkgver=0.3.6
+pkgrel=3
+pkgdesc="Utility libraries for XC Binding (32-bit)"
+arch=('x86_64')
+url="http://xcb.freedesktop.org"
+license=('custom')
+depends=('lib32-glibc' 'lib32-libxcb' $_pkgbasename)
+makedepends=('gperf' 'gcc-multilib')
+options=('!libtool')
+source=(http://xcb.freedesktop.org/dist/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('dd8968b8ee613cb027a8ef1fcbdc8fc9')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-zlib/PKGBUILD b/multilib/lib32-zlib/PKGBUILD
new file mode 100644
index 000000000..a72223ae3
--- /dev/null
+++ b/multilib/lib32-zlib/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 35298 2010-12-18 01:45:49Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+_pkgbasename=zlib
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.5
+pkgrel=6
+pkgdesc='Compression library implementing the deflate compression method found in gzip and PKZIP (32-bit)'
+arch=('x86_64')
+license=('custom')
+url="http://www.zlib.net/"
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!makeflags')
+source=("http://zlib.net/zlib-${pkgver}.tar.gz"
+ 'zlib-1.2.5-lfs-decls.patch')
+md5sums=('c735eab2d659a96e5a594c9e8541ad63'
+ '4cb279ea3beab621f3526bf7b7ab99e5')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/zlib-$pkgver
+ # see http://bugs.archlinux.org/task/19280
+ patch -p1 -i ${srcdir}/zlib-1.2.5-lfs-decls.patch
+ # work around gcc bug; see https://bugs.archlinux.org/task/20647
+ export CFLAGS="${CFLAGS/-O2/-O3} -fno-tree-vectorize -DUNALIGNED_OK"
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib32
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/zlib-$pkgver
+ make install DESTDIR=${pkgdir}
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-zlib/zlib-1.2.5-lfs-decls.patch b/multilib/lib32-zlib/zlib-1.2.5-lfs-decls.patch
new file mode 100644
index 000000000..36e26af03
--- /dev/null
+++ b/multilib/lib32-zlib/zlib-1.2.5-lfs-decls.patch
@@ -0,0 +1,13 @@
+Index: zlib-1.2.5/zlib.h
+===================================================================
+--- zlib-1.2.5.orig/zlib.h
++++ zlib-1.2.5/zlib.h
+@@ -1578,7 +1578,7 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF(
+ # define gzoffset gzoffset64
+ # define adler32_combine adler32_combine64
+ # define crc32_combine crc32_combine64
+-# ifdef _LARGEFILE64_SOURCE
++# ifndef _LARGEFILE64_SOURCE
+ ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
+ ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
+ ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
diff --git a/multilib/libtool-multilib/PKGBUILD b/multilib/libtool-multilib/PKGBUILD
new file mode 100644
index 000000000..87fcc28b0
--- /dev/null
+++ b/multilib/libtool-multilib/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 35242 2010-12-17 21:48:01Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+# NOTE: requires rebuilt with each new gcc version
+
+pkgbase=libtool-multilib
+pkgname=(libtool-multilib lib32-libtool)
+pkgver=2.4
+pkgrel=2
+pkgdesc="A generic library support script for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/libtool"
+license=('GPL')
+makedepends=(sh tar texinfo gcc-multilib)
+options=('!libtool')
+source=(ftp://ftp.gnu.org/pub/gnu/libtool/libtool-${pkgver}.tar.xz)
+md5sums=('4e6144439d95d7332dc50ace6dd24c55')
+
+build() {
+ cd "$srcdir"
+
+ rm -rf libtool-64 libtool-32
+ mv libtool-$pkgver libtool-64
+ cp -a libtool-64 libtool-32
+
+msg2 "Building libtool-64..."
+
+ cd "$srcdir/libtool-64"
+ ./configure --prefix=/usr
+ make
+ make check
+
+msg2 "Building libtool-32..."
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+
+ cd "$srcdir/libtool-32"
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+ make check
+}
+
+package_libtool-multilib() {
+ groups=('multilib-devel')
+ depends=(sh tar texinfo "lib32-libtool=$pkgver-$pkgrel")
+ provides=("libtool=$pkgver-$pkgrel")
+ conflicts=(libtool)
+ install=libtool.install
+
+ cd "$srcdir/libtool-64"
+ make DESTDIR="$pkgdir" install
+}
+
+package_lib32-libtool() {
+ pkgdesc="A generic library support script (32-bit)"
+ depends=(lib32-glibc)
+
+ cd "$srcdir/libtool-32"
+ make DESTDIR="$pkgdir" install
+ rm -r "$pkgdir"/usr/{bin,include,share}
+}
diff --git a/multilib/libtool-multilib/libtool.install b/multilib/libtool-multilib/libtool.install
new file mode 100644
index 000000000..424c8cb88
--- /dev/null
+++ b/multilib/libtool-multilib/libtool.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(libtool.info libtool.info-1 libtool.info-2)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/nspluginwrapper/PKGBUILD b/multilib/nspluginwrapper/PKGBUILD
new file mode 100644
index 000000000..250d70829
--- /dev/null
+++ b/multilib/nspluginwrapper/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 26767 2010-09-15 23:06:22Z bluewind $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=nspluginwrapper
+pkgver=1.3.0
+pkgrel=4
+pkgdesc="Cross-platform NPAPI compatible plugin viewer"
+arch=('x86_64')
+url="http://freshmeat.net/projects/nspluginwrapper/"
+license=('GPL')
+depends=('curl' 'lib32-libxt' 'lib32-gcc-libs' 'gtk2' 'lib32-gtk2')
+makedepends=('gcc-multilib')
+source=(ftp://ftp.archlinux.org/other/nspluginwrapper/$pkgname-$pkgver.tar.gz
+ npw-viewer.c.patch
+ nspluginwrapper-20090625-fix-npident-array-sending.patch
+ nspluginwrapper-native-windows.patch)
+sha256sums=('0af7e2ae4c6258d5c17addbcc4658b84c979860da843873f0d15d90ee9a8259d'
+ '4b216cca327ae76e6e2ab6dc6bbaf3efe1123c63a09b0e7e45c964531fcbdeb0'
+ '8bb55b845017b60912c62c4abadc50a3f0397ddf470599b8453b97d9e69f8cd5'
+ '3796b66f53448f4668e70aec97a3d74db2b2fcd308b36f87373405547cae38b1')
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Fix build
+ patch -p1 -i "$srcdir/npw-viewer.c.patch"
+ # See http://web.archiveorange.com/archive/v/tptsHOJYbGKIfNFz9xHz
+ patch -p0 -i "$srcdir/nspluginwrapper-20090625-fix-npident-array-sending.patch"
+ # Patch taken from the openSuSE src.rpm
+ patch -p0 -i "$srcdir/nspluginwrapper-native-windows.patch"
+
+ ./configure --with-lib32=lib32 --with-lib64=lib
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make -j1 DESTDIR="$pkgdir/" install
+ mkdir -p "$pkgdir"/usr/lib/mozilla/plugins/
+ ln -s /usr/lib/nspluginwrapper/x86_64/linux/npwrapper.so "$pkgdir"/usr/lib/mozilla/plugins/
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/nspluginwrapper/npw-viewer.c.patch b/multilib/nspluginwrapper/npw-viewer.c.patch
new file mode 100644
index 000000000..a213003fd
--- /dev/null
+++ b/multilib/nspluginwrapper/npw-viewer.c.patch
@@ -0,0 +1,13 @@
+diff -Nur nspluginwrapper-1.3.0.orig//src/npw-viewer.c nspluginwrapper-1.3.0//src/npw-viewer.c
+--- nspluginwrapper-1.3.0.orig//src/npw-viewer.c 2009-01-02 15:22:29.000000000 +0100
++++ nspluginwrapper-1.3.0//src/npw-viewer.c 2010-08-26 18:46:50.574976221 +0200
+@@ -4187,7 +4187,8 @@
+ #define high_offset offsetof(struct _XtAppStruct, __maybe__input_max)
+ #define n_offsets_max (high_offset - low_offset)/2
+ int i, ofs, n_offsets = 0;
+- int offsets[n_offsets_max] = { 0, };
++ int offsets[n_offsets_max];
++ offsets[0] = 0;
+
+ #define n_inputs_max 4 /* number of refinements/input sources */
+ int fd, id, n_inputs = 0;
diff --git a/multilib/nspluginwrapper/nspluginwrapper-20090625-fix-npident-array-sending.patch b/multilib/nspluginwrapper/nspluginwrapper-20090625-fix-npident-array-sending.patch
new file mode 100644
index 000000000..568a4ea1f
--- /dev/null
+++ b/multilib/nspluginwrapper/nspluginwrapper-20090625-fix-npident-array-sending.patch
@@ -0,0 +1,178 @@
+Index: src/npw-viewer.c
+===================================================================
+--- src/npw-viewer.c (revision 942)
++++ src/npw-viewer.c (working copy)
+@@ -2059,7 +2059,7 @@
+ RPC_METHOD_NPN_INVOKE,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, methodName,
++ RPC_TYPE_NP_IDENTIFIER, &methodName,
+ RPC_TYPE_ARRAY, RPC_TYPE_NP_VARIANT, argCount, args,
+ RPC_TYPE_INVALID);
+
+@@ -2249,7 +2249,7 @@
+ RPC_METHOD_NPN_GET_PROPERTY,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, propertyName,
++ RPC_TYPE_NP_IDENTIFIER, &propertyName,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2311,7 +2311,7 @@
+ RPC_METHOD_NPN_SET_PROPERTY,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, propertyName,
++ RPC_TYPE_NP_IDENTIFIER, &propertyName,
+ RPC_TYPE_NP_VARIANT, value,
+ RPC_TYPE_INVALID);
+
+@@ -2370,7 +2370,7 @@
+ RPC_METHOD_NPN_REMOVE_PROPERTY,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, propertyName,
++ RPC_TYPE_NP_IDENTIFIER, &propertyName,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2427,7 +2427,7 @@
+ RPC_METHOD_NPN_HAS_PROPERTY,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, propertyName,
++ RPC_TYPE_NP_IDENTIFIER, &propertyName,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2484,7 +2484,7 @@
+ RPC_METHOD_NPN_HAS_METHOD,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, methodName,
++ RPC_TYPE_NP_IDENTIFIER, &methodName,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2780,7 +2780,7 @@
+
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPN_IDENTIFIER_IS_STRING,
+- RPC_TYPE_NP_IDENTIFIER, identifier,
++ RPC_TYPE_NP_IDENTIFIER, &identifier,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2838,7 +2838,7 @@
+
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPN_UTF8_FROM_IDENTIFIER,
+- RPC_TYPE_NP_IDENTIFIER, identifier,
++ RPC_TYPE_NP_IDENTIFIER, &identifier,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2902,7 +2902,7 @@
+
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPN_INT_FROM_IDENTIFIER,
+- RPC_TYPE_NP_IDENTIFIER, identifier,
++ RPC_TYPE_NP_IDENTIFIER, &identifier,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+Index: src/npw-wrapper.c
+===================================================================
+--- src/npw-wrapper.c (revision 942)
++++ src/npw-wrapper.c (working copy)
+@@ -1528,7 +1528,7 @@
+ free(name);
+
+ return rpc_method_send_reply(connection,
+- RPC_TYPE_NP_IDENTIFIER, ident,
++ RPC_TYPE_NP_IDENTIFIER, &ident,
+ RPC_TYPE_INVALID);
+ }
+
+@@ -1601,7 +1601,7 @@
+ NPIdentifier ident = g_NPN_GetIntIdentifier(intid);
+
+ return rpc_method_send_reply(connection,
+- RPC_TYPE_NP_IDENTIFIER, ident,
++ RPC_TYPE_NP_IDENTIFIER, &ident,
+ RPC_TYPE_INVALID);
+ }
+
+Index: src/npruntime.c
+===================================================================
+--- src/npruntime.c (revision 942)
++++ src/npruntime.c (working copy)
+@@ -221,7 +221,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_HAS_METHOD,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -327,7 +327,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_INVOKE,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_ARRAY, RPC_TYPE_NP_VARIANT, argCount, args,
+ RPC_TYPE_INVALID);
+
+@@ -509,7 +509,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_HAS_PROPERTY,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -599,7 +599,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_GET_PROPERTY,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -684,7 +684,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_SET_PROPERTY,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_NP_VARIANT, value,
+ RPC_TYPE_INVALID);
+
+@@ -763,7 +763,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_REMOVE_PROPERTY,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+Index: src/npw-rpc.c
+===================================================================
+--- src/npw-rpc.c (revision 942)
++++ src/npw-rpc.c (working copy)
+@@ -1252,7 +1252,7 @@
+ // the browser side
+ static int do_send_NPIdentifier(rpc_message_t *message, void *p_value)
+ {
+- NPIdentifier ident = (NPIdentifier)p_value;
++ NPIdentifier ident = *(NPIdentifier *)p_value;
+ int id = 0;
+ if (ident) {
+ #ifdef BUILD_WRAPPER
diff --git a/multilib/nspluginwrapper/nspluginwrapper-native-windows.patch b/multilib/nspluginwrapper/nspluginwrapper-native-windows.patch
new file mode 100644
index 000000000..0f6eba68e
--- /dev/null
+++ b/multilib/nspluginwrapper/nspluginwrapper-native-windows.patch
@@ -0,0 +1,14 @@
+--- src/npw-viewer.sh
++++ src/npw-viewer.sh
+@@ -5,6 +5,11 @@
+ OS="`uname -s | tr '[A-Z]' '[a-z]'`"
+ ARCH="`uname -m`"
+
++# Adobe Flash can be confised by by a recent GTK+ that may use custom
++# window structure instead of native X Window. Revert to the old dumb
++# behavior and use native X window for all objects. (bnc#537788)
++export GDK_NATIVE_WINDOWS=1
++
+ if test -z "$TARGET_OS"; then
+ echo "*** NSPlugin Viewer *** error, TARGET_OS not initialized"
+ exit 1
diff --git a/multilib/q4wine/PKGBUILD b/multilib/q4wine/PKGBUILD
new file mode 100644
index 000000000..d45663210
--- /dev/null
+++ b/multilib/q4wine/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 36222 2010-12-28 10:47:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Chris Giles <Chris.G.27 (at) Gmail.com>
+
+pkgname=q4wine
+pkgver=0.120_r1
+pkgrel=1
+pkgdesc="A Qt4 GUI for Wine"
+arch=("i686" "x86_64")
+url="http://sourceforge.net/projects/${pkgname}/"
+license=("GPL3")
+depends=("qt" "wine" "sqlite3" "which" "icoutils")
+makedepends=("cmake")
+optdepends=("winetricks")
+options=('!emptydirs' 'force')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver/_/-}.tar.bz2)
+md5sums=('1ed212026d1f082ac57f12a61694f7bc')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver/_/-}
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DWITH_WINETRIKS=ON .
+ make
+ make DESTDIR=${pkgdir} install
+ install -D ${startdir}/${pkgname}.desktop ${pkgdir}/usr/share/applications/${pkgname}.desktop
+}
diff --git a/multilib/q4wine/q4wine.desktop b/multilib/q4wine/q4wine.desktop
new file mode 100644
index 000000000..2b1415848
--- /dev/null
+++ b/multilib/q4wine/q4wine.desktop
@@ -0,0 +1,18 @@
+[Desktop Entry]
+Name=Q4Wine
+GenericName=A Qt4 GUI for Wine
+Comment=A Qt4 GUI for Wine
+#Version=0.1
+Type=Application
+Categories=KDE;Qt;Settings
+Terminal=false
+Encoding=UTF-8
+Icon=wine
+Exec=q4wine
+#ServiceTypes=inode/directory
+#Actions=Create;
+#X-KDE-Submenu=
+#X-KDE-Priority=TopLevel
+#X-KDE-Icon=tgz
+X-KDE-StartupNotify=true
+#X-DCOP-ServiceType=Unique
diff --git a/multilib/wine/PKGBUILD b/multilib/wine/PKGBUILD
new file mode 100644
index 000000000..dcede47fb
--- /dev/null
+++ b/multilib/wine/PKGBUILD
@@ -0,0 +1,142 @@
+# $Id: PKGBUILD 44087 2011-04-02 07:03:36Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Eduardo Romero <eduardo@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=wine
+pkgver=1.3.17
+pkgrel=1
+
+_pkgbasever=${pkgver/rc/-rc}
+
+source=(http://ibiblio.org/pub/linux/system/emulators/$pkgname/$pkgname-$_pkgbasever.tar.bz2)
+md5sums=('f8d9d1d8cdab27ad311fa3743a1a0bc5')
+
+pkgdesc="A compatibility layer for running Windows programs"
+url="http://www.winehq.com"
+arch=(i686 x86_64)
+license=(LGPL)
+install=wine.install
+
+depends=(
+ fontconfig lib32-fontconfig
+ mesa lib32-mesa
+ libxcursor lib32-libxcursor
+ libxrandr lib32-libxrandr
+ libxdamage lib32-libxdamage
+ libxxf86dga lib32-libxxf86dga
+ alsa-lib lib32-alsa-lib
+ desktop-file-utils
+)
+
+makedepends=(autoconf ncurses bison perl fontforge flex prelink
+ 'gcc>=4.5.0-2' 'gcc-multilib>=4.5.0-2'
+ giflib lib32-giflib
+ libxpm lib32-libxpm
+ libpng lib32-libpng
+ libxinerama lib32-libxinerama
+ libxcomposite lib32-libxcomposite
+ libxmu lib32-libxmu
+ libxxf86vm lib32-libxxf86vm
+ libxml2 lib32-libxml2
+ libxslt lib32-libxslt
+ libldap lib32-libldap
+ lcms lib32-lcms
+ mpg123 lib32-mpg123
+ openal lib32-openal
+ jack lib32-jack
+ libcups lib32-libcups
+ gnutls lib32-gnutls
+ v4l-utils lib32-v4l-utils
+)
+
+optdepends=(
+ giflib lib32-giflib
+ libpng lib32-libpng
+ libldap lib32-libldap
+ lcms lib32-lcms
+ libxml2 lib32-libxml2
+ mpg123 lib32-mpg123
+ openal lib32-openal
+ jack lib32-jack
+ libcups lib32-libcups
+ gnutls lib32-gnutls
+ v4l-utils lib32-v4l-utils
+)
+
+if [[ $CARCH == i686 ]]; then
+ # Strip lib32 etc. on i686
+ depends=(${depends[@]/*32-*/})
+ makedepends=(${makedepends[@]/*32-*/})
+ makedepends=(${makedepends[@]/*-multilib*/})
+ optdepends=(${optdepends[@]/*32-*/})
+else
+ provides=("bin32-wine=$pkgver" "wine-wow64=$pkgver")
+ conflicts=('bin32-wine' 'wine-wow64')
+ replaces=('bin32-wine')
+fi
+
+build() {
+ cd "$srcdir"
+
+ # Allow ccache to work
+ mv $pkgname-$_pkgbasever $pkgname
+
+ # Get rid of old build dirs
+ rm -rf $pkgname-{32,64}-build
+ mkdir $pkgname-32-build
+
+ if [[ $CARCH == x86_64 ]]; then
+ msg2 "Building Wine-64..."
+
+ mkdir $pkgname-64-build
+ cd "$srcdir/$pkgname-64-build"
+ ../$pkgname/configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib \
+ --with-x \
+ --enable-win64
+
+ make
+
+ _wine32opts=(
+ --libdir=/usr/lib32
+ --with-wine64="$srcdir/$pkgname-64-build"
+ )
+
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+ fi
+
+ msg2 "Building Wine-32..."
+ cd "$srcdir/$pkgname-32-build"
+ ../$pkgname/configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-x \
+ "${_wine32opts[@]}"
+
+ make
+}
+
+package() {
+ msg2 "Packaging Wine-32..."
+ cd "$srcdir/$pkgname-32-build"
+
+ if [[ $CARCH == i686 ]]; then
+ make prefix="$pkgdir/usr" install
+ else
+ make prefix="$pkgdir/usr" \
+ libdir="$pkgdir/usr/lib32" \
+ dlldir="$pkgdir/usr/lib32/wine" install
+
+ msg2 "Packaging Wine-64..."
+ cd "$srcdir/$pkgname-64-build"
+ make prefix="$pkgdir/usr" \
+ libdir="$pkgdir/usr/lib" \
+ dlldir="$pkgdir/usr/lib/wine" install
+ fi
+}
+
+# vim:set ts=8 sts=2 sw=2 et:
diff --git a/multilib/wine/wine.install b/multilib/wine/wine.install
new file mode 100644
index 000000000..f71262186
--- /dev/null
+++ b/multilib/wine/wine.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ echo "This wine package is wow64 enabled. This means it can run 32bit/64bit Windows apps on x86_64."
+ echo "If you are on x86_64, the default WINEARCH will be win64."
+ echo "This will cause a lot of Windows applications to malfunction even if they usually work in wine."
+ echo "Please create your ~/.wine with 'WINEARCH=win32 winecfg' if you are unsure and on x86_64."
+ echo "See the Arch wiki on wine for more information."
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/multilib/wine_gecko/PKGBUILD b/multilib/wine_gecko/PKGBUILD
new file mode 100644
index 000000000..30b412492
--- /dev/null
+++ b/multilib/wine_gecko/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 42670 2011-03-19 08:38:12Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Nicky726 (Nicky726 <at> gmail <dot> com)
+# Contributor: Allan McRae (allan <at> archlinux <dot> org)
+# Contributor: Alexander 'bas' Brovikov (bas <at> it-core <dot> org)
+
+pkgname=wine_gecko
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Wine's built-in replacement for Microsoft's Internet Explorer"
+arch=(i686 x86_64)
+url="http://wiki.winehq.org/Gecko"
+license=(MPL)
+depends=('wine>=1.3.16')
+source=(http://downloads.sourceforge.net/project/wine/Wine%20Gecko/$pkgver/$pkgname-$pkgver-x86{,_64}.msi)
+md5sums=('f2ed548494c86c511892b1c02491c8c4'
+ '26489d8d1dfa34b5783b3e567edcaa9f')
+
+if [[ $CARCH == i686 ]]; then
+ # Strip x86_64 msi
+ source=(${source[0]})
+ md5sums=(${md5sums[0]})
+fi
+
+package() {
+ cd "$srcdir"
+ _geckodir="$pkgdir/usr/share/wine/gecko"
+ install -Dm644 $pkgname-$pkgver-x86.msi "$_geckodir/$pkgname-$pkgver-x86.msi"
+ if [[ $CARCH == x86_64 ]]; then
+ install -m644 $pkgname-$pkgver-x86_64.msi "$_geckodir/"
+ fi
+}
diff --git a/multilib/zsnes/PKGBUILD b/multilib/zsnes/PKGBUILD
new file mode 100644
index 000000000..a15d029e4
--- /dev/null
+++ b/multilib/zsnes/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 28220 2010-10-03 23:52:11Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Frank Tetzel <frank.tetzel@mailbox.tu-dresden.de>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=zsnes
+pkgver=1.51
+pkgrel=7
+pkgdesc="Super Nintendo emulator"
+url="http://www.zsnes.com/"
+arch=('i686' 'x86_64')
+license=('GPL')
+
+if [ $CARCH == "x86_64" ]; then
+ depends=('gcc-libs-multilib' 'lib32-sdl' 'lib32-libpng>=1.4.0' 'lib32-libgl' 'lib32-ncurses' 'lib32-mesa')
+ makedepends=('nasm' 'gcc-multilib')
+else
+ depends=('gcc-libs' 'sdl' 'libpng>=1.4.0' 'libgl' 'ncurses' 'mesa')
+ makedepends=('nasm' 'gcc')
+fi
+
+source=(http://downloads.sourceforge.net/${pkgname}/zsnes151src.tar.bz2
+ zsnes.patch
+ zsnes.desktop
+ zsnes_icon.png)
+md5sums=('7071186bf80632ae88a153239498d8c9'
+ '3af40c7d674ebfce1bb1ab6b7e9a8fe4'
+ 'b100b2aa342c551167d7c5dcdcde9dd4'
+ 'b5260c02adfc3b7ff725041214b00bfd')
+
+build() {
+ cd ${srcdir}/${pkgname}_1_51/
+ patch -p1 -i ../zsnes.patch || return 1
+
+ cd ${srcdir}/${pkgname}_1_51/src
+if [ $CARCH == "x86_64" ]; then
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+fi
+ ./autogen.sh --prefix=/usr \
+ x_libraries=/usr/lib \
+ force_arch=i686 \
+ --enable-release
+
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+ # adding --mandir= to autoconf line fails
+ install -dm755 ${pkgdir}/usr/share
+
+ install -Dm644 ${srcdir}/zsnes.desktop ${pkgdir}/usr/share/applications/zsnes.desktop
+ install -Dm644 ${srcdir}/zsnes_icon.png ${pkgdir}/usr/share/pixmaps/zsnes_icon.png
+
+ mv ${pkgdir}/usr/man ${pkgdir}/usr/share
+}
diff --git a/multilib/zsnes/zsnes.desktop b/multilib/zsnes/zsnes.desktop
new file mode 100644
index 000000000..db13ada4c
--- /dev/null
+++ b/multilib/zsnes/zsnes.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Zsnes
+Comment=Super Nintendo emulator
+Exec=/usr/bin/zsnes
+Icon=/usr/share/pixmaps/zsnes_icon.png
+Terminal=false
+Type=Application
+Categories=Application;Game
+StartupNotify=false
diff --git a/multilib/zsnes/zsnes.patch b/multilib/zsnes/zsnes.patch
new file mode 100644
index 000000000..d0d12f2fb
--- /dev/null
+++ b/multilib/zsnes/zsnes.patch
@@ -0,0 +1,68 @@
+diff -aur zsnes_1_51//src/Makefile.in zsnes_1_51_new//src/Makefile.in
+--- zsnes_1_51//src/Makefile.in 2007-01-24 21:54:12.000000000 +0100
++++ zsnes_1_51_new//src/Makefile.in 2010-09-06 00:03:04.715810431 +0200
+@@ -95,7 +95,7 @@
+ %.o: %.cpp
+ @CXX@ @CXXFLAGS@ -o $@ -c $<
+ %.o %.h: %.psr $(PSR)
+- ./$(PSR) @PSRFLAGS@ -gcc @CC@ -compile -flags "@CFLAGS@ -O1" -cheader $*.h -fname $* $*.o $<
++ ./$(PSR) @PSRFLAGS@ -gcc "@CC@" -compile -flags "@CFLAGS@ -O1" -cheader $*.h -fname $* $*.o $<
+
+ default: main
+ all: main tools
+@@ -133,7 +133,7 @@
+
+ include makefile.dep
+ makefile.dep: $(TOOL_D)/depbuild Makefile
+- $(TOOL_D)/depbuild @CC@ "@CFLAGS@" @NASMPATH@ "@NFLAGS@" $(Z_OBJS) > makefile.dep
++ $(TOOL_D)/depbuild "@CC@" "@CFLAGS@" "@NASMPATH@" "@NFLAGS@" $(Z_OBJS) > makefile.dep
+
+ Makefile: Makefile.in config.status
+ ./config.status
+diff -aur zsnes_1_51//src/parsegen.cpp zsnes_1_51_new//src/parsegen.cpp
+--- zsnes_1_51//src/parsegen.cpp 2007-10-31 05:30:26.000000000 +0100
++++ zsnes_1_51_new//src/parsegen.cpp 2010-09-05 15:48:36.903333444 +0200
+@@ -19,6 +19,9 @@
+ Config file handler creator by Nach (C) 2005-2007
+ */
+
++#include <cstring>
++#include <cstdlib>
++
+ #if !defined(__GNUC__) && !defined(_MSC_VER)
+ #error You are using an unsupported compiler
+ #endif
+@@ -1822,7 +1825,7 @@
+ }
+ }
+
+-int main(size_t argc, const char *const *const argv)
++int main(int argc, const char *const *const argv)
+ {
+ const char *cheader_file = 0;
+ bool compile = false;
+diff -aur zsnes_1_51//src/tools/depbuild.cpp zsnes_1_51_new//src/tools/depbuild.cpp
+--- zsnes_1_51//src/tools/depbuild.cpp 2006-12-27 12:04:05.000000000 +0100
++++ zsnes_1_51_new//src/tools/depbuild.cpp 2010-09-05 15:48:36.903333444 +0200
+@@ -183,7 +183,7 @@
+ }
+ }
+
+-int main(size_t argc, const char *const *const argv)
++int main(int argc, const char *const *const argv)
+ {
+ if (argc < 5)
+ {
+diff -aur zsnes_1_51//src/tools/strutil.h zsnes_1_51_new//src/tools/strutil.h
+--- zsnes_1_51//src/tools/strutil.h 2006-12-27 12:04:05.000000000 +0100
++++ zsnes_1_51_new//src/tools/strutil.h 2010-09-05 15:48:36.903333444 +0200
+@@ -15,6 +15,9 @@
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
++#include <cstring>
++#include <cstdlib>
++
+ /*
+ This is part of a toolkit used to assist in ZSNES development
+ */
diff --git a/multilib/zsnes/zsnes_icon.png b/multilib/zsnes/zsnes_icon.png
new file mode 100644
index 000000000..31608ba06
--- /dev/null
+++ b/multilib/zsnes/zsnes_icon.png
Binary files differ