aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2022-01-07 08:44:29 +0100
committerLars-Dominik Braun <lars@6xq.net>2022-01-07 08:58:40 +0100
commit927c58925667eabdcd07a9dc68e283ef0f6b6b0e (patch)
tree15fc3296b1be23ba08f7f5b30039b4f1f613fc61
parent05b0491d0646508336fbf455a31367745d5e5b45 (diff)
downloadguix-927c58925667eabdcd07a9dc68e283ef0f6b6b0e.tar
guix-927c58925667eabdcd07a9dc68e283ef0f6b6b0e.tar.gz
gnu: xpra: Install Cython-built libraries.
xpra would fail to start, because shared objects were not installed. It’s not clear why it stopped working, but it seems it was not the upgrade I reverted in commit ab6d56d01d62757caa66fe0a23e8864c9122f0e6 to fix #52869. Sorry for the confusion :( * gnu/packages/patches/xpra-4.2-install_libs.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/xorg.scm (xpra)[source]: Add new patch. [arguments]: Ensure 'build phase runs and passes #:configure-flags to setup.py.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/xpra-4.2-install_libs.patch33
-rw-r--r--gnu/packages/xorg.scm11
3 files changed, 42 insertions, 3 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 31354e413f..b39d0ac039 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1965,6 +1965,7 @@ dist_patch_DATA = \
%D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \
%D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch \
%D%/packages/patches/xpra-4.2-systemd-run.patch \
+ %D%/packages/patches/xpra-4.2-install_libs.patch \
%D%/packages/patches/xsane-fix-memory-leak.patch \
%D%/packages/patches/xsane-fix-pdf-floats.patch \
%D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \
diff --git a/gnu/packages/patches/xpra-4.2-install_libs.patch b/gnu/packages/patches/xpra-4.2-install_libs.patch
new file mode 100644
index 0000000000..92193df34a
--- /dev/null
+++ b/gnu/packages/patches/xpra-4.2-install_libs.patch
@@ -0,0 +1,33 @@
+This workaround for Gentoo interferes with our use of --no-compile during
+the 'install stage.
+
+--- a/setup.py 1970-01-01 01:00:01.000000000 +0100
++++ b/setup.py 2022-01-06 14:08:46.710437071 +0100
+@@ -561,12 +561,6 @@
+ % (cython_version, min_version))
+
+ def cython_add(extension, min_version="0.20"):
+- #gentoo does weird things, calls --no-compile with build *and* install
+- #then expects to find the cython modules!? ie:
+- #python2.7 setup.py build -b build-2.7 install --no-compile \
+- # --root=/var/tmp/portage/x11-wm/xpra-0.7.0/temp/images/2.7
+- 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"
+ cython_version_check(min_version)
+ from Cython.Distutils import build_ext
+@@ -1691,14 +1685,6 @@
+ if uinput_ENABLED:
+ add_data_files("lib/udev/rules.d/", ["fs/lib/udev/rules.d/71-xpra-virtual-pointer.rules"])
+
+- #gentoo does weird things, calls --no-compile with build *and* install
+- #then expects to find the cython modules!? ie:
+- #> python2.7 setup.py build -b build-2.7 install --no-compile \
+- # --root=/var/tmp/portage/x11-wm/xpra-0.7.0/temp/images/2.7
+- #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/xorg.scm b/gnu/packages/xorg.scm
index f341ccce8c..79d9be9420 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -6323,7 +6323,8 @@ basic eye-candy effects.")
version ".tar.gz"))
(sha256
(base32 "0nky9j07zq8d5ifx568dima7a0jgs8kwhcqbg8p6gsxlgq5zdw96"))
- (patches (search-patches "xpra-4.2-systemd-run.patch"))))
+ (patches (search-patches "xpra-4.2-systemd-run.patch"
+ "xpra-4.2-install_libs.patch"))))
(build-system python-build-system)
;; see also http://xpra.org/trac/wiki/Dependencies
(inputs `(("bash-minimal" ,bash-minimal) ; for wrap-program
@@ -6374,8 +6375,12 @@ basic eye-candy effects.")
; they seem to require python2.
#:phases
(modify-phases %standard-phases
- ;; built by 'install phase
- (delete 'build)
+ ;; Must pass the same flags as 'install, otherwise enabled modules may
+ ;; not be built.
+ (replace 'build
+ (lambda* (#:key configure-flags #:allow-other-keys)
+ (apply invoke (append (list "python" "setup.py" "build")
+ configure-flags))))
(add-before 'install 'fix-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Fix binary paths.