From 9abfef3f54a1bae43d09c6df7abf348efad3f8a7 Mon Sep 17 00:00:00 2001 From: Matt Votava Date: Fri, 20 May 2022 05:32:42 -0700 Subject: [PATCH] xpra: 4.3.2 -> 4.3.3 (#172682) --- pkgs/tools/X11/xpra/default.nix | 139 ++++++++++++++++++++------- pkgs/tools/X11/xpra/fix-122159.patch | 16 +++ 2 files changed, 120 insertions(+), 35 deletions(-) create mode 100644 pkgs/tools/X11/xpra/fix-122159.patch diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix index 656b9ee6006..69f7dcb469a 100644 --- a/pkgs/tools/X11/xpra/default.nix +++ b/pkgs/tools/X11/xpra/default.nix @@ -1,13 +1,40 @@ { lib , fetchurl -, substituteAll, python3, pkg-config, runCommand, writeText -, xorg, gtk3, glib, pango, cairo, gdk-pixbuf, atk, pandoc -, wrapGAppsHook, xorgserver, getopt, xauth, util-linux, which -, ffmpeg, x264, libvpx, libwebp, x265, librsvg +, substituteAll +, pkg-config +, runCommand +, writeText +, wrapGAppsHook +, withNvenc ? false +, atk +, cairo +, cudatoolkit +, ffmpeg +, gdk-pixbuf +, getopt +, glib +, gobject-introspection +, gst_all_1 +, gtk3 , libfakeXinerama -, gst_all_1, pulseaudio, gobject-introspection -, withNvenc ? false, cudatoolkit, nv-codec-headers-10, nvidia_x11 ? null -, pam }: +, librsvg +, libvpx +, libwebp +, nv-codec-headers-10 +, nvidia_x11 ? null +, pam +, pandoc +, pango +, pulseaudio +, python3 +, util-linux +, which +, x264 +, x265 +, xauth +, xorg +, xorgserver +}: with lib; @@ -43,11 +70,11 @@ let ''; in buildPythonApplication rec { pname = "xpra"; - version = "4.3.2"; + version = "4.3.3"; src = fetchurl { url = "https://xpra.org/src/${pname}-${version}.tar.xz"; - hash = "sha256-CIHVpxZ2qC7Ct5Kmc6dxEzxH9s+63/sI07f9SbCh4a4="; + hash = "sha256-J6zzkho0A1faCVzS/0wDlbgLtJmyPrnBkEcR7kDld7A="; }; patches = [ @@ -56,41 +83,81 @@ in buildPythonApplication rec { inherit libfakeXinerama; }) ./fix-41106.patch # https://github.com/NixOS/nixpkgs/issues/41106 + ./fix-122159.patch # https://github.com/NixOS/nixpkgs/issues/122159 ]; INCLUDE_DIRS = "${pam}/include"; - nativeBuildInputs = [ pkg-config wrapGAppsHook pandoc ] - ++ lib.optional withNvenc cudatoolkit; + nativeBuildInputs = [ + pkg-config + wrapGAppsHook + pandoc + ] ++ lib.optional withNvenc cudatoolkit; + buildInputs = with xorg; [ - libX11 xorgproto libXrender libXi libXres - libXtst libXfixes libXcomposite libXdamage - libXrandr libxkbfile - ] ++ [ + libX11 + libXcomposite + libXdamage + libXfixes + libXi + libxkbfile + libXrandr + libXrender + libXres + libXtst + xorgproto + ] ++ (with gst_all_1; [ + gst-libav + gst-plugins-bad + gst-plugins-base + gst-plugins-good + gstreamer + ]) ++ [ + atk.out + cairo cython + ffmpeg + gdk-pixbuf + glib + gobject-introspection + gtk3 librsvg - - pango cairo gdk-pixbuf atk.out gtk3 glib - - ffmpeg libvpx x264 libwebp x265 - - gst_all_1.gstreamer - gst_all_1.gst-plugins-base - gst_all_1.gst-plugins-good - gst_all_1.gst-plugins-bad - gst_all_1.gst-libav - + libvpx + libwebp pam - gobject-introspection + pango + x264 + x265 ] ++ lib.optional withNvenc nvencHeaders; - propagatedBuildInputs = with python3.pkgs; [ - pillow rencode pycrypto cryptography pycups lz4 dbus-python - netifaces numpy pygobject3 pycairo gst-python pam - pyopengl paramiko opencv4 python-uinput pyxdg - ipaddress idna pyinotify - ] ++ lib.optionals withNvenc (with python3.pkgs; [pynvml pycuda]); - - # error: 'import_cairo' defined but not used + + propagatedBuildInputs = with python3.pkgs; ([ + cryptography + dbus-python + gst-python + idna + ipaddress + lz4 + netifaces + numpy + opencv4 + pam + paramiko + pillow + pycairo + pycrypto + pycups + pygobject3 + pyinotify + pyopengl + python-uinput + pyxdg + rencode + ] ++ lib.optionals withNvenc [ + pycuda + pynvml + ]); + + # error: 'import_cairo' defined but not used NIX_CFLAGS_COMPILE = "-Wno-error=unused-function"; setupPyBuildFlags = [ @@ -104,12 +171,14 @@ in buildPythonApplication rec { ] ++ lib.optional withNvenc "--with-nvenc"; dontWrapGApps = true; + preFixup = '' makeWrapperArgs+=( "''${gappsWrapperArgs[@]}" --set XPRA_INSTALL_PREFIX "$out" --set XPRA_COMMAND "$out/bin/xpra" --set XPRA_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb" + --set XORG_CONFIG_PREFIX "" --prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib --prefix PATH : ${lib.makeBinPath [ getopt xorgserver xauth which util-linux pulseaudio ]} '' + lib.optionalString withNvenc '' diff --git a/pkgs/tools/X11/xpra/fix-122159.patch b/pkgs/tools/X11/xpra/fix-122159.patch new file mode 100644 index 00000000000..fecc7e8130d --- /dev/null +++ b/pkgs/tools/X11/xpra/fix-122159.patch @@ -0,0 +1,16 @@ +diff --git a/xpra/scripts/main.py b/xpra/scripts/main.py +index 6def9e0ad..031f8aba9 100755 +--- a/xpra/scripts/main.py ++++ b/xpra/scripts/main.py +@@ -364,11 +364,7 @@ def run_mode(script_file, cmdline, error_cb, options, args, mode, defaults): + "shadow", + ) and not display_is_remote: + if 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) + configure_env(options.env) + configure_logging(options, mode)