diff options
Diffstat (limited to 'gnu/packages/freedesktop.scm')
-rw-r--r-- | gnu/packages/freedesktop.scm | 221 |
1 files changed, 190 insertions, 31 deletions
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 0c27cd69a4..fa8bb3cad1 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 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> @@ -54,18 +54,20 @@ #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages gettext) + #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages glib) ;intltool #:use-module (gnu packages gnome) - #:use-module (gnu packages gnuzilla) #:use-module (gnu packages gperf) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) + #:use-module (gnu packages image) #:use-module (gnu packages libffi) #:use-module (gnu packages libunwind) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages m4) + #:use-module (gnu packages nss) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) @@ -74,6 +76,7 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages sqlite) #:use-module (gnu packages valgrind) + #:use-module (gnu packages video) #:use-module (gnu packages w3m) #:use-module (gnu packages web) #:use-module (gnu packages xdisorg) @@ -149,31 +152,30 @@ freedesktop.org project.") (define-public libinput (package (name "libinput") - (version "1.12.6") + (version "1.13.0") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" "libinput-" version ".tar.xz")) (sha256 (base32 - "0pgla0mc6mvyr1ljy10mcqvfz8i5z6yp7dbx2bcd70y67wx05d0j")))) + "0vb11fzd06xbagrnha2bbzmlfg04bbgb5w5rjrxrrz686mfwj9zb")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false"))) (native-inputs `(("check" ,check) - ("pkg-config" ,pkg-config) - ("valgrind" ,valgrind))) - (propagated-inputs - `(;; In Requires.private of libinput.pc. - ("libevdev" ,libevdev) - ("libudev" ,eudev) - ("libwacom" ,libwacom) - ("mtdev" ,mtdev))) + ("pkg-config" ,pkg-config))) (inputs `(("cairo" ,cairo) ("glib" ,glib) - ("gtk+" ,gtk+))) + ("gtk+" ,gtk+) + ("libevdev" ,libevdev) + ("libwacom" ,libwacom) + ("mtdev" ,mtdev))) + (propagated-inputs + `(;; libinput.h requires <libudev.h>, so propagate it. + ("udev" ,eudev))) (home-page "https://www.freedesktop.org/wiki/Software/libinput/") (synopsis "Input devices handling library") (description @@ -184,9 +186,9 @@ other applications that need to directly deal with input devices.") (define-public libinput-minimal (package (inherit libinput) (name "libinput-minimal") - (inputs '()) - (propagated-inputs - (alist-delete "libwacom" (package-propagated-inputs libinput))) + (inputs + (fold alist-delete (package-inputs libinput) + '("cairo" "glib" "gtk+" "libwacom"))) (arguments (substitute-keyword-arguments (package-arguments libinput) ((#:configure-flags flags ''()) @@ -230,7 +232,7 @@ the freedesktop.org XDG Base Directory specification.") (define-public elogind (package (name "elogind") - (version "241.1") + (version "241.3") (source (origin (method git-fetch) (uri (git-reference @@ -239,7 +241,7 @@ the freedesktop.org XDG Base Directory specification.") (file-name (git-file-name name version)) (sha256 (base32 - "0a4irq4ycps3xcizjjr0gz3j46dyqvcwa4ncinpqpqlasi8l18nk")))) + "0jpb55prqq5cm3w2gy9766cbaqknjvbrbniyshb8bz1q31vf4jlq")))) (build-system meson-build-system) (arguments `(#:configure-flags @@ -307,6 +309,152 @@ the org.freedesktop.login1 interface over the system bus, allowing other parts of a the system to know what users are logged in, and where.") (license license:lgpl2.1+))) +(define-public localed + ;; XXX: This package is extracted from systemd but we retain so little of it + ;; that it would make more sense to maintain a fork of the bits we need. + (package + (name "localed") + (version "241") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/systemd/systemd") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0sy91flzbhpq58k7v0294pa2gxpr0bk27rcnxlbhk2fi6nc51d28")) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + '(begin + ;; Connect to the right location for our D-Bus daemon. + (substitute* '("src/basic/def.h" + "src/libsystemd/sd-bus/sd-bus.c" + "src/stdio-bridge/stdio-bridge.c") + (("/run/dbus/system_bus_socket") + "/var/run/dbus/system_bus_socket")) + + ;; Don't insist on having systemd as PID 1 (otherwise + ;; 'localectl' would exit without doing anything.) + (substitute* "src/shared/bus-util.c" + (("sd_booted\\(\\)") + "(1)")) + #t)) + (patches (search-patches "localed-xorg-keyboard.patch")))) + (build-system meson-build-system) + (arguments + ;; Try to build as little as possible (list of components taken from the + ;; top-level 'meson.build' file.) + (let ((components '("utmp" + "hibernate" + "environment-d" + "binfmt" + "coredump" + "resolve" + "logind" + "hostnamed" + "localed" + "machined" + "portabled" + "networkd" + "timedated" + "timesyncd" + "firstboot" + "randomseed" + "backlight" + "vconsole" + "quotacheck" + "sysusers" + "tmpfiles" + "hwdb" + "rfkill" + "ldconfig" + "efi" + "tpm" + "ima" + "smack" + "gshadow" + "idn" + "nss-myhostname" + "nss-systemd"))) + `(#:configure-flags ',(map (lambda (component) + (string-append "-D" component "=false")) + (delete "localed" components)) + + ;; It doesn't make sense to test all of systemd. + #:tests? #f + + #:phases (modify-phases %standard-phases + (add-after 'unpack 'set-xkeyboard-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + ;; Set the file name to xkeyboard-config and kbd. + ;; This is used by 'localectl list-x11-keymap-layouts' + ;; and similar functions. + (let ((xkb (assoc-ref inputs "xkeyboard-config")) + (kbd (assoc-ref inputs "kbd"))) + (substitute* "src/locale/localectl.c" + (("/usr/share/X11/xkb/rules") + (string-append xkb "/share/X11/xkb/rules"))) + (substitute* "src/basic/def.h" + (("/usr/share/keymaps") + (string-append kbd "/share/keymaps"))) + #t))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + ;; Install 'localed', the D-Bus and polkit files, and + ;; 'localectl'. + (let* ((out (assoc-ref outputs "out")) + (libexec (string-append out "/libexec/localed")) + (bin (string-append out "/bin")) + (lib (string-append out "/lib")) + (dbus (string-append out + "/share/dbus-1/system-services")) + (conf (string-append out + "/etc/dbus-1/system.d/")) + (polkit (string-append out + "/share/polkit-1/actions")) + (data (string-append out "/share/systemd"))) + (define (source-file regexp) + (car (find-files ".." regexp))) + + (mkdir-p libexec) + (copy-file "systemd-localed" + (string-append libexec "/localed")) + (install-file "localectl" bin) + + (let ((service-file (source-file + "\\.locale1\\.service$"))) + (substitute* service-file + (("^Exec=.*$") + (string-append "Exec=" libexec "/localed\n"))) + (install-file service-file dbus)) + (install-file (source-file "\\.locale1\\.policy$") + polkit) + (install-file (source-file "\\.locale1\\.conf$") + conf) + (for-each (lambda (file) + (install-file file lib)) + (find-files "src/shared" + "libsystemd-shared.*\\.so")) + + (for-each (lambda (map) + (install-file map data)) + (find-files ".." "^(kbd-model-map|language-fallback-map)$")) + #t))))))) + (native-inputs (package-native-inputs elogind)) + (inputs `(("libmount" ,util-linux) + ("xkeyboard-config" ,xkeyboard-config) + ("kbd" ,kbd) + ,@(package-inputs elogind))) + (home-page "https://www.freedesktop.org/wiki/Software/systemd/localed/") + (synopsis "Control the system locale and keyboard layout") + (description + "Localed is a tiny daemon that can be used to control the system locale +and keyboard mapping from user programs. It is used among other things by the +GNOME Shell. The @command{localectl} command-line tool allows you to interact +with localed. This package is extracted from the broader systemd package.") + (license license:lgpl2.1+))) + (define-public packagekit (package (name "packagekit") @@ -483,7 +631,7 @@ applications, X servers (rootless or fullscreen) or other display servers.") (define-public weston (package (name "weston") - (version "5.0.0") + (version "6.0.0") (source (origin (method url-fetch) (uri (string-append @@ -491,30 +639,40 @@ applications, X servers (rootless or fullscreen) or other display servers.") "weston-" version ".tar.xz")) (sha256 (base32 - "1bsc9ry566mpk6fdwkqpvwq2j7m79d9cvh7d3lgf6igsphik98hm")))) - (build-system gnu-build-system) + "04p6hal5kalmdp5dxwh2h5qhkkb4dvbsk7l091zvvcq70slj6qsl")))) + (build-system meson-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("xorg-server" ,xorg-server))) (inputs `(("cairo" ,cairo-xcb) + ("colord" ,colord) ("dbus" ,dbus) ("elogind" ,elogind) + ("lcms" ,lcms) + ("libevdev" ,libevdev) ("libinput" ,libinput-minimal) + ("libjpeg" ,libjpeg) ("libunwind" ,libunwind) + ("libva" ,libva) + ("libwebp" ,libwebp) ("libxcursor" ,libxcursor) ("libxkbcommon" ,libxkbcommon) + ("libxml2" ,libxml2) ("mesa" ,mesa) ("mtdev" ,mtdev) ("linux-pam" ,linux-pam) + ("pango" ,pango) ("wayland" ,wayland) ("wayland-protocols" ,wayland-protocols) ("xorg-server-xwayland" ,xorg-server-xwayland))) (arguments `(#:configure-flags - (list "--disable-setuid-install" - "--enable-systemd-login" - (string-append "--with-xserver-path=" + (list "-Dbackend-rdp=false" ; TODO: Enable. + "-Dremoting=false" ; TODO: Enable. + "-Dsimple-dmabuf-drm=auto" + "-Dsystemd=false" + (string-append "-Dxwayland-path=" (assoc-ref %build-inputs "xorg-server-xwayland") "/bin/Xwayland")) #:parallel-tests? #f ; Parallel tests cause failures. @@ -523,8 +681,8 @@ applications, X servers (rootless or fullscreen) or other display servers.") (add-before 'configure 'use-elogind (lambda _ ;; Use elogind instead of systemd - (substitute* "configure" - (("libsystemd-login >= 198") "libelogind")) + (substitute* "libweston/meson.build" + (("libsystemd-login") "libelogind")) (substitute* '("libweston/launcher-logind.c" "libweston/weston-launch.c") (("#include <systemd/sd-login.h>") @@ -532,7 +690,8 @@ applications, X servers (rootless or fullscreen) or other display servers.") #t)) (add-after 'configure 'patch-confdefs.h (lambda _ - (system "echo \"#define HAVE_SYSTEMD_LOGIN_209 1\" >> confdefs.h"))) + (system "echo \"#define HAVE_SYSTEMD_LOGIN_209 1\" >> confdefs.h") + #t)) (add-before 'check 'setup (lambda _ (setenv "HOME" (getcwd)) @@ -761,7 +920,7 @@ interfaces, based on the useradd, usermod and userdel commands.") (define-public libmbim (package (name "libmbim") - (version "1.18.0") + (version "1.18.2") (source (origin (method url-fetch) (uri (string-append @@ -769,7 +928,7 @@ interfaces, based on the useradd, usermod and userdel commands.") name "-" version ".tar.xz")) (sha256 (base32 - "10mjjy860aakfd3h1yaj9l1jw816amrpwmyqlx37j21xv0l03x3c")))) + "0s4jsfsydp2vykv7lnimalp9i680aas1qcx7zdpjiic64b5g48vp")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums @@ -792,7 +951,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.") (define-public libqmi (package (name "libqmi") - (version "1.22.2") + (version "1.22.4") (source (origin (method url-fetch) (uri (string-append @@ -800,7 +959,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.") "libqmi-" version ".tar.xz")) (sha256 (base32 - "09w20dsgr16bgbqw5ds7r6j2s6ihwyalh9zpbjhcn7cvm0afbwgi")))) + "1wgrrb9vb3myl8xgck8ik86876ycbg8crylybs3ssi21vrxqwnsc")))) (build-system gnu-build-system) (inputs `(("libgudev" ,libgudev))) |