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