diff options
author | Lars Norberg | 2018-03-08 16:39:18 +0100 |
---|---|---|
committer | Lars Norberg | 2018-03-08 16:39:18 +0100 |
commit | a751585a7edc5f09e3bf00d3c833df4f4b8b8500 (patch) | |
tree | a7d6414c213fc025e86558f3eca943104debcad0 | |
download | aur-a751585a7edc5f09e3bf00d3c833df4f4b8b8500.tar.gz |
initial
-rw-r--r-- | .SRCINFO | 189 | ||||
-rw-r--r-- | 30-win32-aliases.conf | 20 | ||||
-rw-r--r-- | PKGBUILD | 232 | ||||
-rw-r--r-- | harmony-fix.diff | 63 | ||||
-rw-r--r-- | wine-binfmt.conf | 3 | ||||
-rw-r--r-- | wine.install | 9 |
6 files changed, 516 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..b0a5ce5b9b30 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,189 @@ +pkgbase = wine-staging-pba-git + pkgdesc = Wine staging branch with PBA patches for increased D3D performance applied. Git versions. + pkgver = 3.3.r3583.04283ef5+wine.3.3.r88.g813ab925ab+pba.r24.b33e274 + pkgrel = 1 + url = https://github.com/acomminos/wine-pba + install = wine.install + arch = x86_64 + license = LGPL + makedepends = git + makedepends = autoconf + makedepends = ncurses + makedepends = bison + makedepends = perl + makedepends = fontforge + makedepends = flex + makedepends = gcc>=4.5.0-2 + makedepends = giflib + makedepends = lib32-giflib + makedepends = libpng + makedepends = lib32-libpng + makedepends = gnutls + makedepends = lib32-gnutls + makedepends = libxinerama + makedepends = lib32-libxinerama + makedepends = libxcomposite + makedepends = lib32-libxcomposite + makedepends = libxmu + makedepends = lib32-libxmu + makedepends = libxxf86vm + makedepends = lib32-libxxf86vm + makedepends = libldap + makedepends = lib32-libldap + makedepends = mpg123 + makedepends = lib32-mpg123 + makedepends = openal + makedepends = lib32-openal + makedepends = v4l-utils + makedepends = lib32-v4l-utils + makedepends = alsa-lib + makedepends = lib32-alsa-lib + makedepends = libxcomposite + makedepends = lib32-libxcomposite + makedepends = mesa + makedepends = lib32-mesa + makedepends = libgl + makedepends = lib32-libgl + makedepends = opencl-icd-loader + makedepends = lib32-opencl-icd-loader + makedepends = libxslt + makedepends = lib32-libxslt + makedepends = libpulse + makedepends = lib32-libpulse + makedepends = libva + makedepends = lib32-libva + makedepends = gtk3 + makedepends = lib32-gtk3 + makedepends = gst-plugins-base-libs + makedepends = lib32-gst-plugins-base-libs + makedepends = vulkan-icd-loader + makedepends = lib32-vulkan-icd-loader + makedepends = samba + makedepends = opencl-headers + makedepends = xorgproto + makedepends = pkg-config + makedepends = attr + makedepends = lib32-attr + makedepends = fontconfig + makedepends = lib32-fontconfig + makedepends = lcms2 + makedepends = lib32-lcms2 + makedepends = libxml2 + makedepends = lib32-libxml2 + makedepends = libxcursor + makedepends = lib32-libxcursor + makedepends = libxrandr + makedepends = lib32-libxrandr + makedepends = libxdamage + makedepends = lib32-libxdamage + makedepends = libxi + makedepends = lib32-libxi + makedepends = gettext + makedepends = lib32-gettext + makedepends = freetype2 + makedepends = lib32-freetype2 + makedepends = glu + makedepends = lib32-glu + makedepends = libsm + makedepends = lib32-libsm + makedepends = gcc-libs + makedepends = lib32-gcc-libs + makedepends = libpcap + makedepends = lib32-libpcap + makedepends = desktop-file-utils + depends = attr + depends = lib32-attr + depends = fontconfig + depends = lib32-fontconfig + depends = lcms2 + depends = lib32-lcms2 + depends = libxml2 + depends = lib32-libxml2 + depends = libxcursor + depends = lib32-libxcursor + depends = libxrandr + depends = lib32-libxrandr + depends = libxdamage + depends = lib32-libxdamage + depends = libxi + depends = lib32-libxi + depends = gettext + depends = lib32-gettext + depends = freetype2 + depends = lib32-freetype2 + depends = glu + depends = lib32-glu + depends = libsm + depends = lib32-libsm + depends = gcc-libs + depends = lib32-gcc-libs + depends = libpcap + depends = lib32-libpcap + depends = desktop-file-utils + optdepends = giflib + optdepends = lib32-giflib + optdepends = libpng + optdepends = lib32-libpng + optdepends = libldap + optdepends = lib32-libldap + optdepends = gnutls + optdepends = lib32-gnutls + optdepends = mpg123 + optdepends = lib32-mpg123 + optdepends = openal + optdepends = lib32-openal + optdepends = v4l-utils + optdepends = lib32-v4l-utils + optdepends = libpulse + optdepends = lib32-libpulse + optdepends = alsa-plugins + optdepends = lib32-alsa-plugins + optdepends = alsa-lib + optdepends = lib32-alsa-lib + optdepends = libjpeg-turbo + optdepends = lib32-libjpeg-turbo + optdepends = libxcomposite + optdepends = lib32-libxcomposite + optdepends = libxinerama + optdepends = lib32-libxinerama + optdepends = ncurses + optdepends = lib32-ncurses + optdepends = opencl-icd-loader + optdepends = lib32-opencl-icd-loader + optdepends = libxslt + optdepends = lib32-libxslt + optdepends = libtxc_dxtn + optdepends = lib32-libtxc_dxtn + optdepends = libva + optdepends = lib32-libva + optdepends = gtk3 + optdepends = lib32-gtk3 + optdepends = gst-plugins-base-libs + optdepends = lib32-gst-plugins-base-libs + optdepends = vulkan-icd-loader + optdepends = lib32-vulkan-icd-loader + optdepends = cups + optdepends = samba + optdepends = dosbox + provides = wine=3.3.r3583.04283ef5+wine.3.3.r88.g813ab925ab+pba.r24.b33e274 + provides = wine-wow64=3.3.r3583.04283ef5+wine.3.3.r88.g813ab925ab+pba.r24.b33e274 + provides = wine-staging=3.3.r3583.04283ef5+wine.3.3.r88.g813ab925ab+pba.r24.b33e274 + conflicts = wine + conflicts = wine-wow64 + conflicts = wine-staging + options = staticlibs + source = wine-git::git://source.winehq.org/git/wine.git + source = wine-staging-git::git+https://github.com/wine-staging/wine-staging.git + source = wine-pba::git+https://github.com/acomminos/wine-pba.git + source = harmony-fix.diff + source = 30-win32-aliases.conf + source = wine-binfmt.conf + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = 50ccb5bd2067e5d2739c5f7abcef11ef096aa246f5ceea11d2c3b508fc7f77a1 + sha256sums = 9901a5ee619f24662b241672a7358364617227937d5f6d3126f70528ee5111e7 + sha256sums = c589c1668851cf5973b8e76d9bd6ae3b9cb9e6524df5d9cb90af4ac20d61d152 + +pkgname = wine-staging-pba-git + diff --git a/30-win32-aliases.conf b/30-win32-aliases.conf new file mode 100644 index 000000000000..99ae1f7b83a5 --- /dev/null +++ b/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/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..0a947aa61a9b --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,232 @@ +# $Id$ +# Maintainer: Lars Norberg < arch-packages at cogwerkz dot org > + +pkgname=wine-staging-pba-git +pkgver=3.3.r3583.04283ef5+wine.3.3.r88.g813ab925ab+pba.r24.b33e274 +pkgrel=1 +_winesrcdir='wine-git' +_stgsrcdir='wine-staging-git' +_pbadir='wine-pba' +pkgdesc='Wine staging branch with PBA patches for increased D3D performance applied. Git versions.' +url='https://github.com/acomminos/wine-pba' +arch=('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=( + 'git' + 'autoconf' + 'ncurses' + 'bison' + 'perl' + 'fontforge' + 'flex' + 'gcc>=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' + 'opencl-icd-loader' 'lib32-opencl-icd-loader' + 'libxslt' 'lib32-libxslt' + 'libpulse' 'lib32-libpulse' + 'libva' 'lib32-libva' + 'gtk3' 'lib32-gtk3' + 'gst-plugins-base-libs' 'lib32-gst-plugins-base-libs' + 'vulkan-icd-loader' 'lib32-vulkan-icd-loader' + 'samba' + 'opencl-headers' + 'xorgproto' + 'pkg-config' +) +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' + 'opencl-icd-loader' 'lib32-opencl-icd-loader' + 'libxslt' 'lib32-libxslt' + 'libtxc_dxtn' 'lib32-libtxc_dxtn' + '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' +) +source=("$_winesrcdir"::'git://source.winehq.org/git/wine.git' + "$_stgsrcdir"::'git+https://github.com/wine-staging/wine-staging.git' + "$_pbadir"::'git+https://github.com/acomminos/wine-pba.git' + 'harmony-fix.diff' + '30-win32-aliases.conf' + 'wine-binfmt.conf') +sha256sums=('SKIP' + 'SKIP' + 'SKIP' + '50ccb5bd2067e5d2739c5f7abcef11ef096aa246f5ceea11d2c3b508fc7f77a1' + '9901a5ee619f24662b241672a7358364617227937d5f6d3126f70528ee5111e7' + 'c589c1668851cf5973b8e76d9bd6ae3b9cb9e6524df5d9cb90af4ac20d61d152') + +provides=("wine=$pkgver" "wine-wow64=$pkgver" "wine-staging=$pkgver") +conflicts=('wine' 'wine-wow64' 'wine-staging') +makedepends=(${makedepends[@]} ${depends[@]}) +install=wine.install + +prepare() { + cd "${srcdir}"/"${_winesrcdir}" + + # restore the wine tree to its git origin state, without wine-staging patches + # (necessary for reapllying wine-staging patches in succedent builds, + # otherwise the patches will fail to be reapplied) + msg2 'Cleaning wine source code tree...' + git reset --hard HEAD # restore tracked files + git clean -xdf # delete untracked files + + # change back to the wine upstream commit that this version of wine-staging is based in + msg2 'Changing wine HEAD to the wine-staging base commit...' + git checkout "$(../"$_stgsrcdir"/patches/patchinstall.sh --upstream-commit)" + + # workaround for FS#55128 + # https://bugs.archlinux.org/task/55128 + # https://bugs.winehq.org/show_bug.cgi?id=43530 + export CFLAGS="${CFLAGS/-fno-plt/}" + export LDFLAGS="${LDFLAGS/,-z,now/}" + + patch -Np1 < ../'harmony-fix.diff' + + # apply all wine-staging patches + msg2 'Applying wine-staging patches...' + "${srcdir}"/"${_stgsrcdir}"/patches/patchinstall.sh DESTDIR="${srcdir}/${_winesrcdir}" --all + + # apply wine-pba patches + for _f in $(ls "${srcdir}"/"${_pbadir}"/'patches'); do + patch -d "${srcdir}"/"${_winesrcdir}" -Np1 < "${srcdir}"/"${_pbadir}"/'patches'/"${_f}" + done + + # fix path of opencl headers + sed 's|OpenCL/opencl.h|CL/opencl.h|g' -i configure* + + # delete old build dirs (from previous builds) and make new ones + rm -rf "${srcdir}"/"${pkgname}"-{32,64}-build + mkdir -p "${srcdir}"/"${pkgname}"-64-build + mkdir -p "${srcdir}"/"${pkgname}"-32-build + +} + +pkgver() { + # retrieve current wine development version + cd "${srcdir}/${_winesrcdir}" + _wine_version="$(git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//;s/\.rc/rc/')" + + # retrieve current staging version + cd "${srcdir}/${_stgsrcdir}" + _staging_tag="$(git tag --sort='version:refname' | tail -n1 | sed 's/-/./g;s/^v//;s/\.rc/rc/')" + _staging_version=$(printf "%s.r%s.%s" "${_staging_tag}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)") + + # retrieve current wine-pba version + cd "${srcdir}/${_pbadir}" + _pba_version=$(printf "pba.r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)") + + # version string might be a bit over the top, + # but I want the build versions of all the 3 source repositories in it. + printf '%s+%s+%s' "$_staging_version" "$_wine_version" "$_pba_version" +} + +build() { + cd "${srcdir}" + + # build wine-staging 64-bit + # (according to the wine wiki, this 64-bit/32-bit building order is mandatory) + msg2 'Building Wine-64...' + cd "${srcdir}"/"${pkgname}"-64-build + ../${_winesrcdir}/configure \ + --prefix='/usr' \ + --libdir='/usr/lib' \ + --with-x \ + --with-gstreamer \ + --enable-win64 \ + --with-xattr \ + --disable-tests + # Gstreamer was disabled for FS#33655 + + make -j 7 + + # build wine-staging 32-bit + export PKG_CONFIG_PATH='/usr/lib32/pkgconfig' + msg2 'Building Wine-32...' + cd "${srcdir}/${pkgname}"-32-build + ../${_winesrcdir}/configure \ + --prefix='/usr' \ + --libdir='/usr/lib32' \ + --with-x \ + --with-gstreamer \ + --with-xattr \ + --with-wine64="${srcdir}/${pkgname}"-64-build \ + --disable-tests + + make -j 7 +} + +package() { + + # package wine-staging 32-bit + # (according to the wine wiki, this reverse 32-bit/64-bit packaging order is important) + msg2 'Packaging Wine-32...' + cd "${srcdir}/${pkgname}"-32-build + make -j 7 prefix="${pkgdir}/usr" \ + libdir="${pkgdir}/usr/lib32" \ + dlldir="${pkgdir}/usr/lib32/wine" install + + # package wine-staging 64-bit + msg2 'Packaging Wine-64...' + cd "${srcdir}/${pkgname}"-64-build + make -j 7 prefix="${pkgdir}/usr" \ + libdir="${pkgdir}/usr/lib" \ + dlldir="${pkgdir}/usr/lib/wine" install + + # freetype font smoothing 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" + + # wine binfmt + install -Dm 644 "${srcdir}/wine-binfmt.conf" "${pkgdir}/usr/lib/binfmt.d/wine.conf" +} diff --git a/harmony-fix.diff b/harmony-fix.diff new file mode 100644 index 000000000000..fe0c8c929d4a --- /dev/null +++ b/harmony-fix.diff @@ -0,0 +1,63 @@ +diff -u -r wine/dlls/gdi32/freetype.c wine-ft281/dlls/gdi32/freetype.c +--- wine/dlls/gdi32/freetype.c 2017-10-04 18:01:36.000000000 +0200 ++++ wine-ft281/dlls/gdi32/freetype.c 2017-10-10 10:29:17.506632615 +0200 +@@ -996,18 +996,23 @@ + + static BOOL is_subpixel_rendering_enabled( void ) + { +-#ifdef FT_LCD_FILTER_H + static int enabled = -1; + if (enabled == -1) + { +- enabled = (pFT_Library_SetLcdFilter && +- pFT_Library_SetLcdFilter( NULL, 0 ) != FT_Err_Unimplemented_Feature); ++ /* >= 2.8.1 provides LCD rendering without filters */ ++ if (FT_Version.major > 2 || ++ FT_Version.major == 2 && FT_Version.minor > 8 || ++ FT_Version.major == 2 && FT_Version.minor == 8 && FT_Version.patch >= 1) ++ enabled = TRUE; ++#ifdef FT_LCD_FILTER_H ++ else if (pFT_Library_SetLcdFilter && ++ pFT_Library_SetLcdFilter( NULL, 0 ) != FT_Err_Unimplemented_Feature) ++ enabled = TRUE; ++#endif ++ else enabled = FALSE; + TRACE("subpixel rendering is %senabled\n", enabled ? "" : "NOT "); + } + return enabled; +-#else +- return FALSE; +-#endif + } + + +@@ -7271,7 +7276,6 @@ + case WINE_GGO_HBGR_BITMAP: + case WINE_GGO_VRGB_BITMAP: + case WINE_GGO_VBGR_BITMAP: +-#ifdef FT_LCD_FILTER_H + { + switch (ft_face->glyph->format) + { +@@ -7357,8 +7361,11 @@ + if ( needsTransform ) + pFT_Outline_Transform (&ft_face->glyph->outline, &transMatTategaki); + ++#ifdef FT_LCD_FILTER_H + if ( pFT_Library_SetLcdFilter ) + pFT_Library_SetLcdFilter( library, FT_LCD_FILTER_DEFAULT ); ++#endif ++ + pFT_Render_Glyph (ft_face->glyph, render_mode); + + src = ft_face->glyph->bitmap.buffer; +@@ -7439,9 +7446,6 @@ + + break; + } +-#else +- return GDI_ERROR; +-#endif + + case GGO_NATIVE: + { diff --git a/wine-binfmt.conf b/wine-binfmt.conf new file mode 100644 index 000000000000..fb8d0cf47ec3 --- /dev/null +++ b/wine-binfmt.conf @@ -0,0 +1,3 @@ +# Start WINE on Windows executables +:DOSWin:M::MZ::/usr/bin/wine: + diff --git a/wine.install b/wine.install new file mode 100644 index 000000000000..8112fbe2d905 --- /dev/null +++ b/wine.install @@ -0,0 +1,9 @@ +post_install() { + echo "Run 'systemctl restart systemd-binfmt' in order to make the wine +binfmt available on your system." +} + +post_remove() { + echo "binfmt binary formats will be updated at reboot" +} + |