Package Details: proton 1:9.0.1-1

Git Clone URL: https://aur.archlinux.org/proton.git (read-only, click to copy)
Package Base: proton
Description: Compatibility tool for Steam Play based on Wine and additional components
Upstream URL: https://github.com/ValveSoftware/Proton
Keywords: dxvk proton steam valve vkd3d wine
Licenses: custom
Submitter: Forty-Bot
Maintainer: loathingkernel
Last Packager: loathingkernel
Votes: 106
Popularity: 0.92
First Submitted: 2018-08-22 01:23 (UTC)
Last Updated: 2024-05-04 08:01 (UTC)

Pinned Comments

loathingkernel commented on 2020-10-22 08:43 (UTC) (edited on 2022-06-15 14:11 (UTC) by loathingkernel)

Notes about this package

  • If you encounter issues while using this package, please contact me here first before reporting an issue to the upstream repository. Don't post logs, link to them. If you are using Manjaro, another derivative or an AUR helper, please mention it, I DO NOT TEST AGAINST THEM AND I CANNOT KNOW WHAT MIGHT BE WRONG WITH THE DISTRO/HELPER OF YOUR CHOICE.

  • 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 (Sniper, Soldier, etc) and as such it doesn't require it. Still, is detected by Steam and works properly (preferable through steam-native).

  • This PKGBUILD uses CFLAGS, CXXFLAGS and LDFLAGS hardcoded in the PKGBUILD itself. By default it uses the same C[XX]FLAGS as upstream, namely -march=nocona and -mtune=core-avx2. To change them you will have to edit the PKGBUILD itself. 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.

  • 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.

  • This package requires a Rust 32 bit target, please run rustup target install i686-unknown-linux-gnu BEFORE posting any issues if you're using rustup.

Latest Comments

« First ‹ Previous 1 .. 4 5 6 7 8 9 10 11 12 13 14 .. 23 Next › Last »

loathingkernel commented on 2021-12-03 23:23 (UTC) (edited on 2021-12-03 23:34 (UTC) by loathingkernel)

@Ninjoh It does affect it. I believed that rustup target add i686-unknown-linux-gnu should have fixed it but apparently that is not the case. In the package this target is satisfied by the lib32-rust-libs dependency. Given that rustup is user-managed I don't know what you might be missing, you could take a look at what packages rustup provides from the repos or what lib32-rust-libs includes and see what could it be.

The other option is to build it in a clean chroot.

If you figure it out, please notify me so I can add a notice here for future reference.

Ninjoh commented on 2021-12-03 23:04 (UTC)

@loathingkernel Yes I am using community/rustup 1.24.3-2 After the first time I got the error I ran the suggested rustup target add i686-unknown-linux-gnu just to be sure that that wasn't the cause.. it's not clear to me whether this actually affects the build.

But even after installing said target, the error still occurs on a fresh clone of the PKGBUILD.

$ rustup target list | grep i686
i686-linux-android
i686-pc-windows-gnu
i686-pc-windows-msvc
i686-unknown-freebsd
i686-unknown-linux-gnu (installed)
i686-unknown-linux-musl

loathingkernel commented on 2021-12-03 20:53 (UTC) (edited on 2021-12-03 20:53 (UTC) by loathingkernel)

@Ninjoh Are you using the rustup package instead of the rust package?

Ninjoh commented on 2021-12-03 20:02 (UTC) (edited on 2021-12-03 20:02 (UTC) by Ninjoh)

On up to date Arch, fresh build using makepkg, the build fails at building obj-mediaconv32.

Rust compiler complains that it cannot find crate 'core', also noting: the 'i686-unknown-linux-gnu' target may not be installed.

