diff options
author | Stelios Tsampas | 2021-09-02 01:02:00 +0300 |
---|---|---|
committer | Stelios Tsampas | 2021-09-02 01:06:08 +0300 |
commit | 4b4ea1df13284fffbee3584ac7e06cac53706a83 (patch) | |
tree | d6972058d8937c393fbcaa9a83e680ef82ec1393 | |
download | aur-4b4ea1df13284fffbee3584ac7e06cac53706a83.tar.gz |
Version 6.16-GE-1
-rw-r--r-- | .SRCINFO | 174 | ||||
-rw-r--r-- | 30-win32-aliases.conf | 20 | ||||
-rw-r--r-- | PKGBUILD | 234 | ||||
-rw-r--r-- | wine-binfmt.conf | 2 | ||||
-rw-r--r-- | wine-ge-custom-more_8x5_res.patch | 15 | ||||
-rw-r--r-- | wine-ge-custom-wmclass.patch | 24 | ||||
-rw-r--r-- | wine.install | 7 |
7 files changed, 476 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..154fdab960fd --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,174 @@ +pkgbase = wine-ge-custom + pkgdesc = A compatibility layer for running Windows programs - GloriousEggroll branch + pkgver = 6.16.GE.1 + pkgrel = 1 + url = https://github.com/GloriousEggroll/wine-ge-custom + install = wine.install + arch = x86_64 + arch = x86_64_v3 + license = LGPL + makedepends = autoconf + makedepends = bison + makedepends = perl + makedepends = fontforge + makedepends = flex + makedepends = mingw-w64-gcc + makedepends = git + 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 = mesa-libgl + makedepends = lib32-mesa-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 = sdl2 + makedepends = lib32-sdl2 + makedepends = vkd3d + makedepends = lib32-vkd3d + makedepends = libcups + makedepends = lib32-libcups + makedepends = sane + makedepends = libgphoto2 + makedepends = gsm + makedepends = ffmpeg + makedepends = samba + makedepends = opencl-headers + 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 = faudio + depends = lib32-faudio + 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 = opencl-icd-loader + optdepends = lib32-opencl-icd-loader + optdepends = libxslt + optdepends = lib32-libxslt + 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 = sdl2 + optdepends = lib32-sdl2 + optdepends = vkd3d + optdepends = lib32-vkd3d + optdepends = sane + optdepends = libgphoto2 + optdepends = gsm + optdepends = ffmpeg + optdepends = cups + optdepends = samba + optdepends = dosbox + provides = wine=6.16.GE.1 + provides = wine-wow64=6.16.GE.1 + conflicts = wine + conflicts = wine-wow64 + options = !staticlibs + options = !lto + source = wine-ge-custom::git+https://github.com/GloriousEggroll/wine-ge-custom#tag=6.16-GE-1 + source = wine-gloriouseggroll::git+https://github.com/GloriousEggroll/wine.git + source = wine-ge-custom-more_8x5_res.patch + source = wine-ge-custom-wmclass.patch + source = 30-win32-aliases.conf + source = wine-binfmt.conf + validpgpkeys = 5AC1A08B03BD7A313E0A955AF5E6E9EEB9461DD7 + validpgpkeys = DA23579A74D4AD9AF9D3F945CEFAC8EAAF17519D + sha512sums = SKIP + sha512sums = SKIP + sha512sums = SKIP + sha512sums = SKIP + sha512sums = 6e54ece7ec7022b3c9d94ad64bdf1017338da16c618966e8baf398e6f18f80f7b0576edf1d1da47ed77b96d577e4cbb2bb0156b0b11c183a0accf22654b0a2bb + sha512sums = bdde7ae015d8a98ba55e84b86dc05aca1d4f8de85be7e4bd6187054bfe4ac83b5a20538945b63fb073caab78022141e9545685e4e3698c97ff173cf30859e285 + +pkgname = wine-ge-custom 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..6ce8fada1bd7 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,234 @@ +# Maintainer: loathingkernel <loathingkernel _a_ gmail _d_ com> +# Contributor: Felix Yan <felixonmars@archlinux.org> +# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com> +# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com> +# Contributor: Eduardo Romero <eduardo@archlinux.org> +# Contributor: Giovanni Scafora <giovanni@archlinux.org> + +pkgname=wine-ge-custom +_srctag=6.16-GE-1 +pkgver=${_srctag//-/.} +pkgrel=1 + +#_winever=${pkgver%.*} +_winever=$pkgver +_pkgbasever=${pkgver/rc/-rc} + +source=(wine-ge-custom::git+https://github.com/GloriousEggroll/wine-ge-custom#tag=$_srctag + wine-gloriouseggroll::git+https://github.com/GloriousEggroll/wine.git + wine-ge-custom-more_8x5_res.patch + wine-ge-custom-wmclass.patch + 30-win32-aliases.conf + wine-binfmt.conf) +sha512sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + '6e54ece7ec7022b3c9d94ad64bdf1017338da16c618966e8baf398e6f18f80f7b0576edf1d1da47ed77b96d577e4cbb2bb0156b0b11c183a0accf22654b0a2bb' + 'bdde7ae015d8a98ba55e84b86dc05aca1d4f8de85be7e4bd6187054bfe4ac83b5a20538945b63fb073caab78022141e9545685e4e3698c97ff173cf30859e285') +validpgpkeys=(5AC1A08B03BD7A313E0A955AF5E6E9EEB9461DD7 + DA23579A74D4AD9AF9D3F945CEFAC8EAAF17519D) + +pkgdesc="A compatibility layer for running Windows programs - GloriousEggroll branch" +url="https://github.com/GloriousEggroll/wine-ge-custom" +arch=(x86_64 x86_64_v3) +options=(!staticlibs !lto) +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 + faudio lib32-faudio + desktop-file-utils +) + +makedepends=(autoconf bison perl fontforge flex mingw-w64-gcc git + 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 + mesa-libgl lib32-mesa-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 + sdl2 lib32-sdl2 + vkd3d lib32-vkd3d + libcups lib32-libcups + sane + libgphoto2 + gsm + ffmpeg + samba + opencl-headers +) + +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 + opencl-icd-loader lib32-opencl-icd-loader + libxslt lib32-libxslt + libva lib32-libva + gtk3 lib32-gtk3 + gst-plugins-base-libs lib32-gst-plugins-base-libs + vulkan-icd-loader lib32-vulkan-icd-loader + sdl2 lib32-sdl2 + vkd3d lib32-vkd3d + sane + libgphoto2 + gsm + ffmpeg + cups + samba dosbox +) + +provides=("wine=$pkgver" "wine-wow64=$pkgver") +conflicts=('wine' 'wine-wow64') +install=wine.install + +prepare() { + + pushd $pkgname + git submodule init wine + git config submodule.wine.url "$srcdir"/wine-gloriouseggroll + git submodule update wine + pushd wine + patch -p1 -i "$srcdir"/wine-ge-custom-more_8x5_res.patch + patch -p1 -i "$srcdir"/wine-ge-custom-wmclass.patch + dlls/winevulkan/make_vulkan + tools/make_requests + autoreconf -f + popd + popd + + export CFLAGS="-O3 -march=nocona -mtune=core-avx2 -pipe" + export CXXFLAGS="-O3 -march=nocona -mtune=core-avx2 -pipe" + # Doesn't compile without remove these flags as of 4.10 + export CFLAGS="${CFLAGS/-fno-plt/}" + export CXXFLAGS="${CXXFLAGS/-fno-plt/}" + export LDFLAGS="${LDFLAGS/,-z,now/}" + # MingW Wine builds fail with relro + export LDFLAGS="${LDFLAGS/,-z,relro/}" + # Disable AVX instead of using 02, same as dxvk, the rest are from Proton + export CFLAGS+=" -mno-avx -mfpmath=sse -fwrapv -fno-strict-aliasing -gdwarf-2 -gstrict-dwarf" + export CXXFLAGS+=" -mno-avx -mfpmath=sse -fwrapv -fno-strict-aliasing -gdwarf-2 -gstrict-dwarf -std=c++17" + + export CROSSCFLAGS="$CFLAGS" + export CROSSCXXFLAGS="$CXXFLAGS" + export CROSSLDFLAGS="$LDFGFLAGS -Wl,--file-alignment,4096" + + sed 's|OpenCL/opencl.h|CL/opencl.h|g' -i $pkgname/wine/configure* + + # Get rid of old build dirs + rm -rf $pkgname-{32,64}-build + mkdir $pkgname-{32,64}-build +} + +build() { + cd "$srcdir" + + msg2 "Building Wine-64..." + + cd "$srcdir/$pkgname-64-build" + ../$pkgname/wine/configure \ + --prefix=/usr \ + --libdir=/usr/lib \ + --with-x \ + --with-faudio \ + --with-gstreamer \ + --with-mingw \ + --with-alsa \ + --without-oss \ + --disable-winemenubuilder \ + --disable-win16 \ + --disable-tests \ + --enable-win64 \ + --with-xattr + + make + + msg2 "Building Wine-32..." + + export CFLAGS+=" -mstackrealign" + export CXXFLAGS+=" -mstackrealign" + export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" + cd "$srcdir/$pkgname-32-build" + ../$pkgname/wine/configure \ + --prefix=/usr \ + --with-x \ + --with-faudio \ + --with-gstreamer \ + --with-mingw \ + --with-alsa \ + --without-oss \ + --disable-winemenubuilder \ + --disable-win16 \ + --disable-tests \ + --with-xattr \ + --libdir=/usr/lib32 \ + --with-wine64="$srcdir/$pkgname-64-build" + + make +} + +package() { + msg2 "Packaging Wine-32..." + cd "$srcdir/$pkgname-32-build" + + 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 + + # Font aliasing settings for Win32 applications + install -d "$pkgdir"/usr/share/fontconfig/conf.{avail,default} + install -m644 "$srcdir/30-win32-aliases.conf" "$pkgdir/usr/share/fontconfig/conf.avail" + ln -s ../conf.avail/30-win32-aliases.conf "$pkgdir/usr/share/fontconfig/conf.default/30-win32-aliases.conf" + install -Dm 644 "$srcdir/wine-binfmt.conf" "$pkgdir/usr/lib/binfmt.d/wine.conf" + + i686-w64-mingw32-strip --strip-unneeded "$pkgdir"/usr/lib32/wine/i386-windows/*.{dll,exe} + x86_64-w64-mingw32-strip --strip-unneeded "$pkgdir"/usr/lib/wine/x86_64-windows/*.{dll,exe} +} + +# vim:set ts=8 sts=2 sw=2 et: diff --git a/wine-binfmt.conf b/wine-binfmt.conf new file mode 100644 index 000000000000..4d4307336587 --- /dev/null +++ b/wine-binfmt.conf @@ -0,0 +1,2 @@ +# Start WINE on Windows executables +:DOSWin:M::MZ::/usr/bin/wine: diff --git a/wine-ge-custom-more_8x5_res.patch b/wine-ge-custom-more_8x5_res.patch new file mode 100644 index 000000000000..acc09936ffd3 --- /dev/null +++ b/wine-ge-custom-more_8x5_res.patch @@ -0,0 +1,15 @@ +diff --git a/dlls/winex11.drv/fs.c b/dlls/winex11.drv/fs.c +index c37899605e7..6470d2ffbb9 100644 +--- a/dlls/winex11.drv/fs.c ++++ b/dlls/winex11.drv/fs.c +@@ -78,6 +78,10 @@ static struct fs_monitor_size fs_monitor_sizes[] = + {2880, 1620}, /* 16:9 */ + {2954, 1662}, /* 16:9 - 'FSR 2160p Ultra Quality' */ + {3200, 1800}, /* 16:9 */ ++ {640, 400}, /* 8:5 */ ++ {840, 525}, /* 8:5 */ ++ {960, 600}, /* 8:5 */ ++ {1280, 800}, /* 8:5 */ + {1440, 900}, /* 8:5 */ + {1680, 1050}, /* 8:5 */ + {1920, 1200}, /* 8:5 */ diff --git a/wine-ge-custom-wmclass.patch b/wine-ge-custom-wmclass.patch new file mode 100644 index 000000000000..43595d6a89b8 --- /dev/null +++ b/wine-ge-custom-wmclass.patch @@ -0,0 +1,24 @@ +diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c +index 221f4392aa9..5485eb0f8e8 100644 +--- a/dlls/winex11.drv/window.c ++++ b/dlls/winex11.drv/window.c +@@ -1034,8 +1034,17 @@ static void set_initial_wm_hints( Display *display, Window window ) + /* class hints */ + if ((class_hints = XAllocClassHint())) + { +- class_hints->res_name = process_name; +- class_hints->res_class = process_name; ++ const char *wine_wmclass = getenv("WINE_WMCLASS"); ++ char window_class[128]; ++ ++ if (wine_wmclass && *wine_wmclass){ ++ snprintf(window_class, sizeof(window_class), "%s", wine_wmclass); ++ class_hints->res_name = window_class; ++ class_hints->res_class = window_class; ++ } else { ++ class_hints->res_name = process_name; ++ class_hints->res_class = process_name; ++ } + XSetClassHint( display, window, class_hints ); + XFree( class_hints ); + } diff --git a/wine.install b/wine.install new file mode 100644 index 000000000000..cbe10cc59dc7 --- /dev/null +++ b/wine.install @@ -0,0 +1,7 @@ +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" +} |