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