gnu: rust-numtoa-0.1: Don't hide package.
[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, 2020 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))
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.5.5")
4082 (source
4083 (origin
4084 (method url-fetch)
4085 (uri
4086 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4087 version "/geoclue-" version ".tar.bz2"))
4088 (sha256
4089 (base32
4090 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
4091 (patches (search-patches "geoclue-config.patch"))))
4092 (build-system meson-build-system)
4093 (arguments
4094 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4095 (native-inputs
4096 `(("pkg-config" ,pkg-config)
4097 ("gobject-introspection" ,gobject-introspection)
4098 ("modem-manager" ,modem-manager)
4099 ("libnotify" ,libnotify)
4100 ("gtk-doc", gtk-doc)
4101 ("intltool" ,intltool)))
4102 (inputs
4103 `(("avahi" ,avahi)
4104 ("glib:bin" ,glib "bin")
4105 ("glib-networking" ,glib-networking)
4106 ("json-glib" ,json-glib)
4107 ("libsoup" ,libsoup)))
4108 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4109 (synopsis "Geolocation service")
4110 (description "Geoclue is a D-Bus service that provides location
4111 information. The primary goal of the Geoclue project is to make creating
4112 location-aware applications as simple as possible, while the secondary goal is
4113 to ensure that no application can access location information without explicit
4114 permission from user.")
4115 (license license:gpl2+)))
4116
4117 (define-public geocode-glib
4118 (package
4119 (name "geocode-glib")
4120 (version "3.26.1")
4121 (source (origin
4122 (method url-fetch)
4123 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4124 (version-major+minor version) "/"
4125 "geocode-glib-" version ".tar.xz"))
4126 (sha256
4127 (base32
4128 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4129 (build-system meson-build-system)
4130 (arguments
4131 `(#:phases
4132 (modify-phases %standard-phases
4133 ;; The tests require a bunch of locales.
4134 (add-before 'check 'set-locales
4135 (lambda* (#:key inputs #:allow-other-keys)
4136 (setenv "GUIX_LOCPATH"
4137 (string-append (assoc-ref inputs "glibc-locales")
4138 "/lib/locale"))
4139 #t)))))
4140 (native-inputs
4141 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4142 ("glibc-locales" ,glibc-locales) ; for tests
4143 ("gettext" ,gettext-minimal)
4144 ("gobject-introspection" ,gobject-introspection)
4145 ("gtk-doc" ,gtk-doc)
4146 ("pkg-config" ,pkg-config)
4147 ("json-glib" ,json-glib)))
4148 (propagated-inputs
4149 ;; geocode-glib-1.0.pc refers to GIO.
4150 `(("glib" ,glib)))
4151 (inputs
4152 `(("libsoup" ,libsoup)))
4153 (home-page "https://github.com/GNOME/geocode-glib/")
4154 (synopsis "Geocoding and reverse-geocoding library")
4155 (description
4156 "geocode-glib is a convenience library for geocoding (finding longitude,
4157 and latitude from an address) and reverse geocoding (finding an address from
4158 coordinates) using the Nominatim service. geocode-glib caches requests for
4159 faster results and to avoid unnecessary server load.")
4160 (license license:lgpl2.0+)))
4161
4162 (define-public upower
4163 (package
4164 (name "upower")
4165 (version "0.99.11")
4166 (source (origin
4167 (method url-fetch)
4168 (uri (string-append "https://upower.freedesktop.org/releases/"
4169 "upower-" version ".tar.xz"))
4170 (sha256
4171 (base32
4172 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4173 (patches (search-patches "upower-builddir.patch"))
4174 (modules '((guix build utils)))
4175 (snippet
4176 '(begin
4177 ;; Upstream commit
4178 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4179 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4180 ;; 'dbus-configuration-directory' in (gnu services dbus)
4181 ;; expects it in etc/. Thus, move it back to its previous
4182 ;; location.
4183 (substitute* "src/Makefile.in"
4184 (("^dbusconfdir =.*$")
4185 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4186 #t))))
4187 (build-system glib-or-gtk-build-system)
4188 (arguments
4189 '( ;; The tests want to contact the system bus, which can't be done in the
4190 ;; build environment. The integration test can run, but the last of
4191 ;; the up-self-tests doesn't. Disable tests for now.
4192 #:tests? #f
4193 #:configure-flags (list "--localstatedir=/var"
4194 (string-append "--with-udevrulesdir="
4195 (assoc-ref %outputs "out")
4196 "/lib/udev/rules.d"))))
4197 (native-inputs
4198 `(("gobject-introspection" ,gobject-introspection)
4199 ("pkg-config" ,pkg-config)
4200 ("intltool" ,intltool)
4201 ("python" ,python)
4202
4203 ;; For man pages.
4204 ("libxslt" ,libxslt) ;for 'xsltproc'
4205 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4206 ("docbook-xsl" ,docbook-xsl)))
4207 (inputs
4208 `(("dbus-glib" ,dbus-glib)
4209 ("libgudev" ,libgudev)
4210 ("libusb" ,libusb)))
4211 (propagated-inputs
4212 ;; In Requires of upower-glib.pc.
4213 `(("glib" ,glib)))
4214 (home-page "https://upower.freedesktop.org/")
4215 (synopsis "System daemon for managing power devices")
4216 (description
4217 "UPower is an abstraction for enumerating power devices,
4218 listening to device events and querying history and statistics. Any
4219 application or service on the system can access the org.freedesktop.UPower
4220 service via the system message bus.")
4221 (license license:gpl2+)))
4222
4223 (define-public libgweather
4224 (package
4225 (name "libgweather")
4226 (version "3.28.3")
4227 (source (origin
4228 (method url-fetch)
4229 (uri (string-append "mirror://gnome/sources/" name "/"
4230 (version-major+minor version) "/"
4231 name "-" version ".tar.xz"))
4232 (sha256
4233 (base32
4234 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
4235 (build-system meson-build-system)
4236 (arguments
4237 `(#:tests? #f ; one of two tests requires network access
4238 #:configure-flags
4239 `(,(string-append "-Dzoneinfo_dir="
4240 (assoc-ref %build-inputs "tzdata")
4241 "/share/zoneinfo"))))
4242 (native-inputs
4243 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4244 ("gobject-introspection" ,gobject-introspection)
4245 ("pkg-config" ,pkg-config)
4246 ("vala" ,vala)
4247 ("intltool" ,intltool)))
4248 (propagated-inputs
4249 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4250 ;; libsoup.
4251 `(("gtk+" ,gtk+)
4252 ("gdk-pixbuf" ,gdk-pixbuf)
4253 ("libxml2" ,libxml2)
4254 ("libsoup" ,libsoup)
4255 ("geocode-glib" ,geocode-glib)))
4256 (inputs
4257 `(("tzdata" ,tzdata)))
4258 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4259 (synopsis "Location, time zone, and weather library for GNOME")
4260 (description
4261 "libgweather is a library to access weather information from online
4262 services for numerous locations.")
4263 (license license:gpl2+)))
4264
4265 (define-public gnome-settings-daemon
4266 (package
4267 (name "gnome-settings-daemon")
4268 (version "3.32.1")
4269 (source
4270 (origin
4271 (method url-fetch)
4272 (uri (string-append "mirror://gnome/sources/" name "/"
4273 (version-major+minor version) "/"
4274 name "-" version ".tar.xz"))
4275 (sha256
4276 (base32
4277 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
4278 (build-system meson-build-system)
4279 (arguments
4280 `(#:glib-or-gtk? #t
4281 #:configure-flags
4282 (list (string-append "-Dudev_dir="
4283 (assoc-ref %outputs "out")
4284 "/lib/udev/rules.d/")
4285 ;; Otherwise, the RUNPATH will lack the final path component.
4286 (string-append "-Dc_link_args=-Wl,-rpath="
4287 (assoc-ref %outputs "out")
4288 "/lib/gnome-settings-daemon-3.0"))
4289 ;; Color management test can't reach the colord system service.
4290 #:tests? #f))
4291 (native-inputs
4292 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4293 ("pkg-config" ,pkg-config)
4294 ("intltool" ,intltool)
4295 ("xsltproc" ,libxslt)
4296 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4297 ("docbook-xml" ,docbook-xml-4.2)
4298 ("docbook-xsl" ,docbook-xsl)))
4299 (inputs
4300 `(("alsa-lib" ,alsa-lib)
4301 ("colord" ,colord)
4302 ("libgudev" ,libgudev)
4303 ("upower" ,upower)
4304 ("polkit" ,polkit)
4305 ("pulseaudio" ,pulseaudio)
4306 ("libcanberra" ,libcanberra)
4307 ("libx11" ,libx11)
4308 ("libxtst" ,libxtst)
4309 ("lcms" ,lcms)
4310 ("libnotify" ,libnotify)
4311 ("geoclue" ,geoclue)
4312 ("geocode-glib" ,geocode-glib)
4313 ("libgweather" ,libgweather)
4314 ("gnome-desktop" ,gnome-desktop)
4315 ("nss" ,nss)
4316 ("cups" ,cups)
4317 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4318 ("libwacom" ,libwacom)
4319 ("librsvg" ,librsvg)
4320 ("xf86-input-wacom" ,xf86-input-wacom)
4321 ("wayland" ,wayland)
4322 ("network-manager" ,network-manager)))
4323 (home-page "https://www.gnome.org")
4324 (synopsis "GNOME settings daemon")
4325 (description
4326 "This package contains the daemon responsible for setting the various
4327 parameters of a GNOME session and the applications that run under it. It
4328 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4329 settings, themes, mouse settings, and startup of other daemons.")
4330 (license license:gpl2+)))
4331
4332 (define-public totem-pl-parser
4333 (package
4334 (name "totem-pl-parser")
4335 (version "3.26.3")
4336 (source (origin
4337 (method url-fetch)
4338 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4339 (version-major+minor version) "/"
4340 "totem-pl-parser-" version ".tar.xz"))
4341 (sha256
4342 (base32
4343 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4344 (build-system meson-build-system)
4345 (arguments
4346 ;; FIXME: Tests require gvfs.
4347 `(#:tests? #f))
4348 (native-inputs
4349 `(("intltool" ,intltool)
4350 ("glib" ,glib "bin")
4351 ("gobject-introspection" ,gobject-introspection)
4352 ("pkg-config" ,pkg-config)))
4353 (propagated-inputs
4354 `(("glib" ,glib)
4355 ("gmime" ,gmime)
4356 ("libarchive" ,libarchive)
4357 ("libgcrypt" ,libgcrypt)
4358 ("libxml2" ,libxml2)))
4359 (inputs
4360 `(("libsoup" ,libsoup)))
4361 (home-page "https://projects.gnome.org/totem")
4362 (synopsis "Library to parse and save media playlists for GNOME")
4363 (description "Totem-pl-parser is a GObjects-based library to parse and save
4364 playlists in a variety of formats.")
4365 (license license:lgpl2.0+)))
4366
4367 (define-public aisleriot
4368 (package
4369 (name "aisleriot")
4370 (version "3.22.9")
4371 (source (origin
4372 (method url-fetch)
4373 (uri (string-append "mirror://gnome/sources/aisleriot/"
4374 (version-major+minor version) "/"
4375 "aisleriot-" version ".tar.xz"))
4376 (sha256
4377 (base32
4378 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4379 (build-system glib-or-gtk-build-system)
4380 (arguments
4381 '(#:configure-flags
4382 '("--with-platform=gtk-only"
4383 "--with-card-theme-formats=svg")))
4384 (native-inputs
4385 `(("desktop-file-utils" ,desktop-file-utils)
4386 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4387 ("intltool" ,intltool)
4388 ("itstool" ,itstool)
4389 ("pkg-config" ,pkg-config)
4390 ("xmllint" ,libxml2)))
4391 (inputs
4392 `(("gtk+" ,gtk+)
4393 ("guile" ,guile-2.2)
4394 ("libcanberra" ,libcanberra)
4395 ("librsvg" ,librsvg)))
4396 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4397 (synopsis "Solitaire card games")
4398 (description
4399 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4400 which are easy to play with the aid of a mouse.")
4401 (license license:gpl3+)))
4402
4403 (define-public amtk
4404 (package
4405 (name "amtk")
4406 (version "5.0.1")
4407 (source (origin
4408 (method url-fetch)
4409 (uri (string-append "mirror://gnome/sources/amtk/"
4410 (version-major+minor version) "/"
4411 "amtk-" version ".tar.xz"))
4412 (sha256
4413 (base32
4414 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
4415 (build-system gnu-build-system)
4416 (arguments
4417 '(#:configure-flags '("--enable-gtk-doc")))
4418 (native-inputs
4419 `(("gobject-introspection" ,gobject-introspection)
4420 ("glib:bin" ,glib "bin") ; for glib-mkenums
4421 ("gtk-doc" ,gtk-doc)
4422 ("pkg-config" ,pkg-config)))
4423 (inputs
4424 `(("glib" ,glib)
4425 ("gtk+" ,gtk+)))
4426 (home-page "https://wiki.gnome.org/Projects/Amtk")
4427 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4428 (description
4429 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4430 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4431 both a traditional UI or a modern UI with a GtkHeaderBar.")
4432 (license license:lgpl2.1+)))
4433
4434 (define-public devhelp
4435 (package
4436 (name "devhelp")
4437 (version "3.32.0")
4438 (source (origin
4439 (method url-fetch)
4440 (uri (string-append "mirror://gnome/sources/" name "/"
4441 (version-major+minor version) "/"
4442 name "-" version ".tar.xz"))
4443 (sha256
4444 (base32
4445 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
4446 (build-system meson-build-system)
4447 (arguments
4448 '(#:glib-or-gtk? #t
4449 #:phases
4450 (modify-phases %standard-phases
4451 (add-after 'unpack 'skip-gtk-update-icon-cache
4452 ;; Don't create 'icon-theme.cache'.
4453 (lambda _
4454 (substitute* "meson_post_install.py"
4455 (("gtk-update-icon-cache") "true"))
4456 #t)))))
4457 (native-inputs
4458 `(("intltool" ,intltool)
4459 ("itstool" ,itstool)
4460 ("gobject-introspection" ,gobject-introspection)
4461 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4462 ("pkg-config" ,pkg-config)))
4463 (inputs
4464 `(("amtk" ,amtk)
4465 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4466 ("webkitgtk" ,webkitgtk)))
4467 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4468 (synopsis "API documentation browser for GNOME")
4469 (description
4470 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4471 natively with GTK-Doc (the API reference system developed for GTK+ and used
4472 throughout GNOME for API documentation).")
4473 (license license:gpl2+)))
4474
4475 (define-public cogl
4476 (package
4477 (name "cogl")
4478 (version "1.22.4")
4479 (source
4480 (origin
4481 (method url-fetch)
4482 (uri (string-append "mirror://gnome/sources/cogl/"
4483 (version-major+minor version) "/"
4484 "cogl-" version ".tar.xz"))
4485 (sha256
4486 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
4487 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4488 ;; cogl, corresponding changes may be appropriate in mutter as well.
4489 (build-system gnu-build-system)
4490 (native-inputs
4491 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4492 ("gobject-introspection" ,gobject-introspection)
4493 ;;("xorg-server" ,xorg-server) ; for the test suite
4494 ("pkg-config" ,pkg-config)))
4495 (propagated-inputs
4496 `(("glib" ,glib)
4497 ("gdk-pixbuf" ,gdk-pixbuf)
4498 ("libx11" ,libx11)
4499 ("libxext" ,libxext)
4500 ("libxfixes" ,libxfixes)
4501 ("libxdamage" ,libxdamage)
4502 ("libxcomposite" ,libxcomposite)
4503 ("libxrandr" ,libxrandr)))
4504 (inputs
4505 `(("mesa" ,mesa)
4506 ("cairo" ,cairo)
4507 ("pango" ,pango)
4508 ("gstreamer" ,gstreamer)
4509 ("gst-plugins-base" ,gst-plugins-base)
4510 ("wayland" ,wayland)))
4511 (arguments
4512 `(#:configure-flags (list "--enable-cogl-gst"
4513 "--enable-wayland-egl-platform"
4514 "--enable-wayland-egl-server"
4515
4516 ;; Arrange to pass an absolute file name to
4517 ;; dlopen for libGL.so.
4518 (string-append "--with-gl-libname="
4519 (assoc-ref %build-inputs "mesa")
4520 "/lib/libGL.so"))
4521 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4522 ;; _FontTransOpen: Unable to Parse address
4523 ;; ${prefix}/share/fonts/X11/misc/
4524 #:tests? #f
4525 #; #:phases
4526 #;
4527 (modify-phases %standard-phases
4528 (add-before 'check 'start-xorg-server
4529 (lambda* (#:key inputs #:allow-other-keys)
4530 ;; The test suite requires a running X server.
4531 (system (format #f "~a/bin/Xvfb :1 &"
4532 (assoc-ref inputs "xorg-server")))
4533 (setenv "DISPLAY" ":1")
4534 #t)))))
4535 (home-page "http://www.cogl3d.org")
4536 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4537 (description
4538 "Cogl is a small library for using 3D graphics hardware to draw pretty
4539 pictures. The API departs from the flat state machine style of OpenGL and is
4540 designed to make it easy to write orthogonal components that can render
4541 without stepping on each others toes.")
4542 (license (list license:expat ; most of the code
4543 license:bsd-3 ; cogl/cogl-point-in-poly.c
4544 license:sgifreeb2.0 ; cogl-path/tesselator/
4545 license:asl2.0)))) ; examples/android/
4546
4547 (define-public clutter
4548 (package
4549 (name "clutter")
4550 (version "1.26.2")
4551 (source
4552 (origin
4553 (method url-fetch)
4554 (uri (string-append "mirror://gnome/sources/" name "/"
4555 (version-major+minor version) "/"
4556 name "-" version ".tar.xz"))
4557 (sha256
4558 (base32
4559 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4560 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4561 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4562 (build-system gnu-build-system)
4563 (outputs '("out"
4564 "doc")) ;9 MiB of gtk-doc HTML pages
4565 (native-inputs
4566 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4567 ("gobject-introspection" ,gobject-introspection)
4568 ("pkg-config" ,pkg-config)
4569 ("xsltproc" ,libxslt)))
4570 (propagated-inputs
4571 `(("cogl" ,cogl)
4572 ("cairo" ,cairo)
4573 ("atk" ,atk)
4574 ("gtk+" ,gtk+)
4575 ("json-glib" ,json-glib)
4576 ("glib" ,glib)
4577 ("libxcomposite" ,libxcomposite)
4578 ("libxdamage" ,libxdamage)
4579 ("libxext" ,libxext)
4580 ("xinput" ,xinput)))
4581 (inputs
4582 `(("libxkbcommon" ,libxkbcommon)
4583 ("udev" ,eudev)))
4584 (arguments
4585 `(#:configure-flags (list "--enable-x11-backend=yes"
4586
4587 ;; This produces share/doc/{clutter,cally}.
4588 (string-append "--with-html-dir="
4589 (assoc-ref %outputs "doc")
4590 "/share/doc"))
4591 ;; XXX FIXME: Get test suite working. It would probably fail in the
4592 ;; same way the cogl tests fail, since clutter is based on cogl.
4593 #:tests? #f))
4594 (home-page "http://www.clutter-project.org")
4595 (synopsis "OpenGL-based interactive canvas library")
4596 (description
4597 "Clutter is an OpenGL-based interactive canvas library, designed for
4598 creating fast, mainly 2D single window applications such as media box UIs,
4599 presentations, kiosk style applications and so on.")
4600 (license license:lgpl2.0+)))
4601
4602 (define-public clutter-gtk
4603 (package
4604 (name "clutter-gtk")
4605 (version "1.8.4")
4606 (source
4607 (origin
4608 (method url-fetch)
4609 (uri (string-append "mirror://gnome/sources/" name "/"
4610 (version-major+minor version) "/"
4611 name "-" version ".tar.xz"))
4612 (sha256
4613 (base32
4614 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4615 (build-system gnu-build-system)
4616 (native-inputs
4617 `(("pkg-config" ,pkg-config)
4618 ("gobject-introspection" ,gobject-introspection)))
4619 (propagated-inputs
4620 ;; clutter-gtk.pc refers to all these.
4621 `(("clutter" ,clutter)
4622 ("gtk+" ,gtk+)))
4623 (home-page "http://www.clutter-project.org")
4624 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4625 (description
4626 "Clutter is an OpenGL-based interactive canvas library, designed for
4627 creating fast, mainly 2D single window applications such as media box UIs,
4628 presentations, kiosk style applications and so on.")
4629 (license license:lgpl2.0+)))
4630
4631 (define-public clutter-gst
4632 (package
4633 (name "clutter-gst")
4634 (version "3.0.27")
4635 (source
4636 (origin
4637 (method url-fetch)
4638 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4639 (version-major+minor version) "/"
4640 "clutter-gst-" version ".tar.xz"))
4641 (sha256
4642 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4643 (build-system gnu-build-system)
4644 (native-inputs
4645 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4646 ("pkg-config" ,pkg-config)
4647 ("gobject-introspection" ,gobject-introspection)))
4648 (inputs
4649 `(("clutter" ,clutter)
4650 ("gstreamer" ,gstreamer)
4651 ("gst-plugins-base" ,gst-plugins-base)))
4652 (home-page "http://www.clutter-project.org")
4653 (synopsis "Integration library for using GStreamer with Clutter")
4654 (description
4655 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4656 It provides a GStreamer sink to upload frames to GL and an actor that
4657 implements the ClutterGstPlayer interface using playbin. Clutter is an
4658 OpenGL-based interactive canvas library.")
4659 (license license:lgpl2.0+)))
4660
4661 (define-public libchamplain
4662 (package
4663 (name "libchamplain")
4664 (version "0.12.16")
4665 (source (origin
4666 (method url-fetch)
4667 (uri (string-append
4668 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4669 version ".tar.xz"))
4670 (sha256
4671 (base32
4672 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4673 (build-system gnu-build-system)
4674 (arguments '(#:configure-flags '("--enable-vala")))
4675 (native-inputs
4676 `(("gobject-introspection" ,gobject-introspection)
4677 ("pkg-config" ,pkg-config)
4678 ("vala" ,vala)))
4679 (propagated-inputs
4680 `(("libsoup" ,libsoup)
4681 ("sqlite" ,sqlite)
4682 ("clutter" ,clutter)
4683 ("clutter-gtk" ,clutter-gtk)
4684 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4685 ("cairo" ,cairo)
4686 ("gtk+3" ,gtk+)
4687 ("glib" ,glib)))
4688 (home-page "https://projects.gnome.org/libchamplain/")
4689 (synopsis "C library providing a ClutterActor to display maps")
4690 (description
4691 "libchamplain is a C library providing a ClutterActor to display maps.
4692 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4693 and Perl bindings are also available. It supports numerous free map sources
4694 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4695 (license license:lgpl2.1+)))
4696
4697 (define-public gom
4698 (package
4699 (name "gom")
4700 (version "0.3.2")
4701 (source
4702 (origin
4703 (method url-fetch)
4704 (uri (string-append "mirror://gnome/sources/gom/"
4705 (version-major+minor version) "/"
4706 "gom-" version ".tar.xz"))
4707 (sha256
4708 (base32
4709 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4710 (build-system gnu-build-system)
4711 (native-inputs
4712 `(("intltool" ,intltool)
4713 ("pkg-config" ,pkg-config)
4714 ("gobject-introspection" ,gobject-introspection)))
4715 (inputs
4716 `(("glib" ,glib)
4717 ("gdk-pixbuf" ,gdk-pixbuf)
4718 ("sqlite" ,sqlite)))
4719 ;; XXX TODO: Figure out how to run the test suite.
4720 (arguments `(#:tests? #f))
4721 (home-page "https://wiki.gnome.org/Projects/Gom")
4722 (synopsis "Object mapper from GObjects to SQLite")
4723 (description
4724 "Gom provides an object mapper from GObjects to SQLite. It helps you
4725 write applications that need to store structured data as well as make complex
4726 queries upon that data.")
4727 (license license:lgpl2.1+)))
4728
4729 (define-public libgnome-games-support
4730 (package
4731 (name "libgnome-games-support")
4732 (version "1.4.4")
4733 (source (origin
4734 (method url-fetch)
4735 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4736 (version-major+minor version) "/"
4737 "libgnome-games-support-" version ".tar.xz"))
4738 (sha256
4739 (base32
4740 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4741 (build-system gnu-build-system)
4742 (arguments
4743 '(#:phases
4744 (modify-phases %standard-phases
4745 (add-before 'check 'pre-check
4746 (lambda _
4747 ;; Tests require a writable HOME.
4748 (setenv "HOME" (getcwd))
4749 #t)))))
4750 (native-inputs
4751 `(("intltool" ,intltool)
4752 ("pkg-config" ,pkg-config)
4753 ("vala" ,vala)))
4754 (propagated-inputs
4755 ;; Required by libgnome-games-support-1.0.pc
4756 `(("gtk+" ,gtk+)
4757 ("libgee" ,libgee)))
4758 (home-page "https://www.gnome.org/")
4759 (synopsis "Useful functionality shared among GNOME games")
4760 (description
4761 "libgnome-games-support is a small library intended for internal use by
4762 GNOME Games, but it may be used by others.")
4763 (license license:lgpl3+)))
4764
4765 (define-public gnome-klotski
4766 (package
4767 (name "gnome-klotski")
4768 (version "3.32.0")
4769 (source (origin
4770 (method url-fetch)
4771 (uri (string-append "mirror://gnome/sources/" name "/"
4772 (version-major+minor version) "/"
4773 name "-" version ".tar.xz"))
4774 (sha256
4775 (base32
4776 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4777 (build-system meson-build-system)
4778 (arguments
4779 '(#:glib-or-gtk? #t
4780 #:phases
4781 (modify-phases %standard-phases
4782 (add-after 'unpack 'skip-gtk-update-icon-cache
4783 ;; Don't create 'icon-theme.cache'.
4784 (lambda _
4785 (substitute* "build-aux/meson_post_install.py"
4786 (("gtk-update-icon-cache") (which "true")))
4787 #t)))))
4788 (native-inputs
4789 `(("desktop-file-utils" ,desktop-file-utils)
4790 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4791 ("intltool" ,intltool)
4792 ("itstool" ,itstool)
4793 ("pkg-config" ,pkg-config)
4794 ("vala" ,vala)
4795 ("xmllint" ,libxml2)))
4796 (inputs
4797 `(("gtk+" ,gtk+)
4798 ("libgnome-games-support" ,libgnome-games-support)
4799 ("librsvg" ,librsvg)))
4800 (home-page "https://wiki.gnome.org/Apps/Klotski")
4801 (synopsis "Sliding block puzzles")
4802 (description
4803 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4804 the patterned block to the area bordered by green markers. To do so, you will
4805 need to slide other blocks out of the way. Complete each puzzle in as few moves
4806 as possible!")
4807 (license license:gpl2+)))
4808
4809 (define-public grilo
4810 (package
4811 (name "grilo")
4812 (version "0.3.10")
4813 (source
4814 (origin
4815 (method url-fetch)
4816 (uri (string-append "mirror://gnome/sources/" name "/"
4817 (version-major+minor version) "/"
4818 name "-" version ".tar.xz"))
4819 (sha256
4820 (base32
4821 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4822 (build-system meson-build-system)
4823 (native-inputs
4824 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4825 ("intltool" ,intltool)
4826 ("pkg-config" ,pkg-config)
4827 ("gobject-introspection" ,gobject-introspection)
4828 ("gtk-doc" ,gtk-doc)
4829 ("vala" ,vala)))
4830 (inputs
4831 `(("cyrus-sasl" ,cyrus-sasl)
4832 ("glib" ,glib)
4833 ("gtk+" ,gtk+)
4834 ("libxml2" ,libxml2)
4835 ("liboauth" ,liboauth)
4836 ("libsoup" ,libsoup)
4837 ("totem-pl-parser" ,totem-pl-parser)))
4838 (native-search-paths
4839 (list (search-path-specification
4840 (variable "GRL_PLUGIN_PATH")
4841 (files (list (string-append "lib/grilo-"
4842 (version-major+minor version)))))))
4843 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4844 (synopsis "Framework for discovering and browsing media")
4845 (description
4846 "Grilo is a framework focused on making media discovery and browsing easy
4847 for application developers.")
4848 (license license:lgpl2.1+)))
4849
4850 (define-public grilo-plugins
4851 (package
4852 (name "grilo-plugins")
4853 (version "0.3.10")
4854 (source
4855 (origin
4856 (method url-fetch)
4857 (uri (string-append "mirror://gnome/sources/" name "/"
4858 (version-major+minor version) "/"
4859 name "-" version ".tar.xz"))
4860 (sha256
4861 (base32
4862 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4863 (build-system meson-build-system)
4864 (native-inputs
4865 `(("gettext" ,gettext-minimal)
4866 ("glib:bin" ,glib "bin")
4867 ("gtk+:bin" ,gtk+ "bin")
4868 ("itstool" ,itstool)
4869 ("pkg-config" ,pkg-config)))
4870 ;; TODO: ahavi, gstreamer
4871 (inputs
4872 `(("grilo" ,grilo)
4873 ;("gmime" ,gmime) ; unused
4874 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4875 ("gom" ,gom)
4876 ;("gssdp" ,gssdp) ; unused
4877 ;("gupnp" ,gupnp) ; unused
4878 ;("gupnp-av" ,gupnp-av) ; unused
4879 ("json-glib" ,json-glib)
4880 ("avahi" ,avahi)
4881 ("libgdata" ,libgdata)
4882 ("libmediaart" ,libmediaart)
4883 ;("librest" ,rest) ; unused
4884 ("libsoup" ,libsoup)
4885 ("totam-pl-parser" ,totem-pl-parser)
4886 ("tracker" ,tracker))) ; unused because it's too old
4887 (arguments
4888 `(#:glib-or-gtk? #t
4889 ;;Disable lua-factory as it needs missing dependencies
4890 #:configure-flags '("-Denable-lua-factory=no")))
4891 (home-page "https://live.gnome.org/Grilo")
4892 (synopsis "Plugins for the Grilo media discovery library")
4893 (description
4894 "Grilo is a framework focused on making media discovery and browsing easy
4895 for application developers. This package provides plugins for common media
4896 discovery protocols.")
4897 (license license:lgpl2.1+)))
4898
4899 (define-public totem
4900 (package
4901 (name "totem")
4902 (version "3.32.1")
4903 (source
4904 (origin
4905 (method url-fetch)
4906 (uri (string-append "mirror://gnome/sources/" name "/"
4907 (version-major+minor version) "/"
4908 name "-" version ".tar.xz"))
4909 (sha256
4910 (base32
4911 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
4912 (build-system meson-build-system)
4913 (native-inputs
4914 `(("pkg-config" ,pkg-config)
4915 ("desktop-file-utils" ,desktop-file-utils)
4916 ("gobject-introspection" ,gobject-introspection)
4917 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4918 ("intltool" ,intltool)
4919 ("itstool" ,itstool)
4920 ("xmllint" ,libxml2)
4921 ("python-pylint" ,python-pylint)
4922 ("xorg-server" ,xorg-server-for-tests)))
4923 (propagated-inputs
4924 `(("dconf" ,dconf)))
4925 (inputs
4926 `(("gtk+" ,gtk+)
4927 ("gdk-pixbuf" ,gdk-pixbuf)
4928 ("atk" ,atk)
4929 ("cairo" ,cairo)
4930 ("dbus-glib" ,dbus-glib)
4931 ("clutter" ,clutter)
4932 ("clutter-gtk" ,clutter-gtk)
4933 ("clutter-gst" ,clutter-gst)
4934 ("xorgproto" ,xorgproto)
4935 ("libxxf86vm" ,libxxf86vm)
4936 ("libxtst" ,libxtst)
4937 ("libxrandr" ,libxrandr)
4938 ("libxml2" ,libxml2)
4939 ("libsoup" ,libsoup)
4940 ("libpeas" ,libpeas)
4941 ("librsvg" ,librsvg)
4942 ("lirc" ,lirc)
4943 ("gnome-desktop" ,gnome-desktop)
4944 ("gstreamer" ,gstreamer)
4945 ("gst-plugins-base" ,gst-plugins-base)
4946 ("gst-plugins-good" ,gst-plugins-good)
4947 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4948 ("adwaita-icon-theme" ,adwaita-icon-theme)
4949 ("python" ,python)
4950 ("python-pygobject" ,python-pygobject)
4951 ("totem-pl-parser" ,totem-pl-parser)
4952 ("grilo" ,grilo)
4953 ("grilo-plugins" ,grilo-plugins)
4954 ("vala" ,vala)))
4955 (arguments
4956 `(#:glib-or-gtk? #t
4957
4958 ;; Disable automatic GStreamer plugin installation via PackageKit and
4959 ;; all that.
4960 #:configure-flags '("-D" "enable-easy-codec-installation=no"
4961
4962 ;; Do not build .a files for the plugins, it's
4963 ;; completely useless. This saves 2 MiB.
4964 "--default-library" "shared")
4965 #:phases
4966 (modify-phases %standard-phases
4967 (add-after 'unpack 'skip-gtk-update-icon-cache
4968 ;; Don't create 'icon-theme.cache'.
4969 (lambda _
4970 (substitute* "meson_post_install.py"
4971 (("gtk-update-icon-cache") "true"))
4972 #t))
4973 (add-before
4974 'install 'disable-cache-generation
4975 (lambda _
4976 (setenv "DESTDIR" "/")
4977 #t))
4978 (add-before
4979 'check 'pre-check
4980 (lambda _
4981 ;; Tests require a running X server.
4982 (system "Xvfb :1 &")
4983 (setenv "DISPLAY" ":1")
4984 #t))
4985 (add-after
4986 'install 'wrap-totem
4987 (lambda* (#:key inputs outputs #:allow-other-keys)
4988 (let ((out (assoc-ref outputs "out"))
4989 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4990 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4991 (wrap-program (string-append out "/bin/totem")
4992 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4993 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4994 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4995 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4996 #t)))))
4997 (home-page "https://wiki.gnome.org/Apps/Videos")
4998 (synopsis "Simple media player for GNOME based on GStreamer")
4999 (description "Totem is a simple yet featureful media player for GNOME
5000 which can read a large number of file formats.")
5001 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5002 ;; to be used and distributed together with GStreamer and Totem. See
5003 ;; file://COPYING in the source distribution for details.
5004 (license license:gpl2+)))
5005
5006 (define-public rhythmbox
5007 (package
5008 (name "rhythmbox")
5009 (version "3.4.3")
5010 (source (origin
5011 (method url-fetch)
5012 (uri (string-append "mirror://gnome/sources/" name "/"
5013 (version-major+minor version) "/"
5014 name "-" version ".tar.xz"))
5015 (sha256
5016 (base32
5017 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
5018 (build-system glib-or-gtk-build-system)
5019 (arguments
5020 `(#:configure-flags
5021 (list "--enable-lirc"
5022 "--enable-python"
5023 "--enable-vala"
5024 "--with-brasero"
5025 "--with-gudev"
5026 "--with-libsecret")
5027 #:phases
5028 (modify-phases %standard-phases
5029 (add-after
5030 'install 'wrap-rhythmbox
5031 (lambda* (#:key inputs outputs #:allow-other-keys)
5032 (let ((out (assoc-ref outputs "out"))
5033 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5034 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5035 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5036 (python-path (getenv "PYTHONPATH")))
5037 (wrap-program (string-append out "/bin/rhythmbox")
5038 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5039 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5040 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5041 `("PYTHONPATH" ":" prefix (,python-path))))
5042 #t)))))
5043 (propagated-inputs
5044 `(("dconf" ,dconf)))
5045 (native-inputs
5046 `(("itstool" ,itstool)
5047 ("intltool" ,intltool)
5048 ("glib" ,glib "bin")
5049 ("gobject-introspection" ,gobject-introspection)
5050 ("desktop-file-utils" ,desktop-file-utils)
5051 ("pkg-config" ,pkg-config)
5052 ("xmllint" ,libxml2)))
5053 (inputs
5054 `(("json-glib" ,json-glib)
5055 ("tdb" ,tdb)
5056 ("gnome-desktop" ,gnome-desktop)
5057 ("python" ,python)
5058 ("python-pygobject" ,python2-pygobject)
5059 ("vala" ,vala)
5060 ("gmime" ,gmime)
5061 ("adwaita-icon-theme" ,adwaita-icon-theme)
5062 ("grilo" ,grilo)
5063 ("grilo-plugins" ,grilo-plugins)
5064 ("gstreamer" ,gstreamer)
5065 ("gst-plugins-base" ,gst-plugins-base)
5066 ("gst-plugins-good" ,gst-plugins-good)
5067 ("totem-pl-parser" ,totem-pl-parser)
5068 ("libgudev" ,libgudev)
5069 ;;("libmtp" ,libmtp) FIXME: Not detected
5070 ("libsecret" ,libsecret)
5071 ("libsoup" ,libsoup)
5072 ("libnotify" ,libnotify)
5073 ("libpeas" ,libpeas)
5074 ("lirc" ,lirc)
5075 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5076 ;;("clutter" ,clutter)
5077 ;;("clutter-gtk" ,clutter-gtk)
5078 ;;("clutter-gst" ,clutter-gst)
5079 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5080 ("atk" ,atk)
5081 ("pango" ,pango)
5082 ("gtk+" ,gtk+)
5083 ;; TODO:
5084 ;; * libgpod
5085 ;; * mx
5086 ("brasero" ,brasero)))
5087 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5088 (synopsis "Music player for GNOME")
5089 (description "Rhythmbox is a music playing application for GNOME. It
5090 supports playlists, song ratings, and any codecs installed through gstreamer.")
5091 (license license:gpl2+)))
5092
5093 (define-public eog
5094 (package
5095 (name "eog")
5096 (version "3.32.2")
5097 (source (origin
5098 (method url-fetch)
5099 (uri (string-append "mirror://gnome/sources/" name "/"
5100 (version-major+minor version) "/"
5101 name "-" version ".tar.xz"))
5102 (sha256
5103 (base32
5104 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
5105 (build-system meson-build-system)
5106 (arguments
5107 `(#:configure-flags
5108 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5109 (list (string-append "-Dc_link_args=-Wl,-rpath="
5110 (assoc-ref %outputs "out") "/lib/eog"))
5111 #:phases
5112 (modify-phases %standard-phases
5113 (add-after 'unpack 'skip-gtk-update-icon-cache
5114 ;; Don't create 'icon-theme.cache'.
5115 (lambda _
5116 (substitute* "meson_post_install.py"
5117 (("gtk-update-icon-cache") "true"))
5118 #t))
5119 (add-after 'install 'wrap-eog
5120 (lambda* (#:key outputs #:allow-other-keys)
5121 (let ((out (assoc-ref outputs "out"))
5122 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5123 (wrap-program (string-append out "/bin/eog")
5124 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5125 #t)))))
5126 (propagated-inputs
5127 `(("dconf" ,dconf)))
5128 (native-inputs
5129 `(("intltool" ,intltool)
5130 ("itstool" ,itstool)
5131 ("glib" ,glib "bin")
5132 ("gobject-introspection" ,gobject-introspection)
5133 ("pkg-config" ,pkg-config)
5134 ("xmllint" ,libxml2)))
5135 (inputs
5136 `(("gnome-desktop" ,gnome-desktop)
5137 ("shared-mime-info" ,shared-mime-info)
5138 ("adwaita-icon-theme" ,adwaita-icon-theme)
5139 ("exempi" ,exempi)
5140 ("lcms" ,lcms)
5141 ("libexif" ,libexif)
5142 ("libpeas" ,libpeas)
5143 ("libjpeg" ,libjpeg)
5144 ("librsvg" ,librsvg)
5145 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5146 ("gtk+" ,gtk+)))
5147 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5148 (synopsis "GNOME image viewer")
5149 (description "Eye of GNOME is the GNOME image viewer. It
5150 supports image conversion, rotation, and slideshows.")
5151 (license license:gpl2+)))
5152
5153 (define-public eog-plugins
5154 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5155 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5156 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5157 ;; 'XDG_DATA_DIRS' appropriately set.
5158 (package
5159 (name "eog-plugins")
5160 (version "3.26.4")
5161 (source (origin
5162 (method url-fetch)
5163 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5164 (version-major+minor version) "/"
5165 "eog-plugins-" version ".tar.xz"))
5166 (sha256
5167 (base32
5168 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5169 (build-system gnu-build-system)
5170 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5171 (synopsis "Extensions for the Eye of GNOME image viewer")
5172 (native-inputs
5173 `(("pkg-config" ,pkg-config)
5174 ("gettext" ,gnu-gettext)))
5175 (inputs
5176 `(("eog" ,eog)
5177 ("glib" ,glib)
5178 ("gtk+" ,gtk+)
5179 ("libpeas" ,libpeas)
5180 ("libexif" ,libexif)
5181 ("libchamplain" ,libchamplain)))
5182 (description
5183 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5184 notably:
5185
5186 @itemize
5187 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5188 @item @dfn{Map}, which displays a map of where the picture was taken on the
5189 side panel;
5190 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5191 @end itemize\n")
5192
5193 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5194 ;; long suspicious byte stream that goes to a
5195 ;; ".gresource.eog_postasa_plugin" ELF section.
5196 (license license:gpl2+)))
5197
5198 (define-public libgudev
5199 (package
5200 (name "libgudev")
5201 (version "232")
5202 (source (origin
5203 (method url-fetch)
5204 (uri (string-append "mirror://gnome/sources/" name "/"
5205 version "/" name "-" version ".tar.xz"))
5206 (sha256
5207 (base32
5208 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5209 (build-system gnu-build-system)
5210 (arguments
5211 '(#:configure-flags
5212 ;; umockdev depends on libgudev.
5213 (list "--disable-umockdev")))
5214 (native-inputs
5215 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5216 ("gobject-introspection" ,gobject-introspection)
5217 ("pkg-config" ,pkg-config)))
5218 (propagated-inputs
5219 `(("glib" ,glib))) ; required by gudev-1.0.pc
5220 (inputs
5221 `(("udev" ,eudev)))
5222 (home-page "https://wiki.gnome.org/Projects/libgudev")
5223 (synopsis "GObject bindings for libudev")
5224 (description
5225 "This library provides GObject bindings for libudev. It was originally
5226 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5227 (license license:lgpl2.1+)))
5228
5229 (define-public gvfs
5230 (package
5231 (name "gvfs")
5232 (version "1.40.1")
5233 (source (origin
5234 (method url-fetch)
5235 (uri (string-append "mirror://gnome/sources/gvfs/"
5236 (version-major+minor version) "/"
5237 "gvfs-" version ".tar.xz"))
5238 (sha256
5239 (base32
5240 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5241 (build-system meson-build-system)
5242 (arguments
5243 '(#:glib-or-gtk? #t
5244 #:configure-flags
5245 (list "-Dsystemduserunitdir=no"
5246 "-Dtmpfilesdir=no"
5247 ;; Otherwise, the RUNPATH will lack the final path component.
5248 (string-append "-Dc_link_args=-Wl,-rpath="
5249 (assoc-ref %outputs "out") "/lib/gvfs"))))
5250 (native-inputs
5251 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5252 ("gettext" ,gettext-minimal)
5253 ("gtk-doc" ,gtk-doc)
5254 ("pkg-config" ,pkg-config)
5255 ("xsltproc" ,libxslt)))
5256 (inputs
5257 `(("avahi" ,avahi)
5258 ("docbook-xml" ,docbook-xml-4.2)
5259 ("docbook-xsl" ,docbook-xsl)
5260 ("dbus" ,dbus)
5261 ("elogind" ,elogind)
5262 ("fuse" ,fuse)
5263 ("gcr" ,gcr)
5264 ("glib" ,glib)
5265 ("gnome-online-accounts" ,gnome-online-accounts)
5266 ("libarchive" ,libarchive)
5267 ("libbluray" ,libbluray)
5268 ("libcap" ,libcap)
5269 ("libcdio-paranoia" ,libcdio-paranoia)
5270 ("libgcrypt" ,libgcrypt)
5271 ("libgdata" ,libgdata)
5272 ("libgphoto2" ,libgphoto2)
5273 ("libgudev" ,libgudev)
5274 ("libimobiledevice" ,libimobiledevice)
5275 ("libmtp" ,libmtp)
5276 ("libnfs" ,libnfs)
5277 ("libsecret" ,libsecret)
5278 ("libsmbclient" ,samba)
5279 ("libsoup" ,libsoup)
5280 ("libxml2" ,libxml2)
5281 ("openssh" ,openssh)
5282 ("polkit" ,polkit)
5283 ("udisks" ,udisks)))
5284 (home-page "https://wiki.gnome.org/gvfs/")
5285 (synopsis "Userspace virtual file system for GIO")
5286 (description
5287 "GVFS is a userspace virtual file system designed to work with the I/O
5288 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5289 to all applications using the GIO API. It also supports exposing the GVFS
5290 mounts to non-GIO applications using FUSE.
5291
5292 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5293 DAV, and others.")
5294 (license license:lgpl2.0+)))
5295
5296 (define-public gusb
5297 (package
5298 (name "gusb")
5299 (version "0.3.0")
5300 (source (origin
5301 (method git-fetch)
5302 (uri (git-reference
5303 (url "https://github.com/hughsie/libgusb.git")
5304 (commit version)))
5305 (file-name (git-file-name name version))
5306 (sha256
5307 (base32
5308 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5309 (build-system meson-build-system)
5310 (native-inputs
5311 `(("gobject-introspection" ,gobject-introspection)
5312 ("pkg-config" ,pkg-config)
5313 ("vala" ,vala)
5314 ("gtk-doc" ,gtk-doc)))
5315 (propagated-inputs
5316 ;; Both of these are required by gusb.pc.
5317 `(("glib" ,glib)
5318 ("libusb" ,libusb)))
5319 (arguments
5320 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5321 (home-page "https://github.com/hughsie/libgusb")
5322 (synopsis "GLib binding for libusb1")
5323 (description
5324 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5325 asynchronous control, bulk and interrupt transfers with proper cancellation
5326 and integration into a mainloop. This makes it easy to integrate low level
5327 USB transfers with your high-level application or system daemon.")
5328 (license license:lgpl2.1+)))
5329
5330 (define-public simple-scan
5331 (package
5332 (name "simple-scan")
5333 (version "3.34.2")
5334 (source
5335 (origin
5336 (method url-fetch)
5337 (uri (string-append "mirror://gnome/sources/simple-scan/"
5338 (version-major+minor version) "/"
5339 "simple-scan-" version ".tar.xz"))
5340 (sha256
5341 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
5342 (build-system meson-build-system)
5343 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5344 (arguments
5345 '(#:glib-or-gtk? #t))
5346 (inputs
5347 `(("gtk" ,gtk+)
5348 ("zlib" ,zlib)
5349 ("cairo" ,cairo)
5350 ("colord" ,colord)
5351 ("gdk-pixbuf" ,gdk-pixbuf)
5352 ("gusb" ,gusb)
5353 ("libsane" ,sane-backends)))
5354 (native-inputs
5355 `(("gettext" ,gettext-minimal)
5356 ("itstool" ,itstool)
5357 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5358 ("pkg-config" ,pkg-config)
5359 ("vala" ,vala)
5360 ("xmllint" ,libxml2)))
5361 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5362 (synopsis "Document and image scanner")
5363 (description
5364 "Document Scanner is an easy-to-use application that lets you connect your
5365 scanner and quickly capture images and documents in an appropriate format. It
5366 supports any scanner for which a suitable SANE driver is available, which is
5367 almost all of them.")
5368 (license license:gpl3+)))
5369
5370 (define-public eolie
5371 (package
5372 (name "eolie")
5373 (version "0.9.63")
5374 (source (origin
5375 (method url-fetch)
5376 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
5377 "uploads/d42b466752729a0d3fa828a721e25043/"
5378 "eolie-" version ".tar.xz"))
5379 (sha256
5380 (base32
5381 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
5382 (build-system meson-build-system)
5383 (arguments
5384 `(#:glib-or-gtk? #t
5385 #:phases
5386 (modify-phases %standard-phases
5387 (add-after 'unpack 'skip-gtk-update-icon-cache
5388 ;; Don't create 'icon-theme.cache'.
5389 (lambda _
5390 (substitute* "meson_post_install.py"
5391 (("gtk-update-icon-cache") "true"))
5392 #t))
5393 (add-after 'wrap 'wrap-more
5394 (lambda* (#:key inputs outputs #:allow-other-keys)
5395 (let* ((out (assoc-ref outputs "out"))
5396 ;; These libraries must be on LD_LIBRARY_PATH.
5397 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5398 "atk" "gtk+" "gsettings-desktop-schemas"
5399 "gobject-introspection"))
5400 (path (string-join
5401 (map (lambda (lib)
5402 (string-append (assoc-ref inputs lib) "/lib"))
5403 libs)
5404 ":")))
5405 (wrap-program (string-append out "/bin/eolie")
5406 `("LD_LIBRARY_PATH" ":" prefix (,path))
5407 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5408 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5409 #t)))))
5410 (native-inputs
5411 `(("intltool" ,intltool)
5412 ("itstool" ,itstool)
5413 ("pkg-config" ,pkg-config)
5414 ("python" ,python)
5415 ("glib:bin" ,glib "bin")))
5416 (inputs
5417 `(("gobject-introspection" ,gobject-introspection)
5418 ("glib-networking" ,glib-networking)
5419 ("cairo" ,cairo)
5420 ("gtk+" ,gtk+)
5421 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5422 ("python" ,python-wrapper)
5423 ("python-dateutil" ,python-dateutil)
5424 ("python-pyfxa" ,python-pyfxa)
5425 ("python-pygobject" ,python-pygobject)
5426 ("python-pycairo" ,python-pycairo)
5427 ("python-pycrypto" ,python-pycrypto)
5428 ("libsecret" ,libsecret)
5429 ("gtkspell3" ,gtkspell3)
5430 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5431 ("webkitgtk" ,webkitgtk)))
5432 (home-page "https://wiki.gnome.org/Apps/Eolie")
5433 (synopsis "Web browser for GNOME")
5434 (description
5435 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5436 a secret password store, an adblocker, and a modern UI.")
5437 (license license:gpl3+)))
5438
5439 (define-public epiphany
5440 (package
5441 (name "epiphany")
5442 (version "3.32.5")
5443 (source (origin
5444 (method url-fetch)
5445 (uri (string-append "mirror://gnome/sources/epiphany/"
5446 (version-major+minor version) "/"
5447 "epiphany-" version ".tar.xz"))
5448 (sha256
5449 (base32
5450 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
5451
5452 (build-system meson-build-system)
5453 (arguments
5454 ;; FIXME: tests run under Xvfb, but fail with:
5455 ;; /src/bookmarks/ephy-bookmarks/create:
5456 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5457 ;; subsystem
5458 ;; FAIL
5459 '(#:tests? #f
5460 #:glib-or-gtk? #t
5461 #:phases
5462 (modify-phases %standard-phases
5463 (add-after 'unpack 'skip-gtk-update-icon-cache
5464 ;; Don't create 'icon-theme.cache'.
5465 (lambda _
5466 (substitute* "post_install.py"
5467 (("gtk-update-icon-cache") "true"))
5468 #t)))
5469 #:configure-flags
5470 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5471 (list (string-append "-Dc_link_args=-Wl,-rpath="
5472 (assoc-ref %outputs "out") "/lib/epiphany"))))
5473 (propagated-inputs
5474 `(("dconf" ,dconf)))
5475 (native-inputs
5476 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5477 ("glib:bin" ,glib "bin") ; for glib-mkenums
5478 ("intltool" ,intltool)
5479 ("itstool" ,itstool)
5480 ("pkg-config" ,pkg-config)
5481 ("xmllint" ,libxml2)))
5482 (inputs
5483 `(("avahi" ,avahi)
5484 ("gcr" ,gcr)
5485 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5486 ("glib-networking" ,glib-networking)
5487 ("gnome-desktop" ,gnome-desktop)
5488 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5489 ("json-glib" ,json-glib)
5490 ("iso-codes" ,iso-codes)
5491 ("libdazzle" ,libdazzle)
5492 ("libnotify" ,libnotify)
5493 ("libsecret" ,libsecret)
5494 ("libxslt" ,libxslt)
5495 ("nettle" ,nettle) ; for hogweed
5496 ("sqlite" ,sqlite)
5497 ("webkitgtk" ,webkitgtk)))
5498 (home-page "https://wiki.gnome.org/Apps/Web")
5499 (synopsis "GNOME web browser")
5500 (description
5501 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5502 principles are simplicity and standards compliance.")
5503 (license license:gpl2+)))
5504
5505 (define-public d-feet
5506 (package
5507 (name "d-feet")
5508 (version "0.3.14")
5509 (source (origin
5510 (method url-fetch)
5511 (uri (string-append "mirror://gnome/sources/" name "/"
5512 (version-major+minor version) "/"
5513 name "-" version ".tar.xz"))
5514 (sha256
5515 (base32
5516 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5517 (build-system glib-or-gtk-build-system)
5518 (arguments
5519 '(#:out-of-source? #f ; tests need to run in the source directory.
5520 #:phases
5521 (modify-phases %standard-phases
5522 (add-before
5523 'check 'pre-check
5524 (lambda _
5525 ;; The test suite requires a running X server.
5526 (system "Xvfb :1 &")
5527 (setenv "DISPLAY" ":1")
5528 ;; Don't fail on missing '/etc/machine-id'.
5529 (setenv "DBUS_FATAL_WARNINGS" "0")
5530 ;; tests.py and window.py don't meet E402:
5531 ;; E402 module level import not at top of file
5532 (substitute* "src/tests/Makefile"
5533 (("--ignore=E123") "--ignore=E123,E402"))
5534 #t))
5535 (add-after
5536 'install 'wrap-program
5537 (lambda* (#:key outputs #:allow-other-keys)
5538 (let ((prog (string-append (assoc-ref outputs "out")
5539 "/bin/d-feet")))
5540 (wrap-program prog
5541 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5542 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5543 #t))))))
5544 (native-inputs
5545 `(("intltool" ,intltool)
5546 ("itstool" ,itstool)
5547 ("pkg-config" ,pkg-config)
5548 ("python-pep8" ,python-pep8)
5549 ("xmllint" ,libxml2)
5550 ("xorg-server" ,xorg-server-for-tests)))
5551 (inputs
5552 `(("gobject-introspection" ,gobject-introspection)
5553 ("gtk+" ,gtk+)
5554 ("python" ,python-wrapper)
5555 ("hicolor-icon-theme" ,hicolor-icon-theme)
5556 ("python-pygobject" ,python-pygobject)))
5557 (home-page "https://wiki.gnome.org/Apps/DFeet")
5558 (synopsis "D-Bus debugger")
5559 (description
5560 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5561 of running programs and invoke methods on those interfaces.")
5562 (license license:gpl2+)))
5563
5564 (define-public yelp-xsl
5565 (package
5566 (name "yelp-xsl")
5567 (version "3.32.1")
5568 (source (origin
5569 (method url-fetch)
5570 (uri (string-append "mirror://gnome/sources/" name "/"
5571 (version-major+minor version) "/"
5572 name "-" version ".tar.xz"))
5573 (sha256
5574 (base32
5575 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
5576 (build-system gnu-build-system)
5577 (native-inputs
5578 `(("intltool" ,intltool)
5579 ("itstool" ,itstool)
5580 ("xmllint" ,libxml2)))
5581 (home-page "https://wiki.gnome.org/Apps/Yelp")
5582 (synopsis "XSL stylesheets for Yelp")
5583 (description
5584 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5585 to format Docbook and Mallard documents.")
5586 (license license:gpl2+)))
5587
5588 (define-public yelp
5589 (package
5590 (name "yelp")
5591 (version "3.32.2")
5592 (source (origin
5593 (method url-fetch)
5594 (uri (string-append "mirror://gnome/sources/" name "/"
5595 (version-major+minor version) "/"
5596 name "-" version ".tar.xz"))
5597 (sha256
5598 (base32
5599 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5600 (build-system glib-or-gtk-build-system)
5601 (native-inputs
5602 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5603 ("intltool" ,intltool)
5604 ("itstool" ,itstool)
5605 ("pkg-config" ,pkg-config)))
5606 (propagated-inputs
5607 `(("dconf" ,dconf)))
5608 (inputs
5609 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5610 ("libxslt" ,libxslt)
5611 ("sqlite" ,sqlite)
5612 ("webkitgtk" ,webkitgtk)
5613 ("yelp-xsl" ,yelp-xsl)))
5614 (home-page "https://wiki.gnome.org/Apps/Yelp")
5615 (synopsis "GNOME help browser")
5616 (description
5617 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5618 man, info, and HTML documents. It can locate documents according to the
5619 freedesktop.org help system specification.")
5620 (license license:gpl2+)))
5621
5622 (define-public yelp-tools
5623 (package
5624 (name "yelp-tools")
5625 (version "3.28.0")
5626 (source (origin
5627 (method url-fetch)
5628 (uri (string-append "mirror://gnome/sources/" name "/"
5629 (version-major+minor version) "/"
5630 name "-" version ".tar.xz"))
5631 (sha256
5632 (base32
5633 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
5634 (build-system gnu-build-system)
5635 (native-inputs
5636 `(("pkg-config" ,pkg-config)))
5637 (propagated-inputs
5638 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5639 `(("itstool" ,itstool)
5640 ("xmllint" ,libxml2)
5641 ("xsltproc" ,libxslt)))
5642 (inputs
5643 `(("yelp-xsl" ,yelp-xsl)))
5644 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5645 (synopsis "Yelp documentation tools")
5646 (description
5647 "Yelp-tools is a collection of scripts and build utilities to help create,
5648 manage, and publish documentation for Yelp and the web. Most of the heavy
5649 lifting is done by packages like yelp-xsl and itstool. This package just
5650 wraps things up in a developer-friendly way.")
5651 (license license:gpl2+)))
5652
5653 (define-public yelp-tools/fixed
5654 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5655 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5656 ;; the next rebuild cycle.
5657 (hidden-package
5658 (package/inherit
5659 yelp-tools
5660 (propagated-inputs
5661 `(("itstool" ,itstool/fixed)
5662 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5663
5664 (define-public libgee
5665 (package
5666 (name "libgee")
5667 (version "0.20.2")
5668 (source (origin
5669 (method url-fetch)
5670 (uri (string-append "mirror://gnome/sources/libgee/"
5671 (version-major+minor version) "/"
5672 "libgee-" version ".tar.xz"))
5673 (sha256
5674 (base32
5675 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
5676 (build-system gnu-build-system)
5677 (arguments
5678 `(#:phases
5679 (modify-phases %standard-phases
5680 (add-after 'unpack 'fix-introspection-install-dir
5681 (lambda* (#:key outputs #:allow-other-keys)
5682 (let ((out (assoc-ref outputs "out")))
5683 (substitute* "gee/Makefile.in"
5684 (("@INTROSPECTION_GIRDIR@")
5685 (string-append out "/share/gir-1.0/"))
5686 (("@INTROSPECTION_TYPELIBDIR@")
5687 (string-append out "/lib/girepository-1.0/")))))))))
5688 (native-inputs
5689 `(("glib" ,glib "bin")
5690 ("pkg-config" ,pkg-config)))
5691 (inputs
5692 `(("glib" ,glib)
5693 ("gobject-introspection" ,gobject-introspection)))
5694 (home-page "https://wiki.gnome.org/Projects/Libgee")
5695 (synopsis "GObject collection library")
5696 (description
5697 "Libgee is a utility library providing GObject-based interfaces and
5698 classes for commonly used data structures.")
5699 (license license:lgpl2.1+)))
5700
5701 (define-public gexiv2
5702 (package
5703 (name "gexiv2")
5704 (version "0.12.0")
5705 (source (origin
5706 (method url-fetch)
5707 (uri (string-append "mirror://gnome/sources/" name "/"
5708 (version-major+minor version) "/"
5709 name "-" version ".tar.xz"))
5710 (sha256
5711 (base32
5712 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5713 (build-system meson-build-system)
5714 (native-inputs
5715 `(("gcr" ,gcr)
5716 ("glib" ,glib "bin")
5717 ("pkg-config" ,pkg-config)
5718 ("vala" ,vala)))
5719 (propagated-inputs
5720 ;; Listed in "Requires" section of gexiv2.pc
5721 `(("exiv2" ,exiv2)))
5722 (inputs
5723 `(("glib" ,glib)
5724 ("gobject-introspection" ,gobject-introspection)))
5725 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5726 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5727 (description
5728 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5729 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5730 metadata in photo and video files of various formats.")
5731 (license license:gpl2+)))
5732
5733 (define-public shotwell
5734 (package
5735 (name "shotwell")
5736 (version "0.30.7")
5737 (source (origin
5738 (method url-fetch)
5739 (uri (string-append "mirror://gnome/sources/shotwell/"
5740 (version-major+minor version) "/"
5741 "shotwell-" version ".tar.xz"))
5742 (sha256
5743 (base32
5744 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
5745 (build-system meson-build-system)
5746 (arguments
5747 '(#:glib-or-gtk? #t
5748 #:phases
5749 (modify-phases %standard-phases
5750 (add-after 'unpack 'skip-gtk-update-icon-cache
5751 (lambda _
5752 (substitute* "build-aux/meson/postinstall.py"
5753 (("gtk-update-icon-cache") (which "true"))
5754 (("update-desktop-database") (which "true")))
5755 #t)))))
5756 (propagated-inputs
5757 `(("dconf" ,dconf)))
5758 (native-inputs
5759 `(("gettext" ,gettext-minimal)
5760 ("glib:bin" ,glib "bin")
5761 ("itstool" ,itstool)
5762 ("pkg-config" ,pkg-config)
5763 ("vala" ,vala)))
5764 (inputs
5765 `(("gcr" ,gcr)
5766 ("gexiv2" ,gexiv2)
5767 ("gst-plugins-base" ,gst-plugins-base)
5768 ("gstreamer" ,gstreamer)
5769 ("json-glib" ,json-glib)
5770 ("libgdata" ,libgdata)
5771 ("libgee" ,libgee)
5772 ("libgphoto2" ,libgphoto2)
5773 ("libgudev" ,libgudev)
5774 ("libraw" ,libraw)
5775 ("libsoup" ,libsoup)
5776 ("libxml2" ,libxml2)
5777 ("sqlite" ,sqlite)
5778 ("webkitgtk" ,webkitgtk)))
5779 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5780 (synopsis "Photo manager for GNOME 3")
5781 (description
5782 "Shotwell is a digital photo manager designed for the GNOME desktop
5783 environment. It allows you to import photos from disk or camera, organize
5784 them by keywords and events, view them in full-window or fullscreen mode, and
5785 share them with others via social networking and more.")
5786 (license license:lgpl2.1+)))
5787
5788 (define-public file-roller
5789 (package
5790 (name "file-roller")
5791 (version "3.32.3")
5792 (source (origin
5793 (method url-fetch)
5794 (uri (string-append "mirror://gnome/sources/file-roller/"
5795 (version-major+minor version) "/"
5796 "file-roller-" version ".tar.xz"))
5797 (sha256
5798 (base32
5799 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5800 (build-system meson-build-system)
5801 (native-inputs
5802 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5803 ("intltool" ,intltool)
5804 ("itstool" ,itstool)
5805 ("pkg-config" ,pkg-config)
5806 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5807 ("glib:bin" ,glib "bin")))
5808 ;; TODO: Add libnautilus.
5809 (inputs
5810 `(("gtk+" ,gtk+)
5811 ("gdk-pixbuf" ,gdk-pixbuf)
5812 ("json-glib" ,json-glib)
5813 ("libarchive" ,libarchive)
5814 ("libnotify" ,libnotify)
5815 ("nettle" ,nettle)
5816 ("libxml2" ,libxml2)))
5817 (synopsis "Graphical archive manager for GNOME")
5818 (description "File Roller is an archive manager for the GNOME desktop
5819 environment that allows users to view, unpack, and create compressed archives
5820 such as gzip tarballs.")
5821 (home-page "http://fileroller.sourceforge.net/")
5822 (license license:gpl2+)))
5823
5824 (define-public gnome-session
5825 (package
5826 (name "gnome-session")
5827 (version "3.32.0")
5828 (source (origin
5829 (method url-fetch)
5830 (uri (string-append "mirror://gnome/sources/" name "/"
5831 (version-major+minor version) "/"
5832 name "-" version ".tar.xz"))
5833 (sha256
5834 (base32
5835 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
5836 (arguments
5837 '(#:glib-or-gtk? #t
5838 #:phases
5839 (modify-phases %standard-phases
5840 (add-before 'configure 'pre-configure
5841 (lambda* (#:key outputs #:allow-other-keys)
5842 ;; Use elogind instead of systemd.
5843 (substitute* "meson.build"
5844 (("libsystemd-login") "libelogind")
5845 (("and libsystemd_daemon_dep.found.*") ","))
5846 (substitute* "gnome-session/gsm-systemd.c"
5847 (("#include <systemd/sd-login.h>")
5848 "#include <elogind/sd-login.h>"))
5849 ;; Remove uses of the systemd daemon.
5850 (substitute* "gnome-session/gsm-autostart-app.c"
5851 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5852 #t))
5853 (add-after 'install 'wrap-gnome-session
5854 (lambda* (#:key inputs outputs #:allow-other-keys)
5855 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5856 (let ((glib (assoc-ref inputs "glib:bin"))
5857 (out (assoc-ref outputs "out")))
5858 (wrap-program (string-append out "/bin/gnome-session")
5859 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5860 #t))))
5861
5862 #:configure-flags
5863 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5864 "-Dman=false" ; FIXME: disabled because of docbook validation error
5865 "-Dsystemd_journal=false")))
5866 (build-system meson-build-system)
5867 (native-inputs
5868 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5869 ("pkg-config" ,pkg-config)
5870 ("intltool" ,intltool)
5871 ("xsltproc" ,libxslt)
5872 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5873 ("docbook-xsl" ,docbook-xsl)
5874 ("docbook-xml" ,docbook-xml)
5875 ("xmlto" ,xmlto)))
5876 (inputs
5877 `(("elogind" ,elogind)
5878 ("gnome-desktop" ,gnome-desktop)
5879 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5880 ("gtk+" ,gtk+)
5881 ("json-glib" ,json-glib)
5882 ("libsm" ,libsm)
5883 ("libxcomposite" ,libxcomposite)
5884 ("libxtst" ,libxtst)
5885 ("mesa" ,mesa)
5886 ("upower" ,upower)
5887 ("xtrans" ,xtrans)))
5888 (synopsis "Session manager for GNOME")
5889 (description
5890 "This package contains the GNOME session manager, as well as a
5891 configuration program to choose applications starting on login.")
5892 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5893 (license license:gpl2+)))
5894
5895 (define-public gjs
5896 (package
5897 (name "gjs")
5898 (version "1.56.2")
5899 (source (origin
5900 (method url-fetch)
5901 (uri (string-append "mirror://gnome/sources/" name "/"
5902 (version-major+minor version) "/"
5903 name "-" version ".tar.xz"))
5904 (sha256
5905 (base32
5906 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
5907 (build-system gnu-build-system)
5908 (arguments
5909 '(#:phases
5910 (modify-phases %standard-phases
5911 (add-before
5912 'check 'pre-check
5913 (lambda _
5914 ;; The test suite requires a running X server.
5915 (system "Xvfb :1 &")
5916 (setenv "DISPLAY" ":1")
5917
5918 ;; For the missing /etc/machine-id.
5919 (setenv "DBUS_FATAL_WARNINGS" "0")
5920
5921 ;; Our mozjs-38 package does not compile the required Intl API
5922 ;; support for these failing tests.
5923 (substitute* "installed-tests/js/testLocale.js"
5924 ((".*toBeDefined.*") "")
5925 ((".*expect\\(datestr\\).*") ""))
5926 (substitute* "installed-tests/scripts/testCommandLine.sh"
5927 (("Valentín") "")
5928 (("☭") ""))
5929 #t)))))
5930 (native-inputs
5931 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5932 ("pkg-config" ,pkg-config)
5933 ("xmllint" ,libxml2)
5934 ;; For testing
5935 ("dbus-launch" ,dbus)
5936 ("uuidgen" ,util-linux)
5937 ("xvfb" ,xorg-server-for-tests)))
5938 (propagated-inputs
5939 ;; These are all in the Requires.private field of gjs-1.0.pc.
5940 `(("cairo" ,cairo)
5941 ("gobject-introspection" ,gobject-introspection)
5942 ("mozjs" ,mozjs-60)))
5943 (inputs
5944 `(("gtk+" ,gtk+)
5945 ("readline" ,readline)))
5946 (synopsis "Javascript bindings for GNOME")
5947 (home-page "https://live.gnome.org/Gjs")
5948 (description
5949 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5950 javascript engine and the GObject introspection framework.")
5951 (license license:gpl2+)))
5952
5953 (define-public gedit
5954 (package
5955 (name "gedit")
5956 (version "3.32.2")
5957 (source (origin
5958 (method url-fetch)
5959 (uri (string-append "mirror://gnome/sources/" name "/"
5960 (version-major+minor version) "/"
5961 name "-" version ".tar.xz"))
5962 (sha256
5963 (base32
5964 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5965 (build-system meson-build-system)
5966 (arguments
5967 `(#:glib-or-gtk? #t
5968 #:configure-flags
5969 ;; Otherwise, the RUNPATH will lack the final path component.
5970 (list (string-append "-Dc_link_args=-Wl,-rpath="
5971 (assoc-ref %outputs "out") "/lib/gedit"))
5972
5973 ;; XXX: Generated .h files are sometimes used before being built.
5974 #:parallel-build? #f
5975
5976 #:phases
5977 (modify-phases %standard-phases
5978 (add-after 'unpack 'skip-gtk-update-icon-cache
5979 ;; Don't create 'icon-theme.cache'.
5980 (lambda _
5981 (substitute* "build-aux/meson/post_install.py"
5982 (("gtk-update-icon-cache") (which "true")))
5983 #t))
5984 (add-after 'unpack 'patch-libgd-fetch
5985 (lambda* (#:key inputs #:allow-other-keys)
5986 (let ((libgd (assoc-ref inputs "libgd")))
5987 ;; Calling git is unnecessary because libgd is fetched as a
5988 ;; native input to this package.
5989 (substitute* "meson.build"
5990 ((".*git.*") ""))
5991 (copy-recursively libgd "subprojects/libgd")
5992 #t)))
5993 (add-after 'install 'wrap-gedit
5994 (lambda* (#:key inputs outputs #:allow-other-keys)
5995 (let ((out (assoc-ref outputs "out"))
5996 (gtksourceview (assoc-ref inputs "gtksourceview"))
5997 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5998 (python-path (getenv "PYTHONPATH")))
5999 (wrap-program (string-append out "/bin/gedit")
6000 ;; For plugins.
6001 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6002 `("PYTHONPATH" ":" prefix (,python-path))
6003 ;; For language-specs.
6004 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6005 "/share")))))
6006 #t)))))
6007 (propagated-inputs
6008 `(("dconf" ,dconf)))
6009 (native-inputs
6010 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6011 ("intltool" ,intltool)
6012 ("itstool" ,itstool)
6013 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6014 ("gobject-introspection" ,gobject-introspection)
6015 ("libgd"
6016 ,(origin
6017 (method git-fetch)
6018 (uri (git-reference
6019 (url "https://gitlab.gnome.org/GNOME/libgd")
6020 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6021 (file-name (git-file-name "libgd" version))
6022 (sha256
6023 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6024 ("pkg-config" ,pkg-config)))
6025 (inputs
6026 `(("glib" ,glib)
6027 ("gspell" ,gspell)
6028 ("gtk+" ,gtk+)
6029 ("gtksourceview" ,gtksourceview)
6030 ("libpeas" ,libpeas)
6031 ("libxml2" ,libxml2)
6032 ("iso-codes" ,iso-codes)
6033 ("python-pygobject" ,python-pygobject)
6034 ("python" ,python)
6035 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6036 ("libx11" ,libx11)
6037 ("vala" ,vala)
6038 ("adwaita-icon-theme" ,adwaita-icon-theme)
6039 ("libsoup" ,libsoup)
6040 ("gnome-desktop" ,gnome-desktop)))
6041 (home-page "https://wiki.gnome.org/Apps/Gedit")
6042 (synopsis "GNOME text editor")
6043 (description "While aiming at simplicity and ease of use, gedit is a
6044 powerful general purpose text editor.")
6045 (license license:gpl2+)))
6046
6047 (define-public zenity
6048 (package
6049 (name "zenity")
6050 (version "3.32.0")
6051 (source (origin
6052 (method url-fetch)
6053 (uri (string-append "mirror://gnome/sources/zenity/"
6054 (version-major+minor version) "/"
6055 "zenity-" version ".tar.xz"))
6056 (sha256
6057 (base32
6058 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6059 (build-system gnu-build-system)
6060 (native-inputs
6061 `(("gettext" ,gettext-minimal)
6062 ("itstool" ,itstool)
6063 ("pkg-config" ,pkg-config)))
6064 (inputs
6065 `(("libnotify" ,libnotify)
6066 ("webkitgtk" ,webkitgtk)))
6067 (synopsis "Display graphical dialog boxes from shell scripts")
6068 (home-page "https://www.gnome.org")
6069 (description
6070 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6071 to display dialog boxes from the commandline and shell scripts.")
6072 (license license:lgpl2.0+)))
6073
6074 (define-public mutter
6075 (package
6076 (name "mutter")
6077 (version "3.32.2")
6078 (source (origin
6079 (method url-fetch)
6080 (uri (string-append "mirror://gnome/sources/" name "/"
6081 (version-major+minor version) "/"
6082 name "-" version ".tar.xz"))
6083 (sha256
6084 (base32
6085 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
6086 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6087 ;; versions of cogl and clutter. As a result, many of the inputs,
6088 ;; propagated-inputs, and configure flags used in cogl and clutter are
6089 ;; needed here as well.
6090 (build-system meson-build-system)
6091 (arguments
6092 '(;; XXX: All mutter tests fail with the following error:
6093 ;; Settings schema 'org.gnome.mutter' is not installed
6094 #:tests? #f
6095 #:glib-or-gtk? #t
6096 #:configure-flags
6097 ;; Otherwise, the RUNPATH will lack the final path component.
6098 (list (string-append "-Dc_link_args=-Wl,-rpath="
6099 (assoc-ref %outputs "out") "/lib:"
6100 (assoc-ref %outputs "out") "/lib/mutter-4")
6101
6102 ;; The following flags are needed for the bundled clutter
6103 (string-append "-Dxwayland_path="
6104 (assoc-ref %build-inputs "xorg-server-xwayland")
6105 "/bin/Xwayland")
6106
6107 ;; the remaining flags are needed for the bundled cogl
6108 (string-append "-Dopengl_libname="
6109 (assoc-ref %build-inputs "mesa")
6110 "/lib/libGL.so"))
6111 #:phases
6112 (modify-phases %standard-phases
6113 (add-after 'unpack 'disable-werror
6114 (lambda _
6115 ;; XXX: build fails with [-Werror]:
6116 ;; backends/meta-cursor-renderer.c:112:5: error:
6117 ;; implicit declaration of function ?roundf?
6118 (substitute* "meson.build"
6119 (("'-Werror=.*',") ""))
6120 #t))
6121 ;; Replace references to systemd libraries to elogind references.
6122 (add-before 'configure 'use-elogind
6123 (lambda _
6124 (substitute* (list "meson.build"
6125 "src/backends/native/meta-launcher.c"
6126 "src/core/main.c")
6127 (("systemd") "elogind"))
6128 #t)))))
6129 (native-inputs
6130 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6131 ("gobject-introspection" ,gobject-introspection)
6132 ("intltool" ,intltool)
6133 ("pkg-config" ,pkg-config)
6134 ("xorg-server" ,xorg-server-for-tests)
6135 ;; For git build
6136 ("autoconf" ,autoconf)
6137 ("automake" ,automake)
6138 ("libtool" ,libtool)))
6139 (propagated-inputs
6140 `(;; libmutter.pc refers to these:
6141 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6142 ("gtk+" ,gtk+)
6143 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6144 ("atk" ,atk)
6145 ("cairo" ,cairo)
6146 ("gdk-pixbuf" ,gdk-pixbuf)
6147 ("glib" ,glib)
6148 ("json-glib" ,json-glib)
6149 ("libinput" ,libinput)
6150 ("libx11" ,libx11)
6151 ("libxcomposite" ,libxcomposite)
6152 ("libxdamage" ,libxdamage)
6153 ("libxext" ,libxext)
6154 ("libxfixes" ,libxfixes)
6155 ("libxkbcommon" ,libxkbcommon)
6156 ("libxrandr" ,libxrandr)
6157 ("mesa" ,mesa)
6158 ("pango" ,pango)
6159 ("udev" ,eudev)
6160 ("xinput" ,xinput)))
6161 (inputs
6162 `(("elogind" ,elogind)
6163 ("gnome-desktop" ,gnome-desktop)
6164 ("gnome-settings-daemon" ,gnome-settings-daemon)
6165 ("libcanberra-gtk" ,libcanberra)
6166 ("libgudev" ,libgudev)
6167 ("libice" ,libice)
6168 ("libsm" ,libsm)
6169 ("libwacom" ,libwacom)
6170 ("libxkbfile" ,libxkbfile)
6171 ("libxrandr" ,libxrandr)
6172 ("libxtst" ,libxtst)
6173 ("pipewire" ,pipewire)
6174 ("startup-notification" ,startup-notification)
6175 ("upower-glib" ,upower)
6176 ("xkeyboard-config" ,xkeyboard-config)
6177 ("xorg-server-xwayland" ,xorg-server-xwayland)
6178 ("zenity" ,zenity)))
6179 (synopsis "Window and compositing manager")
6180 (home-page "https://www.gnome.org")
6181 (description
6182 "Mutter is a window and compositing manager that displays and manages your
6183 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6184 Clutter toolkit with solid window-management logic inherited from the Metacity
6185 window manager.")
6186 (license license:gpl2+)))
6187
6188 (define-public gnome-online-accounts
6189 (package
6190 (name "gnome-online-accounts")
6191 (version "3.32.1")
6192 (source (origin
6193 (method url-fetch)
6194 (uri (string-append "mirror://gnome/sources/" name "/"
6195 (version-major+minor version) "/"
6196 name "-" version ".tar.xz"))
6197 (sha256
6198 (base32
6199 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
6200 (outputs '("out" "lib"))
6201 (build-system glib-or-gtk-build-system)
6202 (arguments
6203 `(#:configure-flags
6204 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6205 #:phases
6206 (modify-phases %standard-phases
6207 (add-before 'configure 'patch-libgoa-output
6208 (lambda* (#:key outputs #:allow-other-keys)
6209 (let ((lib (assoc-ref outputs "lib")))
6210 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6211 (("@prefix@") lib)
6212 (("@exec_prefix@") lib)
6213 (("@libdir@") (string-append lib "/lib"))
6214 (("@includedir@") (string-append lib "/include"))
6215 (("@datadir@") (string-append lib "/share")))
6216 ;; Make sure gobject-introspection knows about the output
6217 ;; too (see <https://bugs.gnu.org/36535>).
6218 (setenv "outputs" "out lib")
6219 #t))))))
6220 (native-inputs
6221 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6222 ("gobject-introspection" ,gobject-introspection)
6223 ("intltool" ,intltool)
6224 ("pkg-config" ,pkg-config)
6225 ("vala" ,vala)
6226 ("xsltproc" ,libxslt)))
6227 (propagated-inputs
6228 `(("glib" ,glib) ; required by goa-1.0.pc
6229 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6230 (inputs
6231 `(("docbook-xsl" ,docbook-xsl)
6232 ("json-glib" ,json-glib)
6233 ("libsecret" ,libsecret)
6234 ("rest" ,rest)
6235 ("webkitgtk" ,webkitgtk)))
6236 (synopsis "Single sign-on framework for GNOME")
6237 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6238 (description
6239 "GNOME Online Accounts provides interfaces so that applications and
6240 libraries in GNOME can access the user's online accounts. It has providers for
6241 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6242 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6243 (license license:lgpl2.0+)))
6244
6245 (define-public evolution-data-server
6246 (package
6247 (name "evolution-data-server")
6248 (version "3.32.4")
6249 (source (origin
6250 (method url-fetch)
6251 (uri (string-append "mirror://gnome/sources/" name "/"
6252 (version-major+minor version) "/"
6253 name "-" version ".tar.xz"))
6254 (patches (search-patches "evolution-data-server-locales.patch"
6255 "evolution-data-server-libical-compat.patch"))
6256 (sha256
6257 (base32
6258 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
6259 (build-system cmake-build-system)
6260 (arguments
6261 '(#:configure-flags
6262 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6263 (runpaths (map (lambda (s)
6264 (string-append lib "/evolution-data-server/" s))
6265 '("addressbook-backends" "calendar-backends"
6266 "camel-providers" "credential-modules"
6267 "registry-modules"))))
6268 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6269 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6270 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6271 "-DENABLE_VALA_BINDINGS=ON"
6272 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6273 (string-append lib "/evolution-data-server;")
6274 (string-join runpaths ";"))
6275 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6276 #:phases
6277 (modify-phases %standard-phases
6278 (add-after 'unpack 'disable-failing-tests
6279 (lambda _
6280 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6281 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6282 (delete-file-recursively "tests/book-migration")
6283 (substitute* "tests/CMakeLists.txt"
6284 (("add_subdirectory\\(book-migration\\)") ""))
6285 ;; tests/libebook/client/test-book-client-view-operations:8077):
6286 ;; e-data-server-WARNING **:
6287 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6288 ;; runtime check failed:
6289 ;; (!g_main_context_pending (closure->main_context))
6290 (substitute* "tests/libebook/client/CMakeLists.txt"
6291 (("test-book-client-view-operations") ""))
6292 #t))
6293 (add-after 'unpack 'patch-paths
6294 (lambda _
6295 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6296 "tests/libedata-book/data-test-utils.c"
6297 "tests/libedata-book/test-book-cache-utils.c"
6298 "tests/libedata-cal/test-cal-cache-utils.c")
6299 (("/bin/rm") (which "rm")))
6300 #t))
6301 (add-before 'configure 'dont-override-rpath
6302 (lambda _
6303 (substitute* "CMakeLists.txt"
6304 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6305 ;; Remove it so the configure flag is respected.
6306 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6307 #t)))))
6308 (native-inputs
6309 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6310 ("gobject-introspection" ,gobject-introspection)
6311 ("gperf" ,gperf)
6312 ("intltool" ,intltool)
6313 ("pkg-config" ,pkg-config)
6314 ("vala" ,vala)
6315 ("python" ,python-wrapper)))
6316 (propagated-inputs
6317 ;; These are all in the Requires field of .pc files.
6318 `(("gtk+" ,gtk+)
6319 ("libical" ,libical)
6320 ("libsecret" ,libsecret)
6321 ("libsoup" ,libsoup)
6322 ("nss" ,nss)
6323 ("sqlite" ,sqlite)))
6324 (inputs
6325 `(("bdb" ,bdb)
6326 ("gcr" ,gcr)
6327 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6328 ("json-glib" ,json-glib)
6329 ("libcanberra" ,libcanberra)
6330 ("libgweather" ,libgweather)
6331 ("mit-krb5" ,mit-krb5)
6332 ("openldap" ,openldap)
6333 ("webkitgtk" ,webkitgtk)))
6334 (synopsis "Store address books and calendars")
6335 (home-page "https://wiki.gnome.org/Apps/Evolution")
6336 (description
6337 "This package provides a unified backend for programs that work with
6338 contacts, tasks, and calendar information. It was originally developed for
6339 Evolution (hence the name), but is now used by other packages as well.")
6340 (license license:lgpl2.0)))
6341
6342 (define-public caribou
6343 (package
6344 (name "caribou")
6345 (version "0.4.21")
6346 (source (origin
6347 (method url-fetch)
6348 (uri (string-append "mirror://gnome/sources/" name "/"
6349 (version-major+minor version) "/"
6350 name "-" version ".tar.xz"))
6351 (sha256
6352 (base32
6353 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6354 (build-system glib-or-gtk-build-system)
6355 (arguments
6356 '(#:phases
6357 (modify-phases %standard-phases
6358 (add-before
6359 'build 'pre-build
6360 (lambda* (#:key outputs #:allow-other-keys)
6361 (let ((out (assoc-ref outputs "out")))
6362 ;; Use absolute shared library path in Caribou-1.0.typelib.
6363 (substitute* "libcaribou/Makefile"
6364 (("--shared-library=libcaribou.so")
6365 (string-append "--shared-library="
6366 out "/lib/libcaribou.so")))
6367 #t)))
6368 (add-after 'install 'wrap-programs
6369 (lambda* (#:key outputs #:allow-other-keys)
6370 (let* ((out (assoc-ref outputs "out"))
6371 (python-path (getenv "PYTHONPATH"))
6372 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6373 (for-each
6374 (lambda (prog)
6375 (wrap-program prog
6376 `("PYTHONPATH" ":" prefix (,python-path))
6377 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6378 (list (string-append out "/bin/caribou-preferences")
6379 (string-append out "/libexec/antler-keyboard"))))
6380 #t)))))
6381 (native-inputs
6382 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6383 ("gobject-introspection" ,gobject-introspection)
6384 ("intltool" ,intltool)
6385 ("pkg-config" ,pkg-config)
6386 ("python" ,python)
6387 ("vala" ,vala)
6388 ("xsltproc" ,libxslt)))
6389 (propagated-inputs
6390 ;; caribou-1.0.pc refers to all these.
6391 `(("libgee" ,libgee)
6392 ("libxklavier" ,libxklavier)
6393 ("libxtst" ,libxtst)
6394 ("gtk+" ,gtk+)))
6395 (inputs
6396 `(("clutter" ,clutter)
6397 ("dconf" ,dconf)
6398 ("gtk+-2" ,gtk+-2)
6399 ("python-pygobject" ,python-pygobject)))
6400 (synopsis "Text entry and UI navigation application")
6401 (home-page "https://wiki.gnome.org/Projects/Caribou")
6402 (description
6403 "Caribou is an input assistive technology intended for switch and pointer
6404 users.")
6405 (license license:lgpl2.1)))
6406
6407 (define-public network-manager
6408 (package
6409 (name "network-manager")
6410 (version "1.18.4")
6411 (source (origin
6412 (method url-fetch)
6413 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6414 (version-major+minor version) "/"
6415 "NetworkManager-" version ".tar.xz"))
6416 (patches (search-patches "nm-plugin-path.patch"))
6417 (sha256
6418 (base32
6419 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
6420 (modules '((guix build utils)))
6421 (snippet
6422 '(begin
6423 (substitute* "src/devices/wwan/nm-modem-manager.c"
6424 (("systemd") "elogind"))
6425 #t))))
6426 (build-system gnu-build-system)
6427 (outputs '("out"
6428 "doc")) ; 8 MiB of gtk-doc HTML
6429 (arguments
6430 '(#:configure-flags
6431 (let ((out (assoc-ref %outputs "out"))
6432 (doc (assoc-ref %outputs "doc"))
6433 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6434 "/sbin/dhclient")))
6435 (list "--with-libnm-glib" ; needed by network-manager-applet
6436 "--with-systemd-journal=no"
6437 "--with-session-tracking=elogind"
6438 "--with-suspend-resume=elogind"
6439 "--with-consolekit=no"
6440 "--with-crypto=gnutls"
6441 "--disable-config-plugin-ibft"
6442 "--sysconfdir=/etc"
6443 "--localstatedir=/var"
6444 (string-append "--with-udev-dir="
6445 out "/lib/udev")
6446 (string-append "--with-dbus-sys-dir="
6447 out "/etc/dbus-1/system.d")
6448 (string-append "--with-html-dir="
6449 doc "/share/gtk-doc/html")
6450 (string-append "--with-dhclient=" dhclient)))
6451 #:phases
6452 (modify-phases %standard-phases
6453 ;; This bare "ls" invocation breaks some tests.
6454 (add-after 'unpack 'patch-ls-invocation
6455 (lambda _
6456 (substitute* "build-aux/ltmain.sh"
6457 (("`ls -")
6458 (string-append "`" (which "ls") " -")))
6459 #t))
6460 (add-before 'configure 'pre-configure
6461 (lambda _
6462 ;; These tests try to test aspects of network-manager's
6463 ;; functionality within restricted containers, but they don't
6464 ;; cope with being already in the Guix build jail as that jail
6465 ;; lacks some features that they would like to proxy over (like
6466 ;; a /sys mount).
6467 (substitute* '("Makefile.in")
6468 (("src/platform/tests/test-address-linux") " ")
6469 (("src/platform/tests/test-cleanup-linux") " ")
6470 (("src/platform/tests/test-link-linux") " ")
6471 (("src/platform/tests/test-route-linux") " ")
6472 (("src/devices/tests/test-acd") "")
6473 (("src/devices/tests/test-arping") " ")
6474 (("src/devices/tests/test-lldp") " ")
6475 (("src/tests/test-route-manager-linux") " "))
6476 #t))
6477 (add-after 'unpack 'delete-failing-tests
6478 (lambda _
6479 ;; FIXME: These three tests fail for unknown reasons.
6480 ;; ERROR:libnm-core/tests/test-general.c:5842:
6481 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6482 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6483 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6484 ;; ERROR:libnm-core/tests/test-setting.c:907:
6485 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
6486 (substitute* "Makefile.in"
6487 (("libnm-core/tests/test-general") " ")
6488 (("libnm-core/tests/test-keyfile") " ")
6489 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
6490 #t))
6491 (add-before 'check 'pre-check
6492 (lambda _
6493 ;; For the missing /etc/machine-id.
6494 (setenv "DBUS_FATAL_WARNINGS" "0")
6495 #t))
6496 (replace 'install
6497 (lambda _
6498 (invoke "make"
6499 "sysconfdir=/tmp"
6500 "rundir=/tmp"
6501 "statedir=/tmp"
6502 "nmstatedir=/tmp/nm"
6503 "install")
6504 #t)))))
6505 (propagated-inputs
6506 `(("glib" ,glib)))
6507 (native-inputs
6508 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6509 ("gobject-introspection" ,gobject-introspection)
6510 ("docbook-xsl" ,docbook-xsl)
6511 ("intltool" ,intltool)
6512 ("libxslt" ,libxslt)
6513 ("libxml2" ,libxml2)
6514 ("pkg-config" ,pkg-config)
6515 ;; For testing.
6516 ("python" ,python-wrapper)
6517 ("python-dbus" ,python-dbus)
6518 ("python-pygobject" ,python-pygobject)))
6519 (inputs
6520 `(("coreutils" ,coreutils) ; for ls
6521 ("curl" ,curl)
6522 ("cyrus-sasl" ,cyrus-sasl)
6523 ("dbus-glib" ,dbus-glib)
6524 ("dnsmasq" ,dnsmasq)
6525 ("eudev" ,eudev)
6526 ("gnutls" ,gnutls)
6527 ("iptables" ,iptables)
6528 ("isc-dhcp" ,isc-dhcp)
6529 ("jansson" ,jansson)
6530 ("libgcrypt" ,libgcrypt)
6531 ("libgudev" ,libgudev)
6532 ("libndp" ,libndp)
6533 ("libnl" ,libnl)
6534 ("libsoup" ,libsoup)
6535 ("modem-manager" ,modem-manager)
6536 ("newt" ,newt) ;for the 'nmtui' console interface
6537 ("polkit" ,polkit)
6538 ("ppp" ,ppp)
6539 ("readline" ,readline)
6540 ("util-linux" ,util-linux)
6541 ("elogind" ,elogind)))
6542 (synopsis "Network connection manager")
6543 (home-page "https://www.gnome.org/projects/NetworkManager/")
6544 (description
6545 "NetworkManager is a system network service that manages your network
6546 devices and connections, attempting to keep active network connectivity when
6547 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6548 devices, and provides VPN integration with a variety of different VPN
6549 services.")
6550 (license license:gpl2+)
6551 (properties '((upstream-name . "NetworkManager")))))
6552
6553 (define-public network-manager-openvpn
6554 (package
6555 (name "network-manager-openvpn")
6556 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
6557 (version "1.8.10")
6558 (source (origin
6559 (method url-fetch)
6560 (uri (string-append
6561 "mirror://gnome/sources/NetworkManager-openvpn/"
6562 (version-major+minor version)
6563 "/NetworkManager-openvpn-" version ".tar.xz"))
6564 (sha256
6565 (base32
6566 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
6567 (build-system gnu-build-system)
6568 (arguments
6569 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6570 #:phases
6571 (modify-phases %standard-phases
6572 (add-after 'configure 'patch-path
6573 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6574 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6575 "/sbin/openvpn"))
6576 (modprobe (string-append (assoc-ref inputs "kmod")
6577 "/bin/modprobe"))
6578 (pretty-ovpn (string-append "\"" ovpn "\"")))
6579 (for-each
6580 (lambda (file)
6581 (substitute* file
6582 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6583 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6584 (("\"/sbin/openvpn\"") pretty-ovpn)
6585 (("/sbin/modprobe") modprobe)))
6586 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6587 #t)))))
6588 (native-inputs
6589 `(("pkg-config" ,pkg-config)
6590 ("intltool" ,intltool)))
6591 (inputs
6592 `(("gtk+" ,gtk+)
6593 ("kmod" ,kmod)
6594 ("openvpn" ,openvpn)
6595 ("network-manager" ,network-manager)
6596 ("network-manager-applet" ,network-manager-applet) ;for libnma
6597 ("libsecret" ,libsecret)))
6598 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6599 (synopsis "OpenVPN plug-in for NetworkManager")
6600 (description
6601 "This extension of NetworkManager allows it to take care of connections
6602 to virtual private networks (VPNs) via OpenVPN.")
6603 (license license:gpl2+)
6604 (properties `((upstream-name . "NetworkManager-openvpn")))))
6605
6606 (define-public network-manager-vpnc
6607 (package
6608 (name "network-manager-vpnc")
6609 (version "1.2.6")
6610 (source (origin
6611 (method url-fetch)
6612 (uri (string-append
6613 "mirror://gnome/sources/NetworkManager-vpnc/"
6614 (version-major+minor version)
6615 "/NetworkManager-vpnc-" version ".tar.xz"))
6616 (sha256
6617 (base32
6618 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6619 (build-system gnu-build-system)
6620 (arguments
6621 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6622 #:phases
6623 (modify-phases %standard-phases
6624 (add-after 'configure 'patch-path
6625 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6626 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6627 "/sbin/vpnc"))
6628 (modprobe (string-append (assoc-ref inputs "kmod")
6629 "/bin/modprobe"))
6630 (pretty-ovpn (string-append "\"" vpnc "\"")))
6631 (substitute* "src/nm-vpnc-service.c"
6632 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6633 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6634 (("\"/sbin/vpnc\"") pretty-ovpn)
6635 (("/sbin/modprobe") modprobe)))
6636 #t)))))
6637 (native-inputs
6638 `(("pkg-config" ,pkg-config)
6639 ("intltool" ,intltool)))
6640 (inputs
6641 `(("gtk+" ,gtk+)
6642 ("kmod" ,kmod)
6643 ("vpnc" ,vpnc)
6644 ("network-manager" ,network-manager)
6645 ("network-manager-applet" ,network-manager-applet) ;for libnma
6646 ("libsecret" ,libsecret)))
6647 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6648 (synopsis "VPNC plug-in for NetworkManager")
6649 (description
6650 "Support for configuring virtual private networks based on VPNC.
6651 Compatible with Cisco VPN concentrators configured to use IPsec.")
6652 (license license:gpl2+)
6653 (properties `((upstream-name . "NetworkManager-vpnc")))))
6654
6655 (define-public network-manager-openconnect
6656 (package
6657 (name "network-manager-openconnect")
6658 (version "1.2.6")
6659 (source (origin
6660 (method url-fetch)
6661 (uri (string-append
6662 "mirror://gnome/sources/NetworkManager-openconnect/"
6663 (version-major+minor version)
6664 "/NetworkManager-openconnect-" version ".tar.xz"))
6665 (sha256
6666 (base32
6667 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6668 (build-system gnu-build-system)
6669 (arguments
6670 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6671 #:phases
6672 (modify-phases %standard-phases
6673 (add-after 'configure 'patch-path
6674 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6675 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6676 "/sbin/openconnect"))
6677 (modprobe (string-append (assoc-ref inputs "kmod")
6678 "/bin/modprobe"))
6679 (pretty-ovpn (string-append "\"" openconnect "\"")))
6680 (substitute* "src/nm-openconnect-service.c"
6681 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6682 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6683 (("/sbin/modprobe") modprobe)))
6684 #t)))))
6685 (native-inputs
6686 `(("intltool" ,intltool)
6687 ("network-manager-applet" ,network-manager-applet) ;for libnma
6688 ("pkg-config" ,pkg-config)))
6689 (inputs
6690 `(("gcr" ,gcr)
6691 ("gtk+" ,gtk+)
6692 ("kmod" ,kmod)
6693 ("libsecret" ,libsecret)
6694 ("libxml2" ,libxml2)
6695 ("network-manager" ,network-manager)
6696 ("openconnect" ,openconnect)))
6697 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6698 (synopsis "OpenConnect plug-in for NetworkManager")
6699 (description
6700 "This extension of NetworkManager allows it to take care of connections
6701 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6702 Cisco's AnyConnect SSL VPN.")
6703 (license license:gpl2+)
6704 (properties `((upstream-name . "NetworkManager-openconnect")
6705
6706 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6707 ;; file refers to account "nm-openconnect". Specify it here
6708 ;; so that 'network-manager-service-type' creates it.
6709 (user-accounts . ("nm-openconnect"))))))
6710
6711 (define-public mobile-broadband-provider-info
6712 (package
6713 (name "mobile-broadband-provider-info")
6714 (version "20190116")
6715 (source (origin
6716 (method url-fetch)
6717 (uri (string-append
6718 "mirror://gnome/sources/"
6719 "mobile-broadband-provider-info/" version "/"
6720 "mobile-broadband-provider-info-" version ".tar.xz"))
6721 (sha256
6722 (base32
6723 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6724 (build-system gnu-build-system)
6725 (arguments
6726 `(#:tests? #f)) ; no tests
6727 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6728 (synopsis "Database of broadband connection configuration")
6729 (description "Database of broadband connection configuration.")
6730 (license license:public-domain)))
6731
6732 (define-public network-manager-applet
6733 (package
6734 (name "network-manager-applet")
6735 (version "1.8.24")
6736 (source (origin
6737 (method url-fetch)
6738 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6739 (version-major+minor version) "/"
6740 "network-manager-applet-" version ".tar.xz"))
6741 (sha256
6742 (base32
6743 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
6744 (build-system meson-build-system)
6745 (arguments
6746 '(#:configure-flags
6747 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6748 (list "-Dlibnm_gtk=true")
6749 #:glib-or-gtk? #t))
6750 (native-inputs
6751 `(("intltool" ,intltool)
6752 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6753 ("gobject-introspection" ,gobject-introspection)
6754 ("gtk-doc" ,gtk-doc)
6755 ("pkg-config" ,pkg-config)))
6756 (propagated-inputs
6757 ;; libnm-gtk.pc refers to all these.
6758 `(("dbus-glib" ,dbus-glib)
6759 ("gtk+" ,gtk+)
6760 ("network-manager" ,network-manager)))
6761 (inputs
6762 `(("gcr" ,gcr)
6763 ("iso-codes" ,iso-codes)
6764 ("libgudev" ,libgudev)
6765 ("libnotify" ,libnotify)
6766 ("libsecret" ,libsecret)
6767 ("libselinux" ,libselinux)
6768 ("jansson" ,jansson) ; for team support
6769 ("modem-manager" ,modem-manager)
6770 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
6771 (synopsis "Applet for managing network connections")
6772 (home-page "https://www.gnome.org/projects/NetworkManager/")
6773 (description
6774 "This package contains a systray applet for NetworkManager. It displays
6775 the available networks and allows users to easily switch between them.")
6776 (license license:gpl2+)))
6777
6778 (define-public libxml++
6779 (package
6780 (name "libxml++")
6781 (version "3.0.1")
6782 (source (origin
6783 (method url-fetch)
6784 (uri (string-append "mirror://gnome/sources/" name "/"
6785 (version-major+minor version) "/"
6786 name "-" version ".tar.xz"))
6787 (sha256
6788 (base32
6789 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6790 (build-system gnu-build-system)
6791 ;; libxml++-3.0.pc refers to all these.
6792 (propagated-inputs
6793 `(("libxml2" ,libxml2)
6794 ("glibmm" ,glibmm)))
6795 (native-inputs
6796 `(("perl" ,perl)
6797 ("pkg-config" ,pkg-config)))
6798 (home-page "http://libxmlplusplus.sourceforge.net/")
6799 (synopsis "C++ wrapper for XML parser library libxml2")
6800 (description
6801 "This package provides a C++ wrapper for the XML parser library
6802 libxml2.")
6803 (license license:lgpl2.1+)))
6804
6805 (define-public libxml++-2
6806 (package
6807 (inherit libxml++)
6808 (name "libxml++")
6809 (version "2.40.1")
6810 (source (origin
6811 (method url-fetch)
6812 (uri (string-append "mirror://gnome/sources/" name "/"
6813 (version-major+minor version) "/"
6814 name "-" version ".tar.xz"))
6815 (sha256
6816 (base32
6817 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6818
6819 (define-public gdm
6820 (package
6821 (name "gdm")
6822 (version "3.32.0")
6823 (source (origin
6824 (method url-fetch)
6825 (uri (string-append "mirror://gnome/sources/" name "/"
6826 (version-major+minor version) "/"
6827 name "-" version ".tar.xz"))
6828 (sha256
6829 (base32
6830 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
6831 (build-system glib-or-gtk-build-system)
6832 (arguments
6833 '(#:configure-flags
6834 `("--without-plymouth"
6835 "--disable-systemd-journal"
6836
6837 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6838 ;; instead of having to replace it (i.e., stopping the mingetty
6839 ;; service for TTY 1 before starting GDM).
6840 "--with-initial-vt=7"
6841
6842 ;; Use '/etc/environment' for locale settings instead of the
6843 ;; systemd-specific '/etc/locale.conf'.
6844 "--with-lang-file=/etc/environment"
6845
6846 ,(string-append "--with-udevdir="
6847 (assoc-ref %outputs "out") "/lib/udev")
6848
6849 "--localstatedir=/var"
6850 ,(string-append "--with-default-path="
6851 (string-join '("/run/setuid-programs"
6852 "/run/current-system/profile/bin"
6853 "/run/current-system/profile/sbin")
6854 ":"))
6855 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6856 ;; XDG_DATA_DIRS so that it finds its schemas.
6857 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6858 #:phases
6859 (modify-phases %standard-phases
6860 (add-before
6861 'configure 'pre-configure
6862 (lambda* (#:key inputs outputs #:allow-other-keys)
6863 ;; We don't have <systemd/sd-daemon.h>.
6864 (substitute* '("common/gdm-log.c"
6865 "daemon/gdm-server.c"
6866 "daemon/gdm-session-worker.c"
6867 "daemon/gdm-session-worker-job.c")
6868 (("#include <systemd/sd-daemon\\.h>") ""))
6869 ;; Use elogind for sd-login.
6870 (substitute* '("common/gdm-common.c"
6871 "daemon/gdm-manager.c"
6872 "libgdm/gdm-user-switching.c")
6873 (("#include <systemd/sd-login\\.h>")
6874 "#include <elogind/sd-login.h>"))
6875 ;; Check for elogind.
6876 (substitute* '("configure")
6877 (("libsystemd")
6878 "libelogind"))
6879 ;; Look for system-installed sessions in
6880 ;; /run/current-system/profile/share.
6881 (substitute* '("libgdm/gdm-sessions.c"
6882 "daemon/gdm-session.c"
6883 "daemon/gdm-display.c"
6884 "daemon/gdm-launch-environment.c")
6885 (("DATADIR \"/x")
6886 "\"/run/current-system/profile/share/x")
6887 (("DATADIR \"/wayland")
6888 "\"/run/current-system/profile/share/wayland")
6889 (("DATADIR \"/gnome")
6890 "\"/run/current-system/profile/share/gnome"))
6891 (let ((propagate '("GDM_CUSTOM_CONF"
6892 "GDM_DBUS_DAEMON"
6893 "GDM_X_SERVER"
6894 "GDM_X_SESSION"
6895 ;; XXX: Remove this once GNOME Shell is
6896 ;; a dependency of GDM.
6897 "XDG_DATA_DIRS")))
6898 (substitute* "daemon/gdm-session.c"
6899 (("set_up_session_environment \\(self\\);")
6900 (apply string-append
6901 "set_up_session_environment (self);\n"
6902 (map (lambda (name)
6903 (string-append
6904 "gdm_session_set_environment_variable "
6905 "(self, \"" name "\","
6906 "g_getenv (\"" name "\"));\n"))
6907 propagate)))))
6908 ;; Find the configuration file using an environment variable.
6909 (substitute* '("common/gdm-settings.c")
6910 (("GDM_CUSTOM_CONF")
6911 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6912 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6913 " : GDM_CUSTOM_CONF)")))
6914 ;; Use service-supplied path to X.
6915 (substitute* '("daemon/gdm-server.c")
6916 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6917 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6918 (substitute* '("daemon/gdm-x-session.c")
6919 (("\"dbus-daemon\"")
6920 "g_getenv (\"GDM_DBUS_DAEMON\")")
6921 (("X_SERVER")
6922 "g_getenv (\"GDM_X_SERVER\")")
6923 (("GDMCONFDIR \"/Xsession\"")
6924 "g_getenv (\"GDM_X_SESSION\")"))
6925 ;; Use an absolute path for GNOME Session.
6926 (substitute* "daemon/gdm-launch-environment.c"
6927 (("\"gnome-session\"")
6928 (string-append "\"" (assoc-ref inputs "gnome-session")
6929 "/bin/gnome-session\"")))
6930 ;; Do not automatically select the placeholder session.
6931 (substitute* "daemon/gdm-session.c"
6932 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6933 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6934 "(g_strcmp0(search_dirs[i], \""
6935 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6936 "\") == 0 && "
6937 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6938 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
6939 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
6940 #t))
6941 ;; GDM requires that there be at least one desktop entry
6942 ;; file. This phase installs a hidden one that simply
6943 ;; fails. This enables users to use GDM with a
6944 ;; '~/.xsession' script with no other desktop entry files.
6945 ;; See <https://bugs.gnu.org/35068>.
6946 (add-after 'install 'install-placeholder-desktop-entry
6947 (lambda* (#:key inputs outputs #:allow-other-keys)
6948 (let* ((out (assoc-ref outputs "out"))
6949 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6950 (fail (string-append sessions "/fail.desktop")))
6951 (mkdir-p sessions)
6952 (with-output-to-file fail
6953 (lambda ()
6954 (for-each
6955 display
6956 '("[Desktop Entry]\n"
6957 "Encoding=UTF-8\n"
6958 "Type=Application\n"
6959 "Name=Fail\n"
6960 "Comment=This session fails immediately.\n"
6961 "NoDisplay=true\n"
6962 "Exec=false\n"))))
6963 #t)))
6964 ;; GDM needs GNOME Session to run these applications. We link
6965 ;; their autostart files in `share/gdm/greeter/autostart'
6966 ;; because GDM explicitly tells GNOME Session to look there.
6967 ;;
6968 ;; XXX: GNOME Shell should be linked here too, but currently
6969 ;; GNOME Shell depends on GDM.
6970 (add-after 'install 'link-autostart-files
6971 (lambda* (#:key inputs outputs #:allow-other-keys)
6972 (let* ((out (assoc-ref outputs "out"))
6973 (autostart (string-append out "/share/gdm/"
6974 "greeter/autostart"))
6975 (settings (assoc-ref inputs "gnome-settings-daemon")))
6976 (mkdir-p autostart)
6977 (with-directory-excursion autostart
6978 (for-each (lambda (desktop)
6979 (symlink desktop (basename desktop)))
6980 (find-files (string-append settings "/etc/xdg"))))
6981 #t))))))
6982 (native-inputs
6983 `(("dconf" ,dconf)
6984 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6985 ("gobject-introspection" ,gobject-introspection)
6986 ("intltool" ,intltool)
6987 ("itstool" ,itstool)
6988 ("pkg-config" ,pkg-config)
6989 ("xmllint" ,libxml2)))
6990 (inputs
6991 `(("accountsservice" ,accountsservice)
6992 ("check" ,check) ; for testing
6993 ("elogind" ,elogind)
6994 ("gnome-session" ,gnome-session)
6995 ("gnome-settings-daemon" ,gnome-settings-daemon)
6996 ("gtk+" ,gtk+)
6997 ("iso-codes" ,iso-codes)
6998 ("libcanberra" ,libcanberra)
6999 ("linux-pam" ,linux-pam)))
7000 (synopsis "Display manager for GNOME")
7001 (home-page "https://wiki.gnome.org/Projects/GDM/")
7002 (description
7003 "GNOME Display Manager is a system service that is responsible for
7004 providing graphical log-ins and managing local and remote displays.")
7005 (license license:gpl2+)))
7006
7007 (define-public libgtop
7008 (package
7009 (name "libgtop")
7010 (version "2.40.0")
7011 (source (origin
7012 (method url-fetch)
7013 (uri (string-append "mirror://gnome/sources/libgtop/"
7014 (version-major+minor version) "/"
7015 "libgtop-" version ".tar.xz"))
7016 (sha256
7017 (base32
7018 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7019 (build-system gnu-build-system)
7020 (native-inputs
7021 `(("gobject-introspection" ,gobject-introspection)
7022 ("intltool" ,intltool)
7023 ("perl" ,perl)
7024 ("pkg-config" ,pkg-config)))
7025 (propagated-inputs
7026 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7027 (synopsis "Portable system access library")
7028 (home-page "https://www.gnome.org/")
7029 (description
7030 "LibGTop is a library to get system specific data such as CPU and memory
7031 usage and information about running processes.")
7032 (license license:gpl2+)))
7033
7034 (define-public gnome-bluetooth
7035 (package
7036 (name "gnome-bluetooth")
7037 (version "3.32.1")
7038 (source (origin
7039 (method url-fetch)
7040 (uri (string-append "mirror://gnome/sources/" name "/"
7041 (version-major+minor version) "/"
7042 name "-" version ".tar.xz"))
7043 (sha256
7044 (base32
7045 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
7046 (build-system meson-build-system)
7047 (native-inputs
7048 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7049 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7050 ("gobject-introspection" ,gobject-introspection)
7051 ("intltool" ,intltool)
7052 ("pkg-config" ,pkg-config)
7053 ("xmllint" ,libxml2)))
7054 (propagated-inputs
7055 ;; gnome-bluetooth-1.0.pc refers to all these.
7056 `(("glib" ,glib)
7057 ("gtk+" ,gtk+)))
7058 (inputs
7059 `(("eudev" ,eudev)
7060 ("libcanberra" ,libcanberra)
7061 ("libnotify" ,libnotify)))
7062 (synopsis "GNOME Bluetooth subsystem")
7063 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7064 (description
7065 "This package contains tools for managing and manipulating Bluetooth
7066 devices using the GNOME desktop.")
7067 (license license:lgpl2.1+)))
7068
7069 (define-public gnome-control-center
7070 (package
7071 (name "gnome-control-center")
7072 (version "3.32.2")
7073 (source (origin
7074 (method url-fetch)
7075 (uri (string-append "mirror://gnome/sources/" name "/"
7076 (version-major+minor version) "/"
7077 name "-" version ".tar.xz"))
7078 (sha256
7079 (base32
7080 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
7081 (build-system meson-build-system)
7082 (arguments
7083 '(#:glib-or-gtk? #t
7084 #:configure-flags
7085 (list "-Dcheese=false"
7086 (string-append "-Dgnome_session_libexecdir="
7087 (assoc-ref %build-inputs "gnome-session")
7088 "/libexec"))
7089 #:phases
7090 (modify-phases %standard-phases
7091 (add-before 'configure 'patch-paths
7092 (lambda* (#:key inputs #:allow-other-keys)
7093 (let ((libc (assoc-ref inputs "libc"))
7094 (tzdata (assoc-ref inputs "tzdata"))
7095 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7096 (nm-applet (assoc-ref inputs "network-manager-applet"))
7097 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7098 (substitute* "panels/datetime/tz.h"
7099 (("/usr/share/zoneinfo/zone.tab")
7100 (string-append tzdata "/share/zoneinfo/zone.tab")))
7101 (substitute* "tests/datetime/test-endianess.c"
7102 (("/usr/share/locale")
7103 (string-append libc "/share/locale")))
7104 (substitute* "panels/region/cc-region-panel.c"
7105 (("\"gkbd-keyboard-display")
7106 (string-append "\"" libgnomekbd
7107 "/bin/gkbd-keyboard-display")))
7108 (substitute* '("panels/network/net-device-wifi.c"
7109 "panels/network/net-device.c"
7110 "panels/network/connection-editor/net-connection-editor.c")
7111 (("\"nm-connection-editor")
7112 (string-append "\"" nm-applet
7113 "/bin/nm-connection-editor")))
7114 (substitute* '("panels/user-accounts/run-passwd.c")
7115 (("/usr/bin/passwd")
7116 "/run/setuid-programs/passwd"))
7117 (substitute* "panels/info/cc-info-overview-panel.c"
7118 (("DATADIR \"/gnome/gnome-version.xml\"")
7119 (string-append "\"" gnome-desktop
7120 "/share/gnome/gnome-version.xml\"")))
7121 #t))))))
7122 (native-inputs
7123 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7124 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7125 ("intltool" ,intltool)
7126 ("pkg-config" ,pkg-config)
7127 ("xsltproc" ,libxslt)
7128 ;; For tests
7129 ("hicolor-icon-theme" ,hicolor-icon-theme)
7130 ("python-dbusmock" ,python-dbusmock)
7131 ("xorg-server" ,xorg-server-for-tests)))
7132 (inputs
7133 `(("accountsservice" ,accountsservice)
7134 ("clutter-gtk" ,clutter-gtk)
7135 ("colord-gtk" ,colord-gtk)
7136 ("cups" ,cups)
7137 ("dconf" ,dconf)
7138 ("docbook-xsl" ,docbook-xsl)
7139 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7140 ("gnome-bluetooth" ,gnome-bluetooth)
7141 ("gnome-desktop" ,gnome-desktop)
7142 ("gnome-online-accounts" ,gnome-online-accounts)
7143 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7144 ("gnome-session" ,gnome-session)
7145 ("gnome-settings-daemon" ,gnome-settings-daemon)
7146 ("grilo" ,grilo)
7147 ("gsound" ,gsound)
7148 ("ibus" ,ibus)
7149 ("libcanberra" ,libcanberra)
7150 ("libgnomekbd" ,libgnomekbd)
7151 ("libgudev" ,libgudev)
7152 ("libgtop" ,libgtop)
7153 ("libpwquality" ,libpwquality)
7154 ("libsecret" ,libsecret)
7155 ("libsoup" ,libsoup)
7156 ("libxml2" ,libxml2)
7157 ("libwacom" ,libwacom)
7158 ("mesa" ,mesa)
7159 ("mit-krb5" ,mit-krb5)
7160 ("modem-manager" ,modem-manager)
7161 ("network-manager-applet" ,network-manager-applet)
7162 ("polkit" ,polkit)
7163 ("pulseaudio" ,pulseaudio)
7164 ("smbclient" ,samba)
7165 ("tzdata" ,tzdata)
7166 ("udisks" ,udisks)
7167 ("upower" ,upower)))
7168 (synopsis "Utilities to configure the GNOME desktop")
7169 (home-page "https://www.gnome.org/")
7170 (description
7171 "This package contains configuration applets for the GNOME desktop,
7172 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7173 properties, sound setup, desktop theme and background, user interface
7174 properties, screen resolution, and other GNOME parameters.")
7175 (license license:gpl2+)))
7176
7177 (define-public gnome-shell
7178 (package
7179 (name "gnome-shell")
7180 (version "3.32.2")
7181 (source (origin
7182 (method url-fetch)
7183 (uri (string-append "mirror://gnome/sources/" name "/"
7184 (version-major+minor version) "/"
7185 name "-" version ".tar.xz"))
7186 (sha256
7187 (base32
7188 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
7189 (patches (search-patches "gnome-shell-theme.patch"))
7190 (modules '((guix build utils)))
7191 (snippet
7192 #~(begin
7193 ;; Copy images for use on the GDM log-in screen.
7194 (copy-file #$(file-append %artwork-repository
7195 "/slim/0.x/background.png")
7196 "data/theme/guix-background.png")
7197 (copy-file #$(file-append %artwork-repository
7198 "/logo/Guix-horizontal-white.svg")
7199 "data/theme/guix-logo.svg")
7200 #t))))
7201 (build-system meson-build-system)
7202 (arguments
7203 `(#:glib-or-gtk? #t
7204 #:disallowed-references ((,glib "bin")
7205 ,inkscape ,libxslt
7206 ,ruby-sass)
7207 #:configure-flags
7208 (list "-Dsystemd=false"
7209 ;; Otherwise, the RUNPATH will lack the final path component.
7210 (string-append "-Dc_link_args=-Wl,-rpath="
7211 (assoc-ref %outputs "out")
7212 "/lib/gnome-shell"))
7213
7214 #:modules ((guix build meson-build-system)
7215 (guix build utils)
7216 (srfi srfi-1))
7217
7218 #:phases
7219 (modify-phases %standard-phases
7220 (add-after 'unpack 'fix-keysdir
7221 (lambda* (#:key outputs #:allow-other-keys)
7222 (let* ((out (assoc-ref outputs "out"))
7223 (keysdir (string-append
7224 out "/share/gnome-control-center/keybindings")))
7225 (substitute* "meson.build"
7226 (("keysdir =.*")
7227 (string-append "keysdir = '" keysdir "'\n")))
7228 #t)))
7229 (add-before 'configure 'convert-logo-to-png
7230 (lambda* (#:key inputs #:allow-other-keys)
7231 ;; Convert the logo from SVG to PNG.
7232 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7233 "data/theme/guix-logo.svg")))
7234 (add-before 'configure 'record-absolute-file-names
7235 (lambda* (#:key inputs #:allow-other-keys)
7236 (substitute* "js/misc/ibusManager.js"
7237 (("'ibus-daemon'")
7238 (string-append "'" (assoc-ref inputs "ibus")
7239 "/bin/ibus-daemon'")))
7240 (substitute* "js/ui/status/keyboard.js"
7241 (("'gkbd-keyboard-display'")
7242 (string-append "'" (assoc-ref inputs "libgnomekbd")
7243 "/bin/gkbd-keyboard-display'")))
7244 #t))
7245 (add-before 'check 'pre-check
7246 (lambda* (#:key inputs #:allow-other-keys)
7247 ;; Tests require a running X server.
7248 (system "Xvfb :1 &")
7249 (setenv "DISPLAY" ":1")
7250 #t))
7251 (add-after 'install 'wrap-programs
7252 (lambda* (#:key inputs outputs #:allow-other-keys)
7253 (let ((out (assoc-ref outputs "out"))
7254 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7255 (python-path (getenv "PYTHONPATH")))
7256 (wrap-program (string-append out "/bin/gnome-shell")
7257 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7258 ;; FIXME: gnome-shell loads these libraries with unqualified
7259 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7260 ;; alternative might be to patch gnome-shell.
7261 `("LD_LIBRARY_PATH" ":" prefix
7262 ,(map (lambda (pkg)
7263 (string-append (assoc-ref inputs pkg) "/lib"))
7264 '("gdk-pixbuf"
7265 "gnome-bluetooth" "librsvg" "libgweather"))))
7266 (for-each
7267 (lambda (prog)
7268 (wrap-program (string-append out "/bin/" prog)
7269 `("PYTHONPATH" ":" prefix (,python-path))
7270 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7271 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7272 #t)))
7273 (replace 'glib-or-gtk-wrap
7274 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7275 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7276 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7277 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7278 ;; phase. Fix that since we don't need these.
7279 (wrap #:inputs (fold alist-delete inputs
7280 '("inkscape" "intltool" "glib:bin"))
7281 #:outputs outputs)))))))
7282 (native-inputs
7283 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7284 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7285 ("gobject-introspection" ,gobject-introspection)
7286 ("inkscape" ,inkscape)
7287 ("intltool" ,intltool)
7288 ("pkg-config" ,pkg-config)
7289 ("python" ,python)
7290 ("ruby-sass" ,ruby-sass)
7291 ("sassc" ,sassc)
7292 ("xsltproc" ,libxslt)
7293 ;; For tests
7294 ("xorg-server" ,xorg-server-for-tests)))
7295 (inputs
7296 `(("accountsservice" ,accountsservice)
7297 ("caribou" ,caribou)
7298 ("docbook-xsl" ,docbook-xsl)
7299 ("evolution-data-server" ,evolution-data-server)
7300 ("gcr" ,gcr)
7301 ("gdm" ,gdm)
7302 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7303 ("gjs" ,gjs)
7304 ("gnome-bluetooth" ,gnome-bluetooth)
7305 ("gnome-desktop" ,gnome-desktop)
7306 ("gnome-settings-daemon" ,gnome-settings-daemon)
7307 ("gst-plugins-base" ,gst-plugins-base)
7308 ("ibus" ,ibus)
7309 ("libcanberra" ,libcanberra)
7310 ("libcroco" ,libcroco)
7311 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7312 ("libgweather" ,libgweather)
7313 ("libsoup" ,libsoup)
7314 ("mesa-headers" ,mesa-headers)
7315 ("mutter" ,mutter)
7316 ("network-manager-applet" ,network-manager-applet)
7317 ("polkit" ,polkit)
7318 ("pulseaudio" ,pulseaudio)
7319 ("python-pygobject" ,python-pygobject)
7320 ("startup-notification" ,startup-notification)
7321 ("telepathy-logger" ,telepathy-logger)
7322 ("upower" ,upower)
7323 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7324 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7325 ("librsvg" ,librsvg)
7326 ("geoclue" ,geoclue)))
7327 (synopsis "Desktop shell for GNOME")
7328 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7329 (description
7330 "GNOME Shell provides core user interface functions for the GNOME desktop,
7331 like switching to windows and launching applications.")
7332 (license license:gpl2+)))
7333
7334 (define-public gtk-vnc
7335 (package
7336 (name "gtk-vnc")
7337 (version "0.9.0")
7338 (source
7339 (origin
7340 (method url-fetch)
7341 (uri (string-append "mirror://gnome/sources/" name "/"
7342 (version-major+minor version) "/"
7343 name "-" version ".tar.xz"))
7344 (sha256
7345 (base32
7346 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7347 (build-system gnu-build-system)
7348 (arguments
7349 '(#:configure-flags '("--with-gtk=3.0")))
7350 (propagated-inputs
7351 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7352 (inputs
7353 `(("cyrus-sasl" ,cyrus-sasl)
7354 ("gnutls" ,gnutls)
7355 ("libgcrypt" ,libgcrypt)
7356 ("pulseaudio" ,pulseaudio)))
7357 (native-inputs
7358 `(("glib:bin" ,glib "bin")
7359 ("gobject-introspection" ,gobject-introspection)
7360 ("intltool" ,intltool)
7361 ("pkg-config" ,pkg-config)
7362 ("python-wrapper" ,python-wrapper)
7363 ("vala" ,vala)))
7364 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7365 (synopsis "VNC viewer widget for GTK+")
7366 (description
7367 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7368 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7369 GTK-VNC implements client side RFB protocol and authentication extensions such
7370 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7371 (license license:lgpl2.1+)))
7372
7373 (define-public gnome-autoar
7374 (package
7375 (name "gnome-autoar")
7376 (version "0.2.3")
7377 (source (origin
7378 (method url-fetch)
7379 (uri (string-append "mirror://gnome/sources/" name "/"
7380 (version-major+minor version) "/"
7381 name "-" version ".tar.xz"))
7382 (sha256
7383 (base32
7384 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
7385 (build-system glib-or-gtk-build-system)
7386 (native-inputs
7387 `(("gnome-common" ,gnome-common)
7388 ("gobject-introspection" ,gobject-introspection)
7389 ("pkg-config" ,pkg-config)))
7390 (propagated-inputs
7391 `(("libarchive" ,libarchive))) ; XXX document why
7392 (inputs
7393 `(("gtk+" ,gtk+)))
7394 (synopsis "Archives integration support for GNOME")
7395 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7396 (description
7397 "GNOME Autoar is a library which makes creating and extracting archives
7398 easy, safe, and automatic.")
7399 (license license:lgpl2.1+)))
7400
7401 (define-public tracker
7402 (package
7403 (name "tracker")
7404 (version "2.2.2")
7405 (source (origin
7406 (method url-fetch)
7407 (uri (string-append "mirror://gnome/sources/tracker/"
7408 (version-major+minor version) "/"
7409 "tracker-" version ".tar.xz"))
7410 (sha256
7411 (base32
7412 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
7413 (build-system meson-build-system)
7414 (arguments
7415 `(#:glib-or-gtk? #t
7416 #:configure-flags
7417 ;; Otherwise, the RUNPATH will lack the final path component.
7418 (list (string-append "-Dc_link_args=-Wl,-rpath="
7419 (assoc-ref %outputs "out") "/lib:"
7420 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7421 #:phases
7422 (modify-phases %standard-phases
7423 (add-after 'unpack 'disable-broken-tests
7424 (lambda _
7425 ;; These fail because the SPARQL backend could not be loaded.
7426 ;; That's because /etc/machine-id is missing, but
7427 ;; DBUS_FATAL_WARNINGS does not help here.
7428 (substitute* "tests/libtracker-sparql/meson.build"
7429 (("'sparql',") ""))
7430 (substitute* "tests/tracker-steroids/meson.build"
7431 (("test\\(.*") ""))
7432 #t))
7433 ;; Two tests fail if LANG is not set.
7434 (add-before 'check 'pre-check
7435 (lambda _
7436 (setenv "LANG" "en_US.UTF-8")
7437 ;; For the missing /etc/machine-id.
7438 (setenv "DBUS_FATAL_WARNINGS" "0")
7439 #t)))))
7440 (native-inputs
7441 `(("glib:bin" ,glib "bin")
7442 ("gnome-common" ,gnome-common)
7443 ("gobject-introspection" ,gobject-introspection)
7444 ("python-pygobject" ,python-pygobject)
7445 ("intltool" ,intltool)
7446 ("pkg-config" ,pkg-config)
7447 ("vala" ,vala)))
7448 (inputs
7449 `(("gtk+" ,gtk+)
7450 ("dbus" ,dbus)
7451 ("sqlite" ,sqlite)
7452 ("python" ,python)
7453 ("poppler" ,poppler)
7454 ("libpng" ,libpng)
7455 ("libtiff" ,libtiff)
7456 ("zlib" ,zlib)
7457 ("libxml2" ,libxml2)
7458 ("libunistring" ,libunistring)
7459 ("json-glib" ,json-glib)
7460 ("openjpeg" ,openjpeg-1)
7461 ("libseccomp" ,libseccomp)
7462 ("libsoup" ,libsoup)
7463 ("libuuid" ,util-linux)
7464 ("network-manager" ,network-manager)))
7465 (synopsis "Metadata database, indexer and search tool")
7466 (home-page "https://wiki.gnome.org/Projects/Tracker")
7467 (description
7468 "Tracker is an advanced framework for first class objects with associated
7469 metadata and tags. It provides a one stop solution for all metadata, tags,
7470 shared object databases, search tools and indexing.")
7471 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7472 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7473 (license (list license:gpl2+
7474 license:lgpl2.1+
7475 license:lgpl2.0+))))
7476
7477 (define-public tracker-miners
7478 (package
7479 (name "tracker-miners")
7480 (version "2.2.2")
7481 (source (origin
7482 (method url-fetch)
7483 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7484 (version-major+minor version)
7485 "/tracker-miners-" version ".tar.xz"))
7486 (sha256
7487 (base32
7488 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
7489 (build-system meson-build-system)
7490 (arguments
7491 `(#:glib-or-gtk? #t
7492 #:configure-flags
7493 (list "-Dminer_rss=false" ; libgrss is required.
7494 ;; Ensure the RUNPATH contains all installed library locations.
7495 (string-append "-Dc_link_args=-Wl,-rpath="
7496 (assoc-ref %outputs "out")
7497 "/lib/tracker-miners-2.0")
7498 ;; TODO: Enable functional tests. Currently, the following error
7499 ;; appears:
7500 ;; Exception: The functional tests require DConf to be the default
7501 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7502 "-Dfunctional_tests=false")))
7503 (native-inputs
7504 `(("dbus" ,dbus)
7505 ("intltool" ,intltool)
7506 ("glib:bin" ,glib "bin")
7507 ("gobject-introspection" ,gobject-introspection)
7508 ("pkg-config" ,pkg-config)
7509 ("python-pygobject" ,python-pygobject)))
7510 (inputs
7511 `(("exempi" ,exempi)
7512 ("ffmpeg" ,ffmpeg)
7513 ("flac" ,flac)
7514 ("giflib" ,giflib)
7515 ("glib" ,glib)
7516 ("gstreamer" ,gstreamer)
7517 ("icu4c" ,icu4c)
7518 ("libcue" ,libcue)
7519 ("libexif" ,libexif)
7520 ("libgsf" ,libgsf)
7521 ("libgxps" ,libgxps)
7522 ("libiptcdata" ,libiptcdata)
7523 ("libjpeg" ,libjpeg)
7524 ("libosinfo" ,libosinfo)
7525 ("libpng" ,libpng)
7526 ("libseccomp" ,libseccomp)
7527 ("libtiff" ,libtiff)
7528 ("libvorbis" ,libvorbis)
7529 ("libxml2" ,libxml2)
7530 ("poppler" ,poppler)
7531 ("taglib" ,taglib)
7532 ("totem-pl-parser" ,totem-pl-parser)
7533 ("tracker" ,tracker)
7534 ("upower" ,upower)
7535 ("zlib" ,zlib)))
7536 (synopsis "Metadata database, indexer and search tool")
7537 (home-page "https://wiki.gnome.org/Projects/Tracker")
7538 (description
7539 "Tracker is an advanced framework for first class objects with associated
7540 metadata and tags. It provides a one stop solution for all metadata, tags,
7541 shared object databases, search tools and indexing.")
7542 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7543 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7544 (license (list license:gpl2+
7545 license:lgpl2.1+
7546 license:lgpl2.0+))))
7547
7548 (define-public nautilus
7549 (package
7550 (name "nautilus")
7551 (version "3.32.3")
7552 (source (origin
7553 (method url-fetch)
7554 (uri (string-append "mirror://gnome/sources/" name "/"
7555 (version-major+minor version) "/"
7556 name "-" version ".tar.xz"))
7557 (sha256
7558 (base32
7559 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
7560 (build-system meson-build-system)
7561 (arguments
7562 '(#:glib-or-gtk? #t
7563 ;; XXX: FAIL: check-nautilus
7564 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7565 #:tests? #f))
7566 (native-inputs
7567 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7568 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7569 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7570 ("gobject-introspection" ,gobject-introspection)
7571 ("intltool" ,intltool)
7572 ("pkg-config" ,pkg-config)))
7573 (inputs
7574 `(("dconf" ,dconf)
7575 ("gexiv2" ,gexiv2)
7576 ("gvfs" ,gvfs)
7577 ("exempi" ,exempi)
7578 ("gnome-desktop" ,gnome-desktop)
7579 ("gnome-autoar" ,gnome-autoar)
7580 ("gst-plugins-base" ,gst-plugins-base)
7581 ("libseccomp" ,libseccomp)
7582 ("libselinux" ,libselinux)
7583 ("tracker" ,tracker)
7584 ("tracker-miners" ,tracker-miners)
7585 ;; XXX: gtk+ is required by libnautilus-extension.pc
7586 ;;
7587 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7588 ;; package. See:
7589 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7590 ("gtk+" ,gtk+)
7591 ("libexif" ,libexif)
7592 ("libxml2" ,libxml2)))
7593 (synopsis "File manager for GNOME")
7594 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7595 (description
7596 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7597 design and behaviour, giving the user a simple way to navigate and manage its
7598 files.")
7599 (license license:gpl2+)))
7600
7601 (define-public baobab
7602 (package
7603 (name "baobab")
7604 (version "3.32.0")
7605 (source (origin
7606 (method url-fetch)
7607 (uri (string-append
7608 "mirror://gnome/sources/" name "/"
7609 (version-major+minor version) "/"
7610 name "-" version ".tar.xz"))
7611 (sha256
7612 (base32
7613 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7614 (build-system meson-build-system)
7615 (arguments
7616 '(#:glib-or-gtk? #t))
7617 (native-inputs
7618 `(("intltool" ,intltool)
7619 ("pkg-config" ,pkg-config)
7620 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7621 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7622 ("itstool" ,itstool)
7623 ("xmllint" ,libxml2)
7624 ("glib" ,glib "bin")
7625 ("vala" ,vala)))
7626 (inputs
7627 `(("gtk+" ,gtk+)))
7628 (synopsis "Disk usage analyzer for GNOME")
7629 (description
7630 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7631 usage in the GNOME desktop environment. It can easily scan device volumes or
7632 a specific user-requested directory branch (local or remote). Once the scan
7633 is complete it provides a graphical representation of each selected folder.")
7634 (home-page "https://wiki.gnome.org/Apps/Baobab")
7635 (license license:gpl2+)))
7636
7637 (define-public gnome-backgrounds
7638 (package
7639 (name "gnome-backgrounds")
7640 (version "3.32.0")
7641 (source
7642 (origin
7643 (method url-fetch)
7644 (uri (string-append "mirror://gnome/sources/" name "/"
7645 (version-major+minor version) "/"
7646 name "-" version ".tar.xz"))
7647 (sha256
7648 (base32
7649 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
7650 (build-system meson-build-system)
7651 (native-inputs
7652 `(("intltool" ,intltool)))
7653 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7654 (synopsis "Background images for the GNOME desktop")
7655 (description
7656 "GNOME backgrounds package contains a collection of graphics files which
7657 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7658 the package creates the proper framework and directory structure so that you
7659 can add your own files to the collection.")
7660 (license (list license:gpl2+
7661 license:cc-by2.0
7662 license:cc-by-sa2.0
7663 license:cc-by-sa3.0))))
7664
7665 (define-public gnome-screenshot
7666 (package
7667 (name "gnome-screenshot")
7668 (version "3.32.0")
7669 (source
7670 (origin
7671 (method url-fetch)
7672 (uri (string-append "mirror://gnome/sources/" name "/"
7673 (version-major+minor version) "/"
7674 name "-" version ".tar.xz"))
7675 (sha256
7676 (base32
7677 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
7678 (build-system meson-build-system)
7679 (native-inputs
7680 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7681 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7682 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7683 ("intltool" ,intltool)
7684 ("appstream-glib" ,appstream-glib)
7685 ("pkg-config" ,pkg-config)))
7686 (inputs
7687 `(("gtk+" ,gtk+)
7688 ("libcanberra" ,libcanberra)
7689 ("libx11" ,libx11)
7690 ("libxext" ,libxext)))
7691 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7692 (synopsis "Take pictures of your screen")
7693 (description
7694 "GNOME Screenshot is a utility used for taking screenshots of the entire
7695 screen, a window or a user defined area of the screen, with optional
7696 beautifying border effects.")
7697 (license license:gpl2+)))
7698
7699 (define-public dconf-editor
7700 (package
7701 (name "dconf-editor")
7702 (version "3.32.0")
7703 (source
7704 (origin
7705 (method url-fetch)
7706 (uri (string-append "mirror://gnome/sources/" name "/"
7707 (version-major+minor version) "/"
7708 name "-" version ".tar.xz"))
7709 (sha256
7710 (base32
7711 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
7712 (build-system meson-build-system)
7713 (arguments
7714 '(#:phases (modify-phases %standard-phases
7715 (add-before 'configure 'set-glib-minimum-version
7716 (lambda _
7717 ;; Change the minimum required GLib version so that
7718 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7719 ;; do that, it complains that "55" is not an even
7720 ;; number. See <https://bugs.gnu.org/37503>.
7721 (substitute* "editor/meson.build"
7722 (("2\\.55\\.1") "2.60.0"))
7723 #t)))))
7724 (native-inputs
7725 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7726 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7727 ("intltool" ,intltool)
7728 ("pkg-config" ,pkg-config)
7729 ("vala" ,vala)))
7730 (inputs
7731 `(("dconf" ,dconf)
7732 ("gtk+" ,gtk+)
7733 ("libxml2" ,libxml2)))
7734 (home-page "https://git.gnome.org/browse/dconf-editor")
7735 (synopsis "Graphical editor for GNOME's dconf configuration system")
7736 (description
7737 "Dconf-editor is a graphical tool for browsing and editing the dconf
7738 configuration system for GNOME. It allows users to configure desktop
7739 software that do not provide their own configuration interface.")
7740 (license license:lgpl2.1+)))
7741
7742 (define-public gnome-default-applications
7743 (package
7744 (name "gnome-default-applications")
7745 (version "0")
7746 (build-system trivial-build-system)
7747 (source #f)
7748 (propagated-inputs
7749 `(("nautilus" ,nautilus)
7750 ("evince" ,evince)))
7751 (arguments
7752 `(#:modules ((guix build utils))
7753 #:builder
7754 (begin
7755 (use-modules (guix build utils))
7756 (let* ((out (assoc-ref %outputs "out"))
7757 (apps (string-append out "/share/applications")))
7758 (mkdir-p apps)
7759 (call-with-output-file (string-append apps "/defaults.list")
7760 (lambda (port)
7761 (format port "[Default Applications]\n")
7762 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7763 (format port "application/pdf=evince.desktop\n")
7764 (format port "application/postscript=evince.desktop\n")))
7765 #t))))
7766 (synopsis "Default MIME type associations for the GNOME desktop")
7767 (description
7768 "Given many installed packages which might handle a given MIME type, a
7769 user running the GNOME desktop probably has some preferences: for example,
7770 that folders be opened by default by the Nautilus file manager, not the Baobab
7771 disk usage analyzer. This package establishes that set of default MIME type
7772 associations for GNOME.")
7773 (license license:gpl3+)
7774 (home-page #f)))
7775
7776 (define-public libgovirt
7777 (package
7778 (name "libgovirt")
7779 (version "0.3.6")
7780 (source (origin
7781 (method url-fetch)
7782 (uri (string-append "mirror://gnome/sources/" name "/"
7783 (version-major+minor version) "/"
7784 name "-" version ".tar.xz"))
7785 (sha256
7786 (base32
7787 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7788 (build-system glib-or-gtk-build-system)
7789 (native-inputs
7790 `(("gettext" ,gettext-minimal)
7791 ("glib:bin" ,glib "bin")
7792 ("gobject-introspection" ,gobject-introspection)
7793 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7794 ("gtk+:bin" ,gtk+ "bin")
7795 ("pkg-config" ,pkg-config)))
7796 (inputs
7797 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7798 ("librest" ,rest)))
7799 (synopsis "GoVirt Library")
7800 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7801 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7802 (license license:gpl2+)))
7803
7804 (define-public gnome-weather
7805 (package
7806 (name "gnome-weather")
7807 (version "3.34.0")
7808 (source (origin
7809 (method url-fetch)
7810 (uri (string-append "mirror://gnome/sources/" name "/"
7811 (version-major+minor version) "/"
7812 name "-" version ".tar.xz"))
7813 (sha256
7814 (base32
7815 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7816 (build-system meson-build-system)
7817 (native-inputs
7818 `(("gettext" ,gettext-minimal)
7819 ("glib:bin" ,glib "bin")
7820 ("gobject-introspection" ,gobject-introspection)
7821 ("gtk+:bin" ,gtk+ "bin")
7822 ("pkg-config" ,pkg-config)))
7823 (inputs
7824 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7825 ("appstream-glib" ,appstream-glib)
7826 ("geoclue" ,geoclue)
7827 ("gdk-pixbuf" ,gdk-pixbuf)
7828 ("gjs" ,gjs)
7829 ("gnome-desktop" ,gnome-desktop)
7830 ("libgweather" ,libgweather)))
7831 (synopsis "Weather monitoring for GNOME desktop")
7832 (description "GNOME Weather is a small application that allows you to
7833 monitor the current weather conditions for your city, or anywhere in the
7834 world.")
7835 (home-page "https://wiki.gnome.org/Apps/Weather")
7836 (license license:gpl2+)))
7837
7838 (define-public gnome
7839 (package
7840 (name "gnome")
7841 (version (package-version gnome-shell))
7842 (source #f)
7843 (build-system trivial-build-system)
7844 (arguments '(#:builder (begin (mkdir %output) #t)))
7845 (propagated-inputs
7846 ;; TODO: Add or remove packages according to:
7847 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7848 `(
7849 ;; GNOME-Core-OS-Services
7850 ("accountsservice" ,accountsservice)
7851 ("network-manager" ,network-manager)
7852 ("packagekit" ,packagekit)
7853 ("upower" ,upower)
7854 ;; GNOME-Core-Shell
7855 ("adwaita-icon-theme" ,adwaita-icon-theme)
7856 ("gdm" ,gdm)
7857 ("glib-networking" ,glib-networking)
7858 ("gnome-backgrounds" ,gnome-backgrounds)
7859 ("gnome-bluetooth" ,gnome-bluetooth)
7860 ("gnome-color-manager" ,gnome-color-manager)
7861 ("gnome-control-center" ,gnome-control-center)
7862 ("gnome-desktop" ,gnome-desktop)
7863 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7864 ("gnome-initial-setup" ,gnome-initial-setup)
7865 ("gnome-keyring" ,gnome-keyring)
7866 ("gnome-menus" ,gnome-menus)
7867 ("gnome-session" ,gnome-session)
7868 ("gnome-settings-daemon" ,gnome-settings-daemon)
7869 ("gnome-shell-extensions" ,gnome-shell-extensions)
7870 ("gnome-shell" ,gnome-shell)
7871 ("gnome-themes-extra" ,gnome-themes-extra)
7872 ("gnome-user-docs" ,gnome-user-docs)
7873 ("gnome-user-share" ,gnome-user-share)
7874 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7875 ("gvfs" ,gvfs)
7876 ("mutter" ,mutter)
7877 ("orca" ,orca)
7878 ("rygel" ,rygel)
7879 ("sushi" ,sushi)
7880 ;; GNOME-Core-Utilities
7881 ("baobab" ,baobab)
7882 ("cheese" ,cheese)
7883 ("eog" ,eog)
7884 ("epiphany" ,epiphany)
7885 ("evince" ,evince)
7886 ("file-roller" ,file-roller)
7887 ("gedit" ,gedit)
7888 ; TODO: ("gnome-boxes" ,gnome-boxes)
7889 ("gnome-calculator" ,gnome-calculator)
7890 ("gnome-calendar" ,gnome-calendar)
7891 ("gnome-characters" ,gnome-characters)
7892 ("gnome-clocks" ,gnome-clocks)
7893 ("gnome-contacts" ,gnome-contacts)
7894 ("gnome-disk-utility" ,gnome-disk-utility)
7895 ("gnome-font-viewer" ,gnome-font-viewer)
7896 ("gnome-maps" ,gnome-maps)
7897 ; TODO: ("gnome-music" ,gnome-music)
7898 ; TODO: ("gnome-photos" ,gnome-photos)
7899 ("gnome-screenshot" ,gnome-screenshot)
7900 ("gnome-system-monitor" ,gnome-system-monitor)
7901 ("gnome-terminal" ,gnome-terminal)
7902 ("gnome-weather" ,gnome-weather)
7903 ("nautilus" ,nautilus)
7904 ("simple-scan" ,simple-scan)
7905 ("totem" ,totem)
7906 ("yelp" ,yelp)
7907 ;; Others
7908 ("hicolor-icon-theme" ,hicolor-icon-theme)
7909 ("gnome-online-accounts" ,gnome-online-accounts)))
7910 (synopsis "The GNU desktop environment")
7911 (home-page "https://www.gnome.org/")
7912 (description
7913 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7914 applications for browsing the web, editing text and images, creating
7915 documents and diagrams, playing media, scanning, and much more.")
7916 (license license:gpl2+)))
7917
7918 (define-public byzanz
7919 ;; The last stable release of Byzanz was in 2011, but there have been many
7920 ;; useful commits made to the Byzanz repository since then that it would be
7921 ;; silly to use such an old release.
7922 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7923 (package
7924 (name "byzanz")
7925 (version (string-append "0.2-1." (string-take commit 7)))
7926 (source (origin
7927 (method git-fetch)
7928 (uri (git-reference
7929 (url "https://git.gnome.org/browse/byzanz")
7930 (commit commit)))
7931 (file-name (string-append name "-" version "-checkout"))
7932 (sha256
7933 (base32
7934 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7935 (build-system glib-or-gtk-build-system)
7936 (arguments
7937 '(#:phases
7938 (modify-phases %standard-phases
7939 (replace 'bootstrap
7940 (lambda _
7941 ;; The build system cleverly detects that we're not building from
7942 ;; a release tarball and turns on -Werror for GCC.
7943 ;; Unsurprisingly, there is a warning during compilation that
7944 ;; causes the build to fail unnecessarily, so we remove the flag.
7945 (substitute* '("configure.ac")
7946 (("-Werror") ""))
7947 ;; The autogen.sh script in gnome-common will run ./configure
7948 ;; by default, which is problematic because source shebangs
7949 ;; have not yet been patched.
7950 (setenv "NOCONFIGURE" "t")
7951 (zero? (system* "sh" "autogen.sh")))))))
7952 (native-inputs
7953 `(("autoconf" ,autoconf)
7954 ("automake" ,automake)
7955 ("gnome-common" ,gnome-common)
7956 ("intltool" ,intltool)
7957 ("libtool" ,libtool)
7958 ("pkg-config" ,pkg-config)
7959 ("which" ,which)))
7960 (inputs
7961 `(("glib" ,glib)
7962 ("gstreamer" ,gstreamer)
7963 ("gst-plugins-base" ,gst-plugins-base)
7964 ("gtk+" ,gtk+)))
7965 (synopsis "Desktop recording program")
7966 (description "Byzanz is a simple desktop recording program with a
7967 command-line interface. It can record part or all of an X display for a
7968 specified duration and save it as a GIF encoded animated image file.")
7969 (home-page "https://git.gnome.org/browse/byzanz")
7970 (license license:gpl2+))))
7971
7972 (define-public gsound
7973 (package
7974 (name "gsound")
7975 (version "1.0.2")
7976 (source (origin
7977 (method url-fetch)
7978 (uri (string-append "mirror://gnome/sources/" name "/"
7979 (version-major+minor version) "/"
7980 name "-" version ".tar.xz"))
7981 (sha256
7982 (base32
7983 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7984 (build-system glib-or-gtk-build-system)
7985 (native-inputs
7986 `(("pkg-config" ,pkg-config)
7987 ("gobject-introspection" ,gobject-introspection)
7988 ("vala" ,vala)))
7989 (inputs
7990 `(("glib" ,glib)
7991 ("libcanberra" ,libcanberra)))
7992 (home-page "https://wiki.gnome.org/Projects/GSound")
7993 (synopsis "GObject wrapper for libcanberra")
7994 (description
7995 "GSound is a small library for playing system sounds. It's designed to be
7996 used via GObject Introspection, and is a thin wrapper around the libcanberra C
7997 library.")
7998 (license license:lgpl2.1+)))
7999
8000 (define-public libzapojit
8001 (package
8002 (name "libzapojit")
8003 (version "0.0.3")
8004 (source (origin
8005 (method url-fetch)
8006 (uri (string-append "mirror://gnome/sources/" name "/"
8007 (version-major+minor version) "/"
8008 name "-" version ".tar.xz"))
8009 (sha256
8010 (base32
8011 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8012 (build-system gnu-build-system)
8013 (native-inputs
8014 `(("gobject-introspection" ,gobject-introspection)
8015 ("intltool" ,intltool)
8016 ("pkg-config" ,pkg-config)))
8017 (inputs
8018 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8019 ("json-glib" ,json-glib)
8020 ("rest" ,rest)))
8021 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8022 (synopsis "Library for accessing SkyDrive and Hotmail")
8023 (description
8024 "Libzapojit is a GLib-based library for accessing online service APIs of
8025 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8026 (license license:lgpl2.1+)))
8027
8028 (define-public gnome-clocks
8029 (package
8030 (name "gnome-clocks")
8031 (version "3.32.0")
8032 (source (origin
8033 (method url-fetch)
8034 (uri (string-append "mirror://gnome/sources/" name "/"
8035 (version-major+minor version) "/"
8036 name "-" version ".tar.xz"))
8037 (sha256
8038 (base32
8039 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
8040 (build-system meson-build-system)
8041 (arguments
8042 '(#:glib-or-gtk? #t))
8043 (native-inputs
8044 `(("vala" ,vala)
8045 ("pkg-config" ,pkg-config)
8046 ("glib" ,glib "bin") ; for glib-compile-resources
8047 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8048 ("desktop-file-utils" ,desktop-file-utils)
8049 ("gettext" ,gettext-minimal)
8050 ("itstool" ,itstool)))
8051 (inputs
8052 `(("glib" ,glib)
8053 ("gtk+" ,gtk+)
8054 ("gsound" ,gsound)
8055 ("geoclue" ,geoclue)
8056 ("geocode-glib" ,geocode-glib)
8057 ("libgweather" ,libgweather)
8058 ("gnome-desktop" ,gnome-desktop)))
8059 (home-page "https://wiki.gnome.org/Apps/Clocks")
8060 (synopsis "GNOME's clock application")
8061 (description
8062 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8063 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8064 (license license:gpl3+)))
8065
8066 (define-public gnome-calendar
8067 (package
8068 (name "gnome-calendar")
8069 (version "3.32.2")
8070 (source (origin
8071 (method url-fetch)
8072 (uri (string-append "mirror://gnome/sources/" name "/"
8073 (version-major+minor version) "/"
8074 name "-" version ".tar.xz"))
8075 (sha256
8076 (base32
8077 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
8078 (build-system meson-build-system)
8079 (arguments
8080 '(#:glib-or-gtk? #t
8081 ;; gnome-calendar has to be installed before the tests can be run
8082 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8083 #:tests? #f))
8084 (native-inputs
8085 `(("gettext" ,gettext-minimal)
8086 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8087 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8088 ("pkg-config" ,pkg-config)))
8089 (inputs
8090 `(("evolution-data-server" ,evolution-data-server)
8091 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8092 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8093 ("libdazzle" ,libdazzle)
8094 ("libedataserverui" ,evolution-data-server)
8095 ("libgweather" ,libgweather)
8096 ("geoclue" ,geoclue)))
8097 (home-page "https://wiki.gnome.org/Apps/Calendar")
8098 (synopsis "GNOME's calendar application")
8099 (description
8100 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8101 desktop. It supports multiple calendars, month, week and year view.")
8102 (license license:gpl3+)))
8103
8104 (define-public gnome-todo
8105 (package
8106 (name "gnome-todo")
8107 (version "3.28.1")
8108 (source (origin
8109 (method url-fetch)
8110 (uri (string-append "mirror://gnome/sources/" name "/"
8111 (version-major+minor version) "/"
8112 name "-" version ".tar.xz"))
8113 (sha256
8114 (base32
8115 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
8116 (build-system meson-build-system)
8117 (arguments
8118 '(#:glib-or-gtk? #t
8119 #:phases (modify-phases %standard-phases
8120 (add-after
8121 'install 'wrap-gnome-todo
8122 (lambda* (#:key inputs outputs #:allow-other-keys)
8123 (let ((out (assoc-ref outputs "out"))
8124 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8125 (python-path (getenv "PYTHONPATH")))
8126 (wrap-program (string-append out "/bin/gnome-todo")
8127 ;; XXX: gi plugins are broken.
8128 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8129 ;; For plugins.
8130 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8131 `("PYTHONPATH" ":" prefix (,python-path))))
8132 #t)))))
8133 (native-inputs
8134 `(("gettext" ,gettext-minimal)
8135 ("gobject-introspection" ,gobject-introspection)
8136 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8137 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8138 ("pkg-config" ,pkg-config)))
8139 (inputs
8140 `(("rest" ,rest) ; For Todoist plugin
8141 ("json-glib" ,json-glib) ; For Todoist plugin
8142 ("libedataserverui" ,evolution-data-server)
8143 ("libical" ,libical)
8144 ("libpeas" ,libpeas)
8145 ("python-pygobject" ,python-pygobject)
8146 ("evolution-data-server" ,evolution-data-server)
8147 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8148 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8149 (home-page "https://wiki.gnome.org/Apps/Todo")
8150 (synopsis "GNOME's ToDo Application")
8151 (description
8152 "GNOME To Do is a simplistic personal task manager designed to perfectly
8153 fit the GNOME desktop.")
8154 (license license:gpl3+)))
8155
8156 (define-public gnome-dictionary
8157 (package
8158 (name "gnome-dictionary")
8159 (version "3.26.1")
8160 (source (origin
8161 (method url-fetch)
8162 (uri (string-append "mirror://gnome/sources/" name "/"
8163 (version-major+minor version) "/"
8164 name "-" version ".tar.xz"))
8165 (sha256
8166 (base32
8167 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8168 (build-system meson-build-system)
8169 (arguments '(#:glib-or-gtk? #t
8170 #:phases (modify-phases %standard-phases
8171 (add-after 'unpack 'patch-install-script
8172 (lambda _
8173 ;; This script attempts to compile glib schemas
8174 ;; and create an empty MIME database. We do
8175 ;; that elsewhere, so prevent it from running.
8176 (substitute* "build-aux/post-install.sh"
8177 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8178 #t)))))
8179 (native-inputs
8180 `(("glib:bin" ,glib "bin")
8181 ("gobject-introspection" ,gobject-introspection)
8182 ("intltool" ,intltool)
8183 ("itstool" ,itstool)
8184 ("pkg-config" ,pkg-config)
8185 ("xmllint" ,libxml2)))
8186 (inputs
8187 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8188 ("gtk+" ,gtk+)))
8189 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8190 (synopsis "Look up words in dictionary sources")
8191 (description
8192 "GNOME Dictionary can look for the definition or translation of a word in
8193 existing databases over the internet.")
8194 (license license:gpl3+)))
8195
8196 (define-public gnome-tweaks
8197 (package
8198 (name "gnome-tweaks")
8199 (version "3.32.0")
8200 (source (origin
8201 (method url-fetch)
8202 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8203 (version-major+minor version) "/"
8204 "gnome-tweaks-" version ".tar.xz"))
8205 (patches
8206 (list (search-patch "gnome-tweaks-search-paths.patch")))
8207 (sha256
8208 (base32
8209 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
8210 (build-system meson-build-system)
8211 (arguments
8212 `(#:glib-or-gtk? #t
8213 #:configure-flags '("-Dlocalstatedir=/tmp"
8214 "-Dsysconfdir=/tmp")
8215 #:imported-modules ((guix build python-build-system)
8216 ,@%meson-build-system-modules)
8217 #:phases
8218 (modify-phases %standard-phases
8219 (add-after 'install 'wrap
8220 (@@ (guix build python-build-system) wrap))
8221 (add-after 'wrap 'wrap-gi-typelib
8222 (lambda* (#:key inputs outputs #:allow-other-keys)
8223 (let ((out (assoc-ref outputs "out"))
8224 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8225 (wrap-program (string-append out "/bin/gnome-tweaks")
8226 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8227 #t)))))
8228 (native-inputs
8229 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8230 ("intltool" ,intltool)
8231 ("pkg-config" ,pkg-config)))
8232 (inputs
8233 `(("gnome-desktop" ,gnome-desktop)
8234 ("gtk+" ,gtk+)
8235 ("gobject-introspection" ,gobject-introspection)
8236 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8237 ("libnotify" ,libnotify)
8238 ("libsoup" ,libsoup)
8239 ("nautilus" ,nautilus)
8240 ("python" ,python)
8241 ("python-pygobject" ,python-pygobject)))
8242 (synopsis "Customize advanced GNOME 3 options")
8243 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8244 (description
8245 "GNOME Tweaks allows adjusting advanced configuration settings in
8246 GNOME 3. This includes things like the fonts used in user interface elements,
8247 alternative user interface themes, changes in window management behavior,
8248 GNOME Shell appearance and extension, etc.")
8249 (license license:gpl3+)))
8250
8251 ;; This package has been renamed by upstream.
8252 (define-public gnome-tweak-tool
8253 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
8254
8255 (define-public gnome-shell-extensions
8256 (package
8257 (name "gnome-shell-extensions")
8258 (version "3.32.1")
8259 (source (origin
8260 (method url-fetch)
8261 (uri (string-append "mirror://gnome/sources/" name "/"
8262 (version-major+minor version) "/"
8263 name "-" version ".tar.xz"))
8264 (sha256
8265 (base32
8266 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
8267 (build-system meson-build-system)
8268 (arguments
8269 '(#:configure-flags '("-Dextension_set=all")))
8270 (native-inputs
8271 `(("glib:bin" ,glib "bin")
8272 ("intltool" ,intltool)
8273 ("pkg-config" ,pkg-config)))
8274 (propagated-inputs
8275 `(("glib" ,glib)))
8276 (synopsis "Extensions for GNOME Shell")
8277 (description "GNOME Shell extensions modify and extend GNOME Shell
8278 functionality and behavior.")
8279 (home-page "https://extensions.gnome.org/")
8280 (license license:gpl3+)))
8281
8282 (define-public arc-theme
8283 (package
8284 (name "arc-theme")
8285 (version "20190917")
8286 (source (origin
8287 (method git-fetch)
8288 (uri (git-reference
8289 (url "https://github.com/NicoHood/arc-theme.git")
8290 (commit version)))
8291 (file-name (git-file-name name version))
8292 (sha256
8293 (base32
8294 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8295 (build-system gnu-build-system)
8296 (arguments
8297 '(#:phases
8298 (modify-phases %standard-phases
8299 ;; autogen.sh calls configure at the end of the script.
8300 (replace 'bootstrap
8301 (lambda _ (invoke "autoreconf" "-vfi")))
8302 (add-before 'build 'set-home ;placate Inkscape
8303 (lambda _
8304 (setenv "HOME" (getcwd))
8305 #t)))))
8306 (native-inputs
8307 `(("autoconf" ,autoconf)
8308 ("automake" ,automake)
8309 ("glib" ,glib "bin") ; for glib-compile-resources
8310 ("gnome-shell" ,gnome-shell)
8311 ("gtk+" ,gtk+)
8312 ("inkscape" ,inkscape)
8313 ("optipng" ,optipng)
8314 ("pkg-config" ,pkg-config)
8315 ("sassc" ,sassc/libsass-3.5)))
8316 (synopsis "A flat GTK+ theme with transparent elements")
8317 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8318 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8319 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8320 (home-page "https://github.com/horst3180/arc-theme")
8321 ;; No "or later" language found.
8322 (license license:gpl3+)))
8323
8324 (define-public faba-icon-theme
8325 (package
8326 (name "faba-icon-theme")
8327 (version "4.3")
8328 (source
8329 (origin
8330 (method git-fetch)
8331 (uri (git-reference
8332 (url "https://github.com/snwh/faba-icon-theme.git")
8333 (commit (string-append "v" version))))
8334 (file-name (git-file-name name version))
8335 (sha256
8336 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8337 (build-system meson-build-system)
8338 (arguments
8339 `(#:phases
8340 (modify-phases %standard-phases
8341 (add-before 'configure 'disable-post-install
8342 (lambda _
8343 (substitute* "meson.build"
8344 (("meson.add_install_script.*") "")))))))
8345 (native-inputs
8346 `(("autoconf" ,autoconf)
8347 ("automake" ,automake)))
8348 (synopsis "Faba icon theme")
8349 (description
8350 "Faba is a minimal icon set used as a basis for other themes such as
8351 Moka")
8352 (home-page "https://snwh.org/moka")
8353 (license (list license:lgpl3+
8354 license:cc-by-sa4.0))))
8355
8356 (define-public moka-icon-theme
8357 (package
8358 (inherit faba-icon-theme)
8359 (name "moka-icon-theme")
8360 (version "5.4.0")
8361 (source
8362 (origin
8363 (method git-fetch)
8364 (uri (git-reference
8365 (url "https://github.com/snwh/moka-icon-theme.git")
8366 (commit (string-append "v" version))))
8367 (file-name (git-file-name name version))
8368 (sha256
8369 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8370 (propagated-inputs
8371 ;; Moka is based on Faba by using it as a fallback icon set instead of
8372 ;; bundling it, so we need to add it as a propagated input.
8373 `(("faba-icon-theme" ,faba-icon-theme)))
8374 (synopsis "Moka icon theme")
8375 (description "Moka is a stylized desktop icon set, designed to be clear,
8376 simple and consistent.")
8377 (license (list license:gpl3+
8378 license:cc-by-sa4.0))))
8379
8380 (define-public arc-icon-theme
8381 (package
8382 (name "arc-icon-theme")
8383 (version "20161122")
8384 (source
8385 (origin
8386 (method git-fetch)
8387 (uri (git-reference
8388 (url "https://github.com/horst3180/arc-icon-theme.git")
8389 (commit version)))
8390 (file-name (git-file-name name version))
8391 (sha256
8392 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8393 (build-system gnu-build-system)
8394 (arguments
8395 `(#:phases
8396 (modify-phases %standard-phases
8397 (add-after 'unpack 'disable-configure-during-bootstrap
8398 (lambda _
8399 (substitute* "autogen.sh"
8400 (("^\"\\$srcdir/configure\".*") ""))
8401 #t)))))
8402 (native-inputs
8403 `(("autoconf" ,autoconf)
8404 ("automake" ,automake)))
8405 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8406 (propagated-inputs
8407 `(("moka-icon-theme" ,moka-icon-theme)))
8408 (synopsis "Arc icon theme")
8409 (description "The Arc icon theme provides a set of icons matching the
8410 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8411 the Moka icon theme.")
8412 (home-page "https://github.com/horst3180/arc-icon-theme")
8413 (license license:gpl3+)))
8414
8415 (define-public folks
8416 (package
8417 (name "folks")
8418 (version "0.11.4")
8419 (source (origin
8420 (method url-fetch)
8421 (uri (string-append
8422 "mirror://gnome/sources/folks/"
8423 (version-major+minor version) "/"
8424 "folks-" version ".tar.xz"))
8425 (sha256
8426 (base32
8427 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
8428 (build-system glib-or-gtk-build-system)
8429 (inputs
8430 `(("bdb" ,bdb)
8431 ("dbus-glib" ,dbus-glib)
8432 ("evolution-data-server" ,evolution-data-server)
8433 ("glib" ,glib)
8434 ("libgee" ,libgee)
8435 ("telepathy-glib" ,telepathy-glib)))
8436 (native-inputs
8437 `(("gobject-introspection" ,gobject-introspection)
8438 ("intltool" ,intltool)
8439 ("pkg-config" ,pkg-config)
8440 ("vala" ,vala)))
8441 (synopsis "Library to aggregate data about people")
8442 (description "Libfolks is a library that aggregates information about people
8443 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8444 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8445 etc.) to create metacontacts. It's written in Vala, which generates C code when
8446 compiled.")
8447 (home-page "https://wiki.gnome.org/Projects/Folks")
8448 (license license:lgpl2.1+)))
8449
8450 (define-public gfbgraph
8451 (package
8452 (name "gfbgraph")
8453 (version "0.2.3")
8454 (source (origin
8455 (method url-fetch)
8456 (uri (string-append
8457 "mirror://gnome/sources/gfbgraph/"
8458 (version-major+minor version) "/"
8459 "gfbgraph-" version ".tar.xz"))
8460 (sha256
8461 (base32
8462 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8463 (build-system glib-or-gtk-build-system)
8464 (arguments
8465 `(#:tests? #f ; Tests appear to require the network.
8466 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8467 #:configure-flags '("--disable-gtk-doc"
8468 "--disable-static"
8469 "--enable-introspection")))
8470 (native-inputs
8471 `(("pkg-config" ,pkg-config)
8472 ("gobject-introspection" ,gobject-introspection)))
8473 (inputs
8474 `(("json-glib" ,json-glib)
8475 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8476 ("rest" ,rest)))
8477 (synopsis "GLib/GObject wrapper for the Facebook API")
8478 (description "This library allows you to use the Facebook API from
8479 GLib/GObject code.")
8480 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8481 (license license:lgpl2.1+)))
8482
8483 (define-public libgnomekbd
8484 (package
8485 (name "libgnomekbd")
8486 (version "3.26.1")
8487 (source (origin
8488 (method url-fetch)
8489 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8490 (version-major+minor version) "/"
8491 "libgnomekbd-" version ".tar.xz"))
8492 (sha256
8493 (base32
8494 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8495 (build-system gnu-build-system)
8496 (native-inputs
8497 `(("pkg-config" ,pkg-config)
8498 ("glib" ,glib "bin")
8499 ("intltool" ,intltool)))
8500 (propagated-inputs
8501 ;; Referred to in .h files and .pc.
8502 `(("glib" ,glib)
8503 ("gtk+" ,gtk+)
8504 ("libxklavier" ,libxklavier)))
8505 (home-page "https://www.gnome.org")
8506 (synopsis "GNOME keyboard configuration library")
8507 (description
8508 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8509 environment, which can notably display keyboard layouts.")
8510 (license license:lgpl2.0+)))
8511
8512 ;;; This package is no longer maintained:
8513 ;;; https://wiki.gnome.org/Attic/LibUnique
8514 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8515 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8516 (define-public libunique
8517 (package
8518 (name "libunique")
8519 (version "3.0.2")
8520 (source (origin
8521 (method url-fetch)
8522 (uri (string-append "mirror://gnome/sources/" name "/"
8523 (version-major+minor version) "/"
8524 name "-" version ".tar.xz"))
8525 (sha256
8526 (base32
8527 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8528 (build-system glib-or-gtk-build-system)
8529 (arguments
8530 `(#:configure-flags '("--disable-static"
8531 "--disable-dbus" ; use gdbus
8532 "--enable-introspection")))
8533 (native-inputs
8534 `(("pkg-config" ,pkg-config)
8535 ("gobject-introspection" ,gobject-introspection)
8536 ("glib:bin" ,glib "bin")
8537 ("gtk-doc" ,gtk-doc)))
8538 (propagated-inputs
8539 ;; Referred to in .h files and .pc.
8540 `(("gtk+" ,gtk+)))
8541 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8542 (synopsis "Library for writing single instance applications")
8543 (description
8544 "Libunique is a library for writing single instance applications. If you
8545 launch a single instance application twice, the second instance will either just
8546 quit or will send a message to the running instance. Libunique makes it easy to
8547 write this kind of application, by providing a base class, taking care of all
8548 the IPC machinery needed to send messages to a running instance, and also
8549 handling the startup notification side.")
8550 (license license:lgpl2.1+)))
8551
8552 (define-public gnome-calculator
8553 (package
8554 (name "gnome-calculator")
8555 (version "3.32.2")
8556 (source
8557 (origin
8558 (method url-fetch)
8559 (uri (string-append "mirror://gnome/sources/" name "/"
8560 (version-major+minor version) "/"
8561 name "-" version ".tar.xz"))
8562 (sha256
8563 (base32
8564 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
8565 (build-system meson-build-system)
8566 (arguments '(#:glib-or-gtk? #t))
8567 (native-inputs
8568 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8569 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8570 ("intltool" ,intltool)
8571 ("itstool" ,itstool)
8572 ("vala" ,vala)
8573 ("pkg-config" ,pkg-config)))
8574 (inputs
8575 `(("glib" ,glib)
8576 ("gtksourceview" ,gtksourceview)
8577 ("libsoup" ,libsoup)
8578 ("libxml2" ,libxml2)
8579 ("mpc" ,mpc)
8580 ("mpfr" ,mpfr)))
8581 (home-page "https://wiki.gnome.org/Apps/Calculator")
8582 (synopsis "Desktop calculator")
8583 (description
8584 "Calculator is an application that solves mathematical equations and
8585 is suitable as a default application in a Desktop environment.")
8586 (license license:gpl3)))
8587
8588 (define-public xpad
8589 (package
8590 (name "xpad")
8591 (version "5.1.0")
8592 (source
8593 (origin
8594 (method url-fetch)
8595 (uri (string-append "https://launchpad.net/xpad/trunk/"
8596 version "/+download/"
8597 name "-" version ".tar.bz2"))
8598 (sha256
8599 (base32
8600 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8601 (build-system gnu-build-system)
8602 (native-inputs
8603 `(("autoconf" ,autoconf)
8604 ("automake" ,automake)
8605 ("gtk+:bin" ,gtk+ "bin")
8606 ("intltool" ,intltool)
8607 ("pkg-config" ,pkg-config)))
8608 (inputs
8609 `(("gtksourceview" ,gtksourceview-3)
8610 ("libsm" ,libsm)))
8611 (home-page "https://wiki.gnome.org/Apps/Xpad")
8612 (synopsis "Virtual sticky note")
8613 (description
8614 "Xpad is a sticky note that strives to be simple, fault tolerant,
8615 and customizable. Xpad consists of independent pad windows, each is
8616 basically a text box in which notes can be written.")
8617 (license license:gpl3+)))
8618
8619 (define-public gucharmap
8620 (let ((unicode-files
8621 '(("Blocks.txt"
8622 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8623 ("DerivedAge.txt"
8624 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8625 ("NamesList.txt"
8626 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8627 ("Scripts.txt"
8628 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8629 ("UnicodeData.txt"
8630 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8631 ("Unihan.zip"
8632 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8633 (package
8634 (name "gucharmap")
8635 (version "12.0.1")
8636 (source
8637 (origin
8638 (method url-fetch)
8639 (uri (string-append "mirror://gnome/sources/" name "/"
8640 (version-major+minor version) "/"
8641 name "-" version ".tar.xz"))
8642 (sha256
8643 (base32
8644 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8645 (build-system glib-or-gtk-build-system)
8646 (arguments
8647 `(#:modules ((ice-9 match)
8648 (guix build glib-or-gtk-build-system)
8649 (guix build utils))
8650 #:configure-flags
8651 (list "--with-unicode-data=../unicode-data")
8652 #:phases
8653 (modify-phases %standard-phases
8654 (add-after 'unpack 'prepare-unicode-data
8655 (lambda* (#:key inputs #:allow-other-keys)
8656 (mkdir-p "../unicode-data")
8657 (with-directory-excursion "../unicode-data"
8658 (for-each (match-lambda
8659 ((file _)
8660 (install-file (assoc-ref inputs file) ".")))
8661 ',unicode-files))
8662 #t)))))
8663 (native-inputs
8664 `(("desktop-file-utils" ,desktop-file-utils)
8665 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8666 ("gobject-introspection" ,gobject-introspection)
8667 ("intltool" ,intltool)
8668 ("itstool" ,itstool)
8669 ("pkg-config" ,pkg-config)
8670 ,@(map (match-lambda
8671 ((file hash)
8672 `(,file
8673 ,(origin
8674 (method url-fetch)
8675 (uri (string-append
8676 "http://www.unicode.org/Public/12.0.0/ucd/"
8677 file))
8678 (sha256 (base32 hash))))))
8679 unicode-files)
8680 ("unzip" ,unzip)))
8681 (inputs
8682 `(("gtk+" ,gtk+)
8683 ("xmllint" ,libxml2)))
8684 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8685 (synopsis "Unicode character picker and font browser")
8686 (description
8687 "This program allows you to browse through all the available Unicode
8688 characters and categories for the installed fonts, and to examine their
8689 detailed properties. It is an easy way to find the character you might
8690 only know by its Unicode name or code point.")
8691 (license license:gpl3+))))
8692
8693 (define-public bluefish
8694 (package
8695 (name "bluefish")
8696 (version "2.2.10")
8697 (source
8698 (origin
8699 (method url-fetch)
8700 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8701 name "-" version ".tar.gz"))
8702 (sha256
8703 (base32
8704 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
8705 (build-system gnu-build-system)
8706 (native-inputs
8707 `(("desktop-file-utils" ,desktop-file-utils)
8708 ("intltool" ,intltool)
8709 ("pkg-config" ,pkg-config)))
8710 (inputs
8711 `(("enchant" ,enchant)
8712 ("gtk+" ,gtk+)
8713 ("python" ,python-2)
8714 ("xmllint" ,libxml2)
8715 ("gucharmap" ,gucharmap)))
8716 (home-page "http://bluefish.openoffice.nl")
8717 (synopsis "Web development studio")
8718 (description
8719 "Bluefish is an editor targeted towards programmers and web developers,
8720 with many options to write web sites, scripts and other code.
8721 Bluefish supports many programming and markup languages.")
8722 (license license:gpl3+)))
8723
8724 (define-public gnome-system-monitor
8725 (package
8726 (name "gnome-system-monitor")
8727 (version "3.32.1")
8728 (source
8729 (origin
8730 (method url-fetch)
8731 (uri (string-append "mirror://gnome/sources/" name "/"
8732 (version-major+minor version) "/"
8733 name "-" version ".tar.xz"))
8734 (sha256
8735 (base32
8736 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8737 (build-system meson-build-system)
8738 (arguments
8739 '(#:glib-or-gtk? #t
8740 #:configure-flags '("-Dsystemd=false")))
8741 (native-inputs
8742 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8743 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8744 ("intltool" ,intltool)
8745 ("itstool" ,itstool)
8746 ("libgtop" ,libgtop)
8747 ("polkit" ,polkit)
8748 ("pkg-config" ,pkg-config)))
8749 (inputs
8750 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8751 ("gtk+" ,gtk+)
8752 ("gtkmm" ,gtkmm)
8753 ("librsvg" ,librsvg)
8754 ("libxml2" ,libxml2)
8755 ("libwnck" ,libwnck)))
8756 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8757 (synopsis "Process viewer and system resource monitor for GNOME")
8758 (description
8759 "GNOME System Monitor is a GNOME process viewer and system monitor with
8760 an attractive, easy-to-use interface. It has features, such as a tree view
8761 for process dependencies, icons for processes, the ability to hide processes,
8762 graphical time histories of CPU/memory/swap usage and the ability to
8763 kill/reinice processes.")
8764 (license license:gpl2+)))
8765
8766 (define-public python-pyatspi
8767 (package
8768 (name "python-pyatspi")
8769 (version "2.34.0")
8770 (source (origin
8771 (method url-fetch)
8772 (uri (string-append
8773 "mirror://gnome/sources/pyatspi/"
8774 (version-major+minor version)
8775 "/pyatspi-" version ".tar.xz"))
8776 (sha256
8777 (base32
8778 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8779 (build-system gnu-build-system)
8780 (arguments
8781 `(#:phases
8782 (modify-phases %standard-phases
8783 (add-before 'build 'fix-atk-load
8784 (lambda _
8785 (substitute* "pyatspi/__init__.py"
8786 (("from gi.repository import Atspi")
8787 "gi.require_version('Gtk', '3.0')
8788 from gi.repository import Gtk
8789 from gi.repository import Atspi"))
8790 #t)))))
8791 (native-inputs
8792 `(("pkg-config" ,pkg-config)))
8793 (inputs
8794 `(("python" ,python)
8795 ("python-pygobject" ,python-pygobject)))
8796 (synopsis "Python client bindings for D-Bus AT-SPI")
8797 (home-page "https://wiki.linuxfoundation.org/accessibility\
8798 /atk/at-spi/at-spi_on_d-bus")
8799 (description
8800 "This package includes a python client library for the AT-SPI D-Bus
8801 accessibility infrastructure.")
8802 (license license:lgpl2.0)
8803 (properties '((upstream-name . "pyatspi")))))
8804
8805 (define-public orca
8806 (package
8807 (name "orca")
8808 (version "3.32.0")
8809 (source (origin
8810 (method url-fetch)
8811 (uri (string-append
8812 "mirror://gnome/sources/" name "/"
8813 (version-major+minor version) "/"
8814 name "-" version ".tar.xz"))
8815 (sha256
8816 (base32
8817 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
8818 (build-system glib-or-gtk-build-system)
8819 (arguments
8820 '(#:phases
8821 (modify-phases %standard-phases
8822 (add-before 'configure 'qualify-xkbcomp
8823 (lambda* (#:key inputs #:allow-other-keys)
8824 (let ((xkbcomp (string-append
8825 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8826 (substitute* "src/orca/orca.py"
8827 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8828 #t))
8829 (add-after 'install 'wrap-orca
8830 (lambda* (#:key outputs #:allow-other-keys)
8831 (let* ((out (assoc-ref outputs "out"))
8832 (prog (string-append out "/bin/orca")))
8833 (wrap-program prog
8834 `("GI_TYPELIB_PATH" ":" prefix
8835 (,(getenv "GI_TYPELIB_PATH")))
8836 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8837 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8838 `("PYTHONPATH" ":" prefix
8839 (,(getenv "PYTHONPATH")))))
8840 #t)))))
8841 (native-inputs
8842 `(("intltool" ,intltool)
8843 ("itstool" ,itstool)
8844 ("pkg-config" ,pkg-config)
8845 ("xmllint" ,libxml2)))
8846 (inputs
8847 `(("at-spi2-atk" ,at-spi2-atk)
8848 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8849 ("gstreamer" ,gstreamer)
8850 ("gst-plugins-base" ,gst-plugins-base)
8851 ("gst-plugins-good" ,gst-plugins-good)
8852 ("gtk+" ,gtk+)
8853 ("python" ,python)
8854 ("python-pygobject" ,python-pygobject)
8855 ("python-pyatspi" ,python-pyatspi)
8856 ("python-speechd" ,speech-dispatcher)
8857 ("xkbcomp" ,xkbcomp)))
8858 (synopsis
8859 "Screen reader for individuals who are blind or visually impaired")
8860 (home-page "https://wiki.gnome.org/Projects/Orca")
8861 (description
8862 "Orca is a screen reader that provides access to the graphical desktop
8863 via speech and refreshable braille. Orca works with applications and toolkits
8864 that support the Assistive Technology Service Provider Interface (AT-SPI).")
8865 (license license:lgpl2.1+)))
8866
8867 (define-public gspell
8868 (package
8869 (name "gspell")
8870 (version "1.8.2")
8871 (source (origin
8872 (method url-fetch)
8873 (uri (string-append "mirror://gnome/sources/" name "/"
8874 (version-major+minor version) "/"
8875 name "-" version ".tar.xz"))
8876 (sha256
8877 (base32
8878 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
8879 (patches (search-patches "gspell-dash-test.patch"))))
8880 (build-system glib-or-gtk-build-system)
8881 (arguments
8882 '(#:phases
8883 (modify-phases %standard-phases
8884 (add-before 'check 'pre-check
8885 (lambda* (#:key inputs #:allow-other-keys)
8886 ;; Tests require a running X server.
8887 (system "Xvfb :1 &")
8888 (setenv "DISPLAY" ":1")
8889
8890 ;; For the missing /etc/machine-id.
8891 (setenv "DBUS_FATAL_WARNINGS" "0")
8892
8893 ;; Allow Enchant and its Aspell backend to find the en_US
8894 ;; dictionary.
8895 (setenv "ASPELL_DICT_DIR"
8896 (string-append (assoc-ref inputs "aspell-dict-en")
8897 "/lib/aspell"))
8898 #t)))))
8899 (inputs
8900 `(("gtk+" ,gtk+)
8901 ("glib" ,glib)
8902 ("iso-codes" ,iso-codes)))
8903 (native-inputs
8904 `(("glib" ,glib "bin")
8905 ("gobject-introspection" ,gobject-introspection)
8906 ("pkg-config" ,pkg-config)
8907 ("xmllint" ,libxml2)
8908
8909 ;; For tests.
8910 ("aspell-dict-en" ,aspell-dict-en)
8911 ("xorg-server" ,xorg-server-for-tests)))
8912 (propagated-inputs
8913 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
8914 (home-page "https://wiki.gnome.org/Projects/gspell")
8915 (synopsis "GNOME's alternative spell checker")
8916 (description
8917 "gspell provides a flexible API to add spell-checking to a GTK+
8918 application. It provides a GObject API, spell-checking to text entries and
8919 text views, and buttons to choose the language.")
8920 (license license:gpl2+)))
8921
8922 (define-public gnome-planner
8923 (package
8924 (name "gnome-planner")
8925 (version "0.14.6")
8926 (source (origin
8927 (method url-fetch)
8928 (uri (string-append "mirror://gnome/sources/planner/"
8929 (version-major+minor version) "/planner-"
8930 version ".tar.xz"))
8931 (sha256
8932 (base32
8933 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8934 (build-system glib-or-gtk-build-system)
8935 (arguments
8936 ;; Disable the Python bindings because the Planner program functions
8937 ;; without them, and (as of 2017-06-13) we have not packaged all of
8938 ;; packages that are necessary for building the Python bindings.
8939 `(#:configure-flags
8940 (list "--disable-python"
8941 ,@(if (string=? "aarch64-linux" (%current-system))
8942 '("--build=aarch64-unknown-linux-gnu")
8943 '()))))
8944 (inputs
8945 `(("libgnomecanvas" ,libgnomecanvas)
8946 ("libgnomeui" ,libgnomeui)
8947 ("libglade" ,libglade)
8948 ("gnome-vfs" ,gnome-vfs)
8949 ("gconf" ,gconf)
8950 ("libxml2" ,libxml2)
8951 ("libxslt" ,libxslt)
8952 ("gtk+" ,gtk+)
8953 ("glib" ,glib)))
8954 (native-inputs
8955 `(("intltool" ,intltool)
8956 ("scrollkeeper" ,scrollkeeper)
8957 ("pkg-config" ,pkg-config)))
8958 (home-page "https://wiki.gnome.org/Apps/Planner")
8959 (synopsis "Project management software for the GNOME desktop")
8960 (description
8961 "GNOME Planner is a project management tool based on the Work Breakdown
8962 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8963 the resources, tasks, and constraints that you define, Planner generates
8964 various views into a project. For example, Planner can show a Gantt chart of
8965 the project. It can show a detailed summary of tasks including their
8966 duration, cost, and current progress. It can also show a report of resource
8967 utilization that highlights under-utilized and over-utilized resources. These
8968 views can be printed as PDF or PostScript files, or exported to HTML.")
8969 (license license:gpl2+)))
8970
8971 (define-public lollypop
8972 (package
8973 (name "lollypop")
8974 (version "1.2.7")
8975 (source
8976 (origin
8977 (method url-fetch)
8978 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
8979 "08f973788c7ca46d9285eec2ac818edb/"
8980 "lollypop-" version ".tar.xz"))
8981 (sha256
8982 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
8983 (build-system meson-build-system)
8984 (arguments
8985 `(#:imported-modules ((guix build python-build-system)
8986 ,@%meson-build-system-modules)
8987 #:glib-or-gtk? #t
8988 #:tests? #f ; no test suite
8989 #:phases
8990 (modify-phases %standard-phases
8991 (add-after 'install 'wrap-program
8992 (lambda* (#:key outputs #:allow-other-keys)
8993 (let ((out (assoc-ref outputs "out"))
8994 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8995 (wrap-program (string-append out "/bin/lollypop")
8996 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8997 #t))
8998 (add-after 'install 'wrap-python
8999 (@@ (guix build python-build-system) wrap))
9000 (add-after 'install 'wrap-glib-or-gtk
9001 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
9002 (native-inputs
9003 `(("intltool" ,intltool)
9004 ("itstool" ,itstool)
9005 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9006 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9007 ("pkg-config" ,pkg-config)))
9008 (inputs
9009 `(("gobject-introspection" ,gobject-introspection)
9010 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9011 ("gst-plugins-base" ,gst-plugins-base)
9012 ("libnotify" ,libnotify)
9013 ("libsecret" ,libsecret)
9014 ("libsoup" ,libsoup)
9015 ("python" ,python)
9016 ("python-beautifulsoup4" ,python-beautifulsoup4)
9017 ("python-gst" ,python-gst)
9018 ("python-pil" ,python-pillow)
9019 ("python-pycairo" ,python-pycairo)
9020 ("python-pygobject" ,python-pygobject-3.34)
9021 ("python-pylast" ,python-pylast)
9022 ("totem-pl-parser" ,totem-pl-parser)
9023 ("webkitgtk" ,webkitgtk)))
9024 (propagated-inputs
9025 `(;; gst-plugins-base is required to start Lollypop,
9026 ;; the others are required to play streaming.
9027 ("gst-plugins-good" ,gst-plugins-good)
9028 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9029 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9030 (synopsis "GNOME music playing application")
9031 (description
9032 "Lollypop is a music player designed to play well with GNOME desktop.
9033 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9034 from artists and tracks from the web. It also fetches cover artworks
9035 automatically and it can stream songs from online music services and charts.")
9036 (license license:gpl3+)))
9037
9038 (define-public gnome-video-effects
9039 (package
9040 (name "gnome-video-effects")
9041 (version "0.4.3")
9042 (source (origin
9043 (method url-fetch)
9044 (uri (string-append "mirror://gnome/sources/" name "/"
9045 (version-major+minor version) "/" name "-"
9046 version ".tar.xz"))
9047 (sha256
9048 (base32
9049 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9050 (build-system glib-or-gtk-build-system)
9051 (arguments
9052 `(#:out-of-source? #f))
9053 (native-inputs
9054 `(("glib:bin" ,glib "bin")
9055 ("intltool" ,intltool)
9056 ("gettext" ,gettext-minimal)
9057 ("pkg-config" ,pkg-config)))
9058 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9059 (synopsis "Video effects for Cheese and other GNOME applications")
9060 (description
9061 "A collection of GStreamer video filters and effects to be used in
9062 photo-booth-like software, such as Cheese.")
9063 (license license:gpl2+)))
9064
9065 (define-public cheese
9066 (package
9067 (name "cheese")
9068 (version "3.32.1")
9069 (source (origin
9070 (method url-fetch)
9071 (uri (string-append "mirror://gnome/sources/" name "/"
9072 (version-major+minor version) "/" name "-"
9073 version ".tar.xz"))
9074 (sha256
9075 (base32
9076 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
9077 (arguments
9078 ;; Tests require GDK.
9079 `(#:tests? #f
9080 #:phases
9081 (modify-phases %standard-phases
9082 (add-before 'install 'skip-gtk-update-icon-cache
9083 (lambda _
9084 ;; Don't create 'icon-theme.cache'
9085 (substitute* "Makefile"
9086 (("gtk-update-icon-cache") (which "true")))
9087 #t))
9088 (add-after 'install 'wrap-cheese
9089 (lambda* (#:key inputs outputs #:allow-other-keys)
9090 (let ((out (assoc-ref outputs "out"))
9091 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9092 (wrap-program (string-append out "/bin/cheese")
9093 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9094 #t)))))
9095 (build-system glib-or-gtk-build-system)
9096 (native-inputs
9097 `(("glib:bin" ,glib "bin")
9098 ("intltool" ,intltool)
9099 ("itstool" ,itstool)
9100 ("libxml2" ,libxml2)
9101 ("pkg-config" ,pkg-config)
9102 ("vala" ,vala)))
9103 (propagated-inputs
9104 `(("gnome-video-effects" ,gnome-video-effects)
9105 ("clutter" ,clutter)
9106 ("clutter-gst" ,clutter-gst)
9107 ("clutter-gtk" ,clutter-gtk)
9108 ("libcanberra" ,libcanberra)
9109 ("gdk-pixbuf" ,gdk-pixbuf)
9110 ("glib" ,glib)
9111 ("gstreamer" ,gstreamer)))
9112 (inputs
9113 `(("gnome-desktop" ,gnome-desktop)
9114 ("gobject-introspection" ,gobject-introspection)
9115 ("gst-plugins-base" ,gst-plugins-base)
9116 ("gst-plugins-bad" ,gst-plugins-bad)
9117 ("gtk+" ,gtk+)
9118 ("libx11" ,libx11)
9119 ("libxtst" ,libxtst)))
9120 (home-page "https://wiki.gnome.org/Apps/Cheese")
9121 (synopsis "Webcam photo booth software for GNOME")
9122 (description
9123 "Cheese uses your webcam to take photos and videos. Cheese can also
9124 apply fancy special effects and lets you share the fun with others.")
9125 (license license:gpl2+)))
9126
9127 (define-public sound-juicer
9128 (package
9129 (name "sound-juicer")
9130 (version "3.24.0")
9131 (source
9132 (origin
9133 (method url-fetch)
9134 (uri (string-append "mirror://gnome/sources/" name "/"
9135 (version-major+minor version) "/"
9136 name "-" version ".tar.xz"))
9137 (sha256
9138 (base32
9139 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9140 (build-system glib-or-gtk-build-system)
9141 (native-inputs
9142 `(("desktop-file-utils" ,desktop-file-utils)
9143 ("intltool" ,intltool)
9144 ("itstool" ,itstool)
9145 ("pkg-config" ,pkg-config)
9146 ("xmllint" ,libxml2)))
9147 (inputs
9148 `(("gtk+" ,gtk+)
9149 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9150 ("gstreamer" ,gstreamer)
9151 ("gst-plugins-base" ,gst-plugins-base)
9152 ("gst-plugins-good" ,gst-plugins-good)
9153 ("iso-codes" ,iso-codes)
9154 ("libbrasero-media3" ,brasero)
9155 ("libcanberra" ,libcanberra)
9156 ("libdiscid" ,libdiscid)
9157 ("libmusicbrainz" ,libmusicbrainz)
9158 ("neon" ,neon)))
9159 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9160 (synopsis "Audio music cd ripper")
9161 (description "Sound Juicer extracts audio from compact discs and convert it
9162 into audio files that a personal computer or digital audio player can play.
9163 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9164 mp3, Ogg Vorbis and FLAC")
9165 (license license:gpl2+)))
9166
9167 (define-public soundconverter
9168 (package
9169 (name "soundconverter")
9170 (version "3.0.1")
9171 (source
9172 (origin
9173 (method url-fetch)
9174 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9175 version "/+download/"
9176 "soundconverter-" version ".tar.xz"))
9177
9178 (sha256
9179 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
9180 (patches
9181 (search-patches
9182 "soundconverter-remove-gconf-dependency.patch"))))
9183 (build-system glib-or-gtk-build-system)
9184 (arguments
9185 `(#:imported-modules ((guix build python-build-system)
9186 (guix build glib-or-gtk-build-system)
9187 ,@%gnu-build-system-modules)
9188
9189 #:modules ((guix build glib-or-gtk-build-system)
9190 (guix build utils)
9191 ((guix build gnu-build-system) #:prefix gnu:)
9192 ((guix build python-build-system) #:prefix python:))
9193
9194 #:phases
9195 (modify-phases %standard-phases
9196 (add-after 'install 'wrap-soundconverter-for-python
9197 (assoc-ref python:%standard-phases 'wrap))
9198 (add-after 'install 'wrap-soundconverter
9199 (lambda* (#:key inputs outputs #:allow-other-keys)
9200 (let ((out (assoc-ref outputs "out"))
9201 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9202 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9203 (wrap-program (string-append out "/bin/soundconverter")
9204 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9205 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9206 #t)))))
9207 (native-inputs
9208 `(("intltool" ,intltool)
9209 ("pkg-config" ,pkg-config)
9210 ("glib:bin" ,glib "bin")))
9211 (inputs
9212 `(("gtk+" ,gtk+)
9213 ("python" ,python)
9214 ("python-pygobject" ,python-pygobject)
9215 ("gstreamer" ,gstreamer)
9216 ("gst-plugins-base" ,gst-plugins-base)))
9217 (home-page "http://soundconverter.org/")
9218 (synopsis "Convert between audio formats with a graphical interface")
9219 (description
9220 "SoundConverter supports converting between many audio formats including
9221 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9222 configurable file renaming. ")
9223 (license license:gpl3)))
9224
9225 (define-public workrave
9226 (package
9227 (name "workrave")
9228 (version "1.10.34")
9229 (source
9230 (origin
9231 (method git-fetch)
9232 (uri (git-reference
9233 (url "https://github.com/rcaelers/workrave.git")
9234 (commit (string-append "v" (string-map
9235 (match-lambda (#\. #\_) (chr chr))
9236 version)))))
9237 (file-name (git-file-name name version))
9238 (sha256
9239 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
9240 (build-system glib-or-gtk-build-system)
9241 (inputs `(("glib" ,glib)
9242 ("gtk+" ,gtk+)
9243 ("gdk-pixbuf" ,gdk-pixbuf)
9244 ("gtkmm" ,gtkmm)
9245 ("glibmm" ,glibmm)
9246 ("libx11" ,libx11)
9247 ("libxtst" ,libxtst)
9248 ("dconf" ,dconf)
9249 ("libice" ,libice)
9250 ("libsm" ,libsm)
9251 ("libxscrnsaver" ,libxscrnsaver)))
9252 (native-inputs `(("boost" ,boost)
9253 ("pkg-config" ,pkg-config)
9254 ("gettext" ,gnu-gettext)
9255 ("autoconf" ,autoconf)
9256 ("autoconf-archive" , autoconf-archive)
9257 ("automake" ,automake)
9258 ("libtool" ,libtool)
9259 ("intltool" ,intltool)
9260 ("gobject-introspection" ,gobject-introspection)
9261 ("python3" ,python-3)
9262 ("python-jinja2" ,python-jinja2)))
9263 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9264 (description
9265 "Workrave is a program that assists in the recovery and prevention of
9266 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9267 micro-pauses and rest breaks, and restricts you to your daily limit.")
9268 (home-page "http://www.workrave.org")
9269 (license license:gpl3+)))
9270
9271 (define-public ghex
9272 (package
9273 (name "ghex")
9274 (version "3.18.4")
9275 (source (origin
9276 (method url-fetch)
9277 (uri (string-append "mirror://gnome/sources/ghex/"
9278 (version-major+minor version) "/"
9279 "ghex-" version ".tar.xz"))
9280 (sha256
9281 (base32
9282 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9283 (build-system meson-build-system)
9284 (arguments
9285 '(#:glib-or-gtk? #t
9286 #:phases
9287 (modify-phases %standard-phases
9288 (add-after 'unpack 'skip-gtk-update-icon-cache
9289 ;; Don't create 'icon-theme.cache'.
9290 (lambda _
9291 (substitute* "meson_post_install.py"
9292 (("gtk-update-icon-cache") (which "true")))
9293 #t)))))
9294 (native-inputs
9295 `(("pkg-config" ,pkg-config)
9296 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9297 ("gnome-common" ,gnome-common)
9298 ("which" ,which)
9299 ("intltool" ,intltool)
9300 ("yelp-tools" ,yelp-tools)
9301 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9302 (inputs
9303 `(("atk" ,atk)
9304 ("gtk" ,gtk+)))
9305 (synopsis "GNOME hexadecimal editor")
9306 (description "The GHex program can view and edit files in two ways:
9307 hexadecimal or ASCII. It is useful for editing binary files in general.")
9308 (home-page "https://wiki.gnome.org/Apps/Ghex")
9309 (license license:gpl2)))
9310
9311 (define-public libdazzle
9312 (package
9313 (name "libdazzle")
9314 (version "3.33.90")
9315 (source (origin
9316 (method url-fetch)
9317 (uri (string-append "mirror://gnome/sources/libdazzle/"
9318 (version-major+minor version) "/"
9319 "libdazzle-" version ".tar.xz"))
9320 (sha256
9321 (base32
9322 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
9323 (build-system meson-build-system)
9324 (arguments
9325 `(#:phases
9326 (modify-phases %standard-phases
9327 (add-before 'check 'pre-check
9328 (lambda _
9329 ;; Tests require a running X server.
9330 (system "Xvfb :1 &")
9331 (setenv "DISPLAY" ":1")
9332 #t)))))
9333 (native-inputs
9334 `(("glib" ,glib "bin") ; glib-compile-resources
9335 ("pkg-config" ,pkg-config)
9336 ;; For tests.
9337 ("xorg-server" ,xorg-server-for-tests)))
9338 (inputs
9339 `(("glib" ,glib)
9340 ("gobject-introspection" ,gobject-introspection)
9341 ("gtk+" ,gtk+)
9342 ("vala" ,vala)))
9343 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9344 (synopsis "Companion library to GObject and Gtk+")
9345 (description "The libdazzle library is a companion library to GObject and
9346 Gtk+. It provides various features that the authors wish were in the
9347 underlying library but cannot for various reasons. In most cases, they are
9348 wildly out of scope for those libraries. In other cases, they are not quite
9349 generic enough to work for everyone.")
9350 (license license:gpl3+)))
9351
9352 (define-public evolution
9353 (package
9354 (name "evolution")
9355 (version "3.32.4")
9356 (source (origin
9357 (method url-fetch)
9358 (uri (string-append "mirror://gnome/sources/evolution/"
9359 (version-major+minor version) "/"
9360 "evolution-" version ".tar.xz"))
9361 (sha256
9362 (base32
9363 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
9364 (build-system cmake-build-system)
9365 (arguments
9366 `(#:imported-modules (,@%cmake-build-system-modules
9367 (guix build glib-or-gtk-build-system))
9368 #:modules ((guix build cmake-build-system)
9369 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9370 (guix build utils))
9371 #:configure-flags
9372 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9373 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9374 ; in four years and cannot be built.
9375 #:phases
9376 (modify-phases %standard-phases
9377 ;; The build system attempts to install user interface modules to the
9378 ;; output directory of the "evolution-data-server" package. This
9379 ;; change redirects that change.
9380 (add-after 'unpack 'patch-ui-module-dir
9381 (lambda* (#:key outputs #:allow-other-keys)
9382 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9383 (("\\$\\{edsuimoduledir\\}")
9384 (string-append (assoc-ref outputs "out")
9385 "/lib/evolution-data-server/ui-modules")))
9386 #t))
9387 (add-after 'install 'glib-or-gtk-compile-schemas
9388 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9389 (add-after 'install 'glib-or-gtk-wrap
9390 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9391 (native-inputs
9392 `(("glib" ,glib "bin") ; glib-mkenums
9393 ("pkg-config" ,pkg-config)
9394 ("intltool" ,intltool)
9395 ("itstool" ,itstool)))
9396 (inputs
9397 `(("enchant" ,enchant)
9398 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9399 ("gcr" ,gcr)
9400 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9401 ("gnome-autoar" ,gnome-autoar)
9402 ("gnome-desktop" ,gnome-desktop)
9403 ("gtkspell3" ,gtkspell3)
9404 ("highlight" ,highlight)
9405 ("libcanberra" ,libcanberra)
9406 ("libedataserverui" ,evolution-data-server)
9407 ("libgweather" ,libgweather)
9408 ("libnotify" ,libnotify)
9409 ("libsoup" ,libsoup)
9410 ("nss" ,nss)
9411 ("openldap" ,openldap)
9412 ("webkitgtk" ,webkitgtk)
9413 ("ytnef" ,ytnef)))
9414 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9415 (synopsis "Manage your email, contacts and schedule")
9416 (description "Evolution is a personal information management application
9417 that provides integrated mail, calendaring and address book
9418 functionality.")
9419 ;; See COPYING for details.
9420 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9421 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9422 license:lgpl2.1+)))) ; smime/lib/*
9423
9424 (define-public gthumb
9425 (package
9426 (name "gthumb")
9427 (version "3.8.2")
9428 (source (origin
9429 (method url-fetch)
9430 (uri (string-append "mirror://gnome/sources/gthumb/"
9431 (version-major+minor version) "/"
9432 "gthumb-" version ".tar.xz"))
9433 (sha256
9434 (base32
9435 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9436 (build-system meson-build-system)
9437 (arguments
9438 `(#:glib-or-gtk? #t
9439 #:configure-flags
9440 ;; Ensure the RUNPATH contains all installed library locations.
9441 (list (string-append "-Dc_link_args=-Wl,-rpath="
9442 (assoc-ref %outputs "out")
9443 "/lib/gthumb/extensions")
9444 (string-append "-Dcpp_link_args=-Wl,-rpath="
9445 (assoc-ref %outputs "out")
9446 "/lib/gthumb/extensions"))))
9447 (native-inputs
9448 `(("pkg-config" ,pkg-config)
9449 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9450 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9451 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9452 ("intltool" ,intltool)
9453 ("itstool" ,itstool)))
9454 (inputs
9455 `(("exiv2" ,exiv2)
9456 ("gtk" ,gtk+)
9457 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9458 ("gstreamer" ,gstreamer)
9459 ("clutter" ,clutter)
9460 ("clutter-gst" ,clutter-gst)
9461 ("clutter-gtk" ,clutter-gtk)
9462 ("libjpeg" ,libjpeg)
9463 ("libtiff" ,libtiff)
9464 ("libraw" ,libraw)))
9465 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9466 (synopsis "GNOME image viewer and browser")
9467 (description "GThumb is an image viewer, browser, organizer, editor and
9468 advanced image management tool")
9469 (license license:gpl2+)))
9470
9471 (define-public terminator
9472 (package
9473 (name "terminator")
9474 (version "1.91")
9475 (source (origin
9476 (method url-fetch)
9477 (uri (string-append "https://launchpad.net/" name "/"
9478 "gtk3/" version "/" "+download/"
9479 name "-" version ".tar.gz"))
9480 (sha256
9481 (base32
9482 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9483 (build-system python-build-system)
9484 (native-inputs
9485 `(("intltool" ,intltool)
9486 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9487 ("gettext" ,gettext-minimal)
9488 ("pkg-config" ,pkg-config)))
9489 (inputs
9490 `(("cairo" ,cairo)
9491 ("gobject-introspection" ,gobject-introspection)
9492 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9493 ("python2-pycairo" ,python2-pycairo)
9494 ("python2-pygobject" ,python2-pygobject)
9495 ("python2-psutil" ,python2-psutil)
9496 ("vte" ,vte)))
9497 (arguments
9498 `(#:python ,python-2 ; Python 3 isn't supported
9499 #:imported-modules ((guix build glib-or-gtk-build-system)
9500 ,@%python-build-system-modules)
9501 #:modules ((guix build python-build-system)
9502 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9503 (guix build utils))
9504 #:phases
9505 (modify-phases %standard-phases
9506 (add-after
9507 'install 'wrap-program
9508 (lambda* (#:key outputs #:allow-other-keys)
9509 (let ((prog (string-append (assoc-ref outputs "out")
9510 "/bin/terminator")))
9511 (wrap-program prog
9512 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9513 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9514 #t)))
9515 (add-after 'wrap-program 'glib-or-gtk-wrap
9516 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9517 (home-page "https://gnometerminator.blogspot.com/")
9518 (synopsis "Store and run multiple GNOME terminals in one window")
9519 (description
9520 "Terminator allows you to run multiple GNOME terminals in a grid and
9521 +tabs, and it supports drag and drop re-ordering of terminals.")
9522 (license license:gpl2)))
9523
9524 (define-public libhandy
9525 (package
9526 (name "libhandy")
9527 (version "0.0.12")
9528 (source
9529 (origin
9530 (method git-fetch)
9531 (uri (git-reference
9532 (url "https://source.puri.sm/Librem5/libhandy")
9533 (commit (string-append "v" version))))
9534 (file-name (git-file-name name version))
9535 (sha256
9536 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9537 (build-system meson-build-system)
9538 (arguments
9539 `(#:configure-flags
9540 '("-Dglade_catalog=disabled"
9541 "-Dgtk_doc=true")
9542 #:phases
9543 (modify-phases %standard-phases
9544 (add-before 'check 'pre-check
9545 (lambda _
9546 ;; Tests require a running X server.
9547 (system "Xvfb :1 &")
9548 (setenv "DISPLAY" ":1")
9549 #t)))))
9550 (inputs
9551 `(("gtk+" ,gtk+)))
9552 (native-inputs
9553 `(("glib:bin" ,glib "bin")
9554 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9555 ("vala" ,vala)
9556 ("gtk-doc" ,gtk-doc)
9557 ("pkg-config" ,pkg-config)
9558 ("gettext" ,gettext-minimal)
9559
9560 ;; Test suite dependencies.
9561 ("xorg-server" ,xorg-server-for-tests)
9562 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9563 (home-page "https://source.puri.sm/Librem5/libhandy")
9564 (synopsis "Library full of GTK+ widgets for mobile phones")
9565 (description "The aim of the handy library is to help with developing user
9566 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9567 for usage on small and big screens.")
9568 (license license:lgpl2.1+)))
9569
9570 (define-public libgit2-glib
9571 (package
9572 (name "libgit2-glib")
9573 (version "0.28.0.1")
9574 (source (origin
9575 (method url-fetch)
9576 (uri (string-append "mirror://gnome/sources/" name "/"
9577 (version-major+minor version) "/"
9578 name "-" version ".tar.xz"))
9579 (sha256
9580 (base32
9581 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9582 (build-system meson-build-system)
9583 (native-inputs
9584 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9585 ("gobject-introspection" ,gobject-introspection)
9586 ("intltool" ,intltool)
9587 ("libssh2" ,libssh2)
9588 ("pkg-config" ,pkg-config)
9589 ("python-pygobject" ,python-pygobject)
9590 ("python-wrapper" ,python-wrapper)
9591 ("vala" ,vala)))
9592 (inputs
9593 `(("glib" ,glib)
9594 ("libgit2" ,libgit2)))
9595 (synopsis "GLib wrapper around the libgit2 Git access library")
9596 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9597 access library. It only implements the core plumbing functions, not really the
9598 higher level porcelain stuff.")
9599 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9600 (license license:gpl2+)))
9601
9602 (define-public gitg
9603 (package
9604 (name "gitg")
9605 (version "3.32.1")
9606 (source (origin
9607 (method url-fetch)
9608 (uri (string-append "mirror://gnome/sources/" name "/"
9609 (version-major+minor version) "/"
9610 name "-" version ".tar.xz"))
9611 (sha256
9612 (base32
9613 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9614 (build-system meson-build-system)
9615 (arguments
9616 `(#:glib-or-gtk? #t
9617 #:phases
9618 (modify-phases %standard-phases
9619 (add-after 'unpack 'disable-post-install-partially
9620 (lambda _
9621 (substitute* "meson_post_install.py"
9622 (("'python'") ; there are no python sources to compile
9623 (string-append "'" (which "true") "'"))
9624 (("gtk-update-icon-cache") (which "true")))
9625 #t))
9626 (add-after 'unpack 'fix-test-sources
9627 (lambda _
9628 (substitute* "tests/libgitg/test-commit.vala"
9629 (("/bin/bash") (which "bash")))
9630 #t))
9631 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9632 (lambda* (#:key outputs #:allow-other-keys)
9633 (let ((prog (string-append (assoc-ref outputs "out")
9634 "/bin/gitg")))
9635 (wrap-program prog
9636 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9637 #t))))))
9638 (inputs
9639 `(("glib" ,glib)
9640 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9641 ("gtk+" ,gtk+)
9642 ("gtkspell3" ,gtkspell3)
9643 ("gtksourceview" ,gtksourceview-3)
9644 ("json-glib" ,json-glib)
9645 ("libdazzle" ,libdazzle)
9646 ("libgee" ,libgee)
9647 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9648 ("libgit2-glib" ,libgit2-glib)
9649 ("libpeas" ,libpeas)
9650 ("libsecret" ,libsecret)
9651 ("libsoup" ,libsoup)
9652 ("libxml2" ,libxml2)))
9653 (native-inputs
9654 `(("glib:bin" ,glib "bin")
9655 ("gtk+:bin" ,gtk+ "bin")
9656 ("gobject-introspection" ,gobject-introspection)
9657 ("intltool" ,intltool)
9658 ("pkg-config" ,pkg-config)
9659 ("vala" ,vala)))
9660 (synopsis "Graphical user interface for git")
9661 (description
9662 "gitg is a graphical user interface for git. It aims at being a small,
9663 fast and convenient tool to visualize the history of git repositories.
9664 Besides visualization, gitg also provides several utilities to manage your
9665 repository and commit your work.")
9666 (home-page "https://wiki.gnome.org/Apps/Gitg")
9667 (license license:gpl2+)))
9668
9669 (define-public gamin
9670 (package
9671 (name "gamin")
9672 (version "0.1.10")
9673 (source (origin
9674 (method url-fetch)
9675 (uri (string-append "mirror://gnome/sources/" name "/"
9676 (version-major+minor version) "/"
9677 name "-" version ".tar.bz2"))
9678 (sha256
9679 (base32
9680 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9681 (build-system gnu-build-system)
9682 (arguments
9683 `(#:phases
9684 (modify-phases %standard-phases
9685 (add-after 'unpack 'remove-deprecated-macro
9686 (lambda _
9687 (substitute* '("server/gam_node.c"
9688 "server/gam_subscription.h"
9689 "server/gam_node.h"
9690 "server/gam_subscription.c")
9691 (("G_CONST_RETURN") "const"))
9692 #t)))))
9693 (inputs
9694 `(("glib" ,glib)))
9695 (native-inputs
9696 `(("intltool" ,intltool)
9697 ("pkg-config" ,pkg-config)))
9698 (home-page "https://people.gnome.org/~veillard/gamin/")
9699 (synopsis "File alteration monitor")
9700 (description
9701 "Gamin is a file and directory monitoring system defined to be a subset
9702 of the FAM (File Alteration Monitor) system. This is a service provided by a
9703 library which allows to detect when a file or a directory has been modified.")
9704 (license license:gpl2+)))
9705
9706 (define-public gnome-mahjongg
9707 (package
9708 (name "gnome-mahjongg")
9709 (version "3.35.1")
9710 (source (origin
9711 (method git-fetch)
9712 (uri (git-reference
9713 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9714 (commit version)))
9715 (file-name (git-file-name name version))
9716 (sha256
9717 (base32
9718 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9719 (build-system meson-build-system)
9720 (arguments
9721 `(#:glib-or-gtk? #t))
9722 (native-inputs
9723 `(("appstream-glib" ,appstream-glib)
9724 ("gettext" ,gettext-minimal)
9725 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9726 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9727 ("itstool" ,itstool)
9728 ("pkg-config" ,pkg-config)
9729 ("vala" ,vala)))
9730 (propagated-inputs
9731 `(("dconf" ,dconf)))
9732 (inputs
9733 `(("glib" ,glib)
9734 ("gtk+" ,gtk+)
9735 ("librsvg" ,librsvg)))
9736 (synopsis "Mahjongg tile-matching game")
9737 (description "GNOME Mahjongg is a game based on the classic Chinese
9738 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9739 and a high score table.")
9740 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9741 (license license:gpl2+)))
9742
9743 (define-public gnome-themes-extra
9744 (package
9745 (name "gnome-themes-extra")
9746 (version "3.28")
9747 (source
9748 (origin
9749 (method url-fetch)
9750 (uri (string-append "mirror://gnome/sources/" name "/"
9751 (version-major+minor version) "/" name "-"
9752 version ".tar.xz"))
9753 (sha256
9754 (base32
9755 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9756 (build-system gnu-build-system)
9757 (arguments
9758 '(#:configure-flags
9759 ;; Don't create 'icon-theme.cache'.
9760 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9761 (true (string-append coreutils "/bin/true")))
9762 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9763 (native-inputs
9764 `(("glib:bin" ,glib "bin")
9765 ("intltool" ,intltool)
9766 ("pkg-config" ,pkg-config)))
9767 (inputs
9768 `(("glib" ,glib)
9769 ("gtk+" ,gtk+)
9770 ("gtk+-2" ,gtk+-2)
9771 ("librsvg" ,librsvg)
9772 ("libxml2" ,libxml2)))
9773 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9774 (synopsis "GNOME Extra Themes")
9775 (description "This package provides themes and related elements that don't
9776 really fit in other upstream packages. It offers legacy support for GTK+ 2
9777 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9778 index files needed for Adwaita to be used outside of GNOME.")
9779 (license license:lgpl2.1+)))
9780
9781 (define-public polari
9782 (package
9783 (name "polari")
9784 (version "3.32.2")
9785 (source (origin
9786 (method url-fetch)
9787 (uri (string-append "mirror://gnome/sources/polari/"
9788 (version-major+minor version)
9789 "/polari-" version ".tar.xz"))
9790 (sha256
9791 (base32
9792 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9793 (build-system meson-build-system)
9794 (arguments
9795 `(#:glib-or-gtk? #t
9796 #:phases
9797 (modify-phases %standard-phases
9798 (add-after 'unpack 'skip-gtk-update-icon-cache
9799 (lambda _
9800 (substitute* "meson/meson-postinstall.sh"
9801 (("gtk-update-icon-cache") (which "true")))
9802 #t))
9803 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9804 (lambda* (#:key outputs #:allow-other-keys)
9805 (let ((prog (string-append (assoc-ref outputs "out")
9806 "/bin/polari")))
9807 (wrap-program prog
9808 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9809 #t))))))
9810 (inputs
9811 `(("glib" ,glib)
9812 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9813 ("gspell" ,gspell)
9814 ("gtk+" ,gtk+)
9815 ("gjs" ,gjs)
9816 ("libsecret" ,libsecret)
9817 ("libsoup" ,libsoup)
9818 ("telepathy-glib" ,telepathy-glib)
9819 ("telepathy-logger" ,telepathy-logger)))
9820 (native-inputs
9821 `(("glib:bin" ,glib "bin")
9822 ("gobject-introspection" ,gobject-introspection)
9823 ("intltool" ,intltool)
9824 ("pkg-config" ,pkg-config)
9825 ("yelp-tools" ,yelp-tools)))
9826 (propagated-inputs
9827 `(("telepathy-idle" ,telepathy-idle)
9828 ("telepathy-mission-control" ,telepathy-mission-control)))
9829 (synopsis "Simple IRC Client")
9830 (description
9831 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9832 integrate seamlessly with the GNOME desktop.")
9833 (home-page "https://wiki.gnome.org/Apps/Polari")
9834 (license license:gpl2+)))