diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix index 625dde8f825cc..76049c51d21d2 100644 --- a/pkgs/tools/X11/xpra/default.nix +++ b/pkgs/tools/X11/xpra/default.nix @@ -1,6 +1,5 @@ { lib , fetchFromGitHub -, substituteAll , pkg-config , runCommand , writeText @@ -38,6 +37,7 @@ , xdg-utils , xorg , xorgserver +, xxHash }: let @@ -70,20 +70,16 @@ let ''; in buildPythonApplication rec { pname = "xpra"; - version = "5.0.9"; + version = "6.1.2"; src = fetchFromGitHub { owner = "Xpra-org"; repo = "xpra"; rev = "v${version}"; - hash = "sha256-gwo5plCAryGC8/BKVEqyMkgB+3FM8HXG6sESomDOtNM="; + hash = "sha256-SmX0zwScyosiidBdW18vP3tV7BJfYfOmXwuRUbb+gX8="; }; patches = [ - (substituteAll { # correct hardcoded paths - src = ./fix-paths.patch; - inherit libfakeXinerama; - }) ./fix-41106.patch # https://github.com/NixOS/nixpkgs/issues/41106 ./fix-122159.patch # https://github.com/NixOS/nixpkgs/issues/122159 ]; @@ -137,6 +133,7 @@ in buildPythonApplication rec { pango x264 x265 + xxHash ] ++ lib.optional withNvenc nvencHeaders; propagatedBuildInputs = with python3.pkgs; ([ diff --git a/pkgs/tools/X11/xpra/fix-122159.patch b/pkgs/tools/X11/xpra/fix-122159.patch index 5fe2ce3892fd8..58efa07e790d7 100644 --- a/pkgs/tools/X11/xpra/fix-122159.patch +++ b/pkgs/tools/X11/xpra/fix-122159.patch @@ -1,16 +1,18 @@ diff --git a/xpra/scripts/main.py b/xpra/scripts/main.py -index 58c8bf6464..36f4b3cd3d 100755 +index 7806612e05..4c7a0ec2dd 100755 --- a/xpra/scripts/main.py +++ b/xpra/scripts/main.py -@@ -389,11 +389,7 @@ def run_mode(script_file:str, cmdline, error_cb, options, args, mode:str, defaul - "seamless", "desktop", "shadow", "shadow-screen", "expand", - "upgrade", "upgrade-seamless", "upgrade-desktop", - ) and not display_is_remote and use_systemd_run(options.systemd_run): -- #make sure we run via the same interpreter, -- #inject it into the command line if we have to: +@@ -444,13 +444,7 @@ def run_mode(script_file: str, cmdline, error_cb, options, args, full_mode: str, + "seamless", "desktop", "shadow", "shadow-screen", "expand", + "upgrade", "upgrade-seamless", "upgrade-desktop", + ) and not display_is_remote and options.daemon and use_systemd_run(options.systemd_run): +- # make sure we run via the same interpreter, +- # inject it into the command line if we have to: argv = list(cmdline) -- if argv[0].find("python")<0: -- argv.insert(0, "python%i.%i" % (sys.version_info.major, sys.version_info.minor)) - return systemd_run_wrap(mode, argv, options.systemd_run_args, user=getuid()!=0) +- if argv[0].find("python") < 0: +- major, minor = sys.version_info.major, sys.version_info.minor +- python = which("python%i.%i" % (major, minor)) or which("python%i" % major) or which("python") or "python" +- argv.insert(0, python) + return systemd_run_wrap(mode, argv, options.systemd_run_args, user=getuid() != 0) configure_env(options.env) configure_logging(options, mode) diff --git a/pkgs/tools/X11/xpra/fix-41106.patch b/pkgs/tools/X11/xpra/fix-41106.patch index a1a74a01c3fe9..84061106323c6 100644 --- a/pkgs/tools/X11/xpra/fix-41106.patch +++ b/pkgs/tools/X11/xpra/fix-41106.patch @@ -1,11 +1,11 @@ -diff --git a/xpra/server/server_util.py b/xpra/server/server_util.py -index 2e83712bb8..2dd0bf73d2 100644 ---- a/xpra/server/server_util.py -+++ b/xpra/server/server_util.py -@@ -166,6 +166,10 @@ def xpra_env_shell_script(socket_dir, env : Dict[str,str]) -> str: - return "\n".join(script) +diff --git a/xpra/server/util.py b/xpra/server/util.py +index 401a9fb959..678e2ce745 100644 +--- a/xpra/server/util.py ++++ b/xpra/server/util.py +@@ -175,6 +175,10 @@ def xpra_env_shell_script(socket_dir: str, env: dict[str, str]) -> str: - def xpra_runner_shell_script(xpra_file:str, starting_dir:str) -> str: + + def xpra_runner_shell_script(xpra_file: str, starting_dir: str) -> str: + # Nixpkgs contortion: + # xpra_file points to a shell wrapper, not to the python script. + dirname, basename = os.path.split(xpra_file) diff --git a/pkgs/tools/X11/xpra/fix-paths.patch b/pkgs/tools/X11/xpra/fix-paths.patch deleted file mode 100644 index 43210f4f15d6f..0000000000000 --- a/pkgs/tools/X11/xpra/fix-paths.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/xpra/x11/fakeXinerama.py b/xpra/x11/fakeXinerama.py -index a5289e0e43..527cdf90c9 100755 ---- a/xpra/x11/fakeXinerama.py -+++ b/xpra/x11/fakeXinerama.py -@@ -23,31 +23,7 @@ fakeXinerama_config_files = [ - ] - - def find_libfakeXinerama(): -- libname = "fakeXinerama" -- try: -- from ctypes.util import find_library -- flibname = find_library("fakeXinerama") -- if flibname: -- libname = flibname -- except Exception: -- pass -- if POSIX: -- for lib_dir in os.environ.get("LD_LIBRARY_PATH", "/usr/lib").split(os.pathsep): -- lib_path = os.path.join(lib_dir, libname) -- if not os.path.exists(lib_dir): -- continue -- if os.path.exists(lib_path) and os.path.isfile(lib_path): -- return lib_path -- if LINUX: -- try: -- libpath = find_lib_ldconfig("fakeXinerama") -- if libpath: -- return libpath -- except Exception as e: -- log("find_libfakeXinerama()", exc_info=True) -- log.error("Error: cannot launch ldconfig -p to locate libfakeXinerama:") -- log.estr(e) -- return find_lib("libfakeXinerama.so.1") -+ return "@libfakeXinerama@/lib/libfakeXinerama.so.1.0" - - current_xinerama_config = None -