summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Norberg2018-03-08 16:39:18 +0100
committerLars Norberg2018-03-08 16:39:18 +0100
commita751585a7edc5f09e3bf00d3c833df4f4b8b8500 (patch)
treea7d6414c213fc025e86558f3eca943104debcad0
downloadaur-a751585a7edc5f09e3bf00d3c833df4f4b8b8500.tar.gz
initial
-rw-r--r--.SRCINFO189
-rw-r--r--30-win32-aliases.conf20
-rw-r--r--PKGBUILD232
-rw-r--r--harmony-fix.diff63
-rw-r--r--wine-binfmt.conf3
-rw-r--r--wine.install9
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"
+}
+