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