me
/
guix
Archived
1
0
Fork 0

gnu: gajim: Update to 1.7.3.

* gnu/packages/messaging.scm (gajim): Update to 1.7.3.
[arguments]: Switch to "python -m build".  To use pyproject-build-system,
support for backend-path is needed.  Add metadata build and install phase.
Switch to "python -m unittest" as test method, following upstream
recommendation.  Generate gdk-pixbuf cache and include result in wrapper.
Allows Gajim to run in pure environments.
[native-search-paths]: Update.

Signed-off-by: Christopher Baines <mail@cbaines.net>
Parnikkapore 2023-07-04 23:31:09 +07:00 committed by Christopher Baines
parent 9d7daaf10f
commit e99e0e0816
No known key found for this signature in database
GPG Key ID: 5E28A33B0B84F577
1 changed files with 56 additions and 43 deletions

View File

@ -1127,7 +1127,7 @@ of xmpppy.")
(define-public gajim (define-public gajim
(package (package
(name "gajim") (name "gajim")
(version "1.4.7") (version "1.7.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1136,54 +1136,66 @@ of xmpppy.")
(version-major+minor version) (version-major+minor version)
"/gajim-" version ".tar.gz")) "/gajim-" version ".tar.gz"))
(sha256 (sha256
(base32 "1ww46qlxr14nq0ka8wsf8qpn5qfi5dvgyksfh9411crl7azhfj0s")) (base32 "066kvkjw3qcdanr3nczy0wgcwihk9jc9zhzfr5bwlqvcyxcv7k5p"))
(patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch")))) (patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:imported-modules (list
(,@%python-build-system-modules #:imported-modules
`(,@%python-build-system-modules
(guix build glib-or-gtk-build-system)) (guix build glib-or-gtk-build-system))
#:modules #:modules
((guix build python-build-system) '((guix build python-build-system)
((guix build glib-or-gtk-build-system) ((guix build glib-or-gtk-build-system)
#:prefix glib-or-gtk:) #:prefix glib-or-gtk:)
(guix build utils)) (guix build utils))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'disable-failing-tests (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
(lambda _ (assoc-ref glib-or-gtk:%standard-phases
;; XXX Gajim builds fine on some (my) machines but fails elsewhere: 'generate-gdk-pixbuf-loaders-cache-file))
;; ModuleNotFoundError: No module named 'gajim.gui.emoji_data' (add-before 'build 'build-metadata
;; https://dev.gajim.org/gajim/gajim/-/issues/11041 (lambda _
(delete-file "test/no_gui/test_styling.py"))) (invoke "./pep517build/build_metadata.py" "-o" "dist/metadata")))
(replace 'check ;; TODO: Change to pyproject-build-system once it supports
(lambda _ ;; in-tree build backends.
;; Tests require a running X server. (replace 'build
(system "Xvfb :1 +extension GLX &") (lambda _
(setenv "DISPLAY" ":1") (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
;; For missing '/etc/machine-id'. (replace 'install
(setenv "DBUS_FATAL_WARNINGS" "0") (lambda _
(invoke "dbus-launch" "python" "./setup.py" "test"))) (apply invoke "pip" "--no-cache-dir" "--no-input"
;; Loading gajim_remote require running session bus, "install" "--no-deps" "--prefix" #$output
;; which in-turn requires running elogind for XDG_RUNTIME_DIR; (find-files "dist" "\\.whl$"))))
;; neither of which are possible inside build environment. (add-after 'install 'install-metadata
(delete 'sanity-check) (lambda _
(add-after 'install 'glib-or-gtk-compile-schemas (invoke "./pep517build/install_metadata.py" "dist/metadata"
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) (string-append "--prefix=" #$output))))
(add-after 'install 'glib-or-gtk-wrap (replace 'check
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)) (lambda _
(add-after 'install 'wrap-env ;; Tests require a running X server.
(lambda* (#:key outputs #:allow-other-keys) (system "Xvfb :1 +extension GLX &")
(let ((out (assoc-ref outputs "out"))) (setenv "DISPLAY" ":1")
(for-each ;; For missing '/etc/machine-id'.
(lambda (name) (setenv "DBUS_FATAL_WARNINGS" "0")
(let ((file (string-append out "/bin/" name)) (invoke "dbus-launch" "python" "-m" "unittest" "discover" "-s" "test")))
(gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")) (add-after 'install 'glib-or-gtk-compile-schemas
(gi-typelib-path (getenv "GI_TYPELIB_PATH"))) (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(wrap-program file (add-after 'install 'glib-or-gtk-wrap
`("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)) (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
`("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))) (add-after 'install 'wrap-env
'("gajim" "gajim-remote")))))))) (lambda _
(for-each
(lambda (name)
(let ((file (string-append #$output "/bin/" name))
(gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
(gi-typelib-path (getenv "GI_TYPELIB_PATH"))
(pixbuf-module-file (getenv "GDK_PIXBUF_MODULE_FILE")))
(wrap-program file
`("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
`("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
`("GDK_PIXBUF_MODULE_FILE" = (,pixbuf-module-file)))))
'("gajim" "gajim-remote")))))))
(native-search-paths (native-search-paths
(list (list
(search-path-specification (search-path-specification
@ -1202,7 +1214,7 @@ of xmpppy.")
;; FIXME: Cannot use this expression as it would ;; FIXME: Cannot use this expression as it would
;; introduce a circular dependency at the top level. ;; introduce a circular dependency at the top level.
;; (version-major+minor (package-version python)) ;; (version-major+minor (package-version python))
"3.9" "3.10"
"/site-packages")))))) "/site-packages"))))))
(native-inputs (native-inputs
(list gettext-minimal (list gettext-minimal
@ -1210,6 +1222,7 @@ of xmpppy.")
gobject-introspection gobject-introspection
`(,gtk+ "bin") `(,gtk+ "bin")
python-distutils-extra python-distutils-extra
python-pypa-build
python-setuptools python-setuptools
xorg-server-for-tests)) xorg-server-for-tests))
(inputs (inputs