diff options
Diffstat (limited to 'gnu/packages/freedesktop.scm')
-rw-r--r-- | gnu/packages/freedesktop.scm | 856 |
1 files changed, 426 insertions, 430 deletions
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index caad0613ca..818d9966dd 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015, 2017 Andy Wingo <wingo@pobox.com> -;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015-2017, 2019, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner <efraim@flashner.co.il> @@ -23,7 +23,12 @@ ;;; Copyright © 2020 Anders Thuné <asse.97@gmail.com> ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> ;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com> +;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021 Robby Zambito <contact@robbyzambito.me> +;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> +;;; Copyright © 2021 John Kehayias <john.kehayias@protonmail.com> +;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +50,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) @@ -59,6 +65,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) @@ -97,7 +104,9 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) #: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) @@ -184,13 +193,9 @@ ("python" ,python-wrapper) ("xsltproc" ,libxslt))) (inputs - `(("libsoup" ,libsoup) - ("libstemmer" ,libstemmer) - ("libxml2" ,libxml2) - ("libyaml" ,libyaml) - ("lmdb" ,lmdb))) + (list libsoup-minimal-2 libstemmer libxml2 libyaml lmdb)) (propagated-inputs - `(("glib" ,glib))) + (list glib)) (synopsis "Tools and libraries to work with AppStream metadata") (description "AppStream is a cross-distribution effort for enhancing the way we interact with the software repositories provided by distributions by @@ -284,15 +289,9 @@ application-centers for distributions.") ("python" ,python-wrapper) ("xsltproc" ,libxslt))) (inputs - `(("glib" ,glib) - ("gtk+" ,gtk+) - ("gupnp-igd" ,gupnp-igd) - ("libnice" ,libnice))) + (list glib gtk+ gupnp-igd libnice)) (propagated-inputs - `(("gstreamer" ,gstreamer) - ("gst-plugins-bad" ,gst-plugins-bad) - ("gst-plugins-base" ,gst-plugins-base) - ("gst-plugins-good" ,gst-plugins-good))) + (list gstreamer gst-plugins-bad gst-plugins-base gst-plugins-good)) (synopsis "The Farstream VVoIP framework") (description "Farstream is a collection of GStreamer modules and libraries for videoconferencing.") @@ -331,8 +330,7 @@ for videoconferencing.") ("pkg-config" ,pkg-config) ("gtk-doc" ,gtk-doc/stable))) (inputs - `(("dbus" ,dbus) - ("glib" ,glib))) + (list dbus glib)) (synopsis "Glib testing library") (description "Libglib-testing is a test library providing test harnesses and mock classes which complement the classes provided by GLib. It is intended to @@ -377,15 +375,15 @@ tests.") ("libxml2" ,libxml2) ("pkg-config" ,pkg-config))) (inputs - `(("accountsservice" ,accountsservice) - ("appstream-glib" ,appstream-glib) - ("dbus" ,dbus) - ("flatpak" ,flatpak) - ("glib" ,glib) - ("gtk+" ,gtk+) - ("libostree" ,libostree) - ("linux-pam" ,linux-pam) - ("polkit" ,polkit))) + (list accountsservice + appstream-glib + dbus + flatpak + glib + gtk+ + libostree + linux-pam + polkit)) (synopsis "Parental controls support") (description "MalContent implements parental controls support which can be used by applications to filter or limit the access of child accounts to @@ -411,11 +409,7 @@ inappropriate content.") "1nai806smz3zcb2l5iny4x7li0fak0rzmjg6vlyhdqm8z25b166p")))) (build-system gnu-build-system) (native-inputs - `(("docbook-xsl" ,docbook-xsl) - ("docbook-xml" ,docbook-xml-4.1.2) - ("libxslt" ,libxslt) - ("w3m" ,w3m) - ("xmlto" ,xmlto))) + (list docbook-xsl docbook-xml-4.1.2 libxslt w3m xmlto)) (inputs `(("awk" ,gawk) ("coreutils" ,coreutils) @@ -487,14 +481,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") @@ -504,15 +498,14 @@ freedesktop.org project.") ;; Meson target anyway. #:build-type "release")) (native-inputs - `(("check" ,check) - ("pkg-config" ,pkg-config))) + (list check pkg-config)) (inputs - `(("cairo" ,cairo) - ("glib" ,glib) - ("gtk+" ,gtk+) - ("libevdev" ,libevdev) - ("libwacom" ,libwacom) - ("mtdev" ,mtdev))) + (list cairo + glib + gtk+ + libevdev + libwacom + mtdev)) (propagated-inputs `(;; libinput.h requires <libudev.h>, so propagate it. ("udev" ,eudev))) @@ -562,9 +555,7 @@ other applications that need to directly deal with input devices.") (("^.*\\./configure.*") "")) #t))))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool))) + (list autoconf automake libtool)) (home-page "https://github.com/devnev/libxdg-basedir") (synopsis "Implementation of the XDG Base Directory specification") (description @@ -575,7 +566,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 @@ -584,47 +575,53 @@ 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") ;; 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. @@ -660,14 +657,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) @@ -680,14 +675,15 @@ the freedesktop.org XDG Base Directory specification.") ("python" ,python) ("xsltproc" ,libxslt))) (inputs - `(("linux-pam" ,linux-pam) - ("libcap" ,libcap) - ("shadow" ,shadow) ;for 'nologin' - ("shepherd" ,shepherd) ;for 'halt' and 'reboot', invoked - ;when pressing the power button - ("dbus" ,dbus) - ("eudev" ,eudev) - ("acl" ,acl))) ;to add individual users to ACLs on /dev nodes + (list kexec-tools + linux-pam + libcap + shadow ;for 'nologin' + shepherd ;for 'halt' and 'reboot', invoked + ;when pressing the power button + dbus + eudev + acl)) ;to add individual users to ACLs on /dev nodes (home-page "https://github.com/elogind/elogind") (synopsis "User, seat, and session management service") (description "Elogind is the systemd project's \"logind\" service, @@ -828,7 +824,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) @@ -859,10 +856,9 @@ with localed. This package is extracted from the broader systemd package.") (arguments `(#:configure-flags '("-Dlogind=enabled"))) (native-inputs - `(("pkg-config" ,pkg-config) - ("scdoc" ,scdoc))) - (inputs - `(("elogind" ,elogind))) + (list pkg-config scdoc)) + (propagated-inputs + (list elogind)) (home-page "https://sr.ht/~kennylevinsen/seatd") (synopsis "Seat management daemon and library") (description @@ -898,11 +894,9 @@ allows applications to use whatever seat management is available.") ("python" ,python-wrapper) ("glib:bin" ,glib "bin"))) (inputs - `(("glib" ,glib) - ("bash-completion" ,bash-completion) - ("polkit" ,polkit))) + (list glib bash-completion polkit)) (propagated-inputs - `(("sqlite" ,sqlite))) + (list sqlite)) (home-page "https://www.freedesktop.org/software/PackageKit/") (synopsis "API for package management, through D-Bus") (description @@ -948,9 +942,7 @@ manager for the current system.") (invoke "nosetests" "-v")))))) (native-inputs ;; For tests. - `(("shared-mime-info" ,shared-mime-info) - ("hicolor-icon-theme" ,hicolor-icon-theme) - ("python-nose" ,python-nose))) + (list shared-mime-info hicolor-icon-theme python-nose)) (home-page "https://www.freedesktop.org/wiki/Software/pyxdg") (synopsis "Implementations of freedesktop.org standards in Python") (description @@ -964,43 +956,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) + ("python" ,python) ("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 + (list expat libxml2)) ; for XML_CATALOG_FILES + (propagated-inputs + (list 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 @@ -1008,14 +1029,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))) + (list wayland)) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config python)) (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))) @@ -1035,13 +1059,12 @@ applications, X servers (rootless or fullscreen) or other display servers.") (arguments `(#:tests? #f)) ; no tests (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (inputs - `(("mesa" ,mesa) - ("pugixml" ,pugixml))) + (list mesa pugixml)) (propagated-inputs - `(;; In Requires of the .pc files. - ("wayland" ,wayland))) + (list ;; In Requires of the .pc files. + wayland)) (synopsis "Wayland C++ bindings") (description "This package provides C++ bindings for the Wayland display protocol.") @@ -1061,9 +1084,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") "1zlql0xgiqc3pvgbpnnvj4xvpd91pwva8qf83xfb23if377ddxaw")))) (build-system meson-build-system) (native-inputs - `(("mscgen" ,mscgen) - ("pkg-config" ,pkg-config) - ("xorg-server" ,xorg-server))) + (list mscgen pkg-config xorg-server)) (inputs `(("cairo" ,cairo-xcb) ("colord" ,colord) @@ -1094,9 +1115,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") ("wayland-protocols" ,wayland-protocols) ("xorg-server-xwayland" ,xorg-server-xwayland))) (propagated-inputs - `(("libxkbcommon" ,libxkbcommon) - ("pixman" ,pixman) - ("wayland" ,wayland))) + (list libxkbcommon pixman wayland)) (arguments `(#:configure-flags (list @@ -1136,8 +1155,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") @@ -1173,12 +1191,9 @@ multiplexer to the KMS/DRM Linux kernel devices.") (modify-phases %standard-phases (delete 'configure)))) (native-inputs - `(("pkg-config" ,pkg-config) - ("scdoc" ,scdoc))) + (list pkg-config scdoc)) (inputs - `(("libxkbcommon" ,libxkbcommon) - ("wayland" ,wayland) - ("wayland-protocols" ,wayland-protocols))) + (list libxkbcommon wayland wayland-protocols)) (home-page "https://git.sr.ht/~sircmpwn/wev") (synopsis "Wayland event viewer") (description "Wev is a tool that opens a window, printing all events @@ -1214,10 +1229,9 @@ XEv.") "/lib/libexempi.a")) #t))))) (native-inputs - `(("boost" ,boost))) ; tests + (list boost)) ; tests (inputs - `(("expat" ,expat) - ("zlib" ,zlib))) + (list expat zlib)) (home-page "https://libopenraw.freedesktop.org/exempi/") (synopsis "XMP metadata handling library") (description "Exempi is an implementation of the Extensible Metadata @@ -1238,9 +1252,9 @@ formats.") "138gvgdwk6h4ljrjsr09pxk1nrki4b155hqdzyr8mlk3bwsfmw31")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (inputs - `(("udev" ,eudev))) + (list eudev)) (home-page "http://0pointer.de/blog/projects/being-smart.html") (synopsis "ATA S.M.A.R.T. reading and parsing library") (description @@ -1272,15 +1286,15 @@ Analysis and Reporting Technology) functionality.") ("pkg-config" ,pkg-config) ("xsltproc" ,libxslt))) (propagated-inputs - `(("glib" ,glib))) ; required by udisks2.pc + (list glib)) ; required by udisks2.pc (inputs - `(("acl" ,acl) - ("cryptsetup" ,cryptsetup) - ("libatasmart" ,libatasmart) - ("libblockdev" ,libblockdev) - ("libgudev" ,libgudev) - ("polkit" ,polkit) - ("util-linux" ,util-linux))) + (list acl + cryptsetup + libatasmart + libblockdev + libgudev + polkit + util-linux)) (outputs '("out" "doc")) ;5 MiB of gtk-doc HTML (arguments @@ -1350,57 +1364,59 @@ 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 + `(#: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) - ("polkit" ,polkit) - ("shadow" ,shadow))) + (list dbus elogind polkit 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 @@ -1417,13 +1433,12 @@ interfaces, based on the useradd, usermod and userdel commands.") "16q550sy84izi5ic3sbbhjnnka2fwhj8vvdrirpn9xspbsgbc3sm")))) (build-system gnu-build-system) (native-inputs - `(("glib:bin" ,glib "bin") ; for glib-mkenums - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper))) + (list `(,glib "bin") ; for glib-mkenums + pkg-config python-wrapper)) (propagated-inputs - `(("glib" ,glib))) ; required by mbim-glib.pc + (list glib)) ; required by mbim-glib.pc (inputs - `(("libgudev" ,libgudev))) + (list libgudev)) (synopsis "Library to communicate with MBIM-powered modems") (home-page "https://www.freedesktop.org/wiki/Software/libmbim/") (description @@ -1448,13 +1463,12 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.") "0zshxqbm9ldybgrzh7pjmwmfjvvvfd0xh8qhgl8xiqdb9ply73r0")))) (build-system gnu-build-system) (inputs - `(("libgudev" ,libgudev))) + (list libgudev)) (native-inputs - `(("glib:bin" ,glib "bin") ; for glib-mkenums - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper))) + (list `(,glib "bin") ; for glib-mkenums + pkg-config python-wrapper)) (propagated-inputs - `(("glib" ,glib))) ; required by qmi-glib.pc + (list glib)) ; required by qmi-glib.pc (synopsis "Library to communicate with QMI-powered modems") (home-page "https://www.freedesktop.org/wiki/Software/libqmi/") (description @@ -1490,12 +1504,9 @@ which speak the Qualcomm MSM Interface (QMI) protocol.") ;; For testing. ("dbus" ,dbus))) (propagated-inputs - `(("glib" ,glib))) ; required by mm-glib.pc + (list glib)) ; required by mm-glib.pc (inputs - `(("libgudev" ,libgudev) - ("libmbim" ,libmbim) - ("libqmi" ,libqmi) - ("polkit" ,polkit))) + (list libgudev libmbim libqmi polkit)) (synopsis "Mobile broadband modems manager") (home-page "https://www.freedesktop.org/wiki/Software/ModemManager/") (description @@ -1535,9 +1546,7 @@ modems and setup connections with them.") ("xsltproc" ,libxslt))) (propagated-inputs ;; telepathy-logger-0.2.pc refers to all these. - `(("libxml2" ,libxml2) - ("sqlite" ,sqlite) - ("telepathy-glib" ,telepathy-glib))) + (list libxml2 sqlite telepathy-glib)) (synopsis "Telepathy logger library") (home-page "https://telepathy.freedesktop.org/") (description @@ -1561,16 +1570,11 @@ different sorts of messages in different formats.") (base32 "1pfw4g2cicw3ykxhsy743r0fc1yqbdrqxh2c5ha6am19dajcr95l")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config))) + (list autoconf automake libtool pkg-config)) (inputs - `(("xsltproc" ,libxslt) - ("python" ,python-2) - ("python-dbus" ,python2-dbus))) + (list libxslt python-2 python2-dbus)) (propagated-inputs - `(("telepathy-glib" ,telepathy-glib))) + (list telepathy-glib)) (home-page "https://telepathy.freedesktop.org/") (synopsis "Telepathy IRC connection manager") (description @@ -1582,7 +1586,7 @@ messaging clients such as Empathy, GNOME Shell or KDE Telepathy.") (define-public telepathy-mission-control (package (name "telepathy-mission-control") - (version "5.16.5") + (version "5.16.6") (source (origin (method url-fetch) @@ -1590,19 +1594,15 @@ messaging clients such as Empathy, GNOME Shell or KDE Telepathy.") "telepathy-mission-control/" "telepathy-mission-control-" version ".tar.gz")) (sha256 - (base32 "00xxv38cfdirnfvgyd56m60j0nkmsv5fz6p2ydyzsychicxl6ssc")))) + (base32 "0ibs575pfr0wmhfcw6ln6iz7gw2y45l3bah11rksf6g9jlwsxy1d")))) (build-system gnu-build-system) (native-inputs - `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. - ("pkg-config" ,pkg-config))) + (list `(,glib "bin") ; for glib-compile-schemas, etc. + pkg-config)) (inputs - `(("dconf" ,dconf) - ("gtk-doc" ,gtk-doc) - ("libgnome-keyring" ,libgnome-keyring) - ("python" ,python-2) - ("xsltproc" ,libxslt))) + (list dconf gtk-doc libgnome-keyring python-2 libxslt)) (propagated-inputs - `(("telepathy-glib" ,telepathy-glib))) + (list telepathy-glib)) (home-page "https://telepathy.freedesktop.org/wiki/Components/Mission_Control/") (synopsis "Telepathy real-time communication framework management daemon") (description @@ -1625,14 +1625,10 @@ share connections to real-time communication services without conflicting.") (build-system gnu-build-system) (arguments '(#:tests? #f)) ; require the colord system service (native-inputs - `(("gobject-introspection" ,gobject-introspection) - ("intltool" ,intltool) - ("pkg-config" ,pkg-config) - ("vala" ,vala))) + (list gobject-introspection intltool pkg-config vala)) (propagated-inputs ;; colord-gtk.pc refers to all these. - `(("colord" ,colord) - ("gtk+" ,gtk+))) + (list colord gtk+)) (synopsis "GTK integration for libcolord") (home-page "https://www.freedesktop.org/software/colord/") (description @@ -1644,7 +1640,7 @@ wish to perform colour calibration.") (define-public libfprint (package (name "libfprint") - (version "1.90.7") + (version "1.94.2") (source (origin (method git-fetch) @@ -1653,26 +1649,26 @@ wish to perform colour calibration.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "00pmdpxxjj4sh8qjq9ch3pylgg9w019rg1bbaw53a4wr637rrz43")))) + (base32 "0y3wz5hlxpnvqj67bihvzfi4dwx2m2nx9byppf4jjd80x0j2630m")))) (build-system meson-build-system) (arguments - '(#:configure-flags - (list (string-append "-Dudev_rules_dir=" (assoc-ref %outputs "out") - "/lib/udev/rules.d")))) + (list #:configure-flags + #~(list (string-append "-Dudev_hwdb_dir=" #$output + "/lib/udev/hwdb.d") + (string-append "-Dudev_rules_dir=" #$output + "/lib/udev/rules.d")))) (native-inputs - `(("eudev" ,eudev) - ("glib:bin" ,glib "bin") ; for {glib-,}mkenums - ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc/stable) ; for 88 KiB of API documentation - ("pkg-config" ,pkg-config))) + (list `(,glib "bin") ; for {glib-,}mkenums + gobject-introspection + gtk-doc/stable ; for 88 KiB of API documentation + pkg-config)) (inputs - `(("glib" ,glib) - ("gusb" ,gusb) - ("nss" ,nss) ; for the URU4x00 driver - - ;; Replacing this with cairo works but just results in a reference - ;; (only) to pixman in the end. - ("pixman" ,pixman))) + (list gusb + libgudev + nss ; for the URU4x00 driver + ;; Replacing this with cairo works but just results in a reference + ;; (only) to pixman in the end. + pixman)) (home-page "https://fprint.freedesktop.org/") (synopsis "Library to access fingerprint readers") (description @@ -1684,68 +1680,56 @@ software.") (define-public fprintd (package (name "fprintd") - (version "1.90.1") + (version "1.94.1") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.freedesktop.org/libfprint/fprintd") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0mbzk263x7f58i9cxhs44mrngs7zw5wkm62j5r6xlcidhmfn03cg")))) + (base32 "015j8ikyv48qz8vn6kfvkwwg5ydzppl1lzf7vkali9ymywywfxsw")))) (build-system meson-build-system) (arguments - `(#:configure-flags - (list "-Dsystemd_system_unit_dir=/tmp" - (string-append "-Ddbus_service_dir=" (assoc-ref %outputs "out") - "/share/dbus-1/system-services") - (string-append "-Dpam_modules_dir=" (assoc-ref %outputs "out") - "/lib/security")) - #:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-output-directories - ;; Install files to our output, not that of the ‘owner’ package. - ;; These are not exposed as Meson options and must be patched. - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* "meson.build" - (("(dbus_interfaces_dir = ).*" _ set) - (string-append set "'" out "/share/dbus-1/interfaces'\n")) - (("(polkit_policy_directory = ).*" _ set) - (string-append set "'" out "/share/polkit-1/actions/'\n")) - (("(dbus_data_dir = ).*" _ set) - (string-append set "get_option('prefix')" - " / get_option('datadir')\n"))) - #t))) - (add-before 'configure 'patch-mistake - (lambda _ - (substitute* "meson.build" - (("(storage_path = )(get_option\\('prefix'\\))(.*)" - _ set mistake value) - (string-append set "''" value "\n"))) - #t)) - (add-before 'configure 'patch-systemd-dependencies - (lambda _ - (substitute* "meson.build" - (("'(libsystemd|systemd)'") "'libelogind'")) - #t)) - (add-before 'configure 'ignore-test-dependencies - (lambda _ - (substitute* "meson.build" - (("pam_wrapper_dep .*") "") - ((".*'(cairo|dbus|dbusmock|gi|pypamtest)': .*,.*") "")) - #t)) - (add-before 'install 'no-polkit-magic - ;; Meson ‘magically’ invokes pkexec, which fails (not setuid). - (lambda _ - (setenv "PKEXEC_UID" "something") - #t))) - #:tests? #f)) ; XXX depend on unpackaged packages + (list #:configure-flags + #~(list "-Dsystemd_system_unit_dir=/tmp" + (string-append "-Ddbus_service_dir=" #$output + "/share/dbus-1/system-services") + (string-append "-Dpam_modules_dir=" #$output + "/lib/security")) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'patch-output-directories + ;; Install files to our output, not that of the ‘owner’ package. + ;; These are not exposed as Meson options and must be patched. + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "meson.build" + (("(dbus_interfaces_dir = ).*" _ set) + (string-append set "'" out "/share/dbus-1/interfaces'\n")) + (("(polkit_policy_directory = ).*" _ set) + (string-append set "'" out "/share/polkit-1/actions/'\n")) + (("(dbus_data_dir = ).*" _ set) + (string-append set "get_option('prefix')" + " / get_option('datadir')\n")))))) + (add-before 'configure 'patch-systemd-dependencies + (lambda _ + (substitute* "meson.build" + (("(dependency\\(')(libsystemd|systemd)" _ prefix) + (string-append prefix "libelogind"))))) + (add-before 'configure 'ignore-test-dependencies + (lambda _ + (substitute* "meson.build" + ((".*gi\\.repository\\.FPrint.*") "") + (("pam_wrapper_dep .*") "") + ((".*'(cairo|dbus|dbusmock|gi|pypamtest)': .*,.*") "")) + (substitute* "tests/pam/meson.build" + ((".*pam_wrapper.*") ""))))) + #:tests? #f)) ; XXX depend on unpackaged packages (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ; for glib-genmarshal - ("libxslt" ,libxslt) ; for xsltproc ("perl" ,perl) ; for pod2man ("pkg-config" ,pkg-config))) ;; For tests. @@ -1756,17 +1740,11 @@ software.") ;;("python-pygobject" ,python-pygobject) ;;("python-pypamtest" ,python-pypamtest) (inputs - `(("dbus-glib" ,dbus-glib) - ("elogind" ,elogind) - ("libfprint" ,libfprint) - ("linux-pam" ,linux-pam) - ("polkit" ,polkit) - - ;; XXX These are in libfprint's Requires.private. Meson refuses to grant - ;; the ‘libfprint-2’ dependency if they are not provided here. - ("gusb" ,gusb) - ("nss" ,nss) - ("pixman" ,pixman))) + (list dbus-glib + elogind + libfprint + linux-pam + polkit)) (home-page "https://fprint.freedesktop.org/") (synopsis "D-Bus daemon that exposes fingerprint reader functionality") (description @@ -1790,11 +1768,9 @@ to applications simultaneously competing for fingerprint readers.") "02bkfi6fyk4c0gh2avd897882ww5zl7qg7bzzf28qb57kvkvsvdj")))) (build-system gnu-build-system) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("pkg-config" ,pkg-config))) + (list autoconf automake pkg-config)) (inputs - `(("glib" ,glib))) + (list glib)) (home-page "https://www.freedesktop.org/wiki/Software/desktop-file-utils/") (synopsis "Utilities for working with desktop entries") (description @@ -1869,13 +1845,10 @@ manually by a user.") "1qq5ag9zffx8zc5i9b4z03ar80pqj4drgk3vjdlyfapjwb9zqrf0")))) (build-system perl-build-system) (native-inputs - `(("perl-module-build" ,perl-module-build) - ("perl-file-which" ,perl-file-which) - ("perl-test-pod" ,perl-test-pod) - ("perl-test-pod-coverage" ,perl-test-pod-coverage) - ("xdg-user-dirs" ,xdg-user-dirs))) + (list perl-module-build perl-file-which perl-test-pod + perl-test-pod-coverage xdg-user-dirs)) (propagated-inputs - `(("perl-ipc-system-simple" ,perl-ipc-system-simple))) + (list perl-ipc-system-simple)) (home-page "https://metacpan.org/release/File-BaseDir") (synopsis "Use the Freedesktop.org base directory specification") (description @@ -1899,11 +1872,9 @@ application data and cache data.") "1f1maqix2kbfg2rf008m7mqnvv6nvcf9y6pcgdv2kxp2vbih370n")))) (build-system perl-build-system) (native-inputs - `(("perl-test-pod" ,perl-test-pod) - ("perl-test-pod-coverage" ,perl-test-pod-coverage))) + (list perl-test-pod perl-test-pod-coverage)) (propagated-inputs - `(("perl-file-basedir" ,perl-file-basedir) - ("perl-uri" ,perl-uri))) + (list perl-file-basedir perl-uri)) (home-page "https://metacpan.org/release/File-DesktopEntry") (synopsis "Handle @file{.desktop} files") (description @@ -1928,8 +1899,7 @@ applications define in those files.") ;; If the tests are fixed, add perl-test-pod, perl-test-pod-coverage, and ;; perl-test-tiny as native-inputs. (propagated-inputs - `(("shared-mime-info" ,shared-mime-info) - ("perl-file-desktopentry" ,perl-file-desktopentry))) + (list shared-mime-info perl-file-desktopentry)) (arguments ;; Some tests fail due to requiring the mimetype of perl files to be ;; text/plain when they are actually application/x-perl. @@ -1998,7 +1968,7 @@ encoding names are iconv-compatible.") "1bqfz85cd51sw0bvhvdq9ikccxi2ld7g5jpni4jkq1a5clrvca64")))) (build-system python-build-system) (inputs - `(("uchardet" ,uchardet))) + (list uchardet)) (home-page "https://github.com/PyYoshi/cChardet") (synopsis "High-performance character encoding detection for Python") (description "cChardet is a character encoding detector, written in @@ -2008,33 +1978,24 @@ Python, that binds to the C library @code{uchardet} to increase performance.") (define-public udiskie (package (name "udiskie") - (version "2.1.0") + (version "2.3.3") (source (origin (method url-fetch) (uri (pypi-uri "udiskie" version)) (sha256 (base32 - "0smib8vbs9q37n7ynhzyw97q16fgdkcdw7fw69lci0xvyq00v1dz")) - ;; Remove support for the libappindicator library of the - ;; Unity desktop environment which is not in Guix. - (patches (search-patches "udiskie-no-appindicator.patch")))) + "0sagdmsc5km32h3jvgj843p8bicrrgfz26qhl04ibxmas6725zr0")))) (build-system python-build-system) (native-inputs `(("asciidoc" ,asciidoc) ("gettext" ,gettext-minimal) ("gobject-introspection" ,gobject-introspection))) (inputs - `(("gobject-introspection" ,gobject-introspection) - ("gtk+" ,gtk+) - ("libnotify" ,libnotify) - ("udisks" ,udisks))) + (list gobject-introspection gtk+ libappindicator libnotify udisks)) (propagated-inputs - `(("python-docopt" ,python-docopt) - ("python-pygobject" ,python-pygobject) - ("python-keyutils" ,python-keyutils) - ("python-pyxdg" ,python-pyxdg) - ("python-pyyaml" ,python-pyyaml))) + (list python-docopt python-pygobject python-keyutils python-pyxdg + python-pyyaml)) (arguments `(#:phases (modify-phases %standard-phases @@ -2116,11 +2077,7 @@ Its features include: (string-append (assoc-ref inputs "docbook-xml") "/xml/dtd/docbook/catalog.xml"))))))) (inputs - `(("glib" ,glib) - ("pango" ,pango) - ("libdrm" ,libdrm) - ("libpng" ,libpng) - ("eudev" ,eudev))) + (list glib pango libdrm libpng eudev)) (native-inputs `(("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config) @@ -2157,8 +2114,7 @@ useful with system integration.") ("pkg-config" ,pkg-config) ("xvfb" ,xorg-server-for-tests))) (inputs - `(("gtk+" ,gtk+) - ("glib" ,glib))) + (list gtk+ glib)) (arguments `(#:make-flags '("CFLAGS=-Wno-error") #:phases @@ -2192,6 +2148,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")))) @@ -2211,8 +2174,7 @@ useful with system integration.") ;; ("mono" ,mono) ; requires non-packaged gapi ("vala" ,vala))) (propagated-inputs - `(("gtk+" ,gtk+) - ("libdbusmenu" ,libdbusmenu))) + (list gtk+ libdbusmenu)) (arguments ;; FIXME: do not hardcode gtk version `(#:configure-flags '("--with-gtk=3") @@ -2252,62 +2214,56 @@ fallback to generic Systray support if none of those are available.") (license license:lgpl2.1+))) (define-public libportal - (let ((commit "bff3289") - (revision "1")) - (package - (name "libportal") - (version (git-version "0.3" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/flatpak/libportal") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "104b91qircr1i9jkmm6f725awywky52aimrki303kiaadn2v8b5i")))) - (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 - (name "xdg-desktop-portal") - (version "1.8.1") + (name "libportal") + (version "0.5") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/flatpak/xdg-desktop-portal") - (commit version))) + (url "https://github.com/flatpak/libportal") + (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0pq0kmvzk56my396vh97pzw4wizwmlmzvv2kr2xv047x3044mr5n")))) + "0i4v0wjyiryg7jq9hp9iaplqyhwj1cqy5891s4jfldcdzvcwxwx0")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags + (list "-Dbackends=gtk4,gtk3,qt5" + "-Ddocs=false"))) ; requires unpackaged gi-docgen + (native-inputs + (list pkg-config + docbook-xsl + docbook-xml + `(,glib "bin") + gobject-introspection + libxml2 + vala)) + (inputs + (list gtk + gtk+ + qtbase-5 + qtx11extras)) + (propagated-inputs + (list glib)) + (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 + (name "xdg-desktop-portal") + (version "1.10.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/flatpak/xdg-desktop-portal/releases/download/" + version "/xdg-desktop-portal-" version ".tar.xz")) + (sha256 + (base32 + "199lqr2plsy9qqnxx5a381ml8ygcbz4nkjla5pvljjcrwzlqsygd")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -2358,16 +2314,15 @@ and others.") (define-public xdg-desktop-portal-gtk (package (name "xdg-desktop-portal-gtk") - (version "1.7.1") + (version "1.10.0") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/flatpak/xdg-desktop-portal-gtk") - (commit version))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append + "https://github.com/flatpak/xdg-desktop-portal-gtk/releases/download/" + version "/xdg-desktop-portal-gtk-" version ".tar.xz")) (sha256 (base32 - "183iha9dxmvprn99ymgz17jx1lyn1fj5jyj6ghxl716zn9mxmird")))) + "0nlbnd6qvs92fanrmmn123vy0y2ml0v3ndxyk5x0cpfbnmxpa2f8")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases @@ -2378,13 +2333,22 @@ and others.") (for-each (lambda (po) (chmod po #o666)) (find-files "po" "\\.po$")) - #t))))) + #t))) + ;; Enable Gnome portal backends + #:configure-flags + (list + "--enable-appchooser" + "--enable-wallpaper" + "--enable-screenshot" + "--enable-screencast" + "--enable-background" + "--enable-settings"))) (native-inputs `(("pkg-config" ,pkg-config) ("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool) - ("xdg-desktop-portal" ,xdg-desktop-portal) + ("libxml2" ,libxml2) ("glib:bin" ,glib "bin") ("which" ,which) ("gettext" ,gettext-minimal))) @@ -2394,10 +2358,8 @@ and others.") ("fontconfig" ,fontconfig) ("gnome-desktop" ,gnome-desktop) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) - (native-search-paths - (list (search-path-specification - (variable "XDG_DESKTOP_PORTAL_DIR") - (files '("share/xdg-desktop-portal/portals"))))) + (propagated-inputs + (list xdg-desktop-portal)) (home-page "https://github.com/flatpak/xdg-desktop-portal-gtk") (synopsis "GTK implementation of xdg-desktop-portal") (description @@ -2410,7 +2372,7 @@ interfaces.") (define-public xdg-desktop-portal-wlr (package (name "xdg-desktop-portal-wlr") - (version "0.4.0") + (version "0.5.0") (source (origin (method git-fetch) (uri (git-reference @@ -2419,22 +2381,39 @@ interfaces.") (file-name (git-file-name name version)) (sha256 (base32 - "13fbzh8bjnhk4xs8j9bpc01q3hy27zpbf0gkk1fnh3hm5pnyfyiv")))) + "1ipg35gv8ja39ijwbyi96qlyq2y1fjdggl40s38rv68bsya8zry1")) + (patches (search-patches "xdg-desktop-portal-wlr-harcoded-length.patch")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Dsystemd=disabled" - "-Dsd-bus-provider=libelogind"))) + "-Dsd-bus-provider=libelogind") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'hardcode-binaries + (lambda* (#:key inputs #:allow-other-keys) + (let ((sh (search-input-file inputs "/bin/sh")) + (grim (search-input-file inputs "/bin/grim")) + (slurp (search-input-file inputs "/bin/slurp"))) + (substitute* "src/screenshot/screenshot.c" + (("grim") grim) + (("slurp") slurp) + (("execl\\(\"/bin/sh\", \"/bin/sh\"") + (string-append "execl(\"" sh "\", \"" sh "\""))) + (substitute* "src/screencast/screencast.c" + (("execvp\\(\"sh") + (string-append "execvp(\"" sh))))))))) (native-inputs - `(("cmake" ,cmake) - ("pkg-config" ,pkg-config))) - (inputs - `(("elogind" ,elogind) - ("iniparser" ,iniparser) - ("pipewire" ,pipewire-0.3) - ("inih" ,libinih) - ("wayland" ,wayland) - ("wayland-protocols" ,wayland-protocols))) + (list cmake pkg-config)) + (inputs (list elogind + bash-minimal + grim + iniparser + libinih + pipewire-0.3 + slurp + wayland + wayland-protocols)) (home-page "https://github.com/emersion/xdg-desktop-portal-wlr") (synopsis "@code{xdg-desktop-portal} backend for wlroots") (description @@ -2444,10 +2423,37 @@ remote-desktop @code{xdg-desktop-portal} interfaces for wlroots based compositors.") (license license:expat))) +(define-public poweralertd + (package + (name "poweralertd") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~kennylevinsen/poweralertd") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19rw9q4pcqw56nmzjfglfikzx5wwjl4n08awwdhg0jy1k0bm3dvp")))) + (build-system meson-build-system) + (arguments + '(#:configure-flags '("-Dman-pages=enabled"))) + (native-inputs + (list scdoc pkg-config bash-minimal)) + (inputs + (list elogind)) + (home-page "https://sr.ht/~kennylevinsen/poweralertd") + (synopsis "Power alert daemon") + (description "poweralertd is a daemon that watches for UPower events and +notifies the user using any notification daemon implementing +@code{org.freedesktop.Notifications}.") + (license license:gpl3+))) + (define-public waypipe (package (name "waypipe") - (version "0.8.0") + (version "0.8.1") (source (origin (method git-fetch) @@ -2456,22 +2462,12 @@ compositors.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz")))) + (base32 "1v08dv3dfz420v51ahz7qgv3429073kmgrf8f66s4c3jlpch2pa1")))) (build-system meson-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-sleep-path - (lambda* (#:key inputs #:allow-other-keys) - (let ((coreutils (assoc-ref inputs "coreutils"))) - (substitute* "./test/startup_failure.py" - (("sleep") (string-append coreutils "/bin/sleep"))))))))) (native-inputs - `(("pkg-config" ,pkg-config) - ("scdoc" ,scdoc) - ;; For tests - ("python" ,python) - ("coreutils" ,coreutils))) + (list pkg-config scdoc + ;; For tests + python)) (home-page "https://gitlab.freedesktop.org/mstoeckl/waypipe") (synopsis "Proxy for Wayland protocol applications") (description |