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