diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix index ec5017c54c7..bc161f38f28 100644 --- a/pkgs/tools/package-management/protontricks/default.nix +++ b/pkgs/tools/package-management/protontricks/default.nix @@ -3,6 +3,7 @@ , fetchFromGitHub , setuptools_scm , vdf +, bash , steam-run , winetricks , zenity @@ -11,13 +12,13 @@ buildPythonApplication rec { pname = "protontricks"; - version = "1.4.4"; + version = "1.5.0"; src = fetchFromGitHub { owner = "Matoking"; repo = pname; rev = version; - sha256 = "0i7p0jj7avmq3b2qlcpwcflipndrnwsvwvhc5aal7rm95aa7xhja"; + hash = "sha256-IHgoi5VUN3ORbufkruPb6wR7pTekJFQHhhDrnjOWzWM="; }; patches = [ @@ -34,6 +35,7 @@ buildPythonApplication rec { makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ + bash steam-run (winetricks.override { # Remove default build of wine to reduce closure size. @@ -45,15 +47,7 @@ buildPythonApplication rec { ]; checkInputs = [ pytestCheckHook ]; - disabledTests = [ - # Steam runtime is hard-coded with steam-run.patch and can't be configured - "test_run_steam_runtime_not_found" - "test_unknown_steam_runtime_detected" - - # Steam runtime 2 currently isn't supported - # See https://github.com/NixOS/nixpkgs/issues/100655 - "test_run_winetricks_steam_runtime_v2" - ]; + pythonImportsCheck = [ "protontricks" ]; meta = with lib; { description = "A simple wrapper for running Winetricks commands for Proton-enabled games"; diff --git a/pkgs/tools/package-management/protontricks/steam-run.patch b/pkgs/tools/package-management/protontricks/steam-run.patch index 619d80bd8a7..5e91de58dbe 100644 --- a/pkgs/tools/package-management/protontricks/steam-run.patch +++ b/pkgs/tools/package-management/protontricks/steam-run.patch @@ -1,16 +1,18 @@ diff --git a/src/protontricks/cli.py b/src/protontricks/cli.py -index fec0563..d158b96 100755 +index 9641970..6a2b268 100755 --- a/src/protontricks/cli.py +++ b/src/protontricks/cli.py -@@ -14,7 +14,7 @@ import os - import logging +@@ -15,8 +15,8 @@ import sys from . import __version__ --from .steam import (find_proton_app, find_steam_path, find_steam_runtime_path, -+from .steam import (find_proton_app, find_steam_path, - get_steam_apps, get_steam_lib_paths) - from .winetricks import get_winetricks_path from .gui import select_steam_app_with_gui +-from .steam import (find_legacy_steam_runtime_path, find_proton_app, +- find_steam_path, get_steam_apps, get_steam_lib_paths) ++from .steam import (find_proton_app, find_steam_path, get_steam_apps, ++ get_steam_lib_paths) + from .util import run_command + from .winetricks import get_winetricks_path + @@ -75,8 +75,7 @@ def main(args=None): "WINE: path to a custom 'wine' executable\n" "WINESERVER: path to a custom 'wineserver' executable\n" @@ -21,70 +23,73 @@ index fec0563..d158b96 100755 ), formatter_class=argparse.RawTextHelpFormatter ) -@@ -133,14 +132,10 @@ def main(args=None): +@@ -138,18 +137,9 @@ def main(args=None): + ) sys.exit(-1) - # 2. Find Steam Runtime if enabled -- steam_runtime_path = None -+ steam_runtime = False - - if os.environ.get("STEAM_RUNTIME", "") != "0" and not args.no_runtime: -- steam_runtime_path = find_steam_runtime_path(steam_root=steam_root) +- # 2. Find the pre-installed legacy Steam Runtime if enabled +- legacy_steam_runtime_path = None +- use_steam_runtime = True - -- if not steam_runtime_path: ++ # 2. Use Steam Runtime if enabled + if os.environ.get("STEAM_RUNTIME", "") != "0" and not args.no_runtime: +- legacy_steam_runtime_path = find_legacy_steam_runtime_path( +- steam_root=steam_root +- ) +- +- if not legacy_steam_runtime_path: - print("Steam Runtime was enabled but couldn't be found!") - sys.exit(-1) -+ steam_runtime = True ++ use_steam_runtime = True else: + use_steam_runtime = False logger.info("Steam Runtime disabled.") - -@@ -201,7 +196,7 @@ def main(args=None): - winetricks_path=winetricks_path, +@@ -212,7 +202,6 @@ def main(args=None): proton_app=proton_app, steam_app=steam_app, -- steam_runtime_path=steam_runtime_path, -+ steam_runtime=steam_runtime, - command=[winetricks_path, "--gui"] + use_steam_runtime=use_steam_runtime, +- legacy_steam_runtime_path=legacy_steam_runtime_path, + command=[winetricks_path, "--gui"], + use_bwrap=use_bwrap ) - -@@ -269,7 +264,7 @@ def main(args=None): - winetricks_path=winetricks_path, +@@ -282,7 +271,6 @@ def main(args=None): proton_app=proton_app, steam_app=steam_app, -- steam_runtime_path=steam_runtime_path, -+ steam_runtime=steam_runtime, + use_steam_runtime=use_steam_runtime, +- legacy_steam_runtime_path=legacy_steam_runtime_path, + use_bwrap=use_bwrap, command=[winetricks_path] + args.winetricks_command) elif args.command: - run_command( -@@ -277,7 +272,7 @@ def main(args=None): - proton_app=proton_app, +@@ -292,7 +280,6 @@ def main(args=None): steam_app=steam_app, command=args.command, -- steam_runtime_path=steam_runtime_path, -+ steam_runtime=steam_runtime, + use_steam_runtime=use_steam_runtime, +- legacy_steam_runtime_path=legacy_steam_runtime_path, + use_bwrap=use_bwrap, # Pass the command directly into the shell *without* # escaping it - cwd=steam_app.install_path, diff --git a/src/protontricks/steam.py b/src/protontricks/steam.py -index fa5772d..4f30cd3 100644 +index 8554e24..509afb6 100644 --- a/src/protontricks/steam.py +++ b/src/protontricks/steam.py -@@ -11,7 +11,7 @@ from .util import lower_dict - +@@ -13,8 +13,8 @@ from .util import lower_dict __all__ = ( "COMMON_STEAM_DIRS", "SteamApp", "find_steam_path", -- "find_steam_proton_app", "find_proton_app", "find_steam_runtime_path", -+ "find_steam_proton_app", "find_proton_app", - "find_appid_proton_prefix", "get_steam_lib_paths", "get_steam_apps", - "get_custom_proton_installations" + "find_steam_proton_app", "find_proton_app", +- "find_legacy_steam_runtime_path", "find_appid_proton_prefix", +- "get_steam_lib_paths", "get_steam_apps", "get_custom_proton_installations" ++ "find_appid_proton_prefix", "get_steam_lib_paths", ++ "get_steam_apps", "get_custom_proton_installations" ) -@@ -254,37 +254,6 @@ def find_steam_path(): + + COMMON_STEAM_DIRS = [ +@@ -283,37 +283,6 @@ def find_steam_path(): return None, None --def find_steam_runtime_path(steam_root): +-def find_legacy_steam_runtime_path(steam_root): - """ -- Find the Steam Runtime either using the STEAM_RUNTIME env or +- Find the legacy Steam Runtime either using the STEAM_RUNTIME env or - steam_root - """ - env_steam_runtime = os.environ.get("STEAM_RUNTIME", "") @@ -117,162 +122,149 @@ index fa5772d..4f30cd3 100644 APPINFO_STRUCT_SECTION = "