Skip to content

Instantly share code, notes, and snippets.

@CommanderAlchemy
Last active December 25, 2015 03:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CommanderAlchemy/6908567 to your computer and use it in GitHub Desktop.
Save CommanderAlchemy/6908567 to your computer and use it in GitHub Desktop.
Updated for 1.7.5
# Maintainer [base]: Sven-Hendrik Haase <sh@lutzhaase.com>
# Maintainer [-multimedia]: John Schoenick <john@pointysoftware.net>
# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
# Contributor: Eduardo Romero <eduardo@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgname=wine-multimedia
_basename=wine
pkgver=1.7.5
pkgrel=1
_pkgbasever=${pkgver/rc/-rc}
_multimediasnapshot=20131028
source=(http://prdownloads.sourceforge.net/$_basename/$_basename-$_pkgbasever.tar.bz2{,.sign}
30-win32-aliases.conf
winemultimedia_${pkgver}_${_multimediasnapshot}.patch
glBufferSubDataARB.patch::http://bugs.winehq.org/attachment.cgi?id=42868)
sha1sums=('SKIP' # wine
'SKIP' # wine.sign
'023a5c901c6a091c56e76b6a62d141d87cce9fdb' # 30-win32-aliases.conf
'SKIP' # wine-multimedia patch (Thaodan)
'SKIP') # glBufferSubDataARB @ http://bugs.winehq.org/show_bug.cgi?id=11674#c263
pkgdesc="Wine with Maarten Lankhorst's multimedia patches, including PulseAudio support"
url="http://repo.or.cz/w/wine/multimedia.git"
arch=(i686 x86_64)
license=(LGPL)
install=wine.install
_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
lcms lib32-lcms
mpg123 lib32-mpg123
openal lib32-openal
v4l-utils lib32-v4l-utils
alsa-lib lib32-alsa-lib
libpulse lib32-libpulse
libxcomposite lib32-libxcomposite
mesa lib32-mesa
# multilib-build has issues with provides packages like this. If you're trying
# to build as such, exchange for:
# mesa-libgl lib32-mesa-libgl
libgl lib32-libgl
libcl lib32-libcl
oss
samba
opencl-headers
)
optdepends=(
giflib lib32-giflib
libpng lib32-libpng
libldap lib32-libldap
gnutls lib32-gnutls
lcms lib32-lcms
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
libpulse lib32-libpulse
libjpeg-turbo lib32-libjpeg-turbo
libxcomposite lib32-libxcomposite
libxinerama lib32-libxinerama
ncurses lib32-ncurses
libcl lib32-libcl
oss 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")
conflicts=('wine')
else
makedepends=(${makedepends[@]} ${_depends[@]})
provides=("bin32-wine=$pkgver" "wine-wow64=$pkgver" "wine=$pkgver")
conflicts=('bin32-wine' 'wine-wow64' 'wine')
replaces=('bin32-wine')
fi
prepare() {
cd "$srcdir"
# Get rid of old dirs
rm -rf $_basename{,-{32,64}-build}
mkdir $_basename-32-build
# Allow ccache to work
mv $_basename-$_pkgbasever $_basename
# ncurses fix
sed -i 's|libncurses|libncursesw|g' "$srcdir/$_basename/configure"
sed -i 's|lncurses|lncursesw|g' "$srcdir/$_basename/configure"
# Apply patches
cd "$_basename"
# Dual-core unsupported in WoW and SC2
# http://bugs.winehq.org/show_bug.cgi?id=11674#c263
msg2 "Applying glBufferSubDataARB patch"
patch -Np1 -i "${srcdir}"/glBufferSubDataARB.patch
msg2 "Applying multimedia branch patch"
patch -Np1 -i "${srcdir}"/winemultimedia_${pkgver}_${_multimediasnapshot}.patch
}
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 $_basename-64-build
cd "$srcdir/$_basename-64-build"
../$_basename/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/$_basename-64-build"
)
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
fi
msg2 "Building Wine-32..."
cd "$srcdir/$_basename-32-build"
../$_basename/configure \
--prefix=/usr \
--with-x \
--without-gstreamer \
"${_wine32opts[@]}"
# These additional CFLAGS solve FS#27560 and FS#23277
# Added Link Time Optimization -flto
make CFLAGS+="-mstackrealign -mincoming-stack-boundary=2" CXXFLAGS+="-mstackrealign -mincoming-stack-boundary=2"
}
package() {
depends=(${_depends[@]})
msg2 "Packaging Wine-32..."
cd "$srcdir/$_basename-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/$_basename-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:
@CommanderAlchemy
Copy link
Author

  • Removed
    • SSL patchset since wine incorporates that already.
    • -flto (bug in GCC that fails make)
    • Multithreading patchset since some of them already landed in 1.7.4 and 1.7.5 of wine and the ones released in September are no longer current.
  • Updated
    • multimediasnapshot to current

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment