# Maintainer: loathingkernel # Contributor: Felix Yan # Contributor: Sven-Hendrik Haase # Contributor: Jan "heftig" Steffens # Contributor: Eduardo Romero # Contributor: Giovanni Scafora pkgname=wine-ge-custom _srctag=GE-Proton8-26 _commit=21f5f463cb761b94bcd00553f924f55516389f5b pkgver=${_srctag//-/.} pkgrel=5 epoch=1 _pkgbasever=${pkgver/rc/-rc} _winever=$_pkgbasever #_winever=${_pkgbasever%.*} source=(wine-ge-custom::git+https://github.com/GloriousEggroll/wine-ge-custom.git#commit=${_commit} 30-win32-aliases.conf wine-binfmt.conf) source+=( 0001-fshack-fix-image-corruption-on-ANV-and-HD-Graphics-6.patch 0002-fshack-mark-monitor-mode-structs-and-fsr-ratio-float.patch wine-wmclass.patch wine-isolate_home.patch ) sha512sums=('f136761fc72ce7abcda5ed195c6757db6a3fe0b028c657a588f95aa503bb4528504342b61d93aa3b56c9d3b282c400cdb63b09bbc57e811494de87f7a8695558' '6e54ece7ec7022b3c9d94ad64bdf1017338da16c618966e8baf398e6f18f80f7b0576edf1d1da47ed77b96d577e4cbb2bb0156b0b11c183a0accf22654b0a2bb' 'bdde7ae015d8a98ba55e84b86dc05aca1d4f8de85be7e4bd6187054bfe4ac83b5a20538945b63fb073caab78022141e9545685e4e3698c97ff173cf30859e285') sha512sums+=( '8d760b5b98d251638a397554405acd665df9926b3691afac96edc01442a571b626e463e66ce1cf0629f7a590c2178ea3ea8e749ab6f9840ae527831d76229ae5' '2e337093ff4d8065e51f9329b7008ebf797a32a1dee2755fbe723a24563437a7bca6664ad5f107c3c174a678332a87225b2a36f0d8fcbf72a8f15902095923b3' '30437d8ee92c5741fa50a7fe346ccfc48ba809dad0d740903a05a67781d23ea38a5094038a070a253e3fdd8046783b46a5420df6361bdd30cb229d3d88107569' '3dcdbd523fcbe79b9e9e9b026b9d0a5edf296514c7b48bd465d2dc05a8ca08e23ba8817e2de08edfe52286a2a2f81db42b65f71254cabe496752b9d45131d282' ) 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 !debug) license=(LGPL-2.1-or-later) depends=( attr lib32-attr fontconfig lib32-fontconfig libxcursor lib32-libxcursor libxrandr lib32-libxrandr libxi lib32-libxi gettext lib32-gettext freetype2 lib32-freetype2 gcc-libs lib32-gcc-libs libpcap lib32-libpcap desktop-file-utils ) makedepends=(autoconf bison perl flex mingw-w64-gcc git python giflib lib32-giflib gnutls lib32-gnutls libxinerama lib32-libxinerama libxcomposite lib32-libxcomposite libxxf86vm lib32-libxxf86vm 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 libpulse lib32-libpulse libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs gst-plugins-good lib32-gst-plugins-good vulkan-icd-loader lib32-vulkan-icd-loader sdl2 lib32-sdl2 libcups lib32-libcups sane libgphoto2 ffmpeg samba opencl-headers ) optdepends=( giflib lib32-giflib gnutls lib32-gnutls v4l-utils lib32-v4l-utils libpulse lib32-libpulse alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libxcomposite lib32-libxcomposite libxinerama lib32-libxinerama opencl-icd-loader lib32-opencl-icd-loader libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs gst-plugins-good lib32-gst-plugins-good vulkan-icd-loader lib32-vulkan-icd-loader sdl2 lib32-sdl2 sane libgphoto2 ffmpeg cups samba dosbox ) provides=("wine=8.0") conflicts=('wine') install=wine.install prepare() { # Get rid of old build dirs rm -rf $pkgname-{32,64}-build mkdir $pkgname-{32,64}-build pushd $pkgname git remote set-url origin https://github.com/gloriouseggroll/wine-ge-custom.git git submodule update --init --filter=tree:0 --recursive proton-wine pushd proton-wine patch -p1 -i "$srcdir"/0001-fshack-fix-image-corruption-on-ANV-and-HD-Graphics-6.patch patch -p1 -i "$srcdir"/0002-fshack-mark-monitor-mode-structs-and-fsr-ratio-float.patch patch -p1 -i "$srcdir"/wine-wmclass.patch patch -p1 -i "$srcdir"/wine-isolate_home.patch git config user.email "makepkg@aur.not" git config user.name "makepkg aur" git tag wine-ge-8.0 --annotate -m "$pkgver" ./dlls/winevulkan/make_vulkan -x vk.xml ./tools/make_specfiles ./tools/make_requests autoreconf -fiv popd popd } build() { # Doesn't compile without remove these flags as of 4.10 export CFLAGS="$CFLAGS -ffat-lto-objects" local -a split=($CFLAGS) local -A flags for opt in "${split[@]}"; do flags["${opt%%=*}"]="${opt##*=}"; done local march="${flags["-march"]:-nocona}" local mtune="generic" #"${flags["-mtune"]:-core-avx2}" # From Proton OPTIMIZE_FLAGS="-O3 -march=$march -mtune=$mtune -mfpmath=sse -pipe -fno-semantic-interposition" SANITY_FLAGS="-fwrapv -fno-strict-aliasing" WARNING_FLAGS="-Wno-incompatible-pointer-types" COMMON_FLAGS="$OPTIMIZE_FLAGS $SANITY_FLAGS $WARNING_FLAGS -s" export LDFLAGS="-Wl,-O1,--sort-common,--as-needed" export CROSSLDFLAGS="$LDFLAGS -Wl,--file-alignment,4096" cd "$srcdir" msg2 "Building Wine-64..." export CFLAGS="$COMMON_FLAGS -mcmodel=small" export CXXFLAGS="$COMMON_FLAGS -mcmodel=small -std=c++17" export CROSSCFLAGS="$CFLAGS" export CROSSCXXFLAGS="$CXXFLAGS" export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig" cd "$srcdir/$pkgname-64-build" ../$pkgname/proton-wine/configure \ --prefix=/usr \ --libdir=/usr/lib \ --with-x \ --with-gstreamer \ --with-mingw \ --with-alsa \ --without-oss \ --disable-winemenubuilder \ --disable-tests \ --enable-win64 \ --with-xattr make msg2 "Building Wine-32..." # Disable AVX instead of using 02, for 32bit export CFLAGS="$COMMON_FLAGS -mstackrealign -mno-avx" export CXXFLAGS="$COMMON_FLAGS -mstackrealign -mno-avx -std=c++17" export CROSSCFLAGS="$CFLAGS" export CROSSCXXFLAGS="$CXXFLAGS" export PKG_CONFIG_PATH="/usr/lib32/pkgconfig:/usr/share/pkgconfig" cd "$srcdir/$pkgname-32-build" ../$pkgname/proton-wine/configure \ --prefix=/usr \ --with-x \ --with-gstreamer \ --with-mingw \ --with-alsa \ --without-oss \ --disable-winemenubuilder \ --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} #find "$pkgdir"/usr/lib{,32}/wine -iname "*.a" -delete #find "$pkgdir"/usr/lib{,32}/wine -iname "*.def" -delete } # vim:set ts=8 sts=2 sw=2 et: