X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/b4440de133401abc6ce8be6c1c2e720efd9b2ba3..e0f983c0d55e301fc646d956039cc425ad18076d:/gnu/packages/freedesktop.scm diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 9b62cf6aac..40d41350ac 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -5,8 +5,9 @@ ;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès ;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus ;;; Copyright © 2015 David Hashe -;;; Copyright © 2016, 2017, 2019 Efraim Flashner +;;; Copyright © 2016, 2017, 2019, 2021 Efraim Flashner ;;; Copyright © 2016 Kei Kebreau +;;; Copyright © 2017 Nikita ;;; Copyright © 2017, 2018 Mark H Weaver ;;; Copyright © 2017, 2018, 2019, 2020 Marius Bakke ;;; Copyright © 2017, 2018, 2019 Rutger Helling @@ -18,6 +19,10 @@ ;;; Copyright © 2019, 2020 Guillaume Le Vaillant ;;; Copyright © 2020 Jakub Kądziołka ;;; Copyright © 2020 Rene Saavedra +;;; Copyright © 2020 Nicolò Balzarotti +;;; Copyright © 2020 Anders Thuné +;;; Copyright © 2020 Raghav Gururajan +;;; Copyright © 2021 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +50,7 @@ #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) #:use-module (gnu packages acl) #:use-module (gnu packages admin) @@ -53,11 +59,14 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cryptsetup) + #:use-module (gnu packages databases) #:use-module (gnu packages disk) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) + #:use-module (gnu packages fontutils) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) @@ -66,15 +75,19 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gperf) #:use-module (gnu packages graphviz) + #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages language) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages man) #:use-module (gnu packages m4) + #:use-module (gnu packages networking) #:use-module (gnu packages nss) + #:use-module (gnu packages package-management) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) @@ -92,6 +105,282 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-1)) +(define-public appstream + (package + (name "appstream") + (version "0.13.1") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.freedesktop.org/software/" + "appstream/releases/" + "AppStream-" version ".tar.xz")) + (sha256 + (base32 "09l6ixz1w29pi0nb0flz14m4r3f2hpqpp1fq8y66v9xa4c9fczds")))) + (build-system meson-build-system) + (arguments + `(#:glib-or-gtk? #t + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-libstemmer + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "meson.build" + (("/usr/include") + (string-append (assoc-ref inputs "libstemmer") + "/include"))) + #t)) + (add-after 'patch-libstemmer 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "docs/api" + (substitute* "appstream-docs.xml" + (("http://www.oasis-open.org/docbook/xml/4.3/") + (string-append (assoc-ref inputs "docbook-xml-4.3") + "/xml/dtd/docbook/")))) + (for-each (lambda (file) + (substitute* file + (("http://www.oasis-open.org/docbook/xml/4.5/") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/")))) + (find-files "scripts/desc" "\\.xml$")) + #t)) + (add-after 'patch-docbook-xml 'disable-failing-tests + (lambda _ + (substitute* "tests/test-pool.c" + (("[ \t]*g_test_add_func \\(\"/AppStream/PoolRead?.*;") + "") + (("[ \t]*g_test_add_func \\(\"/AppStream/PoolReadAsync?.*;") + "") + (("[ \t]*g_test_add_func \\(\"/AppStream/PoolEmpty?.*;") + "") + (("[ \t]*g_test_add_func \\(\"/AppStream/Cache?.*;") + "") + (("[ \t]*g_test_add_func \\(\"/AppStream/Merges?.*;") + "")) + #t)) + (add-after 'disable-failing-tests 'patch-install-dir + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "data/meson.build" + (("/etc") + (string-append (assoc-ref outputs "out") + "/etc"))) + #t))))) + (native-inputs + `(("cmake" ,cmake) + ("docbook-xml-4.3" ,docbook-xml-4.3) + ("docbook-xml" ,docbook-xml) + ("docbook-xsl" ,docbook-xsl) + ("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("gperf" ,gperf) + ("gtk-doc" ,gtk-doc/stable) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper) + ("xsltproc" ,libxslt))) + (inputs + `(("libsoup" ,libsoup) + ("libstemmer" ,libstemmer) + ("libxml2" ,libxml2) + ("libyaml" ,libyaml) + ("lmdb" ,lmdb))) + (propagated-inputs + `(("glib" ,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 +standardizing software component metadata. It provides the foundation to build +software-center applications, by providing metadata necessary for an +application-centric view on package repositories. It additionally provides +specifications for things like an unified software metadata database, screenshot +services and various other things needed to create user-friendly +application-centers for distributions.") + (home-page "https://www.freedesktop.org/wiki/Distributions/AppStream/") + ;; XXX: meson.build claims both, headers just indicate lgpl2.1+ + ;; there are also some (irrelevant) wtfpl2 examples + (license (list license:gpl2+ license:lgpl2.1+)))) + +(define-public farstream + (package + (name "farstream") + (version "0.2.9") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.freedesktop.org/farstream/farstream.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sd8syldyq6bphfdm129s3gq554vfv7vh1vcwzk48gjryf101awk")) + (patches + (search-patches "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 + (list + "--enable-gtk-doc" + "--enable-glib-asserts" + (string-append "--with-html-dir=" + (assoc-ref %outputs "doc") + "/share/gtk-doc/html")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'copy-common + (lambda _ + (delete-file "autogen.sh") + (copy-recursively + (assoc-ref %build-inputs "common") + "common") + #t)) + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "docs" + (substitute* '("libs/farstream-libs-docs.sgml" + "plugins/farstream-plugins-docs.sgml") + (("http://www.oasis-open.org/docbook/xml/4.1.2/") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/")))) + #t))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("common" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.freedesktop.org/gstreamer/common.git") + (commit "88e512ca7197a45c4114f7fa993108f23245bf50"))) + (file-name + (git-file-name "common" "latest.88e512c")) + (sha256 + (base32 "1nk94pnskjyngqcfb9p32g4yvf4nzpjszisw24r9azl0pawqpsn6")))) + ("docbook-xml" ,docbook-xml-4.1.2) + ("docbook-xsl" ,docbook-xsl) + ("gobject-introspection" ,gobject-introspection) + ("gtk-doc" ,gtk-doc/stable) + ("libtool" ,libtool) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper) + ("xsltproc" ,libxslt))) + (inputs + `(("glib" ,glib) + ("gtk+" ,gtk+) + ("gupnp-igd" ,gupnp-igd) + ("libnice" ,libnice))) + (propagated-inputs + `(("gstreamer" ,gstreamer) + ("gst-plugins-bad" ,gst-plugins-bad) + ("gst-plugins-base" ,gst-plugins-base) + ("gst-plugins-good" ,gst-plugins-good))) + (synopsis "The Farstream VVoIP framework") + (description "Farstream is a collection of GStreamer modules and libraries +for videoconferencing.") + (home-page "https://www.freedesktop.org/wiki/Software/Farstream/") + (license license:lgpl2.1+))) + +(define-public libglib-testing + (package + (name "libglib-testing") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.gnome.org/pwithnall/libglib-testing.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xmycsrlqyji6sc2i4wvp2gxf3897z65a57ygihfnpjpyl7zlwkr")))) + (build-system meson-build-system) + (arguments + `(#:glib-or-gtk? #t + #:phases + (modify-phases %standard-phases + (add-before + 'check 'pre-check + (lambda _ + ;; The test suite requires a running dbus-daemon. + (system "dbus-daemon &") + ;; Don't fail on missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) + ("gtk-doc" ,gtk-doc/stable))) + (inputs + `(("dbus" ,dbus) + ("glib" ,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 +be used by any project which uses GLib and which wants to write internal unit +tests.") + (home-page "https://gitlab.gnome.org/pwithnall/libglib-testing") + (license license:lgpl2.1+))) + +(define-public malcontent + (package + (name "malcontent") + (version "0.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/pwithnall/malcontent.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vnf0pk516fwwh41v96c29l2i7h1pnwhivlkbf53kkx1q35g7lb3")))) + (build-system meson-build-system) + (arguments + `(#:glib-or-gtk? #t + #:phases + (modify-phases %standard-phases + ;; AppInfo not available inside build environment. + (add-after 'unpack 'fix-tests + (lambda _ + (substitute* "libmalcontent/tests/app-filter.c" + (("g_test_add_func \\(\"/app-filter/appinfo\", test_app_filter_appinfo\\);") + "")) + #t))))) + (native-inputs + `(("desktop-file-utils" ,desktop-file-utils) + ("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("gtk+:bin" ,gtk+ "bin") + ("itstool" ,itstool) + ("libglib-testing" ,libglib-testing) + ("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))) + (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 +inappropriate content.") + (home-page "https://gitlab.freedesktop.org/pwithnall/malcontent") + (license + (list + license:gpl2+ + license:lgpl2.1+)))) + (define-public xdg-utils (package (name "xdg-utils") @@ -183,14 +472,14 @@ freedesktop.org project.") ;; Updating this will rebuild over 700 packages through libinput-minimal. (package (name "libinput") - (version "1.15.2") + (version "1.16.4") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" "libinput-" version ".tar.xz")) (sha256 (base32 - "0ivpb4sghl80cs7jg3xrs53kckif6wy81cny3a8mry94nszky74p")))) + "0acywdjppj5i591l879bnqa9cs4vgdwnhilwk550x5x8sl33m4k5")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false") @@ -220,7 +509,7 @@ other applications that need to directly deal with input devices.") (license license:x11))) (define-public libinput-minimal - (package (inherit libinput) + (package/inherit libinput (name "libinput-minimal") (inputs (fold alist-delete (package-inputs libinput) @@ -269,7 +558,7 @@ the freedesktop.org XDG Base Directory specification.") (define-public elogind (package (name "elogind") - (version "243.4") + (version "243.7") (source (origin (method git-fetch) (uri (git-reference @@ -278,7 +567,7 @@ the freedesktop.org XDG Base Directory specification.") (file-name (git-file-name name version)) (sha256 (base32 - "141frvgyk4fafcxsix94qc0d9ffrwksld8lqq4hq6xsgjlvv0mrs")))) + "1ccj3cbs9nsfg497wg195in1a7b9csm1jdm7z6q7vvx1ynpjxlxz")))) (build-system meson-build-system) (arguments `(#:configure-flags @@ -317,14 +606,6 @@ the freedesktop.org XDG Base Directory specification.") (("join_paths\\(bindir, 'pkttyagent'\\)") "'\"/run/current-system/profile/bin/pkttyagent\"'")) #t)) - (add-after 'unpack 'adjust-dbus-socket-address - (lambda _ - ;; Look for the D-Bus socket in /var/run instead of /run. Remove - ;; this for versions > 243.4. - (substitute* "src/libelogind/sd-bus/bus-internal.h" - (("=/run/dbus/system_bus_socket") - "=/var/run/dbus/system_bus_socket")) - #t)) (add-after 'unpack 'adjust-tests (lambda _ ;; This test tries to copy some bytes from /usr/lib/os-release, @@ -531,7 +812,7 @@ of a the system to know what users are logged in, and where.") (find-files ".." "^(kbd-model-map|language-fallback-map)$")) #t))))))) (native-inputs (package-native-inputs elogind)) - (inputs `(("libmount" ,util-linux) + (inputs `(("libmount" ,util-linux "lib") ("xkeyboard-config" ,xkeyboard-config) ("kbd" ,kbd) ,@(package-inputs elogind))) @@ -587,14 +868,14 @@ manager for the current system.") (define-public python-pyxdg (package (name "python-pyxdg") - (version "0.25") + (version "0.27") (source (origin (method url-fetch) (uri (pypi-uri "pyxdg" version)) (sha256 (base32 - "179767h8m634ydlm4v8lnz01ba42gckfp684id764zaip7h87s41")))) + "19f5j5mxp7ff0vp33s32qbpdi65iiwha0bj641gl70pdwnm97gc0")))) (build-system python-build-system) (arguments '(#:phases @@ -607,15 +888,16 @@ manager for the current system.") (substitute* "test/test-icon.py" (("/usr/share/icons/hicolor/index.theme") (string-append (assoc-ref inputs "hicolor-icon-theme") - "/share/icons/hicolor/index.theme")) - ;; FIXME: This test fails because the theme contains the unknown - ;; key "Scale". - (("theme.validate\\(\\)") "#")) + "/share/icons/hicolor/index.theme"))) - ;; One test fails with: - ;; AssertionError: 'x-apple-ios-png' != 'png' + ;; These two tests are known to fail in strange ways. (substitute* "test/test-mime.py" - (("self.check_mimetype\\(imgpng, 'image', 'png'\\)") "#")) + (("def test_get_type\\(self") "def _test_get_type(self") + (("def test_get_type2\\(self") "def _test_get_type2(self")) + + ;; There are test files not shipped in the release tarball + (substitute* "test/test-icon.py" + (("def test_validate_icon_theme") "def _test_validate_icon_theme")) (invoke "nosetests" "-v")))))) (native-inputs ;; For tests. @@ -635,14 +917,14 @@ Python.") (define-public wayland (package (name "wayland") - (version "1.17.0") + (version "1.18.0") (source (origin (method url-fetch) (uri (string-append "https://wayland.freedesktop.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "194ibzwpdcn6fvk4xngr4bf5axpciwg2bj82fdvz88kfmjw13akj")))) + "0k995rn96xkplrapz5k648j651wc43kq817xk1x8280h16gsfxa6")))) (build-system gnu-build-system) (arguments `(#:parallel-tests? #f)) @@ -671,7 +953,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (define-public wayland-protocols (package (name "wayland-protocols") - (version "1.18") + (version "1.20") (source (origin (method url-fetch) (uri (string-append @@ -679,7 +961,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") "wayland-protocols-" version ".tar.xz")) (sha256 (base32 - "1cvl93h83ymbfhb567jv5gzyq08181w7c46rsw4xqqqpcvkvfwrx")))) + "1rsdgvkkvxs3cjhpl6agvbkm53vm7k8rg127j9y2vn33m2hvg0lp")))) (build-system gnu-build-system) (inputs `(("wayland" ,wayland))) @@ -693,7 +975,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (define-public waylandpp (package (name "waylandpp") - (version "0.2.5") + (version "0.2.8") (home-page "https://github.com/NilsBrause/waylandpp") (source (origin (method git-fetch) @@ -701,10 +983,10 @@ applications, X servers (rootless or fullscreen) or other display servers.") (file-name (git-file-name name version)) (sha256 (base32 - "16h57hzd688664qcyznzhjp3hxipdkzgv46x82yhkww24av8b55n")))) + "1kxiqab48p0n97pwg8c2zx56wqq32m3rcq7qd2pjj33ipcanb3qq")))) (build-system cmake-build-system) (arguments - `(#:tests? #f)) ;no tests + `(#:tests? #f)) ; no tests (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -742,7 +1024,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") ("lcms" ,lcms) ("libevdev" ,libevdev) ("libinput" ,libinput-minimal) - ("libjpeg" ,libjpeg) + ("libjpeg" ,libjpeg-turbo) ("libunwind" ,libunwind) ("libva" ,libva) ("libwebp" ,libwebp) @@ -806,46 +1088,44 @@ multiplexer to the KMS/DRM Linux kernel devices.") (license license:expat))) (define-public wev - ;; There simple tool has no version or release yet. - (let ((commit "cee3dfb2a8b40ee303611018c68ae182d84a7f46")) - (package - (name "wev") - (version (string-append "2020-02-06-" (string-take commit 8))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~sircmpwn/wev") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0l71v3fzgiiv6xkk365q1l08qvaymxd4kpaya6r2g8yzkr7i2hms")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; no tests - #:make-flags - (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure)))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("scdoc" ,scdoc))) - (inputs - `(("libxkbcommon" ,libxkbcommon) - ("wayland" ,wayland) - ("wayland-protocols" ,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 + (package + (name "wev") + (version "1.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~sircmpwn/wev") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0l71v3fzgiiv6xkk365q1l08qvaymxd4kpaya6r2g8yzkr7i2hms")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags + (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("scdoc" ,scdoc))) + (inputs + `(("libxkbcommon" ,libxkbcommon) + ("wayland" ,wayland) + ("wayland-protocols" ,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 sent to a Wayland window, such as key presses. It is analogous to the X11 tool XEv.") - (license license:expat)))) + (license license:expat))) (define-public exempi (package (name "exempi") - (version "2.5.1") + (version "2.5.2") (source (origin (method url-fetch) (uri (string-append @@ -853,11 +1133,22 @@ XEv.") name "-" version ".tar.bz2")) (sha256 (base32 - "1j4vx054l1c2cggw4aka4iw48jkcf68qk5y064pbqw1k3ddks2qh")))) + "1mdfxb36p8251n5m7l55gx3fcqpk46yz9v568xfr8igxmqa47xaj")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list (string-append "--with-boost=" - (assoc-ref %build-inputs "boost"))))) + (assoc-ref %build-inputs "boost"))) + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-static-library + (lambda* (#:key outputs #:allow-other-keys) + ;; XXX: Some tests fail to build with --disable-static due to + ;; symbols not being visible in the shared library: + ;; . + ;; Simply delete the static library instead to save ~4.3 MiB. + (delete-file (string-append (assoc-ref outputs "out") + "/lib/libexempi.a")) + #t))))) (native-inputs `(("boost" ,boost))) ; tests (inputs @@ -896,7 +1187,7 @@ Analysis and Reporting Technology) functionality.") (define-public udisks (package (name "udisks") - (version "2.7.7") + (version "2.8.4") (source (origin (method url-fetch) (uri (string-append @@ -904,7 +1195,7 @@ Analysis and Reporting Technology) functionality.") version "/udisks-" version ".tar.bz2")) (sha256 (base32 - "1dnlxqgy9v0mjdknv3b1s64szdykyk3hk0rxj3chwhpd415lrwgs")))) + "06cq52kp1nyy15qzylywy9s7hhhqc45k0s3y68crf0zsmjyng0yj")))) (build-system gnu-build-system) (native-inputs `(("docbook-xml" ,docbook-xml-4.3) ; to build the manpages @@ -912,7 +1203,7 @@ Analysis and Reporting Technology) functionality.") ("glib:bin" ,glib "bin") ; for glib-mkenums ("gnome-common" ,gnome-common) ; TODO: Why is this needed? ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc) + ("gtk-doc" ,gtk-doc/stable) ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("xsltproc" ,libxslt))) @@ -933,7 +1224,6 @@ Analysis and Reporting Technology) functionality.") #:disallowed-references ("doc") ;enforce separation of "doc" #:configure-flags (list "--enable-man" - "--enable-gtk-doc" ; Without this the HTML doc does not seem to build automatically. "--enable-available-modules" ; Such as lvm2, btrfs, etc. "--localstatedir=/var" "--enable-fhs-media" ;mount devices in /media, not /run/media @@ -1083,7 +1373,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.") (define-public libqmi (package (name "libqmi") - (version "1.24.4") + (version "1.24.14") (source (origin (method url-fetch) (uri (string-append @@ -1091,7 +1381,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.") "libqmi-" version ".tar.xz")) (sha256 (base32 - "12licfsszr6qxpg9b2b04qm2glk8d42fcy32zr8jzwrgr7gbl5h3")))) + "0zshxqbm9ldybgrzh7pjmwmfjvvvfd0xh8qhgl8xiqdb9ply73r0")))) (build-system gnu-build-system) (inputs `(("libgudev" ,libgudev))) @@ -1114,7 +1404,7 @@ which speak the Qualcomm MSM Interface (QMI) protocol.") (define-public modem-manager (package (name "modem-manager") - (version "1.10.8") + (version "1.12.10") (source (origin (method url-fetch) (uri (string-append @@ -1122,15 +1412,11 @@ which speak the Qualcomm MSM Interface (QMI) protocol.") "ModemManager-" version ".tar.xz")) (sha256 (base32 - "16hnl0sdriqgv4v30mfs64mdl9rw7lsh802zlm3ggwxxil3p9qfb")))) + "1apq9camys2gaw6y6ic1ld20cncfwpmxnzvh4j5zkbbjpf5hbcxj")))) (build-system gnu-build-system) (arguments '(#:configure-flags - `(,(string-append "--with-udev-base-dir=" %output "/lib/udev") - ;; FIXME: Without this flag the build fails with "error: assignment - ;; from incompatible pointer type" whenever the return value of - ;; "g_object_ref" is assigned to "ctx->self". - "--disable-more-warnings"))) + `(,(string-append "--with-udev-base-dir=" %output "/lib/udev")))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums ("gobject-introspection" ,gobject-introspection) @@ -1199,17 +1485,22 @@ different sorts of messages in different formats.") (define-public telepathy-idle (package (name "telepathy-idle") - (version "0.2.0") - (source (origin - (method url-fetch) - (uri (string-append "https://telepathy.freedesktop.org/releases/" - name "/" name "-" version ".tar.bz2")) - (sha256 - (base32 - "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh")))) + (version "0.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TelepathyIM/telepathy-idle") + (commit (string-append "telepathy-idle-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pfw4g2cicw3ykxhsy743r0fc1yqbdrqxh2c5ha6am19dajcr95l")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) (inputs `(("xsltproc" ,libxslt) ("python" ,python-2) @@ -1289,7 +1580,7 @@ wish to perform colour calibration.") (define-public libfprint (package (name "libfprint") - (version "1.90.1") + (version "1.90.7") (source (origin (method git-fetch) @@ -1298,7 +1589,7 @@ wish to perform colour calibration.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0fdaak7qjr9b4482g7fhhqpyfdqpxq5kpmyzkp7f5i7qq2ynb78a")))) + (base32 "00pmdpxxjj4sh8qjq9ch3pylgg9w019rg1bbaw53a4wr637rrz43")))) (build-system meson-build-system) (arguments '(#:configure-flags @@ -1308,7 +1599,7 @@ wish to perform colour calibration.") `(("eudev" ,eudev) ("glib:bin" ,glib "bin") ; for {glib-,}mkenums ("gobject-introspection" ,gobject-introspection) - ("gtk-doc" ,gtk-doc) ; for 88 KiB of API documentation + ("gtk-doc" ,gtk-doc/stable) ; for 88 KiB of API documentation ("pkg-config" ,pkg-config))) (inputs `(("glib" ,glib) @@ -1424,7 +1715,7 @@ to applications simultaneously competing for fingerprint readers.") (define-public desktop-file-utils (package (name "desktop-file-utils") - (version "0.24") + (version "0.26") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" @@ -1432,10 +1723,12 @@ to applications simultaneously competing for fingerprint readers.") "desktop-file-utils-" version ".tar.xz")) (sha256 (base32 - "1nc3bwjdrpcrkbdmzvhckq0yngbcxspwj2n1r7jr3gmx1jk5vpm1")))) + "02bkfi6fyk4c0gh2avd897882ww5zl7qg7bzzf28qb57kvkvsvdj")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) (inputs `(("glib" ,glib))) (home-page "https://www.freedesktop.org/wiki/Software/desktop-file-utils/") @@ -1608,14 +1901,14 @@ their MIME type. (define-public uchardet (package (name "uchardet") - (version "0.0.6") + (version "0.0.7") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" name "/releases/" name "-" version ".tar.xz")) (sha256 - (base32 "0q9c02b6nmw41yfsiqsnphgc3f0yg3fj31wkccp47cmwvy634lc3")))) + (base32 "1ca51sryhryqz82v4d0graaiqqq5w2f33a9gj83b910xmq499irz")))) (build-system cmake-build-system) (home-page "https://www.freedesktop.org/wiki/Software/uchardet/") (synopsis "Encoding detector library") @@ -1628,6 +1921,26 @@ encoding names are iconv-compatible.") ;; combination is GPL 2.0+. (license license:gpl2+))) +(define-public python-cchardet + (package + (name "python-cchardet") + (version "2.1.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cchardet" version)) + (sha256 + (base32 + "1bqfz85cd51sw0bvhvdq9ikccxi2ld7g5jpni4jkq1a5clrvca64")))) + (build-system python-build-system) + (inputs + `(("uchardet" ,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 +Python, that binds to the C library @code{uchardet} to increase performance.") + (license license:gpl2+))) + (define-public udiskie (package (name "udiskie") @@ -1688,3 +2001,330 @@ Its features include: @end itemize ") (license license:expat))) + +(define-public plymouth + (package + (name "plymouth") + (version "0.9.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.freedesktop.org/software/" + "plymouth/releases/" name "-" version ".tar.xz")) + (sha256 + (base32 + "0l8kg7b2vfxgz9gnrn0v2w4jvysj2cirp0nxads5sy05397pl6aa")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list (string-append "--with-logo=" + "/etc/plymouth/logo.png") + (string-append "--with-background-color=" + "0x00ff00") + (string-append "--with-background-start-color-stop=" + "0xff0000") + (string-append "--with-background-end-color-stop=" + "0x0000ff") + "--localstatedir=/var" + "--with-boot-tty=/dev/console" + "--without-system-root-install" + "--without-rhgb-compat-link" + "--enable-drm" + "--disable-systemd-integration" + ;; Disable GTK to dramatically reduce the closure + ;; size from ~800 MiB to a little more than 200 MiB + "--disable-gtk") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'make-reproducible + (lambda _ + (substitute* "src/main.c" + (("__DATE__") "\"guix\"")) + #t)) + (add-before 'configure 'fix-docbook + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "docs/Makefile.in" + (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl") + (string-append (assoc-ref inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-" + ,(package-version docbook-xsl) + "/manpages/docbook.xsl"))) + (setenv "XML_CATALOG_FILES" + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/catalog.xml")) + #t))))) + (inputs + `(("glib" ,glib) + ("pango" ,pango) + ("libdrm" ,libdrm) + ("libpng" ,libpng) + ("eudev" ,eudev))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("libxslt" ,libxslt) + ("docbook-xsl" ,docbook-xsl) + ("docbook-xml" ,docbook-xml))) + (synopsis "Graphical boot animation (splash) and logger") + (home-page "https://www.freedesktop.org/wiki/Software/Plymouth/") + (description + "Plymouth is an application that runs very early in the boot process and +that provides a graphical boot animation while the boot process happens in the +background. You are not supposed to install this on your own, it is only +useful with system integration.") + (license license:gpl2+))) + +(define-public libindicator + (package + (name "libindicator") + (version "12.10.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://launchpad.net/libindicator/" + (version-major+minor version) "/" version + "/+download/libindicator-" version ".tar.gz")) + (sha256 + (base32 + "0zs4z7l9b57jldwz0ban77f3c2zq43ambd0dssf5qg9i216f9lmj")))) + (build-system gnu-build-system) + (native-inputs + `(("dbus-test-runner" ,dbus-test-runner) + ("glib:bin" ,glib "bin") + ("pkg-config" ,pkg-config) + ("xvfb" ,xorg-server-for-tests))) + (inputs + `(("gtk+" ,gtk+) + ("glib" ,glib))) + (arguments + `(#:make-flags '("CFLAGS=-Wno-error") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-missing-space-for-libm + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "configure" + (("LIBM=\"-lm\"") "LIBM=\" -lm\"")) + #t)) + (add-before 'configure 'fix-test-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "tests/Makefile.in" + (("/bin/sh") (which "sh")) + (("#!/bin/bash") (string-append "#!" (which "bash"))) + (("/usr/share") + (string-append (assoc-ref inputs "dbus-test-runner") "/share"))) + #t))))) + (home-page "https://launchpad.net/libindicator") + (synopsis "Ayatana indicators symbols and functions") + (description "A set of symbols and convenience functions for Ayatana indicators.") + (license license:gpl3))) + +(define-public libappindicator + (package + (name "libappindicator") + (version "12.10.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://launchpad.net/libappindicator/" + (version-major+minor version) "/" version + "/+download/libappindicator-" version ".tar.gz")) + (sha256 + (base32 + "17xlqd60v0zllrxp8bgq3k5a1jkj0svkqn8rzllcyjh8k0gpr46m")))) + (build-system gnu-build-system) + (native-inputs + `(("dbus-test-runner" ,dbus-test-runner) + ("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("pkg-config" ,pkg-config) + ("xvfb" ,xorg-server-for-tests))) + (inputs + `(("dbus-glib" ,dbus-glib) + ("libindicator" ,libindicator) + ("python@2" ,python-2) + ("python2-pygtk" ,python2-pygtk) + ("python2-pygobject-2" ,python2-pygobject-2) + ;; ("mono" ,mono) ; requires non-packaged gapi + ("vala" ,vala))) + (propagated-inputs + `(("gtk+" ,gtk+) + ("libdbusmenu" ,libdbusmenu))) + (arguments + ;; FIXME: do not hardcode gtk version + `(#:configure-flags '("--with-gtk=3") + #:make-flags '("CFLAGS=-Wno-error") + #:tests? #f ; One test does not pass (it succeeds when it should fail). + #:phases + (modify-phases %standard-phases + (add-before 'configure 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "docs/reference/Makefile.in" + (("/bin/sh") (which "sh"))) + (substitute* "tests/Makefile.in" + (("/bin/sh") (which "sh")) + (("#!/bin/bash") (string-append "#!" (which "bash"))) + (("/usr") (string-append (assoc-ref inputs "dbus-test-runner")))) + (substitute* "bindings/python/Makefile.in" + (("-lappindicator") "-lappindicator3")) + #t)) + (add-after 'unpack 'fix-codegen-path + (lambda _ + (substitute* "configure" + (("PYGTK_CODEGEN=.*") "PYGTK_CODEGEN=pygtk-codegen-2.0\n")) + #t)) + (add-after 'build 'build-bindings + (lambda _ + (invoke "make" "-C" "bindings/python") + #t)) + (add-after 'install 'install-bindings + (lambda _ + (invoke "make" "-C" "bindings/python" "install") + #t))))) + (home-page "https://launchpad.net/libappindicator") + (synopsis "Allow applications to export a menu into the Unity menu bar") + (description "A library to allow applications to export a menu, originally +into the Unity menu bar. Based on KSNI, it also works in KDE and will +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.7.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/flatpak/xdg-desktop-portal") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0rkwpsmbn3d3spkzc2zsd50l2r8pp4la390zcpsawaav8w7ql7xm")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("glib:bin" ,glib "bin") + ("which" ,which) + ("gettext" ,gettext-minimal))) + (inputs + `(("glib" ,glib) + ("flatpak" ,flatpak) + ("fontconfig" ,fontconfig) + ("json-glib" ,json-glib) + ("libportal" ,libportal) + ("dbus" ,dbus) + ("geoclue" ,geoclue) + ("pipewire" ,pipewire-0.3) + ("fuse" ,fuse))) + (home-page "https://github.com/flatpak/xdg-desktop-portal") + (synopsis "Desktop integration portal for sandboxed apps") + (description + "xdg-desktop-portal is a @dfn{portal front-end service} for Flatpak and +possibly other desktop containment frameworks. It works by exposing a series +of D-Bus interfaces known as portals under a well-known +name (@code{org.freedesktop.portal.Desktop}) and object +path (@code{/org/freedesktop/portal/desktop}). + +The portal interfaces include APIs for file access, opening URIs, printing +and others.") + (license license:lgpl2.1+))) + +(define-public xdg-desktop-portal-gtk + (package + (name "xdg-desktop-portal-gtk") + (version "1.7.1") + (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)) + (sha256 + (base32 + "183iha9dxmvprn99ymgz17jx1lyn1fj5jyj6ghxl716zn9mxmird")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'po-chmod + (lambda _ + ;; Make sure 'msgmerge' can modify the PO files. + (for-each (lambda (po) + (chmod po #o666)) + (find-files "po" "\\.po$")) + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("xdg-desktop-portal" ,xdg-desktop-portal) + ("glib:bin" ,glib "bin") + ("which" ,which) + ("gettext" ,gettext-minimal))) + (inputs + `(("glib" ,glib) + ("gtk" ,gtk+) + ("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"))))) + (home-page "https://github.com/flatpak/xdg-desktop-portal-gtk") + (synopsis "GTK implementation of xdg-desktop-portal") + (description + "This package provides a backend implementation for xdg-desktop-portal +which uses GTK+ and various pieces of GNOME infrastructure, such as the +@code{org.gnome.Shell.Screenshot} or @code{org.gnome.SessionManager} D-Bus +interfaces.") + (license license:lgpl2.1+)))