diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix index 5084bc48fb77..d8d3ff24450f 100644 --- a/pkgs/tools/package-management/protontricks/default.nix +++ b/pkgs/tools/package-management/protontricks/default.nix @@ -14,13 +14,13 @@ buildPythonApplication rec { pname = "protontricks"; - version = "1.7.0"; + version = "1.10.1"; src = fetchFromGitHub { owner = "Matoking"; repo = pname; rev = version; - sha256 = "sha256-StI9UdSILcCUmViQnxteOJr6xLSz+EgtxRpJis57lBY="; + sha256 = "sha256-gKrdUwX5TzeHHXuwhUyI4REPE6TNiZ6lhonyMCHcBCA="; }; patches = [ diff --git a/pkgs/tools/package-management/protontricks/steam-run.patch b/pkgs/tools/package-management/protontricks/steam-run.patch index 92565f88fdd0..bcc1fc989836 100644 --- a/pkgs/tools/package-management/protontricks/steam-run.patch +++ b/pkgs/tools/package-management/protontricks/steam-run.patch @@ -1,19 +1,18 @@ diff --git a/src/protontricks/cli/main.py b/src/protontricks/cli/main.py -index 8be6c71..f5772df 100755 +index c77d287..236c2a9 100755 --- a/src/protontricks/cli/main.py +++ b/src/protontricks/cli/main.py -@@ -14,8 +14,8 @@ import sys - - from .. import __version__ - from ..gui import select_steam_app_with_gui +@@ -17,8 +17,7 @@ from ..flatpak import (FLATPAK_BWRAP_COMPATIBLE_VERSION, + get_running_flatpak_version) + from ..gui import (prompt_filesystem_access, select_steam_app_with_gui, + select_steam_installation) -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 get_running_flatpak_version, FLATPAK_BWRAP_COMPATIBLE_VERSION, run_command +- find_steam_installations, get_steam_apps, ++from ..steam import (find_proton_app, find_steam_installations, get_steam_apps, + get_steam_lib_paths) + from ..util import run_command from ..winetricks import get_winetricks_path - from .util import (CustomArgumentParser, cli_error_handler, enable_logging, -@@ -60,8 +60,7 @@ def main(args=None): +@@ -67,8 +66,7 @@ def main(args=None, steam_path=None, steam_root=None): "WINE: path to a custom 'wine' executable\n" "WINESERVER: path to a custom 'wineserver' executable\n" "STEAM_RUNTIME: 1 = enable Steam Runtime, 0 = disable Steam " @@ -23,9 +22,9 @@ index 8be6c71..f5772df 100755 "PROTONTRICKS_GUI: GUI provider to use, accepts either 'yad' " "or 'zenity'" ), -@@ -151,17 +150,9 @@ def main(args=None): - if not steam_path: - exit_("Steam installation directory could not be found.") +@@ -204,17 +202,9 @@ def main(args=None, steam_path=None, steam_root=None): + if not steam_path: + exit_("No Steam installation was selected.") - # 2. Find the pre-installed legacy Steam Runtime if enabled - legacy_steam_runtime_path = None @@ -43,47 +42,99 @@ index 8be6c71..f5772df 100755 else: use_steam_runtime = False logger.info("Steam Runtime disabled.") -@@ -222,7 +213,6 @@ def main(args=None): +@@ -281,7 +271,6 @@ def main(args=None, steam_path=None, steam_root=None): proton_app=proton_app, steam_app=steam_app, use_steam_runtime=use_steam_runtime, - legacy_steam_runtime_path=legacy_steam_runtime_path, command=[str(winetricks_path), "--gui"], - use_bwrap=use_bwrap - ) -@@ -290,7 +280,6 @@ def main(args=None): + use_bwrap=use_bwrap, + start_wineserver=start_background_wineserver +@@ -361,7 +350,6 @@ def main(args=None, steam_path=None, steam_root=None): proton_app=proton_app, steam_app=steam_app, use_steam_runtime=use_steam_runtime, - legacy_steam_runtime_path=legacy_steam_runtime_path, use_bwrap=use_bwrap, + start_wineserver=start_background_wineserver, command=[str(winetricks_path)] + args.winetricks_command - ) -@@ -301,7 +290,6 @@ def main(args=None): +@@ -373,7 +361,6 @@ def main(args=None, steam_path=None, steam_root=None): steam_app=steam_app, command=args.command, use_steam_runtime=use_steam_runtime, - legacy_steam_runtime_path=legacy_steam_runtime_path, use_bwrap=use_bwrap, + start_wineserver=start_background_wineserver, # Pass the command directly into the shell *without* - # escaping it +diff --git a/src/protontricks/data/scripts/bwrap_launcher.sh b/src/protontricks/data/scripts/bwrap_launcher.sh +index b5552e1..b11bc99 100644 +--- a/src/protontricks/data/scripts/bwrap_launcher.sh ++++ b/src/protontricks/data/scripts/bwrap_launcher.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env bash + # Helper script + set -o errexit + +@@ -80,6 +80,8 @@ done + log_info "Following directories will be mounted inside container: ${mount_dirs[*]}" + log_info "Using temporary directory: $PROTONTRICKS_TEMP_PATH" + +-exec "$STEAM_RUNTIME_PATH"/run --share-pid --launcher \ ++exec steam-run "$STEAM_RUNTIME_PATH"/pressure-vessel/bin/pressure-vessel-wrap \ ++--variable-dir="${PRESSURE_VESSEL_VARIABLE_DIR:-$STEAM_RUNTIME_PATH/var}" \ ++--share-pid --launcher \ + "${mount_params[@]}" -- \ + --bus-name="com.github.Matoking.protontricks.App${STEAM_APPID}_${PROTONTRICKS_SESSION_ID}" +diff --git a/src/protontricks/data/scripts/wine_launch.sh b/src/protontricks/data/scripts/wine_launch.sh +index 1f8a432..2d82f2b 100644 +--- a/src/protontricks/data/scripts/wine_launch.sh ++++ b/src/protontricks/data/scripts/wine_launch.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env -S steam-run bash + # Helper script created by Protontricks to run Wine binaries using Steam Runtime + set -o errexit + +@@ -158,8 +158,8 @@ if [[ -n "$PROTONTRICKS_INSIDE_STEAM_RUNTIME" + export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PROTON_LD_LIBRARY_PATH" + log_info "Appending to LD_LIBRARY_PATH: $PROTON_LD_LIBRARY_PATH" + elif [[ "$PROTONTRICKS_STEAM_RUNTIME" = "legacy" ]]; then +- export LD_LIBRARY_PATH="$PROTON_LD_LIBRARY_PATH" +- log_info "LD_LIBRARY_PATH set to $LD_LIBRARY_PATH" ++ export LD_LIBRARY_PATH="$PROTON_LD_LIBRARY_PATH":"$LD_LIBRARY_PATH" ++ log_info "Inserting to head of LD_LIBRARY_PATH: $PROTON_LD_LIBRARY_PATH" + fi + exec "$PROTON_DIST_PATH"/bin/@@name@@ "$@" || : + elif [[ "$PROTONTRICKS_STEAM_RUNTIME" = "bwrap" ]]; then +diff --git a/src/protontricks/data/scripts/wineserver_keepalive.sh b/src/protontricks/data/scripts/wineserver_keepalive.sh +index 8168dae..559de33 100644 +--- a/src/protontricks/data/scripts/wineserver_keepalive.sh ++++ b/src/protontricks/data/scripts/wineserver_keepalive.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env bash + # A simple keepalive script that will ensure a wineserver process is kept alive + # for the duration of the Protontricks session. + # This is accomplished by launching a simple Windows batch script that will diff --git a/src/protontricks/steam.py b/src/protontricks/steam.py -index a291762..8af06c5 100644 +index c39b51d..79de098 100644 --- a/src/protontricks/steam.py +++ b/src/protontricks/steam.py -@@ -12,8 +12,8 @@ from .util import lower_dict, is_flatpak_sandbox +@@ -14,9 +14,8 @@ from .util import lower_dict __all__ = ( - "COMMON_STEAM_DIRS", "SteamApp", "find_steam_path", -- "find_legacy_steam_runtime_path", "get_appinfo_sections", -- "get_tool_appid", "find_steam_compat_tool_app", "find_appid_proton_prefix", -+ "get_appinfo_sections", "get_tool_appid", -+ "find_steam_compat_tool_app", "find_appid_proton_prefix", + "COMMON_STEAM_DIRS", "SteamApp", "find_steam_installations", +- "find_steam_path", "find_legacy_steam_runtime_path", +- "iter_appinfo_sections", "get_appinfo_sections", "get_tool_appid", +- "find_steam_compat_tool_app", "find_appid_proton_prefix", ++ "find_steam_path", "iter_appinfo_sections", "get_appinfo_sections", ++ "get_tool_appid", "find_steam_compat_tool_app", "find_appid_proton_prefix", "find_proton_app", "get_steam_lib_paths", "get_compat_tool_dirs", - "get_custom_compat_tool_installations_in_dir", "get_custom_compat_tool_installations", - "find_current_steamid3", "get_appid_from_shortcut", -@@ -326,37 +326,6 @@ def find_steam_path(): - return None, None + "get_custom_compat_tool_installations_in_dir", + "get_custom_compat_tool_installations", "find_current_steamid3", +@@ -393,37 +392,6 @@ def find_steam_path(): + return None, None -def find_legacy_steam_runtime_path(steam_root): @@ -118,30 +169,31 @@ index a291762..8af06c5 100644 - - APPINFO_STRUCT_HEADER = "<4sL" - APPINFO_STRUCT_SECTION = "