diff options
Diffstat (limited to 'gnu/packages/freedesktop.scm')
-rw-r--r-- | gnu/packages/freedesktop.scm | 338 |
1 files changed, 206 insertions, 132 deletions
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index bf4bce553b..eba06600b2 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 Andreas Enge <[email protected]> ;;; Copyright © 2015 Sou Bunnbu <[email protected]> ;;; Copyright © 2015, 2017 Andy Wingo <[email protected]> -;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <[email protected]> +;;; Copyright © 2015-2017, 2019, 2021 Ludovic Courtès <[email protected]> ;;; Copyright © 2015, 2017, 2018, 2019, 2021 Ricardo Wurmus <[email protected]> ;;; Copyright © 2015 David Hashe <[email protected]> ;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <[email protected]> @@ -23,8 +23,11 @@ ;;; Copyright © 2020 Anders Thuné <[email protected]> ;;; Copyright © 2020 Raghav Gururajan <[email protected]> ;;; Copyright © 2021 pineapples <[email protected]> +;;; Copyright © 2021 Sarah Morgensen <[email protected]> ;;; Copyright © 2021 Robby Zambito <[email protected]> +;;; Copyright © 2021 Maxime Devos <[email protected]> ;;; Copyright © 2021 John Kehayias <[email protected]> +;;; Copyright © 2021 Maxim Cournoyer <[email protected]> ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,6 +49,7 @@ #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) @@ -60,6 +64,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages boost) + #:use-module (gnu packages build-tools) #:use-module (gnu packages check) #:use-module (gnu packages cmake) #:use-module (gnu packages compression) @@ -99,6 +104,7 @@ #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-xyz) #:use-module (gnu packages rdesktop) + #:use-module (gnu packages rsync) #:use-module (gnu packages samba) #:use-module (gnu packages serialization) #:use-module (gnu packages sqlite) @@ -185,7 +191,7 @@ ("python" ,python-wrapper) ("xsltproc" ,libxslt))) (inputs - `(("libsoup" ,libsoup) + `(("libsoup-minimal" ,libsoup-minimal-2) ("libstemmer" ,libstemmer) ("libxml2" ,libxml2) ("libyaml" ,libyaml) @@ -221,12 +227,13 @@ application-centers for distributions.") (sha256 (base32 "1sd8syldyq6bphfdm129s3gq554vfv7vh1vcwzk48gjryf101awk")) (patches - (search-patches "farstream-make.patch")))) + (search-patches + "farstream-gupnp.patch" ;for test 'transmitter/rawudp' + "farstream-make.patch")))) (build-system glib-or-gtk-build-system) (outputs '("out" "doc")) (arguments - `(#:tests? #f ; https://gitlab.freedesktop.org/farstream/farstream/-/issues/18 - #:configure-flags + `(#:configure-flags (list "--enable-gtk-doc" "--enable-glib-asserts" @@ -242,6 +249,15 @@ application-centers for distributions.") (assoc-ref %build-inputs "common") "common") #t)) + (add-after 'unpack 'disable-timeout-tests + (lambda _ + (substitute* "tests/check/Makefile.am" + ;; This test timeouts despite changing + ;; the value of 'CK_DEFAULT_TIMEOUT' to 600, + ;; as per %common-gstreamer-phases. + ;; Reported to upstream: + ;; https://gitlab.freedesktop.org/farstream/farstream/-/issues/20 + (("[ \t]*transmitter/nice.*$") "")))) (add-after 'unpack 'patch-docbook-xml (lambda* (#:key inputs #:allow-other-keys) (with-directory-excursion "docs" @@ -347,7 +363,8 @@ tests.") (base32 "0vnf0pk516fwwh41v96c29l2i7h1pnwhivlkbf53kkx1q35g7lb3")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t + `(#:meson ,meson-0.59 + #:glib-or-gtk? #t #:phases (modify-phases %standard-phases ;; AppInfo not available inside build environment. @@ -478,14 +495,14 @@ freedesktop.org project.") ;; Updating this will rebuild over 700 packages through libinput-minimal. (package (name "libinput") - (version "1.16.4") + (version "1.19.2") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" "libinput-" version ".tar.xz")) (sha256 (base32 - "0acywdjppj5i591l879bnqa9cs4vgdwnhilwk550x5x8sl33m4k5")))) + "10xqk05mkvsyxfxpn3vwkwb7j22d38wlbg1l1k37f6pfyc59zhqg")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false") @@ -566,7 +583,7 @@ the freedesktop.org XDG Base Directory specification.") (define-public elogind (package (name "elogind") - (version "243.7") + (version "246.10") (source (origin (method git-fetch) (uri (git-reference @@ -575,47 +592,57 @@ the freedesktop.org XDG Base Directory specification.") (file-name (git-file-name name version)) (sha256 (base32 - "1ccj3cbs9nsfg497wg195in1a7b9csm1jdm7z6q7vvx1ynpjxlxz")))) + "16045bhpwjq2nqgswln67ipg1zrz2djxlgkfngqng3jqpwagmnzq")) + (patches (search-patches + "elogind-revert-polkit-detection.patch")))) (build-system meson-build-system) (arguments `(#:configure-flags - (let* ((out (assoc-ref %outputs "out")) - (sysconf (string-append out "/etc")) - (libexec (string-append out "/libexec/elogind")) - (dbuspolicy (string-append out "/etc/dbus-1/system.d")) - (shadow (assoc-ref %build-inputs "shadow")) - (shepherd (assoc-ref %build-inputs "shepherd")) - (halt-path (string-append shepherd "/sbin/halt")) - (kexec-path "") ;not available in Guix yet - (nologin-path (string-append shadow "/sbin/nologin")) - (poweroff-path (string-append shepherd "/sbin/shutdown")) - (reboot-path (string-append shepherd "/sbin/reboot"))) - (list - (string-append "-Drootprefix=" out) - (string-append "-Dsysconfdir=" sysconf) - (string-append "-Drootlibexecdir=" libexec) - (string-append "-Ddbuspolicydir=" dbuspolicy) - (string-append "-Dc_link_args=-Wl,-rpath=" libexec) - (string-append "-Dcpp_link_args=-Wl,-rpath=" libexec) - (string-append "-Dhalt-path=" halt-path) - (string-append "-Dkexec-path=" kexec-path) - (string-append "-Dpoweroff-path=" poweroff-path) - (string-append "-Dreboot-path=" reboot-path) - (string-append "-Dnologin-path=" nologin-path) - "-Dcgroup-controller=elogind" - "-Dman=true" - ;; Disable some tests. - "-Dslow-tests=false")) + ,#~(let* ((out #$output) + (sysconf (string-append out "/etc")) + (libexec (string-append out "/libexec/elogind")) + (dbuspolicy (string-append out "/etc/dbus-1/system.d")) + (kexec-tools #$(this-package-input "kexec-tools")) + (shadow #$(this-package-input "shadow")) + (shepherd #$(this-package-input "shepherd")) + (halt-path (string-append shepherd "/sbin/halt")) + (kexec-path (string-append kexec-tools "/sbin/kexec")) + (nologin-path (string-append shadow "/sbin/nologin")) + (poweroff-path (string-append shepherd "/sbin/shutdown")) + (reboot-path (string-append shepherd "/sbin/reboot"))) + (list + (string-append "-Drootprefix=" out) + (string-append "-Dsysconfdir=" sysconf) + (string-append "-Drootlibexecdir=" libexec) + (string-append "-Ddbuspolicydir=" dbuspolicy) + (string-append "-Dc_link_args=-Wl,-rpath=" libexec) + (string-append "-Dcpp_link_args=-Wl,-rpath=" libexec) + (string-append "-Dhalt-path=" halt-path) + (string-append "-Dkexec-path=" kexec-path) + (string-append "-Dpoweroff-path=" poweroff-path) + (string-append "-Dreboot-path=" reboot-path) + (string-append "-Dnologin-path=" nologin-path) + "-Dcgroup-controller=elogind" + "-Dman=true" + ;; Disable some tests. + "-Dslow-tests=false")) #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-pkttyagent-path (lambda _ (substitute* "meson.build" (("join_paths\\(bindir, 'pkttyagent'\\)") - "'\"/run/current-system/profile/bin/pkttyagent\"'")) - #t)) + "'\"/run/current-system/profile/bin/pkttyagent\"'")))) (add-after 'unpack 'adjust-tests (lambda _ + ;; Skip the following test, which depends on users such as 'root' + ;; existing in the build environment. + (invoke "sed" "/src\\/test\\/test-user-util.c/,+2s/^/#/g" + "-i" "src/test/meson.build") + ;; FIXME: This one times out for unknown reasons. + (invoke "sed" + "/src\\/libelogind\\/sd-event\\/test-event.c/,+2s/^/#/g" + "-i" "src/test/meson.build") ;; This test tries to copy some bytes from /usr/lib/os-release, ;; which does not exist in the build container. Choose something ;; more likely to be available. @@ -651,14 +678,12 @@ the freedesktop.org XDG Base Directory specification.") ;; logind system so that it can flicker the monitor, etc. ;; Just skip it until a more narrow selection can be made. (substitute* "src/libelogind/sd-login/test-login.c" - (("r = sd_pid_get_slice.*") - "return 77;")) - #t)) + (("test_login\\(\\);") + "return 77;")))) (add-after 'unpack 'change-pid-file-path (lambda _ (substitute* "src/login/elogind.c" - (("\"/run/elogind.pid\"") "\"/run/systemd/elogind.pid\"")) - #t))))) + (("\"/run/elogind.pid\"") "\"/run/systemd/elogind.pid\""))))))) (native-inputs `(("docbook-xml" ,docbook-xml) ("docbook-xml-4.2" ,docbook-xml-4.2) @@ -671,7 +696,8 @@ the freedesktop.org XDG Base Directory specification.") ("python" ,python) ("xsltproc" ,libxslt))) (inputs - `(("linux-pam" ,linux-pam) + `(("kexec-tools" ,kexec-tools) + ("linux-pam" ,linux-pam) ("libcap" ,libcap) ("shadow" ,shadow) ;for 'nologin' ("shepherd" ,shepherd) ;for 'halt' and 'reboot', invoked @@ -819,7 +845,8 @@ of a the system to know what users are logged in, and where.") (install-file map data)) (find-files ".." "^(kbd-model-map|language-fallback-map)$")) #t))))))) - (native-inputs (package-native-inputs elogind)) + (native-inputs `(,@(package-native-inputs elogind) + ("rsync" ,rsync))) (inputs `(("libmount" ,util-linux "lib") ("xkeyboard-config" ,xkeyboard-config) ("kbd" ,kbd) @@ -852,7 +879,7 @@ with localed. This package is extracted from the broader systemd package.") (native-inputs `(("pkg-config" ,pkg-config) ("scdoc" ,scdoc))) - (inputs + (propagated-inputs `(("elogind" ,elogind))) (home-page "https://sr.ht/~kennylevinsen/seatd") (synopsis "Seat management daemon and library") @@ -955,43 +982,72 @@ Python.") (define-public wayland (package (name "wayland") - (version "1.18.0") + (version "1.19.0") (source (origin (method url-fetch) (uri (string-append "https://wayland.freedesktop.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6")))) - (build-system gnu-build-system) + "05bd2vphyx8qwa1mhsj1zdaiv4m4v94wrlssrn0lad8d601dkk5s")))) + (build-system meson-build-system) + (outputs '("out" "doc")) (arguments - `(#:parallel-tests? #f)) + `(#:parallel-tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (with-directory-excursion "doc" + (substitute* (find-files "." "\\.xml$") + (("http://www.oasis-open.org/docbook/xml/4\\.5/") + (string-append (assoc-ref (or native-inputs inputs) + "docbook-xml") + "/xml/dtd/docbook/")) + (("http://www.oasis-open.org/docbook/xml/4\\.2/") + (string-append (assoc-ref (or native-inputs inputs) + "docbook-xml-4.2") + "/xml/dtd/docbook/")))))) + (add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out "/share/doc") + (string-append doc "/share/doc")))))))) (native-inputs - `(("doxygen" ,doxygen) - ("graphviz" ,graphviz) + `(("docbook-xml-4.2" ,docbook-xml-4.2) + ("docbook-xml" ,docbook-xml) + ("docbook-xsl" ,docbook-xsl) + ("dot" ,graphviz) + ("doxygen" ,doxygen) ("pkg-config" ,pkg-config) ("xmlto" ,xmlto) - ("xsltproc" ,libxslt))) + ("xsltproc" ,libxslt) + ,@(if (%current-target-system) + `(("pkg-config-for-build" ,pkg-config-for-build) + ("wayland" ,this-package)) ; for wayland-scanner + '()))) (inputs - `(("docbook-xml" ,docbook-xml) - ("docbook-xsl" ,docbook-xsl) - ("expat" ,expat) - ("libffi" ,libffi) - ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES + `(("expat" ,expat) + ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES + (propagated-inputs + `(("libffi" ,libffi))) (home-page "https://wayland.freedesktop.org/") - (synopsis "Display server protocol") - (description - "Wayland is a protocol for a compositor to talk to its clients as well as -a C library implementation of that protocol. The compositor can be a standalone -display server running on Linux kernel modesetting and evdev input devices, an X -application, or a wayland client itself. The clients can be traditional -applications, X servers (rootless or fullscreen) or other display servers.") - (license license:x11))) + (synopsis "Core Wayland window system code and protocol") + (description "Wayland is a project to define a protocol for a compositor to +talk to its clients as well as a library implementation of the protocol. The +compositor can be a standalone display server running on Linux kernel +modesetting and evdev input devices, an X application, or a wayland client +itself. The clients can be traditional applications, X servers (rootless or +fullscreen) or other display servers.") + (license license:expat))) (define-public wayland-protocols (package (name "wayland-protocols") - (version "1.20") + (version "1.23") (source (origin (method url-fetch) (uri (string-append @@ -999,14 +1055,17 @@ applications, X servers (rootless or fullscreen) or other display servers.") "wayland-protocols-" version ".tar.xz")) (sha256 (base32 - "1rsdgvkkvxs3cjhpl6agvbkm53vm7k8rg127j9y2vn33m2hvg0lp")))) - (build-system gnu-build-system) + "0xizccackgwszjhlq7jjiv2z2gwppljx0w32ga91bxlnby8z22kc")))) + (build-system meson-build-system) (inputs `(("wayland" ,wayland))) (native-inputs `(("pkg-config" ,pkg-config))) (synopsis "Wayland protocols") - (description "This package contains XML definitions of the Wayland protocols.") + (description "Wayland-Protocols contains Wayland protocols that add +functionality not available in the Wayland core protocol. Such protocols either +add completely new functionality, or extend the functionality of some other +protocol either in Wayland core, or some other protocol in wayland-protocols.") (home-page "https://wayland.freedesktop.org") (license license:expat))) @@ -1127,8 +1186,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (add-before 'check 'start-xorg-server (lambda* (#:key inputs #:allow-other-keys) ;; The test suite requires a running X server. - (system (string-append (assoc-ref inputs "xorg-server") - "/bin/Xvfb :1 &")) + (system "Xvfb :1 &") (setenv "DISPLAY" ":1") #t))))) (home-page "https://wayland.freedesktop.org") @@ -1341,57 +1399,63 @@ message bus.") (define-public accountsservice (package (name "accountsservice") - (version "0.6.50") + (version "0.6.55") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" - "accountsservice/accountsservice-" version ".tar.xz")) + "accountsservice/accountsservice-" + version ".tar.xz")) (sha256 - (base32 "0jn7vg1z4vxnna0hl33hbcb4bb3zpilxc2vyclh24vx4vvsjhn83")))) - (build-system gnu-build-system) + (base32 "16wwd633jak9ajyr1f1h047rmd09fhf3kzjz6g5xjsz0lwcj8azz")))) + (build-system meson-build-system) (arguments - '(#:tests? #f ; XXX: tests require DocBook 4.1.2 + `(#:meson ,meson-0.59 ;see https://github.com/mesonbuild/meson/issues/6470 + #:tests? #f ; XXX: tests require DocBook 4.1.2 #:configure-flags '("--localstatedir=/var" - "--disable-systemd" - "--enable-elogind") + "-Dsystemdsystemunitdir=/tmp/empty" + "-Dsystemd=false" + "-Delogind=true") #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-/bin/cat (lambda _ (substitute* "src/user.c" - (("/bin/cat") (which "cat"))) - #t)) + (("/bin/cat") (which "cat"))))) (add-before 'configure 'pre-configure (lambda* (#:key inputs #:allow-other-keys) - ;; Don't try to create /var/lib/AccountsService. - (substitute* "src/Makefile.in" - (("\\$\\(MKDIR_P\\).*/lib/AccountsService.*") "true")) + (substitute* "meson_post_install.py" + (("in dst_dirs") "in []")) (let ((shadow (assoc-ref inputs "shadow"))) (substitute* '("src/user.c" "src/daemon.c") - (("/usr/sbin/usermod") (string-append shadow "/sbin/usermod")) - (("/usr/sbin/useradd") (string-append shadow "/sbin/useradd")) - (("/usr/sbin/userdel") (string-append shadow "/sbin/userdel")) - (("/usr/bin/passwd") (string-append shadow "/bin/passwd")) - (("/usr/bin/chage") (string-append shadow "/bin/chage")))) - #t))))) + (("/usr/sbin/usermod") + (string-append shadow "/sbin/usermod")) + (("/usr/sbin/useradd") + (string-append shadow "/sbin/useradd")) + (("/usr/sbin/userdel") + (string-append shadow "/sbin/userdel")) + (("/usr/bin/passwd") + (string-append shadow "/bin/passwd")) + (("/usr/bin/chage") + (string-append shadow "/bin/chage"))))))))) (native-inputs `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc. ("gobject-introspection" ,gobject-introspection) ("intltool" ,intltool) ("pkg-config" ,pkg-config))) (inputs - `(("elogind" ,elogind) + `(("dbus" ,dbus) + ("elogind" ,elogind) ("polkit" ,polkit) ("shadow" ,shadow))) (home-page "https://www.freedesktop.org/wiki/Software/AccountsService/") (synopsis "D-Bus interface for user account query and manipulation") (description - "The AccountService project provides a set of D-Bus interfaces for querying -and manipulating user account information and an implementation of these -interfaces, based on the useradd, usermod and userdel commands.") + "The AccountService project provides a set of D-Bus interfaces for +querying and manipulating user account information and an implementation of +these interfaces, based on the useradd, usermod and userdel commands.") (license license:gpl3+))) (define-public libmbim @@ -2181,6 +2245,13 @@ useful with system integration.") "https://launchpad.net/libappindicator/" (version-major+minor version) "/" version "/+download/libappindicator-" version ".tar.gz")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Fix 'multiple definitions' error from GCC 10 + (substitute* "bindings/python/appindicatormodule.c" + (("^#include <pygobject.h>" all) + (string-append "#define NO_IMPORT_PYGOBJECT\n" all))))) (sha256 (base32 "17xlqd60v0zllrxp8bgq3k5a1jkj0svkqn8rzllcyjh8k0gpr46m")))) @@ -2242,43 +2313,45 @@ fallback to generic Systray support if none of those are available.") (define-public libportal (package - (name "libportal") - (version "0.4") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/flatpak/libportal/releases/download/" - version "/libportal-" version ".tar.xz")) - (sha256 - (base32 - "0a7gmhyf0b58xy335jyf524g1fyc2id4r88anhvg47430w4zbm9w")))) - (build-system meson-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'move-doc - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc")) - (html "/share/gtk-doc")) - (copy-recursively (string-append out html) - (string-append doc html)) - (delete-file-recursively (string-append out html)) - #t)))))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("gtk-doc" ,gtk-doc/stable) - ("docbook-xsl" ,docbook-xsl) - ("docbook-xml" ,docbook-xml) - ("libxml2" ,libxml2) - ("glib:bin" ,glib "bin"))) - (propagated-inputs - `(("glib" ,glib))) - (outputs '("out" "doc")) - (home-page "https://github.com/flatpak/libportal") - (synopsis "Flatpak portal library") - (description - "libportal provides GIO-style async APIs for most Flatpak portals.") - (license license:lgpl2.1+))) + (name "libportal") + (version "0.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/flatpak/libportal") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jh6wd96y4i218zbmmqw12zir8p88nm8dlsa3yx3lsqxd5c1krky")))) + (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc")) + (html "/share/gtk-doc")) + (copy-recursively (string-append out html) + (string-append doc html)) + (delete-file-recursively (string-append out html)) + #t)))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("gtk-doc" ,gtk-doc/stable) + ("docbook-xsl" ,docbook-xsl) + ("docbook-xml" ,docbook-xml) + ("libxml2" ,libxml2) + ("glib:bin" ,glib "bin"))) + (propagated-inputs + `(("glib" ,glib))) + (outputs '("out" "doc")) + (home-page "https://github.com/flatpak/libportal") + (synopsis "Flatpak portal library") + (description + "libportal provides GIO-style async APIs for most Flatpak portals.") + (license license:lgpl2.1+))) (define-public xdg-desktop-portal (package @@ -2376,6 +2449,7 @@ and others.") ("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool) + ("libxml2" ,libxml2) ("glib:bin" ,glib "bin") ("which" ,which) ("gettext" ,gettext-minimal))) |