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