gnu: Add sushi.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 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 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; 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 web)
169 #:use-module (gnu packages webkit)
170 #:use-module (gnu packages xdisorg)
171 #:use-module (gnu packages xiph)
172 #:use-module (gnu packages xml)
173 #:use-module (gnu packages xorg)
174 #:use-module (gnu packages xorg)
175 #:use-module (gnu artwork)
176 #:use-module (guix build-system cargo)
177 #:use-module (guix build-system cmake)
178 #:use-module (guix build-system glib-or-gtk)
179 #:use-module (guix build-system gnu)
180 #:use-module (guix build-system meson)
181 #:use-module (guix build-system python)
182 #:use-module (guix build-system trivial)
183 #:use-module (guix download)
184 #:use-module (guix git-download)
185 #:use-module ((guix licenses) #:prefix license:)
186 #:use-module (guix packages)
187 #:use-module (guix utils)
188 #:use-module (guix gexp)
189 #:use-module (guix monads)
190 #:use-module (guix store)
191 #:use-module (ice-9 match)
192 #:use-module (srfi srfi-1))
193
194 (define-public brasero
195 (package
196 (name "brasero")
197 (version "3.12.2")
198 (source (origin
199 (method url-fetch)
200 (uri (string-append "mirror://gnome/sources/brasero/"
201 (version-major+minor version) "/"
202 "brasero-" version ".tar.xz"))
203 (sha256
204 (base32
205 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
206 (build-system glib-or-gtk-build-system)
207 (arguments
208 `(#:configure-flags (list
209 (string-append "--with-girdir="
210 (assoc-ref %outputs "out")
211 "/share/gir-1.0")
212 (string-append "--with-typelibdir="
213 (assoc-ref %outputs "out")
214 "/lib/girepository-1.0"))
215 #:phases
216 (modify-phases %standard-phases
217 (add-before 'configure 'embed-growisofs
218 (lambda* (#:key inputs #:allow-other-keys)
219 (substitute* "plugins/growisofs/burn-growisofs.c"
220 (("\"growisofs") (string-append "\"" (which "growisofs"))))
221 #t)))))
222 (propagated-inputs
223 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
224 (native-inputs
225 `(("intltool" ,intltool)
226 ("itstool" ,itstool)
227 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
228 ("gobject-introspection" ,gobject-introspection)
229 ("pkg-config" ,pkg-config)))
230 (inputs
231 `(("dvd+rw-tools" ,dvd+rw-tools)
232 ("glib" ,glib)
233 ("gnome-doc-utils" ,gnome-doc-utils)
234 ("gstreamer" ,gstreamer)
235 ("gst-plugins-base" ,gst-plugins-base)
236 ("gtk+" ,gtk+)
237 ("libcanberra" ,libcanberra)
238 ("libice" ,libice)
239 ("libnotify" ,libnotify)
240 ("libsm" ,libsm)
241 ("libxml2" ,libxml2)
242 ("totem-pl-parser" ,totem-pl-parser)))
243 (home-page "https://wiki.gnome.org/Apps/Brasero")
244 (synopsis "CD/DVD burning tool for Gnome")
245 (description "Brasero is an application to burn CD/DVD for the Gnome
246 Desktop. It is designed to be as simple as possible and has some unique
247 features to enable users to create their discs easily and quickly.")
248 (license license:gpl2+)))
249
250 (define-public gnome-color-manager
251 (package
252 (name "gnome-color-manager")
253 (version "3.32.0")
254 (source (origin
255 (method url-fetch)
256 (uri (string-append "mirror://gnome/sources/" name "/"
257 (version-major+minor version) "/"
258 name "-" version ".tar.xz"))
259 (sha256
260 (base32
261 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
262 (build-system meson-build-system)
263 (arguments
264 `(#:glib-or-gtk? #t
265 #:phases
266 (modify-phases %standard-phases
267 (add-before
268 'check 'pre-check
269 (lambda _
270 ;; Tests require a running X server.
271 (system "Xvfb :1 &")
272 (setenv "DISPLAY" ":1")
273 #t)))))
274 (native-inputs
275 `(("desktop-file-utils" ,desktop-file-utils)
276 ("gettext" ,gettext-minimal)
277 ("glib:bin" ,glib "bin")
278 ("gtk+:bin" ,gtk+ "bin")
279 ("itstool" ,itstool)
280 ("pkg-config" ,pkg-config)
281 ("xorg-server" ,xorg-server-for-tests)))
282 (inputs
283 `(("adwaita-icon-theme" ,adwaita-icon-theme)
284 ("appstream-glib" ,appstream-glib)
285 ("colord-gtk" ,colord-gtk)
286 ("exiv2" ,exiv2)
287 ("gnome-desktop" ,gnome-desktop)
288 ("libcanberra" ,libcanberra)
289 ("libexif" ,libexif)
290 ("libtiff" ,libtiff)
291 ("libxrandr" ,libxrandr)
292 ("libxtst" ,libxtst)
293 ("libxxf86vm" ,libxxf86vm)
294 ("vte" ,vte)
295 ("xorgproto" ,xorgproto)))
296 (synopsis "Color profile manager for the GNOME desktop")
297 (description "GNOME Color Manager is a session framework that makes
298 it easy to manage, install and generate color profiles
299 in the GNOME desktop.")
300 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
301 (license license:gpl2+)))
302
303 (define-public gnome-online-miners
304 (package
305 (name "gnome-online-miners")
306 (version "3.30.0")
307 (source (origin
308 (method url-fetch)
309 (uri (string-append "mirror://gnome/sources/" name "/"
310 (version-major+minor version) "/"
311 name "-" version ".tar.xz"))
312 (sha256
313 (base32
314 "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"))))
315 (build-system glib-or-gtk-build-system)
316 (native-inputs
317 `(("gettext" ,gettext-minimal)
318 ("glib:bin" ,glib "bin")
319 ("gobject-introspection" ,gobject-introspection)
320 ("gtk+:bin" ,gtk+ "bin")
321 ("pkg-config" ,pkg-config)))
322 (inputs
323 `(("gnome-online-accounts" ,gnome-online-accounts)
324 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
325 ("grilo" ,grilo)
326 ("libgdata" ,libgdata)
327 ("libgfbgraph" ,gfbgraph)
328 ("libzapojit" ,libzapojit)
329 ("rest" ,rest)
330 ("tracker" ,tracker)))
331 (synopsis "Web Crawlers for GNOME")
332 (description "GNOME Online Miners provides a set of crawlers that
333 go through your online content and index them locally in Tracker.
334 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
335 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
336 (license license:gpl2+)))
337
338 (define-public gssdp
339 (package
340 (name "gssdp")
341 (version "1.2.2")
342 (source (origin
343 (method url-fetch)
344 (uri (string-append "mirror://gnome/sources/" name "/"
345 (version-major+minor version) "/"
346 name "-" version ".tar.xz"))
347 (sha256
348 (base32
349 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
350 (build-system meson-build-system)
351 (native-inputs
352 `(("gettext" ,gettext-minimal)
353 ("glib:bin" ,glib "bin")
354 ("gobject-introspection" ,gobject-introspection)
355 ("gtk-doc" ,gtk-doc)
356 ("pkg-config" ,pkg-config)
357 ("vala" ,vala)))
358 (inputs
359 `(("gtk+" ,gtk+)
360 ("libsoup" ,libsoup)))
361 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
362 Protocol} for GNOME")
363 (description "This package provides a library to handle resource discovery
364 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
365 a debugging tool, @command{gssdp-device-sniffer}.")
366 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
367 (license license:lgpl2.0+)))
368
369 (define-public gupnp
370 (package
371 (name "gupnp")
372 (version "1.2.2")
373 (source (origin
374 (method url-fetch)
375 (uri (string-append "mirror://gnome/sources/" name "/"
376 (version-major+minor version) "/"
377 name "-" version ".tar.xz"))
378 (sha256
379 (base32
380 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
381 (build-system meson-build-system)
382 (native-inputs
383 `(("gettext" ,gettext-minimal)
384 ("glib:bin" ,glib "bin")
385 ("gobject-introspection" ,gobject-introspection)
386 ("gtk-doc" ,gtk-doc)
387 ("pkg-config" ,pkg-config)
388 ("vala" ,vala)))
389 (inputs
390 `(("gssdp" ,gssdp)
391 ("gtk+" ,gtk+)
392 ("libsoup" ,libsoup)))
393 (synopsis "PnP API for GNOME")
394 (description "This package provides GUPnP, an object-oriented framework
395 for creating UPnP devices and control points, written in C using
396 @code{GObject} and @code{libsoup}.")
397 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
398 (license license:lgpl2.0+)))
399
400 (define-public gupnp-dlna
401 (package
402 (name "gupnp-dlna")
403 (version "0.10.5")
404 (source (origin
405 (method url-fetch)
406 (uri (string-append "mirror://gnome/sources/" name "/"
407 (version-major+minor version) "/"
408 name "-" version ".tar.xz"))
409 (sha256
410 (base32
411 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
412 (build-system gnu-build-system)
413 (native-inputs
414 `(("gettext" ,gettext-minimal)
415 ("glib:bin" ,glib "bin")
416 ("gobject-introspection" ,gobject-introspection)
417 ("gtk-doc" ,gtk-doc)
418 ("libxml" ,libxml2)
419 ("pkg-config" ,pkg-config)
420 ("vala" ,vala)))
421 (inputs
422 `(("gstreamer" ,gstreamer)
423 ("gupnp" ,gupnp)))
424 (propagated-inputs
425 `(("gst-plugins-base" ,gst-plugins-base)
426 ("gst-plugins-good" ,gst-plugins-good)))
427 (synopsis "GUPnP DLNA for GNOME")
428 (description "This package provides a small utility library to
429 support DLNA-related tasks such as media profile guessing, transcoding to a
430 given profile, etc. DLNA is a subset of UPnP A/V.")
431 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
432 (license license:lgpl2.0+)))
433
434 (define-public gupnp-av
435 (package
436 (name "gupnp-av")
437 (version "0.12.11")
438 (source (origin
439 (method url-fetch)
440 (uri (string-append "mirror://gnome/sources/" name "/"
441 (version-major+minor version) "/"
442 name "-" version ".tar.xz"))
443 (sha256
444 (base32
445 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
446 (build-system gnu-build-system)
447 (native-inputs
448 `(("gettext" ,gettext-minimal)
449 ("glib:bin" ,glib "bin")
450 ("gobject-introspection" ,gobject-introspection)
451 ("gtk-doc" ,gtk-doc)
452 ("libxml" ,libxml2)
453 ("pkg-config" ,pkg-config)))
454 (inputs
455 `(("gtk+" ,gtk+)
456 ("gupnp" ,gupnp)))
457 (synopsis "GUPnP A/V for GNOME")
458 (description "This package provides a small library for handling
459 and implementation of UPnP A/V profiles.")
460 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
461 (license license:lgpl2.0+)))
462
463 (define-public libmediaart
464 (package
465 (name "libmediaart")
466 (version "1.9.4")
467 (source (origin
468 (method url-fetch)
469 (uri (string-append "mirror://gnome/sources/" name "/"
470 (version-major+minor version) "/"
471 name "-" version ".tar.xz"))
472 (sha256
473 (base32
474 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
475 (build-system gnu-build-system)
476 (native-inputs
477 `(("glib:bin" ,glib "bin")
478 ("pkg-config" ,pkg-config)))
479 (inputs
480 `(("gdk-pixbuf" ,gdk-pixbuf)
481 ("gettext" ,gettext-minimal)
482 ("gobject-introspection" ,gobject-introspection)
483 ("gtk+:doc", gtk+ "doc")
484 ("vala" ,vala)))
485 (synopsis "Media art library for the GNOME desktop")
486 (description
487 "The libmediaart library is the foundation for media art caching,
488 extraction, and lookup for applications on the desktop.")
489 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
490 (license license:lgpl2.1+)))
491
492 (define-public gnome-initial-setup
493 (package
494 (name "gnome-initial-setup")
495 (version "3.32.1")
496 (source (origin
497 (method url-fetch)
498 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
499 (version-major+minor version)
500 "/gnome-initial-setup-" version ".tar.xz"))
501 (sha256
502 (base32
503 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
504 (build-system meson-build-system)
505 (arguments
506 '(#:configure-flags '(;; Enable camera support for user selfie.
507 "-Dcheese=auto"
508 "-Dsystemd=false")))
509 (native-inputs
510 `(("gettext" ,gettext-minimal)
511 ("glib:bin" ,glib "bin")
512 ("gobject-introspection" ,gobject-introspection)
513 ("gtk+:bin" ,gtk+ "bin")
514 ("pkg-config" ,pkg-config)))
515 (inputs
516 `(("accountsservice" ,accountsservice)
517 ;("adwaita-icon-theme" ,adwaita-icon-theme)
518 ("gdm" ,gdm)
519 ("geoclue" ,geoclue)
520 ("gnome-desktop" ,gnome-desktop)
521 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
522 ("gnome-online-accounts" ,gnome-online-accounts)
523 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
524 ("gstreamer" ,gstreamer)
525 ("ibus" ,ibus)
526 ("json-glib" ,json-glib)
527 ("krb5" ,mit-krb5)
528 ("libgweather" ,libgweather)
529 ("libsecret" ,libsecret)
530 ("network-manager" ,network-manager)
531 ("network-manager-applet" ,network-manager-applet)
532 ("packagekit" ,packagekit)
533 ("polkit" ,polkit)
534 ("pwquality" ,libpwquality)
535 ("rest" ,rest)
536 ("upower" ,upower)
537 ("webkitgtk" ,webkitgtk)))
538 (synopsis "Initial setup wizard for GNOME desktop")
539 (description "This package provides a set-up wizard when a
540 user logs into GNOME for the first time. It typically provides a
541 tour of all gnome components and allows the user to set them up.")
542 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
543 (license license:gpl2)))
544
545 (define-public gnome-user-share
546 (package
547 (name "gnome-user-share")
548 (version "3.33.1")
549 (source (origin
550 (method url-fetch)
551 (uri (string-append "mirror://gnome/sources/" name "/"
552 (version-major+minor version) "/"
553 name "-" version ".tar.xz"))
554 (sha256
555 (base32
556 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
557 (build-system meson-build-system)
558 (arguments
559 `(#:glib-or-gtk? #t
560 #:configure-flags
561 `("-Dsystemd=false"
562 ;; Enable nautilus extension for file sharing.
563 "-Dnautilus_extension=true")))
564 (native-inputs
565 `(("gettext" ,gettext-minimal)
566 ("glib:bin" ,glib "bin")
567 ("gobject-introspection" ,gobject-introspection)
568 ("gtk+:bin" ,gtk+ "bin")
569 ("pkg-config" ,pkg-config)
570 ("yelp-tools" ,yelp-tools)))
571 (inputs
572 `(("glib" ,glib)
573 ("gnome-bluetooth" ,gnome-bluetooth)
574 ("gtk+" ,gtk+)
575 ("libcanberra" ,libcanberra)
576 ("libnotify" ,libnotify)
577 ("nautilus" ,nautilus))) ; For nautilus extension.
578 (synopsis "File sharing for GNOME desktop")
579 (description "GNOME User Share is a small package that binds together
580 various free software projects to bring easy to use user-level file
581 sharing to the masses.")
582 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
583 (license license:gpl2+)))
584
585 (define-public sushi
586 (package
587 (name "sushi")
588 (version "3.32.1")
589 (source (origin
590 (method url-fetch)
591 (uri (string-append "mirror://gnome/sources/" name "/"
592 (version-major+minor version) "/"
593 name "-" version ".tar.xz"))
594 (sha256
595 (base32
596 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
597 (build-system meson-build-system)
598 (arguments
599 `(#:glib-or-gtk? #t
600 #:phases
601 (modify-phases %standard-phases
602 (add-after 'glib-or-gtk-wrap 'wrap-typelib
603 (lambda* (#:key outputs #:allow-other-keys)
604 (let ((prog (string-append (assoc-ref outputs "out")
605 "/bin/sushi")))
606 ;; Put existing typelibs before sushi's deps, so as to correctly
607 ;; infer gdk-pixbuf
608 (wrap-program prog
609 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
610 #t))))))
611 (native-inputs
612 `(("glib:bin" ,glib "bin")
613 ("gettext" ,gettext-minimal)
614 ("gobject-introspection" ,gobject-introspection)
615 ("pkg-config" ,pkg-config)))
616 (inputs
617 `(("clutter" ,clutter)
618 ("clutter-gst" ,clutter-gst)
619 ("clutter-gtk" ,clutter-gtk)
620 ("evince" ,evince) ; For file previewing.
621 ("freetype" ,freetype)
622 ("gdk-pixbuf" ,gdk-pixbuf)
623 ("gjs" ,gjs)
624 ("gst-plugins-base" ,gst-plugins-base)
625 ("gstreamer" ,gstreamer)
626 ("gtksourceview" ,gtksourceview-3)
627 ("harfbuzz" ,harfbuzz)
628 ("libepoxy" ,libepoxy)
629 ("libmusicbrainz" ,libmusicbrainz)
630 ("libxml2" ,libxml2)
631 ("neon" ,neon)
632 ("webkitgtk" ,webkitgtk)))
633 (synopsis "File previewer for the GNOME desktop")
634 (description "Sushi is a DBus-activated service that allows applications to
635 preview files on the GNOME desktop.")
636 (home-page "https://gitlab.gnome.org/GNOME/sushi")
637 (license license:gpl2+)))
638
639 (define-public rygel
640 (package
641 (name "rygel")
642 (version "0.38.3")
643 (source (origin
644 (method url-fetch)
645 (uri (string-append "mirror://gnome/sources/" name "/"
646 (version-major+minor version) "/"
647 name "-" version ".tar.xz"))
648 (sha256
649 (base32
650 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
651 (build-system gnu-build-system)
652 (native-inputs
653 `(("gettext" ,gettext-minimal)
654 ("gobject-introspection" ,gobject-introspection)
655 ("gtk-doc" ,gtk-doc)
656 ("pkg-config" ,pkg-config)
657 ("vala" ,vala)))
658 (inputs
659 `(("gdk-pixbuf" ,gdk-pixbuf)
660 ("gssdp" ,gssdp)
661 ("gstreamer" ,gstreamer)
662 ("gst-plugins-base" ,gst-plugins-base)
663 ("gtk+" ,gtk+)
664 ("gupnp" ,gupnp)
665 ("gupnp-av" ,gupnp-av)
666 ("gupnp-dlna" ,gupnp-dlna)
667 ("libgee" ,libgee)
668 ("libmediaart" ,libmediaart)
669 ("libsoup" ,libsoup)
670 ("libxslt" ,libxslt)
671 ("libunistring" ,libunistring)
672 ("tracker" ,tracker)))
673 (synopsis "Share audio, video, and pictures with other devices")
674 (description
675 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
676 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
677 pictures, and to control a media player on your home network.
678
679 Rygel achieves interoperability with other devices by trying to conform to the
680 strict requirements of DLNA and by converting media on-the-fly to formats that
681 client devices can handle.")
682 (home-page "https://wiki.gnome.org/Projects/Rygel")
683 (license (list
684 ;; For logo (data/icons/*).
685 license:cc-by-sa3.0
686 ;; For all others.
687 license:lgpl2.1+))))
688
689 (define-public libnma
690 (package
691 (name "libnma")
692 (version "1.8.26")
693 (source (origin
694 (method url-fetch)
695 (uri (string-append "mirror://gnome/sources/" name "/"
696 (version-major+minor version) "/"
697 name "-" version ".tar.xz"))
698 (sha256
699 (base32
700 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
701 (build-system meson-build-system)
702 (arguments
703 `(#:glib-or-gtk? #t))
704 (native-inputs
705 `(("gettext" ,gettext-minimal)
706 ("glib:bin" ,glib "bin")
707 ("gtk-doc" ,gtk-doc)
708 ("gobject-introspection" ,gobject-introspection)
709 ("pkg-config" ,pkg-config)))
710 (inputs
711 `(("adwaita-icon-theme" ,adwaita-icon-theme)
712 ("gcr" ,gcr)
713 ("gtk+" ,gtk+)
714 ("iso-codes" ,iso-codes)
715 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
716 ("network-manager" ,network-manager)))
717 (synopsis "Network Manager's applet library")
718 (description "Libnma is an applet library for Network Manager. It was
719 initially part of network-manager-applet and has now become a separate
720 project.")
721 (home-page "https://gitlab.gnome.org/GNOME/libnma")
722
723 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
724 ;; "LGPL-2.1+".
725 (license license:gpl2+)))
726
727 (define-public gnome-menus
728 (package
729 (name "gnome-menus")
730 (version "3.32.0")
731 (source (origin
732 (method url-fetch)
733 (uri (string-append "mirror://gnome/sources/gnome-menus/"
734 (version-major+minor version) "/"
735 name "-" version ".tar.xz"))
736 (sha256
737 (base32
738 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
739 (build-system gnu-build-system)
740 (native-inputs
741 `(("gettext" ,gettext-minimal)
742 ("glib" ,glib)
743 ("pkg-config" ,pkg-config)))
744 (synopsis "Menu support for GNOME desktop")
745 (description "GNOME Menus contains the libgnome-menu library, the layout
746 configuration files for the GNOME menu, as well as a simple menu editor.")
747 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
748 (license license:lgpl2.0+)))
749
750 (define-public deja-dup
751 (package
752 (name "deja-dup")
753 (version "34.3")
754 (source (origin
755 (method url-fetch)
756 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
757 (sha256
758 (base32
759 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
760 (patches
761 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
762 (build-system glib-or-gtk-build-system)
763 (arguments
764 `(#:modules ((guix build gnu-build-system)
765 ((guix build cmake-build-system) #:prefix cmake:)
766 (guix build glib-or-gtk-build-system)
767 (guix build utils))
768 #:imported-modules (,@%glib-or-gtk-build-system-modules
769 (guix build cmake-build-system))
770 #:test-target "test"
771 #:configure-flags (list (string-append
772 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
773 (string-append
774 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
775 #:phases
776 (modify-phases %standard-phases
777 (add-after 'unpack 'patch-lockfile-deletion
778 (lambda rest
779 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
780 (("/bin/rm")
781 (which "rm")))))
782 (replace 'configure
783 (assoc-ref cmake:%standard-phases 'configure))
784 (delete 'check) ;; Fails due to issues with DBus
785 (add-after 'install 'wrap-deja-dup
786 (lambda* (#:key inputs outputs #:allow-other-keys)
787 (let ((python (assoc-ref inputs "python"))
788 (python-path (getenv "PYTHONPATH"))
789 (duplicity (assoc-ref inputs "duplicity"))
790 (out (assoc-ref outputs "out")))
791 (for-each
792 (lambda (program)
793 (wrap-program program
794 `("PATH" ":" prefix (,(string-append python "/bin")
795 ,(string-append duplicity "/bin"))))
796 (wrap-program program
797 `("PYTHONPATH" ":" prefix (,python-path))))
798
799 (find-files (string-append out "/bin")))
800 #t))))))
801 (inputs
802 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
803 ("gobject-introspection" ,gobject-introspection)
804 ("duplicity" ,duplicity)
805 ("python" ,python-2)
806 ("python-pygobject" ,python2-pygobject)
807 ("gtk+" ,gtk+)
808 ("libnotify" ,libnotify)
809 ("libpeas" ,libpeas)
810 ("libsecret" ,libsecret)
811 ("packagekit" ,packagekit)))
812 (native-inputs
813 `(("pkg-config" ,pkg-config)
814 ("vala" ,vala)
815 ("gettext" ,gettext-minimal)
816 ("itstool" ,itstool)
817 ("intltool" ,intltool)
818 ("cmake" ,cmake-minimal)))
819 (home-page "https://launchpad.net/deja-dup")
820 (synopsis "Simple backup tool, for regular encrypted backups")
821 (description
822 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
823 uses duplicity as the backend, which supports incremental backups and storage
824 either on a local, or remote machine via a number of methods.")
825 (license license:gpl3+)))
826
827 (define-public gnome-user-docs
828 (package
829 (name "gnome-user-docs")
830 (version "3.32.3")
831 (source
832 (origin
833 (method url-fetch)
834 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
835 (version-major+minor version)
836 "/gnome-user-docs-" version ".tar.xz"))
837 (sha256
838 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
839 (build-system gnu-build-system)
840 (native-inputs
841 `(("gettext" ,gettext-minimal)
842 ("itstool" ,itstool)
843 ("pkg-config" ,pkg-config)
844 ("xmllint" ,libxml2)))
845 (synopsis "User documentation for the GNOME desktop")
846 (description
847 "The GNOME User Documentation explains how to use the GNOME desktop and its
848 components. It covers usage and setup of the core GNOME programs by end-users
849 and system administrators.")
850 (home-page "https://live.gnome.org/DocumentationProject")
851 (license license:cc-by3.0)))
852
853 (define-public gnome-getting-started-docs
854 (package
855 (name "gnome-getting-started-docs")
856 (version "3.32.2")
857 (source
858 (origin
859 (method url-fetch)
860 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
861 (version-major+minor version)
862 "/gnome-getting-started-docs-" version ".tar.xz"))
863 (sha256
864 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
865 (build-system gnu-build-system)
866 (native-inputs
867 `(("gettext" ,gettext-minimal)
868 ("itstool" ,itstool)
869 ("pkg-config" ,pkg-config)
870 ("xmllint" ,libxml2)))
871 (synopsis "Help to get new users started with the GNOME desktop")
872 (description
873 "The GNOME Getting Started Documentation contains GNOME's intuitive
874 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
875
876 It is normally used together with @command{gnome-initial-setup}, but is also
877 useful as a tutorial and users' guide for new or less experienced users.")
878 (home-page "https://live.gnome.org/DocumentationProject")
879 (license license:cc-by-sa3.0)))
880
881 (define-public dia
882 ;; This version from GNOME's repository includes fixes for compiling with
883 ;; recent versions of the build tools. The latest activity on the
884 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
885 ;; fixes in 2016.
886 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
887 (package
888 (name "dia")
889 (version (git-version "0.97.3" "1" commit))
890 (source (origin
891 (method git-fetch)
892 (uri (git-reference
893 (url "https://gitlab.gnome.org/GNOME/dia.git/")
894 (commit commit)))
895 (file-name (git-file-name name version))
896 (sha256
897 (base32
898 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
899 (build-system gnu-build-system)
900 (inputs
901 `(("freetype" ,freetype)
902 ("gdk-pixbuf" ,gdk-pixbuf)
903 ("gtk+" ,gtk+-2)
904 ("libart-lgpl" ,libart-lgpl)
905 ("libxml2" ,libxml2)
906 ("pango" ,pango)))
907 (native-inputs
908 `(("autoconf" ,autoconf)
909 ("automake" ,automake)
910 ("intltool" ,intltool)
911 ("glib" ,glib "bin")
912 ("libtool" ,libtool)
913 ("perl" ,perl)
914 ("pkg-config" ,pkg-config)
915 ("python-wrapper" ,python-wrapper)))
916 (arguments
917 `(#:phases
918 (modify-phases %standard-phases
919 (add-before 'bootstrap 'dont-configure-during-bootstrap
920 (lambda _
921 (setenv "NOCONFIGURE" "true")
922 #t)))))
923 (home-page "https://wiki.gnome.org/Apps/Dia")
924 (synopsis "Diagram creation for GNOME")
925 (description "Dia can be used to draw different types of diagrams, and
926 includes support for UML static structure diagrams (class diagrams), entity
927 relationship modeling, and network diagrams. The program supports various file
928 formats like PNG, SVG, PDF and EPS.")
929 (license license:gpl2+))))
930
931 ;; This is the unstable release, but it is required for the current stable
932 ;; release of gvfs (1.38.1).
933 (define-public libgdata
934 (package
935 (name "libgdata")
936 (version "0.17.9")
937 (source (origin
938 (method url-fetch)
939 (uri (string-append "mirror://gnome/sources/" name "/"
940 (version-major+minor version) "/"
941 name "-" version ".tar.xz"))
942 (sha256
943 (base32
944 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
945 (build-system gnu-build-system)
946 (arguments
947 '(#:phases
948 (modify-phases %standard-phases
949 (add-before 'check 'disable-failing-tests
950 (lambda _
951 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
952 ;; They have been removed in libgdata 0.17.6, so just do the same.
953 (substitute* "gdata/tests/Makefile"
954 (("picasaweb\\$\\(EXEEXT\\) ") ""))
955 #t)))))
956 (native-inputs
957 `(("glib:bin" ,glib "bin")
958 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
959 ("intltool" ,intltool)
960 ("pkg-config" ,pkg-config)
961 ("uhttpmock" ,uhttpmock)))
962 (inputs
963 `(("cyrus-sasl" ,cyrus-sasl)
964 ("glib-networking" ,glib-networking)))
965 (propagated-inputs
966 `(("gcr" ,gcr)
967 ("glib" ,glib)
968 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
969 ("json-glib" ,json-glib)
970 ("liboauth" ,liboauth)
971 ("libsoup" ,libsoup)
972 ("libxml2" ,libxml2)))
973 (home-page "https://wiki.gnome.org/Projects/libgdata")
974 (synopsis "Library for accessing online service APIs")
975 (description
976 "libgdata is a GLib-based library for accessing online service APIs using
977 the GData protocol — most notably, Google's services. It provides APIs to
978 access the common Google services, and has full asynchronous support.")
979 (license license:lgpl2.1+)))
980
981 (define-public libgxps
982 (package
983 (name "libgxps")
984 (version "0.3.1")
985 (source (origin
986 (method url-fetch)
987 (uri (string-append "mirror://gnome/sources/" name "/"
988 (version-major+minor version) "/"
989 name "-" version ".tar.xz"))
990 (sha256
991 (base32
992 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
993 (build-system meson-build-system)
994 (native-inputs
995 `(("gobject-introspection" ,gobject-introspection)
996 ("pkg-config" ,pkg-config)))
997 (inputs
998 `(("gtk+" ,gtk+)
999 ("libjpeg" ,libjpeg-turbo)
1000 ("lcms" ,lcms)
1001 ("libtiff" ,libtiff)))
1002 (propagated-inputs
1003 ;; In Requires of libgxps.pc.
1004 `(("cairo" ,cairo)
1005 ("glib" ,glib)
1006 ("libarchive" ,libarchive)))
1007 (home-page "https://wiki.gnome.org/Projects/libgxps")
1008 (synopsis "GObject-based library for handling and rendering XPS documents")
1009 (description
1010 "libgxps is a GObject-based library for handling and rendering XPS
1011 documents. This package also contains binaries that can convert XPS documents
1012 to other formats.")
1013 (license license:lgpl2.1+)))
1014
1015 (define-public gnome-characters
1016 (package
1017 (name "gnome-characters")
1018 (version "3.30.0")
1019 (source
1020 (origin
1021 (method url-fetch)
1022 (uri (string-append "mirror://gnome/sources/"
1023 "gnome-characters/" (version-major+minor version)
1024 "/gnome-characters-" version ".tar.xz"))
1025 (sha256
1026 (base32
1027 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1028 (build-system meson-build-system)
1029 (arguments
1030 `(#:glib-or-gtk? #t
1031 #:phases (modify-phases %standard-phases
1032 (add-after 'install 'wrap
1033 (lambda* (#:key outputs #:allow-other-keys)
1034 ;; GNOME Characters needs Typelib files from GTK and
1035 ;; gnome-desktop.
1036 (wrap-program (string-append (assoc-ref outputs "out")
1037 "/bin/gnome-characters")
1038 `("GI_TYPELIB_PATH" ":" prefix
1039 (,(getenv "GI_TYPELIB_PATH"))))
1040 #t)))))
1041 (native-inputs
1042 `(("gettext" ,gettext-minimal)
1043 ("glib:bin" ,glib "bin")
1044 ("gtk+:bin" ,gtk+ "bin")
1045 ("pkg-config" ,pkg-config)
1046 ("python" ,python-minimal)))
1047 (inputs
1048 `(("gjs" ,gjs)
1049 ("gtk+" ,gtk+)
1050 ("libunistring" ,libunistring)
1051 ("gnome-desktop" ,gnome-desktop)))
1052 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1053 (synopsis "Find and insert unusual characters")
1054 (description "Characters is a simple utility application to find
1055 and insert unusual characters. It allows you to quickly find the
1056 character you are looking for by searching for keywords.")
1057 (license license:bsd-3)))
1058
1059 (define-public gnome-common
1060 (package
1061 (name "gnome-common")
1062 (version "3.18.0")
1063 (source
1064 (origin
1065 (method url-fetch)
1066 (uri (string-append "mirror://gnome/sources/" name "/"
1067 (version-major+minor version) "/"
1068 name "-" version ".tar.xz"))
1069 (sha256
1070 (base32
1071 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1072 (build-system gnu-build-system)
1073 (home-page "https://www.gnome.org/")
1074 (synopsis "Bootstrap GNOME modules built from Git")
1075 (description "gnome-common contains various files needed to bootstrap
1076 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1077 can be used to configure a source directory checked out from Git and some
1078 commonly used macros.")
1079 (license license:gpl2+)))
1080
1081 (define-public gnome-contacts
1082 (package
1083 (name "gnome-contacts")
1084 (version "3.32.1")
1085 (source (origin
1086 (method url-fetch)
1087 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1088 (version-major+minor version) "/"
1089 name "-" version ".tar.xz"))
1090 (sha256
1091 (base32
1092 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
1093 (build-system meson-build-system)
1094 (arguments
1095 `(#:phases
1096 (modify-phases %standard-phases
1097 (add-after 'unpack 'generate-vapis
1098 (lambda* (#:key inputs #:allow-other-keys)
1099 ;; To generate goa's missing .vapi file
1100 (define goa
1101 (assoc-ref inputs "gnome-online-accounts:lib"))
1102
1103 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1104 "--library=goa-1.0"
1105 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1106 #t)))))
1107 (native-inputs
1108 `(("glib:bin" ,glib "bin")
1109 ("gtk+:bin" ,gtk+ "bin")
1110 ("pkg-config" ,pkg-config)))
1111 (inputs
1112 `(("cheese" ,cheese)
1113 ("docbook-xml" ,docbook-xml)
1114 ("dockbook-xsl" ,docbook-xsl)
1115 ("evolution-data-server" ,evolution-data-server)
1116 ("gettext" ,gettext-minimal)
1117 ("gnome-desktop" ,gnome-desktop)
1118 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1119 ("gobject-introspection" ,gobject-introspection)
1120 ("gst-plugins-base" ,gst-plugins-base)
1121 ("gtk+" ,gtk+)
1122 ("libgee" ,libgee)
1123 ("libxslt" ,libxslt)
1124 ("telepathy-glib" ,telepathy-glib)
1125 ("vala" ,vala)))
1126 (propagated-inputs
1127 `(("folks", folks)
1128 ("telepathy-mission-control" ,telepathy-mission-control)))
1129 (synopsis "GNOME's integrated address book")
1130 (description
1131 "GNOME Contacts organizes your contact information from online and
1132 offline sources, providing a centralized place for managing your contacts.")
1133 (home-page "https://wiki.gnome.org/Apps/Contacts")
1134 (license license:gpl2+)))
1135
1136 (define-public gnome-desktop
1137 (package
1138 (name "gnome-desktop")
1139 (version "3.32.2")
1140 (source
1141 (origin
1142 (method url-fetch)
1143 (uri (string-append "mirror://gnome/sources/" name "/"
1144 (version-major+minor version) "/"
1145 name "-" version ".tar.xz"))
1146 (sha256
1147 (base32
1148 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
1149 (build-system meson-build-system)
1150 (arguments
1151 '(#:phases
1152 (modify-phases %standard-phases
1153 (add-before 'configure 'patch-path
1154 (lambda* (#:key inputs #:allow-other-keys)
1155 (let ((libc (assoc-ref inputs "libc")))
1156 (substitute* "libgnome-desktop/gnome-languages.c"
1157 (("\"locale\"")
1158 (string-append "\"" libc "/bin/locale\"")))
1159 #t)))
1160 (add-before 'check 'pre-check
1161 (lambda* (#:key inputs #:allow-other-keys)
1162 ;; Tests require a running X server and locales.
1163 (system "Xvfb :1 &")
1164 (setenv "DISPLAY" ":1")
1165 (setenv "GUIX_LOCPATH"
1166 (string-append (assoc-ref inputs "glibc-locales")
1167 "/lib/locale"))
1168 #t)))))
1169 (native-inputs
1170 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1171 ("glibc-locales" ,glibc-locales) ; for tests
1172 ("gobject-introspection" ,gobject-introspection)
1173 ("itstool" ,itstool)
1174 ("intltool" ,intltool)
1175 ("pkg-config" ,pkg-config)
1176 ("xmllint" ,libxml2)
1177 ("xorg-server" ,xorg-server-for-tests)))
1178 (propagated-inputs
1179 ;; Required by gnome-desktop-3.0.pc.
1180 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1181 ("gtk+" ,gtk+)
1182 ("iso-codes" ,iso-codes)
1183 ("libseccomp" ,libseccomp)
1184 ("libx11" ,libx11)
1185 ("xkeyboard-config" ,xkeyboard-config)))
1186 (inputs
1187 `(("gdk-pixbuf" ,gdk-pixbuf)
1188 ("glib" ,glib)
1189 ("libxext" ,libxext)
1190 ("libxkbfile" ,libxkbfile)
1191 ("libxrandr" ,libxrandr)))
1192 (home-page "https://www.gnome.org/")
1193 (synopsis
1194 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1195 (description
1196 "The libgnome-desktop library provides API shared by several applications
1197 on the desktop, but that cannot live in the platform for various reasons.
1198 There is no API or ABI guarantee, although we are doing our best to provide
1199 stability. Documentation for the API is available with gtk-doc.
1200
1201 The gnome-about program helps find which version of GNOME is installed.")
1202 ; Some bits under the LGPL.
1203 (license license:gpl2+)))
1204
1205 (define-public gnome-doc-utils
1206 (package
1207 (name "gnome-doc-utils")
1208 (version "0.20.10")
1209 (source
1210 (origin
1211 (method url-fetch)
1212 (uri (string-append "mirror://gnome/sources/" name "/"
1213 (version-major+minor version) "/"
1214 name "-" version ".tar.xz"))
1215 (sha256
1216 (base32
1217 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1218 (build-system gnu-build-system)
1219 (native-inputs
1220 `(("intltool" ,intltool)
1221 ("docbook-xml" ,docbook-xml-4.4)
1222 ("python2-libxml2" ,python2-libxml2)
1223 ("libxml2" ,libxml2)
1224 ("libxslt" ,libxslt)
1225 ("pkg-config" ,pkg-config)
1226 ("python-2" ,python-2)))
1227 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1228 (synopsis
1229 "Documentation utilities for the Gnome project")
1230 (description
1231 "Gnome-doc-utils is a collection of documentation utilities for the
1232 Gnome project. It includes xml2po tool which makes it easier to translate
1233 and keep up to date translations of documentation.")
1234 (license license:gpl2+))) ; xslt under lgpl
1235
1236 (define-public gnome-disk-utility
1237 (package
1238 (name "gnome-disk-utility")
1239 (version "3.32.1")
1240 (source (origin
1241 (method url-fetch)
1242 (uri (string-append "mirror://gnome/sources/" name "/"
1243 (version-major+minor version) "/"
1244 name "-" version ".tar.xz"))
1245 (sha256
1246 (base32
1247 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
1248 (build-system meson-build-system)
1249 (arguments
1250 '(#:phases
1251 (modify-phases %standard-phases
1252 (add-after 'unpack 'skip-gtk-update-icon-cache
1253 ;; Don't create 'icon-theme.cache'.
1254 (lambda _
1255 (substitute* "meson_post_install.py"
1256 (("gtk-update-icon-cache") "true"))
1257 #t)))))
1258 (native-inputs
1259 `(("glib:bin" ,glib "bin")
1260 ("intltool" ,intltool)
1261 ("pkg-config" ,pkg-config)
1262 ("docbook-xml" ,docbook-xml)
1263 ("docbook-xsl" ,docbook-xsl)
1264 ("libxml2" ,libxml2)
1265 ("libxslt" ,libxslt)))
1266 (inputs
1267 `(("glib" ,glib)
1268 ("appstream-glib" ,appstream-glib)
1269 ("gnome-settings-daemon" ,gnome-settings-daemon)
1270 ("gtk+" ,gtk+)
1271 ("libcanberra" ,libcanberra)
1272 ("libdvdread" ,libdvdread)
1273 ("libnotify" ,libnotify)
1274 ("libpwquality" ,libpwquality)
1275 ("libsecret" ,libsecret)
1276 ("udisks" ,udisks)))
1277 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1278 (synopsis "Disk management utility for GNOME")
1279 (description "Disk management utility for GNOME.")
1280 (license license:gpl2+)))
1281
1282 (define-public gnome-font-viewer
1283 (package
1284 (name "gnome-font-viewer")
1285 (version "3.30.0")
1286 (source (origin
1287 (method url-fetch)
1288 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1289 (version-major+minor version)
1290 "/gnome-font-viewer-" version ".tar.xz"))
1291 (sha256
1292 (base32
1293 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1294 (build-system meson-build-system)
1295 (arguments
1296 '(#:phases
1297 (modify-phases %standard-phases
1298 (add-after 'unpack 'patch-post-install-script
1299 (lambda _
1300 (substitute* "meson-postinstall.sh"
1301 (("update-desktop-database") (which "true")))
1302 #t)))))
1303 (native-inputs
1304 `(("gettext" ,gettext-minimal)
1305 ("glib:bin" ,glib "bin")
1306 ("pkg-config" ,pkg-config)))
1307 (inputs
1308 `(("glib" ,glib)
1309 ("gnome-desktop" ,gnome-desktop)
1310 ("gtk+" ,gtk+)))
1311 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1312 (synopsis "GNOME Fonts")
1313 (description "Application to show you the fonts installed on your computer
1314 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1315 the font would look under various sizes.")
1316 (license license:gpl2+)))
1317
1318 (define-public gcr
1319 (package
1320 (name "gcr")
1321 (version "3.28.1")
1322 (source (origin
1323 (method url-fetch)
1324 (uri (string-append "mirror://gnome/sources/" name "/"
1325 (version-major+minor version) "/"
1326 name "-" version ".tar.xz"))
1327 (sha256
1328 (base32
1329 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
1330 (patches
1331 (list
1332 ;; This patch solves an ordering issue that showed up when
1333 ;; running the test suite against newer Glib 2.60. See
1334 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
1335 (origin
1336 (method url-fetch)
1337 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
1338 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
1339 (file-name "gcr-hashtable-ordering.patch")
1340 (sha256
1341 (base32
1342 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
1343 (build-system gnu-build-system)
1344 (arguments
1345 '(#:phases
1346 (modify-phases %standard-phases
1347 ;; These fail because /var/lib/dbus/machine-id is not present in the
1348 ;; build environment.
1349 (add-after 'unpack 'disable-failing-tests
1350 (lambda _
1351 (substitute* "gcr/test-system-prompt.c"
1352 (("g_test_add") "//")
1353 (("return.*") "return 0;"))
1354 #t))
1355 (add-before 'check 'pre-check
1356 (lambda _
1357 ;; Some tests expect to write to $HOME.
1358 (setenv "HOME" "/tmp")
1359 #t)))))
1360 (inputs
1361 `(("dbus" ,dbus)
1362 ("gnupg" ,gnupg) ;called as a child process during tests
1363 ("libgcrypt" ,libgcrypt)))
1364 (native-inputs
1365 `(("python" ,python-2) ;for tests
1366 ("pkg-config" ,pkg-config)
1367 ("glib" ,glib "bin")
1368 ("gobject-introspection" ,gobject-introspection)
1369 ("intltool" ,intltool)
1370 ("libxml2" ,libxml2)
1371 ("vala" ,vala)
1372 ("xsltproc" ,libxslt)))
1373 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1374 (propagated-inputs
1375 `(("p11-kit" ,p11-kit)
1376 ("glib" ,glib)
1377 ("gtk+" ,gtk+)))
1378 (home-page "https://www.gnome.org")
1379 (synopsis "Libraries for displaying certificates and accessing key stores")
1380 (description
1381 "The GCR package contains libraries used for displaying certificates and
1382 accessing key stores. It also provides the viewer for crypto files on the
1383 GNOME Desktop.")
1384 (license license:lgpl2.1+)))
1385
1386 (define-public libgnome-keyring
1387 (package
1388 (name "libgnome-keyring")
1389 (version "3.12.0")
1390 (source (origin
1391 (method url-fetch)
1392 (uri (string-append "mirror://gnome/sources/" name "/"
1393 (version-major+minor version) "/"
1394 name "-" version ".tar.xz"))
1395 (sha256
1396 (base32
1397 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1398 (build-system gnu-build-system)
1399 (inputs
1400 `(("libgcrypt" ,libgcrypt)
1401 ("dbus" ,dbus)))
1402 (native-inputs
1403 `(("pkg-config" ,pkg-config)
1404 ("glib" ,glib "bin")
1405 ("intltool" ,intltool)))
1406 (propagated-inputs
1407 ;; Referred to in .h files and .pc.
1408 `(("glib" ,glib)))
1409 (home-page "https://www.gnome.org")
1410 (synopsis "Accessing passwords from the GNOME keyring")
1411 (description
1412 "Client library to access passwords from the GNOME keyring.")
1413
1414 ;; Though a couple of files are LGPLv2.1+.
1415 (license license:lgpl2.0+)))
1416
1417 (define-public gnome-keyring
1418 (package
1419 (name "gnome-keyring")
1420 (version "3.28.2")
1421 (source (origin
1422 (method url-fetch)
1423 (uri (string-append "mirror://gnome/sources/" name "/"
1424 (version-major+minor version) "/"
1425 name "-" version ".tar.xz"))
1426 (sha256
1427 (base32
1428 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
1429 (build-system gnu-build-system)
1430 (arguments
1431 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1432 ;not exist
1433 #:configure-flags
1434 (list
1435 (string-append "--with-pkcs11-config="
1436 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1437 (string-append "--with-pkcs11-modules="
1438 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1439 #:phases
1440 (modify-phases %standard-phases
1441 (add-after 'unpack 'fix-/bin/sh-reference
1442 (lambda _
1443 (substitute* "po/Makefile.in.in"
1444 (("/bin/sh") (which "sh")))
1445 #t))
1446 (add-after 'unpack 'fix-docbook
1447 (lambda* (#:key inputs #:allow-other-keys)
1448 (substitute* "docs/Makefile.am"
1449 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1450 (string-append (assoc-ref inputs "docbook-xsl")
1451 "/xml/xsl/docbook-xsl-"
1452 ,(package-version docbook-xsl)
1453 "/manpages/docbook.xsl")))
1454 (setenv "XML_CATALOG_FILES"
1455 (string-append (assoc-ref inputs "docbook-xml")
1456 "/xml/dtd/docbook/catalog.xml"))
1457 ;; Rerun the whole thing to avoid version mismatch ("This is
1458 ;; Automake 1.15.1, but the definition used by this
1459 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1460 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1461 (invoke "autoconf")
1462 (invoke "aclocal")
1463 (invoke "automake" "-ac"))))))
1464 (inputs
1465 `(("libgcrypt" ,libgcrypt)
1466 ("linux-pam" ,linux-pam)
1467 ("openssh" ,openssh)
1468 ("dbus" ,dbus)
1469 ("gcr" ,gcr)))
1470 (native-inputs
1471 `(("pkg-config" ,pkg-config)
1472 ("glib" ,glib "bin")
1473 ("glib" ,glib) ; for m4 macros
1474 ("python" ,python-2) ;for tests
1475 ("intltool" ,intltool)
1476 ("autoconf" ,autoconf)
1477 ("automake" ,automake)
1478 ("libxslt" ,libxslt) ;for documentation
1479 ("docbook-xml" ,docbook-xml-4.2)
1480 ("docbook-xsl" ,docbook-xsl)))
1481 (home-page "https://www.gnome.org")
1482 (synopsis "Daemon to store passwords and encryption keys")
1483 (description
1484 "gnome-keyring is a program that keeps passwords and other secrets for
1485 users. It is run as a daemon in the session, similar to ssh-agent, and other
1486 applications locate it via an environment variable or D-Bus.
1487
1488 The program can manage several keyrings, each with its own master password,
1489 and there is also a session keyring which is never stored to disk, but
1490 forgotten when the session ends.")
1491 (license license:lgpl2.1+)))
1492
1493 (define-public evince
1494 (package
1495 (name "evince")
1496 (version "3.34.2")
1497 (source (origin
1498 (method url-fetch)
1499 (uri (string-append "mirror://gnome/sources/evince/"
1500 (version-major+minor version) "/"
1501 "evince-" version ".tar.xz"))
1502 (sha256
1503 (base32
1504 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
1505 (build-system glib-or-gtk-build-system)
1506 (arguments
1507 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1508 #:phases
1509 (modify-phases %standard-phases
1510 (add-before 'install 'skip-gtk-update-icon-cache
1511 ;; Don't create 'icon-theme.cache'.
1512 (lambda _
1513 (substitute* "data/Makefile"
1514 (("gtk-update-icon-cache") "true"))
1515 #t)))))
1516 (inputs
1517 `(("libarchive" ,libarchive)
1518 ("libgxps" ,libgxps)
1519 ("libspectre" ,libspectre)
1520 ("djvulibre" ,djvulibre)
1521 ("ghostscript" ,ghostscript)
1522 ("poppler" ,poppler)
1523 ("libtiff" ,libtiff)
1524 ;; TODO:
1525 ;; Build libkpathsea as a shared library for DVI support.
1526 ;; ("libkpathsea" ,texlive-bin)
1527 ("gnome-desktop" ,gnome-desktop)
1528 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1529 ("gspell" ,gspell)
1530 ("libgnome-keyring" ,libgnome-keyring)
1531 ("adwaita-icon-theme" ,adwaita-icon-theme)
1532 ("gdk-pixbuf" ,gdk-pixbuf)
1533 ("atk" ,atk)
1534 ("pango" ,pango)
1535 ("gtk+" ,gtk+)
1536 ("glib" ,glib)
1537 ("libxml2" ,libxml2)
1538 ("libsm" ,libsm)
1539 ("libice" ,libice)
1540 ("shared-mime-info" ,shared-mime-info)
1541 ("dconf" ,dconf)
1542 ("libcanberra" ,libcanberra)
1543 ("libsecret" ,libsecret)
1544
1545 ;; For tests.
1546 ("dogtail" ,python2-dogtail)))
1547 (native-inputs
1548 `(("itstool" ,itstool)
1549 ("intltool" ,intltool)
1550 ("glib" ,glib "bin")
1551 ("gobject-introspection" ,gobject-introspection)
1552 ("pkg-config" ,pkg-config)
1553 ("xmllint" ,libxml2)))
1554 (home-page
1555 "https://www.gnome.org/projects/evince/")
1556 (synopsis "GNOME's document viewer")
1557 (description
1558 "Evince is a document viewer for multiple document formats. It
1559 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1560 of Evince is to replace the multiple document viewers that exist
1561 on the GNOME Desktop with a single simple application.")
1562 (license license:gpl2+)))
1563
1564 (define-public gsettings-desktop-schemas
1565 (package
1566 (name "gsettings-desktop-schemas")
1567 (version "3.32.0")
1568 (source
1569 (origin
1570 (method url-fetch)
1571 (uri (string-append "mirror://gnome/sources/" name "/"
1572 (version-major+minor version) "/"
1573 name "-" version ".tar.xz"))
1574 (sha256
1575 (base32
1576 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1577 (build-system meson-build-system)
1578 (arguments
1579 '(#:phases (modify-phases %standard-phases
1580 (add-after 'unpack 'set-adwaita-theme-file-name
1581 (lambda* (#:key inputs #:allow-other-keys)
1582 ;; Provide the correct file name of the default GNOME
1583 ;; background, 'adwaita-timed.xml'.
1584 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1585 (substitute* (find-files "schemas"
1586 "\\.gschema\\.xml\\.in$")
1587 (("@datadir@/backgrounds/gnome")
1588 (string-append theme "/share/backgrounds/gnome")))
1589 #t))))))
1590 (inputs
1591 `(("glib" ,glib)
1592 ("gnome-backgrounds" ,gnome-backgrounds)))
1593 (native-inputs
1594 `(("intltool" ,intltool)
1595 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1596 ("gobject-introspection" ,gobject-introspection)
1597 ("pkg-config" ,pkg-config)))
1598 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1599 (synopsis
1600 "GNOME settings for various desktop components")
1601 (description
1602 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1603 for settings shared by various components of the GNOME desktop.")
1604 (license license:lgpl2.1+)))
1605
1606 (define-public icon-naming-utils
1607 (package
1608 (name "icon-naming-utils")
1609 (version "0.8.90")
1610 (source
1611 (origin
1612 (method url-fetch)
1613 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1614 version ".tar.bz2"))
1615 (sha256
1616 (base32
1617 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1618 (build-system gnu-build-system)
1619 (inputs
1620 `(("perl" ,perl)
1621 ("perl-xml-simple" ,perl-xml-simple)))
1622 (arguments
1623 '(#:phases
1624 (modify-phases %standard-phases
1625 (add-after 'install 'set-load-paths
1626 ;; Tell 'icon-name-mapping' where XML::Simple is.
1627 (lambda* (#:key outputs #:allow-other-keys)
1628 (let* ((out (assoc-ref outputs "out"))
1629 (prog (string-append out "/libexec/icon-name-mapping")))
1630 (wrap-program
1631 prog
1632 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1633 #t)))))
1634 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1635 (synopsis
1636 "Utility to implement the Freedesktop Icon Naming Specification")
1637 (description
1638 "To help with the transition to the Freedesktop Icon Naming
1639 Specification, the icon naming utility maps the icon names used by the
1640 GNOME and KDE desktops to the icon names proposed in the specification.")
1641 (license license:lgpl2.1+)))
1642
1643 (define-public gnome-icon-theme
1644 (package
1645 (name "gnome-icon-theme")
1646 (version "3.12.0")
1647 (source
1648 (origin
1649 (method url-fetch)
1650 (uri (string-append "mirror://gnome/sources/" name "/"
1651 (version-major+minor version) "/"
1652 name "-" version ".tar.xz"))
1653 (sha256
1654 (base32
1655 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1656 (build-system gnu-build-system)
1657 (arguments
1658 '(#:configure-flags
1659 ;; Don't create 'icon-theme.cache'.
1660 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1661 (true (string-append coreutils "/bin/true")))
1662 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1663 (native-inputs
1664 `(("icon-naming-utils" ,icon-naming-utils)
1665 ("intltool" ,intltool)
1666 ("pkg-config" ,pkg-config)))
1667 (home-page "https://wiki.gnome.org/Personalization")
1668 (synopsis "GNOME icon theme")
1669 (description "Icons for the GNOME desktop.")
1670 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1671
1672 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1673 (define-public adwaita-icon-theme
1674 (package (inherit gnome-icon-theme)
1675 (name "adwaita-icon-theme")
1676 (version "3.32.0")
1677 (source (origin
1678 (method url-fetch)
1679 (uri (string-append "mirror://gnome/sources/" name "/"
1680 (version-major+minor version) "/"
1681 name "-" version ".tar.xz"))
1682 (sha256
1683 (base32
1684 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
1685 (native-inputs
1686 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1687
1688 (define-public tango-icon-theme
1689 (package
1690 (name "tango-icon-theme")
1691 (version "0.8.90")
1692 (source (origin
1693 (method url-fetch)
1694 (uri (string-append "http://tango.freedesktop.org/releases/"
1695 "tango-icon-theme-" version ".tar.bz2"))
1696 (sha256
1697 (base32
1698 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1699 (build-system gnu-build-system)
1700 (native-inputs
1701 `(("icon-naming-utils" ,icon-naming-utils)
1702 ("intltool" ,intltool)
1703 ("imagemagick" ,imagemagick)
1704 ("pkg-config" ,pkg-config)))
1705 (home-page "http://tango-project.org/")
1706 (synopsis "Tango icon theme")
1707 (description "This is an icon theme that follows the Tango visual
1708 guidelines.")
1709 (license license:public-domain)))
1710
1711 (define-public shared-mime-info
1712 (package
1713 (name "shared-mime-info")
1714 (version "1.10")
1715 (source (origin
1716 (method url-fetch)
1717 (uri (string-append "https://freedesktop.org/~hadess/"
1718 "shared-mime-info-" version ".tar.xz"))
1719 (sha256
1720 (base32
1721 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
1722 (build-system gnu-build-system)
1723 (arguments
1724 ;; The build system appears not to be parallel-safe.
1725 '(#:parallel-build? #f))
1726 (inputs
1727 `(("glib" ,glib)
1728 ("libxml2" ,libxml2)))
1729 (native-inputs
1730 `(("intltool" ,intltool)
1731 ("pkg-config" ,pkg-config)))
1732 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1733 (synopsis "Database of common MIME types")
1734 (description
1735 "The shared-mime-info package contains the core database of common types
1736 and the update-mime-database command used to extend it. It requires glib2 to
1737 be installed for building the update command. Additionally, it uses intltool
1738 for translations, though this is only a dependency for the maintainers. This
1739 database is translated at Transifex.")
1740 (license license:gpl2+)))
1741
1742 (define-public system-config-printer
1743 (package
1744 (name "system-config-printer")
1745 (version "1.5.12")
1746 (source
1747 (origin
1748 (method url-fetch)
1749 (uri (string-append
1750 "https://github.com/OpenPrinting/system-config-printer/releases/"
1751 "download/" version
1752 "/system-config-printer-" version ".tar.xz"))
1753 (sha256
1754 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1755 (build-system glib-or-gtk-build-system)
1756 (arguments
1757 `(#:imported-modules ((guix build python-build-system)
1758 ,@%glib-or-gtk-build-system-modules)
1759 #:phases
1760 (modify-phases %standard-phases
1761 (add-after 'unpack 'patch-Makefile.am
1762 (lambda _
1763 ;; The Makefile generates some scripts, so set a valid shebang
1764 (substitute* "Makefile.am"
1765 (("/bin/bash") (which "bash")))
1766 (delete-file "configure")
1767 #t))
1768 (add-after 'unpack 'patch-docbook-xml
1769 (lambda* (#:key inputs #:allow-other-keys)
1770 ;; Modify the man XML otherwise xmlto tries to access the network
1771 (substitute* "man/system-config-printer.xml"
1772 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1773 (string-append (assoc-ref inputs "docbook-xml")
1774 "/xml/dtd/docbook/")))
1775 #t))
1776 (add-after 'install 'wrap-for-python
1777 (@@ (guix build python-build-system) wrap))
1778 (add-after 'install 'wrap
1779 (lambda* (#:key outputs #:allow-other-keys)
1780 (let ((out (assoc-ref outputs "out"))
1781 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1782 (for-each
1783 (lambda (program)
1784 (wrap-program program
1785 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1786 (map (lambda (name)
1787 (string-append out "/bin/" name))
1788 '("system-config-printer"
1789 "system-config-printer-applet"
1790 "install-printerdriver"
1791 "scp-dbus-service"))))
1792 #t)))))
1793 (inputs
1794 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1795 ("gobject-introspection" ,gobject-introspection)
1796 ("python" ,python)
1797 ("cups" ,cups)
1798 ("python-dbus" ,python-dbus)
1799 ("python-pygobject" ,python-pygobject)
1800 ("python-pycups" ,python-pycups)
1801 ("python-requests" ,python-requests)
1802 ("python-pycairo" ,python-pycairo)
1803 ("libnotify" ,libnotify)
1804 ("packagekit" ,packagekit)))
1805 (native-inputs
1806 `(("pkg-config" ,pkg-config)
1807 ("desktop-file-utils" ,desktop-file-utils)
1808 ("glib" ,glib)
1809 ("autoconf" ,autoconf)
1810 ("automake" ,automake)
1811 ("intltool" ,intltool)
1812 ("xmlto" ,xmlto)
1813 ("docbook-xml" ,docbook-xml-4.1.2)
1814 ("docbook-xsl" ,docbook-xsl)
1815 ("libxml2" ,libxml2)))
1816 (home-page "https://github.com/zdohnal/system-config-printer")
1817 (synopsis "CUPS administration tool")
1818 (description
1819 "system-config-printer is a CUPS administration tool. It's written in
1820 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1821 configuring CUPS.")
1822 (license license:gpl2+)))
1823
1824 (define-public hicolor-icon-theme
1825 (package
1826 (name "hicolor-icon-theme")
1827 (version "0.17")
1828 (source
1829 (origin
1830 (method url-fetch)
1831 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
1832 "hicolor-icon-theme-" version ".tar.xz"))
1833 (sha256
1834 (base32
1835 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
1836 (build-system gnu-build-system)
1837 (arguments
1838 `(#:tests? #f)) ; no check target
1839 (home-page "https://icon-theme.freedesktop.org/releases/")
1840 (synopsis
1841 "Freedesktop icon theme")
1842 (description
1843 "Freedesktop icon theme.")
1844 (license license:gpl2)))
1845
1846 (define-public libnotify
1847 (package
1848 (name "libnotify")
1849 (version "0.7.7")
1850 (source
1851 (origin
1852 (method url-fetch)
1853 (uri (string-append "mirror://gnome/sources/" name "/"
1854 (version-major+minor version) "/"
1855 name "-" version ".tar.xz"))
1856 (sha256
1857 (base32
1858 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
1859 (build-system gnu-build-system)
1860 (arguments
1861 `(#:configure-flags '("--disable-static")))
1862 (propagated-inputs
1863 `(;; In Requires of libnotify.pc.
1864 ("gdk-pixbuf" ,gdk-pixbuf)
1865 ("glib" ,glib)))
1866 (inputs
1867 `(("gtk+" ,gtk+)
1868 ("libpng" ,libpng)))
1869 (native-inputs
1870 `(("pkg-config" ,pkg-config)
1871 ("glib" ,glib "bin")
1872 ("gobject-introspection" ,gobject-introspection)))
1873 (home-page "https://developer-next.gnome.org/libnotify/")
1874 (synopsis
1875 "GNOME desktop notification library")
1876 (description
1877 "Libnotify is a library that sends desktop notifications to a
1878 notification daemon, as defined in the Desktop Notifications spec. These
1879 notifications can be used to inform the user about an event or display
1880 some form of information without getting in the user's way.")
1881 (license license:lgpl2.1+)))
1882
1883 (define-public libpeas
1884 (package
1885 (name "libpeas")
1886 (version "1.22.0")
1887 (source
1888 (origin
1889 (method url-fetch)
1890 (uri (string-append "mirror://gnome/sources/" name "/"
1891 (version-major+minor version) "/"
1892 name "-" version ".tar.xz"))
1893 (sha256
1894 (base32
1895 "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv"))))
1896 (build-system gnu-build-system)
1897 (inputs
1898 `(("gtk+" ,gtk+)
1899 ("glade" ,glade3)
1900 ("python" ,python)
1901 ("python-pygobject" ,python-pygobject)))
1902 (native-inputs
1903 `(("pkg-config" ,pkg-config)
1904 ("glib:bin" ,glib "bin")
1905 ("gobject-introspection" ,gobject-introspection)
1906 ("intltool" ,intltool)))
1907 (propagated-inputs
1908 ;; The .pc file "Requires" gobject-introspection.
1909 `(("gobject-introspection" ,gobject-introspection)))
1910 (home-page "https://wiki.gnome.org/Libpeas")
1911 (synopsis "GObject plugin system")
1912 (description
1913 "Libpeas is a gobject-based plugin engine, targeted at giving every
1914 application the chance to assume its own extensibility. It also has a set of
1915 features including, but not limited to: multiple extension points; on-demand
1916 (lazy) programming language support for C, Python and JS; simplicity of the
1917 API.")
1918 (license license:lgpl2.0+)))
1919
1920 (define-public gtkglext
1921 (package
1922 (name "gtkglext")
1923 (version "1.2.0")
1924 (source (origin
1925 (method url-fetch)
1926 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
1927 version "/gtkglext-" version ".tar.gz"))
1928 (sha256
1929 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
1930 (patches (search-patches
1931 "gtkglext-disable-disable-deprecated.patch"))))
1932 (build-system gnu-build-system)
1933 (arguments
1934 `(#:phases
1935 (modify-phases %standard-phases
1936 ;; Fix a collision between a local variable and a definition from
1937 ;; glibc's string.h.
1938 (add-after 'unpack 'fix-collision
1939 (lambda _
1940 (substitute* "gdk/gdkglshapes.c"
1941 ((" index") " triangle_index"))
1942 #t)))))
1943 (inputs `(("gtk+" ,gtk+-2)
1944 ("mesa" ,mesa)
1945 ("glu" ,glu)
1946 ("libx11" ,libx11)
1947 ("libxt" ,libxt)))
1948 (native-inputs `(("pkg-config" ,pkg-config)
1949 ("glib" ,glib "bin")))
1950 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
1951 (home-page "https://projects.gnome.org/gtkglext")
1952 (synopsis "OpenGL extension to GTK+")
1953 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
1954 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1955 API add-ons to make GTK+ widgets OpenGL-capable.")
1956 (license license:lgpl2.1+)))
1957
1958 (define-public glade3
1959 (package
1960 (name "glade")
1961 (version "3.22.1")
1962 (source (origin
1963 (method url-fetch)
1964 (uri (string-append "mirror://gnome/sources/" name "/"
1965 (version-major+minor version) "/"
1966 name "-" version ".tar.xz"))
1967 (sha256
1968 (base32
1969 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
1970 (build-system glib-or-gtk-build-system)
1971 (arguments
1972 `(#:tests? #f ; needs X, GL, and software rendering
1973 #:phases
1974 (modify-phases %standard-phases
1975 (add-before 'configure 'fix-docbook
1976 (lambda* (#:key inputs #:allow-other-keys)
1977 (substitute* "man/Makefile.in"
1978 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1979 (string-append (assoc-ref inputs "docbook-xsl")
1980 "/xml/xsl/docbook-xsl-"
1981 ,(package-version docbook-xsl)
1982 "/manpages/docbook.xsl")))
1983 #t)))))
1984 (inputs
1985 `(("gtk+" ,gtk+)
1986 ("libxml2" ,libxml2)))
1987 (native-inputs
1988 `(("intltool" ,intltool)
1989 ("itstool" ,itstool)
1990 ("libxslt" ,libxslt) ;for xsltproc
1991 ("docbook-xml" ,docbook-xml-4.2)
1992 ("docbook-xsl" ,docbook-xsl)
1993 ("python" ,python-2)
1994 ("pkg-config" ,pkg-config)))
1995 (home-page "https://glade.gnome.org")
1996 (synopsis "GTK+ rapid application development tool")
1997 (description "Glade is a rapid application development (RAD) tool to
1998 enable quick & easy development of user interfaces for the GTK+ toolkit and
1999 the GNOME desktop environment.")
2000 (license license:lgpl2.0+)))
2001
2002 (define-public libcroco
2003 (package
2004 (name "libcroco")
2005 (version "0.6.13")
2006 (source (origin
2007 (method url-fetch)
2008 (uri (string-append "mirror://gnome/sources/" name "/"
2009 (version-major+minor version) "/"
2010 name "-" version ".tar.xz"))
2011 (sha256
2012 (base32
2013 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2014 (build-system gnu-build-system)
2015 (native-inputs
2016 `(("pkg-config" ,pkg-config)))
2017 (inputs
2018 `(("glib" ,glib)
2019 ("libxml2" ,libxml2)
2020 ("zlib" ,zlib)))
2021 (home-page "https://github.com/GNOME/libcroco")
2022 (synopsis "CSS2 parsing and manipulation library")
2023 (description
2024 "Libcroco is a standalone CSS2 parsing and manipulation library.
2025 The parser provides a low level event driven SAC-like API and a CSS object
2026 model like API. Libcroco provides a CSS2 selection engine and an experimental
2027 XML/CSS rendering engine.")
2028
2029 ;; LGPLv2.1-only.
2030 (license license:lgpl2.1)))
2031
2032 (define-public libgsf
2033 (package
2034 (name "libgsf")
2035 (version "1.14.46")
2036 (source (origin
2037 (method url-fetch)
2038 (uri (string-append "mirror://gnome/sources/" name "/"
2039 (version-major+minor version) "/"
2040 name "-" version ".tar.xz"))
2041 (sha256
2042 (base32
2043 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
2044 (build-system gnu-build-system)
2045 (native-inputs
2046 `(("intltool" ,intltool)
2047 ("pkg-config" ,pkg-config)))
2048 (inputs
2049 `(("python" ,python)
2050 ("zlib" ,zlib)
2051 ("bzip2" ,bzip2)))
2052 (propagated-inputs
2053 `(("gdk-pixbuf" ,gdk-pixbuf)
2054 ("glib" ,glib)
2055 ("libxml2" ,libxml2)))
2056 (home-page "https://www.gnome.org/projects/libgsf")
2057 (synopsis "GNOME's Structured File Library")
2058 (description
2059 "Libgsf aims to provide an efficient extensible I/O abstraction for
2060 dealing with different structured file formats.")
2061
2062 ;; LGPLv2.1-only.
2063 (license license:lgpl2.1)))
2064
2065 (define-public librsvg
2066 (package
2067 (name "librsvg")
2068 (version "2.40.20")
2069 (source (origin
2070 (method url-fetch)
2071 (uri (string-append "mirror://gnome/sources/" name "/"
2072 (version-major+minor version) "/"
2073 name "-" version ".tar.xz"))
2074 (sha256
2075 (base32
2076 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
2077 (build-system gnu-build-system)
2078 (arguments
2079 `(#:configure-flags
2080 (list "--disable-static"
2081 "--enable-vala") ; needed for e.g. gnome-mines
2082 #:phases
2083 (modify-phases %standard-phases
2084 (add-before 'configure 'pre-configure
2085 (lambda* (#:key inputs #:allow-other-keys)
2086 (substitute* "gdk-pixbuf-loader/Makefile.in"
2087 ;; By default the gdk-pixbuf loader is installed under
2088 ;; gdk-pixbuf's prefix. Work around that.
2089 (("gdk_pixbuf_moduledir = .*$")
2090 (string-append "gdk_pixbuf_moduledir = "
2091 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2092 "loaders\n"))
2093 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2094 (("gdk_pixbuf_cache_file = .*$")
2095 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2096 #t))
2097 (add-before 'check 'remove-failing-tests
2098 (lambda _
2099 (with-directory-excursion "tests/fixtures/reftests"
2100 (for-each delete-file
2101 '(;; This test fails on i686:
2102 "svg1.1/masking-path-04-b.svg"
2103 ;; This test fails on armhf:
2104 "svg1.1/masking-mask-01-b.svg"
2105 ;; This test fails on aarch64:
2106 "bugs/777834-empty-text-children.svg")))
2107 #t)))))
2108 (native-inputs
2109 `(("pkg-config" ,pkg-config)
2110 ("vala" ,vala)
2111 ("glib" ,glib "bin") ; glib-mkenums, etc.
2112 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2113 (inputs
2114 `(("pango" ,pango)
2115 ("libcroco" ,libcroco)
2116 ("bzip2" ,bzip2)
2117 ("libgsf" ,libgsf)
2118 ("libxml2" ,libxml2)))
2119 (propagated-inputs
2120 ;; librsvg-2.0.pc refers to all of that.
2121 `(("cairo" ,cairo)
2122 ("gdk-pixbuf" ,gdk-pixbuf)
2123 ("glib" ,glib)))
2124 (home-page "https://wiki.gnome.org/LibRsvg")
2125 (synopsis "Render SVG files using Cairo")
2126 (description
2127 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2128 library.")
2129 (license license:lgpl2.0+)))
2130
2131 (define* (computed-origin-method gexp-promise hash-algo hash
2132 #:optional (name "source")
2133 #:key (system (%current-system))
2134 (guile (default-guile)))
2135 "Return a derivation that executes the G-expression that results
2136 from forcing GEXP-PROMISE."
2137 (mlet %store-monad ((guile (package->derivation guile system)))
2138 (gexp->derivation (or name "computed-origin")
2139 (force gexp-promise)
2140 #:graft? #f ;nothing to graft
2141 #:system system
2142 #:guile-for-build guile)))
2143
2144 (define librsvg-next-source
2145 (let* ((version "2.46.3")
2146 (upstream-source (origin
2147 (method url-fetch)
2148 (uri (string-append "mirror://gnome/sources/librsvg/"
2149 (version-major+minor version) "/"
2150 "librsvg-" version ".tar.xz"))
2151 (sha256
2152 (base32
2153 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
2154 (origin
2155 (method computed-origin-method)
2156 (file-name (string-append "librsvg-" version ".tar.xz"))
2157 (sha256 #f)
2158 (uri
2159 (delay
2160 (with-imported-modules '((guix build utils))
2161 #~(begin
2162 (use-modules (guix build utils))
2163 (set-path-environment-variable
2164 "PATH" '("bin")
2165 (list "/tmp"
2166 #+(canonical-package xz)
2167 #+(canonical-package gzip)
2168 #+(canonical-package tar)))
2169 (invoke "tar" "xvf" #+upstream-source)
2170 (with-directory-excursion (string-append "librsvg-" #$version)
2171 (for-each
2172 (lambda (crate)
2173 (delete-file-recursively (string-append "vendor/" (car crate)))
2174 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
2175 '(;("aho-corasick" . #+(package-source rust-aho-corasick-0.7))
2176 ;; alga 0.9
2177 ("approx" . #+(package-source rust-approx-0.3))
2178 ("arrayvec" . #+(package-source rust-arrayvec-0.4))
2179 ("atty" . #+(package-source rust-atty-0.2))
2180 ("autocfg" . #+(package-source rust-autocfg-0.1))
2181 ("bitflags" . #+(package-source rust-bitflags-1))
2182 ;; block 0.1
2183 ("bstr" . #+(package-source rust-bstr-0.2))
2184 ("byteorder" . #+(package-source rust-byteorder-1.3))
2185 ;; cairo-rs 0.7
2186 ;; cairo-sys-rs 0.9
2187 ("cast" . #+(package-source rust-cast-0.2))
2188 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
2189 ("clap" . #+(package-source rust-clap-2))
2190 ("cloudabi" . #+(package-source rust-cloudabi-0.0))
2191 ("criterion" . #+(package-source rust-criterion-0.2))
2192 ("criterion-plot" . #+(package-source rust-criterion-plot-0.3))
2193 ("crossbeam-deque" . #+(package-source rust-crossbeam-deque-0.7))
2194 ;("crossbeam-epoch" . #+(package-source rust-crossbeam-epoch-0.7))
2195 ("crossbeam-queue" . #+(package-source rust-crossbeam-queue-0.1))
2196 ("crossbeam-utils" . #+(package-source rust-crossbeam-utils-0.6))
2197 ;; cssparser 0.25
2198 ;; cssparser-macros 0.3
2199 ("csv" . #+(package-source rust-csv-1.1))
2200 ("csv-core" . #+(package-source rust-csv-core-0.1))
2201 ;; data-url 0.1
2202 ;; downcast-rs 1.0
2203 ("dtoa" . #+(package-source rust-dtoa-0.4))
2204 ;; dtoa-short 0.3
2205 ("either" . #+(package-source rust-either-1.5))
2206 ("encoding" . #+(package-source rust-encoding-0.2))
2207 ("encoding-index-japanese" . #+(package-source rust-encoding-index-japanese-1.20141219))
2208 ("encoding-index-korean" . #+(package-source rust-encoding-index-korean-1.20141219))
2209 ("encoding-index-simpchinese" . #+(package-source rust-encoding-index-simpchinese-1.20141219))
2210 ("encoding-index-singlebyte" . #+(package-source rust-encoding-index-singlebyte-1.20141219))
2211 ("encoding-index-tradchinese" . #+(package-source rust-encoding-index-tradchinese-1.20141219))
2212 ("encoding_index_tests" . #+(package-source rust-encoding-index-tests-0.1))
2213 ;; float-cmp 0.5
2214 ;; fragile 0.3
2215 ("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
2216 ("futf" . #+(package-source rust-futf-0.1))
2217 ;; gdk-pixbuf 0.7
2218 ;; gdk-pixbuf-sys 0.9
2219 ("generic-array" . #+(package-source rust-generic-array-0.12))
2220 ;; gio 0.7
2221 ;; gio-sys 0.9
2222 ;; glib 0.8
2223 ;; glib-sys 0.9
2224 ;; gobject-sys 0.9
2225 ;; idna 0.2
2226 ("itertools" . #+(package-source rust-itertools-0.8))
2227 ("itoa" . #+(package-source rust-itoa-0.4))
2228 ("language-tags" . #+(package-source rust-language-tags-0.2))
2229 ("lazy_static" . #+(package-source rust-lazy-static-1.3))
2230 ("libc" . #+(package-source rust-libc-0.2))
2231 ;; libm 0.1
2232 ;; locale_config 0.3
2233 ("log" . #+(package-source rust-log-0.4))
2234 ("mac" . #+(package-source rust-mac-0.1))
2235 ;; malloc_buf 0.0
2236 ;; markup5ever 0.9
2237 ("matches" . #+(package-source rust-matches-0.1))
2238 ;; matrixmultiply 0.2
2239 ;("memchr" . #+(package-source rust-memchr-2.2))
2240 ;; memoffset 0.5
2241 ;; nalgebra 0.18
2242 ("new_debug_unreachable" . #+(package-source rust-new-debug-unreachable-1.0))
2243 ("nodrop" . #+(package-source rust-nodrop-0.1))
2244 ("num-complex" . #+(package-source rust-num-complex-0.2))
2245 ("num-integer" . #+(package-source rust-num-integer-0.1))
2246 ;; num-rational 0.2
2247 ("num-traits" . #+(package-source rust-num-traits-0.2))
2248 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
2249 ;; objc 0.2
2250 ;; objc-foundation 0.1
2251 ;; objc_id 0.1
2252 ;; pango 0.7
2253 ;; pango-sys 0.9
2254 ;; pangocairo 0.8
2255 ;; pangocairo-sys 0.10
2256 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
2257 ("phf" . #+(package-source rust-phf-0.7))
2258 ("phf_codegen" . #+(package-source rust-phf-codegen-0.7))
2259 ("phf_generator" . #+(package-source rust-phf-generator-0.7))
2260 ("phf_shared" . #+(package-source rust-phf-shared-0.7))
2261 ("pkg-config" . #+(package-source rust-pkg-config-0.3))
2262 ("precomputed-hash" . #+(package-source rust-precomputed-hash-0.1))
2263 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
2264 ;; procedural-masquerade 0.1
2265 ("quote" . #+(package-source rust-quote-1.0))
2266 ("rand" . #+(package-source rust-rand-0.6))
2267 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
2268 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
2269 ("rand_core" . #+(package-source rust-rand-core-0.4))
2270 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
2271 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
2272 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
2273 ("rand_os" . #+(package-source rust-rand-os-0.1))
2274 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
2275 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
2276 ;; rand_xoshiro 0.1
2277 ;; rawpointer 0.2
2278 ;; rayon 1.2
2279 ;; rayon-core 1.6
2280 ;; rctree 0.3
2281 ("rdrand" . #+(package-source rust-rdrand-0.4))
2282 ;; regex 1.3
2283 ("regex-automata" . #+(package-source rust-regex-automata-0.1))
2284 ;("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
2285 ("rustc_version" . #+(package-source rust-rustc-version-0.2))
2286 ("ryu" . #+(package-source rust-ryu-1.0))
2287 ("same-file" . #+(package-source rust-same-file-1.0))
2288 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
2289 ("semver" . #+(package-source rust-semver-0.9))
2290 ("semver-parser" . #+(package-source rust-semver-parser-0.7))
2291 ("serde" . #+(package-source rust-serde-1.0))
2292 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
2293 ("serde_json" . #+(package-source rust-serde-json-1.0))
2294 ("siphasher" . #+(package-source rust-siphasher-0.2))
2295 ("smallvec" . #+(package-source rust-smallvec-0.6))
2296 ("string_cache" . #+(package-source rust-string-cache-0.7))
2297 ;("string_cache_codegen" . #+(package-source rust-string-cache-codegen-0.4))
2298 ("string_cache_shared" . #+(package-source rust-string-cache-shared-0.3))
2299 ("syn" . #+(package-source rust-syn-1.0))
2300 ("tendril" . #+(package-source rust-tendril-0.4))
2301 ("textwrap" . #+(package-source rust-textwrap-0.11))
2302 ("thread_local" . #+(package-source rust-thread-local-0.3))
2303 ("tinytemplate" . #+(package-source rust-tinytemplate-1.0))
2304 ("typenum" . #+(package-source rust-typenum-1.10))
2305 ("unicode-bidi" . #+(package-source rust-unicode-bidi-0.3))
2306 ("unicode-normalization" . #+(package-source rust-unicode-normalization-0.1))
2307 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
2308 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
2309 ;; url 2.1
2310 ("utf-8" . #+(package-source rust-utf-8-0.7))
2311 ("walkdir" . #+(package-source rust-walkdir-2.2))
2312 ("winapi" . #+(package-source rust-winapi-0.3))
2313 ("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
2314 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
2315 ("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
2316 ;; xml-rs 0.8
2317 )))
2318 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
2319 (force-output)
2320 (invoke "tar" "cfa" #$output
2321 ;; Avoid non-determinism in the archive. We set the
2322 ;; mtime of files in the archive to early 1980 because
2323 ;; the build process fails if the mtime of source
2324 ;; files is pre-1980, due to the creation of zip
2325 ;; archives.
2326 "--mtime=@315619200" ; 1980-01-02 UTC
2327 "--owner=root:0"
2328 "--group=root:0"
2329 "--sort=name"
2330 (string-append "librsvg-" #$version))
2331 #t)))))))
2332
2333 (define-public librsvg-next
2334 (package
2335 (name "librsvg")
2336 (version "2.46.3")
2337 (source librsvg-next-source)
2338 (build-system gnu-build-system)
2339 (arguments
2340 `(#:configure-flags
2341 (list "--disable-static"
2342 "--enable-vala") ; needed for e.g. gnome-mines
2343 #:make-flags '("CC=gcc")
2344 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
2345 #:phases
2346 (modify-phases %standard-phases
2347 (add-after 'configure 'patch-cargo-checksums
2348 (lambda _
2349 (use-modules (guix build cargo-utils))
2350 (substitute* "librsvg/Cargo.toml"
2351 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
2352 (generate-all-checksums "vendor")
2353 (delete-file "Cargo.lock")
2354 (invoke "cargo" "generate-lockfile")))
2355 (add-before 'configure 'pre-configure
2356 (lambda* (#:key inputs #:allow-other-keys)
2357 (substitute* "gdk-pixbuf-loader/Makefile.in"
2358 ;; By default the gdk-pixbuf loader is installed under
2359 ;; gdk-pixbuf's prefix. Work around that.
2360 (("gdk_pixbuf_moduledir = .*$")
2361 (string-append "gdk_pixbuf_moduledir = "
2362 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2363 "loaders\n"))
2364 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2365 (("gdk_pixbuf_cache_file = .*$")
2366 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2367 #t))
2368 (add-before 'check 'remove-failing-tests
2369 (lambda _
2370 (with-directory-excursion "tests/fixtures/reftests"
2371 (for-each delete-file
2372 '(;; The images produced by these tests differ slightly
2373 ;; from their reference counterparts due to differences
2374 ;; in the build environment (missing fonts, etc). See
2375 ;; <tests/README.md> for details.
2376 ;; These fail on x86_64.
2377 "svg1.1/coords-viewattr-02-b.svg"
2378 "svg1.1/filters-composite-04-f.svg"
2379 "svg1.1/filters-image-01-b.svg"
2380 "svg1.1/filters-conv-02-f.svg"
2381 "svg1.1/filters-conv-04-f.svg"
2382 ;; This test fails on i686:
2383 "svg1.1/masking-path-04-b.svg"
2384 ;; This test fails on armhf:
2385 "svg1.1/masking-mask-01-b.svg"
2386 ;; This test fails on aarch64:
2387 "bugs/777834-empty-text-children.svg")))
2388 #t)))))
2389 (native-inputs
2390 `(("pkg-config" ,pkg-config)
2391 ;; This is the minimum supported Rust version in Librsvg 2.46.
2392 ("rust" ,rust-1.34)
2393 ("cargo" ,rust-1.34 "cargo")
2394 ("vala" ,vala)
2395 ("glib" ,glib "bin") ; glib-mkenums, etc.
2396 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2397 (inputs
2398 `(("pango" ,pango)
2399 ("libcroco" ,libcroco)
2400 ("bzip2" ,bzip2)
2401 ("libgsf" ,libgsf)
2402 ("libxml2" ,libxml2)))
2403 (propagated-inputs
2404 ;; librsvg-2.0.pc refers to all of that.
2405 `(("cairo" ,cairo)
2406 ("gdk-pixbuf" ,gdk-pixbuf)
2407 ("glib" ,glib)))
2408 (home-page "https://wiki.gnome.org/LibRsvg")
2409 (synopsis "Render SVG files using Cairo")
2410 (description
2411 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2412 library.")
2413 (license license:lgpl2.1+)))
2414
2415 (define-public libidl
2416 (package
2417 (name "libidl")
2418 (version "0.8.14")
2419 (source (origin
2420 (method url-fetch)
2421 (uri (string-append "mirror://gnome/sources/libIDL/"
2422 (version-major+minor version) "/"
2423 "libIDL-" version ".tar.bz2"))
2424 (sha256
2425 (base32
2426 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2427 (build-system gnu-build-system)
2428 (inputs `(("glib" ,glib)))
2429 (native-inputs
2430 `(("pkg-config" ,pkg-config)
2431 ("flex" ,flex)
2432 ("bison" ,bison)))
2433 (home-page "http://freecode.com/projects/libidl")
2434 (synopsis "Create trees of CORBA Interface Definition Language files")
2435 (description "Libidl is a library for creating trees of CORBA Interface
2436 Definition Language (idl) files, which is a specification for defining
2437 portable interfaces. libidl was initially written for orbit (the orb from the
2438 GNOME project, and the primary means of libidl distribution). However, the
2439 functionality was designed to be as reusable and portable as possible.")
2440 (properties `((upstream-name . "libIDL")))
2441 (license license:lgpl2.0+)))
2442
2443
2444 (define-public orbit2
2445 (package
2446 (name "orbit2")
2447 (version "2.14.19")
2448 (source (origin
2449 (method url-fetch)
2450 (uri (let ((upstream-name "ORBit2"))
2451 (string-append "mirror://gnome/sources/" upstream-name "/"
2452 (version-major+minor version) "/"
2453 upstream-name "-" version ".tar.bz2")))
2454 (sha256
2455 (base32
2456 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2457 (build-system gnu-build-system)
2458 (arguments
2459 `(#:configure-flags
2460 '(;; We don't need static libraries, plus they don't build reproducibly
2461 ;; (non-deterministic ordering of .o files in the archive.)
2462 "--disable-static"
2463
2464 ;; The programmer kindly gives us a hook to turn off deprecation
2465 ;; warnings ...
2466 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2467 ;; ... which they then completly ignore !!
2468 #:phases
2469 (modify-phases %standard-phases
2470 (add-before 'configure 'ignore-deprecations
2471 (lambda _
2472 (substitute* "linc2/src/Makefile.in"
2473 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2474 #t)))))
2475 (inputs `(("glib" ,glib)
2476 ("libidl" ,libidl)))
2477 (native-inputs
2478 `(("pkg-config" ,pkg-config)))
2479 (home-page "https://projects.gnome.org/orbit2/")
2480 (synopsis "CORBA 2.4-compliant Object Request Broker")
2481 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2482 featuring mature C, C++ and Python bindings.")
2483 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2484 ;; a version. SOME of the code files have licence notices for GPLv2+.
2485 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2486 (license license:gpl2+)
2487 (properties `((upstream-name . "ORBit2")))))
2488
2489
2490 (define-public libbonobo
2491 (package
2492 (name "libbonobo")
2493 (version "2.32.1")
2494 (source (origin
2495 (method url-fetch)
2496 (uri (string-append "mirror://gnome/sources/" name "/"
2497 (version-major+minor version)
2498 "/" name "-" version ".tar.bz2"))
2499 (sha256
2500 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2501 (patches (search-patches
2502 "libbonobo-activation-test-race.patch"))))
2503 (build-system gnu-build-system)
2504 (arguments
2505 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2506 `(#:configure-flags
2507 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2508 ;; ... which they then completly ignore !!
2509 #:phases
2510 (modify-phases %standard-phases
2511 (add-before 'configure 'ignore-deprecations
2512 (lambda _
2513 (substitute* "activation-server/Makefile.in"
2514 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2515 #t)))
2516
2517 ;; There's apparently a race condition between the server stub
2518 ;; generation and linking of the example under 'samples/echo' that can
2519 ;; lead do undefined references when building in parallel, as reported
2520 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2521 ;; Thus, disable parallel builds.
2522 #:parallel-build? #f))
2523 (inputs `(("popt" ,popt)
2524 ("libxml2" ,libxml2)))
2525 ;; The following are Required by the .pc file
2526 (propagated-inputs
2527 `(("glib" ,glib)
2528 ("orbit2" ,orbit2)))
2529 (native-inputs
2530 `(("intltool" ,intltool)
2531 ("pkg-config" ,pkg-config)
2532 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2533 ("flex" ,flex)
2534 ("bison" ,bison)))
2535 (home-page "https://developer.gnome.org/libbonobo/")
2536 (synopsis "Framework for creating reusable components for use in GNOME applications")
2537 (description "Bonobo is a framework for creating reusable components for
2538 use in GNOME applications, built on top of CORBA.")
2539 ;; Licence not explicitly stated. Source files contain no licence notices.
2540 ;; Tarball contains text of both GPLv2 and LGPLv2
2541 ;; GPLv2 covers both conditions
2542 (license license:gpl2+)))
2543
2544
2545 (define-public gconf
2546 (package
2547 (name "gconf")
2548 (version "3.2.6")
2549 (source (origin
2550 (method url-fetch)
2551 (uri
2552 (let ((upstream-name "GConf"))
2553 (string-append "mirror://gnome/sources/" upstream-name "/"
2554 (version-major+minor version) "/"
2555 upstream-name "-" version ".tar.xz")))
2556 (sha256
2557 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2558 (build-system gnu-build-system)
2559 (inputs `(("dbus-glib" ,dbus-glib)
2560 ("libxml2" ,libxml2)))
2561 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2562 ("orbit2" ,orbit2)))
2563 (native-inputs
2564 `(("intltool" ,intltool)
2565 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2566 ("pkg-config" ,pkg-config)))
2567 (home-page "https://projects.gnome.org/gconf/")
2568 (synopsis "Store application preferences")
2569 (description "Gconf is a system for storing application preferences. It
2570 is intended for user preferences; not arbitrary data storage.")
2571 (license license:lgpl2.0+)
2572 (properties '((upstream-name . "GConf")))))
2573
2574
2575 (define-public gnome-mime-data
2576 (package
2577 (name "gnome-mime-data")
2578 (version "2.18.0")
2579 (source (origin
2580 (method url-fetch)
2581 (uri (string-append "mirror://gnome/sources/" name "/"
2582 (version-major+minor version) "/"
2583 name "-" version ".tar.bz2"))
2584 (sha256
2585 (base32
2586 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2587 (build-system gnu-build-system)
2588 (native-inputs
2589 `(("perl" ,perl)
2590 ("intltool" ,intltool)))
2591 (arguments
2592 '(#:phases (modify-phases %standard-phases
2593 (add-after 'configure 'use-our-intltool
2594 (lambda _
2595 ;; Do not use the bundled intltool commands, which lack
2596 ;; the "dotless @INC" fixes of our 'intltool' package.
2597 (substitute* (find-files "." "^Makefile$")
2598 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2599 (string-append "INTLTOOL_" tool " = intltool-"
2600 (string-downcase tool) "\n")))
2601 #t)))))
2602 (home-page "https://www.gnome.org")
2603 (synopsis "Base MIME and Application database for GNOME")
2604 (description "GNOME Mime Data is a module which contains the base MIME
2605 and Application database for GNOME. The data stored by this module is
2606 designed to be accessed through the MIME functions in GnomeVFS.")
2607 (license license:gpl2+)))
2608
2609
2610 (define-public gnome-vfs
2611 (package
2612 (name "gnome-vfs")
2613 (version "2.24.4")
2614 (source (origin
2615 (method url-fetch)
2616 (uri (string-append "mirror://gnome/sources/" name "/"
2617 (version-major+minor version) "/"
2618 name "-" version ".tar.bz2"))
2619 (sha256
2620 (base32
2621 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2622 (build-system gnu-build-system)
2623 (arguments
2624 `(#:phases
2625 (modify-phases %standard-phases
2626 (add-before 'configure 'ignore-deprecations
2627 (lambda _
2628 (substitute* '("libgnomevfs/Makefile.in"
2629 "daemon/Makefile.in")
2630 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2631 #t))
2632 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2633 (lambda _
2634 (substitute* "test/test-async-cancel.c"
2635 (("EXIT_FAILURE") "77"))
2636 #t)))))
2637 (inputs `(("libxml2" ,libxml2)
2638 ("dbus-glib" ,dbus-glib)
2639 ("gconf" ,gconf)
2640 ("gnome-mime-data" ,gnome-mime-data)
2641 ("zlib" ,zlib)))
2642 (native-inputs
2643 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2644 ("intltool" ,intltool)
2645 ("pkg-config" ,pkg-config)))
2646 (home-page "https://developer.gnome.org/gnome-vfs/")
2647 (synopsis "Access files and folders in GNOME applications")
2648 (description
2649 "GnomeVFS is the core library used to access files and folders in GNOME
2650 applications. It provides a file system abstraction which allows applications
2651 to access local and remote files with a single consistent API.")
2652 (license license:lgpl2.0+)))
2653
2654
2655
2656 (define-public libgnome
2657 (package
2658 (name "libgnome")
2659 (version "2.32.1")
2660 (source (origin
2661 (method url-fetch)
2662 (uri (string-append "mirror://gnome/sources/" name "/"
2663 (version-major+minor version) "/"
2664 name "-" version ".tar.bz2"))
2665 (sha256
2666 (base32
2667 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2668 (patches (search-patches "libgnome-encoding.patch"))))
2669 (build-system gnu-build-system)
2670 (arguments
2671 `(#:phases
2672 (modify-phases %standard-phases
2673 (add-before 'configure 'enable-deprecated
2674 (lambda _
2675 (substitute* "libgnome/Makefile.in"
2676 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2677 #t)))))
2678 (inputs `(("libxml2" ,libxml2)))
2679 (native-inputs
2680 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2681 ("intltool" ,intltool)
2682 ("pkg-config" ,pkg-config)))
2683 ;; The following are listed as Required in the .pc file
2684 ;; (except for libcanberra -- which seems to be oversight on the part
2685 ;; of the upstream developers -- anything that links against libgnome,
2686 ;; must also link against libcanberra
2687 (propagated-inputs
2688 `(("libcanberra" ,libcanberra)
2689 ("libbonobo" ,libbonobo)
2690 ("gconf" ,gconf)
2691 ("gnome-vfs" ,gnome-vfs)
2692 ("popt" ,popt))) ;gnome-program.h includes popt.h
2693 (home-page "https://developer.gnome.org/libgnome/")
2694 (synopsis "Useful routines for building applications")
2695 (description "The libgnome library provides a number of useful routines
2696 for building modern applications, including session management, activation of
2697 files and URIs, and displaying help.")
2698 (license license:lgpl2.0+)))
2699
2700
2701 (define-public libart-lgpl
2702 (package
2703 (name "libart-lgpl")
2704 (version "2.3.21")
2705 (source (origin
2706 (method url-fetch)
2707 (uri (let ((upstream-name "libart_lgpl"))
2708 (string-append "mirror://gnome/sources/" upstream-name "/"
2709 (version-major+minor version) "/"
2710 upstream-name "-" version ".tar.bz2")))
2711 (sha256
2712 (base32
2713 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2714 (build-system gnu-build-system)
2715 (native-inputs
2716 `(("pkg-config" ,pkg-config)))
2717 (home-page "https://people.gnome.org/~mathieu/libart")
2718 (synopsis "2D drawing library")
2719 (description "Libart is a 2D drawing library intended as a
2720 high-quality vector-based 2D library with antialiasing and alpha composition.")
2721 (license license:lgpl2.0+)))
2722
2723
2724
2725 (define-public libgnomecanvas
2726 (package
2727 (name "libgnomecanvas")
2728 (version "2.30.3")
2729 (source (origin
2730 (method url-fetch)
2731 (uri (string-append "mirror://gnome/sources/" name "/"
2732 (version-major+minor version) "/"
2733 name "-" version ".tar.gz"))
2734 (sha256
2735 (base32
2736 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2737 (build-system gnu-build-system)
2738 ;; Mentioned as Required in the .pc file
2739 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2740 ("gtk+" ,gtk+-2)))
2741 (native-inputs
2742 `(("intltool" ,intltool)
2743 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2744 ("pkg-config" ,pkg-config)))
2745 (home-page "https://developer.gnome.org/libgnomecanvas/")
2746 (synopsis "Flexible widget for creating interactive structured graphics")
2747 (description "The GnomeCanvas widget provides a flexible widget for
2748 creating interactive structured graphics.")
2749 (license license:lgpl2.0+)))
2750
2751 (define-public libgnomecanvasmm
2752 (package
2753 (name "libgnomecanvasmm")
2754 (version "2.26.0")
2755 (source (origin
2756 (method url-fetch)
2757 (uri (string-append "mirror://gnome/sources/" name "/"
2758 (version-major+minor version) "/"
2759 name "-" version ".tar.bz2"))
2760 (sha256
2761 (base32
2762 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2763 (build-system gnu-build-system)
2764 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2765 (native-inputs
2766 `(("gtkmm-2" ,gtkmm-2)
2767 ("pkg-config" ,pkg-config)))
2768 (home-page "https://gtkmm.org")
2769 (synopsis "C++ bindings to the GNOME Canvas library")
2770 (description "C++ bindings to the GNOME Canvas library.")
2771 (license license:lgpl2.0+)))
2772
2773 (define-public libgnomeui
2774 (package
2775 (name "libgnomeui")
2776 (version "2.24.5")
2777 (source (origin
2778 (method url-fetch)
2779 (uri (string-append "mirror://gnome/sources/" name "/"
2780 (version-major+minor version) "/"
2781 name "-" version ".tar.bz2"))
2782 (patches (search-patches "libgnomeui-utf8.patch"))
2783 (sha256
2784 (base32
2785 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2786 (build-system gnu-build-system)
2787 ;; Mentioned as Required in the .pc file
2788 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2789 ("libgnome" ,libgnome)
2790 ("libgnomecanvas" ,libgnomecanvas)
2791 ("libgnome-keyring" ,libgnome-keyring)))
2792 (inputs `(("libjpeg" ,libjpeg)
2793 ("popt" ,popt)
2794 ("libbonobo" ,libbonobo)
2795 ("libxml2" ,libxml2)
2796 ("libglade" ,libglade)))
2797 (native-inputs
2798 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2799 ("intltool" ,intltool)
2800 ("pkg-config" ,pkg-config)))
2801 (home-page "https://developer.gnome.org/libgnomeui/")
2802 (synopsis "Additional widgets for applications")
2803 (description "The libgnomeui library provides additional widgets for
2804 applications. Many of the widgets from libgnomeui have already been
2805 ported to GTK+.")
2806 (license license:lgpl2.0+)))
2807
2808 (define-public libglade
2809 (package
2810 (name "libglade")
2811 (version "2.6.4")
2812 (source (origin
2813 (method url-fetch)
2814 (uri (string-append "mirror://gnome/sources/" name "/"
2815 (version-major+minor version) "/"
2816 name "-" version ".tar.bz2"))
2817 (sha256
2818 (base32
2819 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2820 (build-system gnu-build-system)
2821 (inputs
2822 `(("python" ,python))) ;; needed for the optional libglade-convert program
2823 (propagated-inputs
2824 `(("gtk+-2" ,gtk+-2)
2825 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2826 (native-inputs
2827 `(("pkg-config" ,pkg-config)))
2828 (home-page "https://developer.gnome.org/libglade")
2829 (synopsis "Load glade interfaces and access the glade built widgets")
2830 (description "Libglade is a library that provides interfaces for loading
2831 graphical interfaces described in glade files and for accessing the
2832 widgets built in the loading process.")
2833 (license license:gpl2+))) ; This is correct. GPL not LGPL
2834
2835 (define-public libgnomeprint
2836 ;; This library has been deprecated since 2006; see
2837 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2838 (package
2839 (name "libgnomeprint")
2840 (version "2.18.8")
2841 (source (origin
2842 (method url-fetch)
2843 (uri (string-append "mirror://gnome/sources/" name "/"
2844 (version-major+minor version) "/"
2845 name "-" version ".tar.bz2"))
2846 (sha256
2847 (base32
2848 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2849 (build-system gnu-build-system)
2850 (inputs
2851 `(("popt" ,popt)
2852 ("libart-lgpl" ,libart-lgpl)
2853 ("gtk+" ,gtk+-2)
2854 ("libxml2" ,libxml2)))
2855 (native-inputs
2856 `(("intltool" ,intltool)
2857 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2858 ("pkg-config" ,pkg-config)))
2859 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2860 (synopsis "Printing framework for GNOME")
2861 (description
2862 "GNOME-print was a printing framework for GNOME. It has been deprecated
2863 since ca. 2006, when GTK+ itself incorporated printing support.")
2864 (license license:lgpl2.0+)))
2865
2866
2867 (define-public libgnomeprintui
2868 ;; Deprecated; see libgnomeprint.
2869 (package
2870 (name "libgnomeprintui")
2871 (version "2.18.6")
2872 (source (origin
2873 (method url-fetch)
2874 (uri (string-append "mirror://gnome/sources/" name "/"
2875 (version-major+minor version) "/"
2876 name "-" version ".tar.bz2"))
2877 (sha256
2878 (base32
2879 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2880 (build-system gnu-build-system)
2881 ;; Mentioned as Required in the .pc file
2882 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2883 (inputs `(("gtk+" ,gtk+-2)
2884 ("glib" ,glib)
2885 ("gnome-icon-theme" ,gnome-icon-theme)
2886 ("libgnomecanvas" ,libgnomecanvas)
2887 ("libxml2" ,libxml2)))
2888 (native-inputs
2889 `(("intltool" ,intltool)
2890 ("pkg-config" ,pkg-config)))
2891 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2892 (synopsis "Printing framework for GNOME")
2893 (description (package-description libgnomeprint))
2894 (license license:lgpl2.0+)))
2895
2896 (define-public libbonoboui
2897 (package
2898 (name "libbonoboui")
2899 (version "2.24.5")
2900 (source (origin
2901 (method url-fetch)
2902 (uri (string-append "mirror://gnome/sources/" name "/"
2903 (version-major+minor version) "/"
2904 name "-" version ".tar.bz2"))
2905 (sha256
2906 (base32
2907 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2908 (build-system gnu-build-system)
2909 (arguments
2910 `(#:phases
2911 (modify-phases %standard-phases
2912 (add-before 'check 'start-xserver
2913 (lambda* (#:key inputs #:allow-other-keys)
2914 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2915 (disp ":1"))
2916
2917 (setenv "HOME" (getcwd))
2918 (setenv "DISPLAY" disp)
2919 ;; There must be a running X server and make check doesn't start one.
2920 ;; Therefore we must do it.
2921 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2922 ;; Mentioned as Required by the .pc file
2923 (propagated-inputs `(("libxml2" ,libxml2)))
2924 (inputs
2925 `(("popt" ,popt)
2926 ("pangox-compat" ,pangox-compat)
2927 ("libgnome" ,libgnome)
2928 ("libgnomecanvas" ,libgnomecanvas)
2929 ("libglade" ,libglade)))
2930 (native-inputs
2931 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2932 ("intltool" ,intltool)
2933 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2934 ("pkg-config" ,pkg-config)))
2935 (home-page "https://developer.gnome.org/libbonoboui/")
2936 (synopsis "Some user interface controls using Bonobo")
2937 (description "The Bonobo UI library provides a number of user interface
2938 controls using the Bonobo component framework.")
2939 (license license:lgpl2.0+)))
2940
2941 (define-public libwnck
2942 (package
2943 (name "libwnck")
2944 (version "3.32.0")
2945 (source (origin
2946 (method url-fetch)
2947 (uri (string-append "mirror://gnome/sources/" name "/"
2948 (version-major+minor version) "/"
2949 name "-" version ".tar.xz"))
2950 (sha256
2951 (base32
2952 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2953 (build-system meson-build-system)
2954 (native-inputs
2955 `(("pkg-config" ,pkg-config)
2956 ("glib" ,glib "bin") ; for glib-mkenums
2957 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
2958 ("intltool" ,intltool)))
2959 (propagated-inputs
2960 `(("gtk+" ,gtk+)
2961 ("libxres" ,libxres)
2962 ("startup-notification" ,startup-notification)))
2963 (home-page "https://developer.gnome.org/libwnck/")
2964 (synopsis "Window Navigator Construction Kit")
2965 (description
2966 "Libwnck is the Window Navigator Construction Kit, a library for use in
2967 writing pagers, tasklists, and more generally applications that are dealing
2968 with window management. It tries hard to respect the Extended Window Manager
2969 Hints specification (EWMH).")
2970 (license license:lgpl2.0+)))
2971
2972 ;; stable version for gtk2, required by xfwm4.
2973 (define-public libwnck-2
2974 (package (inherit libwnck)
2975 (name "libwnck")
2976 (version "2.30.7")
2977 (source (origin
2978 (method url-fetch)
2979 (uri (string-append "mirror://gnome/sources/" name "/"
2980 (version-major+minor version) "/"
2981 name "-" version ".tar.xz"))
2982 (sha256
2983 (base32
2984 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
2985 (build-system gnu-build-system)
2986 (native-inputs
2987 `(("pkg-config" ,pkg-config)
2988 ("intltool" ,intltool)))
2989 (propagated-inputs
2990 `(("gtk+" ,gtk+-2)
2991 ("libxres" ,libxres)
2992 ("startup-notification" ,startup-notification)))))
2993
2994 (define-public goffice
2995 (package
2996 (name "goffice")
2997 (version "0.10.46")
2998 (source (origin
2999 (method url-fetch)
3000 (uri (string-append "mirror://gnome/sources/goffice/"
3001 (version-major+minor version) "/"
3002 "goffice-" version ".tar.xz"))
3003 (sha256
3004 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
3005 (build-system gnu-build-system)
3006 (outputs '("out"
3007 "doc")) ; 4.0 MiB of gtk-doc
3008 (arguments
3009 '(#:configure-flags (list (string-append "--with-html-dir="
3010 (assoc-ref %outputs "doc")
3011 "/share/gtk-doc/html"))))
3012 (inputs
3013 `(("gtk+" ,gtk+)
3014 ("libgsf" ,libgsf)
3015 ("librsvg" ,librsvg)
3016 ("libxslt" ,libxslt)
3017 ("libxml2" ,libxml2)))
3018 (native-inputs
3019 `(("intltool" ,intltool)
3020 ("glib" ,glib "bin")
3021 ("pkg-config" ,pkg-config)))
3022 (home-page "https://developer.gnome.org/goffice/")
3023 (synopsis "Document-centric objects and utilities")
3024 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3025 (license
3026 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3027 ;; Note: NOT LGPL
3028 (list license:gpl2 license:gpl3))))
3029
3030 (define-public goffice-0.8
3031 (package (inherit goffice)
3032 (version "0.8.17")
3033 (source (origin
3034 (method url-fetch)
3035 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3036 (version-major+minor version) "/"
3037 (package-name goffice) "-" version ".tar.xz"))
3038 (sha256
3039 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3040 (arguments
3041 `(#:phases
3042 (modify-phases %standard-phases
3043 (add-after 'unpack 'fix-pcre-check
3044 (lambda _
3045 ;; Only glib.h can be included directly. See
3046 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3047 (substitute* "configure"
3048 (("glib/gregex\\.h") "glib.h")) #t)))
3049
3050 ,@(package-arguments goffice)))
3051 (propagated-inputs
3052 ;; libgoffice-0.8.pc mentions libgsf-1
3053 `(("libgsf" ,libgsf)))
3054 (inputs
3055 `(("gtk" ,gtk+-2)
3056 ,@(alist-delete "gtk" (package-inputs goffice))))))
3057
3058 (define-public gnumeric
3059 (package
3060 (name "gnumeric")
3061 (version "1.12.46")
3062 (source (origin
3063 (method url-fetch)
3064 (uri (string-append "mirror://gnome/sources/gnumeric/"
3065 (version-major+minor version) "/"
3066 "gnumeric-" version ".tar.xz"))
3067 (sha256
3068 (base32
3069 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3070 (build-system glib-or-gtk-build-system)
3071 (arguments
3072 `(;; The gnumeric developers don't worry much about failing tests.
3073 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3074 #:tests? #f
3075 #:phases
3076 (modify-phases %standard-phases
3077 (add-before
3078 'configure 'pre-conf
3079 (lambda* (#:key outputs #:allow-other-keys)
3080 ;; Make install tries to write into the directory of goffice
3081 ;; I am informed that this only affects the possibility to embed a
3082 ;; spreadsheet inside an Abiword document. So presumably when we
3083 ;; package Abiword we'll have to refer it to this directory.
3084 (substitute* "configure"
3085 (("^GOFFICE_PLUGINS_DIR=.*")
3086 (string-append "GOFFICE_PLUGINS_DIR="
3087 (assoc-ref outputs "out")
3088 "/goffice/plugins"))))))))
3089 (inputs
3090 `(("glib" ,glib)
3091 ("gtk+" ,gtk+)
3092 ("goffice" ,goffice)
3093 ("libgsf" ,libgsf)
3094 ("librsvg" ,librsvg)
3095 ("libxml2" ,libxml2)
3096 ("libxslt" ,libxslt)
3097 ("python" ,python-2)
3098 ("python2-pygobject" ,python2-pygobject)
3099 ("zlib" ,zlib)))
3100 (native-inputs
3101 `(("bison" ,bison)
3102 ("docbook-xml" ,docbook-xml)
3103 ("intltool" ,intltool)
3104 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
3105 ("glib:bin" ,glib "bin")
3106 ("pkg-config" ,pkg-config)))
3107 (home-page "http://www.gnumeric.org")
3108 (synopsis "Spreadsheet application")
3109 (description
3110 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3111 interoperable with other spreadsheet applications. It has a vast array of
3112 features beyond typical spreadsheet functionality, such as support for linear
3113 and non-linear solvers, statistical analysis, and telecommunication
3114 engineering.")
3115 (license
3116 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3117 (list license:gpl2 license:gpl3))))
3118
3119 (define-public gnome-themes-standard
3120 (package
3121 (name "gnome-themes-standard")
3122 (version "3.22.3")
3123 (source
3124 (origin
3125 (method url-fetch)
3126 (uri (string-append "mirror://gnome/sources/" name "/"
3127 (version-major+minor version) "/" name "-"
3128 version ".tar.xz"))
3129 (sha256
3130 (base32
3131 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3132 (build-system gnu-build-system)
3133 (arguments
3134 '(#:configure-flags
3135 ;; Don't create 'icon-theme.cache'.
3136 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3137 (true (string-append coreutils "/bin/true")))
3138 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3139 (inputs
3140 `(("gtk+" ,gtk+)
3141 ("gtk+-2" ,gtk+-2)
3142 ("librsvg" ,librsvg)
3143 ("libxml2" ,libxml2)
3144 ("glib" ,glib)))
3145 (native-inputs
3146 `(("intltool" ,intltool)
3147 ("glib:bin" ,glib "bin")
3148 ("pkg-config" ,pkg-config)))
3149 (home-page "https://launchpad.net/gnome-themes-standard")
3150 (synopsis "Default GNOME 3 themes")
3151 (description
3152 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3153 (license license:lgpl2.1+)))
3154
3155 (define-public seahorse
3156 (package
3157 (name "seahorse")
3158 (version "3.32.2")
3159 (source
3160 (origin
3161 (method url-fetch)
3162 (uri (string-append "mirror://gnome/sources/" name "/"
3163 (version-major+minor version) "/" name "-"
3164 version ".tar.xz"))
3165 (sha256
3166 (base32
3167 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
3168 (patches (search-patches
3169 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3170 (build-system meson-build-system)
3171 (arguments
3172 '(#:glib-or-gtk? #t
3173 #:phases
3174 (modify-phases %standard-phases
3175 (add-after 'unpack 'skip-gtk-update-icon-cache
3176 ;; Don't create 'icon-theme.cache'.
3177 (lambda _
3178 (substitute* "build-aux/meson_post_install.py"
3179 (("gtk-update-icon-cache") "true"))
3180 #t)))))
3181 (inputs
3182 `(("gtk+" ,gtk+)
3183 ("gcr" ,gcr)
3184 ("gnupg" ,gnupg)
3185 ("gpgme" ,gpgme)
3186 ("openldap" ,openldap)
3187 ("openssh" ,openssh)
3188 ("avahi" ,avahi)
3189 ("libpwquality" ,libpwquality)
3190 ("libsecret" ,libsecret)
3191 ("libsoup" ,libsoup)))
3192 (native-inputs
3193 `(("gettext" ,gettext-minimal)
3194 ("glib:bin" ,glib "bin")
3195 ("itstool" ,itstool)
3196 ("pkg-config" ,pkg-config)
3197 ("vala" ,vala)
3198 ("xmllint" ,libxml2)))
3199 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3200 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3201 (description
3202 "Seahorse is a GNOME application for managing encryption keys and
3203 passwords in the GNOME keyring.")
3204 (license license:gpl2+)))
3205
3206 (define-public vala
3207 (package
3208 (name "vala")
3209 (version "0.44.5")
3210 (source (origin
3211 (method url-fetch)
3212 (uri (string-append "mirror://gnome/sources/" name "/"
3213 (version-major+minor version) "/"
3214 name "-" version ".tar.xz"))
3215 (sha256
3216 (base32
3217 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
3218 (build-system gnu-build-system)
3219 (arguments
3220 '(#:phases
3221 (modify-phases %standard-phases
3222 (add-before 'check 'pre-check
3223 (lambda _
3224 (setenv "CC" "gcc")
3225 (substitute* "valadoc/tests/testrunner.sh"
3226 (("export PKG_CONFIG_PATH=" m)
3227 (string-append m "$PKG_CONFIG_PATH:")))
3228 ;; For missing '/etc/machine-id'.
3229 (setenv "DBUS_FATAL_WARNINGS" "0")
3230 #t)))))
3231 (native-inputs
3232 `(("pkg-config" ,pkg-config)
3233 ("flex" ,flex)
3234 ("bison" ,bison)
3235 ("xsltproc" ,libxslt)
3236 ("dbus" ,dbus) ; for dbus tests
3237 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3238 (inputs
3239 `(("graphviz" ,graphviz)))
3240 (propagated-inputs
3241 `(("glib" ,glib))) ; required by libvala-0.40.pc
3242 (home-page "https://live.gnome.org/Vala/")
3243 (synopsis "Compiler for the GObject type system")
3244 (description
3245 "Vala is a programming language that aims to bring modern programming
3246 language features to GNOME developers without imposing any additional runtime
3247 requirements and without using a different ABI compared to applications and
3248 libraries written in C.")
3249 (license license:lgpl2.1+)))
3250
3251 (define-public vte
3252 (package
3253 (name "vte")
3254 (version "0.58.3")
3255 (source (origin
3256 (method url-fetch)
3257 (uri (string-append "mirror://gnome/sources/vte/"
3258 (version-major+minor version) "/"
3259 "vte-" version ".tar.xz"))
3260 (sha256
3261 (base32
3262 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3263 (build-system meson-build-system)
3264 (native-inputs
3265 `(("pkg-config" ,pkg-config)
3266 ("intltool" ,intltool)
3267 ("vala" ,vala)
3268 ("gobject-introspection" ,gobject-introspection)
3269 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3270 ("gperf" ,gperf)
3271 ("xmllint" ,libxml2)))
3272 (propagated-inputs
3273 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3274 ("gnutls" ,gnutls) ; ditto
3275 ("pcre2" ,pcre2))) ; ditto
3276 (home-page "https://www.gnome.org/")
3277 (synopsis "Virtual Terminal Emulator")
3278 (description
3279 "VTE is a library (libvte) implementing a terminal emulator widget for
3280 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3281 gnome-terminal, but can also be used to embed a console/terminal in games,
3282 editors, IDEs, etc.")
3283 (license license:lgpl2.1+)))
3284
3285 (define-public vte-ng
3286 (package
3287 (inherit vte)
3288 (name "vte-ng")
3289 (version "0.58.2.a")
3290 (home-page "https://github.com/thestinger/vte-ng")
3291 (source (origin
3292 (method git-fetch)
3293 (uri (git-reference (url home-page) (commit version)))
3294 (file-name (git-file-name name version))
3295 (sha256
3296 (base32
3297 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3298 (build-system meson-build-system)
3299 (native-inputs
3300 `(("gtk-doc" ,gtk-doc)
3301 ,@(package-native-inputs vte)))
3302 (arguments
3303 `(#:configure-flags '("-Ddocs=true")))
3304 (synopsis "Enhanced VTE terminal widget")
3305 (description
3306 "VTE is a library (libvte) implementing a terminal emulator widget for
3307 GTK+, this fork provides additional functions exposed for keyboard text
3308 selection and URL hints.")))
3309
3310 ;; provides vte 2.90, required for some terminal emulators
3311 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3312 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3313 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3314 ;; pantheon-terminal, roxterm are not currently packaged
3315 (define-public vte-0.36
3316 (package (inherit vte)
3317 (name "vte")
3318 (version "0.36.5")
3319 (source (origin
3320 (method url-fetch)
3321 (uri (string-append "mirror://gnome/sources/" name "/"
3322 (version-major+minor version) "/"
3323 name "-" version ".tar.xz"))
3324 (sha256
3325 (base32
3326 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3327 (propagated-inputs
3328 `(("gtk" ,gtk+)
3329 ("ncurses" ,ncurses)))))
3330
3331 ;; stable version for gtk2, required by xfce4-terminal.
3332 (define-public vte/gtk+-2
3333 (package (inherit vte)
3334 (name "vte")
3335 (version "0.28.2")
3336 (source (origin
3337 (method url-fetch)
3338 (uri (string-append "mirror://gnome/sources/" name "/"
3339 (version-major+minor version) "/"
3340 name "-" version ".tar.xz"))
3341 (sha256
3342 (base32
3343 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3344 (patches (search-patches
3345 "vte-CVE-2012-2738-pt1.patch"
3346 "vte-CVE-2012-2738-pt2.patch"))))
3347 (build-system gnu-build-system)
3348 (arguments
3349 '(#:configure-flags '("--disable-python")))
3350 (native-inputs
3351 `(("pkg-config" ,pkg-config)
3352 ("intltool" ,intltool)
3353 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3354 (propagated-inputs
3355 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3356 ("ncurses" ,ncurses))))) ; required by libvte.la
3357
3358 (define-public vinagre
3359 (package
3360 (name "vinagre")
3361 (version "3.22.0")
3362 (source (origin
3363 (method url-fetch)
3364 (uri (string-append "mirror://gnome/sources/" name "/"
3365 (version-major+minor version) "/"
3366 name "-" version ".tar.xz"))
3367 (patches (search-patches "vinagre-newer-freerdp.patch"
3368 "vinagre-newer-rdp-parameters.patch"))
3369 (sha256
3370 (base32
3371 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3372 (build-system glib-or-gtk-build-system)
3373 (arguments
3374 ;; Disable -Werror and such, to avoid build failures on compilation
3375 ;; warnings.
3376 '(#:configure-flags '("--enable-compile-warnings=minimum")
3377 #:phases
3378 (modify-phases %standard-phases
3379 (add-before 'install 'skip-gtk-update-icon-cache
3380 (lambda _
3381 ;; Don't create 'icon-theme.cache'
3382 (substitute* (find-files "." "^Makefile$")
3383 (("gtk-update-icon-cache") (which "true")))
3384 #t))
3385 (add-after 'unpack 'patch-configure
3386 (lambda _
3387 (substitute* "configure"
3388 (("freerdp") "freerdp2"))
3389 #t)))))
3390 (native-inputs
3391 `(("pkg-config" ,pkg-config)
3392 ("intltool" ,intltool)
3393 ("itstool" ,itstool)
3394 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3395 (inputs
3396 `(("libxml2" ,libxml2)
3397 ("gtk-vnc" ,gtk-vnc)
3398 ("gnome-keyring" ,gnome-keyring)
3399 ("libsecret" ,libsecret)
3400 ("freerdp" ,freerdp)
3401 ("spice" ,spice)
3402 ("spice-gtk" ,spice-gtk)
3403 ("telepathy-glib" ,telepathy-glib)
3404 ("vte" ,vte)))
3405 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3406 (synopsis "Remote desktop viewer for GNOME")
3407 (description "Vinagre is a remote display client supporting the VNC, SPICE
3408 and RDP protocols.")
3409 (license license:gpl3+)))
3410
3411 (define-public dconf
3412 (package
3413 (name "dconf")
3414 (version "0.32.0")
3415 (source (origin
3416 (method url-fetch)
3417 (uri (string-append
3418 "mirror://gnome/sources/" name "/"
3419 (version-major+minor version) "/"
3420 name "-" version ".tar.xz"))
3421 (sha256
3422 (base32
3423 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
3424 (build-system meson-build-system)
3425 (propagated-inputs
3426 ;; In Requires of dconf.pc.
3427 `(("glib" ,glib)))
3428 (inputs
3429 `(("gtk+" ,gtk+)
3430 ("dbus" ,dbus)))
3431 (native-inputs
3432 `(("bash-completion" ,bash-completion)
3433 ("libxslt" ,libxslt) ;for xsltproc
3434 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3435 ("docbook-xml" ,docbook-xml-4.2)
3436 ("docbook-xsl" ,docbook-xsl)
3437 ("glib:bin" ,glib "bin")
3438 ("gtk-doc" ,gtk-doc)
3439 ("pkg-config" ,pkg-config)
3440 ("vala" ,vala)))
3441 (arguments
3442 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3443 ; or /etc/machine-id.
3444 #:glib-or-gtk? #t
3445 #:configure-flags '("-Denable-gtk-doc=true")))
3446 (home-page "https://developer.gnome.org/dconf")
3447 (synopsis "Low-level GNOME configuration system")
3448 (description "Dconf is a low-level configuration system. Its main purpose
3449 is to provide a backend to GSettings on platforms that don't already have
3450 configuration storage systems.")
3451 (license license:lgpl2.1+)))
3452
3453 (define-public json-glib
3454 (package
3455 (name "json-glib")
3456 (version "1.4.4")
3457 (source (origin
3458 (method url-fetch)
3459 (uri (string-append "mirror://gnome/sources/" name "/"
3460 (version-major+minor version) "/"
3461 name "-" version ".tar.xz"))
3462 (sha256
3463 (base32
3464 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3465 (build-system meson-build-system)
3466 (native-inputs
3467 `(("gettext" ,gettext-minimal)
3468 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3469 ("gobject-introspection" ,gobject-introspection)
3470 ("pkg-config" ,pkg-config)))
3471 (propagated-inputs
3472 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3473 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3474 (synopsis "Compiler for the GObject type system")
3475 (description
3476 "JSON-GLib is a C library based on GLib providing serialization and
3477 deserialization support for the JavaScript Object Notation (JSON) format
3478 described by RFC 4627. It provides parser and generator GObject classes and
3479 various wrappers for the complex data types employed by JSON, such as arrays
3480 and objects.")
3481 (license license:lgpl2.1+)))
3482
3483 (define-public libxklavier
3484 (package
3485 (name "libxklavier")
3486 (version "5.4")
3487 (source (origin
3488 ;; Note: There's no tarball at ftp.gnome.org for this version.
3489 (method git-fetch)
3490 (uri (git-reference
3491 (url "https://anongit.freedesktop.org/git/libxklavier")
3492 (commit (string-append "libxklavier-" version))))
3493 (sha256
3494 (base32
3495 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3496 (file-name (git-file-name name version))))
3497 (build-system gnu-build-system)
3498 (arguments
3499 '(#:phases
3500 (modify-phases %standard-phases
3501 (add-after 'unpack 'no-configure
3502 (lambda* _
3503 (setenv "NOCONFIGURE" "1")
3504 #t)))
3505 #:configure-flags
3506 (list (string-append "--with-xkb-base="
3507 (assoc-ref %build-inputs "xkeyboard-config")
3508 "/share/X11/xkb")
3509 "--disable-xmodmap-support")))
3510 (native-inputs
3511 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3512 ("gobject-introspection" ,gobject-introspection)
3513 ("pkg-config" ,pkg-config)
3514 ("gtk-doc" ,gtk-doc)
3515 ("intltool" ,intltool)
3516 ("which" ,which)
3517 ("autoconf" ,autoconf)
3518 ("automake" ,automake)
3519 ("libtool" ,libtool)))
3520 (propagated-inputs
3521 ;; Required by libxklavier.pc.
3522 `(("glib" ,glib)
3523 ("libxml2" ,libxml2)))
3524 (inputs
3525 `(("iso-codes" ,iso-codes)
3526 ("libxi" ,libxi)
3527 ("libxkbfile" ,libxkbfile)
3528 ("xkbcomp" ,xkbcomp)
3529 ("xkeyboard-config" ,xkeyboard-config)))
3530 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3531 (synopsis "High-level API for X Keyboard Extension")
3532 (description
3533 "LibXklavier is a library providing high-level API for X Keyboard
3534 Extension known as XKB. This library is intended to support XFree86 and other
3535 commercial X servers. It is useful for creating XKB-related software (layout
3536 indicators etc).")
3537 (license license:lgpl2.0+)))
3538
3539 (define-public python2-rsvg
3540 ;; XXX: This is actually a subset of gnome-python-desktop.
3541 (package
3542 (name "python2-rsvg")
3543 (version "2.32.0")
3544 (source
3545 (origin
3546 (method url-fetch)
3547 (uri (string-append
3548 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3549 version ".tar.bz2"))
3550 (sha256
3551 (base32
3552 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3553 (build-system gnu-build-system)
3554 (native-inputs
3555 `(("pkg-config" ,pkg-config)))
3556 (inputs
3557 `(("python" ,python-2)
3558 ("python2-pygtk" ,python2-pygtk)
3559 ("librsvg" ,librsvg)))
3560 (home-page "https://www.gnome.org")
3561 (synopsis "Python bindings to librsvg")
3562 (description
3563 "This package provides Python bindings to librsvg, the SVG rendering
3564 library.")
3565
3566 ;; This is the license of the rsvg bindings. The license of each module
3567 ;; of gnome-python-desktop is given in 'COPYING'.
3568 (license license:lgpl2.1+)))
3569
3570 (define-public glib-networking
3571 (package
3572 (name "glib-networking")
3573 (version "2.60.3")
3574 (source (origin
3575 (method url-fetch)
3576 (uri (string-append "mirror://gnome/sources/glib-networking/"
3577 (version-major+minor version) "/"
3578 "glib-networking-" version ".tar.xz"))
3579 (sha256
3580 (base32
3581 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
3582 (build-system meson-build-system)
3583 (arguments
3584 `(#:configure-flags '("-Dlibproxy_support=false")))
3585 (native-inputs
3586 `(("pkg-config" ,pkg-config)
3587 ("intltool" ,intltool)))
3588 (inputs
3589 `(("glib" ,glib)
3590 ("gnutls" ,gnutls)
3591 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3592 (home-page "https://www.gnome.org")
3593 (synopsis "Network-related GIO modules")
3594 (description
3595 "This package contains various network related extensions for the GIO
3596 library.")
3597 (license license:lgpl2.0+)))
3598
3599 (define-public rest
3600 (package
3601 (name "rest")
3602 (version "0.8.1")
3603 (source (origin
3604 (method url-fetch)
3605 (uri (string-append "mirror://gnome/sources/rest/"
3606 (version-major+minor version) "/"
3607 name "-" version ".tar.xz"))
3608 (sha256
3609 (base32
3610 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3611 (build-system gnu-build-system)
3612 (arguments
3613 '(#:tests? #f ; tests require internet connection
3614 #:configure-flags
3615 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3616 (native-inputs
3617 `(("glib-mkenums" ,glib "bin")
3618 ("gobject-introspection" ,gobject-introspection)
3619 ("pkg-config" ,pkg-config)))
3620 (propagated-inputs
3621 ;; rest-0.7.pc refers to all these.
3622 `(("glib" ,glib)
3623 ("libsoup" ,libsoup)
3624 ("libxml2" ,libxml2)))
3625 (home-page "https://www.gtk.org/")
3626 (synopsis "RESTful web api query library")
3627 (description
3628 "This library was designed to make it easier to access web services that
3629 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3630 libxml to ease remote use of the RESTful API.")
3631 (license license:lgpl2.1+)))
3632
3633 (define-public libsoup
3634 (package
3635 (name "libsoup")
3636 (version "2.68.3")
3637 (source (origin
3638 (method url-fetch)
3639 (uri (string-append "mirror://gnome/sources/libsoup/"
3640 (version-major+minor version) "/"
3641 "libsoup-" version ".tar.xz"))
3642 (sha256
3643 (base32
3644 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
3645 (build-system meson-build-system)
3646 (outputs '("out" "doc"))
3647 (arguments
3648 `(#:modules ((guix build utils)
3649 (guix build meson-build-system)
3650 (ice-9 popen))
3651
3652 #:configure-flags '("-Dgtk_doc=true")
3653 #:phases
3654 (modify-phases %standard-phases
3655 (add-after 'unpack 'adjust-tests
3656 (lambda _
3657 ;; This test fails due to missing /etc/nsswitch.conf
3658 ;; in the build environment.
3659 (substitute* "tests/socket-test.c"
3660 ((".*/sockets/unconnected.*") ""))
3661
3662 ;; These fail because "subdomain.localhost" does not resolve in
3663 ;; the build environment.
3664 (substitute* "tests/hsts-test.c"
3665 ((".*/hsts/basic.*") "")
3666 ((".*/hsts/subdomains.*") "")
3667 ((".*/hsts/superdomain.*") "")
3668 ((".*/hsts/utf8-address.*") ""))
3669 (substitute* "tests/hsts-db-test.c"
3670 ((".*/hsts-db/subdomains.*") ""))
3671
3672 ;; Generate a self-signed certificate that has "localhost" as its
3673 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3674 ;; 3.5.12, tests such as "ssl-tests" fail:
3675 ;;
3676 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3677 ;;
3678 ;; 'certtool' is interactive so we have to pipe it the answers.
3679 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3680 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3681 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3682 (for-each (lambda (line)
3683 (display line pipe)
3684 (newline pipe))
3685 '("" ;Common name
3686 "" ;UID
3687 "Guix" ;Organizational unit name
3688 "GNU" ;Organization name
3689 "" ;Locality name
3690 "" ;State or province
3691 "" ;Country
3692 "" ;subject's domain component (DC)
3693 "" ;E-mail
3694 "" ;serial number
3695 "-1" ;expiration time
3696 "N" ;belong to authority?
3697 "N" ;web client certificate?
3698 "N" ;IPsec IKE?
3699 "Y" ;web server certificate?
3700 "localhost" ;dnsName of subject
3701 "" ;dnsName of subject (end)
3702 "" ;URI of subject
3703 "127.0.0.1" ;IP address of subject
3704 "" ;signing?
3705 "" ;encryption (RSA)?
3706 "" ;data encryption?
3707 "" ;sign OCSP requests?
3708 "" ;sign code?
3709 "" ;time stamping?
3710 "" ;email protection?
3711 "" ;URI of the CRL distribution point
3712 "y" ;above info OK?
3713 ))
3714 (close-pipe pipe))
3715 #t))
3716 (add-after 'install 'move-doc
3717 (lambda* (#:key outputs #:allow-other-keys)
3718 (let ((out (assoc-ref outputs "out"))
3719 (doc (assoc-ref outputs "doc")))
3720 (mkdir-p (string-append doc "/share"))
3721 (copy-recursively (string-append out "/share/gtk-doc")
3722 (string-append doc "/share/gtk-doc"))
3723 (delete-file-recursively (string-append out "/share/gtk-doc"))
3724 #t))))))
3725 (native-inputs
3726 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3727 ("gobject-introspection" ,gobject-introspection)
3728 ("gtk-doc" ,gtk-doc)
3729 ("intltool" ,intltool)
3730 ("pkg-config" ,pkg-config)
3731 ("python" ,python-wrapper)
3732 ("vala" ,vala)
3733 ;; These are needed for the tests.
3734 ;; FIXME: Add PHP once available.
3735 ("curl" ,curl)
3736 ("gnutls" ,gnutls) ;for 'certtool'
3737 ("httpd" ,httpd)))
3738 (propagated-inputs
3739 ;; libsoup-2.4.pc refers to all these.
3740 `(("brotli" ,google-brotli)
3741 ("glib" ,glib)
3742 ("libpsl" ,libpsl)
3743 ("libxml2" ,libxml2)
3744 ("sqlite" ,sqlite)
3745 ("zlib" ,zlib)))
3746 (inputs
3747 `(("glib-networking" ,glib-networking)
3748 ("mit-krb5" ,mit-krb5)))
3749 (home-page "https://live.gnome.org/LibSoup/")
3750 (synopsis "GLib-based HTTP Library")
3751 (description
3752 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3753 and the GLib main loop, to integrate well with GNOME applications.")
3754 (license license:lgpl2.0+)))
3755
3756 (define-public libsecret
3757 (package
3758 (name "libsecret")
3759 (version "0.19.1")
3760 (source (origin
3761 (method url-fetch)
3762 (uri (string-append
3763 "mirror://gnome/sources/libsecret/"
3764 (version-major+minor version) "/"
3765 "libsecret-" version ".tar.xz"))
3766 (sha256
3767 (base32
3768 "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
3769 (build-system gnu-build-system)
3770 (outputs '("out" "doc"))
3771 (arguments
3772 `(#:tests? #f ; FIXME: Testing hangs.
3773 #:configure-flags
3774 (list (string-append "--with-html-dir="
3775 (assoc-ref %outputs "doc")
3776 "/share/gtk-doc/html"))))
3777 (native-inputs
3778 `(("gettext" ,gettext-minimal)
3779 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3780 ("gobject-introspection" ,gobject-introspection)
3781 ("pkg-config" ,pkg-config)
3782 ("vala" ,vala)
3783 ("xsltproc" ,libxslt)))
3784 ;; These are needed for the tests.
3785 ;; FIXME: Add gjs once available.
3786 ;("dbus" ,dbus)
3787 ;("python2" ,python-2)
3788 ;("python2-dbus" ,python2-dbus)
3789 ;("python2-pygobject" ,python2-pygobject)
3790 ;("python2-pygobject-2" ,python2-pygobject-2)))
3791 (propagated-inputs
3792 `(("glib" ,glib))) ; required by libsecret-1.pc
3793 (inputs
3794 `(("docbook-xsl" ,docbook-xsl)
3795 ("libgcrypt" ,libgcrypt)
3796 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3797 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3798 (synopsis "GObject bindings for \"Secret Service\" API")
3799 (description
3800 "Libsecret is a GObject based library for storing and retrieving passwords
3801 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3802 (license license:lgpl2.1+)))
3803
3804 (define-public five-or-more
3805 (package
3806 (name "five-or-more")
3807 (version "3.32.0")
3808 (source
3809 (origin
3810 (method url-fetch)
3811 (uri (string-append "mirror://gnome/sources/" name "/"
3812 (version-major+minor version) "/"
3813 name "-" version ".tar.xz"))
3814 (sha256
3815 (base32
3816 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3817 (build-system meson-build-system)
3818 (arguments
3819 '(#:glib-or-gtk? #t
3820 #:phases
3821 (modify-phases %standard-phases
3822 (add-after 'unpack 'skip-gtk-update-icon-cache
3823 (lambda _
3824 (substitute* "meson_post_install.py"
3825 (("gtk-update-icon-cache") (which "true")))
3826 #t)))))
3827 (native-inputs
3828 `(("pkg-config" ,pkg-config)
3829 ("appstream-glib" ,appstream-glib)
3830 ("desktop-file-utils" ,desktop-file-utils)
3831 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3832 ("intltool" ,intltool)
3833 ("itstool" ,itstool)
3834 ("vala" ,vala)
3835 ("xmllint" ,libxml2)))
3836 (inputs
3837 `(("gtk+" ,gtk+)
3838 ("libgnome-games-support" ,libgnome-games-support)
3839 ("librsvg" ,librsvg)))
3840 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3841 (synopsis "Logic puzzle game")
3842 (description "Five or More is a game where you try to align
3843 five or more objects of the same color and shape causing them to disappear.
3844 On every turn more objects will appear, until the board is full.
3845 Try to last as long as possible.")
3846 (license license:gpl2+)))
3847
3848 (define-public gnome-mines
3849 (package
3850 (name "gnome-mines")
3851 (version "3.32.2")
3852 (source
3853 (origin
3854 (method url-fetch)
3855 (uri (string-append "mirror://gnome/sources/" name "/"
3856 (version-major+minor version) "/"
3857 name "-" version ".tar.xz"))
3858 (sha256
3859 (base32
3860 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
3861 (build-system meson-build-system)
3862 (arguments
3863 '(#:glib-or-gtk? #t
3864 #:phases
3865 (modify-phases %standard-phases
3866 (add-after 'unpack 'skip-gtk-update-icon-cache
3867 (lambda _
3868 (substitute* "build-aux/meson_post_install.py"
3869 (("gtk-update-icon-cache") (which "true")))
3870 #t)))))
3871 (native-inputs
3872 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3873 ("pkg-config" ,pkg-config)
3874 ("desktop-file-utils" ,desktop-file-utils)
3875 ("intltool" ,intltool)
3876 ("itstool" ,itstool)
3877 ("vala" ,vala)
3878 ("yelp" ,yelp)
3879 ("appstream-glib" ,appstream-glib)))
3880 (inputs
3881 `(("gtk+" ,gtk+)
3882 ("libgnome-games-support" ,libgnome-games-support)
3883 ("librsvg" ,librsvg)))
3884 (home-page "https://wiki.gnome.org/Apps/Mines")
3885 (synopsis "Minesweeper game")
3886 (description
3887 "Mines (previously gnomine) is a puzzle game where you locate mines
3888 floating in an ocean using only your brain and a little bit of luck.")
3889 (license license:gpl2+)))
3890
3891 (define-public gnome-sudoku
3892 (package
3893 (name "gnome-sudoku")
3894 (version "3.32.0")
3895 (source
3896 (origin
3897 (method url-fetch)
3898 (uri (string-append "mirror://gnome/sources/" name "/"
3899 (version-major+minor version) "/"
3900 name "-" version ".tar.xz"))
3901 (sha256
3902 (base32
3903 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3904 (build-system meson-build-system)
3905 (arguments
3906 '(#:glib-or-gtk? #t
3907 #:phases
3908 (modify-phases %standard-phases
3909 (add-after 'unpack 'skip-gtk-update-icon-cache
3910 (lambda _
3911 (substitute* "build-aux/post_install.py"
3912 (("gtk-update-icon-cache") (which "true")))
3913 #t)))))
3914 (native-inputs
3915 `(("pkg-config" ,pkg-config)
3916 ("desktop-file-utils" ,desktop-file-utils)
3917 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3918 ("intltool" ,intltool)
3919 ("itstool" ,itstool)
3920 ("vala" ,vala)
3921 ("xmllint" ,libxml2)))
3922 (inputs
3923 `(("gtk+" ,gtk+)
3924 ("json-glib" ,json-glib)
3925 ("libgee" ,libgee)
3926 ("librsvg" ,librsvg)
3927 ("qqwing" ,qqwing)))
3928 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3929 (synopsis "Japanese logic game")
3930 (description
3931 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3932 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3933 possible while still providing features that make playing difficult Sudoku
3934 more fun.")
3935 (license license:gpl2+)))
3936
3937 (define-public gnome-terminal
3938 (package
3939 (name "gnome-terminal")
3940 (version "3.32.2")
3941 (source
3942 (origin
3943 (method url-fetch)
3944 (uri (string-append "mirror://gnome/sources/" name "/"
3945 (version-major+minor version) "/"
3946 name "-" version ".tar.xz"))
3947 (sha256
3948 (base32
3949 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
3950 (build-system glib-or-gtk-build-system)
3951 (arguments
3952 '(#:configure-flags
3953 (list "--disable-migration" "--disable-search-provider"
3954 "--without-nautilus-extension")
3955 #:phases
3956 (modify-phases %standard-phases
3957 (add-before 'configure 'patch-/bin/true
3958 (lambda _
3959 (substitute* "configure"
3960 (("/bin/true") (which "true"))))))))
3961 (native-inputs
3962 `(("pkg-config" ,pkg-config)
3963 ("desktop-file-utils" ,desktop-file-utils)
3964 ("intltool" ,intltool)
3965 ("itstool" ,itstool)
3966 ("xmllint" ,libxml2)))
3967 (propagated-inputs
3968 `(("dconf" ,dconf)))
3969 (inputs
3970 `(("gtk+" ,gtk+)
3971 ("vte" ,vte)
3972 ("gnutls" ,gnutls)
3973 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3974 ("util-linux" ,util-linux)
3975 ("vala" ,vala)))
3976 (home-page "https://wiki.gnome.org/Apps/Terminal")
3977 (synopsis "Terminal emulator")
3978 (description
3979 "GNOME Terminal is a terminal emulator application for accessing a
3980 UNIX shell environment which can be used to run programs available on
3981 your system.
3982
3983 It supports several profiles, multiple tabs and implements several
3984 keyboard shortcuts.")
3985 (license license:gpl3+)))
3986
3987 (define-public colord
3988 (package
3989 (name "colord")
3990 (version "1.4.4")
3991 (source
3992 (origin
3993 (method url-fetch)
3994 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
3995 "colord-" version ".tar.xz"))
3996 (sha256
3997 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
3998 (build-system meson-build-system)
3999 (arguments
4000 '(;; FIXME: One test fails:
4001 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4002 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4003 ;; application/x-zerosize
4004 #:tests? #f
4005 #:glib-or-gtk? #t
4006 #:configure-flags (list "-Dlocalstatedir=/var"
4007 ;; No dep on systemd.
4008 "-Dsystemd=false"
4009 ;; Wants to install to global completion dir;
4010 ;; punt.
4011 "-Dbash_completion=false"
4012 "-Ddaemon_user=colord"
4013 "-Dsane=true"
4014 "-Dvapi=true"
4015 ;; Requires spotread.
4016 "-Dargyllcms_sensor=false"
4017 ;; TODO: Requires docbook2x.
4018 "-Dman=false")
4019 #:phases
4020 (modify-phases %standard-phases
4021 (add-before 'configure 'patch-build-system
4022 (lambda* (#:key outputs #:allow-other-keys)
4023 (substitute* "rules/meson.build"
4024 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4025 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4026 #t))
4027 (add-before 'configure 'set-sqlite3-file-name
4028 (lambda* (#:key inputs #:allow-other-keys)
4029 ;; "colormgr dump" works by invoking the "sqlite3" command.
4030 ;; Record its absolute file name.
4031 (let ((sqlite (assoc-ref inputs "sqlite")))
4032 (substitute* "client/cd-util.c"
4033 (("\"sqlite3\"")
4034 (string-append "\"" sqlite "/bin/sqlite3\"")))
4035 #t))))))
4036 (native-inputs
4037 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4038 ("gettext" ,gettext-minimal)
4039 ("gobject-introspection" ,gobject-introspection)
4040 ("gtk-doc" ,gtk-doc)
4041 ("pkg-config" ,pkg-config)
4042 ("vala" ,vala)))
4043 (propagated-inputs
4044 ;; colord.pc refers to all these.
4045 `(("glib" ,glib)
4046 ("lcms" ,lcms)
4047 ("udev" ,eudev)))
4048 (inputs
4049 `(("dbus-glib" ,dbus-glib)
4050 ("gusb" ,gusb)
4051 ("libgudev" ,libgudev)
4052 ("libusb" ,libusb)
4053 ("polkit" ,polkit)
4054 ("python" ,python-wrapper)
4055 ("sqlite" ,sqlite)
4056 ("sane-backends" ,sane-backends)))
4057 (home-page "https://www.freedesktop.org/software/colord/")
4058 (synopsis "Color management service")
4059 (description "Colord is a system service that makes it easy to manage,
4060 install and generate color profiles to accurately color manage input and
4061 output devices.")
4062 (license license:gpl2+)))
4063
4064 (define-public geoclue
4065 (package
4066 (name "geoclue")
4067 (version "2.4.8")
4068 (source
4069 (origin
4070 (method url-fetch)
4071 (uri (string-append "https://www.freedesktop.org/software/" name
4072 "/releases/" (version-major+minor version) "/"
4073 name "-" version ".tar.xz"))
4074 (sha256
4075 (base32
4076 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
4077 (patches (search-patches "geoclue-config.patch"))))
4078 (build-system glib-or-gtk-build-system)
4079 (arguments
4080 '(;; The tests want to run the system bus.
4081 #:tests? #f
4082 #:configure-flags (list ;; Disable bits requiring ModemManager.
4083 "--disable-3g-source"
4084 "--disable-cdma-source"
4085 "--disable-modem-gps-source"
4086 "--with-dbus-service-user=geoclue")
4087 #:phases
4088 (modify-phases %standard-phases
4089 (add-before 'configure 'patch-/bin/true
4090 (lambda _
4091 (substitute* "configure"
4092 (("/bin/true") (which "true")))
4093 #t)))))
4094 (native-inputs
4095 `(("pkg-config" ,pkg-config)
4096 ("gobject-introspection" ,gobject-introspection)
4097 ("intltool" ,intltool)))
4098 (inputs
4099 `(("avahi" ,avahi)
4100 ("glib" ,glib)
4101 ("json-glib" ,json-glib)
4102 ("libsoup" ,libsoup)))
4103 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
4104 (synopsis "Geolocation service")
4105 (description "Geoclue is a D-Bus service that provides location
4106 information. The primary goal of the Geoclue project is to make creating
4107 location-aware applications as simple as possible, while the secondary goal is
4108 to ensure that no application can access location information without explicit
4109 permission from user.")
4110 (license license:gpl2+)))
4111
4112 (define-public geocode-glib
4113 (package
4114 (name "geocode-glib")
4115 (version "3.26.1")
4116 (source (origin
4117 (method url-fetch)
4118 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4119 (version-major+minor version) "/"
4120 "geocode-glib-" version ".tar.xz"))
4121 (sha256
4122 (base32
4123 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4124 (build-system meson-build-system)
4125 (arguments
4126 `(#:phases
4127 (modify-phases %standard-phases
4128 ;; The tests require a bunch of locales.
4129 (add-before 'check 'set-locales
4130 (lambda* (#:key inputs #:allow-other-keys)
4131 (setenv "GUIX_LOCPATH"
4132 (string-append (assoc-ref inputs "glibc-locales")
4133 "/lib/locale"))
4134 #t)))))
4135 (native-inputs
4136 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4137 ("glibc-locales" ,glibc-locales) ; for tests
4138 ("gettext" ,gettext-minimal)
4139 ("gobject-introspection" ,gobject-introspection)
4140 ("gtk-doc" ,gtk-doc)
4141 ("pkg-config" ,pkg-config)
4142 ("json-glib" ,json-glib)))
4143 (propagated-inputs
4144 ;; geocode-glib-1.0.pc refers to GIO.
4145 `(("glib" ,glib)))
4146 (inputs
4147 `(("libsoup" ,libsoup)))
4148 (home-page "https://github.com/GNOME/geocode-glib/")
4149 (synopsis "Geocoding and reverse-geocoding library")
4150 (description
4151 "geocode-glib is a convenience library for geocoding (finding longitude,
4152 and latitude from an address) and reverse geocoding (finding an address from
4153 coordinates) using the Nominatim service. geocode-glib caches requests for
4154 faster results and to avoid unnecessary server load.")
4155 (license license:lgpl2.0+)))
4156
4157 (define-public upower
4158 (package
4159 (name "upower")
4160 (version "0.99.11")
4161 (source (origin
4162 (method url-fetch)
4163 (uri (string-append "https://upower.freedesktop.org/releases/"
4164 "upower-" version ".tar.xz"))
4165 (sha256
4166 (base32
4167 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4168 (patches (search-patches "upower-builddir.patch"))))
4169 (build-system glib-or-gtk-build-system)
4170 (arguments
4171 '( ;; The tests want to contact the system bus, which can't be done in the
4172 ;; build environment. The integration test can run, but the last of
4173 ;; the up-self-tests doesn't. Disable tests for now.
4174 #:tests? #f
4175 #:configure-flags (list "--localstatedir=/var"
4176 (string-append "--with-udevrulesdir="
4177 (assoc-ref %outputs "out")
4178 "/lib/udev/rules.d"))))
4179 (native-inputs
4180 `(("gobject-introspection" ,gobject-introspection)
4181 ("pkg-config" ,pkg-config)
4182 ("intltool" ,intltool)
4183 ("python" ,python)
4184
4185 ;; For man pages.
4186 ("libxslt" ,libxslt) ;for 'xsltproc'
4187 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4188 ("docbook-xsl" ,docbook-xsl)))
4189 (inputs
4190 `(("dbus-glib" ,dbus-glib)
4191 ("libgudev" ,libgudev)
4192 ("libusb" ,libusb)))
4193 (propagated-inputs
4194 ;; In Requires of upower-glib.pc.
4195 `(("glib" ,glib)))
4196 (home-page "https://upower.freedesktop.org/")
4197 (synopsis "System daemon for managing power devices")
4198 (description
4199 "UPower is an abstraction for enumerating power devices,
4200 listening to device events and querying history and statistics. Any
4201 application or service on the system can access the org.freedesktop.UPower
4202 service via the system message bus.")
4203 (license license:gpl2+)))
4204
4205 (define-public libgweather
4206 (package
4207 (name "libgweather")
4208 (version "3.28.3")
4209 (source (origin
4210 (method url-fetch)
4211 (uri (string-append "mirror://gnome/sources/" name "/"
4212 (version-major+minor version) "/"
4213 name "-" version ".tar.xz"))
4214 (sha256
4215 (base32
4216 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
4217 (build-system meson-build-system)
4218 (arguments
4219 `(#:tests? #f ; one of two tests requires network access
4220 #:configure-flags
4221 `(,(string-append "-Dzoneinfo_dir="
4222 (assoc-ref %build-inputs "tzdata")
4223 "/share/zoneinfo"))))
4224 (native-inputs
4225 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4226 ("gobject-introspection" ,gobject-introspection)
4227 ("pkg-config" ,pkg-config)
4228 ("vala" ,vala)
4229 ("intltool" ,intltool)))
4230 (propagated-inputs
4231 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4232 ;; libsoup.
4233 `(("gtk+" ,gtk+)
4234 ("gdk-pixbuf" ,gdk-pixbuf)
4235 ("libxml2" ,libxml2)
4236 ("libsoup" ,libsoup)
4237 ("geocode-glib" ,geocode-glib)))
4238 (inputs
4239 `(("tzdata" ,tzdata)))
4240 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4241 (synopsis "Location, time zone, and weather library for GNOME")
4242 (description
4243 "libgweather is a library to access weather information from online
4244 services for numerous locations.")
4245 (license license:gpl2+)))
4246
4247 (define-public gnome-settings-daemon
4248 (package
4249 (name "gnome-settings-daemon")
4250 (version "3.32.1")
4251 (source
4252 (origin
4253 (method url-fetch)
4254 (uri (string-append "mirror://gnome/sources/" name "/"
4255 (version-major+minor version) "/"
4256 name "-" version ".tar.xz"))
4257 (sha256
4258 (base32
4259 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
4260 (build-system meson-build-system)
4261 (arguments
4262 `(#:glib-or-gtk? #t
4263 #:configure-flags
4264 (list (string-append "-Dudev_dir="
4265 (assoc-ref %outputs "out")
4266 "/lib/udev/rules.d/")
4267 ;; Otherwise, the RUNPATH will lack the final path component.
4268 (string-append "-Dc_link_args=-Wl,-rpath="
4269 (assoc-ref %outputs "out")
4270 "/lib/gnome-settings-daemon-3.0"))
4271 ;; Color management test can't reach the colord system service.
4272 #:tests? #f))
4273 (native-inputs
4274 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4275 ("pkg-config" ,pkg-config)
4276 ("intltool" ,intltool)
4277 ("xsltproc" ,libxslt)
4278 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4279 ("docbook-xml" ,docbook-xml-4.2)
4280 ("docbook-xsl" ,docbook-xsl)))
4281 (inputs
4282 `(("alsa-lib" ,alsa-lib)
4283 ("colord" ,colord)
4284 ("libgudev" ,libgudev)
4285 ("upower" ,upower)
4286 ("polkit" ,polkit)
4287 ("pulseaudio" ,pulseaudio)
4288 ("libcanberra" ,libcanberra)
4289 ("libx11" ,libx11)
4290 ("libxtst" ,libxtst)
4291 ("lcms" ,lcms)
4292 ("libnotify" ,libnotify)
4293 ("geoclue" ,geoclue)
4294 ("geocode-glib" ,geocode-glib)
4295 ("libgweather" ,libgweather)
4296 ("gnome-desktop" ,gnome-desktop)
4297 ("nss" ,nss)
4298 ("cups" ,cups)
4299 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4300 ("libwacom" ,libwacom)
4301 ("librsvg" ,librsvg)
4302 ("xf86-input-wacom" ,xf86-input-wacom)
4303 ("wayland" ,wayland)
4304 ("network-manager" ,network-manager)))
4305 (home-page "https://www.gnome.org")
4306 (synopsis "GNOME settings daemon")
4307 (description
4308 "This package contains the daemon responsible for setting the various
4309 parameters of a GNOME session and the applications that run under it. It
4310 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4311 settings, themes, mouse settings, and startup of other daemons.")
4312 (license license:gpl2+)))
4313
4314 (define-public totem-pl-parser
4315 (package
4316 (name "totem-pl-parser")
4317 (version "3.26.3")
4318 (source (origin
4319 (method url-fetch)
4320 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4321 (version-major+minor version) "/"
4322 "totem-pl-parser-" version ".tar.xz"))
4323 (sha256
4324 (base32
4325 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4326 (build-system meson-build-system)
4327 (arguments
4328 ;; FIXME: Tests require gvfs.
4329 `(#:tests? #f))
4330 (native-inputs
4331 `(("intltool" ,intltool)
4332 ("glib" ,glib "bin")
4333 ("gobject-introspection" ,gobject-introspection)
4334 ("pkg-config" ,pkg-config)))
4335 (propagated-inputs
4336 `(("glib" ,glib)
4337 ("gmime" ,gmime)
4338 ("libarchive" ,libarchive)
4339 ("libgcrypt" ,libgcrypt)
4340 ("libxml2" ,libxml2)))
4341 (inputs
4342 `(("libsoup" ,libsoup)))
4343 (home-page "https://projects.gnome.org/totem")
4344 (synopsis "Library to parse and save media playlists for GNOME")
4345 (description "Totem-pl-parser is a GObjects-based library to parse and save
4346 playlists in a variety of formats.")
4347 (license license:lgpl2.0+)))
4348
4349 (define-public aisleriot
4350 (package
4351 (name "aisleriot")
4352 (version "3.22.9")
4353 (source (origin
4354 (method url-fetch)
4355 (uri (string-append "mirror://gnome/sources/aisleriot/"
4356 (version-major+minor version) "/"
4357 "aisleriot-" version ".tar.xz"))
4358 (sha256
4359 (base32
4360 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4361 (build-system glib-or-gtk-build-system)
4362 (arguments
4363 '(#:configure-flags
4364 '("--with-platform=gtk-only"
4365 "--with-card-theme-formats=svg")))
4366 (native-inputs
4367 `(("desktop-file-utils" ,desktop-file-utils)
4368 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4369 ("intltool" ,intltool)
4370 ("itstool" ,itstool)
4371 ("pkg-config" ,pkg-config)
4372 ("xmllint" ,libxml2)))
4373 (inputs
4374 `(("gtk+" ,gtk+)
4375 ("guile" ,guile-2.2)
4376 ("libcanberra" ,libcanberra)
4377 ("librsvg" ,librsvg)))
4378 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4379 (synopsis "Solitaire card games")
4380 (description
4381 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4382 which are easy to play with the aid of a mouse.")
4383 (license license:gpl3+)))
4384
4385 (define-public amtk
4386 (package
4387 (name "amtk")
4388 (version "5.0.1")
4389 (source (origin
4390 (method url-fetch)
4391 (uri (string-append "mirror://gnome/sources/amtk/"
4392 (version-major+minor version) "/"
4393 "amtk-" version ".tar.xz"))
4394 (sha256
4395 (base32
4396 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
4397 (build-system gnu-build-system)
4398 (arguments
4399 '(#:configure-flags '("--enable-gtk-doc")))
4400 (native-inputs
4401 `(("gobject-introspection" ,gobject-introspection)
4402 ("glib:bin" ,glib "bin") ; for glib-mkenums
4403 ("gtk-doc" ,gtk-doc)
4404 ("pkg-config" ,pkg-config)))
4405 (inputs
4406 `(("glib" ,glib)
4407 ("gtk+" ,gtk+)))
4408 (home-page "https://wiki.gnome.org/Projects/Amtk")
4409 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4410 (description
4411 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4412 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4413 both a traditional UI or a modern UI with a GtkHeaderBar.")
4414 (license license:lgpl2.1+)))
4415
4416 (define-public devhelp
4417 (package
4418 (name "devhelp")
4419 (version "3.32.0")
4420 (source (origin
4421 (method url-fetch)
4422 (uri (string-append "mirror://gnome/sources/" name "/"
4423 (version-major+minor version) "/"
4424 name "-" version ".tar.xz"))
4425 (sha256
4426 (base32
4427 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
4428 (build-system meson-build-system)
4429 (arguments
4430 '(#:glib-or-gtk? #t
4431 #:phases
4432 (modify-phases %standard-phases
4433 (add-after 'unpack 'skip-gtk-update-icon-cache
4434 ;; Don't create 'icon-theme.cache'.
4435 (lambda _
4436 (substitute* "meson_post_install.py"
4437 (("gtk-update-icon-cache") "true"))
4438 #t)))))
4439 (native-inputs
4440 `(("intltool" ,intltool)
4441 ("itstool" ,itstool)
4442 ("gobject-introspection" ,gobject-introspection)
4443 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4444 ("pkg-config" ,pkg-config)))
4445 (inputs
4446 `(("amtk" ,amtk)
4447 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4448 ("webkitgtk" ,webkitgtk)))
4449 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4450 (synopsis "API documentation browser for GNOME")
4451 (description
4452 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4453 natively with GTK-Doc (the API reference system developed for GTK+ and used
4454 throughout GNOME for API documentation).")
4455 (license license:gpl2+)))
4456
4457 (define-public cogl
4458 (package
4459 (name "cogl")
4460 (version "1.22.4")
4461 (source
4462 (origin
4463 (method url-fetch)
4464 (uri (string-append "mirror://gnome/sources/cogl/"
4465 (version-major+minor version) "/"
4466 "cogl-" version ".tar.xz"))
4467 (sha256
4468 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
4469 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4470 ;; cogl, corresponding changes may be appropriate in mutter as well.
4471 (build-system gnu-build-system)
4472 (native-inputs
4473 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4474 ("gobject-introspection" ,gobject-introspection)
4475 ;;("xorg-server" ,xorg-server) ; for the test suite
4476 ("pkg-config" ,pkg-config)))
4477 (propagated-inputs
4478 `(("glib" ,glib)
4479 ("gdk-pixbuf" ,gdk-pixbuf)
4480 ("libx11" ,libx11)
4481 ("libxext" ,libxext)
4482 ("libxfixes" ,libxfixes)
4483 ("libxdamage" ,libxdamage)
4484 ("libxcomposite" ,libxcomposite)
4485 ("libxrandr" ,libxrandr)))
4486 (inputs
4487 `(("mesa" ,mesa)
4488 ("cairo" ,cairo)
4489 ("pango" ,pango)
4490 ("gstreamer" ,gstreamer)
4491 ("gst-plugins-base" ,gst-plugins-base)
4492 ("wayland" ,wayland)))
4493 (arguments
4494 `(#:configure-flags (list "--enable-cogl-gst"
4495 "--enable-wayland-egl-platform"
4496 "--enable-wayland-egl-server"
4497
4498 ;; Arrange to pass an absolute file name to
4499 ;; dlopen for libGL.so.
4500 (string-append "--with-gl-libname="
4501 (assoc-ref %build-inputs "mesa")
4502 "/lib/libGL.so"))
4503 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4504 ;; _FontTransOpen: Unable to Parse address
4505 ;; ${prefix}/share/fonts/X11/misc/
4506 #:tests? #f
4507 #; #:phases
4508 #;
4509 (modify-phases %standard-phases
4510 (add-before 'check 'start-xorg-server
4511 (lambda* (#:key inputs #:allow-other-keys)
4512 ;; The test suite requires a running X server.
4513 (system (format #f "~a/bin/Xvfb :1 &"
4514 (assoc-ref inputs "xorg-server")))
4515 (setenv "DISPLAY" ":1")
4516 #t)))))
4517 (home-page "http://www.cogl3d.org")
4518 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4519 (description
4520 "Cogl is a small library for using 3D graphics hardware to draw pretty
4521 pictures. The API departs from the flat state machine style of OpenGL and is
4522 designed to make it easy to write orthogonal components that can render
4523 without stepping on each others toes.")
4524 (license (list license:expat ; most of the code
4525 license:bsd-3 ; cogl/cogl-point-in-poly.c
4526 license:sgifreeb2.0 ; cogl-path/tesselator/
4527 license:asl2.0)))) ; examples/android/
4528
4529 (define-public clutter
4530 (package
4531 (name "clutter")
4532 (version "1.26.2")
4533 (source
4534 (origin
4535 (method url-fetch)
4536 (uri (string-append "mirror://gnome/sources/" name "/"
4537 (version-major+minor version) "/"
4538 name "-" version ".tar.xz"))
4539 (sha256
4540 (base32
4541 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4542 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4543 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4544 (build-system gnu-build-system)
4545 (outputs '("out"
4546 "doc")) ;9 MiB of gtk-doc HTML pages
4547 (native-inputs
4548 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4549 ("gobject-introspection" ,gobject-introspection)
4550 ("pkg-config" ,pkg-config)
4551 ("xsltproc" ,libxslt)))
4552 (propagated-inputs
4553 `(("cogl" ,cogl)
4554 ("cairo" ,cairo)
4555 ("atk" ,atk)
4556 ("gtk+" ,gtk+)
4557 ("json-glib" ,json-glib)
4558 ("glib" ,glib)
4559 ("libxcomposite" ,libxcomposite)
4560 ("libxdamage" ,libxdamage)
4561 ("libxext" ,libxext)
4562 ("xinput" ,xinput)))
4563 (inputs
4564 `(("libxkbcommon" ,libxkbcommon)
4565 ("udev" ,eudev)))
4566 (arguments
4567 `(#:configure-flags (list "--enable-x11-backend=yes"
4568
4569 ;; This produces share/doc/{clutter,cally}.
4570 (string-append "--with-html-dir="
4571 (assoc-ref %outputs "doc")
4572 "/share/doc"))
4573 ;; XXX FIXME: Get test suite working. It would probably fail in the
4574 ;; same way the cogl tests fail, since clutter is based on cogl.
4575 #:tests? #f))
4576 (home-page "http://www.clutter-project.org")
4577 (synopsis "OpenGL-based interactive canvas library")
4578 (description
4579 "Clutter is an OpenGL-based interactive canvas library, designed for
4580 creating fast, mainly 2D single window applications such as media box UIs,
4581 presentations, kiosk style applications and so on.")
4582 (license license:lgpl2.0+)))
4583
4584 (define-public clutter-gtk
4585 (package
4586 (name "clutter-gtk")
4587 (version "1.8.4")
4588 (source
4589 (origin
4590 (method url-fetch)
4591 (uri (string-append "mirror://gnome/sources/" name "/"
4592 (version-major+minor version) "/"
4593 name "-" version ".tar.xz"))
4594 (sha256
4595 (base32
4596 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4597 (build-system gnu-build-system)
4598 (native-inputs
4599 `(("pkg-config" ,pkg-config)
4600 ("gobject-introspection" ,gobject-introspection)))
4601 (propagated-inputs
4602 ;; clutter-gtk.pc refers to all these.
4603 `(("clutter" ,clutter)
4604 ("gtk+" ,gtk+)))
4605 (home-page "http://www.clutter-project.org")
4606 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4607 (description
4608 "Clutter is an OpenGL-based interactive canvas library, designed for
4609 creating fast, mainly 2D single window applications such as media box UIs,
4610 presentations, kiosk style applications and so on.")
4611 (license license:lgpl2.0+)))
4612
4613 (define-public clutter-gst
4614 (package
4615 (name "clutter-gst")
4616 (version "3.0.27")
4617 (source
4618 (origin
4619 (method url-fetch)
4620 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4621 (version-major+minor version) "/"
4622 "clutter-gst-" version ".tar.xz"))
4623 (sha256
4624 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4625 (build-system gnu-build-system)
4626 (native-inputs
4627 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4628 ("pkg-config" ,pkg-config)
4629 ("gobject-introspection" ,gobject-introspection)))
4630 (inputs
4631 `(("clutter" ,clutter)
4632 ("gstreamer" ,gstreamer)
4633 ("gst-plugins-base" ,gst-plugins-base)))
4634 (home-page "http://www.clutter-project.org")
4635 (synopsis "Integration library for using GStreamer with Clutter")
4636 (description
4637 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4638 It provides a GStreamer sink to upload frames to GL and an actor that
4639 implements the ClutterGstPlayer interface using playbin. Clutter is an
4640 OpenGL-based interactive canvas library.")
4641 (license license:lgpl2.0+)))
4642
4643 (define-public libchamplain
4644 (package
4645 (name "libchamplain")
4646 (version "0.12.16")
4647 (source (origin
4648 (method url-fetch)
4649 (uri (string-append
4650 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4651 version ".tar.xz"))
4652 (sha256
4653 (base32
4654 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4655 (build-system gnu-build-system)
4656 (arguments '(#:configure-flags '("--enable-vala")))
4657 (native-inputs
4658 `(("gobject-introspection" ,gobject-introspection)
4659 ("pkg-config" ,pkg-config)
4660 ("vala" ,vala)))
4661 (propagated-inputs
4662 `(("libsoup" ,libsoup)
4663 ("sqlite" ,sqlite)
4664 ("clutter" ,clutter)
4665 ("clutter-gtk" ,clutter-gtk)
4666 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4667 ("cairo" ,cairo)
4668 ("gtk+3" ,gtk+)
4669 ("glib" ,glib)))
4670 (home-page "https://projects.gnome.org/libchamplain/")
4671 (synopsis "C library providing a ClutterActor to display maps")
4672 (description
4673 "libchamplain is a C library providing a ClutterActor to display maps.
4674 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4675 and Perl bindings are also available. It supports numerous free map sources
4676 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4677 (license license:lgpl2.1+)))
4678
4679 (define-public gom
4680 (package
4681 (name "gom")
4682 (version "0.3.2")
4683 (source
4684 (origin
4685 (method url-fetch)
4686 (uri (string-append "mirror://gnome/sources/gom/"
4687 (version-major+minor version) "/"
4688 "gom-" version ".tar.xz"))
4689 (sha256
4690 (base32
4691 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4692 (build-system gnu-build-system)
4693 (native-inputs
4694 `(("intltool" ,intltool)
4695 ("pkg-config" ,pkg-config)
4696 ("gobject-introspection" ,gobject-introspection)))
4697 (inputs
4698 `(("glib" ,glib)
4699 ("gdk-pixbuf" ,gdk-pixbuf)
4700 ("sqlite" ,sqlite)))
4701 ;; XXX TODO: Figure out how to run the test suite.
4702 (arguments `(#:tests? #f))
4703 (home-page "https://wiki.gnome.org/Projects/Gom")
4704 (synopsis "Object mapper from GObjects to SQLite")
4705 (description
4706 "Gom provides an object mapper from GObjects to SQLite. It helps you
4707 write applications that need to store structured data as well as make complex
4708 queries upon that data.")
4709 (license license:lgpl2.1+)))
4710
4711 (define-public libgnome-games-support
4712 (package
4713 (name "libgnome-games-support")
4714 (version "1.4.4")
4715 (source (origin
4716 (method url-fetch)
4717 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4718 (version-major+minor version) "/"
4719 "libgnome-games-support-" version ".tar.xz"))
4720 (sha256
4721 (base32
4722 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4723 (build-system gnu-build-system)
4724 (arguments
4725 '(#:phases
4726 (modify-phases %standard-phases
4727 (add-before 'check 'pre-check
4728 (lambda _
4729 ;; Tests require a writable HOME.
4730 (setenv "HOME" (getcwd))
4731 #t)))))
4732 (native-inputs
4733 `(("intltool" ,intltool)
4734 ("pkg-config" ,pkg-config)
4735 ("vala" ,vala)))
4736 (propagated-inputs
4737 ;; Required by libgnome-games-support-1.0.pc
4738 `(("gtk+" ,gtk+)
4739 ("libgee" ,libgee)))
4740 (home-page "https://www.gnome.org/")
4741 (synopsis "Useful functionality shared among GNOME games")
4742 (description
4743 "libgnome-games-support is a small library intended for internal use by
4744 GNOME Games, but it may be used by others.")
4745 (license license:lgpl3+)))
4746
4747 (define-public gnome-klotski
4748 (package
4749 (name "gnome-klotski")
4750 (version "3.32.0")
4751 (source (origin
4752 (method url-fetch)
4753 (uri (string-append "mirror://gnome/sources/" name "/"
4754 (version-major+minor version) "/"
4755 name "-" version ".tar.xz"))
4756 (sha256
4757 (base32
4758 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4759 (build-system meson-build-system)
4760 (arguments
4761 '(#:glib-or-gtk? #t
4762 #:phases
4763 (modify-phases %standard-phases
4764 (add-after 'unpack 'skip-gtk-update-icon-cache
4765 ;; Don't create 'icon-theme.cache'.
4766 (lambda _
4767 (substitute* "build-aux/meson_post_install.py"
4768 (("gtk-update-icon-cache") (which "true")))
4769 #t)))))
4770 (native-inputs
4771 `(("desktop-file-utils" ,desktop-file-utils)
4772 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4773 ("intltool" ,intltool)
4774 ("itstool" ,itstool)
4775 ("pkg-config" ,pkg-config)
4776 ("vala" ,vala)
4777 ("xmllint" ,libxml2)))
4778 (inputs
4779 `(("gtk+" ,gtk+)
4780 ("libgnome-games-support" ,libgnome-games-support)
4781 ("librsvg" ,librsvg)))
4782 (home-page "https://wiki.gnome.org/Apps/Klotski")
4783 (synopsis "Sliding block puzzles")
4784 (description
4785 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4786 the patterned block to the area bordered by green markers. To do so, you will
4787 need to slide other blocks out of the way. Complete each puzzle in as few moves
4788 as possible!")
4789 (license license:gpl2+)))
4790
4791 (define-public grilo
4792 (package
4793 (name "grilo")
4794 (version "0.3.10")
4795 (source
4796 (origin
4797 (method url-fetch)
4798 (uri (string-append "mirror://gnome/sources/" name "/"
4799 (version-major+minor version) "/"
4800 name "-" version ".tar.xz"))
4801 (sha256
4802 (base32
4803 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4804 (build-system meson-build-system)
4805 (native-inputs
4806 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4807 ("intltool" ,intltool)
4808 ("pkg-config" ,pkg-config)
4809 ("gobject-introspection" ,gobject-introspection)
4810 ("gtk-doc" ,gtk-doc)
4811 ("vala" ,vala)))
4812 (inputs
4813 `(("cyrus-sasl" ,cyrus-sasl)
4814 ("glib" ,glib)
4815 ("gtk+" ,gtk+)
4816 ("libxml2" ,libxml2)
4817 ("liboauth" ,liboauth)
4818 ("libsoup" ,libsoup)
4819 ("totem-pl-parser" ,totem-pl-parser)))
4820 (native-search-paths
4821 (list (search-path-specification
4822 (variable "GRL_PLUGIN_PATH")
4823 (files (list (string-append "lib/grilo-"
4824 (version-major+minor version)))))))
4825 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4826 (synopsis "Framework for discovering and browsing media")
4827 (description
4828 "Grilo is a framework focused on making media discovery and browsing easy
4829 for application developers.")
4830 (license license:lgpl2.1+)))
4831
4832 (define-public grilo-plugins
4833 (package
4834 (name "grilo-plugins")
4835 (version "0.3.10")
4836 (source
4837 (origin
4838 (method url-fetch)
4839 (uri (string-append "mirror://gnome/sources/" name "/"
4840 (version-major+minor version) "/"
4841 name "-" version ".tar.xz"))
4842 (sha256
4843 (base32
4844 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4845 (build-system meson-build-system)
4846 (native-inputs
4847 `(("gettext" ,gettext-minimal)
4848 ("glib:bin" ,glib "bin")
4849 ("gtk+:bin" ,gtk+ "bin")
4850 ("itstool" ,itstool)
4851 ("pkg-config" ,pkg-config)))
4852 ;; TODO: ahavi, gstreamer
4853 (inputs
4854 `(("grilo" ,grilo)
4855 ;("gmime" ,gmime) ; unused
4856 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4857 ("gom" ,gom)
4858 ;("gssdp" ,gssdp) ; unused
4859 ;("gupnp" ,gupnp) ; unused
4860 ;("gupnp-av" ,gupnp-av) ; unused
4861 ("json-glib" ,json-glib)
4862 ("avahi" ,avahi)
4863 ("libgdata" ,libgdata)
4864 ("libmediaart" ,libmediaart)
4865 ;("librest" ,rest) ; unused
4866 ("libsoup" ,libsoup)
4867 ("totam-pl-parser" ,totem-pl-parser)
4868 ("tracker" ,tracker))) ; unused because it's too old
4869 (arguments
4870 `(#:glib-or-gtk? #t
4871 ;;Disable lua-factory as it needs missing dependencies
4872 #:configure-flags '("-Denable-lua-factory=no")))
4873 (home-page "https://live.gnome.org/Grilo")
4874 (synopsis "Plugins for the Grilo media discovery library")
4875 (description
4876 "Grilo is a framework focused on making media discovery and browsing easy
4877 for application developers. This package provides plugins for common media
4878 discovery protocols.")
4879 (license license:lgpl2.1+)))
4880
4881 (define-public totem
4882 (package
4883 (name "totem")
4884 (version "3.32.1")
4885 (source
4886 (origin
4887 (method url-fetch)
4888 (uri (string-append "mirror://gnome/sources/" name "/"
4889 (version-major+minor version) "/"
4890 name "-" version ".tar.xz"))
4891 (sha256
4892 (base32
4893 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
4894 (build-system meson-build-system)
4895 (native-inputs
4896 `(("pkg-config" ,pkg-config)
4897 ("desktop-file-utils" ,desktop-file-utils)
4898 ("gobject-introspection" ,gobject-introspection)
4899 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4900 ("intltool" ,intltool)
4901 ("itstool" ,itstool)
4902 ("xmllint" ,libxml2)
4903 ("python-pylint" ,python-pylint)
4904 ("xorg-server" ,xorg-server-for-tests)))
4905 (propagated-inputs
4906 `(("dconf" ,dconf)))
4907 (inputs
4908 `(("gtk+" ,gtk+)
4909 ("gdk-pixbuf" ,gdk-pixbuf)
4910 ("atk" ,atk)
4911 ("cairo" ,cairo)
4912 ("dbus-glib" ,dbus-glib)
4913 ("clutter" ,clutter)
4914 ("clutter-gtk" ,clutter-gtk)
4915 ("clutter-gst" ,clutter-gst)
4916 ("xorgproto" ,xorgproto)
4917 ("libxxf86vm" ,libxxf86vm)
4918 ("libxtst" ,libxtst)
4919 ("libxrandr" ,libxrandr)
4920 ("libxml2" ,libxml2)
4921 ("libsoup" ,libsoup)
4922 ("libpeas" ,libpeas)
4923 ("librsvg" ,librsvg)
4924 ("lirc" ,lirc)
4925 ("gnome-desktop" ,gnome-desktop)
4926 ("gstreamer" ,gstreamer)
4927 ("gst-plugins-base" ,gst-plugins-base)
4928 ("gst-plugins-good" ,gst-plugins-good)
4929 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4930 ("adwaita-icon-theme" ,adwaita-icon-theme)
4931 ("python" ,python)
4932 ("python-pygobject" ,python-pygobject)
4933 ("totem-pl-parser" ,totem-pl-parser)
4934 ("grilo" ,grilo)
4935 ("grilo-plugins" ,grilo-plugins)
4936 ("vala" ,vala)))
4937 (arguments
4938 `(#:glib-or-gtk? #t
4939
4940 ;; Disable automatic GStreamer plugin installation via PackageKit and
4941 ;; all that.
4942 #:configure-flags '("-D" "enable-easy-codec-installation=no"
4943
4944 ;; Do not build .a files for the plugins, it's
4945 ;; completely useless. This saves 2 MiB.
4946 "--default-library" "shared")
4947 #:phases
4948 (modify-phases %standard-phases
4949 (add-after 'unpack 'skip-gtk-update-icon-cache
4950 ;; Don't create 'icon-theme.cache'.
4951 (lambda _
4952 (substitute* "meson_post_install.py"
4953 (("gtk-update-icon-cache") "true"))
4954 #t))
4955 (add-before
4956 'install 'disable-cache-generation
4957 (lambda _
4958 (setenv "DESTDIR" "/")
4959 #t))
4960 (add-before
4961 'check 'pre-check
4962 (lambda _
4963 ;; Tests require a running X server.
4964 (system "Xvfb :1 &")
4965 (setenv "DISPLAY" ":1")
4966 #t))
4967 (add-after
4968 'install 'wrap-totem
4969 (lambda* (#:key inputs outputs #:allow-other-keys)
4970 (let ((out (assoc-ref outputs "out"))
4971 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4972 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4973 (wrap-program (string-append out "/bin/totem")
4974 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4975 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4976 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4977 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4978 #t)))))
4979 (home-page "https://wiki.gnome.org/Apps/Videos")
4980 (synopsis "Simple media player for GNOME based on GStreamer")
4981 (description "Totem is a simple yet featureful media player for GNOME
4982 which can read a large number of file formats.")
4983 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4984 ;; to be used and distributed together with GStreamer and Totem. See
4985 ;; file://COPYING in the source distribution for details.
4986 (license license:gpl2+)))
4987
4988 (define-public rhythmbox
4989 (package
4990 (name "rhythmbox")
4991 (version "3.4.3")
4992 (source (origin
4993 (method url-fetch)
4994 (uri (string-append "mirror://gnome/sources/" name "/"
4995 (version-major+minor version) "/"
4996 name "-" version ".tar.xz"))
4997 (sha256
4998 (base32
4999 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
5000 (build-system glib-or-gtk-build-system)
5001 (arguments
5002 `(#:configure-flags
5003 (list "--enable-lirc"
5004 "--enable-python"
5005 "--enable-vala"
5006 "--with-brasero"
5007 "--with-gudev"
5008 "--with-libsecret")
5009 #:phases
5010 (modify-phases %standard-phases
5011 (add-after
5012 'install 'wrap-rhythmbox
5013 (lambda* (#:key inputs outputs #:allow-other-keys)
5014 (let ((out (assoc-ref outputs "out"))
5015 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5016 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5017 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5018 (python-path (getenv "PYTHONPATH")))
5019 (wrap-program (string-append out "/bin/rhythmbox")
5020 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5021 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5022 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5023 `("PYTHONPATH" ":" prefix (,python-path))))
5024 #t)))))
5025 (propagated-inputs
5026 `(("dconf" ,dconf)))
5027 (native-inputs
5028 `(("itstool" ,itstool)
5029 ("intltool" ,intltool)
5030 ("glib" ,glib "bin")
5031 ("gobject-introspection" ,gobject-introspection)
5032 ("desktop-file-utils" ,desktop-file-utils)
5033 ("pkg-config" ,pkg-config)
5034 ("xmllint" ,libxml2)))
5035 (inputs
5036 `(("json-glib" ,json-glib)
5037 ("tdb" ,tdb)
5038 ("gnome-desktop" ,gnome-desktop)
5039 ("python" ,python)
5040 ("python-pygobject" ,python2-pygobject)
5041 ("vala" ,vala)
5042 ("gmime" ,gmime)
5043 ("adwaita-icon-theme" ,adwaita-icon-theme)
5044 ("grilo" ,grilo)
5045 ("grilo-plugins" ,grilo-plugins)
5046 ("gstreamer" ,gstreamer)
5047 ("gst-plugins-base" ,gst-plugins-base)
5048 ("gst-plugins-good" ,gst-plugins-good)
5049 ("totem-pl-parser" ,totem-pl-parser)
5050 ("libgudev" ,libgudev)
5051 ;;("libmtp" ,libmtp) FIXME: Not detected
5052 ("libsecret" ,libsecret)
5053 ("libsoup" ,libsoup)
5054 ("libnotify" ,libnotify)
5055 ("libpeas" ,libpeas)
5056 ("lirc" ,lirc)
5057 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5058 ;;("clutter" ,clutter)
5059 ;;("clutter-gtk" ,clutter-gtk)
5060 ;;("clutter-gst" ,clutter-gst)
5061 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5062 ("atk" ,atk)
5063 ("pango" ,pango)
5064 ("gtk+" ,gtk+)
5065 ;; TODO:
5066 ;; * libgpod
5067 ;; * mx
5068 ("brasero" ,brasero)))
5069 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5070 (synopsis "Music player for GNOME")
5071 (description "Rhythmbox is a music playing application for GNOME. It
5072 supports playlists, song ratings, and any codecs installed through gstreamer.")
5073 (license license:gpl2+)))
5074
5075 (define-public eog
5076 (package
5077 (name "eog")
5078 (version "3.32.2")
5079 (source (origin
5080 (method url-fetch)
5081 (uri (string-append "mirror://gnome/sources/" name "/"
5082 (version-major+minor version) "/"
5083 name "-" version ".tar.xz"))
5084 (sha256
5085 (base32
5086 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
5087 (build-system meson-build-system)
5088 (arguments
5089 `(#:configure-flags
5090 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5091 (list (string-append "-Dc_link_args=-Wl,-rpath="
5092 (assoc-ref %outputs "out") "/lib/eog"))
5093 #:phases
5094 (modify-phases %standard-phases
5095 (add-after 'unpack 'skip-gtk-update-icon-cache
5096 ;; Don't create 'icon-theme.cache'.
5097 (lambda _
5098 (substitute* "meson_post_install.py"
5099 (("gtk-update-icon-cache") "true"))
5100 #t))
5101 (add-after 'install 'wrap-eog
5102 (lambda* (#:key outputs #:allow-other-keys)
5103 (let ((out (assoc-ref outputs "out"))
5104 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5105 (wrap-program (string-append out "/bin/eog")
5106 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5107 #t)))))
5108 (propagated-inputs
5109 `(("dconf" ,dconf)))
5110 (native-inputs
5111 `(("intltool" ,intltool)
5112 ("itstool" ,itstool)
5113 ("glib" ,glib "bin")
5114 ("gobject-introspection" ,gobject-introspection)
5115 ("pkg-config" ,pkg-config)
5116 ("xmllint" ,libxml2)))
5117 (inputs
5118 `(("gnome-desktop" ,gnome-desktop)
5119 ("shared-mime-info" ,shared-mime-info)
5120 ("adwaita-icon-theme" ,adwaita-icon-theme)
5121 ("exempi" ,exempi)
5122 ("lcms" ,lcms)
5123 ("libexif" ,libexif)
5124 ("libpeas" ,libpeas)
5125 ("libjpeg" ,libjpeg)
5126 ("librsvg" ,librsvg)
5127 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5128 ("gtk+" ,gtk+)))
5129 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5130 (synopsis "GNOME image viewer")
5131 (description "Eye of GNOME is the GNOME image viewer. It
5132 supports image conversion, rotation, and slideshows.")
5133 (license license:gpl2+)))
5134
5135 (define-public eog-plugins
5136 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5137 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5138 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5139 ;; 'XDG_DATA_DIRS' appropriately set.
5140 (package
5141 (name "eog-plugins")
5142 (version "3.26.4")
5143 (source (origin
5144 (method url-fetch)
5145 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5146 (version-major+minor version) "/"
5147 "eog-plugins-" version ".tar.xz"))
5148 (sha256
5149 (base32
5150 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5151 (build-system gnu-build-system)
5152 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5153 (synopsis "Extensions for the Eye of GNOME image viewer")
5154 (native-inputs
5155 `(("pkg-config" ,pkg-config)
5156 ("gettext" ,gnu-gettext)))
5157 (inputs
5158 `(("eog" ,eog)
5159 ("glib" ,glib)
5160 ("gtk+" ,gtk+)
5161 ("libpeas" ,libpeas)
5162 ("libexif" ,libexif)
5163 ("libchamplain" ,libchamplain)))
5164 (description
5165 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5166 notably:
5167
5168 @itemize
5169 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5170 @item @dfn{Map}, which displays a map of where the picture was taken on the
5171 side panel;
5172 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5173 @end itemize\n")
5174
5175 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5176 ;; long suspicious byte stream that goes to a
5177 ;; ".gresource.eog_postasa_plugin" ELF section.
5178 (license license:gpl2+)))
5179
5180 (define-public libgudev
5181 (package
5182 (name "libgudev")
5183 (version "232")
5184 (source (origin
5185 (method url-fetch)
5186 (uri (string-append "mirror://gnome/sources/" name "/"
5187 version "/" name "-" version ".tar.xz"))
5188 (sha256
5189 (base32
5190 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5191 (build-system gnu-build-system)
5192 (arguments
5193 '(#:configure-flags
5194 ;; umockdev depends on libgudev.
5195 (list "--disable-umockdev")))
5196 (native-inputs
5197 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5198 ("gobject-introspection" ,gobject-introspection)
5199 ("pkg-config" ,pkg-config)))
5200 (propagated-inputs
5201 `(("glib" ,glib))) ; required by gudev-1.0.pc
5202 (inputs
5203 `(("udev" ,eudev)))
5204 (home-page "https://wiki.gnome.org/Projects/libgudev")
5205 (synopsis "GObject bindings for libudev")
5206 (description
5207 "This library provides GObject bindings for libudev. It was originally
5208 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5209 (license license:lgpl2.1+)))
5210
5211 (define-public gvfs
5212 (package
5213 (name "gvfs")
5214 (version "1.40.1")
5215 (source (origin
5216 (method url-fetch)
5217 (uri (string-append "mirror://gnome/sources/gvfs/"
5218 (version-major+minor version) "/"
5219 "gvfs-" version ".tar.xz"))
5220 (sha256
5221 (base32
5222 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5223 (build-system meson-build-system)
5224 (arguments
5225 '(#:glib-or-gtk? #t
5226 #:configure-flags
5227 (list "-Dsystemduserunitdir=no"
5228 "-Dtmpfilesdir=no"
5229 ;; Otherwise, the RUNPATH will lack the final path component.
5230 (string-append "-Dc_link_args=-Wl,-rpath="
5231 (assoc-ref %outputs "out") "/lib/gvfs"))))
5232 (native-inputs
5233 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5234 ("gettext" ,gettext-minimal)
5235 ("gtk-doc" ,gtk-doc)
5236 ("pkg-config" ,pkg-config)
5237 ("xsltproc" ,libxslt)))
5238 (inputs
5239 `(("avahi" ,avahi)
5240 ("docbook-xml" ,docbook-xml-4.2)
5241 ("docbook-xsl" ,docbook-xsl)
5242 ("dbus" ,dbus)
5243 ("elogind" ,elogind)
5244 ("fuse" ,fuse)
5245 ("gcr" ,gcr)
5246 ("glib" ,glib)
5247 ("gnome-online-accounts" ,gnome-online-accounts)
5248 ("libarchive" ,libarchive)
5249 ("libbluray" ,libbluray)
5250 ("libcap" ,libcap)
5251 ("libcdio-paranoia" ,libcdio-paranoia)
5252 ("libgcrypt" ,libgcrypt)
5253 ("libgdata" ,libgdata)
5254 ("libgphoto2" ,libgphoto2)
5255 ("libgudev" ,libgudev)
5256 ("libimobiledevice" ,libimobiledevice)
5257 ("libmtp" ,libmtp)
5258 ("libnfs" ,libnfs)
5259 ("libsecret" ,libsecret)
5260 ("libsmbclient" ,samba)
5261 ("libsoup" ,libsoup)
5262 ("libxml2" ,libxml2)
5263 ("openssh" ,openssh)
5264 ("polkit" ,polkit)
5265 ("udisks" ,udisks)))
5266 (home-page "https://wiki.gnome.org/gvfs/")
5267 (synopsis "Userspace virtual file system for GIO")
5268 (description
5269 "GVFS is a userspace virtual file system designed to work with the I/O
5270 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5271 to all applications using the GIO API. It also supports exposing the GVFS
5272 mounts to non-GIO applications using FUSE.
5273
5274 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5275 DAV, and others.")
5276 (license license:lgpl2.0+)))
5277
5278 (define-public gusb
5279 (package
5280 (name "gusb")
5281 (version "0.3.0")
5282 (source (origin
5283 (method git-fetch)
5284 (uri (git-reference
5285 (url "https://github.com/hughsie/libgusb.git")
5286 (commit version)))
5287 (file-name (git-file-name name version))
5288 (sha256
5289 (base32
5290 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5291 (build-system meson-build-system)
5292 (native-inputs
5293 `(("gobject-introspection" ,gobject-introspection)
5294 ("pkg-config" ,pkg-config)
5295 ("vala" ,vala)
5296 ("gtk-doc" ,gtk-doc)))
5297 (propagated-inputs
5298 ;; Both of these are required by gusb.pc.
5299 `(("glib" ,glib)
5300 ("libusb" ,libusb)))
5301 (arguments
5302 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5303 (home-page "https://github.com/hughsie/libgusb")
5304 (synopsis "GLib binding for libusb1")
5305 (description
5306 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5307 asynchronous control, bulk and interrupt transfers with proper cancellation
5308 and integration into a mainloop. This makes it easy to integrate low level
5309 USB transfers with your high-level application or system daemon.")
5310 (license license:lgpl2.1+)))
5311
5312 (define-public simple-scan
5313 (package
5314 (name "simple-scan")
5315 (version "3.34.2")
5316 (source
5317 (origin
5318 (method url-fetch)
5319 (uri (string-append "mirror://gnome/sources/simple-scan/"
5320 (version-major+minor version) "/"
5321 "simple-scan-" version ".tar.xz"))
5322 (sha256
5323 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
5324 (build-system meson-build-system)
5325 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5326 (arguments
5327 '(#:glib-or-gtk? #t))
5328 (inputs
5329 `(("gtk" ,gtk+)
5330 ("zlib" ,zlib)
5331 ("cairo" ,cairo)
5332 ("colord" ,colord)
5333 ("gdk-pixbuf" ,gdk-pixbuf)
5334 ("gusb" ,gusb)
5335 ("libsane" ,sane-backends)))
5336 (native-inputs
5337 `(("gettext" ,gettext-minimal)
5338 ("itstool" ,itstool)
5339 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5340 ("pkg-config" ,pkg-config)
5341 ("vala" ,vala)
5342 ("xmllint" ,libxml2)))
5343 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5344 (synopsis "Document and image scanner")
5345 (description
5346 "Document Scanner is an easy-to-use application that lets you connect your
5347 scanner and quickly capture images and documents in an appropriate format. It
5348 supports any scanner for which a suitable SANE driver is available, which is
5349 almost all of them.")
5350 (license license:gpl3+)))
5351
5352 (define-public eolie
5353 (package
5354 (name "eolie")
5355 (version "0.9.63")
5356 (source (origin
5357 (method url-fetch)
5358 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
5359 "uploads/d42b466752729a0d3fa828a721e25043/"
5360 "eolie-" version ".tar.xz"))
5361 (sha256
5362 (base32
5363 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
5364 (build-system meson-build-system)
5365 (arguments
5366 `(#:glib-or-gtk? #t
5367 #:phases
5368 (modify-phases %standard-phases
5369 (add-after 'unpack 'skip-gtk-update-icon-cache
5370 ;; Don't create 'icon-theme.cache'.
5371 (lambda _
5372 (substitute* "meson_post_install.py"
5373 (("gtk-update-icon-cache") "true"))
5374 #t))
5375 (add-after 'wrap 'wrap-more
5376 (lambda* (#:key inputs outputs #:allow-other-keys)
5377 (let* ((out (assoc-ref outputs "out"))
5378 ;; These libraries must be on LD_LIBRARY_PATH.
5379 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5380 "atk" "gtk+" "gsettings-desktop-schemas"
5381 "gobject-introspection"))
5382 (path (string-join
5383 (map (lambda (lib)
5384 (string-append (assoc-ref inputs lib) "/lib"))
5385 libs)
5386 ":")))
5387 (wrap-program (string-append out "/bin/eolie")
5388 `("LD_LIBRARY_PATH" ":" prefix (,path))
5389 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5390 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5391 #t)))))
5392 (native-inputs
5393 `(("intltool" ,intltool)
5394 ("itstool" ,itstool)
5395 ("pkg-config" ,pkg-config)
5396 ("python" ,python)
5397 ("glib:bin" ,glib "bin")))
5398 (inputs
5399 `(("gobject-introspection" ,gobject-introspection)
5400 ("glib-networking" ,glib-networking)
5401 ("cairo" ,cairo)
5402 ("gtk+" ,gtk+)
5403 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5404 ("python" ,python-wrapper)
5405 ("python-dateutil" ,python-dateutil)
5406 ("python-pyfxa" ,python-pyfxa)
5407 ("python-pygobject" ,python-pygobject)
5408 ("python-pycairo" ,python-pycairo)
5409 ("python-pycrypto" ,python-pycrypto)
5410 ("libsecret" ,libsecret)
5411 ("gtkspell3" ,gtkspell3)
5412 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5413 ("webkitgtk" ,webkitgtk)))
5414 (home-page "https://wiki.gnome.org/Apps/Eolie")
5415 (synopsis "Web browser for GNOME")
5416 (description
5417 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5418 a secret password store, an adblocker, and a modern UI.")
5419 (license license:gpl3+)))
5420
5421 (define-public epiphany
5422 (package
5423 (name "epiphany")
5424 (version "3.32.5")
5425 (source (origin
5426 (method url-fetch)
5427 (uri (string-append "mirror://gnome/sources/epiphany/"
5428 (version-major+minor version) "/"
5429 "epiphany-" version ".tar.xz"))
5430 (sha256
5431 (base32
5432 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
5433
5434 (build-system meson-build-system)
5435 (arguments
5436 ;; FIXME: tests run under Xvfb, but fail with:
5437 ;; /src/bookmarks/ephy-bookmarks/create:
5438 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5439 ;; subsystem
5440 ;; FAIL
5441 '(#:tests? #f
5442 #:glib-or-gtk? #t
5443 #:phases
5444 (modify-phases %standard-phases
5445 (add-after 'unpack 'skip-gtk-update-icon-cache
5446 ;; Don't create 'icon-theme.cache'.
5447 (lambda _
5448 (substitute* "post_install.py"
5449 (("gtk-update-icon-cache") "true"))
5450 #t)))
5451 #:configure-flags
5452 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5453 (list (string-append "-Dc_link_args=-Wl,-rpath="
5454 (assoc-ref %outputs "out") "/lib/epiphany"))))
5455 (propagated-inputs
5456 `(("dconf" ,dconf)))
5457 (native-inputs
5458 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5459 ("glib:bin" ,glib "bin") ; for glib-mkenums
5460 ("intltool" ,intltool)
5461 ("itstool" ,itstool)
5462 ("pkg-config" ,pkg-config)
5463 ("xmllint" ,libxml2)))
5464 (inputs
5465 `(("avahi" ,avahi)
5466 ("gcr" ,gcr)
5467 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5468 ("glib-networking" ,glib-networking)
5469 ("gnome-desktop" ,gnome-desktop)
5470 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5471 ("json-glib" ,json-glib)
5472 ("iso-codes" ,iso-codes)
5473 ("libdazzle" ,libdazzle)
5474 ("libnotify" ,libnotify)
5475 ("libsecret" ,libsecret)
5476 ("libxslt" ,libxslt)
5477 ("nettle" ,nettle) ; for hogweed
5478 ("sqlite" ,sqlite)
5479 ("webkitgtk" ,webkitgtk)))
5480 (home-page "https://wiki.gnome.org/Apps/Web")
5481 (synopsis "GNOME web browser")
5482 (description
5483 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5484 principles are simplicity and standards compliance.")
5485 (license license:gpl2+)))
5486
5487 (define-public d-feet
5488 (package
5489 (name "d-feet")
5490 (version "0.3.14")
5491 (source (origin
5492 (method url-fetch)
5493 (uri (string-append "mirror://gnome/sources/" name "/"
5494 (version-major+minor version) "/"
5495 name "-" version ".tar.xz"))
5496 (sha256
5497 (base32
5498 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5499 (build-system glib-or-gtk-build-system)
5500 (arguments
5501 '(#:out-of-source? #f ; tests need to run in the source directory.
5502 #:phases
5503 (modify-phases %standard-phases
5504 (add-before
5505 'check 'pre-check
5506 (lambda _
5507 ;; The test suite requires a running X server.
5508 (system "Xvfb :1 &")
5509 (setenv "DISPLAY" ":1")
5510 ;; Don't fail on missing '/etc/machine-id'.
5511 (setenv "DBUS_FATAL_WARNINGS" "0")
5512 ;; tests.py and window.py don't meet E402:
5513 ;; E402 module level import not at top of file
5514 (substitute* "src/tests/Makefile"
5515 (("--ignore=E123") "--ignore=E123,E402"))
5516 #t))
5517 (add-after
5518 'install 'wrap-program
5519 (lambda* (#:key outputs #:allow-other-keys)
5520 (let ((prog (string-append (assoc-ref outputs "out")
5521 "/bin/d-feet")))
5522 (wrap-program prog
5523 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5524 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5525 #t))))))
5526 (native-inputs
5527 `(("intltool" ,intltool)
5528 ("itstool" ,itstool)
5529 ("pkg-config" ,pkg-config)
5530 ("python-pep8" ,python-pep8)
5531 ("xmllint" ,libxml2)
5532 ("xorg-server" ,xorg-server-for-tests)))
5533 (inputs
5534 `(("gobject-introspection" ,gobject-introspection)
5535 ("gtk+" ,gtk+)
5536 ("python" ,python-wrapper)
5537 ("hicolor-icon-theme" ,hicolor-icon-theme)
5538 ("python-pygobject" ,python-pygobject)))
5539 (home-page "https://wiki.gnome.org/Apps/DFeet")
5540 (synopsis "D-Bus debugger")
5541 (description
5542 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5543 of running programs and invoke methods on those interfaces.")
5544 (license license:gpl2+)))
5545
5546 (define-public yelp-xsl
5547 (package
5548 (name "yelp-xsl")
5549 (version "3.32.1")
5550 (source (origin
5551 (method url-fetch)
5552 (uri (string-append "mirror://gnome/sources/" name "/"
5553 (version-major+minor version) "/"
5554 name "-" version ".tar.xz"))
5555 (sha256
5556 (base32
5557 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
5558 (build-system gnu-build-system)
5559 (native-inputs
5560 `(("intltool" ,intltool)
5561 ("itstool" ,itstool)
5562 ("xmllint" ,libxml2)))
5563 (home-page "https://wiki.gnome.org/Apps/Yelp")
5564 (synopsis "XSL stylesheets for Yelp")
5565 (description
5566 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5567 to format Docbook and Mallard documents.")
5568 (license license:gpl2+)))
5569
5570 (define-public yelp
5571 (package
5572 (name "yelp")
5573 (version "3.32.2")
5574 (source (origin
5575 (method url-fetch)
5576 (uri (string-append "mirror://gnome/sources/" name "/"
5577 (version-major+minor version) "/"
5578 name "-" version ".tar.xz"))
5579 (sha256
5580 (base32
5581 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5582 (build-system glib-or-gtk-build-system)
5583 (native-inputs
5584 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5585 ("intltool" ,intltool)
5586 ("itstool" ,itstool)
5587 ("pkg-config" ,pkg-config)))
5588 (propagated-inputs
5589 `(("dconf" ,dconf)))
5590 (inputs
5591 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5592 ("libxslt" ,libxslt)
5593 ("sqlite" ,sqlite)
5594 ("webkitgtk" ,webkitgtk)
5595 ("yelp-xsl" ,yelp-xsl)))
5596 (home-page "https://wiki.gnome.org/Apps/Yelp")
5597 (synopsis "GNOME help browser")
5598 (description
5599 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5600 man, info, and HTML documents. It can locate documents according to the
5601 freedesktop.org help system specification.")
5602 (license license:gpl2+)))
5603
5604 (define-public yelp-tools
5605 (package
5606 (name "yelp-tools")
5607 (version "3.28.0")
5608 (source (origin
5609 (method url-fetch)
5610 (uri (string-append "mirror://gnome/sources/" name "/"
5611 (version-major+minor version) "/"
5612 name "-" version ".tar.xz"))
5613 (sha256
5614 (base32
5615 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
5616 (build-system gnu-build-system)
5617 (native-inputs
5618 `(("pkg-config" ,pkg-config)))
5619 (propagated-inputs
5620 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5621 `(("itstool" ,itstool)
5622 ("xmllint" ,libxml2)
5623 ("xsltproc" ,libxslt)))
5624 (inputs
5625 `(("yelp-xsl" ,yelp-xsl)))
5626 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5627 (synopsis "Yelp documentation tools")
5628 (description
5629 "Yelp-tools is a collection of scripts and build utilities to help create,
5630 manage, and publish documentation for Yelp and the web. Most of the heavy
5631 lifting is done by packages like yelp-xsl and itstool. This package just
5632 wraps things up in a developer-friendly way.")
5633 (license license:gpl2+)))
5634
5635 (define-public yelp-tools/fixed
5636 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5637 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5638 ;; the next rebuild cycle.
5639 (hidden-package
5640 (package/inherit
5641 yelp-tools
5642 (propagated-inputs
5643 `(("itstool" ,itstool/fixed)
5644 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5645
5646 (define-public libgee
5647 (package
5648 (name "libgee")
5649 (version "0.20.2")
5650 (source (origin
5651 (method url-fetch)
5652 (uri (string-append "mirror://gnome/sources/libgee/"
5653 (version-major+minor version) "/"
5654 "libgee-" version ".tar.xz"))
5655 (sha256
5656 (base32
5657 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
5658 (build-system gnu-build-system)
5659 (arguments
5660 `(#:phases
5661 (modify-phases %standard-phases
5662 (add-after 'unpack 'fix-introspection-install-dir
5663 (lambda* (#:key outputs #:allow-other-keys)
5664 (let ((out (assoc-ref outputs "out")))
5665 (substitute* "gee/Makefile.in"
5666 (("@INTROSPECTION_GIRDIR@")
5667 (string-append out "/share/gir-1.0/"))
5668 (("@INTROSPECTION_TYPELIBDIR@")
5669 (string-append out "/lib/girepository-1.0/")))))))))
5670 (native-inputs
5671 `(("glib" ,glib "bin")
5672 ("pkg-config" ,pkg-config)))
5673 (inputs
5674 `(("glib" ,glib)
5675 ("gobject-introspection" ,gobject-introspection)))
5676 (home-page "https://wiki.gnome.org/Projects/Libgee")
5677 (synopsis "GObject collection library")
5678 (description
5679 "Libgee is a utility library providing GObject-based interfaces and
5680 classes for commonly used data structures.")
5681 (license license:lgpl2.1+)))
5682
5683 (define-public gexiv2
5684 (package
5685 (name "gexiv2")
5686 (version "0.12.0")
5687 (source (origin
5688 (method url-fetch)
5689 (uri (string-append "mirror://gnome/sources/" name "/"
5690 (version-major+minor version) "/"
5691 name "-" version ".tar.xz"))
5692 (sha256
5693 (base32
5694 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5695 (build-system meson-build-system)
5696 (native-inputs
5697 `(("gcr" ,gcr)
5698 ("glib" ,glib "bin")
5699 ("pkg-config" ,pkg-config)
5700 ("vala" ,vala)))
5701 (propagated-inputs
5702 ;; Listed in "Requires" section of gexiv2.pc
5703 `(("exiv2" ,exiv2)))
5704 (inputs
5705 `(("glib" ,glib)
5706 ("gobject-introspection" ,gobject-introspection)))
5707 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5708 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5709 (description
5710 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5711 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5712 metadata in photo and video files of various formats.")
5713 (license license:gpl2+)))
5714
5715 (define-public shotwell
5716 (package
5717 (name "shotwell")
5718 (version "0.30.7")
5719 (source (origin
5720 (method url-fetch)
5721 (uri (string-append "mirror://gnome/sources/shotwell/"
5722 (version-major+minor version) "/"
5723 "shotwell-" version ".tar.xz"))
5724 (sha256
5725 (base32
5726 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
5727 (build-system meson-build-system)
5728 (arguments
5729 '(#:glib-or-gtk? #t
5730 #:phases
5731 (modify-phases %standard-phases
5732 (add-after 'unpack 'skip-gtk-update-icon-cache
5733 (lambda _
5734 (substitute* "build-aux/meson/postinstall.py"
5735 (("gtk-update-icon-cache") (which "true"))
5736 (("update-desktop-database") (which "true")))
5737 #t)))))
5738 (propagated-inputs
5739 `(("dconf" ,dconf)))
5740 (native-inputs
5741 `(("gettext" ,gettext-minimal)
5742 ("glib:bin" ,glib "bin")
5743 ("itstool" ,itstool)
5744 ("pkg-config" ,pkg-config)
5745 ("vala" ,vala)))
5746 (inputs
5747 `(("gcr" ,gcr)
5748 ("gexiv2" ,gexiv2)
5749 ("gst-plugins-base" ,gst-plugins-base)
5750 ("gstreamer" ,gstreamer)
5751 ("json-glib" ,json-glib)
5752 ("libgdata" ,libgdata)
5753 ("libgee" ,libgee)
5754 ("libgphoto2" ,libgphoto2)
5755 ("libgudev" ,libgudev)
5756 ("libraw" ,libraw)
5757 ("libsoup" ,libsoup)
5758 ("libxml2" ,libxml2)
5759 ("sqlite" ,sqlite)
5760 ("webkitgtk" ,webkitgtk)))
5761 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5762 (synopsis "Photo manager for GNOME 3")
5763 (description
5764 "Shotwell is a digital photo manager designed for the GNOME desktop
5765 environment. It allows you to import photos from disk or camera, organize
5766 them by keywords and events, view them in full-window or fullscreen mode, and
5767 share them with others via social networking and more.")
5768 (license license:lgpl2.1+)))
5769
5770 (define-public file-roller
5771 (package
5772 (name "file-roller")
5773 (version "3.32.3")
5774 (source (origin
5775 (method url-fetch)
5776 (uri (string-append "mirror://gnome/sources/file-roller/"
5777 (version-major+minor version) "/"
5778 "file-roller-" version ".tar.xz"))
5779 (sha256
5780 (base32
5781 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5782 (build-system meson-build-system)
5783 (native-inputs
5784 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5785 ("intltool" ,intltool)
5786 ("itstool" ,itstool)
5787 ("pkg-config" ,pkg-config)
5788 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5789 ("glib:bin" ,glib "bin")))
5790 ;; TODO: Add libnautilus.
5791 (inputs
5792 `(("gtk+" ,gtk+)
5793 ("gdk-pixbuf" ,gdk-pixbuf)
5794 ("json-glib" ,json-glib)
5795 ("libarchive" ,libarchive)
5796 ("libnotify" ,libnotify)
5797 ("nettle" ,nettle)
5798 ("libxml2" ,libxml2)))
5799 (synopsis "Graphical archive manager for GNOME")
5800 (description "File Roller is an archive manager for the GNOME desktop
5801 environment that allows users to view, unpack, and create compressed archives
5802 such as gzip tarballs.")
5803 (home-page "http://fileroller.sourceforge.net/")
5804 (license license:gpl2+)))
5805
5806 (define-public gnome-session
5807 (package
5808 (name "gnome-session")
5809 (version "3.32.0")
5810 (source (origin
5811 (method url-fetch)
5812 (uri (string-append "mirror://gnome/sources/" name "/"
5813 (version-major+minor version) "/"
5814 name "-" version ".tar.xz"))
5815 (sha256
5816 (base32
5817 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
5818 (arguments
5819 '(#:glib-or-gtk? #t
5820 #:phases
5821 (modify-phases %standard-phases
5822 (add-before 'configure 'pre-configure
5823 (lambda* (#:key outputs #:allow-other-keys)
5824 ;; Use elogind instead of systemd.
5825 (substitute* "meson.build"
5826 (("libsystemd-login") "libelogind")
5827 (("and libsystemd_daemon_dep.found.*") ","))
5828 (substitute* "gnome-session/gsm-systemd.c"
5829 (("#include <systemd/sd-login.h>")
5830 "#include <elogind/sd-login.h>"))
5831 ;; Remove uses of the systemd daemon.
5832 (substitute* "gnome-session/gsm-autostart-app.c"
5833 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5834 #t))
5835 (add-after 'install 'wrap-gnome-session
5836 (lambda* (#:key inputs outputs #:allow-other-keys)
5837 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5838 (let ((glib (assoc-ref inputs "glib:bin"))
5839 (out (assoc-ref outputs "out")))
5840 (wrap-program (string-append out "/bin/gnome-session")
5841 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5842 #t))))
5843
5844 #:configure-flags
5845 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5846 "-Dman=false" ; FIXME: disabled because of docbook validation error
5847 "-Dsystemd_journal=false")))
5848 (build-system meson-build-system)
5849 (native-inputs
5850 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5851 ("pkg-config" ,pkg-config)
5852 ("intltool" ,intltool)
5853 ("xsltproc" ,libxslt)
5854 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5855 ("docbook-xsl" ,docbook-xsl)
5856 ("docbook-xml" ,docbook-xml)
5857 ("xmlto" ,xmlto)))
5858 (inputs
5859 `(("elogind" ,elogind)
5860 ("gnome-desktop" ,gnome-desktop)
5861 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5862 ("gtk+" ,gtk+)
5863 ("json-glib" ,json-glib)
5864 ("libsm" ,libsm)
5865 ("libxcomposite" ,libxcomposite)
5866 ("libxtst" ,libxtst)
5867 ("mesa" ,mesa)
5868 ("upower" ,upower)
5869 ("xtrans" ,xtrans)))
5870 (synopsis "Session manager for GNOME")
5871 (description
5872 "This package contains the GNOME session manager, as well as a
5873 configuration program to choose applications starting on login.")
5874 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5875 (license license:gpl2+)))
5876
5877 (define-public gjs
5878 (package
5879 (name "gjs")
5880 (version "1.56.2")
5881 (source (origin
5882 (method url-fetch)
5883 (uri (string-append "mirror://gnome/sources/" name "/"
5884 (version-major+minor version) "/"
5885 name "-" version ".tar.xz"))
5886 (sha256
5887 (base32
5888 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
5889 (build-system gnu-build-system)
5890 (arguments
5891 '(#:phases
5892 (modify-phases %standard-phases
5893 (add-before
5894 'check 'pre-check
5895 (lambda _
5896 ;; The test suite requires a running X server.
5897 (system "Xvfb :1 &")
5898 (setenv "DISPLAY" ":1")
5899
5900 ;; For the missing /etc/machine-id.
5901 (setenv "DBUS_FATAL_WARNINGS" "0")
5902
5903 ;; Our mozjs-38 package does not compile the required Intl API
5904 ;; support for these failing tests.
5905 (substitute* "installed-tests/js/testLocale.js"
5906 ((".*toBeDefined.*") "")
5907 ((".*expect\\(datestr\\).*") ""))
5908 (substitute* "installed-tests/scripts/testCommandLine.sh"
5909 (("Valentín") "")
5910 (("☭") ""))
5911 #t)))))
5912 (native-inputs
5913 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5914 ("pkg-config" ,pkg-config)
5915 ("xmllint" ,libxml2)
5916 ;; For testing
5917 ("dbus-launch" ,dbus)
5918 ("uuidgen" ,util-linux)
5919 ("xvfb" ,xorg-server-for-tests)))
5920 (propagated-inputs
5921 ;; These are all in the Requires.private field of gjs-1.0.pc.
5922 `(("cairo" ,cairo)
5923 ("gobject-introspection" ,gobject-introspection)
5924 ("mozjs" ,mozjs-60)))
5925 (inputs
5926 `(("gtk+" ,gtk+)
5927 ("readline" ,readline)))
5928 (synopsis "Javascript bindings for GNOME")
5929 (home-page "https://live.gnome.org/Gjs")
5930 (description
5931 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5932 javascript engine and the GObject introspection framework.")
5933 (license license:gpl2+)))
5934
5935 (define-public gedit
5936 (package
5937 (name "gedit")
5938 (version "3.32.2")
5939 (source (origin
5940 (method url-fetch)
5941 (uri (string-append "mirror://gnome/sources/" name "/"
5942 (version-major+minor version) "/"
5943 name "-" version ".tar.xz"))
5944 (sha256
5945 (base32
5946 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5947 (build-system meson-build-system)
5948 (arguments
5949 `(#:glib-or-gtk? #t
5950 #:configure-flags
5951 ;; Otherwise, the RUNPATH will lack the final path component.
5952 (list (string-append "-Dc_link_args=-Wl,-rpath="
5953 (assoc-ref %outputs "out") "/lib/gedit"))
5954
5955 ;; XXX: Generated .h files are sometimes used before being built.
5956 #:parallel-build? #f
5957
5958 #:phases
5959 (modify-phases %standard-phases
5960 (add-after 'unpack 'skip-gtk-update-icon-cache
5961 ;; Don't create 'icon-theme.cache'.
5962 (lambda _
5963 (substitute* "build-aux/meson/post_install.py"
5964 (("gtk-update-icon-cache") (which "true")))
5965 #t))
5966 (add-after 'unpack 'patch-libgd-fetch
5967 (lambda* (#:key inputs #:allow-other-keys)
5968 (let ((libgd (assoc-ref inputs "libgd")))
5969 ;; Calling git is unnecessary because libgd is fetched as a
5970 ;; native input to this package.
5971 (substitute* "meson.build"
5972 ((".*git.*") ""))
5973 (copy-recursively libgd "subprojects/libgd")
5974 #t)))
5975 (add-after 'install 'wrap-gedit
5976 (lambda* (#:key inputs outputs #:allow-other-keys)
5977 (let ((out (assoc-ref outputs "out"))
5978 (gtksourceview (assoc-ref inputs "gtksourceview"))
5979 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5980 (python-path (getenv "PYTHONPATH")))
5981 (wrap-program (string-append out "/bin/gedit")
5982 ;; For plugins.
5983 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5984 `("PYTHONPATH" ":" prefix (,python-path))
5985 ;; For language-specs.
5986 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5987 "/share")))))
5988 #t)))))
5989 (propagated-inputs
5990 `(("dconf" ,dconf)))
5991 (native-inputs
5992 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5993 ("intltool" ,intltool)
5994 ("itstool" ,itstool)
5995 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5996 ("gobject-introspection" ,gobject-introspection)
5997 ("libgd"
5998 ,(origin
5999 (method git-fetch)
6000 (uri (git-reference
6001 (url "https://gitlab.gnome.org/GNOME/libgd")
6002 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6003 (file-name (git-file-name "libgd" version))
6004 (sha256
6005 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6006 ("pkg-config" ,pkg-config)))
6007 (inputs
6008 `(("glib" ,glib)
6009 ("gspell" ,gspell)
6010 ("gtk+" ,gtk+)
6011 ("gtksourceview" ,gtksourceview)
6012 ("libpeas" ,libpeas)
6013 ("libxml2" ,libxml2)
6014 ("iso-codes" ,iso-codes)
6015 ("python-pygobject" ,python-pygobject)
6016 ("python" ,python)
6017 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6018 ("libx11" ,libx11)
6019 ("vala" ,vala)
6020 ("adwaita-icon-theme" ,adwaita-icon-theme)
6021 ("libsoup" ,libsoup)
6022 ("gnome-desktop" ,gnome-desktop)))
6023 (home-page "https://wiki.gnome.org/Apps/Gedit")
6024 (synopsis "GNOME text editor")
6025 (description "While aiming at simplicity and ease of use, gedit is a
6026 powerful general purpose text editor.")
6027 (license license:gpl2+)))
6028
6029 (define-public zenity
6030 (package
6031 (name "zenity")
6032 (version "3.32.0")
6033 (source (origin
6034 (method url-fetch)
6035 (uri (string-append "mirror://gnome/sources/zenity/"
6036 (version-major+minor version) "/"
6037 "zenity-" version ".tar.xz"))
6038 (sha256
6039 (base32
6040 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6041 (build-system gnu-build-system)
6042 (native-inputs
6043 `(("gettext" ,gettext-minimal)
6044 ("itstool" ,itstool)
6045 ("pkg-config" ,pkg-config)))
6046 (inputs
6047 `(("libnotify" ,libnotify)
6048 ("webkitgtk" ,webkitgtk)))
6049 (synopsis "Display graphical dialog boxes from shell scripts")
6050 (home-page "https://www.gnome.org")
6051 (description
6052 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6053 to display dialog boxes from the commandline and shell scripts.")
6054 (license license:lgpl2.0+)))
6055
6056 (define-public mutter
6057 (package
6058 (name "mutter")
6059 (version "3.32.2")
6060 (source (origin
6061 (method url-fetch)
6062 (uri (string-append "mirror://gnome/sources/" name "/"
6063 (version-major+minor version) "/"
6064 name "-" version ".tar.xz"))
6065 (sha256
6066 (base32
6067 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
6068 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6069 ;; versions of cogl and clutter. As a result, many of the inputs,
6070 ;; propagated-inputs, and configure flags used in cogl and clutter are
6071 ;; needed here as well.
6072 (build-system meson-build-system)
6073 (arguments
6074 '(;; XXX: All mutter tests fail with the following error:
6075 ;; Settings schema 'org.gnome.mutter' is not installed
6076 #:tests? #f
6077 #:glib-or-gtk? #t
6078 #:configure-flags
6079 ;; Otherwise, the RUNPATH will lack the final path component.
6080 (list (string-append "-Dc_link_args=-Wl,-rpath="
6081 (assoc-ref %outputs "out") "/lib:"
6082 (assoc-ref %outputs "out") "/lib/mutter-4")
6083
6084 ;; The following flags are needed for the bundled clutter
6085 (string-append "-Dxwayland_path="
6086 (assoc-ref %build-inputs "xorg-server-xwayland")
6087 "/bin/Xwayland")
6088
6089 ;; the remaining flags are needed for the bundled cogl
6090 (string-append "-Dopengl_libname="
6091 (assoc-ref %build-inputs "mesa")
6092 "/lib/libGL.so"))
6093 #:phases
6094 (modify-phases %standard-phases
6095 (add-after 'unpack 'disable-werror
6096 (lambda _
6097 ;; XXX: build fails with [-Werror]:
6098 ;; backends/meta-cursor-renderer.c:112:5: error:
6099 ;; implicit declaration of function ?roundf?
6100 (substitute* "meson.build"
6101 (("'-Werror=.*',") ""))
6102 #t))
6103 ;; Replace references to systemd libraries to elogind references.
6104 (add-before 'configure 'use-elogind
6105 (lambda _
6106 (substitute* (list "meson.build"
6107 "src/backends/native/meta-launcher.c"
6108 "src/core/main.c")
6109 (("systemd") "elogind"))
6110 #t)))))
6111 (native-inputs
6112 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6113 ("gobject-introspection" ,gobject-introspection)
6114 ("intltool" ,intltool)
6115 ("pkg-config" ,pkg-config)
6116 ("xorg-server" ,xorg-server-for-tests)
6117 ;; For git build
6118 ("autoconf" ,autoconf)
6119 ("automake" ,automake)
6120 ("libtool" ,libtool)))
6121 (propagated-inputs
6122 `(;; libmutter.pc refers to these:
6123 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6124 ("gtk+" ,gtk+)
6125 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6126 ("atk" ,atk)
6127 ("cairo" ,cairo)
6128 ("gdk-pixbuf" ,gdk-pixbuf)
6129 ("glib" ,glib)
6130 ("json-glib" ,json-glib)
6131 ("libinput" ,libinput)
6132 ("libx11" ,libx11)
6133 ("libxcomposite" ,libxcomposite)
6134 ("libxdamage" ,libxdamage)
6135 ("libxext" ,libxext)
6136 ("libxfixes" ,libxfixes)
6137 ("libxkbcommon" ,libxkbcommon)
6138 ("libxrandr" ,libxrandr)
6139 ("mesa" ,mesa)
6140 ("pango" ,pango)
6141 ("udev" ,eudev)
6142 ("xinput" ,xinput)))
6143 (inputs
6144 `(("elogind" ,elogind)
6145 ("gnome-desktop" ,gnome-desktop)
6146 ("gnome-settings-daemon" ,gnome-settings-daemon)
6147 ("libcanberra-gtk" ,libcanberra)
6148 ("libgudev" ,libgudev)
6149 ("libice" ,libice)
6150 ("libsm" ,libsm)
6151 ("libwacom" ,libwacom)
6152 ("libxkbfile" ,libxkbfile)
6153 ("libxrandr" ,libxrandr)
6154 ("libxtst" ,libxtst)
6155 ("pipewire" ,pipewire)
6156 ("startup-notification" ,startup-notification)
6157 ("upower-glib" ,upower)
6158 ("xkeyboard-config" ,xkeyboard-config)
6159 ("xorg-server-xwayland" ,xorg-server-xwayland)
6160 ("zenity" ,zenity)))
6161 (synopsis "Window and compositing manager")
6162 (home-page "https://www.gnome.org")
6163 (description
6164 "Mutter is a window and compositing manager that displays and manages your
6165 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6166 Clutter toolkit with solid window-management logic inherited from the Metacity
6167 window manager.")
6168 (license license:gpl2+)))
6169
6170 (define-public gnome-online-accounts
6171 (package
6172 (name "gnome-online-accounts")
6173 (version "3.32.1")
6174 (source (origin
6175 (method url-fetch)
6176 (uri (string-append "mirror://gnome/sources/" name "/"
6177 (version-major+minor version) "/"
6178 name "-" version ".tar.xz"))
6179 (sha256
6180 (base32
6181 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
6182 (outputs '("out" "lib"))
6183 (build-system glib-or-gtk-build-system)
6184 (arguments
6185 `(#:configure-flags
6186 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6187 #:phases
6188 (modify-phases %standard-phases
6189 (add-before 'configure 'patch-libgoa-output
6190 (lambda* (#:key outputs #:allow-other-keys)
6191 (let ((lib (assoc-ref outputs "lib")))
6192 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6193 (("@prefix@") lib)
6194 (("@exec_prefix@") lib)
6195 (("@libdir@") (string-append lib "/lib"))
6196 (("@includedir@") (string-append lib "/include"))
6197 (("@datadir@") (string-append lib "/share")))
6198 ;; Make sure gobject-introspection knows about the output
6199 ;; too (see <https://bugs.gnu.org/36535>).
6200 (setenv "outputs" "out lib")
6201 #t))))))
6202 (native-inputs
6203 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6204 ("gobject-introspection" ,gobject-introspection)
6205 ("intltool" ,intltool)
6206 ("pkg-config" ,pkg-config)
6207 ("vala" ,vala)
6208 ("xsltproc" ,libxslt)))
6209 (propagated-inputs
6210 `(("glib" ,glib) ; required by goa-1.0.pc
6211 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6212 (inputs
6213 `(("docbook-xsl" ,docbook-xsl)
6214 ("json-glib" ,json-glib)
6215 ("libsecret" ,libsecret)
6216 ("rest" ,rest)
6217 ("webkitgtk" ,webkitgtk)))
6218 (synopsis "Single sign-on framework for GNOME")
6219 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6220 (description
6221 "GNOME Online Accounts provides interfaces so that applications and
6222 libraries in GNOME can access the user's online accounts. It has providers for
6223 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6224 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6225 (license license:lgpl2.0+)))
6226
6227 (define-public evolution-data-server
6228 (package
6229 (name "evolution-data-server")
6230 (version "3.32.4")
6231 (source (origin
6232 (method url-fetch)
6233 (uri (string-append "mirror://gnome/sources/" name "/"
6234 (version-major+minor version) "/"
6235 name "-" version ".tar.xz"))
6236 (patches (search-patches "evolution-data-server-locales.patch"))
6237 (sha256
6238 (base32
6239 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
6240 (build-system cmake-build-system)
6241 (arguments
6242 '(#:configure-flags
6243 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6244 (runpaths (map (lambda (s)
6245 (string-append lib "/evolution-data-server/" s))
6246 '("addressbook-backends" "calendar-backends"
6247 "camel-providers" "credential-modules"
6248 "registry-modules"))))
6249 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6250 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6251 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6252 "-DENABLE_VALA_BINDINGS=ON"
6253 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6254 (string-append lib "/evolution-data-server;")
6255 (string-join runpaths ";"))
6256 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6257 #:phases
6258 (modify-phases %standard-phases
6259 (add-after 'unpack 'disable-failing-tests
6260 (lambda _
6261 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6262 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6263 (delete-file-recursively "tests/book-migration")
6264 (substitute* "tests/CMakeLists.txt"
6265 (("add_subdirectory\\(book-migration\\)") ""))
6266 ;; tests/libebook/client/test-book-client-view-operations:8077):
6267 ;; e-data-server-WARNING **:
6268 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6269 ;; runtime check failed:
6270 ;; (!g_main_context_pending (closure->main_context))
6271 (substitute* "tests/libebook/client/CMakeLists.txt"
6272 (("test-book-client-view-operations") ""))
6273 #t))
6274 (add-after 'unpack 'patch-paths
6275 (lambda _
6276 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6277 "tests/libedata-book/data-test-utils.c"
6278 "tests/libedata-book/test-book-cache-utils.c"
6279 "tests/libedata-cal/test-cal-cache-utils.c")
6280 (("/bin/rm") (which "rm")))
6281 #t))
6282 (add-before 'configure 'dont-override-rpath
6283 (lambda _
6284 (substitute* "CMakeLists.txt"
6285 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6286 ;; Remove it so the configure flag is respected.
6287 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6288 #t)))))
6289 (native-inputs
6290 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6291 ("gobject-introspection" ,gobject-introspection)
6292 ("gperf" ,gperf)
6293 ("intltool" ,intltool)
6294 ("pkg-config" ,pkg-config)
6295 ("vala" ,vala)
6296 ("python" ,python-wrapper)))
6297 (propagated-inputs
6298 ;; These are all in the Requires field of .pc files.
6299 `(("gtk+" ,gtk+)
6300 ("libical" ,libical)
6301 ("libsecret" ,libsecret)
6302 ("libsoup" ,libsoup)
6303 ("nss" ,nss)
6304 ("sqlite" ,sqlite)))
6305 (inputs
6306 `(("bdb" ,bdb)
6307 ("gcr" ,gcr)
6308 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6309 ("json-glib" ,json-glib)
6310 ("libcanberra" ,libcanberra)
6311 ("libgweather" ,libgweather)
6312 ("mit-krb5" ,mit-krb5)
6313 ("openldap" ,openldap)
6314 ("webkitgtk" ,webkitgtk)))
6315 (synopsis "Store address books and calendars")
6316 (home-page "https://wiki.gnome.org/Apps/Evolution")
6317 (description
6318 "This package provides a unified backend for programs that work with
6319 contacts, tasks, and calendar information. It was originally developed for
6320 Evolution (hence the name), but is now used by other packages as well.")
6321 (license license:lgpl2.0)))
6322
6323 (define-public caribou
6324 (package
6325 (name "caribou")
6326 (version "0.4.21")
6327 (source (origin
6328 (method url-fetch)
6329 (uri (string-append "mirror://gnome/sources/" name "/"
6330 (version-major+minor version) "/"
6331 name "-" version ".tar.xz"))
6332 (sha256
6333 (base32
6334 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6335 (build-system glib-or-gtk-build-system)
6336 (arguments
6337 '(#:phases
6338 (modify-phases %standard-phases
6339 (add-before
6340 'build 'pre-build
6341 (lambda* (#:key outputs #:allow-other-keys)
6342 (let ((out (assoc-ref outputs "out")))
6343 ;; Use absolute shared library path in Caribou-1.0.typelib.
6344 (substitute* "libcaribou/Makefile"
6345 (("--shared-library=libcaribou.so")
6346 (string-append "--shared-library="
6347 out "/lib/libcaribou.so")))
6348 #t)))
6349 (add-after 'install 'wrap-programs
6350 (lambda* (#:key outputs #:allow-other-keys)
6351 (let* ((out (assoc-ref outputs "out"))
6352 (python-path (getenv "PYTHONPATH"))
6353 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6354 (for-each
6355 (lambda (prog)
6356 (wrap-program prog
6357 `("PYTHONPATH" ":" prefix (,python-path))
6358 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6359 (list (string-append out "/bin/caribou-preferences")
6360 (string-append out "/libexec/antler-keyboard"))))
6361 #t)))))
6362 (native-inputs
6363 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6364 ("gobject-introspection" ,gobject-introspection)
6365 ("intltool" ,intltool)
6366 ("pkg-config" ,pkg-config)
6367 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
6368 ("vala" ,vala)
6369 ("xsltproc" ,libxslt)))
6370 (propagated-inputs
6371 ;; caribou-1.0.pc refers to all these.
6372 `(("libgee" ,libgee)
6373 ("libxklavier" ,libxklavier)
6374 ("libxtst" ,libxtst)
6375 ("gtk+" ,gtk+)))
6376 (inputs
6377 `(("clutter" ,clutter)
6378 ("dconf" ,dconf)
6379 ("gtk+-2" ,gtk+-2)
6380 ("python-pygobject" ,python2-pygobject)))
6381 (synopsis "Text entry and UI navigation application")
6382 (home-page "https://wiki.gnome.org/Projects/Caribou")
6383 (description
6384 "Caribou is an input assistive technology intended for switch and pointer
6385 users.")
6386 (license license:lgpl2.1)))
6387
6388 (define-public network-manager
6389 (package
6390 (name "network-manager")
6391 (version "1.18.4")
6392 (source (origin
6393 (method url-fetch)
6394 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6395 (version-major+minor version) "/"
6396 "NetworkManager-" version ".tar.xz"))
6397 (patches (search-patches "nm-plugin-path.patch"))
6398 (sha256
6399 (base32
6400 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
6401 (modules '((guix build utils)))
6402 (snippet
6403 '(begin
6404 (substitute* "src/devices/wwan/nm-modem-manager.c"
6405 (("systemd") "elogind"))
6406 #t))))
6407 (build-system gnu-build-system)
6408 (outputs '("out"
6409 "doc")) ; 8 MiB of gtk-doc HTML
6410 (arguments
6411 '(#:configure-flags
6412 (let ((out (assoc-ref %outputs "out"))
6413 (doc (assoc-ref %outputs "doc"))
6414 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6415 "/sbin/dhclient")))
6416 (list "--with-libnm-glib" ; needed by network-manager-applet
6417 "--with-systemd-journal=no"
6418 "--with-session-tracking=elogind"
6419 "--with-suspend-resume=elogind"
6420 "--with-consolekit=no"
6421 "--with-crypto=gnutls"
6422 "--disable-config-plugin-ibft"
6423 "--sysconfdir=/etc"
6424 "--localstatedir=/var"
6425 (string-append "--with-udev-dir="
6426 out "/lib/udev")
6427 (string-append "--with-dbus-sys-dir="
6428 out "/etc/dbus-1/system.d")
6429 (string-append "--with-html-dir="
6430 doc "/share/gtk-doc/html")
6431 (string-append "--with-dhclient=" dhclient)))
6432 #:phases
6433 (modify-phases %standard-phases
6434 ;; This bare "ls" invocation breaks some tests.
6435 (add-after 'unpack 'patch-ls-invocation
6436 (lambda _
6437 (substitute* "build-aux/ltmain.sh"
6438 (("`ls -")
6439 (string-append "`" (which "ls") " -")))
6440 #t))
6441 (add-before 'configure 'pre-configure
6442 (lambda _
6443 ;; These tests try to test aspects of network-manager's
6444 ;; functionality within restricted containers, but they don't
6445 ;; cope with being already in the Guix build jail as that jail
6446 ;; lacks some features that they would like to proxy over (like
6447 ;; a /sys mount).
6448 (substitute* '("Makefile.in")
6449 (("src/platform/tests/test-address-linux") " ")
6450 (("src/platform/tests/test-cleanup-linux") " ")
6451 (("src/platform/tests/test-link-linux") " ")
6452 (("src/platform/tests/test-route-linux") " ")
6453 (("src/devices/tests/test-acd") "")
6454 (("src/devices/tests/test-arping") " ")
6455 (("src/devices/tests/test-lldp") " ")
6456 (("src/tests/test-route-manager-linux") " "))
6457 #t))
6458 (add-after 'unpack 'delete-failing-tests
6459 (lambda _
6460 ;; FIXME: These three tests fail for unknown reasons.
6461 ;; ERROR:libnm-core/tests/test-general.c:5842:
6462 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6463 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6464 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6465 ;; ERROR:libnm-core/tests/test-setting.c:907:
6466 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
6467 (substitute* "Makefile.in"
6468 (("libnm-core/tests/test-general") " ")
6469 (("libnm-core/tests/test-keyfile") " ")
6470 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
6471 #t))
6472 (add-before 'check 'pre-check
6473 (lambda _
6474 ;; For the missing /etc/machine-id.
6475 (setenv "DBUS_FATAL_WARNINGS" "0")
6476 #t))
6477 (replace 'install
6478 (lambda _
6479 (invoke "make"
6480 "sysconfdir=/tmp"
6481 "rundir=/tmp"
6482 "statedir=/tmp"
6483 "nmstatedir=/tmp/nm"
6484 "install")
6485 #t)))))
6486 (propagated-inputs
6487 `(("glib" ,glib)))
6488 (native-inputs
6489 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6490 ("gobject-introspection" ,gobject-introspection)
6491 ("docbook-xsl" ,docbook-xsl)
6492 ("intltool" ,intltool)
6493 ("libxslt" ,libxslt)
6494 ("libxml2" ,libxml2)
6495 ("pkg-config" ,pkg-config)
6496 ;; For testing.
6497 ("python" ,python-wrapper)
6498 ("python-dbus" ,python-dbus)
6499 ("python-pygobject" ,python-pygobject)))
6500 (inputs
6501 `(("coreutils" ,coreutils) ; for ls
6502 ("curl" ,curl)
6503 ("cyrus-sasl" ,cyrus-sasl)
6504 ("dbus-glib" ,dbus-glib)
6505 ("dnsmasq" ,dnsmasq)
6506 ("eudev" ,eudev)
6507 ("gnutls" ,gnutls)
6508 ("iptables" ,iptables)
6509 ("isc-dhcp" ,isc-dhcp)
6510 ("jansson" ,jansson)
6511 ("libgcrypt" ,libgcrypt)
6512 ("libgudev" ,libgudev)
6513 ("libndp" ,libndp)
6514 ("libnl" ,libnl)
6515 ("libsoup" ,libsoup)
6516 ("modem-manager" ,modem-manager)
6517 ("newt" ,newt) ;for the 'nmtui' console interface
6518 ("polkit" ,polkit)
6519 ("ppp" ,ppp)
6520 ("readline" ,readline)
6521 ("util-linux" ,util-linux)
6522 ("elogind" ,elogind)))
6523 (synopsis "Network connection manager")
6524 (home-page "https://www.gnome.org/projects/NetworkManager/")
6525 (description
6526 "NetworkManager is a system network service that manages your network
6527 devices and connections, attempting to keep active network connectivity when
6528 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6529 devices, and provides VPN integration with a variety of different VPN
6530 services.")
6531 (license license:gpl2+)
6532 (properties '((upstream-name . "NetworkManager")))))
6533
6534 (define-public network-manager-openvpn
6535 (package
6536 (name "network-manager-openvpn")
6537 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
6538 (version "1.8.10")
6539 (source (origin
6540 (method url-fetch)
6541 (uri (string-append
6542 "mirror://gnome/sources/NetworkManager-openvpn/"
6543 (version-major+minor version)
6544 "/NetworkManager-openvpn-" version ".tar.xz"))
6545 (sha256
6546 (base32
6547 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
6548 (build-system gnu-build-system)
6549 (arguments
6550 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6551 #:phases
6552 (modify-phases %standard-phases
6553 (add-after 'configure 'patch-path
6554 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6555 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6556 "/sbin/openvpn"))
6557 (modprobe (string-append (assoc-ref inputs "kmod")
6558 "/bin/modprobe"))
6559 (pretty-ovpn (string-append "\"" ovpn "\"")))
6560 (for-each
6561 (lambda (file)
6562 (substitute* file
6563 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6564 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6565 (("\"/sbin/openvpn\"") pretty-ovpn)
6566 (("/sbin/modprobe") modprobe)))
6567 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6568 #t)))))
6569 (native-inputs
6570 `(("pkg-config" ,pkg-config)
6571 ("intltool" ,intltool)))
6572 (inputs
6573 `(("gtk+" ,gtk+)
6574 ("kmod" ,kmod)
6575 ("openvpn" ,openvpn)
6576 ("network-manager" ,network-manager)
6577 ("network-manager-applet" ,network-manager-applet) ;for libnma
6578 ("libsecret" ,libsecret)))
6579 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6580 (synopsis "OpenVPN plug-in for NetworkManager")
6581 (description
6582 "This extension of NetworkManager allows it to take care of connections
6583 to virtual private networks (VPNs) via OpenVPN.")
6584 (license license:gpl2+)
6585 (properties `((upstream-name . "NetworkManager-openvpn")))))
6586
6587 (define-public network-manager-vpnc
6588 (package
6589 (name "network-manager-vpnc")
6590 (version "1.2.6")
6591 (source (origin
6592 (method url-fetch)
6593 (uri (string-append
6594 "mirror://gnome/sources/NetworkManager-vpnc/"
6595 (version-major+minor version)
6596 "/NetworkManager-vpnc-" version ".tar.xz"))
6597 (sha256
6598 (base32
6599 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6600 (build-system gnu-build-system)
6601 (arguments
6602 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6603 #:phases
6604 (modify-phases %standard-phases
6605 (add-after 'configure 'patch-path
6606 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6607 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6608 "/sbin/vpnc"))
6609 (modprobe (string-append (assoc-ref inputs "kmod")
6610 "/bin/modprobe"))
6611 (pretty-ovpn (string-append "\"" vpnc "\"")))
6612 (substitute* "src/nm-vpnc-service.c"
6613 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6614 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6615 (("\"/sbin/vpnc\"") pretty-ovpn)
6616 (("/sbin/modprobe") modprobe)))
6617 #t)))))
6618 (native-inputs
6619 `(("pkg-config" ,pkg-config)
6620 ("intltool" ,intltool)))
6621 (inputs
6622 `(("gtk+" ,gtk+)
6623 ("kmod" ,kmod)
6624 ("vpnc" ,vpnc)
6625 ("network-manager" ,network-manager)
6626 ("network-manager-applet" ,network-manager-applet) ;for libnma
6627 ("libsecret" ,libsecret)))
6628 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6629 (synopsis "VPNC plug-in for NetworkManager")
6630 (description
6631 "Support for configuring virtual private networks based on VPNC.
6632 Compatible with Cisco VPN concentrators configured to use IPsec.")
6633 (license license:gpl2+)
6634 (properties `((upstream-name . "NetworkManager-vpnc")))))
6635
6636 (define-public network-manager-openconnect
6637 (package
6638 (name "network-manager-openconnect")
6639 (version "1.2.6")
6640 (source (origin
6641 (method url-fetch)
6642 (uri (string-append
6643 "mirror://gnome/sources/NetworkManager-openconnect/"
6644 (version-major+minor version)
6645 "/NetworkManager-openconnect-" version ".tar.xz"))
6646 (sha256
6647 (base32
6648 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6649 (build-system gnu-build-system)
6650 (arguments
6651 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6652 #:phases
6653 (modify-phases %standard-phases
6654 (add-after 'configure 'patch-path
6655 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6656 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6657 "/sbin/openconnect"))
6658 (modprobe (string-append (assoc-ref inputs "kmod")
6659 "/bin/modprobe"))
6660 (pretty-ovpn (string-append "\"" openconnect "\"")))
6661 (substitute* "src/nm-openconnect-service.c"
6662 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6663 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6664 (("/sbin/modprobe") modprobe)))
6665 #t)))))
6666 (native-inputs
6667 `(("intltool" ,intltool)
6668 ("network-manager-applet" ,network-manager-applet) ;for libnma
6669 ("pkg-config" ,pkg-config)))
6670 (inputs
6671 `(("gcr" ,gcr)
6672 ("gtk+" ,gtk+)
6673 ("kmod" ,kmod)
6674 ("libsecret" ,libsecret)
6675 ("libxml2" ,libxml2)
6676 ("network-manager" ,network-manager)
6677 ("openconnect" ,openconnect)))
6678 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6679 (synopsis "OpenConnect plug-in for NetworkManager")
6680 (description
6681 "This extension of NetworkManager allows it to take care of connections
6682 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6683 Cisco's AnyConnect SSL VPN.")
6684 (license license:gpl2+)
6685 (properties `((upstream-name . "NetworkManager-openconnect")
6686
6687 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6688 ;; file refers to account "nm-openconnect". Specify it here
6689 ;; so that 'network-manager-service-type' creates it.
6690 (user-accounts . ("nm-openconnect"))))))
6691
6692 (define-public mobile-broadband-provider-info
6693 (package
6694 (name "mobile-broadband-provider-info")
6695 (version "20190116")
6696 (source (origin
6697 (method url-fetch)
6698 (uri (string-append
6699 "mirror://gnome/sources/"
6700 "mobile-broadband-provider-info/" version "/"
6701 "mobile-broadband-provider-info-" version ".tar.xz"))
6702 (sha256
6703 (base32
6704 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6705 (build-system gnu-build-system)
6706 (arguments
6707 `(#:tests? #f)) ; no tests
6708 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6709 (synopsis "Database of broadband connection configuration")
6710 (description "Database of broadband connection configuration.")
6711 (license license:public-domain)))
6712
6713 (define-public network-manager-applet
6714 (package
6715 (name "network-manager-applet")
6716 (version "1.8.24")
6717 (source (origin
6718 (method url-fetch)
6719 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6720 (version-major+minor version) "/"
6721 "network-manager-applet-" version ".tar.xz"))
6722 (sha256
6723 (base32
6724 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
6725 (build-system meson-build-system)
6726 (arguments
6727 '(#:configure-flags
6728 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6729 (list "-Dlibnm_gtk=true")
6730 #:glib-or-gtk? #t))
6731 (native-inputs
6732 `(("intltool" ,intltool)
6733 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6734 ("gobject-introspection" ,gobject-introspection)
6735 ("gtk-doc" ,gtk-doc)
6736 ("pkg-config" ,pkg-config)))
6737 (propagated-inputs
6738 ;; libnm-gtk.pc refers to all these.
6739 `(("dbus-glib" ,dbus-glib)
6740 ("gtk+" ,gtk+)
6741 ("network-manager" ,network-manager)))
6742 (inputs
6743 `(("gcr" ,gcr)
6744 ("iso-codes" ,iso-codes)
6745 ("libgudev" ,libgudev)
6746 ("libnotify" ,libnotify)
6747 ("libsecret" ,libsecret)
6748 ("libselinux" ,libselinux)
6749 ("jansson" ,jansson) ; for team support
6750 ("modem-manager" ,modem-manager)
6751 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
6752 (synopsis "Applet for managing network connections")
6753 (home-page "https://www.gnome.org/projects/NetworkManager/")
6754 (description
6755 "This package contains a systray applet for NetworkManager. It displays
6756 the available networks and allows users to easily switch between them.")
6757 (license license:gpl2+)))
6758
6759 (define-public libxml++
6760 (package
6761 (name "libxml++")
6762 (version "3.0.1")
6763 (source (origin
6764 (method url-fetch)
6765 (uri (string-append "mirror://gnome/sources/" name "/"
6766 (version-major+minor version) "/"
6767 name "-" version ".tar.xz"))
6768 (sha256
6769 (base32
6770 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6771 (build-system gnu-build-system)
6772 ;; libxml++-3.0.pc refers to all these.
6773 (propagated-inputs
6774 `(("libxml2" ,libxml2)
6775 ("glibmm" ,glibmm)))
6776 (native-inputs
6777 `(("perl" ,perl)
6778 ("pkg-config" ,pkg-config)))
6779 (home-page "http://libxmlplusplus.sourceforge.net/")
6780 (synopsis "C++ wrapper for XML parser library libxml2")
6781 (description
6782 "This package provides a C++ wrapper for the XML parser library
6783 libxml2.")
6784 (license license:lgpl2.1+)))
6785
6786 (define-public libxml++-2
6787 (package
6788 (inherit libxml++)
6789 (name "libxml++")
6790 (version "2.40.1")
6791 (source (origin
6792 (method url-fetch)
6793 (uri (string-append "mirror://gnome/sources/" name "/"
6794 (version-major+minor version) "/"
6795 name "-" version ".tar.xz"))
6796 (sha256
6797 (base32
6798 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6799
6800 (define-public gdm
6801 (package
6802 (name "gdm")
6803 (version "3.32.0")
6804 (source (origin
6805 (method url-fetch)
6806 (uri (string-append "mirror://gnome/sources/" name "/"
6807 (version-major+minor version) "/"
6808 name "-" version ".tar.xz"))
6809 (sha256
6810 (base32
6811 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
6812 (build-system glib-or-gtk-build-system)
6813 (arguments
6814 '(#:configure-flags
6815 `("--without-plymouth"
6816 "--disable-systemd-journal"
6817
6818 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6819 ;; instead of having to replace it (i.e., stopping the mingetty
6820 ;; service for TTY 1 before starting GDM).
6821 "--with-initial-vt=7"
6822
6823 ;; Use '/etc/environment' for locale settings instead of the
6824 ;; systemd-specific '/etc/locale.conf'.
6825 "--with-lang-file=/etc/environment"
6826
6827 ,(string-append "--with-udevdir="
6828 (assoc-ref %outputs "out") "/lib/udev")
6829
6830 "--localstatedir=/var"
6831 ,(string-append "--with-default-path="
6832 (string-join '("/run/setuid-programs"
6833 "/run/current-system/profile/bin"
6834 "/run/current-system/profile/sbin")
6835 ":"))
6836 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6837 ;; XDG_DATA_DIRS so that it finds its schemas.
6838 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6839 #:phases
6840 (modify-phases %standard-phases
6841 (add-before
6842 'configure 'pre-configure
6843 (lambda* (#:key inputs outputs #:allow-other-keys)
6844 ;; We don't have <systemd/sd-daemon.h>.
6845 (substitute* '("common/gdm-log.c"
6846 "daemon/gdm-server.c"
6847 "daemon/gdm-session-worker.c"
6848 "daemon/gdm-session-worker-job.c")
6849 (("#include <systemd/sd-daemon\\.h>") ""))
6850 ;; Use elogind for sd-login.
6851 (substitute* '("common/gdm-common.c"
6852 "daemon/gdm-manager.c"
6853 "libgdm/gdm-user-switching.c")
6854 (("#include <systemd/sd-login\\.h>")
6855 "#include <elogind/sd-login.h>"))
6856 ;; Check for elogind.
6857 (substitute* '("configure")
6858 (("libsystemd")
6859 "libelogind"))
6860 ;; Look for system-installed sessions in
6861 ;; /run/current-system/profile/share.
6862 (substitute* '("libgdm/gdm-sessions.c"
6863 "daemon/gdm-session.c"
6864 "daemon/gdm-display.c"
6865 "daemon/gdm-launch-environment.c")
6866 (("DATADIR \"/x")
6867 "\"/run/current-system/profile/share/x")
6868 (("DATADIR \"/wayland")
6869 "\"/run/current-system/profile/share/wayland")
6870 (("DATADIR \"/gnome")
6871 "\"/run/current-system/profile/share/gnome"))
6872 (let ((propagate '("GDM_CUSTOM_CONF"
6873 "GDM_DBUS_DAEMON"
6874 "GDM_X_SERVER"
6875 "GDM_X_SESSION"
6876 ;; XXX: Remove this once GNOME Shell is
6877 ;; a dependency of GDM.
6878 "XDG_DATA_DIRS")))
6879 (substitute* "daemon/gdm-session.c"
6880 (("set_up_session_environment \\(self\\);")
6881 (apply string-append
6882 "set_up_session_environment (self);\n"
6883 (map (lambda (name)
6884 (string-append
6885 "gdm_session_set_environment_variable "
6886 "(self, \"" name "\","
6887 "g_getenv (\"" name "\"));\n"))
6888 propagate)))))
6889 ;; Find the configuration file using an environment variable.
6890 (substitute* '("common/gdm-settings.c")
6891 (("GDM_CUSTOM_CONF")
6892 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6893 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6894 " : GDM_CUSTOM_CONF)")))
6895 ;; Use service-supplied path to X.
6896 (substitute* '("daemon/gdm-server.c")
6897 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6898 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6899 (substitute* '("daemon/gdm-x-session.c")
6900 (("\"dbus-daemon\"")
6901 "g_getenv (\"GDM_DBUS_DAEMON\")")
6902 (("X_SERVER")
6903 "g_getenv (\"GDM_X_SERVER\")")
6904 (("GDMCONFDIR \"/Xsession\"")
6905 "g_getenv (\"GDM_X_SESSION\")"))
6906 ;; Use an absolute path for GNOME Session.
6907 (substitute* "daemon/gdm-launch-environment.c"
6908 (("\"gnome-session\"")
6909 (string-append "\"" (assoc-ref inputs "gnome-session")
6910 "/bin/gnome-session\"")))
6911 ;; Do not automatically select the placeholder session.
6912 (substitute* "daemon/gdm-session.c"
6913 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6914 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6915 "(g_strcmp0(search_dirs[i], \""
6916 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6917 "\") == 0 && "
6918 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6919 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
6920 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
6921 #t))
6922 ;; GDM requires that there be at least one desktop entry
6923 ;; file. This phase installs a hidden one that simply
6924 ;; fails. This enables users to use GDM with a
6925 ;; '~/.xsession' script with no other desktop entry files.
6926 ;; See <https://bugs.gnu.org/35068>.
6927 (add-after 'install 'install-placeholder-desktop-entry
6928 (lambda* (#:key inputs outputs #:allow-other-keys)
6929 (let* ((out (assoc-ref outputs "out"))
6930 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6931 (fail (string-append sessions "/fail.desktop")))
6932 (mkdir-p sessions)
6933 (with-output-to-file fail
6934 (lambda ()
6935 (for-each
6936 display
6937 '("[Desktop Entry]\n"
6938 "Encoding=UTF-8\n"
6939 "Type=Application\n"
6940 "Name=Fail\n"
6941 "Comment=This session fails immediately.\n"
6942 "NoDisplay=true\n"
6943 "Exec=false\n"))))
6944 #t)))
6945 ;; GDM needs GNOME Session to run these applications. We link
6946 ;; their autostart files in `share/gdm/greeter/autostart'
6947 ;; because GDM explicitly tells GNOME Session to look there.
6948 ;;
6949 ;; XXX: GNOME Shell should be linked here too, but currently
6950 ;; GNOME Shell depends on GDM.
6951 (add-after 'install 'link-autostart-files
6952 (lambda* (#:key inputs outputs #:allow-other-keys)
6953 (let* ((out (assoc-ref outputs "out"))
6954 (autostart (string-append out "/share/gdm/"
6955 "greeter/autostart"))
6956 (settings (assoc-ref inputs "gnome-settings-daemon")))
6957 (mkdir-p autostart)
6958 (with-directory-excursion autostart
6959 (for-each (lambda (desktop)
6960 (symlink desktop (basename desktop)))
6961 (find-files (string-append settings "/etc/xdg"))))
6962 #t))))))
6963 (native-inputs
6964 `(("dconf" ,dconf)
6965 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6966 ("gobject-introspection" ,gobject-introspection)
6967 ("intltool" ,intltool)
6968 ("itstool" ,itstool)
6969 ("pkg-config" ,pkg-config)
6970 ("xmllint" ,libxml2)))
6971 (inputs
6972 `(("accountsservice" ,accountsservice)
6973 ("check" ,check) ; for testing
6974 ("elogind" ,elogind)
6975 ("gnome-session" ,gnome-session)
6976 ("gnome-settings-daemon" ,gnome-settings-daemon)
6977 ("gtk+" ,gtk+)
6978 ("iso-codes" ,iso-codes)
6979 ("libcanberra" ,libcanberra)
6980 ("linux-pam" ,linux-pam)))
6981 (synopsis "Display manager for GNOME")
6982 (home-page "https://wiki.gnome.org/Projects/GDM/")
6983 (description
6984 "GNOME Display Manager is a system service that is responsible for
6985 providing graphical log-ins and managing local and remote displays.")
6986 (license license:gpl2+)))
6987
6988 (define-public libgtop
6989 (package
6990 (name "libgtop")
6991 (version "2.40.0")
6992 (source (origin
6993 (method url-fetch)
6994 (uri (string-append "mirror://gnome/sources/libgtop/"
6995 (version-major+minor version) "/"
6996 "libgtop-" version ".tar.xz"))
6997 (sha256
6998 (base32
6999 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7000 (build-system gnu-build-system)
7001 (native-inputs
7002 `(("gobject-introspection" ,gobject-introspection)
7003 ("intltool" ,intltool)
7004 ("perl" ,perl)
7005 ("pkg-config" ,pkg-config)))
7006 (propagated-inputs
7007 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7008 (synopsis "Portable system access library")
7009 (home-page "https://www.gnome.org/")
7010 (description
7011 "LibGTop is a library to get system specific data such as CPU and memory
7012 usage and information about running processes.")
7013 (license license:gpl2+)))
7014
7015 (define-public gnome-bluetooth
7016 (package
7017 (name "gnome-bluetooth")
7018 (version "3.32.1")
7019 (source (origin
7020 (method url-fetch)
7021 (uri (string-append "mirror://gnome/sources/" name "/"
7022 (version-major+minor version) "/"
7023 name "-" version ".tar.xz"))
7024 (sha256
7025 (base32
7026 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
7027 (build-system meson-build-system)
7028 (native-inputs
7029 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7030 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7031 ("gobject-introspection" ,gobject-introspection)
7032 ("intltool" ,intltool)
7033 ("pkg-config" ,pkg-config)
7034 ("xmllint" ,libxml2)))
7035 (propagated-inputs
7036 ;; gnome-bluetooth-1.0.pc refers to all these.
7037 `(("glib" ,glib)
7038 ("gtk+" ,gtk+)))
7039 (inputs
7040 `(("eudev" ,eudev)
7041 ("libcanberra" ,libcanberra)
7042 ("libnotify" ,libnotify)))
7043 (synopsis "GNOME Bluetooth subsystem")
7044 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7045 (description
7046 "This package contains tools for managing and manipulating Bluetooth
7047 devices using the GNOME desktop.")
7048 (license license:lgpl2.1+)))
7049
7050 (define-public gnome-control-center
7051 (package
7052 (name "gnome-control-center")
7053 (version "3.32.2")
7054 (source (origin
7055 (method url-fetch)
7056 (uri (string-append "mirror://gnome/sources/" name "/"
7057 (version-major+minor version) "/"
7058 name "-" version ".tar.xz"))
7059 (sha256
7060 (base32
7061 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
7062 (build-system meson-build-system)
7063 (arguments
7064 '(#:glib-or-gtk? #t
7065 #:configure-flags
7066 (list "-Dcheese=false"
7067 (string-append "-Dgnome_session_libexecdir="
7068 (assoc-ref %build-inputs "gnome-session")
7069 "/libexec"))
7070 #:phases
7071 (modify-phases %standard-phases
7072 (add-before 'configure 'patch-paths
7073 (lambda* (#:key inputs #:allow-other-keys)
7074 (let ((libc (assoc-ref inputs "libc"))
7075 (tzdata (assoc-ref inputs "tzdata"))
7076 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7077 (nm-applet (assoc-ref inputs "network-manager-applet"))
7078 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7079 (substitute* "panels/datetime/tz.h"
7080 (("/usr/share/zoneinfo/zone.tab")
7081 (string-append tzdata "/share/zoneinfo/zone.tab")))
7082 (substitute* "tests/datetime/test-endianess.c"
7083 (("/usr/share/locale")
7084 (string-append libc "/share/locale")))
7085 (substitute* "panels/region/cc-region-panel.c"
7086 (("\"gkbd-keyboard-display")
7087 (string-append "\"" libgnomekbd
7088 "/bin/gkbd-keyboard-display")))
7089 (substitute* '("panels/network/net-device-wifi.c"
7090 "panels/network/net-device.c"
7091 "panels/network/connection-editor/net-connection-editor.c")
7092 (("\"nm-connection-editor")
7093 (string-append "\"" nm-applet
7094 "/bin/nm-connection-editor")))
7095 (substitute* '("panels/user-accounts/run-passwd.c")
7096 (("/usr/bin/passwd")
7097 "/run/setuid-programs/passwd"))
7098 (substitute* "panels/info/cc-info-overview-panel.c"
7099 (("DATADIR \"/gnome/gnome-version.xml\"")
7100 (string-append "\"" gnome-desktop
7101 "/share/gnome/gnome-version.xml\"")))
7102 #t))))))
7103 (native-inputs
7104 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7105 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7106 ("intltool" ,intltool)
7107 ("pkg-config" ,pkg-config)
7108 ("xsltproc" ,libxslt)
7109 ;; For tests
7110 ("hicolor-icon-theme" ,hicolor-icon-theme)
7111 ("python-dbusmock" ,python-dbusmock)
7112 ("xorg-server" ,xorg-server-for-tests)))
7113 (inputs
7114 `(("accountsservice" ,accountsservice)
7115 ("clutter-gtk" ,clutter-gtk)
7116 ("colord-gtk" ,colord-gtk)
7117 ("cups" ,cups)
7118 ("dconf" ,dconf)
7119 ("docbook-xsl" ,docbook-xsl)
7120 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7121 ("gnome-bluetooth" ,gnome-bluetooth)
7122 ("gnome-desktop" ,gnome-desktop)
7123 ("gnome-online-accounts" ,gnome-online-accounts)
7124 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7125 ("gnome-session" ,gnome-session)
7126 ("gnome-settings-daemon" ,gnome-settings-daemon)
7127 ("grilo" ,grilo)
7128 ("gsound" ,gsound)
7129 ("ibus" ,ibus)
7130 ("libcanberra" ,libcanberra)
7131 ("libgnomekbd" ,libgnomekbd)
7132 ("libgudev" ,libgudev)
7133 ("libgtop" ,libgtop)
7134 ("libpwquality" ,libpwquality)
7135 ("libsecret" ,libsecret)
7136 ("libsoup" ,libsoup)
7137 ("libxml2" ,libxml2)
7138 ("libwacom" ,libwacom)
7139 ("mesa" ,mesa)
7140 ("mit-krb5" ,mit-krb5)
7141 ("modem-manager" ,modem-manager)
7142 ("network-manager-applet" ,network-manager-applet)
7143 ("polkit" ,polkit)
7144 ("pulseaudio" ,pulseaudio)
7145 ("smbclient" ,samba)
7146 ("tzdata" ,tzdata)
7147 ("udisks" ,udisks)
7148 ("upower" ,upower)))
7149 (synopsis "Utilities to configure the GNOME desktop")
7150 (home-page "https://www.gnome.org/")
7151 (description
7152 "This package contains configuration applets for the GNOME desktop,
7153 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7154 properties, sound setup, desktop theme and background, user interface
7155 properties, screen resolution, and other GNOME parameters.")
7156 (license license:gpl2+)))
7157
7158 (define-public gnome-shell
7159 (package
7160 (name "gnome-shell")
7161 (version "3.32.2")
7162 (source (origin
7163 (method url-fetch)
7164 (uri (string-append "mirror://gnome/sources/" name "/"
7165 (version-major+minor version) "/"
7166 name "-" version ".tar.xz"))
7167 (sha256
7168 (base32
7169 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
7170 (patches (search-patches "gnome-shell-theme.patch"))
7171 (modules '((guix build utils)))
7172 (snippet
7173 #~(begin
7174 ;; Copy images for use on the GDM log-in screen.
7175 (copy-file #$(file-append %artwork-repository
7176 "/slim/0.x/background.png")
7177 "data/theme/guix-background.png")
7178 (copy-file #$(file-append %artwork-repository
7179 "/logo/Guix-horizontal-white.svg")
7180 "data/theme/guix-logo.svg")
7181 #t))))
7182 (build-system meson-build-system)
7183 (arguments
7184 `(#:glib-or-gtk? #t
7185 #:disallowed-references ((,glib "bin")
7186 ,inkscape ,libxslt
7187 ,ruby-sass)
7188 #:configure-flags
7189 (list "-Dsystemd=false"
7190 ;; Otherwise, the RUNPATH will lack the final path component.
7191 (string-append "-Dc_link_args=-Wl,-rpath="
7192 (assoc-ref %outputs "out")
7193 "/lib/gnome-shell"))
7194
7195 #:modules ((guix build meson-build-system)
7196 (guix build utils)
7197 (srfi srfi-1))
7198
7199 #:phases
7200 (modify-phases %standard-phases
7201 (add-after 'unpack 'fix-keysdir
7202 (lambda* (#:key outputs #:allow-other-keys)
7203 (let* ((out (assoc-ref outputs "out"))
7204 (keysdir (string-append
7205 out "/share/gnome-control-center/keybindings")))
7206 (substitute* "meson.build"
7207 (("keysdir =.*")
7208 (string-append "keysdir = '" keysdir "'\n")))
7209 #t)))
7210 (add-before 'configure 'convert-logo-to-png
7211 (lambda* (#:key inputs #:allow-other-keys)
7212 ;; Convert the logo from SVG to PNG.
7213 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7214 "data/theme/guix-logo.svg")))
7215 (add-before 'configure 'record-absolute-file-names
7216 (lambda* (#:key inputs #:allow-other-keys)
7217 (substitute* "js/misc/ibusManager.js"
7218 (("'ibus-daemon'")
7219 (string-append "'" (assoc-ref inputs "ibus")
7220 "/bin/ibus-daemon'")))
7221 (substitute* "js/ui/status/keyboard.js"
7222 (("'gkbd-keyboard-display'")
7223 (string-append "'" (assoc-ref inputs "libgnomekbd")
7224 "/bin/gkbd-keyboard-display'")))
7225 #t))
7226 (add-before 'check 'pre-check
7227 (lambda* (#:key inputs #:allow-other-keys)
7228 ;; Tests require a running X server.
7229 (system "Xvfb :1 &")
7230 (setenv "DISPLAY" ":1")
7231 #t))
7232 (add-after 'install 'wrap-programs
7233 (lambda* (#:key inputs outputs #:allow-other-keys)
7234 (let ((out (assoc-ref outputs "out"))
7235 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7236 (python-path (getenv "PYTHONPATH")))
7237 (wrap-program (string-append out "/bin/gnome-shell")
7238 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7239 ;; FIXME: gnome-shell loads these libraries with unqualified
7240 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7241 ;; alternative might be to patch gnome-shell.
7242 `("LD_LIBRARY_PATH" ":" prefix
7243 ,(map (lambda (pkg)
7244 (string-append (assoc-ref inputs pkg) "/lib"))
7245 '("gdk-pixbuf"
7246 "gnome-bluetooth" "librsvg" "libgweather"))))
7247 (for-each
7248 (lambda (prog)
7249 (wrap-program (string-append out "/bin/" prog)
7250 `("PYTHONPATH" ":" prefix (,python-path))
7251 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7252 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7253 #t)))
7254 (replace 'glib-or-gtk-wrap
7255 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7256 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7257 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7258 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7259 ;; phase. Fix that since we don't need these.
7260 (wrap #:inputs (fold alist-delete inputs
7261 '("inkscape" "intltool" "glib:bin"))
7262 #:outputs outputs)))))))
7263 (native-inputs
7264 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7265 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7266 ("gobject-introspection" ,gobject-introspection)
7267 ("inkscape" ,inkscape)
7268 ("intltool" ,intltool)
7269 ("pkg-config" ,pkg-config)
7270 ("python" ,python)
7271 ("ruby-sass" ,ruby-sass)
7272 ("sassc" ,sassc)
7273 ("xsltproc" ,libxslt)
7274 ;; For tests
7275 ("xorg-server" ,xorg-server-for-tests)))
7276 (inputs
7277 `(("accountsservice" ,accountsservice)
7278 ("caribou" ,caribou)
7279 ("docbook-xsl" ,docbook-xsl)
7280 ("evolution-data-server" ,evolution-data-server)
7281 ("gcr" ,gcr)
7282 ("gdm" ,gdm)
7283 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7284 ("gjs" ,gjs)
7285 ("gnome-bluetooth" ,gnome-bluetooth)
7286 ("gnome-desktop" ,gnome-desktop)
7287 ("gnome-settings-daemon" ,gnome-settings-daemon)
7288 ("gst-plugins-base" ,gst-plugins-base)
7289 ("ibus" ,ibus)
7290 ("libcanberra" ,libcanberra)
7291 ("libcroco" ,libcroco)
7292 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7293 ("libgweather" ,libgweather)
7294 ("libsoup" ,libsoup)
7295 ("mesa-headers" ,mesa-headers)
7296 ("mutter" ,mutter)
7297 ("network-manager-applet" ,network-manager-applet)
7298 ("polkit" ,polkit)
7299 ("pulseaudio" ,pulseaudio)
7300 ("python-pygobject" ,python-pygobject)
7301 ("startup-notification" ,startup-notification)
7302 ("telepathy-logger" ,telepathy-logger)
7303 ("upower" ,upower)
7304 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7305 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7306 ("librsvg" ,librsvg)
7307 ("geoclue" ,geoclue)))
7308 (synopsis "Desktop shell for GNOME")
7309 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7310 (description
7311 "GNOME Shell provides core user interface functions for the GNOME desktop,
7312 like switching to windows and launching applications.")
7313 (license license:gpl2+)))
7314
7315 (define-public gtk-vnc
7316 (package
7317 (name "gtk-vnc")
7318 (version "0.9.0")
7319 (source
7320 (origin
7321 (method url-fetch)
7322 (uri (string-append "mirror://gnome/sources/" name "/"
7323 (version-major+minor version) "/"
7324 name "-" version ".tar.xz"))
7325 (sha256
7326 (base32
7327 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7328 (build-system gnu-build-system)
7329 (arguments
7330 '(#:configure-flags '("--with-gtk=3.0")))
7331 (propagated-inputs
7332 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7333 (inputs
7334 `(("cyrus-sasl" ,cyrus-sasl)
7335 ("gnutls" ,gnutls)
7336 ("libgcrypt" ,libgcrypt)
7337 ("pulseaudio" ,pulseaudio)))
7338 (native-inputs
7339 `(("glib:bin" ,glib "bin")
7340 ("gobject-introspection" ,gobject-introspection)
7341 ("intltool" ,intltool)
7342 ("pkg-config" ,pkg-config)
7343 ("python-wrapper" ,python-wrapper)
7344 ("vala" ,vala)))
7345 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7346 (synopsis "VNC viewer widget for GTK+")
7347 (description
7348 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7349 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7350 GTK-VNC implements client side RFB protocol and authentication extensions such
7351 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7352 (license license:lgpl2.1+)))
7353
7354 (define-public gnome-autoar
7355 (package
7356 (name "gnome-autoar")
7357 (version "0.2.3")
7358 (source (origin
7359 (method url-fetch)
7360 (uri (string-append "mirror://gnome/sources/" name "/"
7361 (version-major+minor version) "/"
7362 name "-" version ".tar.xz"))
7363 (sha256
7364 (base32
7365 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
7366 (build-system glib-or-gtk-build-system)
7367 (native-inputs
7368 `(("gnome-common" ,gnome-common)
7369 ("gobject-introspection" ,gobject-introspection)
7370 ("pkg-config" ,pkg-config)))
7371 (propagated-inputs
7372 `(("libarchive" ,libarchive))) ; XXX document why
7373 (inputs
7374 `(("gtk+" ,gtk+)))
7375 (synopsis "Archives integration support for GNOME")
7376 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7377 (description
7378 "GNOME Autoar is a library which makes creating and extracting archives
7379 easy, safe, and automatic.")
7380 (license license:lgpl2.1+)))
7381
7382 (define-public tracker
7383 (package
7384 (name "tracker")
7385 (version "2.2.2")
7386 (source (origin
7387 (method url-fetch)
7388 (uri (string-append "mirror://gnome/sources/tracker/"
7389 (version-major+minor version) "/"
7390 "tracker-" version ".tar.xz"))
7391 (sha256
7392 (base32
7393 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
7394 (build-system meson-build-system)
7395 (arguments
7396 `(#:glib-or-gtk? #t
7397 #:configure-flags
7398 ;; Otherwise, the RUNPATH will lack the final path component.
7399 (list (string-append "-Dc_link_args=-Wl,-rpath="
7400 (assoc-ref %outputs "out") "/lib:"
7401 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7402 #:phases
7403 (modify-phases %standard-phases
7404 (add-after 'unpack 'disable-broken-tests
7405 (lambda _
7406 ;; These fail because the SPARQL backend could not be loaded.
7407 ;; That's because /etc/machine-id is missing, but
7408 ;; DBUS_FATAL_WARNINGS does not help here.
7409 (substitute* "tests/libtracker-sparql/meson.build"
7410 (("'sparql',") ""))
7411 (substitute* "tests/tracker-steroids/meson.build"
7412 (("test\\(.*") ""))
7413 #t))
7414 ;; Two tests fail if LANG is not set.
7415 (add-before 'check 'pre-check
7416 (lambda _
7417 (setenv "LANG" "en_US.UTF-8")
7418 ;; For the missing /etc/machine-id.
7419 (setenv "DBUS_FATAL_WARNINGS" "0")
7420 #t)))))
7421 (native-inputs
7422 `(("glib:bin" ,glib "bin")
7423 ("gnome-common" ,gnome-common)
7424 ("gobject-introspection" ,gobject-introspection)
7425 ("python-pygobject" ,python-pygobject)
7426 ("intltool" ,intltool)
7427 ("pkg-config" ,pkg-config)
7428 ("vala" ,vala)))
7429 (inputs
7430 `(("gtk+" ,gtk+)
7431 ("dbus" ,dbus)
7432 ("sqlite" ,sqlite)
7433 ("python" ,python)
7434 ("poppler" ,poppler)
7435 ("libpng" ,libpng)
7436 ("libtiff" ,libtiff)
7437 ("zlib" ,zlib)
7438 ("libxml2" ,libxml2)
7439 ("libunistring" ,libunistring)
7440 ("json-glib" ,json-glib)
7441 ("openjpeg" ,openjpeg-1)
7442 ("libseccomp" ,libseccomp)
7443 ("libsoup" ,libsoup)
7444 ("libuuid" ,util-linux)
7445 ("network-manager" ,network-manager)))
7446 (synopsis "Metadata database, indexer and search tool")
7447 (home-page "https://wiki.gnome.org/Projects/Tracker")
7448 (description
7449 "Tracker is an advanced framework for first class objects with associated
7450 metadata and tags. It provides a one stop solution for all metadata, tags,
7451 shared object databases, search tools and indexing.")
7452 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7453 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7454 (license (list license:gpl2+
7455 license:lgpl2.1+
7456 license:lgpl2.0+))))
7457
7458 (define-public tracker-miners
7459 (package
7460 (name "tracker-miners")
7461 (version "2.2.2")
7462 (source (origin
7463 (method url-fetch)
7464 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7465 (version-major+minor version)
7466 "/tracker-miners-" version ".tar.xz"))
7467 (sha256
7468 (base32
7469 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
7470 (build-system meson-build-system)
7471 (arguments
7472 `(#:glib-or-gtk? #t
7473 #:configure-flags
7474 (list "-Dminer_rss=false" ; libgrss is required.
7475 ;; Ensure the RUNPATH contains all installed library locations.
7476 (string-append "-Dc_link_args=-Wl,-rpath="
7477 (assoc-ref %outputs "out")
7478 "/lib/tracker-miners-2.0")
7479 ;; TODO: Enable functional tests. Currently, the following error
7480 ;; appears:
7481 ;; Exception: The functional tests require DConf to be the default
7482 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7483 "-Dfunctional_tests=false")))
7484 (native-inputs
7485 `(("dbus" ,dbus)
7486 ("intltool" ,intltool)
7487 ("glib:bin" ,glib "bin")
7488 ("gobject-introspection" ,gobject-introspection)
7489 ("pkg-config" ,pkg-config)
7490 ("python-pygobject" ,python-pygobject)))
7491 (inputs
7492 `(("exempi" ,exempi)
7493 ("ffmpeg" ,ffmpeg)
7494 ("flac" ,flac)
7495 ("giflib" ,giflib)
7496 ("glib" ,glib)
7497 ("gstreamer" ,gstreamer)
7498 ("icu4c" ,icu4c)
7499 ("libcue" ,libcue)
7500 ("libexif" ,libexif)
7501 ("libgsf" ,libgsf)
7502 ("libgxps" ,libgxps)
7503 ("libiptcdata" ,libiptcdata)
7504 ("libjpeg" ,libjpeg)
7505 ("libosinfo" ,libosinfo)
7506 ("libpng" ,libpng)
7507 ("libseccomp" ,libseccomp)
7508 ("libtiff" ,libtiff)
7509 ("libvorbis" ,libvorbis)
7510 ("libxml2" ,libxml2)
7511 ("poppler" ,poppler)
7512 ("taglib" ,taglib)
7513 ("totem-pl-parser" ,totem-pl-parser)
7514 ("tracker" ,tracker)
7515 ("upower" ,upower)
7516 ("zlib" ,zlib)))
7517 (synopsis "Metadata database, indexer and search tool")
7518 (home-page "https://wiki.gnome.org/Projects/Tracker")
7519 (description
7520 "Tracker is an advanced framework for first class objects with associated
7521 metadata and tags. It provides a one stop solution for all metadata, tags,
7522 shared object databases, search tools and indexing.")
7523 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7524 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7525 (license (list license:gpl2+
7526 license:lgpl2.1+
7527 license:lgpl2.0+))))
7528
7529 (define-public nautilus
7530 (package
7531 (name "nautilus")
7532 (version "3.32.3")
7533 (source (origin
7534 (method url-fetch)
7535 (uri (string-append "mirror://gnome/sources/" name "/"
7536 (version-major+minor version) "/"
7537 name "-" version ".tar.xz"))
7538 (sha256
7539 (base32
7540 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
7541 (build-system meson-build-system)
7542 (arguments
7543 '(#:glib-or-gtk? #t
7544 ;; XXX: FAIL: check-nautilus
7545 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7546 #:tests? #f))
7547 (native-inputs
7548 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7549 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7550 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7551 ("gobject-introspection" ,gobject-introspection)
7552 ("intltool" ,intltool)
7553 ("pkg-config" ,pkg-config)))
7554 (inputs
7555 `(("dconf" ,dconf)
7556 ("gexiv2" ,gexiv2)
7557 ("gvfs" ,gvfs)
7558 ("exempi" ,exempi)
7559 ("gnome-desktop" ,gnome-desktop)
7560 ("gnome-autoar" ,gnome-autoar)
7561 ("gst-plugins-base" ,gst-plugins-base)
7562 ("libseccomp" ,libseccomp)
7563 ("libselinux" ,libselinux)
7564 ("tracker" ,tracker)
7565 ("tracker-miners" ,tracker-miners)
7566 ;; XXX: gtk+ is required by libnautilus-extension.pc
7567 ;;
7568 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7569 ;; package. See:
7570 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7571 ("gtk+" ,gtk+)
7572 ("libexif" ,libexif)
7573 ("libxml2" ,libxml2)))
7574 (synopsis "File manager for GNOME")
7575 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7576 (description
7577 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7578 design and behaviour, giving the user a simple way to navigate and manage its
7579 files.")
7580 (license license:gpl2+)))
7581
7582 (define-public baobab
7583 (package
7584 (name "baobab")
7585 (version "3.32.0")
7586 (source (origin
7587 (method url-fetch)
7588 (uri (string-append
7589 "mirror://gnome/sources/" name "/"
7590 (version-major+minor version) "/"
7591 name "-" version ".tar.xz"))
7592 (sha256
7593 (base32
7594 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7595 (build-system meson-build-system)
7596 (arguments
7597 '(#:glib-or-gtk? #t))
7598 (native-inputs
7599 `(("intltool" ,intltool)
7600 ("pkg-config" ,pkg-config)
7601 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7602 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7603 ("itstool" ,itstool)
7604 ("xmllint" ,libxml2)
7605 ("glib" ,glib "bin")
7606 ("vala" ,vala)))
7607 (inputs
7608 `(("gtk+" ,gtk+)))
7609 (synopsis "Disk usage analyzer for GNOME")
7610 (description
7611 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7612 usage in the GNOME desktop environment. It can easily scan device volumes or
7613 a specific user-requested directory branch (local or remote). Once the scan
7614 is complete it provides a graphical representation of each selected folder.")
7615 (home-page "https://wiki.gnome.org/Apps/Baobab")
7616 (license license:gpl2+)))
7617
7618 (define-public gnome-backgrounds
7619 (package
7620 (name "gnome-backgrounds")
7621 (version "3.32.0")
7622 (source
7623 (origin
7624 (method url-fetch)
7625 (uri (string-append "mirror://gnome/sources/" name "/"
7626 (version-major+minor version) "/"
7627 name "-" version ".tar.xz"))
7628 (sha256
7629 (base32
7630 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
7631 (build-system meson-build-system)
7632 (native-inputs
7633 `(("intltool" ,intltool)))
7634 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7635 (synopsis "Background images for the GNOME desktop")
7636 (description
7637 "GNOME backgrounds package contains a collection of graphics files which
7638 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7639 the package creates the proper framework and directory structure so that you
7640 can add your own files to the collection.")
7641 (license (list license:gpl2+
7642 license:cc-by2.0
7643 license:cc-by-sa2.0
7644 license:cc-by-sa3.0))))
7645
7646 (define-public gnome-screenshot
7647 (package
7648 (name "gnome-screenshot")
7649 (version "3.32.0")
7650 (source
7651 (origin
7652 (method url-fetch)
7653 (uri (string-append "mirror://gnome/sources/" name "/"
7654 (version-major+minor version) "/"
7655 name "-" version ".tar.xz"))
7656 (sha256
7657 (base32
7658 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
7659 (build-system meson-build-system)
7660 (native-inputs
7661 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7662 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7663 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7664 ("intltool" ,intltool)
7665 ("appstream-glib" ,appstream-glib)
7666 ("pkg-config" ,pkg-config)))
7667 (inputs
7668 `(("gtk+" ,gtk+)
7669 ("libcanberra" ,libcanberra)
7670 ("libx11" ,libx11)
7671 ("libxext" ,libxext)))
7672 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7673 (synopsis "Take pictures of your screen")
7674 (description
7675 "GNOME Screenshot is a utility used for taking screenshots of the entire
7676 screen, a window or a user defined area of the screen, with optional
7677 beautifying border effects.")
7678 (license license:gpl2+)))
7679
7680 (define-public dconf-editor
7681 (package
7682 (name "dconf-editor")
7683 (version "3.32.0")
7684 (source
7685 (origin
7686 (method url-fetch)
7687 (uri (string-append "mirror://gnome/sources/" name "/"
7688 (version-major+minor version) "/"
7689 name "-" version ".tar.xz"))
7690 (sha256
7691 (base32
7692 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
7693 (build-system meson-build-system)
7694 (arguments
7695 '(#:phases (modify-phases %standard-phases
7696 (add-before 'configure 'set-glib-minimum-version
7697 (lambda _
7698 ;; Change the minimum required GLib version so that
7699 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7700 ;; do that, it complains that "55" is not an even
7701 ;; number. See <https://bugs.gnu.org/37503>.
7702 (substitute* "editor/meson.build"
7703 (("2\\.55\\.1") "2.60.0"))
7704 #t)))))
7705 (native-inputs
7706 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7707 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7708 ("intltool" ,intltool)
7709 ("pkg-config" ,pkg-config)
7710 ("vala" ,vala)))
7711 (inputs
7712 `(("dconf" ,dconf)
7713 ("gtk+" ,gtk+)
7714 ("libxml2" ,libxml2)))
7715 (home-page "https://git.gnome.org/browse/dconf-editor")
7716 (synopsis "Graphical editor for GNOME's dconf configuration system")
7717 (description
7718 "Dconf-editor is a graphical tool for browsing and editing the dconf
7719 configuration system for GNOME. It allows users to configure desktop
7720 software that do not provide their own configuration interface.")
7721 (license license:lgpl2.1+)))
7722
7723 (define-public gnome-default-applications
7724 (package
7725 (name "gnome-default-applications")
7726 (version "0")
7727 (build-system trivial-build-system)
7728 (source #f)
7729 (propagated-inputs
7730 `(("nautilus" ,nautilus)
7731 ("evince" ,evince)))
7732 (arguments
7733 `(#:modules ((guix build utils))
7734 #:builder
7735 (begin
7736 (use-modules (guix build utils))
7737 (let* ((out (assoc-ref %outputs "out"))
7738 (apps (string-append out "/share/applications")))
7739 (mkdir-p apps)
7740 (call-with-output-file (string-append apps "/defaults.list")
7741 (lambda (port)
7742 (format port "[Default Applications]\n")
7743 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7744 (format port "application/pdf=evince.desktop\n")
7745 (format port "application/postscript=evince.desktop\n")))
7746 #t))))
7747 (synopsis "Default MIME type associations for the GNOME desktop")
7748 (description
7749 "Given many installed packages which might handle a given MIME type, a
7750 user running the GNOME desktop probably has some preferences: for example,
7751 that folders be opened by default by the Nautilus file manager, not the Baobab
7752 disk usage analyzer. This package establishes that set of default MIME type
7753 associations for GNOME.")
7754 (license license:gpl3+)
7755 (home-page #f)))
7756
7757 (define-public libgovirt
7758 (package
7759 (name "libgovirt")
7760 (version "0.3.6")
7761 (source (origin
7762 (method url-fetch)
7763 (uri (string-append "mirror://gnome/sources/" name "/"
7764 (version-major+minor version) "/"
7765 name "-" version ".tar.xz"))
7766 (sha256
7767 (base32
7768 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7769 (build-system glib-or-gtk-build-system)
7770 (native-inputs
7771 `(("gettext" ,gettext-minimal)
7772 ("glib:bin" ,glib "bin")
7773 ("gobject-introspection" ,gobject-introspection)
7774 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7775 ("gtk+:bin" ,gtk+ "bin")
7776 ("pkg-config" ,pkg-config)))
7777 (inputs
7778 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7779 ("librest" ,rest)))
7780 (synopsis "GoVirt Library")
7781 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7782 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7783 (license license:gpl2+)))
7784
7785 (define-public gnome-weather
7786 (package
7787 (name "gnome-weather")
7788 (version "3.34.0")
7789 (source (origin
7790 (method url-fetch)
7791 (uri (string-append "mirror://gnome/sources/" name "/"
7792 (version-major+minor version) "/"
7793 name "-" version ".tar.xz"))
7794 (sha256
7795 (base32
7796 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7797 (build-system meson-build-system)
7798 (native-inputs
7799 `(("gettext" ,gettext-minimal)
7800 ("glib:bin" ,glib "bin")
7801 ("gobject-introspection" ,gobject-introspection)
7802 ("gtk+:bin" ,gtk+ "bin")
7803 ("pkg-config" ,pkg-config)))
7804 (inputs
7805 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7806 ("appstream-glib" ,appstream-glib)
7807 ("geoclue" ,geoclue)
7808 ("gdk-pixbuf" ,gdk-pixbuf)
7809 ("gjs" ,gjs)
7810 ("gnome-desktop" ,gnome-desktop)
7811 ("libgweather" ,libgweather)))
7812 (synopsis "Weather monitoring for GNOME desktop")
7813 (description "GNOME Weather is a small application that allows you to
7814 monitor the current weather conditions for your city, or anywhere in the
7815 world.")
7816 (home-page "https://wiki.gnome.org/Apps/Weather")
7817 (license license:gpl2+)))
7818
7819 (define-public gnome
7820 (package
7821 (name "gnome")
7822 (version (package-version gnome-shell))
7823 (source #f)
7824 (build-system trivial-build-system)
7825 (arguments '(#:builder (begin (mkdir %output) #t)))
7826 (propagated-inputs
7827 ;; TODO: Add or remove packages according to:
7828 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7829 `(
7830 ;; GNOME-Core-OS-Services
7831 ("accountsservice" ,accountsservice)
7832 ("network-manager" ,network-manager)
7833 ("packagekit" ,packagekit)
7834 ("upower" ,upower)
7835 ;; GNOME-Core-Shell
7836 ("adwaita-icon-theme" ,adwaita-icon-theme)
7837 ("gdm" ,gdm)
7838 ("glib-networking" ,glib-networking)
7839 ("gnome-backgrounds" ,gnome-backgrounds)
7840 ("gnome-bluetooth" ,gnome-bluetooth)
7841 ("gnome-control-center" ,gnome-control-center)
7842 ("gnome-desktop" ,gnome-desktop)
7843 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7844 ("gnome-keyring" ,gnome-keyring)
7845 ("gnome-menus" ,gnome-menus)
7846 ("gnome-session" ,gnome-session)
7847 ("gnome-settings-daemon" ,gnome-settings-daemon)
7848 ("gnome-shell-extensions" ,gnome-shell-extensions)
7849 ("gnome-shell" ,gnome-shell)
7850 ("gnome-themes-extra" ,gnome-themes-extra)
7851 ("gnome-user-docs" ,gnome-user-docs)
7852 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7853 ("gvfs" ,gvfs)
7854 ("mutter" ,mutter)
7855 ("orca" ,orca)
7856 ;; GNOME-Core-Utilities
7857 ("baobab" ,baobab)
7858 ("cheese" ,cheese)
7859 ("eog" ,eog)
7860 ("epiphany" ,epiphany)
7861 ("evince" ,evince)
7862 ("file-roller" ,file-roller)
7863 ("gedit" ,gedit)
7864 ("gnome-calculator" ,gnome-calculator)
7865 ("gnome-calendar" ,gnome-calendar)
7866 ("gnome-characters" ,gnome-characters)
7867 ("gnome-clocks" ,gnome-clocks)
7868 ("gnome-contacts" ,gnome-contacts)
7869 ("gnome-disk-utility" ,gnome-disk-utility)
7870 ("gnome-font-viewer" ,gnome-font-viewer)
7871 ("gnome-maps" ,gnome-maps)
7872 ("gnome-screenshot" ,gnome-screenshot)
7873 ("gnome-system-monitor" ,gnome-system-monitor)
7874 ("gnome-terminal" ,gnome-terminal)
7875 ("nautilus" ,nautilus)
7876 ("simple-scan" ,simple-scan)
7877 ("totem" ,totem)
7878 ("yelp" ,yelp)
7879 ;; Others
7880 ("hicolor-icon-theme" ,hicolor-icon-theme)
7881 ("gnome-online-accounts" ,gnome-online-accounts)))
7882 (synopsis "The GNU desktop environment")
7883 (home-page "https://www.gnome.org/")
7884 (description
7885 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7886 applications for browsing the web, editing text and images, creating
7887 documents and diagrams, playing media, scanning, and much more.")
7888 (license license:gpl2+)))
7889
7890 (define-public byzanz
7891 ;; The last stable release of Byzanz was in 2011, but there have been many
7892 ;; useful commits made to the Byzanz repository since then that it would be
7893 ;; silly to use such an old release.
7894 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7895 (package
7896 (name "byzanz")
7897 (version (string-append "0.2-1." (string-take commit 7)))
7898 (source (origin
7899 (method git-fetch)
7900 (uri (git-reference
7901 (url "https://git.gnome.org/browse/byzanz")
7902 (commit commit)))
7903 (file-name (string-append name "-" version "-checkout"))
7904 (sha256
7905 (base32
7906 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7907 (build-system glib-or-gtk-build-system)
7908 (arguments
7909 '(#:phases
7910 (modify-phases %standard-phases
7911 (replace 'bootstrap
7912 (lambda _
7913 ;; The build system cleverly detects that we're not building from
7914 ;; a release tarball and turns on -Werror for GCC.
7915 ;; Unsurprisingly, there is a warning during compilation that
7916 ;; causes the build to fail unnecessarily, so we remove the flag.
7917 (substitute* '("configure.ac")
7918 (("-Werror") ""))
7919 ;; The autogen.sh script in gnome-common will run ./configure
7920 ;; by default, which is problematic because source shebangs
7921 ;; have not yet been patched.
7922 (setenv "NOCONFIGURE" "t")
7923 (zero? (system* "sh" "autogen.sh")))))))
7924 (native-inputs
7925 `(("autoconf" ,autoconf)
7926 ("automake" ,automake)
7927 ("gnome-common" ,gnome-common)
7928 ("intltool" ,intltool)
7929 ("libtool" ,libtool)
7930 ("pkg-config" ,pkg-config)
7931 ("which" ,which)))
7932 (inputs
7933 `(("glib" ,glib)
7934 ("gstreamer" ,gstreamer)
7935 ("gst-plugins-base" ,gst-plugins-base)
7936 ("gtk+" ,gtk+)))
7937 (synopsis "Desktop recording program")
7938 (description "Byzanz is a simple desktop recording program with a
7939 command-line interface. It can record part or all of an X display for a
7940 specified duration and save it as a GIF encoded animated image file.")
7941 (home-page "https://git.gnome.org/browse/byzanz")
7942 (license license:gpl2+))))
7943
7944 (define-public gsound
7945 (package
7946 (name "gsound")
7947 (version "1.0.2")
7948 (source (origin
7949 (method url-fetch)
7950 (uri (string-append "mirror://gnome/sources/" name "/"
7951 (version-major+minor version) "/"
7952 name "-" version ".tar.xz"))
7953 (sha256
7954 (base32
7955 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7956 (build-system glib-or-gtk-build-system)
7957 (native-inputs
7958 `(("pkg-config" ,pkg-config)
7959 ("gobject-introspection" ,gobject-introspection)
7960 ("vala" ,vala)))
7961 (inputs
7962 `(("glib" ,glib)
7963 ("libcanberra" ,libcanberra)))
7964 (home-page "https://wiki.gnome.org/Projects/GSound")
7965 (synopsis "GObject wrapper for libcanberra")
7966 (description
7967 "GSound is a small library for playing system sounds. It's designed to be
7968 used via GObject Introspection, and is a thin wrapper around the libcanberra C
7969 library.")
7970 (license license:lgpl2.1+)))
7971
7972 (define-public libzapojit
7973 (package
7974 (name "libzapojit")
7975 (version "0.0.3")
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 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7984 (build-system gnu-build-system)
7985 (native-inputs
7986 `(("gobject-introspection" ,gobject-introspection)
7987 ("intltool" ,intltool)
7988 ("pkg-config" ,pkg-config)))
7989 (inputs
7990 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7991 ("json-glib" ,json-glib)
7992 ("rest" ,rest)))
7993 (home-page "https://wiki.gnome.org/Projects/Zapojit")
7994 (synopsis "Library for accessing SkyDrive and Hotmail")
7995 (description
7996 "Libzapojit is a GLib-based library for accessing online service APIs of
7997 Microsoft SkyDrive and Hotmail, using their REST protocols.")
7998 (license license:lgpl2.1+)))
7999
8000 (define-public gnome-clocks
8001 (package
8002 (name "gnome-clocks")
8003 (version "3.32.0")
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 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
8012 (build-system meson-build-system)
8013 (arguments
8014 '(#:glib-or-gtk? #t))
8015 (native-inputs
8016 `(("vala" ,vala)
8017 ("pkg-config" ,pkg-config)
8018 ("glib" ,glib "bin") ; for glib-compile-resources
8019 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8020 ("desktop-file-utils" ,desktop-file-utils)
8021 ("gettext" ,gettext-minimal)
8022 ("itstool" ,itstool)))
8023 (inputs
8024 `(("glib" ,glib)
8025 ("gtk+" ,gtk+)
8026 ("gsound" ,gsound)
8027 ("geoclue" ,geoclue)
8028 ("geocode-glib" ,geocode-glib)
8029 ("libgweather" ,libgweather)
8030 ("gnome-desktop" ,gnome-desktop)))
8031 (home-page "https://wiki.gnome.org/Apps/Clocks")
8032 (synopsis "GNOME's clock application")
8033 (description
8034 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8035 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8036 (license license:gpl3+)))
8037
8038 (define-public gnome-calendar
8039 (package
8040 (name "gnome-calendar")
8041 (version "3.32.2")
8042 (source (origin
8043 (method url-fetch)
8044 (uri (string-append "mirror://gnome/sources/" name "/"
8045 (version-major+minor version) "/"
8046 name "-" version ".tar.xz"))
8047 (sha256
8048 (base32
8049 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
8050 (build-system meson-build-system)
8051 (arguments
8052 '(#:glib-or-gtk? #t
8053 ;; gnome-calendar has to be installed before the tests can be run
8054 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8055 #:tests? #f))
8056 (native-inputs
8057 `(("gettext" ,gettext-minimal)
8058 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8059 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8060 ("pkg-config" ,pkg-config)))
8061 (inputs
8062 `(("evolution-data-server" ,evolution-data-server)
8063 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8064 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8065 ("libdazzle" ,libdazzle)
8066 ("libedataserverui" ,evolution-data-server)
8067 ("libgweather" ,libgweather)
8068 ("geoclue" ,geoclue)))
8069 (home-page "https://wiki.gnome.org/Apps/Calendar")
8070 (synopsis "GNOME's calendar application")
8071 (description
8072 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8073 desktop. It supports multiple calendars, month, week and year view.")
8074 (license license:gpl3+)))
8075
8076 (define-public gnome-todo
8077 (package
8078 (name "gnome-todo")
8079 (version "3.28.1")
8080 (source (origin
8081 (method url-fetch)
8082 (uri (string-append "mirror://gnome/sources/" name "/"
8083 (version-major+minor version) "/"
8084 name "-" version ".tar.xz"))
8085 (sha256
8086 (base32
8087 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
8088 (build-system meson-build-system)
8089 (arguments
8090 '(#:glib-or-gtk? #t
8091 #:phases (modify-phases %standard-phases
8092 (add-after
8093 'install 'wrap-gnome-todo
8094 (lambda* (#:key inputs outputs #:allow-other-keys)
8095 (let ((out (assoc-ref outputs "out"))
8096 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8097 (python-path (getenv "PYTHONPATH")))
8098 (wrap-program (string-append out "/bin/gnome-todo")
8099 ;; XXX: gi plugins are broken.
8100 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8101 ;; For plugins.
8102 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8103 `("PYTHONPATH" ":" prefix (,python-path))))
8104 #t)))))
8105 (native-inputs
8106 `(("gettext" ,gettext-minimal)
8107 ("gobject-introspection" ,gobject-introspection)
8108 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8109 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8110 ("pkg-config" ,pkg-config)))
8111 (inputs
8112 `(("rest" ,rest) ; For Todoist plugin
8113 ("json-glib" ,json-glib) ; For Todoist plugin
8114 ("libedataserverui" ,evolution-data-server)
8115 ("libical" ,libical)
8116 ("libpeas" ,libpeas)
8117 ("python-pygobject" ,python-pygobject)
8118 ("evolution-data-server" ,evolution-data-server)
8119 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8120 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8121 (home-page "https://wiki.gnome.org/Apps/Todo")
8122 (synopsis "GNOME's ToDo Application")
8123 (description
8124 "GNOME To Do is a simplistic personal task manager designed to perfectly
8125 fit the GNOME desktop.")
8126 (license license:gpl3+)))
8127
8128 (define-public gnome-dictionary
8129 (package
8130 (name "gnome-dictionary")
8131 (version "3.26.1")
8132 (source (origin
8133 (method url-fetch)
8134 (uri (string-append "mirror://gnome/sources/" name "/"
8135 (version-major+minor version) "/"
8136 name "-" version ".tar.xz"))
8137 (sha256
8138 (base32
8139 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8140 (build-system meson-build-system)
8141 (arguments '(#:glib-or-gtk? #t
8142 #:phases (modify-phases %standard-phases
8143 (add-after 'unpack 'patch-install-script
8144 (lambda _
8145 ;; This script attempts to compile glib schemas
8146 ;; and create an empty MIME database. We do
8147 ;; that elsewhere, so prevent it from running.
8148 (substitute* "build-aux/post-install.sh"
8149 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8150 #t)))))
8151 (native-inputs
8152 `(("glib:bin" ,glib "bin")
8153 ("gobject-introspection" ,gobject-introspection)
8154 ("intltool" ,intltool)
8155 ("itstool" ,itstool)
8156 ("pkg-config" ,pkg-config)
8157 ("xmllint" ,libxml2)))
8158 (inputs
8159 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8160 ("gtk+" ,gtk+)))
8161 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8162 (synopsis "Look up words in dictionary sources")
8163 (description
8164 "GNOME Dictionary can look for the definition or translation of a word in
8165 existing databases over the internet.")
8166 (license license:gpl3+)))
8167
8168 (define-public gnome-tweaks
8169 (package
8170 (name "gnome-tweaks")
8171 (version "3.32.0")
8172 (source (origin
8173 (method url-fetch)
8174 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8175 (version-major+minor version) "/"
8176 "gnome-tweaks-" version ".tar.xz"))
8177 (patches
8178 (list (search-patch "gnome-tweaks-search-paths.patch")))
8179 (sha256
8180 (base32
8181 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
8182 (build-system meson-build-system)
8183 (arguments
8184 `(#:glib-or-gtk? #t
8185 #:configure-flags '("-Dlocalstatedir=/tmp"
8186 "-Dsysconfdir=/tmp")
8187 #:imported-modules ((guix build python-build-system)
8188 ,@%meson-build-system-modules)
8189 #:phases
8190 (modify-phases %standard-phases
8191 (add-after 'install 'wrap
8192 (@@ (guix build python-build-system) wrap))
8193 (add-after 'wrap 'wrap-gi-typelib
8194 (lambda* (#:key inputs outputs #:allow-other-keys)
8195 (let ((out (assoc-ref outputs "out"))
8196 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8197 (wrap-program (string-append out "/bin/gnome-tweaks")
8198 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8199 #t)))))
8200 (native-inputs
8201 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8202 ("intltool" ,intltool)
8203 ("pkg-config" ,pkg-config)))
8204 (inputs
8205 `(("gnome-desktop" ,gnome-desktop)
8206 ("gtk+" ,gtk+)
8207 ("gobject-introspection" ,gobject-introspection)
8208 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8209 ("libnotify" ,libnotify)
8210 ("libsoup" ,libsoup)
8211 ("nautilus" ,nautilus)
8212 ("python" ,python)
8213 ("python-pygobject" ,python-pygobject)))
8214 (synopsis "Customize advanced GNOME 3 options")
8215 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8216 (description
8217 "GNOME Tweaks allows adjusting advanced configuration settings in
8218 GNOME 3. This includes things like the fonts used in user interface elements,
8219 alternative user interface themes, changes in window management behavior,
8220 GNOME Shell appearance and extension, etc.")
8221 (license license:gpl3+)))
8222
8223 ;; This package has been renamed by upstream.
8224 (define-public gnome-tweak-tool
8225 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
8226
8227 (define-public gnome-shell-extensions
8228 (package
8229 (name "gnome-shell-extensions")
8230 (version "3.32.1")
8231 (source (origin
8232 (method url-fetch)
8233 (uri (string-append "mirror://gnome/sources/" name "/"
8234 (version-major+minor version) "/"
8235 name "-" version ".tar.xz"))
8236 (sha256
8237 (base32
8238 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
8239 (build-system meson-build-system)
8240 (arguments
8241 '(#:configure-flags '("-Dextension_set=all")))
8242 (native-inputs
8243 `(("glib:bin" ,glib "bin")
8244 ("intltool" ,intltool)
8245 ("pkg-config" ,pkg-config)))
8246 (propagated-inputs
8247 `(("glib" ,glib)))
8248 (synopsis "Extensions for GNOME Shell")
8249 (description "GNOME Shell extensions modify and extend GNOME Shell
8250 functionality and behavior.")
8251 (home-page "https://extensions.gnome.org/")
8252 (license license:gpl3+)))
8253
8254 (define-public arc-theme
8255 (package
8256 (name "arc-theme")
8257 (version "20190917")
8258 (source (origin
8259 (method git-fetch)
8260 (uri (git-reference
8261 (url "https://github.com/NicoHood/arc-theme.git")
8262 (commit version)))
8263 (file-name (git-file-name name version))
8264 (sha256
8265 (base32
8266 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8267 (build-system gnu-build-system)
8268 (arguments
8269 '(#:phases
8270 (modify-phases %standard-phases
8271 ;; autogen.sh calls configure at the end of the script.
8272 (replace 'bootstrap
8273 (lambda _ (invoke "autoreconf" "-vfi"))))))
8274 (native-inputs
8275 `(("autoconf" ,autoconf)
8276 ("automake" ,automake)
8277 ("glib" ,glib "bin") ; for glib-compile-resources
8278 ("gnome-shell" ,gnome-shell)
8279 ("gtk+" ,gtk+)
8280 ("inkscape" ,inkscape)
8281 ("optipng" ,optipng)
8282 ("pkg-config" ,pkg-config)
8283 ("sassc" ,sassc)))
8284 (synopsis "A flat GTK+ theme with transparent elements")
8285 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8286 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8287 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8288 (home-page "https://github.com/horst3180/arc-theme")
8289 ;; No "or later" language found.
8290 (license license:gpl3+)))
8291
8292 (define-public faba-icon-theme
8293 (package
8294 (name "faba-icon-theme")
8295 (version "4.3")
8296 (source
8297 (origin
8298 (method git-fetch)
8299 (uri (git-reference
8300 (url "https://github.com/snwh/faba-icon-theme.git")
8301 (commit (string-append "v" version))))
8302 (file-name (git-file-name name version))
8303 (sha256
8304 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8305 (build-system meson-build-system)
8306 (arguments
8307 `(#:phases
8308 (modify-phases %standard-phases
8309 (add-before 'configure 'disable-post-install
8310 (lambda _
8311 (substitute* "meson.build"
8312 (("meson.add_install_script.*") "")))))))
8313 (native-inputs
8314 `(("autoconf" ,autoconf)
8315 ("automake" ,automake)))
8316 (synopsis "Faba icon theme")
8317 (description
8318 "Faba is a minimal icon set used as a basis for other themes such as
8319 Moka")
8320 (home-page "https://snwh.org/moka")
8321 (license (list license:lgpl3+
8322 license:cc-by-sa4.0))))
8323
8324 (define-public moka-icon-theme
8325 (package
8326 (inherit faba-icon-theme)
8327 (name "moka-icon-theme")
8328 (version "5.4.0")
8329 (source
8330 (origin
8331 (method git-fetch)
8332 (uri (git-reference
8333 (url "https://github.com/snwh/moka-icon-theme.git")
8334 (commit (string-append "v" version))))
8335 (file-name (git-file-name name version))
8336 (sha256
8337 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8338 (propagated-inputs
8339 ;; Moka is based on Faba by using it as a fallback icon set instead of
8340 ;; bundling it, so we need to add it as a propagated input.
8341 `(("faba-icon-theme" ,faba-icon-theme)))
8342 (synopsis "Moka icon theme")
8343 (description "Moka is a stylized desktop icon set, designed to be clear,
8344 simple and consistent.")
8345 (license (list license:gpl3+
8346 license:cc-by-sa4.0))))
8347
8348 (define-public arc-icon-theme
8349 (package
8350 (name "arc-icon-theme")
8351 (version "20161122")
8352 (source
8353 (origin
8354 (method git-fetch)
8355 (uri (git-reference
8356 (url "https://github.com/horst3180/arc-icon-theme.git")
8357 (commit version)))
8358 (file-name (git-file-name name version))
8359 (sha256
8360 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8361 (build-system gnu-build-system)
8362 (arguments
8363 `(#:phases
8364 (modify-phases %standard-phases
8365 (add-after 'unpack 'disable-configure-during-bootstrap
8366 (lambda _
8367 (substitute* "autogen.sh"
8368 (("^\"\\$srcdir/configure\".*") ""))
8369 #t)))))
8370 (native-inputs
8371 `(("autoconf" ,autoconf)
8372 ("automake" ,automake)))
8373 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8374 (propagated-inputs
8375 `(("moka-icon-theme" ,moka-icon-theme)))
8376 (synopsis "Arc icon theme")
8377 (description "The Arc icon theme provides a set of icons matching the
8378 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8379 the Moka icon theme.")
8380 (home-page "https://github.com/horst3180/arc-icon-theme")
8381 (license license:gpl3+)))
8382
8383 (define-public folks
8384 (package
8385 (name "folks")
8386 (version "0.11.4")
8387 (source (origin
8388 (method url-fetch)
8389 (uri (string-append
8390 "mirror://gnome/sources/folks/"
8391 (version-major+minor version) "/"
8392 "folks-" version ".tar.xz"))
8393 (sha256
8394 (base32
8395 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
8396 (build-system glib-or-gtk-build-system)
8397 (inputs
8398 `(("bdb" ,bdb)
8399 ("dbus-glib" ,dbus-glib)
8400 ("evolution-data-server" ,evolution-data-server)
8401 ("glib" ,glib)
8402 ("libgee" ,libgee)
8403 ("telepathy-glib" ,telepathy-glib)))
8404 (native-inputs
8405 `(("gobject-introspection" ,gobject-introspection)
8406 ("intltool" ,intltool)
8407 ("pkg-config" ,pkg-config)
8408 ("vala" ,vala)))
8409 (synopsis "Library to aggregate data about people")
8410 (description "Libfolks is a library that aggregates information about people
8411 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8412 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8413 etc.) to create metacontacts. It's written in Vala, which generates C code when
8414 compiled.")
8415 (home-page "https://wiki.gnome.org/Projects/Folks")
8416 (license license:lgpl2.1+)))
8417
8418 (define-public gfbgraph
8419 (package
8420 (name "gfbgraph")
8421 (version "0.2.3")
8422 (source (origin
8423 (method url-fetch)
8424 (uri (string-append
8425 "mirror://gnome/sources/gfbgraph/"
8426 (version-major+minor version) "/"
8427 "gfbgraph-" version ".tar.xz"))
8428 (sha256
8429 (base32
8430 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8431 (build-system glib-or-gtk-build-system)
8432 (arguments
8433 `(#:tests? #f ; Tests appear to require the network.
8434 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8435 #:configure-flags '("--disable-gtk-doc"
8436 "--disable-static"
8437 "--enable-introspection")))
8438 (native-inputs
8439 `(("pkg-config" ,pkg-config)
8440 ("gobject-introspection" ,gobject-introspection)))
8441 (inputs
8442 `(("json-glib" ,json-glib)
8443 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8444 ("rest" ,rest)))
8445 (synopsis "GLib/GObject wrapper for the Facebook API")
8446 (description "This library allows you to use the Facebook API from
8447 GLib/GObject code.")
8448 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8449 (license license:lgpl2.1+)))
8450
8451 (define-public libgnomekbd
8452 (package
8453 (name "libgnomekbd")
8454 (version "3.26.1")
8455 (source (origin
8456 (method url-fetch)
8457 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8458 (version-major+minor version) "/"
8459 "libgnomekbd-" version ".tar.xz"))
8460 (sha256
8461 (base32
8462 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8463 (build-system gnu-build-system)
8464 (native-inputs
8465 `(("pkg-config" ,pkg-config)
8466 ("glib" ,glib "bin")
8467 ("intltool" ,intltool)))
8468 (propagated-inputs
8469 ;; Referred to in .h files and .pc.
8470 `(("glib" ,glib)
8471 ("gtk+" ,gtk+)
8472 ("libxklavier" ,libxklavier)))
8473 (home-page "https://www.gnome.org")
8474 (synopsis "GNOME keyboard configuration library")
8475 (description
8476 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8477 environment, which can notably display keyboard layouts.")
8478 (license license:lgpl2.0+)))
8479
8480 ;;; This package is no longer maintained:
8481 ;;; https://wiki.gnome.org/Attic/LibUnique
8482 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8483 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8484 (define-public libunique
8485 (package
8486 (name "libunique")
8487 (version "3.0.2")
8488 (source (origin
8489 (method url-fetch)
8490 (uri (string-append "mirror://gnome/sources/" name "/"
8491 (version-major+minor version) "/"
8492 name "-" version ".tar.xz"))
8493 (sha256
8494 (base32
8495 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8496 (build-system glib-or-gtk-build-system)
8497 (arguments
8498 `(#:configure-flags '("--disable-static"
8499 "--disable-dbus" ; use gdbus
8500 "--enable-introspection")))
8501 (native-inputs
8502 `(("pkg-config" ,pkg-config)
8503 ("gobject-introspection" ,gobject-introspection)
8504 ("glib:bin" ,glib "bin")
8505 ("gtk-doc" ,gtk-doc)))
8506 (propagated-inputs
8507 ;; Referred to in .h files and .pc.
8508 `(("gtk+" ,gtk+)))
8509 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8510 (synopsis "Library for writing single instance applications")
8511 (description
8512 "Libunique is a library for writing single instance applications. If you
8513 launch a single instance application twice, the second instance will either just
8514 quit or will send a message to the running instance. Libunique makes it easy to
8515 write this kind of application, by providing a base class, taking care of all
8516 the IPC machinery needed to send messages to a running instance, and also
8517 handling the startup notification side.")
8518 (license license:lgpl2.1+)))
8519
8520 (define-public gnome-calculator
8521 (package
8522 (name "gnome-calculator")
8523 (version "3.32.2")
8524 (source
8525 (origin
8526 (method url-fetch)
8527 (uri (string-append "mirror://gnome/sources/" name "/"
8528 (version-major+minor version) "/"
8529 name "-" version ".tar.xz"))
8530 (sha256
8531 (base32
8532 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
8533 (build-system meson-build-system)
8534 (arguments '(#:glib-or-gtk? #t))
8535 (native-inputs
8536 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8537 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8538 ("intltool" ,intltool)
8539 ("itstool" ,itstool)
8540 ("vala" ,vala)
8541 ("pkg-config" ,pkg-config)))
8542 (inputs
8543 `(("glib" ,glib)
8544 ("gtksourceview" ,gtksourceview)
8545 ("libsoup" ,libsoup)
8546 ("libxml2" ,libxml2)
8547 ("mpc" ,mpc)
8548 ("mpfr" ,mpfr)))
8549 (home-page "https://wiki.gnome.org/Apps/Calculator")
8550 (synopsis "Desktop calculator")
8551 (description
8552 "Calculator is an application that solves mathematical equations and
8553 is suitable as a default application in a Desktop environment.")
8554 (license license:gpl3)))
8555
8556 (define-public xpad
8557 (package
8558 (name "xpad")
8559 (version "5.1.0")
8560 (source
8561 (origin
8562 (method url-fetch)
8563 (uri (string-append "https://launchpad.net/xpad/trunk/"
8564 version "/+download/"
8565 name "-" version ".tar.bz2"))
8566 (sha256
8567 (base32
8568 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8569 (build-system gnu-build-system)
8570 (native-inputs
8571 `(("autoconf" ,autoconf)
8572 ("automake" ,automake)
8573 ("gtk+:bin" ,gtk+ "bin")
8574 ("intltool" ,intltool)
8575 ("pkg-config" ,pkg-config)))
8576 (inputs
8577 `(("gtksourceview" ,gtksourceview-3)
8578 ("libsm" ,libsm)))
8579 (home-page "https://wiki.gnome.org/Apps/Xpad")
8580 (synopsis "Virtual sticky note")
8581 (description
8582 "Xpad is a sticky note that strives to be simple, fault tolerant,
8583 and customizable. Xpad consists of independent pad windows, each is
8584 basically a text box in which notes can be written.")
8585 (license license:gpl3+)))
8586
8587 (define-public gucharmap
8588 (let ((unicode-files
8589 '(("Blocks.txt"
8590 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8591 ("DerivedAge.txt"
8592 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8593 ("NamesList.txt"
8594 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8595 ("Scripts.txt"
8596 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8597 ("UnicodeData.txt"
8598 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8599 ("Unihan.zip"
8600 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8601 (package
8602 (name "gucharmap")
8603 (version "12.0.1")
8604 (source
8605 (origin
8606 (method url-fetch)
8607 (uri (string-append "mirror://gnome/sources/" name "/"
8608 (version-major+minor version) "/"
8609 name "-" version ".tar.xz"))
8610 (sha256
8611 (base32
8612 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8613 (build-system glib-or-gtk-build-system)
8614 (arguments
8615 `(#:modules ((ice-9 match)
8616 (guix build glib-or-gtk-build-system)
8617 (guix build utils))
8618 #:configure-flags
8619 (list "--with-unicode-data=../unicode-data")
8620 #:phases
8621 (modify-phases %standard-phases
8622 (add-after 'unpack 'prepare-unicode-data
8623 (lambda* (#:key inputs #:allow-other-keys)
8624 (mkdir-p "../unicode-data")
8625 (with-directory-excursion "../unicode-data"
8626 (for-each (match-lambda
8627 ((file _)
8628 (install-file (assoc-ref inputs file) ".")))
8629 ',unicode-files))
8630 #t)))))
8631 (native-inputs
8632 `(("desktop-file-utils" ,desktop-file-utils)
8633 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8634 ("gobject-introspection" ,gobject-introspection)
8635 ("intltool" ,intltool)
8636 ("itstool" ,itstool)
8637 ("pkg-config" ,pkg-config)
8638 ,@(map (match-lambda
8639 ((file hash)
8640 `(,file
8641 ,(origin
8642 (method url-fetch)
8643 (uri (string-append
8644 "http://www.unicode.org/Public/12.0.0/ucd/"
8645 file))
8646 (sha256 (base32 hash))))))
8647 unicode-files)
8648 ("unzip" ,unzip)))
8649 (inputs
8650 `(("gtk+" ,gtk+)
8651 ("xmllint" ,libxml2)))
8652 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8653 (synopsis "Unicode character picker and font browser")
8654 (description
8655 "This program allows you to browse through all the available Unicode
8656 characters and categories for the installed fonts, and to examine their
8657 detailed properties. It is an easy way to find the character you might
8658 only know by its Unicode name or code point.")
8659 (license license:gpl3+))))
8660
8661 (define-public bluefish
8662 (package
8663 (name "bluefish")
8664 (version "2.2.10")
8665 (source
8666 (origin
8667 (method url-fetch)
8668 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8669 name "-" version ".tar.gz"))
8670 (sha256
8671 (base32
8672 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
8673 (build-system gnu-build-system)
8674 (native-inputs
8675 `(("desktop-file-utils" ,desktop-file-utils)
8676 ("intltool" ,intltool)
8677 ("pkg-config" ,pkg-config)))
8678 (inputs
8679 `(("enchant" ,enchant)
8680 ("gtk+" ,gtk+)
8681 ("python" ,python-2)
8682 ("xmllint" ,libxml2)
8683 ("gucharmap" ,gucharmap)))
8684 (home-page "http://bluefish.openoffice.nl")
8685 (synopsis "Web development studio")
8686 (description
8687 "Bluefish is an editor targeted towards programmers and web developers,
8688 with many options to write web sites, scripts and other code.
8689 Bluefish supports many programming and markup languages.")
8690 (license license:gpl3+)))
8691
8692 (define-public gnome-system-monitor
8693 (package
8694 (name "gnome-system-monitor")
8695 (version "3.32.1")
8696 (source
8697 (origin
8698 (method url-fetch)
8699 (uri (string-append "mirror://gnome/sources/" name "/"
8700 (version-major+minor version) "/"
8701 name "-" version ".tar.xz"))
8702 (sha256
8703 (base32
8704 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8705 (build-system meson-build-system)
8706 (arguments
8707 '(#:glib-or-gtk? #t
8708 #:configure-flags '("-Dsystemd=false")))
8709 (native-inputs
8710 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8711 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8712 ("intltool" ,intltool)
8713 ("itstool" ,itstool)
8714 ("libgtop" ,libgtop)
8715 ("polkit" ,polkit)
8716 ("pkg-config" ,pkg-config)))
8717 (inputs
8718 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8719 ("gtk+" ,gtk+)
8720 ("gtkmm" ,gtkmm)
8721 ("librsvg" ,librsvg)
8722 ("libxml2" ,libxml2)
8723 ("libwnck" ,libwnck)))
8724 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8725 (synopsis "Process viewer and system resource monitor for GNOME")
8726 (description
8727 "GNOME System Monitor is a GNOME process viewer and system monitor with
8728 an attractive, easy-to-use interface. It has features, such as a tree view
8729 for process dependencies, icons for processes, the ability to hide processes,
8730 graphical time histories of CPU/memory/swap usage and the ability to
8731 kill/reinice processes.")
8732 (license license:gpl2+)))
8733
8734 (define-public python-pyatspi
8735 (package
8736 (name "python-pyatspi")
8737 (version "2.34.0")
8738 (source (origin
8739 (method url-fetch)
8740 (uri (string-append
8741 "mirror://gnome/sources/pyatspi/"
8742 (version-major+minor version)
8743 "/pyatspi-" version ".tar.xz"))
8744 (sha256
8745 (base32
8746 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8747 (build-system gnu-build-system)
8748 (arguments
8749 `(#:phases
8750 (modify-phases %standard-phases
8751 (add-before 'build 'fix-atk-load
8752 (lambda _
8753 (substitute* "pyatspi/__init__.py"
8754 (("from gi.repository import Atspi")
8755 "gi.require_version('Gtk', '3.0')
8756 from gi.repository import Gtk
8757 from gi.repository import Atspi"))
8758 #t)))))
8759 (native-inputs
8760 `(("pkg-config" ,pkg-config)))
8761 (inputs
8762 `(("python" ,python)
8763 ("python-pygobject" ,python-pygobject)))
8764 (synopsis "Python client bindings for D-Bus AT-SPI")
8765 (home-page "https://wiki.linuxfoundation.org/accessibility\
8766 /atk/at-spi/at-spi_on_d-bus")
8767 (description
8768 "This package includes a python client library for the AT-SPI D-Bus
8769 accessibility infrastructure.")
8770 (license license:lgpl2.0)
8771 (properties '((upstream-name . "pyatspi")))))
8772
8773 (define-public orca
8774 (package
8775 (name "orca")
8776 (version "3.32.0")
8777 (source (origin
8778 (method url-fetch)
8779 (uri (string-append
8780 "mirror://gnome/sources/" name "/"
8781 (version-major+minor version) "/"
8782 name "-" version ".tar.xz"))
8783 (sha256
8784 (base32
8785 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
8786 (build-system glib-or-gtk-build-system)
8787 (arguments
8788 '(#:phases
8789 (modify-phases %standard-phases
8790 (add-before 'configure 'qualify-xkbcomp
8791 (lambda* (#:key inputs #:allow-other-keys)
8792 (let ((xkbcomp (string-append
8793 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8794 (substitute* "src/orca/orca.py"
8795 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8796 #t))
8797 (add-after 'install 'wrap-orca
8798 (lambda* (#:key outputs #:allow-other-keys)
8799 (let* ((out (assoc-ref outputs "out"))
8800 (prog (string-append out "/bin/orca")))
8801 (wrap-program prog
8802 `("GI_TYPELIB_PATH" ":" prefix
8803 (,(getenv "GI_TYPELIB_PATH")))
8804 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8805 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8806 `("PYTHONPATH" ":" prefix
8807 (,(getenv "PYTHONPATH")))))
8808 #t)))))
8809 (native-inputs
8810 `(("intltool" ,intltool)
8811 ("itstool" ,itstool)
8812 ("pkg-config" ,pkg-config)
8813 ("xmllint" ,libxml2)))
8814 (inputs
8815 `(("at-spi2-atk" ,at-spi2-atk)
8816 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8817 ("gstreamer" ,gstreamer)
8818 ("gst-plugins-base" ,gst-plugins-base)
8819 ("gst-plugins-good" ,gst-plugins-good)
8820 ("gtk+" ,gtk+)
8821 ("python" ,python)
8822 ("python-pygobject" ,python-pygobject)
8823 ("python-pyatspi" ,python-pyatspi)
8824 ("python-speechd" ,speech-dispatcher)
8825 ("xkbcomp" ,xkbcomp)))
8826 (synopsis
8827 "Screen reader for individuals who are blind or visually impaired")
8828 (home-page "https://wiki.gnome.org/Projects/Orca")
8829 (description
8830 "Orca is a screen reader that provides access to the graphical desktop
8831 via speech and refreshable braille. Orca works with applications and toolkits
8832 that support the Assistive Technology Service Provider Interface (AT-SPI).")
8833 (license license:lgpl2.1+)))
8834
8835 (define-public gspell
8836 (package
8837 (name "gspell")
8838 (version "1.8.2")
8839 (source (origin
8840 (method url-fetch)
8841 (uri (string-append "mirror://gnome/sources/" name "/"
8842 (version-major+minor version) "/"
8843 name "-" version ".tar.xz"))
8844 (sha256
8845 (base32
8846 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
8847 (patches (search-patches "gspell-dash-test.patch"))))
8848 (build-system glib-or-gtk-build-system)
8849 (arguments
8850 '(#:phases
8851 (modify-phases %standard-phases
8852 (add-before 'check 'pre-check
8853 (lambda* (#:key inputs #:allow-other-keys)
8854 ;; Tests require a running X server.
8855 (system "Xvfb :1 &")
8856 (setenv "DISPLAY" ":1")
8857
8858 ;; For the missing /etc/machine-id.
8859 (setenv "DBUS_FATAL_WARNINGS" "0")
8860
8861 ;; Allow Enchant and its Aspell backend to find the en_US
8862 ;; dictionary.
8863 (setenv "ASPELL_DICT_DIR"
8864 (string-append (assoc-ref inputs "aspell-dict-en")
8865 "/lib/aspell"))
8866 #t)))))
8867 (inputs
8868 `(("gtk+" ,gtk+)
8869 ("glib" ,glib)
8870 ("iso-codes" ,iso-codes)))
8871 (native-inputs
8872 `(("glib" ,glib "bin")
8873 ("gobject-introspection" ,gobject-introspection)
8874 ("pkg-config" ,pkg-config)
8875 ("xmllint" ,libxml2)
8876
8877 ;; For tests.
8878 ("aspell-dict-en" ,aspell-dict-en)
8879 ("xorg-server" ,xorg-server-for-tests)))
8880 (propagated-inputs
8881 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
8882 (home-page "https://wiki.gnome.org/Projects/gspell")
8883 (synopsis "GNOME's alternative spell checker")
8884 (description
8885 "gspell provides a flexible API to add spell-checking to a GTK+
8886 application. It provides a GObject API, spell-checking to text entries and
8887 text views, and buttons to choose the language.")
8888 (license license:gpl2+)))
8889
8890 (define-public gnome-planner
8891 (package
8892 (name "gnome-planner")
8893 (version "0.14.6")
8894 (source (origin
8895 (method url-fetch)
8896 (uri (string-append "mirror://gnome/sources/planner/"
8897 (version-major+minor version) "/planner-"
8898 version ".tar.xz"))
8899 (sha256
8900 (base32
8901 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8902 (build-system glib-or-gtk-build-system)
8903 (arguments
8904 ;; Disable the Python bindings because the Planner program functions
8905 ;; without them, and (as of 2017-06-13) we have not packaged all of
8906 ;; packages that are necessary for building the Python bindings.
8907 `(#:configure-flags
8908 (list "--disable-python"
8909 ,@(if (string=? "aarch64-linux" (%current-system))
8910 '("--build=aarch64-unknown-linux-gnu")
8911 '()))))
8912 (inputs
8913 `(("libgnomecanvas" ,libgnomecanvas)
8914 ("libgnomeui" ,libgnomeui)
8915 ("libglade" ,libglade)
8916 ("gnome-vfs" ,gnome-vfs)
8917 ("gconf" ,gconf)
8918 ("libxml2" ,libxml2)
8919 ("libxslt" ,libxslt)
8920 ("gtk+" ,gtk+)
8921 ("glib" ,glib)))
8922 (native-inputs
8923 `(("intltool" ,intltool)
8924 ("scrollkeeper" ,scrollkeeper)
8925 ("pkg-config" ,pkg-config)))
8926 (home-page "https://wiki.gnome.org/Apps/Planner")
8927 (synopsis "Project management software for the GNOME desktop")
8928 (description
8929 "GNOME Planner is a project management tool based on the Work Breakdown
8930 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8931 the resources, tasks, and constraints that you define, Planner generates
8932 various views into a project. For example, Planner can show a Gantt chart of
8933 the project. It can show a detailed summary of tasks including their
8934 duration, cost, and current progress. It can also show a report of resource
8935 utilization that highlights under-utilized and over-utilized resources. These
8936 views can be printed as PDF or PostScript files, or exported to HTML.")
8937 (license license:gpl2+)))
8938
8939 (define-public lollypop
8940 (package
8941 (name "lollypop")
8942 (version "1.2.7")
8943 (source
8944 (origin
8945 (method url-fetch)
8946 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
8947 "08f973788c7ca46d9285eec2ac818edb/"
8948 "lollypop-" version ".tar.xz"))
8949 (sha256
8950 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
8951 (build-system meson-build-system)
8952 (arguments
8953 `(#:imported-modules ((guix build python-build-system)
8954 ,@%meson-build-system-modules)
8955 #:glib-or-gtk? #t
8956 #:tests? #f ; no test suite
8957 #:phases
8958 (modify-phases %standard-phases
8959 (add-after 'install 'wrap-program
8960 (lambda* (#:key outputs #:allow-other-keys)
8961 (let ((out (assoc-ref outputs "out"))
8962 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8963 (wrap-program (string-append out "/bin/lollypop")
8964 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8965 #t))
8966 (add-after 'install 'wrap-python
8967 (@@ (guix build python-build-system) wrap))
8968 (add-after 'install 'wrap-glib-or-gtk
8969 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
8970 (native-inputs
8971 `(("intltool" ,intltool)
8972 ("itstool" ,itstool)
8973 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8974 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8975 ("pkg-config" ,pkg-config)))
8976 (inputs
8977 `(("gobject-introspection" ,gobject-introspection)
8978 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8979 ("gst-plugins-base" ,gst-plugins-base)
8980 ("libnotify" ,libnotify)
8981 ("libsecret" ,libsecret)
8982 ("libsoup" ,libsoup)
8983 ("python" ,python)
8984 ("python-beautifulsoup4" ,python-beautifulsoup4)
8985 ("python-gst" ,python-gst)
8986 ("python-pil" ,python-pillow)
8987 ("python-pycairo" ,python-pycairo)
8988 ("python-pygobject" ,python-pygobject-3.34)
8989 ("python-pylast" ,python-pylast)
8990 ("totem-pl-parser" ,totem-pl-parser)
8991 ("webkitgtk" ,webkitgtk)))
8992 (propagated-inputs
8993 `(;; gst-plugins-base is required to start Lollypop,
8994 ;; the others are required to play streaming.
8995 ("gst-plugins-good" ,gst-plugins-good)
8996 ("gst-plugins-ugly" ,gst-plugins-ugly)))
8997 (home-page "https://wiki.gnome.org/Apps/Lollypop")
8998 (synopsis "GNOME music playing application")
8999 (description
9000 "Lollypop is a music player designed to play well with GNOME desktop.
9001 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9002 from artists and tracks from the web. It also fetches cover artworks
9003 automatically and it can stream songs from online music services and charts.")
9004 (license license:gpl3+)))
9005
9006 (define-public gnome-video-effects
9007 (package
9008 (name "gnome-video-effects")
9009 (version "0.4.3")
9010 (source (origin
9011 (method url-fetch)
9012 (uri (string-append "mirror://gnome/sources/" name "/"
9013 (version-major+minor version) "/" name "-"
9014 version ".tar.xz"))
9015 (sha256
9016 (base32
9017 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9018 (build-system glib-or-gtk-build-system)
9019 (arguments
9020 `(#:out-of-source? #f))
9021 (native-inputs
9022 `(("glib:bin" ,glib "bin")
9023 ("intltool" ,intltool)
9024 ("gettext" ,gettext-minimal)
9025 ("pkg-config" ,pkg-config)))
9026 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9027 (synopsis "Video effects for Cheese and other GNOME applications")
9028 (description
9029 "A collection of GStreamer video filters and effects to be used in
9030 photo-booth-like software, such as Cheese.")
9031 (license license:gpl2+)))
9032
9033 (define-public cheese
9034 (package
9035 (name "cheese")
9036 (version "3.32.1")
9037 (source (origin
9038 (method url-fetch)
9039 (uri (string-append "mirror://gnome/sources/" name "/"
9040 (version-major+minor version) "/" name "-"
9041 version ".tar.xz"))
9042 (sha256
9043 (base32
9044 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
9045 (arguments
9046 ;; Tests require GDK.
9047 `(#:tests? #f
9048 #:phases
9049 (modify-phases %standard-phases
9050 (add-before 'install 'skip-gtk-update-icon-cache
9051 (lambda _
9052 ;; Don't create 'icon-theme.cache'
9053 (substitute* "Makefile"
9054 (("gtk-update-icon-cache") (which "true")))
9055 #t))
9056 (add-after 'install 'wrap-cheese
9057 (lambda* (#:key inputs outputs #:allow-other-keys)
9058 (let ((out (assoc-ref outputs "out"))
9059 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9060 (wrap-program (string-append out "/bin/cheese")
9061 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9062 #t)))))
9063 (build-system glib-or-gtk-build-system)
9064 (native-inputs
9065 `(("glib:bin" ,glib "bin")
9066 ("intltool" ,intltool)
9067 ("itstool" ,itstool)
9068 ("libxml2" ,libxml2)
9069 ("pkg-config" ,pkg-config)
9070 ("vala" ,vala)))
9071 (propagated-inputs
9072 `(("gnome-video-effects" ,gnome-video-effects)
9073 ("clutter" ,clutter)
9074 ("clutter-gst" ,clutter-gst)
9075 ("clutter-gtk" ,clutter-gtk)
9076 ("libcanberra" ,libcanberra)
9077 ("gdk-pixbuf" ,gdk-pixbuf)
9078 ("glib" ,glib)
9079 ("gstreamer" ,gstreamer)))
9080 (inputs
9081 `(("gnome-desktop" ,gnome-desktop)
9082 ("gobject-introspection" ,gobject-introspection)
9083 ("gst-plugins-base" ,gst-plugins-base)
9084 ("gst-plugins-bad" ,gst-plugins-bad)
9085 ("gtk+" ,gtk+)
9086 ("libx11" ,libx11)
9087 ("libxtst" ,libxtst)))
9088 (home-page "https://wiki.gnome.org/Apps/Cheese")
9089 (synopsis "Webcam photo booth software for GNOME")
9090 (description
9091 "Cheese uses your webcam to take photos and videos. Cheese can also
9092 apply fancy special effects and lets you share the fun with others.")
9093 (license license:gpl2+)))
9094
9095 (define-public sound-juicer
9096 (package
9097 (name "sound-juicer")
9098 (version "3.24.0")
9099 (source
9100 (origin
9101 (method url-fetch)
9102 (uri (string-append "mirror://gnome/sources/" name "/"
9103 (version-major+minor version) "/"
9104 name "-" version ".tar.xz"))
9105 (sha256
9106 (base32
9107 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9108 (build-system glib-or-gtk-build-system)
9109 (native-inputs
9110 `(("desktop-file-utils" ,desktop-file-utils)
9111 ("intltool" ,intltool)
9112 ("itstool" ,itstool)
9113 ("pkg-config" ,pkg-config)
9114 ("xmllint" ,libxml2)))
9115 (inputs
9116 `(("gtk+" ,gtk+)
9117 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9118 ("gstreamer" ,gstreamer)
9119 ("gst-plugins-base" ,gst-plugins-base)
9120 ("gst-plugins-good" ,gst-plugins-good)
9121 ("iso-codes" ,iso-codes)
9122 ("libbrasero-media3" ,brasero)
9123 ("libcanberra" ,libcanberra)
9124 ("libdiscid" ,libdiscid)
9125 ("libmusicbrainz" ,libmusicbrainz)
9126 ("neon" ,neon)))
9127 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9128 (synopsis "Audio music cd ripper")
9129 (description "Sound Juicer extracts audio from compact discs and convert it
9130 into audio files that a personal computer or digital audio player can play.
9131 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9132 mp3, Ogg Vorbis and FLAC")
9133 (license license:gpl2+)))
9134
9135 (define-public soundconverter
9136 (package
9137 (name "soundconverter")
9138 (version "3.0.1")
9139 (source
9140 (origin
9141 (method url-fetch)
9142 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9143 version "/+download/"
9144 "soundconverter-" version ".tar.xz"))
9145
9146 (sha256
9147 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
9148 (patches
9149 (search-patches
9150 "soundconverter-remove-gconf-dependency.patch"))))
9151 (build-system glib-or-gtk-build-system)
9152 (arguments
9153 `(#:imported-modules ((guix build python-build-system)
9154 (guix build glib-or-gtk-build-system)
9155 ,@%gnu-build-system-modules)
9156
9157 #:modules ((guix build glib-or-gtk-build-system)
9158 (guix build utils)
9159 ((guix build gnu-build-system) #:prefix gnu:)
9160 ((guix build python-build-system) #:prefix python:))
9161
9162 #:phases
9163 (modify-phases %standard-phases
9164 (add-after 'install 'wrap-soundconverter-for-python
9165 (assoc-ref python:%standard-phases 'wrap))
9166 (add-after 'install 'wrap-soundconverter
9167 (lambda* (#:key inputs outputs #:allow-other-keys)
9168 (let ((out (assoc-ref outputs "out"))
9169 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9170 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9171 (wrap-program (string-append out "/bin/soundconverter")
9172 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9173 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9174 #t)))))
9175 (native-inputs
9176 `(("intltool" ,intltool)
9177 ("pkg-config" ,pkg-config)
9178 ("glib:bin" ,glib "bin")))
9179 (inputs
9180 `(("gtk+" ,gtk+)
9181 ("python" ,python)
9182 ("python-pygobject" ,python-pygobject)
9183 ("gstreamer" ,gstreamer)
9184 ("gst-plugins-base" ,gst-plugins-base)))
9185 (home-page "http://soundconverter.org/")
9186 (synopsis "Convert between audio formats with a graphical interface")
9187 (description
9188 "SoundConverter supports converting between many audio formats including
9189 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9190 configurable file renaming. ")
9191 (license license:gpl3)))
9192
9193 (define-public workrave
9194 (package
9195 (name "workrave")
9196 (version "1.10.34")
9197 (source
9198 (origin
9199 (method git-fetch)
9200 (uri (git-reference
9201 (url "https://github.com/rcaelers/workrave.git")
9202 (commit (string-append "v" (string-map
9203 (match-lambda (#\. #\_) (chr chr))
9204 version)))))
9205 (file-name (git-file-name name version))
9206 (sha256
9207 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
9208 (build-system glib-or-gtk-build-system)
9209 (inputs `(("glib" ,glib)
9210 ("gtk+" ,gtk+)
9211 ("gdk-pixbuf" ,gdk-pixbuf)
9212 ("gtkmm" ,gtkmm)
9213 ("glibmm" ,glibmm)
9214 ("libx11" ,libx11)
9215 ("libxtst" ,libxtst)
9216 ("dconf" ,dconf)
9217 ("libice" ,libice)
9218 ("libsm" ,libsm)
9219 ("libxscrnsaver" ,libxscrnsaver)))
9220 (native-inputs `(("boost" ,boost)
9221 ("pkg-config" ,pkg-config)
9222 ("gettext" ,gnu-gettext)
9223 ("autoconf" ,autoconf)
9224 ("autoconf-archive" , autoconf-archive)
9225 ("automake" ,automake)
9226 ("libtool" ,libtool)
9227 ("intltool" ,intltool)
9228 ("gobject-introspection" ,gobject-introspection)
9229 ("python3" ,python-3)
9230 ("python-jinja2" ,python-jinja2)))
9231 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9232 (description
9233 "Workrave is a program that assists in the recovery and prevention of
9234 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9235 micro-pauses and rest breaks, and restricts you to your daily limit.")
9236 (home-page "http://www.workrave.org")
9237 (license license:gpl3+)))
9238
9239 (define-public ghex
9240 (package
9241 (name "ghex")
9242 (version "3.18.4")
9243 (source (origin
9244 (method url-fetch)
9245 (uri (string-append "mirror://gnome/sources/ghex/"
9246 (version-major+minor version) "/"
9247 "ghex-" version ".tar.xz"))
9248 (sha256
9249 (base32
9250 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9251 (build-system meson-build-system)
9252 (arguments
9253 '(#:glib-or-gtk? #t
9254 #:phases
9255 (modify-phases %standard-phases
9256 (add-after 'unpack 'skip-gtk-update-icon-cache
9257 ;; Don't create 'icon-theme.cache'.
9258 (lambda _
9259 (substitute* "meson_post_install.py"
9260 (("gtk-update-icon-cache") (which "true")))
9261 #t)))))
9262 (native-inputs
9263 `(("pkg-config" ,pkg-config)
9264 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9265 ("gnome-common" ,gnome-common)
9266 ("which" ,which)
9267 ("intltool" ,intltool)
9268 ("yelp-tools" ,yelp-tools)
9269 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9270 (inputs
9271 `(("atk" ,atk)
9272 ("gtk" ,gtk+)))
9273 (synopsis "GNOME hexadecimal editor")
9274 (description "The GHex program can view and edit files in two ways:
9275 hexadecimal or ASCII. It is useful for editing binary files in general.")
9276 (home-page "https://wiki.gnome.org/Apps/Ghex")
9277 (license license:gpl2)))
9278
9279 (define-public libdazzle
9280 (package
9281 (name "libdazzle")
9282 (version "3.33.90")
9283 (source (origin
9284 (method url-fetch)
9285 (uri (string-append "mirror://gnome/sources/libdazzle/"
9286 (version-major+minor version) "/"
9287 "libdazzle-" version ".tar.xz"))
9288 (sha256
9289 (base32
9290 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
9291 (build-system meson-build-system)
9292 (arguments
9293 `(#:phases
9294 (modify-phases %standard-phases
9295 (add-before 'check 'pre-check
9296 (lambda _
9297 ;; Tests require a running X server.
9298 (system "Xvfb :1 &")
9299 (setenv "DISPLAY" ":1")
9300 #t)))))
9301 (native-inputs
9302 `(("glib" ,glib "bin") ; glib-compile-resources
9303 ("pkg-config" ,pkg-config)
9304 ;; For tests.
9305 ("xorg-server" ,xorg-server-for-tests)))
9306 (inputs
9307 `(("glib" ,glib)
9308 ("gobject-introspection" ,gobject-introspection)
9309 ("gtk+" ,gtk+)
9310 ("vala" ,vala)))
9311 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9312 (synopsis "Companion library to GObject and Gtk+")
9313 (description "The libdazzle library is a companion library to GObject and
9314 Gtk+. It provides various features that the authors wish were in the
9315 underlying library but cannot for various reasons. In most cases, they are
9316 wildly out of scope for those libraries. In other cases, they are not quite
9317 generic enough to work for everyone.")
9318 (license license:gpl3+)))
9319
9320 (define-public evolution
9321 (package
9322 (name "evolution")
9323 (version "3.32.4")
9324 (source (origin
9325 (method url-fetch)
9326 (uri (string-append "mirror://gnome/sources/evolution/"
9327 (version-major+minor version) "/"
9328 "evolution-" version ".tar.xz"))
9329 (sha256
9330 (base32
9331 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
9332 (build-system cmake-build-system)
9333 (arguments
9334 `(#:imported-modules (,@%cmake-build-system-modules
9335 (guix build glib-or-gtk-build-system))
9336 #:modules ((guix build cmake-build-system)
9337 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9338 (guix build utils))
9339 #:configure-flags
9340 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9341 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9342 ; in four years and cannot be built.
9343 #:phases
9344 (modify-phases %standard-phases
9345 ;; The build system attempts to install user interface modules to the
9346 ;; output directory of the "evolution-data-server" package. This
9347 ;; change redirects that change.
9348 (add-after 'unpack 'patch-ui-module-dir
9349 (lambda* (#:key outputs #:allow-other-keys)
9350 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9351 (("\\$\\{edsuimoduledir\\}")
9352 (string-append (assoc-ref outputs "out")
9353 "/lib/evolution-data-server/ui-modules")))
9354 #t))
9355 (add-after 'install 'glib-or-gtk-compile-schemas
9356 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9357 (add-after 'install 'glib-or-gtk-wrap
9358 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9359 (native-inputs
9360 `(("glib" ,glib "bin") ; glib-mkenums
9361 ("pkg-config" ,pkg-config)
9362 ("intltool" ,intltool)
9363 ("itstool" ,itstool)))
9364 (inputs
9365 `(("enchant" ,enchant)
9366 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9367 ("gcr" ,gcr)
9368 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9369 ("gnome-autoar" ,gnome-autoar)
9370 ("gnome-desktop" ,gnome-desktop)
9371 ("gtkspell3" ,gtkspell3)
9372 ("highlight" ,highlight)
9373 ("libcanberra" ,libcanberra)
9374 ("libedataserverui" ,evolution-data-server)
9375 ("libgweather" ,libgweather)
9376 ("libnotify" ,libnotify)
9377 ("libsoup" ,libsoup)
9378 ("nss" ,nss)
9379 ("openldap" ,openldap)
9380 ("webkitgtk" ,webkitgtk)
9381 ("ytnef" ,ytnef)))
9382 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9383 (synopsis "Manage your email, contacts and schedule")
9384 (description "Evolution is a personal information management application
9385 that provides integrated mail, calendaring and address book
9386 functionality.")
9387 ;; See COPYING for details.
9388 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9389 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9390 license:lgpl2.1+)))) ; smime/lib/*
9391
9392 (define-public gthumb
9393 (package
9394 (name "gthumb")
9395 (version "3.8.2")
9396 (source (origin
9397 (method url-fetch)
9398 (uri (string-append "mirror://gnome/sources/gthumb/"
9399 (version-major+minor version) "/"
9400 "gthumb-" version ".tar.xz"))
9401 (sha256
9402 (base32
9403 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9404 (build-system meson-build-system)
9405 (arguments
9406 `(#:glib-or-gtk? #t
9407 #:configure-flags
9408 ;; Ensure the RUNPATH contains all installed library locations.
9409 (list (string-append "-Dc_link_args=-Wl,-rpath="
9410 (assoc-ref %outputs "out")
9411 "/lib/gthumb/extensions")
9412 (string-append "-Dcpp_link_args=-Wl,-rpath="
9413 (assoc-ref %outputs "out")
9414 "/lib/gthumb/extensions"))))
9415 (native-inputs
9416 `(("pkg-config" ,pkg-config)
9417 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9418 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9419 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9420 ("intltool" ,intltool)
9421 ("itstool" ,itstool)))
9422 (inputs
9423 `(("exiv2" ,exiv2)
9424 ("gtk" ,gtk+)
9425 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9426 ("gstreamer" ,gstreamer)
9427 ("clutter" ,clutter)
9428 ("clutter-gst" ,clutter-gst)
9429 ("clutter-gtk" ,clutter-gtk)
9430 ("libjpeg" ,libjpeg)
9431 ("libtiff" ,libtiff)
9432 ("libraw" ,libraw)))
9433 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9434 (synopsis "GNOME image viewer and browser")
9435 (description "GThumb is an image viewer, browser, organizer, editor and
9436 advanced image management tool")
9437 (license license:gpl2+)))
9438
9439 (define-public terminator
9440 (package
9441 (name "terminator")
9442 (version "1.91")
9443 (source (origin
9444 (method url-fetch)
9445 (uri (string-append "https://launchpad.net/" name "/"
9446 "gtk3/" version "/" "+download/"
9447 name "-" version ".tar.gz"))
9448 (sha256
9449 (base32
9450 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9451 (build-system python-build-system)
9452 (native-inputs
9453 `(("intltool" ,intltool)
9454 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9455 ("gettext" ,gettext-minimal)
9456 ("pkg-config" ,pkg-config)))
9457 (inputs
9458 `(("cairo" ,cairo)
9459 ("gobject-introspection" ,gobject-introspection)
9460 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9461 ("python2-pycairo" ,python2-pycairo)
9462 ("python2-pygobject" ,python2-pygobject)
9463 ("python2-psutil" ,python2-psutil)
9464 ("vte" ,vte)))
9465 (arguments
9466 `(#:python ,python-2 ; Python 3 isn't supported
9467 #:imported-modules ((guix build glib-or-gtk-build-system)
9468 ,@%python-build-system-modules)
9469 #:modules ((guix build python-build-system)
9470 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9471 (guix build utils))
9472 #:phases
9473 (modify-phases %standard-phases
9474 (add-after
9475 'install 'wrap-program
9476 (lambda* (#:key outputs #:allow-other-keys)
9477 (let ((prog (string-append (assoc-ref outputs "out")
9478 "/bin/terminator")))
9479 (wrap-program prog
9480 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9481 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9482 #t)))
9483 (add-after 'wrap-program 'glib-or-gtk-wrap
9484 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9485 (home-page "https://gnometerminator.blogspot.com/")
9486 (synopsis "Store and run multiple GNOME terminals in one window")
9487 (description
9488 "Terminator allows you to run multiple GNOME terminals in a grid and
9489 +tabs, and it supports drag and drop re-ordering of terminals.")
9490 (license license:gpl2)))
9491
9492 (define-public libhandy
9493 (package
9494 (name "libhandy")
9495 (version "0.0.12")
9496 (source
9497 (origin
9498 (method git-fetch)
9499 (uri (git-reference
9500 (url "https://source.puri.sm/Librem5/libhandy")
9501 (commit (string-append "v" version))))
9502 (file-name (git-file-name name version))
9503 (sha256
9504 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9505 (build-system meson-build-system)
9506 (arguments
9507 `(#:configure-flags
9508 '("-Dglade_catalog=disabled"
9509 "-Dgtk_doc=true")
9510 #:phases
9511 (modify-phases %standard-phases
9512 (add-before 'check 'pre-check
9513 (lambda _
9514 ;; Tests require a running X server.
9515 (system "Xvfb :1 &")
9516 (setenv "DISPLAY" ":1")
9517 #t)))))
9518 (inputs
9519 `(("gtk+" ,gtk+)))
9520 (native-inputs
9521 `(("glib:bin" ,glib "bin")
9522 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9523 ("vala" ,vala)
9524 ("gtk-doc" ,gtk-doc)
9525 ("pkg-config" ,pkg-config)
9526 ("gettext" ,gettext-minimal)
9527
9528 ;; Test suite dependencies.
9529 ("xorg-server" ,xorg-server-for-tests)
9530 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9531 (home-page "https://source.puri.sm/Librem5/libhandy")
9532 (synopsis "Library full of GTK+ widgets for mobile phones")
9533 (description "The aim of the handy library is to help with developing user
9534 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9535 for usage on small and big screens.")
9536 (license license:lgpl2.1+)))
9537
9538 (define-public libgit2-glib
9539 (package
9540 (name "libgit2-glib")
9541 (version "0.28.0.1")
9542 (source (origin
9543 (method url-fetch)
9544 (uri (string-append "mirror://gnome/sources/" name "/"
9545 (version-major+minor version) "/"
9546 name "-" version ".tar.xz"))
9547 (sha256
9548 (base32
9549 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9550 (build-system meson-build-system)
9551 (native-inputs
9552 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9553 ("gobject-introspection" ,gobject-introspection)
9554 ("intltool" ,intltool)
9555 ("libssh2" ,libssh2)
9556 ("pkg-config" ,pkg-config)
9557 ("python-pygobject" ,python-pygobject)
9558 ("python-wrapper" ,python-wrapper)
9559 ("vala" ,vala)))
9560 (inputs
9561 `(("glib" ,glib)
9562 ("libgit2" ,libgit2)))
9563 (synopsis "GLib wrapper around the libgit2 Git access library")
9564 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9565 access library. It only implements the core plumbing functions, not really the
9566 higher level porcelain stuff.")
9567 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9568 (license license:gpl2+)))
9569
9570 (define-public gitg
9571 (package
9572 (name "gitg")
9573 (version "3.32.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 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9582 (build-system meson-build-system)
9583 (arguments
9584 `(#:glib-or-gtk? #t
9585 #:phases
9586 (modify-phases %standard-phases
9587 (add-after 'unpack 'disable-post-install-partially
9588 (lambda _
9589 (substitute* "meson_post_install.py"
9590 (("'python'") ; there are no python sources to compile
9591 (string-append "'" (which "true") "'"))
9592 (("gtk-update-icon-cache") (which "true")))
9593 #t))
9594 (add-after 'unpack 'fix-test-sources
9595 (lambda _
9596 (substitute* "tests/libgitg/test-commit.vala"
9597 (("/bin/bash") (which "bash")))
9598 #t))
9599 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9600 (lambda* (#:key outputs #:allow-other-keys)
9601 (let ((prog (string-append (assoc-ref outputs "out")
9602 "/bin/gitg")))
9603 (wrap-program prog
9604 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9605 #t))))))
9606 (inputs
9607 `(("glib" ,glib)
9608 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9609 ("gtk+" ,gtk+)
9610 ("gtkspell3" ,gtkspell3)
9611 ("gtksourceview" ,gtksourceview-3)
9612 ("json-glib" ,json-glib)
9613 ("libdazzle" ,libdazzle)
9614 ("libgee" ,libgee)
9615 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9616 ("libgit2-glib" ,libgit2-glib)
9617 ("libpeas" ,libpeas)
9618 ("libsecret" ,libsecret)
9619 ("libsoup" ,libsoup)
9620 ("libxml2" ,libxml2)))
9621 (native-inputs
9622 `(("glib:bin" ,glib "bin")
9623 ("gtk+:bin" ,gtk+ "bin")
9624 ("gobject-introspection" ,gobject-introspection)
9625 ("intltool" ,intltool)
9626 ("pkg-config" ,pkg-config)
9627 ("vala" ,vala)))
9628 (synopsis "Graphical user interface for git")
9629 (description
9630 "gitg is a graphical user interface for git. It aims at being a small,
9631 fast and convenient tool to visualize the history of git repositories.
9632 Besides visualization, gitg also provides several utilities to manage your
9633 repository and commit your work.")
9634 (home-page "https://wiki.gnome.org/Apps/Gitg")
9635 (license license:gpl2+)))
9636
9637 (define-public gamin
9638 (package
9639 (name "gamin")
9640 (version "0.1.10")
9641 (source (origin
9642 (method url-fetch)
9643 (uri (string-append "mirror://gnome/sources/" name "/"
9644 (version-major+minor version) "/"
9645 name "-" version ".tar.bz2"))
9646 (sha256
9647 (base32
9648 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9649 (build-system gnu-build-system)
9650 (arguments
9651 `(#:phases
9652 (modify-phases %standard-phases
9653 (add-after 'unpack 'remove-deprecated-macro
9654 (lambda _
9655 (substitute* '("server/gam_node.c"
9656 "server/gam_subscription.h"
9657 "server/gam_node.h"
9658 "server/gam_subscription.c")
9659 (("G_CONST_RETURN") "const"))
9660 #t)))))
9661 (inputs
9662 `(("glib" ,glib)))
9663 (native-inputs
9664 `(("intltool" ,intltool)
9665 ("pkg-config" ,pkg-config)))
9666 (home-page "https://people.gnome.org/~veillard/gamin/")
9667 (synopsis "File alteration monitor")
9668 (description
9669 "Gamin is a file and directory monitoring system defined to be a subset
9670 of the FAM (File Alteration Monitor) system. This is a service provided by a
9671 library which allows to detect when a file or a directory has been modified.")
9672 (license license:gpl2+)))
9673
9674 (define-public gnome-mahjongg
9675 (package
9676 (name "gnome-mahjongg")
9677 (version "3.35.1")
9678 (source (origin
9679 (method git-fetch)
9680 (uri (git-reference
9681 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9682 (commit version)))
9683 (file-name (git-file-name name version))
9684 (sha256
9685 (base32
9686 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9687 (build-system meson-build-system)
9688 (arguments
9689 `(#:glib-or-gtk? #t))
9690 (native-inputs
9691 `(("appstream-glib" ,appstream-glib)
9692 ("gettext" ,gettext-minimal)
9693 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9694 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9695 ("itstool" ,itstool)
9696 ("pkg-config" ,pkg-config)
9697 ("vala" ,vala)))
9698 (propagated-inputs
9699 `(("dconf" ,dconf)))
9700 (inputs
9701 `(("glib" ,glib)
9702 ("gtk+" ,gtk+)
9703 ("librsvg" ,librsvg)))
9704 (synopsis "Mahjongg tile-matching game")
9705 (description "GNOME Mahjongg is a game based on the classic Chinese
9706 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9707 and a high score table.")
9708 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9709 (license license:gpl2+)))
9710
9711 (define-public gnome-themes-extra
9712 (package
9713 (name "gnome-themes-extra")
9714 (version "3.28")
9715 (source
9716 (origin
9717 (method url-fetch)
9718 (uri (string-append "mirror://gnome/sources/" name "/"
9719 (version-major+minor version) "/" name "-"
9720 version ".tar.xz"))
9721 (sha256
9722 (base32
9723 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9724 (build-system gnu-build-system)
9725 (arguments
9726 '(#:configure-flags
9727 ;; Don't create 'icon-theme.cache'.
9728 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9729 (true (string-append coreutils "/bin/true")))
9730 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9731 (native-inputs
9732 `(("glib:bin" ,glib "bin")
9733 ("intltool" ,intltool)
9734 ("pkg-config" ,pkg-config)))
9735 (inputs
9736 `(("glib" ,glib)
9737 ("gtk+" ,gtk+)
9738 ("gtk+-2" ,gtk+-2)
9739 ("librsvg" ,librsvg)
9740 ("libxml2" ,libxml2)))
9741 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9742 (synopsis "GNOME Extra Themes")
9743 (description "This package provides themes and related elements that don't
9744 really fit in other upstream packages. It offers legacy support for GTK+ 2
9745 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9746 index files needed for Adwaita to be used outside of GNOME.")
9747 (license license:lgpl2.1+)))
9748
9749 (define-public polari
9750 (package
9751 (name "polari")
9752 (version "3.32.2")
9753 (source (origin
9754 (method url-fetch)
9755 (uri (string-append "mirror://gnome/sources/polari/"
9756 (version-major+minor version)
9757 "/polari-" version ".tar.xz"))
9758 (sha256
9759 (base32
9760 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9761 (build-system meson-build-system)
9762 (arguments
9763 `(#:glib-or-gtk? #t
9764 #:phases
9765 (modify-phases %standard-phases
9766 (add-after 'unpack 'skip-gtk-update-icon-cache
9767 (lambda _
9768 (substitute* "meson/meson-postinstall.sh"
9769 (("gtk-update-icon-cache") (which "true")))
9770 #t))
9771 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9772 (lambda* (#:key outputs #:allow-other-keys)
9773 (let ((prog (string-append (assoc-ref outputs "out")
9774 "/bin/polari")))
9775 (wrap-program prog
9776 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9777 #t))))))
9778 (inputs
9779 `(("glib" ,glib)
9780 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9781 ("gspell" ,gspell)
9782 ("gtk+" ,gtk+)
9783 ("gjs" ,gjs)
9784 ("libsecret" ,libsecret)
9785 ("libsoup" ,libsoup)
9786 ("telepathy-glib" ,telepathy-glib)
9787 ("telepathy-logger" ,telepathy-logger)))
9788 (native-inputs
9789 `(("glib:bin" ,glib "bin")
9790 ("gobject-introspection" ,gobject-introspection)
9791 ("intltool" ,intltool)
9792 ("pkg-config" ,pkg-config)
9793 ("yelp-tools" ,yelp-tools)))
9794 (propagated-inputs
9795 `(("telepathy-idle" ,telepathy-idle)
9796 ("telepathy-mission-control" ,telepathy-mission-control)))
9797 (synopsis "Simple IRC Client")
9798 (description
9799 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9800 integrate seamlessly with the GNOME desktop.")
9801 (home-page "https://wiki.gnome.org/Apps/Polari")
9802 (license license:gpl2+)))