void-packages/srcpkgs/wine/template
2021-11-08 09:10:54 +01:00

157 lines
4.6 KiB
Bash

# Template file for 'wine'
pkgname=wine
version=6.21
revision=1
_pkgver=${version/r/-r}
create_wrksrc=yes
build_wrksrc=wine-${_pkgver}
build_style=gnu-configure
configure_args="--bindir=/usr/libexec/wine"
short_desc="Run Microsoft Windows applications"
maintainer="Helmut Pozimski <helmut@pozimski.eu>"
license="LGPL-2.1-or-later"
homepage="http://www.winehq.org/"
distfiles="https://dl.winehq.org/wine/source/${version%.*}.x/wine-${_pkgver}.tar.xz
https://github.com/wine-staging/wine-staging/archive/v${_pkgver}.tar.gz"
checksum="f7b67572b52a7150f3dcc43318b40cf10425171319edf6368a60274642e079ce
df986de7d6ce6536c18bba4dbeab05e2bd199cfa73e3194fd6c805cdc6d51dfd"
build_options="mingw staging"
build_options_default="mingw"
desc_option_mingw="Use the MinGW cross compiler to build WinPE DLLs"
desc_option_staging="Apply the wine-staging patchset"
lib32mode=full
archs="i686* x86_64*"
_nopie=no
if [ "$XBPS_TARGET_MACHINE" = i686-musl ]; then
# build system adds -fno-PIC for 32bit builds, which,
# coupled with our default pie toolchain, leads to textrels
# in the final binary; musl doesn't support those
_nopie=yes
fi
hostmakedepends="pkg-config flex gettext
$(vopt_if mingw "cross-${XBPS_TARGET_MACHINE%-musl}-w64-mingw32")
$(vopt_if staging 'autoconf')"
makedepends="gettext-devel lcms2-devel zlib-devel ncurses-devel
glu-devel libSM-devel libXext-devel libX11-devel libXpm-devel
libXinerama-devel libXcomposite-devel libXmu-devel libXxf86vm-devel
libXcursor-devel libXrandr-devel libXdamage-devel libXi-devel
libldap-devel alsa-lib-devel libgphoto2-devel libxml2-devel
libxslt-devel glib-devel freetype-devel pulseaudio-devel
mpg123-devel libgsm-devel libopenal-devel giflib-devel libpng-devel
v4l-utils-devel fontconfig-devel gnutls-devel dbus-devel sane-devel
libpcap-devel cups-devel ocl-icd-devel vulkan-loader vkd3d-devel
FAudio-devel gst-plugins-base1-devel"
depends="libXi libXinerama libXcomposite libXcursor libOSMesa
desktop-file-utils hicolor-icon-theme liberation-fonts-ttf
gnutls wine-common>=${version}_${revision} libwine>=${version}_${revision}"
make_check=extended
case $XBPS_TARGET_MACHINE in
x86_64*) configure_args+=" --enable-win64 --libdir=/usr/lib"
_wine_suffix="64"
_wineserver_suffix=${_wine_suffix}
;;
*)
_wineserver_suffix="32"
;;
esac
if [ "$XBPS_LIBC" = "glibc" ]; then
hostmakedepends+=" prelink"
fi
_wine_libexec="/usr/libexec/wine"
nopie_files="${_wine_libexec}/wine${_wine_suffix}"
if [ "${_nopie}" = yes ]; then
nopie_files+=" ${_wine_libexec}/wineserver${_wineserver_suffix}"
fi
post_patch() {
if [ "${build_option_staging}" ]; then
"../wine-staging-${_pkgver}/patches/patchinstall.sh" --all
fi
}
pre_build() {
if [ "${_nopie}" = yes ]; then
make ${makejobs} LDFLAGS="$LDFLAGS -no-pie" \
tools/{widl/widl,winebuild/winebuild,winegcc/winegcc,wrc/wrc} \
loader/wine server/wineserver
fi
}
do_check() {
msg_warn "This testsuite might hang indefinitely\n"
make check
}
post_install() {
# Font aliasing settings for Win32 applications
install -d ${DESTDIR}/etc/fonts/conf.{avail,d}
install -m644 ${FILESDIR}/30-win32-aliases.conf ${DESTDIR}/etc/fonts/conf.avail
ln -s ../conf.avail/30-win32-aliases.conf ${DESTDIR}/etc/fonts/conf.d/30-win32-aliases.conf
mv ${DESTDIR}${_wine_libexec}/wineserver ${DESTDIR}${_wine_libexec}/wineserver${_wineserver_suffix}
vbin ${FILESDIR}/wine
vbin ${FILESDIR}/wineserver
for file in msiexec regedit regsvr32 wineboot winecfg winepath winemine winefile \
winedbg wineconsole notepad msidb widl winebuild winecpp winedump wineg++ \
winegcc winemaker wmc wrc function_grep.pl
do
mv ${DESTDIR}/usr/libexec/wine/${file} ${DESTDIR}/usr/bin/
done
case $XBPS_TARGET_MACHINE in
x86_64*)
ln -s ${_wine_libexec}/wine64 ${DESTDIR}/usr/bin/wine64
;;
esac
}
libwine_package() {
lib32mode=full
short_desc+=" - Runtime library"
replaces="libwine-unstable>=0"
pkg_install() {
vmove usr/lib/wine
}
}
wine-devel_package() {
depends="libwine-${version}_${revision}"
short_desc+=" - development files"
replaces="wine-unstable-devel>=0"
pkg_install() {
vmove usr/include
}
}
wine-common_package() {
short_desc+=" - common files"
binfmts="/usr/bin/wine --magic MZ"
pkg_install() {
vmove usr/share
vmove etc/fonts
for file in wine wineserver msiexec regedit regsvr32 wineboot winecfg winepath winemine winefile winedbg wineconsole notepad msidb
do
vmove usr/bin/${file}
done
}
}
wine-tools_package() {
depends="wine-${version}_${revision}"
short_desc+=" - development tools"
if [ "${_nopie}" = yes ]; then
nopie=yes
fi
pkg_install() {
for file in widl winebuild winecpp winedump wineg++ winegcc winemaker wmc wrc function_grep.pl
do
vmove usr/bin/${file}
done
}
}