File PKGBUILD of Package wine-gaming-nine
# Maintainer: Pierre Franco <pierre dot franco at ensimag dot grenoble dash inp dot fr>
# Based on wine-staging PKGBUILD
#Additional patches:
# -Raw input fix
# -Mip-Map fix (see https://bugs.winehq.org/show_bug.cgi?id=34480 )
# -Keybind patch reversion
# -Heap allocation perfomance improvement patch
# -Wbemprox videocontroller query fix (see https://bugs.winehq.org/show_bug.cgi?id=38879 )
pkgname=wine-gaming-nine
pkgver=1.9.8
pkgrel=2
_pkgbasever=${pkgver/rc/-rc}
_winesrcdir="wine-patched-staging-$_pkgbasever"
state=""
source=("staging-$_pkgbasever.tar.gz"
keybindings.patch
raw.patch
mipmap.patch
wine-d3d9.patch
gdi32-heap-corruption.patch
heap_perf.patch
wbemprox_query.patch
30-win32-aliases.conf
livino-wine.patch
)
sha1sums=('SKIP'
'f3febb8836f38320742a546c667106608d4c4395'
'57aa524e4e760c907c2acef287f5569e78ea85b0'
'c3096fccbac23e520d03f592db7f23350cbbc0bc'
'SKIP'
'SKIP'
'0f4ac455436d5714a2cf0b537ed25f4fa5c1a7fd'
'20da841265d5b16dba02246f158ad4f54f13b775'
'023a5c901c6a091c56e76b6a62d141d87cce9fdb'
'SKIP'
)
pkgdesc="Based off wine-staging, including the gallium-nine patches, livino-reader patch and some more hacks"
url="http://www.wine-staging.com"
#arch=(i686 x86_64)
arch=(x86_64)
options=(staticlibs)
license=(LGPL)
install=wine.install
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 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
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
libgl lib32-libgl
libcl lib32-libcl
libxslt lib32-libxslt
libpulse lib32-libpulse
libva lib32-libva
samba
opencl-headers
gtk3 lib32-gtk3
dri2proto
)
#
optdepends=(
giflib lib32-giflib
libpng lib32-libpng
libldap lib32-libldap
gnutls lib32-gnutls
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
libcl lib32-libcl
libxslt lib32-libxslt
libva lib32-libva
cups
samba dosbox
gtk3 lib32-gtk3
)
provides=("bin32-wine=$pkgver" "wine=$pkgver" "wine-wow64=$pkgver" "wine-visual-novel-reader=$pkgver")
conflicts=('bin32-wine' 'wine' 'wine-wow64' 'wine-visual-novel-reader')
prepare()
{
cd $_winesrcdir
#patch -p1 -i ../wine-d3d9.patch && touch $srcdir/OK || rm -f $srcdir/OK
patch -p1 -i ../livino-wine.patch && touch $srcdir/OK || rm -f $srcdir/OK
patch -p1 -i ../gdi32-heap-corruption.patch || true
patch -p1 -i ../raw.patch
patch -p1 -i ../mipmap.patch
patch -p1 -i ../heap_perf.patch
patch -p1 -i ../wbemprox_query.patch
patch -p1 -R -i ../keybindings.patch
#OpenCL fix
cp configure configure_old
cp configure.ac configure.ac_old
sed 's|OpenCL/opencl.h|CL/opencl.h|g' configure_old > configure
sed 's|OpenCL/opencl.h|CL/opencl.h|g' configure.ac_old > configure.ac
}
build()
{
cd "$srcdir"
[ -f $srcdir/OK ] || return 1
cd $_winesrcdir
autoreconf -f
cd ..
# remove once https://bugs.winehq.org/show_bug.cgi?id=38653 is resolved
export CFLAGS="${CFLAGS/-O2/} -O0"
export CXXFLAGS="${CXXFLAGS/-O2/} -O0"
# Get rid of old build dirs
rm -rf $pkgname-{32,64}-build
mkdir $pkgname-{32,64}-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..."
cd "$srcdir/$pkgname-64-build"
../$_winesrcdir/configure \
--prefix=/usr \
--libdir=/usr/lib \
--with-x \
--without-gstreamer \
--enable-win64 \
--with-xattr \
--with-d3dadapter
# Gstreamer was disabled for FS#33655
make -j4
_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"
../$_winesrcdir/configure \
--prefix=/usr \
--with-x \
--without-gstreamer \
--with-xattr \
--with-d3dadapter \
"${_wine32opts[@]}"
# These additional flags solve FS#23277
make CFLAGS+="-mstackrealign -mincoming-stack-boundary=2" CXXFLAGS+="-mstackrealign -mincoming-stack-boundary=2" -j4
}
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"
}