gnu: evolution-data-server: Do not split outputs.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016, 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;;
41 ;;; This file is part of GNU Guix.
42 ;;;
43 ;;; GNU Guix is free software; you can redistribute it and/or modify it
44 ;;; under the terms of the GNU General Public License as published by
45 ;;; the Free Software Foundation; either version 3 of the License, or (at
46 ;;; your option) any later version.
47 ;;;
48 ;;; GNU Guix is distributed in the hope that it will be useful, but
49 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
50 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
51 ;;; GNU General Public License for more details.
52 ;;;
53 ;;; You should have received a copy of the GNU General Public License
54 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
55
56 (define-module (gnu packages gnome)
57 #:use-module (gnu packages)
58 #:use-module (gnu packages admin)
59 #:use-module (gnu packages aspell)
60 #:use-module (gnu packages autotools)
61 #:use-module (gnu packages avahi)
62 #:use-module (gnu packages backup)
63 #:use-module (gnu packages base)
64 #:use-module (gnu packages bash)
65 #:use-module (gnu packages bison)
66 #:use-module (gnu packages build-tools)
67 #:use-module (gnu packages calendar)
68 #:use-module (gnu packages cdrom)
69 #:use-module (gnu packages check)
70 #:use-module (gnu packages cmake)
71 #:use-module (gnu packages compression)
72 #:use-module (gnu packages cups)
73 #:use-module (gnu packages curl)
74 #:use-module (gnu packages cyrus-sasl)
75 #:use-module (gnu packages databases)
76 #:use-module (gnu packages dbm)
77 #:use-module (gnu packages djvu)
78 #:use-module (gnu packages dns)
79 #:use-module (gnu packages docbook)
80 #:use-module (gnu packages documentation)
81 #:use-module (gnu packages enchant)
82 #:use-module (gnu packages flex)
83 #:use-module (gnu packages fonts)
84 #:use-module (gnu packages file-systems)
85 #:use-module (gnu packages fontutils)
86 #:use-module (gnu packages freedesktop)
87 #:use-module (gnu packages game-development)
88 #:use-module (gnu packages gcc)
89 #:use-module (gnu packages gettext)
90 #:use-module (gnu packages ghostscript)
91 #:use-module (gnu packages gl)
92 #:use-module (gnu packages glib)
93 #:use-module (gnu packages gnupg)
94 #:use-module (gnu packages gnuzilla)
95 #:use-module (gnu packages gperf)
96 #:use-module (gnu packages graphviz)
97 #:use-module (gnu packages gstreamer)
98 #:use-module (gnu packages gtk)
99 #:use-module (gnu packages guile)
100 #:use-module (gnu packages ibus)
101 #:use-module (gnu packages image)
102 #:use-module (gnu packages imagemagick)
103 #:use-module (gnu packages inkscape)
104 #:use-module (gnu packages iso-codes)
105 #:use-module (gnu packages kerberos)
106 #:use-module (gnu packages libcanberra)
107 #:use-module (gnu packages libunistring)
108 #:use-module (gnu packages libusb)
109 #:use-module (gnu packages linux)
110 #:use-module (gnu packages lirc)
111 #:use-module (gnu packages lua)
112 #:use-module (gnu packages mail)
113 #:use-module (gnu packages multiprecision)
114 #:use-module (gnu packages music)
115 #:use-module (gnu packages ncurses)
116 #:use-module (gnu packages nettle)
117 #:use-module (gnu packages networking)
118 #:use-module (gnu packages ninja)
119 #:use-module (gnu packages nss)
120 #:use-module (gnu packages openldap)
121 #:use-module (gnu packages password-utils)
122 #:use-module (gnu packages pcre)
123 #:use-module (gnu packages pdf)
124 #:use-module (gnu packages perl)
125 #:use-module (gnu packages photo)
126 #:use-module (gnu packages pkg-config)
127 #:use-module (gnu packages polkit)
128 #:use-module (gnu packages popt)
129 #:use-module (gnu packages pretty-print)
130 #:use-module (gnu packages pulseaudio)
131 #:use-module (gnu packages python)
132 #:use-module (gnu packages python-crypto)
133 #:use-module (gnu packages python-web)
134 #:use-module (gnu packages python-xyz)
135 #:use-module (gnu packages rdesktop)
136 #:use-module (gnu packages readline)
137 #:use-module (gnu packages ruby)
138 #:use-module (gnu packages rust)
139 #:use-module (gnu packages samba)
140 #:use-module (gnu packages scanner)
141 #:use-module (gnu packages selinux)
142 #:use-module (gnu packages slang)
143 #:use-module (gnu packages speech)
144 #:use-module (gnu packages spice)
145 #:use-module (gnu packages sqlite)
146 #:use-module (gnu packages ssh)
147 #:use-module (gnu packages tex)
148 #:use-module (gnu packages time)
149 #:use-module (gnu packages tls)
150 #:use-module (gnu packages version-control)
151 #:use-module (gnu packages video)
152 #:use-module (gnu packages virtualization)
153 #:use-module (gnu packages vpn)
154 #:use-module (gnu packages web)
155 #:use-module (gnu packages web)
156 #:use-module (gnu packages webkit)
157 #:use-module (gnu packages xdisorg)
158 #:use-module (gnu packages xiph)
159 #:use-module (gnu packages xml)
160 #:use-module (gnu packages xorg)
161 #:use-module (gnu packages xorg)
162 #:use-module (gnu artwork)
163 #:use-module (guix build-system cmake)
164 #:use-module (guix build-system glib-or-gtk)
165 #:use-module (guix build-system gnu)
166 #:use-module (guix build-system meson)
167 #:use-module (guix build-system python)
168 #:use-module (guix build-system trivial)
169 #:use-module (guix download)
170 #:use-module (guix git-download)
171 #:use-module ((guix licenses) #:prefix license:)
172 #:use-module (guix packages)
173 #:use-module (guix utils)
174 #:use-module (guix gexp)
175 #:use-module (ice-9 match)
176 #:use-module (srfi srfi-1))
177
178 (define-public brasero
179 (package
180 (name "brasero")
181 (version "3.12.2")
182 (source (origin
183 (method url-fetch)
184 (uri (string-append "mirror://gnome/sources/" name "/"
185 (version-major+minor version) "/"
186 name "-" version ".tar.xz"))
187 (sha256
188 (base32
189 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
190 (build-system glib-or-gtk-build-system)
191 (arguments
192 `(#:configure-flags (list
193 (string-append "--with-girdir="
194 (assoc-ref %outputs "out")
195 "/share/gir-1.0")
196 (string-append "--with-typelibdir="
197 (assoc-ref %outputs "out")
198 "/lib/girepository-1.0"))
199 #:phases
200 (modify-phases %standard-phases
201 (add-before 'configure 'embed-growisofs
202 (lambda* (#:key inputs #:allow-other-keys)
203 (substitute* "plugins/growisofs/burn-growisofs.c"
204 (("\"growisofs") (string-append "\"" (which "growisofs"))))
205 #t)))))
206 (propagated-inputs
207 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
208 (native-inputs
209 `(("intltool" ,intltool)
210 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
211 ("gobject-introspection" ,gobject-introspection)
212 ("pkg-config" ,pkg-config)))
213 (inputs
214 `(("dvd+rw-tools" ,dvd+rw-tools)
215 ("glib" ,glib)
216 ("gnome-doc-utils" ,gnome-doc-utils)
217 ("gstreamer" ,gstreamer)
218 ("gst-plugins-base" ,gst-plugins-base)
219 ("gtk+" ,gtk+)
220 ("itstool" ,itstool)
221 ("libcanberra" ,libcanberra)
222 ("libice" ,libice)
223 ("libnotify" ,libnotify)
224 ("libsm" ,libsm)
225 ("libxml2" ,libxml2)
226 ("nettle" ,nettle)
227 ("totem-pl-parser" ,totem-pl-parser)))
228 (home-page "https://projects.gnome.org/brasero/")
229 (synopsis "CD/DVD burning tool for Gnome")
230 (description "Brasero is an application to burn CD/DVD for the Gnome
231 Desktop. It is designed to be as simple as possible and has some unique
232 features to enable users to create their discs easily and quickly.")
233 (license license:gpl2+)))
234
235 (define-public deja-dup
236 (package
237 (name "deja-dup")
238 (version "34.3")
239 (source (origin
240 (method url-fetch)
241 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
242 (sha256
243 (base32
244 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
245 (patches
246 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
247 (build-system glib-or-gtk-build-system)
248 (arguments
249 `(#:modules ((guix build gnu-build-system)
250 ((guix build cmake-build-system) #:prefix cmake:)
251 (guix build glib-or-gtk-build-system)
252 (guix build utils))
253 #:imported-modules (,@%glib-or-gtk-build-system-modules
254 (guix build cmake-build-system))
255 #:test-target "test"
256 #:configure-flags (list (string-append
257 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
258 (string-append
259 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
260 #:phases
261 (modify-phases %standard-phases
262 (add-after 'unpack 'patch-lockfile-deletion
263 (lambda rest
264 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
265 (("/bin/rm")
266 (which "rm")))))
267 (replace 'configure
268 (assoc-ref cmake:%standard-phases 'configure))
269 (delete 'check) ;; Fails due to issues with DBus
270 (add-after 'install 'wrap-deja-dup
271 (lambda* (#:key inputs outputs #:allow-other-keys)
272 (let ((python (assoc-ref inputs "python"))
273 (python-path (getenv "PYTHONPATH"))
274 (duplicity (assoc-ref inputs "duplicity"))
275 (out (assoc-ref outputs "out")))
276 (for-each
277 (lambda (program)
278 (wrap-program program
279 `("PATH" ":" prefix (,(string-append python "/bin")
280 ,(string-append duplicity "/bin"))))
281 (wrap-program program
282 `("PYTHONPATH" ":" prefix (,python-path))))
283
284 (find-files (string-append out "/bin")))
285 #t))))))
286 (inputs
287 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
288 ("gobject-introspection" ,gobject-introspection)
289 ("duplicity" ,duplicity)
290 ("python" ,python-2)
291 ("python-pygobject" ,python2-pygobject)
292 ("gtk+" ,gtk+)
293 ("libnotify" ,libnotify)
294 ("libpeas" ,libpeas)
295 ("libsecret" ,libsecret)
296 ("packagekit" ,packagekit)))
297 (native-inputs
298 `(("pkg-config" ,pkg-config)
299 ("vala" ,vala)
300 ("gettext" ,gettext-minimal)
301 ("itstool" ,itstool)
302 ("intltool" ,intltool)
303 ("cmake" ,cmake-minimal)))
304 (home-page "https://launchpad.net/deja-dup")
305 (synopsis "Simple backup tool, for regular encrypted backups")
306 (description
307 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
308 uses duplicity as the backend, which supports incremental backups and storage
309 either on a local, or remote machine via a number of methods.")
310 (license license:gpl3+)))
311
312 (define-public dia
313 ;; This version from GNOME's repository includes fixes for compiling with
314 ;; recent versions of the build tools. The latest activity on the
315 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
316 ;; fixes in 2016.
317 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
318 (package
319 (name "dia")
320 (version (string-append "0.97.2-" (string-take commit 7)))
321 (source (origin
322 (method git-fetch)
323 (uri (git-reference
324 (url "https://git.gnome.org/browse/dia")
325 (commit commit)))
326 (file-name (string-append name "-" version "-checkout"))
327 (sha256
328 (base32
329 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
330 (build-system gnu-build-system)
331 (inputs
332 `(("glib" ,glib "bin")
333 ("pango" ,pango)
334 ("gdk-pixbuf" ,gdk-pixbuf)
335 ("gtk+" ,gtk+-2)
336 ("libxml2" ,libxml2)
337 ("freetype" ,freetype)
338 ("libart-lgpl" ,libart-lgpl)))
339 (native-inputs
340 `(("intltool" ,intltool)
341 ("pkg-config" ,pkg-config)
342 ("automake" ,automake)
343 ("autoconf" ,autoconf)
344 ("libtool" ,libtool)
345 ("perl" ,perl)
346 ("python-wrapper" ,python-wrapper)))
347 (arguments
348 `(#:phases
349 (modify-phases %standard-phases
350 (add-after 'unpack 'run-autogen
351 (lambda _
352 (system* "sh" "autogen.sh"))))))
353 (home-page "https://wiki.gnome.org/Apps/Dia")
354 (synopsis "Diagram creation for GNOME")
355 (description "Dia can be used to draw different types of diagrams, and
356 includes support for UML static structure diagrams (class diagrams), entity
357 relationship modeling, and network diagrams. The program supports various file
358 formats like PNG, SVG, PDF and EPS.")
359 (license license:gpl2+))))
360
361 ;; This is the unstable release, but it is required for the current stable
362 ;; release of gvfs (1.38.1).
363 (define-public libgdata
364 (package
365 (name "libgdata")
366 (version "0.17.9")
367 (source (origin
368 (method url-fetch)
369 (uri (string-append "mirror://gnome/sources/" name "/"
370 (version-major+minor version) "/"
371 name "-" version ".tar.xz"))
372 (sha256
373 (base32
374 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
375 (build-system gnu-build-system)
376 (arguments
377 '(#:phases
378 (modify-phases %standard-phases
379 (add-before 'check 'disable-failing-tests
380 (lambda _
381 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
382 ;; They have been removed in libgdata 0.17.6, so just do the same.
383 (substitute* "gdata/tests/Makefile"
384 (("picasaweb\\$\\(EXEEXT\\) ") ""))
385 #t)))))
386 (native-inputs
387 `(("glib:bin" ,glib "bin")
388 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
389 ("intltool" ,intltool)
390 ("pkg-config" ,pkg-config)
391 ("uhttpmock" ,uhttpmock)))
392 (inputs
393 `(("cyrus-sasl" ,cyrus-sasl)
394 ("glib-networking" ,glib-networking)))
395 (propagated-inputs
396 `(("gcr" ,gcr)
397 ("glib" ,glib)
398 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
399 ("json-glib" ,json-glib)
400 ("liboauth" ,liboauth)
401 ("libsoup" ,libsoup)
402 ("libxml2" ,libxml2)))
403 (home-page "https://wiki.gnome.org/Projects/libgdata")
404 (synopsis "Library for accessing online service APIs")
405 (description
406 "libgdata is a GLib-based library for accessing online service APIs using
407 the GData protocol — most notably, Google's services. It provides APIs to
408 access the common Google services, and has full asynchronous support.")
409 (license license:lgpl2.1+)))
410
411 (define-public libgxps
412 (package
413 (name "libgxps")
414 (version "0.3.1")
415 (source (origin
416 (method url-fetch)
417 (uri (string-append "mirror://gnome/sources/" name "/"
418 (version-major+minor version) "/"
419 name "-" version ".tar.xz"))
420 (sha256
421 (base32
422 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
423 (build-system meson-build-system)
424 (native-inputs
425 `(("gobject-introspection" ,gobject-introspection)
426 ("pkg-config" ,pkg-config)))
427 (inputs
428 `(("gtk+" ,gtk+)
429 ("libjpeg" ,libjpeg-turbo)
430 ("lcms" ,lcms)
431 ("libtiff" ,libtiff)
432 ("nettle" ,nettle)))
433 (propagated-inputs
434 ;; In Requires of libgxps.pc.
435 `(("cairo" ,cairo)
436 ("glib" ,glib)
437 ("libarchive" ,libarchive)))
438 (home-page "https://wiki.gnome.org/Projects/libgxps")
439 (synopsis "GObject-based library for handling and rendering XPS documents")
440 (description
441 "libgxps is a GObject-based library for handling and rendering XPS
442 documents. This package also contains binaries that can convert XPS documents
443 to other formats.")
444 (license license:lgpl2.1+)))
445
446 (define-public gnome-common
447 (package
448 (name "gnome-common")
449 (version "3.18.0")
450 (source
451 (origin
452 (method url-fetch)
453 (uri (string-append "mirror://gnome/sources/" name "/"
454 (version-major+minor version) "/"
455 name "-" version ".tar.xz"))
456 (sha256
457 (base32
458 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
459 (build-system gnu-build-system)
460 (home-page "https://www.gnome.org/")
461 (synopsis "Bootstrap GNOME modules built from Git")
462 (description "gnome-common contains various files needed to bootstrap
463 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
464 can be used to configure a source directory checked out from Git and some
465 commonly used macros.")
466 (license license:gpl2+)))
467
468 (define-public gnome-desktop
469 (package
470 (name "gnome-desktop")
471 (version "3.30.2")
472 (source
473 (origin
474 (method url-fetch)
475 (uri (string-append "mirror://gnome/sources/" name "/"
476 (version-major+minor version) "/"
477 name "-" version ".tar.xz"))
478 (sha256
479 (base32
480 "0k6iccfj9naw42dl2mgljfvk12dmvg06plg86qd81nksrf9ycxal"))))
481 (build-system gnu-build-system)
482 (arguments
483 '(#:phases
484 (modify-phases %standard-phases
485 (add-before 'configure 'patch-path
486 (lambda* (#:key inputs #:allow-other-keys)
487 (let ((libc (assoc-ref inputs "libc")))
488 (substitute* "libgnome-desktop/gnome-languages.c"
489 (("\"locale\"")
490 (string-append "\"" libc "/bin/locale\"")))
491 #t))))))
492 (native-inputs
493 `(("gobject-introspection" ,gobject-introspection)
494 ("itstool" ,itstool)
495 ("intltool" ,intltool)
496 ("pkg-config" ,pkg-config)
497 ("xmllint" ,libxml2)))
498 (propagated-inputs
499 ;; Required by gnome-desktop-3.0.pc.
500 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
501 ("gtk+" ,gtk+)))
502 (inputs
503 `(("gdk-pixbuf" ,gdk-pixbuf)
504 ("glib" ,glib)
505 ("iso-codes" ,iso-codes)
506 ("libseccomp" ,libseccomp)
507 ("libx11" ,libx11)
508 ("libxext" ,libxext)
509 ("libxkbfile" ,libxkbfile)
510 ("libxrandr" ,libxrandr)
511 ("xkeyboard-config" ,xkeyboard-config)))
512 (home-page "https://www.gnome.org/")
513 (synopsis
514 "Libgnome-desktop, gnome-about, and desktop-wide documents")
515 (description
516 "The libgnome-desktop library provides API shared by several applications
517 on the desktop, but that cannot live in the platform for various reasons.
518 There is no API or ABI guarantee, although we are doing our best to provide
519 stability. Documentation for the API is available with gtk-doc.
520
521 The gnome-about program helps find which version of GNOME is installed.")
522 ; Some bits under the LGPL.
523 (license license:gpl2+)))
524
525 (define-public gnome-doc-utils
526 (package
527 (name "gnome-doc-utils")
528 (version "0.20.10")
529 (source
530 (origin
531 (method url-fetch)
532 (uri (string-append "mirror://gnome/sources/" name "/"
533 (version-major+minor version) "/"
534 name "-" version ".tar.xz"))
535 (sha256
536 (base32
537 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
538 (build-system gnu-build-system)
539 (native-inputs
540 `(("intltool" ,intltool)
541 ("docbook-xml" ,docbook-xml-4.4)
542 ("python2-libxml2" ,python2-libxml2)
543 ("libxml2" ,libxml2)
544 ("libxslt" ,libxslt)
545 ("pkg-config" ,pkg-config)
546 ("python-2" ,python-2)))
547 (home-page "https://wiki.gnome.org/GnomeDocUtils")
548 (synopsis
549 "Documentation utilities for the Gnome project")
550 (description
551 "Gnome-doc-utils is a collection of documentation utilities for the
552 Gnome project. It includes xml2po tool which makes it easier to translate
553 and keep up to date translations of documentation.")
554 (license license:gpl2+))) ; xslt under lgpl
555
556 (define-public gnome-disk-utility
557 (package
558 (name "gnome-disk-utility")
559 (version "3.30.2")
560 (source (origin
561 (method url-fetch)
562 (uri (string-append "mirror://gnome/sources/" name "/"
563 (version-major+minor version) "/"
564 name "-" version ".tar.xz"))
565 (sha256
566 (base32
567 "1365fabz3q7n3bl775z82m1nzg18birxxyd7l2ssbbkqrx3h7wgi"))))
568 (build-system meson-build-system)
569 (native-inputs
570 `(("glib:bin" ,glib "bin")
571 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
572 ("intltool" ,intltool)
573 ("pkg-config" ,pkg-config)
574 ("docbook-xml" ,docbook-xml)
575 ("docbook-xsl" ,docbook-xsl)
576 ("libxml2" ,libxml2)
577 ("libxslt" ,libxslt)))
578 (inputs
579 `(("glib" ,glib)
580 ("appstream-glib" ,appstream-glib)
581 ("gnome-settings-daemon" ,gnome-settings-daemon)
582 ("gtk+" ,gtk+)
583 ("libcanberra" ,libcanberra)
584 ("libdvdread" ,libdvdread)
585 ("libnotify" ,libnotify)
586 ("libpwquality" ,libpwquality)
587 ("libsecret" ,libsecret)
588 ("udisks" ,udisks)))
589 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
590 (synopsis "Disk management utility for GNOME")
591 (description "Disk management utility for GNOME.")
592 (license license:gpl2+)))
593
594 (define-public gcr
595 (package
596 (name "gcr")
597 (version "3.28.0")
598 (source (origin
599 (method url-fetch)
600 (uri (string-append "mirror://gnome/sources/" name "/"
601 (version-major+minor version) "/"
602 name "-" version ".tar.xz"))
603 (sha256
604 (base32
605 "02xgky22xgvhgd525khqh64l5i21ca839fj9jzaqdi3yvb8pbq8m"))))
606 (build-system gnu-build-system)
607 (arguments
608 '(#:phases
609 (modify-phases %standard-phases
610 ;; These fail because /var/lib/dbus/machine-id is not present in the
611 ;; build environment.
612 (add-after 'unpack 'disable-failing-tests
613 (lambda _
614 (substitute* "gcr/test-system-prompt.c"
615 (("g_test_add") "//")
616 (("return.*") "return 0;"))
617 #t))
618 (add-before 'check 'pre-check
619 (lambda _
620 ;; Some tests expect to write to $HOME.
621 (setenv "HOME" "/tmp")
622 #t)))))
623 (inputs
624 `(("dbus" ,dbus)
625 ("gnupg" ,gnupg) ;called as a child process during tests
626 ("libgcrypt" ,libgcrypt)))
627 (native-inputs
628 `(("python" ,python-2) ;for tests
629 ("pkg-config" ,pkg-config)
630 ("glib" ,glib "bin")
631 ("gobject-introspection" ,gobject-introspection)
632 ("intltool" ,intltool)
633 ("libxml2" ,libxml2)
634 ("xsltproc" ,libxslt)))
635 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
636 (propagated-inputs
637 `(("p11-kit" ,p11-kit)
638 ("glib" ,glib)
639 ("gtk+" ,gtk+)))
640 (home-page "https://www.gnome.org")
641 (synopsis "Libraries for displaying certificates and accessing key stores")
642 (description
643 "The GCR package contains libraries used for displaying certificates and
644 accessing key stores. It also provides the viewer for crypto files on the
645 GNOME Desktop.")
646 (license license:lgpl2.1+)))
647
648 (define-public libgnome-keyring
649 (package
650 (name "libgnome-keyring")
651 (version "3.12.0")
652 (source (origin
653 (method url-fetch)
654 (uri (string-append "mirror://gnome/sources/" name "/"
655 (version-major+minor version) "/"
656 name "-" version ".tar.xz"))
657 (sha256
658 (base32
659 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
660 (build-system gnu-build-system)
661 (inputs
662 `(("libgcrypt" ,libgcrypt)
663 ("dbus" ,dbus)))
664 (native-inputs
665 `(("pkg-config" ,pkg-config)
666 ("glib" ,glib "bin")
667 ("intltool" ,intltool)))
668 (propagated-inputs
669 ;; Referred to in .h files and .pc.
670 `(("glib" ,glib)))
671 (home-page "https://www.gnome.org")
672 (synopsis "Accessing passwords from the GNOME keyring")
673 (description
674 "Client library to access passwords from the GNOME keyring.")
675
676 ;; Though a couple of files are LGPLv2.1+.
677 (license license:lgpl2.0+)))
678
679 (define-public gnome-keyring
680 (package
681 (name "gnome-keyring")
682 (version "3.28.2")
683 (source (origin
684 (method url-fetch)
685 (uri (string-append "mirror://gnome/sources/" name "/"
686 (version-major+minor version) "/"
687 name "-" version ".tar.xz"))
688 (sha256
689 (base32
690 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
691 (build-system gnu-build-system)
692 (arguments
693 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
694 ;not exist
695 #:configure-flags
696 (list
697 (string-append "--with-pkcs11-config="
698 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
699 (string-append "--with-pkcs11-modules="
700 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
701 #:phases
702 (modify-phases %standard-phases
703 (add-after 'unpack 'fix-/bin/sh-reference
704 (lambda _
705 (substitute* "po/Makefile.in.in"
706 (("/bin/sh") (which "sh")))
707 #t))
708 (add-after 'unpack 'fix-docbook
709 (lambda* (#:key inputs #:allow-other-keys)
710 (substitute* "docs/Makefile.am"
711 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
712 (string-append (assoc-ref inputs "docbook-xsl")
713 "/xml/xsl/docbook-xsl-"
714 ,(package-version docbook-xsl)
715 "/manpages/docbook.xsl")))
716 (setenv "XML_CATALOG_FILES"
717 (string-append (assoc-ref inputs "docbook-xml")
718 "/xml/dtd/docbook/catalog.xml"))
719 ;; Rerun the whole thing to avoid version mismatch ("This is
720 ;; Automake 1.15.1, but the definition used by this
721 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
722 ;; use 'autoreconf' because it insists on running 'libtoolize'.
723 (invoke "autoconf")
724 (invoke "aclocal")
725 (invoke "automake" "-ac"))))))
726 (inputs
727 `(("libgcrypt" ,libgcrypt)
728 ("linux-pam" ,linux-pam)
729 ("openssh" ,openssh)
730 ("dbus" ,dbus)
731 ("gcr" ,gcr)))
732 (native-inputs
733 `(("pkg-config" ,pkg-config)
734 ("glib" ,glib "bin")
735 ("glib" ,glib) ; for m4 macros
736 ("python" ,python-2) ;for tests
737 ("intltool" ,intltool)
738 ("autoconf" ,autoconf)
739 ("automake" ,automake)
740 ("libxslt" ,libxslt) ;for documentation
741 ("docbook-xml" ,docbook-xml-4.2)
742 ("docbook-xsl" ,docbook-xsl)))
743 (home-page "https://www.gnome.org")
744 (synopsis "Daemon to store passwords and encryption keys")
745 (description
746 "gnome-keyring is a program that keeps passwords and other secrets for
747 users. It is run as a daemon in the session, similar to ssh-agent, and other
748 applications locate it via an environment variable or D-Bus.
749
750 The program can manage several keyrings, each with its own master password,
751 and there is also a session keyring which is never stored to disk, but
752 forgotten when the session ends.")
753 (license license:lgpl2.1+)))
754
755 (define-public evince
756 (package
757 (name "evince")
758 (version "3.30.2")
759 (source (origin
760 (method url-fetch)
761 (uri (string-append "mirror://gnome/sources/" name "/"
762 (version-major+minor version) "/"
763 name "-" version ".tar.xz"))
764 (sha256
765 (base32
766 "0k7jln6dpg4bpv61niicjzkzyq6fhb3yfld7pc8ck71c8pmvsnx9"))))
767 (build-system glib-or-gtk-build-system)
768 (arguments
769 `(#:configure-flags '("--disable-nautilus")
770 #:phases
771 (modify-phases %standard-phases
772 (add-before 'install 'skip-gtk-update-icon-cache
773 ;; Don't create 'icon-theme.cache'.
774 (lambda _
775 (substitute* "data/Makefile"
776 (("gtk-update-icon-cache") "true"))
777 #t)))))
778 (inputs
779 `(("libarchive" ,libarchive)
780 ("libgxps" ,libgxps)
781 ("libspectre" ,libspectre)
782 ("djvulibre" ,djvulibre)
783 ("ghostscript" ,ghostscript)
784 ("poppler" ,poppler)
785 ("libtiff" ,libtiff)
786 ;; TODO:
787 ;; Build libkpathsea as a shared library for DVI support.
788 ;; ("libkpathsea" ,texlive-bin)
789 ("gnome-desktop" ,gnome-desktop)
790 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
791 ("gspell" ,gspell)
792 ("libgnome-keyring" ,libgnome-keyring)
793 ("adwaita-icon-theme" ,adwaita-icon-theme)
794 ("gdk-pixbuf" ,gdk-pixbuf)
795 ("atk" ,atk)
796 ("pango" ,pango)
797 ("gtk+" ,gtk+)
798 ("glib" ,glib)
799 ("libxml2" ,libxml2)
800 ("libsm" ,libsm)
801 ("libice" ,libice)
802 ("shared-mime-info" ,shared-mime-info)
803 ("dconf" ,dconf)
804 ("libcanberra" ,libcanberra)
805 ("libsecret" ,libsecret)
806
807 ;; XXX: 'libarchive.pc' adds '-lnettle' so Nettle should really be
808 ;; propagated from there.
809 ("nettle" ,nettle)
810
811 ;; For tests.
812 ("dogtail" ,python2-dogtail)))
813 (native-inputs
814 `(("itstool" ,itstool)
815 ("intltool" ,intltool)
816 ("glib" ,glib "bin")
817 ("pkg-config" ,pkg-config)
818 ("xmllint" ,libxml2)))
819 (home-page
820 "https://www.gnome.org/projects/evince/")
821 (synopsis "GNOME's document viewer")
822 (description
823 "Evince is a document viewer for multiple document formats. It
824 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
825 of Evince is to replace the multiple document viewers that exist
826 on the GNOME Desktop with a single simple application.")
827 (license license:gpl2+)))
828
829 (define-public gsettings-desktop-schemas
830 (package
831 (name "gsettings-desktop-schemas")
832 (version "3.28.1")
833 (source
834 (origin
835 (method url-fetch)
836 (uri (string-append "mirror://gnome/sources/" name "/"
837 (version-major+minor version) "/"
838 name "-" version ".tar.xz"))
839 (sha256
840 (base32
841 "0bshwm49cd01ighsxqlbqn10q0ch71ff99gcrx8pr2gyky2ad3pq"))))
842 (build-system gnu-build-system)
843 (inputs
844 `(("glib" ,glib)))
845 (native-inputs
846 `(("intltool" ,intltool)
847 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
848 ("gobject-introspection" ,gobject-introspection)
849 ("pkg-config" ,pkg-config)))
850 (home-page "https://launchpad.net/gsettings-desktop-schemas")
851 (synopsis
852 "GNOME settings for various desktop components")
853 (description
854 "Gsettings-desktop-schemas contains a collection of GSettings schemas
855 for settings shared by various components of the GNOME desktop.")
856 (license license:lgpl2.1+)))
857
858 (define-public icon-naming-utils
859 (package
860 (name "icon-naming-utils")
861 (version "0.8.90")
862 (source
863 (origin
864 (method url-fetch)
865 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
866 version ".tar.bz2"))
867 (sha256
868 (base32
869 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
870 (build-system gnu-build-system)
871 (inputs
872 `(("perl" ,perl)
873 ("perl-xml-simple" ,perl-xml-simple)))
874 (arguments
875 '(#:phases
876 (modify-phases %standard-phases
877 (add-after 'install 'set-load-paths
878 ;; Tell 'icon-name-mapping' where XML::Simple is.
879 (lambda* (#:key outputs #:allow-other-keys)
880 (let* ((out (assoc-ref outputs "out"))
881 (prog (string-append out "/libexec/icon-name-mapping")))
882 (wrap-program
883 prog
884 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
885 #t)))))
886 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
887 (synopsis
888 "Utility to implement the Freedesktop Icon Naming Specification")
889 (description
890 "To help with the transition to the Freedesktop Icon Naming
891 Specification, the icon naming utility maps the icon names used by the
892 GNOME and KDE desktops to the icon names proposed in the specification.")
893 (license license:lgpl2.1+)))
894
895 (define-public gnome-icon-theme
896 (package
897 (name "gnome-icon-theme")
898 (version "3.12.0")
899 (source
900 (origin
901 (method url-fetch)
902 (uri (string-append "mirror://gnome/sources/" name "/"
903 (version-major+minor version) "/"
904 name "-" version ".tar.xz"))
905 (sha256
906 (base32
907 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
908 (build-system gnu-build-system)
909 (arguments
910 '(#:configure-flags
911 ;; Don't create 'icon-theme.cache'.
912 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
913 (true (string-append coreutils "/bin/true")))
914 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
915 (native-inputs
916 `(("icon-naming-utils" ,icon-naming-utils)
917 ("intltool" ,intltool)
918 ("pkg-config" ,pkg-config)))
919 (home-page "https://art.gnome.org/")
920 (synopsis
921 "GNOME icon theme")
922 (description
923 "Icons for the GNOME desktop.")
924 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
925
926 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
927 (define-public adwaita-icon-theme
928 (package (inherit gnome-icon-theme)
929 (name "adwaita-icon-theme")
930 (version "3.30.1")
931 (source (origin
932 (method url-fetch)
933 (uri (string-append "mirror://gnome/sources/" name "/"
934 (version-major+minor version) "/"
935 name "-" version ".tar.xz"))
936 (sha256
937 (base32
938 "1kp1lis3dr16jmlgycz1b29jsr6ir8wmqj6laqwlhs663cmjlxbd"))))
939 (native-inputs
940 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
941
942 (define-public tango-icon-theme
943 (package
944 (name "tango-icon-theme")
945 (version "0.8.90")
946 (source (origin
947 (method url-fetch)
948 (uri (string-append "http://tango.freedesktop.org/releases/"
949 "tango-icon-theme-" version ".tar.bz2"))
950 (sha256
951 (base32
952 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
953 (build-system gnu-build-system)
954 (native-inputs
955 `(("icon-naming-utils" ,icon-naming-utils)
956 ("intltool" ,intltool)
957 ("imagemagick" ,imagemagick)
958 ("pkg-config" ,pkg-config)))
959 (home-page "http://tango-project.org/")
960 (synopsis "Tango icon theme")
961 (description "This is an icon theme that follows the Tango visual
962 guidelines.")
963 (license license:public-domain)))
964
965 (define-public shared-mime-info
966 (package
967 (name "shared-mime-info")
968 (version "1.9")
969 (source (origin
970 (method url-fetch)
971 (uri (string-append "https://freedesktop.org/~hadess/"
972 "shared-mime-info-" version ".tar.xz"))
973 (sha256
974 (base32
975 "10ywzhzg8v1xmb9sz5xbqaci90id38knswigynyl33i29vn360aw"))))
976 (build-system gnu-build-system)
977 (arguments
978 ;; The build system appears not to be parallel-safe.
979 '(#:parallel-build? #f))
980 (inputs
981 `(("glib" ,glib)
982 ("libxml2" ,libxml2)))
983 (native-inputs
984 `(("intltool" ,intltool)
985 ("pkg-config" ,pkg-config)))
986 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
987 (synopsis "Database of common MIME types")
988 (description
989 "The shared-mime-info package contains the core database of common types
990 and the update-mime-database command used to extend it. It requires glib2 to
991 be installed for building the update command. Additionally, it uses intltool
992 for translations, though this is only a dependency for the maintainers. This
993 database is translated at Transifex.")
994 (license license:gpl2+)))
995
996 (define-public system-config-printer
997 (package
998 (name "system-config-printer")
999 (version "1.5.11")
1000 (source (origin
1001 (method url-fetch)
1002 (uri (string-append
1003 "https://github.com/zdohnal/system-config-printer/releases/"
1004 "download/" version
1005 "/system-config-printer-" version ".tar.xz"))
1006 (sha256
1007 (base32
1008 "1lq0q51bhanirpjjvvh4xiafi8hgpk8r32h0dj6dn3f32z8pib9q"))))
1009 (build-system glib-or-gtk-build-system)
1010 (arguments
1011 `(#:imported-modules ((guix build python-build-system)
1012 ,@%glib-or-gtk-build-system-modules)
1013 #:phases
1014 (modify-phases %standard-phases
1015 (add-after 'unpack 'patch-Makefile.am
1016 (lambda _
1017 ;; The Makefile generates some scripts, so set a valid shebang
1018 (substitute* "Makefile.am"
1019 (("/bin/bash") (which "bash")))
1020 (delete-file "configure")
1021 #t))
1022 (add-after 'unpack 'patch-docbook-xml
1023 (lambda* (#:key inputs #:allow-other-keys)
1024 ;; Modify the man XML otherwise xmlto tries to access the network
1025 (substitute* "man/system-config-printer.xml"
1026 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1027 (string-append (assoc-ref inputs "docbook-xml")
1028 "/xml/dtd/docbook/")))
1029 #t))
1030 (add-after 'install 'wrap-for-python
1031 (@@ (guix build python-build-system) wrap))
1032 (add-after 'install 'wrap
1033 (lambda* (#:key outputs #:allow-other-keys)
1034 (let ((out (assoc-ref outputs "out"))
1035 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1036 (for-each
1037 (lambda (program)
1038 (wrap-program program
1039 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1040 (map (lambda (name)
1041 (string-append out "/bin/" name))
1042 '("system-config-printer"
1043 "system-config-printer-applet"
1044 "install-printerdriver"
1045 "scp-dbus-service"))))
1046 #t)))))
1047 (inputs
1048 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1049 ("gobject-introspection" ,gobject-introspection)
1050 ("python" ,python)
1051 ("cups" ,cups)
1052 ("python-dbus" ,python-dbus)
1053 ("python-pygobject" ,python-pygobject)
1054 ("python-pycups" ,python-pycups)
1055 ("python-requests" ,python-requests)
1056 ("python-pycairo" ,python-pycairo)
1057 ("libnotify" ,libnotify)
1058 ("packagekit" ,packagekit)))
1059 (native-inputs
1060 `(("pkg-config" ,pkg-config)
1061 ("desktop-file-utils" ,desktop-file-utils)
1062 ("glib" ,glib)
1063 ("autoconf" ,autoconf)
1064 ("automake" ,automake)
1065 ("intltool" ,intltool)
1066 ("xmlto" ,xmlto)
1067 ("docbook-xml" ,docbook-xml-4.1.2)
1068 ("docbook-xsl" ,docbook-xsl)
1069 ("libxml2" ,libxml2)))
1070 (home-page "https://github.com/zdohnal/system-config-printer")
1071 (synopsis "CUPS administration tool")
1072 (description
1073 "system-config-printer is a CUPS administration tool. It's written in
1074 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1075 configuring CUPS.")
1076 (license license:gpl2+)))
1077
1078 (define-public hicolor-icon-theme
1079 (package
1080 (name "hicolor-icon-theme")
1081 (version "0.17")
1082 (source
1083 (origin
1084 (method url-fetch)
1085 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
1086 "hicolor-icon-theme-" version ".tar.xz"))
1087 (sha256
1088 (base32
1089 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
1090 (build-system gnu-build-system)
1091 (arguments
1092 `(#:tests? #f)) ; no check target
1093 (home-page "https://icon-theme.freedesktop.org/releases/")
1094 (synopsis
1095 "Freedesktop icon theme")
1096 (description
1097 "Freedesktop icon theme.")
1098 (license license:gpl2)))
1099
1100 (define-public libnotify
1101 (package
1102 (name "libnotify")
1103 (version "0.7.7")
1104 (source
1105 (origin
1106 (method url-fetch)
1107 (uri (string-append "mirror://gnome/sources/" name "/"
1108 (version-major+minor version) "/"
1109 name "-" version ".tar.xz"))
1110 (sha256
1111 (base32
1112 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
1113 (build-system gnu-build-system)
1114 (arguments
1115 `(#:configure-flags '("--disable-static")))
1116 (propagated-inputs
1117 `(;; In Requires of libnotify.pc.
1118 ("gdk-pixbuf" ,gdk-pixbuf)
1119 ("glib" ,glib)))
1120 (inputs
1121 `(("gtk+" ,gtk+)
1122 ("libpng" ,libpng)))
1123 (native-inputs
1124 `(("pkg-config" ,pkg-config)
1125 ("glib" ,glib "bin")
1126 ("gobject-introspection" ,gobject-introspection)))
1127 (home-page "https://developer-next.gnome.org/libnotify/")
1128 (synopsis
1129 "GNOME desktop notification library")
1130 (description
1131 "Libnotify is a library that sends desktop notifications to a
1132 notification daemon, as defined in the Desktop Notifications spec. These
1133 notifications can be used to inform the user about an event or display
1134 some form of information without getting in the user's way.")
1135 (license license:lgpl2.1+)))
1136
1137 (define-public libpeas
1138 (package
1139 (name "libpeas")
1140 (version "1.22.0")
1141 (source
1142 (origin
1143 (method url-fetch)
1144 (uri (string-append "mirror://gnome/sources/" name "/"
1145 (version-major+minor version) "/"
1146 name "-" version ".tar.xz"))
1147 (sha256
1148 (base32
1149 "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv"))))
1150 (build-system gnu-build-system)
1151 (inputs
1152 `(("gtk+" ,gtk+)
1153 ("glade" ,glade3)
1154 ("python" ,python)
1155 ("python-pygobject" ,python-pygobject)))
1156 (native-inputs
1157 `(("pkg-config" ,pkg-config)
1158 ("glib:bin" ,glib "bin")
1159 ("gobject-introspection" ,gobject-introspection)
1160 ("intltool" ,intltool)))
1161 (propagated-inputs
1162 ;; The .pc file "Requires" gobject-introspection.
1163 `(("gobject-introspection" ,gobject-introspection)))
1164 (home-page "https://wiki.gnome.org/Libpeas")
1165 (synopsis "GObject plugin system")
1166 (description
1167 "Libpeas is a gobject-based plugin engine, targeted at giving every
1168 application the chance to assume its own extensibility. It also has a set of
1169 features including, but not limited to: multiple extension points; on-demand
1170 (lazy) programming language support for C, Python and JS; simplicity of the
1171 API.")
1172 (license license:lgpl2.0+)))
1173
1174 (define-public gtkglext
1175 (package
1176 (name "gtkglext")
1177 (version "1.2.0")
1178 (source (origin
1179 (method url-fetch)
1180 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
1181 version "/gtkglext-" version ".tar.gz"))
1182 (sha256
1183 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
1184 (patches (search-patches
1185 "gtkglext-disable-disable-deprecated.patch"))))
1186 (build-system gnu-build-system)
1187 (arguments
1188 `(#:phases
1189 (modify-phases %standard-phases
1190 ;; Fix a collision between a local variable and a definition from
1191 ;; glibc's string.h.
1192 (add-after 'unpack 'fix-collision
1193 (lambda _
1194 (substitute* "gdk/gdkglshapes.c"
1195 ((" index") " triangle_index"))
1196 #t)))))
1197 (inputs `(("gtk+" ,gtk+-2)
1198 ("mesa" ,mesa)
1199 ("glu" ,glu)
1200 ("libx11" ,libx11)
1201 ("libxt" ,libxt)))
1202 (native-inputs `(("pkg-config" ,pkg-config)
1203 ("glib" ,glib "bin")))
1204 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
1205 (home-page "https://projects.gnome.org/gtkglext")
1206 (synopsis "OpenGL extension to GTK+")
1207 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
1208 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1209 API add-ons to make GTK+ widgets OpenGL-capable.")
1210 (license license:lgpl2.1+)))
1211
1212 (define-public glade3
1213 (package
1214 (name "glade")
1215 (version "3.22.1")
1216 (source (origin
1217 (method url-fetch)
1218 (uri (string-append "mirror://gnome/sources/" name "/"
1219 (version-major+minor version) "/"
1220 name "-" version ".tar.xz"))
1221 (sha256
1222 (base32
1223 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
1224 (build-system glib-or-gtk-build-system)
1225 (arguments
1226 `(#:tests? #f ; needs X, GL, and software rendering
1227 #:phases
1228 (modify-phases %standard-phases
1229 (add-before 'configure 'fix-docbook
1230 (lambda* (#:key inputs #:allow-other-keys)
1231 (substitute* "man/Makefile.in"
1232 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1233 (string-append (assoc-ref inputs "docbook-xsl")
1234 "/xml/xsl/docbook-xsl-"
1235 ,(package-version docbook-xsl)
1236 "/manpages/docbook.xsl")))
1237 #t)))))
1238 (inputs
1239 `(("gtk+" ,gtk+)
1240 ("libxml2" ,libxml2)))
1241 (native-inputs
1242 `(("intltool" ,intltool)
1243 ("itstool" ,itstool)
1244 ("libxslt" ,libxslt) ;for xsltproc
1245 ("docbook-xml" ,docbook-xml-4.2)
1246 ("docbook-xsl" ,docbook-xsl)
1247 ("python" ,python-2)
1248 ("pkg-config" ,pkg-config)))
1249 (home-page "https://glade.gnome.org")
1250 (synopsis "GTK+ rapid application development tool")
1251 (description "Glade is a rapid application development (RAD) tool to
1252 enable quick & easy development of user interfaces for the GTK+ toolkit and
1253 the GNOME desktop environment.")
1254 (license license:lgpl2.0+)))
1255
1256 (define-public libcroco
1257 (package
1258 (name "libcroco")
1259 (version "0.6.12")
1260 (source (origin
1261 (method url-fetch)
1262 (uri (string-append "mirror://gnome/sources/" name "/"
1263 (version-major+minor version) "/"
1264 name "-" version ".tar.xz"))
1265 (patches
1266 (search-patches "libcroco-CVE-2017-7960.patch"
1267 "libcroco-CVE-2017-7961.patch"))
1268 (sha256
1269 (base32
1270 "0q7qhi7z64i26zabg9dbs5706fa8pmzp1qhpa052id4zdiabbi6x"))))
1271 (build-system gnu-build-system)
1272 (native-inputs
1273 `(("pkg-config" ,pkg-config)))
1274 (inputs
1275 `(("glib" ,glib)
1276 ("libxml2" ,libxml2)
1277 ("zlib" ,zlib)))
1278 (home-page "https://github.com/GNOME/libcroco")
1279 (synopsis "CSS2 parsing and manipulation library")
1280 (description
1281 "Libcroco is a standalone CSS2 parsing and manipulation library.
1282 The parser provides a low level event driven SAC-like API and a CSS object
1283 model like API. Libcroco provides a CSS2 selection engine and an experimental
1284 XML/CSS rendering engine.")
1285
1286 ;; LGPLv2.1-only.
1287 (license license:lgpl2.1)))
1288
1289 (define-public libgsf
1290 (package
1291 (name "libgsf")
1292 (version "1.14.46")
1293 (source (origin
1294 (method url-fetch)
1295 (uri (string-append "mirror://gnome/sources/" name "/"
1296 (version-major+minor version) "/"
1297 name "-" version ".tar.xz"))
1298 (sha256
1299 (base32
1300 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
1301 (build-system gnu-build-system)
1302 (native-inputs
1303 `(("intltool" ,intltool)
1304 ("pkg-config" ,pkg-config)))
1305 (inputs
1306 `(("python" ,python)
1307 ("zlib" ,zlib)
1308 ("bzip2" ,bzip2)))
1309 (propagated-inputs
1310 `(("gdk-pixbuf" ,gdk-pixbuf)
1311 ("glib" ,glib)
1312 ("libxml2" ,libxml2)))
1313 (home-page "https://www.gnome.org/projects/libgsf")
1314 (synopsis "GNOME's Structured File Library")
1315 (description
1316 "Libgsf aims to provide an efficient extensible I/O abstraction for
1317 dealing with different structured file formats.")
1318
1319 ;; LGPLv2.1-only.
1320 (license license:lgpl2.1)))
1321
1322 (define-public librsvg
1323 (package
1324 (name "librsvg")
1325 (version "2.40.20")
1326 (source (origin
1327 (method url-fetch)
1328 (uri (string-append "mirror://gnome/sources/" name "/"
1329 (version-major+minor version) "/"
1330 name "-" version ".tar.xz"))
1331 (sha256
1332 (base32
1333 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
1334 (build-system gnu-build-system)
1335 (arguments
1336 `(#:configure-flags
1337 (list "--disable-static"
1338 "--enable-vala") ; needed for e.g. gnome-mines
1339 #:phases
1340 (modify-phases %standard-phases
1341 (add-before 'configure 'pre-configure
1342 (lambda* (#:key inputs #:allow-other-keys)
1343 (substitute* "gdk-pixbuf-loader/Makefile.in"
1344 ;; By default the gdk-pixbuf loader is installed under
1345 ;; gdk-pixbuf's prefix. Work around that.
1346 (("gdk_pixbuf_moduledir = .*$")
1347 (string-append "gdk_pixbuf_moduledir = "
1348 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
1349 "loaders\n"))
1350 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
1351 (("gdk_pixbuf_cache_file = .*$")
1352 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
1353 #t))
1354 (add-before 'check 'remove-failing-tests
1355 (lambda _
1356 (with-directory-excursion "tests/fixtures/reftests"
1357 (for-each delete-file
1358 '(;; This test fails on i686:
1359 "svg1.1/masking-path-04-b.svg"
1360 ;; This test fails on armhf:
1361 "svg1.1/masking-mask-01-b.svg"
1362 ;; This test fails on aarch64:
1363 "bugs/777834-empty-text-children.svg")))
1364 #t)))))
1365 (native-inputs
1366 `(("pkg-config" ,pkg-config)
1367 ("vala" ,vala)
1368 ("glib" ,glib "bin") ; glib-mkenums, etc.
1369 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
1370 (inputs
1371 `(("pango" ,pango)
1372 ("libcroco" ,libcroco)
1373 ("bzip2" ,bzip2)
1374 ("libgsf" ,libgsf)
1375 ("libxml2" ,libxml2)))
1376 (propagated-inputs
1377 ;; librsvg-2.0.pc refers to all of that.
1378 `(("cairo" ,cairo)
1379 ("gdk-pixbuf" ,gdk-pixbuf)
1380 ("glib" ,glib)))
1381 (home-page "https://wiki.gnome.org/LibRsvg")
1382 (synopsis "Render SVG files using Cairo")
1383 (description
1384 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
1385 library.")
1386 (license license:lgpl2.0+)))
1387
1388 (define-public librsvg-next
1389 (package
1390 (name "librsvg")
1391 (version "2.44.12")
1392 (source (origin
1393 (method url-fetch)
1394 (uri (string-append "mirror://gnome/sources/" name "/"
1395 (version-major+minor version) "/"
1396 name "-" version ".tar.xz"))
1397 (sha256
1398 (base32
1399 "1h3qnqhr0l7pd2bxg69ki6ckl4srdwgr471dpp4jq9i4784hp0v6"))))
1400 (build-system gnu-build-system)
1401 (arguments
1402 `(#:configure-flags
1403 (list "--disable-static"
1404 "--enable-vala") ; needed for e.g. gnome-mines
1405 #:make-flags '("CC=gcc")
1406 #:phases
1407 (modify-phases %standard-phases
1408 ;; Don't patch anything in vendor/ to avoid having to recompute
1409 ;; checksums for the bundled Cargo "crates". TODO: Unbundle those.
1410 (delete 'patch-source-shebangs)
1411 (delete 'patch-generated-file-shebangs)
1412 (delete 'patch-usr-bin-file)
1413 (add-before 'configure 'patch-all-the-things
1414 (lambda _
1415 (for-each patch-shebang '("tap-driver.sh" "tap-test"))
1416 (patch-/usr/bin/file "configure")
1417 #t))
1418 (add-before 'configure 'pre-configure
1419 (lambda* (#:key inputs #:allow-other-keys)
1420 (substitute* "gdk-pixbuf-loader/Makefile.in"
1421 ;; By default the gdk-pixbuf loader is installed under
1422 ;; gdk-pixbuf's prefix. Work around that.
1423 (("gdk_pixbuf_moduledir = .*$")
1424 (string-append "gdk_pixbuf_moduledir = "
1425 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
1426 "loaders\n"))
1427 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
1428 (("gdk_pixbuf_cache_file = .*$")
1429 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
1430 #t))
1431 (add-before 'check 'remove-failing-tests
1432 (lambda _
1433 (with-directory-excursion "tests/fixtures/reftests"
1434 (for-each delete-file
1435 '(;; The images produced by these tests differ slightly
1436 ;; from their reference counterparts due to differences
1437 ;; in the build environment (missing fonts, etc). See
1438 ;; <tests/README.md> for details.
1439 ;; These fail on x86_64.
1440 "svg1.1/coords-viewattr-02-b.svg"
1441 "svg1.1/filters-composite-04-f.svg"
1442 "svg1.1/filters-image-01-b.svg"
1443 "svg1.1/filters-conv-02-f.svg"
1444 "svg1.1/filters-conv-04-f.svg"
1445 ;; This test fails on i686:
1446 "svg1.1/masking-path-04-b.svg"
1447 ;; This test fails on armhf:
1448 "svg1.1/masking-mask-01-b.svg"
1449 ;; This test fails on aarch64:
1450 "bugs/777834-empty-text-children.svg")))
1451 #t)))))
1452 (native-inputs
1453 `(("pkg-config" ,pkg-config)
1454 ;; This is the minimum supported Rust version in Librsvg 2.44.
1455 ("rust" ,rust-1.27)
1456 ("cargo" ,rust-1.27 "cargo")
1457 ("vala" ,vala)
1458 ("glib" ,glib "bin") ; glib-mkenums, etc.
1459 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
1460 (inputs
1461 `(("pango" ,pango)
1462 ("libcroco" ,libcroco)
1463 ("bzip2" ,bzip2)
1464 ("libgsf" ,libgsf)
1465 ("libxml2" ,libxml2)))
1466 (propagated-inputs
1467 ;; librsvg-2.0.pc refers to all of that.
1468 `(("cairo" ,cairo)
1469 ("gdk-pixbuf" ,gdk-pixbuf)
1470 ("glib" ,glib)))
1471 (home-page "https://wiki.gnome.org/LibRsvg")
1472 (synopsis "Render SVG files using Cairo")
1473 (description
1474 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
1475 library.")
1476 (license license:lgpl2.0+)))
1477
1478 (define-public libidl
1479 (package
1480 (name "libidl")
1481 (version "0.8.14")
1482 (source (origin
1483 (method url-fetch)
1484 (uri (let ((upstream-name "libIDL"))
1485 (string-append "mirror://gnome/sources/" upstream-name "/"
1486 (version-major+minor version) "/"
1487 upstream-name "-" version ".tar.bz2")))
1488 (sha256
1489 (base32
1490 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
1491 (build-system gnu-build-system)
1492 (inputs `(("glib" ,glib)))
1493 (native-inputs
1494 `(("pkg-config" ,pkg-config)
1495 ("flex" ,flex)
1496 ("bison" ,bison)))
1497 (home-page "http://freecode.com/projects/libidl")
1498 (synopsis "Create trees of CORBA Interface Definition Language files")
1499 (description "Libidl is a library for creating trees of CORBA Interface
1500 Definition Language (idl) files, which is a specification for defining
1501 portable interfaces. libidl was initially written for orbit (the orb from the
1502 GNOME project, and the primary means of libidl distribution). However, the
1503 functionality was designed to be as reusable and portable as possible.")
1504 (license license:lgpl2.0+)))
1505
1506
1507 (define-public orbit2
1508 (package
1509 (name "orbit2")
1510 (version "2.14.19")
1511 (source (origin
1512 (method url-fetch)
1513 (uri (let ((upstream-name "ORBit2"))
1514 (string-append "mirror://gnome/sources/" upstream-name "/"
1515 (version-major+minor version) "/"
1516 upstream-name "-" version ".tar.bz2")))
1517 (sha256
1518 (base32
1519 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
1520 (build-system gnu-build-system)
1521 (arguments
1522 `(#:configure-flags
1523 '(;; We don't need static libraries, plus they don't build reproducibly
1524 ;; (non-deterministic ordering of .o files in the archive.)
1525 "--disable-static"
1526
1527 ;; The programmer kindly gives us a hook to turn off deprecation
1528 ;; warnings ...
1529 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
1530 ;; ... which they then completly ignore !!
1531 #:phases
1532 (modify-phases %standard-phases
1533 (add-before 'configure 'ignore-deprecations
1534 (lambda _
1535 (substitute* "linc2/src/Makefile.in"
1536 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
1537 #t)))))
1538 (inputs `(("glib" ,glib)
1539 ("libidl" ,libidl)))
1540 (native-inputs
1541 `(("pkg-config" ,pkg-config)))
1542 (home-page "https://projects.gnome.org/orbit2/")
1543 (synopsis "CORBA 2.4-compliant Object Request Broker")
1544 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
1545 featuring mature C, C++ and Python bindings.")
1546 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
1547 ;; a version. SOME of the code files have licence notices for GPLv2+.
1548 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
1549 (license license:gpl2+)
1550 (properties `((upstream-name . "ORBit2")))))
1551
1552
1553 (define-public libbonobo
1554 (package
1555 (name "libbonobo")
1556 (version "2.32.1")
1557 (source (origin
1558 (method url-fetch)
1559 (uri (string-append "mirror://gnome/sources/" name "/"
1560 (version-major+minor version)
1561 "/" name "-" version ".tar.bz2"))
1562 (sha256
1563 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
1564 (patches (search-patches
1565 "libbonobo-activation-test-race.patch"))))
1566 (build-system gnu-build-system)
1567 (arguments
1568 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
1569 `(#:configure-flags
1570 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
1571 ;; ... which they then completly ignore !!
1572 #:phases
1573 (modify-phases %standard-phases
1574 (add-before 'configure 'ignore-deprecations
1575 (lambda _
1576 (substitute* "activation-server/Makefile.in"
1577 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
1578 #t)))
1579
1580 ;; There's apparently a race condition between the server stub
1581 ;; generation and linking of the example under 'samples/echo' that can
1582 ;; lead do undefined references when building in parallel, as reported
1583 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
1584 ;; Thus, disable parallel builds.
1585 #:parallel-build? #f))
1586 (inputs `(("popt" ,popt)
1587 ("libxml2" ,libxml2)))
1588 ;; The following are Required by the .pc file
1589 (propagated-inputs
1590 `(("glib" ,glib)
1591 ("orbit2" ,orbit2)))
1592 (native-inputs
1593 `(("intltool" ,intltool)
1594 ("pkg-config" ,pkg-config)
1595 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1596 ("flex" ,flex)
1597 ("bison" ,bison)))
1598 (home-page "https://developer.gnome.org/libbonobo/")
1599 (synopsis "Framework for creating reusable components for use in GNOME applications")
1600 (description "Bonobo is a framework for creating reusable components for
1601 use in GNOME applications, built on top of CORBA.")
1602 ;; Licence not explicitly stated. Source files contain no licence notices.
1603 ;; Tarball contains text of both GPLv2 and LGPLv2
1604 ;; GPLv2 covers both conditions
1605 (license license:gpl2+)))
1606
1607
1608 (define-public gconf
1609 (package
1610 (name "gconf")
1611 (version "3.2.6")
1612 (source (origin
1613 (method url-fetch)
1614 (uri
1615 (let ((upstream-name "GConf"))
1616 (string-append "mirror://gnome/sources/" upstream-name "/"
1617 (version-major+minor version) "/"
1618 upstream-name "-" version ".tar.xz")))
1619 (sha256
1620 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
1621 (build-system gnu-build-system)
1622 (inputs `(("dbus-glib" ,dbus-glib)
1623 ("libxml2" ,libxml2)))
1624 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
1625 ("orbit2" ,orbit2)))
1626 (native-inputs
1627 `(("intltool" ,intltool)
1628 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1629 ("pkg-config" ,pkg-config)))
1630 (home-page "https://projects.gnome.org/gconf/")
1631 (synopsis "Store application preferences")
1632 (description "Gconf is a system for storing application preferences. It
1633 is intended for user preferences; not arbitrary data storage.")
1634 (license license:lgpl2.0+)
1635 (properties '((upstream-name . "GConf")))))
1636
1637
1638 (define-public gnome-mime-data
1639 (package
1640 (name "gnome-mime-data")
1641 (version "2.18.0")
1642 (source (origin
1643 (method url-fetch)
1644 (uri (string-append "mirror://gnome/sources/" name "/"
1645 (version-major+minor version) "/"
1646 name "-" version ".tar.bz2"))
1647 (sha256
1648 (base32
1649 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
1650 (build-system gnu-build-system)
1651 (native-inputs
1652 `(("perl" ,perl)
1653 ("intltool" ,intltool)))
1654 (arguments
1655 '(#:phases (modify-phases %standard-phases
1656 (add-after 'configure 'use-our-intltool
1657 (lambda _
1658 ;; Do not use the bundled intltool commands, which lack
1659 ;; the "dotless @INC" fixes of our 'intltool' package.
1660 (substitute* (find-files "." "^Makefile$")
1661 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
1662 (string-append "INTLTOOL_" tool " = intltool-"
1663 (string-downcase tool) "\n")))
1664 #t)))))
1665 (home-page "https://www.gnome.org")
1666 (synopsis "Base MIME and Application database for GNOME")
1667 (description "GNOME Mime Data is a module which contains the base MIME
1668 and Application database for GNOME. The data stored by this module is
1669 designed to be accessed through the MIME functions in GnomeVFS.")
1670 (license license:gpl2+)))
1671
1672
1673 (define-public gnome-vfs
1674 (package
1675 (name "gnome-vfs")
1676 (version "2.24.4")
1677 (source (origin
1678 (method url-fetch)
1679 (uri (string-append "mirror://gnome/sources/" name "/"
1680 (version-major+minor version) "/"
1681 name "-" version ".tar.bz2"))
1682 (sha256
1683 (base32
1684 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
1685 (build-system gnu-build-system)
1686 (arguments
1687 `(#:phases
1688 (modify-phases %standard-phases
1689 (add-before 'configure 'ignore-deprecations
1690 (lambda _
1691 (substitute* '("libgnomevfs/Makefile.in"
1692 "daemon/Makefile.in")
1693 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
1694 #t))
1695 (add-before 'configure 'patch-test-async-cancel-to-never-fail
1696 (lambda _
1697 (substitute* "test/test-async-cancel.c"
1698 (("EXIT_FAILURE") "77"))
1699 #t)))))
1700 (inputs `(("libxml2" ,libxml2)
1701 ("dbus-glib" ,dbus-glib)
1702 ("gconf" ,gconf)
1703 ("gnome-mime-data" ,gnome-mime-data)
1704 ("zlib" ,zlib)))
1705 (native-inputs
1706 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
1707 ("intltool" ,intltool)
1708 ("pkg-config" ,pkg-config)))
1709 (home-page "https://developer.gnome.org/gnome-vfs/")
1710 (synopsis "Access files and folders in GNOME applications")
1711 (description
1712 "GnomeVFS is the core library used to access files and folders in GNOME
1713 applications. It provides a file system abstraction which allows applications
1714 to access local and remote files with a single consistent API.")
1715 (license license:lgpl2.0+)))
1716
1717
1718
1719 (define-public libgnome
1720 (package
1721 (name "libgnome")
1722 (version "2.32.1")
1723 (source (origin
1724 (method url-fetch)
1725 (uri (string-append "mirror://gnome/sources/" name "/"
1726 (version-major+minor version) "/"
1727 name "-" version ".tar.bz2"))
1728 (sha256
1729 (base32
1730 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
1731 (patches (search-patches "libgnome-encoding.patch"))))
1732 (build-system gnu-build-system)
1733 (arguments
1734 `(#:phases
1735 (modify-phases %standard-phases
1736 (add-before 'configure 'enable-deprecated
1737 (lambda _
1738 (substitute* "libgnome/Makefile.in"
1739 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
1740 #t)))))
1741 (inputs `(("libxml2" ,libxml2)))
1742 (native-inputs
1743 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
1744 ("intltool" ,intltool)
1745 ("pkg-config" ,pkg-config)))
1746 ;; The following are listed as Required in the .pc file
1747 ;; (except for libcanberra -- which seems to be oversight on the part
1748 ;; of the upstream developers -- anything that links against libgnome,
1749 ;; must also link against libcanberra
1750 (propagated-inputs
1751 `(("libcanberra" ,libcanberra)
1752 ("libbonobo" ,libbonobo)
1753 ("gconf" ,gconf)
1754 ("gnome-vfs" ,gnome-vfs)
1755 ("popt" ,popt))) ;gnome-program.h includes popt.h
1756 (home-page "https://developer.gnome.org/libgnome/")
1757 (synopsis "Useful routines for building applications")
1758 (description "The libgnome library provides a number of useful routines
1759 for building modern applications, including session management, activation of
1760 files and URIs, and displaying help.")
1761 (license license:lgpl2.0+)))
1762
1763
1764 (define-public libart-lgpl
1765 (package
1766 (name "libart-lgpl")
1767 (version "2.3.21")
1768 (source (origin
1769 (method url-fetch)
1770 (uri (let ((upstream-name "libart_lgpl"))
1771 (string-append "mirror://gnome/sources/" upstream-name "/"
1772 (version-major+minor version) "/"
1773 upstream-name "-" version ".tar.bz2")))
1774 (sha256
1775 (base32
1776 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
1777 (build-system gnu-build-system)
1778 (native-inputs
1779 `(("pkg-config" ,pkg-config)))
1780 (home-page "https://people.gnome.org/~mathieu/libart")
1781 (synopsis "2D drawing library")
1782 (description "Libart is a 2D drawing library intended as a
1783 high-quality vector-based 2D library with antialiasing and alpha composition.")
1784 (license license:lgpl2.0+)))
1785
1786
1787
1788 (define-public libgnomecanvas
1789 (package
1790 (name "libgnomecanvas")
1791 (version "2.30.3")
1792 (source (origin
1793 (method url-fetch)
1794 (uri (string-append "mirror://gnome/sources/" name "/"
1795 (version-major+minor version) "/"
1796 name "-" version ".tar.gz"))
1797 (sha256
1798 (base32
1799 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
1800 (build-system gnu-build-system)
1801 ;; Mentioned as Required in the .pc file
1802 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
1803 ("gtk+" ,gtk+-2)))
1804 (native-inputs
1805 `(("intltool" ,intltool)
1806 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1807 ("pkg-config" ,pkg-config)))
1808 (home-page "https://developer.gnome.org/libgnomecanvas/")
1809 (synopsis "Flexible widget for creating interactive structured graphics")
1810 (description "The GnomeCanvas widget provides a flexible widget for
1811 creating interactive structured graphics.")
1812 (license license:lgpl2.0+)))
1813
1814 (define-public libgnomecanvasmm
1815 (package
1816 (name "libgnomecanvasmm")
1817 (version "2.26.0")
1818 (source (origin
1819 (method url-fetch)
1820 (uri (string-append "mirror://gnome/sources/" name "/"
1821 (version-major+minor version) "/"
1822 name "-" version ".tar.bz2"))
1823 (sha256
1824 (base32
1825 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
1826 (build-system gnu-build-system)
1827 (arguments
1828 '(#:configure-flags '("CXXFLAGS=-std=c++11"))) ; required by gtkmm
1829 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
1830 (native-inputs
1831 `(("gtkmm-2" ,gtkmm-2)
1832 ("pkg-config" ,pkg-config)))
1833 (home-page "https://gtkmm.org")
1834 (synopsis "C++ bindings to the GNOME Canvas library")
1835 (description "C++ bindings to the GNOME Canvas library.")
1836 (license license:lgpl2.0+)))
1837
1838 (define-public libgnomeui
1839 (package
1840 (name "libgnomeui")
1841 (version "2.24.5")
1842 (source (origin
1843 (method url-fetch)
1844 (uri (string-append "mirror://gnome/sources/" name "/"
1845 (version-major+minor version) "/"
1846 name "-" version ".tar.bz2"))
1847 (patches (search-patches "libgnomeui-utf8.patch"))
1848 (sha256
1849 (base32
1850 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
1851 (build-system gnu-build-system)
1852 ;; Mentioned as Required in the .pc file
1853 (propagated-inputs `(("libbonoboui" ,libbonoboui)
1854 ("libgnome" ,libgnome)
1855 ("libgnomecanvas" ,libgnomecanvas)
1856 ("libgnome-keyring" ,libgnome-keyring)))
1857 (inputs `(("libjpeg" ,libjpeg)
1858 ("popt" ,popt)
1859 ("libbonobo" ,libbonobo)
1860 ("libxml2" ,libxml2)
1861 ("libglade" ,libglade)))
1862 (native-inputs
1863 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
1864 ("intltool" ,intltool)
1865 ("pkg-config" ,pkg-config)))
1866 (home-page "https://developer.gnome.org/libgnomeui/")
1867 (synopsis "Additional widgets for applications")
1868 (description "The libgnomeui library provides additional widgets for
1869 applications. Many of the widgets from libgnomeui have already been
1870 ported to GTK+.")
1871 (license license:lgpl2.0+)))
1872
1873 (define-public libglade
1874 (package
1875 (name "libglade")
1876 (version "2.6.4")
1877 (source (origin
1878 (method url-fetch)
1879 (uri (string-append "mirror://gnome/sources/" name "/"
1880 (version-major+minor version) "/"
1881 name "-" version ".tar.bz2"))
1882 (sha256
1883 (base32
1884 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
1885 (build-system gnu-build-system)
1886 (inputs
1887 `(("python" ,python))) ;; needed for the optional libglade-convert program
1888 (propagated-inputs
1889 `(("gtk+-2" ,gtk+-2)
1890 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
1891 (native-inputs
1892 `(("pkg-config" ,pkg-config)))
1893 (home-page "https://developer.gnome.org/libglade")
1894 (synopsis "Load glade interfaces and access the glade built widgets")
1895 (description "Libglade is a library that provides interfaces for loading
1896 graphical interfaces described in glade files and for accessing the
1897 widgets built in the loading process.")
1898 (license license:gpl2+))) ; This is correct. GPL not LGPL
1899
1900 (define-public libgnomeprint
1901 ;; This library has been deprecated since 2006; see
1902 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
1903 (package
1904 (name "libgnomeprint")
1905 (version "2.18.8")
1906 (source (origin
1907 (method url-fetch)
1908 (uri (string-append "mirror://gnome/sources/" name "/"
1909 (version-major+minor version) "/"
1910 name "-" version ".tar.bz2"))
1911 (sha256
1912 (base32
1913 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
1914 (build-system gnu-build-system)
1915 (inputs
1916 `(("popt" ,popt)
1917 ("libart-lgpl" ,libart-lgpl)
1918 ("gtk+" ,gtk+-2)
1919 ("libxml2" ,libxml2)))
1920 (native-inputs
1921 `(("intltool" ,intltool)
1922 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1923 ("pkg-config" ,pkg-config)))
1924 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
1925 (synopsis "Printing framework for GNOME")
1926 (description
1927 "GNOME-print was a printing framework for GNOME. It has been deprecated
1928 since ca. 2006, when GTK+ itself incorporated printing support.")
1929 (license license:lgpl2.0+)))
1930
1931
1932 (define-public libgnomeprintui
1933 ;; Deprecated; see libgnomeprint.
1934 (package
1935 (name "libgnomeprintui")
1936 (version "2.18.6")
1937 (source (origin
1938 (method url-fetch)
1939 (uri (string-append "mirror://gnome/sources/" name "/"
1940 (version-major+minor version) "/"
1941 name "-" version ".tar.bz2"))
1942 (sha256
1943 (base32
1944 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
1945 (build-system gnu-build-system)
1946 ;; Mentioned as Required in the .pc file
1947 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
1948 (inputs `(("gtk+" ,gtk+-2)
1949 ("glib" ,glib)
1950 ("gnome-icon-theme" ,gnome-icon-theme)
1951 ("libgnomecanvas" ,libgnomecanvas)
1952 ("libxml2" ,libxml2)))
1953 (native-inputs
1954 `(("intltool" ,intltool)
1955 ("pkg-config" ,pkg-config)))
1956 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
1957 (synopsis "Printing framework for GNOME")
1958 (description (package-description libgnomeprint))
1959 (license license:lgpl2.0+)))
1960
1961 (define-public libbonoboui
1962 (package
1963 (name "libbonoboui")
1964 (version "2.24.5")
1965 (source (origin
1966 (method url-fetch)
1967 (uri (string-append "mirror://gnome/sources/" name "/"
1968 (version-major+minor version) "/"
1969 name "-" version ".tar.bz2"))
1970 (sha256
1971 (base32
1972 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
1973 (build-system gnu-build-system)
1974 (arguments
1975 `(#:phases
1976 (modify-phases %standard-phases
1977 (add-before 'check 'start-xserver
1978 (lambda* (#:key inputs #:allow-other-keys)
1979 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1980 (disp ":1"))
1981
1982 (setenv "HOME" (getcwd))
1983 (setenv "DISPLAY" disp)
1984 ;; There must be a running X server and make check doesn't start one.
1985 ;; Therefore we must do it.
1986 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
1987 ;; Mentioned as Required by the .pc file
1988 (propagated-inputs `(("libxml2" ,libxml2)))
1989 (inputs
1990 `(("popt" ,popt)
1991 ("pangox-compat" ,pangox-compat)
1992 ("libgnome" ,libgnome)
1993 ("libgnomecanvas" ,libgnomecanvas)
1994 ("libglade" ,libglade)))
1995 (native-inputs
1996 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
1997 ("intltool" ,intltool)
1998 ("xorg-server" ,xorg-server) ; For running the tests
1999 ("pkg-config" ,pkg-config)))
2000 (home-page "https://developer.gnome.org/libbonoboui/")
2001 (synopsis "Some user interface controls using Bonobo")
2002 (description "The Bonobo UI library provides a number of user interface
2003 controls using the Bonobo component framework.")
2004 (license license:lgpl2.0+)))
2005
2006 (define-public libwnck
2007 (package
2008 (name "libwnck")
2009 (version "3.30.0")
2010 (source (origin
2011 (method url-fetch)
2012 (uri (string-append "mirror://gnome/sources/" name "/"
2013 (version-major+minor version) "/"
2014 name "-" version ".tar.xz"))
2015 (sha256
2016 (base32
2017 "0f9lvhm3w25046dqq8xyg7nzggxpmdriwrb661nng05a8qk0svdc"))))
2018 (build-system gnu-build-system)
2019 (native-inputs
2020 `(("pkg-config" ,pkg-config)
2021 ("intltool" ,intltool)))
2022 (propagated-inputs
2023 `(("gtk+" ,gtk+)
2024 ("libxres" ,libxres)
2025 ("startup-notification" ,startup-notification)))
2026 (home-page "https://developer.gnome.org/libwnck/")
2027 (synopsis "Window Navigator Construction Kit")
2028 (description
2029 "Libwnck is the Window Navigator Construction Kit, a library for use in
2030 writing pagers, tasklists, and more generally applications that are dealing
2031 with window management. It tries hard to respect the Extended Window Manager
2032 Hints specification (EWMH).")
2033 (license license:lgpl2.0+)))
2034
2035 ;; stable version for gtk2, required by xfwm4.
2036 (define-public libwnck-2
2037 (package (inherit libwnck)
2038 (name "libwnck")
2039 (version "2.30.7")
2040 (source (origin
2041 (method url-fetch)
2042 (uri (string-append "mirror://gnome/sources/" name "/"
2043 (version-major+minor version) "/"
2044 name "-" version ".tar.xz"))
2045 (sha256
2046 (base32
2047 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
2048 (propagated-inputs
2049 `(("gtk+" ,gtk+-2)
2050 ("libxres" ,libxres)
2051 ("startup-notification" ,startup-notification)))))
2052
2053 (define-public goffice
2054 (package
2055 (name "goffice")
2056 (version "0.10.44")
2057 (source (origin
2058 (method url-fetch)
2059 (uri (string-append "mirror://gnome/sources/" name "/"
2060 (version-major+minor version) "/"
2061 name "-" version ".tar.xz"))
2062 (sha256
2063 (base32 "1fd7cm6j0g0mqgpqs4y22b4gd2ll4mcyvg4d0q22d5ndjapl4q3d"))))
2064 (build-system gnu-build-system)
2065 (outputs '("out"
2066 "doc")) ;4.0 MiB of gtk-doc
2067 (arguments
2068 '(#:configure-flags (list (string-append "--with-html-dir="
2069 (assoc-ref %outputs "doc")
2070 "/share/gtk-doc/html"))))
2071 (inputs
2072 `(("gtk+" ,gtk+)
2073 ("libgsf" ,libgsf)
2074 ("librsvg" ,librsvg)
2075 ("libxslt" ,libxslt)
2076 ("libxml2" ,libxml2)))
2077 (native-inputs
2078 `(("intltool" ,intltool)
2079 ("glib" ,glib "bin")
2080 ("pkg-config" ,pkg-config)))
2081 (home-page "https://developer.gnome.org/goffice/")
2082 (synopsis "Document-centric objects and utilities")
2083 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2084 (license
2085 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2086 ;; Note: NOT LGPL
2087 (list license:gpl2 license:gpl3))))
2088
2089 (define-public goffice-0.8
2090 (package (inherit goffice)
2091 (version "0.8.17")
2092 (source (origin
2093 (method url-fetch)
2094 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
2095 (version-major+minor version) "/"
2096 (package-name goffice) "-" version ".tar.xz"))
2097 (sha256
2098 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
2099 (arguments
2100 `(#:phases
2101 (modify-phases %standard-phases
2102 (add-after 'unpack 'fix-pcre-check
2103 (lambda _
2104 ;; Only glib.h can be included directly. See
2105 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
2106 (substitute* "configure"
2107 (("glib/gregex\\.h") "glib.h")) #t)))
2108
2109 ,@(package-arguments goffice)))
2110 (propagated-inputs
2111 ;; libgoffice-0.8.pc mentions libgsf-1
2112 `(("libgsf" ,libgsf)))
2113 (inputs
2114 `(("gtk" ,gtk+-2)
2115 ,@(alist-delete "gtk" (package-inputs goffice))))))
2116
2117 (define-public gnumeric
2118 (package
2119 (name "gnumeric")
2120 (version "1.12.45")
2121 (source (origin
2122 (method url-fetch)
2123 (uri (string-append "mirror://gnome/sources/gnumeric/"
2124 (version-major+minor version) "/"
2125 "gnumeric-" version ".tar.xz"))
2126 (sha256
2127 (base32
2128 "0c8dl1kvnj3g32qy3s92qpqpqfy0in59cx005gjvvzsflahav61h"))))
2129 (build-system glib-or-gtk-build-system)
2130 (arguments
2131 `(;; The gnumeric developers don't worry much about failing tests.
2132 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2133 #:tests? #f
2134 #:phases
2135 (modify-phases %standard-phases
2136 (add-before
2137 'configure 'pre-conf
2138 (lambda* (#:key outputs #:allow-other-keys)
2139 ;; Make install tries to write into the directory of goffice
2140 ;; I am informed that this only affects the possibility to embed a
2141 ;; spreadsheet inside an Abiword document. So presumably when we
2142 ;; package Abiword we'll have to refer it to this directory.
2143 (substitute* "configure"
2144 (("^GOFFICE_PLUGINS_DIR=.*")
2145 (string-append "GOFFICE_PLUGINS_DIR="
2146 (assoc-ref outputs "out")
2147 "/goffice/plugins"))))))))
2148 (inputs
2149 `(("glib" ,glib)
2150 ("gtk+" ,gtk+)
2151 ("goffice" ,goffice)
2152 ("libgsf" ,libgsf)
2153 ("librsvg" ,librsvg)
2154 ("libxml2" ,libxml2)
2155 ("libxslt" ,libxslt)
2156 ("python" ,python-2)
2157 ("python2-pygobject" ,python2-pygobject)
2158 ("zlib" ,zlib)))
2159 (native-inputs
2160 `(("bison" ,bison)
2161 ("docbook-xml" ,docbook-xml)
2162 ("intltool" ,intltool)
2163 ("itstool" ,itstool)
2164 ("glib:bin" ,glib "bin")
2165 ("pkg-config" ,pkg-config)))
2166 (home-page "http://www.gnumeric.org")
2167 (synopsis "Spreadsheet application")
2168 (description
2169 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
2170 interoperable with other spreadsheet applications. It has a vast array of
2171 features beyond typical spreadsheet functionality, such as support for linear
2172 and non-linear solvers, statistical analysis, and telecommunication
2173 engineering.")
2174 (license
2175 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2176 (list license:gpl2 license:gpl3))))
2177
2178 (define-public gnome-themes-standard
2179 (package
2180 (name "gnome-themes-standard")
2181 (version "3.22.3")
2182 (source
2183 (origin
2184 (method url-fetch)
2185 (uri (string-append "mirror://gnome/sources/" name "/"
2186 (version-major+minor version) "/" name "-"
2187 version ".tar.xz"))
2188 (sha256
2189 (base32
2190 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
2191 (build-system gnu-build-system)
2192 (arguments
2193 '(#:configure-flags
2194 ;; Don't create 'icon-theme.cache'.
2195 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2196 (true (string-append coreutils "/bin/true")))
2197 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2198 (inputs
2199 `(("gtk+" ,gtk+)
2200 ("gtk+-2" ,gtk+-2)
2201 ("librsvg" ,librsvg)
2202 ("libxml2" ,libxml2)
2203 ("glib" ,glib)))
2204 (native-inputs
2205 `(("intltool" ,intltool)
2206 ("glib:bin" ,glib "bin")
2207 ("pkg-config" ,pkg-config)))
2208 (home-page "https://launchpad.net/gnome-themes-standard")
2209 (synopsis "Default GNOME 3 themes")
2210 (description
2211 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
2212 (license license:lgpl2.1+)))
2213
2214 (define-public seahorse
2215 (package
2216 (name "seahorse")
2217 (version "3.30")
2218 (source
2219 (origin
2220 (method url-fetch)
2221 (uri (string-append "mirror://gnome/sources/" name "/"
2222 (version-major+minor version) "/" name "-"
2223 version ".tar.xz"))
2224 (sha256
2225 (base32
2226 "1sbj1czlx1fakm72dwgbn0bwm12j838yaky4mkf6hf8j8afnxmzp"))))
2227 (build-system glib-or-gtk-build-system)
2228 (inputs
2229 `(("gtk+" ,gtk+)
2230 ("gcr" ,gcr)
2231 ("gnupg" ,gnupg)
2232 ("gpgme" ,gpgme)
2233 ("openldap" ,openldap)
2234 ("openssh" ,openssh)
2235 ("libsecret" ,libsecret)
2236 ("libsoup" ,libsoup)))
2237 (native-inputs
2238 `(("intltool" ,intltool)
2239 ("glib:bin" ,glib "bin")
2240 ("itstool" ,itstool)
2241 ("pkg-config" ,pkg-config)
2242 ("xmllint" ,libxml2)))
2243 (home-page "https://launchpad.net/gnome-themes-standard")
2244 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
2245 (description
2246 "Seahorse is a GNOME application for managing encryption keys and
2247 passwords in the GNOME keyring.")
2248 (license license:gpl2+)))
2249
2250 (define-public vala
2251 (package
2252 (name "vala")
2253 (version "0.42.3")
2254 (source (origin
2255 (method url-fetch)
2256 (uri (string-append "mirror://gnome/sources/" name "/"
2257 (version-major+minor version) "/"
2258 name "-" version ".tar.xz"))
2259 (sha256
2260 (base32
2261 "0zaq9009wqk5aah131m426a2ia0scwpjpl4npf8p7p43wv8kvisz"))))
2262 (build-system gnu-build-system)
2263 (arguments
2264 '(#:phases
2265 (modify-phases %standard-phases
2266 (add-before 'check 'pre-check
2267 (lambda _
2268 (setenv "CC" "gcc")
2269 (substitute* "valadoc/tests/testrunner.sh"
2270 (("export PKG_CONFIG_PATH=" m)
2271 (string-append m "$PKG_CONFIG_PATH:")))
2272 ;; For missing '/etc/machine-id'.
2273 (setenv "DBUS_FATAL_WARNINGS" "0")
2274 #t)))))
2275 (native-inputs
2276 `(("pkg-config" ,pkg-config)
2277 ("flex" ,flex)
2278 ("bison" ,bison)
2279 ("xsltproc" ,libxslt)
2280 ("grep" ,grep)
2281 ("sed" ,sed)
2282 ("dbus" ,dbus) ; for dbus tests
2283 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
2284 (inputs
2285 `(("graphviz" ,graphviz)))
2286 (propagated-inputs
2287 `(("glib" ,glib))) ; required by libvala-0.40.pc
2288 (home-page "https://live.gnome.org/Vala/")
2289 (synopsis "Compiler for the GObject type system")
2290 (description
2291 "Vala is a programming language that aims to bring modern programming
2292 language features to GNOME developers without imposing any additional runtime
2293 requirements and without using a different ABI compared to applications and
2294 libraries written in C.")
2295 (license license:lgpl2.1+)))
2296
2297 (define-public vte
2298 (package
2299 (name "vte")
2300 (version "0.54.2")
2301 (source (origin
2302 (method url-fetch)
2303 (uri (string-append "mirror://gnome/sources/" name "/"
2304 (version-major+minor version) "/"
2305 name "-" version ".tar.xz"))
2306 (sha256
2307 (base32
2308 "0d1q2nc7lic4zax6csy7xdxq8hxjsf7m7dq6a21s1w8s2fslhzaj"))))
2309 (build-system gnu-build-system)
2310 (native-inputs
2311 `(("pkg-config" ,pkg-config)
2312 ("intltool" ,intltool)
2313 ("vala" ,vala)
2314 ("gobject-introspection" ,gobject-introspection)
2315 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2316 ("gperf" ,gperf)
2317 ("xmllint" ,libxml2)))
2318 (propagated-inputs
2319 `(("gtk+" ,gtk+) ;required by vte-2.91.pc
2320 ("gnutls" ,gnutls) ;ditto
2321 ("pcre2" ,pcre2))) ;ditto
2322 (home-page "https://www.gnome.org/")
2323 (synopsis "Virtual Terminal Emulator")
2324 (description
2325 "VTE is a library (libvte) implementing a terminal emulator widget for
2326 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
2327 gnome-terminal, but can also be used to embed a console/terminal in games,
2328 editors, IDEs, etc.")
2329 (license license:lgpl2.1+)))
2330
2331 (define-public vte-ng
2332 (package
2333 (inherit vte)
2334 (name "vte-ng")
2335 (version "0.56.2.a")
2336 (home-page "https://github.com/thestinger/vte-ng")
2337 (source (origin
2338 (method git-fetch)
2339 (uri (git-reference (url home-page) (commit version)))
2340 (file-name (git-file-name name version))
2341 (sha256
2342 (base32
2343 "1lmba6i0abifmvvfb1q63ql6zh6d38148kp6skmkggiib2hi5dki"))))
2344 (native-inputs
2345 `(("gtk-doc" ,gtk-doc)
2346 ("gperf" ,gperf)
2347 ("gcc" ,gcc-7)
2348 ("autoconf" ,autoconf)
2349 ("automake" ,automake)
2350 ("libtool" ,libtool)
2351 ,@(package-native-inputs vte)))
2352 (arguments
2353 `(#:phases (modify-phases %standard-phases
2354 (replace 'bootstrap
2355 (lambda _
2356 ;; Work around GCC7 problem: <https://bugs.gnu.org/30756>.
2357 (for-each unsetenv '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH"))
2358
2359 (setenv "NOCONFIGURE" "true")
2360 (invoke "sh" "autogen.sh"))))))
2361 (synopsis "Enhanced VTE terminal widget")
2362 (description
2363 "VTE is a library (libvte) implementing a terminal emulator widget for
2364 GTK+, this fork provides additional functions exposed for keyboard text
2365 selection and URL hints.")))
2366
2367 ;; provides vte 2.90, required for some terminal emulators
2368 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
2369 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
2370 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
2371 ;; pantheon-terminal, roxterm are not currently packaged
2372 (define-public vte-0.36
2373 (package (inherit vte)
2374 (name "vte")
2375 (version "0.36.5")
2376 (source (origin
2377 (method url-fetch)
2378 (uri (string-append "mirror://gnome/sources/" name "/"
2379 (version-major+minor version) "/"
2380 name "-" version ".tar.xz"))
2381 (sha256
2382 (base32
2383 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
2384 (propagated-inputs
2385 `(("gtk" ,gtk+)
2386 ("ncurses" ,ncurses)))))
2387
2388 ;; stable version for gtk2, required by xfce4-terminal.
2389 (define-public vte/gtk+-2
2390 (package (inherit vte)
2391 (name "vte")
2392 (version "0.28.2")
2393 (source (origin
2394 (method url-fetch)
2395 (uri (string-append "mirror://gnome/sources/" name "/"
2396 (version-major+minor version) "/"
2397 name "-" version ".tar.xz"))
2398 (sha256
2399 (base32
2400 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
2401 (patches (search-patches
2402 "vte-CVE-2012-2738-pt1.patch"
2403 "vte-CVE-2012-2738-pt2.patch"))))
2404 (arguments
2405 '(#:configure-flags '("--disable-python")))
2406 (native-inputs
2407 `(("pkg-config" ,pkg-config)
2408 ("intltool" ,intltool)
2409 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
2410 (propagated-inputs
2411 `(("gtk+" ,gtk+-2) ; required by libvte.pc
2412 ("ncurses" ,ncurses))))) ; required by libvte.la
2413
2414 (define-public vinagre
2415 (package
2416 (name "vinagre")
2417 (version "3.22.0")
2418 (source (origin
2419 (method url-fetch)
2420 (uri (string-append "mirror://gnome/sources/" name "/"
2421 (version-major+minor version) "/"
2422 name "-" version ".tar.xz"))
2423 (patches (search-patches "vinagre-newer-freerdp.patch"
2424 "vinagre-newer-rdp-parameters.patch"))
2425 (sha256
2426 (base32
2427 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
2428 (build-system glib-or-gtk-build-system)
2429 (arguments
2430 '(#:phases
2431 (modify-phases %standard-phases
2432 (add-before 'install 'skip-gtk-update-icon-cache
2433 (lambda _
2434 ;; Don't create 'icon-theme.cache'
2435 (substitute* (find-files "." "^Makefile$")
2436 (("gtk-update-icon-cache") (which "true")))
2437 #t))
2438 (add-after 'unpack 'patch-configure
2439 (lambda _
2440 (substitute* "configure"
2441 (("freerdp") "freerdp2"))
2442 #t)))))
2443 (native-inputs
2444 `(("pkg-config" ,pkg-config)
2445 ("intltool" ,intltool)
2446 ("itstool" ,itstool)
2447 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
2448 (inputs
2449 `(("libxml2" ,libxml2)
2450 ("gtk-vnc" ,gtk-vnc)
2451 ("gnome-keyring" ,gnome-keyring)
2452 ("libsecret" ,libsecret)
2453 ("freerdp" ,freerdp)
2454 ("spice" ,spice)
2455 ("spice-gtk" ,spice-gtk)
2456 ("telepathy-glib" ,telepathy-glib)
2457 ("vte" ,vte)))
2458 (home-page "https://wiki.gnome.org/Apps/Vinagre")
2459 (synopsis "Remote desktop viewer for GNOME")
2460 (description "Vinagre is a remote display client supporting the VNC, SPICE
2461 and RDP protocols.")
2462 (license license:gpl3+)))
2463
2464 (define-public dconf
2465 (package
2466 (name "dconf")
2467 (version "0.32.0")
2468 (source (origin
2469 (method url-fetch)
2470 (uri (string-append
2471 "mirror://gnome/sources/" name "/"
2472 (version-major+minor version) "/"
2473 name "-" version ".tar.xz"))
2474 (sha256
2475 (base32
2476 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
2477 (build-system meson-build-system)
2478 (propagated-inputs
2479 ;; In Requires of dconf.pc.
2480 `(("glib" ,glib)))
2481 (inputs
2482 `(("gtk+" ,gtk+)
2483 ("dbus" ,dbus)))
2484 (native-inputs
2485 `(("bash-completion" ,bash-completion)
2486 ("libxslt" ,libxslt) ;for xsltproc
2487 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
2488 ("docbook-xml" ,docbook-xml-4.2)
2489 ("docbook-xsl" ,docbook-xsl)
2490 ("glib:bin" ,glib "bin")
2491 ("gtk-doc" ,gtk-doc)
2492 ("pkg-config" ,pkg-config)
2493 ("vala" ,vala)))
2494 (arguments
2495 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
2496 ; or /etc/machine-id.
2497 #:glib-or-gtk? #t
2498 #:configure-flags '("-Denable-gtk-doc=true")))
2499 (home-page "https://developer.gnome.org/dconf")
2500 (synopsis "Low-level GNOME configuration system")
2501 (description "Dconf is a low-level configuration system. Its main purpose
2502 is to provide a backend to GSettings on platforms that don't already have
2503 configuration storage systems.")
2504 (license license:lgpl2.1+)))
2505
2506 (define-public json-glib
2507 (package
2508 (name "json-glib")
2509 (version "1.4.4")
2510 (source (origin
2511 (method url-fetch)
2512 (uri (string-append "mirror://gnome/sources/" name "/"
2513 (version-major+minor version) "/"
2514 name "-" version ".tar.xz"))
2515 (sha256
2516 (base32
2517 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
2518 (build-system meson-build-system)
2519 (native-inputs
2520 `(("gettext" ,gettext-minimal)
2521 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
2522 ("gobject-introspection" ,gobject-introspection)
2523 ("pkg-config" ,pkg-config)))
2524 (propagated-inputs
2525 `(("glib" ,glib))) ;according to json-glib-1.0.pc
2526 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
2527 (synopsis "Compiler for the GObject type system")
2528 (description
2529 "JSON-GLib is a C library based on GLib providing serialization and
2530 deserialization support for the JavaScript Object Notation (JSON) format
2531 described by RFC 4627. It provides parser and generator GObject classes and
2532 various wrappers for the complex data types employed by JSON, such as arrays
2533 and objects.")
2534 (license license:lgpl2.1+)))
2535
2536 (define-public libxklavier
2537 (package
2538 (name "libxklavier")
2539 (version "5.3")
2540 (source (origin
2541 (method url-fetch)
2542 (uri (string-append "mirror://gnome/sources/" name "/"
2543 version "/" name "-" version ".tar.xz"))
2544 (sha256
2545 (base32
2546 "016lpdv35z0qsw1cprdc2k5qzkdi5waj6qmr0a2q6ljn9g2kpv7b"))))
2547 (build-system gnu-build-system)
2548 (arguments
2549 '(#:configure-flags
2550 (list (string-append "--with-xkb-base="
2551 (assoc-ref %build-inputs "xkeyboard-config")
2552 "/share/X11/xkb"))))
2553 (native-inputs
2554 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
2555 ("gobject-introspection" ,gobject-introspection)
2556 ("pkg-config" ,pkg-config)))
2557 (propagated-inputs
2558 ;; Required by libxklavier.pc.
2559 `(("glib" ,glib)
2560 ("libxml2" ,libxml2)))
2561 (inputs
2562 `(("iso-codes" ,iso-codes)
2563 ("libxi" ,libxi)
2564 ("libxkbfile" ,libxkbfile)
2565 ("xkbcomp" ,xkbcomp)
2566 ("xkeyboard-config" ,xkeyboard-config)))
2567 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
2568 (synopsis "High-level API for X Keyboard Extension")
2569 (description
2570 "LibXklavier is a library providing high-level API for X Keyboard
2571 Extension known as XKB. This library is intended to support XFree86 and other
2572 commercial X servers. It is useful for creating XKB-related software (layout
2573 indicators etc).")
2574 (license license:lgpl2.0+)))
2575
2576 (define-public python2-rsvg
2577 ;; XXX: This is actually a subset of gnome-python-desktop.
2578 (package
2579 (name "python2-rsvg")
2580 (version "2.32.0")
2581 (source
2582 (origin
2583 (method url-fetch)
2584 (uri (string-append
2585 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
2586 version ".tar.bz2"))
2587 (sha256
2588 (base32
2589 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
2590 (build-system gnu-build-system)
2591 (native-inputs
2592 `(("pkg-config" ,pkg-config)))
2593 (inputs
2594 `(("python" ,python-2)
2595 ("python2-pygtk" ,python2-pygtk)
2596 ("librsvg" ,librsvg)))
2597 (home-page "https://www.gnome.org")
2598 (synopsis "Python bindings to librsvg")
2599 (description
2600 "This package provides Python bindings to librsvg, the SVG rendering
2601 library.")
2602
2603 ;; This is the license of the rsvg bindings. The license of each module
2604 ;; of gnome-python-desktop is given in 'COPYING'.
2605 (license license:lgpl2.1+)))
2606
2607 (define-public glib-networking
2608 (package
2609 (name "glib-networking")
2610 (version "2.58.0")
2611 (source (origin
2612 (method url-fetch)
2613 (uri (string-append "mirror://gnome/sources/glib-networking/"
2614 (version-major+minor version) "/"
2615 name "-" version ".tar.xz"))
2616 (sha256
2617 (base32
2618 "0s006gs9nsq6mg31spqha1jffzmp6qjh10y27h0fxf1iw1ah5ymx"))
2619 (patches (search-patches "glib-networking-connection.patch"))))
2620 (build-system meson-build-system)
2621 (arguments
2622 `(#:configure-flags '("-Dlibproxy_support=false")
2623 #:phases (modify-phases %standard-phases
2624 (add-before 'check 'disable-TLSv1.3
2625 (lambda _
2626 ;; XXX: One test fails when TLS 1.3 is enabled, fixed in 2.60.0:
2627 ;; <https://gitlab.com/gnutls/gnutls/issues/615>.
2628 (setenv "G_TLS_GNUTLS_PRIORITY" "NORMAL:-VERS-TLS1.3")
2629 #t)))))
2630 (native-inputs
2631 `(("pkg-config" ,pkg-config)
2632 ("intltool" ,intltool)))
2633 (inputs
2634 `(("glib" ,glib)
2635 ("gnutls" ,gnutls)
2636 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2637 ("p11-kit" ,p11-kit)))
2638 (home-page "https://www.gnome.org")
2639 (synopsis "Network-related GIO modules")
2640 (description
2641 "This package contains various network related extensions for the GIO
2642 library.")
2643 (license license:lgpl2.0+)))
2644
2645 (define-public rest
2646 (package
2647 (name "rest")
2648 (version "0.8.1")
2649 (source (origin
2650 (method url-fetch)
2651 (uri (string-append "mirror://gnome/sources/rest/"
2652 (version-major+minor version) "/"
2653 name "-" version ".tar.xz"))
2654 (sha256
2655 (base32
2656 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
2657 (build-system gnu-build-system)
2658 (arguments
2659 '(#:tests? #f ; tests require internet connection
2660 #:configure-flags
2661 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
2662 (native-inputs
2663 `(("glib-mkenums" ,glib "bin")
2664 ("gobject-introspection" ,gobject-introspection)
2665 ("pkg-config" ,pkg-config)))
2666 (propagated-inputs
2667 ;; rest-0.7.pc refers to all these.
2668 `(("glib" ,glib)
2669 ("libsoup" ,libsoup)
2670 ("libxml2" ,libxml2)))
2671 (home-page "https://www.gtk.org/")
2672 (synopsis "RESTful web api query library")
2673 (description
2674 "This library was designed to make it easier to access web services that
2675 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
2676 libxml to ease remote use of the RESTful API.")
2677 (license license:lgpl2.1+)))
2678
2679 (define-public libsoup
2680 (package
2681 (name "libsoup")
2682 (version "2.66.2")
2683 (source (origin
2684 (method url-fetch)
2685 (uri (string-append "mirror://gnome/sources/libsoup/"
2686 (version-major+minor version) "/"
2687 name "-" version ".tar.xz"))
2688 (sha256
2689 (base32
2690 "0amfw1yvy1kjrg41rfh2vvrw5gkwnyckqbw1fab50hm6xc1acbmx"))))
2691 (build-system meson-build-system)
2692 (outputs '("out" "doc"))
2693 (arguments
2694 `(#:modules ((guix build utils)
2695 (guix build meson-build-system)
2696 (ice-9 popen))
2697
2698 #:configure-flags '("-Ddoc=true")
2699 #:phases
2700 (modify-phases %standard-phases
2701 (add-after 'unpack 'adjust-tests
2702 (lambda _
2703 ;; This test fails due to missing /etc/nsswitch.conf
2704 ;; in the build environment.
2705 (substitute* "tests/socket-test.c"
2706 ((".*/sockets/unconnected.*") ""))
2707
2708 ;; Generate a self-signed certificate that has "localhost" as its
2709 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
2710 ;; 3.5.12, tests such as "ssl-tests" fail:
2711 ;;
2712 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
2713 ;;
2714 ;; 'certtool' is interactive so we have to pipe it the answers.
2715 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
2716 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
2717 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
2718 (for-each (lambda (line)
2719 (display line pipe)
2720 (newline pipe))
2721 '("" ;Common name
2722 "" ;UID
2723 "Guix" ;Organizational unit name
2724 "GNU" ;Organization name
2725 "" ;Locality name
2726 "" ;State or province
2727 "" ;Country
2728 "" ;subject's domain component (DC)
2729 "" ;E-mail
2730 "" ;serial number
2731 "-1" ;expiration time
2732 "N" ;belong to authority?
2733 "N" ;web client certificate?
2734 "N" ;IPsec IKE?
2735 "Y" ;web server certificate?
2736 "localhost" ;dnsName of subject
2737 "" ;dnsName of subject (end)
2738 "" ;URI of subject
2739 "127.0.0.1" ;IP address of subject
2740 "" ;signing?
2741 "" ;encryption (RSA)?
2742 "" ;data encryption?
2743 "" ;sign OCSP requests?
2744 "" ;sign code?
2745 "" ;time stamping?
2746 "" ;email protection?
2747 "" ;URI of the CRL distribution point
2748 "y" ;above info OK?
2749 ))
2750 (close-pipe pipe))
2751 #t))
2752 (add-after 'install 'move-doc
2753 (lambda* (#:key outputs #:allow-other-keys)
2754 (let ((out (assoc-ref outputs "out"))
2755 (doc (assoc-ref outputs "doc")))
2756 (mkdir-p (string-append doc "/share"))
2757 (copy-recursively (string-append out "/share/gtk-doc")
2758 (string-append doc "/share/gtk-doc"))
2759 (delete-file-recursively (string-append out "/share/gtk-doc"))
2760 #t))))))
2761 (native-inputs
2762 `(("glib:bin" ,glib "bin") ; for glib-mkenums
2763 ("gobject-introspection" ,gobject-introspection)
2764 ("gtk-doc" ,gtk-doc)
2765 ("intltool" ,intltool)
2766 ("pkg-config" ,pkg-config)
2767 ("python" ,python-wrapper)
2768 ("vala" ,vala)
2769 ;; These are needed for the tests.
2770 ;; FIXME: Add PHP once available.
2771 ("curl" ,curl)
2772 ("gnutls" ,gnutls) ;for 'certtool'
2773 ("httpd" ,httpd)))
2774 (propagated-inputs
2775 ;; libsoup-2.4.pc refers to all these.
2776 `(("glib" ,glib)
2777 ("libpsl" ,libpsl)
2778 ("libxml2" ,libxml2)
2779 ("sqlite" ,sqlite)))
2780 (inputs
2781 `(("glib-networking" ,glib-networking)
2782 ("mit-krb5" ,mit-krb5)))
2783 (home-page "https://live.gnome.org/LibSoup/")
2784 (synopsis "GLib-based HTTP Library")
2785 (description
2786 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
2787 and the GLib main loop, to integrate well with GNOME applications.")
2788 (license license:lgpl2.0+)))
2789
2790 (define-public libsecret
2791 (package
2792 (name "libsecret")
2793 (version "0.18.8")
2794 (source (origin
2795 (method url-fetch)
2796 (uri (string-append
2797 "mirror://gnome/sources/libsecret/"
2798 (version-major+minor version) "/"
2799 name "-" version ".tar.xz"))
2800 (sha256
2801 (base32
2802 "058x64689k55wxfkdp4svhnwvv8jmqm7z5mrynybl38f4sfqiyiv"))))
2803 (build-system gnu-build-system)
2804 (outputs '("out" "doc"))
2805 (arguments
2806 `(#:tests? #f ; FIXME: Testing hangs.
2807 #:configure-flags
2808 (list (string-append "--with-html-dir="
2809 (assoc-ref %outputs "doc")
2810 "/share/gtk-doc/html"))))
2811 (native-inputs
2812 `(("gettext" ,gettext-minimal)
2813 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
2814 ("gobject-introspection" ,gobject-introspection)
2815 ("pkg-config" ,pkg-config)
2816 ("vala" ,vala)
2817 ("xsltproc" ,libxslt)))
2818 ;; These are needed for the tests.
2819 ;; FIXME: Add gjs once available.
2820 ;("dbus" ,dbus)
2821 ;("python2" ,python-2)
2822 ;("python2-dbus" ,python2-dbus)
2823 ;("python2-pygobject" ,python2-pygobject)
2824 ;("python2-pygobject-2" ,python2-pygobject-2)))
2825 (propagated-inputs
2826 `(("glib" ,glib))) ; required by libsecret-1.pc
2827 (inputs
2828 `(("docbook-xsl" ,docbook-xsl)
2829 ("libgcrypt" ,libgcrypt)
2830 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
2831 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
2832 (synopsis "GObject bindings for \"Secret Service\" API")
2833 (description
2834 "Libsecret is a GObject based library for storing and retrieving passwords
2835 and other secrets. It communicates with the \"Secret Service\" using DBus.")
2836 (license license:lgpl2.1+)))
2837
2838 (define-public five-or-more
2839 (package
2840 (name "five-or-more")
2841 (version "3.30.0")
2842 (source
2843 (origin
2844 (method url-fetch)
2845 (uri (string-append "mirror://gnome/sources/" name "/"
2846 (version-major+minor version) "/"
2847 name "-" version ".tar.xz"))
2848 (sha256
2849 (base32
2850 "00d729p251kh96624i7qg2370r5mxwafs016i6hy01vsr71jzb9x"))))
2851 (build-system glib-or-gtk-build-system)
2852 (native-inputs
2853 `(("pkg-config" ,pkg-config)
2854 ("desktop-file-utils" ,desktop-file-utils)
2855 ("intltool" ,intltool)
2856 ("itstool" ,itstool)
2857 ("xmllint" ,libxml2)))
2858 (inputs
2859 `(("gtk+" ,gtk+)
2860 ("librsvg" ,librsvg)))
2861 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
2862 (synopsis "Logic puzzle game")
2863 (description "Five or More is a game where you try to align
2864 five or more objects of the same color and shape causing them to disappear.
2865 On every turn more objects will appear, until the board is full.
2866 Try to last as long as possible.")
2867 (license license:gpl2+)))
2868
2869 (define-public gnome-mines
2870 (package
2871 (name "gnome-mines")
2872 (version "3.30.1.1")
2873 (source
2874 (origin
2875 (method url-fetch)
2876 (uri (string-append "mirror://gnome/sources/" name "/"
2877 (version-major+minor version) "/"
2878 name "-" version ".tar.xz"))
2879 (sha256
2880 (base32
2881 "08ddk400sg1g3q26gnm5mgv81vdqyix0yl7pd47p50vkc1w6f33z"))))
2882 (build-system meson-build-system)
2883 (arguments
2884 `(#:phases
2885 (modify-phases %standard-phases
2886 (delete 'bootstrap))))
2887 (native-inputs
2888 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
2889 ("pkg-config" ,pkg-config)
2890 ("desktop-file-utils" ,desktop-file-utils)
2891 ("intltool" ,intltool)
2892 ("itstool" ,itstool)
2893 ("vala" ,vala)
2894 ("yelp" ,yelp)
2895 ("appstream-glib" ,appstream-glib)))
2896 (inputs
2897 `(("gtk+" ,gtk+)
2898 ("libgnome-games-support" ,libgnome-games-support)
2899 ("librsvg" ,librsvg)))
2900 (home-page "https://wiki.gnome.org/Apps/Mines")
2901 (synopsis "Minesweeper game")
2902 (description
2903 "Mines (previously gnomine) is a puzzle game where you locate mines
2904 floating in an ocean using only your brain and a little bit of luck.")
2905 (license license:gpl2+)))
2906
2907 (define-public gnome-sudoku
2908 (package
2909 (name "gnome-sudoku")
2910 (version "3.30.0")
2911 (source
2912 (origin
2913 (method url-fetch)
2914 (uri (string-append "mirror://gnome/sources/" name "/"
2915 (version-major+minor version) "/"
2916 name "-" version ".tar.xz"))
2917 (sha256
2918 (base32
2919 "1xy986s51jnrcqwan2hy4bjdg6797yr9s7gxx2z2q4j4gkx3qa1f"))))
2920 (build-system glib-or-gtk-build-system)
2921 (native-inputs
2922 `(("pkg-config" ,pkg-config)
2923 ("desktop-file-utils" ,desktop-file-utils)
2924 ("intltool" ,intltool)
2925 ("itstool" ,itstool)
2926 ("xmllint" ,libxml2)))
2927 (inputs
2928 `(("gtk+" ,gtk+)
2929 ("json-glib" ,json-glib)
2930 ("libgee" ,libgee)
2931 ("librsvg" ,librsvg)
2932 ("qqwing" ,qqwing)))
2933 (home-page "https://wiki.gnome.org/Apps/Sudoku")
2934 (synopsis "Japanese logic game")
2935 (description
2936 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
2937 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
2938 possible while still providing features that make playing difficult Sudoku
2939 more fun.")
2940 (license license:gpl2+)))
2941
2942 (define-public gnome-terminal
2943 (package
2944 (name "gnome-terminal")
2945 (version "3.30.2")
2946 (source
2947 (origin
2948 (method url-fetch)
2949 (uri (string-append "mirror://gnome/sources/" name "/"
2950 (version-major+minor version) "/"
2951 name "-" version ".tar.xz"))
2952 (sha256
2953 (base32
2954 "0f2y76gs72sw5l5lkkkvxzsvvwm0sg83h7nl8lk5kz1v1rrc47vb"))))
2955 (build-system glib-or-gtk-build-system)
2956 (arguments
2957 '(#:configure-flags
2958 (list "--disable-migration" "--disable-search-provider"
2959 "--without-nautilus-extension")
2960 #:phases
2961 (modify-phases %standard-phases
2962 (add-before 'configure 'patch-/bin/true
2963 (lambda _
2964 (substitute* "configure"
2965 (("/bin/true") (which "true"))))))))
2966 (native-inputs
2967 `(("pkg-config" ,pkg-config)
2968 ("desktop-file-utils" ,desktop-file-utils)
2969 ("intltool" ,intltool)
2970 ("itstool" ,itstool)
2971 ("xmllint" ,libxml2)))
2972 (propagated-inputs
2973 `(("dconf" ,dconf)))
2974 (inputs
2975 `(("gtk+" ,gtk+)
2976 ("vte" ,vte)
2977 ("gnutls" ,gnutls)
2978 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2979 ("util-linux" ,util-linux)
2980 ("vala" ,vala)))
2981 (home-page "https://wiki.gnome.org/Apps/Terminal")
2982 (synopsis "Terminal emulator")
2983 (description
2984 "GNOME Terminal is a terminal emulator application for accessing a
2985 UNIX shell environment which can be used to run programs available on
2986 your system.
2987
2988 It supports several profiles, multiple tabs and implements several
2989 keyboard shortcuts.")
2990 (license license:gpl3+)))
2991
2992 (define-public colord
2993 (package
2994 (name "colord")
2995 (version "1.4.3")
2996 (source
2997 (origin
2998 (method url-fetch)
2999 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
3000 name "-" version ".tar.xz"))
3001 (sha256
3002 (base32
3003 "1xwxahg9mgmapc16xkb4kgmc40zpadrwav33xqmn6cgaw6g6d3ls"))))
3004 (build-system meson-build-system)
3005 (arguments
3006 '(;; FIXME: One test fails:
3007 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3008 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3009 ;; application/x-zerosize
3010 #:tests? #f
3011 #:glib-or-gtk? #t
3012 #:configure-flags (list "-Dlocalstatedir=/var"
3013 ;; No dep on systemd.
3014 "-Dsystemd=false"
3015 ;; Wants to install to global completion dir;
3016 ;; punt.
3017 "-Dbash_completion=false"
3018 ;; colord-gtk not packaged yet.
3019 "-Dsession_example=false"
3020 "-Ddaemon_user=colord"
3021 "-Dsane=true"
3022 ;; Requires spotread
3023 "-Dargyllcms_sensor=false"
3024 ;; TODO: Requires docbook2x
3025 "-Dman=false")
3026 #:phases
3027 (modify-phases %standard-phases
3028 (add-before 'configure 'patch-build-system
3029 (lambda* (#:key outputs #:allow-other-keys)
3030 (substitute* "rules/meson.build"
3031 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
3032 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
3033 #t)))))
3034 (native-inputs
3035 `(("pkg-config" ,pkg-config)
3036 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
3037 ("gobject-introspection" ,gobject-introspection)
3038 ("gtk-doc" ,gtk-doc)
3039 ("libtool" ,libtool)
3040 ("intltool" ,intltool)))
3041 (propagated-inputs
3042 ;; colord.pc refers to all these.
3043 `(("glib" ,glib)
3044 ("udev" ,eudev)
3045 ("lcms" ,lcms)))
3046 (inputs
3047 `(("dbus-glib" ,dbus-glib)
3048 ("gusb" ,gusb)
3049 ("libgudev" ,libgudev)
3050 ("libusb" ,libusb)
3051 ("sqlite" ,sqlite)
3052 ("polkit" ,polkit)
3053 ("python" ,python-wrapper)
3054 ("sane-backends" ,sane-backends)))
3055 (home-page "https://www.freedesktop.org/software/colord/")
3056 (synopsis "Color management service")
3057 (description "Colord is a system service that makes it easy to manage,
3058 install and generate color profiles to accurately color manage input and
3059 output devices.")
3060 (license license:gpl2+)))
3061
3062 (define-public geoclue
3063 (package
3064 (name "geoclue")
3065 (version "2.4.8")
3066 (source
3067 (origin
3068 (method url-fetch)
3069 (uri (string-append "https://www.freedesktop.org/software/" name
3070 "/releases/" (version-major+minor version) "/"
3071 name "-" version ".tar.xz"))
3072 (sha256
3073 (base32
3074 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
3075 (patches (search-patches "geoclue-config.patch"))))
3076 (build-system glib-or-gtk-build-system)
3077 (arguments
3078 '(;; The tests want to run the system bus.
3079 #:tests? #f
3080 #:configure-flags (list ;; Disable bits requiring ModemManager.
3081 "--disable-3g-source"
3082 "--disable-cdma-source"
3083 "--disable-modem-gps-source"
3084 "--with-dbus-service-user=geoclue")
3085 #:phases
3086 (modify-phases %standard-phases
3087 (add-before 'configure 'patch-/bin/true
3088 (lambda _
3089 (substitute* "configure"
3090 (("/bin/true") (which "true")))
3091 #t)))))
3092 (native-inputs
3093 `(("pkg-config" ,pkg-config)
3094 ("gobject-introspection" ,gobject-introspection)
3095 ("intltool" ,intltool)))
3096 (inputs
3097 `(("avahi" ,avahi)
3098 ("glib" ,glib)
3099 ("json-glib" ,json-glib)
3100 ("libsoup" ,libsoup)))
3101 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
3102 (synopsis "Geolocation service")
3103 (description "Geoclue is a D-Bus service that provides location
3104 information. The primary goal of the Geoclue project is to make creating
3105 location-aware applications as simple as possible, while the secondary goal is
3106 to ensure that no application can access location information without explicit
3107 permission from user.")
3108 (license license:gpl2+)))
3109
3110 (define-public geocode-glib
3111 (package
3112 (name "geocode-glib")
3113 (version "3.26.0")
3114 (source (origin
3115 (method url-fetch)
3116 (uri (string-append "mirror://gnome/sources/geocode-glib/"
3117 (version-major+minor version) "/"
3118 name "-" version ".tar.xz"))
3119 (sha256
3120 (base32
3121 "1vmydxs5xizcmaxpkfrq75xpj6pqrpdjizxyb30m00h54yqqch7a"))))
3122 (build-system meson-build-system)
3123 (arguments
3124 `(#:phases
3125 (modify-phases %standard-phases
3126 ;; The tests require a bunch of locales.
3127 (add-before 'check 'set-locales
3128 (lambda* (#:key inputs #:allow-other-keys)
3129 (setenv "GUIX_LOCPATH"
3130 (string-append (assoc-ref inputs "glibc-locales")
3131 "/lib/locale"))
3132 #t)))))
3133 (native-inputs
3134 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3135 ("glibc-locales" ,glibc-locales) ; for tests
3136 ("gettext" ,gettext-minimal)
3137 ("gobject-introspection" ,gobject-introspection)
3138 ("gtk-doc" ,gtk-doc)
3139 ("pkg-config" ,pkg-config)
3140 ("json-glib" ,json-glib)))
3141 (propagated-inputs
3142 ;; geocode-glib-1.0.pc refers to GIO.
3143 `(("glib" ,glib)))
3144 (inputs
3145 `(("libsoup" ,libsoup)))
3146 (home-page "https://github.com/GNOME/geocode-glib/")
3147 (synopsis "Geocoding and reverse-geocoding library")
3148 (description
3149 "geocode-glib is a convenience library for geocoding (finding longitude,
3150 and latitude from an address) and reverse geocoding (finding an address from
3151 coordinates) using the Nominatim service. geocode-glib caches requests for
3152 faster results and to avoid unnecessary server load.")
3153 (license license:lgpl2.0+)))
3154
3155 (define-public upower
3156 (package
3157 (name "upower")
3158 (version "0.99.10")
3159 (source (origin
3160 (method url-fetch)
3161 (uri (string-append "https://gitlab.freedesktop.org/upower/upower/"
3162 "uploads/c438511024b9bc5a904f8775cfc8e4c4/"
3163 "upower-" version ".tar.xz"))
3164 (sha256
3165 (base32
3166 "17d2bclv5fgma2y3g8bsn9pdvspn1zrzismzdnzfivc0f2wm28k4"))
3167 (patches (search-patches "upower-builddir.patch"))))
3168 (build-system glib-or-gtk-build-system)
3169 (arguments
3170 '( ;; The tests want to contact the system bus, which can't be done in the
3171 ;; build environment. The integration test can run, but the last of
3172 ;; the up-self-tests doesn't. Disable tests for now.
3173 #:tests? #f
3174 #:configure-flags (list "--localstatedir=/var"
3175 (string-append "--with-udevrulesdir="
3176 (assoc-ref %outputs "out")
3177 "/lib/udev/rules.d"))))
3178 (native-inputs
3179 `(("gobject-introspection" ,gobject-introspection)
3180 ("pkg-config" ,pkg-config)
3181 ("intltool" ,intltool)
3182 ("python" ,python)
3183
3184 ;; For man pages.
3185 ("libxslt" ,libxslt) ;for 'xsltproc'
3186 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
3187 ("docbook-xsl" ,docbook-xsl)))
3188 (inputs
3189 `(("dbus-glib" ,dbus-glib)
3190 ("libgudev" ,libgudev)
3191 ("libusb" ,libusb)))
3192 (propagated-inputs
3193 ;; In Requires of upower-glib.pc.
3194 `(("glib" ,glib)))
3195 (home-page "https://upower.freedesktop.org/")
3196 (synopsis "System daemon for managing power devices")
3197 (description
3198 "UPower is an abstraction for enumerating power devices,
3199 listening to device events and querying history and statistics. Any
3200 application or service on the system can access the org.freedesktop.UPower
3201 service via the system message bus.")
3202 (license license:gpl2+)))
3203
3204 (define-public libgweather
3205 (package
3206 (name "libgweather")
3207 (version "3.28.2")
3208 (source (origin
3209 (method url-fetch)
3210 (uri (string-append "mirror://gnome/sources/" name "/"
3211 (version-major+minor version) "/"
3212 name "-" version ".tar.xz"))
3213 (sha256
3214 (base32
3215 "0xfy5ghwvnz2g9074dy6512m4z2pv66pmja14vhi9imgacbfh708"))))
3216 (build-system meson-build-system)
3217 (arguments
3218 `(#:tests? #f ; one of two tests requires network access
3219 #:configure-flags
3220 `(,(string-append "-Dzoneinfo_dir="
3221 (assoc-ref %build-inputs "tzdata")
3222 "/share/zoneinfo"))))
3223 (native-inputs
3224 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3225 ("gobject-introspection" ,gobject-introspection)
3226 ("pkg-config" ,pkg-config)
3227 ("vala" ,vala)
3228 ("intltool" ,intltool)))
3229 (propagated-inputs
3230 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
3231 ;; libsoup.
3232 `(("gtk+" ,gtk+)
3233 ("gdk-pixbuf" ,gdk-pixbuf)
3234 ("libxml2" ,libxml2)
3235 ("libsoup" ,libsoup)
3236 ("geocode-glib" ,geocode-glib)))
3237 (inputs
3238 `(("tzdata" ,tzdata)))
3239 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
3240 (synopsis "Location, time zone, and weather library for GNOME")
3241 (description
3242 "libgweather is a library to access weather information from online
3243 services for numerous locations.")
3244 (license license:gpl2+)))
3245
3246 (define-public gnome-settings-daemon
3247 (package
3248 (name "gnome-settings-daemon")
3249 (version "3.30.1.2")
3250 (source
3251 (origin
3252 (method url-fetch)
3253 (uri (string-append "mirror://gnome/sources/" name "/"
3254 (version-major+minor version) "/"
3255 name "-" version ".tar.xz"))
3256 (sha256
3257 (base32
3258 "079dh609rvpwfyzg4m898q8km9g7x04hg18rwwb1izj1dr7zdp2w"))))
3259 (build-system meson-build-system)
3260 (arguments
3261 `(#:glib-or-gtk? #t
3262 #:configure-flags
3263 (list (string-append "-Dudev_dir="
3264 (assoc-ref %outputs "out")
3265 "/lib/udev/rules.d/")
3266 ;; Otherwise, the RUNPATH will lack the final path component.
3267 (string-append "-Dc_link_args=-Wl,-rpath="
3268 (assoc-ref %outputs "out")
3269 "/lib/gnome-settings-daemon-3.0"))
3270 ;; Color management test can't reach the colord system service.
3271 #:tests? #f))
3272 (native-inputs
3273 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3274 ("pkg-config" ,pkg-config)
3275 ("intltool" ,intltool)
3276 ("xsltproc" ,libxslt)
3277 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3278 ("docbook-xml" ,docbook-xml-4.2)
3279 ("docbook-xsl" ,docbook-xsl)))
3280 (inputs
3281 `(("alsa-lib" ,alsa-lib)
3282 ("colord" ,colord)
3283 ("libgudev" ,libgudev)
3284 ("upower" ,upower)
3285 ("polkit" ,polkit)
3286 ("pulseaudio" ,pulseaudio)
3287 ("libcanberra" ,libcanberra)
3288 ("libx11" ,libx11)
3289 ("libxtst" ,libxtst)
3290 ("lcms" ,lcms)
3291 ("libnotify" ,libnotify)
3292 ("geoclue" ,geoclue)
3293 ("geocode-glib" ,geocode-glib)
3294 ("libgweather" ,libgweather)
3295 ("gnome-desktop" ,gnome-desktop)
3296 ("nss" ,nss)
3297 ("cups" ,cups)
3298 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3299 ("libwacom" ,libwacom)
3300 ("librsvg" ,librsvg)
3301 ("xf86-input-wacom" ,xf86-input-wacom)
3302 ("wayland" ,wayland)
3303 ("network-manager" ,network-manager)))
3304 (home-page "https://www.gnome.org")
3305 (synopsis "GNOME settings daemon")
3306 (description
3307 "This package contains the daemon responsible for setting the various
3308 parameters of a GNOME session and the applications that run under it. It
3309 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
3310 settings, themes, mouse settings, and startup of other daemons.")
3311 (license license:gpl2+)))
3312
3313 (define-public totem-pl-parser
3314 (package
3315 (name "totem-pl-parser")
3316 (version "3.26.1")
3317 (source (origin
3318 (method url-fetch)
3319 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
3320 (version-major+minor version) "/"
3321 "totem-pl-parser-" version ".tar.xz"))
3322 (sha256
3323 (base32
3324 "0k5pnka907invgds48d73c1xx1a366v5dcld3gr2l1dgmjwc9qka"))))
3325 (build-system meson-build-system)
3326 (arguments
3327 ;; FIXME: Tests require gvfs.
3328 `(#:tests? #f))
3329 (native-inputs
3330 `(("intltool" ,intltool)
3331 ("glib" ,glib "bin")
3332 ("gobject-introspection" ,gobject-introspection)
3333 ("pkg-config" ,pkg-config)))
3334 (propagated-inputs
3335 `(("glib" ,glib)
3336 ("gmime" ,gmime)
3337 ("libarchive" ,libarchive)
3338 ("libgcrypt" ,libgcrypt)
3339 ("libxml2" ,libxml2)))
3340 (inputs
3341 `(("nettle" ,nettle)
3342 ("libsoup" ,libsoup)))
3343 (home-page "https://projects.gnome.org/totem")
3344 (synopsis "Library to parse and save media playlists for GNOME")
3345 (description "Totem-pl-parser is a GObjects-based library to parse and save
3346 playlists in a variety of formats.")
3347 (license license:lgpl2.0+)))
3348
3349 (define-public aisleriot
3350 (package
3351 (name "aisleriot")
3352 (version "3.22.8")
3353 (source (origin
3354 (method url-fetch)
3355 (uri (string-append "mirror://gnome/sources/aisleriot/"
3356 (version-major+minor version) "/"
3357 "aisleriot-" version ".tar.xz"))
3358 (sha256
3359 (base32
3360 "15pm39679ymxki07sb5nvhycz4z53zwbvascyp5wm4864bn98815"))))
3361 (build-system glib-or-gtk-build-system)
3362 (arguments
3363 '(#:configure-flags
3364 '("--with-platform=gtk-only"
3365 "--with-card-theme-formats=svg")))
3366 (native-inputs
3367 `(("desktop-file-utils" ,desktop-file-utils)
3368 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
3369 ("intltool" ,intltool)
3370 ("itstool" ,itstool)
3371 ("pkg-config" ,pkg-config)
3372 ("xmllint" ,libxml2)))
3373 (inputs
3374 `(("gtk+" ,gtk+)
3375 ("guile" ,guile-2.2)
3376 ("libcanberra" ,libcanberra)
3377 ("librsvg" ,librsvg)))
3378 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
3379 (synopsis "Solitaire card games")
3380 (description
3381 "Aisleriot (also known as Solitaire or sol) is a collection of card games
3382 which are easy to play with the aid of a mouse.")
3383 (license license:gpl3+)))
3384
3385 (define-public devhelp
3386 (package
3387 (name "devhelp")
3388 (version "3.28.1")
3389 (source (origin
3390 (method url-fetch)
3391 (uri (string-append "mirror://gnome/sources/" name "/"
3392 (version-major+minor version) "/"
3393 name "-" version ".tar.xz"))
3394 (sha256
3395 (base32
3396 "08a8xizjqz68k30zd37r7g516azhan9bbrjsvv10hjd5dg3f476s"))))
3397 (build-system glib-or-gtk-build-system)
3398 (native-inputs
3399 `(("intltool" ,intltool)
3400 ("itstool" ,itstool)
3401 ("pkg-config" ,pkg-config)))
3402 (inputs
3403 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3404 ("webkitgtk" ,webkitgtk)))
3405 (home-page "https://wiki.gnome.org/Apps/Devhelp")
3406 (synopsis "API documentation browser for GNOME")
3407 (description
3408 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
3409 natively with GTK-Doc (the API reference system developed for GTK+ and used
3410 throughout GNOME for API documentation).")
3411 (license license:gpl2+)))
3412
3413 (define-public cogl
3414 (package
3415 (name "cogl")
3416 (version "1.22.2")
3417 (source
3418 (origin
3419 (method url-fetch)
3420 (uri (string-append "mirror://gnome/sources/" name "/"
3421 (version-major+minor version) "/"
3422 name "-" version ".tar.xz"))
3423 (sha256
3424 (base32
3425 "03f0ha3qk7ca0nnkkcr1garrm1n1vvfqhkz9lwjm592fnv6ii9rr"))))
3426 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
3427 ;; cogl, corresponding changes may be appropriate in mutter as well.
3428 (build-system gnu-build-system)
3429 (native-inputs
3430 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3431 ("gobject-introspection" ,gobject-introspection)
3432 ;;("xorg-server" ,xorg-server) ; for the test suite
3433 ("pkg-config" ,pkg-config)))
3434 (propagated-inputs
3435 `(("glib" ,glib)
3436 ("gdk-pixbuf" ,gdk-pixbuf)
3437 ("libx11" ,libx11)
3438 ("libxext" ,libxext)
3439 ("libxfixes" ,libxfixes)
3440 ("libxdamage" ,libxdamage)
3441 ("libxcomposite" ,libxcomposite)
3442 ("libxrandr" ,libxrandr)))
3443 (inputs
3444 `(("mesa" ,mesa)
3445 ("cairo" ,cairo)
3446 ("pango" ,pango)
3447 ("gstreamer" ,gstreamer)
3448 ("gst-plugins-base" ,gst-plugins-base)
3449 ("wayland" ,wayland)))
3450 (arguments
3451 `(#:configure-flags (list "--enable-cogl-gst"
3452 "--enable-wayland-egl-platform"
3453 "--enable-wayland-egl-server"
3454
3455 ;; Arrange to pass an absolute file name to
3456 ;; dlopen for libGL.so.
3457 (string-append "--with-gl-libname="
3458 (assoc-ref %build-inputs "mesa")
3459 "/lib/libGL.so"))
3460 ;; XXX FIXME: All tests fail, with many warnings printed like this:
3461 ;; _FontTransOpen: Unable to Parse address
3462 ;; ${prefix}/share/fonts/X11/misc/
3463 #:tests? #f
3464 #; #:phases
3465 #;
3466 (modify-phases %standard-phases
3467 (add-before 'check 'start-xorg-server
3468 (lambda* (#:key inputs #:allow-other-keys)
3469 ;; The test suite requires a running X server.
3470 (system (format #f "~a/bin/Xvfb :1 &"
3471 (assoc-ref inputs "xorg-server")))
3472 (setenv "DISPLAY" ":1")
3473 #t)))))
3474 (home-page "http://www.cogl3d.org")
3475 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
3476 (description
3477 "Cogl is a small library for using 3D graphics hardware to draw pretty
3478 pictures. The API departs from the flat state machine style of OpenGL and is
3479 designed to make it easy to write orthogonal components that can render
3480 without stepping on each others toes.")
3481 (license (list license:expat ; most of the code
3482 license:bsd-3 ; cogl/cogl-point-in-poly.c
3483 license:sgifreeb2.0 ; cogl-path/tesselator/
3484 license:asl2.0)))) ; examples/android/
3485
3486 (define-public clutter
3487 (package
3488 (name "clutter")
3489 (version "1.26.2")
3490 (source
3491 (origin
3492 (method url-fetch)
3493 (uri (string-append "mirror://gnome/sources/" name "/"
3494 (version-major+minor version) "/"
3495 name "-" version ".tar.xz"))
3496 (sha256
3497 (base32
3498 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
3499 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
3500 ;; to clutter, corresponding changes may be appropriate in mutter as well.
3501 (build-system gnu-build-system)
3502 (outputs '("out"
3503 "doc")) ;9 MiB of gtk-doc HTML pages
3504 (native-inputs
3505 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
3506 ("gobject-introspection" ,gobject-introspection)
3507 ("pkg-config" ,pkg-config)
3508 ("xsltproc" ,libxslt)))
3509 (propagated-inputs
3510 `(("cogl" ,cogl)
3511 ("cairo" ,cairo)
3512 ("atk" ,atk)
3513 ("gtk+" ,gtk+)
3514 ("json-glib" ,json-glib)
3515 ("glib" ,glib)
3516 ("libxcomposite" ,libxcomposite)
3517 ("libxdamage" ,libxdamage)
3518 ("libxext" ,libxext)
3519 ("xinput" ,xinput)))
3520 (inputs
3521 `(("libxkbcommon" ,libxkbcommon)
3522 ("udev" ,eudev)))
3523 (arguments
3524 `(#:configure-flags (list "--enable-x11-backend=yes"
3525
3526 ;; This produces share/doc/{clutter,cally}.
3527 (string-append "--with-html-dir="
3528 (assoc-ref %outputs "doc")
3529 "/share/doc"))
3530 ;; XXX FIXME: Get test suite working. It would probably fail in the
3531 ;; same way the cogl tests fail, since clutter is based on cogl.
3532 #:tests? #f))
3533 (home-page "http://www.clutter-project.org")
3534 (synopsis "OpenGL-based interactive canvas library")
3535 (description
3536 "Clutter is an OpenGL-based interactive canvas library, designed for
3537 creating fast, mainly 2D single window applications such as media box UIs,
3538 presentations, kiosk style applications and so on.")
3539 (license license:lgpl2.0+)))
3540
3541 (define-public clutter-gtk
3542 (package
3543 (name "clutter-gtk")
3544 (version "1.8.4")
3545 (source
3546 (origin
3547 (method url-fetch)
3548 (uri (string-append "mirror://gnome/sources/" name "/"
3549 (version-major+minor version) "/"
3550 name "-" version ".tar.xz"))
3551 (sha256
3552 (base32
3553 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
3554 (build-system gnu-build-system)
3555 (native-inputs
3556 `(("pkg-config" ,pkg-config)
3557 ("gobject-introspection" ,gobject-introspection)))
3558 (propagated-inputs
3559 ;; clutter-gtk.pc refers to all these.
3560 `(("clutter" ,clutter)
3561 ("gtk+" ,gtk+)))
3562 (home-page "http://www.clutter-project.org")
3563 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
3564 (description
3565 "Clutter is an OpenGL-based interactive canvas library, designed for
3566 creating fast, mainly 2D single window applications such as media box UIs,
3567 presentations, kiosk style applications and so on.")
3568 (license license:lgpl2.0+)))
3569
3570 (define-public clutter-gst
3571 (package
3572 (name "clutter-gst")
3573 (version "3.0.27")
3574 (source
3575 (origin
3576 (method url-fetch)
3577 (uri (string-append "mirror://gnome/sources/clutter-gst/"
3578 (version-major+minor version) "/"
3579 "clutter-gst-" version ".tar.xz"))
3580 (sha256
3581 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
3582 (build-system gnu-build-system)
3583 (native-inputs
3584 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3585 ("pkg-config" ,pkg-config)
3586 ("gobject-introspection" ,gobject-introspection)))
3587 (inputs
3588 `(("clutter" ,clutter)
3589 ("gstreamer" ,gstreamer)
3590 ("gst-plugins-base" ,gst-plugins-base)))
3591 (home-page "http://www.clutter-project.org")
3592 (synopsis "Integration library for using GStreamer with Clutter")
3593 (description
3594 "Clutter-Gst is an integration library for using GStreamer with Clutter.
3595 It provides a GStreamer sink to upload frames to GL and an actor that
3596 implements the ClutterGstPlayer interface using playbin. Clutter is an
3597 OpenGL-based interactive canvas library.")
3598 (license license:lgpl2.0+)))
3599
3600 (define-public libchamplain
3601 (package
3602 (name "libchamplain")
3603 (version "0.12.16")
3604 (source (origin
3605 (method url-fetch)
3606 (uri (string-append
3607 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
3608 version ".tar.xz"))
3609 (sha256
3610 (base32
3611 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
3612 (build-system gnu-build-system)
3613 (arguments '(#:configure-flags '("--enable-vala")))
3614 (native-inputs
3615 `(("gobject-introspection" ,gobject-introspection)
3616 ("pkg-config" ,pkg-config)
3617 ("vala" ,vala)))
3618 (propagated-inputs
3619 `(("libsoup" ,libsoup)
3620 ("sqlite" ,sqlite)
3621 ("clutter" ,clutter)
3622 ("clutter-gtk" ,clutter-gtk)
3623 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
3624 ("cairo" ,cairo)
3625 ("gtk+3" ,gtk+)
3626 ("glib" ,glib)))
3627 (home-page "https://projects.gnome.org/libchamplain/")
3628 (synopsis "C library providing a ClutterActor to display maps")
3629 (description
3630 "libchamplain is a C library providing a ClutterActor to display maps.
3631 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
3632 and Perl bindings are also available. It supports numerous free map sources
3633 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
3634 (license license:lgpl2.1+)))
3635
3636 (define-public gom
3637 (package
3638 (name "gom")
3639 (version "0.3.2")
3640 (source
3641 (origin
3642 (method url-fetch)
3643 (uri (string-append "mirror://gnome/sources/gom/"
3644 (version-major+minor version) "/"
3645 "gom-" version ".tar.xz"))
3646 (sha256
3647 (base32
3648 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
3649 (build-system gnu-build-system)
3650 (native-inputs
3651 `(("intltool" ,intltool)
3652 ("pkg-config" ,pkg-config)
3653 ("gobject-introspection" ,gobject-introspection)))
3654 (inputs
3655 `(("glib" ,glib)
3656 ("gdk-pixbuf" ,gdk-pixbuf)
3657 ("sqlite" ,sqlite)))
3658 ;; XXX TODO: Figure out how to run the test suite.
3659 (arguments `(#:tests? #f))
3660 (home-page "https://wiki.gnome.org/Projects/Gom")
3661 (synopsis "Object mapper from GObjects to SQLite")
3662 (description
3663 "Gom provides an object mapper from GObjects to SQLite. It helps you
3664 write applications that need to store structured data as well as make complex
3665 queries upon that data.")
3666 (license license:lgpl2.1+)))
3667
3668 (define-public libgnome-games-support
3669 (package
3670 (name "libgnome-games-support")
3671 (version "1.4.2")
3672 (source (origin
3673 (method url-fetch)
3674 (uri (string-append "mirror://gnome/sources/" name "/"
3675 (version-major+minor version) "/"
3676 name "-" version ".tar.xz"))
3677 (sha256
3678 (base32
3679 "02hirpk885jndwarbl3cl5fk7w2z5ziv677csyv1wi2n6rmpn088"))))
3680 (build-system gnu-build-system)
3681 (arguments
3682 '(#:phases
3683 (modify-phases %standard-phases
3684 (add-before 'check 'pre-check
3685 (lambda _
3686 ;; Tests require a writable HOME.
3687 (setenv "HOME" (getcwd))
3688 #t)))))
3689 (native-inputs
3690 `(("intltool" ,intltool)
3691 ("pkg-config" ,pkg-config)
3692 ("vala" ,vala)))
3693 (propagated-inputs
3694 ;; Required by libgnome-games-support-1.0.pc
3695 `(("gtk+" ,gtk+)
3696 ("libgee" ,libgee)))
3697 (home-page "https://www.gnome.org/")
3698 (synopsis "Useful functionality shared among GNOME games")
3699 (description
3700 "libgnome-games-support is a small library intended for internal use by
3701 GNOME Games, but it may be used by others.")
3702 (license license:lgpl3+)))
3703
3704 (define-public gnome-klotski
3705 (package
3706 (name "gnome-klotski")
3707 (version "3.22.3")
3708 (source (origin
3709 (method url-fetch)
3710 (uri (string-append "mirror://gnome/sources/" name "/"
3711 (version-major+minor version) "/"
3712 name "-" version ".tar.xz"))
3713 (sha256
3714 (base32
3715 "0prc0s28pdflgzyvk1g0yfx982q2grivmz3858nwpqmbkha81r7f"))))
3716 (build-system glib-or-gtk-build-system)
3717 (native-inputs
3718 `(("desktop-file-utils" ,desktop-file-utils)
3719 ("intltool" ,intltool)
3720 ("itstool" ,itstool)
3721 ("pkg-config" ,pkg-config)
3722 ("xmllint" ,libxml2)))
3723 (inputs
3724 `(("gtk+" ,gtk+)
3725 ("libgnome-games-support" ,libgnome-games-support)
3726 ("librsvg" ,librsvg)))
3727 (home-page "https://wiki.gnome.org/Apps/Klotski")
3728 (synopsis "Sliding block puzzles")
3729 (description
3730 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
3731 the patterned block to the area bordered by green markers. To do so, you will
3732 need to slide other blocks out of the way. Complete each puzzle in as few moves
3733 as possible!")
3734 (license license:gpl2+)))
3735
3736 (define-public grilo
3737 (package
3738 (name "grilo")
3739 (version "0.3.3")
3740 (source
3741 (origin
3742 (method url-fetch)
3743 (uri (string-append "mirror://gnome/sources/" name "/"
3744 (version-major+minor version) "/"
3745 name "-" version ".tar.xz"))
3746 (sha256
3747 (base32
3748 "1qx072m0gl6m3d5g5cbbf13p4h217icmlxjnrn829x5xqwi451sw"))))
3749 (build-system gnu-build-system)
3750 (native-inputs
3751 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
3752 ("intltool" ,intltool)
3753 ("pkg-config" ,pkg-config)
3754 ("gobject-introspection" ,gobject-introspection)))
3755 (inputs
3756 `(("cyrus-sasl" ,cyrus-sasl)
3757 ("glib" ,glib)
3758 ("gtk+" ,gtk+)
3759 ("libxml2" ,libxml2)
3760 ("liboauth" ,liboauth)
3761 ("libsoup" ,libsoup)
3762 ("nettle" ,nettle)
3763 ("totem-pl-parser" ,totem-pl-parser)))
3764 (arguments
3765 `(#:phases
3766 (modify-phases %standard-phases
3767 (add-after 'unpack 'fix-introspection-install-dir
3768 (lambda* (#:key outputs #:allow-other-keys)
3769 (let ((out (assoc-ref outputs "out")))
3770 (substitute* '("src/Makefile.in"
3771 "libs/pls/Makefile.in"
3772 "libs/net/Makefile.in")
3773 (("@INTROSPECTION_GIRDIR@")
3774 (string-append out "/share/gir-1.0/"))
3775 (("@INTROSPECTION_TYPELIBDIR@")
3776 (string-append out "/lib/girepository-1.0/")))
3777 #t))))))
3778 (native-search-paths
3779 (list (search-path-specification
3780 (variable "GRL_PLUGIN_PATH")
3781 (files (list (string-append "lib/grilo-"
3782 (version-major+minor version)))))))
3783 (home-page "https://live.gnome.org/Grilo")
3784 (synopsis "Framework for discovering and browsing media")
3785 (description
3786 "Grilo is a framework focused on making media discovery and browsing easy
3787 for application developers.")
3788 (license license:lgpl2.1+)))
3789
3790 (define-public grilo-plugins
3791 (package
3792 (name "grilo-plugins")
3793 (version "0.3.3")
3794 (source
3795 (origin
3796 (method url-fetch)
3797 (uri (string-append "mirror://gnome/sources/" name "/"
3798 (version-major+minor version) "/"
3799 name "-" version ".tar.xz"))
3800 (sha256
3801 (base32
3802 "172vr1y98d2mzlmg5akjn4ibrcj3gh22cwnb3cv9rvvzhj3yhrpy"))))
3803 (build-system gnu-build-system)
3804 (native-inputs
3805 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
3806 ("intltool" ,intltool)
3807 ("itstool" ,itstool)
3808 ("pkg-config" ,pkg-config)))
3809 (inputs
3810 `(("grilo" ,grilo)
3811 ("nettle" ,nettle) ; XXX: required by libgrlpls-0.3.la
3812 ("glib" ,glib)
3813 ("libxml2" ,libxml2)
3814 ("sqlite" ,sqlite)
3815 ("gom" ,gom)
3816 ;; XXX TODO: Add oauth
3817 ;; XXX TODO: Add goa
3818 ;; XXX TODO: Add gdata (e.g. needed for youtube plugin)
3819 ;; XXX TODO: Add lua (needs help finding it)
3820 ("json-glib" ,json-glib)
3821 ("avahi" ,avahi)
3822 ("gmime" ,gmime)
3823 ("libsoup" ,libsoup)
3824 ("libarchive" ,libarchive)
3825 ("totem-pl-parser" ,totem-pl-parser)))
3826 (arguments
3827 `(#:make-flags (list (string-append "GRL_PLUGINS_DIR="
3828 %output
3829 "/lib/grilo-"
3830 ,(version-major+minor version)))
3831 ;; XXX FIXME: Try to get the test suite working. It appears to require
3832 ;; a working system dbus. Inside the build container, all tests fail
3833 ;; with: "assertion failed: (source)". Outside of the build container,
3834 ;; most tests succeed.
3835 #:tests? #f))
3836 (home-page "https://live.gnome.org/Grilo")
3837 (synopsis "Plugins for the Grilo media discovery library")
3838 (description
3839 "Grilo is a framework focused on making media discovery and browsing easy
3840 for application developers.")
3841 (license license:lgpl2.1+)))
3842
3843 (define-public totem
3844 (package
3845 (name "totem")
3846 (version "3.26.2")
3847 (source
3848 (origin
3849 (method url-fetch)
3850 (uri (string-append "mirror://gnome/sources/" name "/"
3851 (version-major+minor version) "/"
3852 name "-" version ".tar.xz"))
3853 (sha256
3854 (base32
3855 "1llyisls3pzf5bwkpxyfyxc2d3gpa09n5pjy7qsjdqrp3ya4k36g"))
3856 (patches (search-patches "totem-meson-easy-codec.patch"
3857 "totem-meson-compat.patch"))))
3858 (build-system meson-build-system)
3859 (native-inputs
3860 `(("pkg-config" ,pkg-config)
3861 ("desktop-file-utils" ,desktop-file-utils)
3862 ("gobject-introspection" ,gobject-introspection)
3863 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
3864 ("gtk:bin" ,gtk+ "bin") ;for 'gtk-update-icon-cache'
3865 ("intltool" ,intltool)
3866 ("itstool" ,itstool)
3867 ("xmllint" ,libxml2)))
3868 (propagated-inputs
3869 `(("dconf" ,dconf)))
3870 (inputs
3871 `(("gtk+" ,gtk+)
3872 ("gdk-pixbuf" ,gdk-pixbuf)
3873 ("atk" ,atk)
3874 ("cairo" ,cairo)
3875 ("dbus-glib" ,dbus-glib)
3876 ("clutter" ,clutter)
3877 ("clutter-gtk" ,clutter-gtk)
3878 ("clutter-gst" ,clutter-gst)
3879 ("xorgproto" ,xorgproto)
3880 ("libxxf86vm" ,libxxf86vm)
3881 ("libxtst" ,libxtst)
3882 ("libxrandr" ,libxrandr)
3883 ("libxml2" ,libxml2)
3884 ("libsoup" ,libsoup)
3885 ("libpeas" ,libpeas)
3886 ("librsvg" ,librsvg)
3887 ("lirc" ,lirc)
3888 ("gnome-desktop" ,gnome-desktop)
3889 ("gstreamer" ,gstreamer)
3890 ("gst-plugins-base" ,gst-plugins-base)
3891 ("gst-plugins-good" ,gst-plugins-good)
3892 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3893 ("adwaita-icon-theme" ,adwaita-icon-theme)
3894 ;; XXX We use python-2 because libxml2 because itstool (which needs
3895 ;; libxml) currently uses python-2.
3896 ("python" ,python-2)
3897 ("python-pygobject" ,python2-pygobject)
3898 ;; XXX TODO pylint needed for python support
3899 ("totem-pl-parser" ,totem-pl-parser)
3900 ("grilo" ,grilo)
3901 ("grilo-plugins" ,grilo-plugins)
3902 ("nettle" ,nettle)
3903 ("vala" ,vala)))
3904 (arguments
3905 `(#:glib-or-gtk? #t
3906
3907 ;; Disable parallel builds until
3908 ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28813 is
3909 ;; fixed. Try enabling it when updating this package in case
3910 ;; upstream has fixed it.
3911 #:parallel-build? #f
3912
3913 ;; Disable automatic GStreamer plugin installation via PackageKit and
3914 ;; all that.
3915 #:configure-flags '("-D" "enable-easy-codec-installation=no"
3916
3917 ;; Do not build .a files for the plugins, it's
3918 ;; completely useless. This saves 2 MiB.
3919 "--default-library" "shared")
3920
3921 #:phases
3922 (modify-phases %standard-phases
3923 (add-before
3924 'install 'disable-cache-generation
3925 (lambda _
3926 (setenv "DESTDIR" "/")
3927 #t))
3928 (add-after
3929 'install 'wrap-totem
3930 (lambda* (#:key inputs outputs #:allow-other-keys)
3931 (let ((out (assoc-ref outputs "out"))
3932 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
3933 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
3934 (wrap-program (string-append out "/bin/totem")
3935 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
3936 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
3937 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
3938 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
3939 #t)))))
3940 (home-page "https://wiki.gnome.org/Apps/Videos")
3941 (synopsis "Simple media player for GNOME based on GStreamer")
3942 (description "Totem is a simple yet featureful media player for GNOME
3943 which can read a large number of file formats.")
3944 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
3945 ;; to be used and distributed together with GStreamer and Totem. See
3946 ;; file://COPYING in the source distribution for details.
3947 (license license:gpl2+)))
3948
3949 (define-public rhythmbox
3950 (package
3951 (name "rhythmbox")
3952 (version "3.4.3")
3953 (source (origin
3954 (method url-fetch)
3955 (uri (string-append "mirror://gnome/sources/" name "/"
3956 (version-major+minor version) "/"
3957 name "-" version ".tar.xz"))
3958 (sha256
3959 (base32
3960 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
3961 (build-system glib-or-gtk-build-system)
3962 (arguments
3963 `(#:configure-flags
3964 (list "--enable-lirc"
3965 "--enable-python"
3966 "--enable-vala"
3967 "--with-brasero"
3968 "--with-gudev"
3969 "--with-libsecret")
3970 #:phases
3971 (modify-phases %standard-phases
3972 (add-after
3973 'install 'wrap-rhythmbox
3974 (lambda* (#:key inputs outputs #:allow-other-keys)
3975 (let ((out (assoc-ref outputs "out"))
3976 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
3977 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
3978 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
3979 (python-path (getenv "PYTHONPATH")))
3980 (wrap-program (string-append out "/bin/rhythmbox")
3981 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
3982 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
3983 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
3984 `("PYTHONPATH" ":" prefix (,python-path))))
3985 #t)))))
3986 (propagated-inputs
3987 `(("dconf" ,dconf)))
3988 (native-inputs
3989 `(("itstool" ,itstool)
3990 ("intltool" ,intltool)
3991 ("glib" ,glib "bin")
3992 ("gobject-introspection" ,gobject-introspection)
3993 ("desktop-file-utils" ,desktop-file-utils)
3994 ("pkg-config" ,pkg-config)
3995 ("xmllint" ,libxml2)))
3996 (inputs
3997 `(("json-glib" ,json-glib)
3998 ("tdb" ,tdb)
3999 ("gnome-desktop" ,gnome-desktop)
4000 ("python" ,python)
4001 ("python-pygobject" ,python2-pygobject)
4002 ("vala" ,vala)
4003 ("gmime" ,gmime)
4004 ("nettle" ,nettle)
4005 ("adwaita-icon-theme" ,adwaita-icon-theme)
4006 ("grilo" ,grilo)
4007 ("grilo-plugins" ,grilo-plugins)
4008 ("gstreamer" ,gstreamer)
4009 ("gst-plugins-base" ,gst-plugins-base)
4010 ("gst-plugins-good" ,gst-plugins-good)
4011 ("totem-pl-parser" ,totem-pl-parser)
4012 ("libgudev" ,libgudev)
4013 ;;("libmtp" ,libmtp) FIXME: Not detected
4014 ("libsecret" ,libsecret)
4015 ("libsoup" ,libsoup)
4016 ("libnotify" ,libnotify)
4017 ("libpeas" ,libpeas)
4018 ("lirc" ,lirc)
4019 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
4020 ;;("clutter" ,clutter)
4021 ;;("clutter-gtk" ,clutter-gtk)
4022 ;;("clutter-gst" ,clutter-gst)
4023 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4024 ("atk" ,atk)
4025 ("pango" ,pango)
4026 ("gtk+" ,gtk+)
4027 ;; TODO:
4028 ;; * libgpod
4029 ;; * mx
4030 ("brasero" ,brasero)))
4031 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
4032 (synopsis "Music player for GNOME")
4033 (description "Rhythmbox is a music playing application for GNOME. It
4034 supports playlists, song ratings, and any codecs installed through gstreamer.")
4035 (license license:gpl2+)))
4036
4037 (define-public eog
4038 (package
4039 (name "eog")
4040 (version "3.28.4")
4041 (source (origin
4042 (method url-fetch)
4043 (uri (string-append "mirror://gnome/sources/" name "/"
4044 (version-major+minor version) "/"
4045 name "-" version ".tar.xz"))
4046 (sha256
4047 (base32
4048 "1wrq3l3z0x6q0hnc1vqr2hnyb1b14qw6aqvc5dldfgbs0yys6p55"))))
4049 (build-system meson-build-system)
4050 (arguments
4051 `(#:configure-flags
4052 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
4053 (list (string-append "-Dc_link_args=-Wl,-rpath="
4054 (assoc-ref %outputs "out") "/lib/eog"))
4055 #:phases
4056 (modify-phases %standard-phases
4057 (add-after 'install 'wrap-eog
4058 (lambda* (#:key outputs #:allow-other-keys)
4059 (let ((out (assoc-ref outputs "out"))
4060 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
4061 (wrap-program (string-append out "/bin/eog")
4062 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
4063 #t)))))
4064 (propagated-inputs
4065 `(("dconf" ,dconf)))
4066 (native-inputs
4067 `(("intltool" ,intltool)
4068 ("itstool" ,itstool)
4069 ("glib" ,glib "bin")
4070 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
4071 ("gobject-introspection" ,gobject-introspection)
4072 ("pkg-config" ,pkg-config)
4073 ("xmllint" ,libxml2)))
4074 (inputs
4075 `(("gnome-desktop" ,gnome-desktop)
4076 ("shared-mime-info" ,shared-mime-info)
4077 ("adwaita-icon-theme" ,adwaita-icon-theme)
4078 ("exempi" ,exempi)
4079 ("lcms" ,lcms)
4080 ("libexif" ,libexif)
4081 ("libpeas" ,libpeas)
4082 ("libjpeg" ,libjpeg)
4083 ("librsvg" ,librsvg)
4084 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4085 ("gtk+" ,gtk+)))
4086 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
4087 (synopsis "GNOME image viewer")
4088 (description "Eye of GNOME is the GNOME image viewer. It
4089 supports image conversion, rotation, and slideshows.")
4090 (license license:gpl2+)))
4091
4092 (define-public eog-plugins
4093 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
4094 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
4095 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
4096 ;; 'XDG_DATA_DIRS' appropriately set.
4097 (package
4098 (name "eog-plugins")
4099 (version "3.26.3")
4100 (source (origin
4101 (method url-fetch)
4102 (uri (string-append "mirror://gnome/sources/eog-plugins/"
4103 (version-major+minor version) "/"
4104 "eog-plugins-" version ".tar.xz"))
4105 (sha256
4106 (base32
4107 "06fnjs2p18ad5vk07z685cx26sc7d3azywss00w9xvz794b2i1g3"))))
4108 (build-system gnu-build-system)
4109 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
4110 (synopsis "Extensions for the Eye of GNOME image viewer")
4111 (native-inputs
4112 `(("pkg-config" ,pkg-config)
4113 ("gettext" ,gnu-gettext)))
4114 (inputs
4115 `(("eog" ,eog)
4116 ("glib" ,glib)
4117 ("gtk+" ,gtk+)
4118 ("libpeas" ,libpeas)
4119 ("libexif" ,libexif)
4120 ("libchamplain" ,libchamplain)))
4121 (description
4122 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
4123 notably:
4124
4125 @itemize
4126 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
4127 @item @dfn{Map}, which displays a map of where the picture was taken on the
4128 side panel;
4129 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
4130 @end itemize\n")
4131
4132 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
4133 ;; long suspicious byte stream that goes to a
4134 ;; ".gresource.eog_postasa_plugin" ELF section.
4135 (license license:gpl2+)))
4136
4137 (define-public libgudev
4138 (package
4139 (name "libgudev")
4140 (version "232")
4141 (source (origin
4142 (method url-fetch)
4143 (uri (string-append "mirror://gnome/sources/" name "/"
4144 version "/" name "-" version ".tar.xz"))
4145 (sha256
4146 (base32
4147 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
4148 (build-system gnu-build-system)
4149 (arguments
4150 '(#:configure-flags
4151 ;; umockdev depends on libgudev.
4152 (list "--disable-umockdev")))
4153 (native-inputs
4154 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
4155 ("gobject-introspection" ,gobject-introspection)
4156 ("pkg-config" ,pkg-config)))
4157 (propagated-inputs
4158 `(("glib" ,glib))) ; required by gudev-1.0.pc
4159 (inputs
4160 `(("udev" ,eudev)))
4161 (home-page "https://wiki.gnome.org/Projects/libgudev")
4162 (synopsis "GObject bindings for libudev")
4163 (description
4164 "This library provides GObject bindings for libudev. It was originally
4165 part of udev-extras, then udev, then systemd. It's now a project on its own.")
4166 (license license:lgpl2.1+)))
4167
4168 (define-public gvfs
4169 (package
4170 (name "gvfs")
4171 (version "1.38.1")
4172 (source (origin
4173 (method url-fetch)
4174 (uri (string-append "mirror://gnome/sources/" name "/"
4175 (version-major+minor version) "/"
4176 name "-" version ".tar.xz"))
4177 (sha256
4178 (base32
4179 "18311pn5kp9b4kf5prvhcjs0cwf7fm3mqh6s6p42avcr5j26l4zd"))))
4180 (build-system meson-build-system)
4181 (arguments
4182 '(#:glib-or-gtk? #t
4183 #:configure-flags
4184 (list "-Dsystemduserunitdir=no"
4185 "-Dtmpfilesdir=no"
4186 ;; Otherwise, the RUNPATH will lack the final path component.
4187 (string-append "-Dc_link_args=-Wl,-rpath="
4188 (assoc-ref %outputs "out") "/lib/gvfs"))))
4189 (native-inputs
4190 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
4191 ("gettext" ,gettext-minimal)
4192 ("gtk-doc" ,gtk-doc)
4193 ("pkg-config" ,pkg-config)
4194 ("xsltproc" ,libxslt)))
4195 (inputs
4196 `(("avahi" ,avahi)
4197 ("docbook-xml" ,docbook-xml-4.2)
4198 ("docbook-xsl" ,docbook-xsl)
4199 ("dbus" ,dbus)
4200 ("elogind" ,elogind)
4201 ("fuse" ,fuse)
4202 ("gcr" ,gcr)
4203 ("glib" ,glib)
4204 ("gnome-online-accounts" ,gnome-online-accounts)
4205 ("libarchive" ,libarchive)
4206 ("libbluray" ,libbluray)
4207 ("libcap" ,libcap)
4208 ("libcdio-paranoia" ,libcdio-paranoia)
4209 ("libgcrypt" ,libgcrypt)
4210 ("libgdata" ,libgdata)
4211 ("libgphoto2" ,libgphoto2)
4212 ("libgudev" ,libgudev)
4213 ("libimobiledevice" ,libimobiledevice)
4214 ("libmtp" ,libmtp)
4215 ("libnfs" ,libnfs)
4216 ("libsecret" ,libsecret)
4217 ("libsmbclient" ,samba)
4218 ("libsoup" ,libsoup)
4219 ("libxml2" ,libxml2)
4220 ("nettle" ,nettle) ; XXX: required by libarchive.pc
4221 ("openssh" ,openssh)
4222 ("polkit" ,polkit)
4223 ("udisks" ,udisks)))
4224 (home-page "https://wiki.gnome.org/gvfs/")
4225 (synopsis "Userspace virtual file system for GIO")
4226 (description
4227 "GVFS is a userspace virtual file system designed to work with the I/O
4228 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
4229 to all applications using the GIO API. It also supports exposing the GVFS
4230 mounts to non-GIO applications using FUSE.
4231
4232 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
4233 DAV, and others.")
4234 (license license:lgpl2.0+)))
4235
4236 (define-public gusb
4237 (package
4238 (name "gusb")
4239 (version "0.3.0")
4240 (source (origin
4241 (method url-fetch)
4242 (uri (string-append "https://github.com/hughsie/libgusb/archive/"
4243 version ".tar.gz"))
4244 (sha256
4245 (base32
4246 "1wa9787ww7s1kl9jml6kiyrjgimlgagq4jmgdj7xcpsx83w10qxk"))))
4247 (build-system meson-build-system)
4248 (native-inputs
4249 `(("gobject-introspection" ,gobject-introspection)
4250 ("pkg-config" ,pkg-config)
4251 ("vala" ,vala)
4252 ("gtk-doc" ,gtk-doc)))
4253 (propagated-inputs
4254 ;; Both of these are required by gusb.pc.
4255 `(("glib" ,glib)
4256 ("libusb" ,libusb)))
4257 (arguments
4258 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
4259 (home-page "https://github.com/hughsie/libgusb")
4260 (synopsis "GLib binding for libusb1")
4261 (description
4262 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
4263 asynchronous control, bulk and interrupt transfers with proper cancellation
4264 and integration into a mainloop. This makes it easy to integrate low level
4265 USB transfers with your high-level application or system daemon.")
4266 (license license:lgpl2.1+)))
4267
4268 (define-public simple-scan
4269 (package
4270 (name "simple-scan")
4271 (version "3.24.1")
4272 (source (origin
4273 (method url-fetch)
4274 (uri (string-append "https://launchpad.net/simple-scan/"
4275 (version-major+minor version) "/"
4276 version "/+download/simple-scan-"
4277 version ".tar.xz"))
4278 (sha256
4279 (base32
4280 "1czg21cdbd2fgqylxfnzfhhzy69gycf816d5bbaq6hb62hmq7bjy"))))
4281 (build-system glib-or-gtk-build-system)
4282 (inputs
4283 `(("gtk" ,gtk+)
4284 ("zlib" ,zlib)
4285 ("cairo" ,cairo)
4286 ("gdk-pixbuf" ,gdk-pixbuf)
4287 ("gusb" ,gusb)
4288 ("libsane" ,sane-backends)))
4289 (native-inputs
4290 `(("gettext" ,gettext-minimal)
4291 ("itstool" ,itstool)
4292 ("colord" ,colord)
4293 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
4294 ("pkg-config" ,pkg-config)
4295 ("vala" ,vala)
4296 ("xmllint" ,libxml2)))
4297 (arguments
4298 '(#:configure-flags '("--disable-packagekit")
4299 #:phases
4300 (modify-phases %standard-phases
4301 (add-after 'unpack 'clean
4302 (lambda _
4303 ;; Remove a left-over reference to PackageKit.
4304
4305 ;; https://bugs.launchpad.net/simple-scan/+bug/1462769
4306
4307 ;; There are some generated C files erroneously
4308 ;; included in the source distribution, and this
4309 ;; one breaks the build by referring to a
4310 ;; non-existent header (packagekit.h)
4311 (delete-file "src/ui.c"))))))
4312 (home-page "https://launchpad.net/simple-scan")
4313 (synopsis "Document and image scanner")
4314 (description "Simple Scan is an easy-to-use application, designed to let
4315 users connect their scanner and quickly have the image/document in an
4316 appropriate format. Simple Scan is basically a frontend for SANE - which is
4317 the same backend as XSANE uses. This means that all existing scanners will
4318 work and the interface is well tested.")
4319 (license license:gpl3+)))
4320
4321 (define-public eolie
4322 (package
4323 (name "eolie")
4324 (version "0.9.62")
4325 (source (origin
4326 (method url-fetch)
4327 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
4328 "uploads/bb4aad19272cc636bd17f2f6602127fe/"
4329 "eolie-" version ".tar.xz"))
4330 (sha256
4331 (base32
4332 "06v76hg87fnhw45dil5vvl20myvaa38n1jqsl0lmkkq6af4mk8wx"))))
4333 (build-system meson-build-system)
4334 (arguments
4335 `(#:glib-or-gtk? #t
4336 #:phases
4337 (modify-phases %standard-phases
4338 (add-after 'wrap 'wrap-more
4339 (lambda* (#:key inputs outputs #:allow-other-keys)
4340 (let* ((out (assoc-ref outputs "out"))
4341 ;; These libraries must be on LD_LIBRARY_PATH.
4342 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
4343 "atk" "gtk+" "gsettings-desktop-schemas"
4344 "gobject-introspection"))
4345 (path (string-join
4346 (map (lambda (lib)
4347 (string-append (assoc-ref inputs lib) "/lib"))
4348 libs)
4349 ":")))
4350 (wrap-program (string-append out "/bin/eolie")
4351 `("LD_LIBRARY_PATH" ":" prefix (,path))
4352 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
4353 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
4354 #t)))))
4355 (native-inputs
4356 `(("intltool" ,intltool)
4357 ("itstool" ,itstool)
4358 ("pkg-config" ,pkg-config)
4359 ("python" ,python)
4360 ("glib:bin" ,glib "bin")
4361 ("gtk+" ,gtk+ "bin")))
4362 (inputs
4363 `(("gobject-introspection" ,gobject-introspection)
4364 ("glib-networking" ,glib-networking)
4365 ("cairo" ,cairo)
4366 ("gtk+" ,gtk+)
4367 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
4368 ("python" ,python-wrapper)
4369 ("python-dateutil" ,python-dateutil)
4370 ("python-pyfxa" ,python-pyfxa)
4371 ("python-pygobject" ,python-pygobject)
4372 ("python-pycairo" ,python-pycairo)
4373 ("python-pycrypto" ,python-pycrypto)
4374 ("libsecret" ,libsecret)
4375 ("gtkspell3" ,gtkspell3)
4376 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4377 ("webkitgtk" ,webkitgtk)))
4378 (home-page "https://wiki.gnome.org/Apps/Eolie")
4379 (synopsis "Web browser for GNOME")
4380 (description
4381 "Eolie is a new web browser for GNOME. It features Firefox sync support,
4382 a secret password store, an adblocker, and a modern UI.")
4383 (license license:gpl3+)))
4384
4385 (define-public epiphany
4386 (package
4387 (name "epiphany")
4388 (version "3.30.2")
4389 (source (origin
4390 (method url-fetch)
4391 (uri (string-append "mirror://gnome/sources/epiphany/"
4392 (version-major+minor version) "/"
4393 "epiphany-" version ".tar.xz"))
4394 (sha256
4395 (base32
4396 "0141bb37nd8wc743g4wy491crjh6ig76ack07aj2ba4z3gjz2zlc"))))
4397
4398 (build-system meson-build-system)
4399 (arguments
4400 ;; FIXME: tests run under Xvfb, but fail with:
4401 ;; /src/bookmarks/ephy-bookmarks/create:
4402 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
4403 ;; subsystem
4404 ;; FAIL
4405 '(#:tests? #f
4406 #:glib-or-gtk? #t
4407 #:configure-flags
4408 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
4409 (list (string-append "-Dc_link_args=-Wl,-rpath="
4410 (assoc-ref %outputs "out") "/lib/epiphany"))))
4411 (propagated-inputs
4412 `(("dconf" ,dconf)))
4413 (native-inputs
4414 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
4415 ("glib:bin" ,glib "bin") ; for glib-mkenums
4416 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
4417 ("intltool" ,intltool)
4418 ("itstool" ,itstool)
4419 ("pkg-config" ,pkg-config)
4420 ("xmllint" ,libxml2)))
4421 (inputs
4422 `(("avahi" ,avahi)
4423 ("gcr" ,gcr)
4424 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
4425 ("glib-networking" ,glib-networking)
4426 ("gnome-desktop" ,gnome-desktop)
4427 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4428 ("json-glib" ,json-glib)
4429 ("iso-codes" ,iso-codes)
4430 ("libdazzle" ,libdazzle)
4431 ("libnotify" ,libnotify)
4432 ("libsecret" ,libsecret)
4433 ("libxslt" ,libxslt)
4434 ("nettle" ,nettle) ; for hogweed
4435 ("sqlite" ,sqlite)
4436 ("webkitgtk" ,webkitgtk)))
4437 (home-page "https://wiki.gnome.org/Apps/Web")
4438 (synopsis "GNOME web browser")
4439 (description
4440 "Epiphany is a GNOME web browser targeted at non-technical users. Its
4441 principles are simplicity and standards compliance.")
4442 (license license:gpl2+)))
4443
4444 (define-public d-feet
4445 (package
4446 (name "d-feet")
4447 (version "0.3.14")
4448 (source (origin
4449 (method url-fetch)
4450 (uri (string-append "mirror://gnome/sources/" name "/"
4451 (version-major+minor version) "/"
4452 name "-" version ".tar.xz"))
4453 (sha256
4454 (base32
4455 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
4456 (build-system glib-or-gtk-build-system)
4457 (arguments
4458 '(#:out-of-source? #f ; tests need to run in the source directory.
4459 #:phases
4460 (modify-phases %standard-phases
4461 (add-before
4462 'check 'pre-check
4463 (lambda _
4464 ;; The test suite requires a running X server.
4465 (system "Xvfb :1 &")
4466 (setenv "DISPLAY" ":1")
4467 ;; Don't fail on missing '/etc/machine-id'.
4468 (setenv "DBUS_FATAL_WARNINGS" "0")
4469 ;; tests.py and window.py don't meet E402:
4470 ;; E402 module level import not at top of file
4471 (substitute* "src/tests/Makefile"
4472 (("--ignore=E123") "--ignore=E123,E402"))
4473 #t))
4474 (add-after
4475 'install 'wrap-program
4476 (lambda* (#:key outputs #:allow-other-keys)
4477 (let ((prog (string-append (assoc-ref outputs "out")
4478 "/bin/d-feet")))
4479 (wrap-program prog
4480 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
4481 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
4482 #t))))))
4483 (native-inputs
4484 `(("intltool" ,intltool)
4485 ("itstool" ,itstool)
4486 ("pkg-config" ,pkg-config)
4487 ("python-pep8" ,python-pep8)
4488 ("xmllint" ,libxml2)
4489 ("xorg-server" ,xorg-server)))
4490 (inputs
4491 `(("gobject-introspection" ,gobject-introspection)
4492 ("gtk+" ,gtk+)
4493 ("python" ,python-wrapper)
4494 ("hicolor-icon-theme" ,hicolor-icon-theme)
4495 ("python-pygobject" ,python-pygobject)))
4496 (home-page "https://wiki.gnome.org/Apps/DFeet")
4497 (synopsis "D-Bus debugger")
4498 (description
4499 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
4500 of running programs and invoke methods on those interfaces.")
4501 (license license:gpl2+)))
4502
4503 (define-public yelp-xsl
4504 (package
4505 (name "yelp-xsl")
4506 (version "3.30.1")
4507 (source (origin
4508 (method url-fetch)
4509 (uri (string-append "mirror://gnome/sources/" name "/"
4510 (version-major+minor version) "/"
4511 name "-" version ".tar.xz"))
4512 (sha256
4513 (base32
4514 "0ffgp3ymcc11r9sdndliwwngljcy1mfqpfxsdfbm8rlcjg2k3vzw"))))
4515 (build-system gnu-build-system)
4516 (native-inputs
4517 `(("intltool" ,intltool)
4518 ("itstool" ,itstool)
4519 ("xmllint" ,libxml2)))
4520 (home-page "https://wiki.gnome.org/Apps/Yelp")
4521 (synopsis "XSL stylesheets for Yelp")
4522 (description
4523 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
4524 to format Docbook and Mallard documents.")
4525 (license license:gpl2+)))
4526
4527 (define-public yelp
4528 (package
4529 (name "yelp")
4530 (version "3.30.0")
4531 (source (origin
4532 (method url-fetch)
4533 (uri (string-append "mirror://gnome/sources/" name "/"
4534 (version-major+minor version) "/"
4535 name "-" version ".tar.xz"))
4536 (sha256
4537 (base32
4538 "060a902j15k76fyhk8xfl38ipvrrcc0qd7nm2mcck4ifb45b0zv4"))))
4539 (build-system glib-or-gtk-build-system)
4540 (native-inputs
4541 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
4542 ("intltool" ,intltool)
4543 ("itstool" ,itstool)
4544 ("pkg-config" ,pkg-config)))
4545 (propagated-inputs
4546 `(("dconf" ,dconf)))
4547 (inputs
4548 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4549 ("libxslt" ,libxslt)
4550 ("sqlite" ,sqlite)
4551 ("webkitgtk" ,webkitgtk)
4552 ("yelp-xsl" ,yelp-xsl)))
4553 (home-page "https://wiki.gnome.org/Apps/Yelp")
4554 (synopsis "GNOME help browser")
4555 (description
4556 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
4557 man, info, and HTML documents. It can locate documents according to the
4558 freedesktop.org help system specification.")
4559 (license license:gpl2+)))
4560
4561 (define-public yelp-tools
4562 (package
4563 (name "yelp-tools")
4564 (version "3.28.0")
4565 (source (origin
4566 (method url-fetch)
4567 (uri (string-append "mirror://gnome/sources/" name "/"
4568 (version-major+minor version) "/"
4569 name "-" version ".tar.xz"))
4570 (sha256
4571 (base32
4572 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
4573 (build-system gnu-build-system)
4574 (native-inputs
4575 `(("pkg-config" ,pkg-config)))
4576 (propagated-inputs
4577 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
4578 `(("itstool" ,itstool)
4579 ("xmllint" ,libxml2)
4580 ("xsltproc" ,libxslt)))
4581 (inputs
4582 `(("yelp-xsl" ,yelp-xsl)))
4583 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
4584 (synopsis "Yelp documentation tools")
4585 (description
4586 "Yelp-tools is a collection of scripts and build utilities to help create,
4587 manage, and publish documentation for Yelp and the web. Most of the heavy
4588 lifting is done by packages like yelp-xsl and itstool. This package just
4589 wraps things up in a developer-friendly way.")
4590 (license license:gpl2+)))
4591
4592 (define-public libgee
4593 (package
4594 (name "libgee")
4595 (version "0.20.1")
4596 (source (origin
4597 (method url-fetch)
4598 (uri (string-append "mirror://gnome/sources/" name "/"
4599 (version-major+minor version) "/"
4600 name "-" version ".tar.xz"))
4601 (sha256
4602 (base32
4603 "0c26x8gi3ivmhlbqcmiag4jwrkvcy28ld24j55nqr3jikb904a5v"))))
4604 (build-system gnu-build-system)
4605 (arguments
4606 `(#:phases
4607 (modify-phases %standard-phases
4608 (add-after 'unpack 'fix-introspection-install-dir
4609 (lambda* (#:key outputs #:allow-other-keys)
4610 (let ((out (assoc-ref outputs "out")))
4611 (substitute* "gee/Makefile.in"
4612 (("@INTROSPECTION_GIRDIR@")
4613 (string-append out "/share/gir-1.0/"))
4614 (("@INTROSPECTION_TYPELIBDIR@")
4615 (string-append out "/lib/girepository-1.0/")))))))))
4616 (native-inputs
4617 `(("glib" ,glib "bin")
4618 ("pkg-config" ,pkg-config)))
4619 (inputs
4620 `(("glib" ,glib)
4621 ("gobject-introspection" ,gobject-introspection)))
4622 (home-page "https://wiki.gnome.org/Projects/Libgee")
4623 (synopsis "GObject collection library")
4624 (description
4625 "Libgee is a utility library providing GObject-based interfaces and
4626 classes for commonly used data structures.")
4627 (license license:lgpl2.1+)))
4628
4629 (define-public gexiv2
4630 (package
4631 (name "gexiv2")
4632 (version "0.10.10")
4633 (source (origin
4634 (method url-fetch)
4635 (uri (string-append "mirror://gnome/sources/" name "/"
4636 (version-major+minor version) "/"
4637 name "-" version ".tar.xz"))
4638 (sha256
4639 (base32
4640 "1qbcwq89g4r67k1dj4laqj441pj4195c8hzhxn8vc6mmg8adg6kx"))))
4641 (build-system meson-build-system)
4642 (arguments
4643 ;; On 32-bit platforms, the test fails with a rounding error:
4644 ;; <https://bugzilla.gnome.org/show_bug.cgi?id=775249>. Just skip it for
4645 ;; now.
4646 (if (and (not (%current-target-system))
4647 (member (%current-system) '("i686-linux" "armhf-linux")))
4648 '(#:tests? #f)
4649 '()))
4650 (native-inputs
4651 `(("glib" ,glib "bin")
4652 ("pkg-config" ,pkg-config)))
4653 (propagated-inputs
4654 ;; Listed in "Requires" section of gexiv2.pc
4655 `(("exiv2" ,exiv2)))
4656 (inputs
4657 `(("glib" ,glib)
4658 ("gobject-introspection" ,gobject-introspection)))
4659 (home-page "https://wiki.gnome.org/Projects/gexiv2")
4660 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
4661 (description
4662 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
4663 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
4664 metadata in photo and video files of various formats.")
4665 (license license:gpl2+)))
4666
4667 (define-public shotwell
4668 (package
4669 (name "shotwell")
4670 (version "0.28.4")
4671 (source (origin
4672 (method url-fetch)
4673 (uri (string-append "mirror://gnome/sources/" name "/"
4674 (version-major+minor version) "/"
4675 name "-" version ".tar.xz"))
4676 (sha256
4677 (base32
4678 "03k7n2kmzqn11kf3733w7m6xjh2b5q9xr84za2hli11fjymzaxm9"))))
4679 (build-system glib-or-gtk-build-system)
4680 (propagated-inputs
4681 `(("dconf" ,dconf)))
4682 (native-inputs
4683 `(("pkg-config" ,pkg-config)
4684 ("itstool" ,itstool)
4685 ("gettext" ,gettext-minimal)
4686 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
4687 ("itstool" ,itstool)
4688 ("vala" ,vala)))
4689 (inputs
4690 `(("glib:bin" ,glib "bin")
4691 ("gstreamer" ,gstreamer)
4692 ("gst-plugins-base" ,gst-plugins-base)
4693 ("libgdata" ,libgdata)
4694 ("libgee" ,libgee)
4695 ("gexiv2" ,gexiv2)
4696 ("libraw" ,libraw)
4697 ("json-glib" ,json-glib)
4698 ("webkitgtk" ,webkitgtk)
4699 ("sqlite" ,sqlite)
4700 ("libsoup" ,libsoup)
4701 ("libxml2" ,libxml2)
4702 ("libgudev" ,libgudev)
4703 ("libgphoto2" ,libgphoto2)
4704 ("gcr" ,gcr)))
4705 (home-page "https://wiki.gnome.org/Apps/Shotwell")
4706 (synopsis "Photo manager for GNOME 3")
4707 (description
4708 "Shotwell is a digital photo manager designed for the GNOME desktop
4709 environment. It allows you to import photos from disk or camera, organize
4710 them by keywords and events, view them in full-window or fullscreen mode, and
4711 share them with others via social networking and more.")
4712 (license license:lgpl2.1+)))
4713
4714 (define-public file-roller
4715 (package
4716 (name "file-roller")
4717 (version "3.28.0")
4718 (source (origin
4719 (method url-fetch)
4720 (uri (string-append "mirror://gnome/sources/" name "/"
4721 (version-major+minor version) "/"
4722 name "-" version ".tar.xz"))
4723 (sha256
4724 (base32
4725 "15pn2m80x45bzibig4zrqybnbr0n1f9wpqx7f2p6difldns3jwf1"))))
4726 (build-system meson-build-system)
4727 (native-inputs
4728 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
4729 ("intltool" ,intltool)
4730 ("pkg-config" ,pkg-config)
4731 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
4732 ("glib:bin" ,glib "bin")))
4733 ;; TODO: Add libnautilus.
4734 (inputs
4735 `(("gtk+" ,gtk+)
4736 ("gdk-pixbuf" ,gdk-pixbuf)
4737 ("json-glib" ,json-glib)
4738 ("libarchive" ,libarchive)
4739 ("libnotify" ,libnotify)
4740 ("nettle" ,nettle)
4741 ("itstool" ,itstool)
4742 ("libxml2" ,libxml2)))
4743 (synopsis "Graphical archive manager for GNOME")
4744 (description "File Roller is an archive manager for the GNOME desktop
4745 environment that allows users to view, unpack, and create compressed archives
4746 such as gzip tarballs.")
4747 (home-page "http://fileroller.sourceforge.net/")
4748 (license license:gpl2+)))
4749
4750 (define-public gnome-session
4751 (package
4752 (name "gnome-session")
4753 (version "3.28.1")
4754 (source (origin
4755 (method url-fetch)
4756 (uri (string-append "mirror://gnome/sources/" name "/"
4757 (version-major+minor version) "/"
4758 name "-" version ".tar.xz"))
4759 (sha256
4760 (base32
4761 "14nmbirgrp2nm16khbz109saqdlinlbrlhjnbjydpnrlimfgg4xq"))))
4762 (arguments
4763 '(#:glib-or-gtk? #t
4764 #:phases
4765 (modify-phases %standard-phases
4766 (add-before 'configure 'pre-configure
4767 (lambda* (#:key outputs #:allow-other-keys)
4768 ;; Use elogind instead of systemd.
4769 (substitute* "meson.build"
4770 (("libsystemd-login") "libelogind")
4771 (("and libsystemd_daemon_dep.found.*") ","))
4772 (substitute* "gnome-session/gsm-systemd.c"
4773 (("#include <systemd/sd-login.h>")
4774 "#include <elogind/sd-login.h>"))
4775 ;; Remove uses of the systemd daemon.
4776 (substitute* "gnome-session/gsm-autostart-app.c"
4777 (("#ifdef HAVE_SYSTEMD") "#if 0"))
4778 #t))
4779 (add-after 'install 'wrap-gnome-session
4780 (lambda* (#:key inputs outputs #:allow-other-keys)
4781 ;; Make sure 'gnome-session' finds the 'gsettings' program.
4782 (let ((glib (assoc-ref inputs "glib:bin"))
4783 (out (assoc-ref outputs "out")))
4784 (wrap-program (string-append out "/bin/gnome-session")
4785 `("PATH" ":" prefix (,(string-append glib "/bin"))))
4786 #t)))
4787 (add-after 'install 'add-absolute-paths-to-desktop-files
4788 (lambda* (#:key outputs #:allow-other-keys)
4789 (let* ((out (assoc-ref outputs "out")))
4790 (substitute* (map (lambda (x)
4791 (string-append out "/share/xsessions/" x))
4792 '("gnome.desktop" "gnome-xorg.desktop"))
4793 (("gnome-session") (string-append out "/bin/gnome-session")))
4794 #t))))
4795
4796 #:configure-flags
4797 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
4798 "-Dman=false" ; FIXME: disabled because of docbook validation error
4799 "-Dsystemd_journal=false")))
4800 (build-system meson-build-system)
4801 (native-inputs
4802 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4803 ("pkg-config" ,pkg-config)
4804 ("intltool" ,intltool)
4805 ("xsltproc" ,libxslt)
4806 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4807 ("docbook-xsl" ,docbook-xsl)
4808 ("docbook-xml" ,docbook-xml)
4809 ("xmlto" ,xmlto)))
4810 (inputs
4811 `(("elogind" ,elogind)
4812 ("gnome-desktop" ,gnome-desktop)
4813 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4814 ("gtk+" ,gtk+)
4815 ("json-glib" ,json-glib)
4816 ("libsm" ,libsm)
4817 ("libxcomposite" ,libxcomposite)
4818 ("libxtst" ,libxtst)
4819 ("mesa" ,mesa)
4820 ("upower" ,upower)
4821 ("xtrans" ,xtrans)))
4822 (synopsis "Session manager for GNOME")
4823 (description
4824 "This package contains the GNOME session manager, as well as a
4825 configuration program to choose applications starting on login.")
4826 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
4827 (license license:gpl2+)))
4828
4829 (define-public gjs
4830 (package
4831 (name "gjs")
4832 (version "1.52.3")
4833 (source (origin
4834 (method url-fetch)
4835 (uri (string-append "mirror://gnome/sources/" name "/"
4836 (version-major+minor version) "/"
4837 name "-" version ".tar.xz"))
4838 (sha256
4839 (base32
4840 "1z4n15wdz6pbqd2hfzrqc8mmprhv50v4jk43p08v0xv07yldh8ff"))))
4841 (build-system gnu-build-system)
4842 (arguments
4843 '(#:phases
4844 (modify-phases %standard-phases
4845 (add-before
4846 'check 'pre-check
4847 (lambda _
4848 ;; The test suite requires a running X server.
4849 (system "Xvfb :1 &")
4850 (setenv "DISPLAY" ":1")
4851
4852 ;; For the missing /etc/machine-id.
4853 (setenv "DBUS_FATAL_WARNINGS" "0")
4854
4855 ;; Our mozjs-38 package does not compile the required Intl API
4856 ;; support for these failing tests.
4857 (substitute* "installed-tests/js/testLocale.js"
4858 ((".*toBeDefined.*") "")
4859 ((".*expect\\(datestr\\).*") ""))
4860 #t)))))
4861 (native-inputs
4862 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
4863 ("pkg-config" ,pkg-config)
4864 ("xmllint" ,libxml2)
4865 ;; For testing
4866 ("dbus-launch" ,dbus)
4867 ("uuidgen" ,util-linux)
4868 ("xvfb" ,xorg-server-for-tests)))
4869 (propagated-inputs
4870 ;; These are all in the Requires.private field of gjs-1.0.pc.
4871 `(("cairo" ,cairo)
4872 ("gobject-introspection" ,gobject-introspection)
4873 ("mozjs" ,mozjs-52)))
4874 (inputs
4875 `(("gtk+" ,gtk+)
4876 ("readline" ,readline)))
4877 (synopsis "Javascript bindings for GNOME")
4878 (home-page "https://live.gnome.org/Gjs")
4879 (description
4880 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
4881 javascript engine and the GObject introspection framework.")
4882 (license license:gpl2+)))
4883
4884 (define-public gedit
4885 (package
4886 (name "gedit")
4887 (version "3.28.1")
4888 (source (origin
4889 (method url-fetch)
4890 (uri (string-append "mirror://gnome/sources/" name "/"
4891 (version-major+minor version) "/"
4892 name "-" version ".tar.xz"))
4893 (sha256
4894 (base32
4895 "0791r07d3ixmmfk68lvhp3d5i4vnlrnx10csxwgpfqyfb04vwx7i"))))
4896 (build-system glib-or-gtk-build-system)
4897 (arguments
4898 `(#:phases
4899 (modify-phases %standard-phases
4900 (add-after
4901 'install 'wrap-gedit
4902 (lambda* (#:key inputs outputs #:allow-other-keys)
4903 (let ((out (assoc-ref outputs "out"))
4904 (gtksourceview (assoc-ref inputs "gtksourceview"))
4905 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4906 (python-path (getenv "PYTHONPATH")))
4907 (wrap-program (string-append out "/bin/gedit")
4908 ;; For plugins.
4909 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
4910 `("PYTHONPATH" ":" prefix (,python-path))
4911 ;; For language-specs.
4912 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
4913 "/share")))))
4914 #t)))))
4915 (propagated-inputs
4916 `(("dconf" ,dconf)))
4917 (native-inputs
4918 `(("intltool" ,intltool)
4919 ("itstool" ,itstool)
4920 ("gobject-introspection" ,gobject-introspection)
4921 ("pkg-config" ,pkg-config)))
4922 (inputs
4923 `(("glib" ,glib)
4924 ("gspell" ,gspell)
4925 ("gtk+" ,gtk+)
4926 ("gtksourceview" ,gtksourceview-3)
4927 ("libpeas" ,libpeas)
4928 ("libxml2" ,libxml2)
4929 ("iso-codes" ,iso-codes)
4930 ("python-pygobject" ,python-pygobject)
4931 ("python" ,python)
4932 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4933 ("libx11" ,libx11)
4934 ("vala" ,vala)
4935 ("adwaita-icon-theme" ,adwaita-icon-theme)
4936 ("libsoup" ,libsoup)
4937 ("gnome-desktop" ,gnome-desktop)))
4938 (home-page "https://wiki.gnome.org/Apps/Gedit")
4939 (synopsis "GNOME text editor")
4940 (description "While aiming at simplicity and ease of use, gedit is a
4941 powerful general purpose text editor.")
4942 (license license:gpl2+)))
4943
4944 (define-public zenity
4945 (package
4946 (name "zenity")
4947 (version "3.28.1")
4948 (source (origin
4949 (method url-fetch)
4950 (uri (string-append "mirror://gnome/sources/" name "/"
4951 (version-major+minor version) "/"
4952 name "-" version ".tar.xz"))
4953 (sha256
4954 (base32
4955 "0swavrkc5ps3fwzy6h6l5mmim0wwy10xrq0qqkay5d0zf9a965yv"))))
4956 (build-system gnu-build-system)
4957 (native-inputs
4958 `(("gettext" ,gettext-minimal)
4959 ("itstool" ,itstool)
4960 ("pkg-config" ,pkg-config)))
4961 (inputs
4962 `(("libnotify" ,libnotify)
4963 ("webkitgtk" ,webkitgtk)))
4964 (synopsis "Display graphical dialog boxes from shell scripts")
4965 (home-page "https://www.gnome.org")
4966 (description
4967 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
4968 to display dialog boxes from the commandline and shell scripts.")
4969 (license license:lgpl2.0+)))
4970
4971 (define-public mutter
4972 (package
4973 (name "mutter")
4974 (version "3.28.2")
4975 (source (origin
4976 (method url-fetch)
4977 (uri (string-append "mirror://gnome/sources/" name "/"
4978 (version-major+minor version) "/"
4979 name "-" version ".tar.xz"))
4980 (sha256
4981 (base32
4982 "0ighs1zvlssgq16v1h3vg280za7y448snq65gc5m1zmqqawqkymg"))))
4983 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
4984 ;; versions of cogl and clutter. As a result, many of the inputs,
4985 ;; propagated-inputs, and configure flags used in cogl and clutter are
4986 ;; needed here as well.
4987 (build-system gnu-build-system)
4988 (arguments
4989 '(#:configure-flags
4990 ;; XXX: build fails with [-Werror]:
4991 ;; backends/meta-cursor-renderer.c:112:5: error:
4992 ;; implicit declaration of function ?roundf?
4993 (list "--enable-compile-warnings=minimum"
4994
4995 "--enable-native-backend"
4996
4997 ;; The following flags are needed for the bundled clutter
4998 "--enable-x11-backend=yes"
4999
5000 (string-append "--with-xwayland-path="
5001 (assoc-ref %build-inputs "xorg-server-xwayland")
5002 "/bin/Xwayland")
5003
5004 ;; the remaining flags are needed for the bundled cogl
5005 "--enable-cogl-gst"
5006 (string-append "--with-gl-libname="
5007 (assoc-ref %build-inputs "mesa")
5008 "/lib/libGL.so"))
5009 #:phases
5010 (modify-phases %standard-phases
5011 ;; Replace references to systemd libraries to elogind references.
5012 (add-before 'configure 'use-elogind
5013 (lambda _
5014 (substitute* (list "configure"
5015 "src/backends/native/meta-launcher.c"
5016 "src/core/main.c")
5017 (("systemd") "elogind"))
5018 #t)))))
5019 (native-inputs
5020 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5021 ("gobject-introspection" ,gobject-introspection)
5022 ("intltool" ,intltool)
5023 ("pkg-config" ,pkg-config)
5024 ;; For git build
5025 ("autoconf" ,autoconf)
5026 ("automake" ,automake)
5027 ("libtool" ,libtool)))
5028 (propagated-inputs
5029 `(;; libmutter.pc refers to these:
5030 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5031 ("gtk+" ,gtk+)
5032 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
5033 ("atk" ,atk)
5034 ("cairo" ,cairo)
5035 ("gdk-pixbuf" ,gdk-pixbuf)
5036 ("glib" ,glib)
5037 ("gtk+" ,gtk+)
5038 ("json-glib" ,json-glib)
5039 ("libinput" ,libinput)
5040 ("libx11" ,libx11)
5041 ("libxcomposite" ,libxcomposite)
5042 ("libxdamage" ,libxdamage)
5043 ("libxext" ,libxext)
5044 ("libxfixes" ,libxfixes)
5045 ("libxkbcommon" ,libxkbcommon)
5046 ("libxrandr" ,libxrandr)
5047 ("mesa" ,mesa)
5048 ("pango" ,pango)
5049 ("udev" ,eudev)
5050 ("xinput" ,xinput)))
5051 (inputs
5052 `(("elogind" ,elogind)
5053 ("gnome-desktop" ,gnome-desktop)
5054 ("libcanberra-gtk" ,libcanberra)
5055 ("libgudev" ,libgudev)
5056 ("libice" ,libice)
5057 ("libsm" ,libsm)
5058 ("libxkbfile" ,libxkbfile)
5059 ("libxrandr" ,libxrandr)
5060 ("libxtst" ,libxtst)
5061 ("startup-notification" ,startup-notification)
5062 ("upower-glib" ,upower)
5063 ("xkeyboard-config" ,xkeyboard-config)
5064 ("xorg-server-xwayland" ,xorg-server-xwayland)
5065 ("zenity" ,zenity)))
5066 (synopsis "Window and compositing manager")
5067 (home-page "https://www.gnome.org")
5068 (description
5069 "Mutter is a window and compositing manager that displays and manages your
5070 desktop via OpenGL. Mutter combines a sophisticated display engine using the
5071 Clutter toolkit with solid window-management logic inherited from the Metacity
5072 window manager.")
5073 (license license:gpl2+)))
5074
5075 (define-public gnome-online-accounts
5076 (package
5077 (name "gnome-online-accounts")
5078 (version "3.28.0")
5079 (source (origin
5080 (method url-fetch)
5081 (uri (string-append "mirror://gnome/sources/" name "/"
5082 (version-major+minor version) "/"
5083 name "-" version ".tar.xz"))
5084 (sha256
5085 (base32
5086 "035lmm21imr7ddpzffqabv53g3ggjscmqvlzy3j1qkv00zrlxg47"))))
5087 (outputs '("out" "lib"))
5088 (build-system glib-or-gtk-build-system)
5089 (arguments
5090 `(#:configure-flags
5091 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
5092 #:phases
5093 (modify-phases %standard-phases
5094 (add-before 'configure 'patch-libgoa-output
5095 (lambda* (#:key outputs #:allow-other-keys)
5096 (let ((lib (assoc-ref outputs "lib")))
5097 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
5098 (("@prefix@") lib)
5099 (("@exec_prefix@") lib)
5100 (("@libdir@") (string-append lib "/lib"))
5101 (("@includedir@") (string-append lib "/include"))
5102 (("@datadir@") (string-append lib "/share")))
5103 #t))))))
5104 (native-inputs
5105 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5106 ("gobject-introspection" ,gobject-introspection)
5107 ("intltool" ,intltool)
5108 ("pkg-config" ,pkg-config)
5109 ("xsltproc" ,libxslt)))
5110 (propagated-inputs
5111 `(("glib" ,glib) ; required by goa-1.0.pc
5112 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
5113 (inputs
5114 `(("docbook-xsl" ,docbook-xsl)
5115 ("json-glib" ,json-glib)
5116 ("libsecret" ,libsecret)
5117 ("rest" ,rest)
5118 ("webkitgtk" ,webkitgtk)))
5119 (synopsis "Single sign-on framework for GNOME")
5120 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
5121 (description
5122 "GNOME Online Accounts provides interfaces so that applications and
5123 libraries in GNOME can access the user's online accounts. It has providers for
5124 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
5125 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
5126 (license license:lgpl2.0+)))
5127
5128 (define-public evolution-data-server
5129 (package
5130 (name "evolution-data-server")
5131 (version "3.30.2")
5132 (source (origin
5133 (method url-fetch)
5134 (uri (string-append "mirror://gnome/sources/" name "/"
5135 (version-major+minor version) "/"
5136 name "-" version ".tar.xz"))
5137 (sha256
5138 (base32
5139 "0h4f71kpf2ypdgifg369z35pk4cq99daw540yzjpax52grav2fjv"))))
5140 (build-system cmake-build-system)
5141 (arguments
5142 '(#:configure-flags
5143 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
5144 (runpaths (map (lambda (s)
5145 (string-append lib "/evolution-data-server/" s))
5146 '("addressbook-backends" "calendar-backends"
5147 "camel-providers" "credential-modules"
5148 "registry-modules"))))
5149 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
5150 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
5151 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
5152 "-DENABLE_VALA_BINDINGS=ON"
5153 ;; FIXME: Building against ICU 60 requires C++11 or higher. Remove
5154 ;; "-std=gnu++11" when our default compiler is >= GCC6.
5155 ;; FIXME: Temporarily use "-DU_USING_ICU_NAMESPACE=1" until
5156 ;; evolution-data-server has been updated to qualify ICU types
5157 ;; explicitly, as required by ICU 61 and later. See:
5158 ;; <https://ssl.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild>
5159 "-DCMAKE_CXX_FLAGS=-std=gnu++11 -DU_USING_ICU_NAMESPACE=1"
5160 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
5161 (string-append lib "/evolution-data-server;")
5162 (string-join runpaths ";"))
5163 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
5164 #:phases
5165 (modify-phases %standard-phases
5166 (add-after 'unpack 'disable-failing-tests
5167 (lambda _
5168 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
5169 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
5170 (delete-file-recursively "tests/book-migration")
5171 (substitute* "tests/CMakeLists.txt"
5172 (("add_subdirectory\\(book-migration\\)") ""))
5173 ;; tests/libedata-cal/test-cal-meta-backend.c:1328:test_get_attachment_uris:
5174 ;; assertion failed (uris->data == expected_uri):
5175 ;; ("" == "file:///tests/libedata-cal/components/event-1.ics")
5176 (substitute* "tests/libedata-cal/CMakeLists.txt"
5177 (("test-cal-meta-backend") ""))
5178 #t))
5179 (add-after 'unpack 'patch-paths
5180 (lambda _
5181 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
5182 "tests/libedata-book/data-test-utils.c"
5183 "tests/libedata-book/test-book-cache-utils.c"
5184 "tests/libedata-cal/test-cal-cache-utils.c")
5185 (("/bin/rm") (which "rm")))
5186 #t))
5187 (add-before 'configure 'dont-override-rpath
5188 (lambda _
5189 (substitute* "CMakeLists.txt"
5190 ;; CMakeLists.txt hard-codes runpath to just the libdir.
5191 ;; Remove it so the configure flag is respected.
5192 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
5193 #t)))))
5194 (native-inputs
5195 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5196 ("gobject-introspection" ,gobject-introspection)
5197 ("gperf" ,gperf)
5198 ("intltool" ,intltool)
5199 ("pkg-config" ,pkg-config)
5200 ("vala" ,vala)
5201 ("python" ,python-wrapper)))
5202 (propagated-inputs
5203 ;; These are all in the Requires field of .pc files.
5204 `(("gtk+" ,gtk+)
5205 ("libical" ,libical)
5206 ("libsecret" ,libsecret)
5207 ("libsoup" ,libsoup)
5208 ("nss" ,nss)
5209 ("sqlite" ,sqlite)))
5210 (inputs
5211 `(("bdb" ,bdb)
5212 ("gcr" ,gcr)
5213 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
5214 ("json-glib" ,json-glib)
5215 ("libcanberra" ,libcanberra)
5216 ("libgweather" ,libgweather)
5217 ("mit-krb5" ,mit-krb5)
5218 ("openldap" ,openldap)
5219 ("webkitgtk" ,webkitgtk)))
5220 (synopsis "Store address books and calendars")
5221 (home-page "https://wiki.gnome.org/Apps/Evolution")
5222 (description
5223 "This package provides a unified backend for programs that work with
5224 contacts, tasks, and calendar information. It was originally developed for
5225 Evolution (hence the name), but is now used by other packages as well.")
5226 (license license:lgpl2.0)))
5227
5228 (define-public caribou
5229 (package
5230 (name "caribou")
5231 (version "0.4.21")
5232 (source (origin
5233 (method url-fetch)
5234 (uri (string-append "mirror://gnome/sources/" name "/"
5235 (version-major+minor version) "/"
5236 name "-" version ".tar.xz"))
5237 (sha256
5238 (base32
5239 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
5240 (build-system glib-or-gtk-build-system)
5241 (arguments
5242 '(#:phases
5243 (modify-phases %standard-phases
5244 (add-before
5245 'build 'pre-build
5246 (lambda* (#:key outputs #:allow-other-keys)
5247 (let ((out (assoc-ref outputs "out")))
5248 ;; Use absolute shared library path in Caribou-1.0.typelib.
5249 (substitute* "libcaribou/Makefile"
5250 (("--shared-library=libcaribou.so")
5251 (string-append "--shared-library="
5252 out "/lib/libcaribou.so")))
5253 #t)))
5254 (add-after 'install 'wrap-programs
5255 (lambda* (#:key outputs #:allow-other-keys)
5256 (let* ((out (assoc-ref outputs "out"))
5257 (python-path (getenv "PYTHONPATH"))
5258 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5259 (for-each
5260 (lambda (prog)
5261 (wrap-program prog
5262 `("PYTHONPATH" ":" prefix (,python-path))
5263 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5264 (list (string-append out "/bin/caribou-preferences")
5265 (string-append out "/libexec/antler-keyboard"))))
5266 #t)))))
5267 (native-inputs
5268 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5269 ("gobject-introspection" ,gobject-introspection)
5270 ("intltool" ,intltool)
5271 ("pkg-config" ,pkg-config)
5272 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
5273 ("vala" ,vala)
5274 ("xsltproc" ,libxslt)))
5275 (propagated-inputs
5276 ;; caribou-1.0.pc refers to all these.
5277 `(("libgee" ,libgee)
5278 ("libxklavier" ,libxklavier)
5279 ("libxtst" ,libxtst)
5280 ("gtk+" ,gtk+)))
5281 (inputs
5282 `(("clutter" ,clutter)
5283 ("dconf" ,dconf)
5284 ("gtk+-2" ,gtk+-2)
5285 ("python-pygobject" ,python2-pygobject)))
5286 (synopsis "Text entry and UI navigation application")
5287 (home-page "https://wiki.gnome.org/Projects/Caribou")
5288 (description
5289 "Caribou is an input assistive technology intended for switch and pointer
5290 users.")
5291 (license license:lgpl2.1)))
5292
5293 (define-public network-manager
5294 (package
5295 (name "network-manager")
5296 (version "1.14.4")
5297 (source (origin
5298 (method url-fetch)
5299 (uri (string-append "mirror://gnome/sources/NetworkManager/"
5300 (version-major+minor version) "/"
5301 "NetworkManager-" version ".tar.xz"))
5302 (sha256
5303 (base32
5304 "064cgj9za0kzarks0lrv0qw2ysdphb5l97iw0c964bfiqzjfv8rm"))
5305 (modules '((guix build utils)))
5306 (snippet
5307 '(begin
5308 (substitute* "src/devices/wwan/nm-modem-manager.c"
5309 (("systemd") "elogind"))
5310 #t))))
5311 (build-system gnu-build-system)
5312 (outputs '("out"
5313 "doc")) ; 8 MiB of gtk-doc HTML
5314 (arguments
5315 '(#:configure-flags
5316 (let ((out (assoc-ref %outputs "out"))
5317 (doc (assoc-ref %outputs "doc"))
5318 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
5319 "/sbin/dhclient")))
5320 (list "--with-libnm-glib" ; needed by network-manager-applet
5321 "--with-systemd-journal=no"
5322 "--with-session-tracking=elogind"
5323 "--with-suspend-resume=elogind"
5324 "--with-consolekit=no"
5325 "--with-crypto=gnutls"
5326 "--disable-config-plugin-ibft"
5327 "--sysconfdir=/etc"
5328 "--localstatedir=/var"
5329 (string-append "--with-udev-dir="
5330 out "/lib/udev")
5331 (string-append "--with-dbus-sys-dir="
5332 out "/etc/dbus-1/system.d")
5333 (string-append "--with-html-dir="
5334 doc "/share/gtk-doc/html")
5335 (string-append "--with-dhclient=" dhclient)))
5336 #:phases
5337 (modify-phases %standard-phases
5338 ;; This bare "ls" invocation breaks some tests.
5339 (add-after 'unpack 'patch-ls-invocation
5340 (lambda _
5341 (substitute* "build-aux/ltmain.sh"
5342 (("`ls -")
5343 (string-append "`" (which "ls") " -")))
5344 #t))
5345 (add-before 'configure 'pre-configure
5346 (lambda _
5347 ;; These tests try to test aspects of network-manager's
5348 ;; functionality within restricted containers, but they don't
5349 ;; cope with being already in the Guix build jail as that jail
5350 ;; lacks some features that they would like to proxy over (like
5351 ;; a /sys mount).
5352 (substitute* '("Makefile.in")
5353 (("src/platform/tests/test-address-linux") " ")
5354 (("src/platform/tests/test-cleanup-linux") " ")
5355 (("src/platform/tests/test-link-linux") " ")
5356 (("src/platform/tests/test-route-linux") " ")
5357 (("src/devices/tests/test-acd") "")
5358 (("src/devices/tests/test-arping") " ")
5359 (("src/devices/tests/test-lldp") " ")
5360 (("src/tests/test-route-manager-linux") " "))
5361 #t))
5362 (add-after 'unpack 'delete-failing-tests
5363 (lambda _
5364 ;; FIXME: These three tests fail for unknown reasons.
5365 ;; ERROR:libnm-core/tests/test-general.c:5842:
5366 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
5367 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
5368 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
5369 ;; ERROR:libnm-core/tests/test-setting.c:907:
5370 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
5371 (substitute* "Makefile.in"
5372 (("libnm-core/tests/test-general") " ")
5373 (("libnm-core/tests/test-keyfile") " ")
5374 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
5375 #t))
5376 (add-before 'check 'pre-check
5377 (lambda _
5378 ;; For the missing /etc/machine-id.
5379 (setenv "DBUS_FATAL_WARNINGS" "0")
5380 #t))
5381 (replace 'install
5382 (lambda _
5383 (invoke "make"
5384 "sysconfdir=/tmp"
5385 "rundir=/tmp"
5386 "statedir=/tmp"
5387 "nmstatedir=/tmp/nm"
5388 "install")
5389 #t)))))
5390 (propagated-inputs
5391 `(("glib" ,glib)))
5392 (native-inputs
5393 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
5394 ("gobject-introspection" ,gobject-introspection)
5395 ("docbook-xsl" ,docbook-xsl)
5396 ("intltool" ,intltool)
5397 ("libxslt" ,libxslt)
5398 ("libxml2" ,libxml2)
5399 ("pkg-config" ,pkg-config)
5400 ;; For testing.
5401 ("python" ,python-wrapper)
5402 ("python-dbus" ,python-dbus)
5403 ("python-pygobject" ,python-pygobject)))
5404 (inputs
5405 `(("coreutils" ,coreutils) ; for ls
5406 ("curl" ,curl)
5407 ("cyrus-sasl" ,cyrus-sasl)
5408 ("dbus-glib" ,dbus-glib)
5409 ("dnsmasq" ,dnsmasq)
5410 ("eudev" ,eudev)
5411 ("gnutls" ,gnutls)
5412 ("iptables" ,iptables)
5413 ("isc-dhcp" ,isc-dhcp)
5414 ("jansson" ,jansson)
5415 ("libgcrypt" ,libgcrypt)
5416 ("libgudev" ,libgudev)
5417 ("libndp" ,libndp)
5418 ("libnl" ,libnl)
5419 ("libsoup" ,libsoup)
5420 ("modem-manager" ,modem-manager)
5421 ("newt" ,newt) ;for the 'nmtui' console interface
5422 ("polkit" ,polkit)
5423 ("ppp" ,ppp)
5424 ("readline" ,readline)
5425 ("util-linux" ,util-linux)
5426 ("elogind" ,elogind)))
5427 (synopsis "Network connection manager")
5428 (home-page "https://www.gnome.org/projects/NetworkManager/")
5429 (description
5430 "NetworkManager is a system network service that manages your network
5431 devices and connections, attempting to keep active network connectivity when
5432 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
5433 devices, and provides VPN integration with a variety of different VPN
5434 services.")
5435 (license license:gpl2+)
5436 (properties '((upstream-name . "NetworkManager")))))
5437
5438 (define-public network-manager-openvpn
5439 (package
5440 (name "network-manager-openvpn")
5441 (version "1.8.4")
5442 (source (origin
5443 (method url-fetch)
5444 (uri (string-append
5445 "mirror://gnome/sources/NetworkManager-openvpn/"
5446 (version-major+minor version)
5447 "/NetworkManager-openvpn-" version ".tar.xz"))
5448 (sha256
5449 (base32
5450 "0gyrv46h9k17qym48qacq4zpxbap6hi17shn921824zm98m2bdvr"))))
5451 (build-system gnu-build-system)
5452 (arguments
5453 '(#:configure-flags '("--enable-absolute-paths")))
5454 (native-inputs
5455 `(("pkg-config" ,pkg-config)
5456 ("intltool" ,intltool)))
5457 (inputs
5458 `(("gtk+" ,gtk+)
5459 ("openvpn" ,openvpn)
5460 ("network-manager" ,network-manager)
5461 ("network-manager-applet" ,network-manager-applet) ;for libnma
5462 ("libsecret" ,libsecret)))
5463 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
5464 (synopsis "OpenVPN plug-in for NetworkManager")
5465 (description
5466 "This extension of NetworkManager allows it to take care of connections
5467 to virtual private networks (VPNs) via OpenVPN.")
5468 (license license:gpl2+)
5469 (properties `((upstream-name . "NetworkManager-openvpn")))))
5470
5471 (define-public mobile-broadband-provider-info
5472 (package
5473 (name "mobile-broadband-provider-info")
5474 (version "20190116")
5475 (source (origin
5476 (method url-fetch)
5477 (uri (string-append
5478 "mirror://gnome/sources/"
5479 "mobile-broadband-provider-info/" version "/"
5480 "mobile-broadband-provider-info-" version ".tar.xz"))
5481 (sha256
5482 (base32
5483 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
5484 (build-system gnu-build-system)
5485 (arguments
5486 `(#:tests? #f)) ; no tests
5487 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
5488 (synopsis "Database of broadband connection configuration")
5489 (description "Database of broadband connection configuration.")
5490 (license license:public-domain)))
5491
5492 (define-public network-manager-applet
5493 (package
5494 (name "network-manager-applet")
5495 (version "1.8.18")
5496 (source (origin
5497 (method url-fetch)
5498 (uri (string-append "mirror://gnome/sources/" name "/"
5499 (version-major+minor version) "/"
5500 name "-" version ".tar.xz"))
5501 (sha256
5502 (base32
5503 "0y31g0lxr93370xi74hbpvcy9m81n5wdkdhq8xy2nqp0y4219p13"))))
5504 (build-system meson-build-system)
5505 (arguments
5506 '(#:glib-or-gtk? #t))
5507 (native-inputs
5508 `(("intltool" ,intltool)
5509 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5510 ("gobject-introspection" ,gobject-introspection)
5511 ("gtk-doc" ,gtk-doc)
5512 ("pkg-config" ,pkg-config)))
5513 (propagated-inputs
5514 ;; libnm-gtk.pc refers to all these.
5515 `(("dbus-glib" ,dbus-glib)
5516 ("gtk+" ,gtk+)
5517 ("network-manager" ,network-manager)))
5518 (inputs
5519 `(("gcr" ,gcr)
5520 ("iso-codes" ,iso-codes)
5521 ("libgudev" ,libgudev)
5522 ("libnotify" ,libnotify)
5523 ("libsecret" ,libsecret)
5524 ("libselinux" ,libselinux)
5525 ("jansson" ,jansson) ; for team support
5526 ("modem-manager" ,modem-manager)
5527 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
5528 (synopsis "Applet for managing network connections")
5529 (home-page "https://www.gnome.org/projects/NetworkManager/")
5530 (description
5531 "This package contains a systray applet for NetworkManager. It displays
5532 the available networks and allows users to easily switch between them.")
5533 (license license:gpl2+)))
5534
5535 (define-public libxml++
5536 (package
5537 (name "libxml++")
5538 (version "3.0.1")
5539 (source (origin
5540 (method url-fetch)
5541 (uri (string-append "mirror://gnome/sources/" name "/"
5542 (version-major+minor version) "/"
5543 name "-" version ".tar.xz"))
5544 (sha256
5545 (base32
5546 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
5547 (build-system gnu-build-system)
5548 ;; libxml++-3.0.pc refers to all these.
5549 (propagated-inputs
5550 `(("libxml2" ,libxml2)
5551 ("glibmm" ,glibmm)))
5552 (native-inputs
5553 `(("perl" ,perl)
5554 ("pkg-config" ,pkg-config)))
5555 (home-page "http://libxmlplusplus.sourceforge.net/")
5556 (synopsis "C++ wrapper for XML parser library libxml2")
5557 (description
5558 "This package provides a C++ wrapper for the XML parser library
5559 libxml2.")
5560 (license license:lgpl2.1+)))
5561
5562 (define-public libxml++-2
5563 (package
5564 (inherit libxml++)
5565 (name "libxml++")
5566 (version "2.40.1")
5567 (source (origin
5568 (method url-fetch)
5569 (uri (string-append "mirror://gnome/sources/" name "/"
5570 (version-major+minor version) "/"
5571 name "-" version ".tar.xz"))
5572 (sha256
5573 (base32
5574 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
5575
5576 (define-public gdm
5577 (package
5578 (name "gdm")
5579 (version "3.30.2")
5580 (source (origin
5581 (method url-fetch)
5582 (uri (string-append "mirror://gnome/sources/" name "/"
5583 (version-major+minor version) "/"
5584 name "-" version ".tar.xz"))
5585 (sha256
5586 (base32
5587 "1handy65r1n0zby09jr492b3643wszzigdkxp7q2ypgxb3hyv45y"))))
5588 (build-system glib-or-gtk-build-system)
5589 (arguments
5590 '(#:configure-flags
5591 `("--without-plymouth"
5592 "--disable-systemd-journal"
5593
5594 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
5595 ;; instead of having to replace it (i.e., stopping the mingetty
5596 ;; service for TTY 1 before starting GDM).
5597 "--with-initial-vt=7"
5598
5599 ;; Use '/etc/environment' for locale settings instead of the
5600 ;; systemd-specific '/etc/locale.conf'.
5601 "--with-lang-file=/etc/environment"
5602
5603 ,(string-append "--with-udevdir="
5604 (assoc-ref %outputs "out") "/lib/udev")
5605
5606 "--localstatedir=/var"
5607 ,(string-append "--with-default-path="
5608 (string-join '("/run/setuid-programs"
5609 "/run/current-system/profile/bin"
5610 "/run/current-system/profile/sbin")
5611 ":"))
5612 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
5613 ;; XDG_DATA_DIRS so that it finds its schemas.
5614 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
5615 #:phases
5616 (modify-phases %standard-phases
5617 (add-before
5618 'configure 'pre-configure
5619 (lambda* (#:key inputs outputs #:allow-other-keys)
5620 ;; We don't have <systemd/sd-daemon.h>.
5621 (substitute* '("common/gdm-log.c"
5622 "daemon/gdm-server.c"
5623 "daemon/gdm-session-worker.c"
5624 "daemon/gdm-session-worker-job.c")
5625 (("#include <systemd/sd-daemon\\.h>") ""))
5626 ;; Use elogind for sd-login.
5627 (substitute* '("common/gdm-common.c"
5628 "daemon/gdm-manager.c"
5629 "libgdm/gdm-user-switching.c")
5630 (("#include <systemd/sd-login\\.h>")
5631 "#include <elogind/sd-login.h>"))
5632 ;; Check for elogind.
5633 (substitute* '("configure")
5634 (("libsystemd")
5635 "libelogind"))
5636 ;; Look for system-installed sessions in
5637 ;; /run/current-system/profile/share.
5638 (substitute* '("libgdm/gdm-sessions.c"
5639 "daemon/gdm-session.c"
5640 "daemon/gdm-display.c"
5641 "daemon/gdm-launch-environment.c")
5642 (("DATADIR \"/x")
5643 "\"/run/current-system/profile/share/x")
5644 (("DATADIR \"/wayland")
5645 "\"/run/current-system/profile/share/wayland")
5646 (("DATADIR \"/gnome")
5647 "\"/run/current-system/profile/share/gnome"))
5648 (let ((propagate '("GDM_CUSTOM_CONF"
5649 "GDM_DBUS_DAEMON"
5650 "GDM_X_SERVER"
5651 "GDM_X_SESSION"
5652 ;; XXX: Remove this once GNOME Shell is
5653 ;; a dependency of GDM.
5654 "XDG_DATA_DIRS")))
5655 (substitute* "daemon/gdm-session.c"
5656 (("set_up_session_environment \\(self\\);")
5657 (apply string-append
5658 "set_up_session_environment (self);\n"
5659 (map (lambda (name)
5660 (string-append
5661 "gdm_session_set_environment_variable "
5662 "(self, \"" name "\","
5663 "g_getenv (\"" name "\"));\n"))
5664 propagate)))))
5665 ;; Find the configuration file using an environment variable.
5666 (substitute* '("common/gdm-settings.c")
5667 (("GDM_CUSTOM_CONF")
5668 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
5669 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
5670 " : GDM_CUSTOM_CONF)")))
5671 ;; Use service-supplied path to X.
5672 (substitute* '("daemon/gdm-server.c")
5673 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
5674 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
5675 (substitute* '("daemon/gdm-x-session.c")
5676 (("\"dbus-daemon\"")
5677 "g_getenv (\"GDM_DBUS_DAEMON\")")
5678 (("X_SERVER")
5679 "g_getenv (\"GDM_X_SERVER\")")
5680 (("GDMCONFDIR \"/Xsession\"")
5681 "g_getenv (\"GDM_X_SESSION\")"))
5682 ;; Use an absolute path for GNOME Session.
5683 (substitute* "daemon/gdm-launch-environment.c"
5684 (("\"gnome-session\"")
5685 (string-append "\"" (assoc-ref inputs "gnome-session")
5686 "/bin/gnome-session\"")))
5687 ;; Do not automatically select the placeholder session.
5688 (substitute* "daemon/gdm-session.c"
5689 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
5690 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
5691 "(g_strcmp0(search_dirs[i], \""
5692 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
5693 "\") == 0 && "
5694 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
5695 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
5696 "{ self->priv->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
5697 #t))
5698 ;; GDM requires that there be at least one desktop entry
5699 ;; file. This phase installs a hidden one that simply
5700 ;; fails. This enables users to use GDM with a
5701 ;; '~/.xsession' script with no other desktop entry files.
5702 ;; See <https://bugs.gnu.org/35068>.
5703 (add-after 'install 'install-placeholder-desktop-entry
5704 (lambda* (#:key inputs outputs #:allow-other-keys)
5705 (let* ((out (assoc-ref outputs "out"))
5706 (sessions (string-append out "/share/gdm/BuiltInSessions"))
5707 (fail (string-append sessions "/fail.desktop")))
5708 (mkdir-p sessions)
5709 (with-output-to-file fail
5710 (lambda ()
5711 (for-each
5712 display
5713 '("[Desktop Entry]\n"
5714 "Encoding=UTF-8\n"
5715 "Type=Application\n"
5716 "Name=Fail\n"
5717 "Comment=This session fails immediately.\n"
5718 "NoDisplay=true\n"
5719 "Exec=false\n"))))
5720 #t)))
5721 ;; GDM needs GNOME Session to run these applications. We link
5722 ;; their autostart files in `share/gdm/greeter/autostart'
5723 ;; because GDM explicitly tells GNOME Session to look there.
5724 ;;
5725 ;; XXX: GNOME Shell should be linked here too, but currently
5726 ;; GNOME Shell depends on GDM.
5727 (add-after 'install 'link-autostart-files
5728 (lambda* (#:key inputs outputs #:allow-other-keys)
5729 (let* ((out (assoc-ref outputs "out"))
5730 (autostart (string-append out "/share/gdm/"
5731 "greeter/autostart"))
5732 (settings (assoc-ref inputs "gnome-settings-daemon")))
5733 (mkdir-p autostart)
5734 (with-directory-excursion autostart
5735 (for-each (lambda (desktop)
5736 (symlink desktop (basename desktop)))
5737 (find-files (string-append settings "/etc/xdg"))))
5738 #t))))))
5739 (native-inputs
5740 `(("dconf" ,dconf)
5741 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5742 ("gobject-introspection" ,gobject-introspection)
5743 ("intltool" ,intltool)
5744 ("itstool" ,itstool)
5745 ("pkg-config" ,pkg-config)
5746 ("xmllint" ,libxml2)))
5747 (inputs
5748 `(("accountsservice" ,accountsservice)
5749 ("check" ,check) ; for testing
5750 ("elogind" ,elogind)
5751 ("gnome-session" ,gnome-session)
5752 ("gnome-settings-daemon" ,gnome-settings-daemon)
5753 ("gtk+" ,gtk+)
5754 ("iso-codes" ,iso-codes)
5755 ("libcanberra" ,libcanberra)
5756 ("linux-pam" ,linux-pam)))
5757 (synopsis "Display manager for GNOME")
5758 (home-page "https://wiki.gnome.org/Projects/GDM/")
5759 (description
5760 "GNOME Display Manager is a system service that is responsible for
5761 providing graphical log-ins and managing local and remote displays.")
5762 (license license:gpl2+)))
5763
5764 (define-public libgtop
5765 (package
5766 (name "libgtop")
5767 (version "2.38.0")
5768 (source (origin
5769 (method url-fetch)
5770 (uri (string-append "mirror://gnome/sources/" name "/"
5771 (version-major+minor version) "/"
5772 name "-" version ".tar.xz"))
5773 (sha256
5774 (base32
5775 "04mnxgzyb26wqk6qij4iw8cxwl82r8pcsna5dg8vz2j3pdi0wv2g"))))
5776 (build-system gnu-build-system)
5777 (native-inputs
5778 `(("gobject-introspection" ,gobject-introspection)
5779 ("intltool" ,intltool)
5780 ("perl" ,perl)
5781 ("pkg-config" ,pkg-config)))
5782 (propagated-inputs
5783 `(("glib" ,glib))) ; required by libgtop-2.0.pc
5784 (synopsis "Portable system access library")
5785 (home-page "https://www.gnome.org/")
5786 (description
5787 "LibGTop is a library to get system specific data such as CPU and memory
5788 usage and information about running processes.")
5789 (license license:gpl2+)))
5790
5791 (define-public gnome-bluetooth
5792 (package
5793 (name "gnome-bluetooth")
5794 (version "3.28.0")
5795 (source (origin
5796 (method url-fetch)
5797 (uri (string-append "mirror://gnome/sources/" name "/"
5798 (version-major+minor version) "/"
5799 name "-" version ".tar.xz"))
5800 (sha256
5801 (base32
5802 "0q7yzklrlayj99risj096mr5x35anx94wvr6nbf6pwbvvzv7453p"))))
5803 (build-system meson-build-system)
5804 (native-inputs
5805 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
5806 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5807 ("gobject-introspection" ,gobject-introspection)
5808 ("intltool" ,intltool)
5809 ("pkg-config" ,pkg-config)
5810 ("xmllint" ,libxml2)))
5811 (propagated-inputs
5812 ;; gnome-bluetooth-1.0.pc refers to all these.
5813 `(("gtk+" ,gtk+)
5814 ("udev" ,eudev)))
5815 (inputs
5816 `(("libcanberra" ,libcanberra)
5817 ("libnotify" ,libnotify)))
5818 (synopsis "GNOME Bluetooth subsystem")
5819 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
5820 (description
5821 "This package contains tools for managing and manipulating Bluetooth
5822 devices using the GNOME desktop.")
5823 (license license:lgpl2.1+)))
5824
5825 (define-public gnome-control-center
5826 (package
5827 (name "gnome-control-center")
5828 (version "3.28.2")
5829 (source (origin
5830 (method url-fetch)
5831 (uri (string-append "mirror://gnome/sources/" name "/"
5832 (version-major+minor version) "/"
5833 name "-" version ".tar.xz"))
5834 (sha256
5835 (base32
5836 "0d6pjdbsra16nav8201kaadja5yma92bhziki9601ilk2ry3v7pz"))))
5837 (build-system meson-build-system)
5838 (arguments
5839 '(#:glib-or-gtk? #t
5840 #:configure-flags
5841 (list "-Dcheese=false")
5842 #:phases
5843 (modify-phases %standard-phases
5844 (add-before 'configure 'patch-paths
5845 (lambda* (#:key inputs #:allow-other-keys)
5846 (let ((libc (assoc-ref inputs "libc"))
5847 (tzdata (assoc-ref inputs "tzdata"))
5848 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
5849 (nm-applet (assoc-ref inputs "network-manager-applet")))
5850 (substitute* "panels/datetime/tz.h"
5851 (("/usr/share/zoneinfo/zone.tab")
5852 (string-append tzdata "/share/zoneinfo/zone.tab")))
5853 (substitute* "panels/datetime/test-endianess.c"
5854 (("/usr/share/locale")
5855 (string-append libc "/share/locale")))
5856 (substitute* "panels/region/cc-region-panel.c"
5857 (("\"gkbd-keyboard-display")
5858 (string-append "\"" libgnomekbd
5859 "/bin/gkbd-keyboard-display")))
5860 (substitute* '("panels/network/net-device-wifi.c"
5861 "panels/network/net-device.c"
5862 "panels/network/connection-editor/net-connection-editor.c")
5863 (("\"nm-connection-editor")
5864 (string-append "\"" nm-applet
5865 "/bin/nm-connection-editor")))
5866 (substitute* '("panels/user-accounts/run-passwd.c")
5867 (("/usr/bin/passwd")
5868 "/run/setuid-programs/passwd"))
5869 #t))))))
5870 (native-inputs
5871 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5872 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
5873 ("intltool" ,intltool)
5874 ("pkg-config" ,pkg-config)
5875 ("xsltproc" ,libxslt)))
5876 (inputs
5877 `(("accountsservice" ,accountsservice)
5878 ("clutter-gtk" ,clutter-gtk)
5879 ("colord-gtk" ,colord-gtk)
5880 ("cups" ,cups)
5881 ("dconf" ,dconf)
5882 ("docbook-xsl" ,docbook-xsl)
5883 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
5884 ("gnome-bluetooth" ,gnome-bluetooth)
5885 ("gnome-desktop" ,gnome-desktop)
5886 ("gnome-online-accounts" ,gnome-online-accounts)
5887 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
5888 ("gnome-settings-daemon" ,gnome-settings-daemon)
5889 ("grilo" ,grilo)
5890 ("ibus" ,ibus)
5891 ("libcanberra" ,libcanberra)
5892 ("libgnomekbd" ,libgnomekbd)
5893 ("libgudev" ,libgudev)
5894 ("libgtop" ,libgtop)
5895 ("libpwquality" ,libpwquality)
5896 ("libsoup" ,libsoup)
5897 ("libxml2" ,libxml2)
5898 ("libwacom" ,libwacom)
5899 ("mesa" ,mesa)
5900 ("mit-krb5" ,mit-krb5)
5901 ("modem-manager" ,modem-manager)
5902 ("network-manager-applet" ,network-manager-applet)
5903 ("polkit" ,polkit)
5904 ("pulseaudio" ,pulseaudio)
5905 ("smbclient" ,samba)
5906 ("tzdata" ,tzdata)
5907 ("upower" ,upower)))
5908 (synopsis "Utilities to configure the GNOME desktop")
5909 (home-page "https://www.gnome.org/")
5910 (description
5911 "This package contains configuration applets for the GNOME desktop,
5912 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
5913 properties, sound setup, desktop theme and background, user interface
5914 properties, screen resolution, and other GNOME parameters.")
5915 (license license:gpl2+)))
5916
5917 (define-public gnome-shell
5918 (package
5919 (name "gnome-shell")
5920 (version "3.28.2")
5921 (source (origin
5922 (method url-fetch)
5923 (uri (string-append "mirror://gnome/sources/" name "/"
5924 (version-major+minor version) "/"
5925 name "-" version ".tar.xz"))
5926 (sha256
5927 (base32
5928 "1b9n89ij2g5nqaqp7a13jnqcd8qa2v9p55rbi71al3xvqk091ri7"))
5929 (patches (search-patches "gnome-shell-theme.patch"))
5930 (modules '((guix build utils)))
5931 (snippet
5932 #~(begin
5933 ;; Copy images for use on the GDM log-in screen.
5934 (copy-file #$(file-append %artwork-repository
5935 "/slim/0.x/background.png")
5936 "data/theme/guix-background.png")
5937 (copy-file #$(file-append %artwork-repository
5938 "/logo/Guix-horizontal-white.svg")
5939 "data/theme/guix-logo.svg")
5940 #t))))
5941 (build-system meson-build-system)
5942 (arguments
5943 `(#:glib-or-gtk? #t
5944 #:disallowed-references ((,glib "bin")
5945 ,inkscape ,libxslt
5946 ,ruby-sass)
5947 #:configure-flags
5948 (list "-Dsystemd=false"
5949 ;; Otherwise, the RUNPATH will lack the final path component.
5950 (string-append "-Dc_link_args=-Wl,-rpath="
5951 (assoc-ref %outputs "out")
5952 "/lib/gnome-shell"))
5953
5954 #:modules ((guix build meson-build-system)
5955 (guix build utils)
5956 (srfi srfi-1))
5957
5958 #:phases
5959 (modify-phases %standard-phases
5960 (add-after 'unpack 'fix-keysdir
5961 (lambda* (#:key outputs #:allow-other-keys)
5962 (let* ((out (assoc-ref outputs "out"))
5963 (keysdir (string-append
5964 out "/share/gnome-control-center/keybindings")))
5965 (substitute* "meson.build"
5966 (("keysdir =.*")
5967 (string-append "keysdir = '" keysdir "'\n")))
5968 #t)))
5969 (add-before 'configure 'convert-logo-to-png
5970 (lambda* (#:key inputs #:allow-other-keys)
5971 ;; Convert the logo from SVG to PNG.
5972 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
5973 "data/theme/guix-logo.svg")))
5974 (add-before 'configure 'record-absolute-file-names
5975 (lambda* (#:key inputs #:allow-other-keys)
5976 (substitute* "js/misc/ibusManager.js"
5977 (("'ibus-daemon'")
5978 (string-append "'" (assoc-ref inputs "ibus")
5979 "/bin/ibus-daemon'")))
5980 (substitute* "js/ui/status/keyboard.js"
5981 (("'gkbd-keyboard-display'")
5982 (string-append "'" (assoc-ref inputs "libgnomekbd")
5983 "/bin/gkbd-keyboard-display'")))
5984 #t))
5985 (add-before 'check 'pre-check
5986 (lambda* (#:key inputs #:allow-other-keys)
5987 ;; Tests require a running X server.
5988 (system "Xvfb :1 &")
5989 (setenv "DISPLAY" ":1")
5990 #t))
5991 (add-after 'install 'wrap-programs
5992 (lambda* (#:key inputs outputs #:allow-other-keys)
5993 (let ((out (assoc-ref outputs "out"))
5994 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5995 (python-path (getenv "PYTHONPATH")))
5996 (wrap-program (string-append out "/bin/gnome-shell")
5997 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5998 ;; FIXME: gnome-shell loads these libraries with unqualified
5999 ;; names only, so they need to be on LD_LIBRARY_PATH. The
6000 ;; alternative might be to patch gnome-shell.
6001 `("LD_LIBRARY_PATH" ":" prefix
6002 ,(map (lambda (pkg)
6003 (string-append (assoc-ref inputs pkg) "/lib"))
6004 '("gdk-pixbuf"
6005 "gnome-bluetooth" "librsvg" "libgweather"))))
6006 (for-each
6007 (lambda (prog)
6008 (wrap-program (string-append out "/bin/" prog)
6009 `("PYTHONPATH" ":" prefix (,python-path))
6010 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6011 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
6012 #t)))
6013 (replace 'glib-or-gtk-wrap
6014 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
6015 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
6016 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
6017 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
6018 ;; phase. Fix that since we don't need these.
6019 (wrap #:inputs (fold alist-delete inputs
6020 '("inkscape" "intltool" "glib:bin"))
6021 #:outputs outputs)))))))
6022 (native-inputs
6023 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6024 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6025 ("gobject-introspection" ,gobject-introspection)
6026 ("inkscape" ,inkscape)
6027 ("intltool" ,intltool)
6028 ("pkg-config" ,pkg-config)
6029 ("python" ,python)
6030 ("ruby-sass" ,ruby-sass)
6031 ("sassc" ,sassc)
6032 ("xsltproc" ,libxslt)
6033 ;; For tests
6034 ("xorg-server" ,xorg-server-for-tests)))
6035 (inputs
6036 `(("accountsservice" ,accountsservice)
6037 ("caribou" ,caribou)
6038 ("docbook-xsl" ,docbook-xsl)
6039 ("evolution-data-server" ,evolution-data-server)
6040 ("gcr" ,gcr)
6041 ("gdm" ,gdm)
6042 ("gdk-pixbuf" ,gdk-pixbuf+svg)
6043 ("gjs" ,gjs)
6044 ("gnome-bluetooth" ,gnome-bluetooth)
6045 ("gnome-desktop" ,gnome-desktop)
6046 ("gnome-settings-daemon" ,gnome-settings-daemon)
6047 ("gst-plugins-base" ,gst-plugins-base)
6048 ("ibus" ,ibus)
6049 ("libcanberra" ,libcanberra)
6050 ("libcroco" ,libcroco)
6051 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
6052 ("libgweather" ,libgweather)
6053 ("libsoup" ,libsoup)
6054 ("mesa-headers" ,mesa-headers)
6055 ("mutter" ,mutter)
6056 ("network-manager-applet" ,network-manager-applet)
6057 ("polkit" ,polkit)
6058 ("pulseaudio" ,pulseaudio)
6059 ("python-pygobject" ,python-pygobject)
6060 ("startup-notification" ,startup-notification)
6061 ("telepathy-logger" ,telepathy-logger)
6062 ("upower" ,upower)
6063 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
6064 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
6065 ("librsvg" ,librsvg)
6066 ("geoclue" ,geoclue)))
6067 (synopsis "Desktop shell for GNOME")
6068 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
6069 (description
6070 "GNOME Shell provides core user interface functions for the GNOME desktop,
6071 like switching to windows and launching applications.")
6072 (license license:gpl2+)))
6073
6074 (define-public gtk-vnc
6075 (package
6076 (name "gtk-vnc")
6077 (version "0.9.0")
6078 (source
6079 (origin
6080 (method url-fetch)
6081 (uri (string-append "mirror://gnome/sources/" name "/"
6082 (version-major+minor version) "/"
6083 name "-" version ".tar.xz"))
6084 (sha256
6085 (base32
6086 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
6087 (build-system gnu-build-system)
6088 (arguments
6089 '(#:configure-flags '("--with-gtk=3.0")))
6090 (propagated-inputs
6091 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
6092 (inputs
6093 `(("cyrus-sasl" ,cyrus-sasl)
6094 ("gnutls" ,gnutls)
6095 ("libgcrypt" ,libgcrypt)
6096 ("pulseaudio" ,pulseaudio)))
6097 (native-inputs
6098 `(("glib:bin" ,glib "bin")
6099 ("gobject-introspection" ,gobject-introspection)
6100 ("intltool" ,intltool)
6101 ("pkg-config" ,pkg-config)
6102 ("python-wrapper" ,python-wrapper)
6103 ("vala" ,vala)))
6104 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
6105 (synopsis "VNC viewer widget for GTK+")
6106 (description
6107 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
6108 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
6109 GTK-VNC implements client side RFB protocol and authentication extensions such
6110 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
6111 (license license:lgpl2.1+)))
6112
6113 (define-public gnome-autoar
6114 (package
6115 (name "gnome-autoar")
6116 (version "0.2.3")
6117 (source (origin
6118 (method url-fetch)
6119 (uri (string-append "mirror://gnome/sources/" name "/"
6120 (version-major+minor version) "/"
6121 name "-" version ".tar.xz"))
6122 (sha256
6123 (base32
6124 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
6125 (build-system glib-or-gtk-build-system)
6126 (native-inputs
6127 `(("gnome-common" ,gnome-common)
6128 ("gobject-introspection" ,gobject-introspection)
6129 ("pkg-config" ,pkg-config)))
6130 (propagated-inputs
6131 `(("libarchive" ,libarchive))) ; XXX document why
6132 (inputs
6133 `(("gtk+" ,gtk+)
6134 ("nettle" ,nettle))) ; XXX: required by libarchive.pc
6135 (synopsis "Archives integration support for GNOME")
6136 (home-page "https://git.gnome.org/browse/gnome-autoar/")
6137 (description
6138 "GNOME Autoar is a library which makes creating and extracting archives
6139 easy, safe, and automatic.")
6140 (license license:lgpl2.1+)))
6141
6142 (define-public tracker
6143 (package
6144 (name "tracker")
6145 (version "2.0.4")
6146 (source (origin
6147 (method url-fetch)
6148 (uri (string-append "mirror://gnome/sources/" name "/"
6149 (version-major+minor version) "/"
6150 name "-" version ".tar.xz"))
6151 (sha256
6152 (base32
6153 "1mfc5lv820kr7ssi7hldn25gmshh65k19kh478qjsnb64sshsbyf"))))
6154 (build-system glib-or-gtk-build-system)
6155 (arguments
6156 `(#:phases
6157 (modify-phases %standard-phases
6158 (add-after 'unpack 'disable-broken-tests
6159 (lambda _
6160 ;; FIXME: Most of these fail with GLib-GIO-FATAL-ERROR: Settings
6161 ;; schema 'org.freedesktop.Tracker.FTS' is not installed.
6162 (substitute* "tests/libtracker-miner/Makefile.in"
6163 (("tracker-file-notifier-test\\$\\(EXEEXT\\)") "")
6164 (("tracker-miner-fs-test\\$\\(EXEEXT\\)") "")
6165 (("tracker-monitor-test\\$\\(EXEEXT\\)") ""))
6166 (substitute* "tests/libtracker-fts/Makefile.in"
6167 (("tracker-fts-test\\$\\(EXEEXT\\)") ""))
6168 (substitute* "tests/libtracker-data/Makefile.in"
6169 (("tracker-ontology\\$\\(EXEEXT\\)") "")
6170 (("tracker-ontology-change\\$\\(EXEEXT\\)") "")
6171 (("tracker-backup\\$\\(EXEEXT\\)") "")
6172 (("tracker-sparql-blank\\$\\(EXEEXT\\)") "")
6173 (("tracker-sparql\\$\\(EXEEXT\\)") ""))
6174 ;; These fail because the SPARQL backend could not be loaded.
6175 ;; That's because /etc/machine-id is missing, but
6176 ;; DBUS_FATAL_WARNINGS does not help here.
6177 (substitute* "tests/libtracker-sparql/Makefile.in"
6178 (("tracker-gb-737023-test\\$\\(EXEEXT\\)") "")
6179 (("tracker-sparql-test\\$\\(EXEEXT\\)") ""))
6180 (substitute* "tests/tracker-steroids/Makefile.in"
6181 (("tracker-test\\$\\(EXEEXT\\)") ""))
6182 #t))
6183 ;; Two tests fail if LANG is not set.
6184 (add-before 'check 'pre-check
6185 (lambda _
6186 (setenv "LANG" "en_US.UTF-8")
6187 ;; For the missing /etc/machine-id.
6188 (setenv "DBUS_FATAL_WARNINGS" "0")
6189 #t)))))
6190 (native-inputs
6191 `(("gnome-common" ,gnome-common)
6192 ("gobject-introspection" ,gobject-introspection)
6193 ("intltool" ,intltool)
6194 ("pkg-config" ,pkg-config)
6195 ("vala" ,vala)))
6196 (inputs
6197 `(("gtk+" ,gtk+)
6198 ("dbus" ,dbus)
6199 ("gstreamer" ,gstreamer)
6200 ("gst-plugins-base" ,gst-plugins-base)
6201 ("sqlite" ,sqlite)
6202 ("nettle" ,nettle) ; XXX why is this needed?
6203 ("python" ,python)
6204 ("poppler" ,poppler)
6205 ("libgsf" ,libgsf)
6206 ("libexif" ,libexif)
6207 ("libpng" ,libpng)
6208 ("libtiff" ,libtiff)
6209 ("libvorbis" ,libvorbis)
6210 ("flac" ,flac)
6211 ("totem-pl-parser" ,totem-pl-parser)
6212 ("zlib" ,zlib)
6213 ("exempi" ,exempi)
6214 ("libxml2" ,libxml2)
6215 ("upower" ,upower)
6216 ("libunistring" ,libunistring)
6217 ("giflib" ,giflib)
6218 ("json-glib" ,json-glib)
6219 ("openjpeg" ,openjpeg-1)
6220 ("libosinfo" ,libosinfo)
6221 ("libcue" ,libcue)
6222 ("libseccomp" ,libseccomp)
6223 ("libsoup" ,libsoup)
6224 ("libuuid" ,util-linux)))
6225 (synopsis "Metadata database, indexer and search tool")
6226 (home-page "https://wiki.gnome.org/Projects/Tracker")
6227 (description
6228 "Tracker is an advanced framework for first class objects with associated
6229 metadata and tags. It provides a one stop solution for all metadata, tags,
6230 shared object databases, search tools and indexing.")
6231 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
6232 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
6233 (license (list license:gpl2+
6234 license:lgpl2.1+
6235 license:lgpl2.0+))))
6236
6237 (define-public nautilus
6238 (package
6239 (name "nautilus")
6240 (version "3.30.4")
6241 (source (origin
6242 (method url-fetch)
6243 (uri (string-append "mirror://gnome/sources/" name "/"
6244 (version-major+minor version) "/"
6245 name "-" version ".tar.xz"))
6246 (sha256
6247 (base32
6248 "1fcavvv85mpaz53k5kx5mls7npx7b95s8isnhrgq2iglz4kpr7s1"))))
6249 (build-system meson-build-system)
6250 (arguments
6251 '(#:glib-or-gtk? #t
6252 ;; XXX: FAIL: check-nautilus
6253 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
6254 #:tests? #f))
6255 (native-inputs
6256 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6257 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6258 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
6259 ("gobject-introspection" ,gobject-introspection)
6260 ("intltool" ,intltool)
6261 ("pkg-config" ,pkg-config)))
6262 (inputs
6263 `(("dconf" ,dconf)
6264 ("gexiv2" ,gexiv2)
6265 ("gvfs" ,gvfs)
6266 ("exempi" ,exempi)
6267 ("gnome-desktop" ,gnome-desktop)
6268 ("gnome-autoar" ,gnome-autoar)
6269 ("libseccomp" ,libseccomp)
6270 ("libselinux" ,libselinux)
6271 ("nettle" ,nettle) ; XXX required by libarchive.pc via gnome-autoar
6272 ("tracker" ,tracker)
6273 ;; XXX: gtk+ is required by libnautilus-extension.pc
6274 ;;
6275 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
6276 ;; package. See:
6277 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
6278 ("gtk+" ,gtk+)
6279 ("libexif" ,libexif)
6280 ("libxml2" ,libxml2)))
6281 (synopsis "File manager for GNOME")
6282 (home-page "https://wiki.gnome.org/Apps/Nautilus")
6283 (description
6284 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
6285 design and behaviour, giving the user a simple way to navigate and manage its
6286 files.")
6287 (license license:gpl2+)))
6288
6289 (define-public baobab
6290 (package
6291 (name "baobab")
6292 (version "3.28.0")
6293 (source (origin
6294 (method url-fetch)
6295 (uri (string-append
6296 "mirror://gnome/sources/" name "/"
6297 (version-major+minor version) "/"
6298 name "-" version ".tar.xz"))
6299 (sha256
6300 (base32
6301 "0qsx7vx5c3n4yxlxbr11sppw7qwcv9z3g45b5xb9y7wxw5lv42sk"))))
6302 (build-system meson-build-system)
6303 (arguments
6304 '(#:glib-or-gtk? #t))
6305 (native-inputs
6306 `(("intltool" ,intltool)
6307 ("pkg-config" ,pkg-config)
6308 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6309 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
6310 ("itstool" ,itstool)
6311 ("xmllint" ,libxml2)
6312 ("glib" ,glib "bin")
6313 ("vala" ,vala)))
6314 (inputs
6315 `(("gtk+" ,gtk+)))
6316 (synopsis "Disk usage analyzer for GNOME")
6317 (description
6318 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
6319 usage in the GNOME desktop environment. It can easily scan device volumes or
6320 a specific user-requested directory branch (local or remote). Once the scan
6321 is complete it provides a graphical representation of each selected folder.")
6322 (home-page "https://wiki.gnome.org/Apps/Baobab")
6323 (license license:gpl2+)))
6324
6325 (define-public gnome-backgrounds
6326 (package
6327 (name "gnome-backgrounds")
6328 (version "3.28.0")
6329 (source
6330 (origin
6331 (method url-fetch)
6332 (uri (string-append "mirror://gnome/sources/" name "/"
6333 (version-major+minor version) "/"
6334 name "-" version ".tar.xz"))
6335 (sha256
6336 (base32
6337 "1qgim0yhzjgcq172y4vp5hqz4rh1ak38a7pgi6s7dq0wklyrcnxj"))))
6338 (build-system meson-build-system)
6339 (native-inputs
6340 `(("intltool" ,intltool)))
6341 (home-page "https://git.gnome.org/browse/gnome-backgrounds")
6342 (synopsis "Background images for the GNOME desktop")
6343 (description
6344 "GNOME backgrounds package contains a collection of graphics files which
6345 can be used as backgrounds in the GNOME Desktop environment. Additionally,
6346 the package creates the proper framework and directory structure so that you
6347 can add your own files to the collection.")
6348 (license (list license:gpl2+
6349 license:cc-by2.0
6350 license:cc-by-sa2.0
6351 license:cc-by-sa3.0))))
6352
6353 (define-public gnome-screenshot
6354 (package
6355 (name "gnome-screenshot")
6356 (version "3.26.0")
6357 (source
6358 (origin
6359 (method url-fetch)
6360 (uri (string-append "mirror://gnome/sources/" name "/"
6361 (version-major+minor version) "/"
6362 name "-" version ".tar.xz"))
6363 (sha256
6364 (base32
6365 "1fy8fjl29i3xhj8caik03d3za06x96xgkk8r4fwz88iqbmci3g0v"))))
6366 (build-system meson-build-system)
6367 (native-inputs
6368 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6369 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
6370 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6371 ("intltool" ,intltool)
6372 ("appstream-glib" ,appstream-glib)
6373 ("pkg-config" ,pkg-config)))
6374 (inputs
6375 `(("gtk+" ,gtk+)
6376 ("libcanberra" ,libcanberra)
6377 ("libx11" ,libx11)
6378 ("libxext" ,libxext)))
6379 (home-page "https://git.gnome.org/browse/gnome-screenshot")
6380 (synopsis "Take pictures of your screen")
6381 (description
6382 "GNOME Screenshot is a utility used for taking screenshots of the entire
6383 screen, a window or a user defined area of the screen, with optional
6384 beautifying border effects.")
6385 (license license:gpl2+)))
6386
6387 (define-public dconf-editor
6388 (package
6389 (name "dconf-editor")
6390 (version "3.28.0")
6391 (source
6392 (origin
6393 (method url-fetch)
6394 (uri (string-append "mirror://gnome/sources/" name "/"
6395 (version-major+minor version) "/"
6396 name "-" version ".tar.xz"))
6397 (sha256
6398 (base32
6399 "0nhcpwqrkmpxbhaf0cafvy6dlp6s7vhm5vknl4lgs3l24zc56ns5"))))
6400 (build-system meson-build-system)
6401 (native-inputs
6402 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
6403 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
6404 ("intltool" ,intltool)
6405 ("pkg-config" ,pkg-config)
6406 ("vala" ,vala)))
6407 (inputs
6408 `(("dconf" ,dconf)
6409 ("gtk+" ,gtk+)
6410 ("libxml2" ,libxml2)))
6411 (home-page "https://git.gnome.org/browse/dconf-editor")
6412 (synopsis "Graphical editor for GNOME's dconf configuration system")
6413 (description
6414 "Dconf-editor is a graphical tool for browsing and editing the dconf
6415 configuration system for GNOME. It allows users to configure desktop
6416 software that do not provide their own configuration interface.")
6417 (license license:lgpl2.1+)))
6418
6419 (define-public gnome-default-applications
6420 (package
6421 (name "gnome-default-applications")
6422 (version "0")
6423 (build-system trivial-build-system)
6424 (source #f)
6425 (propagated-inputs
6426 `(("nautilus" ,nautilus)
6427 ("evince" ,evince)))
6428 (arguments
6429 `(#:modules ((guix build utils))
6430 #:builder
6431 (begin
6432 (use-modules (guix build utils))
6433 (let* ((out (assoc-ref %outputs "out"))
6434 (apps (string-append out "/share/applications")))
6435 (mkdir-p apps)
6436 (call-with-output-file (string-append apps "/defaults.list")
6437 (lambda (port)
6438 (format port "[Default Applications]\n")
6439 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
6440 (format port "application/pdf=evince.desktop\n")
6441 (format port "application/postscript=evince.desktop\n")))
6442 #t))))
6443 (synopsis "Default MIME type associations for the GNOME desktop")
6444 (description
6445 "Given many installed packages which might handle a given MIME type, a
6446 user running the GNOME desktop probably has some preferences: for example,
6447 that folders be opened by default by the Nautilus file manager, not the Baobab
6448 disk usage analyzer. This package establishes that set of default MIME type
6449 associations for GNOME.")
6450 (license license:gpl3+)
6451 (home-page #f)))
6452
6453 (define-public gnome
6454 (package
6455 (name "gnome")
6456 (version (package-version gnome-shell))
6457 (source #f)
6458 (build-system trivial-build-system)
6459 (arguments '(#:builder (begin (mkdir %output) #t)))
6460 (propagated-inputs
6461 ;; TODO: Add more packages according to:
6462 ;; <https://packages.debian.org/jessie/gnome-core>.
6463 `(("adwaita-icon-theme" ,adwaita-icon-theme)
6464 ("baobab" ,baobab)
6465 ("font-cantarell" ,font-cantarell)
6466 ("font-dejavu" ,font-dejavu)
6467 ("at-spi2-core" ,at-spi2-core)
6468 ("dbus" ,dbus)
6469 ("dconf" ,dconf)
6470 ("desktop-file-utils" ,desktop-file-utils)
6471 ("eog" ,eog)
6472 ("epiphany" ,epiphany)
6473 ("evince" ,evince)
6474 ("file-roller" ,file-roller)
6475 ("gedit" ,gedit)
6476 ("glib-networking" ,glib-networking)
6477 ("gnome-backgrounds" ,gnome-backgrounds)
6478 ("gnome-bluetooth" ,gnome-bluetooth)
6479 ("gnome-calculator" ,gnome-calculator)
6480 ("gnome-control-center" ,gnome-control-center)
6481 ("gnome-disk-utility" ,gnome-disk-utility)
6482 ("gnome-default-applications" ,gnome-default-applications)
6483 ("gnome-keyring" ,gnome-keyring)
6484 ("gnome-online-accounts" ,gnome-online-accounts)
6485 ("gnome-session" ,gnome-session)
6486 ("gnome-settings-daemon" ,gnome-settings-daemon)
6487 ("gnome-shell" ,gnome-shell)
6488 ("gnome-system-monitor" ,gnome-system-monitor)
6489 ("gnome-terminal" ,gnome-terminal)
6490 ("gnome-themes-standard" ,gnome-themes-standard)
6491 ("gst-plugins-base" ,gst-plugins-base)
6492 ("gst-plugins-good" ,gst-plugins-good)
6493 ("gucharmap" ,gucharmap)
6494 ("gvfs" ,gvfs)
6495 ("hicolor-icon-theme" ,hicolor-icon-theme)
6496 ("nautilus" ,nautilus)
6497 ("pinentry-gnome3" ,pinentry-gnome3)
6498 ("pulseaudio" ,pulseaudio)
6499 ("shared-mime-info" ,shared-mime-info)
6500 ("system-config-printer" ,system-config-printer)
6501 ("totem" ,totem)
6502 ("xdg-user-dirs" ,xdg-user-dirs)
6503 ("yelp" ,yelp)
6504 ("zenity" ,zenity)))
6505 (synopsis "The GNU desktop environment")
6506 (home-page "https://www.gnome.org/")
6507 (description
6508 "GNOME is the graphical desktop for GNU. It includes a wide variety of
6509 applications for browsing the web, editing text and images, creating
6510 documents and diagrams, playing media, scanning, and much more.")
6511 (license license:gpl2+)))
6512
6513 (define-public byzanz
6514 ;; The last stable release of Byzanz was in 2011, but there have been many
6515 ;; useful commits made to the Byzanz repository since then that it would be
6516 ;; silly to use such an old release.
6517 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
6518 (package
6519 (name "byzanz")
6520 (version (string-append "0.2-1." (string-take commit 7)))
6521 (source (origin
6522 (method git-fetch)
6523 (uri (git-reference
6524 (url "https://git.gnome.org/browse/byzanz")
6525 (commit commit)))
6526 (file-name (string-append name "-" version "-checkout"))
6527 (sha256
6528 (base32
6529 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
6530 (build-system glib-or-gtk-build-system)
6531 (arguments
6532 '(#:phases
6533 (modify-phases %standard-phases
6534 (replace 'bootstrap
6535 (lambda _
6536 ;; The build system cleverly detects that we're not building from
6537 ;; a release tarball and turns on -Werror for GCC.
6538 ;; Unsurprisingly, there is a warning during compilation that
6539 ;; causes the build to fail unnecessarily, so we remove the flag.
6540 (substitute* '("configure.ac")
6541 (("-Werror") ""))
6542 ;; The autogen.sh script in gnome-common will run ./configure
6543 ;; by default, which is problematic because source shebangs
6544 ;; have not yet been patched.
6545 (setenv "NOCONFIGURE" "t")
6546 (zero? (system* "sh" "autogen.sh")))))))
6547 (native-inputs
6548 `(("autoconf" ,autoconf)
6549 ("automake" ,automake)
6550 ("gnome-common" ,gnome-common)
6551 ("intltool" ,intltool)
6552 ("libtool" ,libtool)
6553 ("pkg-config" ,pkg-config)
6554 ("which" ,which)))
6555 (inputs
6556 `(("glib" ,glib)
6557 ("gstreamer" ,gstreamer)
6558 ("gst-plugins-base" ,gst-plugins-base)
6559 ("gtk+" ,gtk+)))
6560 (synopsis "Desktop recording program")
6561 (description "Byzanz is a simple desktop recording program with a
6562 command-line interface. It can record part or all of an X display for a
6563 specified duration and save it as a GIF encoded animated image file.")
6564 (home-page "https://git.gnome.org/browse/byzanz")
6565 (license license:gpl2+))))
6566
6567 (define-public gsound
6568 (package
6569 (name "gsound")
6570 (version "1.0.2")
6571 (source (origin
6572 (method url-fetch)
6573 (uri (string-append "mirror://gnome/sources/" name "/"
6574 (version-major+minor version) "/"
6575 name "-" version ".tar.xz"))
6576 (sha256
6577 (base32
6578 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
6579 (build-system glib-or-gtk-build-system)
6580 (native-inputs
6581 `(("pkg-config" ,pkg-config)
6582 ("gobject-introspection" ,gobject-introspection)
6583 ("vala" ,vala)))
6584 (inputs
6585 `(("glib" ,glib)
6586 ("libcanberra" ,libcanberra)))
6587 (home-page "https://wiki.gnome.org/Projects/GSound")
6588 (synopsis "GObject wrapper for libcanberra")
6589 (description
6590 "GSound is a small library for playing system sounds. It's designed to be
6591 used via GObject Introspection, and is a thin wrapper around the libcanberra C
6592 library.")
6593 (license license:lgpl2.1+)))
6594
6595 (define-public libzapojit
6596 (package
6597 (name "libzapojit")
6598 (version "0.0.3")
6599 (source (origin
6600 (method url-fetch)
6601 (uri (string-append "mirror://gnome/sources/" name "/"
6602 (version-major+minor version) "/"
6603 name "-" version ".tar.xz"))
6604 (sha256
6605 (base32
6606 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
6607 (build-system gnu-build-system)
6608 (native-inputs
6609 `(("gobject-introspection" ,gobject-introspection)
6610 ("intltool" ,intltool)
6611 ("pkg-config" ,pkg-config)))
6612 (inputs
6613 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6614 ("json-glib" ,json-glib)
6615 ("rest" ,rest)))
6616 (home-page "https://wiki.gnome.org/Projects/Zapojit")
6617 (synopsis "Library for accessing SkyDrive and Hotmail")
6618 (description
6619 "Libzapojit is a GLib-based library for accessing online service APIs of
6620 Microsoft SkyDrive and Hotmail, using their REST protocols.")
6621 (license license:lgpl2.1+)))
6622
6623 (define-public gnome-clocks
6624 (package
6625 (name "gnome-clocks")
6626 (version "3.28.0")
6627 (source (origin
6628 (method url-fetch)
6629 (uri (string-append "mirror://gnome/sources/" name "/"
6630 (version-major+minor version) "/"
6631 name "-" version ".tar.xz"))
6632 (sha256
6633 (base32
6634 "1dd739vchb592mck1dia2hkywn4213cpramyqzgmlmwv8z80p3nl"))))
6635 (build-system meson-build-system)
6636 (arguments
6637 '(#:glib-or-gtk? #t))
6638 (native-inputs
6639 `(("vala" ,vala)
6640 ("pkg-config" ,pkg-config)
6641 ("glib" ,glib "bin") ; for glib-compile-resources
6642 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
6643 ("desktop-file-utils" ,desktop-file-utils)
6644 ("gettext" ,gettext-minimal)
6645 ("itstool" ,itstool)))
6646 (inputs
6647 `(("glib" ,glib)
6648 ("gtk+" ,gtk+)
6649 ("gsound" ,gsound)
6650 ("geoclue" ,geoclue)
6651 ("geocode-glib" ,geocode-glib)
6652 ("libgweather" ,libgweather)
6653 ("gnome-desktop" ,gnome-desktop)))
6654 (home-page "https://wiki.gnome.org/Apps/Clocks")
6655 (synopsis "GNOME's clock application")
6656 (description
6657 "GNOME Clocks is a simple clocks application designed to fit the GNOME
6658 desktop. It supports world clock, stop watch, alarms, and count down timer.")
6659 (license license:gpl3+)))
6660
6661 (define-public gnome-calendar
6662 (package
6663 (name "gnome-calendar")
6664 (version "3.28.2")
6665 (source (origin
6666 (method url-fetch)
6667 (uri (string-append "mirror://gnome/sources/" name "/"
6668 (version-major+minor version) "/"
6669 name "-" version ".tar.xz"))
6670 (sha256
6671 (base32
6672 "0x6wxngf8fkwgbl6x7rzp0srrb43rm55klpb2vfjk2hahpbjvxyw"))))
6673 (build-system meson-build-system)
6674 (arguments
6675 '(#:glib-or-gtk? #t
6676 ;; gnome-calendar has to be installed before the tests can be run
6677 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
6678 #:tests? #f))
6679 (native-inputs
6680 `(("gettext" ,gettext-minimal)
6681 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
6682 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
6683 ("pkg-config" ,pkg-config)))
6684 (inputs
6685 `(("evolution-data-server" ,evolution-data-server)
6686 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6687 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6688 ("libdazzle" ,libdazzle)
6689 ("libedataserverui" ,evolution-data-server)
6690 ("libgweather" ,libgweather)
6691 ("geoclue" ,geoclue)))
6692 (home-page "https://wiki.gnome.org/Apps/Calendar")
6693 (synopsis "GNOME's calendar application")
6694 (description
6695 "GNOME Calendar is a simple calendar application designed to fit the GNOME
6696 desktop. It supports multiple calendars, month, week and year view.")
6697 (license license:gpl3+)))
6698
6699 (define-public gnome-todo
6700 (package
6701 (name "gnome-todo")
6702 (version "3.28.1")
6703 (source (origin
6704 (method url-fetch)
6705 (uri (string-append "mirror://gnome/sources/" name "/"
6706 (version-major+minor version) "/"
6707 name "-" version ".tar.xz"))
6708 (sha256
6709 (base32
6710 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
6711 (build-system meson-build-system)
6712 (arguments
6713 '(#:glib-or-gtk? #t
6714 #:phases (modify-phases %standard-phases
6715 (add-after
6716 'install 'wrap-gnome-todo
6717 (lambda* (#:key inputs outputs #:allow-other-keys)
6718 (let ((out (assoc-ref outputs "out"))
6719 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6720 (python-path (getenv "PYTHONPATH")))
6721 (wrap-program (string-append out "/bin/gnome-todo")
6722 ;; XXX: gi plugins are broken.
6723 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
6724 ;; For plugins.
6725 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6726 `("PYTHONPATH" ":" prefix (,python-path))))
6727 #t)))))
6728 (native-inputs
6729 `(("gettext" ,gettext-minimal)
6730 ("gobject-introspection" ,gobject-introspection)
6731 ("glib:bin" ,glib "bin") ; For glib-compile-resources
6732 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
6733 ("pkg-config" ,pkg-config)))
6734 (inputs
6735 `(("rest" ,rest) ; For Todoist plugin
6736 ("json-glib" ,json-glib) ; For Todoist plugin
6737 ("libedataserverui" ,evolution-data-server)
6738 ("libical" ,libical)
6739 ("libpeas" ,libpeas)
6740 ("python-pygobject" ,python-pygobject)
6741 ("evolution-data-server" ,evolution-data-server)
6742 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6743 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
6744 (home-page "https://wiki.gnome.org/Apps/Todo")
6745 (synopsis "GNOME's ToDo Application")
6746 (description
6747 "GNOME To Do is a simplistic personal task manager designed to perfectly
6748 fit the GNOME desktop.")
6749 (license license:gpl3+)))
6750
6751 (define-public gnome-dictionary
6752 (package
6753 (name "gnome-dictionary")
6754 (version "3.26.1")
6755 (source (origin
6756 (method url-fetch)
6757 (uri (string-append "mirror://gnome/sources/" name "/"
6758 (version-major+minor version) "/"
6759 name "-" version ".tar.xz"))
6760 (sha256
6761 (base32
6762 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
6763 (build-system meson-build-system)
6764 (arguments '(#:glib-or-gtk? #t
6765 #:phases (modify-phases %standard-phases
6766 (add-after 'unpack 'patch-install-script
6767 (lambda _
6768 ;; This script attempts to compile glib schemas
6769 ;; and create an empty MIME database. We do
6770 ;; that elsewhere, so prevent it from running.
6771 (substitute* "build-aux/post-install.sh"
6772 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
6773 #t)))))
6774 (native-inputs
6775 `(("glib:bin" ,glib "bin")
6776 ("gobject-introspection" ,gobject-introspection)
6777 ("intltool" ,intltool)
6778 ("itstool" ,itstool)
6779 ("pkg-config" ,pkg-config)
6780 ("xmllint" ,libxml2)))
6781 (inputs
6782 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6783 ("gtk+" ,gtk+)))
6784 (home-page "https://wiki.gnome.org/Apps/Dictionary")
6785 (synopsis "Look up words in dictionary sources")
6786 (description
6787 "GNOME Dictionary can look for the definition or translation of a word in
6788 existing databases over the internet.")
6789 (license license:gpl3+)))
6790
6791 (define-public gnome-tweaks
6792 (package
6793 (name "gnome-tweaks")
6794 (version "3.30.1")
6795 (source (origin
6796 (method url-fetch)
6797 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
6798 (version-major+minor version) "/"
6799 "gnome-tweaks-" version ".tar.xz"))
6800 (patches
6801 (list (search-patch "gnome-tweaks-search-paths.patch")))
6802 (sha256
6803 (base32
6804 "0pj6k0106dy92lnb646dd656qdvljqwbaya95xp369a016pzngpa"))))
6805 (build-system meson-build-system)
6806 (arguments
6807 `(#:glib-or-gtk? #t
6808 #:configure-flags '("-Dlocalstatedir=/tmp"
6809 "-Dsysconfdir=/tmp")
6810 #:imported-modules ((guix build python-build-system)
6811 ,@%meson-build-system-modules)
6812 #:phases
6813 (modify-phases %standard-phases
6814 (add-after 'install 'wrap
6815 (@@ (guix build python-build-system) wrap))
6816 (add-after 'wrap 'wrap-gi-typelib
6817 (lambda* (#:key inputs outputs #:allow-other-keys)
6818 (let ((out (assoc-ref outputs "out"))
6819 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6820 (wrap-program (string-append out "/bin/gnome-tweaks")
6821 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6822 #t)))))
6823 (native-inputs
6824 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
6825 ("intltool" ,intltool)
6826 ("pkg-config" ,pkg-config)))
6827 (inputs
6828 `(("gnome-desktop" ,gnome-desktop)
6829 ("gtk+" ,gtk+)
6830 ("gobject-introspection" ,gobject-introspection)
6831 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6832 ("libnotify" ,libnotify)
6833 ("libsoup" ,libsoup)
6834 ("nautilus" ,nautilus)
6835 ("python" ,python)
6836 ("python-pygobject" ,python-pygobject)))
6837 (synopsis "Customize advanced GNOME 3 options")
6838 (home-page "https://wiki.gnome.org/Apps/Tweaks")
6839 (description
6840 "GNOME Tweaks allows adjusting advanced configuration settings in
6841 GNOME 3. This includes things like the fonts used in user interface elements,
6842 alternative user interface themes, changes in window management behavior,
6843 GNOME Shell appearance and extension, etc.")
6844 (license license:gpl3+)))
6845
6846 ;; This package has been renamed by upstream.
6847 (define-public gnome-tweak-tool
6848 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
6849
6850 (define-public gnome-shell-extensions
6851 (package
6852 (name "gnome-shell-extensions")
6853 (version "3.28.1")
6854 (source (origin
6855 (method url-fetch)
6856 (uri (string-append "mirror://gnome/sources/" name "/"
6857 (version-major+minor version) "/"
6858 name "-" version ".tar.xz"))
6859 (sha256
6860 (base32
6861 "0n4h8rdnq3knrvlg6inrl62a73h20dbhfgniwy18572jicrh5ip9"))))
6862 (build-system meson-build-system)
6863 (arguments
6864 '(#:configure-flags '("-Dextension_set=all")))
6865 (native-inputs
6866 `(("intltool" ,intltool)
6867 ("pkg-config" ,pkg-config)))
6868 (propagated-inputs
6869 `(("glib" ,glib)
6870 ("glib" ,glib "bin")))
6871 (synopsis "Extensions for GNOME Shell")
6872 (description "GNOME Shell extensions modify and extend GNOME Shell
6873 functionality and behavior.")
6874 (home-page "https://extensions.gnome.org/")
6875 (license license:gpl3+)))
6876
6877 (define-public numix-theme
6878 (package
6879 (name "numix-theme")
6880 (version "2.6.7")
6881 (source (origin
6882 (method git-fetch)
6883 (uri (git-reference
6884 (url "https://github.com/numixproject/numix-gtk-theme.git")
6885 (commit version)))
6886 (file-name (git-file-name name version))
6887 (sha256
6888 (base32
6889 "12mw0kr0kkvg395qlbsvkvaqccr90cmxw5rrsl236zh43kj8grb7"))))
6890 (build-system gnu-build-system)
6891 (arguments
6892 '(#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
6893 #:phases
6894 (modify-phases %standard-phases
6895 (delete 'configure)
6896 (delete 'check))))
6897 (native-inputs
6898 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas
6899 ("gnome-shell" ,gnome-shell)
6900 ("gtk+" ,gtk+)
6901 ("xmllint" ,libxml2)
6902 ("ruby-sass" ,ruby-sass)))
6903 (synopsis "Flat theme with light and dark elements")
6904 (description "Numix is a modern flat theme with a combination of light and
6905 dark elements. It supports GNOME, Unity, Xfce, and Openbox.")
6906 (home-page "https://numixproject.github.io")
6907 (license license:gpl3+)))
6908
6909 (define-public arc-theme
6910 (package
6911 (name "arc-theme")
6912 (version "20181022")
6913 (source (origin
6914 (method git-fetch)
6915 (uri (git-reference
6916 (url "https://github.com/NicoHood/arc-theme.git")
6917 (commit version)))
6918 (file-name (git-file-name name version))
6919 (sha256
6920 (base32
6921 "08951dk1irfadwpr3p323a4fprmxg53rk2r2niwq3v62ryhi3663"))))
6922 (build-system gnu-build-system)
6923 (arguments
6924 '(#:phases
6925 (modify-phases %standard-phases
6926 ;; autogen.sh calls configure at the end of the script.
6927 (replace 'bootstrap
6928 (lambda _ (invoke "autoreconf" "-vfi"))))))
6929 (native-inputs
6930 `(("autoconf" ,autoconf)
6931 ("automake" ,automake)
6932 ("glib" ,glib "bin") ; for glib-compile-resources
6933 ("gnome-shell" ,gnome-shell)
6934 ("gtk+" ,gtk+)
6935 ("inkscape" ,inkscape)
6936 ("optipng" ,optipng)
6937 ("pkg-config" ,pkg-config)
6938 ("sassc" ,sassc)))
6939 (synopsis "A flat GTK+ theme with transparent elements")
6940 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
6941 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
6942 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
6943 (home-page "https://github.com/horst3180/arc-theme")
6944 ;; No "or later" language found.
6945 (license license:gpl3+)))
6946
6947 (define-public faba-icon-theme
6948 (package
6949 (name "faba-icon-theme")
6950 (version "4.3")
6951 (source
6952 (origin
6953 (method url-fetch)
6954 (uri (string-append "https://github.com/moka-project/"
6955 name "/archive/v" version ".tar.gz"))
6956 (file-name (string-append name "-" version ".tar.gz"))
6957 (sha256
6958 (base32
6959 "18ln06xl60qzvzz61zq9q72hdbfgjsza3flph8i2asyzx3dffz68"))))
6960 (build-system meson-build-system)
6961 (arguments
6962 `(#:phases
6963 (modify-phases %standard-phases
6964 (add-before 'configure 'disable-post-install
6965 (lambda _
6966 (substitute* "meson.build"
6967 (("meson.add_install_script.*") "")))))))
6968 (native-inputs
6969 `(("autoconf" ,autoconf)
6970 ("automake" ,automake)))
6971 (synopsis "Faba icon theme")
6972 (description
6973 "Faba is a minimal icon set used as a basis for other themes such as
6974 Moka")
6975 (home-page "https://snwh.org/moka")
6976 (license (list license:lgpl3+
6977 license:cc-by-sa4.0))))
6978
6979 (define-public moka-icon-theme
6980 (package
6981 (inherit faba-icon-theme)
6982 (name "moka-icon-theme")
6983 (version "5.4.0")
6984 (source (origin
6985 (method url-fetch)
6986 (uri (string-append "https://github.com/moka-project"
6987 "/moka-icon-theme/archive/v"
6988 version ".tar.gz"))
6989 (file-name (string-append name "-" version ".tar.gz"))
6990 (sha256
6991 (base32
6992 "1nbwdjj268hxv9lfagd9aylily9f0hhallp841v0i3imljp84bmk"))))
6993 (propagated-inputs
6994 ;; Moka is based on Faba by using it as a fallback icon set instead of
6995 ;; bundling it, so we need to add it as a propagated input.
6996 `(("faba-icon-theme" ,faba-icon-theme)))
6997 (synopsis "Moka icon theme")
6998 (description "Moka is a stylized desktop icon set, designed to be clear,
6999 simple and consistent.")
7000 (license (list license:gpl3+
7001 license:cc-by-sa4.0))))
7002
7003 (define-public arc-icon-theme
7004 (package
7005 (name "arc-icon-theme")
7006 (version "20161122")
7007 (source (origin
7008 (method url-fetch)
7009 (uri (string-append "https://github.com/horst3180/arc-icon-theme"
7010 "/archive/" version ".tar.gz"))
7011 (file-name (string-append name "-" version ".tar.gz"))
7012 (sha256
7013 (base32
7014 "1ya1cqvv8q847c0rpcg6apzky87q3h04y8jz5nmi52qk6kg8si0b"))))
7015 (build-system gnu-build-system)
7016 (arguments
7017 `(#:phases
7018 (modify-phases %standard-phases
7019 (add-after 'unpack 'disable-configure-during-bootstrap
7020 (lambda _
7021 (substitute* "autogen.sh"
7022 (("^\"\\$srcdir/configure\".*") ""))
7023 #t)))))
7024 (native-inputs
7025 `(("autoconf" ,autoconf)
7026 ("automake" ,automake)))
7027 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
7028 (propagated-inputs
7029 `(("moka-icon-theme" ,moka-icon-theme)))
7030 (synopsis "Arc icon theme")
7031 (description "The Arc icon theme provides a set of icons matching the
7032 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
7033 the Moka icon theme.")
7034 (home-page "https://github.com/horst3180/arc-icon-theme")
7035 (license license:gpl3+)))
7036
7037 (define-public folks
7038 (package
7039 (name "folks")
7040 (version "0.11.4")
7041 (source (origin
7042 (method url-fetch)
7043 (uri (string-append
7044 "mirror://gnome/sources/folks/"
7045 (version-major+minor version) "/"
7046 "folks-" version ".tar.xz"))
7047 (sha256
7048 (base32
7049 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
7050 (build-system glib-or-gtk-build-system)
7051 (inputs
7052 `(("bdb" ,bdb)
7053 ("dbus-glib" ,dbus-glib)
7054 ("evolution-data-server" ,evolution-data-server)
7055 ("glib" ,glib)
7056 ("libgee" ,libgee)
7057 ("telepathy-glib" ,telepathy-glib)))
7058 (native-inputs
7059 `(("gobject-introspection" ,gobject-introspection)
7060 ("intltool" ,intltool)
7061 ("pkg-config" ,pkg-config)
7062 ("vala" ,vala)))
7063 (synopsis "Library to aggregate data about people")
7064 (description "Libfolks is a library that aggregates information about people
7065 from multiple sources (e.g., Telepathy connection managers for IM contacts,
7066 Evolution Data Server for local contacts, libsocialweb for web service contacts,
7067 etc.) to create metacontacts. It's written in Vala, which generates C code when
7068 compiled.")
7069 (home-page "https://wiki.gnome.org/Projects/Folks")
7070 (license license:lgpl2.1+)))
7071
7072 (define-public gfbgraph
7073 (package
7074 (name "gfbgraph")
7075 (version "0.2.3")
7076 (source (origin
7077 (method url-fetch)
7078 (uri (string-append
7079 "mirror://gnome/sources/" name "/"
7080 (version-major+minor version) "/"
7081 name "-" version ".tar.xz"))
7082 (sha256
7083 (base32
7084 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
7085 (build-system glib-or-gtk-build-system)
7086 (arguments
7087 `(#:tests? #f ; Tests appear to require the network.
7088 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
7089 #:configure-flags '("--disable-gtk-doc"
7090 "--disable-static"
7091 "--enable-introspection")))
7092 (native-inputs
7093 `(("pkg-config" ,pkg-config)
7094 ("gobject-introspection" ,gobject-introspection)))
7095 (inputs
7096 `(("json-glib" ,json-glib)
7097 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7098 ("rest" ,rest)))
7099 (synopsis "GLib/GObject wrapper for the Facebook API")
7100 (description "This library allows you to use the Facebook API from
7101 GLib/GObject code.")
7102 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
7103 (license license:lgpl2.1+)))
7104
7105 (define-public libgnomekbd
7106 (package
7107 (name "libgnomekbd")
7108 (version "3.26.0")
7109 (source (origin
7110 (method url-fetch)
7111 (uri (string-append "mirror://gnome/sources/" name "/"
7112 (version-major+minor version) "/"
7113 name "-" version ".tar.xz"))
7114 (sha256
7115 (base32
7116 "0xc8jrc44x2h24v28wv36k70k7bwxy6p2vsvxvvia1n3ay642fza"))))
7117 (build-system gnu-build-system)
7118 (native-inputs
7119 `(("pkg-config" ,pkg-config)
7120 ("glib" ,glib "bin")
7121 ("intltool" ,intltool)))
7122 (propagated-inputs
7123 ;; Referred to in .h files and .pc.
7124 `(("glib" ,glib)
7125 ("gtk+" ,gtk+)
7126 ("libxklavier" ,libxklavier)))
7127 (home-page "https://www.gnome.org")
7128 (synopsis "GNOME keyboard configuration library")
7129 (description
7130 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
7131 environment, which can notably display keyboard layouts.")
7132 (license license:lgpl2.0+)))
7133
7134 ;;; This package is no longer maintained:
7135 ;;; https://wiki.gnome.org/Attic/LibUnique
7136 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
7137 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
7138 (define-public libunique
7139 (package
7140 (name "libunique")
7141 (version "3.0.2")
7142 (source (origin
7143 (method url-fetch)
7144 (uri (string-append "mirror://gnome/sources/" name "/"
7145 (version-major+minor version) "/"
7146 name "-" version ".tar.xz"))
7147 (sha256
7148 (base32
7149 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
7150 (build-system glib-or-gtk-build-system)
7151 (arguments
7152 `(#:configure-flags '("--disable-static"
7153 "--disable-dbus" ; use gdbus
7154 "--enable-introspection")))
7155 (native-inputs
7156 `(("pkg-config" ,pkg-config)
7157 ("gobject-introspection" ,gobject-introspection)
7158 ("glib:bin" ,glib "bin")
7159 ("gtk-doc" ,gtk-doc)))
7160 (propagated-inputs
7161 ;; Referred to in .h files and .pc.
7162 `(("gtk+" ,gtk+)))
7163 (home-page "https://wiki.gnome.org/Attic/LibUnique")
7164 (synopsis "Library for writing single instance applications")
7165 (description
7166 "Libunique is a library for writing single instance applications. If you
7167 launch a single instance application twice, the second instance will either just
7168 quit or will send a message to the running instance. Libunique makes it easy to
7169 write this kind of application, by providing a base class, taking care of all
7170 the IPC machinery needed to send messages to a running instance, and also
7171 handling the startup notification side.")
7172 (license license:lgpl2.1+)))
7173
7174 (define-public gnome-calculator
7175 (package
7176 (name "gnome-calculator")
7177 (version "3.30.1")
7178 (source
7179 (origin
7180 (method url-fetch)
7181 (uri (string-append "mirror://gnome/sources/" name "/"
7182 (version-major+minor version) "/"
7183 name "-" version ".tar.xz"))
7184 (sha256
7185 (base32
7186 "0qkzcmj51cjmljxl1nc84h6jgq1a51xj4g6jwh3ymgm19m3sqypc"))))
7187 (build-system meson-build-system)
7188 (arguments '(#:glib-or-gtk? #t))
7189 (native-inputs
7190 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7191 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7192 ("intltool" ,intltool)
7193 ("itstool" ,itstool)
7194 ("vala" ,vala)
7195 ("pkg-config" ,pkg-config)))
7196 (inputs
7197 `(("glib" ,glib)
7198 ("gtksourceview" ,gtksourceview-3)
7199 ("libsoup" ,libsoup)
7200 ("libxml2" ,libxml2)
7201 ("mpc" ,mpc)
7202 ("mpfr" ,mpfr)))
7203 (home-page "https://wiki.gnome.org/Apps/Calculator")
7204 (synopsis "Desktop calculator")
7205 (description
7206 "Calculator is an application that solves mathematical equations and
7207 is suitable as a default application in a Desktop environment.")
7208 (license license:gpl3)))
7209
7210 (define-public xpad
7211 (package
7212 (name "xpad")
7213 (version "5.1.0")
7214 (source
7215 (origin
7216 (method url-fetch)
7217 (uri (string-append "https://launchpad.net/xpad/trunk/"
7218 version "/+download/"
7219 name "-" version ".tar.bz2"))
7220 (sha256
7221 (base32
7222 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
7223 (build-system gnu-build-system)
7224 (native-inputs
7225 `(("autoconf" ,autoconf)
7226 ("automake" ,automake)
7227 ("gtk+:bin" ,gtk+ "bin")
7228 ("intltool" ,intltool)
7229 ("pkg-config" ,pkg-config)))
7230 (inputs
7231 `(("gtksourceview" ,gtksourceview)
7232 ("libsm" ,libsm)))
7233 (home-page "https://wiki.gnome.org/Apps/Xpad")
7234 (synopsis "Virtual sticky note")
7235 (description
7236 "Xpad is a sticky note that strives to be simple, fault tolerant,
7237 and customizable. Xpad consists of independent pad windows, each is
7238 basically a text box in which notes can be written.")
7239 (license license:gpl3+)))
7240
7241 (define-public gucharmap
7242 (let ((unicode-files
7243 '(("Blocks.txt"
7244 "19zf2kd198mcv1paa194c1zf36hay1irbxssi35yi2pd8ad69qas")
7245 ("DerivedAge.txt"
7246 "1h9p1g0wnh686l6cqar7cmky465vwc6vjzzn1s7v0i9zcjaqkr4h")
7247 ("NamesList.txt"
7248 "0gvpcyq852rnlqmx4y5i1by7bavvcw6rj40i54w48yc7xr3zmgd1")
7249 ("Scripts.txt"
7250 "0b9prz2hs6w61afqaplcxnv115f8yk4d5hn9dc5hks8nqpj28bnh")
7251 ("UnicodeData.txt"
7252 "1cfak1j753zcrbgixwgppyxhm4w8vda8vxhqymi7n5ljfi6kwhjj")
7253 ("Unihan.zip"
7254 "199kz6laypkvc0ykms6d7bkb571jmpds39sv2p7kd5jjm1ij08q1"))))
7255 (package
7256 (name "gucharmap")
7257 (version "10.0.4")
7258 (source
7259 (origin
7260 (method url-fetch)
7261 (uri (string-append "mirror://gnome/sources/" name "/"
7262 (version-major+minor version) "/"
7263 name "-" version ".tar.xz"))
7264 (sha256
7265 (base32
7266 "00gh3lll6wykd2qg1lrj05a4wvscsypmrx7rpb6jsbvb4scnh9mv"))))
7267 (build-system glib-or-gtk-build-system)
7268 (arguments
7269 `(#:modules ((ice-9 match)
7270 (guix build glib-or-gtk-build-system)
7271 (guix build utils))
7272 #:configure-flags
7273 (list "--with-unicode-data=../unicode-data")
7274 #:phases
7275 (modify-phases %standard-phases
7276 (add-after 'unpack 'prepare-unicode-data
7277 (lambda* (#:key inputs #:allow-other-keys)
7278 (mkdir-p "../unicode-data")
7279 (with-directory-excursion "../unicode-data"
7280 (for-each (match-lambda
7281 ((file _)
7282 (install-file (assoc-ref inputs file) ".")))
7283 ',unicode-files))
7284 #t)))))
7285 (native-inputs
7286 `(("desktop-file-utils" ,desktop-file-utils)
7287 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
7288 ("gobject-introspection" ,gobject-introspection)
7289 ("intltool" ,intltool)
7290 ("itstool" ,itstool)
7291 ("pkg-config" ,pkg-config)
7292 ,@(map (match-lambda
7293 ((file hash)
7294 `(,file
7295 ,(origin
7296 (method url-fetch)
7297 (uri (string-append
7298 "http://www.unicode.org/Public/10.0.0/ucd/"
7299 file))
7300 (sha256 (base32 hash))))))
7301 unicode-files)
7302 ("unzip" ,unzip)))
7303 (inputs
7304 `(("gtk+" ,gtk+)
7305 ("xmllint" ,libxml2)))
7306 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
7307 (synopsis "Unicode character picker and font browser")
7308 (description
7309 "This program allows you to browse through all the available Unicode
7310 characters and categories for the installed fonts, and to examine their
7311 detailed properties. It is an easy way to find the character you might
7312 only know by its Unicode name or code point.")
7313 (license license:gpl3+))))
7314
7315 (define-public bluefish
7316 (package
7317 (name "bluefish")
7318 (version "2.2.10")
7319 (source
7320 (origin
7321 (method url-fetch)
7322 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
7323 name "-" version ".tar.gz"))
7324 (sha256
7325 (base32
7326 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
7327 (build-system gnu-build-system)
7328 (native-inputs
7329 `(("desktop-file-utils" ,desktop-file-utils)
7330 ("intltool" ,intltool)
7331 ("pkg-config" ,pkg-config)))
7332 (inputs
7333 `(("enchant" ,enchant)
7334 ("gtk+" ,gtk+)
7335 ("python" ,python-2)
7336 ("xmllint" ,libxml2)
7337 ("gucharmap" ,gucharmap)))
7338 (home-page "http://bluefish.openoffice.nl")
7339 (synopsis "Web development studio")
7340 (description
7341 "Bluefish is an editor targeted towards programmers and web developers,
7342 with many options to write web sites, scripts and other code.
7343 Bluefish supports many programming and markup languages.")
7344 (license license:gpl3+)))
7345
7346 (define-public gnome-system-monitor
7347 (package
7348 (name "gnome-system-monitor")
7349 (version "3.30.0")
7350 (source
7351 (origin
7352 (method url-fetch)
7353 (uri (string-append "mirror://gnome/sources/" name "/"
7354 (version-major+minor version) "/"
7355 name "-" version ".tar.xz"))
7356 (sha256
7357 (base32
7358 "0g0y565bjs6bdszrnxsz1f7hcm1x59i3mfvplysirh7nz3hpz888"))))
7359 (build-system meson-build-system)
7360 (arguments
7361 '(#:glib-or-gtk? #t
7362 #:configure-flags '("-Dsystemd=false")))
7363 (native-inputs
7364 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
7365 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7366 ("intltool" ,intltool)
7367 ("itstool" ,itstool)
7368 ("libgtop" ,libgtop)
7369 ("polkit" ,polkit)
7370 ("pkg-config" ,pkg-config)))
7371 (inputs
7372 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
7373 ("gtk+" ,gtk+)
7374 ("gtkmm" ,gtkmm)
7375 ("librsvg" ,librsvg)
7376 ("libxml2" ,libxml2)
7377 ("libwnck" ,libwnck)))
7378 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
7379 (synopsis "Process viewer and system resource monitor for GNOME")
7380 (description
7381 "GNOME System Monitor is a GNOME process viewer and system monitor with
7382 an attractive, easy-to-use interface. It has features, such as a tree view
7383 for process dependencies, icons for processes, the ability to hide processes,
7384 graphical time histories of CPU/memory/swap usage and the ability to
7385 kill/reinice processes.")
7386 (license license:gpl2+)))
7387
7388 (define-public python-pyatspi
7389 (package
7390 (name "python-pyatspi")
7391 (version "2.26.0")
7392 (source (origin
7393 (method url-fetch)
7394 (uri (string-append
7395 "mirror://gnome/sources/pyatspi/"
7396 (version-major+minor version)
7397 "/pyatspi-" version ".tar.xz"))
7398 (sha256
7399 (base32
7400 "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6"))))
7401 (build-system gnu-build-system)
7402 (native-inputs
7403 `(("pkg-config" ,pkg-config)))
7404 (inputs
7405 `(("python" ,python)
7406 ("python-pygobject" ,python-pygobject)))
7407 (synopsis "Python client bindings for D-Bus AT-SPI")
7408 (home-page "https://wiki.linuxfoundation.org/accessibility\
7409 /atk/at-spi/at-spi_on_d-bus")
7410 (description
7411 "This package includes a python client library for the AT-SPI D-Bus
7412 accessibility infrastructure.")
7413 (license license:lgpl2.0)
7414 (properties '((upstream-name . "pyatspi")))))
7415
7416 (define-public orca
7417 (package
7418 (name "orca")
7419 (version "3.28.1")
7420 (source (origin
7421 (method url-fetch)
7422 (uri (string-append
7423 "mirror://gnome/sources/" name "/"
7424 (version-major+minor version) "/"
7425 name "-" version ".tar.xz"))
7426 (sha256
7427 (base32
7428 "04l5ccn7wf175gyq3blfpx0yh70ny06n161297jwc9idf951852g"))))
7429 (build-system glib-or-gtk-build-system)
7430 (arguments
7431 '(#:phases
7432 (modify-phases %standard-phases
7433 (add-before 'configure 'qualify-xkbcomp
7434 (lambda* (#:key inputs #:allow-other-keys)
7435 (let ((xkbcomp (string-append
7436 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
7437 (substitute* "src/orca/orca.py"
7438 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
7439 #t))
7440 (add-after 'install 'wrap-orca
7441 (lambda* (#:key outputs #:allow-other-keys)
7442 (let* ((out (assoc-ref outputs "out"))
7443 (prog (string-append out "/bin/orca")))
7444 (wrap-program prog
7445 `("GI_TYPELIB_PATH" ":" prefix
7446 (,(getenv "GI_TYPELIB_PATH")))
7447 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
7448 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
7449 `("PYTHONPATH" ":" prefix
7450 (,(getenv "PYTHONPATH")))))
7451 #t)))))
7452 (native-inputs
7453 `(("intltool" ,intltool)
7454 ("itstool" ,itstool)
7455 ("pkg-config" ,pkg-config)
7456 ("xmllint" ,libxml2)))
7457 (inputs
7458 `(("at-spi2-atk" ,at-spi2-atk)
7459 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7460 ("gstreamer" ,gstreamer)
7461 ("gst-plugins-base" ,gst-plugins-base)
7462 ("gst-plugins-good" ,gst-plugins-good)
7463 ("gtk+" ,gtk+)
7464 ("python" ,python)
7465 ("python-pygobject" ,python-pygobject)
7466 ("python-pyatspi" ,python-pyatspi)
7467 ("python-speechd" ,speech-dispatcher)
7468 ("xkbcomp" ,xkbcomp)))
7469 (synopsis
7470 "Screen reader for individuals who are blind or visually impaired")
7471 (home-page "https://wiki.gnome.org/Projects/Orca")
7472 (description
7473 "Orca is a screen reader that provides access to the graphical desktop
7474 via speech and refreshable braille. Orca works with applications and toolkits
7475 that support the Assistive Technology Service Provider Interface (AT-SPI).")
7476 (license license:lgpl2.1+)))
7477
7478 (define-public gspell
7479 (package
7480 (name "gspell")
7481 (version "1.8.1")
7482 (source (origin
7483 (method url-fetch)
7484 (uri (string-append "mirror://gnome/sources/" name "/"
7485 (version-major+minor version) "/"
7486 name "-" version ".tar.xz"))
7487 (sha256
7488 (base32
7489 "1rdv873ixhwr15jwgc2z6k6y0hj353fqnwsy7zkh0c30qwiiv6l1"))
7490 (patches (search-patches "gspell-dash-test.patch"))))
7491 (build-system glib-or-gtk-build-system)
7492 (arguments
7493 '(#:phases
7494 (modify-phases %standard-phases
7495 (add-before 'check 'pre-check
7496 (lambda* (#:key inputs #:allow-other-keys)
7497 ;; Tests require a running X server.
7498 (system "Xvfb :1 &")
7499 (setenv "DISPLAY" ":1")
7500
7501 ;; For the missing /etc/machine-id.
7502 (setenv "DBUS_FATAL_WARNINGS" "0")
7503
7504 ;; Allow Enchant and its Aspell backend to find the en_US
7505 ;; dictionary.
7506 (setenv "ASPELL_DICT_DIR"
7507 (string-append (assoc-ref inputs "aspell-dict-en")
7508 "/lib/aspell"))
7509 #t)))))
7510 (inputs
7511 `(("gtk+" ,gtk+)
7512 ("glib" ,glib)
7513 ("iso-codes" ,iso-codes)))
7514 (native-inputs
7515 `(("glib" ,glib "bin")
7516 ("pkg-config" ,pkg-config)
7517 ("xmllint" ,libxml2)
7518
7519 ;; For tests.
7520 ("aspell-dict-en" ,aspell-dict-en)
7521 ("xorg-server" ,xorg-server)))
7522 (propagated-inputs
7523 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
7524 (home-page "https://wiki.gnome.org/Projects/gspell")
7525 (synopsis "GNOME's alternative spell checker")
7526 (description
7527 "gspell provides a flexible API to add spell-checking to a GTK+
7528 application. It provides a GObject API, spell-checking to text entries and
7529 text views, and buttons to choose the language.")
7530 (license license:gpl2+)))
7531
7532 (define-public gnome-planner
7533 (package
7534 (name "gnome-planner")
7535 (version "0.14.6")
7536 (source (origin
7537 (method url-fetch)
7538 (uri (string-append "mirror://gnome/sources/planner/"
7539 (version-major+minor version) "/planner-"
7540 version ".tar.xz"))
7541 (sha256
7542 (base32
7543 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
7544 (build-system glib-or-gtk-build-system)
7545 (arguments
7546 ;; Disable the Python bindings because the Planner program functions
7547 ;; without them, and (as of 2017-06-13) we have not packaged all of
7548 ;; packages that are necessary for building the Python bindings.
7549 `(#:configure-flags
7550 (list "--disable-python"
7551 ,@(if (string=? "aarch64-linux" (%current-system))
7552 '("--build=aarch64-unknown-linux-gnu")
7553 '()))))
7554 (inputs
7555 `(("libgnomecanvas" ,libgnomecanvas)
7556 ("libgnomeui" ,libgnomeui)
7557 ("libglade" ,libglade)
7558 ("gnome-vfs" ,gnome-vfs)
7559 ("gconf" ,gconf)
7560 ("libxml2" ,libxml2)
7561 ("libxslt" ,libxslt)
7562 ("gtk+" ,gtk+)
7563 ("glib" ,glib)))
7564 (native-inputs
7565 `(("intltool" ,intltool)
7566 ("scrollkeeper" ,scrollkeeper)
7567 ("pkg-config" ,pkg-config)))
7568 (home-page "https://wiki.gnome.org/Apps/Planner")
7569 (synopsis "Project management software for the GNOME desktop")
7570 (description
7571 "GNOME Planner is a project management tool based on the Work Breakdown
7572 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
7573 the resources, tasks, and constraints that you define, Planner generates
7574 various views into a project. For example, Planner can show a Gantt chart of
7575 the project. It can show a detailed summary of tasks including their
7576 duration, cost, and current progress. It can also show a report of resource
7577 utilization that highlights under-utilized and over-utilized resources. These
7578 views can be printed as PDF or PostScript files, or exported to HTML.")
7579 (license license:gpl2+)))
7580
7581 (define-public lollypop
7582 (package
7583 (name "lollypop")
7584 (version "0.9.521")
7585 (source
7586 (origin
7587 (method url-fetch)
7588 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
7589 "e4df2ed75c5ed71d64afcc668e579b2a/"
7590 name "-" version ".tar.xz"))
7591 (sha256
7592 (base32
7593 "0knsqh24siyw98vmiq6b1hzq4y4cazs9f1hq1js9c96hqqj9rvdx"))))
7594 (build-system meson-build-system)
7595 (arguments
7596 `(#:imported-modules ((guix build python-build-system)
7597 ,@%meson-build-system-modules)
7598 #:glib-or-gtk? #t
7599 #:tests? #f ; no test suite
7600 #:phases
7601 (modify-phases %standard-phases
7602 (add-after 'install 'wrap-program
7603 (lambda* (#:key outputs #:allow-other-keys)
7604 (let ((out (assoc-ref outputs "out"))
7605 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7606 (wrap-program (string-append out "/bin/lollypop")
7607 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7608 #t))
7609 (add-after 'install 'wrap
7610 (@@ (guix build python-build-system) wrap)))))
7611 (native-inputs
7612 `(("intltool" ,intltool)
7613 ("itstool" ,itstool)
7614 ("glib:bin" ,glib "bin") ; For glib-compile-resources
7615 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7616 ("pkg-config" ,pkg-config)))
7617 (inputs
7618 `(("gobject-introspection" ,gobject-introspection)
7619 ("gst-plugins-base" ,gst-plugins-base)
7620 ("libnotify" ,libnotify)
7621 ("libsecret" ,libsecret)
7622 ("libsoup" ,libsoup)
7623 ("python" ,python)
7624 ("python-beautifulsoup4" ,python-beautifulsoup4)
7625 ("python-gst" ,python-gst)
7626 ("python-pycairo" ,python-pycairo)
7627 ("python-pygobject" ,python-pygobject)
7628 ("python-pylast" ,python-pylast)
7629 ("totem-pl-parser" ,totem-pl-parser)
7630 ("webkitgtk" ,webkitgtk)))
7631 (propagated-inputs
7632 `(;; gst-plugins-base is required to start Lollypop,
7633 ;; the others are required to play streaming.
7634 ("gst-plugins-good" ,gst-plugins-good)
7635 ("gst-plugins-ugly" ,gst-plugins-ugly)))
7636 (home-page "https://wiki.gnome.org/Apps/Lollypop")
7637 (synopsis "GNOME music playing application")
7638 (description
7639 "Lollypop is a music player designed to play well with GNOME desktop.
7640 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
7641 from artists and tracks from the web. It also fetches cover artworks
7642 automatically and it can stream songs from online music services and charts.")
7643 (license license:gpl3+)))
7644
7645 (define-public gnome-video-effects
7646 (package
7647 (name "gnome-video-effects")
7648 (version "0.4.3")
7649 (source (origin
7650 (method url-fetch)
7651 (uri (string-append "mirror://gnome/sources/" name "/"
7652 (version-major+minor version) "/" name "-"
7653 version ".tar.xz"))
7654 (sha256
7655 (base32
7656 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
7657 (build-system glib-or-gtk-build-system)
7658 (arguments
7659 `(#:out-of-source? #f))
7660 (native-inputs
7661 `(("glib:bin" ,glib "bin")
7662 ("intltool" ,intltool)
7663 ("gettext" ,gettext-minimal)
7664 ("pkg-config" ,pkg-config)))
7665 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
7666 (synopsis "Video effects for Cheese and other GNOME applications")
7667 (description
7668 "A collection of GStreamer video filters and effects to be used in
7669 photo-booth-like software, such as Cheese.")
7670 (license license:gpl2+)))
7671
7672 (define-public cheese
7673 (package
7674 (name "cheese")
7675 (version "3.28.0")
7676 (source (origin
7677 (method url-fetch)
7678 (uri (string-append "mirror://gnome/sources/" name "/"
7679 (version-major+minor version) "/" name "-"
7680 version ".tar.xz"))
7681 (sha256
7682 (base32
7683 "06da5qc5hdvwwd5vkbgbx8pjx1l3mvr07yrnnv3v1hfc3wp7l7jw"))))
7684 (arguments
7685 ;; Tests require GDK.
7686 `(#:tests? #f
7687 #:phases
7688 (modify-phases %standard-phases
7689 (add-before 'install 'skip-gtk-update-icon-cache
7690 (lambda _
7691 ;; Don't create 'icon-theme.cache'
7692 (substitute* "Makefile"
7693 (("gtk-update-icon-cache") (which "true")))
7694 #t))
7695 (add-after 'install 'wrap-cheese
7696 (lambda* (#:key inputs outputs #:allow-other-keys)
7697 (let ((out (assoc-ref outputs "out"))
7698 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
7699 (wrap-program (string-append out "/bin/cheese")
7700 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
7701 #t)))))
7702 (build-system glib-or-gtk-build-system)
7703 (native-inputs
7704 `(("glib:bin" ,glib "bin")
7705 ("intltool" ,intltool)
7706 ("itstool" ,itstool)
7707 ("libxml2" ,libxml2)
7708 ("pkg-config" ,pkg-config)
7709 ("vala" ,vala)))
7710 (propagated-inputs
7711 `(("gnome-video-effects" ,gnome-video-effects)
7712 ("clutter" ,clutter)
7713 ("clutter-gst" ,clutter-gst)
7714 ("clutter-gtk" ,clutter-gtk)
7715 ("libcanberra" ,libcanberra)
7716 ("gdk-pixbuf" ,gdk-pixbuf)
7717 ("glib" ,glib)
7718 ("gstreamer" ,gstreamer)))
7719 (inputs
7720 `(("gnome-desktop" ,gnome-desktop)
7721 ("gobject-introspection" ,gobject-introspection)
7722 ("gst-plugins-base" ,gst-plugins-base)
7723 ("gst-plugins-bad" ,gst-plugins-bad)
7724 ("gtk+" ,gtk+)
7725 ("libx11" ,libx11)
7726 ("libxtst" ,libxtst)))
7727 (home-page "https://wiki.gnome.org/Apps/Cheese")
7728 (synopsis "Webcam photo booth software for GNOME")
7729 (description
7730 "Cheese uses your webcam to take photos and videos. Cheese can also
7731 apply fancy special effects and lets you share the fun with others.")
7732 (license license:gpl2+)))
7733
7734 (define-public sound-juicer
7735 (package
7736 (name "sound-juicer")
7737 (version "3.24.0")
7738 (source
7739 (origin
7740 (method url-fetch)
7741 (uri (string-append "mirror://gnome/sources/" name "/"
7742 (version-major+minor version) "/"
7743 name "-" version ".tar.xz"))
7744 (sha256
7745 (base32
7746 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
7747 (build-system glib-or-gtk-build-system)
7748 (native-inputs
7749 `(("desktop-file-utils" ,desktop-file-utils)
7750 ("intltool" ,intltool)
7751 ("itstool" ,itstool)
7752 ("pkg-config" ,pkg-config)
7753 ("xmllint" ,libxml2)))
7754 (inputs
7755 `(("gtk+" ,gtk+)
7756 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7757 ("gstreamer" ,gstreamer)
7758 ("gst-plugins-base" ,gst-plugins-base)
7759 ("gst-plugins-good" ,gst-plugins-good)
7760 ("iso-codes" ,iso-codes)
7761 ("libbrasero-media3" ,brasero)
7762 ("libcanberra" ,libcanberra)
7763 ("libdiscid" ,libdiscid)
7764 ("libmusicbrainz" ,libmusicbrainz)
7765 ("neon" ,neon)))
7766 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
7767 (synopsis "Audio music cd ripper")
7768 (description "Sound Juicer extracts audio from compact discs and convert it
7769 into audio files that a personal computer or digital audio player can play.
7770 It supports ripping to any audio codec supported by a GStreamer plugin, such as
7771 mp3, Ogg Vorbis and FLAC")
7772 (license license:gpl2+)))
7773
7774 (define-public soundconverter
7775 (package
7776 (name "soundconverter")
7777 (version "3.0.1")
7778 (source
7779 (origin
7780 (method url-fetch)
7781 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
7782 version "/+download/"
7783 "soundconverter-" version ".tar.xz"))
7784
7785 (sha256
7786 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
7787 (patches
7788 (search-patches
7789 "soundconverter-remove-gconf-dependency.patch"))))
7790 (build-system glib-or-gtk-build-system)
7791 (arguments
7792 `(#:imported-modules ((guix build python-build-system)
7793 (guix build glib-or-gtk-build-system)
7794 ,@%gnu-build-system-modules)
7795
7796 #:modules ((guix build glib-or-gtk-build-system)
7797 (guix build utils)
7798 ((guix build gnu-build-system) #:prefix gnu:)
7799 ((guix build python-build-system) #:prefix python:))
7800
7801 #:phases
7802 (modify-phases %standard-phases
7803 (add-after 'install 'wrap-soundconverter-for-python
7804 (assoc-ref python:%standard-phases 'wrap))
7805 (add-after 'install 'wrap-soundconverter
7806 (lambda* (#:key inputs outputs #:allow-other-keys)
7807 (let ((out (assoc-ref outputs "out"))
7808 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7809 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
7810 (wrap-program (string-append out "/bin/soundconverter")
7811 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7812 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
7813 #t)))))
7814 (native-inputs
7815 `(("intltool" ,intltool)
7816 ("pkg-config" ,pkg-config)
7817 ("glib:bin" ,glib "bin")))
7818 (inputs
7819 `(("gtk+" ,gtk+)
7820 ("python" ,python)
7821 ("python-pygobject" ,python-pygobject)
7822 ("gstreamer" ,gstreamer)
7823 ("gst-plugins-base" ,gst-plugins-base)))
7824 (home-page "http://soundconverter.org/")
7825 (synopsis "Convert between audio formats with a graphical interface")
7826 (description
7827 "SoundConverter supports converting between many audio formats including
7828 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
7829 configurable file renaming. ")
7830 (license license:gpl3)))
7831
7832 (define-public workrave
7833 (package
7834 (name "workrave")
7835 (version "1.10.23")
7836 (source
7837 (origin
7838 (method git-fetch)
7839 (uri (git-reference
7840 (url "https://github.com/rcaelers/workrave.git")
7841 (commit (string-append "v" (string-map
7842 (match-lambda (#\. #\_) (chr chr))
7843 version)))))
7844 (file-name (git-file-name name version))
7845 (sha256
7846 (base32 "1qhlwfhwk5agv4904d6bsf83k9k89q7bms6agg967vsca4905vcw"))))
7847 (build-system glib-or-gtk-build-system)
7848 (propagated-inputs `(("glib" ,glib)
7849 ("gtk+" ,gtk+)
7850 ("gdk-pixbuf" ,gdk-pixbuf)
7851 ("gtkmm" ,gtkmm)
7852 ("glibmm" ,glibmm)
7853 ("libx11" ,libx11)
7854 ("libxtst" ,libxtst)
7855 ("dconf" ,dconf)
7856 ("libice" ,libice)))
7857 (inputs `(("libsm" ,libsm)
7858 ("python-cheetah" ,python2-cheetah)))
7859 (native-inputs `(("glib" ,glib "bin")
7860 ("pkg-config" ,pkg-config)
7861 ("gettext" ,gnu-gettext)
7862 ("autoconf" ,autoconf)
7863 ("autoconf-archive" , autoconf-archive)
7864 ("automake" ,automake)
7865 ("libtool" ,libtool)
7866 ("intltool" ,intltool)
7867 ("libxscrnsaver" ,libxscrnsaver)
7868 ("gobject-introspection" ,gobject-introspection)
7869 ("python2" ,python-2)))
7870 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
7871 (description
7872 "Workrave is a program that assists in the recovery and prevention of
7873 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
7874 micro-pauses and rest breaks, and restricts you to your daily limit.")
7875 (home-page "http://www.workrave.org")
7876 (license license:gpl3+)))
7877
7878 (define-public ghex
7879 (package
7880 (name "ghex")
7881 (version "3.18.3")
7882 (source (origin
7883 (method url-fetch)
7884 (uri (string-append "mirror://gnome/sources/ghex/"
7885 (version-major+minor version) "/"
7886 "ghex-" version ".tar.xz"))
7887 (sha256
7888 (base32
7889 "1lq8920ad2chi9ibmyq0x9hg9yk63b0kdbzid03w42cwdzw50x66"))))
7890 (build-system glib-or-gtk-build-system)
7891 (native-inputs
7892 `(("pkg-config" ,pkg-config)
7893 ("gnome-common" ,gnome-common)
7894 ("which" ,which)
7895 ("intltool" ,intltool)
7896 ("yelp-tools" ,yelp-tools)
7897 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
7898 (inputs
7899 `(("atk" ,atk)
7900 ("gtk" ,gtk+)))
7901 (synopsis "GNOME hexadecimal editor")
7902 (description "The GHex program can view and edit files in two ways:
7903 hexadecimal or ASCII. It is useful for editing binary files in general.")
7904 (home-page "https://wiki.gnome.org/Apps/Ghex")
7905 (license license:gpl2)))
7906
7907 (define-public libdazzle
7908 (package
7909 (name "libdazzle")
7910 (version "3.30.2")
7911 (source (origin
7912 (method url-fetch)
7913 (uri (string-append "mirror://gnome/sources/libdazzle/"
7914 (version-major+minor version) "/"
7915 "libdazzle-" version ".tar.xz"))
7916 (sha256
7917 (base32
7918 "1m9n1gcxndly24rjkxzvmx02a2rkb6ad4cy7p6ncanm1kyp0wxvq"))))
7919 (build-system meson-build-system)
7920 (arguments
7921 `(#:phases
7922 (modify-phases %standard-phases
7923 (add-after 'unpack 'disable-failing-test
7924 (lambda _
7925 ;; Disable failing test.
7926 (substitute* "tests/meson.build"
7927 (("test\\('test-application") "#"))
7928 #t))
7929 (add-before 'check 'pre-check
7930 (lambda _
7931 ;; Tests require a running X server.
7932 (system "Xvfb :1 &")
7933 (setenv "DISPLAY" ":1")
7934 #t)))))
7935 (native-inputs
7936 `(("glib" ,glib "bin") ; glib-compile-resources
7937 ("pkg-config" ,pkg-config)
7938 ;; For tests.
7939 ("xorg-server" ,xorg-server)))
7940 (inputs
7941 `(("glib" ,glib)
7942 ("gobject-introspection" ,gobject-introspection)
7943 ("gtk+" ,gtk+)
7944 ("vala" ,vala)))
7945 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
7946 (synopsis "Companion library to GObject and Gtk+")
7947 (description "The libdazzle library is a companion library to GObject and
7948 Gtk+. It provides various features that the authors wish were in the
7949 underlying library but cannot for various reasons. In most cases, they are
7950 wildly out of scope for those libraries. In other cases, they are not quite
7951 generic enough to work for everyone.")
7952 (license license:gpl3+)))
7953
7954 (define-public evolution
7955 (package
7956 (name "evolution")
7957 (version "3.28.1")
7958 (source (origin
7959 (method url-fetch)
7960 (uri (string-append "mirror://gnome/sources/evolution/"
7961 (version-major+minor version) "/"
7962 "evolution-" version ".tar.xz"))
7963 (sha256
7964 (base32
7965 "0sdv5lg2vlz5f4raymz9d8a5jq4j18vbqyigaip6508p3bjnfj8l"))))
7966 (build-system cmake-build-system)
7967 (arguments
7968 `(#:configure-flags
7969 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
7970 "-DENABLE_LIBCRYPTUI=OFF"))) ; libcryptui hasn't seen a release
7971 ; in four years and cannot be built.
7972 (native-inputs
7973 `(("glib" ,glib "bin") ; glib-mkenums
7974 ("pkg-config" ,pkg-config)
7975 ("intltool" ,intltool)
7976 ("itstool" ,itstool)))
7977 (inputs
7978 `(("enchant" ,enchant)
7979 ("evolution-data-server" ,evolution-data-server) ; must be the same version
7980 ("gcr" ,gcr)
7981 ("gnome-autoar" ,gnome-autoar)
7982 ("gnome-desktop" ,gnome-desktop)
7983 ("gtkspell3" ,gtkspell3)
7984 ("highlight" ,highlight)
7985 ("libcanberra" ,libcanberra)
7986 ("libedataserverui" ,evolution-data-server)
7987 ("libgweather" ,libgweather)
7988 ("libnotify" ,libnotify)
7989 ("libsoup" ,libsoup)
7990 ("nss" ,nss)
7991 ("openldap" ,openldap)
7992 ("webkitgtk" ,webkitgtk)
7993 ("ytnef" ,ytnef)))
7994 (home-page "https://gitlab.gnome.org/GNOME/evolution")
7995 (synopsis "Manage your email, contacts and schedule")
7996 (description "Evolution is a personal information management application
7997 that provides integrated mail, calendaring and address book
7998 functionality.")
7999 ;; See COPYING for details.
8000 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
8001 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
8002 license:lgpl2.1+)))) ; smime/lib/*
8003
8004 (define-public gthumb
8005 (package
8006 (name "gthumb")
8007 (version "3.8.0")
8008 (source (origin
8009 (method url-fetch)
8010 (uri (string-append "mirror://gnome/sources/gthumb/"
8011 (version-major+minor version) "/"
8012 "gthumb-" version ".tar.xz"))
8013 (sha256
8014 (base32
8015 "1l2s1facq1r6yvqjqc34aqfzlvb3nhkhn79xisxbbdlgrrxdq52f"))))
8016 (build-system meson-build-system)
8017 (arguments
8018 `(#:glib-or-gtk? #t
8019 #:configure-flags
8020 ;; Ensure the RUNPATH contains all installed library locations.
8021 (list (string-append "-Dc_link_args=-Wl,-rpath="
8022 (assoc-ref %outputs "out")
8023 "/lib/gthumb/extensions")
8024 (string-append "-Dcpp_link_args=-Wl,-rpath="
8025 (assoc-ref %outputs "out")
8026 "/lib/gthumb/extensions"))))
8027 (native-inputs
8028 `(("pkg-config" ,pkg-config)
8029 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8030 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8031 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8032 ("intltool" ,intltool)
8033 ("itstool" ,itstool)))
8034 (inputs
8035 `(("exiv2" ,exiv2)
8036 ("gtk" ,gtk+)
8037 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8038 ("gstreamer" ,gstreamer)
8039 ("clutter" ,clutter)
8040 ("clutter-gst" ,clutter-gst)
8041 ("clutter-gtk" ,clutter-gtk)
8042 ("libjpeg" ,libjpeg)
8043 ("libtiff" ,libtiff)
8044 ("libraw" ,libraw)))
8045 (home-page "https://wiki.gnome.org/Apps/Gthumb")
8046 (synopsis "GNOME image viewer and browser")
8047 (description "GThumb is an image viewer, browser, organizer, editor and
8048 advanced image management tool")
8049 (license license:gpl2+)))
8050
8051 (define-public terminator
8052 (package
8053 (name "terminator")
8054 (version "1.91")
8055 (source (origin
8056 (method url-fetch)
8057 (uri (string-append "https://launchpad.net/" name "/"
8058 "gtk3/" version "/" "+download/"
8059 name "-" version ".tar.gz"))
8060 (sha256
8061 (base32
8062 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
8063 (build-system python-build-system)
8064 (native-inputs
8065 `(("intltool" ,intltool)
8066 ("glib:bin" ,glib "bin") ; for glib-compile-resources
8067 ("gettext" ,gettext-minimal)
8068 ("pkg-config" ,pkg-config)))
8069 (inputs
8070 `(("cairo" ,cairo)
8071 ("gobject-introspection" ,gobject-introspection)
8072 ("python2-pycairo" ,python2-pycairo)
8073 ("python2-pygobject" ,python2-pygobject)
8074 ("python2-psutil" ,python2-psutil)
8075 ("vte" ,vte)))
8076 (arguments
8077 `(#:python ,python-2 ;Python 3 not supported
8078 #:phases
8079 (modify-phases %standard-phases
8080 (add-after
8081 'install 'wrap-program
8082 (lambda* (#:key outputs #:allow-other-keys)
8083 (let ((prog (string-append (assoc-ref outputs "out")
8084 "/bin/terminator")))
8085 (wrap-program prog
8086 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
8087 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
8088 #t))))))
8089 (home-page "https://gnometerminator.blogspot.com/")
8090 (synopsis "Store and run multiple GNOME terminals in one window")
8091 (description
8092 "Terminator allows you to run multiple GNOME terminals in a grid and
8093 +tabs, and it supports drag and drop re-ordering of terminals.")
8094 (license license:gpl2)))