gnu: librsvg-next-source: Update dependencies.
[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, 2020 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, 2020 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, 2020 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, 2020 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, 2020 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, 2020 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 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;;
50 ;;; This file is part of GNU Guix.
51 ;;;
52 ;;; GNU Guix is free software; you can redistribute it and/or modify it
53 ;;; under the terms of the GNU General Public License as published by
54 ;;; the Free Software Foundation; either version 3 of the License, or (at
55 ;;; your option) any later version.
56 ;;;
57 ;;; GNU Guix is distributed in the hope that it will be useful, but
58 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
59 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
60 ;;; GNU General Public License for more details.
61 ;;;
62 ;;; You should have received a copy of the GNU General Public License
63 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
64
65 (define-module (gnu packages gnome)
66 #:use-module (gnu packages)
67 #:use-module (gnu packages admin)
68 #:use-module (gnu packages aspell)
69 #:use-module (gnu packages autotools)
70 #:use-module (gnu packages avahi)
71 #:use-module (gnu packages backup)
72 #:use-module (gnu packages base)
73 #:use-module (gnu packages bash)
74 #:use-module (gnu packages bison)
75 #:use-module (gnu packages boost)
76 #:use-module (gnu packages build-tools)
77 #:use-module (gnu packages calendar)
78 #:use-module (gnu packages cdrom)
79 #:use-module (gnu packages check)
80 #:use-module (gnu packages cmake)
81 #:use-module (gnu packages compression)
82 #:use-module (gnu packages crates-io)
83 #:use-module (gnu packages cups)
84 #:use-module (gnu packages curl)
85 #:use-module (gnu packages cyrus-sasl)
86 #:use-module (gnu packages databases)
87 #:use-module (gnu packages dbm)
88 #:use-module (gnu packages djvu)
89 #:use-module (gnu packages dns)
90 #:use-module (gnu packages docbook)
91 #:use-module (gnu packages documentation)
92 #:use-module (gnu packages enchant)
93 #:use-module (gnu packages flex)
94 #:use-module (gnu packages fonts)
95 #:use-module (gnu packages file-systems)
96 #:use-module (gnu packages fontutils)
97 #:use-module (gnu packages freedesktop)
98 #:use-module (gnu packages game-development)
99 #:use-module (gnu packages gettext)
100 #:use-module (gnu packages ghostscript)
101 #:use-module (gnu packages gl)
102 #:use-module (gnu packages glib)
103 #:use-module (gnu packages gnupg)
104 #:use-module (gnu packages gnuzilla)
105 #:use-module (gnu packages geo)
106 #:use-module (gnu packages gperf)
107 #:use-module (gnu packages graphviz)
108 #:use-module (gnu packages gstreamer)
109 #:use-module (gnu packages gtk)
110 #:use-module (gnu packages guile)
111 #:use-module (gnu packages ibus)
112 #:use-module (gnu packages icu4c)
113 #:use-module (gnu packages image)
114 #:use-module (gnu packages imagemagick)
115 #:use-module (gnu packages inkscape)
116 #:use-module (gnu packages iso-codes)
117 #:use-module (gnu packages kerberos)
118 #:use-module (gnu packages libcanberra)
119 #:use-module (gnu packages libunistring)
120 #:use-module (gnu packages libusb)
121 #:use-module (gnu packages linux)
122 #:use-module (gnu packages lirc)
123 #:use-module (gnu packages lua)
124 #:use-module (gnu packages mail)
125 #:use-module (gnu packages mp3)
126 #:use-module (gnu packages multiprecision)
127 #:use-module (gnu packages music)
128 #:use-module (gnu packages ncurses)
129 #:use-module (gnu packages nettle)
130 #:use-module (gnu packages networking)
131 #:use-module (gnu packages ninja)
132 #:use-module (gnu packages nss)
133 #:use-module (gnu packages openldap)
134 #:use-module (gnu packages password-utils)
135 #:use-module (gnu packages pcre)
136 #:use-module (gnu packages pdf)
137 #:use-module (gnu packages perl)
138 #:use-module (gnu packages photo)
139 #:use-module (gnu packages pkg-config)
140 #:use-module (gnu packages polkit)
141 #:use-module (gnu packages popt)
142 #:use-module (gnu packages pretty-print)
143 #:use-module (gnu packages pulseaudio)
144 #:use-module (gnu packages python)
145 #:use-module (gnu packages python-crypto)
146 #:use-module (gnu packages python-web)
147 #:use-module (gnu packages python-xyz)
148 #:use-module (gnu packages rdesktop)
149 #:use-module (gnu packages readline)
150 #:use-module (gnu packages ruby)
151 #:use-module (gnu packages rust)
152 #:use-module (gnu packages samba)
153 #:use-module (gnu packages scanner)
154 #:use-module (gnu packages selinux)
155 #:use-module (gnu packages slang)
156 #:use-module (gnu packages speech)
157 #:use-module (gnu packages spice)
158 #:use-module (gnu packages sqlite)
159 #:use-module (gnu packages ssh)
160 #:use-module (gnu packages tex)
161 #:use-module (gnu packages time)
162 #:use-module (gnu packages tls)
163 #:use-module (gnu packages version-control)
164 #:use-module (gnu packages video)
165 #:use-module (gnu packages virtualization)
166 #:use-module (gnu packages vpn)
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 artwork)
174 #:use-module (guix build-system cargo)
175 #:use-module (guix build-system cmake)
176 #:use-module (guix build-system glib-or-gtk)
177 #:use-module (guix build-system gnu)
178 #:use-module (guix build-system meson)
179 #:use-module (guix build-system python)
180 #:use-module (guix build-system trivial)
181 #:use-module (guix download)
182 #:use-module (guix git-download)
183 #:use-module ((guix licenses) #:prefix license:)
184 #:use-module (guix packages)
185 #:use-module (guix utils)
186 #:use-module (guix gexp)
187 #:use-module (guix monads)
188 #:use-module (guix store)
189 #:use-module (ice-9 match)
190 #:use-module (srfi srfi-1))
191
192 (define-public brasero
193 (package
194 (name "brasero")
195 (version "3.12.2")
196 (source (origin
197 (method url-fetch)
198 (uri (string-append "mirror://gnome/sources/brasero/"
199 (version-major+minor version) "/"
200 "brasero-" version ".tar.xz"))
201 (sha256
202 (base32
203 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
204 (build-system glib-or-gtk-build-system)
205 (arguments
206 `(#:configure-flags (list
207 (string-append "--with-girdir="
208 (assoc-ref %outputs "out")
209 "/share/gir-1.0")
210 (string-append "--with-typelibdir="
211 (assoc-ref %outputs "out")
212 "/lib/girepository-1.0"))
213 #:phases
214 (modify-phases %standard-phases
215 (add-before 'configure 'embed-growisofs
216 (lambda* (#:key inputs #:allow-other-keys)
217 (substitute* "plugins/growisofs/burn-growisofs.c"
218 (("\"growisofs") (string-append "\"" (which "growisofs"))))
219 #t)))))
220 (propagated-inputs
221 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
222 (native-inputs
223 `(("intltool" ,intltool)
224 ("itstool" ,itstool)
225 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
226 ("gobject-introspection" ,gobject-introspection)
227 ("pkg-config" ,pkg-config)))
228 (inputs
229 `(("dvd+rw-tools" ,dvd+rw-tools)
230 ("glib" ,glib)
231 ("gnome-doc-utils" ,gnome-doc-utils)
232 ("gstreamer" ,gstreamer)
233 ("gst-plugins-base" ,gst-plugins-base)
234 ("gtk+" ,gtk+)
235 ("libcanberra" ,libcanberra)
236 ("libice" ,libice)
237 ("libnotify" ,libnotify)
238 ("libsm" ,libsm)
239 ("libxml2" ,libxml2)
240 ("totem-pl-parser" ,totem-pl-parser)))
241 (home-page "https://wiki.gnome.org/Apps/Brasero")
242 (synopsis "CD/DVD burning tool for Gnome")
243 (description "Brasero is an application to burn CD/DVD for the Gnome
244 Desktop. It is designed to be as simple as possible and has some unique
245 features to enable users to create their discs easily and quickly.")
246 (license license:gpl2+)))
247
248 (define-public gnome-color-manager
249 (package
250 (name "gnome-color-manager")
251 (version "3.32.0")
252 (source (origin
253 (method url-fetch)
254 (uri (string-append "mirror://gnome/sources/" name "/"
255 (version-major+minor version) "/"
256 name "-" version ".tar.xz"))
257 (sha256
258 (base32
259 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
260 (build-system meson-build-system)
261 (arguments
262 `(#:glib-or-gtk? #t
263 #:phases
264 (modify-phases %standard-phases
265 (add-before
266 'check 'pre-check
267 (lambda _
268 ;; Tests require a running X server.
269 (system "Xvfb :1 &")
270 (setenv "DISPLAY" ":1")
271 #t)))))
272 (native-inputs
273 `(("desktop-file-utils" ,desktop-file-utils)
274 ("gettext" ,gettext-minimal)
275 ("glib:bin" ,glib "bin")
276 ("gtk+:bin" ,gtk+ "bin")
277 ("itstool" ,itstool)
278 ("pkg-config" ,pkg-config)
279 ("xorg-server" ,xorg-server-for-tests)))
280 (inputs
281 `(("adwaita-icon-theme" ,adwaita-icon-theme)
282 ("appstream-glib" ,appstream-glib)
283 ("colord-gtk" ,colord-gtk)
284 ("exiv2" ,exiv2)
285 ("gnome-desktop" ,gnome-desktop)
286 ("libcanberra" ,libcanberra)
287 ("libexif" ,libexif)
288 ("libtiff" ,libtiff)
289 ("libxrandr" ,libxrandr)
290 ("libxtst" ,libxtst)
291 ("libxxf86vm" ,libxxf86vm)
292 ("vte" ,vte)
293 ("xorgproto" ,xorgproto)))
294 (synopsis "Color profile manager for the GNOME desktop")
295 (description "GNOME Color Manager is a session framework that makes
296 it easy to manage, install and generate color profiles
297 in the GNOME desktop.")
298 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
299 (license license:gpl2+)))
300
301 (define-public gnome-online-miners
302 (package
303 (name "gnome-online-miners")
304 (version "3.30.0")
305 (source (origin
306 (method url-fetch)
307 (uri (string-append "mirror://gnome/sources/" name "/"
308 (version-major+minor version) "/"
309 name "-" version ".tar.xz"))
310 (sha256
311 (base32
312 "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"))))
313 (build-system glib-or-gtk-build-system)
314 (native-inputs
315 `(("gettext" ,gettext-minimal)
316 ("glib:bin" ,glib "bin")
317 ("gobject-introspection" ,gobject-introspection)
318 ("gtk+:bin" ,gtk+ "bin")
319 ("pkg-config" ,pkg-config)))
320 (inputs
321 `(("gnome-online-accounts" ,gnome-online-accounts)
322 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
323 ("grilo" ,grilo)
324 ("libgdata" ,libgdata)
325 ("libgfbgraph" ,gfbgraph)
326 ("libzapojit" ,libzapojit)
327 ("rest" ,rest)
328 ("tracker" ,tracker)))
329 (synopsis "Web Crawlers for GNOME")
330 (description "GNOME Online Miners provides a set of crawlers that
331 go through your online content and index them locally in Tracker.
332 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
333 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
334 (license license:gpl2+)))
335
336 (define-public gssdp
337 (package
338 (name "gssdp")
339 (version "1.2.2")
340 (source (origin
341 (method url-fetch)
342 (uri (string-append "mirror://gnome/sources/" name "/"
343 (version-major+minor version) "/"
344 name "-" version ".tar.xz"))
345 (sha256
346 (base32
347 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
348 (build-system meson-build-system)
349 (native-inputs
350 `(("gettext" ,gettext-minimal)
351 ("glib:bin" ,glib "bin")
352 ("gobject-introspection" ,gobject-introspection)
353 ("gtk-doc" ,gtk-doc)
354 ("pkg-config" ,pkg-config)
355 ("vala" ,vala)))
356 (inputs
357 `(("gtk+" ,gtk+)
358 ("libsoup" ,libsoup)))
359 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
360 Protocol} for GNOME")
361 (description "This package provides a library to handle resource discovery
362 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
363 a debugging tool, @command{gssdp-device-sniffer}.")
364 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
365 (license license:lgpl2.0+)))
366
367 (define-public gupnp
368 (package
369 (name "gupnp")
370 (version "1.2.2")
371 (source (origin
372 (method url-fetch)
373 (uri (string-append "mirror://gnome/sources/" name "/"
374 (version-major+minor version) "/"
375 name "-" version ".tar.xz"))
376 (sha256
377 (base32
378 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
379 (build-system meson-build-system)
380 (native-inputs
381 `(("gettext" ,gettext-minimal)
382 ("glib:bin" ,glib "bin")
383 ("gobject-introspection" ,gobject-introspection)
384 ("gtk-doc" ,gtk-doc)
385 ("pkg-config" ,pkg-config)
386 ("vala" ,vala)))
387 (inputs
388 `(("gssdp" ,gssdp)
389 ("gtk+" ,gtk+)
390 ("libsoup" ,libsoup)))
391 (synopsis "PnP API for GNOME")
392 (description "This package provides GUPnP, an object-oriented framework
393 for creating UPnP devices and control points, written in C using
394 @code{GObject} and @code{libsoup}.")
395 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
396 (license license:lgpl2.0+)))
397
398 (define-public gupnp-dlna
399 (package
400 (name "gupnp-dlna")
401 (version "0.10.5")
402 (source (origin
403 (method url-fetch)
404 (uri (string-append "mirror://gnome/sources/" name "/"
405 (version-major+minor version) "/"
406 name "-" version ".tar.xz"))
407 (sha256
408 (base32
409 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
410 (build-system gnu-build-system)
411 (native-inputs
412 `(("gettext" ,gettext-minimal)
413 ("glib:bin" ,glib "bin")
414 ("gobject-introspection" ,gobject-introspection)
415 ("gtk-doc" ,gtk-doc)
416 ("libxml" ,libxml2)
417 ("pkg-config" ,pkg-config)
418 ("vala" ,vala)))
419 (inputs
420 `(("gstreamer" ,gstreamer)
421 ("gupnp" ,gupnp)))
422 (propagated-inputs
423 `(("gst-plugins-base" ,gst-plugins-base)
424 ("gst-plugins-good" ,gst-plugins-good)))
425 (synopsis "GUPnP DLNA for GNOME")
426 (description "This package provides a small utility library to
427 support DLNA-related tasks such as media profile guessing, transcoding to a
428 given profile, etc. DLNA is a subset of UPnP A/V.")
429 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
430 (license license:lgpl2.0+)))
431
432 (define-public gupnp-av
433 (package
434 (name "gupnp-av")
435 (version "0.12.11")
436 (source (origin
437 (method url-fetch)
438 (uri (string-append "mirror://gnome/sources/" name "/"
439 (version-major+minor version) "/"
440 name "-" version ".tar.xz"))
441 (sha256
442 (base32
443 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
444 (build-system gnu-build-system)
445 (native-inputs
446 `(("gettext" ,gettext-minimal)
447 ("glib:bin" ,glib "bin")
448 ("gobject-introspection" ,gobject-introspection)
449 ("gtk-doc" ,gtk-doc)
450 ("libxml" ,libxml2)
451 ("pkg-config" ,pkg-config)))
452 (inputs
453 `(("gtk+" ,gtk+)
454 ("gupnp" ,gupnp)))
455 (synopsis "GUPnP A/V for GNOME")
456 (description "This package provides a small library for handling
457 and implementation of UPnP A/V profiles.")
458 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
459 (license license:lgpl2.0+)))
460
461 (define-public libmediaart
462 (package
463 (name "libmediaart")
464 (version "1.9.4")
465 (source (origin
466 (method url-fetch)
467 (uri (string-append "mirror://gnome/sources/" name "/"
468 (version-major+minor version) "/"
469 name "-" version ".tar.xz"))
470 (sha256
471 (base32
472 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
473 (build-system gnu-build-system)
474 (native-inputs
475 `(("glib:bin" ,glib "bin")
476 ("pkg-config" ,pkg-config)))
477 (inputs
478 `(("gdk-pixbuf" ,gdk-pixbuf)
479 ("gettext" ,gettext-minimal)
480 ("gobject-introspection" ,gobject-introspection)
481 ("gtk+:doc", gtk+ "doc")
482 ("vala" ,vala)))
483 (synopsis "Media art library for the GNOME desktop")
484 (description
485 "The libmediaart library is the foundation for media art caching,
486 extraction, and lookup for applications on the desktop.")
487 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
488 (license license:lgpl2.1+)))
489
490 (define-public gnome-initial-setup
491 (package
492 (name "gnome-initial-setup")
493 (version "3.32.1")
494 (source (origin
495 (method url-fetch)
496 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
497 (version-major+minor version)
498 "/gnome-initial-setup-" version ".tar.xz"))
499 (sha256
500 (base32
501 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
502 (build-system meson-build-system)
503 (arguments
504 '(#:configure-flags '(;; Enable camera support for user selfie.
505 "-Dcheese=auto"
506 "-Dsystemd=false")))
507 (native-inputs
508 `(("gettext" ,gettext-minimal)
509 ("glib:bin" ,glib "bin")
510 ("gobject-introspection" ,gobject-introspection)
511 ("gtk+:bin" ,gtk+ "bin")
512 ("pkg-config" ,pkg-config)))
513 (inputs
514 `(("accountsservice" ,accountsservice)
515 ;("adwaita-icon-theme" ,adwaita-icon-theme)
516 ("gdm" ,gdm)
517 ("geoclue" ,geoclue)
518 ("gnome-desktop" ,gnome-desktop)
519 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
520 ("gnome-online-accounts" ,gnome-online-accounts)
521 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
522 ("gstreamer" ,gstreamer)
523 ("ibus" ,ibus)
524 ("json-glib" ,json-glib)
525 ("krb5" ,mit-krb5)
526 ("libgweather" ,libgweather)
527 ("libsecret" ,libsecret)
528 ("network-manager" ,network-manager)
529 ("network-manager-applet" ,network-manager-applet)
530 ("packagekit" ,packagekit)
531 ("polkit" ,polkit)
532 ("pwquality" ,libpwquality)
533 ("rest" ,rest)
534 ("upower" ,upower)
535 ("webkitgtk" ,webkitgtk)))
536 (synopsis "Initial setup wizard for GNOME desktop")
537 (description "This package provides a set-up wizard when a
538 user logs into GNOME for the first time. It typically provides a
539 tour of all gnome components and allows the user to set them up.")
540 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
541 (license license:gpl2)))
542
543 (define-public gnome-user-share
544 (package
545 (name "gnome-user-share")
546 (version "3.33.1")
547 (source (origin
548 (method url-fetch)
549 (uri (string-append "mirror://gnome/sources/" name "/"
550 (version-major+minor version) "/"
551 name "-" version ".tar.xz"))
552 (sha256
553 (base32
554 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
555 (build-system meson-build-system)
556 (arguments
557 `(#:glib-or-gtk? #t
558 #:configure-flags
559 `("-Dsystemd=false"
560 ;; Enable nautilus extension for file sharing.
561 "-Dnautilus_extension=true")))
562 (native-inputs
563 `(("gettext" ,gettext-minimal)
564 ("glib:bin" ,glib "bin")
565 ("gobject-introspection" ,gobject-introspection)
566 ("gtk+:bin" ,gtk+ "bin")
567 ("pkg-config" ,pkg-config)
568 ("yelp-tools" ,yelp-tools)))
569 (inputs
570 `(("glib" ,glib)
571 ("gnome-bluetooth" ,gnome-bluetooth)
572 ("gtk+" ,gtk+)
573 ("libcanberra" ,libcanberra)
574 ("libnotify" ,libnotify)
575 ("nautilus" ,nautilus))) ; For nautilus extension.
576 (synopsis "File sharing for GNOME desktop")
577 (description "GNOME User Share is a small package that binds together
578 various free software projects to bring easy to use user-level file
579 sharing to the masses.")
580 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
581 (license license:gpl2+)))
582
583 (define-public sushi
584 (package
585 (name "sushi")
586 (version "3.32.1")
587 (source (origin
588 (method url-fetch)
589 (uri (string-append "mirror://gnome/sources/" name "/"
590 (version-major+minor version) "/"
591 name "-" version ".tar.xz"))
592 (sha256
593 (base32
594 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
595 (build-system meson-build-system)
596 (arguments
597 `(#:glib-or-gtk? #t
598 #:phases
599 (modify-phases %standard-phases
600 (add-after 'glib-or-gtk-wrap 'wrap-typelib
601 (lambda* (#:key outputs #:allow-other-keys)
602 (let ((prog (string-append (assoc-ref outputs "out")
603 "/bin/sushi")))
604 ;; Put existing typelibs before sushi's deps, so as to correctly
605 ;; infer gdk-pixbuf
606 (wrap-program prog
607 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
608 #t))))))
609 (native-inputs
610 `(("glib:bin" ,glib "bin")
611 ("gettext" ,gettext-minimal)
612 ("gobject-introspection" ,gobject-introspection)
613 ("pkg-config" ,pkg-config)))
614 (inputs
615 `(("clutter" ,clutter)
616 ("clutter-gst" ,clutter-gst)
617 ("clutter-gtk" ,clutter-gtk)
618 ("evince" ,evince) ; For file previewing.
619 ("freetype" ,freetype)
620 ("gdk-pixbuf" ,gdk-pixbuf)
621 ("gjs" ,gjs)
622 ("gst-plugins-base" ,gst-plugins-base)
623 ("gstreamer" ,gstreamer)
624 ("gtksourceview" ,gtksourceview-3)
625 ("harfbuzz" ,harfbuzz)
626 ("libepoxy" ,libepoxy)
627 ("libmusicbrainz" ,libmusicbrainz)
628 ("libxml2" ,libxml2)
629 ("neon" ,neon)
630 ("webkitgtk" ,webkitgtk)))
631 (synopsis "File previewer for the GNOME desktop")
632 (description "Sushi is a DBus-activated service that allows applications to
633 preview files on the GNOME desktop.")
634 (home-page "https://gitlab.gnome.org/GNOME/sushi")
635 (license license:gpl2+)))
636
637 (define-public rygel
638 (package
639 (name "rygel")
640 (version "0.38.3")
641 (source (origin
642 (method url-fetch)
643 (uri (string-append "mirror://gnome/sources/" name "/"
644 (version-major+minor version) "/"
645 name "-" version ".tar.xz"))
646 (sha256
647 (base32
648 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
649 (build-system gnu-build-system)
650 (native-inputs
651 `(("gettext" ,gettext-minimal)
652 ("gobject-introspection" ,gobject-introspection)
653 ("gtk-doc" ,gtk-doc)
654 ("pkg-config" ,pkg-config)
655 ("vala" ,vala)))
656 (inputs
657 `(("gdk-pixbuf" ,gdk-pixbuf)
658 ("gssdp" ,gssdp)
659 ("gstreamer" ,gstreamer)
660 ("gst-plugins-base" ,gst-plugins-base)
661 ("gtk+" ,gtk+)
662 ("gupnp" ,gupnp)
663 ("gupnp-av" ,gupnp-av)
664 ("gupnp-dlna" ,gupnp-dlna)
665 ("libgee" ,libgee)
666 ("libmediaart" ,libmediaart)
667 ("libsoup" ,libsoup)
668 ("libxslt" ,libxslt)
669 ("libunistring" ,libunistring)
670 ("tracker" ,tracker)))
671 (synopsis "Share audio, video, and pictures with other devices")
672 (description
673 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
674 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
675 pictures, and to control a media player on your home network.
676
677 Rygel achieves interoperability with other devices by trying to conform to the
678 strict requirements of DLNA and by converting media on-the-fly to formats that
679 client devices can handle.")
680 (home-page "https://wiki.gnome.org/Projects/Rygel")
681 (license (list
682 ;; For logo (data/icons/*).
683 license:cc-by-sa3.0
684 ;; For all others.
685 license:lgpl2.1+))))
686
687 (define-public libnma
688 (package
689 (name "libnma")
690 (version "1.8.26")
691 (source (origin
692 (method url-fetch)
693 (uri (string-append "mirror://gnome/sources/" name "/"
694 (version-major+minor version) "/"
695 name "-" version ".tar.xz"))
696 (sha256
697 (base32
698 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
699 (build-system meson-build-system)
700 (arguments
701 `(#:glib-or-gtk? #t))
702 (native-inputs
703 `(("gettext" ,gettext-minimal)
704 ("glib:bin" ,glib "bin")
705 ("gtk-doc" ,gtk-doc)
706 ("gobject-introspection" ,gobject-introspection)
707 ("pkg-config" ,pkg-config)))
708 (inputs
709 `(("adwaita-icon-theme" ,adwaita-icon-theme)
710 ("gcr" ,gcr)
711 ("gtk+" ,gtk+)
712 ("iso-codes" ,iso-codes)
713 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
714 ("network-manager" ,network-manager)))
715 (synopsis "Network Manager's applet library")
716 (description "Libnma is an applet library for Network Manager. It was
717 initially part of network-manager-applet and has now become a separate
718 project.")
719 (home-page "https://gitlab.gnome.org/GNOME/libnma")
720
721 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
722 ;; "LGPL-2.1+".
723 (license license:gpl2+)))
724
725 (define-public gnome-menus
726 (package
727 (name "gnome-menus")
728 (version "3.32.0")
729 (source (origin
730 (method url-fetch)
731 (uri (string-append "mirror://gnome/sources/gnome-menus/"
732 (version-major+minor version) "/"
733 name "-" version ".tar.xz"))
734 (sha256
735 (base32
736 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
737 (build-system gnu-build-system)
738 (native-inputs
739 `(("gettext" ,gettext-minimal)
740 ("glib" ,glib)
741 ("pkg-config" ,pkg-config)))
742 (synopsis "Menu support for GNOME desktop")
743 (description "GNOME Menus contains the libgnome-menu library, the layout
744 configuration files for the GNOME menu, as well as a simple menu editor.")
745 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
746 (license license:lgpl2.0+)))
747
748 (define-public deja-dup
749 (package
750 (name "deja-dup")
751 (version "34.3")
752 (source (origin
753 (method url-fetch)
754 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
755 (sha256
756 (base32
757 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
758 (patches
759 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
760 (build-system glib-or-gtk-build-system)
761 (arguments
762 `(#:modules ((guix build gnu-build-system)
763 ((guix build cmake-build-system) #:prefix cmake:)
764 (guix build glib-or-gtk-build-system)
765 (guix build utils))
766 #:imported-modules (,@%glib-or-gtk-build-system-modules
767 (guix build cmake-build-system))
768 #:test-target "test"
769 #:configure-flags (list (string-append
770 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
771 (string-append
772 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
773 #:phases
774 (modify-phases %standard-phases
775 (add-after 'unpack 'patch-lockfile-deletion
776 (lambda rest
777 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
778 (("/bin/rm")
779 (which "rm")))))
780 (replace 'configure
781 (assoc-ref cmake:%standard-phases 'configure))
782 (delete 'check) ;; Fails due to issues with DBus
783 (add-after 'install 'wrap-deja-dup
784 (lambda* (#:key inputs outputs #:allow-other-keys)
785 (let ((python (assoc-ref inputs "python"))
786 (python-path (getenv "PYTHONPATH"))
787 (duplicity (assoc-ref inputs "duplicity"))
788 (out (assoc-ref outputs "out")))
789 (for-each
790 (lambda (program)
791 (wrap-program program
792 `("PATH" ":" prefix (,(string-append python "/bin")
793 ,(string-append duplicity "/bin"))))
794 (wrap-program program
795 `("PYTHONPATH" ":" prefix (,python-path))))
796
797 (find-files (string-append out "/bin")))
798 #t))))))
799 (inputs
800 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
801 ("gobject-introspection" ,gobject-introspection)
802 ("duplicity" ,duplicity)
803 ("python" ,python-2)
804 ("python-pygobject" ,python2-pygobject)
805 ("gtk+" ,gtk+)
806 ("libnotify" ,libnotify)
807 ("libpeas" ,libpeas)
808 ("libsecret" ,libsecret)
809 ("packagekit" ,packagekit)))
810 (native-inputs
811 `(("pkg-config" ,pkg-config)
812 ("vala" ,vala)
813 ("gettext" ,gettext-minimal)
814 ("itstool" ,itstool)
815 ("intltool" ,intltool)
816 ("cmake" ,cmake-minimal)))
817 (home-page "https://launchpad.net/deja-dup")
818 (synopsis "Simple backup tool, for regular encrypted backups")
819 (description
820 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
821 uses duplicity as the backend, which supports incremental backups and storage
822 either on a local, or remote machine via a number of methods.")
823 (license license:gpl3+)))
824
825 (define-public gnome-user-docs
826 (package
827 (name "gnome-user-docs")
828 (version "3.32.3")
829 (source
830 (origin
831 (method url-fetch)
832 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
833 (version-major+minor version)
834 "/gnome-user-docs-" version ".tar.xz"))
835 (sha256
836 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
837 (build-system gnu-build-system)
838 (native-inputs
839 `(("gettext" ,gettext-minimal)
840 ("itstool" ,itstool)
841 ("pkg-config" ,pkg-config)
842 ("xmllint" ,libxml2)))
843 (synopsis "User documentation for the GNOME desktop")
844 (description
845 "The GNOME User Documentation explains how to use the GNOME desktop and its
846 components. It covers usage and setup of the core GNOME programs by end-users
847 and system administrators.")
848 (home-page "https://live.gnome.org/DocumentationProject")
849 (license license:cc-by3.0)))
850
851 (define-public gnome-getting-started-docs
852 (package
853 (name "gnome-getting-started-docs")
854 (version "3.32.2")
855 (source
856 (origin
857 (method url-fetch)
858 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
859 (version-major+minor version)
860 "/gnome-getting-started-docs-" version ".tar.xz"))
861 (sha256
862 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
863 (build-system gnu-build-system)
864 (native-inputs
865 `(("gettext" ,gettext-minimal)
866 ("itstool" ,itstool)
867 ("pkg-config" ,pkg-config)
868 ("xmllint" ,libxml2)))
869 (synopsis "Help to get new users started with the GNOME desktop")
870 (description
871 "The GNOME Getting Started Documentation contains GNOME's intuitive
872 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
873
874 It is normally used together with @command{gnome-initial-setup}, but is also
875 useful as a tutorial and users' guide for new or less experienced users.")
876 (home-page "https://live.gnome.org/DocumentationProject")
877 (license license:cc-by-sa3.0)))
878
879 (define-public dia
880 ;; This version from GNOME's repository includes fixes for compiling with
881 ;; recent versions of the build tools. The latest activity on the
882 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
883 ;; fixes in 2016.
884 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
885 (package
886 (name "dia")
887 (version (git-version "0.97.3" "1" commit))
888 (source (origin
889 (method git-fetch)
890 (uri (git-reference
891 (url "https://gitlab.gnome.org/GNOME/dia.git/")
892 (commit commit)))
893 (file-name (git-file-name name version))
894 (sha256
895 (base32
896 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
897 (build-system gnu-build-system)
898 (inputs
899 `(("freetype" ,freetype)
900 ("gdk-pixbuf" ,gdk-pixbuf)
901 ("gtk+" ,gtk+-2)
902 ("libart-lgpl" ,libart-lgpl)
903 ("libxml2" ,libxml2)
904 ("pango" ,pango)))
905 (native-inputs
906 `(("autoconf" ,autoconf)
907 ("automake" ,automake)
908 ("intltool" ,intltool)
909 ("glib" ,glib "bin")
910 ("libtool" ,libtool)
911 ("perl" ,perl)
912 ("pkg-config" ,pkg-config)
913 ("python-wrapper" ,python-wrapper)))
914 (arguments
915 `(#:phases
916 (modify-phases %standard-phases
917 (add-before 'bootstrap 'dont-configure-during-bootstrap
918 (lambda _
919 (setenv "NOCONFIGURE" "true")
920 #t)))))
921 (home-page "https://wiki.gnome.org/Apps/Dia")
922 (synopsis "Diagram creation for GNOME")
923 (description "Dia can be used to draw different types of diagrams, and
924 includes support for UML static structure diagrams (class diagrams), entity
925 relationship modeling, and network diagrams. The program supports various file
926 formats like PNG, SVG, PDF and EPS.")
927 (license license:gpl2+))))
928
929 ;; This is the unstable release, but it is required for the current stable
930 ;; release of gvfs (1.38.1).
931 (define-public libgdata
932 (package
933 (name "libgdata")
934 (version "0.17.9")
935 (source (origin
936 (method url-fetch)
937 (uri (string-append "mirror://gnome/sources/" name "/"
938 (version-major+minor version) "/"
939 name "-" version ".tar.xz"))
940 (sha256
941 (base32
942 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
943 (build-system gnu-build-system)
944 (arguments
945 '(#:phases
946 (modify-phases %standard-phases
947 (add-before 'check 'disable-failing-tests
948 (lambda _
949 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
950 ;; They have been removed in libgdata 0.17.6, so just do the same.
951 (substitute* "gdata/tests/Makefile"
952 (("picasaweb\\$\\(EXEEXT\\) ") ""))
953 #t)))))
954 (native-inputs
955 `(("glib:bin" ,glib "bin")
956 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
957 ("intltool" ,intltool)
958 ("pkg-config" ,pkg-config)
959 ("uhttpmock" ,uhttpmock)))
960 (inputs
961 `(("cyrus-sasl" ,cyrus-sasl)
962 ("glib-networking" ,glib-networking)))
963 (propagated-inputs
964 `(("gcr" ,gcr)
965 ("glib" ,glib)
966 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
967 ("json-glib" ,json-glib)
968 ("liboauth" ,liboauth)
969 ("libsoup" ,libsoup)
970 ("libxml2" ,libxml2)))
971 (home-page "https://wiki.gnome.org/Projects/libgdata")
972 (synopsis "Library for accessing online service APIs")
973 (description
974 "libgdata is a GLib-based library for accessing online service APIs using
975 the GData protocol — most notably, Google's services. It provides APIs to
976 access the common Google services, and has full asynchronous support.")
977 (license license:lgpl2.1+)))
978
979 (define-public libgxps
980 (package
981 (name "libgxps")
982 (version "0.3.1")
983 (source (origin
984 (method url-fetch)
985 (uri (string-append "mirror://gnome/sources/" name "/"
986 (version-major+minor version) "/"
987 name "-" version ".tar.xz"))
988 (sha256
989 (base32
990 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
991 (build-system meson-build-system)
992 (native-inputs
993 `(("gobject-introspection" ,gobject-introspection)
994 ("pkg-config" ,pkg-config)))
995 (inputs
996 `(("gtk+" ,gtk+)
997 ("libjpeg" ,libjpeg-turbo)
998 ("lcms" ,lcms)
999 ("libtiff" ,libtiff)))
1000 (propagated-inputs
1001 ;; In Requires of libgxps.pc.
1002 `(("cairo" ,cairo)
1003 ("glib" ,glib)
1004 ("libarchive" ,libarchive)))
1005 (home-page "https://wiki.gnome.org/Projects/libgxps")
1006 (synopsis "GObject-based library for handling and rendering XPS documents")
1007 (description
1008 "libgxps is a GObject-based library for handling and rendering XPS
1009 documents. This package also contains binaries that can convert XPS documents
1010 to other formats.")
1011 (license license:lgpl2.1+)))
1012
1013 (define-public gnome-characters
1014 (package
1015 (name "gnome-characters")
1016 (version "3.30.0")
1017 (source
1018 (origin
1019 (method url-fetch)
1020 (uri (string-append "mirror://gnome/sources/"
1021 "gnome-characters/" (version-major+minor version)
1022 "/gnome-characters-" version ".tar.xz"))
1023 (sha256
1024 (base32
1025 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1026 (build-system meson-build-system)
1027 (arguments
1028 `(#:glib-or-gtk? #t
1029 #:phases (modify-phases %standard-phases
1030 (add-after 'install 'wrap
1031 (lambda* (#:key outputs #:allow-other-keys)
1032 ;; GNOME Characters needs Typelib files from GTK and
1033 ;; gnome-desktop.
1034 (wrap-program (string-append (assoc-ref outputs "out")
1035 "/bin/gnome-characters")
1036 `("GI_TYPELIB_PATH" ":" prefix
1037 (,(getenv "GI_TYPELIB_PATH"))))
1038 #t)))))
1039 (native-inputs
1040 `(("gettext" ,gettext-minimal)
1041 ("glib:bin" ,glib "bin")
1042 ("gtk+:bin" ,gtk+ "bin")
1043 ("pkg-config" ,pkg-config)
1044 ("python" ,python-minimal)))
1045 (inputs
1046 `(("gjs" ,gjs)
1047 ("gtk+" ,gtk+)
1048 ("libunistring" ,libunistring)
1049 ("gnome-desktop" ,gnome-desktop)))
1050 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1051 (synopsis "Find and insert unusual characters")
1052 (description "Characters is a simple utility application to find
1053 and insert unusual characters. It allows you to quickly find the
1054 character you are looking for by searching for keywords.")
1055 (license license:bsd-3)))
1056
1057 (define-public gnome-common
1058 (package
1059 (name "gnome-common")
1060 (version "3.18.0")
1061 (source
1062 (origin
1063 (method url-fetch)
1064 (uri (string-append "mirror://gnome/sources/" name "/"
1065 (version-major+minor version) "/"
1066 name "-" version ".tar.xz"))
1067 (sha256
1068 (base32
1069 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1070 (build-system gnu-build-system)
1071 (home-page "https://www.gnome.org/")
1072 (synopsis "Bootstrap GNOME modules built from Git")
1073 (description "gnome-common contains various files needed to bootstrap
1074 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1075 can be used to configure a source directory checked out from Git and some
1076 commonly used macros.")
1077 (license license:gpl2+)))
1078
1079 (define-public gnome-contacts
1080 (package
1081 (name "gnome-contacts")
1082 (version "3.32.1")
1083 (source (origin
1084 (method url-fetch)
1085 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1086 (version-major+minor version) "/"
1087 name "-" version ".tar.xz"))
1088 (sha256
1089 (base32
1090 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
1091 (build-system meson-build-system)
1092 (arguments
1093 `(#:phases
1094 (modify-phases %standard-phases
1095 (add-after 'unpack 'generate-vapis
1096 (lambda* (#:key inputs #:allow-other-keys)
1097 ;; To generate goa's missing .vapi file
1098 (define goa
1099 (assoc-ref inputs "gnome-online-accounts:lib"))
1100
1101 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1102 "--library=goa-1.0"
1103 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1104 #t)))))
1105 (native-inputs
1106 `(("glib:bin" ,glib "bin")
1107 ("gtk+:bin" ,gtk+ "bin")
1108 ("pkg-config" ,pkg-config)))
1109 (inputs
1110 `(("cheese" ,cheese)
1111 ("docbook-xml" ,docbook-xml)
1112 ("dockbook-xsl" ,docbook-xsl)
1113 ("evolution-data-server" ,evolution-data-server)
1114 ("gettext" ,gettext-minimal)
1115 ("gnome-desktop" ,gnome-desktop)
1116 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1117 ("gobject-introspection" ,gobject-introspection)
1118 ("gst-plugins-base" ,gst-plugins-base)
1119 ("gtk+" ,gtk+)
1120 ("libgee" ,libgee)
1121 ("libxslt" ,libxslt)
1122 ("telepathy-glib" ,telepathy-glib)
1123 ("vala" ,vala)))
1124 (propagated-inputs
1125 `(("folks", folks)
1126 ("telepathy-mission-control" ,telepathy-mission-control)))
1127 (synopsis "GNOME's integrated address book")
1128 (description
1129 "GNOME Contacts organizes your contact information from online and
1130 offline sources, providing a centralized place for managing your contacts.")
1131 (home-page "https://wiki.gnome.org/Apps/Contacts")
1132 (license license:gpl2+)))
1133
1134 (define-public gnome-desktop
1135 (package
1136 (name "gnome-desktop")
1137 (version "3.32.2")
1138 (source
1139 (origin
1140 (method url-fetch)
1141 (uri (string-append "mirror://gnome/sources/" name "/"
1142 (version-major+minor version) "/"
1143 name "-" version ".tar.xz"))
1144 (sha256
1145 (base32
1146 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
1147 (build-system meson-build-system)
1148 (arguments
1149 '(#:phases
1150 (modify-phases %standard-phases
1151 (add-before 'configure 'patch-path
1152 (lambda* (#:key inputs #:allow-other-keys)
1153 (let ((libc (assoc-ref inputs "libc")))
1154 (substitute* "libgnome-desktop/gnome-languages.c"
1155 (("\"locale\"")
1156 (string-append "\"" libc "/bin/locale\"")))
1157 #t)))
1158 (add-before 'check 'pre-check
1159 (lambda* (#:key inputs #:allow-other-keys)
1160 ;; Tests require a running X server and locales.
1161 (system "Xvfb :1 &")
1162 (setenv "DISPLAY" ":1")
1163 (setenv "GUIX_LOCPATH"
1164 (string-append (assoc-ref inputs "glibc-locales")
1165 "/lib/locale"))
1166 #t)))))
1167 (native-inputs
1168 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1169 ("glibc-locales" ,glibc-locales) ; for tests
1170 ("gobject-introspection" ,gobject-introspection)
1171 ("itstool" ,itstool)
1172 ("intltool" ,intltool)
1173 ("pkg-config" ,pkg-config)
1174 ("xmllint" ,libxml2)
1175 ("xorg-server" ,xorg-server-for-tests)))
1176 (propagated-inputs
1177 ;; Required by gnome-desktop-3.0.pc.
1178 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1179 ("gtk+" ,gtk+)
1180 ("iso-codes" ,iso-codes)
1181 ("libseccomp" ,libseccomp)
1182 ("libx11" ,libx11)
1183 ("xkeyboard-config" ,xkeyboard-config)))
1184 (inputs
1185 `(("gdk-pixbuf" ,gdk-pixbuf)
1186 ("glib" ,glib)
1187 ("libxext" ,libxext)
1188 ("libxkbfile" ,libxkbfile)
1189 ("libxrandr" ,libxrandr)))
1190 (home-page "https://www.gnome.org/")
1191 (synopsis
1192 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1193 (description
1194 "The libgnome-desktop library provides API shared by several applications
1195 on the desktop, but that cannot live in the platform for various reasons.
1196 There is no API or ABI guarantee, although we are doing our best to provide
1197 stability. Documentation for the API is available with gtk-doc.
1198
1199 The gnome-about program helps find which version of GNOME is installed.")
1200 ; Some bits under the LGPL.
1201 (license license:gpl2+)))
1202
1203 (define-public gnome-doc-utils
1204 (package
1205 (name "gnome-doc-utils")
1206 (version "0.20.10")
1207 (source
1208 (origin
1209 (method url-fetch)
1210 (uri (string-append "mirror://gnome/sources/" name "/"
1211 (version-major+minor version) "/"
1212 name "-" version ".tar.xz"))
1213 (sha256
1214 (base32
1215 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1216 (build-system gnu-build-system)
1217 (native-inputs
1218 `(("intltool" ,intltool)
1219 ("docbook-xml" ,docbook-xml-4.4)
1220 ("python2-libxml2" ,python2-libxml2)
1221 ("libxml2" ,libxml2)
1222 ("libxslt" ,libxslt)
1223 ("pkg-config" ,pkg-config)
1224 ("python-2" ,python-2)))
1225 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1226 (synopsis
1227 "Documentation utilities for the Gnome project")
1228 (description
1229 "Gnome-doc-utils is a collection of documentation utilities for the
1230 Gnome project. It includes xml2po tool which makes it easier to translate
1231 and keep up to date translations of documentation.")
1232 (license license:gpl2+))) ; xslt under lgpl
1233
1234 (define-public gnome-disk-utility
1235 (package
1236 (name "gnome-disk-utility")
1237 (version "3.32.1")
1238 (source (origin
1239 (method url-fetch)
1240 (uri (string-append "mirror://gnome/sources/" name "/"
1241 (version-major+minor version) "/"
1242 name "-" version ".tar.xz"))
1243 (sha256
1244 (base32
1245 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
1246 (build-system meson-build-system)
1247 (arguments
1248 '(#:phases
1249 (modify-phases %standard-phases
1250 (add-after 'unpack 'skip-gtk-update-icon-cache
1251 ;; Don't create 'icon-theme.cache'.
1252 (lambda _
1253 (substitute* "meson_post_install.py"
1254 (("gtk-update-icon-cache") "true"))
1255 #t)))))
1256 (native-inputs
1257 `(("glib:bin" ,glib "bin")
1258 ("intltool" ,intltool)
1259 ("pkg-config" ,pkg-config)
1260 ("docbook-xml" ,docbook-xml)
1261 ("docbook-xsl" ,docbook-xsl)
1262 ("libxml2" ,libxml2)
1263 ("libxslt" ,libxslt)))
1264 (inputs
1265 `(("glib" ,glib)
1266 ("appstream-glib" ,appstream-glib)
1267 ("gnome-settings-daemon" ,gnome-settings-daemon)
1268 ("gtk+" ,gtk+)
1269 ("libcanberra" ,libcanberra)
1270 ("libdvdread" ,libdvdread)
1271 ("libnotify" ,libnotify)
1272 ("libpwquality" ,libpwquality)
1273 ("libsecret" ,libsecret)
1274 ("udisks" ,udisks)))
1275 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1276 (synopsis "Disk management utility for GNOME")
1277 (description "Disk management utility for GNOME.")
1278 (license license:gpl2+)))
1279
1280 (define-public gnome-font-viewer
1281 (package
1282 (name "gnome-font-viewer")
1283 (version "3.30.0")
1284 (source (origin
1285 (method url-fetch)
1286 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1287 (version-major+minor version)
1288 "/gnome-font-viewer-" version ".tar.xz"))
1289 (sha256
1290 (base32
1291 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1292 (build-system meson-build-system)
1293 (arguments
1294 '(#:phases
1295 (modify-phases %standard-phases
1296 (add-after 'unpack 'patch-post-install-script
1297 (lambda _
1298 (substitute* "meson-postinstall.sh"
1299 (("update-desktop-database") (which "true")))
1300 #t)))))
1301 (native-inputs
1302 `(("gettext" ,gettext-minimal)
1303 ("glib:bin" ,glib "bin")
1304 ("pkg-config" ,pkg-config)))
1305 (inputs
1306 `(("glib" ,glib)
1307 ("gnome-desktop" ,gnome-desktop)
1308 ("gtk+" ,gtk+)))
1309 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1310 (synopsis "GNOME Fonts")
1311 (description "Application to show you the fonts installed on your computer
1312 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1313 the font would look under various sizes.")
1314 (license license:gpl2+)))
1315
1316 (define-public gcr
1317 (package
1318 (name "gcr")
1319 (version "3.28.1")
1320 (source (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 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
1328 (patches
1329 (list
1330 ;; This patch solves an ordering issue that showed up when
1331 ;; running the test suite against newer Glib 2.60. See
1332 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
1333 (origin
1334 (method url-fetch)
1335 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
1336 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
1337 (file-name "gcr-hashtable-ordering.patch")
1338 (sha256
1339 (base32
1340 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
1341 (build-system gnu-build-system)
1342 (arguments
1343 '(#:phases
1344 (modify-phases %standard-phases
1345 ;; These fail because /var/lib/dbus/machine-id is not present in the
1346 ;; build environment.
1347 (add-after 'unpack 'disable-failing-tests
1348 (lambda _
1349 (substitute* "gcr/test-system-prompt.c"
1350 (("g_test_add") "//")
1351 (("return.*") "return 0;"))
1352 #t))
1353 (add-before 'check 'pre-check
1354 (lambda _
1355 ;; Some tests expect to write to $HOME.
1356 (setenv "HOME" "/tmp")
1357 #t)))))
1358 (inputs
1359 `(("dbus" ,dbus)
1360 ("gnupg" ,gnupg) ;called as a child process during tests
1361 ("libgcrypt" ,libgcrypt)))
1362 (native-inputs
1363 `(("python" ,python-2) ;for tests
1364 ("pkg-config" ,pkg-config)
1365 ("glib" ,glib "bin")
1366 ("gobject-introspection" ,gobject-introspection)
1367 ("intltool" ,intltool)
1368 ("libxml2" ,libxml2)
1369 ("vala" ,vala)
1370 ("xsltproc" ,libxslt)))
1371 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1372 (propagated-inputs
1373 `(("p11-kit" ,p11-kit)
1374 ("glib" ,glib)
1375 ("gtk+" ,gtk+)))
1376 (home-page "https://www.gnome.org")
1377 (synopsis "Libraries for displaying certificates and accessing key stores")
1378 (description
1379 "The GCR package contains libraries used for displaying certificates and
1380 accessing key stores. It also provides the viewer for crypto files on the
1381 GNOME Desktop.")
1382 (license license:lgpl2.1+)))
1383
1384 (define-public libgnome-keyring
1385 (package
1386 (name "libgnome-keyring")
1387 (version "3.12.0")
1388 (source (origin
1389 (method url-fetch)
1390 (uri (string-append "mirror://gnome/sources/" name "/"
1391 (version-major+minor version) "/"
1392 name "-" version ".tar.xz"))
1393 (sha256
1394 (base32
1395 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1396 (build-system gnu-build-system)
1397 (inputs
1398 `(("libgcrypt" ,libgcrypt)
1399 ("dbus" ,dbus)))
1400 (native-inputs
1401 `(("pkg-config" ,pkg-config)
1402 ("glib" ,glib "bin")
1403 ("intltool" ,intltool)))
1404 (propagated-inputs
1405 ;; Referred to in .h files and .pc.
1406 `(("glib" ,glib)))
1407 (home-page "https://www.gnome.org")
1408 (synopsis "Accessing passwords from the GNOME keyring")
1409 (description
1410 "Client library to access passwords from the GNOME keyring.")
1411
1412 ;; Though a couple of files are LGPLv2.1+.
1413 (license license:lgpl2.0+)))
1414
1415 (define-public gnome-keyring
1416 (package
1417 (name "gnome-keyring")
1418 (version "3.28.2")
1419 (source (origin
1420 (method url-fetch)
1421 (uri (string-append "mirror://gnome/sources/" name "/"
1422 (version-major+minor version) "/"
1423 name "-" version ".tar.xz"))
1424 (sha256
1425 (base32
1426 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
1427 (build-system gnu-build-system)
1428 (arguments
1429 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1430 ;not exist
1431 #:configure-flags
1432 (list
1433 (string-append "--with-pkcs11-config="
1434 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1435 (string-append "--with-pkcs11-modules="
1436 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1437 #:phases
1438 (modify-phases %standard-phases
1439 (add-after 'unpack 'fix-/bin/sh-reference
1440 (lambda _
1441 (substitute* "po/Makefile.in.in"
1442 (("/bin/sh") (which "sh")))
1443 #t))
1444 (add-after 'unpack 'fix-docbook
1445 (lambda* (#:key inputs #:allow-other-keys)
1446 (substitute* "docs/Makefile.am"
1447 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1448 (string-append (assoc-ref inputs "docbook-xsl")
1449 "/xml/xsl/docbook-xsl-"
1450 ,(package-version docbook-xsl)
1451 "/manpages/docbook.xsl")))
1452 (setenv "XML_CATALOG_FILES"
1453 (string-append (assoc-ref inputs "docbook-xml")
1454 "/xml/dtd/docbook/catalog.xml"))
1455 ;; Rerun the whole thing to avoid version mismatch ("This is
1456 ;; Automake 1.15.1, but the definition used by this
1457 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1458 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1459 (invoke "autoconf")
1460 (invoke "aclocal")
1461 (invoke "automake" "-ac"))))))
1462 (inputs
1463 `(("libgcrypt" ,libgcrypt)
1464 ("linux-pam" ,linux-pam)
1465 ("openssh" ,openssh)
1466 ("dbus" ,dbus)
1467 ("gcr" ,gcr)))
1468 (native-inputs
1469 `(("pkg-config" ,pkg-config)
1470 ("glib" ,glib "bin")
1471 ("glib" ,glib) ; for m4 macros
1472 ("python" ,python-2) ;for tests
1473 ("intltool" ,intltool)
1474 ("autoconf" ,autoconf)
1475 ("automake" ,automake)
1476 ("libxslt" ,libxslt) ;for documentation
1477 ("docbook-xml" ,docbook-xml-4.2)
1478 ("docbook-xsl" ,docbook-xsl)))
1479 (home-page "https://www.gnome.org")
1480 (synopsis "Daemon to store passwords and encryption keys")
1481 (description
1482 "gnome-keyring is a program that keeps passwords and other secrets for
1483 users. It is run as a daemon in the session, similar to ssh-agent, and other
1484 applications locate it via an environment variable or D-Bus.
1485
1486 The program can manage several keyrings, each with its own master password,
1487 and there is also a session keyring which is never stored to disk, but
1488 forgotten when the session ends.")
1489 (license license:lgpl2.1+)))
1490
1491 (define-public evince
1492 (package
1493 (name "evince")
1494 (version "3.34.2")
1495 (source (origin
1496 (method url-fetch)
1497 (uri (string-append "mirror://gnome/sources/evince/"
1498 (version-major+minor version) "/"
1499 "evince-" version ".tar.xz"))
1500 (sha256
1501 (base32
1502 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
1503 (build-system glib-or-gtk-build-system)
1504 (arguments
1505 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1506 #:phases
1507 (modify-phases %standard-phases
1508 (add-before 'install 'skip-gtk-update-icon-cache
1509 ;; Don't create 'icon-theme.cache'.
1510 (lambda _
1511 (substitute* "data/Makefile"
1512 (("gtk-update-icon-cache") "true"))
1513 #t)))))
1514 (inputs
1515 `(("libarchive" ,libarchive)
1516 ("libgxps" ,libgxps)
1517 ("libspectre" ,libspectre)
1518 ("djvulibre" ,djvulibre)
1519 ("ghostscript" ,ghostscript)
1520 ("poppler" ,poppler)
1521 ("libtiff" ,libtiff)
1522 ;; TODO:
1523 ;; Build libkpathsea as a shared library for DVI support.
1524 ;; ("libkpathsea" ,texlive-bin)
1525 ("gnome-desktop" ,gnome-desktop)
1526 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1527 ("gspell" ,gspell)
1528 ("libgnome-keyring" ,libgnome-keyring)
1529 ("adwaita-icon-theme" ,adwaita-icon-theme)
1530 ("gdk-pixbuf" ,gdk-pixbuf)
1531 ("atk" ,atk)
1532 ("pango" ,pango)
1533 ("gtk+" ,gtk+)
1534 ("glib" ,glib)
1535 ("libxml2" ,libxml2)
1536 ("libsm" ,libsm)
1537 ("libice" ,libice)
1538 ("shared-mime-info" ,shared-mime-info)
1539 ("dconf" ,dconf)
1540 ("libcanberra" ,libcanberra)
1541 ("libsecret" ,libsecret)
1542
1543 ;; For tests.
1544 ("dogtail" ,python2-dogtail)))
1545 (native-inputs
1546 `(("itstool" ,itstool)
1547 ("intltool" ,intltool)
1548 ("glib" ,glib "bin")
1549 ("gobject-introspection" ,gobject-introspection)
1550 ("pkg-config" ,pkg-config)
1551 ("xmllint" ,libxml2)))
1552 (home-page
1553 "https://www.gnome.org/projects/evince/")
1554 (synopsis "GNOME's document viewer")
1555 (description
1556 "Evince is a document viewer for multiple document formats. It
1557 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1558 of Evince is to replace the multiple document viewers that exist
1559 on the GNOME Desktop with a single simple application.")
1560 (license license:gpl2+)))
1561
1562 (define-public gsettings-desktop-schemas
1563 (package
1564 (name "gsettings-desktop-schemas")
1565 (version "3.32.0")
1566 (source
1567 (origin
1568 (method url-fetch)
1569 (uri (string-append "mirror://gnome/sources/" name "/"
1570 (version-major+minor version) "/"
1571 name "-" version ".tar.xz"))
1572 (sha256
1573 (base32
1574 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1575 (build-system meson-build-system)
1576 (arguments
1577 '(#:phases (modify-phases %standard-phases
1578 (add-after 'unpack 'set-adwaita-theme-file-name
1579 (lambda* (#:key inputs #:allow-other-keys)
1580 ;; Provide the correct file name of the default GNOME
1581 ;; background, 'adwaita-timed.xml'.
1582 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1583 (substitute* (find-files "schemas"
1584 "\\.gschema\\.xml\\.in$")
1585 (("@datadir@/backgrounds/gnome")
1586 (string-append theme "/share/backgrounds/gnome")))
1587 #t))))))
1588 (inputs
1589 `(("glib" ,glib)
1590 ("gnome-backgrounds" ,gnome-backgrounds)))
1591 (native-inputs
1592 `(("intltool" ,intltool)
1593 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1594 ("gobject-introspection" ,gobject-introspection)
1595 ("pkg-config" ,pkg-config)))
1596 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1597 (synopsis
1598 "GNOME settings for various desktop components")
1599 (description
1600 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1601 for settings shared by various components of the GNOME desktop.")
1602 (license license:lgpl2.1+)))
1603
1604 (define-public icon-naming-utils
1605 (package
1606 (name "icon-naming-utils")
1607 (version "0.8.90")
1608 (source
1609 (origin
1610 (method url-fetch)
1611 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1612 version ".tar.bz2"))
1613 (sha256
1614 (base32
1615 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1616 (build-system gnu-build-system)
1617 (inputs
1618 `(("perl" ,perl)
1619 ("perl-xml-simple" ,perl-xml-simple)))
1620 (arguments
1621 '(#:phases
1622 (modify-phases %standard-phases
1623 (add-after 'install 'set-load-paths
1624 ;; Tell 'icon-name-mapping' where XML::Simple is.
1625 (lambda* (#:key outputs #:allow-other-keys)
1626 (let* ((out (assoc-ref outputs "out"))
1627 (prog (string-append out "/libexec/icon-name-mapping")))
1628 (wrap-program
1629 prog
1630 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1631 #t)))))
1632 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1633 (synopsis
1634 "Utility to implement the Freedesktop Icon Naming Specification")
1635 (description
1636 "To help with the transition to the Freedesktop Icon Naming
1637 Specification, the icon naming utility maps the icon names used by the
1638 GNOME and KDE desktops to the icon names proposed in the specification.")
1639 (license license:lgpl2.1+)))
1640
1641 (define-public gnome-icon-theme
1642 (package
1643 (name "gnome-icon-theme")
1644 (version "3.12.0")
1645 (source
1646 (origin
1647 (method url-fetch)
1648 (uri (string-append "mirror://gnome/sources/" name "/"
1649 (version-major+minor version) "/"
1650 name "-" version ".tar.xz"))
1651 (sha256
1652 (base32
1653 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1654 (build-system gnu-build-system)
1655 (arguments
1656 '(#:configure-flags
1657 ;; Don't create 'icon-theme.cache'.
1658 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1659 (true (string-append coreutils "/bin/true")))
1660 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1661 (native-inputs
1662 `(("icon-naming-utils" ,icon-naming-utils)
1663 ("intltool" ,intltool)
1664 ("pkg-config" ,pkg-config)))
1665 (home-page "https://wiki.gnome.org/Personalization")
1666 (synopsis "GNOME icon theme")
1667 (description "Icons for the GNOME desktop.")
1668 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1669
1670 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1671 (define-public adwaita-icon-theme
1672 (package (inherit gnome-icon-theme)
1673 (name "adwaita-icon-theme")
1674 (version "3.32.0")
1675 (source (origin
1676 (method url-fetch)
1677 (uri (string-append "mirror://gnome/sources/" name "/"
1678 (version-major+minor version) "/"
1679 name "-" version ".tar.xz"))
1680 (sha256
1681 (base32
1682 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
1683 (native-inputs
1684 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1685
1686 (define-public tango-icon-theme
1687 (package
1688 (name "tango-icon-theme")
1689 (version "0.8.90")
1690 (source (origin
1691 (method url-fetch)
1692 (uri (string-append "http://tango.freedesktop.org/releases/"
1693 "tango-icon-theme-" version ".tar.bz2"))
1694 (sha256
1695 (base32
1696 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1697 (build-system gnu-build-system)
1698 (native-inputs
1699 `(("icon-naming-utils" ,icon-naming-utils)
1700 ("intltool" ,intltool)
1701 ("imagemagick" ,imagemagick)
1702 ("pkg-config" ,pkg-config)))
1703 (home-page "http://tango-project.org/")
1704 (synopsis "Tango icon theme")
1705 (description "This is an icon theme that follows the Tango visual
1706 guidelines.")
1707 (license license:public-domain)))
1708
1709 (define-public shared-mime-info
1710 (package
1711 (name "shared-mime-info")
1712 (version "1.10")
1713 (source (origin
1714 (method url-fetch)
1715 (uri (string-append "https://freedesktop.org/~hadess/"
1716 "shared-mime-info-" version ".tar.xz"))
1717 (sha256
1718 (base32
1719 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
1720 (build-system gnu-build-system)
1721 (arguments
1722 ;; The build system appears not to be parallel-safe.
1723 '(#:parallel-build? #f))
1724 (inputs
1725 `(("glib" ,glib)
1726 ("libxml2" ,libxml2)))
1727 (native-inputs
1728 `(("intltool" ,intltool)
1729 ("pkg-config" ,pkg-config)))
1730 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1731 (synopsis "Database of common MIME types")
1732 (description
1733 "The shared-mime-info package contains the core database of common types
1734 and the update-mime-database command used to extend it. It requires glib2 to
1735 be installed for building the update command. Additionally, it uses intltool
1736 for translations, though this is only a dependency for the maintainers. This
1737 database is translated at Transifex.")
1738 (license license:gpl2+)))
1739
1740 (define-public system-config-printer
1741 (package
1742 (name "system-config-printer")
1743 (version "1.5.12")
1744 (source
1745 (origin
1746 (method url-fetch)
1747 (uri (string-append
1748 "https://github.com/OpenPrinting/system-config-printer/releases/"
1749 "download/" version
1750 "/system-config-printer-" version ".tar.xz"))
1751 (sha256
1752 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1753 (build-system glib-or-gtk-build-system)
1754 (arguments
1755 `(#:imported-modules ((guix build python-build-system)
1756 ,@%glib-or-gtk-build-system-modules)
1757 #:phases
1758 (modify-phases %standard-phases
1759 (add-after 'unpack 'patch-Makefile.am
1760 (lambda _
1761 ;; The Makefile generates some scripts, so set a valid shebang
1762 (substitute* "Makefile.am"
1763 (("/bin/bash") (which "bash")))
1764 (delete-file "configure")
1765 #t))
1766 (add-after 'unpack 'patch-docbook-xml
1767 (lambda* (#:key inputs #:allow-other-keys)
1768 ;; Modify the man XML otherwise xmlto tries to access the network
1769 (substitute* "man/system-config-printer.xml"
1770 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1771 (string-append (assoc-ref inputs "docbook-xml")
1772 "/xml/dtd/docbook/")))
1773 #t))
1774 (add-after 'install 'wrap-for-python
1775 (@@ (guix build python-build-system) wrap))
1776 (add-after 'install 'wrap
1777 (lambda* (#:key outputs #:allow-other-keys)
1778 (let ((out (assoc-ref outputs "out"))
1779 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1780 (for-each
1781 (lambda (program)
1782 (wrap-program program
1783 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1784 (map (lambda (name)
1785 (string-append out "/bin/" name))
1786 '("system-config-printer"
1787 "system-config-printer-applet"
1788 "install-printerdriver"
1789 "scp-dbus-service"))))
1790 #t)))))
1791 (inputs
1792 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1793 ("gobject-introspection" ,gobject-introspection)
1794 ("python" ,python)
1795 ("cups" ,cups)
1796 ("python-dbus" ,python-dbus)
1797 ("python-pygobject" ,python-pygobject)
1798 ("python-pycups" ,python-pycups)
1799 ("python-requests" ,python-requests)
1800 ("python-pycairo" ,python-pycairo)
1801 ("libnotify" ,libnotify)
1802 ("packagekit" ,packagekit)))
1803 (native-inputs
1804 `(("pkg-config" ,pkg-config)
1805 ("desktop-file-utils" ,desktop-file-utils)
1806 ("glib" ,glib)
1807 ("autoconf" ,autoconf)
1808 ("automake" ,automake)
1809 ("intltool" ,intltool)
1810 ("xmlto" ,xmlto)
1811 ("docbook-xml" ,docbook-xml-4.1.2)
1812 ("docbook-xsl" ,docbook-xsl)
1813 ("libxml2" ,libxml2)))
1814 (home-page "https://github.com/zdohnal/system-config-printer")
1815 (synopsis "CUPS administration tool")
1816 (description
1817 "system-config-printer is a CUPS administration tool. It's written in
1818 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1819 configuring CUPS.")
1820 (license license:gpl2+)))
1821
1822 (define-public hicolor-icon-theme
1823 (package
1824 (name "hicolor-icon-theme")
1825 (version "0.17")
1826 (source
1827 (origin
1828 (method url-fetch)
1829 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
1830 "hicolor-icon-theme-" version ".tar.xz"))
1831 (sha256
1832 (base32
1833 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
1834 (build-system gnu-build-system)
1835 (arguments
1836 `(#:tests? #f)) ; no check target
1837 (home-page "https://icon-theme.freedesktop.org/releases/")
1838 (synopsis
1839 "Freedesktop icon theme")
1840 (description
1841 "Freedesktop icon theme.")
1842 (license license:gpl2)))
1843
1844 (define-public libnotify
1845 (package
1846 (name "libnotify")
1847 (version "0.7.7")
1848 (source
1849 (origin
1850 (method url-fetch)
1851 (uri (string-append "mirror://gnome/sources/" name "/"
1852 (version-major+minor version) "/"
1853 name "-" version ".tar.xz"))
1854 (sha256
1855 (base32
1856 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
1857 (build-system gnu-build-system)
1858 (arguments
1859 `(#:configure-flags '("--disable-static")))
1860 (propagated-inputs
1861 `(;; In Requires of libnotify.pc.
1862 ("gdk-pixbuf" ,gdk-pixbuf)
1863 ("glib" ,glib)))
1864 (inputs
1865 `(("gtk+" ,gtk+)
1866 ("libpng" ,libpng)))
1867 (native-inputs
1868 `(("pkg-config" ,pkg-config)
1869 ("glib" ,glib "bin")
1870 ("gobject-introspection" ,gobject-introspection)))
1871 (home-page "https://developer-next.gnome.org/libnotify/")
1872 (synopsis
1873 "GNOME desktop notification library")
1874 (description
1875 "Libnotify is a library that sends desktop notifications to a
1876 notification daemon, as defined in the Desktop Notifications spec. These
1877 notifications can be used to inform the user about an event or display
1878 some form of information without getting in the user's way.")
1879 (license license:lgpl2.1+)))
1880
1881 (define-public libpeas
1882 (package
1883 (name "libpeas")
1884 (version "1.24.1")
1885 (source
1886 (origin
1887 (method url-fetch)
1888 (uri (string-append "mirror://gnome/sources/" name "/"
1889 (version-major+minor version) "/"
1890 name "-" version ".tar.xz"))
1891 (sha256
1892 (base32
1893 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
1894 (build-system meson-build-system)
1895 (arguments
1896 '(#:phases
1897 (modify-phases %standard-phases
1898 (add-before 'check 'start-xserver
1899 (lambda* (#:key inputs #:allow-other-keys)
1900 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1901 (disp ":1"))
1902 (setenv "DISPLAY" disp)
1903 ;; Tests require a running X server.
1904 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
1905 #t))))))
1906 (inputs
1907 `(("gtk+" ,gtk+)
1908 ("glade" ,glade3)
1909 ("python" ,python)
1910 ("python-pygobject" ,python-pygobject)))
1911 (native-inputs
1912 `(("pkg-config" ,pkg-config)
1913 ("gettext" ,gettext-minimal)
1914 ("glib:bin" ,glib "bin")
1915 ("gobject-introspection" ,gobject-introspection)
1916 ("xorg-server" ,xorg-server-for-tests)))
1917 (propagated-inputs
1918 ;; The .pc file "Requires" gobject-introspection.
1919 `(("gobject-introspection" ,gobject-introspection)))
1920 (home-page "https://wiki.gnome.org/Libpeas")
1921 (synopsis "GObject plugin system")
1922 (description
1923 "Libpeas is a gobject-based plugin engine, targeted at giving every
1924 application the chance to assume its own extensibility. It also has a set of
1925 features including, but not limited to: multiple extension points; on-demand
1926 (lazy) programming language support for C, Python and JS; simplicity of the
1927 API.")
1928 (license license:lgpl2.0+)))
1929
1930 (define-public gtkglext
1931 (package
1932 (name "gtkglext")
1933 (version "1.2.0")
1934 (source (origin
1935 (method url-fetch)
1936 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
1937 version "/gtkglext-" version ".tar.gz"))
1938 (sha256
1939 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
1940 (patches (search-patches
1941 "gtkglext-disable-disable-deprecated.patch"))))
1942 (build-system gnu-build-system)
1943 (arguments
1944 `(#:phases
1945 (modify-phases %standard-phases
1946 ;; Fix a collision between a local variable and a definition from
1947 ;; glibc's string.h.
1948 (add-after 'unpack 'fix-collision
1949 (lambda _
1950 (substitute* "gdk/gdkglshapes.c"
1951 ((" index") " triangle_index"))
1952 #t)))))
1953 (inputs `(("gtk+" ,gtk+-2)
1954 ("mesa" ,mesa)
1955 ("glu" ,glu)
1956 ("libx11" ,libx11)
1957 ("libxt" ,libxt)))
1958 (native-inputs `(("pkg-config" ,pkg-config)
1959 ("glib" ,glib "bin")))
1960 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
1961 (home-page "https://projects.gnome.org/gtkglext")
1962 (synopsis "OpenGL extension to GTK+")
1963 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
1964 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1965 API add-ons to make GTK+ widgets OpenGL-capable.")
1966 (license license:lgpl2.1+)))
1967
1968 (define-public glade3
1969 (package
1970 (name "glade")
1971 (version "3.22.1")
1972 (source (origin
1973 (method url-fetch)
1974 (uri (string-append "mirror://gnome/sources/" name "/"
1975 (version-major+minor version) "/"
1976 name "-" version ".tar.xz"))
1977 (sha256
1978 (base32
1979 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
1980 (build-system glib-or-gtk-build-system)
1981 (arguments
1982 `(#:tests? #f ; needs X, GL, and software rendering
1983 #:phases
1984 (modify-phases %standard-phases
1985 (add-before 'configure 'fix-docbook
1986 (lambda* (#:key inputs #:allow-other-keys)
1987 (substitute* "man/Makefile.in"
1988 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1989 (string-append (assoc-ref inputs "docbook-xsl")
1990 "/xml/xsl/docbook-xsl-"
1991 ,(package-version docbook-xsl)
1992 "/manpages/docbook.xsl")))
1993 #t)))))
1994 (inputs
1995 `(("gtk+" ,gtk+)
1996 ("libxml2" ,libxml2)))
1997 (native-inputs
1998 `(("intltool" ,intltool)
1999 ("itstool" ,itstool)
2000 ("libxslt" ,libxslt) ;for xsltproc
2001 ("docbook-xml" ,docbook-xml-4.2)
2002 ("docbook-xsl" ,docbook-xsl)
2003 ("python" ,python-2)
2004 ("pkg-config" ,pkg-config)))
2005 (home-page "https://glade.gnome.org")
2006 (synopsis "GTK+ rapid application development tool")
2007 (description "Glade is a rapid application development (RAD) tool to
2008 enable quick & easy development of user interfaces for the GTK+ toolkit and
2009 the GNOME desktop environment.")
2010 (license license:lgpl2.0+)))
2011
2012 (define-public libcroco
2013 (package
2014 (name "libcroco")
2015 (version "0.6.13")
2016 (source (origin
2017 (method url-fetch)
2018 (uri (string-append "mirror://gnome/sources/" name "/"
2019 (version-major+minor version) "/"
2020 name "-" version ".tar.xz"))
2021 (sha256
2022 (base32
2023 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2024 (build-system gnu-build-system)
2025 (native-inputs
2026 `(("pkg-config" ,pkg-config)))
2027 (inputs
2028 `(("glib" ,glib)
2029 ("libxml2" ,libxml2)
2030 ("zlib" ,zlib)))
2031 (home-page "https://github.com/GNOME/libcroco")
2032 (synopsis "CSS2 parsing and manipulation library")
2033 (description
2034 "Libcroco is a standalone CSS2 parsing and manipulation library.
2035 The parser provides a low level event driven SAC-like API and a CSS object
2036 model like API. Libcroco provides a CSS2 selection engine and an experimental
2037 XML/CSS rendering engine.")
2038
2039 ;; LGPLv2.1-only.
2040 (license license:lgpl2.1)))
2041
2042 (define-public libgsf
2043 (package
2044 (name "libgsf")
2045 (version "1.14.46")
2046 (source (origin
2047 (method url-fetch)
2048 (uri (string-append "mirror://gnome/sources/" name "/"
2049 (version-major+minor version) "/"
2050 name "-" version ".tar.xz"))
2051 (sha256
2052 (base32
2053 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
2054 (build-system gnu-build-system)
2055 (native-inputs
2056 `(("intltool" ,intltool)
2057 ("pkg-config" ,pkg-config)))
2058 (inputs
2059 `(("python" ,python)
2060 ("zlib" ,zlib)
2061 ("bzip2" ,bzip2)))
2062 (propagated-inputs
2063 `(("gdk-pixbuf" ,gdk-pixbuf)
2064 ("glib" ,glib)
2065 ("libxml2" ,libxml2)))
2066 (home-page "https://www.gnome.org/projects/libgsf")
2067 (synopsis "GNOME's Structured File Library")
2068 (description
2069 "Libgsf aims to provide an efficient extensible I/O abstraction for
2070 dealing with different structured file formats.")
2071
2072 ;; LGPLv2.1-only.
2073 (license license:lgpl2.1)))
2074
2075 (define-public librsvg
2076 (package
2077 (name "librsvg")
2078 (version "2.40.20")
2079 (source (origin
2080 (method url-fetch)
2081 (uri (string-append "mirror://gnome/sources/" name "/"
2082 (version-major+minor version) "/"
2083 name "-" version ".tar.xz"))
2084 (sha256
2085 (base32
2086 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
2087 (build-system gnu-build-system)
2088 (arguments
2089 `(#:configure-flags
2090 (list "--disable-static"
2091 "--enable-vala") ; needed for e.g. gnome-mines
2092 #:phases
2093 (modify-phases %standard-phases
2094 (add-before 'configure 'pre-configure
2095 (lambda* (#:key inputs #:allow-other-keys)
2096 (substitute* "gdk-pixbuf-loader/Makefile.in"
2097 ;; By default the gdk-pixbuf loader is installed under
2098 ;; gdk-pixbuf's prefix. Work around that.
2099 (("gdk_pixbuf_moduledir = .*$")
2100 (string-append "gdk_pixbuf_moduledir = "
2101 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2102 "loaders\n"))
2103 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2104 (("gdk_pixbuf_cache_file = .*$")
2105 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2106 #t))
2107 (add-before 'check 'remove-failing-tests
2108 (lambda _
2109 (with-directory-excursion "tests/fixtures/reftests"
2110 (for-each delete-file
2111 '(;; This test fails on i686:
2112 "svg1.1/masking-path-04-b.svg"
2113 ;; This test fails on armhf:
2114 "svg1.1/masking-mask-01-b.svg"
2115 ;; This test fails on aarch64:
2116 "bugs/777834-empty-text-children.svg")))
2117 #t)))))
2118 (native-inputs
2119 `(("pkg-config" ,pkg-config)
2120 ("vala" ,vala)
2121 ("glib" ,glib "bin") ; glib-mkenums, etc.
2122 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2123 (inputs
2124 `(("pango" ,pango)
2125 ("libcroco" ,libcroco)
2126 ("bzip2" ,bzip2)
2127 ("libgsf" ,libgsf)
2128 ("libxml2" ,libxml2)))
2129 (propagated-inputs
2130 ;; librsvg-2.0.pc refers to all of that.
2131 `(("cairo" ,cairo)
2132 ("gdk-pixbuf" ,gdk-pixbuf)
2133 ("glib" ,glib)))
2134 (home-page "https://wiki.gnome.org/LibRsvg")
2135 (synopsis "Render SVG files using Cairo")
2136 (description
2137 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2138 library.")
2139 (license license:lgpl2.0+)))
2140
2141 (define* (computed-origin-method gexp-promise hash-algo hash
2142 #:optional (name "source")
2143 #:key (system (%current-system))
2144 (guile (default-guile)))
2145 "Return a derivation that executes the G-expression that results
2146 from forcing GEXP-PROMISE."
2147 (mlet %store-monad ((guile (package->derivation guile system)))
2148 (gexp->derivation (or name "computed-origin")
2149 (force gexp-promise)
2150 #:graft? #f ;nothing to graft
2151 #:system system
2152 #:guile-for-build guile)))
2153
2154 (define librsvg-next-source
2155 (let* ((version "2.46.3")
2156 (upstream-source (origin
2157 (method url-fetch)
2158 (uri (string-append "mirror://gnome/sources/librsvg/"
2159 (version-major+minor version) "/"
2160 "librsvg-" version ".tar.xz"))
2161 (sha256
2162 (base32
2163 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
2164 (origin
2165 (method computed-origin-method)
2166 (file-name (string-append "librsvg-" version ".tar.xz"))
2167 (sha256 #f)
2168 (uri
2169 (delay
2170 (with-imported-modules '((guix build utils))
2171 #~(begin
2172 (use-modules (guix build utils))
2173 (set-path-environment-variable
2174 "PATH" '("bin")
2175 (list "/tmp"
2176 #+(canonical-package xz)
2177 #+(canonical-package gzip)
2178 #+(canonical-package tar)))
2179 (invoke "tar" "xvf" #+upstream-source)
2180 (with-directory-excursion (string-append "librsvg-" #$version)
2181 ;; The following crate(s) are needed in addition to the ones replaced:
2182 (begin
2183 (invoke
2184 "tar" "xvf" #+(package-source rust-autocfg-0.1) "-C" "vendor"))
2185 (for-each
2186 (lambda (crate)
2187 (delete-file-recursively (string-append "vendor/" (car crate)))
2188 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
2189 '(("aho-corasick" . #+(package-source rust-aho-corasick-0.7))
2190 ;; alga 0.9
2191 ("approx" . #+(package-source rust-approx-0.3))
2192 ("arrayvec" . #+(package-source rust-arrayvec-0.4))
2193 ("atty" . #+(package-source rust-atty-0.2))
2194 ("autocfg" . #+(package-source rust-autocfg-1.0))
2195 ("bitflags" . #+(package-source rust-bitflags-1))
2196 ;; block 0.1
2197 ("bstr" . #+(package-source rust-bstr-0.2))
2198 ("byteorder" . #+(package-source rust-byteorder-1.3))
2199 ;; cairo-rs 0.7
2200 ;; cairo-sys-rs 0.9
2201 ("cast" . #+(package-source rust-cast-0.2))
2202 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
2203 ("clap" . #+(package-source rust-clap-2))
2204 ("cloudabi" . #+(package-source rust-cloudabi-0.0))
2205 ("criterion" . #+(package-source rust-criterion-0.2))
2206 ("criterion-plot" . #+(package-source rust-criterion-plot-0.3))
2207 ("crossbeam-deque" . #+(package-source rust-crossbeam-deque-0.7))
2208 ("crossbeam-epoch" . #+(package-source rust-crossbeam-epoch-0.8))
2209 ("crossbeam-queue" . #+(package-source rust-crossbeam-queue-0.2))
2210 ("crossbeam-utils" . #+(package-source rust-crossbeam-utils-0.7))
2211 ;; cssparser 0.25
2212 ;; cssparser-macros 0.3
2213 ("csv" . #+(package-source rust-csv-1.1))
2214 ("csv-core" . #+(package-source rust-csv-core-0.1))
2215 ;; data-url 0.1
2216 ;; downcast-rs 1.0
2217 ("dtoa" . #+(package-source rust-dtoa-0.4))
2218 ;; dtoa-short 0.3
2219 ("either" . #+(package-source rust-either-1.5))
2220 ("encoding" . #+(package-source rust-encoding-0.2))
2221 ("encoding-index-japanese" . #+(package-source rust-encoding-index-japanese-1.20141219))
2222 ("encoding-index-korean" . #+(package-source rust-encoding-index-korean-1.20141219))
2223 ("encoding-index-simpchinese" . #+(package-source rust-encoding-index-simpchinese-1.20141219))
2224 ("encoding-index-singlebyte" . #+(package-source rust-encoding-index-singlebyte-1.20141219))
2225 ("encoding-index-tradchinese" . #+(package-source rust-encoding-index-tradchinese-1.20141219))
2226 ("encoding_index_tests" . #+(package-source rust-encoding-index-tests-0.1))
2227 ;; float-cmp 0.5
2228 ;; fragile 0.3
2229 ("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
2230 ("futf" . #+(package-source rust-futf-0.1))
2231 ;; gdk-pixbuf 0.7
2232 ;; gdk-pixbuf-sys 0.9
2233 ("generic-array" . #+(package-source rust-generic-array-0.12))
2234 ;; gio 0.7
2235 ;; gio-sys 0.9
2236 ;; glib 0.8
2237 ;; glib-sys 0.9
2238 ;; gobject-sys 0.9
2239 ("idna" . #+(package-source rust-idna-0.2))
2240 ("itertools" . #+(package-source rust-itertools-0.8))
2241 ("itoa" . #+(package-source rust-itoa-0.4))
2242 ("language-tags" . #+(package-source rust-language-tags-0.2))
2243 ("lazy_static" . #+(package-source rust-lazy-static-1.3))
2244 ("libc" . #+(package-source rust-libc-0.2))
2245 ("libm" . #+(package-source rust-libm-0.1))
2246 ;; locale_config 0.3
2247 ("log" . #+(package-source rust-log-0.4))
2248 ("mac" . #+(package-source rust-mac-0.1))
2249 ;; malloc_buf 0.0
2250 ;; markup5ever 0.9
2251 ("matches" . #+(package-source rust-matches-0.1))
2252 ;; matrixmultiply 0.2
2253 ("memchr" . #+(package-source rust-memchr-2.2))
2254 ("memoffset" . #+(package-source rust-memoffset-0.5))
2255 ;; nalgebra 0.18
2256 ("new_debug_unreachable" . #+(package-source rust-new-debug-unreachable-1.0))
2257 ("nodrop" . #+(package-source rust-nodrop-0.1))
2258 ("num-complex" . #+(package-source rust-num-complex-0.2))
2259 ("num-integer" . #+(package-source rust-num-integer-0.1))
2260 ;; num-rational 0.2
2261 ("num-traits" . #+(package-source rust-num-traits-0.2))
2262 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
2263 ;; objc 0.2
2264 ;; objc-foundation 0.1
2265 ;; objc_id 0.1
2266 ;; pango 0.7
2267 ;; pango-sys 0.9
2268 ;; pangocairo 0.8
2269 ;; pangocairo-sys 0.10
2270 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
2271 ("phf" . #+(package-source rust-phf-0.7))
2272 ("phf_codegen" . #+(package-source rust-phf-codegen-0.7))
2273 ("phf_generator" . #+(package-source rust-phf-generator-0.7))
2274 ("phf_shared" . #+(package-source rust-phf-shared-0.7))
2275 ("pkg-config" . #+(package-source rust-pkg-config-0.3))
2276 ("precomputed-hash" . #+(package-source rust-precomputed-hash-0.1))
2277 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
2278 ;; procedural-masquerade 0.1
2279 ("quote" . #+(package-source rust-quote-1.0))
2280 ("rand" . #+(package-source rust-rand-0.6))
2281 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
2282 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
2283 ("rand_core" . #+(package-source rust-rand-core-0.4))
2284 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
2285 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
2286 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
2287 ("rand_os" . #+(package-source rust-rand-os-0.1))
2288 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
2289 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
2290 ("rand_xoshiro" . #+(package-source rust-rand-xoshiro-0.1))
2291 ;; rawpointer 0.2
2292 ("rayon" . #+(package-source rust-rayon-1.3))
2293 ("rayon-core" . #+(package-source rust-rayon-core-1.7))
2294 ;; rctree 0.3
2295 ("rdrand" . #+(package-source rust-rdrand-0.4))
2296 ("regex" . #+(package-source rust-regex-1.3))
2297 ("regex-automata" . #+(package-source rust-regex-automata-0.1))
2298 ("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
2299 ("rustc_version" . #+(package-source rust-rustc-version-0.2))
2300 ("ryu" . #+(package-source rust-ryu-1.0))
2301 ("same-file" . #+(package-source rust-same-file-1.0))
2302 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
2303 ("semver" . #+(package-source rust-semver-0.9))
2304 ("semver-parser" . #+(package-source rust-semver-parser-0.7))
2305 ("serde" . #+(package-source rust-serde-1.0))
2306 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
2307 ("serde_json" . #+(package-source rust-serde-json-1.0))
2308 ("siphasher" . #+(package-source rust-siphasher-0.2))
2309 ("smallvec" . #+(package-source rust-smallvec-0.6))
2310 ("string_cache" . #+(package-source rust-string-cache-0.7))
2311 ;("string_cache_codegen" . #+(package-source rust-string-cache-codegen-0.4))
2312 ("string_cache_shared" . #+(package-source rust-string-cache-shared-0.3))
2313 ("syn" . #+(package-source rust-syn-1.0))
2314 ("tendril" . #+(package-source rust-tendril-0.4))
2315 ("textwrap" . #+(package-source rust-textwrap-0.11))
2316 ("thread_local" . #+(package-source rust-thread-local-1.0))
2317 ("tinytemplate" . #+(package-source rust-tinytemplate-1.0))
2318 ("typenum" . #+(package-source rust-typenum-1.10))
2319 ("unicode-bidi" . #+(package-source rust-unicode-bidi-0.3))
2320 ("unicode-normalization" . #+(package-source rust-unicode-normalization-0.1))
2321 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
2322 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
2323 ("url" . #+(package-source rust-url-2.1))
2324 ("utf-8" . #+(package-source rust-utf-8-0.7))
2325 ("walkdir" . #+(package-source rust-walkdir-2.2))
2326 ("winapi" . #+(package-source rust-winapi-0.3))
2327 ("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
2328 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
2329 ("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
2330 ;; xml-rs 0.8
2331 )))
2332 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
2333 (force-output)
2334 (invoke "tar" "cfa" #$output
2335 ;; Avoid non-determinism in the archive. We set the
2336 ;; mtime of files in the archive to early 1980 because
2337 ;; the build process fails if the mtime of source
2338 ;; files is pre-1980, due to the creation of zip
2339 ;; archives.
2340 "--mtime=@315619200" ; 1980-01-02 UTC
2341 "--owner=root:0"
2342 "--group=root:0"
2343 "--sort=name"
2344 (string-append "librsvg-" #$version))
2345 #t)))))))
2346
2347 (define-public librsvg-next
2348 (package
2349 (name "librsvg")
2350 (version "2.46.3")
2351 (source librsvg-next-source)
2352 (build-system gnu-build-system)
2353 (arguments
2354 `(#:configure-flags
2355 (list "--disable-static"
2356 "--enable-vala") ; needed for e.g. gnome-mines
2357 #:make-flags '("CC=gcc")
2358 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
2359 #:phases
2360 (modify-phases %standard-phases
2361 (add-after 'configure 'patch-cargo-checksums
2362 (lambda _
2363 (use-modules (guix build cargo-utils))
2364 (substitute* "librsvg/Cargo.toml"
2365 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
2366 (generate-all-checksums "vendor")
2367 (delete-file "Cargo.lock")
2368 (invoke "cargo" "generate-lockfile")))
2369 (add-before 'configure 'pre-configure
2370 (lambda* (#:key inputs #:allow-other-keys)
2371 (substitute* "gdk-pixbuf-loader/Makefile.in"
2372 ;; By default the gdk-pixbuf loader is installed under
2373 ;; gdk-pixbuf's prefix. Work around that.
2374 (("gdk_pixbuf_moduledir = .*$")
2375 (string-append "gdk_pixbuf_moduledir = "
2376 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2377 "loaders\n"))
2378 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2379 (("gdk_pixbuf_cache_file = .*$")
2380 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2381 #t))
2382 (add-before 'check 'remove-failing-tests
2383 (lambda _
2384 (with-directory-excursion "tests/fixtures/reftests"
2385 (for-each delete-file
2386 '(;; The images produced by these tests differ slightly
2387 ;; from their reference counterparts due to differences
2388 ;; in the build environment (missing fonts, etc). See
2389 ;; <tests/README.md> for details.
2390 ;; These fail on x86_64.
2391 "svg1.1/coords-viewattr-02-b.svg"
2392 "svg1.1/filters-composite-04-f.svg"
2393 "svg1.1/filters-image-01-b.svg"
2394 "svg1.1/filters-conv-02-f.svg"
2395 "svg1.1/filters-conv-04-f.svg"
2396 ;; This test fails on i686:
2397 "svg1.1/masking-path-04-b.svg"
2398 ;; This test fails on armhf:
2399 "svg1.1/masking-mask-01-b.svg"
2400 ;; This test fails on aarch64:
2401 "bugs/777834-empty-text-children.svg")))
2402 #t)))))
2403 (native-inputs
2404 `(("pkg-config" ,pkg-config)
2405 ;; This is the minimum supported Rust version in Librsvg 2.46.
2406 ("rust" ,rust-1.34)
2407 ("cargo" ,rust-1.34 "cargo")
2408 ("vala" ,vala)
2409 ("glib" ,glib "bin") ; glib-mkenums, etc.
2410 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2411 (inputs
2412 `(("pango" ,pango)
2413 ("libcroco" ,libcroco)
2414 ("bzip2" ,bzip2)
2415 ("libgsf" ,libgsf)
2416 ("libxml2" ,libxml2)))
2417 (propagated-inputs
2418 ;; librsvg-2.0.pc refers to all of that.
2419 `(("cairo" ,cairo)
2420 ("gdk-pixbuf" ,gdk-pixbuf)
2421 ("glib" ,glib)))
2422 (home-page "https://wiki.gnome.org/LibRsvg")
2423 (synopsis "Render SVG files using Cairo")
2424 (description
2425 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2426 library.")
2427 (license license:lgpl2.1+)))
2428
2429 (define-public libidl
2430 (package
2431 (name "libidl")
2432 (version "0.8.14")
2433 (source (origin
2434 (method url-fetch)
2435 (uri (string-append "mirror://gnome/sources/libIDL/"
2436 (version-major+minor version) "/"
2437 "libIDL-" version ".tar.bz2"))
2438 (sha256
2439 (base32
2440 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2441 (build-system gnu-build-system)
2442 (inputs `(("glib" ,glib)))
2443 (native-inputs
2444 `(("pkg-config" ,pkg-config)
2445 ("flex" ,flex)
2446 ("bison" ,bison)))
2447 (home-page "http://freecode.com/projects/libidl")
2448 (synopsis "Create trees of CORBA Interface Definition Language files")
2449 (description "Libidl is a library for creating trees of CORBA Interface
2450 Definition Language (idl) files, which is a specification for defining
2451 portable interfaces. libidl was initially written for orbit (the orb from the
2452 GNOME project, and the primary means of libidl distribution). However, the
2453 functionality was designed to be as reusable and portable as possible.")
2454 (properties `((upstream-name . "libIDL")))
2455 (license license:lgpl2.0+)))
2456
2457
2458 (define-public orbit2
2459 (package
2460 (name "orbit2")
2461 (version "2.14.19")
2462 (source (origin
2463 (method url-fetch)
2464 (uri (let ((upstream-name "ORBit2"))
2465 (string-append "mirror://gnome/sources/" upstream-name "/"
2466 (version-major+minor version) "/"
2467 upstream-name "-" version ".tar.bz2")))
2468 (sha256
2469 (base32
2470 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2471 (build-system gnu-build-system)
2472 (arguments
2473 `(#:configure-flags
2474 '(;; We don't need static libraries, plus they don't build reproducibly
2475 ;; (non-deterministic ordering of .o files in the archive.)
2476 "--disable-static"
2477
2478 ;; The programmer kindly gives us a hook to turn off deprecation
2479 ;; warnings ...
2480 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2481 ;; ... which they then completly ignore !!
2482 #:phases
2483 (modify-phases %standard-phases
2484 (add-before 'configure 'ignore-deprecations
2485 (lambda _
2486 (substitute* "linc2/src/Makefile.in"
2487 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2488 #t)))))
2489 (inputs `(("glib" ,glib)
2490 ("libidl" ,libidl)))
2491 (native-inputs
2492 `(("pkg-config" ,pkg-config)))
2493 (home-page "https://projects.gnome.org/orbit2/")
2494 (synopsis "CORBA 2.4-compliant Object Request Broker")
2495 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2496 featuring mature C, C++ and Python bindings.")
2497 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2498 ;; a version. SOME of the code files have licence notices for GPLv2+.
2499 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2500 (license license:gpl2+)
2501 (properties `((upstream-name . "ORBit2")))))
2502
2503
2504 (define-public libbonobo
2505 (package
2506 (name "libbonobo")
2507 (version "2.32.1")
2508 (source (origin
2509 (method url-fetch)
2510 (uri (string-append "mirror://gnome/sources/" name "/"
2511 (version-major+minor version)
2512 "/" name "-" version ".tar.bz2"))
2513 (sha256
2514 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2515 (patches (search-patches
2516 "libbonobo-activation-test-race.patch"))))
2517 (build-system gnu-build-system)
2518 (arguments
2519 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2520 `(#:configure-flags
2521 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2522 ;; ... which they then completly ignore !!
2523 #:phases
2524 (modify-phases %standard-phases
2525 (add-before 'configure 'ignore-deprecations
2526 (lambda _
2527 (substitute* "activation-server/Makefile.in"
2528 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2529 #t)))
2530
2531 ;; There's apparently a race condition between the server stub
2532 ;; generation and linking of the example under 'samples/echo' that can
2533 ;; lead do undefined references when building in parallel, as reported
2534 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2535 ;; Thus, disable parallel builds.
2536 #:parallel-build? #f))
2537 (inputs `(("popt" ,popt)
2538 ("libxml2" ,libxml2)))
2539 ;; The following are Required by the .pc file
2540 (propagated-inputs
2541 `(("glib" ,glib)
2542 ("orbit2" ,orbit2)))
2543 (native-inputs
2544 `(("intltool" ,intltool)
2545 ("pkg-config" ,pkg-config)
2546 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2547 ("flex" ,flex)
2548 ("bison" ,bison)))
2549 (home-page "https://developer.gnome.org/libbonobo/")
2550 (synopsis "Framework for creating reusable components for use in GNOME applications")
2551 (description "Bonobo is a framework for creating reusable components for
2552 use in GNOME applications, built on top of CORBA.")
2553 ;; Licence not explicitly stated. Source files contain no licence notices.
2554 ;; Tarball contains text of both GPLv2 and LGPLv2
2555 ;; GPLv2 covers both conditions
2556 (license license:gpl2+)))
2557
2558
2559 (define-public gconf
2560 (package
2561 (name "gconf")
2562 (version "3.2.6")
2563 (source (origin
2564 (method url-fetch)
2565 (uri
2566 (let ((upstream-name "GConf"))
2567 (string-append "mirror://gnome/sources/" upstream-name "/"
2568 (version-major+minor version) "/"
2569 upstream-name "-" version ".tar.xz")))
2570 (sha256
2571 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2572 (build-system gnu-build-system)
2573 (inputs `(("dbus-glib" ,dbus-glib)
2574 ("libxml2" ,libxml2)))
2575 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2576 ("orbit2" ,orbit2)))
2577 (native-inputs
2578 `(("intltool" ,intltool)
2579 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2580 ("pkg-config" ,pkg-config)))
2581 (home-page "https://projects.gnome.org/gconf/")
2582 (synopsis "Store application preferences")
2583 (description "Gconf is a system for storing application preferences. It
2584 is intended for user preferences; not arbitrary data storage.")
2585 (license license:lgpl2.0+)
2586 (properties '((upstream-name . "GConf")))))
2587
2588
2589 (define-public gnome-mime-data
2590 (package
2591 (name "gnome-mime-data")
2592 (version "2.18.0")
2593 (source (origin
2594 (method url-fetch)
2595 (uri (string-append "mirror://gnome/sources/" name "/"
2596 (version-major+minor version) "/"
2597 name "-" version ".tar.bz2"))
2598 (sha256
2599 (base32
2600 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2601 (build-system gnu-build-system)
2602 (native-inputs
2603 `(("perl" ,perl)
2604 ("intltool" ,intltool)))
2605 (arguments
2606 '(#:phases (modify-phases %standard-phases
2607 (add-after 'configure 'use-our-intltool
2608 (lambda _
2609 ;; Do not use the bundled intltool commands, which lack
2610 ;; the "dotless @INC" fixes of our 'intltool' package.
2611 (substitute* (find-files "." "^Makefile$")
2612 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2613 (string-append "INTLTOOL_" tool " = intltool-"
2614 (string-downcase tool) "\n")))
2615 #t)))))
2616 (home-page "https://www.gnome.org")
2617 (synopsis "Base MIME and Application database for GNOME")
2618 (description "GNOME Mime Data is a module which contains the base MIME
2619 and Application database for GNOME. The data stored by this module is
2620 designed to be accessed through the MIME functions in GnomeVFS.")
2621 (license license:gpl2+)))
2622
2623
2624 (define-public gnome-vfs
2625 (package
2626 (name "gnome-vfs")
2627 (version "2.24.4")
2628 (source (origin
2629 (method url-fetch)
2630 (uri (string-append "mirror://gnome/sources/" name "/"
2631 (version-major+minor version) "/"
2632 name "-" version ".tar.bz2"))
2633 (sha256
2634 (base32
2635 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2636 (build-system gnu-build-system)
2637 (arguments
2638 `(#:phases
2639 (modify-phases %standard-phases
2640 (add-before 'configure 'ignore-deprecations
2641 (lambda _
2642 (substitute* '("libgnomevfs/Makefile.in"
2643 "daemon/Makefile.in")
2644 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2645 #t))
2646 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2647 (lambda _
2648 (substitute* "test/test-async-cancel.c"
2649 (("EXIT_FAILURE") "77"))
2650 #t)))))
2651 (inputs `(("libxml2" ,libxml2)
2652 ("dbus-glib" ,dbus-glib)
2653 ("gconf" ,gconf)
2654 ("gnome-mime-data" ,gnome-mime-data)
2655 ("zlib" ,zlib)))
2656 (native-inputs
2657 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2658 ("intltool" ,intltool)
2659 ("pkg-config" ,pkg-config)))
2660 (home-page "https://developer.gnome.org/gnome-vfs/")
2661 (synopsis "Access files and folders in GNOME applications")
2662 (description
2663 "GnomeVFS is the core library used to access files and folders in GNOME
2664 applications. It provides a file system abstraction which allows applications
2665 to access local and remote files with a single consistent API.")
2666 (license license:lgpl2.0+)))
2667
2668
2669
2670 (define-public libgnome
2671 (package
2672 (name "libgnome")
2673 (version "2.32.1")
2674 (source (origin
2675 (method url-fetch)
2676 (uri (string-append "mirror://gnome/sources/" name "/"
2677 (version-major+minor version) "/"
2678 name "-" version ".tar.bz2"))
2679 (sha256
2680 (base32
2681 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2682 (patches (search-patches "libgnome-encoding.patch"))))
2683 (build-system gnu-build-system)
2684 (arguments
2685 `(#:phases
2686 (modify-phases %standard-phases
2687 (add-before 'configure 'enable-deprecated
2688 (lambda _
2689 (substitute* "libgnome/Makefile.in"
2690 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2691 #t)))))
2692 (inputs `(("libxml2" ,libxml2)))
2693 (native-inputs
2694 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2695 ("intltool" ,intltool)
2696 ("pkg-config" ,pkg-config)))
2697 ;; The following are listed as Required in the .pc file
2698 ;; (except for libcanberra -- which seems to be oversight on the part
2699 ;; of the upstream developers -- anything that links against libgnome,
2700 ;; must also link against libcanberra
2701 (propagated-inputs
2702 `(("libcanberra" ,libcanberra)
2703 ("libbonobo" ,libbonobo)
2704 ("gconf" ,gconf)
2705 ("gnome-vfs" ,gnome-vfs)
2706 ("popt" ,popt))) ;gnome-program.h includes popt.h
2707 (home-page "https://developer.gnome.org/libgnome/")
2708 (synopsis "Useful routines for building applications")
2709 (description "The libgnome library provides a number of useful routines
2710 for building modern applications, including session management, activation of
2711 files and URIs, and displaying help.")
2712 (license license:lgpl2.0+)))
2713
2714
2715 (define-public libart-lgpl
2716 (package
2717 (name "libart-lgpl")
2718 (version "2.3.21")
2719 (source (origin
2720 (method url-fetch)
2721 (uri (let ((upstream-name "libart_lgpl"))
2722 (string-append "mirror://gnome/sources/" upstream-name "/"
2723 (version-major+minor version) "/"
2724 upstream-name "-" version ".tar.bz2")))
2725 (sha256
2726 (base32
2727 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2728 (build-system gnu-build-system)
2729 (native-inputs
2730 `(("pkg-config" ,pkg-config)))
2731 (home-page "https://people.gnome.org/~mathieu/libart")
2732 (synopsis "2D drawing library")
2733 (description "Libart is a 2D drawing library intended as a
2734 high-quality vector-based 2D library with antialiasing and alpha composition.")
2735 (license license:lgpl2.0+)))
2736
2737
2738
2739 (define-public libgnomecanvas
2740 (package
2741 (name "libgnomecanvas")
2742 (version "2.30.3")
2743 (source (origin
2744 (method url-fetch)
2745 (uri (string-append "mirror://gnome/sources/" name "/"
2746 (version-major+minor version) "/"
2747 name "-" version ".tar.gz"))
2748 (sha256
2749 (base32
2750 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2751 (build-system gnu-build-system)
2752 ;; Mentioned as Required in the .pc file
2753 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2754 ("gtk+" ,gtk+-2)))
2755 (native-inputs
2756 `(("intltool" ,intltool)
2757 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2758 ("pkg-config" ,pkg-config)))
2759 (home-page "https://developer.gnome.org/libgnomecanvas/")
2760 (synopsis "Flexible widget for creating interactive structured graphics")
2761 (description "The GnomeCanvas widget provides a flexible widget for
2762 creating interactive structured graphics.")
2763 (license license:lgpl2.0+)))
2764
2765 (define-public libgnomecanvasmm
2766 (package
2767 (name "libgnomecanvasmm")
2768 (version "2.26.0")
2769 (source (origin
2770 (method url-fetch)
2771 (uri (string-append "mirror://gnome/sources/" name "/"
2772 (version-major+minor version) "/"
2773 name "-" version ".tar.bz2"))
2774 (sha256
2775 (base32
2776 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2777 (build-system gnu-build-system)
2778 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2779 (native-inputs
2780 `(("gtkmm-2" ,gtkmm-2)
2781 ("pkg-config" ,pkg-config)))
2782 (home-page "https://gtkmm.org")
2783 (synopsis "C++ bindings to the GNOME Canvas library")
2784 (description "C++ bindings to the GNOME Canvas library.")
2785 (license license:lgpl2.0+)))
2786
2787 (define-public libgnomeui
2788 (package
2789 (name "libgnomeui")
2790 (version "2.24.5")
2791 (source (origin
2792 (method url-fetch)
2793 (uri (string-append "mirror://gnome/sources/" name "/"
2794 (version-major+minor version) "/"
2795 name "-" version ".tar.bz2"))
2796 (patches (search-patches "libgnomeui-utf8.patch"))
2797 (sha256
2798 (base32
2799 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2800 (build-system gnu-build-system)
2801 ;; Mentioned as Required in the .pc file
2802 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2803 ("libgnome" ,libgnome)
2804 ("libgnomecanvas" ,libgnomecanvas)
2805 ("libgnome-keyring" ,libgnome-keyring)))
2806 (inputs `(("libjpeg" ,libjpeg)
2807 ("popt" ,popt)
2808 ("libbonobo" ,libbonobo)
2809 ("libxml2" ,libxml2)
2810 ("libglade" ,libglade)))
2811 (native-inputs
2812 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2813 ("intltool" ,intltool)
2814 ("pkg-config" ,pkg-config)))
2815 (home-page "https://developer.gnome.org/libgnomeui/")
2816 (synopsis "Additional widgets for applications")
2817 (description "The libgnomeui library provides additional widgets for
2818 applications. Many of the widgets from libgnomeui have already been
2819 ported to GTK+.")
2820 (license license:lgpl2.0+)))
2821
2822 (define-public libglade
2823 (package
2824 (name "libglade")
2825 (version "2.6.4")
2826 (source (origin
2827 (method url-fetch)
2828 (uri (string-append "mirror://gnome/sources/" name "/"
2829 (version-major+minor version) "/"
2830 name "-" version ".tar.bz2"))
2831 (sha256
2832 (base32
2833 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2834 (build-system gnu-build-system)
2835 (inputs
2836 `(("python" ,python))) ;; needed for the optional libglade-convert program
2837 (propagated-inputs
2838 `(("gtk+-2" ,gtk+-2)
2839 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2840 (native-inputs
2841 `(("pkg-config" ,pkg-config)))
2842 (home-page "https://developer.gnome.org/libglade")
2843 (synopsis "Load glade interfaces and access the glade built widgets")
2844 (description "Libglade is a library that provides interfaces for loading
2845 graphical interfaces described in glade files and for accessing the
2846 widgets built in the loading process.")
2847 (license license:gpl2+))) ; This is correct. GPL not LGPL
2848
2849 (define-public libgnomeprint
2850 ;; This library has been deprecated since 2006; see
2851 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2852 (package
2853 (name "libgnomeprint")
2854 (version "2.18.8")
2855 (source (origin
2856 (method url-fetch)
2857 (uri (string-append "mirror://gnome/sources/" name "/"
2858 (version-major+minor version) "/"
2859 name "-" version ".tar.bz2"))
2860 (sha256
2861 (base32
2862 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2863 (build-system gnu-build-system)
2864 (inputs
2865 `(("popt" ,popt)
2866 ("libart-lgpl" ,libart-lgpl)
2867 ("gtk+" ,gtk+-2)
2868 ("libxml2" ,libxml2)))
2869 (native-inputs
2870 `(("intltool" ,intltool)
2871 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2872 ("pkg-config" ,pkg-config)))
2873 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2874 (synopsis "Printing framework for GNOME")
2875 (description
2876 "GNOME-print was a printing framework for GNOME. It has been deprecated
2877 since ca. 2006, when GTK+ itself incorporated printing support.")
2878 (license license:lgpl2.0+)))
2879
2880
2881 (define-public libgnomeprintui
2882 ;; Deprecated; see libgnomeprint.
2883 (package
2884 (name "libgnomeprintui")
2885 (version "2.18.6")
2886 (source (origin
2887 (method url-fetch)
2888 (uri (string-append "mirror://gnome/sources/" name "/"
2889 (version-major+minor version) "/"
2890 name "-" version ".tar.bz2"))
2891 (sha256
2892 (base32
2893 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2894 (build-system gnu-build-system)
2895 ;; Mentioned as Required in the .pc file
2896 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2897 (inputs `(("gtk+" ,gtk+-2)
2898 ("glib" ,glib)
2899 ("gnome-icon-theme" ,gnome-icon-theme)
2900 ("libgnomecanvas" ,libgnomecanvas)
2901 ("libxml2" ,libxml2)))
2902 (native-inputs
2903 `(("intltool" ,intltool)
2904 ("pkg-config" ,pkg-config)))
2905 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2906 (synopsis "Printing framework for GNOME")
2907 (description (package-description libgnomeprint))
2908 (license license:lgpl2.0+)))
2909
2910 (define-public libbonoboui
2911 (package
2912 (name "libbonoboui")
2913 (version "2.24.5")
2914 (source (origin
2915 (method url-fetch)
2916 (uri (string-append "mirror://gnome/sources/" name "/"
2917 (version-major+minor version) "/"
2918 name "-" version ".tar.bz2"))
2919 (sha256
2920 (base32
2921 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2922 (build-system gnu-build-system)
2923 (arguments
2924 `(#:phases
2925 (modify-phases %standard-phases
2926 (add-before 'check 'start-xserver
2927 (lambda* (#:key inputs #:allow-other-keys)
2928 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2929 (disp ":1"))
2930
2931 (setenv "HOME" (getcwd))
2932 (setenv "DISPLAY" disp)
2933 ;; There must be a running X server and make check doesn't start one.
2934 ;; Therefore we must do it.
2935 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2936 ;; Mentioned as Required by the .pc file
2937 (propagated-inputs `(("libxml2" ,libxml2)))
2938 (inputs
2939 `(("popt" ,popt)
2940 ("pangox-compat" ,pangox-compat)
2941 ("libgnome" ,libgnome)
2942 ("libgnomecanvas" ,libgnomecanvas)
2943 ("libglade" ,libglade)))
2944 (native-inputs
2945 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2946 ("intltool" ,intltool)
2947 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2948 ("pkg-config" ,pkg-config)))
2949 (home-page "https://developer.gnome.org/libbonoboui/")
2950 (synopsis "Some user interface controls using Bonobo")
2951 (description "The Bonobo UI library provides a number of user interface
2952 controls using the Bonobo component framework.")
2953 (license license:lgpl2.0+)))
2954
2955 (define-public libwnck
2956 (package
2957 (name "libwnck")
2958 (version "3.32.0")
2959 (source (origin
2960 (method url-fetch)
2961 (uri (string-append "mirror://gnome/sources/" name "/"
2962 (version-major+minor version) "/"
2963 name "-" version ".tar.xz"))
2964 (sha256
2965 (base32
2966 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2967 (build-system meson-build-system)
2968 (native-inputs
2969 `(("pkg-config" ,pkg-config)
2970 ("glib" ,glib "bin") ; for glib-mkenums
2971 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
2972 ("intltool" ,intltool)))
2973 (propagated-inputs
2974 `(("gtk+" ,gtk+)
2975 ("libxres" ,libxres)
2976 ("startup-notification" ,startup-notification)))
2977 (home-page "https://developer.gnome.org/libwnck/")
2978 (synopsis "Window Navigator Construction Kit")
2979 (description
2980 "Libwnck is the Window Navigator Construction Kit, a library for use in
2981 writing pagers, tasklists, and more generally applications that are dealing
2982 with window management. It tries hard to respect the Extended Window Manager
2983 Hints specification (EWMH).")
2984 (license license:lgpl2.0+)))
2985
2986 ;; stable version for gtk2, required by xfwm4.
2987 (define-public libwnck-2
2988 (package (inherit libwnck)
2989 (name "libwnck")
2990 (version "2.30.7")
2991 (source (origin
2992 (method url-fetch)
2993 (uri (string-append "mirror://gnome/sources/" name "/"
2994 (version-major+minor version) "/"
2995 name "-" version ".tar.xz"))
2996 (sha256
2997 (base32
2998 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
2999 (build-system gnu-build-system)
3000 (native-inputs
3001 `(("pkg-config" ,pkg-config)
3002 ("intltool" ,intltool)))
3003 (propagated-inputs
3004 `(("gtk+" ,gtk+-2)
3005 ("libxres" ,libxres)
3006 ("startup-notification" ,startup-notification)))))
3007
3008 (define-public goffice
3009 (package
3010 (name "goffice")
3011 (version "0.10.46")
3012 (source (origin
3013 (method url-fetch)
3014 (uri (string-append "mirror://gnome/sources/goffice/"
3015 (version-major+minor version) "/"
3016 "goffice-" version ".tar.xz"))
3017 (sha256
3018 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
3019 (build-system gnu-build-system)
3020 (outputs '("out"
3021 "doc")) ; 4.0 MiB of gtk-doc
3022 (arguments
3023 '(#:configure-flags (list (string-append "--with-html-dir="
3024 (assoc-ref %outputs "doc")
3025 "/share/gtk-doc/html"))))
3026 (inputs
3027 `(("gtk+" ,gtk+)
3028 ("libgsf" ,libgsf)
3029 ("librsvg" ,librsvg)
3030 ("libxslt" ,libxslt)
3031 ("libxml2" ,libxml2)))
3032 (native-inputs
3033 `(("intltool" ,intltool)
3034 ("glib" ,glib "bin")
3035 ("pkg-config" ,pkg-config)))
3036 (home-page "https://developer.gnome.org/goffice/")
3037 (synopsis "Document-centric objects and utilities")
3038 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3039 (license
3040 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3041 ;; Note: NOT LGPL
3042 (list license:gpl2 license:gpl3))))
3043
3044 (define-public goffice-0.8
3045 (package (inherit goffice)
3046 (version "0.8.17")
3047 (source (origin
3048 (method url-fetch)
3049 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3050 (version-major+minor version) "/"
3051 (package-name goffice) "-" version ".tar.xz"))
3052 (sha256
3053 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3054 (arguments
3055 `(#:phases
3056 (modify-phases %standard-phases
3057 (add-after 'unpack 'fix-pcre-check
3058 (lambda _
3059 ;; Only glib.h can be included directly. See
3060 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3061 (substitute* "configure"
3062 (("glib/gregex\\.h") "glib.h")) #t)))
3063
3064 ,@(package-arguments goffice)))
3065 (propagated-inputs
3066 ;; libgoffice-0.8.pc mentions libgsf-1
3067 `(("libgsf" ,libgsf)))
3068 (inputs
3069 `(("gtk" ,gtk+-2)
3070 ,@(alist-delete "gtk" (package-inputs goffice))))))
3071
3072 (define-public gnumeric
3073 (package
3074 (name "gnumeric")
3075 (version "1.12.46")
3076 (source (origin
3077 (method url-fetch)
3078 (uri (string-append "mirror://gnome/sources/gnumeric/"
3079 (version-major+minor version) "/"
3080 "gnumeric-" version ".tar.xz"))
3081 (sha256
3082 (base32
3083 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3084 (build-system glib-or-gtk-build-system)
3085 (arguments
3086 `(;; The gnumeric developers don't worry much about failing tests.
3087 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3088 #:tests? #f
3089 #:phases
3090 (modify-phases %standard-phases
3091 (add-before
3092 'configure 'pre-conf
3093 (lambda* (#:key outputs #:allow-other-keys)
3094 ;; Make install tries to write into the directory of goffice
3095 ;; I am informed that this only affects the possibility to embed a
3096 ;; spreadsheet inside an Abiword document. So presumably when we
3097 ;; package Abiword we'll have to refer it to this directory.
3098 (substitute* "configure"
3099 (("^GOFFICE_PLUGINS_DIR=.*")
3100 (string-append "GOFFICE_PLUGINS_DIR="
3101 (assoc-ref outputs "out")
3102 "/goffice/plugins"))))))))
3103 (inputs
3104 `(("glib" ,glib)
3105 ("gtk+" ,gtk+)
3106 ("goffice" ,goffice)
3107 ("libgsf" ,libgsf)
3108 ("librsvg" ,librsvg)
3109 ("libxml2" ,libxml2)
3110 ("libxslt" ,libxslt)
3111 ("python" ,python-2)
3112 ("python2-pygobject" ,python2-pygobject)
3113 ("zlib" ,zlib)))
3114 (native-inputs
3115 `(("bison" ,bison)
3116 ("docbook-xml" ,docbook-xml)
3117 ("intltool" ,intltool)
3118 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
3119 ("glib:bin" ,glib "bin")
3120 ("pkg-config" ,pkg-config)))
3121 (home-page "http://www.gnumeric.org")
3122 (synopsis "Spreadsheet application")
3123 (description
3124 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3125 interoperable with other spreadsheet applications. It has a vast array of
3126 features beyond typical spreadsheet functionality, such as support for linear
3127 and non-linear solvers, statistical analysis, and telecommunication
3128 engineering.")
3129 (license
3130 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3131 (list license:gpl2 license:gpl3))))
3132
3133 (define-public gnome-themes-standard
3134 (package
3135 (name "gnome-themes-standard")
3136 (version "3.22.3")
3137 (source
3138 (origin
3139 (method url-fetch)
3140 (uri (string-append "mirror://gnome/sources/" name "/"
3141 (version-major+minor version) "/" name "-"
3142 version ".tar.xz"))
3143 (sha256
3144 (base32
3145 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3146 (build-system gnu-build-system)
3147 (arguments
3148 '(#:configure-flags
3149 ;; Don't create 'icon-theme.cache'.
3150 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3151 (true (string-append coreutils "/bin/true")))
3152 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3153 (inputs
3154 `(("gtk+" ,gtk+)
3155 ("gtk+-2" ,gtk+-2)
3156 ("librsvg" ,librsvg)
3157 ("libxml2" ,libxml2)
3158 ("glib" ,glib)))
3159 (native-inputs
3160 `(("intltool" ,intltool)
3161 ("glib:bin" ,glib "bin")
3162 ("pkg-config" ,pkg-config)))
3163 (home-page "https://launchpad.net/gnome-themes-standard")
3164 (synopsis "Default GNOME 3 themes")
3165 (description
3166 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3167 (license license:lgpl2.1+)))
3168
3169 (define-public seahorse
3170 (package
3171 (name "seahorse")
3172 (version "3.32.2")
3173 (source
3174 (origin
3175 (method url-fetch)
3176 (uri (string-append "mirror://gnome/sources/" name "/"
3177 (version-major+minor version) "/" name "-"
3178 version ".tar.xz"))
3179 (sha256
3180 (base32
3181 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
3182 (patches (search-patches
3183 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3184 (build-system meson-build-system)
3185 (arguments
3186 '(#:glib-or-gtk? #t
3187 #:phases
3188 (modify-phases %standard-phases
3189 (add-after 'unpack 'skip-gtk-update-icon-cache
3190 ;; Don't create 'icon-theme.cache'.
3191 (lambda _
3192 (substitute* "build-aux/meson_post_install.py"
3193 (("gtk-update-icon-cache") "true"))
3194 #t)))))
3195 (inputs
3196 `(("gtk+" ,gtk+)
3197 ("gcr" ,gcr)
3198 ("gnupg" ,gnupg)
3199 ("gpgme" ,gpgme)
3200 ("openldap" ,openldap)
3201 ("openssh" ,openssh)
3202 ("avahi" ,avahi)
3203 ("libpwquality" ,libpwquality)
3204 ("libsecret" ,libsecret)
3205 ("libsoup" ,libsoup)))
3206 (native-inputs
3207 `(("gettext" ,gettext-minimal)
3208 ("glib:bin" ,glib "bin")
3209 ("itstool" ,itstool)
3210 ("pkg-config" ,pkg-config)
3211 ("vala" ,vala)
3212 ("xmllint" ,libxml2)))
3213 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3214 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3215 (description
3216 "Seahorse is a GNOME application for managing encryption keys and
3217 passwords in the GNOME keyring.")
3218 (license license:gpl2+)))
3219
3220 (define-public vala
3221 (package
3222 (name "vala")
3223 (version "0.44.5")
3224 (source (origin
3225 (method url-fetch)
3226 (uri (string-append "mirror://gnome/sources/" name "/"
3227 (version-major+minor version) "/"
3228 name "-" version ".tar.xz"))
3229 (sha256
3230 (base32
3231 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
3232 (build-system gnu-build-system)
3233 (arguments
3234 '(#:phases
3235 (modify-phases %standard-phases
3236 (add-before 'check 'pre-check
3237 (lambda _
3238 (setenv "CC" "gcc")
3239 (substitute* "valadoc/tests/testrunner.sh"
3240 (("export PKG_CONFIG_PATH=" m)
3241 (string-append m "$PKG_CONFIG_PATH:")))
3242 ;; For missing '/etc/machine-id'.
3243 (setenv "DBUS_FATAL_WARNINGS" "0")
3244 #t)))))
3245 (native-inputs
3246 `(("pkg-config" ,pkg-config)
3247 ("flex" ,flex)
3248 ("bison" ,bison)
3249 ("xsltproc" ,libxslt)
3250 ("dbus" ,dbus) ; for dbus tests
3251 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3252 (inputs
3253 `(("graphviz" ,graphviz)))
3254 (propagated-inputs
3255 `(("glib" ,glib))) ; required by libvala-0.40.pc
3256 (home-page "https://live.gnome.org/Vala/")
3257 (synopsis "Compiler for the GObject type system")
3258 (description
3259 "Vala is a programming language that aims to bring modern programming
3260 language features to GNOME developers without imposing any additional runtime
3261 requirements and without using a different ABI compared to applications and
3262 libraries written in C.")
3263 (license license:lgpl2.1+)))
3264
3265 (define-public vte
3266 (package
3267 (name "vte")
3268 (version "0.58.3")
3269 (source (origin
3270 (method url-fetch)
3271 (uri (string-append "mirror://gnome/sources/vte/"
3272 (version-major+minor version) "/"
3273 "vte-" version ".tar.xz"))
3274 (sha256
3275 (base32
3276 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3277 (build-system meson-build-system)
3278 (native-inputs
3279 `(("pkg-config" ,pkg-config)
3280 ("intltool" ,intltool)
3281 ("vala" ,vala)
3282 ("gobject-introspection" ,gobject-introspection)
3283 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3284 ("gperf" ,gperf)
3285 ("xmllint" ,libxml2)))
3286 (propagated-inputs
3287 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3288 ("gnutls" ,gnutls) ; ditto
3289 ("pcre2" ,pcre2))) ; ditto
3290 (home-page "https://www.gnome.org/")
3291 (synopsis "Virtual Terminal Emulator")
3292 (description
3293 "VTE is a library (libvte) implementing a terminal emulator widget for
3294 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3295 gnome-terminal, but can also be used to embed a console/terminal in games,
3296 editors, IDEs, etc.")
3297 (license license:lgpl2.1+)))
3298
3299 (define-public vte-ng
3300 (package
3301 (inherit vte)
3302 (name "vte-ng")
3303 (version "0.58.2.a")
3304 (home-page "https://github.com/thestinger/vte-ng")
3305 (source (origin
3306 (method git-fetch)
3307 (uri (git-reference (url home-page) (commit version)))
3308 (file-name (git-file-name name version))
3309 (sha256
3310 (base32
3311 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3312 (build-system meson-build-system)
3313 (native-inputs
3314 `(("gtk-doc" ,gtk-doc)
3315 ,@(package-native-inputs vte)))
3316 (arguments
3317 `(#:configure-flags '("-Ddocs=true")))
3318 (synopsis "Enhanced VTE terminal widget")
3319 (description
3320 "VTE is a library (libvte) implementing a terminal emulator widget for
3321 GTK+, this fork provides additional functions exposed for keyboard text
3322 selection and URL hints.")))
3323
3324 ;; provides vte 2.90, required for some terminal emulators
3325 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3326 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3327 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3328 ;; pantheon-terminal, roxterm are not currently packaged
3329 (define-public vte-0.36
3330 (package (inherit vte)
3331 (name "vte")
3332 (version "0.36.5")
3333 (source (origin
3334 (method url-fetch)
3335 (uri (string-append "mirror://gnome/sources/" name "/"
3336 (version-major+minor version) "/"
3337 name "-" version ".tar.xz"))
3338 (sha256
3339 (base32
3340 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3341 (propagated-inputs
3342 `(("gtk" ,gtk+)
3343 ("ncurses" ,ncurses)))))
3344
3345 ;; stable version for gtk2, required by xfce4-terminal.
3346 (define-public vte/gtk+-2
3347 (package (inherit vte)
3348 (name "vte")
3349 (version "0.28.2")
3350 (source (origin
3351 (method url-fetch)
3352 (uri (string-append "mirror://gnome/sources/" name "/"
3353 (version-major+minor version) "/"
3354 name "-" version ".tar.xz"))
3355 (sha256
3356 (base32
3357 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3358 (patches (search-patches
3359 "vte-CVE-2012-2738-pt1.patch"
3360 "vte-CVE-2012-2738-pt2.patch"))))
3361 (build-system gnu-build-system)
3362 (arguments
3363 '(#:configure-flags '("--disable-python")))
3364 (native-inputs
3365 `(("pkg-config" ,pkg-config)
3366 ("intltool" ,intltool)
3367 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3368 (propagated-inputs
3369 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3370 ("ncurses" ,ncurses))))) ; required by libvte.la
3371
3372 (define-public vinagre
3373 (package
3374 (name "vinagre")
3375 (version "3.22.0")
3376 (source (origin
3377 (method url-fetch)
3378 (uri (string-append "mirror://gnome/sources/" name "/"
3379 (version-major+minor version) "/"
3380 name "-" version ".tar.xz"))
3381 (patches (search-patches "vinagre-newer-freerdp.patch"
3382 "vinagre-newer-rdp-parameters.patch"))
3383 (sha256
3384 (base32
3385 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3386 (build-system glib-or-gtk-build-system)
3387 (arguments
3388 ;; Disable -Werror and such, to avoid build failures on compilation
3389 ;; warnings.
3390 '(#:configure-flags '("--enable-compile-warnings=minimum")
3391 #:phases
3392 (modify-phases %standard-phases
3393 (add-before 'install 'skip-gtk-update-icon-cache
3394 (lambda _
3395 ;; Don't create 'icon-theme.cache'
3396 (substitute* (find-files "." "^Makefile$")
3397 (("gtk-update-icon-cache") (which "true")))
3398 #t))
3399 (add-after 'unpack 'patch-configure
3400 (lambda _
3401 (substitute* "configure"
3402 (("freerdp") "freerdp2"))
3403 #t)))))
3404 (native-inputs
3405 `(("pkg-config" ,pkg-config)
3406 ("intltool" ,intltool)
3407 ("itstool" ,itstool)
3408 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3409 (inputs
3410 `(("libxml2" ,libxml2)
3411 ("gtk-vnc" ,gtk-vnc)
3412 ("gnome-keyring" ,gnome-keyring)
3413 ("libsecret" ,libsecret)
3414 ("freerdp" ,freerdp)
3415 ("spice" ,spice)
3416 ("spice-gtk" ,spice-gtk)
3417 ("telepathy-glib" ,telepathy-glib)
3418 ("vte" ,vte)))
3419 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3420 (synopsis "Remote desktop viewer for GNOME")
3421 (description "Vinagre is a remote display client supporting the VNC, SPICE
3422 and RDP protocols.")
3423 (license license:gpl3+)))
3424
3425 (define-public dconf
3426 (package
3427 (name "dconf")
3428 (version "0.32.0")
3429 (source (origin
3430 (method url-fetch)
3431 (uri (string-append
3432 "mirror://gnome/sources/" name "/"
3433 (version-major+minor version) "/"
3434 name "-" version ".tar.xz"))
3435 (sha256
3436 (base32
3437 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
3438 (build-system meson-build-system)
3439 (propagated-inputs
3440 ;; In Requires of dconf.pc.
3441 `(("glib" ,glib)))
3442 (inputs
3443 `(("gtk+" ,gtk+)
3444 ("dbus" ,dbus)))
3445 (native-inputs
3446 `(("bash-completion" ,bash-completion)
3447 ("libxslt" ,libxslt) ;for xsltproc
3448 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3449 ("docbook-xml" ,docbook-xml-4.2)
3450 ("docbook-xsl" ,docbook-xsl)
3451 ("glib:bin" ,glib "bin")
3452 ("gtk-doc" ,gtk-doc)
3453 ("pkg-config" ,pkg-config)
3454 ("vala" ,vala)))
3455 (arguments
3456 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3457 ; or /etc/machine-id.
3458 #:glib-or-gtk? #t
3459 #:configure-flags '("-Denable-gtk-doc=true")))
3460 (home-page "https://developer.gnome.org/dconf")
3461 (synopsis "Low-level GNOME configuration system")
3462 (description "Dconf is a low-level configuration system. Its main purpose
3463 is to provide a backend to GSettings on platforms that don't already have
3464 configuration storage systems.")
3465 (license license:lgpl2.1+)))
3466
3467 (define-public json-glib
3468 (package
3469 (name "json-glib")
3470 (version "1.4.4")
3471 (source (origin
3472 (method url-fetch)
3473 (uri (string-append "mirror://gnome/sources/" name "/"
3474 (version-major+minor version) "/"
3475 name "-" version ".tar.xz"))
3476 (sha256
3477 (base32
3478 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3479 (build-system meson-build-system)
3480 (native-inputs
3481 `(("gettext" ,gettext-minimal)
3482 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3483 ("gobject-introspection" ,gobject-introspection)
3484 ("pkg-config" ,pkg-config)))
3485 (propagated-inputs
3486 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3487 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3488 (synopsis "Compiler for the GObject type system")
3489 (description
3490 "JSON-GLib is a C library based on GLib providing serialization and
3491 deserialization support for the JavaScript Object Notation (JSON) format
3492 described by RFC 4627. It provides parser and generator GObject classes and
3493 various wrappers for the complex data types employed by JSON, such as arrays
3494 and objects.")
3495 (license license:lgpl2.1+)))
3496
3497 (define-public libxklavier
3498 (package
3499 (name "libxklavier")
3500 (version "5.4")
3501 (source (origin
3502 ;; Note: There's no tarball at ftp.gnome.org for this version.
3503 (method git-fetch)
3504 (uri (git-reference
3505 (url "https://anongit.freedesktop.org/git/libxklavier")
3506 (commit (string-append "libxklavier-" version))))
3507 (sha256
3508 (base32
3509 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3510 (file-name (git-file-name name version))))
3511 (build-system gnu-build-system)
3512 (arguments
3513 '(#:phases
3514 (modify-phases %standard-phases
3515 (add-after 'unpack 'no-configure
3516 (lambda* _
3517 (setenv "NOCONFIGURE" "1")
3518 #t)))
3519 #:configure-flags
3520 (list (string-append "--with-xkb-base="
3521 (assoc-ref %build-inputs "xkeyboard-config")
3522 "/share/X11/xkb")
3523 "--disable-xmodmap-support")))
3524 (native-inputs
3525 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3526 ("gobject-introspection" ,gobject-introspection)
3527 ("pkg-config" ,pkg-config)
3528 ("gtk-doc" ,gtk-doc)
3529 ("intltool" ,intltool)
3530 ("which" ,which)
3531 ("autoconf" ,autoconf)
3532 ("automake" ,automake)
3533 ("libtool" ,libtool)))
3534 (propagated-inputs
3535 ;; Required by libxklavier.pc.
3536 `(("glib" ,glib)
3537 ("libxml2" ,libxml2)))
3538 (inputs
3539 `(("iso-codes" ,iso-codes)
3540 ("libxi" ,libxi)
3541 ("libxkbfile" ,libxkbfile)
3542 ("xkbcomp" ,xkbcomp)
3543 ("xkeyboard-config" ,xkeyboard-config)))
3544 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3545 (synopsis "High-level API for X Keyboard Extension")
3546 (description
3547 "LibXklavier is a library providing high-level API for X Keyboard
3548 Extension known as XKB. This library is intended to support XFree86 and other
3549 commercial X servers. It is useful for creating XKB-related software (layout
3550 indicators etc).")
3551 (license license:lgpl2.0+)))
3552
3553 (define-public python2-rsvg
3554 ;; XXX: This is actually a subset of gnome-python-desktop.
3555 (package
3556 (name "python2-rsvg")
3557 (version "2.32.0")
3558 (source
3559 (origin
3560 (method url-fetch)
3561 (uri (string-append
3562 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3563 version ".tar.bz2"))
3564 (sha256
3565 (base32
3566 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3567 (build-system gnu-build-system)
3568 (native-inputs
3569 `(("pkg-config" ,pkg-config)))
3570 (inputs
3571 `(("python" ,python-2)
3572 ("python2-pygtk" ,python2-pygtk)
3573 ("librsvg" ,librsvg)))
3574 (home-page "https://www.gnome.org")
3575 (synopsis "Python bindings to librsvg")
3576 (description
3577 "This package provides Python bindings to librsvg, the SVG rendering
3578 library.")
3579
3580 ;; This is the license of the rsvg bindings. The license of each module
3581 ;; of gnome-python-desktop is given in 'COPYING'.
3582 (license license:lgpl2.1+)))
3583
3584 (define-public glib-networking
3585 (package
3586 (name "glib-networking")
3587 (version "2.60.3")
3588 (source (origin
3589 (method url-fetch)
3590 (uri (string-append "mirror://gnome/sources/glib-networking/"
3591 (version-major+minor version) "/"
3592 "glib-networking-" version ".tar.xz"))
3593 (sha256
3594 (base32
3595 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
3596 (build-system meson-build-system)
3597 (arguments
3598 `(#:configure-flags '("-Dlibproxy_support=false")))
3599 (native-inputs
3600 `(("pkg-config" ,pkg-config)
3601 ("intltool" ,intltool)))
3602 (inputs
3603 `(("glib" ,glib)
3604 ("gnutls" ,gnutls)
3605 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3606 (home-page "https://www.gnome.org")
3607 (synopsis "Network-related GIO modules")
3608 (description
3609 "This package contains various network related extensions for the GIO
3610 library.")
3611 (license license:lgpl2.0+)))
3612
3613 (define-public rest
3614 (package
3615 (name "rest")
3616 (version "0.8.1")
3617 (source (origin
3618 (method url-fetch)
3619 (uri (string-append "mirror://gnome/sources/rest/"
3620 (version-major+minor version) "/"
3621 name "-" version ".tar.xz"))
3622 (sha256
3623 (base32
3624 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3625 (build-system gnu-build-system)
3626 (arguments
3627 '(#:tests? #f ; tests require internet connection
3628 #:configure-flags
3629 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3630 (native-inputs
3631 `(("glib-mkenums" ,glib "bin")
3632 ("gobject-introspection" ,gobject-introspection)
3633 ("pkg-config" ,pkg-config)))
3634 (propagated-inputs
3635 ;; rest-0.7.pc refers to all these.
3636 `(("glib" ,glib)
3637 ("libsoup" ,libsoup)
3638 ("libxml2" ,libxml2)))
3639 (home-page "https://www.gtk.org/")
3640 (synopsis "RESTful web api query library")
3641 (description
3642 "This library was designed to make it easier to access web services that
3643 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3644 libxml to ease remote use of the RESTful API.")
3645 (license license:lgpl2.1+)))
3646
3647 (define-public libsoup
3648 (package
3649 (name "libsoup")
3650 (version "2.68.3")
3651 (source (origin
3652 (method url-fetch)
3653 (uri (string-append "mirror://gnome/sources/libsoup/"
3654 (version-major+minor version) "/"
3655 "libsoup-" version ".tar.xz"))
3656 (sha256
3657 (base32
3658 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
3659 (build-system meson-build-system)
3660 (outputs '("out" "doc"))
3661 (arguments
3662 `(#:modules ((guix build utils)
3663 (guix build meson-build-system)
3664 (ice-9 popen))
3665
3666 #:configure-flags '("-Dgtk_doc=true")
3667 #:phases
3668 (modify-phases %standard-phases
3669 (add-after 'unpack 'adjust-tests
3670 (lambda _
3671 ;; This test fails due to missing /etc/nsswitch.conf
3672 ;; in the build environment.
3673 (substitute* "tests/socket-test.c"
3674 ((".*/sockets/unconnected.*") ""))
3675
3676 ;; These fail because "subdomain.localhost" does not resolve in
3677 ;; the build environment.
3678 (substitute* "tests/hsts-test.c"
3679 ((".*/hsts/basic.*") "")
3680 ((".*/hsts/subdomains.*") "")
3681 ((".*/hsts/superdomain.*") "")
3682 ((".*/hsts/utf8-address.*") ""))
3683 (substitute* "tests/hsts-db-test.c"
3684 ((".*/hsts-db/subdomains.*") ""))
3685
3686 ;; Generate a self-signed certificate that has "localhost" as its
3687 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3688 ;; 3.5.12, tests such as "ssl-tests" fail:
3689 ;;
3690 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3691 ;;
3692 ;; 'certtool' is interactive so we have to pipe it the answers.
3693 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3694 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3695 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3696 (for-each (lambda (line)
3697 (display line pipe)
3698 (newline pipe))
3699 '("" ;Common name
3700 "" ;UID
3701 "Guix" ;Organizational unit name
3702 "GNU" ;Organization name
3703 "" ;Locality name
3704 "" ;State or province
3705 "" ;Country
3706 "" ;subject's domain component (DC)
3707 "" ;E-mail
3708 "" ;serial number
3709 "-1" ;expiration time
3710 "N" ;belong to authority?
3711 "N" ;web client certificate?
3712 "N" ;IPsec IKE?
3713 "Y" ;web server certificate?
3714 "localhost" ;dnsName of subject
3715 "" ;dnsName of subject (end)
3716 "" ;URI of subject
3717 "127.0.0.1" ;IP address of subject
3718 "" ;signing?
3719 "" ;encryption (RSA)?
3720 "" ;data encryption?
3721 "" ;sign OCSP requests?
3722 "" ;sign code?
3723 "" ;time stamping?
3724 "" ;email protection?
3725 "" ;URI of the CRL distribution point
3726 "y" ;above info OK?
3727 ))
3728 (close-pipe pipe))
3729 #t))
3730 (add-after 'install 'move-doc
3731 (lambda* (#:key outputs #:allow-other-keys)
3732 (let ((out (assoc-ref outputs "out"))
3733 (doc (assoc-ref outputs "doc")))
3734 (mkdir-p (string-append doc "/share"))
3735 (copy-recursively (string-append out "/share/gtk-doc")
3736 (string-append doc "/share/gtk-doc"))
3737 (delete-file-recursively (string-append out "/share/gtk-doc"))
3738 #t))))))
3739 (native-inputs
3740 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3741 ("gobject-introspection" ,gobject-introspection)
3742 ("gtk-doc" ,gtk-doc)
3743 ("intltool" ,intltool)
3744 ("pkg-config" ,pkg-config)
3745 ("python" ,python-wrapper)
3746 ("vala" ,vala)
3747 ;; These are needed for the tests.
3748 ;; FIXME: Add PHP once available.
3749 ("curl" ,curl)
3750 ("gnutls" ,gnutls) ;for 'certtool'
3751 ("httpd" ,httpd)))
3752 (propagated-inputs
3753 ;; libsoup-2.4.pc refers to all these.
3754 `(("brotli" ,google-brotli)
3755 ("glib" ,glib)
3756 ("libpsl" ,libpsl)
3757 ("libxml2" ,libxml2)
3758 ("sqlite" ,sqlite)
3759 ("zlib" ,zlib)))
3760 (inputs
3761 `(("glib-networking" ,glib-networking)
3762 ("mit-krb5" ,mit-krb5)))
3763 (home-page "https://live.gnome.org/LibSoup/")
3764 (synopsis "GLib-based HTTP Library")
3765 (description
3766 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3767 and the GLib main loop, to integrate well with GNOME applications.")
3768 (license license:lgpl2.0+)))
3769
3770 (define-public libsecret
3771 (package
3772 (name "libsecret")
3773 (version "0.19.1")
3774 (source (origin
3775 (method url-fetch)
3776 (uri (string-append
3777 "mirror://gnome/sources/libsecret/"
3778 (version-major+minor version) "/"
3779 "libsecret-" version ".tar.xz"))
3780 (sha256
3781 (base32
3782 "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
3783 (build-system gnu-build-system)
3784 (outputs '("out" "doc"))
3785 (arguments
3786 `(#:tests? #f ; FIXME: Testing hangs.
3787 #:configure-flags
3788 (list (string-append "--with-html-dir="
3789 (assoc-ref %outputs "doc")
3790 "/share/gtk-doc/html"))))
3791 (native-inputs
3792 `(("gettext" ,gettext-minimal)
3793 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3794 ("gobject-introspection" ,gobject-introspection)
3795 ("pkg-config" ,pkg-config)
3796 ("vala" ,vala)
3797 ("xsltproc" ,libxslt)))
3798 ;; These are needed for the tests.
3799 ;; FIXME: Add gjs once available.
3800 ;("dbus" ,dbus)
3801 ;("python2" ,python-2)
3802 ;("python2-dbus" ,python2-dbus)
3803 ;("python2-pygobject" ,python2-pygobject)
3804 ;("python2-pygobject-2" ,python2-pygobject-2)))
3805 (propagated-inputs
3806 `(("glib" ,glib))) ; required by libsecret-1.pc
3807 (inputs
3808 `(("docbook-xsl" ,docbook-xsl)
3809 ("libgcrypt" ,libgcrypt)
3810 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3811 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3812 (synopsis "GObject bindings for \"Secret Service\" API")
3813 (description
3814 "Libsecret is a GObject based library for storing and retrieving passwords
3815 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3816 (license license:lgpl2.1+)))
3817
3818 (define-public five-or-more
3819 (package
3820 (name "five-or-more")
3821 (version "3.32.0")
3822 (source
3823 (origin
3824 (method url-fetch)
3825 (uri (string-append "mirror://gnome/sources/" name "/"
3826 (version-major+minor version) "/"
3827 name "-" version ".tar.xz"))
3828 (sha256
3829 (base32
3830 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3831 (build-system meson-build-system)
3832 (arguments
3833 '(#:glib-or-gtk? #t
3834 #:phases
3835 (modify-phases %standard-phases
3836 (add-after 'unpack 'skip-gtk-update-icon-cache
3837 (lambda _
3838 (substitute* "meson_post_install.py"
3839 (("gtk-update-icon-cache") (which "true")))
3840 #t)))))
3841 (native-inputs
3842 `(("pkg-config" ,pkg-config)
3843 ("appstream-glib" ,appstream-glib)
3844 ("desktop-file-utils" ,desktop-file-utils)
3845 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3846 ("intltool" ,intltool)
3847 ("itstool" ,itstool)
3848 ("vala" ,vala)
3849 ("xmllint" ,libxml2)))
3850 (inputs
3851 `(("gtk+" ,gtk+)
3852 ("libgnome-games-support" ,libgnome-games-support)
3853 ("librsvg" ,librsvg)))
3854 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3855 (synopsis "Logic puzzle game")
3856 (description "Five or More is a game where you try to align
3857 five or more objects of the same color and shape causing them to disappear.
3858 On every turn more objects will appear, until the board is full.
3859 Try to last as long as possible.")
3860 (license license:gpl2+)))
3861
3862 (define-public gnome-mines
3863 (package
3864 (name "gnome-mines")
3865 (version "3.32.2")
3866 (source
3867 (origin
3868 (method url-fetch)
3869 (uri (string-append "mirror://gnome/sources/" name "/"
3870 (version-major+minor version) "/"
3871 name "-" version ".tar.xz"))
3872 (sha256
3873 (base32
3874 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
3875 (build-system meson-build-system)
3876 (arguments
3877 '(#:glib-or-gtk? #t
3878 #:phases
3879 (modify-phases %standard-phases
3880 (add-after 'unpack 'skip-gtk-update-icon-cache
3881 (lambda _
3882 (substitute* "build-aux/meson_post_install.py"
3883 (("gtk-update-icon-cache") (which "true")))
3884 #t)))))
3885 (native-inputs
3886 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3887 ("pkg-config" ,pkg-config)
3888 ("desktop-file-utils" ,desktop-file-utils)
3889 ("intltool" ,intltool)
3890 ("itstool" ,itstool)
3891 ("vala" ,vala)
3892 ("yelp" ,yelp)
3893 ("appstream-glib" ,appstream-glib)))
3894 (inputs
3895 `(("gtk+" ,gtk+)
3896 ("libgnome-games-support" ,libgnome-games-support)
3897 ("librsvg" ,librsvg)))
3898 (home-page "https://wiki.gnome.org/Apps/Mines")
3899 (synopsis "Minesweeper game")
3900 (description
3901 "Mines (previously gnomine) is a puzzle game where you locate mines
3902 floating in an ocean using only your brain and a little bit of luck.")
3903 (license license:gpl2+)))
3904
3905 (define-public gnome-sudoku
3906 (package
3907 (name "gnome-sudoku")
3908 (version "3.32.0")
3909 (source
3910 (origin
3911 (method url-fetch)
3912 (uri (string-append "mirror://gnome/sources/" name "/"
3913 (version-major+minor version) "/"
3914 name "-" version ".tar.xz"))
3915 (sha256
3916 (base32
3917 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3918 (build-system meson-build-system)
3919 (arguments
3920 '(#:glib-or-gtk? #t
3921 #:phases
3922 (modify-phases %standard-phases
3923 (add-after 'unpack 'skip-gtk-update-icon-cache
3924 (lambda _
3925 (substitute* "build-aux/post_install.py"
3926 (("gtk-update-icon-cache") (which "true")))
3927 #t)))))
3928 (native-inputs
3929 `(("pkg-config" ,pkg-config)
3930 ("desktop-file-utils" ,desktop-file-utils)
3931 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3932 ("intltool" ,intltool)
3933 ("itstool" ,itstool)
3934 ("vala" ,vala)
3935 ("xmllint" ,libxml2)))
3936 (inputs
3937 `(("gtk+" ,gtk+)
3938 ("json-glib" ,json-glib)
3939 ("libgee" ,libgee)
3940 ("librsvg" ,librsvg)
3941 ("qqwing" ,qqwing)))
3942 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3943 (synopsis "Japanese logic game")
3944 (description
3945 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3946 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3947 possible while still providing features that make playing difficult Sudoku
3948 more fun.")
3949 (license license:gpl2+)))
3950
3951 (define-public gnome-terminal
3952 (package
3953 (name "gnome-terminal")
3954 (version "3.32.2")
3955 (source
3956 (origin
3957 (method url-fetch)
3958 (uri (string-append "mirror://gnome/sources/" name "/"
3959 (version-major+minor version) "/"
3960 name "-" version ".tar.xz"))
3961 (sha256
3962 (base32
3963 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
3964 (build-system glib-or-gtk-build-system)
3965 (arguments
3966 '(#:configure-flags
3967 (list "--disable-migration" "--disable-search-provider"
3968 "--without-nautilus-extension")
3969 #:phases
3970 (modify-phases %standard-phases
3971 (add-before 'configure 'patch-/bin/true
3972 (lambda _
3973 (substitute* "configure"
3974 (("/bin/true") (which "true"))))))))
3975 (native-inputs
3976 `(("pkg-config" ,pkg-config)
3977 ("desktop-file-utils" ,desktop-file-utils)
3978 ("intltool" ,intltool)
3979 ("itstool" ,itstool)
3980 ("xmllint" ,libxml2)))
3981 (propagated-inputs
3982 `(("dconf" ,dconf)))
3983 (inputs
3984 `(("gtk+" ,gtk+)
3985 ("vte" ,vte)
3986 ("gnutls" ,gnutls)
3987 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3988 ("util-linux" ,util-linux)
3989 ("vala" ,vala)))
3990 (home-page "https://wiki.gnome.org/Apps/Terminal")
3991 (synopsis "Terminal emulator")
3992 (description
3993 "GNOME Terminal is a terminal emulator application for accessing a
3994 UNIX shell environment which can be used to run programs available on
3995 your system.
3996
3997 It supports several profiles, multiple tabs and implements several
3998 keyboard shortcuts.")
3999 (license license:gpl3+)))
4000
4001 (define-public colord
4002 (package
4003 (name "colord")
4004 (version "1.4.4")
4005 (source
4006 (origin
4007 (method url-fetch)
4008 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
4009 "colord-" version ".tar.xz"))
4010 (sha256
4011 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
4012 (build-system meson-build-system)
4013 (arguments
4014 '(;; FIXME: One test fails:
4015 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4016 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4017 ;; application/x-zerosize
4018 #:tests? #f
4019 #:glib-or-gtk? #t
4020 #:configure-flags (list "-Dlocalstatedir=/var"
4021 ;; No dep on systemd.
4022 "-Dsystemd=false"
4023 ;; Wants to install to global completion dir;
4024 ;; punt.
4025 "-Dbash_completion=false"
4026 "-Ddaemon_user=colord"
4027 "-Dsane=true"
4028 "-Dvapi=true"
4029 ;; Requires spotread.
4030 "-Dargyllcms_sensor=false"
4031 ;; TODO: Requires docbook2x.
4032 "-Dman=false")
4033 #:phases
4034 (modify-phases %standard-phases
4035 (add-before 'configure 'patch-build-system
4036 (lambda* (#:key outputs #:allow-other-keys)
4037 (substitute* "rules/meson.build"
4038 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4039 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4040 #t))
4041 (add-before 'configure 'set-sqlite3-file-name
4042 (lambda* (#:key inputs #:allow-other-keys)
4043 ;; "colormgr dump" works by invoking the "sqlite3" command.
4044 ;; Record its absolute file name.
4045 (let ((sqlite (assoc-ref inputs "sqlite")))
4046 (substitute* "client/cd-util.c"
4047 (("\"sqlite3\"")
4048 (string-append "\"" sqlite "/bin/sqlite3\"")))
4049 #t))))))
4050 (native-inputs
4051 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4052 ("gettext" ,gettext-minimal)
4053 ("gobject-introspection" ,gobject-introspection)
4054 ("gtk-doc" ,gtk-doc)
4055 ("pkg-config" ,pkg-config)
4056 ("vala" ,vala)))
4057 (propagated-inputs
4058 ;; colord.pc refers to all these.
4059 `(("glib" ,glib)
4060 ("lcms" ,lcms)
4061 ("udev" ,eudev)))
4062 (inputs
4063 `(("dbus-glib" ,dbus-glib)
4064 ("gusb" ,gusb)
4065 ("libgudev" ,libgudev)
4066 ("libusb" ,libusb)
4067 ("polkit" ,polkit)
4068 ("python" ,python-wrapper)
4069 ("sqlite" ,sqlite)
4070 ("sane-backends" ,sane-backends)))
4071 (home-page "https://www.freedesktop.org/software/colord/")
4072 (synopsis "Color management service")
4073 (description "Colord is a system service that makes it easy to manage,
4074 install and generate color profiles to accurately color manage input and
4075 output devices.")
4076 (license license:gpl2+)))
4077
4078 (define-public geoclue
4079 (package
4080 (name "geoclue")
4081 (version "2.4.8")
4082 (source
4083 (origin
4084 (method url-fetch)
4085 (uri (string-append "https://www.freedesktop.org/software/" name
4086 "/releases/" (version-major+minor version) "/"
4087 name "-" version ".tar.xz"))
4088 (sha256
4089 (base32
4090 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
4091 (patches (search-patches "geoclue-config.patch"))))
4092 (build-system glib-or-gtk-build-system)
4093 (arguments
4094 '(;; The tests want to run the system bus.
4095 #:tests? #f
4096 #:configure-flags (list ;; Disable bits requiring ModemManager.
4097 "--disable-3g-source"
4098 "--disable-cdma-source"
4099 "--disable-modem-gps-source"
4100 "--with-dbus-service-user=geoclue")
4101 #:phases
4102 (modify-phases %standard-phases
4103 (add-before 'configure 'patch-/bin/true
4104 (lambda _
4105 (substitute* "configure"
4106 (("/bin/true") (which "true")))
4107 #t)))))
4108 (native-inputs
4109 `(("pkg-config" ,pkg-config)
4110 ("gobject-introspection" ,gobject-introspection)
4111 ("intltool" ,intltool)))
4112 (inputs
4113 `(("avahi" ,avahi)
4114 ("glib" ,glib)
4115 ("json-glib" ,json-glib)
4116 ("libsoup" ,libsoup)))
4117 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
4118 (synopsis "Geolocation service")
4119 (description "Geoclue is a D-Bus service that provides location
4120 information. The primary goal of the Geoclue project is to make creating
4121 location-aware applications as simple as possible, while the secondary goal is
4122 to ensure that no application can access location information without explicit
4123 permission from user.")
4124 (license license:gpl2+)))
4125
4126 (define-public geocode-glib
4127 (package
4128 (name "geocode-glib")
4129 (version "3.26.1")
4130 (source (origin
4131 (method url-fetch)
4132 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4133 (version-major+minor version) "/"
4134 "geocode-glib-" version ".tar.xz"))
4135 (sha256
4136 (base32
4137 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4138 (build-system meson-build-system)
4139 (arguments
4140 `(#:phases
4141 (modify-phases %standard-phases
4142 ;; The tests require a bunch of locales.
4143 (add-before 'check 'set-locales
4144 (lambda* (#:key inputs #:allow-other-keys)
4145 (setenv "GUIX_LOCPATH"
4146 (string-append (assoc-ref inputs "glibc-locales")
4147 "/lib/locale"))
4148 #t)))))
4149 (native-inputs
4150 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4151 ("glibc-locales" ,glibc-locales) ; for tests
4152 ("gettext" ,gettext-minimal)
4153 ("gobject-introspection" ,gobject-introspection)
4154 ("gtk-doc" ,gtk-doc)
4155 ("pkg-config" ,pkg-config)
4156 ("json-glib" ,json-glib)))
4157 (propagated-inputs
4158 ;; geocode-glib-1.0.pc refers to GIO.
4159 `(("glib" ,glib)))
4160 (inputs
4161 `(("libsoup" ,libsoup)))
4162 (home-page "https://github.com/GNOME/geocode-glib/")
4163 (synopsis "Geocoding and reverse-geocoding library")
4164 (description
4165 "geocode-glib is a convenience library for geocoding (finding longitude,
4166 and latitude from an address) and reverse geocoding (finding an address from
4167 coordinates) using the Nominatim service. geocode-glib caches requests for
4168 faster results and to avoid unnecessary server load.")
4169 (license license:lgpl2.0+)))
4170
4171 (define-public upower
4172 (package
4173 (name "upower")
4174 (version "0.99.11")
4175 (source (origin
4176 (method url-fetch)
4177 (uri (string-append "https://upower.freedesktop.org/releases/"
4178 "upower-" version ".tar.xz"))
4179 (sha256
4180 (base32
4181 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4182 (patches (search-patches "upower-builddir.patch"))
4183 (modules '((guix build utils)))
4184 (snippet
4185 '(begin
4186 ;; Upstream commit
4187 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4188 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4189 ;; 'dbus-configuration-directory' in (gnu services dbus)
4190 ;; expects it in etc/. Thus, move it back to its previous
4191 ;; location.
4192 (substitute* "src/Makefile.in"
4193 (("^dbusconfdir =.*$")
4194 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4195 #t))))
4196 (build-system glib-or-gtk-build-system)
4197 (arguments
4198 '( ;; The tests want to contact the system bus, which can't be done in the
4199 ;; build environment. The integration test can run, but the last of
4200 ;; the up-self-tests doesn't. Disable tests for now.
4201 #:tests? #f
4202 #:configure-flags (list "--localstatedir=/var"
4203 (string-append "--with-udevrulesdir="
4204 (assoc-ref %outputs "out")
4205 "/lib/udev/rules.d"))))
4206 (native-inputs
4207 `(("gobject-introspection" ,gobject-introspection)
4208 ("pkg-config" ,pkg-config)
4209 ("intltool" ,intltool)
4210 ("python" ,python)
4211
4212 ;; For man pages.
4213 ("libxslt" ,libxslt) ;for 'xsltproc'
4214 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4215 ("docbook-xsl" ,docbook-xsl)))
4216 (inputs
4217 `(("dbus-glib" ,dbus-glib)
4218 ("libgudev" ,libgudev)
4219 ("libusb" ,libusb)))
4220 (propagated-inputs
4221 ;; In Requires of upower-glib.pc.
4222 `(("glib" ,glib)))
4223 (home-page "https://upower.freedesktop.org/")
4224 (synopsis "System daemon for managing power devices")
4225 (description
4226 "UPower is an abstraction for enumerating power devices,
4227 listening to device events and querying history and statistics. Any
4228 application or service on the system can access the org.freedesktop.UPower
4229 service via the system message bus.")
4230 (license license:gpl2+)))
4231
4232 (define-public libgweather
4233 (package
4234 (name "libgweather")
4235 (version "3.28.3")
4236 (source (origin
4237 (method url-fetch)
4238 (uri (string-append "mirror://gnome/sources/" name "/"
4239 (version-major+minor version) "/"
4240 name "-" version ".tar.xz"))
4241 (sha256
4242 (base32
4243 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
4244 (build-system meson-build-system)
4245 (arguments
4246 `(#:tests? #f ; one of two tests requires network access
4247 #:configure-flags
4248 `(,(string-append "-Dzoneinfo_dir="
4249 (assoc-ref %build-inputs "tzdata")
4250 "/share/zoneinfo"))))
4251 (native-inputs
4252 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4253 ("gobject-introspection" ,gobject-introspection)
4254 ("pkg-config" ,pkg-config)
4255 ("vala" ,vala)
4256 ("intltool" ,intltool)))
4257 (propagated-inputs
4258 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4259 ;; libsoup.
4260 `(("gtk+" ,gtk+)
4261 ("gdk-pixbuf" ,gdk-pixbuf)
4262 ("libxml2" ,libxml2)
4263 ("libsoup" ,libsoup)
4264 ("geocode-glib" ,geocode-glib)))
4265 (inputs
4266 `(("tzdata" ,tzdata)))
4267 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4268 (synopsis "Location, time zone, and weather library for GNOME")
4269 (description
4270 "libgweather is a library to access weather information from online
4271 services for numerous locations.")
4272 (license license:gpl2+)))
4273
4274 (define-public gnome-settings-daemon
4275 (package
4276 (name "gnome-settings-daemon")
4277 (version "3.32.1")
4278 (source
4279 (origin
4280 (method url-fetch)
4281 (uri (string-append "mirror://gnome/sources/" name "/"
4282 (version-major+minor version) "/"
4283 name "-" version ".tar.xz"))
4284 (sha256
4285 (base32
4286 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
4287 (build-system meson-build-system)
4288 (arguments
4289 `(#:glib-or-gtk? #t
4290 #:configure-flags
4291 (list (string-append "-Dudev_dir="
4292 (assoc-ref %outputs "out")
4293 "/lib/udev/rules.d/")
4294 ;; Otherwise, the RUNPATH will lack the final path component.
4295 (string-append "-Dc_link_args=-Wl,-rpath="
4296 (assoc-ref %outputs "out")
4297 "/lib/gnome-settings-daemon-3.0"))
4298 ;; Color management test can't reach the colord system service.
4299 #:tests? #f))
4300 (native-inputs
4301 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4302 ("pkg-config" ,pkg-config)
4303 ("intltool" ,intltool)
4304 ("xsltproc" ,libxslt)
4305 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4306 ("docbook-xml" ,docbook-xml-4.2)
4307 ("docbook-xsl" ,docbook-xsl)))
4308 (inputs
4309 `(("alsa-lib" ,alsa-lib)
4310 ("colord" ,colord)
4311 ("libgudev" ,libgudev)
4312 ("upower" ,upower)
4313 ("polkit" ,polkit)
4314 ("pulseaudio" ,pulseaudio)
4315 ("libcanberra" ,libcanberra)
4316 ("libx11" ,libx11)
4317 ("libxtst" ,libxtst)
4318 ("lcms" ,lcms)
4319 ("libnotify" ,libnotify)
4320 ("geoclue" ,geoclue)
4321 ("geocode-glib" ,geocode-glib)
4322 ("libgweather" ,libgweather)
4323 ("gnome-desktop" ,gnome-desktop)
4324 ("nss" ,nss)
4325 ("cups" ,cups)
4326 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4327 ("libwacom" ,libwacom)
4328 ("librsvg" ,librsvg)
4329 ("xf86-input-wacom" ,xf86-input-wacom)
4330 ("wayland" ,wayland)
4331 ("network-manager" ,network-manager)))
4332 (home-page "https://www.gnome.org")
4333 (synopsis "GNOME settings daemon")
4334 (description
4335 "This package contains the daemon responsible for setting the various
4336 parameters of a GNOME session and the applications that run under it. It
4337 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4338 settings, themes, mouse settings, and startup of other daemons.")
4339 (license license:gpl2+)))
4340
4341 (define-public totem-pl-parser
4342 (package
4343 (name "totem-pl-parser")
4344 (version "3.26.3")
4345 (source (origin
4346 (method url-fetch)
4347 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4348 (version-major+minor version) "/"
4349 "totem-pl-parser-" version ".tar.xz"))
4350 (sha256
4351 (base32
4352 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4353 (build-system meson-build-system)
4354 (arguments
4355 ;; FIXME: Tests require gvfs.
4356 `(#:tests? #f))
4357 (native-inputs
4358 `(("intltool" ,intltool)
4359 ("glib" ,glib "bin")
4360 ("gobject-introspection" ,gobject-introspection)
4361 ("pkg-config" ,pkg-config)))
4362 (propagated-inputs
4363 `(("glib" ,glib)
4364 ("gmime" ,gmime)
4365 ("libarchive" ,libarchive)
4366 ("libgcrypt" ,libgcrypt)
4367 ("libxml2" ,libxml2)))
4368 (inputs
4369 `(("libsoup" ,libsoup)))
4370 (home-page "https://projects.gnome.org/totem")
4371 (synopsis "Library to parse and save media playlists for GNOME")
4372 (description "Totem-pl-parser is a GObjects-based library to parse and save
4373 playlists in a variety of formats.")
4374 (license license:lgpl2.0+)))
4375
4376 (define-public aisleriot
4377 (package
4378 (name "aisleriot")
4379 (version "3.22.9")
4380 (source (origin
4381 (method url-fetch)
4382 (uri (string-append "mirror://gnome/sources/aisleriot/"
4383 (version-major+minor version) "/"
4384 "aisleriot-" version ".tar.xz"))
4385 (sha256
4386 (base32
4387 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4388 (build-system glib-or-gtk-build-system)
4389 (arguments
4390 '(#:configure-flags
4391 '("--with-platform=gtk-only"
4392 "--with-card-theme-formats=svg")))
4393 (native-inputs
4394 `(("desktop-file-utils" ,desktop-file-utils)
4395 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4396 ("intltool" ,intltool)
4397 ("itstool" ,itstool)
4398 ("pkg-config" ,pkg-config)
4399 ("xmllint" ,libxml2)))
4400 (inputs
4401 `(("gtk+" ,gtk+)
4402 ("guile" ,guile-2.2)
4403 ("libcanberra" ,libcanberra)
4404 ("librsvg" ,librsvg)))
4405 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4406 (synopsis "Solitaire card games")
4407 (description
4408 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4409 which are easy to play with the aid of a mouse.")
4410 (license license:gpl3+)))
4411
4412 (define-public amtk
4413 (package
4414 (name "amtk")
4415 (version "5.0.1")
4416 (source (origin
4417 (method url-fetch)
4418 (uri (string-append "mirror://gnome/sources/amtk/"
4419 (version-major+minor version) "/"
4420 "amtk-" version ".tar.xz"))
4421 (sha256
4422 (base32
4423 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
4424 (build-system gnu-build-system)
4425 (arguments
4426 '(#:configure-flags '("--enable-gtk-doc")))
4427 (native-inputs
4428 `(("gobject-introspection" ,gobject-introspection)
4429 ("glib:bin" ,glib "bin") ; for glib-mkenums
4430 ("gtk-doc" ,gtk-doc)
4431 ("pkg-config" ,pkg-config)))
4432 (inputs
4433 `(("glib" ,glib)
4434 ("gtk+" ,gtk+)))
4435 (home-page "https://wiki.gnome.org/Projects/Amtk")
4436 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4437 (description
4438 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4439 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4440 both a traditional UI or a modern UI with a GtkHeaderBar.")
4441 (license license:lgpl2.1+)))
4442
4443 (define-public devhelp
4444 (package
4445 (name "devhelp")
4446 (version "3.32.0")
4447 (source (origin
4448 (method url-fetch)
4449 (uri (string-append "mirror://gnome/sources/" name "/"
4450 (version-major+minor version) "/"
4451 name "-" version ".tar.xz"))
4452 (sha256
4453 (base32
4454 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
4455 (build-system meson-build-system)
4456 (arguments
4457 '(#:glib-or-gtk? #t
4458 #:phases
4459 (modify-phases %standard-phases
4460 (add-after 'unpack 'skip-gtk-update-icon-cache
4461 ;; Don't create 'icon-theme.cache'.
4462 (lambda _
4463 (substitute* "meson_post_install.py"
4464 (("gtk-update-icon-cache") "true"))
4465 #t)))))
4466 (native-inputs
4467 `(("intltool" ,intltool)
4468 ("itstool" ,itstool)
4469 ("gobject-introspection" ,gobject-introspection)
4470 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4471 ("pkg-config" ,pkg-config)))
4472 (inputs
4473 `(("amtk" ,amtk)
4474 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4475 ("webkitgtk" ,webkitgtk)))
4476 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4477 (synopsis "API documentation browser for GNOME")
4478 (description
4479 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4480 natively with GTK-Doc (the API reference system developed for GTK+ and used
4481 throughout GNOME for API documentation).")
4482 (license license:gpl2+)))
4483
4484 (define-public cogl
4485 (package
4486 (name "cogl")
4487 (version "1.22.4")
4488 (source
4489 (origin
4490 (method url-fetch)
4491 (uri (string-append "mirror://gnome/sources/cogl/"
4492 (version-major+minor version) "/"
4493 "cogl-" version ".tar.xz"))
4494 (sha256
4495 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
4496 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4497 ;; cogl, corresponding changes may be appropriate in mutter as well.
4498 (build-system gnu-build-system)
4499 (native-inputs
4500 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4501 ("gobject-introspection" ,gobject-introspection)
4502 ;;("xorg-server" ,xorg-server) ; for the test suite
4503 ("pkg-config" ,pkg-config)))
4504 (propagated-inputs
4505 `(("glib" ,glib)
4506 ("gdk-pixbuf" ,gdk-pixbuf)
4507 ("libx11" ,libx11)
4508 ("libxext" ,libxext)
4509 ("libxfixes" ,libxfixes)
4510 ("libxdamage" ,libxdamage)
4511 ("libxcomposite" ,libxcomposite)
4512 ("libxrandr" ,libxrandr)))
4513 (inputs
4514 `(("mesa" ,mesa)
4515 ("cairo" ,cairo)
4516 ("pango" ,pango)
4517 ("gstreamer" ,gstreamer)
4518 ("gst-plugins-base" ,gst-plugins-base)
4519 ("wayland" ,wayland)))
4520 (arguments
4521 `(#:configure-flags (list "--enable-cogl-gst"
4522 "--enable-wayland-egl-platform"
4523 "--enable-wayland-egl-server"
4524
4525 ;; Arrange to pass an absolute file name to
4526 ;; dlopen for libGL.so.
4527 (string-append "--with-gl-libname="
4528 (assoc-ref %build-inputs "mesa")
4529 "/lib/libGL.so"))
4530 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4531 ;; _FontTransOpen: Unable to Parse address
4532 ;; ${prefix}/share/fonts/X11/misc/
4533 #:tests? #f
4534 #; #:phases
4535 #;
4536 (modify-phases %standard-phases
4537 (add-before 'check 'start-xorg-server
4538 (lambda* (#:key inputs #:allow-other-keys)
4539 ;; The test suite requires a running X server.
4540 (system (format #f "~a/bin/Xvfb :1 &"
4541 (assoc-ref inputs "xorg-server")))
4542 (setenv "DISPLAY" ":1")
4543 #t)))))
4544 (home-page "http://www.cogl3d.org")
4545 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4546 (description
4547 "Cogl is a small library for using 3D graphics hardware to draw pretty
4548 pictures. The API departs from the flat state machine style of OpenGL and is
4549 designed to make it easy to write orthogonal components that can render
4550 without stepping on each others toes.")
4551 (license (list license:expat ; most of the code
4552 license:bsd-3 ; cogl/cogl-point-in-poly.c
4553 license:sgifreeb2.0 ; cogl-path/tesselator/
4554 license:asl2.0)))) ; examples/android/
4555
4556 (define-public clutter
4557 (package
4558 (name "clutter")
4559 (version "1.26.2")
4560 (source
4561 (origin
4562 (method url-fetch)
4563 (uri (string-append "mirror://gnome/sources/" name "/"
4564 (version-major+minor version) "/"
4565 name "-" version ".tar.xz"))
4566 (sha256
4567 (base32
4568 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4569 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4570 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4571 (build-system gnu-build-system)
4572 (outputs '("out"
4573 "doc")) ;9 MiB of gtk-doc HTML pages
4574 (native-inputs
4575 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4576 ("gobject-introspection" ,gobject-introspection)
4577 ("pkg-config" ,pkg-config)
4578 ("xsltproc" ,libxslt)))
4579 (propagated-inputs
4580 `(("cogl" ,cogl)
4581 ("cairo" ,cairo)
4582 ("atk" ,atk)
4583 ("gtk+" ,gtk+)
4584 ("json-glib" ,json-glib)
4585 ("glib" ,glib)
4586 ("libxcomposite" ,libxcomposite)
4587 ("libxdamage" ,libxdamage)
4588 ("libxext" ,libxext)
4589 ("xinput" ,xinput)))
4590 (inputs
4591 `(("libxkbcommon" ,libxkbcommon)
4592 ("udev" ,eudev)))
4593 (arguments
4594 `(#:configure-flags (list "--enable-x11-backend=yes"
4595
4596 ;; This produces share/doc/{clutter,cally}.
4597 (string-append "--with-html-dir="
4598 (assoc-ref %outputs "doc")
4599 "/share/doc"))
4600 ;; XXX FIXME: Get test suite working. It would probably fail in the
4601 ;; same way the cogl tests fail, since clutter is based on cogl.
4602 #:tests? #f))
4603 (home-page "http://www.clutter-project.org")
4604 (synopsis "OpenGL-based interactive canvas library")
4605 (description
4606 "Clutter is an OpenGL-based interactive canvas library, designed for
4607 creating fast, mainly 2D single window applications such as media box UIs,
4608 presentations, kiosk style applications and so on.")
4609 (license license:lgpl2.0+)))
4610
4611 (define-public clutter-gtk
4612 (package
4613 (name "clutter-gtk")
4614 (version "1.8.4")
4615 (source
4616 (origin
4617 (method url-fetch)
4618 (uri (string-append "mirror://gnome/sources/" name "/"
4619 (version-major+minor version) "/"
4620 name "-" version ".tar.xz"))
4621 (sha256
4622 (base32
4623 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4624 (build-system gnu-build-system)
4625 (native-inputs
4626 `(("pkg-config" ,pkg-config)
4627 ("gobject-introspection" ,gobject-introspection)))
4628 (propagated-inputs
4629 ;; clutter-gtk.pc refers to all these.
4630 `(("clutter" ,clutter)
4631 ("gtk+" ,gtk+)))
4632 (home-page "http://www.clutter-project.org")
4633 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4634 (description
4635 "Clutter is an OpenGL-based interactive canvas library, designed for
4636 creating fast, mainly 2D single window applications such as media box UIs,
4637 presentations, kiosk style applications and so on.")
4638 (license license:lgpl2.0+)))
4639
4640 (define-public clutter-gst
4641 (package
4642 (name "clutter-gst")
4643 (version "3.0.27")
4644 (source
4645 (origin
4646 (method url-fetch)
4647 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4648 (version-major+minor version) "/"
4649 "clutter-gst-" version ".tar.xz"))
4650 (sha256
4651 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4652 (build-system gnu-build-system)
4653 (native-inputs
4654 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4655 ("pkg-config" ,pkg-config)
4656 ("gobject-introspection" ,gobject-introspection)))
4657 (inputs
4658 `(("clutter" ,clutter)
4659 ("gstreamer" ,gstreamer)
4660 ("gst-plugins-base" ,gst-plugins-base)))
4661 (home-page "http://www.clutter-project.org")
4662 (synopsis "Integration library for using GStreamer with Clutter")
4663 (description
4664 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4665 It provides a GStreamer sink to upload frames to GL and an actor that
4666 implements the ClutterGstPlayer interface using playbin. Clutter is an
4667 OpenGL-based interactive canvas library.")
4668 (license license:lgpl2.0+)))
4669
4670 (define-public libchamplain
4671 (package
4672 (name "libchamplain")
4673 (version "0.12.16")
4674 (source (origin
4675 (method url-fetch)
4676 (uri (string-append
4677 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4678 version ".tar.xz"))
4679 (sha256
4680 (base32
4681 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4682 (build-system gnu-build-system)
4683 (arguments '(#:configure-flags '("--enable-vala")))
4684 (native-inputs
4685 `(("gobject-introspection" ,gobject-introspection)
4686 ("pkg-config" ,pkg-config)
4687 ("vala" ,vala)))
4688 (propagated-inputs
4689 `(("libsoup" ,libsoup)
4690 ("sqlite" ,sqlite)
4691 ("clutter" ,clutter)
4692 ("clutter-gtk" ,clutter-gtk)
4693 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4694 ("cairo" ,cairo)
4695 ("gtk+3" ,gtk+)
4696 ("glib" ,glib)))
4697 (home-page "https://projects.gnome.org/libchamplain/")
4698 (synopsis "C library providing a ClutterActor to display maps")
4699 (description
4700 "libchamplain is a C library providing a ClutterActor to display maps.
4701 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4702 and Perl bindings are also available. It supports numerous free map sources
4703 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4704 (license license:lgpl2.1+)))
4705
4706 (define-public gom
4707 (package
4708 (name "gom")
4709 (version "0.3.2")
4710 (source
4711 (origin
4712 (method url-fetch)
4713 (uri (string-append "mirror://gnome/sources/gom/"
4714 (version-major+minor version) "/"
4715 "gom-" version ".tar.xz"))
4716 (sha256
4717 (base32
4718 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4719 (build-system gnu-build-system)
4720 (native-inputs
4721 `(("intltool" ,intltool)
4722 ("pkg-config" ,pkg-config)
4723 ("gobject-introspection" ,gobject-introspection)))
4724 (inputs
4725 `(("glib" ,glib)
4726 ("gdk-pixbuf" ,gdk-pixbuf)
4727 ("sqlite" ,sqlite)))
4728 ;; XXX TODO: Figure out how to run the test suite.
4729 (arguments `(#:tests? #f))
4730 (home-page "https://wiki.gnome.org/Projects/Gom")
4731 (synopsis "Object mapper from GObjects to SQLite")
4732 (description
4733 "Gom provides an object mapper from GObjects to SQLite. It helps you
4734 write applications that need to store structured data as well as make complex
4735 queries upon that data.")
4736 (license license:lgpl2.1+)))
4737
4738 (define-public libgnome-games-support
4739 (package
4740 (name "libgnome-games-support")
4741 (version "1.4.4")
4742 (source (origin
4743 (method url-fetch)
4744 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4745 (version-major+minor version) "/"
4746 "libgnome-games-support-" version ".tar.xz"))
4747 (sha256
4748 (base32
4749 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4750 (build-system gnu-build-system)
4751 (arguments
4752 '(#:phases
4753 (modify-phases %standard-phases
4754 (add-before 'check 'pre-check
4755 (lambda _
4756 ;; Tests require a writable HOME.
4757 (setenv "HOME" (getcwd))
4758 #t)))))
4759 (native-inputs
4760 `(("intltool" ,intltool)
4761 ("pkg-config" ,pkg-config)
4762 ("vala" ,vala)))
4763 (propagated-inputs
4764 ;; Required by libgnome-games-support-1.0.pc
4765 `(("gtk+" ,gtk+)
4766 ("libgee" ,libgee)))
4767 (home-page "https://www.gnome.org/")
4768 (synopsis "Useful functionality shared among GNOME games")
4769 (description
4770 "libgnome-games-support is a small library intended for internal use by
4771 GNOME Games, but it may be used by others.")
4772 (license license:lgpl3+)))
4773
4774 (define-public gnome-klotski
4775 (package
4776 (name "gnome-klotski")
4777 (version "3.32.0")
4778 (source (origin
4779 (method url-fetch)
4780 (uri (string-append "mirror://gnome/sources/" name "/"
4781 (version-major+minor version) "/"
4782 name "-" version ".tar.xz"))
4783 (sha256
4784 (base32
4785 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4786 (build-system meson-build-system)
4787 (arguments
4788 '(#:glib-or-gtk? #t
4789 #:phases
4790 (modify-phases %standard-phases
4791 (add-after 'unpack 'skip-gtk-update-icon-cache
4792 ;; Don't create 'icon-theme.cache'.
4793 (lambda _
4794 (substitute* "build-aux/meson_post_install.py"
4795 (("gtk-update-icon-cache") (which "true")))
4796 #t)))))
4797 (native-inputs
4798 `(("desktop-file-utils" ,desktop-file-utils)
4799 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4800 ("intltool" ,intltool)
4801 ("itstool" ,itstool)
4802 ("pkg-config" ,pkg-config)
4803 ("vala" ,vala)
4804 ("xmllint" ,libxml2)))
4805 (inputs
4806 `(("gtk+" ,gtk+)
4807 ("libgnome-games-support" ,libgnome-games-support)
4808 ("librsvg" ,librsvg)))
4809 (home-page "https://wiki.gnome.org/Apps/Klotski")
4810 (synopsis "Sliding block puzzles")
4811 (description
4812 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4813 the patterned block to the area bordered by green markers. To do so, you will
4814 need to slide other blocks out of the way. Complete each puzzle in as few moves
4815 as possible!")
4816 (license license:gpl2+)))
4817
4818 (define-public grilo
4819 (package
4820 (name "grilo")
4821 (version "0.3.10")
4822 (source
4823 (origin
4824 (method url-fetch)
4825 (uri (string-append "mirror://gnome/sources/" name "/"
4826 (version-major+minor version) "/"
4827 name "-" version ".tar.xz"))
4828 (sha256
4829 (base32
4830 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4831 (build-system meson-build-system)
4832 (native-inputs
4833 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4834 ("intltool" ,intltool)
4835 ("pkg-config" ,pkg-config)
4836 ("gobject-introspection" ,gobject-introspection)
4837 ("gtk-doc" ,gtk-doc)
4838 ("vala" ,vala)))
4839 (inputs
4840 `(("cyrus-sasl" ,cyrus-sasl)
4841 ("glib" ,glib)
4842 ("gtk+" ,gtk+)
4843 ("libxml2" ,libxml2)
4844 ("liboauth" ,liboauth)
4845 ("libsoup" ,libsoup)
4846 ("totem-pl-parser" ,totem-pl-parser)))
4847 (native-search-paths
4848 (list (search-path-specification
4849 (variable "GRL_PLUGIN_PATH")
4850 (files (list (string-append "lib/grilo-"
4851 (version-major+minor version)))))))
4852 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4853 (synopsis "Framework for discovering and browsing media")
4854 (description
4855 "Grilo is a framework focused on making media discovery and browsing easy
4856 for application developers.")
4857 (license license:lgpl2.1+)))
4858
4859 (define-public grilo-plugins
4860 (package
4861 (name "grilo-plugins")
4862 (version "0.3.10")
4863 (source
4864 (origin
4865 (method url-fetch)
4866 (uri (string-append "mirror://gnome/sources/" name "/"
4867 (version-major+minor version) "/"
4868 name "-" version ".tar.xz"))
4869 (sha256
4870 (base32
4871 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4872 (build-system meson-build-system)
4873 (native-inputs
4874 `(("gettext" ,gettext-minimal)
4875 ("glib:bin" ,glib "bin")
4876 ("gtk+:bin" ,gtk+ "bin")
4877 ("itstool" ,itstool)
4878 ("pkg-config" ,pkg-config)))
4879 ;; TODO: ahavi, gstreamer
4880 (inputs
4881 `(("grilo" ,grilo)
4882 ;("gmime" ,gmime) ; unused
4883 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4884 ("gom" ,gom)
4885 ;("gssdp" ,gssdp) ; unused
4886 ;("gupnp" ,gupnp) ; unused
4887 ;("gupnp-av" ,gupnp-av) ; unused
4888 ("json-glib" ,json-glib)
4889 ("avahi" ,avahi)
4890 ("libgdata" ,libgdata)
4891 ("libmediaart" ,libmediaart)
4892 ;("librest" ,rest) ; unused
4893 ("libsoup" ,libsoup)
4894 ("totam-pl-parser" ,totem-pl-parser)
4895 ("tracker" ,tracker))) ; unused because it's too old
4896 (arguments
4897 `(#:glib-or-gtk? #t
4898 ;;Disable lua-factory as it needs missing dependencies
4899 #:configure-flags '("-Denable-lua-factory=no")))
4900 (home-page "https://live.gnome.org/Grilo")
4901 (synopsis "Plugins for the Grilo media discovery library")
4902 (description
4903 "Grilo is a framework focused on making media discovery and browsing easy
4904 for application developers. This package provides plugins for common media
4905 discovery protocols.")
4906 (license license:lgpl2.1+)))
4907
4908 (define-public totem
4909 (package
4910 (name "totem")
4911 (version "3.32.1")
4912 (source
4913 (origin
4914 (method url-fetch)
4915 (uri (string-append "mirror://gnome/sources/" name "/"
4916 (version-major+minor version) "/"
4917 name "-" version ".tar.xz"))
4918 (sha256
4919 (base32
4920 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
4921 (build-system meson-build-system)
4922 (native-inputs
4923 `(("pkg-config" ,pkg-config)
4924 ("desktop-file-utils" ,desktop-file-utils)
4925 ("gobject-introspection" ,gobject-introspection)
4926 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4927 ("intltool" ,intltool)
4928 ("itstool" ,itstool)
4929 ("xmllint" ,libxml2)
4930 ("python-pylint" ,python-pylint)
4931 ("xorg-server" ,xorg-server-for-tests)))
4932 (propagated-inputs
4933 `(("dconf" ,dconf)))
4934 (inputs
4935 `(("gtk+" ,gtk+)
4936 ("gdk-pixbuf" ,gdk-pixbuf)
4937 ("atk" ,atk)
4938 ("cairo" ,cairo)
4939 ("dbus-glib" ,dbus-glib)
4940 ("clutter" ,clutter)
4941 ("clutter-gtk" ,clutter-gtk)
4942 ("clutter-gst" ,clutter-gst)
4943 ("xorgproto" ,xorgproto)
4944 ("libxxf86vm" ,libxxf86vm)
4945 ("libxtst" ,libxtst)
4946 ("libxrandr" ,libxrandr)
4947 ("libxml2" ,libxml2)
4948 ("libsoup" ,libsoup)
4949 ("libpeas" ,libpeas)
4950 ("librsvg" ,librsvg)
4951 ("lirc" ,lirc)
4952 ("gnome-desktop" ,gnome-desktop)
4953 ("gstreamer" ,gstreamer)
4954 ("gst-plugins-base" ,gst-plugins-base)
4955 ("gst-plugins-good" ,gst-plugins-good)
4956 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4957 ("adwaita-icon-theme" ,adwaita-icon-theme)
4958 ("python" ,python)
4959 ("python-pygobject" ,python-pygobject)
4960 ("totem-pl-parser" ,totem-pl-parser)
4961 ("grilo" ,grilo)
4962 ("grilo-plugins" ,grilo-plugins)
4963 ("vala" ,vala)))
4964 (arguments
4965 `(#:glib-or-gtk? #t
4966
4967 ;; Disable automatic GStreamer plugin installation via PackageKit and
4968 ;; all that.
4969 #:configure-flags '("-D" "enable-easy-codec-installation=no"
4970
4971 ;; Do not build .a files for the plugins, it's
4972 ;; completely useless. This saves 2 MiB.
4973 "--default-library" "shared")
4974 #:phases
4975 (modify-phases %standard-phases
4976 (add-after 'unpack 'skip-gtk-update-icon-cache
4977 ;; Don't create 'icon-theme.cache'.
4978 (lambda _
4979 (substitute* "meson_post_install.py"
4980 (("gtk-update-icon-cache") "true"))
4981 #t))
4982 (add-before
4983 'install 'disable-cache-generation
4984 (lambda _
4985 (setenv "DESTDIR" "/")
4986 #t))
4987 (add-before
4988 'check 'pre-check
4989 (lambda _
4990 ;; Tests require a running X server.
4991 (system "Xvfb :1 &")
4992 (setenv "DISPLAY" ":1")
4993 #t))
4994 (add-after
4995 'install 'wrap-totem
4996 (lambda* (#:key inputs outputs #:allow-other-keys)
4997 (let ((out (assoc-ref outputs "out"))
4998 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4999 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5000 (wrap-program (string-append out "/bin/totem")
5001 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5002 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5003 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5004 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
5005 #t)))))
5006 (home-page "https://wiki.gnome.org/Apps/Videos")
5007 (synopsis "Simple media player for GNOME based on GStreamer")
5008 (description "Totem is a simple yet featureful media player for GNOME
5009 which can read a large number of file formats.")
5010 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5011 ;; to be used and distributed together with GStreamer and Totem. See
5012 ;; file://COPYING in the source distribution for details.
5013 (license license:gpl2+)))
5014
5015 (define-public rhythmbox
5016 (package
5017 (name "rhythmbox")
5018 (version "3.4.3")
5019 (source (origin
5020 (method url-fetch)
5021 (uri (string-append "mirror://gnome/sources/" name "/"
5022 (version-major+minor version) "/"
5023 name "-" version ".tar.xz"))
5024 (sha256
5025 (base32
5026 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
5027 (build-system glib-or-gtk-build-system)
5028 (arguments
5029 `(#:configure-flags
5030 (list "--enable-lirc"
5031 "--enable-python"
5032 "--enable-vala"
5033 "--with-brasero"
5034 "--with-gudev"
5035 "--with-libsecret")
5036 #:phases
5037 (modify-phases %standard-phases
5038 (add-after
5039 'install 'wrap-rhythmbox
5040 (lambda* (#:key inputs outputs #:allow-other-keys)
5041 (let ((out (assoc-ref outputs "out"))
5042 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5043 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5044 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5045 (python-path (getenv "PYTHONPATH")))
5046 (wrap-program (string-append out "/bin/rhythmbox")
5047 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5048 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5049 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5050 `("PYTHONPATH" ":" prefix (,python-path))))
5051 #t)))))
5052 (propagated-inputs
5053 `(("dconf" ,dconf)))
5054 (native-inputs
5055 `(("itstool" ,itstool)
5056 ("intltool" ,intltool)
5057 ("glib" ,glib "bin")
5058 ("gobject-introspection" ,gobject-introspection)
5059 ("desktop-file-utils" ,desktop-file-utils)
5060 ("pkg-config" ,pkg-config)
5061 ("xmllint" ,libxml2)))
5062 (inputs
5063 `(("json-glib" ,json-glib)
5064 ("tdb" ,tdb)
5065 ("gnome-desktop" ,gnome-desktop)
5066 ("python" ,python)
5067 ("python-pygobject" ,python2-pygobject)
5068 ("vala" ,vala)
5069 ("gmime" ,gmime)
5070 ("adwaita-icon-theme" ,adwaita-icon-theme)
5071 ("grilo" ,grilo)
5072 ("grilo-plugins" ,grilo-plugins)
5073 ("gstreamer" ,gstreamer)
5074 ("gst-plugins-base" ,gst-plugins-base)
5075 ("gst-plugins-good" ,gst-plugins-good)
5076 ("totem-pl-parser" ,totem-pl-parser)
5077 ("libgudev" ,libgudev)
5078 ;;("libmtp" ,libmtp) FIXME: Not detected
5079 ("libsecret" ,libsecret)
5080 ("libsoup" ,libsoup)
5081 ("libnotify" ,libnotify)
5082 ("libpeas" ,libpeas)
5083 ("lirc" ,lirc)
5084 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5085 ;;("clutter" ,clutter)
5086 ;;("clutter-gtk" ,clutter-gtk)
5087 ;;("clutter-gst" ,clutter-gst)
5088 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5089 ("atk" ,atk)
5090 ("pango" ,pango)
5091 ("gtk+" ,gtk+)
5092 ;; TODO:
5093 ;; * libgpod
5094 ;; * mx
5095 ("brasero" ,brasero)))
5096 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5097 (synopsis "Music player for GNOME")
5098 (description "Rhythmbox is a music playing application for GNOME. It
5099 supports playlists, song ratings, and any codecs installed through gstreamer.")
5100 (license license:gpl2+)))
5101
5102 (define-public eog
5103 (package
5104 (name "eog")
5105 (version "3.32.2")
5106 (source (origin
5107 (method url-fetch)
5108 (uri (string-append "mirror://gnome/sources/" name "/"
5109 (version-major+minor version) "/"
5110 name "-" version ".tar.xz"))
5111 (sha256
5112 (base32
5113 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
5114 (build-system meson-build-system)
5115 (arguments
5116 `(#:configure-flags
5117 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5118 (list (string-append "-Dc_link_args=-Wl,-rpath="
5119 (assoc-ref %outputs "out") "/lib/eog"))
5120 #:phases
5121 (modify-phases %standard-phases
5122 (add-after 'unpack 'skip-gtk-update-icon-cache
5123 ;; Don't create 'icon-theme.cache'.
5124 (lambda _
5125 (substitute* "meson_post_install.py"
5126 (("gtk-update-icon-cache") "true"))
5127 #t))
5128 (add-after 'install 'wrap-eog
5129 (lambda* (#:key outputs #:allow-other-keys)
5130 (let ((out (assoc-ref outputs "out"))
5131 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5132 (wrap-program (string-append out "/bin/eog")
5133 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5134 #t)))))
5135 (propagated-inputs
5136 `(("dconf" ,dconf)))
5137 (native-inputs
5138 `(("intltool" ,intltool)
5139 ("itstool" ,itstool)
5140 ("glib" ,glib "bin")
5141 ("gobject-introspection" ,gobject-introspection)
5142 ("pkg-config" ,pkg-config)
5143 ("xmllint" ,libxml2)))
5144 (inputs
5145 `(("gnome-desktop" ,gnome-desktop)
5146 ("shared-mime-info" ,shared-mime-info)
5147 ("adwaita-icon-theme" ,adwaita-icon-theme)
5148 ("exempi" ,exempi)
5149 ("lcms" ,lcms)
5150 ("libexif" ,libexif)
5151 ("libpeas" ,libpeas)
5152 ("libjpeg" ,libjpeg)
5153 ("librsvg" ,librsvg)
5154 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5155 ("gtk+" ,gtk+)))
5156 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5157 (synopsis "GNOME image viewer")
5158 (description "Eye of GNOME is the GNOME image viewer. It
5159 supports image conversion, rotation, and slideshows.")
5160 (license license:gpl2+)))
5161
5162 (define-public eog-plugins
5163 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5164 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5165 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5166 ;; 'XDG_DATA_DIRS' appropriately set.
5167 (package
5168 (name "eog-plugins")
5169 (version "3.26.4")
5170 (source (origin
5171 (method url-fetch)
5172 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5173 (version-major+minor version) "/"
5174 "eog-plugins-" version ".tar.xz"))
5175 (sha256
5176 (base32
5177 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5178 (build-system gnu-build-system)
5179 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5180 (synopsis "Extensions for the Eye of GNOME image viewer")
5181 (native-inputs
5182 `(("pkg-config" ,pkg-config)
5183 ("gettext" ,gnu-gettext)))
5184 (inputs
5185 `(("eog" ,eog)
5186 ("glib" ,glib)
5187 ("gtk+" ,gtk+)
5188 ("libpeas" ,libpeas)
5189 ("libexif" ,libexif)
5190 ("libchamplain" ,libchamplain)))
5191 (description
5192 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5193 notably:
5194
5195 @itemize
5196 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5197 @item @dfn{Map}, which displays a map of where the picture was taken on the
5198 side panel;
5199 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5200 @end itemize\n")
5201
5202 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5203 ;; long suspicious byte stream that goes to a
5204 ;; ".gresource.eog_postasa_plugin" ELF section.
5205 (license license:gpl2+)))
5206
5207 (define-public libgudev
5208 (package
5209 (name "libgudev")
5210 (version "232")
5211 (source (origin
5212 (method url-fetch)
5213 (uri (string-append "mirror://gnome/sources/" name "/"
5214 version "/" name "-" version ".tar.xz"))
5215 (sha256
5216 (base32
5217 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5218 (build-system gnu-build-system)
5219 (arguments
5220 '(#:configure-flags
5221 ;; umockdev depends on libgudev.
5222 (list "--disable-umockdev")))
5223 (native-inputs
5224 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5225 ("gobject-introspection" ,gobject-introspection)
5226 ("pkg-config" ,pkg-config)))
5227 (propagated-inputs
5228 `(("glib" ,glib))) ; required by gudev-1.0.pc
5229 (inputs
5230 `(("udev" ,eudev)))
5231 (home-page "https://wiki.gnome.org/Projects/libgudev")
5232 (synopsis "GObject bindings for libudev")
5233 (description
5234 "This library provides GObject bindings for libudev. It was originally
5235 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5236 (license license:lgpl2.1+)))
5237
5238 (define-public gvfs
5239 (package
5240 (name "gvfs")
5241 (version "1.40.1")
5242 (source (origin
5243 (method url-fetch)
5244 (uri (string-append "mirror://gnome/sources/gvfs/"
5245 (version-major+minor version) "/"
5246 "gvfs-" version ".tar.xz"))
5247 (sha256
5248 (base32
5249 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5250 (build-system meson-build-system)
5251 (arguments
5252 '(#:glib-or-gtk? #t
5253 #:configure-flags
5254 (list "-Dsystemduserunitdir=no"
5255 "-Dtmpfilesdir=no"
5256 ;; Otherwise, the RUNPATH will lack the final path component.
5257 (string-append "-Dc_link_args=-Wl,-rpath="
5258 (assoc-ref %outputs "out") "/lib/gvfs"))))
5259 (native-inputs
5260 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5261 ("gettext" ,gettext-minimal)
5262 ("gtk-doc" ,gtk-doc)
5263 ("pkg-config" ,pkg-config)
5264 ("xsltproc" ,libxslt)))
5265 (inputs
5266 `(("avahi" ,avahi)
5267 ("docbook-xml" ,docbook-xml-4.2)
5268 ("docbook-xsl" ,docbook-xsl)
5269 ("dbus" ,dbus)
5270 ("elogind" ,elogind)
5271 ("fuse" ,fuse)
5272 ("gcr" ,gcr)
5273 ("glib" ,glib)
5274 ("gnome-online-accounts" ,gnome-online-accounts)
5275 ("libarchive" ,libarchive)
5276 ("libbluray" ,libbluray)
5277 ("libcap" ,libcap)
5278 ("libcdio-paranoia" ,libcdio-paranoia)
5279 ("libgcrypt" ,libgcrypt)
5280 ("libgdata" ,libgdata)
5281 ("libgphoto2" ,libgphoto2)
5282 ("libgudev" ,libgudev)
5283 ("libimobiledevice" ,libimobiledevice)
5284 ("libmtp" ,libmtp)
5285 ("libnfs" ,libnfs)
5286 ("libsecret" ,libsecret)
5287 ("libsmbclient" ,samba)
5288 ("libsoup" ,libsoup)
5289 ("libxml2" ,libxml2)
5290 ("openssh" ,openssh)
5291 ("polkit" ,polkit)
5292 ("udisks" ,udisks)))
5293 (home-page "https://wiki.gnome.org/gvfs/")
5294 (synopsis "Userspace virtual file system for GIO")
5295 (description
5296 "GVFS is a userspace virtual file system designed to work with the I/O
5297 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5298 to all applications using the GIO API. It also supports exposing the GVFS
5299 mounts to non-GIO applications using FUSE.
5300
5301 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5302 DAV, and others.")
5303 (license license:lgpl2.0+)))
5304
5305 (define-public gusb
5306 (package
5307 (name "gusb")
5308 (version "0.3.0")
5309 (source (origin
5310 (method git-fetch)
5311 (uri (git-reference
5312 (url "https://github.com/hughsie/libgusb.git")
5313 (commit version)))
5314 (file-name (git-file-name name version))
5315 (sha256
5316 (base32
5317 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5318 (build-system meson-build-system)
5319 (native-inputs
5320 `(("gobject-introspection" ,gobject-introspection)
5321 ("pkg-config" ,pkg-config)
5322 ("vala" ,vala)
5323 ("gtk-doc" ,gtk-doc)))
5324 (propagated-inputs
5325 ;; Both of these are required by gusb.pc.
5326 `(("glib" ,glib)
5327 ("libusb" ,libusb)))
5328 (arguments
5329 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5330 (home-page "https://github.com/hughsie/libgusb")
5331 (synopsis "GLib binding for libusb1")
5332 (description
5333 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5334 asynchronous control, bulk and interrupt transfers with proper cancellation
5335 and integration into a mainloop. This makes it easy to integrate low level
5336 USB transfers with your high-level application or system daemon.")
5337 (license license:lgpl2.1+)))
5338
5339 (define-public simple-scan
5340 (package
5341 (name "simple-scan")
5342 (version "3.34.2")
5343 (source
5344 (origin
5345 (method url-fetch)
5346 (uri (string-append "mirror://gnome/sources/simple-scan/"
5347 (version-major+minor version) "/"
5348 "simple-scan-" version ".tar.xz"))
5349 (sha256
5350 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
5351 (build-system meson-build-system)
5352 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5353 (arguments
5354 '(#:glib-or-gtk? #t))
5355 (inputs
5356 `(("gtk" ,gtk+)
5357 ("zlib" ,zlib)
5358 ("cairo" ,cairo)
5359 ("colord" ,colord)
5360 ("gdk-pixbuf" ,gdk-pixbuf)
5361 ("gusb" ,gusb)
5362 ("libsane" ,sane-backends)))
5363 (native-inputs
5364 `(("gettext" ,gettext-minimal)
5365 ("itstool" ,itstool)
5366 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5367 ("pkg-config" ,pkg-config)
5368 ("vala" ,vala)
5369 ("xmllint" ,libxml2)))
5370 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5371 (synopsis "Document and image scanner")
5372 (description
5373 "Document Scanner is an easy-to-use application that lets you connect your
5374 scanner and quickly capture images and documents in an appropriate format. It
5375 supports any scanner for which a suitable SANE driver is available, which is
5376 almost all of them.")
5377 (license license:gpl3+)))
5378
5379 (define-public eolie
5380 (package
5381 (name "eolie")
5382 (version "0.9.63")
5383 (source (origin
5384 (method url-fetch)
5385 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
5386 "uploads/d42b466752729a0d3fa828a721e25043/"
5387 "eolie-" version ".tar.xz"))
5388 (sha256
5389 (base32
5390 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
5391 (build-system meson-build-system)
5392 (arguments
5393 `(#:glib-or-gtk? #t
5394 #:phases
5395 (modify-phases %standard-phases
5396 (add-after 'unpack 'skip-gtk-update-icon-cache
5397 ;; Don't create 'icon-theme.cache'.
5398 (lambda _
5399 (substitute* "meson_post_install.py"
5400 (("gtk-update-icon-cache") "true"))
5401 #t))
5402 (add-after 'wrap 'wrap-more
5403 (lambda* (#:key inputs outputs #:allow-other-keys)
5404 (let* ((out (assoc-ref outputs "out"))
5405 ;; These libraries must be on LD_LIBRARY_PATH.
5406 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5407 "atk" "gtk+" "gsettings-desktop-schemas"
5408 "gobject-introspection"))
5409 (path (string-join
5410 (map (lambda (lib)
5411 (string-append (assoc-ref inputs lib) "/lib"))
5412 libs)
5413 ":")))
5414 (wrap-program (string-append out "/bin/eolie")
5415 `("LD_LIBRARY_PATH" ":" prefix (,path))
5416 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5417 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5418 #t)))))
5419 (native-inputs
5420 `(("intltool" ,intltool)
5421 ("itstool" ,itstool)
5422 ("pkg-config" ,pkg-config)
5423 ("python" ,python)
5424 ("glib:bin" ,glib "bin")))
5425 (inputs
5426 `(("gobject-introspection" ,gobject-introspection)
5427 ("glib-networking" ,glib-networking)
5428 ("cairo" ,cairo)
5429 ("gtk+" ,gtk+)
5430 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5431 ("python" ,python-wrapper)
5432 ("python-dateutil" ,python-dateutil)
5433 ("python-pyfxa" ,python-pyfxa)
5434 ("python-pygobject" ,python-pygobject)
5435 ("python-pycairo" ,python-pycairo)
5436 ("python-pycrypto" ,python-pycrypto)
5437 ("libsecret" ,libsecret)
5438 ("gtkspell3" ,gtkspell3)
5439 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5440 ("webkitgtk" ,webkitgtk)))
5441 (home-page "https://wiki.gnome.org/Apps/Eolie")
5442 (synopsis "Web browser for GNOME")
5443 (description
5444 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5445 a secret password store, an adblocker, and a modern UI.")
5446 (license license:gpl3+)))
5447
5448 (define-public epiphany
5449 (package
5450 (name "epiphany")
5451 (version "3.32.5")
5452 (source (origin
5453 (method url-fetch)
5454 (uri (string-append "mirror://gnome/sources/epiphany/"
5455 (version-major+minor version) "/"
5456 "epiphany-" version ".tar.xz"))
5457 (sha256
5458 (base32
5459 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
5460
5461 (build-system meson-build-system)
5462 (arguments
5463 ;; FIXME: tests run under Xvfb, but fail with:
5464 ;; /src/bookmarks/ephy-bookmarks/create:
5465 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5466 ;; subsystem
5467 ;; FAIL
5468 '(#:tests? #f
5469 #:glib-or-gtk? #t
5470 #:phases
5471 (modify-phases %standard-phases
5472 (add-after 'unpack 'skip-gtk-update-icon-cache
5473 ;; Don't create 'icon-theme.cache'.
5474 (lambda _
5475 (substitute* "post_install.py"
5476 (("gtk-update-icon-cache") "true"))
5477 #t)))
5478 #:configure-flags
5479 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5480 (list (string-append "-Dc_link_args=-Wl,-rpath="
5481 (assoc-ref %outputs "out") "/lib/epiphany"))))
5482 (propagated-inputs
5483 `(("dconf" ,dconf)))
5484 (native-inputs
5485 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5486 ("glib:bin" ,glib "bin") ; for glib-mkenums
5487 ("intltool" ,intltool)
5488 ("itstool" ,itstool)
5489 ("pkg-config" ,pkg-config)
5490 ("xmllint" ,libxml2)))
5491 (inputs
5492 `(("avahi" ,avahi)
5493 ("gcr" ,gcr)
5494 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5495 ("glib-networking" ,glib-networking)
5496 ("gnome-desktop" ,gnome-desktop)
5497 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5498 ("json-glib" ,json-glib)
5499 ("iso-codes" ,iso-codes)
5500 ("libdazzle" ,libdazzle)
5501 ("libnotify" ,libnotify)
5502 ("libsecret" ,libsecret)
5503 ("libxslt" ,libxslt)
5504 ("nettle" ,nettle) ; for hogweed
5505 ("sqlite" ,sqlite)
5506 ("webkitgtk" ,webkitgtk)))
5507 (home-page "https://wiki.gnome.org/Apps/Web")
5508 (synopsis "GNOME web browser")
5509 (description
5510 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5511 principles are simplicity and standards compliance.")
5512 (license license:gpl2+)))
5513
5514 (define-public d-feet
5515 (package
5516 (name "d-feet")
5517 (version "0.3.14")
5518 (source (origin
5519 (method url-fetch)
5520 (uri (string-append "mirror://gnome/sources/" name "/"
5521 (version-major+minor version) "/"
5522 name "-" version ".tar.xz"))
5523 (sha256
5524 (base32
5525 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5526 (build-system glib-or-gtk-build-system)
5527 (arguments
5528 '(#:out-of-source? #f ; tests need to run in the source directory.
5529 #:phases
5530 (modify-phases %standard-phases
5531 (add-before
5532 'check 'pre-check
5533 (lambda _
5534 ;; The test suite requires a running X server.
5535 (system "Xvfb :1 &")
5536 (setenv "DISPLAY" ":1")
5537 ;; Don't fail on missing '/etc/machine-id'.
5538 (setenv "DBUS_FATAL_WARNINGS" "0")
5539 ;; tests.py and window.py don't meet E402:
5540 ;; E402 module level import not at top of file
5541 (substitute* "src/tests/Makefile"
5542 (("--ignore=E123") "--ignore=E123,E402"))
5543 #t))
5544 (add-after
5545 'install 'wrap-program
5546 (lambda* (#:key outputs #:allow-other-keys)
5547 (let ((prog (string-append (assoc-ref outputs "out")
5548 "/bin/d-feet")))
5549 (wrap-program prog
5550 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5551 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5552 #t))))))
5553 (native-inputs
5554 `(("intltool" ,intltool)
5555 ("itstool" ,itstool)
5556 ("pkg-config" ,pkg-config)
5557 ("python-pep8" ,python-pep8)
5558 ("xmllint" ,libxml2)
5559 ("xorg-server" ,xorg-server-for-tests)))
5560 (inputs
5561 `(("gobject-introspection" ,gobject-introspection)
5562 ("gtk+" ,gtk+)
5563 ("python" ,python-wrapper)
5564 ("hicolor-icon-theme" ,hicolor-icon-theme)
5565 ("python-pygobject" ,python-pygobject)))
5566 (home-page "https://wiki.gnome.org/Apps/DFeet")
5567 (synopsis "D-Bus debugger")
5568 (description
5569 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5570 of running programs and invoke methods on those interfaces.")
5571 (license license:gpl2+)))
5572
5573 (define-public yelp-xsl
5574 (package
5575 (name "yelp-xsl")
5576 (version "3.32.1")
5577 (source (origin
5578 (method url-fetch)
5579 (uri (string-append "mirror://gnome/sources/" name "/"
5580 (version-major+minor version) "/"
5581 name "-" version ".tar.xz"))
5582 (sha256
5583 (base32
5584 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
5585 (build-system gnu-build-system)
5586 (native-inputs
5587 `(("intltool" ,intltool)
5588 ("itstool" ,itstool)
5589 ("xmllint" ,libxml2)))
5590 (home-page "https://wiki.gnome.org/Apps/Yelp")
5591 (synopsis "XSL stylesheets for Yelp")
5592 (description
5593 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5594 to format Docbook and Mallard documents.")
5595 (license license:gpl2+)))
5596
5597 (define-public yelp
5598 (package
5599 (name "yelp")
5600 (version "3.32.2")
5601 (source (origin
5602 (method url-fetch)
5603 (uri (string-append "mirror://gnome/sources/" name "/"
5604 (version-major+minor version) "/"
5605 name "-" version ".tar.xz"))
5606 (sha256
5607 (base32
5608 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5609 (build-system glib-or-gtk-build-system)
5610 (native-inputs
5611 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5612 ("intltool" ,intltool)
5613 ("itstool" ,itstool)
5614 ("pkg-config" ,pkg-config)))
5615 (propagated-inputs
5616 `(("dconf" ,dconf)))
5617 (inputs
5618 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5619 ("libxslt" ,libxslt)
5620 ("sqlite" ,sqlite)
5621 ("webkitgtk" ,webkitgtk)
5622 ("yelp-xsl" ,yelp-xsl)))
5623 (home-page "https://wiki.gnome.org/Apps/Yelp")
5624 (synopsis "GNOME help browser")
5625 (description
5626 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5627 man, info, and HTML documents. It can locate documents according to the
5628 freedesktop.org help system specification.")
5629 (license license:gpl2+)))
5630
5631 (define-public yelp-tools
5632 (package
5633 (name "yelp-tools")
5634 (version "3.28.0")
5635 (source (origin
5636 (method url-fetch)
5637 (uri (string-append "mirror://gnome/sources/" name "/"
5638 (version-major+minor version) "/"
5639 name "-" version ".tar.xz"))
5640 (sha256
5641 (base32
5642 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
5643 (build-system gnu-build-system)
5644 (native-inputs
5645 `(("pkg-config" ,pkg-config)))
5646 (propagated-inputs
5647 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5648 `(("itstool" ,itstool)
5649 ("xmllint" ,libxml2)
5650 ("xsltproc" ,libxslt)))
5651 (inputs
5652 `(("yelp-xsl" ,yelp-xsl)))
5653 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5654 (synopsis "Yelp documentation tools")
5655 (description
5656 "Yelp-tools is a collection of scripts and build utilities to help create,
5657 manage, and publish documentation for Yelp and the web. Most of the heavy
5658 lifting is done by packages like yelp-xsl and itstool. This package just
5659 wraps things up in a developer-friendly way.")
5660 (license license:gpl2+)))
5661
5662 (define-public yelp-tools/fixed
5663 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5664 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5665 ;; the next rebuild cycle.
5666 (hidden-package
5667 (package/inherit
5668 yelp-tools
5669 (propagated-inputs
5670 `(("itstool" ,itstool/fixed)
5671 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5672
5673 (define-public libgee
5674 (package
5675 (name "libgee")
5676 (version "0.20.2")
5677 (source (origin
5678 (method url-fetch)
5679 (uri (string-append "mirror://gnome/sources/libgee/"
5680 (version-major+minor version) "/"
5681 "libgee-" version ".tar.xz"))
5682 (sha256
5683 (base32
5684 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
5685 (build-system gnu-build-system)
5686 (arguments
5687 `(#:phases
5688 (modify-phases %standard-phases
5689 (add-after 'unpack 'fix-introspection-install-dir
5690 (lambda* (#:key outputs #:allow-other-keys)
5691 (let ((out (assoc-ref outputs "out")))
5692 (substitute* "gee/Makefile.in"
5693 (("@INTROSPECTION_GIRDIR@")
5694 (string-append out "/share/gir-1.0/"))
5695 (("@INTROSPECTION_TYPELIBDIR@")
5696 (string-append out "/lib/girepository-1.0/")))))))))
5697 (native-inputs
5698 `(("glib" ,glib "bin")
5699 ("pkg-config" ,pkg-config)))
5700 (inputs
5701 `(("glib" ,glib)
5702 ("gobject-introspection" ,gobject-introspection)))
5703 (home-page "https://wiki.gnome.org/Projects/Libgee")
5704 (synopsis "GObject collection library")
5705 (description
5706 "Libgee is a utility library providing GObject-based interfaces and
5707 classes for commonly used data structures.")
5708 (license license:lgpl2.1+)))
5709
5710 (define-public gexiv2
5711 (package
5712 (name "gexiv2")
5713 (version "0.12.0")
5714 (source (origin
5715 (method url-fetch)
5716 (uri (string-append "mirror://gnome/sources/" name "/"
5717 (version-major+minor version) "/"
5718 name "-" version ".tar.xz"))
5719 (sha256
5720 (base32
5721 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5722 (build-system meson-build-system)
5723 (native-inputs
5724 `(("gcr" ,gcr)
5725 ("glib" ,glib "bin")
5726 ("pkg-config" ,pkg-config)
5727 ("vala" ,vala)))
5728 (propagated-inputs
5729 ;; Listed in "Requires" section of gexiv2.pc
5730 `(("exiv2" ,exiv2)))
5731 (inputs
5732 `(("glib" ,glib)
5733 ("gobject-introspection" ,gobject-introspection)))
5734 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5735 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5736 (description
5737 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5738 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5739 metadata in photo and video files of various formats.")
5740 (license license:gpl2+)))
5741
5742 (define-public shotwell
5743 (package
5744 (name "shotwell")
5745 (version "0.30.7")
5746 (source (origin
5747 (method url-fetch)
5748 (uri (string-append "mirror://gnome/sources/shotwell/"
5749 (version-major+minor version) "/"
5750 "shotwell-" version ".tar.xz"))
5751 (sha256
5752 (base32
5753 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
5754 (build-system meson-build-system)
5755 (arguments
5756 '(#:glib-or-gtk? #t
5757 #:phases
5758 (modify-phases %standard-phases
5759 (add-after 'unpack 'skip-gtk-update-icon-cache
5760 (lambda _
5761 (substitute* "build-aux/meson/postinstall.py"
5762 (("gtk-update-icon-cache") (which "true"))
5763 (("update-desktop-database") (which "true")))
5764 #t)))))
5765 (propagated-inputs
5766 `(("dconf" ,dconf)))
5767 (native-inputs
5768 `(("gettext" ,gettext-minimal)
5769 ("glib:bin" ,glib "bin")
5770 ("itstool" ,itstool)
5771 ("pkg-config" ,pkg-config)
5772 ("vala" ,vala)))
5773 (inputs
5774 `(("gcr" ,gcr)
5775 ("gexiv2" ,gexiv2)
5776 ("gst-plugins-base" ,gst-plugins-base)
5777 ("gstreamer" ,gstreamer)
5778 ("json-glib" ,json-glib)
5779 ("libgdata" ,libgdata)
5780 ("libgee" ,libgee)
5781 ("libgphoto2" ,libgphoto2)
5782 ("libgudev" ,libgudev)
5783 ("libraw" ,libraw)
5784 ("libsoup" ,libsoup)
5785 ("libxml2" ,libxml2)
5786 ("sqlite" ,sqlite)
5787 ("webkitgtk" ,webkitgtk)))
5788 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5789 (synopsis "Photo manager for GNOME 3")
5790 (description
5791 "Shotwell is a digital photo manager designed for the GNOME desktop
5792 environment. It allows you to import photos from disk or camera, organize
5793 them by keywords and events, view them in full-window or fullscreen mode, and
5794 share them with others via social networking and more.")
5795 (license license:lgpl2.1+)))
5796
5797 (define-public file-roller
5798 (package
5799 (name "file-roller")
5800 (version "3.32.3")
5801 (source (origin
5802 (method url-fetch)
5803 (uri (string-append "mirror://gnome/sources/file-roller/"
5804 (version-major+minor version) "/"
5805 "file-roller-" version ".tar.xz"))
5806 (sha256
5807 (base32
5808 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5809 (build-system meson-build-system)
5810 (native-inputs
5811 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5812 ("intltool" ,intltool)
5813 ("itstool" ,itstool)
5814 ("pkg-config" ,pkg-config)
5815 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5816 ("glib:bin" ,glib "bin")))
5817 ;; TODO: Add libnautilus.
5818 (inputs
5819 `(("gtk+" ,gtk+)
5820 ("gdk-pixbuf" ,gdk-pixbuf)
5821 ("json-glib" ,json-glib)
5822 ("libarchive" ,libarchive)
5823 ("libnotify" ,libnotify)
5824 ("nettle" ,nettle)
5825 ("libxml2" ,libxml2)))
5826 (synopsis "Graphical archive manager for GNOME")
5827 (description "File Roller is an archive manager for the GNOME desktop
5828 environment that allows users to view, unpack, and create compressed archives
5829 such as gzip tarballs.")
5830 (home-page "http://fileroller.sourceforge.net/")
5831 (license license:gpl2+)))
5832
5833 (define-public gnome-session
5834 (package
5835 (name "gnome-session")
5836 (version "3.32.0")
5837 (source (origin
5838 (method url-fetch)
5839 (uri (string-append "mirror://gnome/sources/" name "/"
5840 (version-major+minor version) "/"
5841 name "-" version ".tar.xz"))
5842 (sha256
5843 (base32
5844 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
5845 (arguments
5846 '(#:glib-or-gtk? #t
5847 #:phases
5848 (modify-phases %standard-phases
5849 (add-before 'configure 'pre-configure
5850 (lambda* (#:key outputs #:allow-other-keys)
5851 ;; Use elogind instead of systemd.
5852 (substitute* "meson.build"
5853 (("libsystemd-login") "libelogind")
5854 (("and libsystemd_daemon_dep.found.*") ","))
5855 (substitute* "gnome-session/gsm-systemd.c"
5856 (("#include <systemd/sd-login.h>")
5857 "#include <elogind/sd-login.h>"))
5858 ;; Remove uses of the systemd daemon.
5859 (substitute* "gnome-session/gsm-autostart-app.c"
5860 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5861 #t))
5862 (add-after 'install 'wrap-gnome-session
5863 (lambda* (#:key inputs outputs #:allow-other-keys)
5864 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5865 (let ((glib (assoc-ref inputs "glib:bin"))
5866 (out (assoc-ref outputs "out")))
5867 (wrap-program (string-append out "/bin/gnome-session")
5868 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5869 #t))))
5870
5871 #:configure-flags
5872 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5873 "-Dman=false" ; FIXME: disabled because of docbook validation error
5874 "-Dsystemd_journal=false")))
5875 (build-system meson-build-system)
5876 (native-inputs
5877 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5878 ("pkg-config" ,pkg-config)
5879 ("intltool" ,intltool)
5880 ("xsltproc" ,libxslt)
5881 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5882 ("docbook-xsl" ,docbook-xsl)
5883 ("docbook-xml" ,docbook-xml)
5884 ("xmlto" ,xmlto)))
5885 (inputs
5886 `(("elogind" ,elogind)
5887 ("gnome-desktop" ,gnome-desktop)
5888 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5889 ("gtk+" ,gtk+)
5890 ("json-glib" ,json-glib)
5891 ("libsm" ,libsm)
5892 ("libxcomposite" ,libxcomposite)
5893 ("libxtst" ,libxtst)
5894 ("mesa" ,mesa)
5895 ("upower" ,upower)
5896 ("xtrans" ,xtrans)))
5897 (synopsis "Session manager for GNOME")
5898 (description
5899 "This package contains the GNOME session manager, as well as a
5900 configuration program to choose applications starting on login.")
5901 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5902 (license license:gpl2+)))
5903
5904 (define-public gjs
5905 (package
5906 (name "gjs")
5907 (version "1.56.2")
5908 (source (origin
5909 (method url-fetch)
5910 (uri (string-append "mirror://gnome/sources/" name "/"
5911 (version-major+minor version) "/"
5912 name "-" version ".tar.xz"))
5913 (sha256
5914 (base32
5915 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
5916 (build-system gnu-build-system)
5917 (arguments
5918 '(#:phases
5919 (modify-phases %standard-phases
5920 (add-before
5921 'check 'pre-check
5922 (lambda _
5923 ;; The test suite requires a running X server.
5924 (system "Xvfb :1 &")
5925 (setenv "DISPLAY" ":1")
5926
5927 ;; For the missing /etc/machine-id.
5928 (setenv "DBUS_FATAL_WARNINGS" "0")
5929
5930 ;; Our mozjs-38 package does not compile the required Intl API
5931 ;; support for these failing tests.
5932 (substitute* "installed-tests/js/testLocale.js"
5933 ((".*toBeDefined.*") "")
5934 ((".*expect\\(datestr\\).*") ""))
5935 (substitute* "installed-tests/scripts/testCommandLine.sh"
5936 (("Valentín") "")
5937 (("☭") ""))
5938 #t)))))
5939 (native-inputs
5940 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5941 ("pkg-config" ,pkg-config)
5942 ("xmllint" ,libxml2)
5943 ;; For testing
5944 ("dbus-launch" ,dbus)
5945 ("uuidgen" ,util-linux)
5946 ("xvfb" ,xorg-server-for-tests)))
5947 (propagated-inputs
5948 ;; These are all in the Requires.private field of gjs-1.0.pc.
5949 `(("cairo" ,cairo)
5950 ("gobject-introspection" ,gobject-introspection)
5951 ("mozjs" ,mozjs-60)))
5952 (inputs
5953 `(("gtk+" ,gtk+)
5954 ("readline" ,readline)))
5955 (synopsis "Javascript bindings for GNOME")
5956 (home-page "https://live.gnome.org/Gjs")
5957 (description
5958 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5959 javascript engine and the GObject introspection framework.")
5960 (license license:gpl2+)))
5961
5962 (define-public gedit
5963 (package
5964 (name "gedit")
5965 (version "3.32.2")
5966 (source (origin
5967 (method url-fetch)
5968 (uri (string-append "mirror://gnome/sources/" name "/"
5969 (version-major+minor version) "/"
5970 name "-" version ".tar.xz"))
5971 (sha256
5972 (base32
5973 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5974 (build-system meson-build-system)
5975 (arguments
5976 `(#:glib-or-gtk? #t
5977 #:configure-flags
5978 ;; Otherwise, the RUNPATH will lack the final path component.
5979 (list (string-append "-Dc_link_args=-Wl,-rpath="
5980 (assoc-ref %outputs "out") "/lib/gedit"))
5981
5982 ;; XXX: Generated .h files are sometimes used before being built.
5983 #:parallel-build? #f
5984
5985 #:phases
5986 (modify-phases %standard-phases
5987 (add-after 'unpack 'skip-gtk-update-icon-cache
5988 ;; Don't create 'icon-theme.cache'.
5989 (lambda _
5990 (substitute* "build-aux/meson/post_install.py"
5991 (("gtk-update-icon-cache") (which "true")))
5992 #t))
5993 (add-after 'unpack 'patch-libgd-fetch
5994 (lambda* (#:key inputs #:allow-other-keys)
5995 (let ((libgd (assoc-ref inputs "libgd")))
5996 ;; Calling git is unnecessary because libgd is fetched as a
5997 ;; native input to this package.
5998 (substitute* "meson.build"
5999 ((".*git.*") ""))
6000 (copy-recursively libgd "subprojects/libgd")
6001 #t)))
6002 (add-after 'install 'wrap-gedit
6003 (lambda* (#:key inputs outputs #:allow-other-keys)
6004 (let ((out (assoc-ref outputs "out"))
6005 (gtksourceview (assoc-ref inputs "gtksourceview"))
6006 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6007 (python-path (getenv "PYTHONPATH")))
6008 (wrap-program (string-append out "/bin/gedit")
6009 ;; For plugins.
6010 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6011 `("PYTHONPATH" ":" prefix (,python-path))
6012 ;; For language-specs.
6013 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6014 "/share")))))
6015 #t)))))
6016 (propagated-inputs
6017 `(("dconf" ,dconf)))
6018 (native-inputs
6019 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6020 ("intltool" ,intltool)
6021 ("itstool" ,itstool)
6022 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6023 ("gobject-introspection" ,gobject-introspection)
6024 ("libgd"
6025 ,(origin
6026 (method git-fetch)
6027 (uri (git-reference
6028 (url "https://gitlab.gnome.org/GNOME/libgd")
6029 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6030 (file-name (git-file-name "libgd" version))
6031 (sha256
6032 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6033 ("pkg-config" ,pkg-config)))
6034 (inputs
6035 `(("glib" ,glib)
6036 ("gspell" ,gspell)
6037 ("gtk+" ,gtk+)
6038 ("gtksourceview" ,gtksourceview)
6039 ("libpeas" ,libpeas)
6040 ("libxml2" ,libxml2)
6041 ("iso-codes" ,iso-codes)
6042 ("python-pygobject" ,python-pygobject)
6043 ("python" ,python)
6044 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6045 ("libx11" ,libx11)
6046 ("vala" ,vala)
6047 ("adwaita-icon-theme" ,adwaita-icon-theme)
6048 ("libsoup" ,libsoup)
6049 ("gnome-desktop" ,gnome-desktop)))
6050 (home-page "https://wiki.gnome.org/Apps/Gedit")
6051 (synopsis "GNOME text editor")
6052 (description "While aiming at simplicity and ease of use, gedit is a
6053 powerful general purpose text editor.")
6054 (license license:gpl2+)))
6055
6056 (define-public zenity
6057 (package
6058 (name "zenity")
6059 (version "3.32.0")
6060 (source (origin
6061 (method url-fetch)
6062 (uri (string-append "mirror://gnome/sources/zenity/"
6063 (version-major+minor version) "/"
6064 "zenity-" version ".tar.xz"))
6065 (sha256
6066 (base32
6067 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6068 (build-system gnu-build-system)
6069 (native-inputs
6070 `(("gettext" ,gettext-minimal)
6071 ("itstool" ,itstool)
6072 ("pkg-config" ,pkg-config)))
6073 (inputs
6074 `(("libnotify" ,libnotify)
6075 ("webkitgtk" ,webkitgtk)))
6076 (synopsis "Display graphical dialog boxes from shell scripts")
6077 (home-page "https://www.gnome.org")
6078 (description
6079 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6080 to display dialog boxes from the commandline and shell scripts.")
6081 (license license:lgpl2.0+)))
6082
6083 (define-public mutter
6084 (package
6085 (name "mutter")
6086 (version "3.32.2")
6087 (source (origin
6088 (method url-fetch)
6089 (uri (string-append "mirror://gnome/sources/" name "/"
6090 (version-major+minor version) "/"
6091 name "-" version ".tar.xz"))
6092 (sha256
6093 (base32
6094 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
6095 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6096 ;; versions of cogl and clutter. As a result, many of the inputs,
6097 ;; propagated-inputs, and configure flags used in cogl and clutter are
6098 ;; needed here as well.
6099 (build-system meson-build-system)
6100 (arguments
6101 '(;; XXX: All mutter tests fail with the following error:
6102 ;; Settings schema 'org.gnome.mutter' is not installed
6103 #:tests? #f
6104 #:glib-or-gtk? #t
6105 #:configure-flags
6106 ;; Otherwise, the RUNPATH will lack the final path component.
6107 (list (string-append "-Dc_link_args=-Wl,-rpath="
6108 (assoc-ref %outputs "out") "/lib:"
6109 (assoc-ref %outputs "out") "/lib/mutter-4")
6110
6111 ;; The following flags are needed for the bundled clutter
6112 (string-append "-Dxwayland_path="
6113 (assoc-ref %build-inputs "xorg-server-xwayland")
6114 "/bin/Xwayland")
6115
6116 ;; the remaining flags are needed for the bundled cogl
6117 (string-append "-Dopengl_libname="
6118 (assoc-ref %build-inputs "mesa")
6119 "/lib/libGL.so"))
6120 #:phases
6121 (modify-phases %standard-phases
6122 (add-after 'unpack 'disable-werror
6123 (lambda _
6124 ;; XXX: build fails with [-Werror]:
6125 ;; backends/meta-cursor-renderer.c:112:5: error:
6126 ;; implicit declaration of function ?roundf?
6127 (substitute* "meson.build"
6128 (("'-Werror=.*',") ""))
6129 #t))
6130 ;; Replace references to systemd libraries to elogind references.
6131 (add-before 'configure 'use-elogind
6132 (lambda _
6133 (substitute* (list "meson.build"
6134 "src/backends/native/meta-launcher.c"
6135 "src/core/main.c")
6136 (("systemd") "elogind"))
6137 #t)))))
6138 (native-inputs
6139 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6140 ("gobject-introspection" ,gobject-introspection)
6141 ("intltool" ,intltool)
6142 ("pkg-config" ,pkg-config)
6143 ("xorg-server" ,xorg-server-for-tests)
6144 ;; For git build
6145 ("autoconf" ,autoconf)
6146 ("automake" ,automake)
6147 ("libtool" ,libtool)))
6148 (propagated-inputs
6149 `(;; libmutter.pc refers to these:
6150 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6151 ("gtk+" ,gtk+)
6152 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6153 ("atk" ,atk)
6154 ("cairo" ,cairo)
6155 ("gdk-pixbuf" ,gdk-pixbuf)
6156 ("glib" ,glib)
6157 ("json-glib" ,json-glib)
6158 ("libinput" ,libinput)
6159 ("libx11" ,libx11)
6160 ("libxcomposite" ,libxcomposite)
6161 ("libxdamage" ,libxdamage)
6162 ("libxext" ,libxext)
6163 ("libxfixes" ,libxfixes)
6164 ("libxkbcommon" ,libxkbcommon)
6165 ("libxrandr" ,libxrandr)
6166 ("mesa" ,mesa)
6167 ("pango" ,pango)
6168 ("udev" ,eudev)
6169 ("xinput" ,xinput)))
6170 (inputs
6171 `(("elogind" ,elogind)
6172 ("gnome-desktop" ,gnome-desktop)
6173 ("gnome-settings-daemon" ,gnome-settings-daemon)
6174 ("libcanberra-gtk" ,libcanberra)
6175 ("libgudev" ,libgudev)
6176 ("libice" ,libice)
6177 ("libsm" ,libsm)
6178 ("libwacom" ,libwacom)
6179 ("libxkbfile" ,libxkbfile)
6180 ("libxrandr" ,libxrandr)
6181 ("libxtst" ,libxtst)
6182 ("pipewire" ,pipewire)
6183 ("startup-notification" ,startup-notification)
6184 ("upower-glib" ,upower)
6185 ("xkeyboard-config" ,xkeyboard-config)
6186 ("xorg-server-xwayland" ,xorg-server-xwayland)
6187 ("zenity" ,zenity)))
6188 (synopsis "Window and compositing manager")
6189 (home-page "https://www.gnome.org")
6190 (description
6191 "Mutter is a window and compositing manager that displays and manages your
6192 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6193 Clutter toolkit with solid window-management logic inherited from the Metacity
6194 window manager.")
6195 (license license:gpl2+)))
6196
6197 (define-public gnome-online-accounts
6198 (package
6199 (name "gnome-online-accounts")
6200 (version "3.32.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 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
6209 (outputs '("out" "lib"))
6210 (build-system glib-or-gtk-build-system)
6211 (arguments
6212 `(#:configure-flags
6213 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6214 #:phases
6215 (modify-phases %standard-phases
6216 (add-before 'configure 'patch-libgoa-output
6217 (lambda* (#:key outputs #:allow-other-keys)
6218 (let ((lib (assoc-ref outputs "lib")))
6219 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6220 (("@prefix@") lib)
6221 (("@exec_prefix@") lib)
6222 (("@libdir@") (string-append lib "/lib"))
6223 (("@includedir@") (string-append lib "/include"))
6224 (("@datadir@") (string-append lib "/share")))
6225 ;; Make sure gobject-introspection knows about the output
6226 ;; too (see <https://bugs.gnu.org/36535>).
6227 (setenv "outputs" "out lib")
6228 #t))))))
6229 (native-inputs
6230 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6231 ("gobject-introspection" ,gobject-introspection)
6232 ("intltool" ,intltool)
6233 ("pkg-config" ,pkg-config)
6234 ("vala" ,vala)
6235 ("xsltproc" ,libxslt)))
6236 (propagated-inputs
6237 `(("glib" ,glib) ; required by goa-1.0.pc
6238 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6239 (inputs
6240 `(("docbook-xsl" ,docbook-xsl)
6241 ("json-glib" ,json-glib)
6242 ("libsecret" ,libsecret)
6243 ("rest" ,rest)
6244 ("webkitgtk" ,webkitgtk)))
6245 (synopsis "Single sign-on framework for GNOME")
6246 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6247 (description
6248 "GNOME Online Accounts provides interfaces so that applications and
6249 libraries in GNOME can access the user's online accounts. It has providers for
6250 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6251 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6252 (license license:lgpl2.0+)))
6253
6254 (define-public evolution-data-server
6255 (package
6256 (name "evolution-data-server")
6257 (version "3.32.4")
6258 (source (origin
6259 (method url-fetch)
6260 (uri (string-append "mirror://gnome/sources/" name "/"
6261 (version-major+minor version) "/"
6262 name "-" version ".tar.xz"))
6263 (patches (search-patches "evolution-data-server-locales.patch"))
6264 (sha256
6265 (base32
6266 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
6267 (build-system cmake-build-system)
6268 (arguments
6269 '(#:configure-flags
6270 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6271 (runpaths (map (lambda (s)
6272 (string-append lib "/evolution-data-server/" s))
6273 '("addressbook-backends" "calendar-backends"
6274 "camel-providers" "credential-modules"
6275 "registry-modules"))))
6276 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6277 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6278 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6279 "-DENABLE_VALA_BINDINGS=ON"
6280 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6281 (string-append lib "/evolution-data-server;")
6282 (string-join runpaths ";"))
6283 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6284 #:phases
6285 (modify-phases %standard-phases
6286 (add-after 'unpack 'disable-failing-tests
6287 (lambda _
6288 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6289 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6290 (delete-file-recursively "tests/book-migration")
6291 (substitute* "tests/CMakeLists.txt"
6292 (("add_subdirectory\\(book-migration\\)") ""))
6293 ;; tests/libebook/client/test-book-client-view-operations:8077):
6294 ;; e-data-server-WARNING **:
6295 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6296 ;; runtime check failed:
6297 ;; (!g_main_context_pending (closure->main_context))
6298 (substitute* "tests/libebook/client/CMakeLists.txt"
6299 (("test-book-client-view-operations") ""))
6300 #t))
6301 (add-after 'unpack 'patch-paths
6302 (lambda _
6303 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6304 "tests/libedata-book/data-test-utils.c"
6305 "tests/libedata-book/test-book-cache-utils.c"
6306 "tests/libedata-cal/test-cal-cache-utils.c")
6307 (("/bin/rm") (which "rm")))
6308 #t))
6309 (add-before 'configure 'dont-override-rpath
6310 (lambda _
6311 (substitute* "CMakeLists.txt"
6312 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6313 ;; Remove it so the configure flag is respected.
6314 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6315 #t)))))
6316 (native-inputs
6317 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6318 ("gobject-introspection" ,gobject-introspection)
6319 ("gperf" ,gperf)
6320 ("intltool" ,intltool)
6321 ("pkg-config" ,pkg-config)
6322 ("vala" ,vala)
6323 ("python" ,python-wrapper)))
6324 (propagated-inputs
6325 ;; These are all in the Requires field of .pc files.
6326 `(("gtk+" ,gtk+)
6327 ("libical" ,libical)
6328 ("libsecret" ,libsecret)
6329 ("libsoup" ,libsoup)
6330 ("nss" ,nss)
6331 ("sqlite" ,sqlite)))
6332 (inputs
6333 `(("bdb" ,bdb)
6334 ("gcr" ,gcr)
6335 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6336 ("json-glib" ,json-glib)
6337 ("libcanberra" ,libcanberra)
6338 ("libgweather" ,libgweather)
6339 ("mit-krb5" ,mit-krb5)
6340 ("openldap" ,openldap)
6341 ("webkitgtk" ,webkitgtk)))
6342 (synopsis "Store address books and calendars")
6343 (home-page "https://wiki.gnome.org/Apps/Evolution")
6344 (description
6345 "This package provides a unified backend for programs that work with
6346 contacts, tasks, and calendar information. It was originally developed for
6347 Evolution (hence the name), but is now used by other packages as well.")
6348 (license license:lgpl2.0)))
6349
6350 (define-public caribou
6351 (package
6352 (name "caribou")
6353 (version "0.4.21")
6354 (source (origin
6355 (method url-fetch)
6356 (uri (string-append "mirror://gnome/sources/" name "/"
6357 (version-major+minor version) "/"
6358 name "-" version ".tar.xz"))
6359 (sha256
6360 (base32
6361 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6362 (build-system glib-or-gtk-build-system)
6363 (arguments
6364 '(#:phases
6365 (modify-phases %standard-phases
6366 (add-before
6367 'build 'pre-build
6368 (lambda* (#:key outputs #:allow-other-keys)
6369 (let ((out (assoc-ref outputs "out")))
6370 ;; Use absolute shared library path in Caribou-1.0.typelib.
6371 (substitute* "libcaribou/Makefile"
6372 (("--shared-library=libcaribou.so")
6373 (string-append "--shared-library="
6374 out "/lib/libcaribou.so")))
6375 #t)))
6376 (add-after 'install 'wrap-programs
6377 (lambda* (#:key outputs #:allow-other-keys)
6378 (let* ((out (assoc-ref outputs "out"))
6379 (python-path (getenv "PYTHONPATH"))
6380 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6381 (for-each
6382 (lambda (prog)
6383 (wrap-program prog
6384 `("PYTHONPATH" ":" prefix (,python-path))
6385 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6386 (list (string-append out "/bin/caribou-preferences")
6387 (string-append out "/libexec/antler-keyboard"))))
6388 #t)))))
6389 (native-inputs
6390 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6391 ("gobject-introspection" ,gobject-introspection)
6392 ("intltool" ,intltool)
6393 ("pkg-config" ,pkg-config)
6394 ("python" ,python)
6395 ("vala" ,vala)
6396 ("xsltproc" ,libxslt)))
6397 (propagated-inputs
6398 ;; caribou-1.0.pc refers to all these.
6399 `(("libgee" ,libgee)
6400 ("libxklavier" ,libxklavier)
6401 ("libxtst" ,libxtst)
6402 ("gtk+" ,gtk+)))
6403 (inputs
6404 `(("clutter" ,clutter)
6405 ("dconf" ,dconf)
6406 ("gtk+-2" ,gtk+-2)
6407 ("python-pygobject" ,python-pygobject)))
6408 (synopsis "Text entry and UI navigation application")
6409 (home-page "https://wiki.gnome.org/Projects/Caribou")
6410 (description
6411 "Caribou is an input assistive technology intended for switch and pointer
6412 users.")
6413 (license license:lgpl2.1)))
6414
6415 (define-public network-manager
6416 (package
6417 (name "network-manager")
6418 (version "1.18.4")
6419 (source (origin
6420 (method url-fetch)
6421 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6422 (version-major+minor version) "/"
6423 "NetworkManager-" version ".tar.xz"))
6424 (patches (search-patches "nm-plugin-path.patch"))
6425 (sha256
6426 (base32
6427 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
6428 (modules '((guix build utils)))
6429 (snippet
6430 '(begin
6431 (substitute* "src/devices/wwan/nm-modem-manager.c"
6432 (("systemd") "elogind"))
6433 #t))))
6434 (build-system gnu-build-system)
6435 (outputs '("out"
6436 "doc")) ; 8 MiB of gtk-doc HTML
6437 (arguments
6438 '(#:configure-flags
6439 (let ((out (assoc-ref %outputs "out"))
6440 (doc (assoc-ref %outputs "doc"))
6441 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6442 "/sbin/dhclient")))
6443 (list "--with-libnm-glib" ; needed by network-manager-applet
6444 "--with-systemd-journal=no"
6445 "--with-session-tracking=elogind"
6446 "--with-suspend-resume=elogind"
6447 "--with-consolekit=no"
6448 "--with-crypto=gnutls"
6449 "--disable-config-plugin-ibft"
6450 "--sysconfdir=/etc"
6451 "--localstatedir=/var"
6452 (string-append "--with-udev-dir="
6453 out "/lib/udev")
6454 (string-append "--with-dbus-sys-dir="
6455 out "/etc/dbus-1/system.d")
6456 (string-append "--with-html-dir="
6457 doc "/share/gtk-doc/html")
6458 (string-append "--with-dhclient=" dhclient)))
6459 #:phases
6460 (modify-phases %standard-phases
6461 ;; This bare "ls" invocation breaks some tests.
6462 (add-after 'unpack 'patch-ls-invocation
6463 (lambda _
6464 (substitute* "build-aux/ltmain.sh"
6465 (("`ls -")
6466 (string-append "`" (which "ls") " -")))
6467 #t))
6468 (add-before 'configure 'pre-configure
6469 (lambda _
6470 ;; These tests try to test aspects of network-manager's
6471 ;; functionality within restricted containers, but they don't
6472 ;; cope with being already in the Guix build jail as that jail
6473 ;; lacks some features that they would like to proxy over (like
6474 ;; a /sys mount).
6475 (substitute* '("Makefile.in")
6476 (("src/platform/tests/test-address-linux") " ")
6477 (("src/platform/tests/test-cleanup-linux") " ")
6478 (("src/platform/tests/test-link-linux") " ")
6479 (("src/platform/tests/test-route-linux") " ")
6480 (("src/devices/tests/test-acd") "")
6481 (("src/devices/tests/test-arping") " ")
6482 (("src/devices/tests/test-lldp") " ")
6483 (("src/tests/test-route-manager-linux") " "))
6484 #t))
6485 (add-after 'unpack 'delete-failing-tests
6486 (lambda _
6487 ;; FIXME: These three tests fail for unknown reasons.
6488 ;; ERROR:libnm-core/tests/test-general.c:5842:
6489 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6490 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6491 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6492 ;; ERROR:libnm-core/tests/test-setting.c:907:
6493 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
6494 (substitute* "Makefile.in"
6495 (("libnm-core/tests/test-general") " ")
6496 (("libnm-core/tests/test-keyfile") " ")
6497 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
6498 #t))
6499 (add-before 'check 'pre-check
6500 (lambda _
6501 ;; For the missing /etc/machine-id.
6502 (setenv "DBUS_FATAL_WARNINGS" "0")
6503 #t))
6504 (replace 'install
6505 (lambda _
6506 (invoke "make"
6507 "sysconfdir=/tmp"
6508 "rundir=/tmp"
6509 "statedir=/tmp"
6510 "nmstatedir=/tmp/nm"
6511 "install")
6512 #t)))))
6513 (propagated-inputs
6514 `(("glib" ,glib)))
6515 (native-inputs
6516 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6517 ("gobject-introspection" ,gobject-introspection)
6518 ("docbook-xsl" ,docbook-xsl)
6519 ("intltool" ,intltool)
6520 ("libxslt" ,libxslt)
6521 ("libxml2" ,libxml2)
6522 ("pkg-config" ,pkg-config)
6523 ;; For testing.
6524 ("python" ,python-wrapper)
6525 ("python-dbus" ,python-dbus)
6526 ("python-pygobject" ,python-pygobject)))
6527 (inputs
6528 `(("coreutils" ,coreutils) ; for ls
6529 ("curl" ,curl)
6530 ("cyrus-sasl" ,cyrus-sasl)
6531 ("dbus-glib" ,dbus-glib)
6532 ("dnsmasq" ,dnsmasq)
6533 ("eudev" ,eudev)
6534 ("gnutls" ,gnutls)
6535 ("iptables" ,iptables)
6536 ("isc-dhcp" ,isc-dhcp)
6537 ("jansson" ,jansson)
6538 ("libgcrypt" ,libgcrypt)
6539 ("libgudev" ,libgudev)
6540 ("libndp" ,libndp)
6541 ("libnl" ,libnl)
6542 ("libsoup" ,libsoup)
6543 ("modem-manager" ,modem-manager)
6544 ("newt" ,newt) ;for the 'nmtui' console interface
6545 ("polkit" ,polkit)
6546 ("ppp" ,ppp)
6547 ("readline" ,readline)
6548 ("util-linux" ,util-linux)
6549 ("elogind" ,elogind)))
6550 (synopsis "Network connection manager")
6551 (home-page "https://www.gnome.org/projects/NetworkManager/")
6552 (description
6553 "NetworkManager is a system network service that manages your network
6554 devices and connections, attempting to keep active network connectivity when
6555 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6556 devices, and provides VPN integration with a variety of different VPN
6557 services.")
6558 (license license:gpl2+)
6559 (properties '((upstream-name . "NetworkManager")))))
6560
6561 (define-public network-manager-openvpn
6562 (package
6563 (name "network-manager-openvpn")
6564 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
6565 (version "1.8.10")
6566 (source (origin
6567 (method url-fetch)
6568 (uri (string-append
6569 "mirror://gnome/sources/NetworkManager-openvpn/"
6570 (version-major+minor version)
6571 "/NetworkManager-openvpn-" version ".tar.xz"))
6572 (sha256
6573 (base32
6574 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
6575 (build-system gnu-build-system)
6576 (arguments
6577 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6578 #:phases
6579 (modify-phases %standard-phases
6580 (add-after 'configure 'patch-path
6581 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6582 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6583 "/sbin/openvpn"))
6584 (modprobe (string-append (assoc-ref inputs "kmod")
6585 "/bin/modprobe"))
6586 (pretty-ovpn (string-append "\"" ovpn "\"")))
6587 (for-each
6588 (lambda (file)
6589 (substitute* file
6590 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6591 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6592 (("\"/sbin/openvpn\"") pretty-ovpn)
6593 (("/sbin/modprobe") modprobe)))
6594 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6595 #t)))))
6596 (native-inputs
6597 `(("pkg-config" ,pkg-config)
6598 ("intltool" ,intltool)))
6599 (inputs
6600 `(("gtk+" ,gtk+)
6601 ("kmod" ,kmod)
6602 ("openvpn" ,openvpn)
6603 ("network-manager" ,network-manager)
6604 ("network-manager-applet" ,network-manager-applet) ;for libnma
6605 ("libsecret" ,libsecret)))
6606 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6607 (synopsis "OpenVPN plug-in for NetworkManager")
6608 (description
6609 "This extension of NetworkManager allows it to take care of connections
6610 to virtual private networks (VPNs) via OpenVPN.")
6611 (license license:gpl2+)
6612 (properties `((upstream-name . "NetworkManager-openvpn")))))
6613
6614 (define-public network-manager-vpnc
6615 (package
6616 (name "network-manager-vpnc")
6617 (version "1.2.6")
6618 (source (origin
6619 (method url-fetch)
6620 (uri (string-append
6621 "mirror://gnome/sources/NetworkManager-vpnc/"
6622 (version-major+minor version)
6623 "/NetworkManager-vpnc-" version ".tar.xz"))
6624 (sha256
6625 (base32
6626 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6627 (build-system gnu-build-system)
6628 (arguments
6629 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6630 #:phases
6631 (modify-phases %standard-phases
6632 (add-after 'configure 'patch-path
6633 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6634 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6635 "/sbin/vpnc"))
6636 (modprobe (string-append (assoc-ref inputs "kmod")
6637 "/bin/modprobe"))
6638 (pretty-ovpn (string-append "\"" vpnc "\"")))
6639 (substitute* "src/nm-vpnc-service.c"
6640 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6641 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6642 (("\"/sbin/vpnc\"") pretty-ovpn)
6643 (("/sbin/modprobe") modprobe)))
6644 #t)))))
6645 (native-inputs
6646 `(("pkg-config" ,pkg-config)
6647 ("intltool" ,intltool)))
6648 (inputs
6649 `(("gtk+" ,gtk+)
6650 ("kmod" ,kmod)
6651 ("vpnc" ,vpnc)
6652 ("network-manager" ,network-manager)
6653 ("network-manager-applet" ,network-manager-applet) ;for libnma
6654 ("libsecret" ,libsecret)))
6655 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6656 (synopsis "VPNC plug-in for NetworkManager")
6657 (description
6658 "Support for configuring virtual private networks based on VPNC.
6659 Compatible with Cisco VPN concentrators configured to use IPsec.")
6660 (license license:gpl2+)
6661 (properties `((upstream-name . "NetworkManager-vpnc")))))
6662
6663 (define-public network-manager-openconnect
6664 (package
6665 (name "network-manager-openconnect")
6666 (version "1.2.6")
6667 (source (origin
6668 (method url-fetch)
6669 (uri (string-append
6670 "mirror://gnome/sources/NetworkManager-openconnect/"
6671 (version-major+minor version)
6672 "/NetworkManager-openconnect-" version ".tar.xz"))
6673 (sha256
6674 (base32
6675 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6676 (build-system gnu-build-system)
6677 (arguments
6678 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6679 #:phases
6680 (modify-phases %standard-phases
6681 (add-after 'configure 'patch-path
6682 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6683 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6684 "/sbin/openconnect"))
6685 (modprobe (string-append (assoc-ref inputs "kmod")
6686 "/bin/modprobe"))
6687 (pretty-ovpn (string-append "\"" openconnect "\"")))
6688 (substitute* "src/nm-openconnect-service.c"
6689 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6690 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6691 (("/sbin/modprobe") modprobe)))
6692 #t)))))
6693 (native-inputs
6694 `(("intltool" ,intltool)
6695 ("network-manager-applet" ,network-manager-applet) ;for libnma
6696 ("pkg-config" ,pkg-config)))
6697 (inputs
6698 `(("gcr" ,gcr)
6699 ("gtk+" ,gtk+)
6700 ("kmod" ,kmod)
6701 ("libsecret" ,libsecret)
6702 ("libxml2" ,libxml2)
6703 ("network-manager" ,network-manager)
6704 ("openconnect" ,openconnect)))
6705 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6706 (synopsis "OpenConnect plug-in for NetworkManager")
6707 (description
6708 "This extension of NetworkManager allows it to take care of connections
6709 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6710 Cisco's AnyConnect SSL VPN.")
6711 (license license:gpl2+)
6712 (properties `((upstream-name . "NetworkManager-openconnect")
6713
6714 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6715 ;; file refers to account "nm-openconnect". Specify it here
6716 ;; so that 'network-manager-service-type' creates it.
6717 (user-accounts . ("nm-openconnect"))))))
6718
6719 (define-public mobile-broadband-provider-info
6720 (package
6721 (name "mobile-broadband-provider-info")
6722 (version "20190116")
6723 (source (origin
6724 (method url-fetch)
6725 (uri (string-append
6726 "mirror://gnome/sources/"
6727 "mobile-broadband-provider-info/" version "/"
6728 "mobile-broadband-provider-info-" version ".tar.xz"))
6729 (sha256
6730 (base32
6731 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6732 (build-system gnu-build-system)
6733 (arguments
6734 `(#:tests? #f)) ; no tests
6735 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6736 (synopsis "Database of broadband connection configuration")
6737 (description "Database of broadband connection configuration.")
6738 (license license:public-domain)))
6739
6740 (define-public network-manager-applet
6741 (package
6742 (name "network-manager-applet")
6743 (version "1.8.24")
6744 (source (origin
6745 (method url-fetch)
6746 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6747 (version-major+minor version) "/"
6748 "network-manager-applet-" version ".tar.xz"))
6749 (sha256
6750 (base32
6751 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
6752 (build-system meson-build-system)
6753 (arguments
6754 '(#:configure-flags
6755 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6756 (list "-Dlibnm_gtk=true")
6757 #:glib-or-gtk? #t))
6758 (native-inputs
6759 `(("intltool" ,intltool)
6760 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6761 ("gobject-introspection" ,gobject-introspection)
6762 ("gtk-doc" ,gtk-doc)
6763 ("pkg-config" ,pkg-config)))
6764 (propagated-inputs
6765 ;; libnm-gtk.pc refers to all these.
6766 `(("dbus-glib" ,dbus-glib)
6767 ("gtk+" ,gtk+)
6768 ("network-manager" ,network-manager)))
6769 (inputs
6770 `(("gcr" ,gcr)
6771 ("iso-codes" ,iso-codes)
6772 ("libgudev" ,libgudev)
6773 ("libnotify" ,libnotify)
6774 ("libsecret" ,libsecret)
6775 ("libselinux" ,libselinux)
6776 ("jansson" ,jansson) ; for team support
6777 ("modem-manager" ,modem-manager)
6778 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
6779 (synopsis "Applet for managing network connections")
6780 (home-page "https://www.gnome.org/projects/NetworkManager/")
6781 (description
6782 "This package contains a systray applet for NetworkManager. It displays
6783 the available networks and allows users to easily switch between them.")
6784 (license license:gpl2+)))
6785
6786 (define-public libxml++
6787 (package
6788 (name "libxml++")
6789 (version "3.0.1")
6790 (source (origin
6791 (method url-fetch)
6792 (uri (string-append "mirror://gnome/sources/" name "/"
6793 (version-major+minor version) "/"
6794 name "-" version ".tar.xz"))
6795 (sha256
6796 (base32
6797 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6798 (build-system gnu-build-system)
6799 ;; libxml++-3.0.pc refers to all these.
6800 (propagated-inputs
6801 `(("libxml2" ,libxml2)
6802 ("glibmm" ,glibmm)))
6803 (native-inputs
6804 `(("perl" ,perl)
6805 ("pkg-config" ,pkg-config)))
6806 (home-page "http://libxmlplusplus.sourceforge.net/")
6807 (synopsis "C++ wrapper for XML parser library libxml2")
6808 (description
6809 "This package provides a C++ wrapper for the XML parser library
6810 libxml2.")
6811 (license license:lgpl2.1+)))
6812
6813 (define-public libxml++-2
6814 (package
6815 (inherit libxml++)
6816 (name "libxml++")
6817 (version "2.40.1")
6818 (source (origin
6819 (method url-fetch)
6820 (uri (string-append "mirror://gnome/sources/" name "/"
6821 (version-major+minor version) "/"
6822 name "-" version ".tar.xz"))
6823 (sha256
6824 (base32
6825 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6826
6827 (define-public gdm
6828 (package
6829 (name "gdm")
6830 (version "3.32.0")
6831 (source (origin
6832 (method url-fetch)
6833 (uri (string-append "mirror://gnome/sources/" name "/"
6834 (version-major+minor version) "/"
6835 name "-" version ".tar.xz"))
6836 (sha256
6837 (base32
6838 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
6839 (build-system glib-or-gtk-build-system)
6840 (arguments
6841 '(#:configure-flags
6842 `("--without-plymouth"
6843 "--disable-systemd-journal"
6844
6845 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6846 ;; instead of having to replace it (i.e., stopping the mingetty
6847 ;; service for TTY 1 before starting GDM).
6848 "--with-initial-vt=7"
6849
6850 ;; Use '/etc/environment' for locale settings instead of the
6851 ;; systemd-specific '/etc/locale.conf'.
6852 "--with-lang-file=/etc/environment"
6853
6854 ,(string-append "--with-udevdir="
6855 (assoc-ref %outputs "out") "/lib/udev")
6856
6857 "--localstatedir=/var"
6858 ,(string-append "--with-default-path="
6859 (string-join '("/run/setuid-programs"
6860 "/run/current-system/profile/bin"
6861 "/run/current-system/profile/sbin")
6862 ":"))
6863 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6864 ;; XDG_DATA_DIRS so that it finds its schemas.
6865 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6866 #:phases
6867 (modify-phases %standard-phases
6868 (add-before
6869 'configure 'pre-configure
6870 (lambda* (#:key inputs outputs #:allow-other-keys)
6871 ;; We don't have <systemd/sd-daemon.h>.
6872 (substitute* '("common/gdm-log.c"
6873 "daemon/gdm-server.c"
6874 "daemon/gdm-session-worker.c"
6875 "daemon/gdm-session-worker-job.c")
6876 (("#include <systemd/sd-daemon\\.h>") ""))
6877 ;; Use elogind for sd-login.
6878 (substitute* '("common/gdm-common.c"
6879 "daemon/gdm-manager.c"
6880 "libgdm/gdm-user-switching.c")
6881 (("#include <systemd/sd-login\\.h>")
6882 "#include <elogind/sd-login.h>"))
6883 ;; Check for elogind.
6884 (substitute* '("configure")
6885 (("libsystemd")
6886 "libelogind"))
6887 ;; Look for system-installed sessions in
6888 ;; /run/current-system/profile/share.
6889 (substitute* '("libgdm/gdm-sessions.c"
6890 "daemon/gdm-session.c"
6891 "daemon/gdm-display.c"
6892 "daemon/gdm-launch-environment.c")
6893 (("DATADIR \"/x")
6894 "\"/run/current-system/profile/share/x")
6895 (("DATADIR \"/wayland")
6896 "\"/run/current-system/profile/share/wayland")
6897 (("DATADIR \"/gnome")
6898 "\"/run/current-system/profile/share/gnome"))
6899 (let ((propagate '("GDM_CUSTOM_CONF"
6900 "GDM_DBUS_DAEMON"
6901 "GDM_X_SERVER"
6902 "GDM_X_SESSION"
6903 ;; XXX: Remove this once GNOME Shell is
6904 ;; a dependency of GDM.
6905 "XDG_DATA_DIRS")))
6906 (substitute* "daemon/gdm-session.c"
6907 (("set_up_session_environment \\(self\\);")
6908 (apply string-append
6909 "set_up_session_environment (self);\n"
6910 (map (lambda (name)
6911 (string-append
6912 "gdm_session_set_environment_variable "
6913 "(self, \"" name "\","
6914 "g_getenv (\"" name "\"));\n"))
6915 propagate)))))
6916 ;; Find the configuration file using an environment variable.
6917 (substitute* '("common/gdm-settings.c")
6918 (("GDM_CUSTOM_CONF")
6919 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6920 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6921 " : GDM_CUSTOM_CONF)")))
6922 ;; Use service-supplied path to X.
6923 (substitute* '("daemon/gdm-server.c")
6924 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6925 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6926 (substitute* '("daemon/gdm-x-session.c")
6927 (("\"dbus-daemon\"")
6928 "g_getenv (\"GDM_DBUS_DAEMON\")")
6929 (("X_SERVER")
6930 "g_getenv (\"GDM_X_SERVER\")")
6931 (("GDMCONFDIR \"/Xsession\"")
6932 "g_getenv (\"GDM_X_SESSION\")"))
6933 ;; Use an absolute path for GNOME Session.
6934 (substitute* "daemon/gdm-launch-environment.c"
6935 (("\"gnome-session\"")
6936 (string-append "\"" (assoc-ref inputs "gnome-session")
6937 "/bin/gnome-session\"")))
6938 ;; Do not automatically select the placeholder session.
6939 (substitute* "daemon/gdm-session.c"
6940 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6941 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6942 "(g_strcmp0(search_dirs[i], \""
6943 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6944 "\") == 0 && "
6945 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6946 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
6947 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
6948 #t))
6949 ;; GDM requires that there be at least one desktop entry
6950 ;; file. This phase installs a hidden one that simply
6951 ;; fails. This enables users to use GDM with a
6952 ;; '~/.xsession' script with no other desktop entry files.
6953 ;; See <https://bugs.gnu.org/35068>.
6954 (add-after 'install 'install-placeholder-desktop-entry
6955 (lambda* (#:key inputs outputs #:allow-other-keys)
6956 (let* ((out (assoc-ref outputs "out"))
6957 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6958 (fail (string-append sessions "/fail.desktop")))
6959 (mkdir-p sessions)
6960 (with-output-to-file fail
6961 (lambda ()
6962 (for-each
6963 display
6964 '("[Desktop Entry]\n"
6965 "Encoding=UTF-8\n"
6966 "Type=Application\n"
6967 "Name=Fail\n"
6968 "Comment=This session fails immediately.\n"
6969 "NoDisplay=true\n"
6970 "Exec=false\n"))))
6971 #t)))
6972 ;; GDM needs GNOME Session to run these applications. We link
6973 ;; their autostart files in `share/gdm/greeter/autostart'
6974 ;; because GDM explicitly tells GNOME Session to look there.
6975 ;;
6976 ;; XXX: GNOME Shell should be linked here too, but currently
6977 ;; GNOME Shell depends on GDM.
6978 (add-after 'install 'link-autostart-files
6979 (lambda* (#:key inputs outputs #:allow-other-keys)
6980 (let* ((out (assoc-ref outputs "out"))
6981 (autostart (string-append out "/share/gdm/"
6982 "greeter/autostart"))
6983 (settings (assoc-ref inputs "gnome-settings-daemon")))
6984 (mkdir-p autostart)
6985 (with-directory-excursion autostart
6986 (for-each (lambda (desktop)
6987 (symlink desktop (basename desktop)))
6988 (find-files (string-append settings "/etc/xdg"))))
6989 #t))))))
6990 (native-inputs
6991 `(("dconf" ,dconf)
6992 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6993 ("gobject-introspection" ,gobject-introspection)
6994 ("intltool" ,intltool)
6995 ("itstool" ,itstool)
6996 ("pkg-config" ,pkg-config)
6997 ("xmllint" ,libxml2)))
6998 (inputs
6999 `(("accountsservice" ,accountsservice)
7000 ("check" ,check) ; for testing
7001 ("elogind" ,elogind)
7002 ("gnome-session" ,gnome-session)
7003 ("gnome-settings-daemon" ,gnome-settings-daemon)
7004 ("gtk+" ,gtk+)
7005 ("iso-codes" ,iso-codes)
7006 ("libcanberra" ,libcanberra)
7007 ("linux-pam" ,linux-pam)))
7008 (synopsis "Display manager for GNOME")
7009 (home-page "https://wiki.gnome.org/Projects/GDM/")
7010 (description
7011 "GNOME Display Manager is a system service that is responsible for
7012 providing graphical log-ins and managing local and remote displays.")
7013 (license license:gpl2+)))
7014
7015 (define-public libgtop
7016 (package
7017 (name "libgtop")
7018 (version "2.40.0")
7019 (source (origin
7020 (method url-fetch)
7021 (uri (string-append "mirror://gnome/sources/libgtop/"
7022 (version-major+minor version) "/"
7023 "libgtop-" version ".tar.xz"))
7024 (sha256
7025 (base32
7026 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7027 (build-system gnu-build-system)
7028 (native-inputs
7029 `(("gobject-introspection" ,gobject-introspection)
7030 ("intltool" ,intltool)
7031 ("perl" ,perl)
7032 ("pkg-config" ,pkg-config)))
7033 (propagated-inputs
7034 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7035 (synopsis "Portable system access library")
7036 (home-page "https://www.gnome.org/")
7037 (description
7038 "LibGTop is a library to get system specific data such as CPU and memory
7039 usage and information about running processes.")
7040 (license license:gpl2+)))
7041
7042 (define-public gnome-bluetooth
7043 (package
7044 (name "gnome-bluetooth")
7045 (version "3.32.1")
7046 (source (origin
7047 (method url-fetch)
7048 (uri (string-append "mirror://gnome/sources/" name "/"
7049 (version-major+minor version) "/"
7050 name "-" version ".tar.xz"))
7051 (sha256
7052 (base32
7053 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
7054 (build-system meson-build-system)
7055 (native-inputs
7056 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7057 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7058 ("gobject-introspection" ,gobject-introspection)
7059 ("intltool" ,intltool)
7060 ("pkg-config" ,pkg-config)
7061 ("xmllint" ,libxml2)))
7062 (propagated-inputs
7063 ;; gnome-bluetooth-1.0.pc refers to all these.
7064 `(("glib" ,glib)
7065 ("gtk+" ,gtk+)))
7066 (inputs
7067 `(("eudev" ,eudev)
7068 ("libcanberra" ,libcanberra)
7069 ("libnotify" ,libnotify)))
7070 (synopsis "GNOME Bluetooth subsystem")
7071 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7072 (description
7073 "This package contains tools for managing and manipulating Bluetooth
7074 devices using the GNOME desktop.")
7075 (license license:lgpl2.1+)))
7076
7077 (define-public gnome-control-center
7078 (package
7079 (name "gnome-control-center")
7080 (version "3.32.2")
7081 (source (origin
7082 (method url-fetch)
7083 (uri (string-append "mirror://gnome/sources/" name "/"
7084 (version-major+minor version) "/"
7085 name "-" version ".tar.xz"))
7086 (sha256
7087 (base32
7088 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
7089 (build-system meson-build-system)
7090 (arguments
7091 '(#:glib-or-gtk? #t
7092 #:configure-flags
7093 (list "-Dcheese=false"
7094 (string-append "-Dgnome_session_libexecdir="
7095 (assoc-ref %build-inputs "gnome-session")
7096 "/libexec"))
7097 #:phases
7098 (modify-phases %standard-phases
7099 (add-before 'configure 'patch-paths
7100 (lambda* (#:key inputs #:allow-other-keys)
7101 (let ((libc (assoc-ref inputs "libc"))
7102 (tzdata (assoc-ref inputs "tzdata"))
7103 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7104 (nm-applet (assoc-ref inputs "network-manager-applet"))
7105 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7106 (substitute* "panels/datetime/tz.h"
7107 (("/usr/share/zoneinfo/zone.tab")
7108 (string-append tzdata "/share/zoneinfo/zone.tab")))
7109 (substitute* "tests/datetime/test-endianess.c"
7110 (("/usr/share/locale")
7111 (string-append libc "/share/locale")))
7112 (substitute* "panels/region/cc-region-panel.c"
7113 (("\"gkbd-keyboard-display")
7114 (string-append "\"" libgnomekbd
7115 "/bin/gkbd-keyboard-display")))
7116 (substitute* '("panels/network/net-device-wifi.c"
7117 "panels/network/net-device.c"
7118 "panels/network/connection-editor/net-connection-editor.c")
7119 (("\"nm-connection-editor")
7120 (string-append "\"" nm-applet
7121 "/bin/nm-connection-editor")))
7122 (substitute* '("panels/user-accounts/run-passwd.c")
7123 (("/usr/bin/passwd")
7124 "/run/setuid-programs/passwd"))
7125 (substitute* "panels/info/cc-info-overview-panel.c"
7126 (("DATADIR \"/gnome/gnome-version.xml\"")
7127 (string-append "\"" gnome-desktop
7128 "/share/gnome/gnome-version.xml\"")))
7129 #t))))))
7130 (native-inputs
7131 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7132 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7133 ("intltool" ,intltool)
7134 ("pkg-config" ,pkg-config)
7135 ("xsltproc" ,libxslt)
7136 ;; For tests
7137 ("hicolor-icon-theme" ,hicolor-icon-theme)
7138 ("python-dbusmock" ,python-dbusmock)
7139 ("xorg-server" ,xorg-server-for-tests)))
7140 (inputs
7141 `(("accountsservice" ,accountsservice)
7142 ("clutter-gtk" ,clutter-gtk)
7143 ("colord-gtk" ,colord-gtk)
7144 ("cups" ,cups)
7145 ("dconf" ,dconf)
7146 ("docbook-xsl" ,docbook-xsl)
7147 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7148 ("gnome-bluetooth" ,gnome-bluetooth)
7149 ("gnome-desktop" ,gnome-desktop)
7150 ("gnome-online-accounts" ,gnome-online-accounts)
7151 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7152 ("gnome-session" ,gnome-session)
7153 ("gnome-settings-daemon" ,gnome-settings-daemon)
7154 ("grilo" ,grilo)
7155 ("gsound" ,gsound)
7156 ("ibus" ,ibus)
7157 ("libcanberra" ,libcanberra)
7158 ("libgnomekbd" ,libgnomekbd)
7159 ("libgudev" ,libgudev)
7160 ("libgtop" ,libgtop)
7161 ("libpwquality" ,libpwquality)
7162 ("libsecret" ,libsecret)
7163 ("libsoup" ,libsoup)
7164 ("libxml2" ,libxml2)
7165 ("libwacom" ,libwacom)
7166 ("mesa" ,mesa)
7167 ("mit-krb5" ,mit-krb5)
7168 ("modem-manager" ,modem-manager)
7169 ("network-manager-applet" ,network-manager-applet)
7170 ("polkit" ,polkit)
7171 ("pulseaudio" ,pulseaudio)
7172 ("smbclient" ,samba)
7173 ("tzdata" ,tzdata)
7174 ("udisks" ,udisks)
7175 ("upower" ,upower)))
7176 (synopsis "Utilities to configure the GNOME desktop")
7177 (home-page "https://www.gnome.org/")
7178 (description
7179 "This package contains configuration applets for the GNOME desktop,
7180 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7181 properties, sound setup, desktop theme and background, user interface
7182 properties, screen resolution, and other GNOME parameters.")
7183 (license license:gpl2+)))
7184
7185 (define-public gnome-shell
7186 (package
7187 (name "gnome-shell")
7188 (version "3.32.2")
7189 (source (origin
7190 (method url-fetch)
7191 (uri (string-append "mirror://gnome/sources/" name "/"
7192 (version-major+minor version) "/"
7193 name "-" version ".tar.xz"))
7194 (sha256
7195 (base32
7196 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
7197 (patches (search-patches "gnome-shell-theme.patch"))
7198 (modules '((guix build utils)))
7199 (snippet
7200 #~(begin
7201 ;; Copy images for use on the GDM log-in screen.
7202 (copy-file #$(file-append %artwork-repository
7203 "/slim/0.x/background.png")
7204 "data/theme/guix-background.png")
7205 (copy-file #$(file-append %artwork-repository
7206 "/logo/Guix-horizontal-white.svg")
7207 "data/theme/guix-logo.svg")
7208 #t))))
7209 (build-system meson-build-system)
7210 (arguments
7211 `(#:glib-or-gtk? #t
7212 #:disallowed-references ((,glib "bin")
7213 ,inkscape ,libxslt
7214 ,ruby-sass)
7215 #:configure-flags
7216 (list "-Dsystemd=false"
7217 ;; Otherwise, the RUNPATH will lack the final path component.
7218 (string-append "-Dc_link_args=-Wl,-rpath="
7219 (assoc-ref %outputs "out")
7220 "/lib/gnome-shell"))
7221
7222 #:modules ((guix build meson-build-system)
7223 (guix build utils)
7224 (srfi srfi-1))
7225
7226 #:phases
7227 (modify-phases %standard-phases
7228 (add-after 'unpack 'fix-keysdir
7229 (lambda* (#:key outputs #:allow-other-keys)
7230 (let* ((out (assoc-ref outputs "out"))
7231 (keysdir (string-append
7232 out "/share/gnome-control-center/keybindings")))
7233 (substitute* "meson.build"
7234 (("keysdir =.*")
7235 (string-append "keysdir = '" keysdir "'\n")))
7236 #t)))
7237 (add-before 'configure 'convert-logo-to-png
7238 (lambda* (#:key inputs #:allow-other-keys)
7239 ;; Convert the logo from SVG to PNG.
7240 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7241 "data/theme/guix-logo.svg")))
7242 (add-before 'configure 'record-absolute-file-names
7243 (lambda* (#:key inputs #:allow-other-keys)
7244 (substitute* "js/misc/ibusManager.js"
7245 (("'ibus-daemon'")
7246 (string-append "'" (assoc-ref inputs "ibus")
7247 "/bin/ibus-daemon'")))
7248 (substitute* "js/ui/status/keyboard.js"
7249 (("'gkbd-keyboard-display'")
7250 (string-append "'" (assoc-ref inputs "libgnomekbd")
7251 "/bin/gkbd-keyboard-display'")))
7252 #t))
7253 (add-before 'check 'pre-check
7254 (lambda* (#:key inputs #:allow-other-keys)
7255 ;; Tests require a running X server.
7256 (system "Xvfb :1 &")
7257 (setenv "DISPLAY" ":1")
7258 #t))
7259 (add-after 'install 'wrap-programs
7260 (lambda* (#:key inputs outputs #:allow-other-keys)
7261 (let ((out (assoc-ref outputs "out"))
7262 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7263 (python-path (getenv "PYTHONPATH")))
7264 (wrap-program (string-append out "/bin/gnome-shell")
7265 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7266 ;; FIXME: gnome-shell loads these libraries with unqualified
7267 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7268 ;; alternative might be to patch gnome-shell.
7269 `("LD_LIBRARY_PATH" ":" prefix
7270 ,(map (lambda (pkg)
7271 (string-append (assoc-ref inputs pkg) "/lib"))
7272 '("gdk-pixbuf"
7273 "gnome-bluetooth" "librsvg" "libgweather"))))
7274 (for-each
7275 (lambda (prog)
7276 (wrap-program (string-append out "/bin/" prog)
7277 `("PYTHONPATH" ":" prefix (,python-path))
7278 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7279 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7280 #t)))
7281 (replace 'glib-or-gtk-wrap
7282 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7283 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7284 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7285 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7286 ;; phase. Fix that since we don't need these.
7287 (wrap #:inputs (fold alist-delete inputs
7288 '("inkscape" "intltool" "glib:bin"))
7289 #:outputs outputs)))))))
7290 (native-inputs
7291 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7292 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7293 ("gobject-introspection" ,gobject-introspection)
7294 ("inkscape" ,inkscape)
7295 ("intltool" ,intltool)
7296 ("pkg-config" ,pkg-config)
7297 ("python" ,python)
7298 ("ruby-sass" ,ruby-sass)
7299 ("sassc" ,sassc)
7300 ("xsltproc" ,libxslt)
7301 ;; For tests
7302 ("xorg-server" ,xorg-server-for-tests)))
7303 (inputs
7304 `(("accountsservice" ,accountsservice)
7305 ("caribou" ,caribou)
7306 ("docbook-xsl" ,docbook-xsl)
7307 ("evolution-data-server" ,evolution-data-server)
7308 ("gcr" ,gcr)
7309 ("gdm" ,gdm)
7310 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7311 ("gjs" ,gjs)
7312 ("gnome-bluetooth" ,gnome-bluetooth)
7313 ("gnome-desktop" ,gnome-desktop)
7314 ("gnome-settings-daemon" ,gnome-settings-daemon)
7315 ("gst-plugins-base" ,gst-plugins-base)
7316 ("ibus" ,ibus)
7317 ("libcanberra" ,libcanberra)
7318 ("libcroco" ,libcroco)
7319 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7320 ("libgweather" ,libgweather)
7321 ("libsoup" ,libsoup)
7322 ("mesa-headers" ,mesa-headers)
7323 ("mutter" ,mutter)
7324 ("network-manager-applet" ,network-manager-applet)
7325 ("polkit" ,polkit)
7326 ("pulseaudio" ,pulseaudio)
7327 ("python-pygobject" ,python-pygobject)
7328 ("startup-notification" ,startup-notification)
7329 ("telepathy-logger" ,telepathy-logger)
7330 ("upower" ,upower)
7331 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7332 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7333 ("librsvg" ,librsvg)
7334 ("geoclue" ,geoclue)))
7335 (synopsis "Desktop shell for GNOME")
7336 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7337 (description
7338 "GNOME Shell provides core user interface functions for the GNOME desktop,
7339 like switching to windows and launching applications.")
7340 (license license:gpl2+)))
7341
7342 (define-public gtk-vnc
7343 (package
7344 (name "gtk-vnc")
7345 (version "0.9.0")
7346 (source
7347 (origin
7348 (method url-fetch)
7349 (uri (string-append "mirror://gnome/sources/" name "/"
7350 (version-major+minor version) "/"
7351 name "-" version ".tar.xz"))
7352 (sha256
7353 (base32
7354 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7355 (build-system gnu-build-system)
7356 (arguments
7357 '(#:configure-flags '("--with-gtk=3.0")))
7358 (propagated-inputs
7359 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7360 (inputs
7361 `(("cyrus-sasl" ,cyrus-sasl)
7362 ("gnutls" ,gnutls)
7363 ("libgcrypt" ,libgcrypt)
7364 ("pulseaudio" ,pulseaudio)))
7365 (native-inputs
7366 `(("glib:bin" ,glib "bin")
7367 ("gobject-introspection" ,gobject-introspection)
7368 ("intltool" ,intltool)
7369 ("pkg-config" ,pkg-config)
7370 ("python-wrapper" ,python-wrapper)
7371 ("vala" ,vala)))
7372 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7373 (synopsis "VNC viewer widget for GTK+")
7374 (description
7375 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7376 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7377 GTK-VNC implements client side RFB protocol and authentication extensions such
7378 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7379 (license license:lgpl2.1+)))
7380
7381 (define-public gnome-autoar
7382 (package
7383 (name "gnome-autoar")
7384 (version "0.2.3")
7385 (source (origin
7386 (method url-fetch)
7387 (uri (string-append "mirror://gnome/sources/" name "/"
7388 (version-major+minor version) "/"
7389 name "-" version ".tar.xz"))
7390 (sha256
7391 (base32
7392 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
7393 (build-system glib-or-gtk-build-system)
7394 (native-inputs
7395 `(("gnome-common" ,gnome-common)
7396 ("gobject-introspection" ,gobject-introspection)
7397 ("pkg-config" ,pkg-config)))
7398 (propagated-inputs
7399 `(("libarchive" ,libarchive))) ; XXX document why
7400 (inputs
7401 `(("gtk+" ,gtk+)))
7402 (synopsis "Archives integration support for GNOME")
7403 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7404 (description
7405 "GNOME Autoar is a library which makes creating and extracting archives
7406 easy, safe, and automatic.")
7407 (license license:lgpl2.1+)))
7408
7409 (define-public tracker
7410 (package
7411 (name "tracker")
7412 (version "2.2.2")
7413 (source (origin
7414 (method url-fetch)
7415 (uri (string-append "mirror://gnome/sources/tracker/"
7416 (version-major+minor version) "/"
7417 "tracker-" version ".tar.xz"))
7418 (sha256
7419 (base32
7420 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
7421 (build-system meson-build-system)
7422 (arguments
7423 `(#:glib-or-gtk? #t
7424 #:configure-flags
7425 ;; Otherwise, the RUNPATH will lack the final path component.
7426 (list (string-append "-Dc_link_args=-Wl,-rpath="
7427 (assoc-ref %outputs "out") "/lib:"
7428 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7429 #:phases
7430 (modify-phases %standard-phases
7431 (add-after 'unpack 'disable-broken-tests
7432 (lambda _
7433 ;; These fail because the SPARQL backend could not be loaded.
7434 ;; That's because /etc/machine-id is missing, but
7435 ;; DBUS_FATAL_WARNINGS does not help here.
7436 (substitute* "tests/libtracker-sparql/meson.build"
7437 (("'sparql',") ""))
7438 (substitute* "tests/tracker-steroids/meson.build"
7439 (("test\\(.*") ""))
7440 #t))
7441 ;; Two tests fail if LANG is not set.
7442 (add-before 'check 'pre-check
7443 (lambda _
7444 (setenv "LANG" "en_US.UTF-8")
7445 ;; For the missing /etc/machine-id.
7446 (setenv "DBUS_FATAL_WARNINGS" "0")
7447 #t)))))
7448 (native-inputs
7449 `(("glib:bin" ,glib "bin")
7450 ("gnome-common" ,gnome-common)
7451 ("gobject-introspection" ,gobject-introspection)
7452 ("python-pygobject" ,python-pygobject)
7453 ("intltool" ,intltool)
7454 ("pkg-config" ,pkg-config)
7455 ("vala" ,vala)))
7456 (inputs
7457 `(("gtk+" ,gtk+)
7458 ("dbus" ,dbus)
7459 ("sqlite" ,sqlite)
7460 ("python" ,python)
7461 ("poppler" ,poppler)
7462 ("libpng" ,libpng)
7463 ("libtiff" ,libtiff)
7464 ("zlib" ,zlib)
7465 ("libxml2" ,libxml2)
7466 ("libunistring" ,libunistring)
7467 ("json-glib" ,json-glib)
7468 ("openjpeg" ,openjpeg-1)
7469 ("libseccomp" ,libseccomp)
7470 ("libsoup" ,libsoup)
7471 ("libuuid" ,util-linux)
7472 ("network-manager" ,network-manager)))
7473 (synopsis "Metadata database, indexer and search tool")
7474 (home-page "https://wiki.gnome.org/Projects/Tracker")
7475 (description
7476 "Tracker is an advanced framework for first class objects with associated
7477 metadata and tags. It provides a one stop solution for all metadata, tags,
7478 shared object databases, search tools and indexing.")
7479 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7480 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7481 (license (list license:gpl2+
7482 license:lgpl2.1+
7483 license:lgpl2.0+))))
7484
7485 (define-public tracker-miners
7486 (package
7487 (name "tracker-miners")
7488 (version "2.2.2")
7489 (source (origin
7490 (method url-fetch)
7491 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7492 (version-major+minor version)
7493 "/tracker-miners-" version ".tar.xz"))
7494 (sha256
7495 (base32
7496 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
7497 (build-system meson-build-system)
7498 (arguments
7499 `(#:glib-or-gtk? #t
7500 #:configure-flags
7501 (list "-Dminer_rss=false" ; libgrss is required.
7502 ;; Ensure the RUNPATH contains all installed library locations.
7503 (string-append "-Dc_link_args=-Wl,-rpath="
7504 (assoc-ref %outputs "out")
7505 "/lib/tracker-miners-2.0")
7506 ;; TODO: Enable functional tests. Currently, the following error
7507 ;; appears:
7508 ;; Exception: The functional tests require DConf to be the default
7509 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7510 "-Dfunctional_tests=false")))
7511 (native-inputs
7512 `(("dbus" ,dbus)
7513 ("intltool" ,intltool)
7514 ("glib:bin" ,glib "bin")
7515 ("gobject-introspection" ,gobject-introspection)
7516 ("pkg-config" ,pkg-config)
7517 ("python-pygobject" ,python-pygobject)))
7518 (inputs
7519 `(("exempi" ,exempi)
7520 ("ffmpeg" ,ffmpeg)
7521 ("flac" ,flac)
7522 ("giflib" ,giflib)
7523 ("glib" ,glib)
7524 ("gstreamer" ,gstreamer)
7525 ("icu4c" ,icu4c)
7526 ("libcue" ,libcue)
7527 ("libexif" ,libexif)
7528 ("libgsf" ,libgsf)
7529 ("libgxps" ,libgxps)
7530 ("libiptcdata" ,libiptcdata)
7531 ("libjpeg" ,libjpeg)
7532 ("libosinfo" ,libosinfo)
7533 ("libpng" ,libpng)
7534 ("libseccomp" ,libseccomp)
7535 ("libtiff" ,libtiff)
7536 ("libvorbis" ,libvorbis)
7537 ("libxml2" ,libxml2)
7538 ("poppler" ,poppler)
7539 ("taglib" ,taglib)
7540 ("totem-pl-parser" ,totem-pl-parser)
7541 ("tracker" ,tracker)
7542 ("upower" ,upower)
7543 ("zlib" ,zlib)))
7544 (synopsis "Metadata database, indexer and search tool")
7545 (home-page "https://wiki.gnome.org/Projects/Tracker")
7546 (description
7547 "Tracker is an advanced framework for first class objects with associated
7548 metadata and tags. It provides a one stop solution for all metadata, tags,
7549 shared object databases, search tools and indexing.")
7550 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7551 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7552 (license (list license:gpl2+
7553 license:lgpl2.1+
7554 license:lgpl2.0+))))
7555
7556 (define-public nautilus
7557 (package
7558 (name "nautilus")
7559 (version "3.32.3")
7560 (source (origin
7561 (method url-fetch)
7562 (uri (string-append "mirror://gnome/sources/" name "/"
7563 (version-major+minor version) "/"
7564 name "-" version ".tar.xz"))
7565 (sha256
7566 (base32
7567 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
7568 (build-system meson-build-system)
7569 (arguments
7570 '(#:glib-or-gtk? #t
7571 ;; XXX: FAIL: check-nautilus
7572 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7573 #:tests? #f))
7574 (native-inputs
7575 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7576 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7577 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7578 ("gobject-introspection" ,gobject-introspection)
7579 ("intltool" ,intltool)
7580 ("pkg-config" ,pkg-config)))
7581 (inputs
7582 `(("dconf" ,dconf)
7583 ("gexiv2" ,gexiv2)
7584 ("gvfs" ,gvfs)
7585 ("exempi" ,exempi)
7586 ("gnome-desktop" ,gnome-desktop)
7587 ("gnome-autoar" ,gnome-autoar)
7588 ("gst-plugins-base" ,gst-plugins-base)
7589 ("libseccomp" ,libseccomp)
7590 ("libselinux" ,libselinux)
7591 ("tracker" ,tracker)
7592 ("tracker-miners" ,tracker-miners)
7593 ;; XXX: gtk+ is required by libnautilus-extension.pc
7594 ;;
7595 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7596 ;; package. See:
7597 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7598 ("gtk+" ,gtk+)
7599 ("libexif" ,libexif)
7600 ("libxml2" ,libxml2)))
7601 (synopsis "File manager for GNOME")
7602 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7603 (description
7604 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7605 design and behaviour, giving the user a simple way to navigate and manage its
7606 files.")
7607 (license license:gpl2+)))
7608
7609 (define-public baobab
7610 (package
7611 (name "baobab")
7612 (version "3.32.0")
7613 (source (origin
7614 (method url-fetch)
7615 (uri (string-append
7616 "mirror://gnome/sources/" name "/"
7617 (version-major+minor version) "/"
7618 name "-" version ".tar.xz"))
7619 (sha256
7620 (base32
7621 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7622 (build-system meson-build-system)
7623 (arguments
7624 '(#:glib-or-gtk? #t))
7625 (native-inputs
7626 `(("intltool" ,intltool)
7627 ("pkg-config" ,pkg-config)
7628 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7629 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7630 ("itstool" ,itstool)
7631 ("xmllint" ,libxml2)
7632 ("glib" ,glib "bin")
7633 ("vala" ,vala)))
7634 (inputs
7635 `(("gtk+" ,gtk+)))
7636 (synopsis "Disk usage analyzer for GNOME")
7637 (description
7638 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7639 usage in the GNOME desktop environment. It can easily scan device volumes or
7640 a specific user-requested directory branch (local or remote). Once the scan
7641 is complete it provides a graphical representation of each selected folder.")
7642 (home-page "https://wiki.gnome.org/Apps/Baobab")
7643 (license license:gpl2+)))
7644
7645 (define-public gnome-backgrounds
7646 (package
7647 (name "gnome-backgrounds")
7648 (version "3.32.0")
7649 (source
7650 (origin
7651 (method url-fetch)
7652 (uri (string-append "mirror://gnome/sources/" name "/"
7653 (version-major+minor version) "/"
7654 name "-" version ".tar.xz"))
7655 (sha256
7656 (base32
7657 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
7658 (build-system meson-build-system)
7659 (native-inputs
7660 `(("intltool" ,intltool)))
7661 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7662 (synopsis "Background images for the GNOME desktop")
7663 (description
7664 "GNOME backgrounds package contains a collection of graphics files which
7665 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7666 the package creates the proper framework and directory structure so that you
7667 can add your own files to the collection.")
7668 (license (list license:gpl2+
7669 license:cc-by2.0
7670 license:cc-by-sa2.0
7671 license:cc-by-sa3.0))))
7672
7673 (define-public gnome-screenshot
7674 (package
7675 (name "gnome-screenshot")
7676 (version "3.32.0")
7677 (source
7678 (origin
7679 (method url-fetch)
7680 (uri (string-append "mirror://gnome/sources/" name "/"
7681 (version-major+minor version) "/"
7682 name "-" version ".tar.xz"))
7683 (sha256
7684 (base32
7685 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
7686 (build-system meson-build-system)
7687 (native-inputs
7688 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7689 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7690 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7691 ("intltool" ,intltool)
7692 ("appstream-glib" ,appstream-glib)
7693 ("pkg-config" ,pkg-config)))
7694 (inputs
7695 `(("gtk+" ,gtk+)
7696 ("libcanberra" ,libcanberra)
7697 ("libx11" ,libx11)
7698 ("libxext" ,libxext)))
7699 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7700 (synopsis "Take pictures of your screen")
7701 (description
7702 "GNOME Screenshot is a utility used for taking screenshots of the entire
7703 screen, a window or a user defined area of the screen, with optional
7704 beautifying border effects.")
7705 (license license:gpl2+)))
7706
7707 (define-public dconf-editor
7708 (package
7709 (name "dconf-editor")
7710 (version "3.32.0")
7711 (source
7712 (origin
7713 (method url-fetch)
7714 (uri (string-append "mirror://gnome/sources/" name "/"
7715 (version-major+minor version) "/"
7716 name "-" version ".tar.xz"))
7717 (sha256
7718 (base32
7719 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
7720 (build-system meson-build-system)
7721 (arguments
7722 '(#:phases (modify-phases %standard-phases
7723 (add-before 'configure 'set-glib-minimum-version
7724 (lambda _
7725 ;; Change the minimum required GLib version so that
7726 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7727 ;; do that, it complains that "55" is not an even
7728 ;; number. See <https://bugs.gnu.org/37503>.
7729 (substitute* "editor/meson.build"
7730 (("2\\.55\\.1") "2.60.0"))
7731 #t)))))
7732 (native-inputs
7733 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7734 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7735 ("intltool" ,intltool)
7736 ("pkg-config" ,pkg-config)
7737 ("vala" ,vala)))
7738 (inputs
7739 `(("dconf" ,dconf)
7740 ("gtk+" ,gtk+)
7741 ("libxml2" ,libxml2)))
7742 (home-page "https://git.gnome.org/browse/dconf-editor")
7743 (synopsis "Graphical editor for GNOME's dconf configuration system")
7744 (description
7745 "Dconf-editor is a graphical tool for browsing and editing the dconf
7746 configuration system for GNOME. It allows users to configure desktop
7747 software that do not provide their own configuration interface.")
7748 (license license:lgpl2.1+)))
7749
7750 (define-public gnome-default-applications
7751 (package
7752 (name "gnome-default-applications")
7753 (version "0")
7754 (build-system trivial-build-system)
7755 (source #f)
7756 (propagated-inputs
7757 `(("nautilus" ,nautilus)
7758 ("evince" ,evince)))
7759 (arguments
7760 `(#:modules ((guix build utils))
7761 #:builder
7762 (begin
7763 (use-modules (guix build utils))
7764 (let* ((out (assoc-ref %outputs "out"))
7765 (apps (string-append out "/share/applications")))
7766 (mkdir-p apps)
7767 (call-with-output-file (string-append apps "/defaults.list")
7768 (lambda (port)
7769 (format port "[Default Applications]\n")
7770 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7771 (format port "application/pdf=evince.desktop\n")
7772 (format port "application/postscript=evince.desktop\n")))
7773 #t))))
7774 (synopsis "Default MIME type associations for the GNOME desktop")
7775 (description
7776 "Given many installed packages which might handle a given MIME type, a
7777 user running the GNOME desktop probably has some preferences: for example,
7778 that folders be opened by default by the Nautilus file manager, not the Baobab
7779 disk usage analyzer. This package establishes that set of default MIME type
7780 associations for GNOME.")
7781 (license license:gpl3+)
7782 (home-page #f)))
7783
7784 (define-public libgovirt
7785 (package
7786 (name "libgovirt")
7787 (version "0.3.6")
7788 (source (origin
7789 (method url-fetch)
7790 (uri (string-append "mirror://gnome/sources/" name "/"
7791 (version-major+minor version) "/"
7792 name "-" version ".tar.xz"))
7793 (sha256
7794 (base32
7795 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7796 (build-system glib-or-gtk-build-system)
7797 (native-inputs
7798 `(("gettext" ,gettext-minimal)
7799 ("glib:bin" ,glib "bin")
7800 ("gobject-introspection" ,gobject-introspection)
7801 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7802 ("gtk+:bin" ,gtk+ "bin")
7803 ("pkg-config" ,pkg-config)))
7804 (inputs
7805 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7806 ("librest" ,rest)))
7807 (synopsis "GoVirt Library")
7808 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7809 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7810 (license license:gpl2+)))
7811
7812 (define-public gnome-weather
7813 (package
7814 (name "gnome-weather")
7815 (version "3.34.0")
7816 (source (origin
7817 (method url-fetch)
7818 (uri (string-append "mirror://gnome/sources/" name "/"
7819 (version-major+minor version) "/"
7820 name "-" version ".tar.xz"))
7821 (sha256
7822 (base32
7823 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7824 (build-system meson-build-system)
7825 (native-inputs
7826 `(("gettext" ,gettext-minimal)
7827 ("glib:bin" ,glib "bin")
7828 ("gobject-introspection" ,gobject-introspection)
7829 ("gtk+:bin" ,gtk+ "bin")
7830 ("pkg-config" ,pkg-config)))
7831 (inputs
7832 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7833 ("appstream-glib" ,appstream-glib)
7834 ("geoclue" ,geoclue)
7835 ("gdk-pixbuf" ,gdk-pixbuf)
7836 ("gjs" ,gjs)
7837 ("gnome-desktop" ,gnome-desktop)
7838 ("libgweather" ,libgweather)))
7839 (synopsis "Weather monitoring for GNOME desktop")
7840 (description "GNOME Weather is a small application that allows you to
7841 monitor the current weather conditions for your city, or anywhere in the
7842 world.")
7843 (home-page "https://wiki.gnome.org/Apps/Weather")
7844 (license license:gpl2+)))
7845
7846 (define-public gnome
7847 (package
7848 (name "gnome")
7849 (version (package-version gnome-shell))
7850 (source #f)
7851 (build-system trivial-build-system)
7852 (arguments '(#:builder (begin (mkdir %output) #t)))
7853 (propagated-inputs
7854 ;; TODO: Add or remove packages according to:
7855 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7856 `(
7857 ;; GNOME-Core-OS-Services
7858 ("accountsservice" ,accountsservice)
7859 ("network-manager" ,network-manager)
7860 ("packagekit" ,packagekit)
7861 ("upower" ,upower)
7862 ;; GNOME-Core-Shell
7863 ("adwaita-icon-theme" ,adwaita-icon-theme)
7864 ("gdm" ,gdm)
7865 ("glib-networking" ,glib-networking)
7866 ("gnome-backgrounds" ,gnome-backgrounds)
7867 ("gnome-bluetooth" ,gnome-bluetooth)
7868 ("gnome-color-manager" ,gnome-color-manager)
7869 ("gnome-control-center" ,gnome-control-center)
7870 ("gnome-desktop" ,gnome-desktop)
7871 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7872 ("gnome-initial-setup" ,gnome-initial-setup)
7873 ("gnome-keyring" ,gnome-keyring)
7874 ("gnome-menus" ,gnome-menus)
7875 ("gnome-session" ,gnome-session)
7876 ("gnome-settings-daemon" ,gnome-settings-daemon)
7877 ("gnome-shell-extensions" ,gnome-shell-extensions)
7878 ("gnome-shell" ,gnome-shell)
7879 ("gnome-themes-extra" ,gnome-themes-extra)
7880 ("gnome-user-docs" ,gnome-user-docs)
7881 ("gnome-user-share" ,gnome-user-share)
7882 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7883 ("gvfs" ,gvfs)
7884 ("mutter" ,mutter)
7885 ("orca" ,orca)
7886 ("rygel" ,rygel)
7887 ("sushi" ,sushi)
7888 ;; GNOME-Core-Utilities
7889 ("baobab" ,baobab)
7890 ("cheese" ,cheese)
7891 ("eog" ,eog)
7892 ("epiphany" ,epiphany)
7893 ("evince" ,evince)
7894 ("file-roller" ,file-roller)
7895 ("gedit" ,gedit)
7896 ; TODO: ("gnome-boxes" ,gnome-boxes)
7897 ("gnome-calculator" ,gnome-calculator)
7898 ("gnome-calendar" ,gnome-calendar)
7899 ("gnome-characters" ,gnome-characters)
7900 ("gnome-clocks" ,gnome-clocks)
7901 ("gnome-contacts" ,gnome-contacts)
7902 ("gnome-disk-utility" ,gnome-disk-utility)
7903 ("gnome-font-viewer" ,gnome-font-viewer)
7904 ("gnome-maps" ,gnome-maps)
7905 ; TODO: ("gnome-music" ,gnome-music)
7906 ; TODO: ("gnome-photos" ,gnome-photos)
7907 ("gnome-screenshot" ,gnome-screenshot)
7908 ("gnome-system-monitor" ,gnome-system-monitor)
7909 ("gnome-terminal" ,gnome-terminal)
7910 ("gnome-weather" ,gnome-weather)
7911 ("nautilus" ,nautilus)
7912 ("simple-scan" ,simple-scan)
7913 ("totem" ,totem)
7914 ("yelp" ,yelp)
7915 ;; Others
7916 ("hicolor-icon-theme" ,hicolor-icon-theme)
7917 ("gnome-online-accounts" ,gnome-online-accounts)))
7918 (synopsis "The GNU desktop environment")
7919 (home-page "https://www.gnome.org/")
7920 (description
7921 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7922 applications for browsing the web, editing text and images, creating
7923 documents and diagrams, playing media, scanning, and much more.")
7924 (license license:gpl2+)))
7925
7926 (define-public byzanz
7927 ;; The last stable release of Byzanz was in 2011, but there have been many
7928 ;; useful commits made to the Byzanz repository since then that it would be
7929 ;; silly to use such an old release.
7930 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7931 (package
7932 (name "byzanz")
7933 (version (string-append "0.2-1." (string-take commit 7)))
7934 (source (origin
7935 (method git-fetch)
7936 (uri (git-reference
7937 (url "https://git.gnome.org/browse/byzanz")
7938 (commit commit)))
7939 (file-name (string-append name "-" version "-checkout"))
7940 (sha256
7941 (base32
7942 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7943 (build-system glib-or-gtk-build-system)
7944 (arguments
7945 '(#:phases
7946 (modify-phases %standard-phases
7947 (replace 'bootstrap
7948 (lambda _
7949 ;; The build system cleverly detects that we're not building from
7950 ;; a release tarball and turns on -Werror for GCC.
7951 ;; Unsurprisingly, there is a warning during compilation that
7952 ;; causes the build to fail unnecessarily, so we remove the flag.
7953 (substitute* '("configure.ac")
7954 (("-Werror") ""))
7955 ;; The autogen.sh script in gnome-common will run ./configure
7956 ;; by default, which is problematic because source shebangs
7957 ;; have not yet been patched.
7958 (setenv "NOCONFIGURE" "t")
7959 (zero? (system* "sh" "autogen.sh")))))))
7960 (native-inputs
7961 `(("autoconf" ,autoconf)
7962 ("automake" ,automake)
7963 ("gnome-common" ,gnome-common)
7964 ("intltool" ,intltool)
7965 ("libtool" ,libtool)
7966 ("pkg-config" ,pkg-config)
7967 ("which" ,which)))
7968 (inputs
7969 `(("glib" ,glib)
7970 ("gstreamer" ,gstreamer)
7971 ("gst-plugins-base" ,gst-plugins-base)
7972 ("gtk+" ,gtk+)))
7973 (synopsis "Desktop recording program")
7974 (description "Byzanz is a simple desktop recording program with a
7975 command-line interface. It can record part or all of an X display for a
7976 specified duration and save it as a GIF encoded animated image file.")
7977 (home-page "https://git.gnome.org/browse/byzanz")
7978 (license license:gpl2+))))
7979
7980 (define-public gsound
7981 (package
7982 (name "gsound")
7983 (version "1.0.2")
7984 (source (origin
7985 (method url-fetch)
7986 (uri (string-append "mirror://gnome/sources/" name "/"
7987 (version-major+minor version) "/"
7988 name "-" version ".tar.xz"))
7989 (sha256
7990 (base32
7991 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7992 (build-system glib-or-gtk-build-system)
7993 (native-inputs
7994 `(("pkg-config" ,pkg-config)
7995 ("gobject-introspection" ,gobject-introspection)
7996 ("vala" ,vala)))
7997 (inputs
7998 `(("glib" ,glib)
7999 ("libcanberra" ,libcanberra)))
8000 (home-page "https://wiki.gnome.org/Projects/GSound")
8001 (synopsis "GObject wrapper for libcanberra")
8002 (description
8003 "GSound is a small library for playing system sounds. It's designed to be
8004 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8005 library.")
8006 (license license:lgpl2.1+)))
8007
8008 (define-public libzapojit
8009 (package
8010 (name "libzapojit")
8011 (version "0.0.3")
8012 (source (origin
8013 (method url-fetch)
8014 (uri (string-append "mirror://gnome/sources/" name "/"
8015 (version-major+minor version) "/"
8016 name "-" version ".tar.xz"))
8017 (sha256
8018 (base32
8019 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8020 (build-system gnu-build-system)
8021 (native-inputs
8022 `(("gobject-introspection" ,gobject-introspection)
8023 ("intltool" ,intltool)
8024 ("pkg-config" ,pkg-config)))
8025 (inputs
8026 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8027 ("json-glib" ,json-glib)
8028 ("rest" ,rest)))
8029 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8030 (synopsis "Library for accessing SkyDrive and Hotmail")
8031 (description
8032 "Libzapojit is a GLib-based library for accessing online service APIs of
8033 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8034 (license license:lgpl2.1+)))
8035
8036 (define-public gnome-clocks
8037 (package
8038 (name "gnome-clocks")
8039 (version "3.32.0")
8040 (source (origin
8041 (method url-fetch)
8042 (uri (string-append "mirror://gnome/sources/" name "/"
8043 (version-major+minor version) "/"
8044 name "-" version ".tar.xz"))
8045 (sha256
8046 (base32
8047 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
8048 (build-system meson-build-system)
8049 (arguments
8050 '(#:glib-or-gtk? #t))
8051 (native-inputs
8052 `(("vala" ,vala)
8053 ("pkg-config" ,pkg-config)
8054 ("glib" ,glib "bin") ; for glib-compile-resources
8055 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8056 ("desktop-file-utils" ,desktop-file-utils)
8057 ("gettext" ,gettext-minimal)
8058 ("itstool" ,itstool)))
8059 (inputs
8060 `(("glib" ,glib)
8061 ("gtk+" ,gtk+)
8062 ("gsound" ,gsound)
8063 ("geoclue" ,geoclue)
8064 ("geocode-glib" ,geocode-glib)
8065 ("libgweather" ,libgweather)
8066 ("gnome-desktop" ,gnome-desktop)))
8067 (home-page "https://wiki.gnome.org/Apps/Clocks")
8068 (synopsis "GNOME's clock application")
8069 (description
8070 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8071 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8072 (license license:gpl3+)))
8073
8074 (define-public gnome-calendar
8075 (package
8076 (name "gnome-calendar")
8077 (version "3.32.2")
8078 (source (origin
8079 (method url-fetch)
8080 (uri (string-append "mirror://gnome/sources/" name "/"
8081 (version-major+minor version) "/"
8082 name "-" version ".tar.xz"))
8083 (sha256
8084 (base32
8085 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
8086 (build-system meson-build-system)
8087 (arguments
8088 '(#:glib-or-gtk? #t
8089 ;; gnome-calendar has to be installed before the tests can be run
8090 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8091 #:tests? #f))
8092 (native-inputs
8093 `(("gettext" ,gettext-minimal)
8094 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8095 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8096 ("pkg-config" ,pkg-config)))
8097 (inputs
8098 `(("evolution-data-server" ,evolution-data-server)
8099 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8100 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8101 ("libdazzle" ,libdazzle)
8102 ("libedataserverui" ,evolution-data-server)
8103 ("libgweather" ,libgweather)
8104 ("geoclue" ,geoclue)))
8105 (home-page "https://wiki.gnome.org/Apps/Calendar")
8106 (synopsis "GNOME's calendar application")
8107 (description
8108 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8109 desktop. It supports multiple calendars, month, week and year view.")
8110 (license license:gpl3+)))
8111
8112 (define-public gnome-todo
8113 (package
8114 (name "gnome-todo")
8115 (version "3.28.1")
8116 (source (origin
8117 (method url-fetch)
8118 (uri (string-append "mirror://gnome/sources/" name "/"
8119 (version-major+minor version) "/"
8120 name "-" version ".tar.xz"))
8121 (sha256
8122 (base32
8123 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
8124 (build-system meson-build-system)
8125 (arguments
8126 '(#:glib-or-gtk? #t
8127 #:phases (modify-phases %standard-phases
8128 (add-after
8129 'install 'wrap-gnome-todo
8130 (lambda* (#:key inputs outputs #:allow-other-keys)
8131 (let ((out (assoc-ref outputs "out"))
8132 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8133 (python-path (getenv "PYTHONPATH")))
8134 (wrap-program (string-append out "/bin/gnome-todo")
8135 ;; XXX: gi plugins are broken.
8136 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8137 ;; For plugins.
8138 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8139 `("PYTHONPATH" ":" prefix (,python-path))))
8140 #t)))))
8141 (native-inputs
8142 `(("gettext" ,gettext-minimal)
8143 ("gobject-introspection" ,gobject-introspection)
8144 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8145 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8146 ("pkg-config" ,pkg-config)))
8147 (inputs
8148 `(("rest" ,rest) ; For Todoist plugin
8149 ("json-glib" ,json-glib) ; For Todoist plugin
8150 ("libedataserverui" ,evolution-data-server)
8151 ("libical" ,libical)
8152 ("libpeas" ,libpeas)
8153 ("python-pygobject" ,python-pygobject)
8154 ("evolution-data-server" ,evolution-data-server)
8155 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8156 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8157 (home-page "https://wiki.gnome.org/Apps/Todo")
8158 (synopsis "GNOME's ToDo Application")
8159 (description
8160 "GNOME To Do is a simplistic personal task manager designed to perfectly
8161 fit the GNOME desktop.")
8162 (license license:gpl3+)))
8163
8164 (define-public gnome-dictionary
8165 (package
8166 (name "gnome-dictionary")
8167 (version "3.26.1")
8168 (source (origin
8169 (method url-fetch)
8170 (uri (string-append "mirror://gnome/sources/" name "/"
8171 (version-major+minor version) "/"
8172 name "-" version ".tar.xz"))
8173 (sha256
8174 (base32
8175 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8176 (build-system meson-build-system)
8177 (arguments '(#:glib-or-gtk? #t
8178 #:phases (modify-phases %standard-phases
8179 (add-after 'unpack 'patch-install-script
8180 (lambda _
8181 ;; This script attempts to compile glib schemas
8182 ;; and create an empty MIME database. We do
8183 ;; that elsewhere, so prevent it from running.
8184 (substitute* "build-aux/post-install.sh"
8185 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8186 #t)))))
8187 (native-inputs
8188 `(("glib:bin" ,glib "bin")
8189 ("gobject-introspection" ,gobject-introspection)
8190 ("intltool" ,intltool)
8191 ("itstool" ,itstool)
8192 ("pkg-config" ,pkg-config)
8193 ("xmllint" ,libxml2)))
8194 (inputs
8195 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8196 ("gtk+" ,gtk+)))
8197 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8198 (synopsis "Look up words in dictionary sources")
8199 (description
8200 "GNOME Dictionary can look for the definition or translation of a word in
8201 existing databases over the internet.")
8202 (license license:gpl3+)))
8203
8204 (define-public gnome-tweaks
8205 (package
8206 (name "gnome-tweaks")
8207 (version "3.32.0")
8208 (source (origin
8209 (method url-fetch)
8210 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8211 (version-major+minor version) "/"
8212 "gnome-tweaks-" version ".tar.xz"))
8213 (patches
8214 (list (search-patch "gnome-tweaks-search-paths.patch")))
8215 (sha256
8216 (base32
8217 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
8218 (build-system meson-build-system)
8219 (arguments
8220 `(#:glib-or-gtk? #t
8221 #:configure-flags '("-Dlocalstatedir=/tmp"
8222 "-Dsysconfdir=/tmp")
8223 #:imported-modules ((guix build python-build-system)
8224 ,@%meson-build-system-modules)
8225 #:phases
8226 (modify-phases %standard-phases
8227 (add-after 'install 'wrap
8228 (@@ (guix build python-build-system) wrap))
8229 (add-after 'wrap 'wrap-gi-typelib
8230 (lambda* (#:key inputs outputs #:allow-other-keys)
8231 (let ((out (assoc-ref outputs "out"))
8232 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8233 (wrap-program (string-append out "/bin/gnome-tweaks")
8234 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8235 #t)))))
8236 (native-inputs
8237 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8238 ("intltool" ,intltool)
8239 ("pkg-config" ,pkg-config)))
8240 (inputs
8241 `(("gnome-desktop" ,gnome-desktop)
8242 ("gtk+" ,gtk+)
8243 ("gobject-introspection" ,gobject-introspection)
8244 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8245 ("libnotify" ,libnotify)
8246 ("libsoup" ,libsoup)
8247 ("nautilus" ,nautilus)
8248 ("python" ,python)
8249 ("python-pygobject" ,python-pygobject)))
8250 (synopsis "Customize advanced GNOME 3 options")
8251 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8252 (description
8253 "GNOME Tweaks allows adjusting advanced configuration settings in
8254 GNOME 3. This includes things like the fonts used in user interface elements,
8255 alternative user interface themes, changes in window management behavior,
8256 GNOME Shell appearance and extension, etc.")
8257 (license license:gpl3+)))
8258
8259 ;; This package has been renamed by upstream.
8260 (define-public gnome-tweak-tool
8261 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
8262
8263 (define-public gnome-shell-extensions
8264 (package
8265 (name "gnome-shell-extensions")
8266 (version "3.32.1")
8267 (source (origin
8268 (method url-fetch)
8269 (uri (string-append "mirror://gnome/sources/" name "/"
8270 (version-major+minor version) "/"
8271 name "-" version ".tar.xz"))
8272 (sha256
8273 (base32
8274 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
8275 (build-system meson-build-system)
8276 (arguments
8277 '(#:configure-flags '("-Dextension_set=all")))
8278 (native-inputs
8279 `(("glib:bin" ,glib "bin")
8280 ("intltool" ,intltool)
8281 ("pkg-config" ,pkg-config)))
8282 (propagated-inputs
8283 `(("glib" ,glib)))
8284 (synopsis "Extensions for GNOME Shell")
8285 (description "GNOME Shell extensions modify and extend GNOME Shell
8286 functionality and behavior.")
8287 (home-page "https://extensions.gnome.org/")
8288 (license license:gpl3+)))
8289
8290 (define-public arc-theme
8291 (package
8292 (name "arc-theme")
8293 (version "20190917")
8294 (source (origin
8295 (method git-fetch)
8296 (uri (git-reference
8297 (url "https://github.com/NicoHood/arc-theme.git")
8298 (commit version)))
8299 (file-name (git-file-name name version))
8300 (sha256
8301 (base32
8302 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8303 (build-system gnu-build-system)
8304 (arguments
8305 '(#:phases
8306 (modify-phases %standard-phases
8307 ;; autogen.sh calls configure at the end of the script.
8308 (replace 'bootstrap
8309 (lambda _ (invoke "autoreconf" "-vfi")))
8310 (add-before 'build 'set-home ;placate Inkscape
8311 (lambda _
8312 (setenv "HOME" (getcwd))
8313 #t)))))
8314 (native-inputs
8315 `(("autoconf" ,autoconf)
8316 ("automake" ,automake)
8317 ("glib" ,glib "bin") ; for glib-compile-resources
8318 ("gnome-shell" ,gnome-shell)
8319 ("gtk+" ,gtk+)
8320 ("inkscape" ,inkscape)
8321 ("optipng" ,optipng)
8322 ("pkg-config" ,pkg-config)
8323 ("sassc" ,sassc/libsass-3.5)))
8324 (synopsis "A flat GTK+ theme with transparent elements")
8325 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8326 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8327 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8328 (home-page "https://github.com/horst3180/arc-theme")
8329 ;; No "or later" language found.
8330 (license license:gpl3+)))
8331
8332 (define-public faba-icon-theme
8333 (package
8334 (name "faba-icon-theme")
8335 (version "4.3")
8336 (source
8337 (origin
8338 (method git-fetch)
8339 (uri (git-reference
8340 (url "https://github.com/snwh/faba-icon-theme.git")
8341 (commit (string-append "v" version))))
8342 (file-name (git-file-name name version))
8343 (sha256
8344 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8345 (build-system meson-build-system)
8346 (arguments
8347 `(#:phases
8348 (modify-phases %standard-phases
8349 (add-before 'configure 'disable-post-install
8350 (lambda _
8351 (substitute* "meson.build"
8352 (("meson.add_install_script.*") "")))))))
8353 (native-inputs
8354 `(("autoconf" ,autoconf)
8355 ("automake" ,automake)))
8356 (synopsis "Faba icon theme")
8357 (description
8358 "Faba is a minimal icon set used as a basis for other themes such as
8359 Moka")
8360 (home-page "https://snwh.org/moka")
8361 (license (list license:lgpl3+
8362 license:cc-by-sa4.0))))
8363
8364 (define-public moka-icon-theme
8365 (package
8366 (inherit faba-icon-theme)
8367 (name "moka-icon-theme")
8368 (version "5.4.0")
8369 (source
8370 (origin
8371 (method git-fetch)
8372 (uri (git-reference
8373 (url "https://github.com/snwh/moka-icon-theme.git")
8374 (commit (string-append "v" version))))
8375 (file-name (git-file-name name version))
8376 (sha256
8377 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8378 (propagated-inputs
8379 ;; Moka is based on Faba by using it as a fallback icon set instead of
8380 ;; bundling it, so we need to add it as a propagated input.
8381 `(("faba-icon-theme" ,faba-icon-theme)))
8382 (synopsis "Moka icon theme")
8383 (description "Moka is a stylized desktop icon set, designed to be clear,
8384 simple and consistent.")
8385 (license (list license:gpl3+
8386 license:cc-by-sa4.0))))
8387
8388 (define-public arc-icon-theme
8389 (package
8390 (name "arc-icon-theme")
8391 (version "20161122")
8392 (source
8393 (origin
8394 (method git-fetch)
8395 (uri (git-reference
8396 (url "https://github.com/horst3180/arc-icon-theme.git")
8397 (commit version)))
8398 (file-name (git-file-name name version))
8399 (sha256
8400 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8401 (build-system gnu-build-system)
8402 (arguments
8403 `(#:phases
8404 (modify-phases %standard-phases
8405 (add-after 'unpack 'disable-configure-during-bootstrap
8406 (lambda _
8407 (substitute* "autogen.sh"
8408 (("^\"\\$srcdir/configure\".*") ""))
8409 #t)))))
8410 (native-inputs
8411 `(("autoconf" ,autoconf)
8412 ("automake" ,automake)))
8413 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8414 (propagated-inputs
8415 `(("moka-icon-theme" ,moka-icon-theme)))
8416 (synopsis "Arc icon theme")
8417 (description "The Arc icon theme provides a set of icons matching the
8418 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8419 the Moka icon theme.")
8420 (home-page "https://github.com/horst3180/arc-icon-theme")
8421 (license license:gpl3+)))
8422
8423 (define-public folks
8424 (package
8425 (name "folks")
8426 (version "0.11.4")
8427 (source (origin
8428 (method url-fetch)
8429 (uri (string-append
8430 "mirror://gnome/sources/folks/"
8431 (version-major+minor version) "/"
8432 "folks-" version ".tar.xz"))
8433 (sha256
8434 (base32
8435 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
8436 (build-system glib-or-gtk-build-system)
8437 (inputs
8438 `(("bdb" ,bdb)
8439 ("dbus-glib" ,dbus-glib)
8440 ("evolution-data-server" ,evolution-data-server)
8441 ("glib" ,glib)
8442 ("libgee" ,libgee)
8443 ("telepathy-glib" ,telepathy-glib)))
8444 (native-inputs
8445 `(("gobject-introspection" ,gobject-introspection)
8446 ("intltool" ,intltool)
8447 ("pkg-config" ,pkg-config)
8448 ("vala" ,vala)))
8449 (synopsis "Library to aggregate data about people")
8450 (description "Libfolks is a library that aggregates information about people
8451 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8452 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8453 etc.) to create metacontacts. It's written in Vala, which generates C code when
8454 compiled.")
8455 (home-page "https://wiki.gnome.org/Projects/Folks")
8456 (license license:lgpl2.1+)))
8457
8458 (define-public gfbgraph
8459 (package
8460 (name "gfbgraph")
8461 (version "0.2.3")
8462 (source (origin
8463 (method url-fetch)
8464 (uri (string-append
8465 "mirror://gnome/sources/gfbgraph/"
8466 (version-major+minor version) "/"
8467 "gfbgraph-" version ".tar.xz"))
8468 (sha256
8469 (base32
8470 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8471 (build-system glib-or-gtk-build-system)
8472 (arguments
8473 `(#:tests? #f ; Tests appear to require the network.
8474 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8475 #:configure-flags '("--disable-gtk-doc"
8476 "--disable-static"
8477 "--enable-introspection")))
8478 (native-inputs
8479 `(("pkg-config" ,pkg-config)
8480 ("gobject-introspection" ,gobject-introspection)))
8481 (inputs
8482 `(("json-glib" ,json-glib)
8483 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8484 ("rest" ,rest)))
8485 (synopsis "GLib/GObject wrapper for the Facebook API")
8486 (description "This library allows you to use the Facebook API from
8487 GLib/GObject code.")
8488 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8489 (license license:lgpl2.1+)))
8490
8491 (define-public libgnomekbd
8492 (package
8493 (name "libgnomekbd")
8494 (version "3.26.1")
8495 (source (origin
8496 (method url-fetch)
8497 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8498 (version-major+minor version) "/"
8499 "libgnomekbd-" version ".tar.xz"))
8500 (sha256
8501 (base32
8502 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8503 (build-system gnu-build-system)
8504 (native-inputs
8505 `(("pkg-config" ,pkg-config)
8506 ("glib" ,glib "bin")
8507 ("intltool" ,intltool)))
8508 (propagated-inputs
8509 ;; Referred to in .h files and .pc.
8510 `(("glib" ,glib)
8511 ("gtk+" ,gtk+)
8512 ("libxklavier" ,libxklavier)))
8513 (home-page "https://www.gnome.org")
8514 (synopsis "GNOME keyboard configuration library")
8515 (description
8516 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8517 environment, which can notably display keyboard layouts.")
8518 (license license:lgpl2.0+)))
8519
8520 ;;; This package is no longer maintained:
8521 ;;; https://wiki.gnome.org/Attic/LibUnique
8522 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8523 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8524 (define-public libunique
8525 (package
8526 (name "libunique")
8527 (version "3.0.2")
8528 (source (origin
8529 (method url-fetch)
8530 (uri (string-append "mirror://gnome/sources/" name "/"
8531 (version-major+minor version) "/"
8532 name "-" version ".tar.xz"))
8533 (sha256
8534 (base32
8535 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8536 (build-system glib-or-gtk-build-system)
8537 (arguments
8538 `(#:configure-flags '("--disable-static"
8539 "--disable-dbus" ; use gdbus
8540 "--enable-introspection")))
8541 (native-inputs
8542 `(("pkg-config" ,pkg-config)
8543 ("gobject-introspection" ,gobject-introspection)
8544 ("glib:bin" ,glib "bin")
8545 ("gtk-doc" ,gtk-doc)))
8546 (propagated-inputs
8547 ;; Referred to in .h files and .pc.
8548 `(("gtk+" ,gtk+)))
8549 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8550 (synopsis "Library for writing single instance applications")
8551 (description
8552 "Libunique is a library for writing single instance applications. If you
8553 launch a single instance application twice, the second instance will either just
8554 quit or will send a message to the running instance. Libunique makes it easy to
8555 write this kind of application, by providing a base class, taking care of all
8556 the IPC machinery needed to send messages to a running instance, and also
8557 handling the startup notification side.")
8558 (license license:lgpl2.1+)))
8559
8560 (define-public gnome-calculator
8561 (package
8562 (name "gnome-calculator")
8563 (version "3.32.2")
8564 (source
8565 (origin
8566 (method url-fetch)
8567 (uri (string-append "mirror://gnome/sources/" name "/"
8568 (version-major+minor version) "/"
8569 name "-" version ".tar.xz"))
8570 (sha256
8571 (base32
8572 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
8573 (build-system meson-build-system)
8574 (arguments '(#:glib-or-gtk? #t))
8575 (native-inputs
8576 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8577 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8578 ("intltool" ,intltool)
8579 ("itstool" ,itstool)
8580 ("vala" ,vala)
8581 ("pkg-config" ,pkg-config)))
8582 (inputs
8583 `(("glib" ,glib)
8584 ("gtksourceview" ,gtksourceview)
8585 ("libsoup" ,libsoup)
8586 ("libxml2" ,libxml2)
8587 ("mpc" ,mpc)
8588 ("mpfr" ,mpfr)))
8589 (home-page "https://wiki.gnome.org/Apps/Calculator")
8590 (synopsis "Desktop calculator")
8591 (description
8592 "Calculator is an application that solves mathematical equations and
8593 is suitable as a default application in a Desktop environment.")
8594 (license license:gpl3)))
8595
8596 (define-public xpad
8597 (package
8598 (name "xpad")
8599 (version "5.1.0")
8600 (source
8601 (origin
8602 (method url-fetch)
8603 (uri (string-append "https://launchpad.net/xpad/trunk/"
8604 version "/+download/"
8605 name "-" version ".tar.bz2"))
8606 (sha256
8607 (base32
8608 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8609 (build-system gnu-build-system)
8610 (native-inputs
8611 `(("autoconf" ,autoconf)
8612 ("automake" ,automake)
8613 ("gtk+:bin" ,gtk+ "bin")
8614 ("intltool" ,intltool)
8615 ("pkg-config" ,pkg-config)))
8616 (inputs
8617 `(("gtksourceview" ,gtksourceview-3)
8618 ("libsm" ,libsm)))
8619 (home-page "https://wiki.gnome.org/Apps/Xpad")
8620 (synopsis "Virtual sticky note")
8621 (description
8622 "Xpad is a sticky note that strives to be simple, fault tolerant,
8623 and customizable. Xpad consists of independent pad windows, each is
8624 basically a text box in which notes can be written.")
8625 (license license:gpl3+)))
8626
8627 (define-public gucharmap
8628 (let ((unicode-files
8629 '(("Blocks.txt"
8630 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8631 ("DerivedAge.txt"
8632 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8633 ("NamesList.txt"
8634 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8635 ("Scripts.txt"
8636 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8637 ("UnicodeData.txt"
8638 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8639 ("Unihan.zip"
8640 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8641 (package
8642 (name "gucharmap")
8643 (version "12.0.1")
8644 (source
8645 (origin
8646 (method url-fetch)
8647 (uri (string-append "mirror://gnome/sources/" name "/"
8648 (version-major+minor version) "/"
8649 name "-" version ".tar.xz"))
8650 (sha256
8651 (base32
8652 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8653 (build-system glib-or-gtk-build-system)
8654 (arguments
8655 `(#:modules ((ice-9 match)
8656 (guix build glib-or-gtk-build-system)
8657 (guix build utils))
8658 #:configure-flags
8659 (list "--with-unicode-data=../unicode-data")
8660 #:phases
8661 (modify-phases %standard-phases
8662 (add-after 'unpack 'prepare-unicode-data
8663 (lambda* (#:key inputs #:allow-other-keys)
8664 (mkdir-p "../unicode-data")
8665 (with-directory-excursion "../unicode-data"
8666 (for-each (match-lambda
8667 ((file _)
8668 (install-file (assoc-ref inputs file) ".")))
8669 ',unicode-files))
8670 #t)))))
8671 (native-inputs
8672 `(("desktop-file-utils" ,desktop-file-utils)
8673 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8674 ("gobject-introspection" ,gobject-introspection)
8675 ("intltool" ,intltool)
8676 ("itstool" ,itstool)
8677 ("pkg-config" ,pkg-config)
8678 ,@(map (match-lambda
8679 ((file hash)
8680 `(,file
8681 ,(origin
8682 (method url-fetch)
8683 (uri (string-append
8684 "http://www.unicode.org/Public/12.0.0/ucd/"
8685 file))
8686 (sha256 (base32 hash))))))
8687 unicode-files)
8688 ("unzip" ,unzip)))
8689 (inputs
8690 `(("gtk+" ,gtk+)
8691 ("xmllint" ,libxml2)))
8692 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8693 (synopsis "Unicode character picker and font browser")
8694 (description
8695 "This program allows you to browse through all the available Unicode
8696 characters and categories for the installed fonts, and to examine their
8697 detailed properties. It is an easy way to find the character you might
8698 only know by its Unicode name or code point.")
8699 (license license:gpl3+))))
8700
8701 (define-public bluefish
8702 (package
8703 (name "bluefish")
8704 (version "2.2.10")
8705 (source
8706 (origin
8707 (method url-fetch)
8708 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8709 name "-" version ".tar.gz"))
8710 (sha256
8711 (base32
8712 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
8713 (build-system gnu-build-system)
8714 (native-inputs
8715 `(("desktop-file-utils" ,desktop-file-utils)
8716 ("intltool" ,intltool)
8717 ("pkg-config" ,pkg-config)))
8718 (inputs
8719 `(("enchant" ,enchant)
8720 ("gtk+" ,gtk+)
8721 ("python" ,python-2)
8722 ("xmllint" ,libxml2)
8723 ("gucharmap" ,gucharmap)))
8724 (home-page "http://bluefish.openoffice.nl")
8725 (synopsis "Web development studio")
8726 (description
8727 "Bluefish is an editor targeted towards programmers and web developers,
8728 with many options to write web sites, scripts and other code.
8729 Bluefish supports many programming and markup languages.")
8730 (license license:gpl3+)))
8731
8732 (define-public gnome-system-monitor
8733 (package
8734 (name "gnome-system-monitor")
8735 (version "3.32.1")
8736 (source
8737 (origin
8738 (method url-fetch)
8739 (uri (string-append "mirror://gnome/sources/" name "/"
8740 (version-major+minor version) "/"
8741 name "-" version ".tar.xz"))
8742 (sha256
8743 (base32
8744 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8745 (build-system meson-build-system)
8746 (arguments
8747 '(#:glib-or-gtk? #t
8748 #:configure-flags '("-Dsystemd=false")))
8749 (native-inputs
8750 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8751 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8752 ("intltool" ,intltool)
8753 ("itstool" ,itstool)
8754 ("libgtop" ,libgtop)
8755 ("polkit" ,polkit)
8756 ("pkg-config" ,pkg-config)))
8757 (inputs
8758 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8759 ("gtk+" ,gtk+)
8760 ("gtkmm" ,gtkmm)
8761 ("librsvg" ,librsvg)
8762 ("libxml2" ,libxml2)
8763 ("libwnck" ,libwnck)))
8764 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8765 (synopsis "Process viewer and system resource monitor for GNOME")
8766 (description
8767 "GNOME System Monitor is a GNOME process viewer and system monitor with
8768 an attractive, easy-to-use interface. It has features, such as a tree view
8769 for process dependencies, icons for processes, the ability to hide processes,
8770 graphical time histories of CPU/memory/swap usage and the ability to
8771 kill/reinice processes.")
8772 (license license:gpl2+)))
8773
8774 (define-public python-pyatspi
8775 (package
8776 (name "python-pyatspi")
8777 (version "2.34.0")
8778 (source (origin
8779 (method url-fetch)
8780 (uri (string-append
8781 "mirror://gnome/sources/pyatspi/"
8782 (version-major+minor version)
8783 "/pyatspi-" version ".tar.xz"))
8784 (sha256
8785 (base32
8786 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8787 (build-system gnu-build-system)
8788 (arguments
8789 `(#:phases
8790 (modify-phases %standard-phases
8791 (add-before 'build 'fix-atk-load
8792 (lambda _
8793 (substitute* "pyatspi/__init__.py"
8794 (("from gi.repository import Atspi")
8795 "gi.require_version('Gtk', '3.0')
8796 from gi.repository import Gtk
8797 from gi.repository import Atspi"))
8798 #t)))))
8799 (native-inputs
8800 `(("pkg-config" ,pkg-config)))
8801 (inputs
8802 `(("python" ,python)
8803 ("python-pygobject" ,python-pygobject)))
8804 (synopsis "Python client bindings for D-Bus AT-SPI")
8805 (home-page "https://wiki.linuxfoundation.org/accessibility\
8806 /atk/at-spi/at-spi_on_d-bus")
8807 (description
8808 "This package includes a python client library for the AT-SPI D-Bus
8809 accessibility infrastructure.")
8810 (license license:lgpl2.0)
8811 (properties '((upstream-name . "pyatspi")))))
8812
8813 (define-public orca
8814 (package
8815 (name "orca")
8816 (version "3.32.0")
8817 (source (origin
8818 (method url-fetch)
8819 (uri (string-append
8820 "mirror://gnome/sources/" name "/"
8821 (version-major+minor version) "/"
8822 name "-" version ".tar.xz"))
8823 (sha256
8824 (base32
8825 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
8826 (build-system glib-or-gtk-build-system)
8827 (arguments
8828 '(#:phases
8829 (modify-phases %standard-phases
8830 (add-before 'configure 'qualify-xkbcomp
8831 (lambda* (#:key inputs #:allow-other-keys)
8832 (let ((xkbcomp (string-append
8833 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8834 (substitute* "src/orca/orca.py"
8835 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8836 #t))
8837 (add-after 'install 'wrap-orca
8838 (lambda* (#:key outputs #:allow-other-keys)
8839 (let* ((out (assoc-ref outputs "out"))
8840 (prog (string-append out "/bin/orca")))
8841 (wrap-program prog
8842 `("GI_TYPELIB_PATH" ":" prefix
8843 (,(getenv "GI_TYPELIB_PATH")))
8844 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8845 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8846 `("PYTHONPATH" ":" prefix
8847 (,(getenv "PYTHONPATH")))))
8848 #t)))))
8849 (native-inputs
8850 `(("intltool" ,intltool)
8851 ("itstool" ,itstool)
8852 ("pkg-config" ,pkg-config)
8853 ("xmllint" ,libxml2)))
8854 (inputs
8855 `(("at-spi2-atk" ,at-spi2-atk)
8856 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8857 ("gstreamer" ,gstreamer)
8858 ("gst-plugins-base" ,gst-plugins-base)
8859 ("gst-plugins-good" ,gst-plugins-good)
8860 ("gtk+" ,gtk+)
8861 ("python" ,python)
8862 ("python-pygobject" ,python-pygobject)
8863 ("python-pyatspi" ,python-pyatspi)
8864 ("python-speechd" ,speech-dispatcher)
8865 ("xkbcomp" ,xkbcomp)))
8866 (synopsis
8867 "Screen reader for individuals who are blind or visually impaired")
8868 (home-page "https://wiki.gnome.org/Projects/Orca")
8869 (description
8870 "Orca is a screen reader that provides access to the graphical desktop
8871 via speech and refreshable braille. Orca works with applications and toolkits
8872 that support the Assistive Technology Service Provider Interface (AT-SPI).")
8873 (license license:lgpl2.1+)))
8874
8875 (define-public gspell
8876 (package
8877 (name "gspell")
8878 (version "1.8.2")
8879 (source (origin
8880 (method url-fetch)
8881 (uri (string-append "mirror://gnome/sources/" name "/"
8882 (version-major+minor version) "/"
8883 name "-" version ".tar.xz"))
8884 (sha256
8885 (base32
8886 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
8887 (patches (search-patches "gspell-dash-test.patch"))))
8888 (build-system glib-or-gtk-build-system)
8889 (arguments
8890 '(#:phases
8891 (modify-phases %standard-phases
8892 (add-before 'check 'pre-check
8893 (lambda* (#:key inputs #:allow-other-keys)
8894 ;; Tests require a running X server.
8895 (system "Xvfb :1 &")
8896 (setenv "DISPLAY" ":1")
8897
8898 ;; For the missing /etc/machine-id.
8899 (setenv "DBUS_FATAL_WARNINGS" "0")
8900
8901 ;; Allow Enchant and its Aspell backend to find the en_US
8902 ;; dictionary.
8903 (setenv "ASPELL_DICT_DIR"
8904 (string-append (assoc-ref inputs "aspell-dict-en")
8905 "/lib/aspell"))
8906 #t)))))
8907 (inputs
8908 `(("gtk+" ,gtk+)
8909 ("glib" ,glib)
8910 ("iso-codes" ,iso-codes)))
8911 (native-inputs
8912 `(("glib" ,glib "bin")
8913 ("gobject-introspection" ,gobject-introspection)
8914 ("pkg-config" ,pkg-config)
8915 ("xmllint" ,libxml2)
8916
8917 ;; For tests.
8918 ("aspell-dict-en" ,aspell-dict-en)
8919 ("xorg-server" ,xorg-server-for-tests)))
8920 (propagated-inputs
8921 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
8922 (home-page "https://wiki.gnome.org/Projects/gspell")
8923 (synopsis "GNOME's alternative spell checker")
8924 (description
8925 "gspell provides a flexible API to add spell-checking to a GTK+
8926 application. It provides a GObject API, spell-checking to text entries and
8927 text views, and buttons to choose the language.")
8928 (license license:gpl2+)))
8929
8930 (define-public gnome-planner
8931 (package
8932 (name "gnome-planner")
8933 (version "0.14.6")
8934 (source (origin
8935 (method url-fetch)
8936 (uri (string-append "mirror://gnome/sources/planner/"
8937 (version-major+minor version) "/planner-"
8938 version ".tar.xz"))
8939 (sha256
8940 (base32
8941 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8942 (build-system glib-or-gtk-build-system)
8943 (arguments
8944 ;; Disable the Python bindings because the Planner program functions
8945 ;; without them, and (as of 2017-06-13) we have not packaged all of
8946 ;; packages that are necessary for building the Python bindings.
8947 `(#:configure-flags
8948 (list "--disable-python"
8949 ,@(if (string=? "aarch64-linux" (%current-system))
8950 '("--build=aarch64-unknown-linux-gnu")
8951 '()))))
8952 (inputs
8953 `(("libgnomecanvas" ,libgnomecanvas)
8954 ("libgnomeui" ,libgnomeui)
8955 ("libglade" ,libglade)
8956 ("gnome-vfs" ,gnome-vfs)
8957 ("gconf" ,gconf)
8958 ("libxml2" ,libxml2)
8959 ("libxslt" ,libxslt)
8960 ("gtk+" ,gtk+)
8961 ("glib" ,glib)))
8962 (native-inputs
8963 `(("intltool" ,intltool)
8964 ("scrollkeeper" ,scrollkeeper)
8965 ("pkg-config" ,pkg-config)))
8966 (home-page "https://wiki.gnome.org/Apps/Planner")
8967 (synopsis "Project management software for the GNOME desktop")
8968 (description
8969 "GNOME Planner is a project management tool based on the Work Breakdown
8970 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8971 the resources, tasks, and constraints that you define, Planner generates
8972 various views into a project. For example, Planner can show a Gantt chart of
8973 the project. It can show a detailed summary of tasks including their
8974 duration, cost, and current progress. It can also show a report of resource
8975 utilization that highlights under-utilized and over-utilized resources. These
8976 views can be printed as PDF or PostScript files, or exported to HTML.")
8977 (license license:gpl2+)))
8978
8979 (define-public lollypop
8980 (package
8981 (name "lollypop")
8982 (version "1.2.7")
8983 (source
8984 (origin
8985 (method url-fetch)
8986 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
8987 "08f973788c7ca46d9285eec2ac818edb/"
8988 "lollypop-" version ".tar.xz"))
8989 (sha256
8990 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
8991 (build-system meson-build-system)
8992 (arguments
8993 `(#:imported-modules ((guix build python-build-system)
8994 ,@%meson-build-system-modules)
8995 #:glib-or-gtk? #t
8996 #:tests? #f ; no test suite
8997 #:phases
8998 (modify-phases %standard-phases
8999 (add-after 'install 'wrap-program
9000 (lambda* (#:key outputs #:allow-other-keys)
9001 (let ((out (assoc-ref outputs "out"))
9002 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9003 (wrap-program (string-append out "/bin/lollypop")
9004 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9005 #t))
9006 (add-after 'install 'wrap-python
9007 (@@ (guix build python-build-system) wrap))
9008 (add-after 'install 'wrap-glib-or-gtk
9009 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
9010 (native-inputs
9011 `(("intltool" ,intltool)
9012 ("itstool" ,itstool)
9013 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9014 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9015 ("pkg-config" ,pkg-config)))
9016 (inputs
9017 `(("gobject-introspection" ,gobject-introspection)
9018 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9019 ("gst-plugins-base" ,gst-plugins-base)
9020 ("libnotify" ,libnotify)
9021 ("libsecret" ,libsecret)
9022 ("libsoup" ,libsoup)
9023 ("python" ,python)
9024 ("python-beautifulsoup4" ,python-beautifulsoup4)
9025 ("python-gst" ,python-gst)
9026 ("python-pil" ,python-pillow)
9027 ("python-pycairo" ,python-pycairo)
9028 ("python-pygobject" ,python-pygobject-3.34)
9029 ("python-pylast" ,python-pylast)
9030 ("totem-pl-parser" ,totem-pl-parser)
9031 ("webkitgtk" ,webkitgtk)))
9032 (propagated-inputs
9033 `(;; gst-plugins-base is required to start Lollypop,
9034 ;; the others are required to play streaming.
9035 ("gst-plugins-good" ,gst-plugins-good)
9036 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9037 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9038 (synopsis "GNOME music playing application")
9039 (description
9040 "Lollypop is a music player designed to play well with GNOME desktop.
9041 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9042 from artists and tracks from the web. It also fetches cover artworks
9043 automatically and it can stream songs from online music services and charts.")
9044 (license license:gpl3+)))
9045
9046 (define-public gnome-video-effects
9047 (package
9048 (name "gnome-video-effects")
9049 (version "0.4.3")
9050 (source (origin
9051 (method url-fetch)
9052 (uri (string-append "mirror://gnome/sources/" name "/"
9053 (version-major+minor version) "/" name "-"
9054 version ".tar.xz"))
9055 (sha256
9056 (base32
9057 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9058 (build-system glib-or-gtk-build-system)
9059 (arguments
9060 `(#:out-of-source? #f))
9061 (native-inputs
9062 `(("glib:bin" ,glib "bin")
9063 ("intltool" ,intltool)
9064 ("gettext" ,gettext-minimal)
9065 ("pkg-config" ,pkg-config)))
9066 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9067 (synopsis "Video effects for Cheese and other GNOME applications")
9068 (description
9069 "A collection of GStreamer video filters and effects to be used in
9070 photo-booth-like software, such as Cheese.")
9071 (license license:gpl2+)))
9072
9073 (define-public cheese
9074 (package
9075 (name "cheese")
9076 (version "3.32.1")
9077 (source (origin
9078 (method url-fetch)
9079 (uri (string-append "mirror://gnome/sources/" name "/"
9080 (version-major+minor version) "/" name "-"
9081 version ".tar.xz"))
9082 (sha256
9083 (base32
9084 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
9085 (arguments
9086 ;; Tests require GDK.
9087 `(#:tests? #f
9088 #:phases
9089 (modify-phases %standard-phases
9090 (add-before 'install 'skip-gtk-update-icon-cache
9091 (lambda _
9092 ;; Don't create 'icon-theme.cache'
9093 (substitute* "Makefile"
9094 (("gtk-update-icon-cache") (which "true")))
9095 #t))
9096 (add-after 'install 'wrap-cheese
9097 (lambda* (#:key inputs outputs #:allow-other-keys)
9098 (let ((out (assoc-ref outputs "out"))
9099 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9100 (wrap-program (string-append out "/bin/cheese")
9101 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9102 #t)))))
9103 (build-system glib-or-gtk-build-system)
9104 (native-inputs
9105 `(("glib:bin" ,glib "bin")
9106 ("intltool" ,intltool)
9107 ("itstool" ,itstool)
9108 ("libxml2" ,libxml2)
9109 ("pkg-config" ,pkg-config)
9110 ("vala" ,vala)))
9111 (propagated-inputs
9112 `(("gnome-video-effects" ,gnome-video-effects)
9113 ("clutter" ,clutter)
9114 ("clutter-gst" ,clutter-gst)
9115 ("clutter-gtk" ,clutter-gtk)
9116 ("libcanberra" ,libcanberra)
9117 ("gdk-pixbuf" ,gdk-pixbuf)
9118 ("glib" ,glib)
9119 ("gstreamer" ,gstreamer)))
9120 (inputs
9121 `(("gnome-desktop" ,gnome-desktop)
9122 ("gobject-introspection" ,gobject-introspection)
9123 ("gst-plugins-base" ,gst-plugins-base)
9124 ("gst-plugins-bad" ,gst-plugins-bad)
9125 ("gtk+" ,gtk+)
9126 ("libx11" ,libx11)
9127 ("libxtst" ,libxtst)))
9128 (home-page "https://wiki.gnome.org/Apps/Cheese")
9129 (synopsis "Webcam photo booth software for GNOME")
9130 (description
9131 "Cheese uses your webcam to take photos and videos. Cheese can also
9132 apply fancy special effects and lets you share the fun with others.")
9133 (license license:gpl2+)))
9134
9135 (define-public sound-juicer
9136 (package
9137 (name "sound-juicer")
9138 (version "3.24.0")
9139 (source
9140 (origin
9141 (method url-fetch)
9142 (uri (string-append "mirror://gnome/sources/" name "/"
9143 (version-major+minor version) "/"
9144 name "-" version ".tar.xz"))
9145 (sha256
9146 (base32
9147 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9148 (build-system glib-or-gtk-build-system)
9149 (native-inputs
9150 `(("desktop-file-utils" ,desktop-file-utils)
9151 ("intltool" ,intltool)
9152 ("itstool" ,itstool)
9153 ("pkg-config" ,pkg-config)
9154 ("xmllint" ,libxml2)))
9155 (inputs
9156 `(("gtk+" ,gtk+)
9157 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9158 ("gstreamer" ,gstreamer)
9159 ("gst-plugins-base" ,gst-plugins-base)
9160 ("gst-plugins-good" ,gst-plugins-good)
9161 ("iso-codes" ,iso-codes)
9162 ("libbrasero-media3" ,brasero)
9163 ("libcanberra" ,libcanberra)
9164 ("libdiscid" ,libdiscid)
9165 ("libmusicbrainz" ,libmusicbrainz)
9166 ("neon" ,neon)))
9167 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9168 (synopsis "Audio music cd ripper")
9169 (description "Sound Juicer extracts audio from compact discs and convert it
9170 into audio files that a personal computer or digital audio player can play.
9171 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9172 mp3, Ogg Vorbis and FLAC")
9173 (license license:gpl2+)))
9174
9175 (define-public soundconverter
9176 (package
9177 (name "soundconverter")
9178 (version "3.0.1")
9179 (source
9180 (origin
9181 (method url-fetch)
9182 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9183 version "/+download/"
9184 "soundconverter-" version ".tar.xz"))
9185
9186 (sha256
9187 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
9188 (patches
9189 (search-patches
9190 "soundconverter-remove-gconf-dependency.patch"))))
9191 (build-system glib-or-gtk-build-system)
9192 (arguments
9193 `(#:imported-modules ((guix build python-build-system)
9194 (guix build glib-or-gtk-build-system)
9195 ,@%gnu-build-system-modules)
9196
9197 #:modules ((guix build glib-or-gtk-build-system)
9198 (guix build utils)
9199 ((guix build gnu-build-system) #:prefix gnu:)
9200 ((guix build python-build-system) #:prefix python:))
9201
9202 #:phases
9203 (modify-phases %standard-phases
9204 (add-after 'install 'wrap-soundconverter-for-python
9205 (assoc-ref python:%standard-phases 'wrap))
9206 (add-after 'install 'wrap-soundconverter
9207 (lambda* (#:key inputs outputs #:allow-other-keys)
9208 (let ((out (assoc-ref outputs "out"))
9209 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9210 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9211 (wrap-program (string-append out "/bin/soundconverter")
9212 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9213 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9214 #t)))))
9215 (native-inputs
9216 `(("intltool" ,intltool)
9217 ("pkg-config" ,pkg-config)
9218 ("glib:bin" ,glib "bin")))
9219 (inputs
9220 `(("gtk+" ,gtk+)
9221 ("python" ,python)
9222 ("python-pygobject" ,python-pygobject)
9223 ("gstreamer" ,gstreamer)
9224 ("gst-plugins-base" ,gst-plugins-base)))
9225 (home-page "http://soundconverter.org/")
9226 (synopsis "Convert between audio formats with a graphical interface")
9227 (description
9228 "SoundConverter supports converting between many audio formats including
9229 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9230 configurable file renaming. ")
9231 (license license:gpl3)))
9232
9233 (define-public workrave
9234 (package
9235 (name "workrave")
9236 (version "1.10.34")
9237 (source
9238 (origin
9239 (method git-fetch)
9240 (uri (git-reference
9241 (url "https://github.com/rcaelers/workrave.git")
9242 (commit (string-append "v" (string-map
9243 (match-lambda (#\. #\_) (chr chr))
9244 version)))))
9245 (file-name (git-file-name name version))
9246 (sha256
9247 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
9248 (build-system glib-or-gtk-build-system)
9249 (inputs `(("glib" ,glib)
9250 ("gtk+" ,gtk+)
9251 ("gdk-pixbuf" ,gdk-pixbuf)
9252 ("gtkmm" ,gtkmm)
9253 ("glibmm" ,glibmm)
9254 ("libx11" ,libx11)
9255 ("libxtst" ,libxtst)
9256 ("dconf" ,dconf)
9257 ("libice" ,libice)
9258 ("libsm" ,libsm)
9259 ("libxscrnsaver" ,libxscrnsaver)))
9260 (native-inputs `(("boost" ,boost)
9261 ("pkg-config" ,pkg-config)
9262 ("gettext" ,gnu-gettext)
9263 ("autoconf" ,autoconf)
9264 ("autoconf-archive" , autoconf-archive)
9265 ("automake" ,automake)
9266 ("libtool" ,libtool)
9267 ("intltool" ,intltool)
9268 ("gobject-introspection" ,gobject-introspection)
9269 ("python3" ,python-3)
9270 ("python-jinja2" ,python-jinja2)))
9271 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9272 (description
9273 "Workrave is a program that assists in the recovery and prevention of
9274 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9275 micro-pauses and rest breaks, and restricts you to your daily limit.")
9276 (home-page "http://www.workrave.org")
9277 (license license:gpl3+)))
9278
9279 (define-public ghex
9280 (package
9281 (name "ghex")
9282 (version "3.18.4")
9283 (source (origin
9284 (method url-fetch)
9285 (uri (string-append "mirror://gnome/sources/ghex/"
9286 (version-major+minor version) "/"
9287 "ghex-" version ".tar.xz"))
9288 (sha256
9289 (base32
9290 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9291 (build-system meson-build-system)
9292 (arguments
9293 '(#:glib-or-gtk? #t
9294 #:phases
9295 (modify-phases %standard-phases
9296 (add-after 'unpack 'skip-gtk-update-icon-cache
9297 ;; Don't create 'icon-theme.cache'.
9298 (lambda _
9299 (substitute* "meson_post_install.py"
9300 (("gtk-update-icon-cache") (which "true")))
9301 #t)))))
9302 (native-inputs
9303 `(("pkg-config" ,pkg-config)
9304 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9305 ("gnome-common" ,gnome-common)
9306 ("which" ,which)
9307 ("intltool" ,intltool)
9308 ("yelp-tools" ,yelp-tools)
9309 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9310 (inputs
9311 `(("atk" ,atk)
9312 ("gtk" ,gtk+)))
9313 (synopsis "GNOME hexadecimal editor")
9314 (description "The GHex program can view and edit files in two ways:
9315 hexadecimal or ASCII. It is useful for editing binary files in general.")
9316 (home-page "https://wiki.gnome.org/Apps/Ghex")
9317 (license license:gpl2)))
9318
9319 (define-public libdazzle
9320 (package
9321 (name "libdazzle")
9322 (version "3.33.90")
9323 (source (origin
9324 (method url-fetch)
9325 (uri (string-append "mirror://gnome/sources/libdazzle/"
9326 (version-major+minor version) "/"
9327 "libdazzle-" version ".tar.xz"))
9328 (sha256
9329 (base32
9330 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
9331 (build-system meson-build-system)
9332 (arguments
9333 `(#:phases
9334 (modify-phases %standard-phases
9335 (add-before 'check 'pre-check
9336 (lambda _
9337 ;; Tests require a running X server.
9338 (system "Xvfb :1 &")
9339 (setenv "DISPLAY" ":1")
9340 #t)))))
9341 (native-inputs
9342 `(("glib" ,glib "bin") ; glib-compile-resources
9343 ("pkg-config" ,pkg-config)
9344 ;; For tests.
9345 ("xorg-server" ,xorg-server-for-tests)))
9346 (inputs
9347 `(("glib" ,glib)
9348 ("gobject-introspection" ,gobject-introspection)
9349 ("gtk+" ,gtk+)
9350 ("vala" ,vala)))
9351 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9352 (synopsis "Companion library to GObject and Gtk+")
9353 (description "The libdazzle library is a companion library to GObject and
9354 Gtk+. It provides various features that the authors wish were in the
9355 underlying library but cannot for various reasons. In most cases, they are
9356 wildly out of scope for those libraries. In other cases, they are not quite
9357 generic enough to work for everyone.")
9358 (license license:gpl3+)))
9359
9360 (define-public evolution
9361 (package
9362 (name "evolution")
9363 (version "3.32.4")
9364 (source (origin
9365 (method url-fetch)
9366 (uri (string-append "mirror://gnome/sources/evolution/"
9367 (version-major+minor version) "/"
9368 "evolution-" version ".tar.xz"))
9369 (sha256
9370 (base32
9371 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
9372 (build-system cmake-build-system)
9373 (arguments
9374 `(#:imported-modules (,@%cmake-build-system-modules
9375 (guix build glib-or-gtk-build-system))
9376 #:modules ((guix build cmake-build-system)
9377 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9378 (guix build utils))
9379 #:configure-flags
9380 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9381 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9382 ; in four years and cannot be built.
9383 #:phases
9384 (modify-phases %standard-phases
9385 ;; The build system attempts to install user interface modules to the
9386 ;; output directory of the "evolution-data-server" package. This
9387 ;; change redirects that change.
9388 (add-after 'unpack 'patch-ui-module-dir
9389 (lambda* (#:key outputs #:allow-other-keys)
9390 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9391 (("\\$\\{edsuimoduledir\\}")
9392 (string-append (assoc-ref outputs "out")
9393 "/lib/evolution-data-server/ui-modules")))
9394 #t))
9395 (add-after 'install 'glib-or-gtk-compile-schemas
9396 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9397 (add-after 'install 'glib-or-gtk-wrap
9398 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9399 (native-inputs
9400 `(("glib" ,glib "bin") ; glib-mkenums
9401 ("pkg-config" ,pkg-config)
9402 ("intltool" ,intltool)
9403 ("itstool" ,itstool)))
9404 (inputs
9405 `(("enchant" ,enchant)
9406 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9407 ("gcr" ,gcr)
9408 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9409 ("gnome-autoar" ,gnome-autoar)
9410 ("gnome-desktop" ,gnome-desktop)
9411 ("gtkspell3" ,gtkspell3)
9412 ("highlight" ,highlight)
9413 ("libcanberra" ,libcanberra)
9414 ("libedataserverui" ,evolution-data-server)
9415 ("libgweather" ,libgweather)
9416 ("libnotify" ,libnotify)
9417 ("libsoup" ,libsoup)
9418 ("nss" ,nss)
9419 ("openldap" ,openldap)
9420 ("webkitgtk" ,webkitgtk)
9421 ("ytnef" ,ytnef)))
9422 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9423 (synopsis "Manage your email, contacts and schedule")
9424 (description "Evolution is a personal information management application
9425 that provides integrated mail, calendaring and address book
9426 functionality.")
9427 ;; See COPYING for details.
9428 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9429 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9430 license:lgpl2.1+)))) ; smime/lib/*
9431
9432 (define-public gthumb
9433 (package
9434 (name "gthumb")
9435 (version "3.8.2")
9436 (source (origin
9437 (method url-fetch)
9438 (uri (string-append "mirror://gnome/sources/gthumb/"
9439 (version-major+minor version) "/"
9440 "gthumb-" version ".tar.xz"))
9441 (sha256
9442 (base32
9443 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9444 (build-system meson-build-system)
9445 (arguments
9446 `(#:glib-or-gtk? #t
9447 #:configure-flags
9448 ;; Ensure the RUNPATH contains all installed library locations.
9449 (list (string-append "-Dc_link_args=-Wl,-rpath="
9450 (assoc-ref %outputs "out")
9451 "/lib/gthumb/extensions")
9452 (string-append "-Dcpp_link_args=-Wl,-rpath="
9453 (assoc-ref %outputs "out")
9454 "/lib/gthumb/extensions"))))
9455 (native-inputs
9456 `(("pkg-config" ,pkg-config)
9457 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9458 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9459 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9460 ("intltool" ,intltool)
9461 ("itstool" ,itstool)))
9462 (inputs
9463 `(("exiv2" ,exiv2)
9464 ("gtk" ,gtk+)
9465 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9466 ("gstreamer" ,gstreamer)
9467 ("clutter" ,clutter)
9468 ("clutter-gst" ,clutter-gst)
9469 ("clutter-gtk" ,clutter-gtk)
9470 ("libjpeg" ,libjpeg)
9471 ("libtiff" ,libtiff)
9472 ("libraw" ,libraw)))
9473 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9474 (synopsis "GNOME image viewer and browser")
9475 (description "GThumb is an image viewer, browser, organizer, editor and
9476 advanced image management tool")
9477 (license license:gpl2+)))
9478
9479 (define-public terminator
9480 (package
9481 (name "terminator")
9482 (version "1.91")
9483 (source (origin
9484 (method url-fetch)
9485 (uri (string-append "https://launchpad.net/" name "/"
9486 "gtk3/" version "/" "+download/"
9487 name "-" version ".tar.gz"))
9488 (sha256
9489 (base32
9490 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9491 (build-system python-build-system)
9492 (native-inputs
9493 `(("intltool" ,intltool)
9494 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9495 ("gettext" ,gettext-minimal)
9496 ("pkg-config" ,pkg-config)))
9497 (inputs
9498 `(("cairo" ,cairo)
9499 ("gobject-introspection" ,gobject-introspection)
9500 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9501 ("python2-pycairo" ,python2-pycairo)
9502 ("python2-pygobject" ,python2-pygobject)
9503 ("python2-psutil" ,python2-psutil)
9504 ("vte" ,vte)))
9505 (arguments
9506 `(#:python ,python-2 ; Python 3 isn't supported
9507 #:imported-modules ((guix build glib-or-gtk-build-system)
9508 ,@%python-build-system-modules)
9509 #:modules ((guix build python-build-system)
9510 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9511 (guix build utils))
9512 #:phases
9513 (modify-phases %standard-phases
9514 (add-after
9515 'install 'wrap-program
9516 (lambda* (#:key outputs #:allow-other-keys)
9517 (let ((prog (string-append (assoc-ref outputs "out")
9518 "/bin/terminator")))
9519 (wrap-program prog
9520 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9521 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9522 #t)))
9523 (add-after 'wrap-program 'glib-or-gtk-wrap
9524 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9525 (home-page "https://gnometerminator.blogspot.com/")
9526 (synopsis "Store and run multiple GNOME terminals in one window")
9527 (description
9528 "Terminator allows you to run multiple GNOME terminals in a grid and
9529 +tabs, and it supports drag and drop re-ordering of terminals.")
9530 (license license:gpl2)))
9531
9532 (define-public libhandy
9533 (package
9534 (name "libhandy")
9535 (version "0.0.12")
9536 (source
9537 (origin
9538 (method git-fetch)
9539 (uri (git-reference
9540 (url "https://source.puri.sm/Librem5/libhandy")
9541 (commit (string-append "v" version))))
9542 (file-name (git-file-name name version))
9543 (sha256
9544 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9545 (build-system meson-build-system)
9546 (arguments
9547 `(#:configure-flags
9548 '("-Dglade_catalog=disabled"
9549 "-Dgtk_doc=true")
9550 #:phases
9551 (modify-phases %standard-phases
9552 (add-before 'check 'pre-check
9553 (lambda _
9554 ;; Tests require a running X server.
9555 (system "Xvfb :1 &")
9556 (setenv "DISPLAY" ":1")
9557 #t)))))
9558 (inputs
9559 `(("gtk+" ,gtk+)))
9560 (native-inputs
9561 `(("glib:bin" ,glib "bin")
9562 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9563 ("vala" ,vala)
9564 ("gtk-doc" ,gtk-doc)
9565 ("pkg-config" ,pkg-config)
9566 ("gettext" ,gettext-minimal)
9567
9568 ;; Test suite dependencies.
9569 ("xorg-server" ,xorg-server-for-tests)
9570 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9571 (home-page "https://source.puri.sm/Librem5/libhandy")
9572 (synopsis "Library full of GTK+ widgets for mobile phones")
9573 (description "The aim of the handy library is to help with developing user
9574 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9575 for usage on small and big screens.")
9576 (license license:lgpl2.1+)))
9577
9578 (define-public libgit2-glib
9579 (package
9580 (name "libgit2-glib")
9581 (version "0.28.0.1")
9582 (source (origin
9583 (method url-fetch)
9584 (uri (string-append "mirror://gnome/sources/" name "/"
9585 (version-major+minor version) "/"
9586 name "-" version ".tar.xz"))
9587 (sha256
9588 (base32
9589 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9590 (build-system meson-build-system)
9591 (native-inputs
9592 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9593 ("gobject-introspection" ,gobject-introspection)
9594 ("intltool" ,intltool)
9595 ("libssh2" ,libssh2)
9596 ("pkg-config" ,pkg-config)
9597 ("python-pygobject" ,python-pygobject)
9598 ("python-wrapper" ,python-wrapper)
9599 ("vala" ,vala)))
9600 (inputs
9601 `(("glib" ,glib)
9602 ("libgit2" ,libgit2)))
9603 (synopsis "GLib wrapper around the libgit2 Git access library")
9604 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9605 access library. It only implements the core plumbing functions, not really the
9606 higher level porcelain stuff.")
9607 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9608 (license license:gpl2+)))
9609
9610 (define-public gitg
9611 (package
9612 (name "gitg")
9613 (version "3.32.1")
9614 (source (origin
9615 (method url-fetch)
9616 (uri (string-append "mirror://gnome/sources/" name "/"
9617 (version-major+minor version) "/"
9618 name "-" version ".tar.xz"))
9619 (sha256
9620 (base32
9621 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9622 (build-system meson-build-system)
9623 (arguments
9624 `(#:glib-or-gtk? #t
9625 #:phases
9626 (modify-phases %standard-phases
9627 (add-after 'unpack 'disable-post-install-partially
9628 (lambda _
9629 (substitute* "meson_post_install.py"
9630 (("'python'") ; there are no python sources to compile
9631 (string-append "'" (which "true") "'"))
9632 (("gtk-update-icon-cache") (which "true")))
9633 #t))
9634 (add-after 'unpack 'fix-test-sources
9635 (lambda _
9636 (substitute* "tests/libgitg/test-commit.vala"
9637 (("/bin/bash") (which "bash")))
9638 #t))
9639 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9640 (lambda* (#:key outputs #:allow-other-keys)
9641 (let ((prog (string-append (assoc-ref outputs "out")
9642 "/bin/gitg")))
9643 (wrap-program prog
9644 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9645 #t))))))
9646 (inputs
9647 `(("glib" ,glib)
9648 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9649 ("gtk+" ,gtk+)
9650 ("gtkspell3" ,gtkspell3)
9651 ("gtksourceview" ,gtksourceview-3)
9652 ("json-glib" ,json-glib)
9653 ("libdazzle" ,libdazzle)
9654 ("libgee" ,libgee)
9655 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9656 ("libgit2-glib" ,libgit2-glib)
9657 ("libpeas" ,libpeas)
9658 ("libsecret" ,libsecret)
9659 ("libsoup" ,libsoup)
9660 ("libxml2" ,libxml2)))
9661 (native-inputs
9662 `(("glib:bin" ,glib "bin")
9663 ("gtk+:bin" ,gtk+ "bin")
9664 ("gobject-introspection" ,gobject-introspection)
9665 ("intltool" ,intltool)
9666 ("pkg-config" ,pkg-config)
9667 ("vala" ,vala)))
9668 (synopsis "Graphical user interface for git")
9669 (description
9670 "gitg is a graphical user interface for git. It aims at being a small,
9671 fast and convenient tool to visualize the history of git repositories.
9672 Besides visualization, gitg also provides several utilities to manage your
9673 repository and commit your work.")
9674 (home-page "https://wiki.gnome.org/Apps/Gitg")
9675 (license license:gpl2+)))
9676
9677 (define-public gamin
9678 (package
9679 (name "gamin")
9680 (version "0.1.10")
9681 (source (origin
9682 (method url-fetch)
9683 (uri (string-append "mirror://gnome/sources/" name "/"
9684 (version-major+minor version) "/"
9685 name "-" version ".tar.bz2"))
9686 (sha256
9687 (base32
9688 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9689 (build-system gnu-build-system)
9690 (arguments
9691 `(#:phases
9692 (modify-phases %standard-phases
9693 (add-after 'unpack 'remove-deprecated-macro
9694 (lambda _
9695 (substitute* '("server/gam_node.c"
9696 "server/gam_subscription.h"
9697 "server/gam_node.h"
9698 "server/gam_subscription.c")
9699 (("G_CONST_RETURN") "const"))
9700 #t)))))
9701 (inputs
9702 `(("glib" ,glib)))
9703 (native-inputs
9704 `(("intltool" ,intltool)
9705 ("pkg-config" ,pkg-config)))
9706 (home-page "https://people.gnome.org/~veillard/gamin/")
9707 (synopsis "File alteration monitor")
9708 (description
9709 "Gamin is a file and directory monitoring system defined to be a subset
9710 of the FAM (File Alteration Monitor) system. This is a service provided by a
9711 library which allows to detect when a file or a directory has been modified.")
9712 (license license:gpl2+)))
9713
9714 (define-public gnome-mahjongg
9715 (package
9716 (name "gnome-mahjongg")
9717 (version "3.35.1")
9718 (source (origin
9719 (method git-fetch)
9720 (uri (git-reference
9721 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9722 (commit version)))
9723 (file-name (git-file-name name version))
9724 (sha256
9725 (base32
9726 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9727 (build-system meson-build-system)
9728 (arguments
9729 `(#:glib-or-gtk? #t))
9730 (native-inputs
9731 `(("appstream-glib" ,appstream-glib)
9732 ("gettext" ,gettext-minimal)
9733 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9734 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9735 ("itstool" ,itstool)
9736 ("pkg-config" ,pkg-config)
9737 ("vala" ,vala)))
9738 (propagated-inputs
9739 `(("dconf" ,dconf)))
9740 (inputs
9741 `(("glib" ,glib)
9742 ("gtk+" ,gtk+)
9743 ("librsvg" ,librsvg)))
9744 (synopsis "Mahjongg tile-matching game")
9745 (description "GNOME Mahjongg is a game based on the classic Chinese
9746 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9747 and a high score table.")
9748 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9749 (license license:gpl2+)))
9750
9751 (define-public gnome-themes-extra
9752 (package
9753 (name "gnome-themes-extra")
9754 (version "3.28")
9755 (source
9756 (origin
9757 (method url-fetch)
9758 (uri (string-append "mirror://gnome/sources/" name "/"
9759 (version-major+minor version) "/" name "-"
9760 version ".tar.xz"))
9761 (sha256
9762 (base32
9763 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9764 (build-system gnu-build-system)
9765 (arguments
9766 '(#:configure-flags
9767 ;; Don't create 'icon-theme.cache'.
9768 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9769 (true (string-append coreutils "/bin/true")))
9770 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9771 (native-inputs
9772 `(("glib:bin" ,glib "bin")
9773 ("intltool" ,intltool)
9774 ("pkg-config" ,pkg-config)))
9775 (inputs
9776 `(("glib" ,glib)
9777 ("gtk+" ,gtk+)
9778 ("gtk+-2" ,gtk+-2)
9779 ("librsvg" ,librsvg)
9780 ("libxml2" ,libxml2)))
9781 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9782 (synopsis "GNOME Extra Themes")
9783 (description "This package provides themes and related elements that don't
9784 really fit in other upstream packages. It offers legacy support for GTK+ 2
9785 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9786 index files needed for Adwaita to be used outside of GNOME.")
9787 (license license:lgpl2.1+)))
9788
9789 (define-public polari
9790 (package
9791 (name "polari")
9792 (version "3.32.2")
9793 (source (origin
9794 (method url-fetch)
9795 (uri (string-append "mirror://gnome/sources/polari/"
9796 (version-major+minor version)
9797 "/polari-" version ".tar.xz"))
9798 (sha256
9799 (base32
9800 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9801 (build-system meson-build-system)
9802 (arguments
9803 `(#:glib-or-gtk? #t
9804 #:phases
9805 (modify-phases %standard-phases
9806 (add-after 'unpack 'skip-gtk-update-icon-cache
9807 (lambda _
9808 (substitute* "meson/meson-postinstall.sh"
9809 (("gtk-update-icon-cache") (which "true")))
9810 #t))
9811 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9812 (lambda* (#:key outputs #:allow-other-keys)
9813 (let ((prog (string-append (assoc-ref outputs "out")
9814 "/bin/polari")))
9815 (wrap-program prog
9816 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9817 #t))))))
9818 (inputs
9819 `(("glib" ,glib)
9820 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9821 ("gspell" ,gspell)
9822 ("gtk+" ,gtk+)
9823 ("gjs" ,gjs)
9824 ("libsecret" ,libsecret)
9825 ("libsoup" ,libsoup)
9826 ("telepathy-glib" ,telepathy-glib)
9827 ("telepathy-logger" ,telepathy-logger)))
9828 (native-inputs
9829 `(("glib:bin" ,glib "bin")
9830 ("gobject-introspection" ,gobject-introspection)
9831 ("intltool" ,intltool)
9832 ("pkg-config" ,pkg-config)
9833 ("yelp-tools" ,yelp-tools)))
9834 (propagated-inputs
9835 `(("telepathy-idle" ,telepathy-idle)
9836 ("telepathy-mission-control" ,telepathy-mission-control)))
9837 (synopsis "Simple IRC Client")
9838 (description
9839 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9840 integrate seamlessly with the GNOME desktop.")
9841 (home-page "https://wiki.gnome.org/Apps/Polari")
9842 (license license:gpl2+)))