gnu: mbedtls-apache: Update to 2.16.5.
[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>
aff0cce9 5;;; Copyright © 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
15dc8ed5 6;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
177b4255 7;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
959a7d73 8;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
3c8ba11a 9;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
d4040f6e 10;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
1f2e0601 11;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
a6037072 12;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
dcfa0acd 13;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
239d3e9c 14;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
4715f92e 15;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
4163f246 16;;; Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
748ca12f 17;;; Copyright © 2019 Reza Alizadeh Majd <r.majd@pantherx.org>
dc4fae11 18;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
2e4bb893 19;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
c9aadd07 20;;; Copyright © 2020 Rene Saavedra <pacoon@protonmail.com>
0b0e11a9
AE
21;;;
22;;; This file is part of GNU Guix.
23;;;
24;;; GNU Guix is free software; you can redistribute it and/or modify it
25;;; under the terms of the GNU General Public License as published by
26;;; the Free Software Foundation; either version 3 of the License, or (at
27;;; your option) any later version.
28;;;
29;;; GNU Guix is distributed in the hope that it will be useful, but
30;;; WITHOUT ANY WARRANTY; without even the implied warranty of
31;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32;;; GNU General Public License for more details.
33;;;
34;;; You should have received a copy of the GNU General Public License
35;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
36
37(define-module (gnu packages freedesktop)
366553e4 38 #:use-module ((guix licenses) #:prefix license:)
285c091e 39 #:use-module (guix utils)
0b0e11a9
AE
40 #:use-module (guix packages)
41 #:use-module (guix download)
366553e4 42 #:use-module (guix git-download)
1f2e0601 43 #:use-module (guix build-system cmake)
dac354fe 44 #:use-module (guix build-system gnu)
285c091e 45 #:use-module (guix build-system meson)
b32596ec 46 #:use-module (guix build-system perl)
e8444b26 47 #:use-module (guix build-system python)
d4040f6e 48 #:use-module (gnu packages)
73bb984e
EF
49 #:use-module (gnu packages acl)
50 #:use-module (gnu packages admin)
366553e4 51 #:use-module (gnu packages autotools)
2e4bb893 52 #:use-module (gnu packages base)
fe4e0b0a 53 #:use-module (gnu packages bash)
73bb984e 54 #:use-module (gnu packages boost)
ac257f12 55 #:use-module (gnu packages check)
73bb984e 56 #:use-module (gnu packages compression)
03800de1 57 #:use-module (gnu packages cryptsetup)
03800de1 58 #:use-module (gnu packages disk)
73bb984e
EF
59 #:use-module (gnu packages docbook)
60 #:use-module (gnu packages documentation)
2e4bb893 61 #:use-module (gnu packages gawk)
366553e4 62 #:use-module (gnu packages gettext)
23635b2e 63 #:use-module (gnu packages ghostscript)
24e051cb 64 #:use-module (gnu packages gl)
73bb984e
EF
65 #:use-module (gnu packages glib) ;intltool
66 #:use-module (gnu packages gnome)
366553e4 67 #:use-module (gnu packages gperf)
55ba649d 68 #:use-module (gnu packages graphviz)
e6823279 69 #:use-module (gnu packages gtk)
23635b2e 70 #:use-module (gnu packages image)
171ae35c 71 #:use-module (gnu packages libffi)
24e051cb 72 #:use-module (gnu packages libunwind)
dfb01bae 73 #:use-module (gnu packages libusb)
73bb984e
EF
74 #:use-module (gnu packages linux)
75 #:use-module (gnu packages m4)
aff0cce9 76 #:use-module (gnu packages nss)
825cebdb
BT
77 #:use-module (gnu packages perl)
78 #:use-module (gnu packages perl-check)
73bb984e 79 #:use-module (gnu packages pkg-config)
5d46c8b4 80 #:use-module (gnu packages polkit)
73bb984e 81 #:use-module (gnu packages python)
d29d04c9 82 #:use-module (gnu packages python-crypto)
44d10b1f 83 #:use-module (gnu packages python-xyz)
cd0322a3 84 #:use-module (gnu packages sqlite)
285c091e 85 #:use-module (gnu packages valgrind)
23635b2e 86 #:use-module (gnu packages video)
fa8a585e 87 #:use-module (gnu packages w3m)
825cebdb 88 #:use-module (gnu packages web)
73bb984e 89 #:use-module (gnu packages xdisorg)
5d46c8b4 90 #:use-module (gnu packages xml)
285c091e
MB
91 #:use-module (gnu packages xorg)
92 #:use-module (srfi srfi-1))
0b0e11a9
AE
93
94(define-public xdg-utils
95 (package
96 (name "xdg-utils")
4d0f463d 97 (version "1.1.3")
0b0e11a9
AE
98 (source
99 (origin
100 (method url-fetch)
101 (uri (string-append
5cc3096c 102 "https://portland.freedesktop.org/download/xdg-utils-"
fa8a585e 103 version ".tar.gz"))
0b0e11a9
AE
104 (sha256
105 (base32
4d0f463d 106 "1nai806smz3zcb2l5iny4x7li0fak0rzmjg6vlyhdqm8z25b166p"))))
0b0e11a9 107 (build-system gnu-build-system)
fa8a585e
MB
108 (native-inputs
109 `(("docbook-xsl" ,docbook-xsl)
110 ("docbook-xml" ,docbook-xml-4.1.2)
111 ("libxslt" ,libxslt)
112 ("w3m" ,w3m)
113 ("xmlto" ,xmlto)))
2e4bb893
JK
114 (inputs
115 `(("awk" ,gawk)
116 ("coreutils" ,coreutils)
117 ("grep" ,grep)
118 ("inetutils" ,inetutils) ; xdg-screensaver uses `hostname'
119 ("perl-file-mimeinfo" ,perl-file-mimeinfo) ; for mimeopen fallback
120 ("sed" ,sed)
04c35737 121 ("xprop" ,xprop) ; for Xfce detecting
b3546174 122 ("xset" ,xset))) ; for xdg-screensaver
0b0e11a9 123 (arguments
fa8a585e 124 `(#:tests? #f ; no check target
2e4bb893
JK
125 #:modules ((srfi srfi-26)
126 ,@%gnu-build-system-modules)
fa8a585e
MB
127 #:phases
128 (modify-phases %standard-phases
129 (add-after 'unpack 'patch-hardcoded-paths
130 (lambda _
131 (substitute* "scripts/xdg-mime.in"
132 (("/usr/bin/file") (which "file")))
133 (substitute* "scripts/xdg-open.in"
134 (("/usr/bin/printf") (which "printf")))
135 #t))
136 (add-before 'build 'locate-catalog-files
137 (lambda* (#:key inputs #:allow-other-keys)
138 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
139 "/xml/dtd/docbook"))
140 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
141 "/xml/xsl/docbook-xsl-"
142 ,(package-version docbook-xsl))))
143 (for-each (lambda (file)
144 (substitute* file
145 (("http://.*/docbookx\\.dtd")
146 (string-append xmldoc "/docbookx.dtd"))))
147 (find-files "scripts/desc" "\\.xml$"))
148 (substitute* "scripts/Makefile"
149 ;; Apparently `xmlto' does not bother to looks up the stylesheets
150 ;; specified in the XML, unlike the above substitition. Instead it
151 ;; uses a hard-coded URL. Work around it here, but if this is
152 ;; common perhaps we should hardcode this path in xmlto itself.
153 (("\\$\\(XMLTO\\) man")
154 (string-append "$(XMLTO) -x " xsldoc
155 "/manpages/docbook.xsl man")))
156 (setenv "STYLESHEET"
157 (string-append xsldoc "/html/docbook.xsl"))
2e4bb893
JK
158 #t)))
159 (add-after 'install 'wrap-executables
160 (lambda* (#:key inputs outputs #:allow-other-keys)
161 (let ((out (assoc-ref outputs "out")))
162 (with-directory-excursion (string-append out "/bin")
163 (let ((path-ext
164 (map (cute string-append <> "/bin")
165 (cons out
166 (map (cute assoc-ref inputs <>)
167 '("awk" "coreutils" "grep" "inetutils"
168 "perl-file-mimeinfo" "sed" "xprop"
169 "xset"))))))
170 (for-each (cute wrap-program <>
171 `("PATH" ":" prefix ,path-ext))
172 (find-files "."))))
fa8a585e
MB
173 #t))))))
174 (home-page "https://www.freedesktop.org/wiki/Software/xdg-utils/")
0b0e11a9
AE
175 (synopsis "Freedesktop.org scripts for desktop integration")
176 (description "The xdg-utils package is a set of simple scripts that
177provide basic desktop integration functions in the framework of the
178freedesktop.org project.")
366553e4 179 (license license:expat)))
dac354fe
SB
180
181(define-public libinput
182 (package
183 (name "libinput")
7eb22b18 184 (version "1.15.0")
dac354fe
SB
185 (source (origin
186 (method url-fetch)
521b1d88 187 (uri (string-append "https://freedesktop.org/software/libinput/"
b4ed7c3e 188 "libinput-" version ".tar.xz"))
dac354fe
SB
189 (sha256
190 (base32
7eb22b18 191 "1qa3b2fd4pv8ysf0mgwnyhqv9v48zgy3sy0q3a3vxcmwcvpizgxz"))))
285c091e
MB
192 (build-system meson-build-system)
193 (arguments
794c773d
MB
194 `(#:configure-flags '("-Ddocumentation=false")
195
196 ;; XXX: Using 'debug' or 'debugoptimized' pulls in an additional test that
197 ;; hangs, and the comments around it suggests that we should be using this
198 ;; Meson target anyway.
199 #:build-type "release"))
dac354fe 200 (native-inputs
285c091e 201 `(("check" ,check)
411c27e2 202 ("pkg-config" ,pkg-config)))
c6deabf9
MB
203 (inputs
204 `(("cairo" ,cairo)
205 ("glib" ,glib)
206 ("gtk+" ,gtk+)
7ca37da8 207 ("libevdev" ,libevdev)
285c091e
MB
208 ("libwacom" ,libwacom)
209 ("mtdev" ,mtdev)))
0dbb6c2f
MB
210 (propagated-inputs
211 `(;; libinput.h requires <libudev.h>, so propagate it.
212 ("udev" ,eudev)))
6aabc87d 213 (home-page "https://www.freedesktop.org/wiki/Software/libinput/")
dac354fe
SB
214 (synopsis "Input devices handling library")
215 (description
216 "Libinput is a library to handle input devices for display servers and
217other applications that need to directly deal with input devices.")
366553e4
RW
218 (license license:x11)))
219
c38fb02e
DC
220(define-public libinput-minimal
221 (package (inherit libinput)
222 (name "libinput-minimal")
c6deabf9
MB
223 (inputs
224 (fold alist-delete (package-inputs libinput)
225 '("cairo" "glib" "gtk+" "libwacom")))
c38fb02e 226 (arguments
285c091e
MB
227 (substitute-keyword-arguments (package-arguments libinput)
228 ((#:configure-flags flags ''())
229 `(cons* "-Dlibwacom=false"
230 "-Ddebug-gui=false" ;requires gtk+@3
231 ,flags))))))
c38fb02e 232
60a5617b
AK
233(define-public libxdg-basedir
234 (package
235 (name "libxdg-basedir")
236 (version "1.2.0")
237 (source (origin
959a7d73
EF
238 (method git-fetch)
239 (uri (git-reference
240 (url "https://github.com/devnev/libxdg-basedir")
241 (commit (string-append name "-" version))))
242 (file-name (git-file-name name version))
60a5617b
AK
243 (sha256
244 (base32
959a7d73 245 "12yz53ny5bi2dii3zwcr6b9ay0yy1g1xv13jg097k7gjligcq11m"))))
60a5617b
AK
246 (build-system gnu-build-system)
247 (arguments
248 '(#:phases
249 (modify-phases %standard-phases
15dc8ed5 250 (add-after 'unpack 'patch-autogen
60a5617b
AK
251 (lambda _
252 ;; Run 'configure' in its own phase, not now.
253 (substitute* "autogen.sh"
254 (("^.*\\./configure.*") ""))
15dc8ed5 255 #t)))))
60a5617b
AK
256 (native-inputs
257 `(("autoconf" ,autoconf)
258 ("automake" ,automake)
259 ("libtool" ,libtool)))
260 (home-page "https://github.com/devnev/libxdg-basedir")
261 (synopsis "Implementation of the XDG Base Directory specification")
262 (description
263 "libxdg-basedir is a C library providing some functions to use with
264the freedesktop.org XDG Base Directory specification.")
265 (license license:expat)))
266
366553e4 267(define-public elogind
5c91962a
AW
268 (package
269 (name "elogind")
c0d1f923 270 (version "243.4")
5c91962a 271 (source (origin
1f9b1d3d
SS
272 (method git-fetch)
273 (uri (git-reference
274 (url "https://github.com/elogind/elogind")
275 (commit (string-append "v" version))))
276 (file-name (git-file-name name version))
5c91962a
AW
277 (sha256
278 (base32
c0d1f923 279 "141frvgyk4fafcxsix94qc0d9ffrwksld8lqq4hq6xsgjlvv0mrs"))))
4163f246 280 (build-system meson-build-system)
5c91962a 281 (arguments
4163f246
SS
282 `(#:configure-flags
283 (let* ((out (assoc-ref %outputs "out"))
284 (sysconf (string-append out "/etc"))
285 (libexec (string-append out "/libexec/elogind"))
286 (dbuspolicy (string-append out "/etc/dbus-1/system.d"))
c0d1f923 287 (shadow (assoc-ref %build-inputs "shadow"))
4163f246
SS
288 (shepherd (assoc-ref %build-inputs "shepherd"))
289 (halt-path (string-append shepherd "/sbin/halt"))
290 (kexec-path "") ;not available in Guix yet
c0d1f923 291 (nologin-path (string-append shadow "/sbin/nologin"))
4163f246
SS
292 (poweroff-path (string-append shepherd "/sbin/shutdown"))
293 (reboot-path (string-append shepherd "/sbin/reboot")))
294 (list
295 (string-append "-Drootprefix=" out)
296 (string-append "-Dsysconfdir=" sysconf)
297 (string-append "-Drootlibexecdir=" libexec)
298 (string-append "-Ddbuspolicydir=" dbuspolicy)
299 (string-append "-Dc_link_args=-Wl,-rpath=" libexec)
300 (string-append "-Dcpp_link_args=-Wl,-rpath=" libexec)
301 (string-append "-Dhalt-path=" halt-path)
302 (string-append "-Dkexec-path=" kexec-path)
303 (string-append "-Dpoweroff-path=" poweroff-path)
304 (string-append "-Dreboot-path=" reboot-path)
c0d1f923 305 (string-append "-Dnologin-path=" nologin-path)
4163f246 306 "-Dcgroup-controller=elogind"
c0d1f923 307 "-Dman=true"
4163f246
SS
308 ;; Disable some tests.
309 "-Dtests=false"
310 "-Dslow-tests=false"))
fa67d565
RW
311 #:phases
312 (modify-phases %standard-phases
4163f246 313 (add-after 'unpack 'fix-pkttyagent-path
fa67d565 314 (lambda _
4163f246
SS
315 (substitute* "meson.build"
316 (("join_paths\\(bindir, 'pkttyagent'\\)")
317 "'\"/run/current-system/profile/bin/pkttyagent\"'"))
3f54fd1e 318 #t))
c0d1f923
MB
319 (add-after 'unpack 'adjust-dbus-socket-address
320 (lambda _
321 ;; Look for the D-Bus socket in /var/run instead of /run. Remove
322 ;; this for versions > 243.4.
323 (substitute* "src/libelogind/sd-bus/bus-internal.h"
324 (("=/run/dbus/system_bus_socket")
325 "=/var/run/dbus/system_bus_socket"))
326 #t))
4163f246 327 (add-after 'unpack 'change-pid-file-path
f8446df6 328 (lambda _
4163f246
SS
329 (substitute* "src/login/elogind.c"
330 (("\"/run/elogind.pid\"") "\"/run/systemd/elogind.pid\""))
f8446df6 331 #t)))))
5c91962a 332 (native-inputs
4163f246
SS
333 `(("docbook-xml" ,docbook-xml)
334 ("docbook-xml-4.2" ,docbook-xml-4.2)
5c91962a 335 ("docbook-xsl" ,docbook-xsl)
4163f246
SS
336 ("gettext" ,gettext-minimal)
337 ("gperf" ,gperf)
5c91962a 338 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4163f246 339 ("m4" ,m4)
b3546174 340 ("pkg-config" ,pkg-config)
4163f246
SS
341 ("python" ,python)
342 ("xsltproc" ,libxslt)))
5c91962a
AW
343 (inputs
344 `(("linux-pam" ,linux-pam)
5c91962a 345 ("libcap" ,libcap)
c0d1f923 346 ("shadow" ,shadow) ;for 'nologin'
d312a832 347 ("shepherd" ,shepherd) ;for 'halt' and 'reboot', invoked
1d19bc11 348 ;when pressing the power button
5c91962a 349 ("dbus" ,dbus)
95d7d0c5
CM
350 ("eudev" ,eudev)
351 ("acl" ,acl))) ;to add individual users to ACLs on /dev nodes
fa67d565 352 (home-page "https://github.com/elogind/elogind")
5c91962a
AW
353 (synopsis "User, seat, and session management service")
354 (description "Elogind is the systemd project's \"logind\" service,
366553e4
RW
355extracted out as a separate project. Elogind integrates with PAM to provide
356the org.freedesktop.login1 interface over the system bus, allowing other parts
357of a the system to know what users are logged in, and where.")
5c91962a 358 (license license:lgpl2.1+)))
e8444b26 359
f63861b5
LC
360(define-public localed
361 ;; XXX: This package is extracted from systemd but we retain so little of it
362 ;; that it would make more sense to maintain a fork of the bits we need.
363 (package
364 (name "localed")
365 (version "241")
366 (source (origin
367 (method git-fetch)
368 (uri (git-reference
369 (url "https://github.com/systemd/systemd")
370 (commit (string-append "v" version))))
371 (sha256
372 (base32
373 "0sy91flzbhpq58k7v0294pa2gxpr0bk27rcnxlbhk2fi6nc51d28"))
374 (file-name (git-file-name name version))
375 (modules '((guix build utils)))
376 (snippet
377 '(begin
378 ;; Connect to the right location for our D-Bus daemon.
379 (substitute* '("src/basic/def.h"
380 "src/libsystemd/sd-bus/sd-bus.c"
381 "src/stdio-bridge/stdio-bridge.c")
382 (("/run/dbus/system_bus_socket")
383 "/var/run/dbus/system_bus_socket"))
384
385 ;; Don't insist on having systemd as PID 1 (otherwise
386 ;; 'localectl' would exit without doing anything.)
387 (substitute* "src/shared/bus-util.c"
388 (("sd_booted\\(\\)")
389 "(1)"))
390 #t))
391 (patches (search-patches "localed-xorg-keyboard.patch"))))
392 (build-system meson-build-system)
393 (arguments
394 ;; Try to build as little as possible (list of components taken from the
395 ;; top-level 'meson.build' file.)
396 (let ((components '("utmp"
397 "hibernate"
398 "environment-d"
399 "binfmt"
400 "coredump"
401 "resolve"
402 "logind"
403 "hostnamed"
404 "localed"
405 "machined"
406 "portabled"
407 "networkd"
408 "timedated"
409 "timesyncd"
410 "firstboot"
411 "randomseed"
412 "backlight"
413 "vconsole"
414 "quotacheck"
415 "sysusers"
416 "tmpfiles"
417 "hwdb"
418 "rfkill"
419 "ldconfig"
420 "efi"
421 "tpm"
422 "ima"
423 "smack"
424 "gshadow"
425 "idn"
426 "nss-myhostname"
427 "nss-systemd")))
428 `(#:configure-flags ',(map (lambda (component)
429 (string-append "-D" component "=false"))
430 (delete "localed" components))
431
432 ;; It doesn't make sense to test all of systemd.
433 #:tests? #f
434
435 #:phases (modify-phases %standard-phases
436 (add-after 'unpack 'set-xkeyboard-config-file-name
437 (lambda* (#:key inputs #:allow-other-keys)
438 ;; Set the file name to xkeyboard-config and kbd.
439 ;; This is used by 'localectl list-x11-keymap-layouts'
440 ;; and similar functions.
441 (let ((xkb (assoc-ref inputs "xkeyboard-config"))
442 (kbd (assoc-ref inputs "kbd")))
443 (substitute* "src/locale/localectl.c"
444 (("/usr/share/X11/xkb/rules")
445 (string-append xkb "/share/X11/xkb/rules")))
446 (substitute* "src/basic/def.h"
447 (("/usr/share/keymaps")
448 (string-append kbd "/share/keymaps")))
449 #t)))
450 (replace 'install
451 (lambda* (#:key outputs #:allow-other-keys)
452 ;; Install 'localed', the D-Bus and polkit files, and
453 ;; 'localectl'.
454 (let* ((out (assoc-ref outputs "out"))
455 (libexec (string-append out "/libexec/localed"))
456 (bin (string-append out "/bin"))
457 (lib (string-append out "/lib"))
458 (dbus (string-append out
459 "/share/dbus-1/system-services"))
460 (conf (string-append out
461 "/etc/dbus-1/system.d/"))
462 (polkit (string-append out
463 "/share/polkit-1/actions"))
464 (data (string-append out "/share/systemd")))
465 (define (source-file regexp)
466 (car (find-files ".." regexp)))
467
468 (mkdir-p libexec)
469 (copy-file "systemd-localed"
470 (string-append libexec "/localed"))
471 (install-file "localectl" bin)
472
473 (let ((service-file (source-file
474 "\\.locale1\\.service$")))
475 (substitute* service-file
476 (("^Exec=.*$")
477 (string-append "Exec=" libexec "/localed\n")))
478 (install-file service-file dbus))
479 (install-file (source-file "\\.locale1\\.policy$")
480 polkit)
481 (install-file (source-file "\\.locale1\\.conf$")
482 conf)
483 (for-each (lambda (file)
484 (install-file file lib))
485 (find-files "src/shared"
486 "libsystemd-shared.*\\.so"))
487
488 (for-each (lambda (map)
489 (install-file map data))
490 (find-files ".." "^(kbd-model-map|language-fallback-map)$"))
491 #t)))))))
492 (native-inputs (package-native-inputs elogind))
493 (inputs `(("libmount" ,util-linux)
494 ("xkeyboard-config" ,xkeyboard-config)
495 ("kbd" ,kbd)
496 ,@(package-inputs elogind)))
497 (home-page "https://www.freedesktop.org/wiki/Software/systemd/localed/")
498 (synopsis "Control the system locale and keyboard layout")
499 (description
500 "Localed is a tiny daemon that can be used to control the system locale
501and keyboard mapping from user programs. It is used among other things by the
502GNOME Shell. The @command{localectl} command-line tool allows you to interact
503with localed. This package is extracted from the broader systemd package.")
504 (license license:lgpl2.1+)))
505
fe4e0b0a
CB
506(define-public packagekit
507 (package
508 (name "packagekit")
ba0b9d41 509 (version "1.1.13")
fe4e0b0a
CB
510 (source (origin
511 (method url-fetch)
512 (uri (string-append
513 "https://www.freedesktop.org/software/"
514 "PackageKit/releases/"
515 "PackageKit-" version ".tar.xz"))
516 (sha256
517 (base32
ba0b9d41 518 "1dr1laic65ld95abp2yxbwvijnngh0dwyb1x49x4wjm5rhq43dl8"))))
fe4e0b0a
CB
519 (build-system gnu-build-system)
520 (arguments
521 `(#:tests? #f
522 #:make-flags (list (string-append "BASH_COMPLETIONS_DIR="
523 %output "/etc/bash_completion.d"))
524 #:configure-flags
525 '("--disable-systemd")))
526 (native-inputs
527 `(("intltool" ,intltool)
528 ("pkg-config" ,pkg-config)
529 ("python" ,python-wrapper)
530 ("glib:bin" ,glib "bin")))
531 (inputs
532 `(("glib" ,glib)
c695fb76 533 ("bash-completion" ,bash-completion)
fe4e0b0a
CB
534 ("polkit" ,polkit)))
535 (propagated-inputs
536 `(("sqlite" ,sqlite)))
537 (home-page "https://www.freedesktop.org/software/PackageKit/")
538 (synopsis "API for package management, through D-Bus")
539 (description
540 "PackageKit provides a way of performing package management tasks,
541e.g. updating, removing and installing software. Through supporting many
542backends, PackageKit can perform these tasks using the appropriate package
543manager for the current system.")
544 (license license:gpl2+)))
545
e8444b26
RW
546(define-public python-pyxdg
547 (package
548 (name "python-pyxdg")
549 (version "0.25")
550 (source
551 (origin
552 (method url-fetch)
8f60e533 553 (uri (pypi-uri "pyxdg" version))
e8444b26
RW
554 (sha256
555 (base32
556 "179767h8m634ydlm4v8lnz01ba42gckfp684id764zaip7h87s41"))))
557 (build-system python-build-system)
558 (arguments
559 '(#:phases
dc1d3cde
KK
560 (modify-phases %standard-phases
561 (replace 'check
562 (lambda* (#:key inputs #:allow-other-keys)
563 (setenv "XDG_DATA_DIRS"
564 (string-append (assoc-ref inputs "shared-mime-info")
565 "/share/"))
566 (substitute* "test/test-icon.py"
567 (("/usr/share/icons/hicolor/index.theme")
568 (string-append (assoc-ref inputs "hicolor-icon-theme")
ffcff272
MB
569 "/share/icons/hicolor/index.theme"))
570 ;; FIXME: This test fails because the theme contains the unknown
571 ;; key "Scale".
572 (("theme.validate\\(\\)") "#"))
e8444b26 573
dc1d3cde
KK
574 ;; One test fails with:
575 ;; AssertionError: 'x-apple-ios-png' != 'png'
576 (substitute* "test/test-mime.py"
577 (("self.check_mimetype\\(imgpng, 'image', 'png'\\)") "#"))
10ee03c1 578 (invoke "nosetests" "-v"))))))
e8444b26 579 (native-inputs
10ee03c1
TGR
580 ;; For tests.
581 `(("shared-mime-info" ,shared-mime-info)
582 ("hicolor-icon-theme" ,hicolor-icon-theme)
f3b98f4f 583 ("python-nose" ,python-nose)))
57e7d748 584 (home-page "https://www.freedesktop.org/wiki/Software/pyxdg")
e8444b26
RW
585 (synopsis "Implementations of freedesktop.org standards in Python")
586 (description
587 "PyXDG is a collection of implementations of freedesktop.org standards in
e881752c 588Python.")
e8444b26
RW
589 (license license:lgpl2.0)))
590
591(define-public python2-pyxdg
592 (package-with-python2 python-pyxdg))
6178d947
SB
593
594(define-public wayland
595 (package
596 (name "wayland")
a6037072 597 (version "1.17.0")
6178d947
SB
598 (source (origin
599 (method url-fetch)
5cc3096c 600 (uri (string-append "https://wayland.freedesktop.org/releases/"
6178d947
SB
601 name "-" version ".tar.xz"))
602 (sha256
603 (base32
a6037072 604 "194ibzwpdcn6fvk4xngr4bf5axpciwg2bj82fdvz88kfmjw13akj"))))
6178d947 605 (build-system gnu-build-system)
28a96f2a 606 (arguments
62a91d2e 607 `(#:parallel-tests? #f))
6178d947
SB
608 (native-inputs
609 `(("doxygen" ,doxygen)
55ba649d 610 ("graphviz" ,graphviz)
6178d947
SB
611 ("pkg-config" ,pkg-config)
612 ("xmlto" ,xmlto)
613 ("xsltproc" ,libxslt)))
614 (inputs
615 `(("docbook-xml" ,docbook-xml)
616 ("docbook-xsl" ,docbook-xsl)
617 ("expat" ,expat)
618 ("libffi" ,libffi)
619 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
9012e118 620 (home-page "https://wayland.freedesktop.org/")
6178d947
SB
621 (synopsis "Display server protocol")
622 (description
623 "Wayland is a protocol for a compositor to talk to its clients as well as
624a C library implementation of that protocol. The compositor can be a standalone
625display server running on Linux kernel modesetting and evdev input devices, an X
626application, or a wayland client itself. The clients can be traditional
627applications, X servers (rootless or fullscreen) or other display servers.")
628 (license license:x11)))
177b4255 629
eca4c011
DC
630(define-public wayland-protocols
631 (package
632 (name "wayland-protocols")
5ceb1a3d 633 (version "1.18")
eca4c011
DC
634 (source (origin
635 (method url-fetch)
636 (uri (string-append
637 "https://wayland.freedesktop.org/releases/"
638 "wayland-protocols-" version ".tar.xz"))
639 (sha256
640 (base32
5ceb1a3d 641 "1cvl93h83ymbfhb567jv5gzyq08181w7c46rsw4xqqqpcvkvfwrx"))))
eca4c011
DC
642 (build-system gnu-build-system)
643 (inputs
644 `(("wayland" ,wayland)))
645 (native-inputs
646 `(("pkg-config" ,pkg-config)))
647 (synopsis "Wayland protocols")
648 (description "This package contains XML definitions of the Wayland protocols.")
649 (home-page "https://wayland.freedesktop.org")
650 (license license:expat)))
651
1f2e0601
MB
652(define-public waylandpp
653 (package
654 (name "waylandpp")
655 (version "0.2.5")
656 (home-page "https://github.com/NilsBrause/waylandpp")
657 (source (origin
658 (method git-fetch)
659 (uri (git-reference (url home-page) (commit version)))
f1d4d79f 660 (file-name (git-file-name name version))
1f2e0601
MB
661 (sha256
662 (base32
663 "16h57hzd688664qcyznzhjp3hxipdkzgv46x82yhkww24av8b55n"))))
664 (build-system cmake-build-system)
665 (arguments
666 `(#:tests? #f)) ;no tests
667 (native-inputs
668 `(("pkg-config" ,pkg-config)))
669 (inputs
670 `(("mesa" ,mesa)
671 ("pugixml" ,pugixml)))
672 (propagated-inputs
673 `(;; In Requires of the .pc files.
674 ("wayland" ,wayland)))
675 (synopsis "Wayland C++ bindings")
676 (description
677 "This package provides C++ bindings for the Wayland display protocol.")
678 (license license:bsd-2)))
679
24e051cb
DC
680(define-public weston
681 (package
682 (name "weston")
38c8437e 683 (version "6.0.1")
24e051cb
DC
684 (source (origin
685 (method url-fetch)
686 (uri (string-append
687 "https://wayland.freedesktop.org/releases/"
688 "weston-" version ".tar.xz"))
689 (sha256
690 (base32
38c8437e 691 "1d2m658ll8x7prlsfk71qgw89c7dz6y7d6nndfxwl49fmrd6sbxz"))))
23635b2e 692 (build-system meson-build-system)
24e051cb
DC
693 (native-inputs
694 `(("pkg-config" ,pkg-config)
695 ("xorg-server" ,xorg-server)))
696 (inputs
697 `(("cairo" ,cairo-xcb)
23635b2e 698 ("colord" ,colord)
24e051cb
DC
699 ("dbus" ,dbus)
700 ("elogind" ,elogind)
23635b2e
RH
701 ("lcms" ,lcms)
702 ("libevdev" ,libevdev)
24e051cb 703 ("libinput" ,libinput-minimal)
23635b2e 704 ("libjpeg" ,libjpeg)
24e051cb 705 ("libunwind" ,libunwind)
23635b2e
RH
706 ("libva" ,libva)
707 ("libwebp" ,libwebp)
24e051cb
DC
708 ("libxcursor" ,libxcursor)
709 ("libxkbcommon" ,libxkbcommon)
23635b2e 710 ("libxml2" ,libxml2)
24e051cb
DC
711 ("mesa" ,mesa)
712 ("mtdev" ,mtdev)
713 ("linux-pam" ,linux-pam)
23635b2e 714 ("pango" ,pango)
24e051cb
DC
715 ("wayland" ,wayland)
716 ("wayland-protocols" ,wayland-protocols)
717 ("xorg-server-xwayland" ,xorg-server-xwayland)))
718 (arguments
719 `(#:configure-flags
23635b2e
RH
720 (list "-Dbackend-rdp=false" ; TODO: Enable.
721 "-Dremoting=false" ; TODO: Enable.
722 "-Dsimple-dmabuf-drm=auto"
723 "-Dsystemd=false"
724 (string-append "-Dxwayland-path="
24e051cb
DC
725 (assoc-ref %build-inputs "xorg-server-xwayland")
726 "/bin/Xwayland"))
26bcd2a2 727 #:parallel-tests? #f ; Parallel tests cause failures.
24e051cb
DC
728 #:phases
729 (modify-phases %standard-phases
730 (add-before 'configure 'use-elogind
731 (lambda _
732 ;; Use elogind instead of systemd
23635b2e
RH
733 (substitute* "libweston/meson.build"
734 (("libsystemd-login") "libelogind"))
b23992af
MB
735 (substitute* '("libweston/launcher-logind.c"
736 "libweston/weston-launch.c")
24e051cb 737 (("#include <systemd/sd-login.h>")
b23992af
MB
738 "#include <elogind/sd-login.h>"))
739 #t))
24e051cb
DC
740 (add-after 'configure 'patch-confdefs.h
741 (lambda _
23635b2e
RH
742 (system "echo \"#define HAVE_SYSTEMD_LOGIN_209 1\" >> confdefs.h")
743 #t))
24e051cb
DC
744 (add-before 'check 'setup
745 (lambda _
746 (setenv "HOME" (getcwd))
747 (setenv "XDG_RUNTIME_DIR" (getcwd))
748 #t))
749 (add-before 'check 'start-xorg-server
750 (lambda* (#:key inputs #:allow-other-keys)
751 ;; The test suite requires a running X server.
752 (system (string-append (assoc-ref inputs "xorg-server")
753 "/bin/Xvfb :1 &"))
754 (setenv "DISPLAY" ":1")
755 #t)))))
756 (home-page "https://wayland.freedesktop.org")
757 (synopsis "Reference implementation of a Wayland compositor")
758 (description "Weston is the reference implementation of a Wayland
759compositor, and a useful compositor in its own right.
760
761A Wayland compositor allows applications to render to a shared offscreen
762buffer using OpenGL ES. The compositor then culls the hidden parts and
763composes the final output. A Wayland compositor is essentially a
764multiplexer to the KMS/DRM Linux kernel devices.")
765 (license license:expat)))
766
177b4255
DH
767(define-public exempi
768 (package
769 (name "exempi")
df3db975 770 (version "2.5.1")
177b4255
DH
771 (source (origin
772 (method url-fetch)
773 (uri (string-append
5cc3096c 774 "https://libopenraw.freedesktop.org/download/"
177b4255
DH
775 name "-" version ".tar.bz2"))
776 (sha256
777 (base32
df3db975 778 "1j4vx054l1c2cggw4aka4iw48jkcf68qk5y064pbqw1k3ddks2qh"))))
177b4255
DH
779 (build-system gnu-build-system)
780 (arguments
781 `(#:configure-flags (list (string-append "--with-boost="
782 (assoc-ref %build-inputs "boost")))))
783 (native-inputs
784 `(("boost" ,boost))) ; tests
785 (inputs
786 `(("expat" ,expat)
787 ("zlib" ,zlib)))
c96ec771 788 (home-page "https://libopenraw.freedesktop.org/exempi/")
177b4255
DH
789 (synopsis "XMP metadata handling library")
790 (description "Exempi is an implementation of the Extensible Metadata
0b042591
TGR
791Platform (@dfn{XMP}), which enables embedding metadata in PDF and image
792formats.")
177b4255 793 (license license:bsd-3)))
cfbbff31
SB
794
795(define-public libatasmart
796 (package
797 (name "libatasmart")
798 (version "0.19")
799 (source (origin
800 (method url-fetch)
801 (uri (string-append "http://0pointer.de/public/"
802 name "-" version ".tar.xz"))
803 (sha256
804 (base32
805 "138gvgdwk6h4ljrjsr09pxk1nrki4b155hqdzyr8mlk3bwsfmw31"))))
806 (build-system gnu-build-system)
807 (native-inputs
808 `(("pkg-config" ,pkg-config)))
809 (inputs
810 `(("udev" ,eudev)))
811 (home-page "http://0pointer.de/blog/projects/being-smart.html")
812 (synopsis "ATA S.M.A.R.T. reading and parsing library")
813 (description
814 "This library supports a subset of the ATA S.M.A.R.T. (Self-Monitoring,
815Analysis and Reporting Technology) functionality.")
816 (license license:lgpl2.1+)))
171ae35c
SB
817
818(define-public udisks
819 (package
820 (name "udisks")
92eb7aff 821 (version "2.7.7")
171ae35c
SB
822 (source (origin
823 (method url-fetch)
92eb7aff
PN
824 (uri (string-append
825 "https://github.com/storaged-project/udisks/releases/download/udisks-"
826 version "/udisks-" version ".tar.bz2"))
171ae35c
SB
827 (sha256
828 (base32
92eb7aff 829 "1dnlxqgy9v0mjdknv3b1s64szdykyk3hk0rxj3chwhpd415lrwgs"))))
171ae35c
SB
830 (build-system gnu-build-system)
831 (native-inputs
aef5055f
MC
832 `(("docbook-xml" ,docbook-xml-4.3) ; to build the manpages
833 ("docbook-xsl" ,docbook-xsl)
92eb7aff
PN
834 ("glib:bin" ,glib "bin") ; for glib-mkenums
835 ("gnome-common" ,gnome-common) ; TODO: Why is this needed?
171ae35c 836 ("gobject-introspection" ,gobject-introspection)
92eb7aff 837 ("gtk-doc" ,gtk-doc)
171ae35c
SB
838 ("intltool" ,intltool)
839 ("pkg-config" ,pkg-config)
840 ("xsltproc" ,libxslt)))
841 (propagated-inputs
842 `(("glib" ,glib))) ; required by udisks2.pc
843 (inputs
844 `(("acl" ,acl)
92eb7aff 845 ("cryptsetup" ,cryptsetup)
171ae35c 846 ("libatasmart" ,libatasmart)
92eb7aff 847 ("libblockdev" ,libblockdev)
171ae35c 848 ("libgudev" ,libgudev)
5905114a 849 ("polkit" ,polkit)
92eb7aff 850 ("util-linux" ,util-linux)))
daa3b04c
LC
851 (outputs '("out"
852 "doc")) ;5 MiB of gtk-doc HTML
171ae35c
SB
853 (arguments
854 `(#:tests? #f ; requiring system message dbus
c0351459 855 #:disallowed-references ("doc") ;enforce separation of "doc"
171ae35c 856 #:configure-flags
aef5055f 857 (list "--enable-man"
92eb7aff
PN
858 "--enable-gtk-doc" ; Without this the HTML doc does not seem to build automatically.
859 "--enable-available-modules" ; Such as lvm2, btrfs, etc.
171ae35c 860 "--localstatedir=/var"
35263cd8 861 "--enable-fhs-media" ;mount devices in /media, not /run/media
daa3b04c
LC
862 (string-append "--with-html-dir="
863 (assoc-ref %outputs "doc")
864 "/share/doc/udisks/html")
171ae35c 865 (string-append "--with-udevdir=" %output "/lib/udev"))
aef5055f
MC
866 #:make-flags
867 (let* ((docbook-xsl-name-version ,(string-append
868 (package-name docbook-xsl) "-"
869 (package-version docbook-xsl)))
870 (docbook-xsl-catalog-file (string-append
871 (assoc-ref %build-inputs "docbook-xsl")
872 "/xml/xsl/"
873 docbook-xsl-name-version
874 "/catalog.xml"))
875 (docbook-xml-catalog-file (string-append
876 (assoc-ref %build-inputs "docbook-xml")
877 "/xml/dtd/docbook/catalog.xml")))
878 ;; Reference the catalog files required to build the manpages.
879 (list (string-append "XML_CATALOG_FILES=" docbook-xsl-catalog-file " "
880 docbook-xml-catalog-file)))
171ae35c
SB
881 #:phases
882 (modify-phases %standard-phases
883 (add-before
884 'configure 'fix-girdir
885 (lambda _
886 ;; Install introspection data to its own output.
887 (substitute* "udisks/Makefile.in"
888 (("girdir = .*")
889 "girdir = $(datadir)/gir-1.0\n")
890 (("typelibsdir = .*")
5905114a 891 "typelibsdir = $(libdir)/girepository-1.0\n"))))
03800de1 892 (add-after 'install 'wrap-udisksd
5905114a
LC
893 (lambda* (#:key outputs inputs #:allow-other-keys)
894 ;; Tell 'udisksd' where to find the 'mount' command.
895 (let ((out (assoc-ref outputs "out"))
03800de1
CB
896 (utils (assoc-ref inputs "util-linux"))
897 (cryptsetup (assoc-ref inputs "cryptsetup"))
898 (parted (assoc-ref inputs "parted")))
5905114a
LC
899 (wrap-program (string-append out "/libexec/udisks2/udisksd")
900 `("PATH" ":" prefix
901 (,(string-append utils "/bin") ;for 'mount'
03800de1
CB
902 ;; cryptsetup is required for setting encrypted
903 ;; partitions, e.g. in gnome-disks
904 ,(string-append cryptsetup "/sbin")
5905114a
LC
905 "/run/current-system/profile/bin"
906 "/run/current-system/profile/sbin")))
907 #t))))))
988e1dca 908 (home-page "https://www.freedesktop.org/wiki/Software/udisks/")
171ae35c
SB
909 (synopsis "Disk manager service")
910 (description
911 "UDisks provides interfaces to enumerate and perform operations on disks
912and storage devices. Any application (including unprivileged ones) can access
913the udisksd(8) daemon via the name org.freedesktop.UDisks2 on the system
914message bus.")
915 ;; The dynamic library are under LGPLv2+, others are GPLv2+.
916 (license (list license:gpl2+ license:lgpl2.0+))))
83a2e492
SB
917
918(define-public accountsservice
919 (package
920 (name "accountsservice")
0981ec13 921 (version "0.6.50")
2a6403c1
TGR
922 (source
923 (origin
924 (method url-fetch)
925 (uri (string-append "https://www.freedesktop.org/software/"
926 "accountsservice/accountsservice-" version ".tar.xz"))
927 (sha256
928 (base32 "0jn7vg1z4vxnna0hl33hbcb4bb3zpilxc2vyclh24vx4vvsjhn83"))))
83a2e492
SB
929 (build-system gnu-build-system)
930 (arguments
931 '(#:tests? #f ; XXX: tests require DocBook 4.1.2
932 #:configure-flags
0981ec13
MB
933 '("--localstatedir=/var"
934 "--disable-systemd"
935 "--enable-elogind")
83a2e492
SB
936 #:phases
937 (modify-phases %standard-phases
c9aadd07
RS
938 (add-after 'unpack 'patch-/bin/cat
939 (lambda _
940 (substitute* "src/user.c"
941 (("/bin/cat") (which "cat")))
942 #t))
83a2e492
SB
943 (add-before
944 'configure 'pre-configure
e76008db
AW
945 (lambda* (#:key inputs #:allow-other-keys)
946 ;; Don't try to create /var/lib/AccountsService.
83a2e492 947 (substitute* "src/Makefile.in"
571ffdeb 948 (("\\$\\(MKDIR_P\\).*/lib/AccountsService.*") "true"))
e76008db
AW
949 (let ((shadow (assoc-ref inputs "shadow")))
950 (substitute* '("src/user.c" "src/daemon.c")
951 (("/usr/sbin/usermod") (string-append shadow "/sbin/usermod"))
952 (("/usr/sbin/useradd") (string-append shadow "/sbin/useradd"))
953 (("/usr/sbin/userdel") (string-append shadow "/sbin/userdel"))
954 (("/usr/bin/passwd") (string-append shadow "/bin/passwd"))
955 (("/usr/bin/chage") (string-append shadow "/bin/chage"))))
571ffdeb 956 #t)))))
83a2e492
SB
957 (native-inputs
958 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
959 ("gobject-introspection" ,gobject-introspection)
960 ("intltool" ,intltool)
961 ("pkg-config" ,pkg-config)))
962 (inputs
0981ec13
MB
963 `(("elogind" ,elogind)
964 ("polkit" ,polkit)
965 ("shadow" ,shadow)))
57e7d748 966 (home-page "https://www.freedesktop.org/wiki/Software/AccountsService/")
83a2e492
SB
967 (synopsis "D-Bus interface for user account query and manipulation")
968 (description
969 "The AccountService project provides a set of D-Bus interfaces for querying
970and manipulating user account information and an implementation of these
971interfaces, based on the useradd, usermod and userdel commands.")
972 (license license:gpl3+)))
f3ad1490
SB
973
974(define-public libmbim
975 (package
976 (name "libmbim")
fdb88305 977 (version "1.20.2")
f3ad1490
SB
978 (source (origin
979 (method url-fetch)
980 (uri (string-append
351c8042
TGR
981 "https://www.freedesktop.org/software/libmbim/"
982 "libmbim-" version ".tar.xz"))
f3ad1490
SB
983 (sha256
984 (base32
fdb88305 985 "16q550sy84izi5ic3sbbhjnnka2fwhj8vvdrirpn9xspbsgbc3sm"))))
f3ad1490
SB
986 (build-system gnu-build-system)
987 (native-inputs
988 `(("glib:bin" ,glib "bin") ; for glib-mkenums
989 ("pkg-config" ,pkg-config)
990 ("python" ,python-wrapper)))
991 (propagated-inputs
992 `(("glib" ,glib))) ; required by mbim-glib.pc
993 (inputs
994 `(("libgudev" ,libgudev)))
995 (synopsis "Library to communicate with MBIM-powered modems")
66056126 996 (home-page "https://www.freedesktop.org/wiki/Software/libmbim/")
f3ad1490
SB
997 (description
998 "Libmbim is a GLib-based library for talking to WWAN modems and devices
999which speak the Mobile Interface Broadband Model (MBIM) protocol.")
1000 (license
1001 ;; The libmbim-glib library is released under the LGPLv2+ license.
1002 ;; The mbimcli tool is released under the GPLv2+ license.
1003 (list license:lgpl2.0+ license:gpl2+))))
5302c5ff
SB
1004
1005(define-public libqmi
1006 (package
1007 (name "libqmi")
82a2bd3a 1008 (version "1.24.4")
5302c5ff
SB
1009 (source (origin
1010 (method url-fetch)
1011 (uri (string-append
6c5101f8
MB
1012 "https://www.freedesktop.org/software/libqmi/"
1013 "libqmi-" version ".tar.xz"))
5302c5ff
SB
1014 (sha256
1015 (base32
82a2bd3a 1016 "12licfsszr6qxpg9b2b04qm2glk8d42fcy32zr8jzwrgr7gbl5h3"))))
5302c5ff 1017 (build-system gnu-build-system)
b707140b
MW
1018 (inputs
1019 `(("libgudev" ,libgudev)))
5302c5ff
SB
1020 (native-inputs
1021 `(("glib:bin" ,glib "bin") ; for glib-mkenums
1022 ("pkg-config" ,pkg-config)
1023 ("python" ,python-wrapper)))
1024 (propagated-inputs
1025 `(("glib" ,glib))) ; required by qmi-glib.pc
1026 (synopsis "Library to communicate with QMI-powered modems")
97a08595 1027 (home-page "https://www.freedesktop.org/wiki/Software/libqmi/")
5302c5ff
SB
1028 (description
1029 "Libqmi is a GLib-based library for talking to WWAN modems and devices
1030which speak the Qualcomm MSM Interface (QMI) protocol.")
1031 (license
1032 ;; The libqmi-glib library is released under the LGPLv2+ license.
1033 ;; The qmicli tool is released under the GPLv2+ license.
1034 (list license:lgpl2.0+ license:gpl2+))))
1509a1dc
SB
1035
1036(define-public modem-manager
1037 (package
1038 (name "modem-manager")
352f710b 1039 (version "1.10.8")
1509a1dc
SB
1040 (source (origin
1041 (method url-fetch)
1042 (uri (string-append
e9f68a64 1043 "https://www.freedesktop.org/software/ModemManager/"
1509a1dc
SB
1044 "ModemManager-" version ".tar.xz"))
1045 (sha256
1046 (base32
352f710b 1047 "16hnl0sdriqgv4v30mfs64mdl9rw7lsh802zlm3ggwxxil3p9qfb"))))
1509a1dc
SB
1048 (build-system gnu-build-system)
1049 (arguments
1050 '(#:configure-flags
660c9b47
RW
1051 `(,(string-append "--with-udev-base-dir=" %output "/lib/udev")
1052 ;; FIXME: Without this flag the build fails with "error: assignment
1053 ;; from incompatible pointer type" whenever the return value of
1054 ;; "g_object_ref" is assigned to "ctx->self".
1055 "--disable-more-warnings")))
1509a1dc
SB
1056 (native-inputs
1057 `(("glib:bin" ,glib "bin") ; for glib-mkenums
1058 ("gobject-introspection" ,gobject-introspection)
1059 ("intltool" ,intltool)
1060 ("pkg-config" ,pkg-config)
1061 ("vala" ,vala)
1062 ;; For testing.
1063 ("dbus" ,dbus)))
1064 (propagated-inputs
1065 `(("glib" ,glib))) ; required by mm-glib.pc
1066 (inputs
1067 `(("libgudev" ,libgudev)
1068 ("libmbim" ,libmbim)
1069 ("libqmi" ,libqmi)
1070 ("polkit" ,polkit)))
1071 (synopsis "Mobile broadband modems manager")
57e7d748 1072 (home-page "https://www.freedesktop.org/wiki/Software/ModemManager/")
1509a1dc
SB
1073 (description
1074 "ModemManager is a DBus-activated daemon which controls mobile
1075broadband (2G/3G/4G) devices and connections. Whether built-in devices, USB
1076dongles, bluetooth-paired telephones, or professional RS232/USB devices with
1077external power supplies, ModemManager is able to prepare and configure the
1078modems and setup connections with them.")
1079 (license license:gpl2+)))
6976e7d2
SB
1080
1081(define-public telepathy-logger
1082 (package
1083 (name "telepathy-logger")
1084 (version "0.8.2")
1085 (source (origin
1086 (method url-fetch)
5cc3096c 1087 (uri (string-append "https://telepathy.freedesktop.org/releases/"
6976e7d2
SB
1088 name "/" name "-" version ".tar.bz2"))
1089 (sha256
1090 (base32
1091 "1bjx85k7jyfi5pvl765fzc7q2iz9va51anrc2djv7caksqsdbjlg"))))
1092 (build-system gnu-build-system)
1093 (arguments
8758efe0
LF
1094 '(#:parallel-tests? #f
1095 #:phases
6976e7d2
SB
1096 (modify-phases %standard-phases
1097 (add-before 'check 'pre-check
1098 (lambda _
1099 (setenv "HOME" (getenv "TMPDIR"))
1100 #t)))))
1101 (native-inputs
1102 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
1103 ("gobject-introspection" ,gobject-introspection)
1104 ("intltool" ,intltool)
1105 ("pkg-config" ,pkg-config)
1106 ("python" ,python-2)
1107 ("xsltproc" ,libxslt)))
1108 (propagated-inputs
1109 ;; telepathy-logger-0.2.pc refers to all these.
1110 `(("libxml2" ,libxml2)
1111 ("sqlite" ,sqlite)
1112 ("telepathy-glib" ,telepathy-glib)))
1113 (synopsis "Telepathy logger library")
57e7d748 1114 (home-page "https://telepathy.freedesktop.org/")
6976e7d2
SB
1115 (description
1116 "Telepathy logger is a headless observer client that logs information
1117received by the Telepathy framework. It features pluggable backends to log
1118different sorts of messages in different formats.")
1119 (license license:lgpl2.1+)))
e6823279 1120
bb8b543a
KK
1121(define-public telepathy-idle
1122 (package
1123 (name "telepathy-idle")
1124 (version "0.2.0")
1125 (source (origin
1126 (method url-fetch)
1127 (uri (string-append "https://telepathy.freedesktop.org/releases/"
1128 name "/" name "-" version ".tar.bz2"))
1129 (sha256
1130 (base32
1131 "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh"))))
1132 (build-system gnu-build-system)
1133 (native-inputs
1134 `(("pkg-config" ,pkg-config)))
1135 (inputs
1136 `(("xsltproc" ,libxslt)
1137 ("python" ,python-2)
1138 ("python-dbus" ,python2-dbus)))
1139 (propagated-inputs
1140 `(("telepathy-glib" ,telepathy-glib)))
57e7d748 1141 (home-page "https://telepathy.freedesktop.org/")
bb8b543a
KK
1142 (synopsis "Telepathy IRC connection manager")
1143 (description
1144 "Idle is an IRC connection manager for the Telepathy framework. This
1145package enables usage of IRC channels and private messages in Telepathy instant
1146messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
1147 (license (list license:lgpl2.1 license:lgpl2.1+))))
1148
261b3da5
KK
1149(define-public telepathy-mission-control
1150 (package
1151 (name "telepathy-mission-control")
6c5401fc 1152 (version "5.16.5")
da42873c
TGR
1153 (source
1154 (origin
1155 (method url-fetch)
1156 (uri (string-append "https://telepathy.freedesktop.org/releases/"
1157 "telepathy-mission-control/"
1158 "telepathy-mission-control-" version ".tar.gz"))
1159 (sha256
6c5401fc 1160 (base32 "00xxv38cfdirnfvgyd56m60j0nkmsv5fz6p2ydyzsychicxl6ssc"))))
261b3da5
KK
1161 (build-system gnu-build-system)
1162 (native-inputs
1163 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
1164 ("pkg-config" ,pkg-config)))
1165 (inputs
1166 `(("dconf" ,dconf)
1167 ("gtk-doc" ,gtk-doc)
1168 ("libgnome-keyring" ,libgnome-keyring)
1169 ("python" ,python-2)
1170 ("xsltproc" ,libxslt)))
1171 (propagated-inputs
1172 `(("telepathy-glib" ,telepathy-glib)))
1173 (home-page "https://telepathy.freedesktop.org/wiki/Components/Mission_Control/")
1174 (synopsis "Telepathy real-time communication framework management daemon")
1175 (description
1176 "Telepathy Mission Control 5 is an account manager and channel dispatcher
1177for the Telepathy framework, allowing user interfaces and other clients to
1178share connections to real-time communication services without conflicting.")
1179 (license license:lgpl2.1)))
1180
e6823279
SB
1181(define-public colord-gtk
1182 (package
1183 (name "colord-gtk")
1184 (version "0.1.26")
1185 (source (origin
1186 (method url-fetch)
5cc3096c 1187 (uri (string-append "https://www.freedesktop.org/software/colord"
e6823279
SB
1188 "/releases/" name "-" version ".tar.xz"))
1189 (sha256
1190 (base32
1191 "0i9y3bb5apj6a0f8cx36l6mjzs7xc0k7nf0magmf58vy2mzhpl18"))))
1192 (build-system gnu-build-system)
1193 (arguments '(#:tests? #f)) ; require the colord system service
1194 (native-inputs
1195 `(("gobject-introspection" ,gobject-introspection)
1196 ("intltool" ,intltool)
1197 ("pkg-config" ,pkg-config)
1198 ("vala" ,vala)))
1199 (propagated-inputs
1200 ;; colord-gtk.pc refers to all these.
1201 `(("colord" ,colord)
1202 ("gtk+" ,gtk+)))
1203 (synopsis "GTK integration for libcolord")
57e7d748 1204 (home-page "https://www.freedesktop.org/software/colord/")
e6823279
SB
1205 (description
1206 "This is a GTK+ convenience library for interacting with colord. It is
1207useful for both applications which need colour management and applications that
1208wish to perform colour calibration.")
1209 (license license:lgpl2.1+)))
dfb01bae
LC
1210
1211(define-public libfprint
1212 (package
1213 (name "libfprint")
239d3e9c
TGR
1214 (version "1.90.1")
1215 (source
1216 (origin
1217 (method git-fetch)
1218 (uri (git-reference
1219 (url "https://gitlab.freedesktop.org/libfprint/libfprint")
1220 (commit (string-append "v" version))))
1221 (file-name (git-file-name name version))
1222 (sha256
1223 (base32 "0fdaak7qjr9b4482g7fhhqpyfdqpxq5kpmyzkp7f5i7qq2ynb78a"))))
1224 (build-system meson-build-system)
dfb01bae 1225 (arguments
239d3e9c
TGR
1226 '(#:configure-flags
1227 (list (string-append "-Dudev_rules_dir=" (assoc-ref %outputs "out")
1228 "/lib/udev/rules.d"))))
dfb01bae 1229 (native-inputs
239d3e9c
TGR
1230 `(("eudev" ,eudev)
1231 ("glib:bin" ,glib "bin") ; for {glib-,}mkenums
1232 ("gobject-introspection" ,gobject-introspection)
1233 ("gtk-doc" ,gtk-doc) ; for 88 KiB of API documentation
1234 ("pkg-config" ,pkg-config)))
dfb01bae 1235 (inputs
239d3e9c
TGR
1236 `(("glib" ,glib)
1237 ("gusb" ,gusb)
1238 ("nss" ,nss) ; for the URU4x00 driver
1239
1240 ;; Replacing this with cairo works but just results in a reference
1241 ;; (only) to pixman in the end.
dfb01bae 1242 ("pixman" ,pixman)))
50f02ced 1243 (home-page "https://fprint.freedesktop.org/")
dfb01bae
LC
1244 (synopsis "Library to access fingerprint readers")
1245 (description
1246 "libfprint is a library designed to make it easy for application
1247developers to add support for consumer fingerprint readers to their
1248software.")
1249 (license license:lgpl2.1+)))
9e3e972d
LC
1250
1251(define-public fprintd
1252 (package
1253 (name "fprintd")
239d3e9c
TGR
1254 (version "1.90.1")
1255 (source
1256 (origin
1257 (method git-fetch)
1258 (uri (git-reference
1259 (url "https://gitlab.freedesktop.org/libfprint/fprintd")
1260 (commit version)))
1261 (file-name (git-file-name name version))
1262 (sha256
1263 (base32 "0mbzk263x7f58i9cxhs44mrngs7zw5wkm62j5r6xlcidhmfn03cg"))))
1264 (build-system meson-build-system)
5c3d6c1d 1265 (arguments
239d3e9c
TGR
1266 `(#:configure-flags
1267 (list "-Dsystemd_system_unit_dir=/tmp"
1268 (string-append "-Ddbus_service_dir=" (assoc-ref %outputs "out")
1269 "/share/dbus-1/system-services")
1270 (string-append "-Dpam_modules_dir=" (assoc-ref %outputs "out")
1271 "/lib/security"))
1272 #:phases
1273 (modify-phases %standard-phases
1274 (add-before 'configure 'patch-output-directories
1275 ;; Install files to our output, not that of the ‘owner’ package.
1276 ;; These are not exposed as Meson options and must be patched.
1277 (lambda* (#:key outputs #:allow-other-keys)
1278 (let ((out (assoc-ref outputs "out")))
1279 (substitute* "meson.build"
1280 (("(dbus_interfaces_dir = ).*" _ set)
1281 (string-append set "'" out "/share/dbus-1/interfaces'\n"))
1282 (("(polkit_policy_directory = ).*" _ set)
1283 (string-append set "'" out "/share/polkit-1/actions/'\n"))
1284 (("(dbus_data_dir = ).*" _ set)
1285 (string-append set "get_option('prefix')"
1286 " / get_option('datadir')\n")))
1287 #t)))
1288 (add-before 'configure 'patch-mistake
1289 (lambda _
1290 (substitute* "meson.build"
1291 (("(storage_path = )(get_option\\('prefix'\\))(.*)"
1292 _ set mistake value)
1293 (string-append set "''" value "\n")))
1294 #t))
1295 (add-before 'configure 'patch-systemd-dependencies
1296 (lambda _
1297 (substitute* "meson.build"
1298 (("'(libsystemd|systemd)'") "'libelogind'"))
1299 #t))
1300 (add-before 'configure 'ignore-test-dependencies
1301 (lambda _
1302 (substitute* "meson.build"
1303 (("pam_wrapper_dep .*") "")
1304 ((".*'(cairo|dbus|dbusmock|gi|pypamtest)': .*,.*") ""))
1305 #t))
1306 (add-before 'install 'no-polkit-magic
1307 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
1308 (lambda _
1309 (setenv "PKEXEC_UID" "something")
1310 #t)))
1311 #:tests? #f)) ; XXX depend on unpackaged packages
9e3e972d 1312 (native-inputs
239d3e9c
TGR
1313 `(("gettext" ,gettext-minimal)
1314 ("glib:bin" ,glib "bin") ; for glib-genmarshal
1315 ("libxslt" ,libxslt) ; for xsltproc
1316 ("perl" ,perl) ; for pod2man
1317 ("pkg-config" ,pkg-config)))
1318 ;; For tests.
1319 ;;("pam_wrapper" ,pam_wrapper)
1320 ;;("python-pycairo" ,python-pycairo)
1321 ;;("python-dbus" ,python-dbus)
1322 ;;("python-dbusmock" ,python-dbusmock)
1323 ;;("python-pygobject" ,python-pygobject)
1324 ;;("python-pypamtest" ,python-pypamtest)
9e3e972d 1325 (inputs
239d3e9c
TGR
1326 `(("dbus-glib" ,dbus-glib)
1327 ("elogind" ,elogind)
1328 ("libfprint" ,libfprint)
1329 ("linux-pam" ,linux-pam)
9e3e972d 1330 ("polkit" ,polkit)
239d3e9c
TGR
1331
1332 ;; XXX These are in libfprint's Requires.private. Meson refuses to grant
1333 ;; the ‘libfprint-2’ dependency if they are not provided here.
1334 ("gusb" ,gusb)
1335 ("nss" ,nss)
1336 ("pixman" ,pixman)))
50f02ced 1337 (home-page "https://fprint.freedesktop.org/")
9e3e972d
LC
1338 (synopsis "D-Bus daemon that exposes fingerprint reader functionality")
1339 (description
1340 "fprintd is a D-Bus daemon that offers functionality of libfprint, a
1341library to access fingerprint readers, over the D-Bus interprocess
1342communication bus. This daemon layer above libfprint solves problems related
1343to applications simultaneously competing for fingerprint readers.")
1344 (license license:gpl2+)))
324b0040
DM
1345
1346(define-public desktop-file-utils
1347 (package
1348 (name "desktop-file-utils")
1349 (version "0.23")
1350 (source (origin
1351 (method url-fetch)
1352 (uri (string-append "https://www.freedesktop.org/software/" name
1353 "/releases/" name "-" version ".tar.xz"))
1354 (sha256
1355 (base32
1356 "119kj2w0rrxkhg4f9cf5waa55jz1hj8933vh47vcjipcplql02bc"))))
1357 (build-system gnu-build-system)
1358 (native-inputs
1359 `(("pkg-config" ,pkg-config)))
1360 (inputs
1361 `(("glib" ,glib)))
57e7d748 1362 (home-page "https://www.freedesktop.org/wiki/Software/desktop-file-utils/")
324b0040
DM
1363 (synopsis "Utilities for working with desktop entries")
1364 (description
1365 "This package contains a few command line utilities for working with
1366desktop entries:
1367
1368desktop-file-validate: validates a desktop file and prints warnings/errors
1369 about desktop entry specification violations.
1370
1371desktop-file-install: installs a desktop file to the applications directory,
1372 optionally munging it a bit in transit.
1373
1374update-desktop-database: updates the database containing a cache of MIME types
1375 handled by desktop files.")
1376 (license license:gpl2+)))
b9bf08f0
AW
1377
1378(define-public xdg-user-dirs
1379 (package
1380 (name "xdg-user-dirs")
7c9b7c5c 1381 (version "0.17")
b9bf08f0
AW
1382 (source (origin
1383 (method url-fetch)
1384 (uri (string-append "http://user-dirs.freedesktop.org/releases/"
1385 name "-" version ".tar.gz"))
1386 (sha256
7c9b7c5c 1387 (base32 "13216b8rfkzak5k6bvpx6jvqv3cnbgpijnjwj8a8d3kq4cl0a1ra"))))
b9bf08f0
AW
1388 (build-system gnu-build-system)
1389 (native-inputs
1390 `(("gettext" ,gettext-minimal)
1391 ("docbook-xsl" ,docbook-xsl)
1392 ("docbook-xml" ,docbook-xml-4.3)
1393 ("xsltproc" ,libxslt)))
1394 (arguments
1395 `(#:phases
1396 (modify-phases %standard-phases
1397 (add-before 'build 'locate-catalog-files
1398 (lambda* (#:key inputs #:allow-other-keys)
1399 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1400 "/xml/dtd/docbook"))
1401 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
1402 "/xml/xsl/docbook-xsl-"
1403 ,(package-version docbook-xsl))))
1404 (for-each (lambda (file)
1405 (substitute* file
1406 (("http://.*/docbookx\\.dtd")
1407 (string-append xmldoc "/docbookx.dtd"))))
1408 (find-files "man" "\\.xml$"))
1409 (substitute* "man/Makefile"
1410 (("http://.*/docbook\\.xsl")
1411 (string-append xsldoc "/manpages/docbook.xsl")))
1412 #t))))))
1413 (home-page "https://www.freedesktop.org/wiki/Software/xdg-user-dirs/")
1414 (synopsis "Tool to help manage \"well known\" user directories")
1415 (description "xdg-user-dirs is a tool to help manage \"well known\" user
1416directories, such as the desktop folder or the music folder. It also handles
1417localization (i.e. translation) of the file names. Designed to be
1418automatically run when a user logs in, xdg-user-dirs can also be run
1419manually by a user.")
1420 (license license:gpl2)))
b32596ec
BT
1421
1422(define-public perl-file-basedir
1423 (package
1424 (name "perl-file-basedir")
12c069db 1425 (version "0.08")
b32596ec
BT
1426 (source
1427 (origin
1428 (method url-fetch)
1429 (uri (string-append "mirror://cpan/authors/id/K/KI/KIMRYAN/"
1430 "File-BaseDir-" version ".tar.gz"))
1431 (sha256
1432 (base32
12c069db 1433 "1qq5ag9zffx8zc5i9b4z03ar80pqj4drgk3vjdlyfapjwb9zqrf0"))))
b32596ec
BT
1434 (build-system perl-build-system)
1435 (native-inputs
1436 `(("perl-module-build" ,perl-module-build)
1437 ("perl-file-which" ,perl-file-which)
1438 ("perl-test-pod" ,perl-test-pod)
1439 ("perl-test-pod-coverage" ,perl-test-pod-coverage)
1440 ("xdg-user-dirs" ,xdg-user-dirs)))
1441 (propagated-inputs
1442 `(("perl-ipc-system-simple" ,perl-ipc-system-simple)))
9aba9b12 1443 (home-page "https://metacpan.org/release/File-BaseDir")
b32596ec
BT
1444 (synopsis "Use the Freedesktop.org base directory specification")
1445 (description
1446 "@code{File::Basedir} can be used to find directories and files as
1447specified by the Freedesktop.org Base Directory Specification. This
1448specifications gives a mechanism to locate directories for configuration,
1449application data and cache data.")
1450 (license license:perl-license)))
825cebdb
BT
1451
1452(define-public perl-file-desktopentry
1453 (package
1454 (name "perl-file-desktopentry")
1455 (version "0.22")
1456 (source
1457 (origin
1458 (method url-fetch)
1459 (uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/"
1460 "File-DesktopEntry-" version ".tar.gz"))
1461 (sha256
1462 (base32
1463 "1f1maqix2kbfg2rf008m7mqnvv6nvcf9y6pcgdv2kxp2vbih370n"))))
1464 (build-system perl-build-system)
1465 (native-inputs
1466 `(("perl-test-pod" ,perl-test-pod)
1467 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
1468 (propagated-inputs
1469 `(("perl-file-basedir" ,perl-file-basedir)
1470 ("perl-uri" ,perl-uri)))
9aba9b12 1471 (home-page "https://metacpan.org/release/File-DesktopEntry")
825cebdb
BT
1472 (synopsis "Handle @file{.desktop} files")
1473 (description
1474 "@code{File::DesktopEntry} parses @file{.desktop} files defined by the
1475Freedesktop.org @dfn{Desktop Entry} specification. It can also run the
1476applications define in those files.")
1477 (license license:perl-license)))
d0ce96bc
BT
1478
1479(define-public perl-file-mimeinfo
1480 (package
1481 (name "perl-file-mimeinfo")
2f989172 1482 (version "0.29")
d0ce96bc
BT
1483 (source
1484 (origin
1485 (method url-fetch)
1486 (uri (string-append "mirror://cpan/authors/id/M/MI/MICHIELB/"
1487 "File-MimeInfo-" version ".tar.gz"))
1488 (sha256
1489 (base32
2f989172 1490 "1sh8r6vczyz08zm8vfsjmkg6a165wch54akjdrd1vbifcmwjg5pi"))))
d0ce96bc
BT
1491 (build-system perl-build-system)
1492 ;; If the tests are fixed, add perl-test-pod, perl-test-pod-coverage, and
1493 ;; perl-test-tiny as native-inputs.
1494 (propagated-inputs
1495 `(("shared-mime-info" ,shared-mime-info)
1496 ("perl-file-desktopentry" ,perl-file-desktopentry)))
1497 (arguments
1498 ;; Some tests fail due to requiring the mimetype of perl files to be
1499 ;; text/plain when they are actually application/x-perl.
1500 `(#:tests? #f
1501 #:phases
1502 (modify-phases %standard-phases
1503 (add-after 'install 'wrap-programs
1504 (lambda* (#:key outputs #:allow-other-keys)
1505 (let ((out (assoc-ref outputs "out")))
1506 (for-each (lambda (prog)
1507 (wrap-program (string-append out "/bin/" prog)
1508 `("PERL5LIB" ":" prefix
1509 (,(string-append (getenv "PERL5LIB") ":" out
1510 "/lib/perl5/site_perl")))))
1511 '("mimeopen" "mimetype")))
1512 #t)))))
9aba9b12 1513 (home-page "https://metacpan.org/release/File-MimeInfo")
d0ce96bc
BT
1514 (synopsis "Determine file type from the file name")
1515 (description
1516 "@code{File::Mimeinfo} can be used to determine the MIME type of a file.
1517It tries to implement the Freedesktop specification for a shared MIME
1518database.
1519
1520This package also contains two related utilities:
1521
1522@itemize
1523@item @command{mimetype} determines a file's MIME type;
1524@item @command{mimeopen} opens files in an appropriate program according to
1525their MIME type.
1526@end itemize")
1527 (license license:perl-license)))
748ca12f
RAM
1528
1529(define-public uchardet
1530 (package
1531 (name "uchardet")
1532 (version "0.0.6")
1533 (source
1534 (origin
1535 (method url-fetch)
1536 (uri (string-append "https://www.freedesktop.org/software/"
1537 name "/releases/" name "-" version ".tar.xz"))
1538 (sha256
1539 (base32 "0q9c02b6nmw41yfsiqsnphgc3f0yg3fj31wkccp47cmwvy634lc3"))))
1540 (build-system cmake-build-system)
1541 (home-page "https://www.freedesktop.org/wiki/Software/uchardet/")
1542 (synopsis "Encoding detector library")
1543 (description "uchardet is an encoding detector library, which takes a
1544sequence of bytes in an unknown character encoding without any additional
1545information, and attempts to determine the encoding of the text. Returned
1546encoding names are iconv-compatible.")
1547
1548 ;; This combines code under MPL 1.1, LGPL 2.1+, and GPL 2.0+, so the
1549 ;; combination is GPL 2.0+.
1550 (license license:gpl2+)))
d29d04c9
GLV
1551
1552(define-public udiskie
1553 (package
1554 (name "udiskie")
dc4fae11 1555 (version "2.0.4")
d29d04c9
GLV
1556 (source
1557 (origin
1558 (method url-fetch)
1559 (uri (pypi-uri "udiskie" version))
1560 (sha256
1561 (base32
dc4fae11 1562 "0gjjzz0k8dlsk03fl2882lbl88hbv031ww72qj02gr65yph0jqgc"))
d29d04c9
GLV
1563 ;; Remove support for the libappindicator library of the
1564 ;; Unity desktop environment which is not in Guix.
1565 (patches (search-patches "udiskie-no-appindicator.patch"))))
1566 (build-system python-build-system)
1567 (native-inputs
1568 `(("asciidoc" ,asciidoc)
1569 ("gettext" ,gettext-minimal)
1570 ("gobject-introspection" ,gobject-introspection)))
1571 (inputs
1572 `(("gobject-introspection" ,gobject-introspection)
1573 ("gtk+" ,gtk+)
1574 ("libnotify" ,libnotify)
1575 ("udisks" ,udisks)))
1576 (propagated-inputs
1577 `(("python-docopt" ,python-docopt)
1578 ("python-pygobject" ,python-pygobject)
1579 ("python-keyutils" ,python-keyutils)
1580 ("python-pyxdg" ,python-pyxdg)
1581 ("python-pyyaml" ,python-pyyaml)))
1582 (arguments
1583 `(#:phases
1584 (modify-phases %standard-phases
1585 (add-after 'install 'wrap-gi-typelib
1586 (lambda* (#:key outputs #:allow-other-keys)
1587 (let ((out (assoc-ref outputs "out"))
1588 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1589 (wrap-program (string-append out "/bin/udiskie")
1590 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1591 #t)))))
1592 (home-page "https://github.com/coldfix/udiskie")
1593 (synopsis "Automounter for removable media")
1594 (description
1595 "The @command{udiskie} program is a udisks2 front-end that allows to
1596manage removable media such as CDs or flash drives from userspace.
1597
1598Its features include:
1599
1600@itemize
1601@item automount removable media,
1602@item notifications,
1603@item tray icon,
1604@item command line tools for manual (un)mounting,
1605@item LUKS encrypted devices,
1606@item unlocking with keyfiles,
1607@item loop devices (mounting ISO archives),
1608@item password caching.
1609@end itemize
1610")
1611 (license license:expat)))