diff options
author | Stelios Tsampas | 2022-12-05 14:06:01 +0200 |
---|---|---|
committer | Stelios Tsampas | 2022-12-05 14:06:01 +0200 |
commit | 5d0a4736722c39923402d41004767cde8026a340 (patch) | |
tree | 5b8df385ead5b51b4a16550a267ed3e211480403 | |
parent | 040a5837ced4e1714ff4cbfb5dcb6b3c44d75de1 (diff) | |
download | aur-5d0a4736722c39923402d41004767cde8026a340.tar.gz |
[proton-experimentail] Version 7.0-20221129
-rw-r--r-- | .SRCINFO | 16 | ||||
-rw-r--r-- | 0001-AUR-pkgbuild-changes.patch | 27 | ||||
-rw-r--r-- | PKGBUILD | 16 | ||||
-rw-r--r-- | PKGBUILD.testing | 391 |
4 files changed, 422 insertions, 28 deletions
@@ -1,7 +1,7 @@ pkgbase = proton-experimental pkgdesc = Compatibility tool for Steam Play based on Wine and additional components, experimental branch - pkgver = 7.0.20221102 - pkgrel = 2 + pkgver = 7.0.20221129 + pkgrel = 1 epoch = 1 url = https://github.com/ValveSoftware/Proton install = proton-experimental.install @@ -210,11 +210,11 @@ pkgbase = proton-experimental provides = proton noextract = wine-gecko-2.47.3-x86.tar.xz noextract = wine-gecko-2.47.3-x86_64.tar.xz - noextract = wine-mono-7.3.1-x86.tar.xz + noextract = wine-mono-7.4.0-x86.tar.xz options = !staticlibs options = !lto options = emptydirs - source = proton::git+https://github.com/ValveSoftware/Proton.git#tag=experimental-7.0-20221102 + source = proton::git+https://github.com/ValveSoftware/Proton.git#tag=experimental-7.0-20221129 source = wine-valve::git+https://github.com/ValveSoftware/wine.git source = dxvk::git+https://github.com/doitsujin/dxvk.git source = openvr::git+https://github.com/ValveSoftware/openvr.git @@ -237,9 +237,10 @@ pkgbase = proton-experimental source = gst-plugins-rs::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git source = dxil-spirv::git+https://github.com/HansKristian-Work/dxil-spirv.git source = graphene::git+https://github.com/ebassi/graphene.git + source = libdisplay-info::git+https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info.git source = https://dl.winehq.org/wine/wine-gecko/2.47.3/wine-gecko-2.47.3-x86.tar.xz source = https://dl.winehq.org/wine/wine-gecko/2.47.3/wine-gecko-2.47.3-x86_64.tar.xz - source = https://github.com/madewokherd/wine-mono/releases/download/wine-mono-7.3.1/wine-mono-7.3.1-x86.tar.xz + source = https://github.com/madewokherd/wine-mono/releases/download/wine-mono-7.4.0/wine-mono-7.4.0-x86.tar.xz source = 0001-wldap32-25946b48148784e8275c1685f6498ab88f553ca3.patch source = 0001-AUR-pkgbuild-changes.patch sha256sums = SKIP @@ -265,10 +266,11 @@ pkgbase = proton-experimental sha256sums = SKIP sha256sums = SKIP sha256sums = SKIP + sha256sums = SKIP sha256sums = 08d318f3dd6440a8a777cf044ccab039b0d9c8809991d2180eb3c9f903135db3 sha256sums = 0beac419c20ee2e68a1227b6e3fa8d59fec0274ed5e82d0da38613184716ef75 - sha256sums = 55ca808868599b1d8ad53b222b8cb26fd96fa818c511163e361238025c76e9fe + sha256sums = 9249ece664bcf2fecb1308ea1d2542c72923df9fe3df891986f137b2266a9ba3 sha256sums = 11aa65bb6b8da1814557edf18a3cdada80135b021634236feabf93d2a194838b - sha256sums = 6e0b8438dd3e0c56e5b9626ccb47d38a442358b0676335af77afcb86f8391572 + sha256sums = caa5cdc0be010cf81ccc4478cf5b472090d648d2782a5816281fa3e0270a59ff pkgname = proton-experimental diff --git a/0001-AUR-pkgbuild-changes.patch b/0001-AUR-pkgbuild-changes.patch index 492f446285ec..79cfd54e998f 100644 --- a/0001-AUR-pkgbuild-changes.patch +++ b/0001-AUR-pkgbuild-changes.patch @@ -1,10 +1,10 @@ -From a1948c5b463b1292aca5723c42beb8c04c6f7497 Mon Sep 17 00:00:00 2001 +From c268b2b0eba7d8683a90d04c1a25cf5fafac4eb1 Mon Sep 17 00:00:00 2001 From: Stelios Tsampas <loathingkernel@gmail.com> Date: Mon, 18 Oct 2021 21:31:31 +0300 Subject: [PATCH] AUR pkgbuild changes --- - Makefile.in | 70 ++++++++++++++++++++++++++++------ + Makefile.in | 69 ++++++++++++++++++++++++++++------ compatibilitytool.vdf.template | 2 +- configure.sh | 2 + make/rules-autoconf.mk | 4 +- @@ -15,10 +15,10 @@ Subject: [PATCH] AUR pkgbuild changes make/rules-meson.mk | 3 +- make/rules-winemaker.mk | 2 +- proton | 6 +-- - 11 files changed, 87 insertions(+), 32 deletions(-) + 11 files changed, 86 insertions(+), 32 deletions(-) diff --git a/Makefile.in b/Makefile.in -index 95d926e..f84c895 100644 +index 3400a2f..245a10c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -63,7 +63,6 @@ ifeq ($(ENABLE_CCACHE),1) @@ -182,12 +182,7 @@ index 95d926e..f84c895 100644 $(eval $(call rules-source,dxvk-nvapi,$(SRCDIR)/dxvk-nvapi)) $(eval $(call rules-meson,dxvk-nvapi,32,CROSS)) $(eval $(call rules-meson,dxvk-nvapi,64,CROSS)) -@@ -891,10 +935,14 @@ VKD3D_PROTON_SOURCE_ARGS = \ - --exclude vkd3d_build.h.in \ - --exclude vkd3d_version.h.in \ - -+VKD3D_PROTON_MESON_ARGS = -Denable_d3d12=true - VKD3D_PROTON_MESON_ARGS32 = --bindir=$(VKD3D_PROTON_DST32)/lib/wine/vkd3d-proton +@@ -895,6 +939,9 @@ VKD3D_PROTON_MESON_ARGS32 = --bindir=$(VKD3D_PROTON_DST32)/lib/wine/vkd3d-proton VKD3D_PROTON_MESON_ARGS64 = --bindir=$(VKD3D_PROTON_DST64)/lib64/wine/vkd3d-proton VKD3D_PROTON_DEPENDS = glslang @@ -197,7 +192,7 @@ index 95d926e..f84c895 100644 $(eval $(call rules-source,vkd3d-proton,$(SRCDIR)/vkd3d-proton)) $(eval $(call rules-meson,vkd3d-proton,32,CROSS)) $(eval $(call rules-meson,vkd3d-proton,64,CROSS)) -@@ -1132,14 +1180,14 @@ $(FONTS_OBJ)/source-han/%.ttf: $$(%.ttf_CIDFONT) $$(%.ttf_FEATURES) $$(%.ttf_SEQ +@@ -1132,14 +1179,14 @@ $(FONTS_OBJ)/source-han/%.ttf: $$(%.ttf_CIDFONT) $$(%.ttf_FEATURES) $$(%.ttf_SEQ mkdir -p $(FONTS_OBJ)/source-han # Do not immediately create the target file, so that make is interrupted # it will restart again @@ -215,7 +210,7 @@ index 95d926e..f84c895 100644 mv $@.tmp $@ $(FONTS_OBJ)/ume-gothic/%.ttf: $$(%.ttf_FONT) $$(%.ttf_NAMETABLE_PATCH) -@@ -1149,10 +1197,10 @@ $(FONTS_OBJ)/ume-gothic/%.ttf: $$(%.ttf_FONT) $$(%.ttf_NAMETABLE_PATCH) +@@ -1149,10 +1196,10 @@ $(FONTS_OBJ)/ume-gothic/%.ttf: $$(%.ttf_FONT) $$(%.ttf_NAMETABLE_PATCH) ttx -o $@ -m $($(notdir $@)_FONT) $(FONTS_OBJ)/ume-gothic/$(notdir $(basename $($(notdir $@)_NAMETABLE_PATCH))).ttx $(simsun.ttc): $(simsun.ttf) $(nsimsun.ttf) @@ -242,7 +237,7 @@ index 5ac60e8..e580cd2 100644 "from_oslist" "windows" "to_oslist" "linux" diff --git a/configure.sh b/configure.sh -index d743876..90b7aae 100755 +index 34e5bb0..66bfbb1 100755 --- a/configure.sh +++ b/configure.sh @@ -126,6 +126,7 @@ function configure() { @@ -414,7 +409,7 @@ index 69688a0..1c0d1d3 100644 winebuild --$(lastword $(subst ., ,$(4))) --fake-module -E "$(basename $(4)).spec" -o "$(4).fake" mkdir -p $$($(2)_LIBDIR$(3))/$(LIBDIR_WINE_$(3)) diff --git a/proton b/proton -index a79f166..f9767bf 100755 +index 42c4596..f1ea0da 100755 --- a/proton +++ b/proton @@ -417,7 +417,6 @@ class Proton: @@ -425,7 +420,7 @@ index a79f166..f9767bf 100755 def path(self, d): return self.base_dir + d -@@ -1599,8 +1598,6 @@ if __name__ == "__main__": +@@ -1604,8 +1603,6 @@ if __name__ == "__main__": g_proton = Proton(os.path.dirname(sys.argv[0])) @@ -434,7 +429,7 @@ index a79f166..f9767bf 100755 g_compatdata = CompatData(os.environ["STEAM_COMPAT_DATA_PATH"]) -@@ -1609,7 +1606,8 @@ if __name__ == "__main__": +@@ -1614,7 +1611,8 @@ if __name__ == "__main__": g_session.init_wine() if g_proton.missing_default_prefix(): @@ -1,12 +1,12 @@ # Maintainer: loathingkernel <loathingkernel _a_ gmail _d_ com> pkgname=proton-experimental -_srctag=7.0-20221102 +_srctag=7.0-20221129 _commit= pkgver=${_srctag//-/.} _geckover=2.47.3 -_monover=7.3.1 -pkgrel=2 +_monover=7.4.0 +pkgrel=1 epoch=1 pkgdesc="Compatibility tool for Steam Play based on Wine and additional components, experimental branch" url="https://github.com/ValveSoftware/Proton" @@ -125,6 +125,7 @@ source=( gst-plugins-rs::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git dxil-spirv::git+https://github.com/HansKristian-Work/dxil-spirv.git graphene::git+https://github.com/ebassi/graphene.git + libdisplay-info::git+https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info.git https://dl.winehq.org/wine/wine-gecko/${_geckover}/wine-gecko-${_geckover}-x86{,_64}.tar.xz https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${_monover}/wine-mono-${_monover}-x86.tar.xz 0001-wldap32-25946b48148784e8275c1685f6498ab88f553ca3.patch @@ -216,6 +217,10 @@ prepare() { git submodule set-url include/vulkan "$srcdir/Vulkan-Headers" git submodule set-url include/spirv "$srcdir/SPIRV-Headers" git -c protocol.file.allow=always submodule update include/{vulkan,spirv} + + git submodule init subprojects/libdisplay-info + git submodule set-url subprojects/libdisplay-info "$srcdir/libdisplay-info" + git -c protocol.file.allow=always submodule update subprojects/libdisplay-info popd pushd vkd3d-proton @@ -370,8 +375,9 @@ sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' + 'SKIP' '08d318f3dd6440a8a777cf044ccab039b0d9c8809991d2180eb3c9f903135db3' '0beac419c20ee2e68a1227b6e3fa8d59fec0274ed5e82d0da38613184716ef75' - '55ca808868599b1d8ad53b222b8cb26fd96fa818c511163e361238025c76e9fe' + '9249ece664bcf2fecb1308ea1d2542c72923df9fe3df891986f137b2266a9ba3' '11aa65bb6b8da1814557edf18a3cdada80135b021634236feabf93d2a194838b' - '6e0b8438dd3e0c56e5b9626ccb47d38a442358b0676335af77afcb86f8391572') + 'caa5cdc0be010cf81ccc4478cf5b472090d648d2782a5816281fa3e0270a59ff') diff --git a/PKGBUILD.testing b/PKGBUILD.testing new file mode 100644 index 000000000000..4b7c2702f44b --- /dev/null +++ b/PKGBUILD.testing @@ -0,0 +1,391 @@ +# Maintainer: loathingkernel <loathingkernel _a_ gmail _d_ com> + +pkgname=proton-experimental +_srctag=7.0-20221129 +_commit= +pkgver=${_srctag//-/.} +_geckover=2.47.3 +_monover=7.4.0 +pkgrel=1 +epoch=1 +pkgdesc="Compatibility tool for Steam Play based on Wine and additional components, experimental branch" +url="https://github.com/ValveSoftware/Proton" +arch=(x86_64 x86_64_v3) +options=(!staticlibs !lto emptydirs) +license=('custom') + +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 + lzo lib32-lzo + libxkbcommon lib32-libxkbcommon + libvpx lib32-libvpx + 'sdl2>=2.0.16' 'lib32-sdl2>=2.0.16' + libsoup lib32-libsoup + libgudev lib32-libgudev + desktop-file-utils + python + steam-native-runtime +) + +makedepends=(autoconf bison perl fontforge flex mingw-w64-gcc + git wget rsync mingw-w64-tools lld nasm meson cmake afdko python-pefile + glslang vulkan-headers + clang + 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>=2.0.16' 'lib32-sdl2>=2.0.16' + rust lib32-rust-libs + libgphoto2 + gsm lib32-gsm + 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 + libgphoto2 + gsm lib32-gsm + dosbox +) + +makedepends=(${makedepends[@]} ${depends[@]}) +provides=('proton') +install=${pkgname}.install +source=( + proton::git+https://github.com/ValveSoftware/Proton.git#tag=experimental-${_srctag} + wine-valve::git+https://github.com/ValveSoftware/wine.git + dxvk::git+https://github.com/doitsujin/dxvk.git + openvr::git+https://github.com/ValveSoftware/openvr.git + liberation-fonts::git+https://github.com/liberationfonts/liberation-fonts.git + gstreamer::git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git + gst-plugins-base::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.git + gst-plugins-good::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-good.git + gst-orc::git+https://gitlab.freedesktop.org/gstreamer/orc.git + vkd3d-proton::git+https://github.com/HansKristian-Work/vkd3d-proton.git + OpenXR-SDK::git+https://github.com/KhronosGroup/OpenXR-SDK.git + dxvk-nvapi::git+https://github.com/jp7677/dxvk-nvapi.git + vkd3d-valve::git+https://github.com/ValveSoftware/vkd3d.git + Vulkan-Headers::git+https://github.com/KhronosGroup/Vulkan-Headers.git + SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.git + Vulkan-Loader::git+https://github.com/KhronosGroup/Vulkan-Loader.git + glslang::git+https://github.com/KhronosGroup/glslang.git + gst-libav::git+https://gitlab.freedesktop.org/gstreamer/gst-libav.git + ffmpeg::git+https://git.ffmpeg.org/ffmpeg.git + dav1d::git+https://code.videolan.org/videolan/dav1d.git + gst-plugins-rs::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git + dxil-spirv::git+https://github.com/HansKristian-Work/dxil-spirv.git + graphene::git+https://github.com/ebassi/graphene.git + libdisplay-info::git+https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info.git + https://dl.winehq.org/wine/wine-gecko/${_geckover}/wine-gecko-${_geckover}-x86{,_64}.tar.xz + https://github.com/madewokherd/wine-mono/releases/download/wine-mono-${_monover}/wine-mono-${_monover}-x86.tar.xz + 0001-wldap32-25946b48148784e8275c1685f6498ab88f553ca3.patch + 0001-AUR-pkgbuild-changes.patch +) +# Optional patches +source+=( +) +noextract=( + wine-gecko-${_geckover}-{x86,x86_64}.tar.xz + wine-mono-${_monover}-x86.tar.xz +) + +_make_wrappers () { + # _arch prefix gcc ld as strip + local _i686=( "i686" "-m32" "-melf_i386" "--32" "elf32-i386") + local _x86_64=("x86_64" "-m64" "-melf_x86_64" "--64" "elf64-x86-64") + local _opts=(_i686 _x86_64) + declare -n _opt + for _opt in "${_opts[@]}"; do + for l in ar ranlib nm; do + ln -s /usr/bin/gcc-$l wrappers/${_opt[0]}-pc-linux-gnu-$l + done + for t in gcc g++; do + install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-$t <<EOF +#!/usr/bin/bash +$(which ccache 2> /dev/null) /usr/bin/$t ${_opt[1]} "\$@" +EOF + done + install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-ld <<EOF +#!/usr/bin/bash +/usr/bin/ld ${_opt[2]} "\$@" +EOF + install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-as <<EOF +#!/usr/bin/bash +/usr/bin/as ${_opt[3]} "\$@" +EOF + install -Dm755 /dev/stdin wrappers/${_opt[0]}-pc-linux-gnu-strip <<EOF +#!/usr/bin/bash +/usr/bin/strip -F ${_opt[4]} "\$@" +EOF + done +} + +prepare() { + + # Provide wrappers to compiler tools + rm -rf wrappers && mkdir wrappers + _make_wrappers + + [ ! -d gecko ] && mkdir gecko + mv wine-gecko-${_geckover}-x86{,_64}.tar.xz gecko/ + + [ ! -d mono ] && mkdir mono + mv wine-mono-${_monover}-x86.tar.xz mono/ + + [ ! -d build ] && mkdir build + cd proton + + _submodules=( + wine-valve::wine + dxvk + openvr + liberation-fonts::fonts/liberation-fonts + gstreamer + gst-plugins-base + gst-plugins-good + gst-orc + vkd3d-proton + OpenXR-SDK + dxvk-nvapi + vkd3d-valve::vkd3d + Vulkan-Headers + SPIRV-Headers + Vulkan-Loader + glslang + gst-libav + ffmpeg + dav1d + gst-plugins-rs + graphene + ) + + for submodule in "${_submodules[@]}"; do + git submodule init "${submodule#*::}" + git submodule set-url "${submodule#*::}" "$srcdir"/"${submodule%::*}" + git -c protocol.file.allow=always submodule update "${submodule#*::}" + done + + pushd dxvk + git submodule init include/{vulkan,spirv} + git submodule set-url include/vulkan "$srcdir/Vulkan-Headers" + git submodule set-url include/spirv "$srcdir/SPIRV-Headers" + git -c protocol.file.allow=always submodule update include/{vulkan,spirv} + + git submodule init subprojects/libdisplay-info + git submodule set-url subprojects/libdisplay-info "$srcdir/libdisplay-info" + git -c protocol.file.allow=always submodule update subprojects/libdisplay-info + popd + + pushd vkd3d-proton + for submodule in subprojects/{dxil-spirv,Vulkan-Headers,SPIRV-Headers}; do + git submodule init "${submodule}" + git submodule set-url "${submodule}" "$srcdir"/"${submodule#*/}" + git -c protocol.file.allow=always submodule update "${submodule}" + done + pushd subprojects/dxil-spirv + git submodule init third_party/spirv-headers + git submodule set-url third_party/spirv-headers "$srcdir"/SPIRV-Headers + git -c protocol.file.allow=always submodule update third_party/spirv-headers + popd + popd + + pushd dxvk-nvapi + git submodule init external/Vulkan-Headers + git submodule set-url external/Vulkan-Headers "$srcdir"/Vulkan-Headers + git -c protocol.file.allow=always submodule update external/Vulkan-Headers + # GCC 12 build failure + git cherry-pick -n 33bf3c7a6a3dc9e330cd338bf1877b5481c655e3 + popd + + for submodule in gst-plugins-rs media-converter; do + pushd $submodule + export RUSTUP_TOOLCHAIN=stable + export CARGO_HOME="${SRCDEST}"/proton-cargo + cargo update + cargo fetch --locked --target "i686-unknown-linux-gnu" + cargo fetch --locked --target "x86_64-unknown-linux-gnu" + popd + done + + pushd wine + # From Arch Wine + sed 's|OpenCL/opencl.h|CL/opencl.h|g' -i configure* + # Fix openldap 2.5+ detection + sed 's/-lldap_r/-lldap/' -i configure + # Fix wldap32 compilation on 32bit + patch -p1 -i "$srcdir"/0001-wldap32-25946b48148784e8275c1685f6498ab88f553ca3.patch + popd + + patch -p1 -i "$srcdir"/0001-AUR-pkgbuild-changes.patch + + # Remove repos from srcdir to save space + for submodule in "${_submodules[@]}"; do + rm -rf "$srcdir"/"${submodule%::*}" + done + rm -rf "$srcdir"/dxil-spirv + rm -rf "$srcdir"/Vulkan-Headers + rm -rf "$srcdir"/SPIRV-Headers +} + +build() { + export PATH="$(pwd)/wrappers:$PATH" + + cd build + ROOTLESS_CONTAINER="" \ + ../proton/configure.sh \ + --container-engine="none" \ + --proton-sdk-image="" \ + --steam-runtime=native \ + --no-proton-sdk \ + --build-name="${pkgname}" + + # By default export FLAGS used by proton and ignore makepkg + # This overrides FLAGS from makepkg.conf, if you comment these you are on your own + # If you want the "best" possible optimizations for your system you can use + # `-march=native` and remove the `-mtune=core-avx2` option. + export CFLAGS="-O2 -march=haswell -mtune=haswell -pipe -fno-semantic-interposition" + export CXXFLAGS="-O2 -march=haswell -mtune=haswell -pipe -fno-semantic-interposition" + export RUSTFLAGS="-C opt-level=2 -C target-cpu=haswell" + export LDFLAGS="-Wl,-O1,--sort-common,--as-needed" + + # If using -march=native and the CPU supports AVX, launching a d3d9 + # game can cause an Unhandled exception. The cause seems to be the + # combination of AVX instructions and tree vectorization (implied by O3), + # all tested archictures from sandybridge to haswell are affected. + # Since Wine 5.16 AVX is supported. Testing showed 32bit applications + # crashing with AVX regardless, but 64bit applications worked just fine. + # Relevant Wine issues + # https://bugs.winehq.org/show_bug.cgi?id=45289 + # https://bugs.winehq.org/show_bug.cgi?id=43516 + # AVX is "hard" disabled for 32bit in any case. + # AVX2 for 64bit is disabled below. + export CFLAGS+=" -mno-avx2" + export CXXFLAGS+=" -mno-avx2" + + export RUSTUP_TOOLCHAIN=stable + export CARGO_HOME="${SRCDEST}"/proton-cargo + export WINEESYNC=0 + export WINEFSYNC=0 + export DISPLAY= + SUBJOBS=$([[ "$MAKEFLAGS" =~ -j\ *([1-9][0-9]*) ]] && echo "${BASH_REMATCH[1]}" || echo "$(nproc)") \ + make -j1 dist +} + +package() { + cd build + + local _compatdir="$pkgdir/usr/share/steam/compatibilitytools.d" + mkdir -p "$_compatdir" + cp -rf --no-dereference --preserve=mode,links dist "$_compatdir/${pkgname}" + + mkdir -p "$pkgdir/usr/share/licenses/${pkgname}" + mv "$_compatdir/${pkgname}"/LICENSE{,.OFL} \ + "$pkgdir/usr/share/licenses/${pkgname}" + + cd "$_compatdir/${pkgname}/files" + # NOTE: Reduces size by 40 MiB, worth it + i686-w64-mingw32-strip --strip-unneeded \ + $(find lib/wine \( -iname fakedlls -or -iname i386-windows \) -prune -false -or -iname "*.dll" -or -iname "*.exe") + x86_64-w64-mingw32-strip --strip-unneeded \ + $(find lib64/wine \( -iname fakedlls -or -iname x86_64-windows \) -prune -false -or -iname "*.dll" -or -iname "*.exe") + + # NOTE: Reduces size by 38 MiB, worth it + local _geckodir="share/wine/gecko/wine-gecko-${_geckover}" + i686-w64-mingw32-strip --strip-unneeded \ + $(find "$_geckodir"-x86 -iname "*.dll" -or -iname "*.exe") + x86_64-w64-mingw32-strip --strip-unneeded \ + $(find "$_geckodir"-x86_64 -iname "*.dll" -or -iname "*.exe") + + # NOTE: Reduces size by 0.16 MiB, not worth it + local _monodir="share/wine/mono/wine-mono-${_monover}" + i686-w64-mingw32-strip --strip-unneeded \ + $(find "$_monodir"/lib/mono -iname "*.dll" -or -iname "*.exe") + i686-w64-mingw32-strip --strip-unneeded \ + "$_monodir"/lib/x86/*.dll \ + $(find "$_monodir" -iname "*x86.dll" -or -iname "*x86.exe") + x86_64-w64-mingw32-strip --strip-unneeded \ + "$_monodir"/lib/x86_64/*.dll \ + $(find "$_monodir" -iname "*x86_64.dll" -or -iname "*x86_64.exe") +} + +sha256sums=('SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + '08d318f3dd6440a8a777cf044ccab039b0d9c8809991d2180eb3c9f903135db3' + '0beac419c20ee2e68a1227b6e3fa8d59fec0274ed5e82d0da38613184716ef75' + '9249ece664bcf2fecb1308ea1d2542c72923df9fe3df891986f137b2266a9ba3' + '11aa65bb6b8da1814557edf18a3cdada80135b021634236feabf93d2a194838b' + 'SKIP') +sha256sums+=( +) |