Package Details: proton-native 1:6.3.2-2

Git Clone URL: https://aur.archlinux.org/proton-native.git (read-only, click to copy)
Package Base: proton-native
Description: Compatibility tool for Steam Play based on Wine and additional components. Monolithic distribution
Upstream URL: https://github.com/ValveSoftware/Proton
Keywords: dxvk proton steam wine
Licenses: custom
Submitter: loathingkernel
Maintainer: loathingkernel
Last Packager: loathingkernel
Votes: 7
Popularity: 1.00
First Submitted: 2019-11-12 13:24
Last Updated: 2021-04-11 11:34

Dependencies (170)

Required by (0)

Sources (22)

Pinned Comments

loathingkernel commented on 2020-10-22 08:43

Notes about this package

  • It takes a LOT of time and space to build. Building with multiple jobs helps but might cause builds to fail in rare cases. Be sure to have at least 16GB of RAM if you are building on tmpfs

  • It is NOT built against steam linux runtime and as such it doesn't require it.

  • This PKGBUILD uses CFLAGS, CXXFLAGS and LDFLAGS from makepkg.conf. Due to the nature of this package some flags can cause it to fail to build or not function properly. I try to filter them out but it is based on testing. If you have a feeling that compile-time options are involved in the issues you are having please include them in your comment. Currently the filtered options are -fstack-protector-{,-strong,-all}(dxvk and vkd3d only), -fno-plt, -z,relro, -z,now. Also the use of AVX instructions is disabled through -mno-avx.

  • If you are not using CFLAGS and CXXFLAGS specific to your system this package won't offer much in terms of performance as the upstream build flags already target the nocona (Core2) architecture. It will possibly perform worse than upstream. The only benefits you get is not depending on steam linux runtime as well as linking to Arch libraries. If you still want to build it, you can uncomment the relevant lines in the PKGBUILD to enable CFLAGS and CXXFLAGS similar to the upstream.

  • There have been reports with afdko failing to find its dependencies during building. I can't do anything about that as I don't maintain that package. It is NOT an issue with this package and I haven't found a way to not depend on it. Please don't report fails due to afdko (or any of its python- dependencies, they are pulled in due to afdko and only used by that), it has been discussed enough. There are possible workarounds in the comments.

  • It contains a patch to store game prefixes in the main Steam Library under $HOME/.local/share/Steam/steamapps/compatdata. It helps with isolation of game prefixes between users and works around issues with shared libraries on NTFS partitions due to drive symlinks. To enable it, set the PROTON_USER_COMPAT_DATA env variable to 1.

Latest Comments

1 2 3 Next › Last »

loathingkernel commented on 2021-04-11 09:24

@chn I tried that exact way of specifying the architecture before specifying it through the RUSTFLAGS and it failed for me. I will look into it when I rebuild the package. In the meantime, can you inform me of the configuration of your system where it has to do with rust? What version are you using, Is it installed through the repos or rustup etc.

Edit: What I was doing in the patch was nonsensical and it shouldn't work here either. For now I completely removed that -m$(3) from both env vars and it seems to build ok.

chn commented on 2021-04-11 05:41

I have found a workaround. In file proton-unfuck_makefile.patch, replace

diff --git a/make/rules-common.mk b/make/rules-common.mk
index fda3e3d..d49c448 100644
--- a/make/rules-common.mk
+++ b/make/rules-common.mk
@@ -101,17 +101,18 @@ all: $(1)

 $(2)_ENV$(3) = \
     CARGO_HOME=$$(OBJ)/.cargo \
-    CARGO_TARGET_$$(call toupper,$$(ARCH$(3))-unknown-linux-gnu)_LINKER="$$(ARCH$(3))-linux-gnu-gcc" \
+    CARGO_TARGET_$$(call toupper,$$(ARCH$(3))-unknown-linux-gnu)_LINKER="gcc" \
+    CARGO_TARGET_$$(call toupper,$$(ARCH$(3))-unknown-linux-gnu)_RUSTFLAGS="$$(RUSTFLAGS) -C -m$(3)" \
     CCACHE_BASEDIR="$$(CCACHE_BASEDIR)" \
     STRIP="$$(STRIP)" \

with

diff --git a/make/rules-common.mk b/make/rules-common.mk
index fda3e3d..d49c448 100644
--- a/make/rules-common.mk
+++ b/make/rules-common.mk
@@ -101,17 +101,17 @@ all: $(1)

 $(2)_ENV$(3) = \
     CARGO_HOME=$$(OBJ)/.cargo \
