diff options
author | Stelios Tsampas | 2022-02-19 00:50:19 +0200 |
---|---|---|
committer | Stelios Tsampas | 2022-02-19 00:50:19 +0200 |
commit | 8f0b9fb6d01a4cd363094ede6a3e0a9270cbf12e (patch) | |
tree | 0e891b1833210c790a86eb15bc6860da53a973e7 | |
parent | 2ba7dfabf04e8e17205239bd73a98fb8470e608e (diff) | |
download | aur-8f0b9fb6d01a4cd363094ede6a3e0a9270cbf12e.tar.gz |
Version 7.0-20220218b
-rw-r--r-- | .SRCINFO | 55 | ||||
-rw-r--r-- | PKGBUILD | 89 | ||||
-rw-r--r-- | proton-sanitize_makefile.patch | 142 | ||||
-rw-r--r-- | proton-user_compat_data.patch | 4 | ||||
-rw-r--r-- | wine-futex_waitv.patch | 104 |
5 files changed, 267 insertions, 127 deletions
@@ -1,14 +1,13 @@ pkgbase = proton-experimental pkgdesc = Compatibility tool for Steam Play based on Wine and additional components, experimental branch - pkgver = 6.3.20220119 - pkgrel = 3 + pkgver = 7.0.20220218b + pkgrel = 1 epoch = 1 url = https://github.com/ValveSoftware/Proton arch = x86_64 arch = x86_64_v3 license = custom makedepends = autoconf - makedepends = ncurses makedepends = bison makedepends = perl makedepends = fontforge @@ -26,6 +25,7 @@ pkgbase = proton-experimental makedepends = python-pip makedepends = glslang makedepends = vulkan-headers + makedepends = clang makedepends = giflib makedepends = lib32-giflib makedepends = libpng @@ -72,15 +72,10 @@ pkgbase = proton-experimental makedepends = lib32-vulkan-icd-loader makedepends = sdl2>=2.0.16 makedepends = lib32-sdl2>=2.0.16 - makedepends = libcups - makedepends = lib32-libcups makedepends = rust makedepends = lib32-rust-libs - makedepends = sane makedepends = libgphoto2 makedepends = gsm - makedepends = ffmpeg - makedepends = samba makedepends = opencl-headers makedepends = attr makedepends = lib32-attr @@ -110,6 +105,12 @@ pkgbase = proton-experimental makedepends = lib32-gcc-libs makedepends = libpcap makedepends = lib32-libpcap + makedepends = lzo + makedepends = lib32-lzo + makedepends = libxkbcommon + makedepends = lib32-libxkbcommon + makedepends = faudio + makedepends = lib32-faudio makedepends = sdl2>=2.0.16 makedepends = lib32-sdl2>=2.0.16 makedepends = desktop-file-utils @@ -143,6 +144,12 @@ pkgbase = proton-experimental depends = lib32-gcc-libs depends = libpcap depends = lib32-libpcap + depends = lzo + depends = lib32-lzo + depends = libxkbcommon + depends = lib32-libxkbcommon + depends = faudio + depends = lib32-faudio depends = sdl2>=2.0.16 depends = lib32-sdl2>=2.0.16 depends = desktop-file-utils @@ -174,8 +181,6 @@ pkgbase = proton-experimental optdepends = lib32-libxcomposite optdepends = libxinerama optdepends = lib32-libxinerama - optdepends = ncurses - optdepends = lib32-ncurses optdepends = opencl-icd-loader optdepends = lib32-opencl-icd-loader optdepends = libxslt @@ -188,26 +193,21 @@ pkgbase = proton-experimental optdepends = lib32-gst-plugins-base-libs optdepends = vulkan-icd-loader optdepends = lib32-vulkan-icd-loader - optdepends = sane optdepends = libgphoto2 optdepends = gsm - optdepends = ffmpeg - optdepends = cups - optdepends = samba optdepends = dosbox provides = proton noextract = wine-gecko-2.47.2-x86.tar.xz noextract = wine-gecko-2.47.2-x86_64.tar.xz - noextract = wine-mono-7.0.0-x86.tar.xz + noextract = wine-mono-7.1.2-x86.tar.xz options = !staticlibs options = !lto options = emptydirs - source = proton::git+https://github.com/ValveSoftware/Proton.git#tag=experimental-6.3-20220119 + source = proton::git+https://github.com/ValveSoftware/Proton.git#tag=experimental-7.0-20220218b source = wine-valve::git+https://github.com/ValveSoftware/wine.git source = dxvk-valve::git+https://github.com/ValveSoftware/dxvk.git source = openvr::git+https://github.com/ValveSoftware/openvr.git source = liberation-fonts::git+https://github.com/liberationfonts/liberation-fonts.git - source = FAudio::git+https://github.com/FNA-XNA/FAudio.git source = gstreamer::git+https://gitlab.freedesktop.org/gstreamer/gstreamer.git source = gst-plugins-base::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-base.git source = gst-plugins-good::git+https://gitlab.freedesktop.org/gstreamer/gst-plugins-good.git @@ -216,14 +216,19 @@ pkgbase = proton-experimental source = OpenXR-SDK::git+https://github.com/KhronosGroup/OpenXR-SDK.git source = dxvk-nvapi::git+https://github.com/jp7677/dxvk-nvapi.git source = vkd3d-valve::git+https://github.com/ValveSoftware/vkd3d.git - source = SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.git source = Vulkan-Headers::git+https://github.com/KhronosGroup/Vulkan-Headers.git + source = SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.git source = Vulkan-Loader::git+https://github.com/KhronosGroup/Vulkan-Loader.git + source = gst-libav::git+https://gitlab.freedesktop.org/gstreamer/gst-libav.git + source = ffmpeg::git+https://git.ffmpeg.org/ffmpeg.git + source = dav1d::git+https://code.videolan.org/videolan/dav1d.git + 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 = https://dl.winehq.org/wine/wine-gecko/2.47.2/wine-gecko-2.47.2-x86.tar.xz source = https://dl.winehq.org/wine/wine-gecko/2.47.2/wine-gecko-2.47.2-x86_64.tar.xz - source = https://github.com/madewokherd/wine-mono/releases/download/wine-mono-7.0.0/wine-mono-7.0.0-x86.tar.xz - source = dxvk-async-a9de5a9fc12d12a2cd50e3aeffae01e6f51ddbd4.patch::https://raw.githubusercontent.com/Sporif/dxvk-async/a9de5a9fc12d12a2cd50e3aeffae01e6f51ddbd4/dxvk-async.patch + source = https://github.com/madewokherd/wine-mono/releases/download/wine-mono-7.1.2/wine-mono-7.1.2-x86.tar.xz + source = dxvk-async-1.9.4.patch::https://raw.githubusercontent.com/Sporif/dxvk-async/1.9.4/dxvk-async.patch + source = wine-futex_waitv.patch source = wine-winevulkan_fsr.patch source = wine-more_8x5_res.patch source = proton-sanitize_makefile.patch @@ -247,14 +252,18 @@ pkgbase = proton-experimental sha256sums = SKIP sha256sums = SKIP sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP sha256sums = 8fab46ea2110b2b0beed414e3ebb4e038a3da04900e7a28492ca3c3ccf9fea94 sha256sums = b4476706a4c3f23461da98bed34f355ff623c5d2bb2da1e2fa0c6a310bc33014 - sha256sums = 2a047893f047b4f0f5b480f1947b7dda546cee3fec080beb105bf5759c563cd3 + sha256sums = 59f146dde0f0540ca4648fc648e6b16335c71921deaf111b5fe8c3967881661d sha256sums = ddde07c98045a3bc15fab5eaf3c6a756a6a4b4eaeec646d4339168b86ac00463 + sha256sums = 7d989e9b29643897eaadb970d65e71140b11f4d641ef8816bd17feb9ad2ca992 sha256sums = 62f1c2e7295801cedc7b1d8aea6ba3804ea61419cbf6a113dc700d95755ae1d9 sha256sums = 9005d8169266ba0b93be30e1475fe9a3697464796f553886c155ec1d77d71215 - sha256sums = 86898e84a3aac4bf0b5c9185656cb463cd31df02b018d8038527c7fa7329984b + sha256sums = ef42c2303fd9855687a5fb0fb47a11c5bb4cf3ed7e58d48b82185c96addf6d50 sha256sums = 12a587972a101a6d0c279a3820135277097c5f3e9f5990c5741d5fb1626dc770 - sha256sums = cfe984e2b3d65b01e2875e51b8ef8b8d6f1268dd09a88d5611655f24b46cff8d + sha256sums = 6126f8c93d73b7309fb22c244dae645c755c1ed8759caac3edc91d81a71e8f45 pkgname = proton-experimental @@ -1,13 +1,13 @@ # Maintainer: loathingkernel <loathingkernel _a_ gmail _d_ com> pkgname=proton-experimental -_srctag=6.3-20220119 +_srctag=7.0-20220218b _commit= pkgver=${_srctag//-/.} _geckover=2.47.2 -_monover=7.0.0 -_asyncver=a9de5a9fc12d12a2cd50e3aeffae01e6f51ddbd4 -pkgrel=3 +_monover=7.1.2 +_asyncver=1.9.4 +pkgrel=1 epoch=1 pkgdesc="Compatibility tool for Steam Play based on Wine and additional components, experimental branch" url="https://github.com/ValveSoftware/Proton" @@ -30,15 +30,19 @@ depends=( libsm lib32-libsm gcc-libs lib32-gcc-libs libpcap lib32-libpcap + lzo lib32-lzo + libxkbcommon lib32-libxkbcommon + faudio lib32-faudio 'sdl2>=2.0.16' 'lib32-sdl2>=2.0.16' desktop-file-utils python steam-native-runtime ) -makedepends=(autoconf ncurses bison perl fontforge flex mingw-w64-gcc +makedepends=(autoconf bison perl fontforge flex mingw-w64-gcc git wget rsync mingw-w64-tools lld nasm meson cmake python-virtualenv python-pip glslang vulkan-headers + clang giflib lib32-giflib libpng lib32-libpng gnutls lib32-gnutls @@ -62,13 +66,9 @@ makedepends=(autoconf ncurses bison perl fontforge flex mingw-w64-gcc 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' - libcups lib32-libcups rust lib32-rust-libs - sane libgphoto2 gsm - ffmpeg - samba opencl-headers ) @@ -86,19 +86,15 @@ optdepends=( libjpeg-turbo lib32-libjpeg-turbo libxcomposite lib32-libxcomposite libxinerama lib32-libxinerama - ncurses lib32-ncurses 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 - sane libgphoto2 gsm - ffmpeg - cups - samba dosbox + dosbox ) makedepends=(${makedepends[@]} ${depends[@]}) @@ -110,7 +106,6 @@ source=( dxvk-valve::git+https://github.com/ValveSoftware/dxvk.git openvr::git+https://github.com/ValveSoftware/openvr.git liberation-fonts::git+https://github.com/liberationfonts/liberation-fonts.git - FAudio::git+https://github.com/FNA-XNA/FAudio.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 @@ -119,13 +114,18 @@ source=( 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 - SPIRV-Headers::git+https://github.com/KhronosGroup/SPIRV-Headers.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 + 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 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 dxvk-async-${_asyncver}.patch::https://raw.githubusercontent.com/Sporif/dxvk-async/${_asyncver}/dxvk-async.patch + wine-futex_waitv.patch wine-winevulkan_fsr.patch wine-more_8x5_res.patch proton-sanitize_makefile.patch @@ -138,9 +138,9 @@ noextract=( ) _make_wrappers () { - # _arch prefix gcc ld as - local _i686=( "i686" "-m32" "-melf_i386" "--32") - local _x86_64=("x86_64" "-m64" "-melf_x86_64" "--64") + # _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 @@ -161,6 +161,10 @@ 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 } @@ -193,7 +197,6 @@ prepare() { dxvk-valve::dxvk openvr liberation-fonts::fonts/liberation-fonts - FAudio gstreamer gst-plugins-base gst-plugins-good @@ -202,9 +205,13 @@ prepare() { OpenXR-SDK dxvk-nvapi vkd3d-valve::vkd3d - SPIRV-Headers Vulkan-Headers + SPIRV-Headers Vulkan-Loader + gst-libav + ffmpeg + dav1d + gst-plugins-rs ) for submodule in "${_submodules[@]}"; do @@ -232,23 +239,27 @@ prepare() { git submodule update external/Vulkan-Headers popd - pushd media-converter + for submodule in gst-plugins-rs media-converter; do + pushd $submodule export RUSTUP_TOOLCHAIN=stable export CARGO_HOME="${srcdir}"/build/.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 futex_waitv on recent linux-api-headers + patch -p1 -i "$srcdir"/wine-futex_waitv.patch # Add FSR for fshack - patch -p1 -i "$srcdir"/wine-winevulkan_fsr.patch + #patch -p1 -i "$srcdir"/wine-winevulkan_fsr.patch # Adds more 16:10 resolutions for use with FSR - patch -p1 -i "$srcdir"/wine-more_8x5_res.patch + #patch -p1 -i "$srcdir"/wine-more_8x5_res.patch popd pushd dxvk @@ -279,7 +290,7 @@ build() { cd build ROOTLESS_CONTAINER="" \ ../proton/configure.sh \ - --container-engine="" \ + --container-engine="none" \ --proton-sdk-image="" \ --steam-runtime=native \ --no-proton-sdk \ @@ -306,24 +317,24 @@ build() { # If you want the "best" possible optimizations for your system you can use # `-march=native` and remove the `-mtune=core-avx2` option. # `-O2` is adjusted to `-O3` since AVX is disabled - export CFLAGS="-O2 -march=nocona -pipe -mtune=core-avx2" - export CXXFLAGS="-O2 -march=nocona -pipe -mtune=core-avx2" + export CFLAGS="-O3 -march=native -pipe" # -mtune=haswell -pipe" + export CXXFLAGS="-O3 -march=native -pipe" # -mtune=haswell -pipe" + export RUSTFLAGS="-C opt-level=3 -C target-cpu=native" 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. - # Disabling AVX (and AVX2 as a side-effect). # Since Wine 5.16 AVX is supported. Testing showed 32bit applications # crashing with AVX regardless, but 64bit applications worked just fine. - # So disable AVX only for the 32bit binaries and AVX2 for the 64bit. - # AVX2 seems to degrade performance. So disregard the above. # Relevant Wine issues # https://bugs.winehq.org/show_bug.cgi?id=45289 # https://bugs.winehq.org/show_bug.cgi?id=43516 - #export CFLAGS+=" -mno-avx -mno-avx2" - #export CXXFLAGS+=" -mno-avx -mno-avx2" + # 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 WINEESYNC=0 @@ -346,9 +357,9 @@ package() { cd "$_compatdir/${pkgname}/files" i686-w64-mingw32-strip --strip-unneeded \ - $(find lib/wine \( -iname fakedlls \) -prune -false -or -iname "*.dll" -or -iname "*.exe") + $(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 \) -prune -false -or -iname "*.dll" -or -iname "*.exe") + $(find lib64/wine \( -iname fakedlls -or -iname x86_64-windows \) -prune -false -or -iname "*.dll" -or -iname "*.exe") local _geckodir="share/wine/gecko/wine-gecko-${_geckover}" i686-w64-mingw32-strip --strip-unneeded \ @@ -385,12 +396,16 @@ sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' '8fab46ea2110b2b0beed414e3ebb4e038a3da04900e7a28492ca3c3ccf9fea94' 'b4476706a4c3f23461da98bed34f355ff623c5d2bb2da1e2fa0c6a310bc33014' - '2a047893f047b4f0f5b480f1947b7dda546cee3fec080beb105bf5759c563cd3' + '59f146dde0f0540ca4648fc648e6b16335c71921deaf111b5fe8c3967881661d' 'ddde07c98045a3bc15fab5eaf3c6a756a6a4b4eaeec646d4339168b86ac00463' + '7d989e9b29643897eaadb970d65e71140b11f4d641ef8816bd17feb9ad2ca992' '62f1c2e7295801cedc7b1d8aea6ba3804ea61419cbf6a113dc700d95755ae1d9' '9005d8169266ba0b93be30e1475fe9a3697464796f553886c155ec1d77d71215' - '86898e84a3aac4bf0b5c9185656cb463cd31df02b018d8038527c7fa7329984b' + 'ef42c2303fd9855687a5fb0fb47a11c5bb4cf3ed7e58d48b82185c96addf6d50' '12a587972a101a6d0c279a3820135277097c5f3e9f5990c5741d5fb1626dc770' - 'cfe984e2b3d65b01e2875e51b8ef8b8d6f1268dd09a88d5611655f24b46cff8d') + '6126f8c93d73b7309fb22c244dae645c755c1ed8759caac3edc91d81a71e8f45') diff --git a/proton-sanitize_makefile.patch b/proton-sanitize_makefile.patch index 750d6785e384..b46378108dfe 100644 --- a/proton-sanitize_makefile.patch +++ b/proton-sanitize_makefile.patch @@ -1,8 +1,8 @@ -diff --git a/build/makefile_base.mak b/build/makefile_base.mak -index 363e91c..e9f3c3c 100644 ---- a/build/makefile_base.mak -+++ b/build/makefile_base.mak -@@ -62,7 +62,6 @@ ifeq ($(ENABLE_CCACHE),1) +diff --git a/Makefile.in b/Makefile.in +index 227d627..49581dc 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -63,7 +63,6 @@ ifeq ($(ENABLE_CCACHE),1) export CCACHE_DIR := $(if $(CCACHE_DIR),$(CCACHE_DIR),$(HOME)/.ccache) override DOCKER_OPTS := -v $(CCACHE_DIR):$(CCACHE_DIR)$(CONTAINER_MOUNT_OPTS) $(CCACHE_ENV) -e CCACHE_DIR=$(CCACHE_DIR) $(DOCKER_OPTS) else @@ -10,7 +10,7 @@ index 363e91c..e9f3c3c 100644 override DOCKER_OPTS := $(CCACHE_ENV) -e CCACHE_DISABLE=1 $(DOCKER_OPTS) endif -@@ -120,7 +119,7 @@ container-build: +@@ -121,7 +120,7 @@ container-build: all32 $(MAKECMDGOALS32): container-build all64 $(MAKECMDGOALS64): container-build else @@ -19,7 +19,7 @@ index 363e91c..e9f3c3c 100644 endif -@@ -170,7 +169,8 @@ else +@@ -171,11 +170,12 @@ else endif CROSSLDFLAGS += -Wl,--file-alignment,4096 @@ -29,10 +29,15 @@ index 363e91c..e9f3c3c 100644 SANITY_FLAGS := -fwrapv -fno-strict-aliasing DEBUG_FLAGS := -gdwarf-2 -gstrict-dwarf COMMON_FLAGS = $(DEBUG_FLAGS) $(OPTIMIZE_FLAGS) $(SANITY_FLAGS) -ffile-prefix-map=$(CCACHE_BASEDIR)=. -@@ -354,8 +354,8 @@ ALL_TARGETS += dist +-COMMON_FLAGS32 := -mstackrealign ++COMMON_FLAGS32 := -mstackrealign -mno-avx + CARGO_BUILD_ARG := --release + + ## +@@ -362,8 +362,8 @@ ALL_TARGETS += dist GOAL_TARGETS += dist - dist_prefix: wine gst_good + dist_prefix: wine gst_good gst_libav gst_plugins_rs - find $(DST_LIBDIR32)/wine -type f -execdir chmod a-w '{}' '+' - find $(DST_LIBDIR64)/wine -type f -execdir chmod a-w '{}' '+' + find $(DST_LIBDIR32)/wine -type f -execdir chmod go-w '{}' '+' @@ -40,51 +45,28 @@ index 363e91c..e9f3c3c 100644 rm -rf $(abspath $(DIST_PREFIX)) python3 $(SRCDIR)/default_pfx.py $(abspath $(DIST_PREFIX)) $(abspath $(DST_DIR)) $(STEAM_RUNTIME_RUNSH) -@@ -408,6 +408,9 @@ endif # ifeq ($(CONTAINER),) +@@ -430,6 +430,11 @@ $(eval $(call rules-meson,dav1d,64)) ## GST_COMMON_MESON_ARGS := \ + -Db_lto=true \ + -Db_pie=true \ + -Ddoc=disabled \ - -Dexamples=disabled \ - -Dtests=disabled \ - -Dgtk_doc=disabled \ -@@ -420,6 +423,7 @@ GST_COMMON_MESON_ARGS := \ ++ -Dintrospection=disabled \ ++ -Dgobject-cast-checks=disabled \ + -Dorc=enabled GST_ORC_MESON_ARGS := \ - -Dorc-test=disabled \ -+ -Dpackage-name="GStreamer Orc (Proton)" \ - $(GST_COMMON_MESON_ARGS) - - $(eval $(call rules-source,gst_orc,$(SRCDIR)/gst-orc)) -@@ -436,6 +440,9 @@ GSTREAMER_MESON_ARGS := \ +@@ -450,6 +455,8 @@ GSTREAMER_MESON_ARGS := \ -Dbenchmarks=disabled \ -Dtools=disabled \ -Dbash-completion=disabled \ + -Dptp-helper-permissions=capabilities \ + -Ddbghelp=disabled \ -+ -Dpackage-name="GStreamer (Proton)" \ $(GST_COMMON_MESON_ARGS) GSTREAMER_DEPENDS = gst_orc -@@ -474,6 +481,7 @@ GST_BASE_MESON_ARGS := \ - -Dxshm=disabled \ - -Dxvideo=disabled \ - -Dtools=disabled \ -+ -Dpackage-name="GStreamer Base Plugins (Proton)" \ - $(GST_COMMON_MESON_ARGS) - - GST_BASE_DEPENDS = gst_orc gstreamer -@@ -535,6 +543,7 @@ GST_GOOD_MESON_ARGS := \ - -Dximagesrc=disabled \ - -Dy4m=disabled \ - -Dtools=disabled \ -+ -Dpackage-name="GStreamer Good Plugins (Proton)" \ - $(GST_COMMON_MESON_ARGS) - - GST_GOOD_DEPENDS = gst_orc gstreamer gst_base -@@ -693,10 +702,20 @@ WINE_SOURCE_ARGS = \ +@@ -691,7 +698,13 @@ WINE_SOURCE_ARGS = \ --exclude include/config.h.in \ WINE_CONFIGURE_ARGS = \ @@ -92,20 +74,13 @@ index 363e91c..e9f3c3c 100644 + --with-gstreamer \ + --with-faudio \ --with-mingw \ - --without-xpresent \ -+ --without-ldap \ + --without-vkd3d \ + --without-oss \ + --disable-win16 \ --disable-tests -+WINE_CFLAGS= -fno-builtin-sin -fno-builtin-sinf -fno-builtin-cos -fno-builtin-cosf -+WINE_CXXFLAGS= -fno-builtin-sin -fno-builtin-sinf -fno-builtin-cos -fno-builtin-cosf -+ WINE_CONFIGURE_ARGS64 = --enable-win64 - - WINE_DEPENDS = gst_orc gstreamer gst_base faudio jxrlib -@@ -756,6 +775,9 @@ $(OBJ)/.vrclient-post-source: +@@ -754,6 +767,9 @@ $(OBJ)/.vrclient-post-source: DXVK_MESON_ARGS32 = --bindir=$(DXVK_DST32)/lib/wine/dxvk DXVK_MESON_ARGS64 = --bindir=$(DXVK_DST64)/lib64/wine/dxvk @@ -115,7 +90,7 @@ index 363e91c..e9f3c3c 100644 $(eval $(call rules-source,dxvk,$(SRCDIR)/dxvk)) $(eval $(call rules-meson,dxvk,32,CROSS)) $(eval $(call rules-meson,dxvk,64,CROSS)) -@@ -778,6 +800,9 @@ $(OBJ)/.dxvk-post-build32: +@@ -776,6 +792,9 @@ $(OBJ)/.dxvk-post-build32: DXVK_NVAPI_MESON_ARGS32 = --bindir=$(DXVK_NVAPI_DST32)/lib/wine/nvapi DXVK_NVAPI_MESON_ARGS64 = --bindir=$(DXVK_NVAPI_DST64)/lib64/wine/nvapi @@ -125,7 +100,7 @@ index 363e91c..e9f3c3c 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)) -@@ -841,10 +866,13 @@ VKD3D_PROTON_SOURCE_ARGS = \ +@@ -839,10 +858,13 @@ VKD3D_PROTON_SOURCE_ARGS = \ --exclude vkd3d_build.h.in \ --exclude vkd3d_version.h.in \ @@ -140,6 +115,26 @@ index 363e91c..e9f3c3c 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)) +diff --git a/configure.sh b/configure.sh +index 48d6004..33eb9f3 100755 +--- a/configure.sh ++++ b/configure.sh +@@ -141,6 +141,7 @@ function configure() { + CONTAINER_MOUNT_OPTS=:Z + fi + ++ if [ "$arg_container_engine" != "none" ]; then + if [[ -n "$arg_container_engine" ]]; then + check_container_engine "$arg_container_engine" || die "Specified container engine \"$arg_container_engine\" doesn't work" + else +@@ -153,6 +154,7 @@ function configure() { + die "${arg_container_engine:-Container engine discovery} has failed. Please fix your setup." + fi + fi ++ fi + + stat "Using $arg_container_engine." + diff --git a/make/rules-autoconf.mk b/make/rules-autoconf.mk index 0827caa..4e6d19f 100644 --- a/make/rules-autoconf.mk @@ -157,22 +152,23 @@ index 0827caa..4e6d19f 100644 endif endef diff --git a/make/rules-cargo.mk b/make/rules-cargo.mk -index 2dbfe75..6afbc42 100644 +index b2af34c..c132fff 100644 --- a/make/rules-cargo.mk +++ b/make/rules-cargo.mk -@@ -14,7 +14,9 @@ $$(OBJ)/.$(1)-configure$(3): +@@ -14,8 +14,10 @@ $$(OBJ)/.$(1)-configure$(3): $$(OBJ)/.$(1)-build$(3): @echo ":: building $(3)bit $(1)..." >&2 cd $$($(2)_SRC) && env $$($(2)_ENV$(3)) \ -- cargo build $$(filter -j%,$$(MAKEFLAGS)) --target "$$(CARGO_TARGET_$(3))" --target-dir $$($(2)_OBJ$(3)) $$(CARGO_BUILD_ARG) + cargo update --offline --verbose + cd $$($(2)_SRC) && env $$($(2)_ENV$(3)) \ -+ cargo build -j$$(SUBJOBS) --locked --offline --verbose --target "$$(CARGO_TARGET_$(3))" --target-dir $$($(2)_OBJ$(3)) $$(CARGO_BUILD_ARG) - touch $$@ - endif - endef + cargo build \ +- $$(filter -j%,$$(MAKEFLAGS)) \ ++ -j$$(SUBJOBS) --locked --offline --verbose \ + --target "$$(CARGO_TARGET_$(3))" \ + --target-dir $$($(2)_OBJ$(3)) \ + $$(CARGO_BUILD_ARG) \ diff --git a/make/rules-cmake.mk b/make/rules-cmake.mk -index 0e18df9..2150cba 100644 +index c70751a..1096dc1 100644 --- a/make/rules-cmake.mk +++ b/make/rules-cmake.mk @@ -28,9 +28,9 @@ $$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/CMakeLists.txt @@ -188,10 +184,10 @@ index 0e18df9..2150cba 100644 endif endef diff --git a/make/rules-common.mk b/make/rules-common.mk -index 4d72ac0..7b1b13b 100644 +index 0e38bb8..5fed88e 100644 --- a/make/rules-common.mk +++ b/make/rules-common.mk -@@ -119,8 +119,12 @@ $(2)_LIBFLAGS$(3) = $$(foreach d,$$($(2)_DEPS$(3)),-L$$($$(d)_LIBDIR$(3))) \ +@@ -113,8 +113,12 @@ $(2)_LIBFLAGS$(3) = $$(foreach d,$$($(2)_DEPS$(3)),-L$$($$(d)_LIBDIR$(3))) \ # native version doesn't exist. $(2)_ENV$(3) = \ @@ -204,7 +200,7 @@ index 4d72ac0..7b1b13b 100644 CCACHE_BASEDIR="$$(CCACHE_BASEDIR)" \ STRIP="$$(STRIP)" \ AR="$$(TARGET_$(4)$(3))-ar" \ -@@ -134,7 +138,7 @@ $(2)_ENV$(3) = \ +@@ -128,7 +132,7 @@ $(2)_ENV$(3) = \ PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_BINDIR$(3))),,:):$$(SRC)/glslang/bin:$$$$PATH" \ LD_LIBRARY_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_LIBDIR$(3))),,:)$$$$LD_LIBRARY_PATH" \ PKG_CONFIG_PATH="$$(call list-join,:,$$(foreach d,$$($(2)_DEPS$(3)),$$($$(d)_LIBDIR$(3))/pkgconfig))" \ @@ -213,7 +209,7 @@ index 4d72ac0..7b1b13b 100644 CFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \ CPPFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \ CXXFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3)) -std=c++17" \ -@@ -158,7 +162,7 @@ $(2)_ENV$(3) += \ +@@ -152,7 +156,7 @@ $(2)_ENV$(3) += \ CROSSCPPFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3))" \ CROSSCXXFLAGS="$$($(2)_INCFLAGS$(3)) $$($(2)_CXXFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3)) -std=c++17" \ CROSSLDFLAGS="$$($(2)_LIBFLAGS$(3)) $$($(2)_LDFLAGS$(3)) $$($(2)_LDFLAGS) $$(CROSSLDFLAGS)" \ @@ -222,7 +218,7 @@ index 4d72ac0..7b1b13b 100644 endif -@@ -171,14 +175,14 @@ else +@@ -165,14 +169,14 @@ else install-strip = objcopy --file-alignment=4096 --strip-debug $(1) $(2)/$(notdir $(1)) && rm -f $(2)/$(notdir $(1)).debug endif @@ -241,7 +237,23 @@ index 4d72ac0..7b1b13b 100644 +PKG_CONFIG_TARGET_CROSS32 := i686-w64-mingw32 PKG_CONFIG_TARGET_CROSS64 := x86_64-w64-mingw32 - $(OBJ)/.%-post-build32: + LIBDIR_WINE_32 := wine/i386-unix +diff --git a/make/rules-configure.mk b/make/rules-configure.mk +index d04a3c5..18ac684 100644 +--- a/make/rules-configure.mk ++++ b/make/rules-configure.mk +@@ -26,9 +26,9 @@ $$(OBJ)/.$(1)-configure$(3): + $$(OBJ)/.$(1)-build$(3): + @echo ":: building $(3)bit $(1)..." >&2 + cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ +- $$(MAKE) ++ $$(MAKE) -j$$(SUBJOBS) + cd "$$($(2)_OBJ$(3))" && env $$($(2)_ENV$(3)) \ +- $$(MAKE) install ++ $$(MAKE) -j$$(SUBJOBS) install + touch $$@ + endif + endef diff --git a/make/rules-meson.mk b/make/rules-meson.mk index d603bfd..f798edf 100644 --- a/make/rules-meson.mk @@ -256,7 +268,7 @@ index d603bfd..f798edf 100644 endif endef diff --git a/make/rules-winemaker.mk b/make/rules-winemaker.mk -index d8e6d12..33697b9 100644 +index 69688a0..1c0d1d3 100644 --- a/make/rules-winemaker.mk +++ b/make/rules-winemaker.mk @@ -29,7 +29,7 @@ $$(OBJ)/.$(1)-build$(3): @@ -266,5 +278,5 @@ index d8e6d12..33697b9 100644 - $$(MAKE) -C "$$($(2)_OBJ$(3))" LIBRARIES="$$($(2)_LDFLAGS)" + $$(MAKE) -j$$(SUBJOBS) -C "$$($(2)_OBJ$(3))" LIBRARIES="$$($(2)_LDFLAGS)" cd "$$($(2)_OBJ$(3))" && touch "$(basename $(4)).spec" && env $$($(2)_ENV$(3)) \ - winebuild --dll --fake-module -E "$(basename $(4)).spec" -o "$(4).fake" - mkdir -p $$($(2)_DST$(3))/lib$(subst 32,,$(3))/wine/fakedlls/ + 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-user_compat_data.patch b/proton-user_compat_data.patch index 58b2aef04c2f..d14aebcd9d04 100644 --- a/proton-user_compat_data.patch +++ b/proton-user_compat_data.patch @@ -1,8 +1,8 @@ diff --git a/proton b/proton -index 7d75ff9..ca847ce 100755 +index ad8efaf..303ab00 100755 --- a/proton +++ b/proton -@@ -1277,6 +1277,15 @@ if __name__ == "__main__": +@@ -1359,6 +1359,15 @@ if __name__ == "__main__": log("No compat data path?") sys.exit(1) diff --git a/wine-futex_waitv.patch b/wine-futex_waitv.patch new file mode 100644 index 000000000000..bf1445fd50d6 --- /dev/null +++ b/wine-futex_waitv.patch @@ -0,0 +1,104 @@ +From 3196885798787b6a52dbef0f3968f6b5e0216c56 Mon Sep 17 00:00:00 2001 +From: Dmitry Skvortsov <lvb.crd@protonmail.com> +Date: Sun, 26 Dec 2021 16:32:58 +0300 +Subject: [PATCH 1/2] Separate check for definition of FUTEX_32 and struct futex_waitv + +--- + dlls/ntdll/unix/fsync.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/dlls/ntdll/unix/fsync.c b/dlls/ntdll/unix/fsync.c +index 39d969f061d..c6869b62b4b 100644 +--- a/dlls/ntdll/unix/fsync.c ++++ b/dlls/ntdll/unix/fsync.c +@@ -64,8 +64,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(fsync); + /* futex_waitv interface */ + + #ifndef __NR_futex_waitv +- + # define __NR_futex_waitv 449 ++#endif ++ ++#ifndef FUTEX_32 + # define FUTEX_32 2 + struct futex_waitv { + uint64_t val; +@@ -73,7 +75,6 @@ struct futex_waitv { + uint32_t flags; + uint32_t __reserved; + }; +- + #endif + + #define u64_to_ptr(x) (void *)(uintptr_t)(x) +-- +2.34.1 + +From 2c15b20ad7dd57778ad2354a14dd441d1cd6cf4f Mon Sep 17 00:00:00 2001 +From: Dmitry Skvortsov <lvb.crd@protonmail.com> +Date: Sun, 26 Dec 2021 16:45:21 +0300 +Subject: [PATCH 2/2] Add check for linux/futex.h + +--- + configure | 6 ++++++ + configure.ac | 1 + + dlls/ntdll/unix/fsync.c | 3 +++ + include/config.h.in | 3 +++ + 4 files changed, 13 insertions(+) + +diff --git a/configure b/configure +index ab3aa34a922..d2bcd778c59 100755 +--- a/configure ++++ b/configure +@@ -8317,6 +8317,12 @@ if test "x$ac_cv_header_linux_filter_h" = xyes + then : + printf "%s\n" "#define HAVE_LINUX_FILTER_H 1" >>confdefs.h + ++fi ++ac_fn_c_check_header_compile "$LINENO" "linux/futex.h" "ac_cv_header_linux_futex_h" "$ac_includes_default" ++if test "x$ac_cv_header_linux_futex_h" = xyes ++then : ++ printf "%s\n" "#define HAVE_LINUX_FUTEX_H 1" >>confdefs.h ++ + fi + ac_fn_c_check_header_compile "$LINENO" "linux/hdreg.h" "ac_cv_header_linux_hdreg_h" "$ac_includes_default" + if test "x$ac_cv_header_linux_hdreg_h" = xyes +diff --git a/include/config.h.in b/include/config.h.in +index 9eb052c6248..910cce10693 100644 +--- a/include/config.h.in ++++ b/include/config.h.in +@@ -200,6 +200,9 @@ + /* Define to 1 if you have the <linux/filter.h> header file. */ + #undef HAVE_LINUX_FILTER_H + ++/* Define to 1 if you have the <linux/futex.h> header file. */ ++#undef HAVE_LINUX_FUTEX_H ++ + /* Define if Linux-style gethostbyname_r and gethostbyaddr_r are available */ + #undef HAVE_LINUX_GETHOSTBYNAME_R_6 + +diff --git a/configure.ac b/configure.ac +index 3071da61b62..cfe27460a96 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -450,2 +450,3 @@ AC_CHECK_HEADERS(\ + linux/filter.h \ ++ linux/futex.h \ + linux/hdreg.h \ +diff --git a/dlls/ntdll/unix/fsync.c b/dlls/ntdll/unix/fsync.c +index c6869b62b4b..6d69c643244 100644 +--- a/dlls/ntdll/unix/fsync.c ++++ b/dlls/ntdll/unix/fsync.c +@@ -27,6 +27,9 @@ + #include <assert.h> + #include <errno.h> + #include <fcntl.h> ++#ifdef HAVE_LINUX_FUTEX_H ++# include <linux/futex.h> ++#endif + #include <limits.h> + #include <stdarg.h> + #include <stdio.h> +-- +2.34.1 + |