diff --git a/wine/.gitignore b/wine/.gitignore new file mode 100644 index 0000000..d08ddeb --- /dev/null +++ b/wine/.gitignore @@ -0,0 +1,4 @@ +* +!.gitignore +!PKGBUILD +!0001-Use-ALSA-device-hints.patch diff --git a/wine/PKGBUILD b/wine/PKGBUILD new file mode 100644 index 0000000..ad9bc60 --- /dev/null +++ b/wine/PKGBUILD @@ -0,0 +1,208 @@ +# $Id$ +# Maintainer: Les De Ridder + +pkgname=wine-staging-lesderid +pkgver=2.12 +pkgrel=1 + +_pkgbasever=${pkgver/rc/-rc} +_ninepatchver=${pkgver} + +source=("https://github.com/wine-compholio/wine-patched/archive/staging-$_pkgbasever.tar.gz" + "https://github.com/sarnex/wine-d3d9-patches/archive/wine-d3d9-$_ninepatchver.tar.gz" + '30-win32-aliases.conf'::'https://aur.archlinux.org/cgit/aur.git/plain/30-win32-aliases.conf?h=wine-staging-git' + '0001-Use-ALSA-device-hints.patch' + 'crossover-steam-webhelper-hack.patch'::'https://bugs.winehq.org/attachment.cgi?id=52560') +sha512sums=('3ed89c3545e8dd3485dc8fed01068caa548876759912cf2407d462b80c1c5786d106110e20e32c2a904b480a893c41f120b57a4252b6dc7376aec4e15721ca32' + '8fe9b37ff54372984a234b18037bc736f69f2adf41478f037bc93e3d72893c46174fc3fbff78042ac66bb03d31ea85d293dbadc2b32630218ae53be8e360425d' + '6e54ece7ec7022b3c9d94ad64bdf1017338da16c618966e8baf398e6f18f80f7b0576edf1d1da47ed77b96d577e4cbb2bb0156b0b11c183a0accf22654b0a2bb' + '9829c04b9270a3e3db4cb83a736dd3bb33772123c9b52efcb8697f09101c455fb4d251accf4b21a9ec87f9e29bc710263821136e90a4ebdc380d5246e86b0d1a' + 'd3629118dc2b64192b841a8d60036cbb2e85153e48ab0634976e04697608cda31c844cdbd08aae616a28d79ce239c2a420fa072161c0d9dae9dc948916f6b066') + +pkgdesc="A compatibility layer for running Windows programs - Staging branch with the gallium-nine patches" +url="http://www.wine-staging.com" +arch=(i686 x86_64) +options=(staticlibs) +license=(LGPL) + +_depends=( + attr lib32-attr + fontconfig lib32-fontconfig + lcms2 lib32-lcms2 + libxml2 lib32-libxml2 + 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 + libpcap lib32-libpcap + desktop-file-utils +) + +makedepends=(autoconf ncurses bison perl fontforge flex + '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 + libldap lib32-libldap + 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 + opencl-icd-loader lib32-opencl-icd-loader + libxslt lib32-libxslt + libva lib32-libva + gtk3 lib32-gtk3 + gst-plugins-base-libs lib32-gst-plugins-base-libs + samba + opencl-headers + xorg-server-devel +) + +optdepends=( + giflib lib32-giflib + libpng lib32-libpng + libldap lib32-libldap + gnutls lib32-gnutls + mpg123 lib32-mpg123 + openal lib32-openal + v4l-utils lib32-v4l-utils + alsa-plugins lib32-alsa-plugins + alsa-lib lib32-alsa-lib + libjpeg-turbo lib32-libjpeg-turbo + libxcomposite lib32-libxcomposite + libxinerama lib32-libxinerama + ncurses lib32-ncurses + opencl-icd-loader lib32-opencl-icd-loader + libxslt lib32-libxslt + libva lib32-libva + gtk3 lib32-gtk3 + gst-plugins-base-libs lib32-gst-plugins-base-libs + vulkan-icd-loader lib32-vulkan-icd-loader + 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-*/}) + provides=("wine=$pkgver" "wine-staging=$pkgver") + conflicts=('wine' 'wine-staging') +else + makedepends=(${makedepends[@]} ${_depends[@]}) + provides=("wine=$pkgver" "wine-wow64=$pkgver" "wine-staging=$pkgver") + conflicts=('wine' 'wine-wow64' 'wine-staging') +fi + +prepare() { + # Allow ccache to work + mv wine-patched-staging-$_pkgbasever $pkgname + + sed 's|OpenCL/opencl.h|CL/opencl.h|g' -i $pkgname/configure* + + # Apply the patchsets + pushd $pkgname + + patch -Np1 -i ../wine-d3d9-patches-wine-d3d9-${_ninepatchver}/staging-helper.patch + patch -Np1 -i ../wine-d3d9-patches-wine-d3d9-${_ninepatchver}/wine-d3d9.patch + + patch -Np1 -i ../0001-Use-ALSA-device-hints.patch + + patch -Np1 -i ../crossover-steam-webhelper-hack.patch + + autoreconf -f + + popd + + # Get rid of old build dirs + rm -rf $pkgname-{32,64}-build + mkdir $pkgname-32-build +} + +build() { + cd "$srcdir" + + export CFLAGS="-march=native -Ofast" + export CC="clang" + + 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 \ + --with-gstreamer \ + --with-d3d9-nine \ + --enable-win64 \ + --with-xattr \ + --without-pulse + + 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 \ + --with-gstreamer \ + --with-d3d9-nine \ + --with-xattr \ + --without-pulse \ + "${_wine32opts[@]}" + + make +} + +package() { + depends=(${_depends[@]}) + + 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: +