summaryrefslogtreecommitdiff
path: root/libre-multilib
diff options
context:
space:
mode:
Diffstat (limited to 'libre-multilib')
-rw-r--r--libre-multilib/lib32-clang/PKGBUILD98
-rw-r--r--libre-multilib/lib32-libclc-svn/PKGBUILD41
-rw-r--r--libre-multilib/lib32-libvdpau/PKGBUILD36
-rw-r--r--libre-multilib/lib32-mesa-demos-libre/PKGBUILD46
-rw-r--r--libre-multilib/lib32-mesa-demos-libre/mesa-demos-libre.patch114
-rw-r--r--libre-multilib/lib32-mesa-libcl/PKGBUILD60
-rw-r--r--libre-multilib/lib32-sdl-libre/PKGBUILD57
-rw-r--r--libre-multilib/lib32-sdl-libre/fix_joystick_misc_axes.diff13
-rw-r--r--libre-multilib/lib32-sdl-libre/libre.patch578
-rw-r--r--libre-multilib/lib32-sdl-libre/libsdl-1.2.15-resizing.patch63
-rw-r--r--libre-multilib/lib32-sdl-libre/sdl-1.2.14-disable-mmx.patch13
-rw-r--r--libre-multilib/lib32-sdl-libre/sdl-1.2.14-fix-mouse-clicking.patch23
-rw-r--r--libre-multilib/pcsx2-libre/PKGBUILD63
-rw-r--r--libre-multilib/wine-libre/30-win32-aliases.conf20
-rw-r--r--libre-multilib/wine-libre/PKGBUILD182
-rw-r--r--libre-multilib/wine-libre/wine.install12
16 files changed, 1419 insertions, 0 deletions
diff --git a/libre-multilib/lib32-clang/PKGBUILD b/libre-multilib/lib32-clang/PKGBUILD
new file mode 100644
index 000000000..aaa9bd91e
--- /dev/null
+++ b/libre-multilib/lib32-clang/PKGBUILD
@@ -0,0 +1,98 @@
+# Maintainer: PitBall
+
+pkgname=lib32-clang
+pkgver=3.4
+pkgrel=2
+arch=('x86_64')
+url="http://llvm.org/"
+license=('custom:University of Illinois/NCSA Open Source License')
+makedepends=('lib32-libffi' 'lib32-zlib' 'python2' 'gcc-multilib' 'clang' 'lib32-llvm' 'bc')
+source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.gz
+ http://llvm.org/releases/$pkgver/clang-$pkgver.src.tar.gz
+ http://llvm.org/releases/$pkgver/compiler-rt-$pkgver.src.tar.gz)
+sha256sums=('25a5612d692c48481b9b397e2b55f4870e447966d66c96d655241702d44a2628'
+ '22a9780db3b85a7f2eb9ea1f7f6e00da0249e3d12851e8dea0f62f1783242b1b'
+ 'f37c89b1383ce462d47537a0245ac798600887a9be9f63073e16b79ed536ab5c')
+options=('staticlibs')
+
+prepare() {
+ cd "$srcdir/llvm-$pkgver"
+
+ rm -rf projects/compiler-rt
+ mv "$srcdir/clang-$pkgver" tools/clang
+
+ rm -rf projects/compiler-rt
+ mv "$srcdir/compiler-rt-$pkgver" projects/compiler-rt
+
+ # Fix installation directories, ./configure doesn't seem to set them right
+ sed -i -e 's:\$(PROJ_prefix)/lib:$(PROJ_prefix)/lib32:' \
+ -e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \
+ Makefile.config.in
+ sed -i '/ActiveLibDir = ActivePrefix/s:lib:lib32:' \
+ tools/llvm-config/llvm-config.cpp
+ sed -i 's:LLVM_LIBDIR="${prefix}/lib":LLVM_LIBDIR="${prefix}/lib32":' \
+ autoconf/configure.ac \
+ configure
+
+ # Fix insecure rpath (http://bugs.archlinux.org/task/14017)
+ sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' Makefile.rules
+
+ # Use system lib32-llvm
+ install -d $srcdir/llvm-$pkgver/Release/lib
+ for file in ` pacman -Ql lib32-llvm |grep /lib32/ |awk '{print $2}' |sed '/\/$/d'`; do
+ ln -sf $file $srcdir/llvm-$pkgver/Release/lib/
+ done
+}
+
+build() {
+ cd "$srcdir/llvm-$pkgver"
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export CLANG="clang -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+ export LLVM_CONFIG=/usr/bin/llvm-config32
+
+ # Include location of libffi headers in CPPFLAGS
+ CPPFLAGS+=" $(pkg-config --cflags libffi)"
+
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib32 \
+ --sysconfdir=/etc \
+ --enable-shared \
+ --enable-libffi \
+ --enable-targets=x86 \
+ --enable-experimental-targets=R600 \
+ --enable-bindings=none \
+ --disable-expensive-checks \
+ --disable-debug-runtime \
+ --disable-assertions \
+ --with-binutils-include=/usr/include \
+ --with-python=/usr/bin/python2 \
+ --host=i686-pc-linux-gnu \
+ --target=i686-pc-linux-gnu \
+ --enable-optimized
+
+# --disable-clang-static-analyzer \
+
+# make
+ make -C projects/compiler-rt clang_linux
+ make -C tools/clang/utils/TableGen
+ make -C tools/clang/lib
+}
+
+package_lib32-clang() {
+ pkgdesc="C language family frontend for LLVM (32-bit)"
+ url="http://clang.llvm.org/"
+ depends=('clang' 'lib32-llvm' 'gcc-multilib')
+
+ install -d $pkgdir/usr/lib32/clang/$pkgver
+ ln -s lib32 $pkgdir/usr/lib
+
+ cd "$srcdir/llvm-$pkgver/tools/clang"
+ make -C lib DESTDIR="$pkgdir" install
+ # Fix permissions of static libs
+ chmod -x "$pkgdir"/usr/lib32/*.a
+ mv $pkgdir/usr/lib32/clang{,/$pkgver}/include
+ rm -rf $pkgdir/usr/lib
+}
diff --git a/libre-multilib/lib32-libclc-svn/PKGBUILD b/libre-multilib/lib32-libclc-svn/PKGBUILD
new file mode 100644
index 000000000..c1c7e021c
--- /dev/null
+++ b/libre-multilib/lib32-libclc-svn/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Márcio Silva <coadde@lavabit.com>
+
+_pkgname=libclc
+pkgname=lib32-$_pkgname-svn
+pkgver=$(LC_ALL=C date -u +%Y%m%d)
+pkgrel=2
+arch=x86_64
+pkgdesc='Library requirements of the OpenCL C programming language (32-bit)'
+url=http://libclc.llvm.org/
+license=MIT
+depends=(lib32-llvm-libs libclc-svn)
+makedepends=(clang lib32-llvm python2 svn)
+provides=(lib32-$_pkgname)
+conflicts=lib32-$_pkgname
+source=$_pkgname::svn+http://llvm.org/svn/llvm-project/libclc/trunk
+sha512sums=SKIP
+
+prepare() {
+ sed -i 's|/usr/bin/python|/usr/bin/python2|g;
+ ' $srcdir/$_pkgname/{configure,build/ninja_syntax}.py
+}
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+
+ cd $srcdir/$_pkgname
+ ./configure.py --prefix=/usr\
+ --libexecdir=/usr/lib32/clc\
+ --pkgconfigdir=/usr/lib32/pkgconfig\
+ --with-llvm-config=/usr/bin/llvm-config32
+ make
+}
+
+package() {
+ cd $srcdir/$_pkgname
+ make DESTDIR=$pkgdir install
+ install -vDm644 LICENSE.TXT $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ msg 'remove useless include dir'
+ rm -vrf $pkgdir/usr/include
+}
diff --git a/libre-multilib/lib32-libvdpau/PKGBUILD b/libre-multilib/lib32-libvdpau/PKGBUILD
new file mode 100644
index 000000000..0e776abcb
--- /dev/null
+++ b/libre-multilib/lib32-libvdpau/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Lara Maia <lara@craft.net.br>
+# Contributor: josephgbr <rafael.f.f1@gmail.com>
+# Contributor: TryA <tryagainprod {at} gmail.com>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+
+_pkgbase=libvdpau
+pkgname=lib32-libvdpau
+pkgver=0.7
+pkgrel=1
+pkgdesc="Nvidia VDPAU library (32-bit)"
+arch=('x86_64')
+url=http://cgit.freedesktop.org/~aplattner/libvdpau
+license=('custom')
+depends=('lib32-gcc-libs' 'lib32-libxext' "${_pkgbase}") #libx11
+makedepends=('gcc-multilib' 'dri2proto' )
+options=('!libtool')
+source=(http://people.freedesktop.org/~aplattner/vdpau/${_pkgbase}-${pkgver}.tar.gz)
+sha256sums=('24dc08467ce8c59d6cfbf0d34d2dd1f86b4ff62e90777e0a8f513c5c9de9bce0')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${_pkgbase}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32 --sysconfdir=/etc
+ make
+}
+
+package() {
+ make -C ${_pkgbase}-${pkgver} DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/{etc,usr/include}
+
+ install -dm755 "$pkgdir"/usr/share/licenses
+ ln -s $_pkgbase "$pkgdir"/usr/share/licenses/$pkgname
+}
diff --git a/libre-multilib/lib32-mesa-demos-libre/PKGBUILD b/libre-multilib/lib32-mesa-demos-libre/PKGBUILD
new file mode 100644
index 000000000..83557c0a9
--- /dev/null
+++ b/libre-multilib/lib32-mesa-demos-libre/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 94584 2013-07-27 15:01:38Z lcarlier $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+
+_pkgbasename=mesa-demos-libre
+pkgname=lib32-$_pkgbasename
+pkgver=8.1.0
+pkgrel=3
+arch=(x86_64)
+pkgdesc="Mesa demos and tools (32-bit), without nonfree demos"
+url="http://mesa3d.sourceforge.net"
+license=('custom')
+provides=("lib32-mesa-demos=$pkgver")
+replaces=('lib32-mesa-demos')
+conflicts=('lib32-mesa-demos')
+makedepends=(gcc-multilib 'lib32-mesa' 'lib32-glew')
+source=(https://repo.parabolagnulinux.org/other/mesa-demos-libre/mesa-demos-libre-${pkgver}.tar.bz2)
+md5sums=('18225619a97e6900afd2b48a89dcbd4e')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/mesa-demos-${pkgver}"
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ depends=('lib32-glew' mesa-demos-libre)
+
+ cd "${srcdir}/mesa-demos-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ for i in "$pkgdir/usr/bin/"*; do
+ mv "$i" "$i"32
+ done
+
+ rm -r "$pkgdir/usr/share/mesa-demos"
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s mesa-demos "$pkgdir/usr/share/licenses/lib32-mesa-demos"
+}
diff --git a/libre-multilib/lib32-mesa-demos-libre/mesa-demos-libre.patch b/libre-multilib/lib32-mesa-demos-libre/mesa-demos-libre.patch
new file mode 100644
index 000000000..d630f373c
--- /dev/null
+++ b/libre-multilib/lib32-mesa-demos-libre/mesa-demos-libre.patch
@@ -0,0 +1,114 @@
+diff -Nur mesa-demos-8.1.0.orig/src/demos/Makefile.am mesa-demos-8.1.0/src/demos/Makefile.am
+--- mesa-demos-8.1.0.orig/src/demos/Makefile.am 2012-12-15 05:17:06.000000000 -0200
++++ mesa-demos-8.1.0/src/demos/Makefile.am 2013-02-26 17:22:04.845832793 -0200
+@@ -65,7 +65,6 @@
+ multiarb \
+ paltex \
+ pixeltest \
+- pointblast \
+ projtex \
+ ray \
+ readpix \
+@@ -74,7 +73,6 @@
+ shadowtex \
+ singlebuffer \
+ spectex \
+- spriteblast \
+ stex3d \
+ teapot \
+ terrain \
+diff -Nur mesa-demos-8.1.0.orig/src/demos/Makefile.in mesa-demos-8.1.0/src/demos/Makefile.in
+--- mesa-demos-8.1.0.orig/src/demos/Makefile.in 2013-02-24 09:12:04.000000000 -0200
++++ mesa-demos-8.1.0/src/demos/Makefile.in 2013-02-26 17:48:36.711995049 -0200
+@@ -90,11 +90,11 @@
+ @HAVE_GLUT_TRUE@ ipers$(EXEEXT) isosurf$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ lodbias$(EXEEXT) morph3d$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ multiarb$(EXEEXT) paltex$(EXEEXT) \
+-@HAVE_GLUT_TRUE@ pixeltest$(EXEEXT) pointblast$(EXEEXT) \
++@HAVE_GLUT_TRUE@ pixeltest$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ projtex$(EXEEXT) ray$(EXEEXT) readpix$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ reflect$(EXEEXT) renormal$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ shadowtex$(EXEEXT) singlebuffer$(EXEEXT) \
+-@HAVE_GLUT_TRUE@ spectex$(EXEEXT) spriteblast$(EXEEXT) \
++@HAVE_GLUT_TRUE@ spectex$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ stex3d$(EXEEXT) teapot$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ terrain$(EXEEXT) tessdemo$(EXEEXT) \
+ @HAVE_GLUT_TRUE@ texcyl$(EXEEXT) texenv$(EXEEXT) \
+@@ -219,9 +219,6 @@
+ pixeltest_SOURCES = pixeltest.c
+ pixeltest_OBJECTS = pixeltest.$(OBJEXT)
+ pixeltest_LDADD = $(LDADD)
+-pointblast_SOURCES = pointblast.c
+-pointblast_OBJECTS = pointblast.$(OBJEXT)
+-pointblast_LDADD = $(LDADD)
+ projtex_SOURCES = projtex.c
+ projtex_OBJECTS = projtex.$(OBJEXT)
+ projtex_DEPENDENCIES = ../util/libutil.la
+@@ -246,9 +243,6 @@
+ spectex_SOURCES = spectex.c
+ spectex_OBJECTS = spectex.$(OBJEXT)
+ spectex_LDADD = $(LDADD)
+-spriteblast_SOURCES = spriteblast.c
+-spriteblast_OBJECTS = spriteblast.$(OBJEXT)
+-spriteblast_LDADD = $(LDADD)
+ stex3d_SOURCES = stex3d.c
+ stex3d_OBJECTS = stex3d.$(OBJEXT)
+ stex3d_LDADD = $(LDADD)
+@@ -325,8 +319,8 @@
+ fbotexture.c fire.c fogcoord.c fplight.c fslight.c gamma.c \
+ gearbox.c gears.c geartrain.c glinfo.c gloss.c gltestperf.c \
+ ipers.c isosurf.c lodbias.c morph3d.c multiarb.c paltex.c \
+- pixeltest.c pointblast.c projtex.c ray.c readpix.c reflect.c \
+- renormal.c shadowtex.c singlebuffer.c spectex.c spriteblast.c \
++ pixeltest.c projtex.c ray.c readpix.c reflect.c \
++ renormal.c shadowtex.c singlebuffer.c spectex.c \
+ stex3d.c teapot.c terrain.c tessdemo.c texcyl.c texenv.c \
+ textures.c trispd.c $(tunnel_SOURCES) tunnel2.c vao_demo.c \
+ winpos.c
+@@ -336,8 +330,8 @@
+ fbotexture.c fire.c fogcoord.c fplight.c fslight.c gamma.c \
+ gearbox.c gears.c geartrain.c glinfo.c gloss.c gltestperf.c \
+ ipers.c isosurf.c lodbias.c morph3d.c multiarb.c paltex.c \
+- pixeltest.c pointblast.c projtex.c ray.c readpix.c reflect.c \
+- renormal.c shadowtex.c singlebuffer.c spectex.c spriteblast.c \
++ pixeltest.c projtex.c ray.c readpix.c reflect.c \
++ renormal.c shadowtex.c singlebuffer.c spectex.c \
+ stex3d.c teapot.c terrain.c tessdemo.c texcyl.c texenv.c \
+ textures.c trispd.c $(tunnel_SOURCES) tunnel2.c vao_demo.c \
+ winpos.c
+@@ -722,9 +716,6 @@
+ pixeltest$(EXEEXT): $(pixeltest_OBJECTS) $(pixeltest_DEPENDENCIES) $(EXTRA_pixeltest_DEPENDENCIES)
+ @rm -f pixeltest$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(pixeltest_OBJECTS) $(pixeltest_LDADD) $(LIBS)
+-pointblast$(EXEEXT): $(pointblast_OBJECTS) $(pointblast_DEPENDENCIES) $(EXTRA_pointblast_DEPENDENCIES)
+- @rm -f pointblast$(EXEEXT)
+- $(AM_V_CCLD)$(LINK) $(pointblast_OBJECTS) $(pointblast_LDADD) $(LIBS)
+ projtex$(EXEEXT): $(projtex_OBJECTS) $(projtex_DEPENDENCIES) $(EXTRA_projtex_DEPENDENCIES)
+ @rm -f projtex$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(projtex_OBJECTS) $(projtex_LDADD) $(LIBS)
+@@ -749,9 +740,6 @@
+ spectex$(EXEEXT): $(spectex_OBJECTS) $(spectex_DEPENDENCIES) $(EXTRA_spectex_DEPENDENCIES)
+ @rm -f spectex$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(spectex_OBJECTS) $(spectex_LDADD) $(LIBS)
+-spriteblast$(EXEEXT): $(spriteblast_OBJECTS) $(spriteblast_DEPENDENCIES) $(EXTRA_spriteblast_DEPENDENCIES)
+- @rm -f spriteblast$(EXEEXT)
+- $(AM_V_CCLD)$(LINK) $(spriteblast_OBJECTS) $(spriteblast_LDADD) $(LIBS)
+ stex3d$(EXEEXT): $(stex3d_OBJECTS) $(stex3d_DEPENDENCIES) $(EXTRA_stex3d_DEPENDENCIES)
+ @rm -f stex3d$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(stex3d_OBJECTS) $(stex3d_LDADD) $(LIBS)
+@@ -828,7 +816,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multiarb.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paltex.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pixeltest.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pointblast.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/projtex.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ray.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readpix.Po@am__quote@
+@@ -837,7 +824,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shadowtex.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/singlebuffer.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spectex.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spriteblast.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stex3d.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/teapot.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/terrain.Po@am__quote@
diff --git a/libre-multilib/lib32-mesa-libcl/PKGBUILD b/libre-multilib/lib32-mesa-libcl/PKGBUILD
new file mode 100644
index 000000000..b42ffa874
--- /dev/null
+++ b/libre-multilib/lib32-mesa-libcl/PKGBUILD
@@ -0,0 +1,60 @@
+# Maintainer: André Silva <emulatorman@parabola.nu>
+# Contributor: Márcio Silva <coadde@parabola.nu>
+
+pkgbase=mesa
+_pkgname=libcl
+pkgname=lib32-$pkgbase-$_pkgname
+_pkgflag=libre
+pkgver=10.0.3
+pkgrel=1
+pkgdesc='Mesa 3-D OpenCL library (32-bit)'
+url=http://${pkgbase}3d.sourceforge.net
+license=(MIT Khronos LGPL)
+arch=(x86_64)
+depends=(
+ lib32-libclc
+ lib32-$pkgbase
+)
+optdepends='opencl-headers: headers necessary for OpenCL development'
+makedepends=(
+ gcc-multilib
+ lib32-clang
+ dri2proto
+ glproto
+ imake
+ lib32-libxml2
+ python2
+ lib32-libvdpau
+)
+provides=(lib32-$_pkgname-$_pkgflag lib32-$_pkgname lib32-opencl-nvidia lib32-opencl-nvidia-304xx)
+conflicts=(lib32-$_pkgname-$_pkgflag lib32-$_pkgname lib32-opencl-nvidia lib32-opencl-nvidia-304xx)
+replaces=(lib32-$_pkgname-$_pkgflag lib32-$_pkgname lib32-opencl-nvidia lib32-opencl-nvidia-304xx)
+source=ftp://ftp.freedesktop.org/pub/$pkgbase/${pkgver%.0}/${pkgbase^}Lib-$pkgver.tar.bz2
+sha512sums=e864c4d63336977b2917d83926331163198d47023228cc71f47c67251f675102dbab4551e032aa1dfcb4cbda1f98f15ff4565acef54a33ed8c50af32f52a52da
+
+build() {
+ cd $srcdir/${pkgbase^}-$pkgver
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+ export LLVM_CONFIG=/usr/bin/llvm-config32
+ autoreconf -vfi
+ ./configure --enable-32-bit\
+ --libdir=/usr/lib32\
+ --prefix=/usr\
+ --enable-opencl\
+ --enable-gallium-llvm\
+ --enable-r600-llvm-compiler\
+ --with-clang-libdir=/usr/lib\
+ --with-llvm-shared-libs\
+ --with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,svga,swrast
+ make V=0
+}
+
+package() {
+ cd $srcdir/${pkgbase^}-$pkgver
+ make -C src/gallium/targets/opencl DESTDIR=$pkgdir install
+ install -vdm755 $pkgdir/usr/share/licenses/$pkgname
+ install -vm644 docs/COPYING $pkgdir/usr/share/licenses/$pkgname
+ install -vm644 docs/license.html $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/libre-multilib/lib32-sdl-libre/PKGBUILD b/libre-multilib/lib32-sdl-libre/PKGBUILD
new file mode 100644
index 000000000..0488381ea
--- /dev/null
+++ b/libre-multilib/lib32-sdl-libre/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 78820 2012-10-25 06:47:28Z foutrelis $
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+
+_pkgbasename=sdl-libre
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.15
+pkgrel=3
+pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (32-bit), without nonfree riva_mmio.h file"
+arch=('x86_64')
+url="http://www.libsdl.org"
+license=('LGPL')
+provides=("lib32-sdl=${pkgver}")
+conflicts=('lib32-sdl')
+replaces=('lib32-sdl')
+depends=('lib32-libxext' 'lib32-libxrender' 'lib32-libx11' $_pkgbasename)
+makedepends=('lib32-alsa-lib' 'lib32-mesa' 'lib32-libpulse' gcc-multilib)
+optdepends=('lib32-alsa-lib: ALSA audio driver'
+ 'lib32-libpulse: PulseAudio audio driver')
+options=('!libtool')
+source=(https://repo.parabolagnulinux.org/other/$pkgname/SDL-libre-${pkgver}.tar.gz
+ sdl-1.2.14-fix-mouse-clicking.patch
+ sdl-1.2.14-disable-mmx.patch
+ fix_joystick_misc_axes.diff
+ libsdl-1.2.15-resizing.patch)
+md5sums=('c6e53ef16fa347ed066c3d68fe93c378'
+ '04d8c179f125e04bcd4c9d60e013c2d7'
+ 'e5c16b7611f62c7cb25f0534eff68852'
+ '687586a108b597a2a6b73070c1d37e51'
+ '3dd50347d8856160a9cbd7f80383a1f8')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd SDL-$pkgver
+ patch -Np1 -i ../sdl-1.2.14-fix-mouse-clicking.patch
+ patch -Np1 -i ../sdl-1.2.14-disable-mmx.patch
+ patch -Np1 -i ../fix_joystick_misc_axes.diff
+ patch -Np1 -i ../libsdl-1.2.15-resizing.patch
+ ./configure --prefix=/usr --disable-nasm --enable-alsa \
+ --with-x --disable-rpath --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd SDL-$pkgver
+ make DESTDIR="$pkgdir" install
+
+ rm -rf "$pkgdir"/usr/{include,share}
+
+ cd "$pkgdir/usr/bin"
+ mv sdl-config sdl-config-32
+}
diff --git a/libre-multilib/lib32-sdl-libre/fix_joystick_misc_axes.diff b/libre-multilib/lib32-sdl-libre/fix_joystick_misc_axes.diff
new file mode 100644
index 000000000..75e3755c9
--- /dev/null
+++ b/libre-multilib/lib32-sdl-libre/fix_joystick_misc_axes.diff
@@ -0,0 +1,13 @@
+diff --git a/src/joystick/linux/SDL_sysjoystick.c b/src/joystick/linux/SDL_sysjoystick.c
+index ee43974..80e46e4 100644
+--- a/src/joystick/linux/SDL_sysjoystick.c
++++ b/src/joystick/linux/SDL_sysjoystick.c
+@@ -702,7 +702,7 @@ static SDL_bool EV_ConfigJoystick(SDL_Joystick *joystick, int fd)
+ ++joystick->nbuttons;
+ }
+ }
+- for ( i=0; i<ABS_MISC; ++i ) {
++ for ( i=0; i<ABS_MAX; ++i ) {
+ /* Skip hats */
+ if ( i == ABS_HAT0X ) {
+ i = ABS_HAT3Y;
diff --git a/libre-multilib/lib32-sdl-libre/libre.patch b/libre-multilib/lib32-sdl-libre/libre.patch
new file mode 100644
index 000000000..72f7da56a
--- /dev/null
+++ b/libre-multilib/lib32-sdl-libre/libre.patch
@@ -0,0 +1,578 @@
+--- src/video/fbcon/riva_mmio.h 2012-01-19 04:30:06.000000000 -0200
++++ /dev/null 2012-04-01 13:58:27.776718756 -0300
+@@ -1,449 +0,0 @@
+-/***************************************************************************\
+-|* *|
+-|* Copyright 1993-1999 NVIDIA, Corporation. All rights reserved. *|
+-|* *|
+-|* NOTICE TO USER: The source code is copyrighted under U.S. and *|
+-|* international laws. Users and possessors of this source code are *|
+-|* hereby granted a nonexclusive, royalty-free copyright license to *|
+-|* use this code in individual and commercial software. *|
+-|* *|
+-|* Any use of this source code must include, in the user documenta- *|
+-|* tion and internal comments to the code, notices to the end user *|
+-|* as follows: *|
+-|* *|
+-|* Copyright 1993-1999 NVIDIA, Corporation. All rights reserved. *|
+-|* *|
+-|* NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY *|
+-|* OF THIS SOURCE CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" *|
+-|* WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. NVIDIA, CORPOR- *|
+-|* ATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOURCE CODE, *|
+-|* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE- *|
+-|* MENT, AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL *|
+-|* NVIDIA, CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT, INCI- *|
+-|* DENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RE- *|
+-|* SULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION *|
+-|* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF *|
+-|* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. *|
+-|* *|
+-|* U.S. Government End Users. This source code is a "commercial *|
+-|* item," as that term is defined at 48 C.F.R. 2.101 (OCT 1995), *|
+-|* consisting of "commercial computer software" and "commercial *|
+-|* computer software documentation," as such terms are used in *|
+-|* 48 C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Govern- *|
+-|* ment only as a commercial end item. Consistent with 48 C.F.R. *|
+-|* 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), *|
+-|* all U.S. Government End Users acquire the source code with only *|
+-|* those rights set forth herein. *|
+-|* *|
+-\***************************************************************************/
+-
+-#ifndef __RIVA_HW_H__
+-#define __RIVA_HW_H__
+-#define RIVA_SW_VERSION 0x00010003
+-
+-/*
+- * Typedefs to force certain sized values.
+- */
+-typedef Uint8 U008;
+-typedef Uint16 U016;
+-typedef Uint32 U032;
+-
+-/*
+- * HW access macros.
+- */
+-#define NV_WR08(p,i,d) (((U008 *)(p))[i]=(d))
+-#define NV_RD08(p,i) (((U008 *)(p))[i])
+-#define NV_WR16(p,i,d) (((U016 *)(p))[(i)/2]=(d))
+-#define NV_RD16(p,i) (((U016 *)(p))[(i)/2])
+-#define NV_WR32(p,i,d) (((U032 *)(p))[(i)/4]=(d))
+-#define NV_RD32(p,i) (((U032 *)(p))[(i)/4])
+-#define VGA_WR08(p,i,d) NV_WR08(p,i,d)
+-#define VGA_RD08(p,i) NV_RD08(p,i)
+-
+-/*
+- * Define supported architectures.
+- */
+-#define NV_ARCH_03 0x03
+-#define NV_ARCH_04 0x04
+-#define NV_ARCH_10 0x10
+-/***************************************************************************\
+-* *
+-* FIFO registers. *
+-* *
+-\***************************************************************************/
+-
+-/*
+- * Raster OPeration. Windows style ROP3.
+- */
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop;
+- U032 reserved01[0x0BB];
+- U032 Rop3;
+-} RivaRop;
+-/*
+- * 8X8 Monochrome pattern.
+- */
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop;
+- U032 reserved01[0x0BD];
+- U032 Shape;
+- U032 reserved03[0x001];
+- U032 Color0;
+- U032 Color1;
+- U032 Monochrome[2];
+-} RivaPattern;
+-/*
+- * Scissor clip rectangle.
+- */
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop;
+- U032 reserved01[0x0BB];
+- U032 TopLeft;
+- U032 WidthHeight;
+-} RivaClip;
+-/*
+- * 2D filled rectangle.
+- */
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop[1];
+- U032 reserved01[0x0BC];
+- U032 Color;
+- U032 reserved03[0x03E];
+- U032 TopLeft;
+- U032 WidthHeight;
+-} RivaRectangle;
+-/*
+- * 2D screen-screen BLT.
+- */
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop;
+- U032 reserved01[0x0BB];
+- U032 TopLeftSrc;
+- U032 TopLeftDst;
+- U032 WidthHeight;
+-} RivaScreenBlt;
+-/*
+- * 2D pixel BLT.
+- */
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop[1];
+- U032 reserved01[0x0BC];
+- U032 TopLeft;
+- U032 WidthHeight;
+- U032 WidthHeightIn;
+- U032 reserved02[0x03C];
+- U032 Pixels;
+-} RivaPixmap;
+-/*
+- * Filled rectangle combined with monochrome expand. Useful for glyphs.
+- */
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop;
+- U032 reserved01[0x0BB];
+- U032 reserved03[(0x040)-1];
+- U032 Color1A;
+- struct
+- {
+- U032 TopLeft;
+- U032 WidthHeight;
+- } UnclippedRectangle[64];
+- U032 reserved04[(0x080)-3];
+- struct
+- {
+- U032 TopLeft;
+- U032 BottomRight;
+- } ClipB;
+- U032 Color1B;
+- struct
+- {
+- U032 TopLeft;
+- U032 BottomRight;
+- } ClippedRectangle[64];
+- U032 reserved05[(0x080)-5];
+- struct
+- {
+- U032 TopLeft;
+- U032 BottomRight;
+- } ClipC;
+- U032 Color1C;
+- U032 WidthHeightC;
+- U032 PointC;
+- U032 MonochromeData1C;
+- U032 reserved06[(0x080)+121];
+- struct
+- {
+- U032 TopLeft;
+- U032 BottomRight;
+- } ClipD;
+- U032 Color1D;
+- U032 WidthHeightInD;
+- U032 WidthHeightOutD;
+- U032 PointD;
+- U032 MonochromeData1D;
+- U032 reserved07[(0x080)+120];
+- struct
+- {
+- U032 TopLeft;
+- U032 BottomRight;
+- } ClipE;
+- U032 Color0E;
+- U032 Color1E;
+- U032 WidthHeightInE;
+- U032 WidthHeightOutE;
+- U032 PointE;
+- U032 MonochromeData01E;
+-} RivaBitmap;
+-/*
+- * 3D textured, Z buffered triangle.
+- */
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop;
+- U032 reserved01[0x0BC];
+- U032 TextureOffset;
+- U032 TextureFormat;
+- U032 TextureFilter;
+- U032 FogColor;
+-/* This is a problem on LynxOS */
+-#ifdef Control
+-#undef Control
+-#endif
+- U032 Control;
+- U032 AlphaTest;
+- U032 reserved02[0x339];
+- U032 FogAndIndex;
+- U032 Color;
+- float ScreenX;
+- float ScreenY;
+- float ScreenZ;
+- float EyeM;
+- float TextureS;
+- float TextureT;
+-} RivaTexturedTriangle03;
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop;
+- U032 reserved01[0x0BB];
+- U032 ColorKey;
+- U032 TextureOffset;
+- U032 TextureFormat;
+- U032 TextureFilter;
+- U032 Blend;
+-/* This is a problem on LynxOS */
+-#ifdef Control
+-#undef Control
+-#endif
+- U032 Control;
+- U032 FogColor;
+- U032 reserved02[0x39];
+- struct
+- {
+- float ScreenX;
+- float ScreenY;
+- float ScreenZ;
+- float EyeM;
+- U032 Color;
+- U032 Specular;
+- float TextureS;
+- float TextureT;
+- } Vertex[16];
+- U032 DrawTriangle3D;
+-} RivaTexturedTriangle05;
+-/*
+- * 2D line.
+- */
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop[1];
+- U032 reserved01[0x0BC];
+- U032 Color; /* source color 0304-0307*/
+- U032 Reserved02[0x03e];
+- struct { /* start aliased methods in array 0400- */
+- U032 point0; /* y_x S16_S16 in pixels 0- 3*/
+- U032 point1; /* y_x S16_S16 in pixels 4- 7*/
+- } Lin[16]; /* end of aliased methods in array -047f*/
+- struct { /* start aliased methods in array 0480- */
+- U032 point0X; /* in pixels, 0 at left 0- 3*/
+- U032 point0Y; /* in pixels, 0 at top 4- 7*/
+- U032 point1X; /* in pixels, 0 at left 8- b*/
+- U032 point1Y; /* in pixels, 0 at top c- f*/
+- } Lin32[8]; /* end of aliased methods in array -04ff*/
+- U032 PolyLin[32]; /* y_x S16_S16 in pixels 0500-057f*/
+- struct { /* start aliased methods in array 0580- */
+- U032 x; /* in pixels, 0 at left 0- 3*/
+- U032 y; /* in pixels, 0 at top 4- 7*/
+- } PolyLin32[16]; /* end of aliased methods in array -05ff*/
+- struct { /* start aliased methods in array 0600- */
+- U032 color; /* source color 0- 3*/
+- U032 point; /* y_x S16_S16 in pixels 4- 7*/
+- } ColorPolyLin[16]; /* end of aliased methods in array -067f*/
+-} RivaLine;
+-/*
+- * 2D/3D surfaces
+- */
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop;
+- U032 reserved01[0x0BE];
+- U032 Offset;
+-} RivaSurface;
+-typedef volatile struct
+-{
+- U032 reserved00[4];
+- U016 FifoFree;
+- U016 Nop;
+- U032 reserved01[0x0BD];
+- U032 Pitch;
+- U032 RenderBufferOffset;
+- U032 ZBufferOffset;
+-} RivaSurface3D;
+-
+-/***************************************************************************\
+-* *
+-* Virtualized RIVA H/W interface. *
+-* *
+-\***************************************************************************/
+-
+-struct _riva_hw_inst;
+-struct _riva_hw_state;
+-/*
+- * Virtialized chip interface. Makes RIVA 128 and TNT look alike.
+- */
+-typedef struct _riva_hw_inst
+-{
+- /*
+- * Chip specific settings.
+- */
+- U032 Architecture;
+- U032 Version;
+- U032 CrystalFreqKHz;
+- U032 RamAmountKBytes;
+- U032 MaxVClockFreqKHz;
+- U032 RamBandwidthKBytesPerSec;
+- U032 EnableIRQ;
+- U032 IO;
+- U032 VBlankBit;
+- U032 FifoFreeCount;
+- U032 FifoEmptyCount;
+- /*
+- * Non-FIFO registers.
+- */
+- volatile U032 *PCRTC;
+- volatile U032 *PRAMDAC;
+- volatile U032 *PFB;
+- volatile U032 *PFIFO;
+- volatile U032 *PGRAPH;
+- volatile U032 *PEXTDEV;
+- volatile U032 *PTIMER;
+- volatile U032 *PMC;
+- volatile U032 *PRAMIN;
+- volatile U032 *FIFO;
+- volatile U032 *CURSOR;
+- volatile U032 *CURSORPOS;
+- volatile U032 *VBLANKENABLE;
+- volatile U032 *VBLANK;
+- volatile U008 *PCIO;
+- volatile U008 *PVIO;
+- volatile U008 *PDIO;
+- /*
+- * Common chip functions.
+- */
+- int (*Busy)(struct _riva_hw_inst *);
+- void (*CalcStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *,int,int,int,int,int,int,int,int,int,int,int,int,int);
+- void (*LoadStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *);
+- void (*UnloadStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *);
+- void (*SetStartAddress)(struct _riva_hw_inst *,U032);
+- void (*SetSurfaces2D)(struct _riva_hw_inst *,U032,U032);
+- void (*SetSurfaces3D)(struct _riva_hw_inst *,U032,U032);
+- int (*ShowHideCursor)(struct _riva_hw_inst *,int);
+- void (*LockUnlock)(struct _riva_hw_inst *, int);
+- /*
+- * Current extended mode settings.
+- */
+- struct _riva_hw_state *CurrentState;
+- /*
+- * FIFO registers.
+- */
+- RivaRop *Rop;
+- RivaPattern *Patt;
+- RivaClip *Clip;
+- RivaPixmap *Pixmap;
+- RivaScreenBlt *Blt;
+- RivaBitmap *Bitmap;
+- RivaLine *Line;
+- RivaTexturedTriangle03 *Tri03;
+- RivaTexturedTriangle05 *Tri05;
+-} RIVA_HW_INST;
+-/*
+- * Extended mode state information.
+- */
+-typedef struct _riva_hw_state
+-{
+- U032 bpp;
+- U032 width;
+- U032 height;
+- U032 repaint0;
+- U032 repaint1;
+- U032 screen;
+- U032 pixel;
+- U032 horiz;
+- U032 arbitration0;
+- U032 arbitration1;
+- U032 vpll;
+- U032 pllsel;
+- U032 general;
+- U032 config;
+- U032 cursor0;
+- U032 cursor1;
+- U032 cursor2;
+- U032 offset0;
+- U032 offset1;
+- U032 offset2;
+- U032 offset3;
+- U032 pitch0;
+- U032 pitch1;
+- U032 pitch2;
+- U032 pitch3;
+-} RIVA_HW_STATE;
+-
+-/*
+- * FIFO Free Count. Should attempt to yield processor if RIVA is busy.
+- */
+-
+-#define RIVA_FIFO_FREE(hwptr,cnt) \
+-{ \
+- while (FifoFreeCount < (cnt)) \
+- FifoFreeCount = hwptr->FifoFree >> 2; \
+- FifoFreeCount -= (cnt); \
+-}
+-#endif /* __RIVA_HW_H__ */
+-
+--- src/video/fbcon/SDL_fbriva.c 2012-01-19 04:30:06.000000000 -0200
++++ src/video/fbcon/SDL_fbriva.c 2012-04-01 15:10:10.108451467 -0300
+@@ -24,12 +24,10 @@
+ #include "SDL_video.h"
+ #include "../SDL_blit.h"
+ #include "SDL_fbriva.h"
+-#include "riva_mmio.h"
+ #include "riva_regs.h"
+
+
+ static int FifoEmptyCount = 0;
+-static int FifoFreeCount = 0;
+
+ /* Wait for vertical retrace */
+ static void WaitVBL(_THIS)
+@@ -41,20 +39,6 @@
+ while ( !(*port & 0x08) )
+ ;
+ }
+-static void NV3WaitIdle(_THIS)
+-{
+- RivaRop *Rop = (RivaRop *)(mapped_io + ROP_OFFSET);
+- while ( (Rop->FifoFree < FifoEmptyCount) ||
+- (*(mapped_io + PGRAPH_OFFSET + 0x000006B0) & 0x01) )
+- ;
+-}
+-static void NV4WaitIdle(_THIS)
+-{
+- RivaRop *Rop = (RivaRop *)(mapped_io + ROP_OFFSET);
+- while ( (Rop->FifoFree < FifoEmptyCount) ||
+- (*(mapped_io + PGRAPH_OFFSET + 0x00000700) & 0x01) )
+- ;
+-}
+
+ #if 0 /* Not yet implemented? */
+ /* Sets video mem colorkey and accelerated blit function */
+@@ -74,7 +58,6 @@
+ {
+ int dstX, dstY;
+ int dstW, dstH;
+- RivaBitmap *Bitmap = (RivaBitmap *)(mapped_io + BITMAP_OFFSET);
+
+ /* Don't blit to the display surface when switched away */
+ if ( switched_away ) {
+@@ -93,13 +76,6 @@
+ dstX += rect->x;
+ dstY += rect->y;
+
+- RIVA_FIFO_FREE(Bitmap, 1);
+- Bitmap->Color1A = color;
+-
+- RIVA_FIFO_FREE(Bitmap, 2);
+- Bitmap->UnclippedRectangle[0].TopLeft = (dstX << 16) | dstY;
+- Bitmap->UnclippedRectangle[0].WidthHeight = (dstW << 16) | dstH;
+-
+ FB_AddBusySurface(dst);
+
+ if ( dst == this->screen ) {
+@@ -115,7 +91,6 @@
+ int srcX, srcY;
+ int dstX, dstY;
+ int dstW, dstH;
+- RivaScreenBlt *Blt = (RivaScreenBlt *)(mapped_io + BLT_OFFSET);
+
+ /* FIXME: For now, only blit to display surface */
+ if ( dst->pitch != SDL_VideoSurface->pitch ) {
+@@ -142,11 +117,6 @@
+ dstX += dstrect->x;
+ dstY += dstrect->y;
+
+- RIVA_FIFO_FREE(Blt, 3);
+- Blt->TopLeftSrc = (srcY << 16) | srcX;
+- Blt->TopLeftDst = (dstY << 16) | dstX;
+- Blt->WidthHeight = (dstH << 16) | dstW;
+-
+ FB_AddBusySurface(src);
+ FB_AddBusySurface(dst);
+
+@@ -185,23 +155,15 @@
+
+ void FB_RivaAccel(_THIS, __u32 card)
+ {
+- RivaRop *Rop = (RivaRop *)(mapped_io + ROP_OFFSET);
+
+ /* We have hardware accelerated surface functions */
+ this->CheckHWBlit = CheckHWBlit;
+ wait_vbl = WaitVBL;
+ switch (card) {
+- case FB_ACCEL_NV3:
+- wait_idle = NV3WaitIdle;
+- break;
+- case FB_ACCEL_NV4:
+- wait_idle = NV4WaitIdle;
+- break;
+ default:
+ /* Hmm... FIXME */
+ break;
+ }
+- FifoEmptyCount = Rop->FifoFree;
+
+ /* The Riva has an accelerated color fill */
+ this->info.blit_fill = 1;
+--- src/video/fbcon/SDL_fbvideo.c.orig 2011-09-08 17:30:03.670583685 +0200
++++ src/video/fbcon/SDL_fbvideo.c 2011-09-08 17:30:24.230582737 +0200
+@@ -46,7 +46,6 @@
+ #include "SDL_fbevents_c.h"
+ #include "SDL_fb3dfx.h"
+ #include "SDL_fbmatrox.h"
+-#include "SDL_fbriva.h"
+
+ /*#define FBCON_DEBUG*/
+
+@@ -769,13 +768,6 @@
+ #endif
+ FB_3DfxAccel(this, finfo.accel);
+ break;
+- case FB_ACCEL_NV3:
+- case FB_ACCEL_NV4:
+-#ifdef FBACCEL_DEBUG
+- printf("NVidia hardware accelerator!\n");
+-#endif
+- FB_RivaAccel(this, finfo.accel);
+- break;
+ default:
+ #ifdef FBACCEL_DEBUG
+ printf("Unknown hardware accelerator.\n");
diff --git a/libre-multilib/lib32-sdl-libre/libsdl-1.2.15-resizing.patch b/libre-multilib/lib32-sdl-libre/libsdl-1.2.15-resizing.patch
new file mode 100644
index 000000000..0655a13e1
--- /dev/null
+++ b/libre-multilib/lib32-sdl-libre/libsdl-1.2.15-resizing.patch
@@ -0,0 +1,63 @@
+Description: Revert change that breaks window corner resizing
+ http://bugzilla.libsdl.org/show_bug.cgi?id=1430
+Author: Andrew Caudwell <acaudwell@gmail.com>
+Last-Update: 2012-04-10
+Bug-Debian: http://bugs.debian.org/665779
+
+diff -r c787fb1b5699 src/video/x11/SDL_x11events.c
+--- a/src/video/x11/SDL_x11events.c Mon Feb 20 23:51:08 2012 -0500
++++ b/src/video/x11/SDL_x11events.c Mon Mar 26 12:26:52 2012 +1300
+@@ -57,12 +57,6 @@
+ static SDLKey MISC_keymap[256];
+ SDLKey X11_TranslateKeycode(Display *display, KeyCode kc);
+
+-/*
+- Pending resize target for ConfigureNotify (so outdated events don't
+- cause inappropriate resize events)
+-*/
+-int X11_PendingConfigureNotifyWidth = -1;
+-int X11_PendingConfigureNotifyHeight = -1;
+
+ #ifdef X_HAVE_UTF8_STRING
+ Uint32 Utf8ToUcs4(const Uint8 *utf8)
+@@ -825,16 +819,6 @@
+ #ifdef DEBUG_XEVENTS
+ printf("ConfigureNotify! (resize: %dx%d)\n", xevent.xconfigure.width, xevent.xconfigure.height);
+ #endif
+- if ((X11_PendingConfigureNotifyWidth != -1) &&
+- (X11_PendingConfigureNotifyHeight != -1)) {
+- if ((xevent.xconfigure.width != X11_PendingConfigureNotifyWidth) &&
+- (xevent.xconfigure.height != X11_PendingConfigureNotifyHeight)) {
+- /* Event is from before the resize, so ignore. */
+- break;
+- }
+- X11_PendingConfigureNotifyWidth = -1;
+- X11_PendingConfigureNotifyHeight = -1;
+- }
+ if ( SDL_VideoSurface ) {
+ if ((xevent.xconfigure.width != SDL_VideoSurface->w) ||
+ (xevent.xconfigure.height != SDL_VideoSurface->h)) {
+diff -r c787fb1b5699 src/video/x11/SDL_x11events_c.h
+--- a/src/video/x11/SDL_x11events_c.h Mon Feb 20 23:51:08 2012 -0500
++++ b/src/video/x11/SDL_x11events_c.h Mon Mar 26 12:26:52 2012 +1300
+@@ -27,8 +27,3 @@
+ extern void X11_InitOSKeymap(_THIS);
+ extern void X11_PumpEvents(_THIS);
+ extern void X11_SetKeyboardState(Display *display, const char *key_vec);
+-
+-/* Variables to be exported */
+-extern int X11_PendingConfigureNotifyWidth;
+-extern int X11_PendingConfigureNotifyHeight;
+-
+diff -r c787fb1b5699 src/video/x11/SDL_x11video.c
+--- a/src/video/x11/SDL_x11video.c Mon Feb 20 23:51:08 2012 -0500
++++ b/src/video/x11/SDL_x11video.c Mon Mar 26 12:26:52 2012 +1300
+@@ -1182,8 +1182,6 @@
+ current = NULL;
+ goto done;
+ }
+- X11_PendingConfigureNotifyWidth = width;
+- X11_PendingConfigureNotifyHeight = height;
+ } else {
+ if (X11_CreateWindow(this,current,width,height,bpp,flags) < 0) {
+ current = NULL;
diff --git a/libre-multilib/lib32-sdl-libre/sdl-1.2.14-disable-mmx.patch b/libre-multilib/lib32-sdl-libre/sdl-1.2.14-disable-mmx.patch
new file mode 100644
index 000000000..1bb6e0e47
--- /dev/null
+++ b/libre-multilib/lib32-sdl-libre/sdl-1.2.14-disable-mmx.patch
@@ -0,0 +1,13 @@
+# and another one from FS#26020
+
+--- a/src/video/SDL_yuv_sw.c 2009-10-13 06:07:15.000000000 +0700
++++ b/src/video/SDL_yuv_sw.c 2011-09-20 19:26:30.247742620 +0700
+@@ -89,6 +89,8 @@
+ #include "SDL_yuvfuncs.h"
+ #include "SDL_yuv_sw_c.h"
+
++#undef __OPTIMIZE__
++
+ /* The functions used to manipulate software video overlays */
+ static struct private_yuvhwfuncs sw_yuvfuncs = {
+ SDL_LockYUV_SW,
diff --git a/libre-multilib/lib32-sdl-libre/sdl-1.2.14-fix-mouse-clicking.patch b/libre-multilib/lib32-sdl-libre/sdl-1.2.14-fix-mouse-clicking.patch
new file mode 100644
index 000000000..7d3e5acfc
--- /dev/null
+++ b/libre-multilib/lib32-sdl-libre/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/libre-multilib/pcsx2-libre/PKGBUILD b/libre-multilib/pcsx2-libre/PKGBUILD
new file mode 100644
index 000000000..1be2e2cb6
--- /dev/null
+++ b/libre-multilib/pcsx2-libre/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 105845 2014-02-16 10:30:11Z alucryd $
+# Maintainer: Maxime Gauduin <alucryd@gmail.com>
+# Contributor: josephgbr <rafael.f.f1@gmail.com>
+# Contributor: vEX <vex@niechift.com>
+
+_pkgname=pcsx2
+pkgname=$_pkgname-libre
+pkgver=1.2.2
+pkgrel=1
+pkgdesc='A Sony PlayStation 2 emulator, without nonfree nvidia-cg-toolkit support'
+arch=('i686' 'x86_64')
+url='http://www.pcsx2.net'
+license=('GPL2' 'GPL3' 'LGPL2.1' 'LGPL3')
+makedepends=('cmake' 'sparsehash')
+if [[ $CARCH == "i686" ]]; then
+ depends=('glew' 'libaio' 'libcanberra' 'libjpeg-turbo' 'portaudio' 'sdl2' 'soundtouch' 'wxgtk2.8')
+elif [[ $CARCH == "x86_64" ]]; then
+ makedepends+=('gcc-multilib' 'lib32-glew' 'lib32-libaio' 'lib32-libcanberra' 'lib32-libjpeg-turbo' 'lib32-mesa-libgl' 'lib32-portaudio' 'lib32-sdl2' 'lib32-soundtouch' 'lib32-wxgtk2.8')
+fi
+provides=("$_pkgname=$pkgver")
+conflicts=("$_pkgname")
+replaces=("$_pkgname")
+options=('!emptydirs')
+source=("https://github.com/PCSX2/pcsx2/archive/v${pkgver}.tar.gz")
+sha256sums=('4fccef58098d099ffe955fadd5ceee78ed063ab585b8772f4242fd6dc5fd2d23')
+
+prepare() {
+ cd ${_pkgname}-${pkgver}
+ # remove Cg shader on ZZogl plugin
+ sed -i '\|zzogl-pg-cg| s|^|#|' plugins/CMakeLists.txt
+}
+
+build() {
+ cd ${_pkgname}-${pkgver}
+
+ if [[ -d build ]]; then
+ rm -rf build
+ fi
+ mkdir build && cd build
+
+ if [[ $CARCH == "i686" ]]; then
+ cmake .. -DCMAKE_INSTALL_PREFIX='/usr' -DCMAKE_BUILD_TYPE='Release' -D{GLSL_API,PACKAGE_MODE,REBUILD_SHADER,SDL2_API,XDG_STD}=TRUE -DPLUGIN_DIR='/usr/lib/pcsx2' -DGAMEINDEX_DIR='/usr/share/pcsx2' -DwxWidgets_CONFIG_EXECUTABLE='/usr/bin/wx-config-2.8' -DwxWidgets_wxrc_EXECUTABLE='/usr/bin/wxrc-2.8'
+ elif [[ $CARCH == "x86_64" ]]; then
+ export CC='gcc -m32'
+ export CXX='g++ -m32'
+ export PKG_CONFIG_PATH='/usr/lib32/pkgconfig'
+ cmake .. -DCMAKE_INSTALL_PREFIX='/usr' -DCMAKE_BUILD_TYPE='Release' -D{GLSL_API,PACKAGE_MODE,REBUILD_SHADER,SDL2_API,XDG_STD}=TRUE -DPLUGIN_DIR='/usr/lib32/pcsx2' -DGAMEINDEX_DIR='/usr/share/pcsx2' -DwxWidgets_CONFIG_EXECUTABLE='/usr/bin/wx-config32-2.8' -DwxWidgets_wxrc_EXECUTABLE='/usr/bin/wxrc32-2.8' -DCMAKE_LIBRARY_PATH='/usr/lib32'
+ fi
+
+ make
+}
+
+package() {
+ cd ${_pkgname}-${pkgver}/build
+
+ if [[ $CARCH == "x86_64" ]]; then
+ depends=('lib32-glew' 'lib32-libaio' 'lib32-libcanberra' 'lib32-libjpeg-turbo' 'lib32-portaudio' 'lib32-sdl2' 'lib32-soundtouch' 'lib32-wxgtk2.8')
+ fi
+
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/libre-multilib/wine-libre/30-win32-aliases.conf b/libre-multilib/wine-libre/30-win32-aliases.conf
new file mode 100644
index 000000000..99ae1f7b8
--- /dev/null
+++ b/libre-multilib/wine-libre/30-win32-aliases.conf
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+ <alias binding="same">
+ <family>MS Shell Dlg</family>
+ <accept><family>Microsoft Sans Serif</family></accept>
+ <default><family>sans-serif</family></default>
+ </alias>
+ <alias binding="same">
+ <family>MS Shell Dlg 2</family>
+ <accept><family>Tahoma</family></accept>
+ <default><family>sans-serif</family></default>
+ </alias>
+
+ <alias binding="same">
+ <family>MS Sans Serif</family>
+ <prefer><family>Microsoft Sans Serif</family></prefer>
+ <default><family>sans-serif</family></default>
+ </alias>
+</fontconfig>
diff --git a/libre-multilib/wine-libre/PKGBUILD b/libre-multilib/wine-libre/PKGBUILD
new file mode 100644
index 000000000..89c5d4d14
--- /dev/null
+++ b/libre-multilib/wine-libre/PKGBUILD
@@ -0,0 +1,182 @@
+# $Id: PKGBUILD 105618 2014-02-12 02:15:42Z 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>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+
+_pkgname=wine
+pkgname=wine-libre
+pkgver=1.7.12
+pkgrel=2
+
+_pkgbasever=${pkgver/rc/-rc}
+
+source=(http://prdownloads.sourceforge.net/$_pkgname/$_pkgname-$_pkgbasever.tar.bz2{,.sign}
+ 30-win32-aliases.conf)
+md5sums=('ce32c886af1c8a4e824e8dc1a01c5703'
+ 'SKIP'
+ '1ff4e467f59409272088d92173a0f801')
+
+pkgdesc="A compatibility layer for running Windows programs, with mesa-libcl support"
+url="http://www.winehq.com"
+arch=(i686 x86_64)
+options=(staticlibs)
+license=(LGPL)
+install=wine.install
+provides=$_pkgname=$pkgver
+conflicts=$_pkgname
+replaces=$_pkgname
+
+_depends=(
+ fontconfig lib32-fontconfig
+ libxcursor lib32-libxcursor
+ libxrandr lib32-libxrandr
+ libxdamage lib32-libxdamage
+ libxi lib32-libxi
+ gettext lib32-gettext
+ freetype2 lib32-freetype2
+ glu lib32-glu
+ libsm lib32-libsm
+ gcc-libs lib32-gcc-libs
+ 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
+ libpng lib32-libpng
+ gnutls lib32-gnutls
+ libxinerama lib32-libxinerama
+ libxcomposite lib32-libxcomposite
+ libxmu lib32-libxmu
+ libxxf86vm lib32-libxxf86vm
+ libxml2 lib32-libxml2
+ libldap lib32-libldap
+ lcms2 lib32-lcms2
+ mpg123 lib32-mpg123
+ openal lib32-openal
+ v4l-utils lib32-v4l-utils
+ alsa-lib lib32-alsa-lib
+ libxcomposite lib32-libxcomposite
+ mesa lib32-mesa
+ mesa-libgl lib32-mesa-libgl
+ mesa-libcl lib32-mesa-libcl
+ samba
+ opencl-headers
+)
+
+optdepends=(
+ giflib lib32-giflib
+ libpng lib32-libpng
+ libldap lib32-libldap
+ gnutls lib32-gnutls
+ lcms2 lib32-lcms2
+ libxml2 lib32-libxml2
+ mpg123 lib32-mpg123
+ openal lib32-openal
+ v4l-utils lib32-v4l-utils
+ libpulse lib32-libpulse
+ alsa-plugins lib32-alsa-plugins
+ alsa-lib lib32-alsa-lib
+ libjpeg-turbo lib32-libjpeg-turbo
+ libxcomposite lib32-libxcomposite
+ libxinerama lib32-libxinerama
+ ncurses lib32-ncurses
+ mesa-libcl lib32-mesa-libcl
+ cups
+ samba dosbox
+)
+
+if [[ $CARCH == i686 ]]; then
+ # Strip lib32 etc. on i686
+ _depends=(${_depends[@]/*32-*/})
+ makedepends=(${makedepends[@]/*32-*/} ${_depends[@]})
+ makedepends=(${makedepends[@]/*-multilib*/})
+ optdepends=(${optdepends[@]/*32-*/})
+else
+ makedepends=(${makedepends[@]} ${_depends[@]})
+ provides+=("bin32-wine=$pkgver" "wine-wow64=$pkgver")
+ conflicts+=('bin32-wine' 'wine-wow64')
+ replaces+=('bin32-wine')
+fi
+
+depends=(${_depends[@]})
+
+build() {
+ cd "$srcdir"
+
+ # Allow ccache to work
+ mv $_pkgname-$_pkgbasever $_pkgname
+
+ # ncurses fix
+ sed -i 's|libncurses|libncursesw|g' "$srcdir/$_pkgname/configure"
+ sed -i 's|lncurses|lncursesw|g' "$srcdir/$_pkgname/configure"
+
+ # Get rid of old build dirs
+ rm -rf $_pkgname-{32,64}-build
+ mkdir $_pkgname-32-build
+
+ # These additional CPPFLAGS solve FS#27662 and FS#34195
+ export CPPFLAGS="${CPPFLAGS/-D_FORTIFY_SOURCE=2/} -D_FORTIFY_SOURCE=0"
+
+ if [[ $CARCH == x86_64 ]]; then
+ msg2 "Building Wine-64..."
+
+ mkdir $_pkgname-64-build
+ cd "$srcdir/$_pkgname-64-build"
+ ../$_pkgname/configure \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --with-x \
+ --without-gstreamer \
+ --enable-win64
+ # Gstreamer was disabled for FS#33655
+
+ 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 \
+ --with-x \
+ --without-gstreamer \
+ "${_wine32opts[@]}"
+
+ # These additional flags solve FS#23277
+ make CFLAGS+="-mstackrealign -mincoming-stack-boundary=2" CXXFLAGS+="-mstackrealign -mincoming-stack-boundary=2"
+}
+
+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
+
+ # Font aliasing settings for Win32 applications
+ install -d "$pkgdir"/etc/fonts/conf.{avail,d}
+ install -m644 "$srcdir/30-win32-aliases.conf" "$pkgdir/etc/fonts/conf.avail"
+ ln -s ../conf.avail/30-win32-aliases.conf "$pkgdir/etc/fonts/conf.d/30-win32-aliases.conf"
+}
+
+# vim:set ts=8 sts=2 sw=2 et:
diff --git a/libre-multilib/wine-libre/wine.install b/libre-multilib/wine-libre/wine.install
new file mode 100644
index 000000000..21dda162b
--- /dev/null
+++ b/libre-multilib/wine-libre/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 Parabola wiki on wine for more information."
+}
+
+post_remove() {
+ update-desktop-database -q
+}