gnu: Add radare2.
[jackhill/guix/guix.git] / gnu / packages / freedesktop.scm
CommitLineData
0b0e11a9
AE
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
dac354fe 3;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
e76008db 4;;; Copyright © 2015, 2017 Andy Wingo <wingo@pobox.com>
dfb01bae 5;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
366553e4 6;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
177b4255 7;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
93719a66 8;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
bb8b543a 9;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
ac20cd7b 10;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
fa8a585e 11;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
0b0e11a9
AE
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)
366553e4 29 #:use-module ((guix licenses) #:prefix license:)
0b0e11a9
AE
30 #:use-module (guix packages)
31 #:use-module (guix download)
366553e4 32 #:use-module (guix git-download)
dac354fe 33 #:use-module (guix build-system gnu)
e8444b26 34 #:use-module (guix build-system python)
73bb984e
EF
35 #:use-module (gnu packages acl)
36 #:use-module (gnu packages admin)
366553e4 37 #:use-module (gnu packages autotools)
fe4e0b0a 38 #:use-module (gnu packages bash)
73bb984e
EF
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)
366553e4 44 #:use-module (gnu packages gettext)
24e051cb 45 #:use-module (gnu packages gl)
73bb984e
EF
46 #:use-module (gnu packages glib) ;intltool
47 #:use-module (gnu packages gnome)
dfb01bae 48 #:use-module (gnu packages gnuzilla)
366553e4 49 #:use-module (gnu packages gperf)
55ba649d 50 #:use-module (gnu packages graphviz)
e6823279 51 #:use-module (gnu packages gtk)
171ae35c 52 #:use-module (gnu packages libffi)
24e051cb 53 #:use-module (gnu packages libunwind)
dfb01bae 54 #:use-module (gnu packages libusb)
73bb984e
EF
55 #:use-module (gnu packages linux)
56 #:use-module (gnu packages m4)
6976e7d2 57 #:use-module (gnu packages polkit)
73bb984e
EF
58 #:use-module (gnu packages pkg-config)
59 #:use-module (gnu packages python)
fa8a585e 60 #:use-module (gnu packages w3m)
73bb984e
EF
61 #:use-module (gnu packages xml)
62 #:use-module (gnu packages xdisorg)
63 #:use-module (gnu packages xorg))
0b0e11a9
AE
64
65(define-public xdg-utils
66 (package
67 (name "xdg-utils")
fa8a585e 68 (version "1.1.1")
0b0e11a9
AE
69 (source
70 (origin
71 (method url-fetch)
72 (uri (string-append
5cc3096c 73 "https://portland.freedesktop.org/download/xdg-utils-"
fa8a585e 74 version ".tar.gz"))
0b0e11a9
AE
75 (sha256
76 (base32
fa8a585e 77 "09a1pk3ifsndc5qz2kcd1557i137gpgnv3d739pv22vfayi67pdh"))))
0b0e11a9 78 (build-system gnu-build-system)
fa8a585e
MB
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)))
f072e9ad
SB
85 (propagated-inputs
86 `(("xprop" ,xprop) ; for Xfce detecting
b3546174 87 ("xset" ,xset))) ; for xdg-screensaver
0b0e11a9 88 (arguments
fa8a585e
MB
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/")
0b0e11a9
AE
123 (synopsis "Freedesktop.org scripts for desktop integration")
124 (description "The xdg-utils package is a set of simple scripts that
125provide basic desktop integration functions in the framework of the
126freedesktop.org project.")
366553e4 127 (license license:expat)))
dac354fe
SB
128
129(define-public libinput
130 (package
131 (name "libinput")
c476f029 132 (version "1.7.3")
dac354fe
SB
133 (source (origin
134 (method url-fetch)
521b1d88 135 (uri (string-append "https://freedesktop.org/software/libinput/"
dac354fe
SB
136 name "-" version ".tar.xz"))
137 (sha256
138 (base32
c476f029 139 "07fbzxddvhjcch43hdxb24sj7ri96zzpcjalvsicmw0i4wnn2v89"))))
dac354fe
SB
140 (build-system gnu-build-system)
141 (native-inputs
7ca37da8
EF
142 `(("cairo" ,cairo)
143 ("gtk+" ,gtk+)
144 ("pkg-config" ,pkg-config)))
dac354fe
SB
145 (propagated-inputs
146 `(("libudev" ,eudev))) ; required by libinput.pc
147 (inputs
7ca37da8
EF
148 `(("glib" ,glib)
149 ("libevdev" ,libevdev)
521b1d88
AW
150 ("mtdev" ,mtdev)
151 ("libwacom" ,libwacom)))
6aabc87d 152 (home-page "https://www.freedesktop.org/wiki/Software/libinput/")
dac354fe
SB
153 (synopsis "Input devices handling library")
154 (description
155 "Libinput is a library to handle input devices for display servers and
156other applications that need to directly deal with input devices.")
366553e4
RW
157 (license license:x11)))
158
c38fb02e
DC
159(define-public libinput-minimal
160 (package (inherit libinput)
161 (name "libinput-minimal")
7ca37da8
EF
162 (native-inputs
163 `(("pkg-config" ,pkg-config)))
c38fb02e
DC
164 (inputs
165 `(("libevdev" ,libevdev)
166 ("mtdev" ,mtdev)))
167 (arguments
168 `(#:configure-flags
169 '("--disable-libwacom")))))
170
60a5617b
AK
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
201the freedesktop.org XDG Base Directory specification.")
202 (license license:expat)))
203
366553e4 204(define-public elogind
5c91962a
AW
205 (package
206 (name "elogind")
fa4b8bad 207 (version "219.14")
5c91962a
AW
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
fa4b8bad 214 "1jckc4wx199n1q4r4fv43ibjs6nlq91s39w9r78ilk1z383m1hcx"))
5c91962a
AW
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")
c42602b5 230 "/lib/udev/rules.d"))
956ad60c 231 #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")
956ad60c
LC
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"))))))))
5c91962a
AW
241 (native-inputs
242 `(("intltool" ,intltool)
b94a6ca0 243 ("gettext" ,gettext-minimal)
5c91962a
AW
244 ("docbook-xsl" ,docbook-xsl)
245 ("docbook-xml" ,docbook-xml)
246 ("xsltproc" ,libxslt)
247 ("m4" ,m4)
248 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b3546174 249 ("pkg-config" ,pkg-config)
4ed06287
LC
250
251 ;; Use gperf 3.0 to work around
252 ;; <https://github.com/wingo/elogind/issues/8>.
253 ("gperf" ,gperf-3.0)))
5c91962a
AW
254 (inputs
255 `(("linux-pam" ,linux-pam)
256 ("linux-libre-headers" ,linux-libre-headers)
257 ("libcap" ,libcap)
d312a832 258 ("shepherd" ,shepherd) ;for 'halt' and 'reboot', invoked
1d19bc11 259 ;when pressing the power button
5c91962a 260 ("dbus" ,dbus)
95d7d0c5
CM
261 ("eudev" ,eudev)
262 ("acl" ,acl))) ;to add individual users to ACLs on /dev nodes
c42602b5 263 (home-page "https://github.com/wingo/elogind")
5c91962a
AW
264 (synopsis "User, seat, and session management service")
265 (description "Elogind is the systemd project's \"logind\" service,
366553e4
RW
266extracted out as a separate project. Elogind integrates with PAM to provide
267the org.freedesktop.login1 interface over the system bus, allowing other parts
268of a the system to know what users are logged in, and where.")
5c91962a 269 (license license:lgpl2.1+)))
e8444b26 270
fe4e0b0a
CB
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,
306e.g. updating, removing and installing software. Through supporting many
307backends, PackageKit can perform these tasks using the appropriate package
308manager for the current system.")
309 (license license:gpl2+)))
310
e8444b26
RW
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
f3b98f4f 347 ("python-nose" ,python-nose)))
e8444b26
RW
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
e881752c 352Python.")
e8444b26
RW
353 (license license:lgpl2.0)))
354
355(define-public python2-pyxdg
356 (package-with-python2 python-pyxdg))
6178d947
SB
357
358(define-public wayland
359 (package
360 (name "wayland")
20289af3 361 (version "1.13.0")
6178d947
SB
362 (source (origin
363 (method url-fetch)
5cc3096c 364 (uri (string-append "https://wayland.freedesktop.org/releases/"
6178d947
SB
365 name "-" version ".tar.xz"))
366 (sha256
367 (base32
20289af3 368 "0lgywr1m0d79vr4s8aimj8a307nss29hhy68gjpqj7m667055c39"))))
6178d947 369 (build-system gnu-build-system)
9012e118 370 (arguments `(#:parallel-tests? #f))
6178d947
SB
371 (native-inputs
372 `(("doxygen" ,doxygen)
55ba649d 373 ("graphviz" ,graphviz)
6178d947
SB
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
9012e118 383 (home-page "https://wayland.freedesktop.org/")
6178d947
SB
384 (synopsis "Display server protocol")
385 (description
386 "Wayland is a protocol for a compositor to talk to its clients as well as
387a C library implementation of that protocol. The compositor can be a standalone
388display server running on Linux kernel modesetting and evdev input devices, an X
389application, or a wayland client itself. The clients can be traditional
390applications, X servers (rootless or fullscreen) or other display servers.")
391 (license license:x11)))
177b4255 392
eca4c011
DC
393(define-public wayland-protocols
394 (package
395 (name "wayland-protocols")
b231b057 396 (version "1.7")
eca4c011
DC
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
b231b057 404 "07qw166s6bm81zfnhf4lmww6wj0il960fm3vp7n1z3rign9jlpv3"))))
eca4c011
DC
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
24e051cb
DC
415(define-public weston
416 (package
417 (name "weston")
f095109e 418 (version "2.0.0")
24e051cb
DC
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
f095109e 426 "1n35acsknwqfhsni854q5mjq2gnbnfdvinh92rpij67i4yn4dr5l"))))
24e051cb
DC
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"))
b23992af
MB
459 (substitute* '("libweston/launcher-logind.c"
460 "libweston/weston-launch.c")
24e051cb 461 (("#include <systemd/sd-login.h>")
b23992af
MB
462 "#include <elogind/sd-login.h>"))
463 #t))
24e051cb
DC
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
482compositor, and a useful compositor in its own right.
483
484A Wayland compositor allows applications to render to a shared offscreen
485buffer using OpenGL ES. The compositor then culls the hidden parts and
486composes the final output. A Wayland compositor is essentially a
487multiplexer to the KMS/DRM Linux kernel devices.")
488 (license license:expat)))
489
177b4255
DH
490(define-public exempi
491 (package
492 (name "exempi")
941a38b6 493 (version "2.4.2")
177b4255
DH
494 (source (origin
495 (method url-fetch)
496 (uri (string-append
5cc3096c 497 "https://libopenraw.freedesktop.org/download/"
177b4255
DH
498 name "-" version ".tar.bz2"))
499 (sha256
500 (base32
941a38b6 501 "1v665fc7x0yi7x6lzskvd8bd2anf7951svn2vd5384dblmgv43av"))))
177b4255
DH
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
514Platform (XMP), which enables embedding metadata in PDF and image formats.")
515 (license license:bsd-3)))
cfbbff31
SB
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,
537Analysis and Reporting Technology) functionality.")
538 (license license:lgpl2.1+)))
171ae35c
SB
539
540(define-public udisks
541 (package
542 (name "udisks")
988e1dca 543 (version "2.1.8")
171ae35c
SB
544 (source (origin
545 (method url-fetch)
5cc3096c 546 (uri (string-append "https://udisks.freedesktop.org/releases/"
171ae35c
SB
547 name "-" version ".tar.bz2"))
548 (sha256
549 (base32
988e1dca 550 "1nkxhnqh39c9pzvm4zfj50rgv6apqawdx09bv3sfaxrah4a6jhfs"))))
171ae35c
SB
551 (build-system gnu-build-system)
552 (native-inputs
aef5055f
MC
553 `(("docbook-xml" ,docbook-xml-4.3) ; to build the manpages
554 ("docbook-xsl" ,docbook-xsl)
555 ("glib:bin" ,glib "bin") ; for glib-mkenums
171ae35c
SB
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)
5905114a
LC
566 ("polkit" ,polkit)
567 ("util-linux" ,util-linux)))
daa3b04c
LC
568 (outputs '("out"
569 "doc")) ;5 MiB of gtk-doc HTML
171ae35c
SB
570 (arguments
571 `(#:tests? #f ; requiring system message dbus
c0351459 572 #:disallowed-references ("doc") ;enforce separation of "doc"
171ae35c 573 #:configure-flags
aef5055f 574 (list "--enable-man"
171ae35c 575 "--localstatedir=/var"
35263cd8 576 "--enable-fhs-media" ;mount devices in /media, not /run/media
daa3b04c
LC
577 (string-append "--with-html-dir="
578 (assoc-ref %outputs "doc")
579 "/share/doc/udisks/html")
171ae35c 580 (string-append "--with-udevdir=" %output "/lib/udev"))
aef5055f
MC
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)))
171ae35c
SB
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 = .*")
5905114a
LC
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))))))
988e1dca 618 (home-page "https://www.freedesktop.org/wiki/Software/udisks/")
171ae35c
SB
619 (synopsis "Disk manager service")
620 (description
621 "UDisks provides interfaces to enumerate and perform operations on disks
622and storage devices. Any application (including unprivileged ones) can access
623the udisksd(8) daemon via the name org.freedesktop.UDisks2 on the system
624message bus.")
625 ;; The dynamic library are under LGPLv2+, others are GPLv2+.
626 (license (list license:gpl2+ license:lgpl2.0+))))
83a2e492
SB
627
628(define-public accountsservice
629 (package
630 (name "accountsservice")
571ffdeb 631 (version "0.6.43")
83a2e492
SB
632 (source (origin
633 (method url-fetch)
e1c644a0 634 (uri (string-append "https://www.freedesktop.org/software/"
83a2e492
SB
635 name "/" name "-" version ".tar.xz"))
636 (sha256
637 (base32
571ffdeb 638 "1k6n9079001sgcwlkq0bz6mkn4m8y4dwf6hs1qm85swcld5ajfzd"))))
83a2e492
SB
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
e76008db
AW
648 (lambda* (#:key inputs #:allow-other-keys)
649 ;; Don't try to create /var/lib/AccountsService.
83a2e492 650 (substitute* "src/Makefile.in"
571ffdeb 651 (("\\$\\(MKDIR_P\\).*/lib/AccountsService.*") "true"))
e76008db
AW
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"))))
571ffdeb 659 #t)))))
83a2e492
SB
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
e76008db
AW
666 `(("shadow" ,shadow)
667 ("polkit" ,polkit)))
83a2e492
SB
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
672and manipulating user account information and an implementation of these
673interfaces, based on the useradd, usermod and userdel commands.")
674 (license license:gpl3+)))
f3ad1490
SB
675
676(define-public libmbim
677 (package
678 (name "libmbim")
66056126 679 (version "1.12.4")
f3ad1490
SB
680 (source (origin
681 (method url-fetch)
682 (uri (string-append
03422bf8 683 "https://www.freedesktop.org/software/" name "/"
f3ad1490
SB
684 name "-" version ".tar.xz"))
685 (sha256
686 (base32
66056126 687 "0flpgzsqpjgybjkx4smbb4rjxf2w1xgd1v9gmz61rvl89qasznbv"))))
f3ad1490
SB
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")
66056126 698 (home-page "https://www.freedesktop.org/wiki/Software/libmbim/")
f3ad1490
SB
699 (description
700 "Libmbim is a GLib-based library for talking to WWAN modems and devices
701which 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+))))
5302c5ff
SB
706
707(define-public libqmi
708 (package
709 (name "libqmi")
1fb8e074 710 (version "1.14.2")
5302c5ff
SB
711 (source (origin
712 (method url-fetch)
713 (uri (string-append
97a08595 714 "https://www.freedesktop.org/software/" name "/"
5302c5ff
SB
715 name "-" version ".tar.xz"))
716 (sha256
717 (base32
1fb8e074 718 "0h009bzss4bal47nk21lyp4s3mmlcivhhaaj7r9229qvx85bi0v2"))))
5302c5ff
SB
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")
97a08595 727 (home-page "https://www.freedesktop.org/wiki/Software/libqmi/")
5302c5ff
SB
728 (description
729 "Libqmi is a GLib-based library for talking to WWAN modems and devices
730which 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+))))
1509a1dc
SB
735
736(define-public modem-manager
737 (package
738 (name "modem-manager")
473dbe9b 739 (version "1.4.14")
1509a1dc
SB
740 (source (origin
741 (method url-fetch)
742 (uri (string-append
e9f68a64 743 "https://www.freedesktop.org/software/ModemManager/"
1509a1dc
SB
744 "ModemManager-" version ".tar.xz"))
745 (sha256
746 (base32
473dbe9b 747 "18hvffwcncwz14kdzk42jbkh362n0kjv3kgx7axbqx572pawvrmb"))))
1509a1dc
SB
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
771broadband (2G/3G/4G) devices and connections. Whether built-in devices, USB
772dongles, bluetooth-paired telephones, or professional RS232/USB devices with
773external power supplies, ModemManager is able to prepare and configure the
774modems and setup connections with them.")
775 (license license:gpl2+)))
6976e7d2
SB
776
777(define-public telepathy-logger
778 (package
779 (name "telepathy-logger")
780 (version "0.8.2")
781 (source (origin
782 (method url-fetch)
5cc3096c 783 (uri (string-append "https://telepathy.freedesktop.org/releases/"
6976e7d2
SB
784 name "/" name "-" version ".tar.bz2"))
785 (sha256
786 (base32
787 "1bjx85k7jyfi5pvl765fzc7q2iz9va51anrc2djv7caksqsdbjlg"))))
788 (build-system gnu-build-system)
789 (arguments
8758efe0
LF
790 '(#:parallel-tests? #f
791 #:phases
6976e7d2
SB
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
813received by the Telepathy framework. It features pluggable backends to log
814different sorts of messages in different formats.")
815 (license license:lgpl2.1+)))
e6823279 816
bb8b543a
KK
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
841package enables usage of IRC channels and private messages in Telepathy instant
842messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
843 (license (list license:lgpl2.1 license:lgpl2.1+))))
844
261b3da5
KK
845(define-public telepathy-mission-control
846 (package
847 (name "telepathy-mission-control")
ac20cd7b 848 (version "5.16.4")
261b3da5
KK
849 (source (origin
850 (method url-fetch)
851 (uri (string-append "https://telepathy.freedesktop.org/releases/"
ac20cd7b 852 name "/" name "-" version ".tar.gz"))
261b3da5
KK
853 (sha256
854 (base32
ac20cd7b 855 "1jz6wwgsfxixha6ys2hbzbk5faqnj9kh2m5qdlgx5anqgandsscp"))))
261b3da5
KK
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
872for the Telepathy framework, allowing user interfaces and other clients to
873share connections to real-time communication services without conflicting.")
874 (license license:lgpl2.1)))
875
e6823279
SB
876(define-public colord-gtk
877 (package
878 (name "colord-gtk")
879 (version "0.1.26")
880 (source (origin
881 (method url-fetch)
5cc3096c 882 (uri (string-append "https://www.freedesktop.org/software/colord"
e6823279
SB
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
902useful for both applications which need colour management and applications that
903wish to perform colour calibration.")
904 (license license:lgpl2.1+)))
dfb01bae
LC
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
934developers to add support for consumer fingerprint readers to their
935software.")
936 (license license:lgpl2.1+)))
9e3e972d
LC
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)
5c3d6c1d
LC
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))))))
9e3e972d
LC
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
975library to access fingerprint readers, over the D-Bus interprocess
976communication bus. This daemon layer above libfprint solves problems related
977to applications simultaneously competing for fingerprint readers.")
978 (license license:gpl2+)))
324b0040
DM
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
1000desktop entries:
1001
1002desktop-file-validate: validates a desktop file and prints warnings/errors
1003 about desktop entry specification violations.
1004
1005desktop-file-install: installs a desktop file to the applications directory,
1006 optionally munging it a bit in transit.
1007
1008update-desktop-database: updates the database containing a cache of MIME types
1009 handled by desktop files.")
1010 (license license:gpl2+)))