-    CARGO_TARGET_$$(call toupper,$$(ARCH$(3))-unknown-linux-gnu)_LINKER="$$(ARCH$(3))-linux-gnu-gcc" \
+    CARGO_TARGET_$$(call toupper,$$(ARCH$(3))-unknown-linux-gnu)_LINKER="gcc -m$(3)" \
     CCACHE_BASEDIR="$$(CCACHE_BASEDIR)" \
     STRIP="$$(STRIP)" \

chn commented on 2021-04-11 02:54

Build failed at 32bit mediacov rustc -C -m32:

:: configuring 32bit mediaconv...
touch /home/chn/.cache/yay/proton-native/src/build/.mediaconv-configure32
:: building 32bit mediaconv...
cd /home/chn/.cache/yay/proton-native/src/build/src-mediaconv && env CARGO_HOME=/home/chn/.cache/yay/proton-native/src/build/.cargo CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_LINKER="gcc" CARGO_TARGET_I686_UNKNOWN_LINUX_GNU_RUSTFLAGS=" -C -m32" CCACHE_BASEDIR="/home/chn/.cache/yay/proton-native/src/build/src-mediaconv" STRIP="strip" CC=" gcc -m32" CXX=" g++ -m32" LD="i686-linux-gnu-ld" PKG_CONFIG="i686-pc-linux-gnu-pkg-config" CROSSCC=" i686-w64-mingw32-gcc" CROSSCXX=" i686-w64-mingw32-g++" CROSSLD="i686-w64-mingw32-ld" CROSSPKG_CONFIG="i686-pc-linux-gnu-pkg-config" PATH="/home/chn/.cache/yay/proton-native/src/build/dst-gst_orc32/bin:/home/chn/.cache/yay/proton-native/src/build/dst-gstreamer32/bin:/home/chn/.cache/yay/proton-native/src/build/dst-gst_base32/bin::/home/chn/.cache/yay/proton-native/src/proton/glslang/bin:$PATH" LD_LIBRARY_PATH="/home/chn/.cache/yay/proton-native/src/build/dst-gst_orc32/lib:/home/chn/.cache/yay/proton-native/src/build/dst-gstreamer32/lib:/home/chn/.cache/yay/proton-native/src/build/dst-gst_base32/lib:$LD_LIBRARY_PATH" PKG_CONFIG_PATH="/home/chn/.cache/yay/proton-native/src/build/dst-gst_orc32/lib/pkgconfig:/home/chn/.cache/yay/proton-native/src/build/dst-gstreamer32/lib/pkgconfig:/home/chn/.cache/yay/proton-native/src/build/dst-gst_base32/lib/pkgconfig" CFLAGS="-I/home/chn/.cache/yay/proton-native/src/build/dst-gst_orc32/include -I/home/chn/.cache/yay/proton-native/src/build/dst-gstreamer32/include -I/home/chn/.cache/yay/proton-native/src/build/dst-gst_base32/include  -gdwarf-2 -gstrict-dwarf -march=native -mtune=native -Ofast -pipe -mno-avx -mfpmath=sse -fwrapv -fno-strict-aliasing -ffile-prefix-map=/home/chn/.cache/yay/proton-native/src/build/src-mediaconv=. -mstackrealign" CXXFLAGS="-I/home/chn/.cache/yay/proton-native/src/build/dst-gst_orc32/include -I/home/chn/.cache/yay/proton-native/src/build/dst-gstreamer32/include -I/home/chn/.cache/yay/proton-native/src/build/dst-gst_base32/include  -gdwarf-2 -gstrict-dwarf -march=native -mtune=native -Ofast -pipe -mno-avx -mfpmath=sse -fwrapv -fno-strict-aliasing -ffile-prefix-map=/home/chn/.cache/yay/proton-native/src/build/src-mediaconv=. -mstackrealign -std=c++17" LDFLAGS="-L/home/chn/.cache/yay/proton-native/src/build/dst-gst_orc32/lib -L/home/chn/.cache/yay/proton-native/src/build/dst-gstreamer32/lib -L/home/chn/.cache/yay/proton-native/src/build/dst-gst_base32/lib -Wl,-rpath-link=/home/chn/.cache/yay/proton-native/src/build/dst-gst_orc32/lib -Wl,-rpath-link=/home/chn/.cache/yay/proton-native/src/build/dst-gstreamer32/lib -Wl,-rpath-link=/home/chn/.cache/yay/proton-native/src/build/dst-gst_base32/lib  -Wl,-Ofast,--sort-common,--as-needed" cargo build --target "i686-unknown-linux-gnu" --target-dir /home/chn/.cache/yay/proton-native/src/build/obj-mediaconv32 --release
error: failed to run `rustc` to learn about target-specific information

