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