Subject: [PATCH] gnu: xpra: Update to 5.0.1
From: Andy Tai <[email-masked]>
To: [email-masked]
Date: Sat, 9 Sep 2023 20:31:00 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

From 9d1118eab79d4fe7fa20490209780dbd88c9fbb0 Mon Sep 17 00:00:00 2001
Message-Id: <[email-masked]>
From: Andy Tai <[email-masked]>
Date: Sat, 9 Sep 2023 17:26:39 -0700
Subject: [PATCH] gnu: xpra: Update to 5.0.1
To: [email-masked]

* gnu/packages/xorg.scm (xpra): Update to 5.0.1.
[inputs]: Add cups.
* gnu/packages/patches/xpra-5.0-install_libs.patch: New file.
* gnu/packages/patches/xpra-5.0-systemd-run.patch: New file.
* gnu/packages/patches/xpra-4.2-install_libs.patch: Removed.
* gnu/packages/patches/xpra-4.2-systemd-run.patch: Removed.
---
 ...libs.patch => xpra-5.0-install_libs.patch} | 32 ++++++++++++-------
 ...d-run.patch => xpra-5.0-systemd-run.patch} | 31 +++++++++---------
 gnu/packages/xorg.scm                         | 14 ++++----
 3 files changed, 43 insertions(+), 34 deletions(-)
 rename gnu/packages/patches/{xpra-4.2-install_libs.patch => xpra-5.0-install_libs.patch} (52%)
 rename gnu/packages/patches/{xpra-4.2-systemd-run.patch => xpra-5.0-systemd-run.patch} (66%)

diff --git a/gnu/packages/patches/xpra-4.2-install_libs.patch b/gnu/packages/patches/xpra-5.0-install_libs.patch
similarity index 52%
rename from gnu/packages/patches/xpra-4.2-install_libs.patch
rename to gnu/packages/patches/xpra-5.0-install_libs.patch
index 65d489a3b8..fd5394d931 100644
--- a/gnu/packages/patches/xpra-4.2-install_libs.patch
+++ b/gnu/packages/patches/xpra-5.0-install_libs.patch
@@ -1,18 +1,27 @@
-This workaround for Gentoo interferes with our use of --no-compile during
-the 'install stage.
-
---- a/setup.py	2022-01-04 10:10:05.039825000 +0100
-+++ b/setup.py	2022-01-06 15:10:31.952656039 +0100
-@@ -589,8 +589,6 @@
-         })
+diff --git a/setup.py b/setup.py
+index e254bf99c..90db55c3f 100755
+--- a/setup.py
++++ b/setup.py
+@@ -663,8 +663,6 @@ if modules_ENABLED:
+ # Utility methods for building with Cython
  
  def add_cython_ext(*args, **kwargs):
 -    if "--no-compile" in sys.argv and not ("build" in sys.argv and "install" in sys.argv):
 -        return
-     assert cython_ENABLED, "cython compilation is disabled"
+     if not cython_ENABLED:
+         raise ValueError(f"cannot build {args}: cython compilation is disabled")
      if cython_tracing_ENABLED:
-         kwargs["define_macros"] = [
-@@ -1703,14 +1701,6 @@
+@@ -1809,9 +1807,6 @@ else:
+             if root_prefix.endswith("/usr"):
+                 #ie: "/" or "/usr/src/rpmbuild/BUILDROOT/xpra-0.18.0-0.20160513r12573.fc23.x86_64/"
+                 root_prefix = root_prefix[:-4]
+-            for x in sys.argv:
+-                if x.startswith("--root="):
+-                    root_prefix = x[len("--root="):]
+             print(f"install_data_override.run() root_prefix={root_prefix}")
+             build_xpra_conf(root_prefix)
+ 
+@@ -1955,13 +1950,6 @@ else:
              if uinput_ENABLED:
                  add_data_files("lib/udev/rules.d/", ["fs/lib/udev/rules.d/71-xpra-virtual-pointer.rules"])
  
@@ -23,7 +32,6 @@ the 'install stage.
 -    #otherwise we use the flags to skip pkgconfig
 -    if ("--no-compile" in sys.argv or "--skip-build" in sys.argv) and not ("build" in sys.argv and "install" in sys.argv):
 -        pkgconfig = no_pkgconfig
--
+ 
      if OSX and "py2app" in sys.argv:
          import py2app    #@UnresolvedImport
-         assert py2app is not None
diff --git a/gnu/packages/patches/xpra-4.2-systemd-run.patch b/gnu/packages/patches/xpra-5.0-systemd-run.patch
similarity index 66%
rename from gnu/packages/patches/xpra-4.2-systemd-run.patch
rename to gnu/packages/patches/xpra-5.0-systemd-run.patch
index 8dfd9c82f0..4343b2e8c1 100644
--- a/gnu/packages/patches/xpra-4.2-systemd-run.patch
+++ b/gnu/packages/patches/xpra-5.0-systemd-run.patch
@@ -1,13 +1,12 @@
-Disable systemd-run if the command is not found.
-
-diff -ru xpra-4.2~/xpra/scripts/main.py xpra-4.2/xpra/scripts/main.py
---- xpra-4.2~/xpra/scripts/main.py	2021-06-06 08:51:13.756815842 -0700
-+++ xpra-4.2/xpra/scripts/main.py	2021-06-06 16:07:13.371024486 -0700
-@@ -331,23 +331,26 @@
-     if not is_systemd_pid1():
-         return False    # pragma: no cover
-     #test it:
--    cmd = ["systemd-run", "--quiet", "--user", "--scope", "--", "true"]
+diff --git a/xpra/scripts/main.py b/xpra/scripts/main.py
+index 3813331a5..46e2c83a6 100755
+--- a/xpra/scripts/main.py
++++ b/xpra/scripts/main.py
+@@ -337,23 +337,26 @@ def use_systemd_run(s) -> bool:
+     cmd = ["systemd-run", "--quiet"]
+     if getuid()!=0:
+         cmd += ["--user"]
+-    cmd += ["--scope", "--", "true"]
 -    proc = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=False)
      try:
 -        proc.communicate(timeout=2)
