gnu: Add and use gettext-minimal.
[jackhill/guix/guix.git] / gnu / packages / freedesktop.scm
index c085fe5..19ce0ee 100644 (file)
@@ -2,9 +2,11 @@
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2015 Andy Wingo <wingo@pobox.com>
-;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +37,8 @@
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gperf)
+  #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages glib)                ;intltool
   #:use-module (gnu packages boost)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages compression)
-  #:use-module (gnu packages doxygen)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages acl)
-  #:use-module (gnu packages polkit))
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages polkit)
+  #:use-module (gnu packages databases))
 
 (define-public xdg-utils
   (package
       (origin
         (method url-fetch)
           (uri (string-append
-                 "http://portland.freedesktop.org/download/xdg-utils-"
+                 "https://portland.freedesktop.org/download/xdg-utils-"
                  version ".tgz"))
           (sha256
             (base32
              "1b019d3r1379b60p33d6z44kx589xjgga62ijz9vha95dg8vgbi1"))))
     (build-system gnu-build-system)
+    (propagated-inputs
+     `(("xprop" ,xprop) ; for Xfce detecting
+       ("xset" ,xset))) ; for xdg-screensaver
     (arguments
      `(#:tests? #f)) ; no check target
     (home-page "http://portland.freedesktop.org/")
@@ -74,14 +83,14 @@ freedesktop.org project.")
 (define-public libinput
   (package
     (name "libinput")
-    (version "0.21.0")
+    (version "1.4.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://freedesktop.org/software/libinput/"
+              (uri (string-append "https://freedesktop.org/software/libinput/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0l7mhdr50g11hxg2pz8ihsgzbm0810syj05d3555rzhda6g7mkkw"))))
+                "085lcxy111j8r1lwyghsc6zrysqh0vg8xip5axxsdl8r8n3i1vvn"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -89,14 +98,25 @@ freedesktop.org project.")
      `(("libudev" ,eudev))) ; required by libinput.pc
     (inputs
      `(("libevdev" ,libevdev)
-       ("mtdev" ,mtdev)))
-    (home-page "http://www.freedesktop.org/wiki/Software/libinput/")
+       ("mtdev" ,mtdev)
+       ("libwacom" ,libwacom)))
+    (home-page "https://www.freedesktop.org/wiki/Software/libinput/")
     (synopsis "Input devices handling library")
     (description
      "Libinput is a library to handle input devices for display servers and
 other applications that need to directly deal with input devices.")
     (license license:x11)))
 
