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