X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/50e6c1bf2ef2f006baa8cac80dfbb12ca2ba6d64..34b6dd36bb63e75a2e64a2c9b008c098162b7558:/gnu/packages/freedesktop.scm diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 8a0bb941de..dbfb88b471 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2015 David Hashe ;;; Copyright © 2016, 2017, 2019 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,8 @@ ;;; Copyright © 2019, 2020 Guillaume Le Vaillant ;;; Copyright © 2020 Jakub Kądziołka ;;; Copyright © 2020 Rene Saavedra +;;; Copyright © 2020 Nicolò Balzarotti +;;; Copyright © 2020 Anders Thuné ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +48,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) @@ -58,6 +62,7 @@ #: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) @@ -75,6 +80,7 @@ #:use-module (gnu packages man) #:use-module (gnu packages m4) #: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 +98,103 @@ #:use-module (gnu packages xorg) #:use-module (srfi srfi-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))) + (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 +286,14 @@ freedesktop.org project.") ;; Updating this will rebuild over 700 packages through libinput-minimal. (package (name "libinput") - (version "1.15.2") + (version "1.15.5") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" "libinput-" version ".tar.xz")) (sha256 (base32 - "0ivpb4sghl80cs7jg3xrs53kckif6wy81cny3a8mry94nszky74p")))) + "15ww4jl3lcxyi8m8idg8canklbqv729gnwpkz7r98c1w8a7zq3m9")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false") @@ -693,7 +796,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 +804,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 @@ -845,7 +948,7 @@ XEv.") (define-public exempi (package (name "exempi") - (version "2.5.1") + (version "2.5.2") (source (origin (method url-fetch) (uri (string-append @@ -853,11 +956,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 +1010,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 +1018,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 @@ -933,7 +1047,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 +1196,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 +1204,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 +1227,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 +1235,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) @@ -1608,14 +1717,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") @@ -1688,3 +1797,329 @@ 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) + ("gtk+" ,gtk+) + ("libdbusmenu" ,libdbusmenu) + ("libindicator" ,libindicator) + ("python@2" ,python-2) + ("python2-pygtk" ,python2-pygtk) + ("python2-pygobject-2" ,python2-pygobject-2) + ;; ("mono" ,mono) ; requires non-packaged gapi + ("vala" ,vala))) + (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) + ("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+)))