diff options
author | Ionen Wolkens <ionen@gentoo.org> | 2022-05-10 19:26:08 -0400 |
---|---|---|
committer | Ionen Wolkens <ionen@gentoo.org> | 2022-09-03 15:46:00 -0400 |
commit | 2e0980beada259e57077f4b99d068d3b85557d28 (patch) | |
tree | 42932c8234d1ec90f060f0c2e7aa61bd3927e49c /app-emulation/wine-proton/files | |
parent | app-eselect/eselect-wine: EAPI6->8, add proton variant (diff) | |
download | gentoo-2e0980beada259e57077f4b99d068d3b85557d28.tar.gz gentoo-2e0980beada259e57077f4b99d068d3b85557d28.tar.bz2 gentoo-2e0980beada259e57077f4b99d068d3b85557d28.zip |
app-emulation/wine-proton: new package, add 7.0.4
This is Valve's modified wine fork as used by Proton (includes
various workarounds for games, fsync support, etc...), which
can be used independently as a eselect'able Wine variant.
Also using a new experimental ebuild that's not based on existing
Wine ones -- may have regressions unrelated to the variant itself.
Trims some ancient unnecessary bits, skips a few things I feel the
ebuild doesn't need to handle, and change build method a bit.
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'app-emulation/wine-proton/files')
4 files changed, 82 insertions, 0 deletions
diff --git a/app-emulation/wine-proton/files/README.gentoo b/app-emulation/wine-proton/files/README.gentoo new file mode 100644 index 000000000000..988d28df7ddf --- /dev/null +++ b/app-emulation/wine-proton/files/README.gentoo @@ -0,0 +1,52 @@ +While this version of Wine is usable independently, it does contain some +Steam-oriented changes that may be unexpected. Notably C:\users\steamuser +is used rather than C:\users\<user-name> and it may be necessary to move +files if converting from non-proton Wine prefixes (like games' save files). + +To keep a low maintenance cost, these changes are not reverted in Gentoo +with the exception of re-enabling winemenubuilder for desktop entries. + +Also, given this Wine variant is oriented toward running games, some +normally unrelated features (e.g. ldap) may not have real upstream +(Valve) support. Because of this, some are left always disabled. + +If needed, use other variants for the more expected Wine behavior. + +--- + +Given Proton is not creating the Wine prefixes, some features are not +enabled by default and PROTON_* variables to control them are unrecognized. + +To (optionally) setup some notable defaults of Proton: +- export WINEFSYNC=1 +. Often improves performance for CPU-bound applications, recommended +. but should be left disabled if get crashes mentioning fsync errors. +. >Requires linux kernel >=5.16 if unpatched. +- export WINE_LARGE_ADDRESS_AWARE=1 +. Allows 32bit applications to access more memory, notably helps +. prevent crashes on memory-heavy applications while using dxvk below. +- WINEPREFIX=/path/to setup_dxvk.sh install --symlink +. Vulkan-based d3d9/10/11 that often provides both better performance +. and compatibility (strongly recommended). +. >Requires app-emulation/dxvk +- WINEPREFIX=/path/to setup_vkd3d_proton.sh install --symlink +. Like above, but for d3d12. Wine also supports vkd3d as-is but this +. is the modified fork used by Proton (may or may not be better). +. >Requires app-emulation/vkd3d-proton + +For some applications it may be better to disable these or do other +workarounds, see https://www.protondb.com/ for specific information. + +Many other proton-specific improvements / fixes are always enabled, and +some game-specific quirks are auto-enabled as needed (can see a few from +running winecfg). + +If have audio/video playback issues, note to look at GStreamer plugins. +Notably USE=ffmpeg on media-plugins/gst-plugins-meta which Proton normally +provide by default. + +--- + +If have other Wine variants installed, remember to either use `eselect wine` +to select this variant or call it as wine-proton. Note other available +variants may be auto-selected when removing/replacing a selected slot. diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-llvm-libunwind.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-llvm-libunwind.patch new file mode 100644 index 000000000000..0086fa5e0353 --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-llvm-libunwind.patch @@ -0,0 +1,9 @@ +Note the dodgy _CONFIG_H_ check can be removed when >=llvm-libunwind-15 +(which adds _VERSION) is well established: https://reviews.llvm.org/D121015 +--- a/dlls/ntdll/unix/signal_x86_64.c ++++ b/dlls/ntdll/unix/signal_x86_64.c +@@ -1370,3 +1370,3 @@ + +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) + rc = unw_getcontext( &unw_context ); diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-noexecstack.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-noexecstack.patch new file mode 100644 index 000000000000..92aa0b4b5c5d --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-noexecstack.patch @@ -0,0 +1,7 @@ +Also write GNU-stack note on dummy files used for stub libraries. +--- a/tools/winebuild/import.c ++++ b/tools/winebuild/import.c +@@ -1675,2 +1675,3 @@ + output( "\t.text\n" ); ++ output_gnu_stack_note(); + } diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-restore-menubuilder.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-restore-menubuilder.patch new file mode 100644 index 000000000000..760340791060 --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-restore-menubuilder.patch @@ -0,0 +1,14 @@ +Without Steam there is no launcher by default, users with more custom +setups may not need this but others will want access to desktop entries. +--- a/configure.ac ++++ b/configure.ac +@@ -3683,2 +3683,3 @@ + WINE_CONFIG_MAKEFILE(programs/winefile) ++WINE_CONFIG_MAKEFILE(programs/winemenubuilder) + WINE_CONFIG_MAKEFILE(programs/winemine) +--- a/loader/wine.inf.in ++++ b/loader/wine.inf.in +@@ -5630,2 +5630,3 @@ + [Services] ++HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -a -r" + HKLM,"System\CurrentControlSet\Services\Eventlog\Application",,16 |