Caused by:
  process didn't exit successfully: `rustc - --crate-name ___ --print=file-names -C -m32 --target i686-unknown-linux-gnu --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=cfg` (exit code: 1)
  --- stderr
  error: unknown codegen option: `-m32`

make[2]: *** [../proton/build/makefile_base.mak:768: /home/chn/.cache/yay/proton-native/src/build/.mediaconv-build32] Error 101
make[2]: Leaving directory '/home/chn/.cache/yay/proton-native/src/build'
make[1]: *** [../proton/build/makefile_base.mak:89: container-build] Error 2
make[1]: Leaving directory '/home/chn/.cache/yay/proton-native/src/build'
make: *** [../proton/build/makefile_base.mak:20: nested_make] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

loathingkernel commented on 2020-10-22 08:43

Notes about this package

  • It takes a LOT of time and space to build. Building with multiple jobs helps but might cause builds to fail in rare cases. Be sure to have at least 16GB of RAM if you are building on tmpfs

  • It is NOT built against steam linux runtime and as such it doesn't require it.

  • This PKGBUILD uses CFLAGS, CXXFLAGS and LDFLAGS from makepkg.conf. Due to the nature of this package some flags can cause it to fail to build or not function properly. I try to filter them out but it is based on testing. If you have a feeling that compile-time options are involved in the issues you are having please include them in your comment. Currently the filtered options are -fstack-protector-{,-strong,-all}(dxvk and vkd3d only), -fno-plt, -z,relro, -z,now. Also the use of AVX instructions is disabled through -mno-avx.

  • If you are not using CFLAGS and CXXFLAGS specific to your system this package won't offer much in terms of performance as the upstream build flags already target the nocona (Core2) architecture. It will possibly perform worse than upstream. The only benefits you get is not depending on steam linux runtime as well as linking to Arch libraries. If you still want to build it, you can uncomment the relevant lines in the PKGBUILD to enable CFLAGS and CXXFLAGS similar to the upstream.

  • There have been reports with afdko failing to find its dependencies during building. I can't do anything about that as I don't maintain that package. It is NOT an issue with this package and I haven't found a way to not depend on it. Please don't report fails due to afdko (or any of its python- dependencies, they are pulled in due to afdko and only used by that), it has been discussed enough. There are possible workarounds in the comments.

  • It contains a patch to store game prefixes in the main Steam Library under $HOME/.local/share/Steam/steamapps/compatdata. It helps with isolation of game prefixes between users and works around issues with shared libraries on NTFS partitions due to drive symlinks. To enable it, set the PROTON_USER_COMPAT_DATA env variable to 1.

loathingkernel commented on 2020-10-20 16:30

@damachine Please don't just post logs without reading them first and reading the comments in this thread. Your issue is that your afdko installation doesn't work. It has been discussed already multiple times. It is an issue with another package and the dependencies of that. I can't do anything about that because I don't maintain it. A few possible solutions have been posted in the comments.

damachine commented on 2020-10-20 16:26

Build error post a few lines before break:

File "/usr/lib/python3.8/site-packages/pkg_resources/init.py", line 770, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'defcon[lxml,pens]>=0.7.2' distribution was not found and is required by afdko make[1]: [../proton/build/makefile_base.mak:1532: obj-fonts/SourceHanSansSCRegular.otf] Fehler 1 make[1]: Verzeichnis „/tmp/makepkg/proton-native/src/build“ wird verlassen make: [../proton/build/makefile_base.mak:17: nested_make] Fehler 2 ==> FEHLER: Ein Fehler geschah in build(). Breche ab... error making: proton-native

loathingkernel commented on 2020-04-16 13:54

@yochananmarqos You are correct, neither does pacman. Thanks for pointing it out. I will add an epoch. Annoyingly, upstream is using the exact opposite convention for versioning than pacman and I hadn't looked it up.

yochananmarqos commented on 2020-04-16 13:28

@loathingkernel: You'll have to add an epoch otherwise AUR helpers won't see 5.0.6 as an update.

yochananmarqos commented on 2020-02-25 15:23

@SpaceGuy: That's an issue with afdko's dependencies, not this package. Do not use pip to install anything. See my comment on the afdko page.

SpaceGuy commented on 2020-02-25 12:36

If anyone gets errors because of missing dependencies for python-ufoprocessor (especially for python-fontparts, python-fontpens and python-booleanoperations), it might be a workaround to install python-ufoprocessor with pip. Also if errors occur about missing brotli or zopfli it seems to work if you install them over pip as well. I can confirm that @yochanmarqos's PKGBUILD works. Sorry if I missed something.