+(define-public libinput-minimal
+  (package (inherit libinput)
+    (name "libinput-minimal")
+    (inputs
+     `(("libevdev" ,libevdev)
+       ("mtdev" ,mtdev)))
+    (arguments
+      `(#:configure-flags
+        '("--disable-libwacom")))))
+
 (define-public libxdg-basedir
   (package
     (name "libxdg-basedir")
@@ -133,14 +153,14 @@ the freedesktop.org XDG Base Directory specification.")
 (define-public elogind
   (package
     (name "elogind")
-    (version "219.12")
+    (version "219.14")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://wingolog.org/pub/" name "/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "13qc4f0dl7ynnfp1y565z2k0jjizly5w3dqhiqkdk7v6jr4pksb7"))
+                "1jckc4wx199n1q4r4fv43ibjs6nlq91s39w9r78ilk1z383m1hcx"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -157,24 +177,35 @@ the freedesktop.org XDG Base Directory specification.")
              (string-append "--with-udevrulesdir="
                             (assoc-ref %outputs "out")
                             "/lib/udev/rules.d"))
-       #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")))
+       #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")
+       #:phases (modify-phases %standard-phases
+                  (add-before 'build 'fix-service-file
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      ;; Fix the file name of the 'elogind' binary in the D-Bus
+                      ;; '.service' file.
+                      (substitute* "src/login/org.freedesktop.login1.service"
+                        (("^Exec=.*")
+                         (string-append "Exec=" (assoc-ref %outputs "out")
+                                        "/libexec/elogind/elogind\n"))))))))
     (native-inputs
      `(("intltool" ,intltool)
-       ("gettext" ,gnu-gettext)
+       ("gettext" ,gettext-minimal)
        ("docbook-xsl" ,docbook-xsl)
        ("docbook-xml" ,docbook-xml)
        ("xsltproc" ,libxslt)
        ("m4" ,m4)
        ("libxml2" ,libxml2)                     ;for XML_CATALOG_FILES
-       ("pkg-config"pkg-config)
+       ("pkg-config" ,pkg-config)
        ("gperf" ,gperf)))
     (inputs
      `(("linux-pam" ,linux-pam)
        ("linux-libre-headers" ,linux-libre-headers)
        ("libcap" ,libcap)
+       ("shepherd" ,shepherd)                ;for 'halt' and 'reboot', invoked
+                                             ;when pressing the power button
        ("dbus" ,dbus)
        ("eudev" ,eudev)))
-    (home-page "https://github.com/andywingo/elogind")
+    (home-page "https://github.com/wingo/elogind")
     (synopsis "User, seat, and session management service")
     (description "Elogind is the systemd project's \"logind\" service,
 extracted out as a separate project.  Elogind integrates with PAM to provide
@@ -233,17 +264,19 @@ Python.")
 (define-public wayland
   (package
     (name "wayland")
-    (version "1.8.1")
+    (version "1.11.0")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://wayland.freedesktop.org/releases/"
+              (uri (string-append "https://wayland.freedesktop.org/releases/"
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1j3gfzn8i0xhk3j34mwb2srrscjxfyi279jhyq80mz943j6r6z7i"))))
+                "1c0d5ivy9n44hykvw2ggrvqrnn7naw3wg11vbvgwzgi8g5gr4h4m"))))
     (build-system gnu-build-system)
+    (arguments `(#:parallel-tests? #f))
     (native-inputs
      `(("doxygen" ,doxygen)
+       ("graphviz" ,graphviz)
        ("pkg-config" ,pkg-config)
        ("xmlto" ,xmlto)
        ("xsltproc" ,libxslt)))
@@ -253,7 +286,7 @@ Python.")
        ("expat" ,expat)
        ("libffi" ,libffi)
        ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
-    (home-page "http://wayland.freedesktop.org/")
+    (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
@@ -263,18 +296,40 @@ application, or a wayland client itself.  The clients can be traditional
 applications, X servers (rootless or fullscreen) or other display servers.")
     (license license:x11)))
 
+(define-public wayland-protocols
+  (package
+    (name "wayland-protocols")
+    (version "1.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://wayland.freedesktop.org/releases/"
+                    "wayland-protocols-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0wpm7mz7ww6nn3vrgz7a9iyk7mk6za73wnq0n54lzl8yq8irljh1"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("wayland" ,wayland)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (synopsis "Wayland protocols")
+    (description "This package contains XML definitions of the Wayland protocols.")
+    (home-page "https://wayland.freedesktop.org")
+    (license license:expat)))
+
 (define-public exempi
   (package
     (name "exempi")
-    (version "2.2.2")
+    (version "2.3.0")
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "http://libopenraw.freedesktop.org/download/"
+                   "https://libopenraw.freedesktop.org/download/"
                    name "-" version ".tar.bz2"))
              (sha256
               (base32
-               "01vcd1mfn2s0iiq2cjyzgvnxx6kcq9cwra1iipijhs0vwvjx0yhf"))))
+               "0jcrv3w8m415cq8xi886hcxfqbrn5dczxbzybx9bhf3dbqsyv6nq"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list (string-append "--with-boost="
@@ -316,14 +371,14 @@ Analysis and Reporting Technology) functionality.")
 (define-public udisks
   (package
     (name "udisks")
-    (version "2.1.6")
+    (version "2.1.7")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://udisks.freedesktop.org/releases/"
+              (uri (string-append "https://udisks.freedesktop.org/releases/"
                                   name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "0spl155k0g2l2hvqf8xyjv08i68gfyhzpjva6cwlzxx0bz4gbify"))))
+                "119pr2zbff8vkwlhghim7d7ir24c1dil9hp4q49wm4f6pnrjpbmb"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("glib:bin" ,glib "bin") ; for glib-mkenums
@@ -337,12 +392,20 @@ Analysis and Reporting Technology) functionality.")
      `(("acl" ,acl)
        ("libatasmart" ,libatasmart)
        ("libgudev" ,libgudev)
-       ("polkit" ,polkit)))
+       ("polkit" ,polkit)
+       ("util-linux" ,util-linux)))
+    (outputs '("out"
+               "doc"))                            ;5 MiB of gtk-doc HTML
     (arguments
      `(#:tests? #f ; requiring system message dbus
+       #:disallowed-references ("doc")            ;enforce separation of "doc"
        #:configure-flags
        (list "--disable-man"
              "--localstatedir=/var"
+             "--enable-fhs-media"     ;mount devices in /media, not /run/media
+             (string-append "--with-html-dir="
+                            (assoc-ref %outputs "doc")
+                            "/share/doc/udisks/html")
              (string-append "--with-udevdir=" %output "/lib/udev"))
        #:phases
        (modify-phases %standard-phases
@@ -354,7 +417,18 @@ Analysis and Reporting Technology) functionality.")
               (("girdir = .*")
                "girdir = $(datadir)/gir-1.0\n")
               (("typelibsdir = .*")
-               "typelibsdir = $(libdir)/girepository-1.0\n")))))))
+               "typelibsdir = $(libdir)/girepository-1.0\n"))))
+         (add-after 'install 'set-mount-file-name
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             ;; Tell 'udisksd' where to find the 'mount' command.
+             (let ((out   (assoc-ref outputs "out"))
+                   (utils (assoc-ref inputs "util-linux")))
+               (wrap-program (string-append out "/libexec/udisks2/udisksd")
+                 `("PATH" ":" prefix
+                   (,(string-append utils "/bin") ;for 'mount'
+                    "/run/current-system/profile/bin"
+                    "/run/current-system/profile/sbin")))
+               #t))))))
     (home-page "http://www.freedesktop.org/wiki/Software/udisks/")
     (synopsis "Disk manager service")
     (description
@@ -371,7 +445,7 @@ message bus.")
     (version "0.6.40")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://www.freedesktop.org/software/"
+              (uri (string-append "https://www.freedesktop.org/software/"
                                   name "/" name "-" version ".tar.xz"))
               (sha256
                (base32
@@ -403,3 +477,233 @@ message bus.")
 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
+  (package
+    (name "libmbim")
+    (version "1.12.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://www.freedesktop.org/software/" name "/"
+                    name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0flpgzsqpjgybjkx4smbb4rjxf2w1xgd1v9gmz61rvl89qasznbv"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-mkenums
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (propagated-inputs
+     `(("glib" ,glib))) ; required by mbim-glib.pc
+    (inputs
+     `(("libgudev" ,libgudev)))
+    (synopsis "Library to communicate with MBIM-powered modems")
+    (home-page "https://www.freedesktop.org/wiki/Software/libmbim/")
+    (description
+     "Libmbim is a GLib-based library for talking to WWAN modems and devices
+which speak the Mobile Interface Broadband Model (MBIM) protocol.")
+    (license
+     ;; The libmbim-glib library is released under the LGPLv2+ license.
+     ;; The mbimcli tool is released under the GPLv2+ license.
+     (list license:lgpl2.0+ license:gpl2+))))
+
+(define-public libqmi
+  (package
+    (name "libqmi")
+    (version "1.14.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://www.freedesktop.org/software/" name "/"
+                    name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0h009bzss4bal47nk21lyp4s3mmlcivhhaaj7r9229qvx85bi0v2"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-mkenums
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (propagated-inputs
+     `(("glib" ,glib))) ; required by qmi-glib.pc
+    (synopsis "Library to communicate with QMI-powered modems")
+    (home-page "https://www.freedesktop.org/wiki/Software/libqmi/")
+    (description
+     "Libqmi is a GLib-based library for talking to WWAN modems and devices
+which speak the Qualcomm MSM Interface (QMI) protocol.")
+    (license
+     ;; The libqmi-glib library is released under the LGPLv2+ license.
+     ;; The qmicli tool is released under the GPLv2+ license.
+     (list license:lgpl2.0+ license:gpl2+))))
+
+(define-public modem-manager
+  (package
+    (name "modem-manager")
+    (version "1.4.14")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://www.freedesktop.org/software/ModemManager/"
+                    "ModemManager-" version ".tar.xz"))
+              (sha256
+               (base32
+                "18hvffwcncwz14kdzk42jbkh362n0kjv3kgx7axbqx572pawvrmb"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:configure-flags
+       `(,(string-append "--with-udev-base-dir=" %output "/lib/udev"))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-mkenums
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ;; For testing.
+       ("dbus" ,dbus)))
+    (propagated-inputs
+     `(("glib" ,glib))) ; required by mm-glib.pc
+    (inputs
+     `(("libgudev" ,libgudev)
+       ("libmbim" ,libmbim)
+       ("libqmi" ,libqmi)
+       ("polkit" ,polkit)))
+    (synopsis "Mobile broadband modems manager")
+    (home-page "http://www.freedesktop.org/wiki/Software/ModemManager/")
+    (description
+     "ModemManager is a DBus-activated daemon which controls mobile
+broadband (2G/3G/4G) devices and connections.  Whether built-in devices, USB
+dongles, bluetooth-paired telephones, or professional RS232/USB devices with
+external power supplies, ModemManager is able to prepare and configure the
+modems and setup connections with them.")
+    (license license:gpl2+)))
+
+(define-public telepathy-logger
+  (package
+    (name "telepathy-logger")
+    (version "0.8.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://telepathy.freedesktop.org/releases/"
+                                  name "/" name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1bjx85k7jyfi5pvl765fzc7q2iz9va51anrc2djv7caksqsdbjlg"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:parallel-tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+          (lambda _
+            (setenv "HOME" (getenv "TMPDIR"))
+            #t)))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-2)
+       ("xsltproc" ,libxslt)))
+    (propagated-inputs
+     ;; telepathy-logger-0.2.pc refers to all these.
+     `(("libxml2" ,libxml2)
+       ("sqlite" ,sqlite)
+       ("telepathy-glib" ,telepathy-glib)))
+    (synopsis "Telepathy logger library")
+    (home-page "http://telepathy.freedesktop.org/")
+    (description
+     "Telepathy logger is a headless observer client that logs information
+received by the Telepathy framework.  It features pluggable backends to log
+different sorts of messages in different formats.")
+    (license license:lgpl2.1+)))
+
+(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"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("xsltproc" ,libxslt)
+       ("python" ,python-2)
+       ("python-dbus" ,python2-dbus)))
+    (propagated-inputs
+     `(("telepathy-glib" ,telepathy-glib)))
+    (home-page "http://telepathy.freedesktop.org/")
+    (synopsis "Telepathy IRC connection manager")
+    (description
+     "Idle is an IRC connection manager for the Telepathy framework.  This
+package enables usage of IRC channels and private messages in Telepathy instant
+messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
+    (license (list license:lgpl2.1 license:lgpl2.1+))))
+
+(define-public telepathy-mission-control
+  (package
+    (name "telepathy-mission-control")
+    (version "5.16.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://telepathy.freedesktop.org/releases/"
+                                  name "/" name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0zcbx69k0d3p2pjh3g7sa3q2zkd5xchxkqsmlfn3fwxaz0pmsmvi"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("dconf" ,dconf)
+       ("gtk-doc" ,gtk-doc)
+       ("libgnome-keyring" ,libgnome-keyring)
+       ("python" ,python-2)
+       ("xsltproc" ,libxslt)))
+    (propagated-inputs
+     `(("telepathy-glib" ,telepathy-glib)))
+    (home-page "https://telepathy.freedesktop.org/wiki/Components/Mission_Control/")
+    (synopsis "Telepathy real-time communication framework management daemon")
+    (description
+     "Telepathy Mission Control 5 is an account manager and channel dispatcher
+for the Telepathy framework, allowing user interfaces and other clients to
+share connections to real-time communication services without conflicting.")
+    (license license:lgpl2.1)))
+
+(define-public colord-gtk
+  (package
+    (name "colord-gtk")
+    (version "0.1.26")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.freedesktop.org/software/colord"
+                                  "/releases/" name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0i9y3bb5apj6a0f8cx36l6mjzs7xc0k7nf0magmf58vy2mzhpl18"))))
+    (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)))
+    (propagated-inputs
+     ;; colord-gtk.pc refers to all these.
+     `(("colord" ,colord)
+       ("gtk+" ,gtk+)))
+    (synopsis "GTK integration for libcolord")
+    (home-page "http://www.freedesktop.org/software/colord/")
+    (description
+     "This is a GTK+ convenience library for interacting with colord.  It is
+useful for both applications which need colour management and applications that
+wish to perform colour calibration.")
+    (license license:lgpl2.1+)))