From 927c58925667eabdcd07a9dc68e283ef0f6b6b0e Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Fri, 7 Jan 2022 08:44:29 +0100 Subject: [PATCH] gnu: xpra: Install Cython-built libraries. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- gnu/local.mk | 1 + .../patches/xpra-4.2-install_libs.patch | 33 +++++++++++++++++++ gnu/packages/xorg.scm | 11 +++++-- 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/xpra-4.2-install_libs.patch 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 @@ (define-public xpra 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 @@ (define-public xpra ; 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.