Relevant part of build log:

   Compiling slab v0.4.5
     Running `rustc --crate-name build_script_build --edition=2018 /home/martijn/fastsrc/proton/src/build/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-channel-0.3.18/build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="alloc"' --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=4b2e39a5d220b126 -C extra-filename=-4b2e39a5d220b126 --out-dir /home/martijn/fastsrc/proton/src/build/obj-mediaconv32/release/build/futures-channel-4b2e39a5d220b126 -L dependency=/home/martijn/fastsrc/proton/src/build/obj-mediaconv32/release/deps --cap-lints allow`
     Running `rustc --crate-name slab --edition=2018 /home/martijn/fastsrc/proton/src/build/.cargo/registry/src/github.com-1ecc6299db9ec823/slab-0.4.5/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=95049b3d4a3e50b3 -C extra-filename=-95049b3d4a3e50b3 --out-dir /home/martijn/fastsrc/proton/src/build/obj-mediaconv32/i686-unknown-linux-gnu/release/deps --target i686-unknown-linux-gnu -C linker=i686-pc-linux-gnu-gcc -L dependency=/home/martijn/fastsrc/proton/src/build/obj-mediaconv32/i686-unknown-linux-gnu/release/deps -L dependency=/home/martijn/fastsrc/proton/src/build/obj-mediaconv32/release/deps --cap-lints allow`
   Compiling pin-utils v0.1.0
     Running `rustc --crate-name pin_utils --edition=2018 /home/martijn/fastsrc/proton/src/build/.cargo/registry/src/github.com-1ecc6299db9ec823/pin-utils-0.1.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto -C metadata=53c2cead86d9af1f -C extra-filename=-53c2cead86d9af1f --out-dir /home/martijn/fastsrc/proton/src/build/obj-mediaconv32/i686-unknown-linux-gnu/release/deps --target i686-unknown-linux-gnu -C linker=i686-pc-linux-gnu-gcc -L dependency=/home/martijn/fastsrc/proton/src/build/obj-mediaconv32/i686-unknown-linux-gnu/release/deps -L dependency=/home/martijn/fastsrc/proton/src/build/obj-mediaconv32/release/deps --cap-lints allow`
   Compiling either v1.6.1
     Running `rustc --crate-name either /home/martijn/fastsrc/proton/src/build/.cargo/registry/src/github.com-1ecc6299db9ec823/either-1.6.1/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debug-assertions=off -C metadata=7676d853b9c59c5c -C extra-filename=-7676d853b9c59c5c --out-dir /home/martijn/fastsrc/proton/src/build/obj-mediaconv32/release/deps -L dependency=/home/martijn/fastsrc/proton/src/build/obj-mediaconv32/release/deps --cap-lints allow`
error[E0463]: can't find crate for `std`
  |
  = note: the `i686-unknown-linux-gnu` target may not be installed
  = help: consider downloading the target with `rustup target add i686-unknown-linux-gnu`

For more information about this error, try `rustc --explain E0463`.
error: could not compile `slab` due to previous error

Caused by:
  process didn't exit successfully: `rustc --crate-name slab --edition=2018 /home/martijn/fastsrc/proton/src/build/.cargo/registry/src/github.com-1ecc6299db9ec823/slab-0.4.5/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C linker-plugin-lto --cfg 'feature="default"' --cfg 'feature="std"' -C metadata=95049b3d4a3e50b3 -C extra-filename=-95049b3d4a3e50b3 --out-dir /home/martijn/fastsrc/proton/src/build/obj-mediaconv32/i686-unknown-linux-gnu/release/deps --target i686-unknown-linux-gnu -C linker=i686-pc-linux-gnu-gcc -L dependency=/home/martijn/fastsrc/proton/src/build/obj-mediaconv32/i686-unknown-linux-gnu/release/deps -L dependency=/home/martijn/fastsrc/proton/src/build/obj-mediaconv32/release/deps --cap-lints allow` (exit status: 1)
warning: build failed, waiting for other jobs to finish...
error[E0463]: can't find crate for `core`
  |
  = note: the `i686-unknown-linux-gnu` target may not be installed
  = help: consider downloading the target with `rustup target add i686-unknown-linux-gnu`

error: build failed

emillynge commented on 2021-11-26 09:45 (UTC)

this patch seems to work:

https://gist.githubusercontent.com/emillynge/ab518a94c7adee22a19ca31ce944fcf4/raw/7416f876ac24cc844a48e9abaab4075652617840/wine-winevulkan_fsr.patch

loathingkernel commented on 2021-11-25 21:56 (UTC)

@emillynge I am really sorry, I forgot to comment it out when committing the update. Also thank you for investigating it. I will look into your comment and try to provide a fixed patch.

emillynge commented on 2021-11-25 21:28 (UTC)

These 2 commits: https://github.com/ValveSoftware/wine/commit/549f80abf79fc2900ecdaef9f0c1b9006dc1c11b

and

https://github.com/ValveSoftware/wine/commit/9871b0dbe3b4806ae6c4c3a9320e0fece83fabb7

Seems to be the offenders causing the bad patches. They throwing off the line numbers wine-winevulkan_fsr.patch with regards to vulkan.c. 8 lines are added at line 1209 and an additional 11 lines at 3033.

I think it would be possible to just manually adjust insertions points in the patch based on those additions.

emillynge commented on 2021-11-25 20:38 (UTC)

I think maybe the patch for winevulkan/vulkan.c/ defined in wine-winevulkan_fsr.patch is no longer good.

The functions srgb_to_unorm and is_srgb are being put inside the function create_descriptor_set causing a compilation error.

loathingkernel commented on 2021-11-19 19:34 (UTC) (edited on 2021-11-19 19:38 (UTC) by loathingkernel)

@BrainDamage Yep, I can reproduce it. I will push an update shortly that builds Wine without it, hopefully it is not used for something important in Proton. If you get compatibility issues that weren't present before, please report them.

BrainDamage commented on 2021-11-19 17:46 (UTC)

I'm having an issue doing a clean build with recent ldap versions (the same library incompatibility likely broke my old buid, since /usr/share/steam/compatibilitytools.d/proton-native/dist/lib64/wine/wldap32.dll.so cannot be loaded and lddtree points at ldap's libs )

build log:

gcc -m32 -m32 -c -o dlls/wldap32/compare.o /home/cloud/tempbuild/proton/src/build/src-wine/dlls/wldap32/compare.c \
    -Idlls/wldap32 -I/home/cloud/tempbuild/proton/src/build/src-wine/dlls/wldap32 -Iinclude \
    -I/home/cloud/tempbuild/proton/src/build/src-wine/include -D__WINESRC__ -D_REENTRANT -fno-PIC \
    -fasynchronous-unwind-tables -Wall -pipe -fcf-protection=none -fno-stack-protector \
    -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers \
    -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
    -Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op \
    -fno-omit-frame-pointer -D_FORTIFY_SOURCE=2 -I/home/cloud/tempbuild/proton/src/build/dst-gst_orc32/include -I/home/cloud/tempbuild/proton/src/build/dst-gstreamer32/include -I/home/cloud/tempbuild/proton/src/build/dst-gst_base32/include -I/home/cloud/tempbuild/proton/src/build/dst-faudio32/include -I/home/cloud/tempbuild/proton/src/build/dst-jxrlib32/include/jxrlib  -gdwarf-2 -gstrict-dwarf -O3 -march=nocona -mtune=core-avx2 -pipe -mno-avx -mno-avx2 -mfpmath=sse -fwrapv -fno-strict-aliasing -ffile-prefix-map=/home/cloud/tempbuild/proton/src/build/src-wine=. -mstackrealign -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
In file included from /home/cloud/tempbuild/proton/src/build/src-wine/dlls/wldap32/add.c:33:
/home/cloud/tempbuild/proton/src/build/src-wine/dlls/wldap32/winldap_private.h:323:13: error: conflicting types for ‘ldap_connect’; have ‘ULONG(WLDAP32_LDAP *, LDAP_TIMEVAL *)’ {aka ‘unsigned int(struct wldap32 *, struct l_timeval *)’}
    323 | ULONG CDECL ldap_connect(WLDAP32_LDAP*,LDAP_TIMEVAL*);
            |             ^~~~~~~~~~~~