@@ -15,13 +14,13 @@ diff -ru xpra-4.2~/xpra/scripts/main.py xpra-4.2/xpra/scripts/main.py
 -    except TimeoutExpired:  # pragma: no cover
 -        r = None
 -    if r is None:
-+        cmd = ["systemd-run", "--quiet", "--user", "--scope", "--", "true"]
-+        proc = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=False)
-         try:
+-        try:
 -            proc.terminate()
 -        except Exception:
 -            pass
--        try:
++        cmd = ["systemd-run", "--quiet", "--user", "--scope", "--", "true"]
++        proc = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=False)
+         try:
 -            proc.communicate(timeout=1)
 +            proc.communicate(timeout=2)
 +            r = proc.returncode
@@ -41,5 +40,5 @@ diff -ru xpra-4.2~/xpra/scripts/main.py xpra-4.2/xpra/scripts/main.py
 +    except FileNotFoundError:
 +        return False
  
- 
- def run_mode(script_file, error_cb, options, args, mode, defaults):
+ def verify_gir():
+     try:
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 08cbd8d757..67e046f507 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -72,6 +72,7 @@ (define-module (gnu packages xorg)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cups)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages emacs)
   #:use-module (gnu packages flex)
@@ -6110,16 +6111,16 @@ (define-public xcompmgr
 (define-public xpra
   (package
     (name "xpra")
-    (version "4.4.6")
+    (version "5.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.xpra.org/src/xpra-"
                            version ".tar.xz"))
        (sha256
-        (base32 "0d3s13wqbn9jwqp4i55mn4chgjkrckq3jx4jrq1bcjjz5agzfrq5"))
-       (patches (search-patches "xpra-4.2-systemd-run.patch"
-                                "xpra-4.2-install_libs.patch"))))
+        (base32 "03mny5516g6iczp6cgbllpl0q2bz38nh2z7s36qjrlkfm9xc68cl"))
+       (patches (search-patches "xpra-5.0-systemd-run.patch"
+                                "xpra-5.0-install_libs.patch"))))
     (build-system python-build-system)
     (inputs
      (list bash-minimal                 ; for wrap-program
@@ -6158,7 +6159,8 @@ (define-public xpra
            python-dbus                  ; For desktop notifications.
            dbus                         ; For dbus-launch command.
            python-lz4                   ; Faster compression than zlib.
-           python-netifaces))
+           python-netifaces
+           python-pycups))
     (native-inputs (list pkg-config pandoc python-cython))
     (arguments
      (list
@@ -6193,7 +6195,7 @@ (define-public xpra
                  (format #f "~s" (search-input-file inputs "bin/xauth"))))
               ;; Fix directory of config files.
               (substitute* '("xpra/scripts/config.py"
-                             "xpra/platform/xposix/paths.py")
+                             "xpra/platform/posix/paths.py")
                 (("\"/etc/xpra/?\"")
                  (string-append "\"" #$output "/etc/xpra/\"")))
               ;; XXX: Stolen from (gnu packages linux)

base-commit: 5db78e7c1b06d1b4892bdb3e153b95b21577271e
-- 
2.40.1