Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / freedesktop.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
4 ;;; Copyright © 2015 Andy Wingo <wingo@pobox.com>
5 ;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
6 ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
7 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
8 ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
9 ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
10 ;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
11 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
12 ;;;
13 ;;; This file is part of GNU Guix.
14 ;;;
15 ;;; GNU Guix is free software; you can redistribute it and/or modify it
16 ;;; under the terms of the GNU General Public License as published by
17 ;;; the Free Software Foundation; either version 3 of the License, or (at
18 ;;; your option) any later version.
19 ;;;
20 ;;; GNU Guix is distributed in the hope that it will be useful, but
21 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 ;;; GNU General Public License for more details.
24 ;;;
25 ;;; You should have received a copy of the GNU General Public License
26 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
28 (define-module (gnu packages freedesktop)
29 #:use-module ((guix licenses) #:prefix license:)
30 #:use-module (guix packages)
31 #:use-module (guix download)
32 #:use-module (guix git-download)
33 #:use-module (guix build-system gnu)
34 #:use-module (guix build-system python)
35 #:use-module (gnu packages acl)
36 #:use-module (gnu packages admin)
37 #:use-module (gnu packages autotools)
38 #:use-module (gnu packages bash)
39 #:use-module (gnu packages boost)
40 #:use-module (gnu packages compression)
41 #:use-module (gnu packages databases)
42 #:use-module (gnu packages docbook)
43 #:use-module (gnu packages documentation)
44 #:use-module (gnu packages gettext)
45 #:use-module (gnu packages gl)
46 #:use-module (gnu packages glib) ;intltool
47 #:use-module (gnu packages gnome)
48 #:use-module (gnu packages gnuzilla)
49 #:use-module (gnu packages gperf)
50 #:use-module (gnu packages graphviz)
51 #:use-module (gnu packages gtk)
52 #:use-module (gnu packages libffi)
53 #:use-module (gnu packages libunwind)
54 #:use-module (gnu packages libusb)
55 #:use-module (gnu packages linux)
56 #:use-module (gnu packages m4)
57 #:use-module (gnu packages polkit)
58 #:use-module (gnu packages pkg-config)
59 #:use-module (gnu packages python)
60 #:use-module (gnu packages w3m)
61 #:use-module (gnu packages xml)
62 #:use-module (gnu packages xdisorg)
63 #:use-module (gnu packages xorg))
64
65 (define-public xdg-utils
66 (package
67 (name "xdg-utils")
68 (version "1.1.1")
69 (source
70 (origin
71 (method url-fetch)
72 (uri (string-append
73 "https://portland.freedesktop.org/download/xdg-utils-"
74 version ".tar.gz"))
75 (sha256
76 (base32
77 "09a1pk3ifsndc5qz2kcd1557i137gpgnv3d739pv22vfayi67pdh"))))
78 (build-system gnu-build-system)
79 (native-inputs
80 `(("docbook-xsl" ,docbook-xsl)
81 ("docbook-xml" ,docbook-xml-4.1.2)
82 ("libxslt" ,libxslt)
83 ("w3m" ,w3m)
84 ("xmlto" ,xmlto)))
85 (propagated-inputs
86 `(("xprop" ,xprop) ; for Xfce detecting
87 ("xset" ,xset))) ; for xdg-screensaver
88 (arguments
89 `(#:tests? #f ; no check target
90 #:phases
91 (modify-phases %standard-phases
92 (add-after 'unpack 'patch-hardcoded-paths
93 (lambda _
94 (substitute* "scripts/xdg-mime.in"
95 (("/usr/bin/file") (which "file")))
96 (substitute* "scripts/xdg-open.in"
97 (("/usr/bin/printf") (which "printf")))
98 #t))
99 (add-before 'build 'locate-catalog-files
100 (lambda* (#:key inputs #:allow-other-keys)
101 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
102 "/xml/dtd/docbook"))
103 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
104 "/xml/xsl/docbook-xsl-"
105 ,(package-version docbook-xsl))))
106 (for-each (lambda (file)
107 (substitute* file
108 (("http://.*/docbookx\\.dtd")
109 (string-append xmldoc "/docbookx.dtd"))))
110 (find-files "scripts/desc" "\\.xml$"))
111 (substitute* "scripts/Makefile"
112 ;; Apparently `xmlto' does not bother to looks up the stylesheets
113 ;; specified in the XML, unlike the above substitition. Instead it
114 ;; uses a hard-coded URL. Work around it here, but if this is
115 ;; common perhaps we should hardcode this path in xmlto itself.
116 (("\\$\\(XMLTO\\) man")
117 (string-append "$(XMLTO) -x " xsldoc
118 "/manpages/docbook.xsl man")))
119 (setenv "STYLESHEET"
120 (string-append xsldoc "/html/docbook.xsl"))
121 #t))))))
122 (home-page "https://www.freedesktop.org/wiki/Software/xdg-utils/")
123 (synopsis "Freedesktop.org scripts for desktop integration")
124 (description "The xdg-utils package is a set of simple scripts that
125 provide basic desktop integration functions in the framework of the
126 freedesktop.org project.")
127 (license license:expat)))
128
129 (define-public libinput
130 (package
131 (name "libinput")
132 (version "1.7.3")
133 (source (origin
134 (method url-fetch)
135 (uri (string-append "https://freedesktop.org/software/libinput/"
136 name "-" version ".tar.xz"))
137 (sha256
138 (base32
139 "07fbzxddvhjcch43hdxb24sj7ri96zzpcjalvsicmw0i4wnn2v89"))))
140 (build-system gnu-build-system)
141 (native-inputs
142 `(("cairo" ,cairo)
143 ("gtk+" ,gtk+)
144 ("pkg-config" ,pkg-config)))
145 (propagated-inputs
146 `(("libudev" ,eudev))) ; required by libinput.pc
147 (inputs
148 `(("glib" ,glib)
149 ("libevdev" ,libevdev)
150 ("mtdev" ,mtdev)
151 ("libwacom" ,libwacom)))
152 (home-page "https://www.freedesktop.org/wiki/Software/libinput/")
153 (synopsis "Input devices handling library")
154 (description
155 "Libinput is a library to handle input devices for display servers and
156 other applications that need to directly deal with input devices.")
157 (license license:x11)))
158
159 (define-public libinput-minimal
160 (package (inherit libinput)
161 (name "libinput-minimal")
162 (native-inputs
163 `(("pkg-config" ,pkg-config)))
164 (inputs
165 `(("libevdev" ,libevdev)
166 ("mtdev" ,mtdev)))
167 (arguments
168 `(#:configure-flags
169 '("--disable-libwacom")))))
170
171 (define-public libxdg-basedir
172 (package
173 (name "libxdg-basedir")
174 (version "1.2.0")
175 (source (origin
176 (method url-fetch)
177 (uri (string-append
178 "https://github.com/devnev/libxdg-basedir/archive/"
179 name "-" version ".tar.gz"))
180 (sha256
181 (base32
182 "0s28c7sfwqimsmb3kn91mx7wi55fs3flhbmynl9k60rrllr00aqw"))))
183 (build-system gnu-build-system)
184 (arguments
185 '(#:phases
186 (modify-phases %standard-phases
187 (add-after 'unpack 'autogen
188 (lambda _
189 ;; Run 'configure' in its own phase, not now.
190 (substitute* "autogen.sh"
191 (("^.*\\./configure.*") ""))
192 (zero? (system* "sh" "autogen.sh")))))))
193 (native-inputs
194 `(("autoconf" ,autoconf)
195 ("automake" ,automake)
196 ("libtool" ,libtool)))
197 (home-page "https://github.com/devnev/libxdg-basedir")
198 (synopsis "Implementation of the XDG Base Directory specification")
199 (description
200 "libxdg-basedir is a C library providing some functions to use with
201 the freedesktop.org XDG Base Directory specification.")
202 (license license:expat)))
203
204 (define-public elogind
205 (package
206 (name "elogind")
207 (version "219.14")
208 (source (origin
209 (method url-fetch)
210 (uri (string-append "https://wingolog.org/pub/" name "/"
211 name "-" version ".tar.xz"))
212 (sha256
213 (base32
214 "1jckc4wx199n1q4r4fv43ibjs6nlq91s39w9r78ilk1z383m1hcx"))
215 (modules '((guix build utils)))
216 (snippet
217 '(begin
218 (use-modules (guix build utils))
219 (substitute* "Makefile.am"
220 ;; Avoid validation against DTD because the DTDs for
221 ;; both doctype 4.2 and 4.5 are needed.
222 (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))))))
223 (build-system gnu-build-system)
224 (arguments
225 `(#:configure-flags
226 (list (string-append "--with-libcap="
227 (assoc-ref %build-inputs "libcap"))
228 (string-append "--with-udevrulesdir="
229 (assoc-ref %outputs "out")
230 "/lib/udev/rules.d"))
231 #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")
232 #:phases (modify-phases %standard-phases
233 (add-before 'build 'fix-service-file
234 (lambda* (#:key outputs #:allow-other-keys)
235 ;; Fix the file name of the 'elogind' binary in the D-Bus
236 ;; '.service' file.
237 (substitute* "src/login/org.freedesktop.login1.service"
238 (("^Exec=.*")
239 (string-append "Exec=" (assoc-ref %outputs "out")
240 "/libexec/elogind/elogind\n"))))))))
241 (native-inputs
242 `(("intltool" ,intltool)
243 ("gettext" ,gettext-minimal)
244 ("docbook-xsl" ,docbook-xsl)
245 ("docbook-xml" ,docbook-xml)
246 ("xsltproc" ,libxslt)
247 ("m4" ,m4)
248 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
249 ("pkg-config" ,pkg-config)
250
251 ;; Use gperf 3.0 to work around
252 ;; <https://github.com/wingo/elogind/issues/8>.
253 ("gperf" ,gperf-3.0)))
254 (inputs
255 `(("linux-pam" ,linux-pam)
256 ("linux-libre-headers" ,linux-libre-headers)
257 ("libcap" ,libcap)
258 ("shepherd" ,shepherd) ;for 'halt' and 'reboot', invoked
259 ;when pressing the power button
260 ("dbus" ,dbus)
261 ("eudev" ,eudev)
262 ("acl" ,acl))) ;to add individual users to ACLs on /dev nodes
263 (home-page "https://github.com/wingo/elogind")
264 (synopsis "User, seat, and session management service")
265 (description "Elogind is the systemd project's \"logind\" service,
266 extracted out as a separate project. Elogind integrates with PAM to provide
267 the org.freedesktop.login1 interface over the system bus, allowing other parts
268 of a the system to know what users are logged in, and where.")
269 (license license:lgpl2.1+)))
270
271 (define-public packagekit
272 (package
273 (name "packagekit")
274 (version "1.1.5")
275 (source (origin
276 (method url-fetch)
277 (uri (string-append
278 "https://www.freedesktop.org/software/"
279 "PackageKit/releases/"
280 "PackageKit-" version ".tar.xz"))
281 (sha256
282 (base32
283 "035pqxgkyki813hyw2frrbpfllq113zfk5qcp9wvsq5lsp74ix2h"))))
284 (build-system gnu-build-system)
285 (arguments
286 `(#:tests? #f
287 #:make-flags (list (string-append "BASH_COMPLETIONS_DIR="
288 %output "/etc/bash_completion.d"))
289 #:configure-flags
290 '("--disable-systemd")))
291 (native-inputs
292 `(("intltool" ,intltool)
293 ("pkg-config" ,pkg-config)
294 ("python" ,python-wrapper)
295 ("glib:bin" ,glib "bin")))
296 (inputs
297 `(("glib" ,glib)
298 ("bash-completion", bash-completion)
299 ("polkit" ,polkit)))
300 (propagated-inputs
301 `(("sqlite" ,sqlite)))
302 (home-page "https://www.freedesktop.org/software/PackageKit/")
303 (synopsis "API for package management, through D-Bus")
304 (description
305 "PackageKit provides a way of performing package management tasks,
306 e.g. updating, removing and installing software. Through supporting many
307 backends, PackageKit can perform these tasks using the appropriate package
308 manager for the current system.")
309 (license license:gpl2+)))
310
311 (define-public python-pyxdg
312 (package
313 (name "python-pyxdg")
314 (version "0.25")
315 (source
316 (origin
317 (method url-fetch)
318 (uri (string-append
319 "https://pypi.python.org/packages/source/p/pyxdg/pyxdg-"
320 version ".tar.gz"))
321 (sha256
322 (base32
323 "179767h8m634ydlm4v8lnz01ba42gckfp684id764zaip7h87s41"))))
324 (build-system python-build-system)
325 (arguments
326 '(#:phases
327 (alist-replace
328 'check
329 (lambda* (#:key inputs #:allow-other-keys)
330 (setenv "XDG_DATA_DIRS"
331 (string-append (assoc-ref inputs "shared-mime-info")
332 "/share/"))
333 (substitute* "test/test-icon.py"
334 (("/usr/share/icons/hicolor/index.theme")
335 (string-append (assoc-ref inputs "hicolor-icon-theme")
336 "/share/icons/hicolor/index.theme")))
337
338 ;; One test fails with:
339 ;; AssertionError: 'x-apple-ios-png' != 'png'
340 (substitute* "test/test-mime.py"
341 (("self.check_mimetype\\(imgpng, 'image', 'png'\\)") "#"))
342 (zero? (system* "nosetests" "-v")))
343 %standard-phases)))
344 (native-inputs
345 `(("shared-mime-info" ,shared-mime-info) ;for tests
346 ("hicolor-icon-theme" ,hicolor-icon-theme) ;for tests
347 ("python-nose" ,python-nose)))
348 (home-page "http://freedesktop.org/wiki/Software/pyxdg")
349 (synopsis "Implementations of freedesktop.org standards in Python")
350 (description
351 "PyXDG is a collection of implementations of freedesktop.org standards in
352 Python.")
353 (license license:lgpl2.0)))
354
355 (define-public python2-pyxdg
356 (package-with-python2 python-pyxdg))
357
358 (define-public wayland
359 (package
360 (name "wayland")
361 (version "1.13.0")
362 (source (origin
363 (method url-fetch)
364 (uri (string-append "https://wayland.freedesktop.org/releases/"
365 name "-" version ".tar.xz"))
366 (sha256
367 (base32
368 "0lgywr1m0d79vr4s8aimj8a307nss29hhy68gjpqj7m667055c39"))))
369 (build-system gnu-build-system)
370 (arguments `(#:parallel-tests? #f))
371 (native-inputs
372 `(("doxygen" ,doxygen)
373 ("graphviz" ,graphviz)
374 ("pkg-config" ,pkg-config)
375 ("xmlto" ,xmlto)
376 ("xsltproc" ,libxslt)))
377 (inputs
378 `(("docbook-xml" ,docbook-xml)
379 ("docbook-xsl" ,docbook-xsl)
380 ("expat" ,expat)
381 ("libffi" ,libffi)
382 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
383 (home-page "https://wayland.freedesktop.org/")
384 (synopsis "Display server protocol")
385 (description
386 "Wayland is a protocol for a compositor to talk to its clients as well as
387 a C library implementation of that protocol. The compositor can be a standalone
388 display server running on Linux kernel modesetting and evdev input devices, an X
389 application, or a wayland client itself. The clients can be traditional
390 applications, X servers (rootless or fullscreen) or other display servers.")
391 (license license:x11)))
392
393 (define-public wayland-protocols
394 (package
395 (name "wayland-protocols")
396 (version "1.9")
397 (source (origin
398 (method url-fetch)
399 (uri (string-append
400 "https://wayland.freedesktop.org/releases/"
401 "wayland-protocols-" version ".tar.xz"))
402 (sha256
403 (base32
404 "0xag2yci0l13brmq2k12vdv0wlnb2j0rxk2cnp170fya63g74sv6"))))
405 (build-system gnu-build-system)
406 (inputs
407 `(("wayland" ,wayland)))
408 (native-inputs
409 `(("pkg-config" ,pkg-config)))
410 (synopsis "Wayland protocols")
411 (description "This package contains XML definitions of the Wayland protocols.")
412 (home-page "https://wayland.freedesktop.org")
413 (license license:expat)))
414
415 (define-public weston
416 (package
417 (name "weston")
418 (version "2.0.0")
419 (source (origin
420 (method url-fetch)
421 (uri (string-append
422 "https://wayland.freedesktop.org/releases/"
423 "weston-" version ".tar.xz"))
424 (sha256
425 (base32
426 "1n35acsknwqfhsni854q5mjq2gnbnfdvinh92rpij67i4yn4dr5l"))))
427 (build-system gnu-build-system)
428 (native-inputs
429 `(("pkg-config" ,pkg-config)
430 ("xorg-server" ,xorg-server)))
431 (inputs
432 `(("cairo" ,cairo-xcb)
433 ("dbus" ,dbus)
434 ("elogind" ,elogind)
435 ("libinput" ,libinput-minimal)
436 ("libunwind" ,libunwind)
437 ("libxcursor" ,libxcursor)
438 ("libxkbcommon" ,libxkbcommon)
439 ("mesa" ,mesa)
440 ("mtdev" ,mtdev)
441 ("linux-pam" ,linux-pam)
442 ("wayland" ,wayland)
443 ("wayland-protocols" ,wayland-protocols)
444 ("xorg-server-xwayland" ,xorg-server-xwayland)))
445 (arguments
446 `(#:configure-flags
447 (list "--disable-setuid-install"
448 "--enable-systemd-login"
449 (string-append "--with-xserver-path="
450 (assoc-ref %build-inputs "xorg-server-xwayland")
451 "/bin/Xwayland"))
452 #:phases
453 (modify-phases %standard-phases
454 (add-before 'configure 'use-elogind
455 (lambda _
456 ;; Use elogind instead of systemd
457 (substitute* "configure"
458 (("libsystemd-login >= 198") "libelogind"))
459 (substitute* '("libweston/launcher-logind.c"
460 "libweston/weston-launch.c")
461 (("#include <systemd/sd-login.h>")
462 "#include <elogind/sd-login.h>"))
463 #t))
464 (add-after 'configure 'patch-confdefs.h
465 (lambda _
466 (system "echo \"#define HAVE_SYSTEMD_LOGIN_209 1\" >> confdefs.h")))
467 (add-before 'check 'setup
468 (lambda _
469 (setenv "HOME" (getcwd))
470 (setenv "XDG_RUNTIME_DIR" (getcwd))
471 #t))
472 (add-before 'check 'start-xorg-server
473 (lambda* (#:key inputs #:allow-other-keys)
474 ;; The test suite requires a running X server.
475 (system (string-append (assoc-ref inputs "xorg-server")
476 "/bin/Xvfb :1 &"))
477 (setenv "DISPLAY" ":1")
478 #t)))))
479 (home-page "https://wayland.freedesktop.org")
480 (synopsis "Reference implementation of a Wayland compositor")
481 (description "Weston is the reference implementation of a Wayland
482 compositor, and a useful compositor in its own right.
483
484 A Wayland compositor allows applications to render to a shared offscreen
485 buffer using OpenGL ES. The compositor then culls the hidden parts and
486 composes the final output. A Wayland compositor is essentially a
487 multiplexer to the KMS/DRM Linux kernel devices.")
488 (license license:expat)))
489
490 (define-public exempi
491 (package
492 (name "exempi")
493 (version "2.4.2")
494 (source (origin
495 (method url-fetch)
496 (uri (string-append
497 "https://libopenraw.freedesktop.org/download/"
498 name "-" version ".tar.bz2"))
499 (sha256
500 (base32
501 "1v665fc7x0yi7x6lzskvd8bd2anf7951svn2vd5384dblmgv43av"))))
502 (build-system gnu-build-system)
503 (arguments
504 `(#:configure-flags (list (string-append "--with-boost="
505 (assoc-ref %build-inputs "boost")))))
506 (native-inputs
507 `(("boost" ,boost))) ; tests
508 (inputs
509 `(("expat" ,expat)
510 ("zlib" ,zlib)))
511 (home-page "https://wiki.freedesktop.org/libopenraw/Exempi")
512 (synopsis "XMP metadata handling library")
513 (description "Exempi is an implementation of the Extensible Metadata
514 Platform (XMP), which enables embedding metadata in PDF and image formats.")
515 (license license:bsd-3)))
516
517 (define-public libatasmart
518 (package
519 (name "libatasmart")
520 (version "0.19")
521 (source (origin
522 (method url-fetch)
523 (uri (string-append "http://0pointer.de/public/"
524 name "-" version ".tar.xz"))
525 (sha256
526 (base32
527 "138gvgdwk6h4ljrjsr09pxk1nrki4b155hqdzyr8mlk3bwsfmw31"))))
528 (build-system gnu-build-system)
529 (native-inputs
530 `(("pkg-config" ,pkg-config)))
531 (inputs
532 `(("udev" ,eudev)))
533 (home-page "http://0pointer.de/blog/projects/being-smart.html")
534 (synopsis "ATA S.M.A.R.T. reading and parsing library")
535 (description
536 "This library supports a subset of the ATA S.M.A.R.T. (Self-Monitoring,
537 Analysis and Reporting Technology) functionality.")
538 (license license:lgpl2.1+)))
539
540 (define-public udisks
541 (package
542 (name "udisks")
543 (version "2.1.8")
544 (source (origin
545 (method url-fetch)
546 (uri (string-append "https://udisks.freedesktop.org/releases/"
547 name "-" version ".tar.bz2"))
548 (sha256
549 (base32
550 "1nkxhnqh39c9pzvm4zfj50rgv6apqawdx09bv3sfaxrah4a6jhfs"))))
551 (build-system gnu-build-system)
552 (native-inputs
553 `(("docbook-xml" ,docbook-xml-4.3) ; to build the manpages
554 ("docbook-xsl" ,docbook-xsl)
555 ("glib:bin" ,glib "bin") ; for glib-mkenums
556 ("gobject-introspection" ,gobject-introspection)
557 ("intltool" ,intltool)
558 ("pkg-config" ,pkg-config)
559 ("xsltproc" ,libxslt)))
560 (propagated-inputs
561 `(("glib" ,glib))) ; required by udisks2.pc
562 (inputs
563 `(("acl" ,acl)
564 ("libatasmart" ,libatasmart)
565 ("libgudev" ,libgudev)
566 ("polkit" ,polkit)
567 ("util-linux" ,util-linux)))
568 (outputs '("out"
569 "doc")) ;5 MiB of gtk-doc HTML
570 (arguments
571 `(#:tests? #f ; requiring system message dbus
572 #:disallowed-references ("doc") ;enforce separation of "doc"
573 #:configure-flags
574 (list "--enable-man"
575 "--localstatedir=/var"
576 "--enable-fhs-media" ;mount devices in /media, not /run/media
577 (string-append "--with-html-dir="
578 (assoc-ref %outputs "doc")
579 "/share/doc/udisks/html")
580 (string-append "--with-udevdir=" %output "/lib/udev"))
581 #:make-flags
582 (let* ((docbook-xsl-name-version ,(string-append
583 (package-name docbook-xsl) "-"
584 (package-version docbook-xsl)))
585 (docbook-xsl-catalog-file (string-append
586 (assoc-ref %build-inputs "docbook-xsl")
587 "/xml/xsl/"
588 docbook-xsl-name-version
589 "/catalog.xml"))
590 (docbook-xml-catalog-file (string-append
591 (assoc-ref %build-inputs "docbook-xml")
592 "/xml/dtd/docbook/catalog.xml")))
593 ;; Reference the catalog files required to build the manpages.
594 (list (string-append "XML_CATALOG_FILES=" docbook-xsl-catalog-file " "
595 docbook-xml-catalog-file)))
596 #:phases
597 (modify-phases %standard-phases
598 (add-before
599 'configure 'fix-girdir
600 (lambda _
601 ;; Install introspection data to its own output.
602 (substitute* "udisks/Makefile.in"
603 (("girdir = .*")
604 "girdir = $(datadir)/gir-1.0\n")
605 (("typelibsdir = .*")
606 "typelibsdir = $(libdir)/girepository-1.0\n"))))
607 (add-after 'install 'set-mount-file-name
608 (lambda* (#:key outputs inputs #:allow-other-keys)
609 ;; Tell 'udisksd' where to find the 'mount' command.
610 (let ((out (assoc-ref outputs "out"))
611 (utils (assoc-ref inputs "util-linux")))
612 (wrap-program (string-append out "/libexec/udisks2/udisksd")
613 `("PATH" ":" prefix
614 (,(string-append utils "/bin") ;for 'mount'
615 "/run/current-system/profile/bin"
616 "/run/current-system/profile/sbin")))
617 #t))))))
618 (home-page "https://www.freedesktop.org/wiki/Software/udisks/")
619 (synopsis "Disk manager service")
620 (description
621 "UDisks provides interfaces to enumerate and perform operations on disks
622 and storage devices. Any application (including unprivileged ones) can access
623 the udisksd(8) daemon via the name org.freedesktop.UDisks2 on the system
624 message bus.")
625 ;; The dynamic library are under LGPLv2+, others are GPLv2+.
626 (license (list license:gpl2+ license:lgpl2.0+))))
627
628 (define-public accountsservice
629 (package
630 (name "accountsservice")
631 (version "0.6.43")
632 (source (origin
633 (method url-fetch)
634 (uri (string-append "https://www.freedesktop.org/software/"
635 name "/" name "-" version ".tar.xz"))
636 (sha256
637 (base32
638 "1k6n9079001sgcwlkq0bz6mkn4m8y4dwf6hs1qm85swcld5ajfzd"))))
639 (build-system gnu-build-system)
640 (arguments
641 '(#:tests? #f ; XXX: tests require DocBook 4.1.2
642 #:configure-flags
643 '("--localstatedir=/var")
644 #:phases
645 (modify-phases %standard-phases
646 (add-before
647 'configure 'pre-configure
648 (lambda _
649 ;; Don't try to create /var/lib/AccoutsService.
650 (substitute* "src/Makefile.in"
651 (("\\$\\(MKDIR_P\\).*/lib/AccountsService.*") "true"))
652 #t)))))
653 (native-inputs
654 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
655 ("gobject-introspection" ,gobject-introspection)
656 ("intltool" ,intltool)
657 ("pkg-config" ,pkg-config)))
658 (inputs
659 `(("polkit" ,polkit)))
660 (home-page "http://www.freedesktop.org/wiki/Software/AccountsService/")
661 (synopsis "D-Bus interface for user account query and manipulation")
662 (description
663 "The AccountService project provides a set of D-Bus interfaces for querying
664 and manipulating user account information and an implementation of these
665 interfaces, based on the useradd, usermod and userdel commands.")
666 (license license:gpl3+)))
667
668 (define-public libmbim
669 (package
670 (name "libmbim")
671 (version "1.12.4")
672 (source (origin
673 (method url-fetch)
674 (uri (string-append
675 "https://www.freedesktop.org/software/" name "/"
676 name "-" version ".tar.xz"))
677 (sha256
678 (base32
679 "0flpgzsqpjgybjkx4smbb4rjxf2w1xgd1v9gmz61rvl89qasznbv"))))
680 (build-system gnu-build-system)
681 (native-inputs
682 `(("glib:bin" ,glib "bin") ; for glib-mkenums
683 ("pkg-config" ,pkg-config)
684 ("python" ,python-wrapper)))
685 (propagated-inputs
686 `(("glib" ,glib))) ; required by mbim-glib.pc
687 (inputs
688 `(("libgudev" ,libgudev)))
689 (synopsis "Library to communicate with MBIM-powered modems")
690 (home-page "https://www.freedesktop.org/wiki/Software/libmbim/")
691 (description
692 "Libmbim is a GLib-based library for talking to WWAN modems and devices
693 which speak the Mobile Interface Broadband Model (MBIM) protocol.")
694 (license
695 ;; The libmbim-glib library is released under the LGPLv2+ license.
696 ;; The mbimcli tool is released under the GPLv2+ license.
697 (list license:lgpl2.0+ license:gpl2+))))
698
699 (define-public libqmi
700 (package
701 (name "libqmi")
702 (version "1.14.2")
703 (source (origin
704 (method url-fetch)
705 (uri (string-append
706 "https://www.freedesktop.org/software/" name "/"
707 name "-" version ".tar.xz"))
708 (sha256
709 (base32
710 "0h009bzss4bal47nk21lyp4s3mmlcivhhaaj7r9229qvx85bi0v2"))))
711 (build-system gnu-build-system)
712 (native-inputs
713 `(("glib:bin" ,glib "bin") ; for glib-mkenums
714 ("pkg-config" ,pkg-config)
715 ("python" ,python-wrapper)))
716 (propagated-inputs
717 `(("glib" ,glib))) ; required by qmi-glib.pc
718 (synopsis "Library to communicate with QMI-powered modems")
719 (home-page "https://www.freedesktop.org/wiki/Software/libqmi/")
720 (description
721 "Libqmi is a GLib-based library for talking to WWAN modems and devices
722 which speak the Qualcomm MSM Interface (QMI) protocol.")
723 (license
724 ;; The libqmi-glib library is released under the LGPLv2+ license.
725 ;; The qmicli tool is released under the GPLv2+ license.
726 (list license:lgpl2.0+ license:gpl2+))))
727
728 (define-public modem-manager
729 (package
730 (name "modem-manager")
731 (version "1.4.14")
732 (source (origin
733 (method url-fetch)
734 (uri (string-append
735 "https://www.freedesktop.org/software/ModemManager/"
736 "ModemManager-" version ".tar.xz"))
737 (sha256
738 (base32
739 "18hvffwcncwz14kdzk42jbkh362n0kjv3kgx7axbqx572pawvrmb"))))
740 (build-system gnu-build-system)
741 (arguments
742 '(#:configure-flags
743 `(,(string-append "--with-udev-base-dir=" %output "/lib/udev"))))
744 (native-inputs
745 `(("glib:bin" ,glib "bin") ; for glib-mkenums
746 ("gobject-introspection" ,gobject-introspection)
747 ("intltool" ,intltool)
748 ("pkg-config" ,pkg-config)
749 ("vala" ,vala)
750 ;; For testing.
751 ("dbus" ,dbus)))
752 (propagated-inputs
753 `(("glib" ,glib))) ; required by mm-glib.pc
754 (inputs
755 `(("libgudev" ,libgudev)
756 ("libmbim" ,libmbim)
757 ("libqmi" ,libqmi)
758 ("polkit" ,polkit)))
759 (synopsis "Mobile broadband modems manager")
760 (home-page "http://www.freedesktop.org/wiki/Software/ModemManager/")
761 (description
762 "ModemManager is a DBus-activated daemon which controls mobile
763 broadband (2G/3G/4G) devices and connections. Whether built-in devices, USB
764 dongles, bluetooth-paired telephones, or professional RS232/USB devices with
765 external power supplies, ModemManager is able to prepare and configure the
766 modems and setup connections with them.")
767 (license license:gpl2+)))
768
769 (define-public telepathy-logger
770 (package
771 (name "telepathy-logger")
772 (version "0.8.2")
773 (source (origin
774 (method url-fetch)
775 (uri (string-append "https://telepathy.freedesktop.org/releases/"
776 name "/" name "-" version ".tar.bz2"))
777 (sha256
778 (base32
779 "1bjx85k7jyfi5pvl765fzc7q2iz9va51anrc2djv7caksqsdbjlg"))))
780 (build-system gnu-build-system)
781 (arguments
782 '(#:parallel-tests? #f
783 #:phases
784 (modify-phases %standard-phases
785 (add-before 'check 'pre-check
786 (lambda _
787 (setenv "HOME" (getenv "TMPDIR"))
788 #t)))))
789 (native-inputs
790 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
791 ("gobject-introspection" ,gobject-introspection)
792 ("intltool" ,intltool)
793 ("pkg-config" ,pkg-config)
794 ("python" ,python-2)
795 ("xsltproc" ,libxslt)))
796 (propagated-inputs
797 ;; telepathy-logger-0.2.pc refers to all these.
798 `(("libxml2" ,libxml2)
799 ("sqlite" ,sqlite)
800 ("telepathy-glib" ,telepathy-glib)))
801 (synopsis "Telepathy logger library")
802 (home-page "http://telepathy.freedesktop.org/")
803 (description
804 "Telepathy logger is a headless observer client that logs information
805 received by the Telepathy framework. It features pluggable backends to log
806 different sorts of messages in different formats.")
807 (license license:lgpl2.1+)))
808
809 (define-public telepathy-idle
810 (package
811 (name "telepathy-idle")
812 (version "0.2.0")
813 (source (origin
814 (method url-fetch)
815 (uri (string-append "https://telepathy.freedesktop.org/releases/"
816 name "/" name "-" version ".tar.bz2"))
817 (sha256
818 (base32
819 "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh"))))
820 (build-system gnu-build-system)
821 (native-inputs
822 `(("pkg-config" ,pkg-config)))
823 (inputs
824 `(("xsltproc" ,libxslt)
825 ("python" ,python-2)
826 ("python-dbus" ,python2-dbus)))
827 (propagated-inputs
828 `(("telepathy-glib" ,telepathy-glib)))
829 (home-page "http://telepathy.freedesktop.org/")
830 (synopsis "Telepathy IRC connection manager")
831 (description
832 "Idle is an IRC connection manager for the Telepathy framework. This
833 package enables usage of IRC channels and private messages in Telepathy instant
834 messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
835 (license (list license:lgpl2.1 license:lgpl2.1+))))
836
837 (define-public telepathy-mission-control
838 (package
839 (name "telepathy-mission-control")
840 (version "5.16.4")
841 (source (origin
842 (method url-fetch)
843 (uri (string-append "https://telepathy.freedesktop.org/releases/"
844 name "/" name "-" version ".tar.gz"))
845 (sha256
846 (base32
847 "1jz6wwgsfxixha6ys2hbzbk5faqnj9kh2m5qdlgx5anqgandsscp"))))
848 (build-system gnu-build-system)
849 (native-inputs
850 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
851 ("pkg-config" ,pkg-config)))
852 (inputs
853 `(("dconf" ,dconf)
854 ("gtk-doc" ,gtk-doc)
855 ("libgnome-keyring" ,libgnome-keyring)
856 ("python" ,python-2)
857 ("xsltproc" ,libxslt)))
858 (propagated-inputs
859 `(("telepathy-glib" ,telepathy-glib)))
860 (home-page "https://telepathy.freedesktop.org/wiki/Components/Mission_Control/")
861 (synopsis "Telepathy real-time communication framework management daemon")
862 (description
863 "Telepathy Mission Control 5 is an account manager and channel dispatcher
864 for the Telepathy framework, allowing user interfaces and other clients to
865 share connections to real-time communication services without conflicting.")
866 (license license:lgpl2.1)))
867
868 (define-public colord-gtk
869 (package
870 (name "colord-gtk")
871 (version "0.1.26")
872 (source (origin
873 (method url-fetch)
874 (uri (string-append "https://www.freedesktop.org/software/colord"
875 "/releases/" name "-" version ".tar.xz"))
876 (sha256
877 (base32
878 "0i9y3bb5apj6a0f8cx36l6mjzs7xc0k7nf0magmf58vy2mzhpl18"))))
879 (build-system gnu-build-system)
880 (arguments '(#:tests? #f)) ; require the colord system service
881 (native-inputs
882 `(("gobject-introspection" ,gobject-introspection)
883 ("intltool" ,intltool)
884 ("pkg-config" ,pkg-config)
885 ("vala" ,vala)))
886 (propagated-inputs
887 ;; colord-gtk.pc refers to all these.
888 `(("colord" ,colord)
889 ("gtk+" ,gtk+)))
890 (synopsis "GTK integration for libcolord")
891 (home-page "http://www.freedesktop.org/software/colord/")
892 (description
893 "This is a GTK+ convenience library for interacting with colord. It is
894 useful for both applications which need colour management and applications that
895 wish to perform colour calibration.")
896 (license license:lgpl2.1+)))
897
898 (define-public libfprint
899 (package
900 (name "libfprint")
901 (version "0.6.0")
902 (source (origin
903 (method url-fetch)
904 (uri (string-append "https://people.freedesktop.org/~hadess/"
905 name "-" version ".tar.xz"))
906 (sha256
907 (base32
908 "1giwh2z63mn45galsjb59rhyrvgwcy01hvvp4g01iaa2snvzr0r5"))))
909 (build-system gnu-build-system)
910 (arguments
911 '(#:configure-flags (list (string-append "--with-udev-rules-dir="
912 (assoc-ref %outputs "out")
913 "/lib/udev/rules.d"))))
914 (native-inputs
915 `(("pkg-config" ,pkg-config)))
916 (inputs
917 `(("libusb" ,libusb)
918 ("nss" ,nss)
919 ("glib" ,glib)
920 ("eudev" ,eudev)
921 ("pixman" ,pixman)))
922 (home-page "https://www.freedesktop.org/wiki/Software/fprint/libfprint/")
923 (synopsis "Library to access fingerprint readers")
924 (description
925 "libfprint is a library designed to make it easy for application
926 developers to add support for consumer fingerprint readers to their
927 software.")
928 (license license:lgpl2.1+)))
929
930 (define-public fprintd
931 (package
932 (name "fprintd")
933 (version "0.7.0")
934 (source (origin
935 (method url-fetch)
936 (uri (string-append
937 "https://people.freedesktop.org/~hadess/fprintd-"
938 version ".tar.xz"))
939 (sha256
940 (base32
941 "05915i0bv7q62fqrs5diqwr8dz3pwqa1c1ivcgggkjyw0xk4ldp5"))))
942 (build-system gnu-build-system)
943 (arguments
944 '(#:phases (modify-phases %standard-phases
945 (add-before 'build 'set-sysconfdir
946 (lambda* (#:key outputs #:allow-other-keys)
947 ;; Work around a bug whereby the 'SYSCONFDIR' macro
948 ;; expands literally to '${prefix}/etc'.
949 (let ((out (assoc-ref outputs "out")))
950 (substitute* "src/main.c"
951 (("SYSCONFDIR, \"fprintd.conf\"")
952 (string-append "\"" out "/etc\", "
953 "\"fprintd.conf\"")))
954 #t))))))
955 (native-inputs
956 `(("pkg-config" ,pkg-config)
957 ("intltool" ,intltool)))
958 (inputs
959 `(("libfprint" ,libfprint)
960 ("dbus-glib" ,dbus-glib)
961 ("polkit" ,polkit)
962 ("linux-pam" ,linux-pam))) ;for pam_fprintd
963 (home-page "https://www.freedesktop.org/wiki/Software/fprint/fprintd/")
964 (synopsis "D-Bus daemon that exposes fingerprint reader functionality")
965 (description
966 "fprintd is a D-Bus daemon that offers functionality of libfprint, a
967 library to access fingerprint readers, over the D-Bus interprocess
968 communication bus. This daemon layer above libfprint solves problems related
969 to applications simultaneously competing for fingerprint readers.")
970 (license license:gpl2+)))
971
972 (define-public desktop-file-utils
973 (package
974 (name "desktop-file-utils")
975 (version "0.23")
976 (source (origin
977 (method url-fetch)
978 (uri (string-append "https://www.freedesktop.org/software/" name
979 "/releases/" name "-" version ".tar.xz"))
980 (sha256
981 (base32
982 "119kj2w0rrxkhg4f9cf5waa55jz1hj8933vh47vcjipcplql02bc"))))
983 (build-system gnu-build-system)
984 (native-inputs
985 `(("pkg-config" ,pkg-config)))
986 (inputs
987 `(("glib" ,glib)))
988 (home-page "http://www.freedesktop.org/wiki/Software/desktop-file-utils/")
989 (synopsis "Utilities for working with desktop entries")
990 (description
991 "This package contains a few command line utilities for working with
992 desktop entries:
993
994 desktop-file-validate: validates a desktop file and prints warnings/errors
995 about desktop entry specification violations.
996
997 desktop-file-install: installs a desktop file to the applications directory,
998 optionally munging it a bit in transit.
999
1000 update-desktop-database: updates the database containing a cache of MIME types
1001 handled by desktop files.")
1002 (license license:gpl2+)))