summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorStelios Tsampas2022-02-19 00:50:19 +0200
committerStelios Tsampas2022-02-19 00:50:19 +0200
commit8f0b9fb6d01a4cd363094ede6a3e0a9270cbf12e (patch)
tree0e891b1833210c790a86eb15bc6860da53a973e7
parent2ba7dfabf04e8e17205239bd73a98fb8470e608e (diff)
downloadaur-8f0b9fb6d01a4cd363094ede6a3e0a9270cbf12e.tar.gz
Version 7.0-20220218b
-rw-r--r--.SRCINFO55
-rw-r--r--PKGBUILD89
-rw-r--r--proton-sanitize_makefile.patch142
-rw-r--r--proton-user_compat_data.patch4
-rw-r--r--wine-futex_waitv.patch104
5 files changed, 267 insertions, 127 deletions
diff --git a/.SRCINFO b/.SRCINFO
index c63453e3c454..f364641ea373 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 7829a451f99e..3716d7f1236a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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
+