gnu: Use 'modify-phases' syntax.
[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>
366553e4 6;;; Copyright © 2015 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>
ac20cd7b 10;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
fa8a585e 11;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
0b0e11a9
AE
12;;;
13;;; This file is part of GNU Guix.
14;;;
15;;; GNU Guix is free software; you can redistribute it and/or modify it
16;;; under the terms of the GNU General Public License as published by
17;;; the Free Software Foundation; either version 3 of the License, or (at
18;;; your option) any later version.
19;;;
20;;; GNU Guix is distributed in the hope that it will be useful, but
21;;; WITHOUT ANY WARRANTY; without even the implied warranty of
22;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23;;; GNU General Public License for more details.
24;;;
25;;; You should have received a copy of the GNU General Public License
26;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
27
28(define-module (gnu packages freedesktop)
366553e4 29 #:use-module ((guix licenses) #:prefix license:)
0b0e11a9
AE
30 #:use-module (guix packages)
31 #:use-module (guix download)
366553e4 32 #:use-module (guix git-download)
dac354fe 33 #:use-module (guix build-system gnu)
e8444b26 34 #:use-module (guix build-system python)
73bb984e
EF
35 #:use-module (gnu packages acl)
36 #:use-module (gnu packages admin)
366553e4 37 #:use-module (gnu packages autotools)
fe4e0b0a 38 #:use-module (gnu packages bash)
73bb984e
EF
39 #:use-module (gnu packages boost)
40 #:use-module (gnu packages compression)
41 #:use-module (gnu packages databases)
42 #:use-module (gnu packages docbook)
43 #:use-module (gnu packages documentation)
366553e4 44 #:use-module (gnu packages gettext)
24e051cb 45 #:use-module (gnu packages gl)
73bb984e
EF
46 #:use-module (gnu packages glib) ;intltool
47 #:use-module (gnu packages gnome)
dfb01bae 48 #:use-module (gnu packages gnuzilla)
366553e4 49 #:use-module (gnu packages gperf)
55ba649d 50 #:use-module (gnu packages graphviz)
e6823279 51 #:use-module (gnu packages gtk)
171ae35c 52 #:use-module (gnu packages libffi)
24e051cb 53 #:use-module (gnu packages libunwind)
dfb01bae 54 #:use-module (gnu packages libusb)
73bb984e
EF
55 #:use-module (gnu packages linux)
56 #:use-module (gnu packages m4)
6976e7d2 57 #:use-module (gnu packages polkit)
73bb984e
EF
58 #:use-module (gnu packages pkg-config)
59 #:use-module (gnu packages python)
fa8a585e 60 #:use-module (gnu packages w3m)
73bb984e
EF
61 #:use-module (gnu packages xml)
62 #:use-module (gnu packages xdisorg)
63 #:use-module (gnu packages xorg))
0b0e11a9
AE
64
65(define-public xdg-utils
66 (package
67 (name "xdg-utils")
fa8a585e 68 (version "1.1.1")
0b0e11a9
AE
69 (source
70 (origin
71 (method url-fetch)
72 (uri (string-append
5cc3096c 73 "https://portland.freedesktop.org/download/xdg-utils-"
fa8a585e 74 version ".tar.gz"))
0b0e11a9
AE
75 (sha256
76 (base32
fa8a585e 77 "09a1pk3ifsndc5qz2kcd1557i137gpgnv3d739pv22vfayi67pdh"))))
0b0e11a9 78 (build-system gnu-build-system)
fa8a585e
MB
79 (native-inputs
80 `(("docbook-xsl" ,docbook-xsl)
81 ("docbook-xml" ,docbook-xml-4.1.2)
82 ("libxslt" ,libxslt)
83 ("w3m" ,w3m)
84 ("xmlto" ,xmlto)))
f072e9ad
SB
85 (propagated-inputs
86 `(("xprop" ,xprop) ; for Xfce detecting
b3546174 87 ("xset" ,xset))) ; for xdg-screensaver
0b0e11a9 88 (arguments
fa8a585e
MB
89 `(#:tests? #f ; no check target
90 #:phases
91 (modify-phases %standard-phases
92 (add-after 'unpack 'patch-hardcoded-paths
93 (lambda _
94 (substitute* "scripts/xdg-mime.in"
95 (("/usr/bin/file") (which "file")))
96 (substitute* "scripts/xdg-open.in"
97 (("/usr/bin/printf") (which "printf")))
98 #t))
99 (add-before 'build 'locate-catalog-files
100 (lambda* (#:key inputs #:allow-other-keys)
101 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
102 "/xml/dtd/docbook"))
103 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
104 "/xml/xsl/docbook-xsl-"
105 ,(package-version docbook-xsl))))
106 (for-each (lambda (file)
107 (substitute* file
108 (("http://.*/docbookx\\.dtd")
109 (string-append xmldoc "/docbookx.dtd"))))
110 (find-files "scripts/desc" "\\.xml$"))
111 (substitute* "scripts/Makefile"
112 ;; Apparently `xmlto' does not bother to looks up the stylesheets
113 ;; specified in the XML, unlike the above substitition. Instead it
114 ;; uses a hard-coded URL. Work around it here, but if this is
115 ;; common perhaps we should hardcode this path in xmlto itself.
116 (("\\$\\(XMLTO\\) man")
117 (string-append "$(XMLTO) -x " xsldoc
118 "/manpages/docbook.xsl man")))
119 (setenv "STYLESHEET"
120 (string-append xsldoc "/html/docbook.xsl"))
121 #t))))))
122 (home-page "https://www.freedesktop.org/wiki/Software/xdg-utils/")
0b0e11a9
AE
123 (synopsis "Freedesktop.org scripts for desktop integration")
124 (description "The xdg-utils package is a set of simple scripts that
125provide basic desktop integration functions in the framework of the
126freedesktop.org project.")
366553e4 127 (license license:expat)))
dac354fe
SB
128
129(define-public libinput
130 (package
131 (name "libinput")
c476f029 132 (version "1.7.3")
dac354fe
SB
133 (source (origin
134 (method url-fetch)
521b1d88 135 (uri (string-append "https://freedesktop.org/software/libinput/"
dac354fe
SB
136 name "-" version ".tar.xz"))
137 (sha256
138 (base32
c476f029 139 "07fbzxddvhjcch43hdxb24sj7ri96zzpcjalvsicmw0i4wnn2v89"))))
dac354fe
SB
140 (build-system gnu-build-system)
141 (native-inputs
7ca37da8
EF
142 `(("cairo" ,cairo)
143 ("gtk+" ,gtk+)
144 ("pkg-config" ,pkg-config)))
dac354fe
SB
145 (propagated-inputs
146 `(("libudev" ,eudev))) ; required by libinput.pc
147 (inputs
7ca37da8
EF
148 `(("glib" ,glib)
149 ("libevdev" ,libevdev)
521b1d88
AW
150 ("mtdev" ,mtdev)
151 ("libwacom" ,libwacom)))
6aabc87d 152 (home-page "https://www.freedesktop.org/wiki/Software/libinput/")
dac354fe
SB
153 (synopsis "Input devices handling library")
154 (description
155 "Libinput is a library to handle input devices for display servers and
156other applications that need to directly deal with input devices.")
366553e4
RW
157 (license license:x11)))
158
c38fb02e
DC
159(define-public libinput-minimal
160 (package (inherit libinput)
161 (name "libinput-minimal")
7ca37da8
EF
162 (native-inputs
163 `(("pkg-config" ,pkg-config)))
c38fb02e
DC
164 (inputs
165 `(("libevdev" ,libevdev)
166 ("mtdev" ,mtdev)))
167 (arguments
168 `(#:configure-flags
169 '("--disable-libwacom")))))
170
60a5617b
AK
171(define-public libxdg-basedir
172 (package
173 (name "libxdg-basedir")
174 (version "1.2.0")
175 (source (origin
176 (method url-fetch)
177 (uri (string-append
178 "https://github.com/devnev/libxdg-basedir/archive/"
179 name "-" version ".tar.gz"))
180 (sha256
181 (base32
182 "0s28c7sfwqimsmb3kn91mx7wi55fs3flhbmynl9k60rrllr00aqw"))))
183 (build-system gnu-build-system)
184 (arguments
185 '(#:phases
186 (modify-phases %standard-phases
187 (add-after 'unpack 'autogen
188 (lambda _
189 ;; Run 'configure' in its own phase, not now.
190 (substitute* "autogen.sh"
191 (("^.*\\./configure.*") ""))
192 (zero? (system* "sh" "autogen.sh")))))))
193 (native-inputs
194 `(("autoconf" ,autoconf)
195 ("automake" ,automake)
196 ("libtool" ,libtool)))
197 (home-page "https://github.com/devnev/libxdg-basedir")
198 (synopsis "Implementation of the XDG Base Directory specification")
199 (description
200 "libxdg-basedir is a C library providing some functions to use with
201the freedesktop.org XDG Base Directory specification.")
202 (license license:expat)))
203
366553e4 204(define-public elogind
5c91962a
AW
205 (package
206 (name "elogind")
26ba09ba 207 (version "232.4")
5c91962a
AW
208 (source (origin
209 (method url-fetch)
fa67d565
RW
210 (uri (string-append "https://github.com/elogind/elogind/"
211 "archive/v" version ".tar.gz"))
5c91962a
AW
212 (sha256
213 (base32
26ba09ba 214 "1qcxian48z2dj5gfmp7brrngdydqf2jm00f4rjr5sy1myh8fy931"))
5c91962a
AW
215 (modules '((guix build utils)))
216 (snippet
217 '(begin
218 (use-modules (guix build utils))
219 (substitute* "Makefile.am"
220 ;; Avoid validation against DTD because the DTDs for
221 ;; both doctype 4.2 and 4.5 are needed.
222 (("XSLTPROC_FLAGS = ") "XSLTPROC_FLAGS = --novalid"))))))
223 (build-system gnu-build-system)
224 (arguments
fa67d565
RW
225 `(#:tests? #f ;FIXME: "make check" in the "po" directory fails.
226 #:configure-flags
505760ed 227 (list (string-append "--with-udevrulesdir="
5c91962a 228 (assoc-ref %outputs "out")
fa67d565 229 "/lib/udev/rules.d")
cd1ad27e
LC
230
231 ;; Let elogind be its own cgroup controller, rather than relying
232 ;; on systemd or OpenRC. By default, 'configure' makes an
233 ;; incorrect guess.
234 "--with-cgroup-controller=elogind"
235
fa67d565
RW
236 (string-append "--with-rootprefix="
237 (assoc-ref %outputs "out"))
26ba09ba
PM
238 (string-append "--with-rootlibexecdir="
239 (assoc-ref %outputs "out")
240 "/libexec/elogind")
fa67d565
RW
241 ;; These are needed to ensure that lto linking works.
242 "RANLIB=gcc-ranlib"
243 "AR=gcc-ar"
244 "NM=gcc-nm")
956ad60c 245 #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")
fa67d565
RW
246 #:phases
247 (modify-phases %standard-phases
248 (add-before 'configure 'autogen
249 (lambda _
250 (and (zero? (system* "intltoolize" "--force" "--automake"))
251 (zero? (system* "autoreconf" "-vif")))))
252 (add-before 'build 'fix-service-file
253 (lambda* (#:key outputs #:allow-other-keys)
254 ;; Fix the file name of the 'elogind' binary in the D-Bus
255 ;; '.service' file.
256 (substitute* "src/login/org.freedesktop.login1.service"
257 (("^Exec=.*")
258 (string-append "Exec=" (assoc-ref %outputs "out")
c2ffcc44
LC
259 "/libexec/elogind/elogind\n")))))
260 (add-after 'install 'add-libcap-to-search-path
261 (lambda* (#:key inputs outputs #:allow-other-keys)
262 ;; Add a missing '-L' for libcap in libelogind.la. See
263 ;; <https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00084.html>.
264 (let ((libcap (assoc-ref inputs "libcap"))
265 (out (assoc-ref outputs "out")))
266 (substitute* (string-append out "/lib/libelogind.la")
267 (("-lcap")
268 (string-append "-L" libcap "/lib -lcap")))
269 #t))))))
5c91962a 270 (native-inputs
fa67d565
RW
271 `(("autoconf" ,autoconf)
272 ("automake" ,automake)
273 ("libtool" ,libtool)
274 ("intltool" ,intltool)
b94a6ca0 275 ("gettext" ,gettext-minimal)
fa67d565 276 ("python" ,python)
5c91962a
AW
277 ("docbook-xsl" ,docbook-xsl)
278 ("docbook-xml" ,docbook-xml)
279 ("xsltproc" ,libxslt)
280 ("m4" ,m4)
281 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
b3546174 282 ("pkg-config" ,pkg-config)
4ed06287
LC
283
284 ;; Use gperf 3.0 to work around
285 ;; <https://github.com/wingo/elogind/issues/8>.
286 ("gperf" ,gperf-3.0)))
5c91962a
AW
287 (inputs
288 `(("linux-pam" ,linux-pam)
289 ("linux-libre-headers" ,linux-libre-headers)
290 ("libcap" ,libcap)
d312a832 291 ("shepherd" ,shepherd) ;for 'halt' and 'reboot', invoked
1d19bc11 292 ;when pressing the power button
5c91962a 293 ("dbus" ,dbus)
95d7d0c5
CM
294 ("eudev" ,eudev)
295 ("acl" ,acl))) ;to add individual users to ACLs on /dev nodes
fa67d565 296 (home-page "https://github.com/elogind/elogind")
5c91962a
AW
297 (synopsis "User, seat, and session management service")
298 (description "Elogind is the systemd project's \"logind\" service,
366553e4
RW
299extracted out as a separate project. Elogind integrates with PAM to provide
300the org.freedesktop.login1 interface over the system bus, allowing other parts
301of a the system to know what users are logged in, and where.")
5c91962a 302 (license license:lgpl2.1+)))
e8444b26 303
fe4e0b0a
CB
304(define-public packagekit
305 (package
306 (name "packagekit")
307 (version "1.1.5")
308 (source (origin
309 (method url-fetch)
310 (uri (string-append
311 "https://www.freedesktop.org/software/"
312 "PackageKit/releases/"
313 "PackageKit-" version ".tar.xz"))
314 (sha256
315 (base32
316 "035pqxgkyki813hyw2frrbpfllq113zfk5qcp9wvsq5lsp74ix2h"))))
317 (build-system gnu-build-system)
318 (arguments
319 `(#:tests? #f
320 #:make-flags (list (string-append "BASH_COMPLETIONS_DIR="
321 %output "/etc/bash_completion.d"))
322 #:configure-flags
323 '("--disable-systemd")))
324 (native-inputs
325 `(("intltool" ,intltool)
326 ("pkg-config" ,pkg-config)
327 ("python" ,python-wrapper)
328 ("glib:bin" ,glib "bin")))
329 (inputs
330 `(("glib" ,glib)
331 ("bash-completion", bash-completion)
332 ("polkit" ,polkit)))
333 (propagated-inputs
334 `(("sqlite" ,sqlite)))
335 (home-page "https://www.freedesktop.org/software/PackageKit/")
336 (synopsis "API for package management, through D-Bus")
337 (description
338 "PackageKit provides a way of performing package management tasks,
339e.g. updating, removing and installing software. Through supporting many
340backends, PackageKit can perform these tasks using the appropriate package
341manager for the current system.")
342 (license license:gpl2+)))
343
e8444b26
RW
344(define-public python-pyxdg
345 (package
346 (name "python-pyxdg")
347 (version "0.25")
348 (source
349 (origin
350 (method url-fetch)
351 (uri (string-append
352 "https://pypi.python.org/packages/source/p/pyxdg/pyxdg-"
353 version ".tar.gz"))
354 (sha256
355 (base32
356 "179767h8m634ydlm4v8lnz01ba42gckfp684id764zaip7h87s41"))))
357 (build-system python-build-system)
358 (arguments
359 '(#:phases
dc1d3cde
KK
360 (modify-phases %standard-phases
361 (replace 'check
362 (lambda* (#:key inputs #:allow-other-keys)
363 (setenv "XDG_DATA_DIRS"
364 (string-append (assoc-ref inputs "shared-mime-info")
365 "/share/"))
366 (substitute* "test/test-icon.py"
367 (("/usr/share/icons/hicolor/index.theme")
368 (string-append (assoc-ref inputs "hicolor-icon-theme")
369 "/share/icons/hicolor/index.theme")))
e8444b26 370
dc1d3cde
KK
371 ;; One test fails with:
372 ;; AssertionError: 'x-apple-ios-png' != 'png'
373 (substitute* "test/test-mime.py"
374 (("self.check_mimetype\\(imgpng, 'image', 'png'\\)") "#"))
375 (zero? (system* "nosetests" "-v")))))))
e8444b26
RW
376 (native-inputs
377 `(("shared-mime-info" ,shared-mime-info) ;for tests
378 ("hicolor-icon-theme" ,hicolor-icon-theme) ;for tests
f3b98f4f 379 ("python-nose" ,python-nose)))
e8444b26
RW
380 (home-page "http://freedesktop.org/wiki/Software/pyxdg")
381 (synopsis "Implementations of freedesktop.org standards in Python")
382 (description
383 "PyXDG is a collection of implementations of freedesktop.org standards in
e881752c 384Python.")
e8444b26
RW
385 (license license:lgpl2.0)))
386
387(define-public python2-pyxdg
388 (package-with-python2 python-pyxdg))
6178d947
SB
389
390(define-public wayland
391 (package
392 (name "wayland")
20289af3 393 (version "1.13.0")
6178d947
SB
394 (source (origin
395 (method url-fetch)
5cc3096c 396 (uri (string-append "https://wayland.freedesktop.org/releases/"
6178d947
SB
397 name "-" version ".tar.xz"))
398 (sha256
399 (base32
20289af3 400 "0lgywr1m0d79vr4s8aimj8a307nss29hhy68gjpqj7m667055c39"))))
6178d947 401 (build-system gnu-build-system)
28a96f2a
AI
402 (arguments
403 `(#:parallel-tests? #f
404 #:phases
405 (modify-phases %standard-phases
d670267c 406 ;; Remove record shapes to workaround graphviz 2.40.1 problems.
28a96f2a 407 ;; http://www.graphviz.org/content/i-havent-been-able-render-these-files-graphviz-226
d670267c
AI
408 ;; This will likely be fixed upstream in the next release.
409 ;; https://lists.freedesktop.org/archives/wayland-devel/2017-June/034218.html
28a96f2a
AI
410 (add-before 'build 'fix-graphviz
411 (lambda _
412 (substitute* "doc/doxygen/dot/x-architecture.gv"
d670267c
AI
413 (("Mrecord") "none"))
414 #t)))))
6178d947
SB
415 (native-inputs
416 `(("doxygen" ,doxygen)
55ba649d 417 ("graphviz" ,graphviz)
6178d947
SB
418 ("pkg-config" ,pkg-config)
419 ("xmlto" ,xmlto)
420 ("xsltproc" ,libxslt)))
421 (inputs
422 `(("docbook-xml" ,docbook-xml)
423 ("docbook-xsl" ,docbook-xsl)
424 ("expat" ,expat)
425 ("libffi" ,libffi)
426 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
9012e118 427 (home-page "https://wayland.freedesktop.org/")
6178d947
SB
428 (synopsis "Display server protocol")
429 (description
430 "Wayland is a protocol for a compositor to talk to its clients as well as
431a C library implementation of that protocol. The compositor can be a standalone
432display server running on Linux kernel modesetting and evdev input devices, an X
433application, or a wayland client itself. The clients can be traditional
434applications, X servers (rootless or fullscreen) or other display servers.")
435 (license license:x11)))
177b4255 436
eca4c011
DC
437(define-public wayland-protocols
438 (package
439 (name "wayland-protocols")
851ff8a5 440 (version "1.9")
eca4c011
DC
441 (source (origin
442 (method url-fetch)
443 (uri (string-append
444 "https://wayland.freedesktop.org/releases/"
445 "wayland-protocols-" version ".tar.xz"))
446 (sha256
447 (base32
851ff8a5 448 "0xag2yci0l13brmq2k12vdv0wlnb2j0rxk2cnp170fya63g74sv6"))))
eca4c011
DC
449 (build-system gnu-build-system)
450 (inputs
451 `(("wayland" ,wayland)))
452 (native-inputs
453 `(("pkg-config" ,pkg-config)))
454 (synopsis "Wayland protocols")
455 (description "This package contains XML definitions of the Wayland protocols.")
456 (home-page "https://wayland.freedesktop.org")
457 (license license:expat)))
458
24e051cb
DC
459(define-public weston
460 (package
461 (name "weston")
f095109e 462 (version "2.0.0")
24e051cb
DC
463 (source (origin
464 (method url-fetch)
465 (uri (string-append
466 "https://wayland.freedesktop.org/releases/"
467 "weston-" version ".tar.xz"))
468 (sha256
469 (base32
f095109e 470 "1n35acsknwqfhsni854q5mjq2gnbnfdvinh92rpij67i4yn4dr5l"))))
24e051cb
DC
471 (build-system gnu-build-system)
472 (native-inputs
473 `(("pkg-config" ,pkg-config)
474 ("xorg-server" ,xorg-server)))
475 (inputs
476 `(("cairo" ,cairo-xcb)
477 ("dbus" ,dbus)
478 ("elogind" ,elogind)
479 ("libinput" ,libinput-minimal)
480 ("libunwind" ,libunwind)
481 ("libxcursor" ,libxcursor)
482 ("libxkbcommon" ,libxkbcommon)
483 ("mesa" ,mesa)
484 ("mtdev" ,mtdev)
485 ("linux-pam" ,linux-pam)
486 ("wayland" ,wayland)
487 ("wayland-protocols" ,wayland-protocols)
488 ("xorg-server-xwayland" ,xorg-server-xwayland)))
489 (arguments
490 `(#:configure-flags
491 (list "--disable-setuid-install"
492 "--enable-systemd-login"
493 (string-append "--with-xserver-path="
494 (assoc-ref %build-inputs "xorg-server-xwayland")
495 "/bin/Xwayland"))
496 #:phases
497 (modify-phases %standard-phases
498 (add-before 'configure 'use-elogind
499 (lambda _
500 ;; Use elogind instead of systemd
501 (substitute* "configure"
502 (("libsystemd-login >= 198") "libelogind"))
b23992af
MB
503 (substitute* '("libweston/launcher-logind.c"
504 "libweston/weston-launch.c")
24e051cb 505 (("#include <systemd/sd-login.h>")
b23992af
MB
506 "#include <elogind/sd-login.h>"))
507 #t))
24e051cb
DC
508 (add-after 'configure 'patch-confdefs.h
509 (lambda _
510 (system "echo \"#define HAVE_SYSTEMD_LOGIN_209 1\" >> confdefs.h")))
511 (add-before 'check 'setup
512 (lambda _
513 (setenv "HOME" (getcwd))
514 (setenv "XDG_RUNTIME_DIR" (getcwd))
515 #t))
516 (add-before 'check 'start-xorg-server
517 (lambda* (#:key inputs #:allow-other-keys)
518 ;; The test suite requires a running X server.
519 (system (string-append (assoc-ref inputs "xorg-server")
520 "/bin/Xvfb :1 &"))
521 (setenv "DISPLAY" ":1")
522 #t)))))
523 (home-page "https://wayland.freedesktop.org")
524 (synopsis "Reference implementation of a Wayland compositor")
525 (description "Weston is the reference implementation of a Wayland
526compositor, and a useful compositor in its own right.
527
528A Wayland compositor allows applications to render to a shared offscreen
529buffer using OpenGL ES. The compositor then culls the hidden parts and
530composes the final output. A Wayland compositor is essentially a
531multiplexer to the KMS/DRM Linux kernel devices.")
532 (license license:expat)))
533
177b4255
DH
534(define-public exempi
535 (package
536 (name "exempi")
941a38b6 537 (version "2.4.2")
177b4255
DH
538 (source (origin
539 (method url-fetch)
540 (uri (string-append
5cc3096c 541 "https://libopenraw.freedesktop.org/download/"
177b4255
DH
542 name "-" version ".tar.bz2"))
543 (sha256
544 (base32
941a38b6 545 "1v665fc7x0yi7x6lzskvd8bd2anf7951svn2vd5384dblmgv43av"))))
177b4255
DH
546 (build-system gnu-build-system)
547 (arguments
548 `(#:configure-flags (list (string-append "--with-boost="
549 (assoc-ref %build-inputs "boost")))))
550 (native-inputs
551 `(("boost" ,boost))) ; tests
552 (inputs
553 `(("expat" ,expat)
554 ("zlib" ,zlib)))
555 (home-page "https://wiki.freedesktop.org/libopenraw/Exempi")
556 (synopsis "XMP metadata handling library")
557 (description "Exempi is an implementation of the Extensible Metadata
558Platform (XMP), which enables embedding metadata in PDF and image formats.")
559 (license license:bsd-3)))
cfbbff31
SB
560
561(define-public libatasmart
562 (package
563 (name "libatasmart")
564 (version "0.19")
565 (source (origin
566 (method url-fetch)
567 (uri (string-append "http://0pointer.de/public/"
568 name "-" version ".tar.xz"))
569 (sha256
570 (base32
571 "138gvgdwk6h4ljrjsr09pxk1nrki4b155hqdzyr8mlk3bwsfmw31"))))
572 (build-system gnu-build-system)
573 (native-inputs
574 `(("pkg-config" ,pkg-config)))
575 (inputs
576 `(("udev" ,eudev)))
577 (home-page "http://0pointer.de/blog/projects/being-smart.html")
578 (synopsis "ATA S.M.A.R.T. reading and parsing library")
579 (description
580 "This library supports a subset of the ATA S.M.A.R.T. (Self-Monitoring,
581Analysis and Reporting Technology) functionality.")
582 (license license:lgpl2.1+)))
171ae35c
SB
583
584(define-public udisks
585 (package
586 (name "udisks")
988e1dca 587 (version "2.1.8")
171ae35c
SB
588 (source (origin
589 (method url-fetch)
5cc3096c 590 (uri (string-append "https://udisks.freedesktop.org/releases/"
171ae35c
SB
591 name "-" version ".tar.bz2"))
592 (sha256
593 (base32
988e1dca 594 "1nkxhnqh39c9pzvm4zfj50rgv6apqawdx09bv3sfaxrah4a6jhfs"))))
171ae35c
SB
595 (build-system gnu-build-system)
596 (native-inputs
aef5055f
MC
597 `(("docbook-xml" ,docbook-xml-4.3) ; to build the manpages
598 ("docbook-xsl" ,docbook-xsl)
599 ("glib:bin" ,glib "bin") ; for glib-mkenums
171ae35c
SB
600 ("gobject-introspection" ,gobject-introspection)
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)
608 ("libatasmart" ,libatasmart)
609 ("libgudev" ,libgudev)
5905114a
LC
610 ("polkit" ,polkit)
611 ("util-linux" ,util-linux)))
daa3b04c
LC
612 (outputs '("out"
613 "doc")) ;5 MiB of gtk-doc HTML
171ae35c
SB
614 (arguments
615 `(#:tests? #f ; requiring system message dbus
c0351459 616 #:disallowed-references ("doc") ;enforce separation of "doc"
171ae35c 617 #:configure-flags
aef5055f 618 (list "--enable-man"
171ae35c 619 "--localstatedir=/var"
35263cd8 620 "--enable-fhs-media" ;mount devices in /media, not /run/media
daa3b04c
LC
621 (string-append "--with-html-dir="
622 (assoc-ref %outputs "doc")
623 "/share/doc/udisks/html")
171ae35c 624 (string-append "--with-udevdir=" %output "/lib/udev"))
aef5055f
MC
625 #:make-flags
626 (let* ((docbook-xsl-name-version ,(string-append
627 (package-name docbook-xsl) "-"
628 (package-version docbook-xsl)))
629 (docbook-xsl-catalog-file (string-append
630 (assoc-ref %build-inputs "docbook-xsl")
631 "/xml/xsl/"
632 docbook-xsl-name-version
633 "/catalog.xml"))
634 (docbook-xml-catalog-file (string-append
635 (assoc-ref %build-inputs "docbook-xml")
636 "/xml/dtd/docbook/catalog.xml")))
637 ;; Reference the catalog files required to build the manpages.
638 (list (string-append "XML_CATALOG_FILES=" docbook-xsl-catalog-file " "
639 docbook-xml-catalog-file)))
171ae35c
SB
640 #:phases
641 (modify-phases %standard-phases
642 (add-before
643 'configure 'fix-girdir
644 (lambda _
645 ;; Install introspection data to its own output.
646 (substitute* "udisks/Makefile.in"
647 (("girdir = .*")
648 "girdir = $(datadir)/gir-1.0\n")
649 (("typelibsdir = .*")
5905114a
LC
650 "typelibsdir = $(libdir)/girepository-1.0\n"))))
651 (add-after 'install 'set-mount-file-name
652 (lambda* (#:key outputs inputs #:allow-other-keys)
653 ;; Tell 'udisksd' where to find the 'mount' command.
654 (let ((out (assoc-ref outputs "out"))
655 (utils (assoc-ref inputs "util-linux")))
656 (wrap-program (string-append out "/libexec/udisks2/udisksd")
657 `("PATH" ":" prefix
658 (,(string-append utils "/bin") ;for 'mount'
659 "/run/current-system/profile/bin"
660 "/run/current-system/profile/sbin")))
661 #t))))))
988e1dca 662 (home-page "https://www.freedesktop.org/wiki/Software/udisks/")
171ae35c
SB
663 (synopsis "Disk manager service")
664 (description
665 "UDisks provides interfaces to enumerate and perform operations on disks
666and storage devices. Any application (including unprivileged ones) can access
667the udisksd(8) daemon via the name org.freedesktop.UDisks2 on the system
668message bus.")
669 ;; The dynamic library are under LGPLv2+, others are GPLv2+.
670 (license (list license:gpl2+ license:lgpl2.0+))))
83a2e492
SB
671
672(define-public accountsservice
673 (package
674 (name "accountsservice")
571ffdeb 675 (version "0.6.43")
83a2e492
SB
676 (source (origin
677 (method url-fetch)
e1c644a0 678 (uri (string-append "https://www.freedesktop.org/software/"
83a2e492
SB
679 name "/" name "-" version ".tar.xz"))
680 (sha256
681 (base32
571ffdeb 682 "1k6n9079001sgcwlkq0bz6mkn4m8y4dwf6hs1qm85swcld5ajfzd"))))
83a2e492
SB
683 (build-system gnu-build-system)
684 (arguments
685 '(#:tests? #f ; XXX: tests require DocBook 4.1.2
686 #:configure-flags
687 '("--localstatedir=/var")
688 #:phases
689 (modify-phases %standard-phases
690 (add-before
691 'configure 'pre-configure
e76008db
AW
692 (lambda* (#:key inputs #:allow-other-keys)
693 ;; Don't try to create /var/lib/AccountsService.
83a2e492 694 (substitute* "src/Makefile.in"
571ffdeb 695 (("\\$\\(MKDIR_P\\).*/lib/AccountsService.*") "true"))
e76008db
AW
696 (let ((shadow (assoc-ref inputs "shadow")))
697 (substitute* '("src/user.c" "src/daemon.c")
698 (("/usr/sbin/usermod") (string-append shadow "/sbin/usermod"))
699 (("/usr/sbin/useradd") (string-append shadow "/sbin/useradd"))
700 (("/usr/sbin/userdel") (string-append shadow "/sbin/userdel"))
701 (("/usr/bin/passwd") (string-append shadow "/bin/passwd"))
702 (("/usr/bin/chage") (string-append shadow "/bin/chage"))))
571ffdeb 703 #t)))))
83a2e492
SB
704 (native-inputs
705 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
706 ("gobject-introspection" ,gobject-introspection)
707 ("intltool" ,intltool)
708 ("pkg-config" ,pkg-config)))
709 (inputs
e76008db
AW
710 `(("shadow" ,shadow)
711 ("polkit" ,polkit)))
83a2e492
SB
712 (home-page "http://www.freedesktop.org/wiki/Software/AccountsService/")
713 (synopsis "D-Bus interface for user account query and manipulation")
714 (description
715 "The AccountService project provides a set of D-Bus interfaces for querying
716and manipulating user account information and an implementation of these
717interfaces, based on the useradd, usermod and userdel commands.")
718 (license license:gpl3+)))
f3ad1490
SB
719
720(define-public libmbim
721 (package
722 (name "libmbim")
66056126 723 (version "1.12.4")
f3ad1490
SB
724 (source (origin
725 (method url-fetch)
726 (uri (string-append
03422bf8 727 "https://www.freedesktop.org/software/" name "/"
f3ad1490
SB
728 name "-" version ".tar.xz"))
729 (sha256
730 (base32
66056126 731 "0flpgzsqpjgybjkx4smbb4rjxf2w1xgd1v9gmz61rvl89qasznbv"))))
f3ad1490
SB
732 (build-system gnu-build-system)
733 (native-inputs
734 `(("glib:bin" ,glib "bin") ; for glib-mkenums
735 ("pkg-config" ,pkg-config)
736 ("python" ,python-wrapper)))
737 (propagated-inputs
738 `(("glib" ,glib))) ; required by mbim-glib.pc
739 (inputs
740 `(("libgudev" ,libgudev)))
741 (synopsis "Library to communicate with MBIM-powered modems")
66056126 742 (home-page "https://www.freedesktop.org/wiki/Software/libmbim/")
f3ad1490
SB
743 (description
744 "Libmbim is a GLib-based library for talking to WWAN modems and devices
745which speak the Mobile Interface Broadband Model (MBIM) protocol.")
746 (license
747 ;; The libmbim-glib library is released under the LGPLv2+ license.
748 ;; The mbimcli tool is released under the GPLv2+ license.
749 (list license:lgpl2.0+ license:gpl2+))))
5302c5ff
SB
750
751(define-public libqmi
752 (package
753 (name "libqmi")
1fb8e074 754 (version "1.14.2")
5302c5ff
SB
755 (source (origin
756 (method url-fetch)
757 (uri (string-append
97a08595 758 "https://www.freedesktop.org/software/" name "/"
5302c5ff
SB
759 name "-" version ".tar.xz"))
760 (sha256
761 (base32
1fb8e074 762 "0h009bzss4bal47nk21lyp4s3mmlcivhhaaj7r9229qvx85bi0v2"))))
5302c5ff
SB
763 (build-system gnu-build-system)
764 (native-inputs
765 `(("glib:bin" ,glib "bin") ; for glib-mkenums
766 ("pkg-config" ,pkg-config)
767 ("python" ,python-wrapper)))
768 (propagated-inputs
769 `(("glib" ,glib))) ; required by qmi-glib.pc
770 (synopsis "Library to communicate with QMI-powered modems")
97a08595 771 (home-page "https://www.freedesktop.org/wiki/Software/libqmi/")
5302c5ff
SB
772 (description
773 "Libqmi is a GLib-based library for talking to WWAN modems and devices
774which speak the Qualcomm MSM Interface (QMI) protocol.")
775 (license
776 ;; The libqmi-glib library is released under the LGPLv2+ license.
777 ;; The qmicli tool is released under the GPLv2+ license.
778 (list license:lgpl2.0+ license:gpl2+))))
1509a1dc
SB
779
780(define-public modem-manager
781 (package
782 (name "modem-manager")
473dbe9b 783 (version "1.4.14")
1509a1dc
SB
784 (source (origin
785 (method url-fetch)
786 (uri (string-append
e9f68a64 787 "https://www.freedesktop.org/software/ModemManager/"
1509a1dc
SB
788 "ModemManager-" version ".tar.xz"))
789 (sha256
790 (base32
473dbe9b 791 "18hvffwcncwz14kdzk42jbkh362n0kjv3kgx7axbqx572pawvrmb"))))
1509a1dc
SB
792 (build-system gnu-build-system)
793 (arguments
794 '(#:configure-flags
795 `(,(string-append "--with-udev-base-dir=" %output "/lib/udev"))))
796 (native-inputs
797 `(("glib:bin" ,glib "bin") ; for glib-mkenums
798 ("gobject-introspection" ,gobject-introspection)
799 ("intltool" ,intltool)
800 ("pkg-config" ,pkg-config)
801 ("vala" ,vala)
802 ;; For testing.
803 ("dbus" ,dbus)))
804 (propagated-inputs
805 `(("glib" ,glib))) ; required by mm-glib.pc
806 (inputs
807 `(("libgudev" ,libgudev)
808 ("libmbim" ,libmbim)
809 ("libqmi" ,libqmi)
810 ("polkit" ,polkit)))
811 (synopsis "Mobile broadband modems manager")
812 (home-page "http://www.freedesktop.org/wiki/Software/ModemManager/")
813 (description
814 "ModemManager is a DBus-activated daemon which controls mobile
815broadband (2G/3G/4G) devices and connections. Whether built-in devices, USB
816dongles, bluetooth-paired telephones, or professional RS232/USB devices with
817external power supplies, ModemManager is able to prepare and configure the
818modems and setup connections with them.")
819 (license license:gpl2+)))
6976e7d2
SB
820
821(define-public telepathy-logger
822 (package
823 (name "telepathy-logger")
824 (version "0.8.2")
825 (source (origin
826 (method url-fetch)
5cc3096c 827 (uri (string-append "https://telepathy.freedesktop.org/releases/"
6976e7d2
SB
828 name "/" name "-" version ".tar.bz2"))
829 (sha256
830 (base32
831 "1bjx85k7jyfi5pvl765fzc7q2iz9va51anrc2djv7caksqsdbjlg"))))
832 (build-system gnu-build-system)
833 (arguments
8758efe0
LF
834 '(#:parallel-tests? #f
835 #:phases
6976e7d2
SB
836 (modify-phases %standard-phases
837 (add-before 'check 'pre-check
838 (lambda _
839 (setenv "HOME" (getenv "TMPDIR"))
840 #t)))))
841 (native-inputs
842 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
843 ("gobject-introspection" ,gobject-introspection)
844 ("intltool" ,intltool)
845 ("pkg-config" ,pkg-config)
846 ("python" ,python-2)
847 ("xsltproc" ,libxslt)))
848 (propagated-inputs
849 ;; telepathy-logger-0.2.pc refers to all these.
850 `(("libxml2" ,libxml2)
851 ("sqlite" ,sqlite)
852 ("telepathy-glib" ,telepathy-glib)))
853 (synopsis "Telepathy logger library")
854 (home-page "http://telepathy.freedesktop.org/")
855 (description
856 "Telepathy logger is a headless observer client that logs information
857received by the Telepathy framework. It features pluggable backends to log
858different sorts of messages in different formats.")
859 (license license:lgpl2.1+)))
e6823279 860
bb8b543a
KK
861(define-public telepathy-idle
862 (package
863 (name "telepathy-idle")
864 (version "0.2.0")
865 (source (origin
866 (method url-fetch)
867 (uri (string-append "https://telepathy.freedesktop.org/releases/"
868 name "/" name "-" version ".tar.bz2"))
869 (sha256
870 (base32
871 "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh"))))
872 (build-system gnu-build-system)
873 (native-inputs
874 `(("pkg-config" ,pkg-config)))
875 (inputs
876 `(("xsltproc" ,libxslt)
877 ("python" ,python-2)
878 ("python-dbus" ,python2-dbus)))
879 (propagated-inputs
880 `(("telepathy-glib" ,telepathy-glib)))
881 (home-page "http://telepathy.freedesktop.org/")
882 (synopsis "Telepathy IRC connection manager")
883 (description
884 "Idle is an IRC connection manager for the Telepathy framework. This
885package enables usage of IRC channels and private messages in Telepathy instant
886messaging clients such as Empathy, GNOME Shell or KDE Telepathy.")
887 (license (list license:lgpl2.1 license:lgpl2.1+))))
888
261b3da5
KK
889(define-public telepathy-mission-control
890 (package
891 (name "telepathy-mission-control")
ac20cd7b 892 (version "5.16.4")
261b3da5
KK
893 (source (origin
894 (method url-fetch)
895 (uri (string-append "https://telepathy.freedesktop.org/releases/"
ac20cd7b 896 name "/" name "-" version ".tar.gz"))
261b3da5
KK
897 (sha256
898 (base32
ac20cd7b 899 "1jz6wwgsfxixha6ys2hbzbk5faqnj9kh2m5qdlgx5anqgandsscp"))))
261b3da5
KK
900 (build-system gnu-build-system)
901 (native-inputs
902 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
903 ("pkg-config" ,pkg-config)))
904 (inputs
905 `(("dconf" ,dconf)
906 ("gtk-doc" ,gtk-doc)
907 ("libgnome-keyring" ,libgnome-keyring)
908 ("python" ,python-2)
909 ("xsltproc" ,libxslt)))
910 (propagated-inputs
911 `(("telepathy-glib" ,telepathy-glib)))
912 (home-page "https://telepathy.freedesktop.org/wiki/Components/Mission_Control/")
913 (synopsis "Telepathy real-time communication framework management daemon")
914 (description
915 "Telepathy Mission Control 5 is an account manager and channel dispatcher
916for the Telepathy framework, allowing user interfaces and other clients to
917share connections to real-time communication services without conflicting.")
918 (license license:lgpl2.1)))
919
e6823279
SB
920(define-public colord-gtk
921 (package
922 (name "colord-gtk")
923 (version "0.1.26")
924 (source (origin
925 (method url-fetch)
5cc3096c 926 (uri (string-append "https://www.freedesktop.org/software/colord"
e6823279
SB
927 "/releases/" name "-" version ".tar.xz"))
928 (sha256
929 (base32
930 "0i9y3bb5apj6a0f8cx36l6mjzs7xc0k7nf0magmf58vy2mzhpl18"))))
931 (build-system gnu-build-system)
932 (arguments '(#:tests? #f)) ; require the colord system service
933 (native-inputs
934 `(("gobject-introspection" ,gobject-introspection)
935 ("intltool" ,intltool)
936 ("pkg-config" ,pkg-config)
937 ("vala" ,vala)))
938 (propagated-inputs
939 ;; colord-gtk.pc refers to all these.
940 `(("colord" ,colord)
941 ("gtk+" ,gtk+)))
942 (synopsis "GTK integration for libcolord")
943 (home-page "http://www.freedesktop.org/software/colord/")
944 (description
945 "This is a GTK+ convenience library for interacting with colord. It is
946useful for both applications which need colour management and applications that
947wish to perform colour calibration.")
948 (license license:lgpl2.1+)))
dfb01bae
LC
949
950(define-public libfprint
951 (package
952 (name "libfprint")
953 (version "0.6.0")
954 (source (origin
955 (method url-fetch)
956 (uri (string-append "https://people.freedesktop.org/~hadess/"
957 name "-" version ".tar.xz"))
958 (sha256
959 (base32
960 "1giwh2z63mn45galsjb59rhyrvgwcy01hvvp4g01iaa2snvzr0r5"))))
961 (build-system gnu-build-system)
962 (arguments
963 '(#:configure-flags (list (string-append "--with-udev-rules-dir="
964 (assoc-ref %outputs "out")
965 "/lib/udev/rules.d"))))
966 (native-inputs
967 `(("pkg-config" ,pkg-config)))
968 (inputs
969 `(("libusb" ,libusb)
970 ("nss" ,nss)
971 ("glib" ,glib)
972 ("eudev" ,eudev)
973 ("pixman" ,pixman)))
974 (home-page "https://www.freedesktop.org/wiki/Software/fprint/libfprint/")
975 (synopsis "Library to access fingerprint readers")
976 (description
977 "libfprint is a library designed to make it easy for application
978developers to add support for consumer fingerprint readers to their
979software.")
980 (license license:lgpl2.1+)))
9e3e972d
LC
981
982(define-public fprintd
983 (package
984 (name "fprintd")
985 (version "0.7.0")
986 (source (origin
987 (method url-fetch)
988 (uri (string-append
989 "https://people.freedesktop.org/~hadess/fprintd-"
990 version ".tar.xz"))
991 (sha256
992 (base32
993 "05915i0bv7q62fqrs5diqwr8dz3pwqa1c1ivcgggkjyw0xk4ldp5"))))
994 (build-system gnu-build-system)
5c3d6c1d
LC
995 (arguments
996 '(#:phases (modify-phases %standard-phases
997 (add-before 'build 'set-sysconfdir
998 (lambda* (#:key outputs #:allow-other-keys)
999 ;; Work around a bug whereby the 'SYSCONFDIR' macro
1000 ;; expands literally to '${prefix}/etc'.
1001 (let ((out (assoc-ref outputs "out")))
1002 (substitute* "src/main.c"
1003 (("SYSCONFDIR, \"fprintd.conf\"")
1004 (string-append "\"" out "/etc\", "
1005 "\"fprintd.conf\"")))
1006 #t))))))
9e3e972d
LC
1007 (native-inputs
1008 `(("pkg-config" ,pkg-config)
1009 ("intltool" ,intltool)))
1010 (inputs
1011 `(("libfprint" ,libfprint)
1012 ("dbus-glib" ,dbus-glib)
1013 ("polkit" ,polkit)
1014 ("linux-pam" ,linux-pam))) ;for pam_fprintd
1015 (home-page "https://www.freedesktop.org/wiki/Software/fprint/fprintd/")
1016 (synopsis "D-Bus daemon that exposes fingerprint reader functionality")
1017 (description
1018 "fprintd is a D-Bus daemon that offers functionality of libfprint, a
1019library to access fingerprint readers, over the D-Bus interprocess
1020communication bus. This daemon layer above libfprint solves problems related
1021to applications simultaneously competing for fingerprint readers.")
1022 (license license:gpl2+)))
324b0040
DM
1023
1024(define-public desktop-file-utils
1025 (package
1026 (name "desktop-file-utils")
1027 (version "0.23")
1028 (source (origin
1029 (method url-fetch)
1030 (uri (string-append "https://www.freedesktop.org/software/" name
1031 "/releases/" name "-" version ".tar.xz"))
1032 (sha256
1033 (base32
1034 "119kj2w0rrxkhg4f9cf5waa55jz1hj8933vh47vcjipcplql02bc"))))
1035 (build-system gnu-build-system)
1036 (native-inputs
1037 `(("pkg-config" ,pkg-config)))
1038 (inputs
1039 `(("glib" ,glib)))
1040 (home-page "http://www.freedesktop.org/wiki/Software/desktop-file-utils/")
1041 (synopsis "Utilities for working with desktop entries")
1042 (description
1043 "This package contains a few command line utilities for working with
1044desktop entries:
1045
1046desktop-file-validate: validates a desktop file and prints warnings/errors
1047 about desktop entry specification violations.
1048
1049desktop-file-install: installs a desktop file to the applications directory,
1050 optionally munging it a bit in transit.
1051
1052update-desktop-database: updates the database containing a cache of MIME types
1053 handled by desktop files.")
1054 (license license:gpl2+)))
b9bf08f0
AW
1055
1056(define-public xdg-user-dirs
1057 (package
1058 (name "xdg-user-dirs")
1059 (version "0.16")
1060 (source (origin
1061 (method url-fetch)
1062 (uri (string-append "http://user-dirs.freedesktop.org/releases/"
1063 name "-" version ".tar.gz"))
1064 (sha256
1065 (base32 "1rp3c94hxjlfsryvwajklynfnrcvxplhwnjqc7395l89i0nb83vp"))))
1066 (build-system gnu-build-system)
1067 (native-inputs
1068 `(("gettext" ,gettext-minimal)
1069 ("docbook-xsl" ,docbook-xsl)
1070 ("docbook-xml" ,docbook-xml-4.3)
1071 ("xsltproc" ,libxslt)))
1072 (arguments
1073 `(#:phases
1074 (modify-phases %standard-phases
1075 (add-before 'build 'locate-catalog-files
1076 (lambda* (#:key inputs #:allow-other-keys)
1077 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1078 "/xml/dtd/docbook"))
1079 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
1080 "/xml/xsl/docbook-xsl-"
1081 ,(package-version docbook-xsl))))
1082 (for-each (lambda (file)
1083 (substitute* file
1084 (("http://.*/docbookx\\.dtd")
1085 (string-append xmldoc "/docbookx.dtd"))))
1086 (find-files "man" "\\.xml$"))
1087 (substitute* "man/Makefile"
1088 (("http://.*/docbook\\.xsl")
1089 (string-append xsldoc "/manpages/docbook.xsl")))
1090 #t))))))
1091 (home-page "https://www.freedesktop.org/wiki/Software/xdg-user-dirs/")
1092 (synopsis "Tool to help manage \"well known\" user directories")
1093 (description "xdg-user-dirs is a tool to help manage \"well known\" user
1094directories, such as the desktop folder or the music folder. It also handles
1095localization (i.e. translation) of the file names. Designed to be
1096automatically run when a user logs in, xdg-user-dirs can also be run
1097manually by a user.")
1098 (license license:gpl2)))