Update e-mail for Kei Kebreau.
[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, 2017 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 <kkebreau@posteo.net>
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* (#:key inputs #:allow-other-keys)
649 ;; Don't try to create /var/lib/AccountsService.
650 (substitute* "src/Makefile.in"
651 (("\\$\\(MKDIR_P\\).*/lib/AccountsService.*") "true"))
652 (let ((shadow (assoc-ref inputs "shadow")))
653 (substitute* '("src/user.c" "src/daemon.c")
654 (("/usr/sbin/usermod") (string-append shadow "/sbin/usermod"))
655 (("/usr/sbin/useradd") (string-append shadow "/sbin/useradd"))
656 (("/usr/sbin/userdel") (string-append shadow "/sbin/userdel"))
657 (("/usr/bin/passwd") (string-append shadow "/bin/passwd"))
658 (("/usr/bin/chage") (string-append shadow "/bin/chage"))))
659 #t)))))
660 (native-inputs
661 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
662 ("gobject-introspection" ,gobject-introspection)
663 ("intltool" ,intltool)
664 ("pkg-config" ,pkg-config)))
665 (inputs
666 `(("shadow" ,shadow)
667 ("polkit" ,polkit)))
668 (home-page "http://www.freedesktop.org/wiki/Software/AccountsService/")
669 (synopsis "D-Bus interface for user account query and manipulation")
670 (description
671 "The AccountService project provides a set of D-Bus interfaces for querying
672 and manipulating user account information and an implementation of these
673 interfaces, based on the useradd, usermod and userdel commands.")
674 (license license:gpl3+)))
675
676 (define-public libmbim
677 (package
678 (name "libmbim")
679 (version "1.12.4")
680 (source (origin
681 (method url-fetch)
682 (uri (string-append
683 "https://www.freedesktop.org/software/" name "/"
684 name "-" version ".tar.xz"))
685 (sha256
686 (base32
687 "0flpgzsqpjgybjkx4smbb4rjxf2w1xgd1v9gmz61rvl89qasznbv"))))
688 (build-system gnu-build-system)
689 (native-inputs
690 `(("glib:bin" ,glib "bin") ; for glib-mkenums
691 ("pkg-config" ,pkg-config)
692 ("python" ,python-wrapper)))
693 (propagated-inputs
694 `(("glib" ,glib))) ; required by mbim-glib.pc
695 (inputs
696 `(("libgudev" ,libgudev)))
697 (synopsis "Library to communicate with MBIM-powered modems")
698 (home-page "https://www.freedesktop.org/wiki/Software/libmbim/")
699 (description
700 "Libmbim is a GLib-based library for talking to WWAN modems and devices
701 which speak the Mobile Interface Broadband Model (MBIM) protocol.")
702 (license
703 ;; The libmbim-glib library is released under the LGPLv2+ license.
704 ;; The mbimcli tool is released under the GPLv2+ license.
705 (list license:lgpl2.0+ license:gpl2+))))
706
707 (define-public libqmi
708 (package
709 (name "libqmi")
710 (version "1.14.2")
711 (source (origin
712 (method url-fetch)
713 (uri (string-append
714 "https://www.freedesktop.org/software/" name "/"
715 name "-" version ".tar.xz"))
716 (sha256
717 (base32
718 "0h009bzss4bal47nk21lyp4s3mmlcivhhaaj7r9229qvx85bi0v2"))))
719 (build-system gnu-build-system)
720 (native-inputs
721 `(("glib:bin" ,glib "bin") ; for glib-mkenums
722 ("pkg-config" ,pkg-config)
723 ("python" ,python-wrapper)))
724 (propagated-inputs
725 `(("glib" ,glib))) ; required by qmi-glib.pc
726 (synopsis "Library to communicate with QMI-powered modems")
727 (home-page "https://www.freedesktop.org/wiki/Software/libqmi/")
728 (description
729 "Libqmi is a GLib-based library for talking to WWAN modems and devices
730 which speak the Qualcomm MSM Interface (QMI) protocol.")
731 (license
732 ;; The libqmi-glib library is released under the LGPLv2+ license.
733 ;; The qmicli tool is released under the GPLv2+ license.
734 (list license:lgpl2.0+ license:gpl2+))))
735
736 (define-public modem-manager
737 (package
738 (name "modem-manager")
739 (version "1.4.14")
740 (source (origin
741 (method url-fetch)
742 (uri (string-append
743 "https://www.freedesktop.org/software/ModemManager/"
744 "ModemManager-" version ".tar.xz"))
745 (sha256
746 (base32
747 "18hvffwcncwz14kdzk42jbkh362n0kjv3kgx7axbqx572pawvrmb"))))
748 (build-system gnu-build-system)
749 (arguments
750 '(#:configure-flags
751 `(,(string-append "--with-udev-base-dir=" %output "/lib/udev"))))
752 (native-inputs
753 `(("glib:bin" ,glib "bin") ; for glib-mkenums
754 ("gobject-introspection" ,gobject-introspection)
755 ("intltool" ,intltool)
756 ("pkg-config" ,pkg-config)
757 ("vala" ,vala)
758 ;; For testing.
759 ("dbus" ,dbus)))
760 (propagated-inputs
761 `(("glib" ,glib))) ; required by mm-glib.pc
762 (inputs
763 `(("libgudev" ,libgudev)
764 ("libmbim" ,libmbim)
765 ("libqmi" ,libqmi)
766 ("polkit" ,polkit)))
767 (synopsis "Mobile broadband modems manager")
768 (home-page "http://www.freedesktop.org/wiki/Software/ModemManager/")
769 (description
770 "ModemManager is a DBus-activated daemon which controls mobile
771 broadband (2G/3G/4G) devices and connections. Whether built-in devices, USB
772 dongles, bluetooth-paired telephones, or professional RS232/USB devices with
773 external power supplies, ModemManager is able to prepare and configure the
774 modems and setup connections with them.")
775 (license license:gpl2+)))
776
777 (define-public telepathy-logger
778 (package
779 (name "telepathy-logger")
780 (version "0.8.2")
781 (source (origin
782 (method url-fetch)
783 (uri (string-append "https://telepathy.freedesktop.org/releases/"
784 name "/" name "-" version ".tar.bz2"))
785 (sha256
786 (base32
787 "1bjx85k7jyfi5pvl765fzc7q2iz9va51anrc2djv7caksqsdbjlg"))))
788 (build-system gnu-build-system)
789 (arguments
790 '(#:parallel-tests? #f
791 #:phases
792 (modify-phases %standard-phases
793 (add-before 'check 'pre-check
794 (lambda _
795 (setenv "HOME" (getenv "TMPDIR"))
796 #t)))))
797 (native-inputs
798 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
799 ("gobject-introspection" ,gobject-introspection)
800 ("intltool" ,intltool)
801 ("pkg-config" ,pkg-config)
802 ("python" ,python-2)
803 ("xsltproc" ,libxslt)))
804 (propagated-inputs
805 ;; telepathy-logger-0.2.pc refers to all these.
806 `(("libxml2" ,libxml2)
807 ("sqlite" ,sqlite)
808 ("telepathy-glib" ,telepathy-glib)))
809 (synopsis "Telepathy logger library")
810 (home-page "http://telepathy.freedesktop.org/")
811 (description
812 "Telepathy logger is a headless observer client that logs information
813 received by the Telepathy framework. It features pluggable backends to log
814 different sorts of messages in different formats.")
815 (license license:lgpl2.1+)))
816
817 (define-public telepathy-idle
818 (package
819 (name "telepathy-idle")
820 (version "0.2.0")
821 (source (origin
822 (method url-fetch)
823 (uri (string-append "https://telepathy.freedesktop.org/releases/"
824 name "/" name "-" version ".tar.bz2"))
825 (sha256
826 (base32
827 "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh"))))
828 (build-system gnu-build-system)
829 (native-inputs
830 `(("pkg-config" ,pkg-config)))
831 (inputs
832 `(("xsltproc" ,libxslt)
833 ("python" ,python-2)
834 ("python-dbus" ,python2-dbus)))
835 (propagated-inputs
836 `(("telepathy-glib" ,telepathy-glib)))
837 (home-page "http://telepathy.freedesktop.org/")
838 (synopsis "Telepathy IRC connection manager")
839 (description
840 "Idle is an IRC connection manager for the Telepathy framework. This
841 package enables usage of IRC channels and private messages in Telepathy instant
842 messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
843 (license (list license:lgpl2.1 license:lgpl2.1+))))
844
845 (define-public telepathy-mission-control
846 (package
847 (name "telepathy-mission-control")
848 (version "5.16.4")
849 (source (origin
850 (method url-fetch)
851 (uri (string-append "https://telepathy.freedesktop.org/releases/"
852 name "/" name "-" version ".tar.gz"))
853 (sha256
854 (base32
855 "1jz6wwgsfxixha6ys2hbzbk5faqnj9kh2m5qdlgx5anqgandsscp"))))
856 (build-system gnu-build-system)
857 (native-inputs
858 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
859 ("pkg-config" ,pkg-config)))
860 (inputs
861 `(("dconf" ,dconf)
862 ("gtk-doc" ,gtk-doc)
863 ("libgnome-keyring" ,libgnome-keyring)
864 ("python" ,python-2)
865 ("xsltproc" ,libxslt)))
866 (propagated-inputs
867 `(("telepathy-glib" ,telepathy-glib)))
868 (home-page "https://telepathy.freedesktop.org/wiki/Components/Mission_Control/")
869 (synopsis "Telepathy real-time communication framework management daemon")
870 (description
871 "Telepathy Mission Control 5 is an account manager and channel dispatcher
872 for the Telepathy framework, allowing user interfaces and other clients to
873 share connections to real-time communication services without conflicting.")
874 (license license:lgpl2.1)))
875
876 (define-public colord-gtk
877 (package
878 (name "colord-gtk")
879 (version "0.1.26")
880 (source (origin
881 (method url-fetch)
882 (uri (string-append "https://www.freedesktop.org/software/colord"
883 "/releases/" name "-" version ".tar.xz"))
884 (sha256
885 (base32
886 "0i9y3bb5apj6a0f8cx36l6mjzs7xc0k7nf0magmf58vy2mzhpl18"))))
887 (build-system gnu-build-system)
888 (arguments '(#:tests? #f)) ; require the colord system service
889 (native-inputs
890 `(("gobject-introspection" ,gobject-introspection)
891 ("intltool" ,intltool)
892 ("pkg-config" ,pkg-config)
893 ("vala" ,vala)))
894 (propagated-inputs
895 ;; colord-gtk.pc refers to all these.
896 `(("colord" ,colord)
897 ("gtk+" ,gtk+)))
898 (synopsis "GTK integration for libcolord")
899 (home-page "http://www.freedesktop.org/software/colord/")
900 (description
901 "This is a GTK+ convenience library for interacting with colord. It is
902 useful for both applications which need colour management and applications that
903 wish to perform colour calibration.")
904 (license license:lgpl2.1+)))
905
906 (define-public libfprint
907 (package
908 (name "libfprint")
909 (version "0.6.0")
910 (source (origin
911 (method url-fetch)
912 (uri (string-append "https://people.freedesktop.org/~hadess/"
913 name "-" version ".tar.xz"))
914 (sha256
915 (base32
916 "1giwh2z63mn45galsjb59rhyrvgwcy01hvvp4g01iaa2snvzr0r5"))))
917 (build-system gnu-build-system)
918 (arguments
919 '(#:configure-flags (list (string-append "--with-udev-rules-dir="
920 (assoc-ref %outputs "out")
921 "/lib/udev/rules.d"))))
922 (native-inputs
923 `(("pkg-config" ,pkg-config)))
924 (inputs
925 `(("libusb" ,libusb)
926 ("nss" ,nss)
927 ("glib" ,glib)
928 ("eudev" ,eudev)
929 ("pixman" ,pixman)))
930 (home-page "https://www.freedesktop.org/wiki/Software/fprint/libfprint/")
931 (synopsis "Library to access fingerprint readers")
932 (description
933 "libfprint is a library designed to make it easy for application
934 developers to add support for consumer fingerprint readers to their
935 software.")
936 (license license:lgpl2.1+)))
937
938 (define-public fprintd
939 (package
940 (name "fprintd")
941 (version "0.7.0")
942 (source (origin
943 (method url-fetch)
944 (uri (string-append
945 "https://people.freedesktop.org/~hadess/fprintd-"
946 version ".tar.xz"))
947 (sha256
948 (base32
949 "05915i0bv7q62fqrs5diqwr8dz3pwqa1c1ivcgggkjyw0xk4ldp5"))))
950 (build-system gnu-build-system)
951 (arguments
952 '(#:phases (modify-phases %standard-phases
953 (add-before 'build 'set-sysconfdir
954 (lambda* (#:key outputs #:allow-other-keys)
955 ;; Work around a bug whereby the 'SYSCONFDIR' macro
956 ;; expands literally to '${prefix}/etc'.
957 (let ((out (assoc-ref outputs "out")))
958 (substitute* "src/main.c"
959 (("SYSCONFDIR, \"fprintd.conf\"")
960 (string-append "\"" out "/etc\", "
961 "\"fprintd.conf\"")))
962 #t))))))
963 (native-inputs
964 `(("pkg-config" ,pkg-config)
965 ("intltool" ,intltool)))
966 (inputs
967 `(("libfprint" ,libfprint)
968 ("dbus-glib" ,dbus-glib)
969 ("polkit" ,polkit)
970 ("linux-pam" ,linux-pam))) ;for pam_fprintd
971 (home-page "https://www.freedesktop.org/wiki/Software/fprint/fprintd/")
972 (synopsis "D-Bus daemon that exposes fingerprint reader functionality")
973 (description
974 "fprintd is a D-Bus daemon that offers functionality of libfprint, a
975 library to access fingerprint readers, over the D-Bus interprocess
976 communication bus. This daemon layer above libfprint solves problems related
977 to applications simultaneously competing for fingerprint readers.")
978 (license license:gpl2+)))
979
980 (define-public desktop-file-utils
981 (package
982 (name "desktop-file-utils")
983 (version "0.23")
984 (source (origin
985 (method url-fetch)
986 (uri (string-append "https://www.freedesktop.org/software/" name
987 "/releases/" name "-" version ".tar.xz"))
988 (sha256
989 (base32
990 "119kj2w0rrxkhg4f9cf5waa55jz1hj8933vh47vcjipcplql02bc"))))
991 (build-system gnu-build-system)
992 (native-inputs
993 `(("pkg-config" ,pkg-config)))
994 (inputs
995 `(("glib" ,glib)))
996 (home-page "http://www.freedesktop.org/wiki/Software/desktop-file-utils/")
997 (synopsis "Utilities for working with desktop entries")
998 (description
999 "This package contains a few command line utilities for working with
1000 desktop entries:
1001
1002 desktop-file-validate: validates a desktop file and prints warnings/errors
1003 about desktop entry specification violations.
1004
1005 desktop-file-install: installs a desktop file to the applications directory,
1006 optionally munging it a bit in transit.
1007
1008 update-desktop-database: updates the database containing a cache of MIME types
1009 handled by desktop files.")
1010 (license license:gpl2+)))
1011
1012 (define-public xdg-user-dirs
1013 (package
1014 (name "xdg-user-dirs")
1015 (version "0.16")
1016 (source (origin
1017 (method url-fetch)
1018 (uri (string-append "http://user-dirs.freedesktop.org/releases/"
1019 name "-" version ".tar.gz"))
1020 (sha256
1021 (base32 "1rp3c94hxjlfsryvwajklynfnrcvxplhwnjqc7395l89i0nb83vp"))))
1022 (build-system gnu-build-system)
1023 (native-inputs
1024 `(("gettext" ,gettext-minimal)
1025 ("docbook-xsl" ,docbook-xsl)
1026 ("docbook-xml" ,docbook-xml-4.3)
1027 ("xsltproc" ,libxslt)))
1028 (arguments
1029 `(#:phases
1030 (modify-phases %standard-phases
1031 (add-before 'build 'locate-catalog-files
1032 (lambda* (#:key inputs #:allow-other-keys)
1033 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1034 "/xml/dtd/docbook"))
1035 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
1036 "/xml/xsl/docbook-xsl-"
1037 ,(package-version docbook-xsl))))
1038 (for-each (lambda (file)
1039 (substitute* file
1040 (("http://.*/docbookx\\.dtd")
1041 (string-append xmldoc "/docbookx.dtd"))))
1042 (find-files "man" "\\.xml$"))
1043 (substitute* "man/Makefile"
1044 (("http://.*/docbook\\.xsl")
1045 (string-append xsldoc "/manpages/docbook.xsl")))
1046 #t))))))
1047 (home-page "https://www.freedesktop.org/wiki/Software/xdg-user-dirs/")
1048 (synopsis "Tool to help manage \"well known\" user directories")
1049 (description "xdg-user-dirs is a tool to help manage \"well known\" user
1050 directories, such as the desktop folder or the music folder. It also handles
1051 localization (i.e. translation) of the file names. Designed to be
1052 automatically run when a user logs in, xdg-user-dirs can also be run
1053 manually by a user.")
1054 (license license:gpl2)))