gnu: git-annex: Update to 8.20200330.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;;
53 ;;; This file is part of GNU Guix.
54 ;;;
55 ;;; GNU Guix is free software; you can redistribute it and/or modify it
56 ;;; under the terms of the GNU General Public License as published by
57 ;;; the Free Software Foundation; either version 3 of the License, or (at
58 ;;; your option) any later version.
59 ;;;
60 ;;; GNU Guix is distributed in the hope that it will be useful, but
61 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
62 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
63 ;;; GNU General Public License for more details.
64 ;;;
65 ;;; You should have received a copy of the GNU General Public License
66 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
67
68 (define-module (gnu packages gnome)
69 #:use-module (gnu packages)
70 #:use-module (gnu packages admin)
71 #:use-module (gnu packages aspell)
72 #:use-module (gnu packages autotools)
73 #:use-module (gnu packages avahi)
74 #:use-module (gnu packages backup)
75 #:use-module (gnu packages base)
76 #:use-module (gnu packages bash)
77 #:use-module (gnu packages bison)
78 #:use-module (gnu packages boost)
79 #:use-module (gnu packages build-tools)
80 #:use-module (gnu packages calendar)
81 #:use-module (gnu packages cdrom)
82 #:use-module (gnu packages check)
83 #:use-module (gnu packages cmake)
84 #:use-module (gnu packages compression)
85 #:use-module (gnu packages crates-io)
86 #:use-module (gnu packages cups)
87 #:use-module (gnu packages curl)
88 #:use-module (gnu packages cyrus-sasl)
89 #:use-module (gnu packages databases)
90 #:use-module (gnu packages dbm)
91 #:use-module (gnu packages djvu)
92 #:use-module (gnu packages dns)
93 #:use-module (gnu packages docbook)
94 #:use-module (gnu packages documentation)
95 #:use-module (gnu packages enchant)
96 #:use-module (gnu packages flex)
97 #:use-module (gnu packages fonts)
98 #:use-module (gnu packages file-systems)
99 #:use-module (gnu packages fontutils)
100 #:use-module (gnu packages freedesktop)
101 #:use-module (gnu packages game-development)
102 #:use-module (gnu packages gettext)
103 #:use-module (gnu packages ghostscript)
104 #:use-module (gnu packages gl)
105 #:use-module (gnu packages glib)
106 #:use-module (gnu packages gnupg)
107 #:use-module (gnu packages gnuzilla)
108 #:use-module (gnu packages geo)
109 #:use-module (gnu packages gperf)
110 #:use-module (gnu packages graphviz)
111 #:use-module (gnu packages gstreamer)
112 #:use-module (gnu packages gtk)
113 #:use-module (gnu packages guile)
114 #:use-module (gnu packages ibus)
115 #:use-module (gnu packages icu4c)
116 #:use-module (gnu packages image)
117 #:use-module (gnu packages imagemagick)
118 #:use-module (gnu packages inkscape)
119 #:use-module (gnu packages iso-codes)
120 #:use-module (gnu packages kerberos)
121 #:use-module (gnu packages libcanberra)
122 #:use-module (gnu packages libunistring)
123 #:use-module (gnu packages libunwind)
124 #:use-module (gnu packages libusb)
125 #:use-module (gnu packages linux)
126 #:use-module (gnu packages lirc)
127 #:use-module (gnu packages lua)
128 #:use-module (gnu packages mail)
129 #:use-module (gnu packages mp3)
130 #:use-module (gnu packages multiprecision)
131 #:use-module (gnu packages music)
132 #:use-module (gnu packages ncurses)
133 #:use-module (gnu packages nettle)
134 #:use-module (gnu packages networking)
135 #:use-module (gnu packages ninja)
136 #:use-module (gnu packages nss)
137 #:use-module (gnu packages openldap)
138 #:use-module (gnu packages password-utils)
139 #:use-module (gnu packages pcre)
140 #:use-module (gnu packages pdf)
141 #:use-module (gnu packages perl)
142 #:use-module (gnu packages photo)
143 #:use-module (gnu packages pkg-config)
144 #:use-module (gnu packages polkit)
145 #:use-module (gnu packages popt)
146 #:use-module (gnu packages pretty-print)
147 #:use-module (gnu packages pulseaudio)
148 #:use-module (gnu packages python)
149 #:use-module (gnu packages python-crypto)
150 #:use-module (gnu packages python-web)
151 #:use-module (gnu packages python-xyz)
152 #:use-module (gnu packages rdesktop)
153 #:use-module (gnu packages readline)
154 #:use-module (gnu packages ruby)
155 #:use-module (gnu packages rust)
156 #:use-module (gnu packages samba)
157 #:use-module (gnu packages scanner)
158 #:use-module (gnu packages selinux)
159 #:use-module (gnu packages slang)
160 #:use-module (gnu packages speech)
161 #:use-module (gnu packages spice)
162 #:use-module (gnu packages sqlite)
163 #:use-module (gnu packages ssh)
164 #:use-module (gnu packages tex)
165 #:use-module (gnu packages time)
166 #:use-module (gnu packages tls)
167 #:use-module (gnu packages version-control)
168 #:use-module (gnu packages video)
169 #:use-module (gnu packages virtualization)
170 #:use-module (gnu packages vpn)
171 #:use-module (gnu packages web)
172 #:use-module (gnu packages webkit)
173 #:use-module (gnu packages xdisorg)
174 #:use-module (gnu packages xiph)
175 #:use-module (gnu packages xml)
176 #:use-module (gnu packages xorg)
177 #:use-module (gnu artwork)
178 #:use-module (guix build-system cargo)
179 #:use-module (guix build-system cmake)
180 #:use-module (guix build-system glib-or-gtk)
181 #:use-module (guix build-system gnu)
182 #:use-module (guix build-system meson)
183 #:use-module (guix build-system python)
184 #:use-module (guix build-system trivial)
185 #:use-module (guix download)
186 #:use-module (guix git-download)
187 #:use-module ((guix licenses) #:prefix license:)
188 #:use-module (guix packages)
189 #:use-module (guix utils)
190 #:use-module (guix gexp)
191 #:use-module (guix monads)
192 #:use-module (guix store)
193 #:use-module (ice-9 match)
194 #:use-module (srfi srfi-1))
195
196 (define-public brasero
197 (package
198 (name "brasero")
199 (version "3.12.2")
200 (source (origin
201 (method url-fetch)
202 (uri (string-append "mirror://gnome/sources/brasero/"
203 (version-major+minor version) "/"
204 "brasero-" version ".tar.xz"))
205 (sha256
206 (base32
207 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
208 (build-system glib-or-gtk-build-system)
209 (arguments
210 `(#:configure-flags (list
211 (string-append "--with-girdir="
212 (assoc-ref %outputs "out")
213 "/share/gir-1.0")
214 (string-append "--with-typelibdir="
215 (assoc-ref %outputs "out")
216 "/lib/girepository-1.0"))
217 #:phases
218 (modify-phases %standard-phases
219 (add-before 'configure 'embed-growisofs
220 (lambda* (#:key inputs #:allow-other-keys)
221 (substitute* "plugins/growisofs/burn-growisofs.c"
222 (("\"growisofs") (string-append "\"" (which "growisofs"))))
223 #t)))))
224 (propagated-inputs
225 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
226 (native-inputs
227 `(("intltool" ,intltool)
228 ("itstool" ,itstool)
229 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
230 ("gobject-introspection" ,gobject-introspection)
231 ("pkg-config" ,pkg-config)))
232 (inputs
233 `(("dvd+rw-tools" ,dvd+rw-tools)
234 ("glib" ,glib)
235 ("gnome-doc-utils" ,gnome-doc-utils)
236 ("gstreamer" ,gstreamer)
237 ("gst-plugins-base" ,gst-plugins-base)
238 ("gtk+" ,gtk+)
239 ("libcanberra" ,libcanberra)
240 ("libice" ,libice)
241 ("libnotify" ,libnotify)
242 ("libsm" ,libsm)
243 ("libxml2" ,libxml2)
244 ("totem-pl-parser" ,totem-pl-parser)))
245 (home-page "https://wiki.gnome.org/Apps/Brasero")
246 (synopsis "CD/DVD burning tool for Gnome")
247 (description "Brasero is an application to burn CD/DVD for the Gnome
248 Desktop. It is designed to be as simple as possible and has some unique
249 features to enable users to create their discs easily and quickly.")
250 (license license:gpl2+)))
251
252 (define-public phodav
253 (package
254 (name "phodav")
255 (version "2.4")
256 (source (origin
257 (method url-fetch)
258 (uri (string-append "mirror://gnome/sources/" name "/"
259 (version-major+minor version) "/"
260 name "-" version ".tar.xz"))
261 (sha256
262 (base32
263 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
264 (build-system meson-build-system)
265 (native-inputs
266 `(("gettext" ,gettext-minimal)
267 ("glib:bin" ,glib "bin")
268 ("gtk-doc" ,gtk-doc)
269 ("pkg-config" ,pkg-config)))
270 (inputs
271 `(("avahi" ,avahi)
272 ("libgudev" ,libgudev)
273 ("libsoup" ,libsoup)))
274 (synopsis "WebDav server implementation using libsoup")
275 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
276 but it is generic enough to be reused in other projects,
277 in particular in the GNOME desktop.")
278 (home-page "https://wiki.gnome.org/phodav")
279 (license license:lgpl2.1+)))
280
281 (define-public gnome-color-manager
282 (package
283 (name "gnome-color-manager")
284 (version "3.32.0")
285 (source (origin
286 (method url-fetch)
287 (uri (string-append "mirror://gnome/sources/" name "/"
288 (version-major+minor version) "/"
289 name "-" version ".tar.xz"))
290 (sha256
291 (base32
292 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
293 (build-system meson-build-system)
294 (arguments
295 `(#:glib-or-gtk? #t
296 #:phases
297 (modify-phases %standard-phases
298 (add-before
299 'check 'pre-check
300 (lambda _
301 ;; Tests require a running X server.
302 (system "Xvfb :1 &")
303 (setenv "DISPLAY" ":1")
304 #t)))))
305 (native-inputs
306 `(("desktop-file-utils" ,desktop-file-utils)
307 ("gettext" ,gettext-minimal)
308 ("glib:bin" ,glib "bin")
309 ("gtk+:bin" ,gtk+ "bin")
310 ("itstool" ,itstool)
311 ("pkg-config" ,pkg-config)
312 ("xorg-server" ,xorg-server-for-tests)))
313 (inputs
314 `(("adwaita-icon-theme" ,adwaita-icon-theme)
315 ("appstream-glib" ,appstream-glib)
316 ("colord-gtk" ,colord-gtk)
317 ("exiv2" ,exiv2)
318 ("gnome-desktop" ,gnome-desktop)
319 ("libcanberra" ,libcanberra)
320 ("libexif" ,libexif)
321 ("libtiff" ,libtiff)
322 ("libxrandr" ,libxrandr)
323 ("libxtst" ,libxtst)
324 ("libxxf86vm" ,libxxf86vm)
325 ("vte" ,vte)
326 ("xorgproto" ,xorgproto)))
327 (synopsis "Color profile manager for the GNOME desktop")
328 (description "GNOME Color Manager is a session framework that makes
329 it easy to manage, install and generate color profiles
330 in the GNOME desktop.")
331 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
332 (license license:gpl2+)))
333
334 (define-public gnome-online-miners
335 (package
336 (name "gnome-online-miners")
337 (version "3.30.0")
338 (source (origin
339 (method url-fetch)
340 (uri (string-append "mirror://gnome/sources/" name "/"
341 (version-major+minor version) "/"
342 name "-" version ".tar.xz"))
343 (sha256
344 (base32
345 "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"))))
346 (build-system glib-or-gtk-build-system)
347 (native-inputs
348 `(("gettext" ,gettext-minimal)
349 ("glib:bin" ,glib "bin")
350 ("gobject-introspection" ,gobject-introspection)
351 ("gtk+:bin" ,gtk+ "bin")
352 ("pkg-config" ,pkg-config)))
353 (inputs
354 `(("gnome-online-accounts" ,gnome-online-accounts)
355 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
356 ("grilo" ,grilo)
357 ("libgdata" ,libgdata)
358 ("libgfbgraph" ,gfbgraph)
359 ("libzapojit" ,libzapojit)
360 ("rest" ,rest)
361 ("tracker" ,tracker)))
362 (synopsis "Web Crawlers for GNOME")
363 (description "GNOME Online Miners provides a set of crawlers that
364 go through your online content and index them locally in Tracker.
365 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
366 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
367 (license license:gpl2+)))
368
369 (define-public gssdp
370 (package
371 (name "gssdp")
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 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
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 `(("gtk+" ,gtk+)
391 ("libsoup" ,libsoup)))
392 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
393 Protocol} for GNOME")
394 (description "This package provides a library to handle resource discovery
395 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
396 a debugging tool, @command{gssdp-device-sniffer}.")
397 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
398 (license license:lgpl2.0+)))
399
400 (define-public gupnp
401 (package
402 (name "gupnp")
403 (version "1.2.2")
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 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
412 (build-system meson-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 ("pkg-config" ,pkg-config)
419 ("vala" ,vala)))
420 (inputs
421 `(("gssdp" ,gssdp)
422 ("gtk+" ,gtk+)
423 ("libsoup" ,libsoup)))
424 (synopsis "PnP API for GNOME")
425 (description "This package provides GUPnP, an object-oriented framework
426 for creating UPnP devices and control points, written in C using
427 @code{GObject} and @code{libsoup}.")
428 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
429 (license license:lgpl2.0+)))
430
431 (define-public gupnp-dlna
432 (package
433 (name "gupnp-dlna")
434 (version "0.10.5")
435 (source (origin
436 (method url-fetch)
437 (uri (string-append "mirror://gnome/sources/" name "/"
438 (version-major+minor version) "/"
439 name "-" version ".tar.xz"))
440 (sha256
441 (base32
442 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
443 (build-system gnu-build-system)
444 (native-inputs
445 `(("gettext" ,gettext-minimal)
446 ("glib:bin" ,glib "bin")
447 ("gobject-introspection" ,gobject-introspection)
448 ("gtk-doc" ,gtk-doc)
449 ("libxml" ,libxml2)
450 ("pkg-config" ,pkg-config)
451 ("vala" ,vala)))
452 (inputs
453 `(("gstreamer" ,gstreamer)
454 ("gupnp" ,gupnp)))
455 (propagated-inputs
456 `(("gst-plugins-base" ,gst-plugins-base)
457 ("gst-plugins-good" ,gst-plugins-good)))
458 (synopsis "GUPnP DLNA for GNOME")
459 (description "This package provides a small utility library to
460 support DLNA-related tasks such as media profile guessing, transcoding to a
461 given profile, etc. DLNA is a subset of UPnP A/V.")
462 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
463 (license license:lgpl2.0+)))
464
465 (define-public gupnp-av
466 (package
467 (name "gupnp-av")
468 (version "0.12.11")
469 (source (origin
470 (method url-fetch)
471 (uri (string-append "mirror://gnome/sources/" name "/"
472 (version-major+minor version) "/"
473 name "-" version ".tar.xz"))
474 (sha256
475 (base32
476 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
477 (build-system gnu-build-system)
478 (native-inputs
479 `(("gettext" ,gettext-minimal)
480 ("glib:bin" ,glib "bin")
481 ("gobject-introspection" ,gobject-introspection)
482 ("gtk-doc" ,gtk-doc)
483 ("libxml" ,libxml2)
484 ("pkg-config" ,pkg-config)))
485 (inputs
486 `(("gtk+" ,gtk+)
487 ("gupnp" ,gupnp)))
488 (synopsis "GUPnP A/V for GNOME")
489 (description "This package provides a small library for handling
490 and implementation of UPnP A/V profiles.")
491 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
492 (license license:lgpl2.0+)))
493
494 (define-public libmediaart
495 (package
496 (name "libmediaart")
497 (version "1.9.4")
498 (source (origin
499 (method url-fetch)
500 (uri (string-append "mirror://gnome/sources/" name "/"
501 (version-major+minor version) "/"
502 name "-" version ".tar.xz"))
503 (sha256
504 (base32
505 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
506 (build-system gnu-build-system)
507 (native-inputs
508 `(("glib:bin" ,glib "bin")
509 ("pkg-config" ,pkg-config)))
510 (inputs
511 `(("gdk-pixbuf" ,gdk-pixbuf)
512 ("gettext" ,gettext-minimal)
513 ("gobject-introspection" ,gobject-introspection)
514 ("gtk+:doc", gtk+ "doc")
515 ("vala" ,vala)))
516 (synopsis "Media art library for the GNOME desktop")
517 (description
518 "The libmediaart library is the foundation for media art caching,
519 extraction, and lookup for applications on the desktop.")
520 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
521 (license license:lgpl2.1+)))
522
523 (define-public gnome-initial-setup
524 (package
525 (name "gnome-initial-setup")
526 (version "3.32.1")
527 (source (origin
528 (method url-fetch)
529 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
530 (version-major+minor version)
531 "/gnome-initial-setup-" version ".tar.xz"))
532 (sha256
533 (base32
534 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
535 (build-system meson-build-system)
536 (arguments
537 '(#:configure-flags '(;; Enable camera support for user selfie.
538 "-Dcheese=auto"
539 "-Dsystemd=false")))
540 (native-inputs
541 `(("gettext" ,gettext-minimal)
542 ("glib:bin" ,glib "bin")
543 ("gobject-introspection" ,gobject-introspection)
544 ("gtk+:bin" ,gtk+ "bin")
545 ("pkg-config" ,pkg-config)))
546 (inputs
547 `(("accountsservice" ,accountsservice)
548 ;("adwaita-icon-theme" ,adwaita-icon-theme)
549 ("gdm" ,gdm)
550 ("geoclue" ,geoclue)
551 ("gnome-desktop" ,gnome-desktop)
552 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
553 ("gnome-online-accounts" ,gnome-online-accounts)
554 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
555 ("gstreamer" ,gstreamer)
556 ("ibus" ,ibus)
557 ("json-glib" ,json-glib)
558 ("krb5" ,mit-krb5)
559 ("libgweather" ,libgweather)
560 ("libsecret" ,libsecret)
561 ("network-manager" ,network-manager)
562 ("network-manager-applet" ,network-manager-applet)
563 ("packagekit" ,packagekit)
564 ("polkit" ,polkit)
565 ("pwquality" ,libpwquality)
566 ("rest" ,rest)
567 ("upower" ,upower)
568 ("webkitgtk" ,webkitgtk)))
569 (synopsis "Initial setup wizard for GNOME desktop")
570 (description "This package provides a set-up wizard when a
571 user logs into GNOME for the first time. It typically provides a
572 tour of all gnome components and allows the user to set them up.")
573 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
574 (license license:gpl2)))
575
576 (define-public gnome-user-share
577 (package
578 (name "gnome-user-share")
579 (version "3.33.1")
580 (source (origin
581 (method url-fetch)
582 (uri (string-append "mirror://gnome/sources/" name "/"
583 (version-major+minor version) "/"
584 name "-" version ".tar.xz"))
585 (sha256
586 (base32
587 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
588 (build-system meson-build-system)
589 (arguments
590 `(#:glib-or-gtk? #t
591 #:configure-flags
592 `("-Dsystemd=false"
593 ;; Enable nautilus extension for file sharing.
594 "-Dnautilus_extension=true")))
595 (native-inputs
596 `(("gettext" ,gettext-minimal)
597 ("glib:bin" ,glib "bin")
598 ("gobject-introspection" ,gobject-introspection)
599 ("gtk+:bin" ,gtk+ "bin")
600 ("pkg-config" ,pkg-config)
601 ("yelp-tools" ,yelp-tools)))
602 (inputs
603 `(("glib" ,glib)
604 ("gnome-bluetooth" ,gnome-bluetooth)
605 ("gtk+" ,gtk+)
606 ("libcanberra" ,libcanberra)
607 ("libnotify" ,libnotify)
608 ("nautilus" ,nautilus))) ; For nautilus extension.
609 (synopsis "File sharing for GNOME desktop")
610 (description "GNOME User Share is a small package that binds together
611 various free software projects to bring easy to use user-level file
612 sharing to the masses.")
613 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
614 (license license:gpl2+)))
615
616 (define-public sushi
617 (package
618 (name "sushi")
619 (version "3.32.1")
620 (source (origin
621 (method url-fetch)
622 (uri (string-append "mirror://gnome/sources/" name "/"
623 (version-major+minor version) "/"
624 name "-" version ".tar.xz"))
625 (sha256
626 (base32
627 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
628 (build-system meson-build-system)
629 (arguments
630 `(#:glib-or-gtk? #t
631 #:phases
632 (modify-phases %standard-phases
633 (add-after 'glib-or-gtk-wrap 'wrap-typelib
634 (lambda* (#:key outputs #:allow-other-keys)
635 (let ((prog (string-append (assoc-ref outputs "out")
636 "/bin/sushi")))
637 ;; Put existing typelibs before sushi's deps, so as to correctly
638 ;; infer gdk-pixbuf
639 (wrap-program prog
640 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
641 #t))))))
642 (native-inputs
643 `(("glib:bin" ,glib "bin")
644 ("gettext" ,gettext-minimal)
645 ("gobject-introspection" ,gobject-introspection)
646 ("pkg-config" ,pkg-config)))
647 (inputs
648 `(("clutter" ,clutter)
649 ("clutter-gst" ,clutter-gst)
650 ("clutter-gtk" ,clutter-gtk)
651 ("evince" ,evince) ; For file previewing.
652 ("freetype" ,freetype)
653 ("gdk-pixbuf" ,gdk-pixbuf)
654 ("gjs" ,gjs)
655 ("gst-plugins-base" ,gst-plugins-base)
656 ("gstreamer" ,gstreamer)
657 ("gtksourceview" ,gtksourceview-3)
658 ("harfbuzz" ,harfbuzz)
659 ("libepoxy" ,libepoxy)
660 ("libmusicbrainz" ,libmusicbrainz)
661 ("libxml2" ,libxml2)
662 ("neon" ,neon)
663 ("webkitgtk" ,webkitgtk)))
664 (synopsis "File previewer for the GNOME desktop")
665 (description "Sushi is a DBus-activated service that allows applications to
666 preview files on the GNOME desktop.")
667 (home-page "https://gitlab.gnome.org/GNOME/sushi")
668 (license license:gpl2+)))
669
670 (define-public rygel
671 (package
672 (name "rygel")
673 (version "0.38.3")
674 (source (origin
675 (method url-fetch)
676 (uri (string-append "mirror://gnome/sources/" name "/"
677 (version-major+minor version) "/"
678 name "-" version ".tar.xz"))
679 (sha256
680 (base32
681 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
682 (build-system gnu-build-system)
683 (native-inputs
684 `(("gettext" ,gettext-minimal)
685 ("gobject-introspection" ,gobject-introspection)
686 ("gtk-doc" ,gtk-doc)
687 ("pkg-config" ,pkg-config)
688 ("vala" ,vala)))
689 (inputs
690 `(("gdk-pixbuf" ,gdk-pixbuf)
691 ("gssdp" ,gssdp)
692 ("gstreamer" ,gstreamer)
693 ("gst-plugins-base" ,gst-plugins-base)
694 ("gtk+" ,gtk+)
695 ("gupnp" ,gupnp)
696 ("gupnp-av" ,gupnp-av)
697 ("gupnp-dlna" ,gupnp-dlna)
698 ("libgee" ,libgee)
699 ("libmediaart" ,libmediaart)
700 ("libsoup" ,libsoup)
701 ("libxslt" ,libxslt)
702 ("libunistring" ,libunistring)
703 ("tracker" ,tracker)))
704 (synopsis "Share audio, video, and pictures with other devices")
705 (description
706 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
707 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
708 pictures, and to control a media player on your home network.
709
710 Rygel achieves interoperability with other devices by trying to conform to the
711 strict requirements of DLNA and by converting media on-the-fly to formats that
712 client devices can handle.")
713 (home-page "https://wiki.gnome.org/Projects/Rygel")
714 (license (list
715 ;; For logo (data/icons/*).
716 license:cc-by-sa3.0
717 ;; For all others.
718 license:lgpl2.1+))))
719
720 (define-public libnma
721 (package
722 (name "libnma")
723 (version "1.8.26")
724 (source (origin
725 (method url-fetch)
726 (uri (string-append "mirror://gnome/sources/" name "/"
727 (version-major+minor version) "/"
728 name "-" version ".tar.xz"))
729 (sha256
730 (base32
731 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
732 (build-system meson-build-system)
733 (arguments
734 `(#:glib-or-gtk? #t))
735 (native-inputs
736 `(("gettext" ,gettext-minimal)
737 ("glib:bin" ,glib "bin")
738 ("gtk-doc" ,gtk-doc)
739 ("gobject-introspection" ,gobject-introspection)
740 ("pkg-config" ,pkg-config)))
741 (inputs
742 `(("adwaita-icon-theme" ,adwaita-icon-theme)
743 ("gcr" ,gcr)
744 ("gtk+" ,gtk+)
745 ("iso-codes" ,iso-codes)
746 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
747 ("network-manager" ,network-manager)))
748 (synopsis "Network Manager's applet library")
749 (description "Libnma is an applet library for Network Manager. It was
750 initially part of network-manager-applet and has now become a separate
751 project.")
752 (home-page "https://gitlab.gnome.org/GNOME/libnma")
753
754 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
755 ;; "LGPL-2.1+".
756 (license license:gpl2+)))
757
758 (define-public gnome-menus
759 (package
760 (name "gnome-menus")
761 (version "3.32.0")
762 (source (origin
763 (method url-fetch)
764 (uri (string-append "mirror://gnome/sources/gnome-menus/"
765 (version-major+minor version) "/"
766 name "-" version ".tar.xz"))
767 (sha256
768 (base32
769 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
770 (build-system gnu-build-system)
771 (native-inputs
772 `(("gettext" ,gettext-minimal)
773 ("glib" ,glib)
774 ("pkg-config" ,pkg-config)))
775 (synopsis "Menu support for GNOME desktop")
776 (description "GNOME Menus contains the libgnome-menu library, the layout
777 configuration files for the GNOME menu, as well as a simple menu editor.")
778 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
779 (license license:lgpl2.0+)))
780
781 (define-public deja-dup
782 (package
783 (name "deja-dup")
784 (version "34.3")
785 (source (origin
786 (method url-fetch)
787 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
788 (sha256
789 (base32
790 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
791 (patches
792 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
793 (build-system glib-or-gtk-build-system)
794 (arguments
795 `(#:modules ((guix build gnu-build-system)
796 ((guix build cmake-build-system) #:prefix cmake:)
797 (guix build glib-or-gtk-build-system)
798 (guix build utils))
799 #:imported-modules (,@%glib-or-gtk-build-system-modules
800 (guix build cmake-build-system))
801 #:test-target "test"
802 #:configure-flags (list (string-append
803 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
804 (string-append
805 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
806 #:phases
807 (modify-phases %standard-phases
808 (add-after 'unpack 'patch-lockfile-deletion
809 (lambda rest
810 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
811 (("/bin/rm")
812 (which "rm")))))
813 (replace 'configure
814 (assoc-ref cmake:%standard-phases 'configure))
815 (delete 'check) ;; Fails due to issues with DBus
816 (add-after 'install 'wrap-deja-dup
817 (lambda* (#:key inputs outputs #:allow-other-keys)
818 (let ((python (assoc-ref inputs "python"))
819 (python-path (getenv "PYTHONPATH"))
820 (duplicity (assoc-ref inputs "duplicity"))
821 (out (assoc-ref outputs "out")))
822 (for-each
823 (lambda (program)
824 (wrap-program program
825 `("PATH" ":" prefix (,(string-append python "/bin")
826 ,(string-append duplicity "/bin"))))
827 (wrap-program program
828 `("PYTHONPATH" ":" prefix (,python-path))))
829
830 (find-files (string-append out "/bin")))
831 #t))))))
832 (inputs
833 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
834 ("gobject-introspection" ,gobject-introspection)
835 ("duplicity" ,duplicity)
836 ("python" ,python-2)
837 ("python-pygobject" ,python2-pygobject)
838 ("gtk+" ,gtk+)
839 ("libnotify" ,libnotify)
840 ("libpeas" ,libpeas)
841 ("libsecret" ,libsecret)
842 ("packagekit" ,packagekit)))
843 (native-inputs
844 `(("pkg-config" ,pkg-config)
845 ("vala" ,vala)
846 ("gettext" ,gettext-minimal)
847 ("itstool" ,itstool)
848 ("intltool" ,intltool)
849 ("cmake" ,cmake-minimal)))
850 (home-page "https://launchpad.net/deja-dup")
851 (synopsis "Simple backup tool, for regular encrypted backups")
852 (description
853 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
854 uses duplicity as the backend, which supports incremental backups and storage
855 either on a local, or remote machine via a number of methods.")
856 (license license:gpl3+)))
857
858 (define-public gnome-user-docs
859 (package
860 (name "gnome-user-docs")
861 (version "3.32.3")
862 (source
863 (origin
864 (method url-fetch)
865 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
866 (version-major+minor version)
867 "/gnome-user-docs-" version ".tar.xz"))
868 (sha256
869 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
870 (build-system gnu-build-system)
871 (native-inputs
872 `(("gettext" ,gettext-minimal)
873 ("itstool" ,itstool)
874 ("pkg-config" ,pkg-config)
875 ("xmllint" ,libxml2)))
876 (synopsis "User documentation for the GNOME desktop")
877 (description
878 "The GNOME User Documentation explains how to use the GNOME desktop and its
879 components. It covers usage and setup of the core GNOME programs by end-users
880 and system administrators.")
881 (home-page "https://live.gnome.org/DocumentationProject")
882 (license license:cc-by3.0)))
883
884 (define-public gnome-getting-started-docs
885 (package
886 (name "gnome-getting-started-docs")
887 (version "3.32.2")
888 (source
889 (origin
890 (method url-fetch)
891 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
892 (version-major+minor version)
893 "/gnome-getting-started-docs-" version ".tar.xz"))
894 (sha256
895 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
896 (build-system gnu-build-system)
897 (native-inputs
898 `(("gettext" ,gettext-minimal)
899 ("itstool" ,itstool)
900 ("pkg-config" ,pkg-config)
901 ("xmllint" ,libxml2)))
902 (synopsis "Help to get new users started with the GNOME desktop")
903 (description
904 "The GNOME Getting Started Documentation contains GNOME's intuitive
905 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
906
907 It is normally used together with @command{gnome-initial-setup}, but is also
908 useful as a tutorial and users' guide for new or less experienced users.")
909 (home-page "https://live.gnome.org/DocumentationProject")
910 (license license:cc-by-sa3.0)))
911
912 (define-public dia
913 ;; This version from GNOME's repository includes fixes for compiling with
914 ;; recent versions of the build tools. The latest activity on the
915 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
916 ;; fixes in 2016.
917 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
918 (package
919 (name "dia")
920 (version (git-version "0.97.3" "1" commit))
921 (source (origin
922 (method git-fetch)
923 (uri (git-reference
924 (url "https://gitlab.gnome.org/GNOME/dia.git/")
925 (commit commit)))
926 (file-name (git-file-name name version))
927 (sha256
928 (base32
929 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
930 (build-system gnu-build-system)
931 (inputs
932 `(("freetype" ,freetype)
933 ("gdk-pixbuf" ,gdk-pixbuf)
934 ("gtk+" ,gtk+-2)
935 ("libart-lgpl" ,libart-lgpl)
936 ("libxml2" ,libxml2)
937 ("pango" ,pango)))
938 (native-inputs
939 `(("autoconf" ,autoconf)
940 ("automake" ,automake)
941 ("intltool" ,intltool)
942 ("glib" ,glib "bin")
943 ("libtool" ,libtool)
944 ("perl" ,perl)
945 ("pkg-config" ,pkg-config)
946 ("python-wrapper" ,python-wrapper)))
947 (arguments
948 `(#:phases
949 (modify-phases %standard-phases
950 (add-before 'bootstrap 'dont-configure-during-bootstrap
951 (lambda _
952 (setenv "NOCONFIGURE" "true")
953 #t)))))
954 (home-page "https://wiki.gnome.org/Apps/Dia")
955 (synopsis "Diagram creation for GNOME")
956 (description "Dia can be used to draw different types of diagrams, and
957 includes support for UML static structure diagrams (class diagrams), entity
958 relationship modeling, and network diagrams. The program supports various file
959 formats like PNG, SVG, PDF and EPS.")
960 (license license:gpl2+))))
961
962 ;; This is the unstable release, but it is required for the current stable
963 ;; release of gvfs (1.38.1).
964 (define-public libgdata
965 (package
966 (name "libgdata")
967 (version "0.17.9")
968 (source (origin
969 (method url-fetch)
970 (uri (string-append "mirror://gnome/sources/" name "/"
971 (version-major+minor version) "/"
972 name "-" version ".tar.xz"))
973 (sha256
974 (base32
975 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
976 (build-system gnu-build-system)
977 (arguments
978 '(#:phases
979 (modify-phases %standard-phases
980 (add-before 'check 'disable-failing-tests
981 (lambda _
982 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
983 ;; They have been removed in libgdata 0.17.6, so just do the same.
984 (substitute* "gdata/tests/Makefile"
985 (("picasaweb\\$\\(EXEEXT\\) ") ""))
986 #t)))))
987 (native-inputs
988 `(("glib:bin" ,glib "bin")
989 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
990 ("intltool" ,intltool)
991 ("pkg-config" ,pkg-config)
992 ("uhttpmock" ,uhttpmock)))
993 (inputs
994 `(("cyrus-sasl" ,cyrus-sasl)
995 ("glib-networking" ,glib-networking)))
996 (propagated-inputs
997 `(("gcr" ,gcr)
998 ("glib" ,glib)
999 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1000 ("json-glib" ,json-glib)
1001 ("liboauth" ,liboauth)
1002 ("libsoup" ,libsoup)
1003 ("libxml2" ,libxml2)))
1004 (home-page "https://wiki.gnome.org/Projects/libgdata")
1005 (synopsis "Library for accessing online service APIs")
1006 (description
1007 "libgdata is a GLib-based library for accessing online service APIs using
1008 the GData protocol — most notably, Google's services. It provides APIs to
1009 access the common Google services, and has full asynchronous support.")
1010 (license license:lgpl2.1+)))
1011
1012 (define-public libgxps
1013 (package
1014 (name "libgxps")
1015 (version "0.3.1")
1016 (source (origin
1017 (method url-fetch)
1018 (uri (string-append "mirror://gnome/sources/" name "/"
1019 (version-major+minor version) "/"
1020 name "-" version ".tar.xz"))
1021 (sha256
1022 (base32
1023 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1024 (build-system meson-build-system)
1025 (native-inputs
1026 `(("gobject-introspection" ,gobject-introspection)
1027 ("pkg-config" ,pkg-config)))
1028 (inputs
1029 `(("gtk+" ,gtk+)
1030 ("libjpeg" ,libjpeg-turbo)
1031 ("lcms" ,lcms)
1032 ("libtiff" ,libtiff)))
1033 (propagated-inputs
1034 ;; In Requires of libgxps.pc.
1035 `(("cairo" ,cairo)
1036 ("glib" ,glib)
1037 ("libarchive" ,libarchive)))
1038 (home-page "https://wiki.gnome.org/Projects/libgxps")
1039 (synopsis "GObject-based library for handling and rendering XPS documents")
1040 (description
1041 "libgxps is a GObject-based library for handling and rendering XPS
1042 documents. This package also contains binaries that can convert XPS documents
1043 to other formats.")
1044 (license license:lgpl2.1+)))
1045
1046 (define-public gnome-characters
1047 (package
1048 (name "gnome-characters")
1049 (version "3.30.0")
1050 (source
1051 (origin
1052 (method url-fetch)
1053 (uri (string-append "mirror://gnome/sources/"
1054 "gnome-characters/" (version-major+minor version)
1055 "/gnome-characters-" version ".tar.xz"))
1056 (sha256
1057 (base32
1058 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1059 (build-system meson-build-system)
1060 (arguments
1061 `(#:glib-or-gtk? #t
1062 #:phases (modify-phases %standard-phases
1063 (add-after 'install 'wrap
1064 (lambda* (#:key outputs #:allow-other-keys)
1065 ;; GNOME Characters needs Typelib files from GTK and
1066 ;; gnome-desktop.
1067 (wrap-program (string-append (assoc-ref outputs "out")
1068 "/bin/gnome-characters")
1069 `("GI_TYPELIB_PATH" ":" prefix
1070 (,(getenv "GI_TYPELIB_PATH"))))
1071 #t)))))
1072 (native-inputs
1073 `(("gettext" ,gettext-minimal)
1074 ("glib:bin" ,glib "bin")
1075 ("gtk+:bin" ,gtk+ "bin")
1076 ("pkg-config" ,pkg-config)
1077 ("python" ,python-minimal)))
1078 (inputs
1079 `(("gjs" ,gjs)
1080 ("gtk+" ,gtk+)
1081 ("libunistring" ,libunistring)
1082 ("gnome-desktop" ,gnome-desktop)))
1083 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1084 (synopsis "Find and insert unusual characters")
1085 (description "Characters is a simple utility application to find
1086 and insert unusual characters. It allows you to quickly find the
1087 character you are looking for by searching for keywords.")
1088 (license license:bsd-3)))
1089
1090 (define-public gnome-common
1091 (package
1092 (name "gnome-common")
1093 (version "3.18.0")
1094 (source
1095 (origin
1096 (method url-fetch)
1097 (uri (string-append "mirror://gnome/sources/" name "/"
1098 (version-major+minor version) "/"
1099 name "-" version ".tar.xz"))
1100 (sha256
1101 (base32
1102 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1103 (build-system gnu-build-system)
1104 (home-page "https://www.gnome.org/")
1105 (synopsis "Bootstrap GNOME modules built from Git")
1106 (description "gnome-common contains various files needed to bootstrap
1107 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1108 can be used to configure a source directory checked out from Git and some
1109 commonly used macros.")
1110 (license license:gpl2+)))
1111
1112 (define-public gnome-contacts
1113 (package
1114 (name "gnome-contacts")
1115 (version "3.32.1")
1116 (source (origin
1117 (method url-fetch)
1118 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1119 (version-major+minor version) "/"
1120 name "-" version ".tar.xz"))
1121 (sha256
1122 (base32
1123 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
1124 (build-system meson-build-system)
1125 (arguments
1126 `(#:phases
1127 (modify-phases %standard-phases
1128 (add-after 'unpack 'generate-vapis
1129 (lambda* (#:key inputs #:allow-other-keys)
1130 ;; To generate goa's missing .vapi file
1131 (define goa
1132 (assoc-ref inputs "gnome-online-accounts:lib"))
1133
1134 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1135 "--library=goa-1.0"
1136 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1137 #t)))))
1138 (native-inputs
1139 `(("glib:bin" ,glib "bin")
1140 ("gtk+:bin" ,gtk+ "bin")
1141 ("pkg-config" ,pkg-config)))
1142 (inputs
1143 `(("cheese" ,cheese)
1144 ("docbook-xml" ,docbook-xml)
1145 ("dockbook-xsl" ,docbook-xsl)
1146 ("evolution-data-server" ,evolution-data-server)
1147 ("gettext" ,gettext-minimal)
1148 ("gnome-desktop" ,gnome-desktop)
1149 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1150 ("gobject-introspection" ,gobject-introspection)
1151 ("gst-plugins-base" ,gst-plugins-base)
1152 ("gtk+" ,gtk+)
1153 ("libgee" ,libgee)
1154 ("libxslt" ,libxslt)
1155 ("telepathy-glib" ,telepathy-glib)
1156 ("vala" ,vala)))
1157 (propagated-inputs
1158 `(("folks", folks)
1159 ("telepathy-mission-control" ,telepathy-mission-control)))
1160 (synopsis "GNOME's integrated address book")
1161 (description
1162 "GNOME Contacts organizes your contact information from online and
1163 offline sources, providing a centralized place for managing your contacts.")
1164 (home-page "https://wiki.gnome.org/Apps/Contacts")
1165 (license license:gpl2+)))
1166
1167 (define-public gnome-desktop
1168 (package
1169 (name "gnome-desktop")
1170 (version "3.32.2")
1171 (source
1172 (origin
1173 (method url-fetch)
1174 (uri (string-append "mirror://gnome/sources/" name "/"
1175 (version-major+minor version) "/"
1176 name "-" version ".tar.xz"))
1177 (sha256
1178 (base32
1179 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
1180 (build-system meson-build-system)
1181 (arguments
1182 '(#:phases
1183 (modify-phases %standard-phases
1184 (add-before 'configure 'patch-path
1185 (lambda* (#:key inputs #:allow-other-keys)
1186 (let ((libc (assoc-ref inputs "libc")))
1187 (substitute* "libgnome-desktop/gnome-languages.c"
1188 (("\"locale\"")
1189 (string-append "\"" libc "/bin/locale\"")))
1190 #t)))
1191 (add-before 'check 'pre-check
1192 (lambda* (#:key inputs #:allow-other-keys)
1193 ;; Tests require a running X server and locales.
1194 (system "Xvfb :1 &")
1195 (setenv "DISPLAY" ":1")
1196 (setenv "GUIX_LOCPATH"
1197 (string-append (assoc-ref inputs "glibc-locales")
1198 "/lib/locale"))
1199 #t)))))
1200 (native-inputs
1201 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1202 ("glibc-locales" ,glibc-locales) ; for tests
1203 ("gobject-introspection" ,gobject-introspection)
1204 ("itstool" ,itstool)
1205 ("intltool" ,intltool)
1206 ("pkg-config" ,pkg-config)
1207 ("xmllint" ,libxml2)
1208 ("xorg-server" ,xorg-server-for-tests)))
1209 (propagated-inputs
1210 ;; Required by gnome-desktop-3.0.pc.
1211 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1212 ("gtk+" ,gtk+)
1213 ("iso-codes" ,iso-codes)
1214 ("libseccomp" ,libseccomp)
1215 ("libx11" ,libx11)
1216 ("xkeyboard-config" ,xkeyboard-config)))
1217 (inputs
1218 `(("gdk-pixbuf" ,gdk-pixbuf)
1219 ("glib" ,glib)
1220 ("libxext" ,libxext)
1221 ("libxkbfile" ,libxkbfile)
1222 ("libxrandr" ,libxrandr)))
1223 (home-page "https://www.gnome.org/")
1224 (synopsis
1225 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1226 (description
1227 "The libgnome-desktop library provides API shared by several applications
1228 on the desktop, but that cannot live in the platform for various reasons.
1229 There is no API or ABI guarantee, although we are doing our best to provide
1230 stability. Documentation for the API is available with gtk-doc.
1231
1232 The gnome-about program helps find which version of GNOME is installed.")
1233 ; Some bits under the LGPL.
1234 (license license:gpl2+)))
1235
1236 (define-public gnome-doc-utils
1237 (package
1238 (name "gnome-doc-utils")
1239 (version "0.20.10")
1240 (source
1241 (origin
1242 (method url-fetch)
1243 (uri (string-append "mirror://gnome/sources/" name "/"
1244 (version-major+minor version) "/"
1245 name "-" version ".tar.xz"))
1246 (sha256
1247 (base32
1248 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1249 (build-system gnu-build-system)
1250 (native-inputs
1251 `(("intltool" ,intltool)
1252 ("docbook-xml" ,docbook-xml-4.4)
1253 ("python2-libxml2" ,python2-libxml2)
1254 ("libxml2" ,libxml2)
1255 ("libxslt" ,libxslt)
1256 ("pkg-config" ,pkg-config)
1257 ("python-2" ,python-2)))
1258 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1259 (synopsis
1260 "Documentation utilities for the Gnome project")
1261 (description
1262 "Gnome-doc-utils is a collection of documentation utilities for the
1263 Gnome project. It includes xml2po tool which makes it easier to translate
1264 and keep up to date translations of documentation.")
1265 (license license:gpl2+))) ; xslt under lgpl
1266
1267 (define-public gnome-disk-utility
1268 (package
1269 (name "gnome-disk-utility")
1270 (version "3.32.1")
1271 (source (origin
1272 (method url-fetch)
1273 (uri (string-append "mirror://gnome/sources/" name "/"
1274 (version-major+minor version) "/"
1275 name "-" version ".tar.xz"))
1276 (sha256
1277 (base32
1278 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
1279 (build-system meson-build-system)
1280 (arguments
1281 '(#:phases
1282 (modify-phases %standard-phases
1283 (add-after 'unpack 'skip-gtk-update-icon-cache
1284 ;; Don't create 'icon-theme.cache'.
1285 (lambda _
1286 (substitute* "meson_post_install.py"
1287 (("gtk-update-icon-cache") "true"))
1288 #t)))))
1289 (native-inputs
1290 `(("glib:bin" ,glib "bin")
1291 ("intltool" ,intltool)
1292 ("pkg-config" ,pkg-config)
1293 ("docbook-xml" ,docbook-xml)
1294 ("docbook-xsl" ,docbook-xsl)
1295 ("libxml2" ,libxml2)
1296 ("libxslt" ,libxslt)))
1297 (inputs
1298 `(("glib" ,glib)
1299 ("appstream-glib" ,appstream-glib)
1300 ("gnome-settings-daemon" ,gnome-settings-daemon)
1301 ("gtk+" ,gtk+)
1302 ("libcanberra" ,libcanberra)
1303 ("libdvdread" ,libdvdread)
1304 ("libnotify" ,libnotify)
1305 ("libpwquality" ,libpwquality)
1306 ("libsecret" ,libsecret)
1307 ("udisks" ,udisks)))
1308 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1309 (synopsis "Disk management utility for GNOME")
1310 (description "Disk management utility for GNOME.")
1311 (license license:gpl2+)))
1312
1313 (define-public gnome-font-viewer
1314 (package
1315 (name "gnome-font-viewer")
1316 (version "3.30.0")
1317 (source (origin
1318 (method url-fetch)
1319 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1320 (version-major+minor version)
1321 "/gnome-font-viewer-" version ".tar.xz"))
1322 (sha256
1323 (base32
1324 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1325 (build-system meson-build-system)
1326 (arguments
1327 '(#:phases
1328 (modify-phases %standard-phases
1329 (add-after 'unpack 'patch-post-install-script
1330 (lambda _
1331 (substitute* "meson-postinstall.sh"
1332 (("update-desktop-database") (which "true")))
1333 #t)))))
1334 (native-inputs
1335 `(("gettext" ,gettext-minimal)
1336 ("glib:bin" ,glib "bin")
1337 ("pkg-config" ,pkg-config)))
1338 (inputs
1339 `(("glib" ,glib)
1340 ("gnome-desktop" ,gnome-desktop)
1341 ("gtk+" ,gtk+)))
1342 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1343 (synopsis "GNOME Fonts")
1344 (description "Application to show you the fonts installed on your computer
1345 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1346 the font would look under various sizes.")
1347 (license license:gpl2+)))
1348
1349 (define-public gcr
1350 (package
1351 (name "gcr")
1352 (version "3.28.1")
1353 (source (origin
1354 (method url-fetch)
1355 (uri (string-append "mirror://gnome/sources/" name "/"
1356 (version-major+minor version) "/"
1357 name "-" version ".tar.xz"))
1358 (sha256
1359 (base32
1360 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
1361 (patches
1362 (list
1363 ;; This patch solves an ordering issue that showed up when
1364 ;; running the test suite against newer Glib 2.60. See
1365 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
1366 (origin
1367 (method url-fetch)
1368 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
1369 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
1370 (file-name "gcr-hashtable-ordering.patch")
1371 (sha256
1372 (base32
1373 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
1374 (build-system gnu-build-system)
1375 (arguments
1376 '(#:phases
1377 (modify-phases %standard-phases
1378 ;; These fail because /var/lib/dbus/machine-id is not present in the
1379 ;; build environment.
1380 (add-after 'unpack 'disable-failing-tests
1381 (lambda _
1382 (substitute* "gcr/test-system-prompt.c"
1383 (("g_test_add") "//")
1384 (("return.*") "return 0;"))
1385 #t))
1386 (add-before 'check 'pre-check
1387 (lambda _
1388 ;; Some tests expect to write to $HOME.
1389 (setenv "HOME" "/tmp")
1390 #t)))))
1391 (inputs
1392 `(("dbus" ,dbus)
1393 ("gnupg" ,gnupg) ;called as a child process during tests
1394 ("libgcrypt" ,libgcrypt)))
1395 (native-inputs
1396 `(("python" ,python-2) ;for tests
1397 ("pkg-config" ,pkg-config)
1398 ("glib" ,glib "bin")
1399 ("gobject-introspection" ,gobject-introspection)
1400 ("intltool" ,intltool)
1401 ("libxml2" ,libxml2)
1402 ("vala" ,vala)
1403 ("xsltproc" ,libxslt)))
1404 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1405 (propagated-inputs
1406 `(("p11-kit" ,p11-kit)
1407 ("glib" ,glib)
1408 ("gtk+" ,gtk+)))
1409 (home-page "https://www.gnome.org")
1410 (synopsis "Libraries for displaying certificates and accessing key stores")
1411 (description
1412 "The GCR package contains libraries used for displaying certificates and
1413 accessing key stores. It also provides the viewer for crypto files on the
1414 GNOME Desktop.")
1415 (license license:lgpl2.1+)))
1416
1417 (define-public libgnome-keyring
1418 (package
1419 (name "libgnome-keyring")
1420 (version "3.12.0")
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 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1429 (build-system gnu-build-system)
1430 (inputs
1431 `(("libgcrypt" ,libgcrypt)
1432 ("dbus" ,dbus)))
1433 (native-inputs
1434 `(("pkg-config" ,pkg-config)
1435 ("glib" ,glib "bin")
1436 ("intltool" ,intltool)))
1437 (propagated-inputs
1438 ;; Referred to in .h files and .pc.
1439 `(("glib" ,glib)))
1440 (home-page "https://www.gnome.org")
1441 (synopsis "Accessing passwords from the GNOME keyring")
1442 (description
1443 "Client library to access passwords from the GNOME keyring.")
1444
1445 ;; Though a couple of files are LGPLv2.1+.
1446 (license license:lgpl2.0+)))
1447
1448 (define-public gnome-keyring
1449 (package
1450 (name "gnome-keyring")
1451 (version "3.28.2")
1452 (source (origin
1453 (method url-fetch)
1454 (uri (string-append "mirror://gnome/sources/" name "/"
1455 (version-major+minor version) "/"
1456 name "-" version ".tar.xz"))
1457 (sha256
1458 (base32
1459 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
1460 (build-system gnu-build-system)
1461 (arguments
1462 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1463 ;not exist
1464 #:configure-flags
1465 (list
1466 (string-append "--with-pkcs11-config="
1467 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1468 (string-append "--with-pkcs11-modules="
1469 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1470 #:phases
1471 (modify-phases %standard-phases
1472 (add-after 'unpack 'fix-/bin/sh-reference
1473 (lambda _
1474 (substitute* "po/Makefile.in.in"
1475 (("/bin/sh") (which "sh")))
1476 #t))
1477 (add-after 'unpack 'fix-docbook
1478 (lambda* (#:key inputs #:allow-other-keys)
1479 (substitute* "docs/Makefile.am"
1480 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1481 (string-append (assoc-ref inputs "docbook-xsl")
1482 "/xml/xsl/docbook-xsl-"
1483 ,(package-version docbook-xsl)
1484 "/manpages/docbook.xsl")))
1485 (setenv "XML_CATALOG_FILES"
1486 (string-append (assoc-ref inputs "docbook-xml")
1487 "/xml/dtd/docbook/catalog.xml"))
1488 ;; Rerun the whole thing to avoid version mismatch ("This is
1489 ;; Automake 1.15.1, but the definition used by this
1490 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1491 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1492 (invoke "autoconf")
1493 (invoke "aclocal")
1494 (invoke "automake" "-ac"))))))
1495 (inputs
1496 `(("libgcrypt" ,libgcrypt)
1497 ("linux-pam" ,linux-pam)
1498 ("openssh" ,openssh)
1499 ("dbus" ,dbus)
1500 ("gcr" ,gcr)))
1501 (native-inputs
1502 `(("pkg-config" ,pkg-config)
1503 ("glib" ,glib "bin")
1504 ("glib" ,glib) ; for m4 macros
1505 ("python" ,python-2) ;for tests
1506 ("intltool" ,intltool)
1507 ("autoconf" ,autoconf)
1508 ("automake" ,automake)
1509 ("libxslt" ,libxslt) ;for documentation
1510 ("docbook-xml" ,docbook-xml-4.2)
1511 ("docbook-xsl" ,docbook-xsl)))
1512 (home-page "https://www.gnome.org")
1513 (synopsis "Daemon to store passwords and encryption keys")
1514 (description
1515 "gnome-keyring is a program that keeps passwords and other secrets for
1516 users. It is run as a daemon in the session, similar to ssh-agent, and other
1517 applications locate it via an environment variable or D-Bus.
1518
1519 The program can manage several keyrings, each with its own master password,
1520 and there is also a session keyring which is never stored to disk, but
1521 forgotten when the session ends.")
1522 (license license:lgpl2.1+)))
1523
1524 (define-public evince
1525 (package
1526 (name "evince")
1527 (version "3.34.2")
1528 (source (origin
1529 (method url-fetch)
1530 (uri (string-append "mirror://gnome/sources/evince/"
1531 (version-major+minor version) "/"
1532 "evince-" version ".tar.xz"))
1533 (sha256
1534 (base32
1535 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
1536 (build-system glib-or-gtk-build-system)
1537 (arguments
1538 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1539 #:phases
1540 (modify-phases %standard-phases
1541 (add-before 'install 'skip-gtk-update-icon-cache
1542 ;; Don't create 'icon-theme.cache'.
1543 (lambda _
1544 (substitute* "data/Makefile"
1545 (("gtk-update-icon-cache") "true"))
1546 #t)))))
1547 (inputs
1548 `(("libarchive" ,libarchive)
1549 ("libgxps" ,libgxps)
1550 ("libspectre" ,libspectre)
1551 ("djvulibre" ,djvulibre)
1552 ("ghostscript" ,ghostscript)
1553 ("poppler" ,poppler)
1554 ("libtiff" ,libtiff)
1555 ;; TODO:
1556 ;; Build libkpathsea as a shared library for DVI support.
1557 ;; ("libkpathsea" ,texlive-bin)
1558 ("gnome-desktop" ,gnome-desktop)
1559 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1560 ("gspell" ,gspell)
1561 ("libgnome-keyring" ,libgnome-keyring)
1562 ("adwaita-icon-theme" ,adwaita-icon-theme)
1563 ("gdk-pixbuf" ,gdk-pixbuf)
1564 ("atk" ,atk)
1565 ("pango" ,pango)
1566 ("gtk+" ,gtk+)
1567 ("glib" ,glib)
1568 ("libxml2" ,libxml2)
1569 ("libsm" ,libsm)
1570 ("libice" ,libice)
1571 ("shared-mime-info" ,shared-mime-info)
1572 ("dconf" ,dconf)
1573 ("libcanberra" ,libcanberra)
1574 ("libsecret" ,libsecret)
1575
1576 ;; For tests.
1577 ("dogtail" ,python2-dogtail)))
1578 (native-inputs
1579 `(("itstool" ,itstool)
1580 ("intltool" ,intltool)
1581 ("glib" ,glib "bin")
1582 ("gobject-introspection" ,gobject-introspection)
1583 ("pkg-config" ,pkg-config)
1584 ("xmllint" ,libxml2)))
1585 (home-page
1586 "https://www.gnome.org/projects/evince/")
1587 (synopsis "GNOME's document viewer")
1588 (description
1589 "Evince is a document viewer for multiple document formats. It
1590 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1591 of Evince is to replace the multiple document viewers that exist
1592 on the GNOME Desktop with a single simple application.")
1593 (license license:gpl2+)))
1594
1595 (define-public gsettings-desktop-schemas
1596 (package
1597 (name "gsettings-desktop-schemas")
1598 (version "3.32.0")
1599 (source
1600 (origin
1601 (method url-fetch)
1602 (uri (string-append "mirror://gnome/sources/" name "/"
1603 (version-major+minor version) "/"
1604 name "-" version ".tar.xz"))
1605 (sha256
1606 (base32
1607 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1608 (build-system meson-build-system)
1609 (arguments
1610 '(#:phases (modify-phases %standard-phases
1611 (add-after 'unpack 'patch-schemas
1612 (lambda* (#:key inputs #:allow-other-keys)
1613 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1614 (substitute* (find-files "schemas"
1615 "\\.gschema\\.xml\\.in$")
1616 ;; Provide the correct file name of the default GNOME
1617 ;; background, 'adwaita-timed.xml'.
1618 (("@datadir@/backgrounds/gnome")
1619 (string-append theme "/share/backgrounds/gnome"))
1620 ;; Do not reference fonts, that may not exist.
1621 (("'Source Code Pro 10'") "'Monospace 11'"))
1622 #t))))))
1623 (inputs
1624 `(("glib" ,glib)
1625 ("gnome-backgrounds" ,gnome-backgrounds)))
1626 (native-inputs
1627 `(("intltool" ,intltool)
1628 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1629 ("gobject-introspection" ,gobject-introspection)
1630 ("pkg-config" ,pkg-config)))
1631 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1632 (synopsis
1633 "GNOME settings for various desktop components")
1634 (description
1635 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1636 for settings shared by various components of the GNOME desktop.")
1637 (license license:lgpl2.1+)))
1638
1639 (define-public icon-naming-utils
1640 (package
1641 (name "icon-naming-utils")
1642 (version "0.8.90")
1643 (source
1644 (origin
1645 (method url-fetch)
1646 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1647 version ".tar.bz2"))
1648 (sha256
1649 (base32
1650 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1651 (build-system gnu-build-system)
1652 (inputs
1653 `(("perl" ,perl)
1654 ("perl-xml-simple" ,perl-xml-simple)))
1655 (arguments
1656 '(#:phases
1657 (modify-phases %standard-phases
1658 (add-after 'install 'set-load-paths
1659 ;; Tell 'icon-name-mapping' where XML::Simple is.
1660 (lambda* (#:key outputs #:allow-other-keys)
1661 (let* ((out (assoc-ref outputs "out"))
1662 (prog (string-append out "/libexec/icon-name-mapping")))
1663 (wrap-program
1664 prog
1665 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1666 #t)))))
1667 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1668 (synopsis
1669 "Utility to implement the Freedesktop Icon Naming Specification")
1670 (description
1671 "To help with the transition to the Freedesktop Icon Naming
1672 Specification, the icon naming utility maps the icon names used by the
1673 GNOME and KDE desktops to the icon names proposed in the specification.")
1674 (license license:lgpl2.1+)))
1675
1676 (define-public gnome-icon-theme
1677 (package
1678 (name "gnome-icon-theme")
1679 (version "3.12.0")
1680 (source
1681 (origin
1682 (method url-fetch)
1683 (uri (string-append "mirror://gnome/sources/" name "/"
1684 (version-major+minor version) "/"
1685 name "-" version ".tar.xz"))
1686 (sha256
1687 (base32
1688 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1689 (build-system gnu-build-system)
1690 (arguments
1691 '(#:configure-flags
1692 ;; Don't create 'icon-theme.cache'.
1693 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1694 (true (string-append coreutils "/bin/true")))
1695 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1696 (native-inputs
1697 `(("icon-naming-utils" ,icon-naming-utils)
1698 ("intltool" ,intltool)
1699 ("pkg-config" ,pkg-config)))
1700 (home-page "https://wiki.gnome.org/Personalization")
1701 (synopsis "GNOME icon theme")
1702 (description "Icons for the GNOME desktop.")
1703 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1704
1705 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1706 (define-public adwaita-icon-theme
1707 (package (inherit gnome-icon-theme)
1708 (name "adwaita-icon-theme")
1709 (version "3.32.0")
1710 (source (origin
1711 (method url-fetch)
1712 (uri (string-append "mirror://gnome/sources/" name "/"
1713 (version-major+minor version) "/"
1714 name "-" version ".tar.xz"))
1715 (sha256
1716 (base32
1717 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
1718 (native-inputs
1719 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1720
1721 (define-public tango-icon-theme
1722 (package
1723 (name "tango-icon-theme")
1724 (version "0.8.90")
1725 (source (origin
1726 (method url-fetch)
1727 (uri (string-append "http://tango.freedesktop.org/releases/"
1728 "tango-icon-theme-" version ".tar.bz2"))
1729 (sha256
1730 (base32
1731 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1732 (build-system gnu-build-system)
1733 (native-inputs
1734 `(("icon-naming-utils" ,icon-naming-utils)
1735 ("intltool" ,intltool)
1736 ("imagemagick" ,imagemagick)
1737 ("pkg-config" ,pkg-config)))
1738 (home-page "http://tango-project.org/")
1739 (synopsis "Tango icon theme")
1740 (description "This is an icon theme that follows the Tango visual
1741 guidelines.")
1742 (license license:public-domain)))
1743
1744 (define-public shared-mime-info
1745 (package
1746 (name "shared-mime-info")
1747 (version "1.10")
1748 (source (origin
1749 (method url-fetch)
1750 (uri (string-append "https://freedesktop.org/~hadess/"
1751 "shared-mime-info-" version ".tar.xz"))
1752 (sha256
1753 (base32
1754 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
1755 (build-system gnu-build-system)
1756 (arguments
1757 ;; The build system appears not to be parallel-safe.
1758 '(#:parallel-build? #f))
1759 (inputs
1760 `(("glib" ,glib)
1761 ("libxml2" ,libxml2)))
1762 (native-inputs
1763 `(("intltool" ,intltool)
1764 ("pkg-config" ,pkg-config)))
1765 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1766 (synopsis "Database of common MIME types")
1767 (description
1768 "The shared-mime-info package contains the core database of common types
1769 and the update-mime-database command used to extend it. It requires glib2 to
1770 be installed for building the update command. Additionally, it uses intltool
1771 for translations, though this is only a dependency for the maintainers. This
1772 database is translated at Transifex.")
1773 (license license:gpl2+)))
1774
1775 (define-public system-config-printer
1776 (package
1777 (name "system-config-printer")
1778 (version "1.5.12")
1779 (source
1780 (origin
1781 (method url-fetch)
1782 (uri (string-append
1783 "https://github.com/OpenPrinting/system-config-printer/releases/"
1784 "download/" version
1785 "/system-config-printer-" version ".tar.xz"))
1786 (sha256
1787 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1788 (build-system glib-or-gtk-build-system)
1789 (arguments
1790 `(#:imported-modules ((guix build python-build-system)
1791 ,@%glib-or-gtk-build-system-modules)
1792 #:phases
1793 (modify-phases %standard-phases
1794 (add-after 'unpack 'patch-Makefile.am
1795 (lambda _
1796 ;; The Makefile generates some scripts, so set a valid shebang
1797 (substitute* "Makefile.am"
1798 (("/bin/bash") (which "bash")))
1799 (delete-file "configure")
1800 #t))
1801 (add-after 'unpack 'patch-docbook-xml
1802 (lambda* (#:key inputs #:allow-other-keys)
1803 ;; Modify the man XML otherwise xmlto tries to access the network
1804 (substitute* "man/system-config-printer.xml"
1805 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1806 (string-append (assoc-ref inputs "docbook-xml")
1807 "/xml/dtd/docbook/")))
1808 #t))
1809 (add-after 'install 'wrap-for-python
1810 (@@ (guix build python-build-system) wrap))
1811 (add-after 'install 'wrap
1812 (lambda* (#:key outputs #:allow-other-keys)
1813 (let ((out (assoc-ref outputs "out"))
1814 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1815 (for-each
1816 (lambda (program)
1817 (wrap-program program
1818 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1819 (map (lambda (name)
1820 (string-append out "/bin/" name))
1821 '("system-config-printer"
1822 "system-config-printer-applet"
1823 "install-printerdriver"
1824 "scp-dbus-service"))))
1825 #t)))))
1826 (inputs
1827 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1828 ("gobject-introspection" ,gobject-introspection)
1829 ("python" ,python)
1830 ("cups" ,cups)
1831 ("python-dbus" ,python-dbus)
1832 ("python-pygobject" ,python-pygobject)
1833 ("python-pycups" ,python-pycups)
1834 ("python-requests" ,python-requests)
1835 ("python-pycairo" ,python-pycairo)
1836 ("libnotify" ,libnotify)
1837 ("packagekit" ,packagekit)))
1838 (native-inputs
1839 `(("pkg-config" ,pkg-config)
1840 ("desktop-file-utils" ,desktop-file-utils)
1841 ("glib" ,glib)
1842 ("autoconf" ,autoconf)
1843 ("automake" ,automake)
1844 ("intltool" ,intltool)
1845 ("xmlto" ,xmlto)
1846 ("docbook-xml" ,docbook-xml-4.1.2)
1847 ("docbook-xsl" ,docbook-xsl)
1848 ("libxml2" ,libxml2)))
1849 (home-page "https://github.com/zdohnal/system-config-printer")
1850 (synopsis "CUPS administration tool")
1851 (description
1852 "system-config-printer is a CUPS administration tool. It's written in
1853 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1854 configuring CUPS.")
1855 (license license:gpl2+)))
1856
1857 (define-public hicolor-icon-theme
1858 (package
1859 (name "hicolor-icon-theme")
1860 (version "0.17")
1861 (source
1862 (origin
1863 (method url-fetch)
1864 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
1865 "hicolor-icon-theme-" version ".tar.xz"))
1866 (sha256
1867 (base32
1868 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
1869 (build-system gnu-build-system)
1870 (arguments
1871 `(#:tests? #f)) ; no check target
1872 (home-page "https://icon-theme.freedesktop.org/releases/")
1873 (synopsis
1874 "Freedesktop icon theme")
1875 (description
1876 "Freedesktop icon theme.")
1877 (license license:gpl2)))
1878
1879 (define-public libnotify
1880 (package
1881 (name "libnotify")
1882 (version "0.7.7")
1883 (source
1884 (origin
1885 (method url-fetch)
1886 (uri (string-append "mirror://gnome/sources/" name "/"
1887 (version-major+minor version) "/"
1888 name "-" version ".tar.xz"))
1889 (sha256
1890 (base32
1891 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
1892 (build-system gnu-build-system)
1893 (arguments
1894 `(#:configure-flags '("--disable-static")))
1895 (propagated-inputs
1896 `(;; In Requires of libnotify.pc.
1897 ("gdk-pixbuf" ,gdk-pixbuf)
1898 ("glib" ,glib)))
1899 (inputs
1900 `(("gtk+" ,gtk+)
1901 ("libpng" ,libpng)))
1902 (native-inputs
1903 `(("pkg-config" ,pkg-config)
1904 ("glib" ,glib "bin")
1905 ("gobject-introspection" ,gobject-introspection)))
1906 (home-page "https://developer-next.gnome.org/libnotify/")
1907 (synopsis
1908 "GNOME desktop notification library")
1909 (description
1910 "Libnotify is a library that sends desktop notifications to a
1911 notification daemon, as defined in the Desktop Notifications spec. These
1912 notifications can be used to inform the user about an event or display
1913 some form of information without getting in the user's way.")
1914 (license license:lgpl2.1+)))
1915
1916 (define-public libpeas
1917 (package
1918 (name "libpeas")
1919 (version "1.24.1")
1920 (source
1921 (origin
1922 (method url-fetch)
1923 (uri (string-append "mirror://gnome/sources/" name "/"
1924 (version-major+minor version) "/"
1925 name "-" version ".tar.xz"))
1926 (sha256
1927 (base32
1928 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
1929 (build-system meson-build-system)
1930 (arguments
1931 '(#:phases
1932 (modify-phases %standard-phases
1933 (add-before 'check 'start-xserver
1934 (lambda* (#:key inputs #:allow-other-keys)
1935 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1936 (disp ":1"))
1937 (setenv "DISPLAY" disp)
1938 ;; Tests require a running X server.
1939 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
1940 #t))))))
1941 (inputs
1942 `(("gtk+" ,gtk+)
1943 ("glade" ,glade3)
1944 ("python" ,python)
1945 ("python-pygobject" ,python-pygobject)))
1946 (native-inputs
1947 `(("pkg-config" ,pkg-config)
1948 ("gettext" ,gettext-minimal)
1949 ("glib:bin" ,glib "bin")
1950 ("gobject-introspection" ,gobject-introspection)
1951 ("xorg-server" ,xorg-server-for-tests)))
1952 (propagated-inputs
1953 ;; The .pc file "Requires" gobject-introspection.
1954 `(("gobject-introspection" ,gobject-introspection)))
1955 (home-page "https://wiki.gnome.org/Libpeas")
1956 (synopsis "GObject plugin system")
1957 (description
1958 "Libpeas is a gobject-based plugin engine, targeted at giving every
1959 application the chance to assume its own extensibility. It also has a set of
1960 features including, but not limited to: multiple extension points; on-demand
1961 (lazy) programming language support for C, Python and JS; simplicity of the
1962 API.")
1963 (license license:lgpl2.0+)))
1964
1965 (define-public gtkglext
1966 (package
1967 (name "gtkglext")
1968 (version "1.2.0")
1969 (source (origin
1970 (method url-fetch)
1971 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
1972 version "/gtkglext-" version ".tar.gz"))
1973 (sha256
1974 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
1975 (patches (search-patches
1976 "gtkglext-disable-disable-deprecated.patch"))))
1977 (build-system gnu-build-system)
1978 (arguments
1979 `(#:phases
1980 (modify-phases %standard-phases
1981 ;; Fix a collision between a local variable and a definition from
1982 ;; glibc's string.h.
1983 (add-after 'unpack 'fix-collision
1984 (lambda _
1985 (substitute* "gdk/gdkglshapes.c"
1986 ((" index") " triangle_index"))
1987 #t)))))
1988 (inputs `(("gtk+" ,gtk+-2)
1989 ("mesa" ,mesa)
1990 ("glu" ,glu)
1991 ("libx11" ,libx11)
1992 ("libxt" ,libxt)))
1993 (native-inputs `(("pkg-config" ,pkg-config)
1994 ("glib" ,glib "bin")))
1995 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
1996 (home-page "https://projects.gnome.org/gtkglext")
1997 (synopsis "OpenGL extension to GTK+")
1998 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
1999 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2000 API add-ons to make GTK+ widgets OpenGL-capable.")
2001 (license license:lgpl2.1+)))
2002
2003 (define-public glade3
2004 (package
2005 (name "glade")
2006 (version "3.22.1")
2007 (source (origin
2008 (method url-fetch)
2009 (uri (string-append "mirror://gnome/sources/" name "/"
2010 (version-major+minor version) "/"
2011 name "-" version ".tar.xz"))
2012 (sha256
2013 (base32
2014 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
2015 (build-system glib-or-gtk-build-system)
2016 (arguments
2017 `(#:tests? #f ; needs X, GL, and software rendering
2018 #:phases
2019 (modify-phases %standard-phases
2020 (add-before 'configure 'fix-docbook
2021 (lambda* (#:key inputs #:allow-other-keys)
2022 (substitute* "man/Makefile.in"
2023 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2024 (string-append (assoc-ref inputs "docbook-xsl")
2025 "/xml/xsl/docbook-xsl-"
2026 ,(package-version docbook-xsl)
2027 "/manpages/docbook.xsl")))
2028 #t)))))
2029 (inputs
2030 `(("gtk+" ,gtk+)
2031 ("libxml2" ,libxml2)))
2032 (native-inputs
2033 `(("intltool" ,intltool)
2034 ("itstool" ,itstool)
2035 ("libxslt" ,libxslt) ;for xsltproc
2036 ("docbook-xml" ,docbook-xml-4.2)
2037 ("docbook-xsl" ,docbook-xsl)
2038 ("python" ,python-2)
2039 ("pkg-config" ,pkg-config)))
2040 (home-page "https://glade.gnome.org")
2041 (synopsis "GTK+ rapid application development tool")
2042 (description "Glade is a rapid application development (RAD) tool to
2043 enable quick & easy development of user interfaces for the GTK+ toolkit and
2044 the GNOME desktop environment.")
2045 (license license:lgpl2.0+)))
2046
2047 (define-public libcroco
2048 (package
2049 (name "libcroco")
2050 (version "0.6.13")
2051 (source (origin
2052 (method url-fetch)
2053 (uri (string-append "mirror://gnome/sources/" name "/"
2054 (version-major+minor version) "/"
2055 name "-" version ".tar.xz"))
2056 (sha256
2057 (base32
2058 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2059 (build-system gnu-build-system)
2060 (native-inputs
2061 `(("pkg-config" ,pkg-config)))
2062 (inputs
2063 `(("glib" ,glib)
2064 ("libxml2" ,libxml2)
2065 ("zlib" ,zlib)))
2066 (home-page "https://github.com/GNOME/libcroco")
2067 (synopsis "CSS2 parsing and manipulation library")
2068 (description
2069 "Libcroco is a standalone CSS2 parsing and manipulation library.
2070 The parser provides a low level event driven SAC-like API and a CSS object
2071 model like API. Libcroco provides a CSS2 selection engine and an experimental
2072 XML/CSS rendering engine.")
2073
2074 ;; LGPLv2.1-only.
2075 (license license:lgpl2.1)))
2076
2077 (define-public libgsf
2078 (package
2079 (name "libgsf")
2080 (version "1.14.46")
2081 (source (origin
2082 (method url-fetch)
2083 (uri (string-append "mirror://gnome/sources/" name "/"
2084 (version-major+minor version) "/"
2085 name "-" version ".tar.xz"))
2086 (sha256
2087 (base32
2088 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
2089 (build-system gnu-build-system)
2090 (native-inputs
2091 `(("intltool" ,intltool)
2092 ("pkg-config" ,pkg-config)))
2093 (inputs
2094 `(("python" ,python)
2095 ("zlib" ,zlib)
2096 ("bzip2" ,bzip2)))
2097 (propagated-inputs
2098 `(("gdk-pixbuf" ,gdk-pixbuf)
2099 ("glib" ,glib)
2100 ("libxml2" ,libxml2)))
2101 (home-page "https://www.gnome.org/projects/libgsf")
2102 (synopsis "GNOME's Structured File Library")
2103 (description
2104 "Libgsf aims to provide an efficient extensible I/O abstraction for
2105 dealing with different structured file formats.")
2106
2107 ;; LGPLv2.1-only.
2108 (license license:lgpl2.1)))
2109
2110 (define-public librsvg
2111 (package
2112 (replacement librsvg/fixed)
2113 (name "librsvg")
2114 (version "2.40.20")
2115 (source (origin
2116 (method url-fetch)
2117 (uri (string-append "mirror://gnome/sources/" name "/"
2118 (version-major+minor version) "/"
2119 name "-" version ".tar.xz"))
2120 (sha256
2121 (base32
2122 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
2123 (build-system gnu-build-system)
2124 (arguments
2125 `(#:configure-flags
2126 (list "--disable-static"
2127 "--enable-vala") ; needed for e.g. gnome-mines
2128 #:phases
2129 (modify-phases %standard-phases
2130 (add-before 'configure 'pre-configure
2131 (lambda* (#:key inputs #:allow-other-keys)
2132 (substitute* "gdk-pixbuf-loader/Makefile.in"
2133 ;; By default the gdk-pixbuf loader is installed under
2134 ;; gdk-pixbuf's prefix. Work around that.
2135 (("gdk_pixbuf_moduledir = .*$")
2136 (string-append "gdk_pixbuf_moduledir = "
2137 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2138 "loaders\n"))
2139 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2140 (("gdk_pixbuf_cache_file = .*$")
2141 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2142 #t))
2143 (add-before 'check 'remove-failing-tests
2144 (lambda _
2145 (with-directory-excursion "tests/fixtures/reftests"
2146 (for-each delete-file
2147 '(;; This test fails on i686:
2148 "svg1.1/masking-path-04-b.svg"
2149 ;; This test fails on armhf:
2150 "svg1.1/masking-mask-01-b.svg"
2151 ;; This test fails on aarch64:
2152 "bugs/777834-empty-text-children.svg")))
2153 #t)))))
2154 (native-inputs
2155 `(("pkg-config" ,pkg-config)
2156 ("vala" ,vala)
2157 ("glib" ,glib "bin") ; glib-mkenums, etc.
2158 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2159 (inputs
2160 `(("pango" ,pango)
2161 ("libcroco" ,libcroco)
2162 ("bzip2" ,bzip2)
2163 ("libgsf" ,libgsf)
2164 ("libxml2" ,libxml2)))
2165 (propagated-inputs
2166 ;; librsvg-2.0.pc refers to all of that.
2167 `(("cairo" ,cairo)
2168 ("gdk-pixbuf" ,gdk-pixbuf)
2169 ("glib" ,glib)))
2170 (home-page "https://wiki.gnome.org/LibRsvg")
2171 (synopsis "Render SVG files using Cairo")
2172 (description
2173 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2174 library.")
2175 (license license:lgpl2.0+)))
2176
2177 (define librsvg/fixed
2178 (package
2179 (inherit librsvg)
2180 (name "librsvg")
2181 (version "2.40.21")
2182 (source (origin
2183 (method url-fetch)
2184 (uri (string-append "mirror://gnome/sources/" name "/"
2185 (version-major+minor version) "/"
2186 name "-" version ".tar.xz"))
2187 (sha256
2188 (base32
2189 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))))
2190
2191 (define-public librsvg-next
2192 (package
2193 (inherit librsvg)
2194 (name "librsvg")
2195 (version "2.46.4")
2196 (source (origin
2197 (method url-fetch)
2198 (uri (string-append "mirror://gnome/sources/librsvg/"
2199 (version-major+minor version) "/"
2200 "librsvg-" version ".tar.xz"))
2201 (sha256
2202 (base32
2203 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2204 (modules '((guix build utils)))
2205 (snippet
2206 '(begin (delete-file-recursively "vendor")
2207 ;; Don't demand an exact version for string_cache
2208 (substitute* "rsvg_internals/Cargo.toml"
2209 (("\"=") "\""))
2210 #t))))
2211 (build-system cargo-build-system)
2212 (arguments
2213 `(#:modules ((guix build cargo-build-system)
2214 (guix build utils)
2215 ((guix build gnu-build-system) #:prefix gnu:))
2216 #:vendor-dir "vendor"
2217 #:cargo-inputs
2218 (("rust-bitflags" ,rust-bitflags-1)
2219 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2220 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2221 ("rust-cssparser" ,rust-cssparser-0.25)
2222 ("rust-data-url" ,rust-data-url-0.1)
2223 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2224 ("rust-encoding" ,rust-encoding-0.2)
2225 ("rust-float-cmp" ,rust-float-cmp-0.5)
2226 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2227 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2228 ("rust-gio" ,rust-gio-0.7)
2229 ("rust-gio-sys" ,rust-gio-sys-0.9)
2230 ("rust-glib" ,rust-glib-0.8)
2231 ("rust-glib-sys" ,rust-glib-sys-0.9)
2232 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2233 ("rust-itertools" ,rust-itertools-0.8)
2234 ("rust-language-tags" ,rust-language-tags-0.2)
2235 ("rust-lazy-static" ,rust-lazy-static-1)
2236 ("rust-libc" ,rust-libc-0.2)
2237 ("rust-locale-config" ,rust-locale-config-0.3)
2238 ("rust-markup5ever" ,rust-markup5ever-0.9)
2239 ("rust-nalgebra" ,rust-nalgebra-0.18)
2240 ("rust-num-traits" ,rust-num-traits-0.2)
2241 ("rust-pkg-config" ,rust-pkg-config-0.3)
2242 ("rust-pango" ,rust-pango-0.7)
2243 ("rust-pango-sys" ,rust-pango-sys-0.9)
2244 ("rust-pangocairo" ,rust-pangocairo-0.8)
2245 ("rust-phf" ,rust-phf-0.7)
2246 ("rust-rayon" ,rust-rayon-1.3)
2247 ("rust-rctree" ,rust-rctree-0.3)
2248 ("rust-string-cache" ,rust-string-cache-0.7)
2249 ("rust-regex" ,rust-regex-1.3)
2250 ("rust-url" ,rust-url-2.1)
2251 ("rust-xml-rs" ,rust-xml-rs-0.8))
2252 #:cargo-development-inputs
2253 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2254 ("rust-criterion" ,rust-criterion-0.2))
2255 #:phases
2256 (modify-phases %standard-phases
2257 (add-after 'unpack 'prepare-for-build
2258 (lambda _
2259 ;; In lieu of #:make-flags
2260 (setenv "CC" "gcc")
2261 ;; Something about the build environment resists building
2262 ;; successfully with the '--locked' flag.
2263 (substitute* '("Makefile.am"
2264 "Makefile.in")
2265 (("--locked") ""))
2266 #t))
2267 (add-before 'configure 'pre-configure
2268 (lambda _
2269 (substitute* "gdk-pixbuf-loader/Makefile.in"
2270 ;; By default the gdk-pixbuf loader is installed under
2271 ;; gdk-pixbuf's prefix. Work around that.
2272 (("gdk_pixbuf_moduledir = .*$")
2273 (string-append "gdk_pixbuf_moduledir = "
2274 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2275 "loaders\n"))
2276 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2277 (("gdk_pixbuf_cache_file = .*$")
2278 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2279 #t))
2280 (add-after 'configure 'gnu-configure
2281 (assoc-ref gnu:%standard-phases 'configure))
2282 ;(lambda* (#:key outputs #:allow-other-keys)
2283 ; ((assoc-ref gnu:%standard-phases 'configure)
2284 ; #:outputs outputs
2285 ; #:configure-flags ("--disable-static"
2286 ; "--enable-vala"))))
2287 (add-after 'configure 'dont-vendor-self
2288 (lambda* (#:key vendor-dir #:allow-other-keys)
2289 ;; Don't keep the whole tarball in the vendor directory
2290 (delete-file-recursively
2291 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2292 #t))
2293 (replace 'build
2294 (assoc-ref gnu:%standard-phases 'build))
2295 (replace 'check
2296 (lambda* args
2297 ((assoc-ref gnu:%standard-phases 'check)
2298 #:test-target "check")))
2299 (replace 'install
2300 (assoc-ref gnu:%standard-phases 'install))
2301 (add-before 'check 'remove-failing-tests
2302 (lambda _
2303 (with-directory-excursion "tests/fixtures/reftests"
2304 (for-each delete-file
2305 '(;; The images produced by these tests differ slightly
2306 ;; from their reference counterparts due to differences
2307 ;; in the build environment (missing fonts, etc). See
2308 ;; <tests/README.md> for details.
2309 ;; These fail on x86_64.
2310 "svg1.1/coords-viewattr-02-b.svg"
2311 "svg1.1/filters-composite-04-f.svg"
2312 "svg1.1/filters-image-01-b.svg"
2313 "svg1.1/filters-conv-02-f.svg"
2314 "svg1.1/filters-conv-04-f.svg"
2315 ;; This test fails on i686:
2316 "svg1.1/masking-path-04-b.svg"
2317 ;; This test fails on armhf:
2318 "svg1.1/masking-mask-01-b.svg"
2319 ;; This test fails on aarch64:
2320 "bugs/777834-empty-text-children.svg")))
2321 #t)))))
2322 (license license:lgpl2.1+)))
2323
2324 (define-public libidl
2325 (package
2326 (name "libidl")
2327 (version "0.8.14")
2328 (source (origin
2329 (method url-fetch)
2330 (uri (string-append "mirror://gnome/sources/libIDL/"
2331 (version-major+minor version) "/"
2332 "libIDL-" version ".tar.bz2"))
2333 (sha256
2334 (base32
2335 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2336 (build-system gnu-build-system)
2337 (inputs `(("glib" ,glib)))
2338 (native-inputs
2339 `(("pkg-config" ,pkg-config)
2340 ("flex" ,flex)
2341 ("bison" ,bison)))
2342 (home-page "http://freecode.com/projects/libidl")
2343 (synopsis "Create trees of CORBA Interface Definition Language files")
2344 (description "Libidl is a library for creating trees of CORBA Interface
2345 Definition Language (idl) files, which is a specification for defining
2346 portable interfaces. libidl was initially written for orbit (the orb from the
2347 GNOME project, and the primary means of libidl distribution). However, the
2348 functionality was designed to be as reusable and portable as possible.")
2349 (properties `((upstream-name . "libIDL")))
2350 (license license:lgpl2.0+)))
2351
2352
2353 (define-public orbit2
2354 (package
2355 (name "orbit2")
2356 (version "2.14.19")
2357 (source (origin
2358 (method url-fetch)
2359 (uri (let ((upstream-name "ORBit2"))
2360 (string-append "mirror://gnome/sources/" upstream-name "/"
2361 (version-major+minor version) "/"
2362 upstream-name "-" version ".tar.bz2")))
2363 (sha256
2364 (base32
2365 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2366 (build-system gnu-build-system)
2367 (arguments
2368 `(#:configure-flags
2369 '(;; We don't need static libraries, plus they don't build reproducibly
2370 ;; (non-deterministic ordering of .o files in the archive.)
2371 "--disable-static"
2372
2373 ;; The programmer kindly gives us a hook to turn off deprecation
2374 ;; warnings ...
2375 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2376 ;; ... which they then completly ignore !!
2377 #:phases
2378 (modify-phases %standard-phases
2379 (add-before 'configure 'ignore-deprecations
2380 (lambda _
2381 (substitute* "linc2/src/Makefile.in"
2382 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2383 #t)))))
2384 (inputs `(("glib" ,glib)
2385 ("libidl" ,libidl)))
2386 (native-inputs
2387 `(("pkg-config" ,pkg-config)))
2388 (home-page "https://projects.gnome.org/orbit2/")
2389 (synopsis "CORBA 2.4-compliant Object Request Broker")
2390 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2391 featuring mature C, C++ and Python bindings.")
2392 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2393 ;; a version. SOME of the code files have licence notices for GPLv2+.
2394 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2395 (license license:gpl2+)
2396 (properties `((upstream-name . "ORBit2")))))
2397
2398
2399 (define-public libbonobo
2400 (package
2401 (name "libbonobo")
2402 (version "2.32.1")
2403 (source (origin
2404 (method url-fetch)
2405 (uri (string-append "mirror://gnome/sources/" name "/"
2406 (version-major+minor version)
2407 "/" name "-" version ".tar.bz2"))
2408 (sha256
2409 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2410 (patches (search-patches
2411 "libbonobo-activation-test-race.patch"))))
2412 (build-system gnu-build-system)
2413 (arguments
2414 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2415 `(#:configure-flags
2416 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2417 ;; ... which they then completly ignore !!
2418 #:phases
2419 (modify-phases %standard-phases
2420 (add-before 'configure 'ignore-deprecations
2421 (lambda _
2422 (substitute* "activation-server/Makefile.in"
2423 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2424 #t)))
2425
2426 ;; There's apparently a race condition between the server stub
2427 ;; generation and linking of the example under 'samples/echo' that can
2428 ;; lead do undefined references when building in parallel, as reported
2429 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2430 ;; Thus, disable parallel builds.
2431 #:parallel-build? #f))
2432 (inputs `(("popt" ,popt)
2433 ("libxml2" ,libxml2)))
2434 ;; The following are Required by the .pc file
2435 (propagated-inputs
2436 `(("glib" ,glib)
2437 ("orbit2" ,orbit2)))
2438 (native-inputs
2439 `(("intltool" ,intltool)
2440 ("pkg-config" ,pkg-config)
2441 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2442 ("flex" ,flex)
2443 ("bison" ,bison)))
2444 (home-page "https://developer.gnome.org/libbonobo/")
2445 (synopsis "Framework for creating reusable components for use in GNOME applications")
2446 (description "Bonobo is a framework for creating reusable components for
2447 use in GNOME applications, built on top of CORBA.")
2448 ;; Licence not explicitly stated. Source files contain no licence notices.
2449 ;; Tarball contains text of both GPLv2 and LGPLv2
2450 ;; GPLv2 covers both conditions
2451 (license license:gpl2+)))
2452
2453
2454 (define-public gconf
2455 (package
2456 (name "gconf")
2457 (version "3.2.6")
2458 (source (origin
2459 (method url-fetch)
2460 (uri
2461 (let ((upstream-name "GConf"))
2462 (string-append "mirror://gnome/sources/" upstream-name "/"
2463 (version-major+minor version) "/"
2464 upstream-name "-" version ".tar.xz")))
2465 (sha256
2466 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2467 (build-system gnu-build-system)
2468 (inputs `(("dbus-glib" ,dbus-glib)
2469 ("libxml2" ,libxml2)))
2470 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2471 ("orbit2" ,orbit2)))
2472 (native-inputs
2473 `(("intltool" ,intltool)
2474 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2475 ("pkg-config" ,pkg-config)))
2476 (home-page "https://projects.gnome.org/gconf/")
2477 (synopsis "Store application preferences")
2478 (description "Gconf is a system for storing application preferences. It
2479 is intended for user preferences; not arbitrary data storage.")
2480 (license license:lgpl2.0+)
2481 (properties '((upstream-name . "GConf")))))
2482
2483
2484 (define-public gnome-mime-data
2485 (package
2486 (name "gnome-mime-data")
2487 (version "2.18.0")
2488 (source (origin
2489 (method url-fetch)
2490 (uri (string-append "mirror://gnome/sources/" name "/"
2491 (version-major+minor version) "/"
2492 name "-" version ".tar.bz2"))
2493 (sha256
2494 (base32
2495 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2496 (build-system gnu-build-system)
2497 (native-inputs
2498 `(("perl" ,perl)
2499 ("intltool" ,intltool)))
2500 (arguments
2501 '(#:phases (modify-phases %standard-phases
2502 (add-after 'configure 'use-our-intltool
2503 (lambda _
2504 ;; Do not use the bundled intltool commands, which lack
2505 ;; the "dotless @INC" fixes of our 'intltool' package.
2506 (substitute* (find-files "." "^Makefile$")
2507 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2508 (string-append "INTLTOOL_" tool " = intltool-"
2509 (string-downcase tool) "\n")))
2510 #t)))))
2511 (home-page "https://www.gnome.org")
2512 (synopsis "Base MIME and Application database for GNOME")
2513 (description "GNOME Mime Data is a module which contains the base MIME
2514 and Application database for GNOME. The data stored by this module is
2515 designed to be accessed through the MIME functions in GnomeVFS.")
2516 (license license:gpl2+)))
2517
2518
2519 (define-public gnome-vfs
2520 (package
2521 (name "gnome-vfs")
2522 (version "2.24.4")
2523 (source (origin
2524 (method url-fetch)
2525 (uri (string-append "mirror://gnome/sources/" name "/"
2526 (version-major+minor version) "/"
2527 name "-" version ".tar.bz2"))
2528 (sha256
2529 (base32
2530 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2531 (build-system gnu-build-system)
2532 (arguments
2533 `(#:phases
2534 (modify-phases %standard-phases
2535 (add-before 'configure 'ignore-deprecations
2536 (lambda _
2537 (substitute* '("libgnomevfs/Makefile.in"
2538 "daemon/Makefile.in")
2539 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2540 #t))
2541 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2542 (lambda _
2543 (substitute* "test/test-async-cancel.c"
2544 (("EXIT_FAILURE") "77"))
2545 #t)))))
2546 (inputs `(("libxml2" ,libxml2)
2547 ("dbus-glib" ,dbus-glib)
2548 ("gconf" ,gconf)
2549 ("gnome-mime-data" ,gnome-mime-data)
2550 ("zlib" ,zlib)))
2551 (native-inputs
2552 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2553 ("intltool" ,intltool)
2554 ("pkg-config" ,pkg-config)))
2555 (home-page "https://developer.gnome.org/gnome-vfs/")
2556 (synopsis "Access files and folders in GNOME applications")
2557 (description
2558 "GnomeVFS is the core library used to access files and folders in GNOME
2559 applications. It provides a file system abstraction which allows applications
2560 to access local and remote files with a single consistent API.")
2561 (license license:lgpl2.0+)))
2562
2563
2564
2565 (define-public libgnome
2566 (package
2567 (name "libgnome")
2568 (version "2.32.1")
2569 (source (origin
2570 (method url-fetch)
2571 (uri (string-append "mirror://gnome/sources/" name "/"
2572 (version-major+minor version) "/"
2573 name "-" version ".tar.bz2"))
2574 (sha256
2575 (base32
2576 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2577 (patches (search-patches "libgnome-encoding.patch"))))
2578 (build-system gnu-build-system)
2579 (arguments
2580 `(#:phases
2581 (modify-phases %standard-phases
2582 (add-before 'configure 'enable-deprecated
2583 (lambda _
2584 (substitute* "libgnome/Makefile.in"
2585 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2586 #t)))))
2587 (inputs `(("libxml2" ,libxml2)))
2588 (native-inputs
2589 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2590 ("intltool" ,intltool)
2591 ("pkg-config" ,pkg-config)))
2592 ;; The following are listed as Required in the .pc file
2593 ;; (except for libcanberra -- which seems to be oversight on the part
2594 ;; of the upstream developers -- anything that links against libgnome,
2595 ;; must also link against libcanberra
2596 (propagated-inputs
2597 `(("libcanberra" ,libcanberra)
2598 ("libbonobo" ,libbonobo)
2599 ("gconf" ,gconf)
2600 ("gnome-vfs" ,gnome-vfs)
2601 ("popt" ,popt))) ;gnome-program.h includes popt.h
2602 (home-page "https://developer.gnome.org/libgnome/")
2603 (synopsis "Useful routines for building applications")
2604 (description "The libgnome library provides a number of useful routines
2605 for building modern applications, including session management, activation of
2606 files and URIs, and displaying help.")
2607 (license license:lgpl2.0+)))
2608
2609
2610 (define-public libart-lgpl
2611 (package
2612 (name "libart-lgpl")
2613 (version "2.3.21")
2614 (source (origin
2615 (method url-fetch)
2616 (uri (let ((upstream-name "libart_lgpl"))
2617 (string-append "mirror://gnome/sources/" upstream-name "/"
2618 (version-major+minor version) "/"
2619 upstream-name "-" version ".tar.bz2")))
2620 (sha256
2621 (base32
2622 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2623 (build-system gnu-build-system)
2624 (native-inputs
2625 `(("pkg-config" ,pkg-config)))
2626 (home-page "https://people.gnome.org/~mathieu/libart")
2627 (synopsis "2D drawing library")
2628 (description "Libart is a 2D drawing library intended as a
2629 high-quality vector-based 2D library with antialiasing and alpha composition.")
2630 (license license:lgpl2.0+)))
2631
2632
2633
2634 (define-public libgnomecanvas
2635 (package
2636 (name "libgnomecanvas")
2637 (version "2.30.3")
2638 (source (origin
2639 (method url-fetch)
2640 (uri (string-append "mirror://gnome/sources/" name "/"
2641 (version-major+minor version) "/"
2642 name "-" version ".tar.gz"))
2643 (sha256
2644 (base32
2645 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2646 (build-system gnu-build-system)
2647 ;; Mentioned as Required in the .pc file
2648 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2649 ("gtk+" ,gtk+-2)))
2650 (native-inputs
2651 `(("intltool" ,intltool)
2652 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2653 ("pkg-config" ,pkg-config)))
2654 (home-page "https://developer.gnome.org/libgnomecanvas/")
2655 (synopsis "Flexible widget for creating interactive structured graphics")
2656 (description "The GnomeCanvas widget provides a flexible widget for
2657 creating interactive structured graphics.")
2658 (license license:lgpl2.0+)))
2659
2660 (define-public libgnomecanvasmm
2661 (package
2662 (name "libgnomecanvasmm")
2663 (version "2.26.0")
2664 (source (origin
2665 (method url-fetch)
2666 (uri (string-append "mirror://gnome/sources/" name "/"
2667 (version-major+minor version) "/"
2668 name "-" version ".tar.bz2"))
2669 (sha256
2670 (base32
2671 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2672 (build-system gnu-build-system)
2673 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2674 (native-inputs
2675 `(("gtkmm-2" ,gtkmm-2)
2676 ("pkg-config" ,pkg-config)))
2677 (home-page "https://gtkmm.org")
2678 (synopsis "C++ bindings to the GNOME Canvas library")
2679 (description "C++ bindings to the GNOME Canvas library.")
2680 (license license:lgpl2.0+)))
2681
2682 (define-public libgnomeui
2683 (package
2684 (name "libgnomeui")
2685 (version "2.24.5")
2686 (source (origin
2687 (method url-fetch)
2688 (uri (string-append "mirror://gnome/sources/" name "/"
2689 (version-major+minor version) "/"
2690 name "-" version ".tar.bz2"))
2691 (patches (search-patches "libgnomeui-utf8.patch"))
2692 (sha256
2693 (base32
2694 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2695 (build-system gnu-build-system)
2696 ;; Mentioned as Required in the .pc file
2697 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2698 ("libgnome" ,libgnome)
2699 ("libgnomecanvas" ,libgnomecanvas)
2700 ("libgnome-keyring" ,libgnome-keyring)))
2701 (inputs `(("libjpeg" ,libjpeg)
2702 ("popt" ,popt)
2703 ("libbonobo" ,libbonobo)
2704 ("libxml2" ,libxml2)
2705 ("libglade" ,libglade)))
2706 (native-inputs
2707 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2708 ("intltool" ,intltool)
2709 ("pkg-config" ,pkg-config)))
2710 (home-page "https://developer.gnome.org/libgnomeui/")
2711 (synopsis "Additional widgets for applications")
2712 (description "The libgnomeui library provides additional widgets for
2713 applications. Many of the widgets from libgnomeui have already been
2714 ported to GTK+.")
2715 (license license:lgpl2.0+)))
2716
2717 (define-public libglade
2718 (package
2719 (name "libglade")
2720 (version "2.6.4")
2721 (source (origin
2722 (method url-fetch)
2723 (uri (string-append "mirror://gnome/sources/" name "/"
2724 (version-major+minor version) "/"
2725 name "-" version ".tar.bz2"))
2726 (sha256
2727 (base32
2728 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2729 (build-system gnu-build-system)
2730 (inputs
2731 `(("python" ,python))) ;; needed for the optional libglade-convert program
2732 (propagated-inputs
2733 `(("gtk+-2" ,gtk+-2)
2734 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2735 (native-inputs
2736 `(("pkg-config" ,pkg-config)))
2737 (home-page "https://developer.gnome.org/libglade")
2738 (synopsis "Load glade interfaces and access the glade built widgets")
2739 (description "Libglade is a library that provides interfaces for loading
2740 graphical interfaces described in glade files and for accessing the
2741 widgets built in the loading process.")
2742 (license license:gpl2+))) ; This is correct. GPL not LGPL
2743
2744 (define-public libgnomeprint
2745 ;; This library has been deprecated since 2006; see
2746 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2747 (package
2748 (name "libgnomeprint")
2749 (version "2.18.8")
2750 (source (origin
2751 (method url-fetch)
2752 (uri (string-append "mirror://gnome/sources/" name "/"
2753 (version-major+minor version) "/"
2754 name "-" version ".tar.bz2"))
2755 (sha256
2756 (base32
2757 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2758 (build-system gnu-build-system)
2759 (inputs
2760 `(("popt" ,popt)
2761 ("libart-lgpl" ,libart-lgpl)
2762 ("gtk+" ,gtk+-2)
2763 ("libxml2" ,libxml2)))
2764 (native-inputs
2765 `(("intltool" ,intltool)
2766 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2767 ("pkg-config" ,pkg-config)))
2768 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2769 (synopsis "Printing framework for GNOME")
2770 (description
2771 "GNOME-print was a printing framework for GNOME. It has been deprecated
2772 since ca. 2006, when GTK+ itself incorporated printing support.")
2773 (license license:lgpl2.0+)))
2774
2775
2776 (define-public libgnomeprintui
2777 ;; Deprecated; see libgnomeprint.
2778 (package
2779 (name "libgnomeprintui")
2780 (version "2.18.6")
2781 (source (origin
2782 (method url-fetch)
2783 (uri (string-append "mirror://gnome/sources/" name "/"
2784 (version-major+minor version) "/"
2785 name "-" version ".tar.bz2"))
2786 (sha256
2787 (base32
2788 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2789 (build-system gnu-build-system)
2790 ;; Mentioned as Required in the .pc file
2791 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2792 (inputs `(("gtk+" ,gtk+-2)
2793 ("glib" ,glib)
2794 ("gnome-icon-theme" ,gnome-icon-theme)
2795 ("libgnomecanvas" ,libgnomecanvas)
2796 ("libxml2" ,libxml2)))
2797 (native-inputs
2798 `(("intltool" ,intltool)
2799 ("pkg-config" ,pkg-config)))
2800 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2801 (synopsis "Printing framework for GNOME")
2802 (description (package-description libgnomeprint))
2803 (license license:lgpl2.0+)))
2804
2805 (define-public libbonoboui
2806 (package
2807 (name "libbonoboui")
2808 (version "2.24.5")
2809 (source (origin
2810 (method url-fetch)
2811 (uri (string-append "mirror://gnome/sources/" name "/"
2812 (version-major+minor version) "/"
2813 name "-" version ".tar.bz2"))
2814 (sha256
2815 (base32
2816 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2817 (build-system gnu-build-system)
2818 (arguments
2819 `(#:phases
2820 (modify-phases %standard-phases
2821 (add-before 'check 'start-xserver
2822 (lambda* (#:key inputs #:allow-other-keys)
2823 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2824 (disp ":1"))
2825
2826 (setenv "HOME" (getcwd))
2827 (setenv "DISPLAY" disp)
2828 ;; There must be a running X server and make check doesn't start one.
2829 ;; Therefore we must do it.
2830 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2831 ;; Mentioned as Required by the .pc file
2832 (propagated-inputs `(("libxml2" ,libxml2)))
2833 (inputs
2834 `(("popt" ,popt)
2835 ("pangox-compat" ,pangox-compat)
2836 ("libgnome" ,libgnome)
2837 ("libgnomecanvas" ,libgnomecanvas)
2838 ("libglade" ,libglade)))
2839 (native-inputs
2840 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2841 ("intltool" ,intltool)
2842 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2843 ("pkg-config" ,pkg-config)))
2844 (home-page "https://developer.gnome.org/libbonoboui/")
2845 (synopsis "Some user interface controls using Bonobo")
2846 (description "The Bonobo UI library provides a number of user interface
2847 controls using the Bonobo component framework.")
2848 (license license:lgpl2.0+)))
2849
2850 (define-public libwnck
2851 (package
2852 (name "libwnck")
2853 (version "3.32.0")
2854 (source (origin
2855 (method url-fetch)
2856 (uri (string-append "mirror://gnome/sources/" name "/"
2857 (version-major+minor version) "/"
2858 name "-" version ".tar.xz"))
2859 (sha256
2860 (base32
2861 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2862 (build-system meson-build-system)
2863 (native-inputs
2864 `(("pkg-config" ,pkg-config)
2865 ("glib" ,glib "bin") ; for glib-mkenums
2866 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
2867 ("intltool" ,intltool)))
2868 (propagated-inputs
2869 `(("gtk+" ,gtk+)
2870 ("libxres" ,libxres)
2871 ("startup-notification" ,startup-notification)))
2872 (home-page "https://developer.gnome.org/libwnck/")
2873 (synopsis "Window Navigator Construction Kit")
2874 (description
2875 "Libwnck is the Window Navigator Construction Kit, a library for use in
2876 writing pagers, tasklists, and more generally applications that are dealing
2877 with window management. It tries hard to respect the Extended Window Manager
2878 Hints specification (EWMH).")
2879 (license license:lgpl2.0+)))
2880
2881 ;; stable version for gtk2, required by xfwm4.
2882 (define-public libwnck-2
2883 (package (inherit libwnck)
2884 (name "libwnck")
2885 (version "2.30.7")
2886 (source (origin
2887 (method url-fetch)
2888 (uri (string-append "mirror://gnome/sources/" name "/"
2889 (version-major+minor version) "/"
2890 name "-" version ".tar.xz"))
2891 (sha256
2892 (base32
2893 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
2894 (build-system gnu-build-system)
2895 (native-inputs
2896 `(("pkg-config" ,pkg-config)
2897 ("intltool" ,intltool)))
2898 (propagated-inputs
2899 `(("gtk+" ,gtk+-2)
2900 ("libxres" ,libxres)
2901 ("startup-notification" ,startup-notification)))))
2902
2903 (define-public goffice
2904 (package
2905 (name "goffice")
2906 (version "0.10.46")
2907 (source (origin
2908 (method url-fetch)
2909 (uri (string-append "mirror://gnome/sources/goffice/"
2910 (version-major+minor version) "/"
2911 "goffice-" version ".tar.xz"))
2912 (sha256
2913 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
2914 (build-system gnu-build-system)
2915 (outputs '("out"
2916 "doc")) ; 4.0 MiB of gtk-doc
2917 (arguments
2918 '(#:configure-flags (list (string-append "--with-html-dir="
2919 (assoc-ref %outputs "doc")
2920 "/share/gtk-doc/html"))))
2921 (inputs
2922 `(("gtk+" ,gtk+)
2923 ("libgsf" ,libgsf)
2924 ("librsvg" ,librsvg)
2925 ("libxslt" ,libxslt)
2926 ("libxml2" ,libxml2)))
2927 (native-inputs
2928 `(("intltool" ,intltool)
2929 ("glib" ,glib "bin")
2930 ("pkg-config" ,pkg-config)))
2931 (home-page "https://developer.gnome.org/goffice/")
2932 (synopsis "Document-centric objects and utilities")
2933 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2934 (license
2935 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2936 ;; Note: NOT LGPL
2937 (list license:gpl2 license:gpl3))))
2938
2939 (define-public goffice-0.8
2940 (package (inherit goffice)
2941 (version "0.8.17")
2942 (source (origin
2943 (method url-fetch)
2944 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
2945 (version-major+minor version) "/"
2946 (package-name goffice) "-" version ".tar.xz"))
2947 (sha256
2948 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
2949 (arguments
2950 `(#:phases
2951 (modify-phases %standard-phases
2952 (add-after 'unpack 'fix-pcre-check
2953 (lambda _
2954 ;; Only glib.h can be included directly. See
2955 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
2956 (substitute* "configure"
2957 (("glib/gregex\\.h") "glib.h")) #t)))
2958
2959 ,@(package-arguments goffice)))
2960 (propagated-inputs
2961 ;; libgoffice-0.8.pc mentions libgsf-1
2962 `(("libgsf" ,libgsf)))
2963 (inputs
2964 `(("gtk" ,gtk+-2)
2965 ,@(alist-delete "gtk" (package-inputs goffice))))))
2966
2967 (define-public gnumeric
2968 (package
2969 (name "gnumeric")
2970 (version "1.12.46")
2971 (source (origin
2972 (method url-fetch)
2973 (uri (string-append "mirror://gnome/sources/gnumeric/"
2974 (version-major+minor version) "/"
2975 "gnumeric-" version ".tar.xz"))
2976 (sha256
2977 (base32
2978 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
2979 (build-system glib-or-gtk-build-system)
2980 (arguments
2981 `(;; The gnumeric developers don't worry much about failing tests.
2982 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2983 #:tests? #f
2984 #:phases
2985 (modify-phases %standard-phases
2986 (add-before
2987 'configure 'pre-conf
2988 (lambda* (#:key outputs #:allow-other-keys)
2989 ;; Make install tries to write into the directory of goffice
2990 ;; I am informed that this only affects the possibility to embed a
2991 ;; spreadsheet inside an Abiword document. So presumably when we
2992 ;; package Abiword we'll have to refer it to this directory.
2993 (substitute* "configure"
2994 (("^GOFFICE_PLUGINS_DIR=.*")
2995 (string-append "GOFFICE_PLUGINS_DIR="
2996 (assoc-ref outputs "out")
2997 "/goffice/plugins"))))))))
2998 (inputs
2999 `(("glib" ,glib)
3000 ("gtk+" ,gtk+)
3001 ("goffice" ,goffice)
3002 ("libgsf" ,libgsf)
3003 ("librsvg" ,librsvg)
3004 ("libxml2" ,libxml2)
3005 ("libxslt" ,libxslt)
3006 ("python" ,python-2)
3007 ("python2-pygobject" ,python2-pygobject)
3008 ("zlib" ,zlib)))
3009 (native-inputs
3010 `(("bison" ,bison)
3011 ("docbook-xml" ,docbook-xml)
3012 ("intltool" ,intltool)
3013 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
3014 ("glib:bin" ,glib "bin")
3015 ("pkg-config" ,pkg-config)))
3016 (home-page "http://www.gnumeric.org")
3017 (synopsis "Spreadsheet application")
3018 (description
3019 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3020 interoperable with other spreadsheet applications. It has a vast array of
3021 features beyond typical spreadsheet functionality, such as support for linear
3022 and non-linear solvers, statistical analysis, and telecommunication
3023 engineering.")
3024 (license
3025 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3026 (list license:gpl2 license:gpl3))))
3027
3028 (define-public gnome-themes-standard
3029 (package
3030 (name "gnome-themes-standard")
3031 (version "3.22.3")
3032 (source
3033 (origin
3034 (method url-fetch)
3035 (uri (string-append "mirror://gnome/sources/" name "/"
3036 (version-major+minor version) "/" name "-"
3037 version ".tar.xz"))
3038 (sha256
3039 (base32
3040 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3041 (build-system gnu-build-system)
3042 (arguments
3043 '(#:configure-flags
3044 ;; Don't create 'icon-theme.cache'.
3045 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3046 (true (string-append coreutils "/bin/true")))
3047 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3048 (inputs
3049 `(("gtk+" ,gtk+)
3050 ("gtk+-2" ,gtk+-2)
3051 ("librsvg" ,librsvg)
3052 ("libxml2" ,libxml2)
3053 ("glib" ,glib)))
3054 (native-inputs
3055 `(("intltool" ,intltool)
3056 ("glib:bin" ,glib "bin")
3057 ("pkg-config" ,pkg-config)))
3058 (home-page "https://launchpad.net/gnome-themes-standard")
3059 (synopsis "Default GNOME 3 themes")
3060 (description
3061 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3062 (license license:lgpl2.1+)))
3063
3064 (define-public seahorse
3065 (package
3066 (name "seahorse")
3067 (version "3.32.2")
3068 (source
3069 (origin
3070 (method url-fetch)
3071 (uri (string-append "mirror://gnome/sources/" name "/"
3072 (version-major+minor version) "/" name "-"
3073 version ".tar.xz"))
3074 (sha256
3075 (base32
3076 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
3077 (patches (search-patches
3078 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3079 (build-system meson-build-system)
3080 (arguments
3081 '(#:glib-or-gtk? #t
3082 #:phases
3083 (modify-phases %standard-phases
3084 (add-after 'unpack 'skip-gtk-update-icon-cache
3085 ;; Don't create 'icon-theme.cache'.
3086 (lambda _
3087 (substitute* "build-aux/meson_post_install.py"
3088 (("gtk-update-icon-cache") "true"))
3089 #t)))))
3090 (inputs
3091 `(("gtk+" ,gtk+)
3092 ("gcr" ,gcr)
3093 ("gnupg" ,gnupg)
3094 ("gpgme" ,gpgme)
3095 ("openldap" ,openldap)
3096 ("openssh" ,openssh)
3097 ("avahi" ,avahi)
3098 ("libpwquality" ,libpwquality)
3099 ("libsecret" ,libsecret)
3100 ("libsoup" ,libsoup)))
3101 (native-inputs
3102 `(("gettext" ,gettext-minimal)
3103 ("glib:bin" ,glib "bin")
3104 ("itstool" ,itstool)
3105 ("pkg-config" ,pkg-config)
3106 ("vala" ,vala)
3107 ("xmllint" ,libxml2)))
3108 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3109 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3110 (description
3111 "Seahorse is a GNOME application for managing encryption keys and
3112 passwords in the GNOME keyring.")
3113 (license license:gpl2+)))
3114
3115 (define-public vala
3116 (package
3117 (name "vala")
3118 (version "0.44.5")
3119 (source (origin
3120 (method url-fetch)
3121 (uri (string-append "mirror://gnome/sources/" name "/"
3122 (version-major+minor version) "/"
3123 name "-" version ".tar.xz"))
3124 (sha256
3125 (base32
3126 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
3127 (build-system gnu-build-system)
3128 (arguments
3129 '(#:phases
3130 (modify-phases %standard-phases
3131 (add-before 'check 'pre-check
3132 (lambda _
3133 (setenv "CC" "gcc")
3134 (substitute* "valadoc/tests/testrunner.sh"
3135 (("export PKG_CONFIG_PATH=" m)
3136 (string-append m "$PKG_CONFIG_PATH:")))
3137 ;; For missing '/etc/machine-id'.
3138 (setenv "DBUS_FATAL_WARNINGS" "0")
3139 #t)))))
3140 (native-inputs
3141 `(("pkg-config" ,pkg-config)
3142 ("flex" ,flex)
3143 ("bison" ,bison)
3144 ("xsltproc" ,libxslt)
3145 ("dbus" ,dbus) ; for dbus tests
3146 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3147 (inputs
3148 `(("graphviz" ,graphviz)))
3149 (propagated-inputs
3150 `(("glib" ,glib))) ; required by libvala-0.40.pc
3151 (home-page "https://live.gnome.org/Vala/")
3152 (synopsis "Compiler for the GObject type system")
3153 (description
3154 "Vala is a programming language that aims to bring modern programming
3155 language features to GNOME developers without imposing any additional runtime
3156 requirements and without using a different ABI compared to applications and
3157 libraries written in C.")
3158 (license license:lgpl2.1+)))
3159
3160 (define-public vte
3161 (package
3162 (name "vte")
3163 (version "0.58.3")
3164 (source (origin
3165 (method url-fetch)
3166 (uri (string-append "mirror://gnome/sources/vte/"
3167 (version-major+minor version) "/"
3168 "vte-" version ".tar.xz"))
3169 (sha256
3170 (base32
3171 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3172 (build-system meson-build-system)
3173 (native-inputs
3174 `(("pkg-config" ,pkg-config)
3175 ("intltool" ,intltool)
3176 ("vala" ,vala)
3177 ("gobject-introspection" ,gobject-introspection)
3178 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3179 ("gperf" ,gperf)
3180 ("xmllint" ,libxml2)))
3181 (propagated-inputs
3182 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3183 ("gnutls" ,gnutls) ; ditto
3184 ("pcre2" ,pcre2))) ; ditto
3185 (home-page "https://www.gnome.org/")
3186 (synopsis "Virtual Terminal Emulator")
3187 (description
3188 "VTE is a library (libvte) implementing a terminal emulator widget for
3189 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3190 gnome-terminal, but can also be used to embed a console/terminal in games,
3191 editors, IDEs, etc.")
3192 (license license:lgpl2.1+)))
3193
3194 (define-public vte-ng
3195 (package
3196 (inherit vte)
3197 (name "vte-ng")
3198 (version "0.58.2.a")
3199 (home-page "https://github.com/thestinger/vte-ng")
3200 (source (origin
3201 (method git-fetch)
3202 (uri (git-reference (url home-page) (commit version)))
3203 (file-name (git-file-name name version))
3204 (sha256
3205 (base32
3206 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3207 (build-system meson-build-system)
3208 (native-inputs
3209 `(("gtk-doc" ,gtk-doc)
3210 ,@(package-native-inputs vte)))
3211 (arguments
3212 `(#:configure-flags '("-Ddocs=true")))
3213 (synopsis "Enhanced VTE terminal widget")
3214 (description
3215 "VTE is a library (libvte) implementing a terminal emulator widget for
3216 GTK+, this fork provides additional functions exposed for keyboard text
3217 selection and URL hints.")))
3218
3219 ;; provides vte 2.90, required for some terminal emulators
3220 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3221 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3222 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3223 ;; pantheon-terminal, roxterm are not currently packaged
3224 (define-public vte-0.36
3225 (package (inherit vte)
3226 (name "vte")
3227 (version "0.36.5")
3228 (source (origin
3229 (method url-fetch)
3230 (uri (string-append "mirror://gnome/sources/" name "/"
3231 (version-major+minor version) "/"
3232 name "-" version ".tar.xz"))
3233 (sha256
3234 (base32
3235 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3236 (propagated-inputs
3237 `(("gtk" ,gtk+)
3238 ("ncurses" ,ncurses)))))
3239
3240 ;; stable version for gtk2, required by xfce4-terminal.
3241 (define-public vte/gtk+-2
3242 (package (inherit vte)
3243 (name "vte")
3244 (version "0.28.2")
3245 (source (origin
3246 (method url-fetch)
3247 (uri (string-append "mirror://gnome/sources/" name "/"
3248 (version-major+minor version) "/"
3249 name "-" version ".tar.xz"))
3250 (sha256
3251 (base32
3252 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3253 (patches (search-patches
3254 "vte-CVE-2012-2738-pt1.patch"
3255 "vte-CVE-2012-2738-pt2.patch"))))
3256 (build-system gnu-build-system)
3257 (arguments
3258 '(#:configure-flags '("--disable-python")))
3259 (native-inputs
3260 `(("pkg-config" ,pkg-config)
3261 ("intltool" ,intltool)
3262 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3263 (propagated-inputs
3264 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3265 ("ncurses" ,ncurses))))) ; required by libvte.la
3266
3267 (define-public vinagre
3268 (package
3269 (name "vinagre")
3270 (version "3.22.0")
3271 (source (origin
3272 (method url-fetch)
3273 (uri (string-append "mirror://gnome/sources/" name "/"
3274 (version-major+minor version) "/"
3275 name "-" version ".tar.xz"))
3276 (patches (search-patches "vinagre-newer-freerdp.patch"
3277 "vinagre-newer-rdp-parameters.patch"))
3278 (sha256
3279 (base32
3280 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3281 (build-system glib-or-gtk-build-system)
3282 (arguments
3283 ;; Disable -Werror and such, to avoid build failures on compilation
3284 ;; warnings.
3285 '(#:configure-flags '("--enable-compile-warnings=minimum")
3286 #:phases
3287 (modify-phases %standard-phases
3288 (add-before 'install 'skip-gtk-update-icon-cache
3289 (lambda _
3290 ;; Don't create 'icon-theme.cache'
3291 (substitute* (find-files "." "^Makefile$")
3292 (("gtk-update-icon-cache") (which "true")))
3293 #t))
3294 (add-after 'unpack 'patch-configure
3295 (lambda _
3296 (substitute* "configure"
3297 (("freerdp") "freerdp2"))
3298 #t)))))
3299 (native-inputs
3300 `(("pkg-config" ,pkg-config)
3301 ("intltool" ,intltool)
3302 ("itstool" ,itstool)
3303 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3304 (inputs
3305 `(("libxml2" ,libxml2)
3306 ("gtk-vnc" ,gtk-vnc)
3307 ("gnome-keyring" ,gnome-keyring)
3308 ("libsecret" ,libsecret)
3309 ("freerdp" ,freerdp)
3310 ("spice" ,spice)
3311 ("spice-gtk" ,spice-gtk)
3312 ("telepathy-glib" ,telepathy-glib)
3313 ("vte" ,vte)))
3314 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3315 (synopsis "Remote desktop viewer for GNOME")
3316 (description "Vinagre is a remote display client supporting the VNC, SPICE
3317 and RDP protocols.")
3318 (license license:gpl3+)))
3319
3320 (define-public dconf
3321 (package
3322 (name "dconf")
3323 (version "0.32.0")
3324 (source (origin
3325 (method url-fetch)
3326 (uri (string-append
3327 "mirror://gnome/sources/" name "/"
3328 (version-major+minor version) "/"
3329 name "-" version ".tar.xz"))
3330 (sha256
3331 (base32
3332 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
3333 (build-system meson-build-system)
3334 (propagated-inputs
3335 ;; In Requires of dconf.pc.
3336 `(("glib" ,glib)))
3337 (inputs
3338 `(("gtk+" ,gtk+)
3339 ("dbus" ,dbus)))
3340 (native-inputs
3341 `(("bash-completion" ,bash-completion)
3342 ("libxslt" ,libxslt) ;for xsltproc
3343 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3344 ("docbook-xml" ,docbook-xml-4.2)
3345 ("docbook-xsl" ,docbook-xsl)
3346 ("glib:bin" ,glib "bin")
3347 ("gtk-doc" ,gtk-doc)
3348 ("pkg-config" ,pkg-config)
3349 ("vala" ,vala)))
3350 (arguments
3351 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3352 ; or /etc/machine-id.
3353 #:glib-or-gtk? #t
3354 #:configure-flags '("-Denable-gtk-doc=true")))
3355 (home-page "https://developer.gnome.org/dconf")
3356 (synopsis "Low-level GNOME configuration system")
3357 (description "Dconf is a low-level configuration system. Its main purpose
3358 is to provide a backend to GSettings on platforms that don't already have
3359 configuration storage systems.")
3360 (license license:lgpl2.1+)))
3361
3362 (define-public json-glib
3363 (package
3364 (name "json-glib")
3365 (version "1.4.4")
3366 (source (origin
3367 (method url-fetch)
3368 (uri (string-append "mirror://gnome/sources/" name "/"
3369 (version-major+minor version) "/"
3370 name "-" version ".tar.xz"))
3371 (sha256
3372 (base32
3373 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3374 (build-system meson-build-system)
3375 (native-inputs
3376 `(("gettext" ,gettext-minimal)
3377 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3378 ("gobject-introspection" ,gobject-introspection)
3379 ("pkg-config" ,pkg-config)))
3380 (propagated-inputs
3381 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3382 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3383 (synopsis "Compiler for the GObject type system")
3384 (description
3385 "JSON-GLib is a C library based on GLib providing serialization and
3386 deserialization support for the JavaScript Object Notation (JSON) format
3387 described by RFC 4627. It provides parser and generator GObject classes and
3388 various wrappers for the complex data types employed by JSON, such as arrays
3389 and objects.")
3390 (license license:lgpl2.1+)))
3391
3392 (define-public libxklavier
3393 (package
3394 (name "libxklavier")
3395 (version "5.4")
3396 (source (origin
3397 ;; Note: There's no tarball at ftp.gnome.org for this version.
3398 (method git-fetch)
3399 (uri (git-reference
3400 (url "https://anongit.freedesktop.org/git/libxklavier")
3401 (commit (string-append "libxklavier-" version))))
3402 (sha256
3403 (base32
3404 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3405 (file-name (git-file-name name version))))
3406 (build-system gnu-build-system)
3407 (arguments
3408 '(#:phases
3409 (modify-phases %standard-phases
3410 (add-after 'unpack 'no-configure
3411 (lambda* _
3412 (setenv "NOCONFIGURE" "1")
3413 #t)))
3414 #:configure-flags
3415 (list (string-append "--with-xkb-base="
3416 (assoc-ref %build-inputs "xkeyboard-config")
3417 "/share/X11/xkb")
3418 "--disable-xmodmap-support")))
3419 (native-inputs
3420 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3421 ("gobject-introspection" ,gobject-introspection)
3422 ("pkg-config" ,pkg-config)
3423 ("gtk-doc" ,gtk-doc)
3424 ("intltool" ,intltool)
3425 ("which" ,which)
3426 ("autoconf" ,autoconf)
3427 ("automake" ,automake)
3428 ("libtool" ,libtool)))
3429 (propagated-inputs
3430 ;; Required by libxklavier.pc.
3431 `(("glib" ,glib)
3432 ("libxml2" ,libxml2)))
3433 (inputs
3434 `(("iso-codes" ,iso-codes)
3435 ("libxi" ,libxi)
3436 ("libxkbfile" ,libxkbfile)
3437 ("xkbcomp" ,xkbcomp)
3438 ("xkeyboard-config" ,xkeyboard-config)))
3439 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3440 (synopsis "High-level API for X Keyboard Extension")
3441 (description
3442 "LibXklavier is a library providing high-level API for X Keyboard
3443 Extension known as XKB. This library is intended to support XFree86 and other
3444 commercial X servers. It is useful for creating XKB-related software (layout
3445 indicators etc).")
3446 (license license:lgpl2.0+)))
3447
3448 (define-public python2-rsvg
3449 ;; XXX: This is actually a subset of gnome-python-desktop.
3450 (package
3451 (name "python2-rsvg")
3452 (version "2.32.0")
3453 (source
3454 (origin
3455 (method url-fetch)
3456 (uri (string-append
3457 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3458 version ".tar.bz2"))
3459 (sha256
3460 (base32
3461 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3462 (build-system gnu-build-system)
3463 (native-inputs
3464 `(("pkg-config" ,pkg-config)))
3465 (inputs
3466 `(("python" ,python-2)
3467 ("python2-pygtk" ,python2-pygtk)
3468 ("librsvg" ,librsvg)))
3469 (home-page "https://www.gnome.org")
3470 (synopsis "Python bindings to librsvg")
3471 (description
3472 "This package provides Python bindings to librsvg, the SVG rendering
3473 library.")
3474
3475 ;; This is the license of the rsvg bindings. The license of each module
3476 ;; of gnome-python-desktop is given in 'COPYING'.
3477 (license license:lgpl2.1+)))
3478
3479 (define-public glib-networking
3480 (package
3481 (name "glib-networking")
3482 (version "2.60.3")
3483 (source (origin
3484 (method url-fetch)
3485 (uri (string-append "mirror://gnome/sources/glib-networking/"
3486 (version-major+minor version) "/"
3487 "glib-networking-" version ".tar.xz"))
3488 (sha256
3489 (base32
3490 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
3491 (build-system meson-build-system)
3492 (arguments
3493 `(#:configure-flags '("-Dlibproxy_support=false")))
3494 (native-inputs
3495 `(("pkg-config" ,pkg-config)
3496 ("intltool" ,intltool)))
3497 (inputs
3498 `(("glib" ,glib)
3499 ("gnutls" ,gnutls)
3500 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3501 (home-page "https://www.gnome.org")
3502 (synopsis "Network-related GIO modules")
3503 (description
3504 "This package contains various network related extensions for the GIO
3505 library.")
3506 (license license:lgpl2.0+)))
3507
3508 (define-public rest
3509 (package
3510 (name "rest")
3511 (version "0.8.1")
3512 (source (origin
3513 (method url-fetch)
3514 (uri (string-append "mirror://gnome/sources/rest/"
3515 (version-major+minor version) "/"
3516 name "-" version ".tar.xz"))
3517 (sha256
3518 (base32
3519 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3520 (build-system gnu-build-system)
3521 (arguments
3522 '(#:tests? #f ; tests require internet connection
3523 #:configure-flags
3524 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3525 (native-inputs
3526 `(("glib-mkenums" ,glib "bin")
3527 ("gobject-introspection" ,gobject-introspection)
3528 ("pkg-config" ,pkg-config)))
3529 (propagated-inputs
3530 ;; rest-0.7.pc refers to all these.
3531 `(("glib" ,glib)
3532 ("libsoup" ,libsoup)
3533 ("libxml2" ,libxml2)))
3534 (home-page "https://www.gtk.org/")
3535 (synopsis "RESTful web api query library")
3536 (description
3537 "This library was designed to make it easier to access web services that
3538 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3539 libxml to ease remote use of the RESTful API.")
3540 (license license:lgpl2.1+)))
3541
3542 (define-public libsoup
3543 (package
3544 (name "libsoup")
3545 (version "2.70.0")
3546 (source (origin
3547 (method url-fetch)
3548 (uri (string-append "mirror://gnome/sources/libsoup/"
3549 (version-major+minor version) "/"
3550 "libsoup-" version ".tar.xz"))
3551 (sha256
3552 (base32
3553 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
3554 (build-system meson-build-system)
3555 (outputs '("out" "doc"))
3556 (arguments
3557 `(#:modules ((guix build utils)
3558 (guix build meson-build-system)
3559 (ice-9 popen))
3560
3561 #:configure-flags '("-Dgtk_doc=true")
3562 #:phases
3563 (modify-phases %standard-phases
3564 (add-after 'unpack 'adjust-tests
3565 (lambda _
3566 ;; This test fails due to missing /etc/nsswitch.conf
3567 ;; in the build environment.
3568 (substitute* "tests/socket-test.c"
3569 ((".*/sockets/unconnected.*") ""))
3570
3571 ;; These fail because "subdomain.localhost" does not resolve in
3572 ;; the build environment.
3573 (substitute* "tests/hsts-test.c"
3574 ((".*/hsts/basic.*") "")
3575 ((".*/hsts/subdomains.*") "")
3576 ((".*/hsts/superdomain.*") "")
3577 ((".*/hsts/utf8-address.*") ""))
3578 (substitute* "tests/hsts-db-test.c"
3579 ((".*/hsts-db/subdomains.*") ""))
3580
3581 ;; Generate a self-signed certificate that has "localhost" as its
3582 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3583 ;; 3.5.12, tests such as "ssl-tests" fail:
3584 ;;
3585 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3586 ;;
3587 ;; 'certtool' is interactive so we have to pipe it the answers.
3588 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3589 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3590 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3591 (for-each (lambda (line)
3592 (display line pipe)
3593 (newline pipe))
3594 '("" ;Common name
3595 "" ;UID
3596 "Guix" ;Organizational unit name
3597 "GNU" ;Organization name
3598 "" ;Locality name
3599 "" ;State or province
3600 "" ;Country
3601 "" ;subject's domain component (DC)
3602 "" ;E-mail
3603 "" ;serial number
3604 "-1" ;expiration time
3605 "N" ;belong to authority?
3606 "N" ;web client certificate?
3607 "N" ;IPsec IKE?
3608 "Y" ;web server certificate?
3609 "localhost" ;dnsName of subject
3610 "" ;dnsName of subject (end)
3611 "" ;URI of subject
3612 "127.0.0.1" ;IP address of subject
3613 "" ;signing?
3614 "" ;encryption (RSA)?
3615 "" ;data encryption?
3616 "" ;sign OCSP requests?
3617 "" ;sign code?
3618 "" ;time stamping?
3619 "" ;email protection?
3620 "" ;URI of the CRL distribution point
3621 "y" ;above info OK?
3622 ))
3623 (close-pipe pipe))
3624 #t))
3625 (add-after 'install 'move-doc
3626 (lambda* (#:key outputs #:allow-other-keys)
3627 (let ((out (assoc-ref outputs "out"))
3628 (doc (assoc-ref outputs "doc")))
3629 (mkdir-p (string-append doc "/share"))
3630 (copy-recursively (string-append out "/share/gtk-doc")
3631 (string-append doc "/share/gtk-doc"))
3632 (delete-file-recursively (string-append out "/share/gtk-doc"))
3633 #t))))))
3634 (native-inputs
3635 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3636 ("gobject-introspection" ,gobject-introspection)
3637 ("gtk-doc" ,gtk-doc)
3638 ("intltool" ,intltool)
3639 ("pkg-config" ,pkg-config)
3640 ("python" ,python-wrapper)
3641 ("vala" ,vala)
3642 ;; These are needed for the tests.
3643 ;; FIXME: Add PHP once available.
3644 ("curl" ,curl)
3645 ("gnutls" ,gnutls) ;for 'certtool'
3646 ("httpd" ,httpd)))
3647 (propagated-inputs
3648 ;; libsoup-2.4.pc refers to all these.
3649 `(("brotli" ,google-brotli)
3650 ("glib" ,glib)
3651 ("libpsl" ,libpsl)
3652 ("libxml2" ,libxml2)
3653 ("sqlite" ,sqlite)
3654 ("zlib" ,zlib)))
3655 (inputs
3656 `(("glib-networking" ,glib-networking)
3657 ("mit-krb5" ,mit-krb5)))
3658 (home-page "https://live.gnome.org/LibSoup/")
3659 (synopsis "GLib-based HTTP Library")
3660 (description
3661 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3662 and the GLib main loop, to integrate well with GNOME applications.")
3663 (license license:lgpl2.0+)))
3664
3665 (define-public libsecret
3666 (package
3667 (name "libsecret")
3668 (version "0.20.2")
3669 (source (origin
3670 (method url-fetch)
3671 (uri (string-append
3672 "mirror://gnome/sources/libsecret/"
3673 (version-major+minor version) "/"
3674 "libsecret-" version ".tar.xz"))
3675 (sha256
3676 (base32
3677 "1hzz34gmsxxf1jm1b7qin390rkwbg8sx198xdkwxqp3q6cw19sc1"))))
3678 (build-system gnu-build-system)
3679 (outputs '("out" "doc"))
3680 (arguments
3681 `(#:tests? #f ; FIXME: Testing hangs.
3682 #:configure-flags
3683 (list (string-append "--with-html-dir="
3684 (assoc-ref %outputs "doc")
3685 "/share/gtk-doc/html"))))
3686 (native-inputs
3687 `(("gettext" ,gettext-minimal)
3688 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3689 ("gobject-introspection" ,gobject-introspection)
3690 ("pkg-config" ,pkg-config)
3691 ("vala" ,vala)
3692 ("xsltproc" ,libxslt)))
3693 ;; These are needed for the tests.
3694 ;; FIXME: Add gjs once available.
3695 ;("dbus" ,dbus)
3696 ;("python2" ,python-2)
3697 ;("python2-dbus" ,python2-dbus)
3698 ;("python2-pygobject" ,python2-pygobject)
3699 ;("python2-pygobject-2" ,python2-pygobject-2)))
3700 (propagated-inputs
3701 `(("glib" ,glib))) ; required by libsecret-1.pc
3702 (inputs
3703 `(("docbook-xsl" ,docbook-xsl)
3704 ("libgcrypt" ,libgcrypt)
3705 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3706 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3707 (synopsis "GObject bindings for \"Secret Service\" API")
3708 (description
3709 "Libsecret is a GObject based library for storing and retrieving passwords
3710 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3711 (license license:lgpl2.1+)))
3712
3713 (define-public five-or-more
3714 (package
3715 (name "five-or-more")
3716 (version "3.32.1")
3717 (source
3718 (origin
3719 (method url-fetch)
3720 (uri (string-append "mirror://gnome/sources/five-or-more/"
3721 (version-major+minor version) "/"
3722 "five-or-more-" version ".tar.xz"))
3723 (sha256
3724 (base32 "0xw05dd2dwi9vsph9h158b4n89s5k07xrh6bjz1icm0pdmjwhpgk"))))
3725 (build-system meson-build-system)
3726 (arguments
3727 '(#:glib-or-gtk? #t
3728 #:phases
3729 (modify-phases %standard-phases
3730 (add-after 'unpack 'skip-gtk-update-icon-cache
3731 (lambda _
3732 (substitute* "meson_post_install.py"
3733 (("gtk-update-icon-cache") (which "true")))
3734 #t)))))
3735 (native-inputs
3736 `(("pkg-config" ,pkg-config)
3737 ("appstream-glib" ,appstream-glib)
3738 ("desktop-file-utils" ,desktop-file-utils)
3739 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3740 ("intltool" ,intltool)
3741 ("itstool" ,itstool)
3742 ("vala" ,vala)
3743 ("xmllint" ,libxml2)))
3744 (inputs
3745 `(("gtk+" ,gtk+)
3746 ("libgnome-games-support" ,libgnome-games-support)
3747 ("librsvg" ,librsvg)))
3748 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3749 (synopsis "Logic puzzle game")
3750 (description "Five or More is a game where you try to align
3751 five or more objects of the same color and shape causing them to disappear.
3752 On every turn more objects will appear, until the board is full.
3753 Try to last as long as possible.")
3754 (license license:gpl2+)))
3755
3756 (define-public gnome-mines
3757 (package
3758 (name "gnome-mines")
3759 (version "3.32.2")
3760 (source
3761 (origin
3762 (method url-fetch)
3763 (uri (string-append "mirror://gnome/sources/" name "/"
3764 (version-major+minor version) "/"
3765 name "-" version ".tar.xz"))
3766 (sha256
3767 (base32
3768 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
3769 (build-system meson-build-system)
3770 (arguments
3771 '(#:glib-or-gtk? #t
3772 #:phases
3773 (modify-phases %standard-phases
3774 (add-after 'unpack 'skip-gtk-update-icon-cache
3775 (lambda _
3776 (substitute* "build-aux/meson_post_install.py"
3777 (("gtk-update-icon-cache") (which "true")))
3778 #t)))))
3779 (native-inputs
3780 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3781 ("pkg-config" ,pkg-config)
3782 ("desktop-file-utils" ,desktop-file-utils)
3783 ("intltool" ,intltool)
3784 ("itstool" ,itstool)
3785 ("vala" ,vala)
3786 ("yelp" ,yelp)
3787 ("appstream-glib" ,appstream-glib)))
3788 (inputs
3789 `(("gtk+" ,gtk+)
3790 ("libgnome-games-support" ,libgnome-games-support)
3791 ("librsvg" ,librsvg)))
3792 (home-page "https://wiki.gnome.org/Apps/Mines")
3793 (synopsis "Minesweeper game")
3794 (description
3795 "Mines (previously gnomine) is a puzzle game where you locate mines
3796 floating in an ocean using only your brain and a little bit of luck.")
3797 (license license:gpl2+)))
3798
3799 (define-public gnome-sudoku
3800 (package
3801 (name "gnome-sudoku")
3802 (version "3.32.0")
3803 (source
3804 (origin
3805 (method url-fetch)
3806 (uri (string-append "mirror://gnome/sources/" name "/"
3807 (version-major+minor version) "/"
3808 name "-" version ".tar.xz"))
3809 (sha256
3810 (base32
3811 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3812 (build-system meson-build-system)
3813 (arguments
3814 '(#:glib-or-gtk? #t
3815 #:phases
3816 (modify-phases %standard-phases
3817 (add-after 'unpack 'skip-gtk-update-icon-cache
3818 (lambda _
3819 (substitute* "build-aux/post_install.py"
3820 (("gtk-update-icon-cache") (which "true")))
3821 #t)))))
3822 (native-inputs
3823 `(("pkg-config" ,pkg-config)
3824 ("desktop-file-utils" ,desktop-file-utils)
3825 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3826 ("intltool" ,intltool)
3827 ("itstool" ,itstool)
3828 ("vala" ,vala)
3829 ("xmllint" ,libxml2)))
3830 (inputs
3831 `(("gtk+" ,gtk+)
3832 ("json-glib" ,json-glib)
3833 ("libgee" ,libgee)
3834 ("librsvg" ,librsvg)
3835 ("qqwing" ,qqwing)))
3836 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3837 (synopsis "Japanese logic game")
3838 (description
3839 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3840 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3841 possible while still providing features that make playing difficult Sudoku
3842 more fun.")
3843 (license license:gpl2+)))
3844
3845 (define-public gnome-terminal
3846 (package
3847 (name "gnome-terminal")
3848 (version "3.32.2")
3849 (source
3850 (origin
3851 (method url-fetch)
3852 (uri (string-append "mirror://gnome/sources/" name "/"
3853 (version-major+minor version) "/"
3854 name "-" version ".tar.xz"))
3855 (sha256
3856 (base32
3857 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
3858 (build-system glib-or-gtk-build-system)
3859 (arguments
3860 '(#:configure-flags
3861 (list "--disable-migration" "--disable-search-provider"
3862 "--without-nautilus-extension")
3863 #:phases
3864 (modify-phases %standard-phases
3865 (add-before 'configure 'patch-/bin/true
3866 (lambda _
3867 (substitute* "configure"
3868 (("/bin/true") (which "true"))))))))
3869 (native-inputs
3870 `(("pkg-config" ,pkg-config)
3871 ("desktop-file-utils" ,desktop-file-utils)
3872 ("intltool" ,intltool)
3873 ("itstool" ,itstool)
3874 ("xmllint" ,libxml2)))
3875 (propagated-inputs
3876 `(("dconf" ,dconf)))
3877 (inputs
3878 `(("gtk+" ,gtk+)
3879 ("vte" ,vte)
3880 ("gnutls" ,gnutls)
3881 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3882 ("util-linux" ,util-linux)
3883 ("vala" ,vala)))
3884 (home-page "https://wiki.gnome.org/Apps/Terminal")
3885 (synopsis "Terminal emulator")
3886 (description
3887 "GNOME Terminal is a terminal emulator application for accessing a
3888 UNIX shell environment which can be used to run programs available on
3889 your system.
3890
3891 It supports several profiles, multiple tabs and implements several
3892 keyboard shortcuts.")
3893 (license license:gpl3+)))
3894
3895 (define-public colord
3896 (package
3897 (name "colord")
3898 (version "1.4.4")
3899 (source
3900 (origin
3901 (method url-fetch)
3902 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
3903 "colord-" version ".tar.xz"))
3904 (sha256
3905 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
3906 (build-system meson-build-system)
3907 (arguments
3908 '(;; FIXME: One test fails:
3909 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3910 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3911 ;; application/x-zerosize
3912 #:tests? #f
3913 #:glib-or-gtk? #t
3914 #:configure-flags (list "-Dlocalstatedir=/var"
3915 ;; No dep on systemd.
3916 "-Dsystemd=false"
3917 ;; Wants to install to global completion dir;
3918 ;; punt.
3919 "-Dbash_completion=false"
3920 "-Ddaemon_user=colord"
3921 "-Dsane=true"
3922 "-Dvapi=true"
3923 ;; Requires spotread.
3924 "-Dargyllcms_sensor=false"
3925 ;; TODO: Requires docbook2x.
3926 "-Dman=false")
3927 #:phases
3928 (modify-phases %standard-phases
3929 (add-before 'configure 'patch-build-system
3930 (lambda* (#:key outputs #:allow-other-keys)
3931 (substitute* "rules/meson.build"
3932 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
3933 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
3934 #t))
3935 (add-before 'configure 'set-sqlite3-file-name
3936 (lambda* (#:key inputs #:allow-other-keys)
3937 ;; "colormgr dump" works by invoking the "sqlite3" command.
3938 ;; Record its absolute file name.
3939 (let ((sqlite (assoc-ref inputs "sqlite")))
3940 (substitute* "client/cd-util.c"
3941 (("\"sqlite3\"")
3942 (string-append "\"" sqlite "/bin/sqlite3\"")))
3943 #t))))))
3944 (native-inputs
3945 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
3946 ("gettext" ,gettext-minimal)
3947 ("gobject-introspection" ,gobject-introspection)
3948 ("gtk-doc" ,gtk-doc)
3949 ("pkg-config" ,pkg-config)
3950 ("vala" ,vala)))
3951 (propagated-inputs
3952 ;; colord.pc refers to all these.
3953 `(("glib" ,glib)
3954 ("lcms" ,lcms)
3955 ("udev" ,eudev)))
3956 (inputs
3957 `(("dbus-glib" ,dbus-glib)
3958 ("gusb" ,gusb)
3959 ("libgudev" ,libgudev)
3960 ("libusb" ,libusb)
3961 ("polkit" ,polkit)
3962 ("python" ,python-wrapper)
3963 ("sqlite" ,sqlite)
3964 ("sane-backends" ,sane-backends)))
3965 (home-page "https://www.freedesktop.org/software/colord/")
3966 (synopsis "Color management service")
3967 (description "Colord is a system service that makes it easy to manage,
3968 install and generate color profiles to accurately color manage input and
3969 output devices.")
3970 (license license:gpl2+)))
3971
3972 (define-public geoclue
3973 (package
3974 (name "geoclue")
3975 (version "2.5.5")
3976 (source
3977 (origin
3978 (method url-fetch)
3979 (uri
3980 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
3981 version "/geoclue-" version ".tar.bz2"))
3982 (sha256
3983 (base32
3984 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
3985 (patches (search-patches "geoclue-config.patch"))))
3986 (build-system meson-build-system)
3987 (arguments
3988 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
3989 (native-inputs
3990 `(("pkg-config" ,pkg-config)
3991 ("gobject-introspection" ,gobject-introspection)
3992 ("modem-manager" ,modem-manager)
3993 ("libnotify" ,libnotify)
3994 ("gtk-doc", gtk-doc)
3995 ("intltool" ,intltool)))
3996 (inputs
3997 `(("avahi" ,avahi)
3998 ("glib:bin" ,glib "bin")
3999 ("glib-networking" ,glib-networking)
4000 ("json-glib" ,json-glib)
4001 ("libsoup" ,libsoup)))
4002 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4003 (synopsis "Geolocation service")
4004 (description "Geoclue is a D-Bus service that provides location
4005 information. The primary goal of the Geoclue project is to make creating
4006 location-aware applications as simple as possible, while the secondary goal is
4007 to ensure that no application can access location information without explicit
4008 permission from user.")
4009 (license license:gpl2+)))
4010
4011 (define-public geocode-glib
4012 (package
4013 (name "geocode-glib")
4014 (version "3.26.1")
4015 (source (origin
4016 (method url-fetch)
4017 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4018 (version-major+minor version) "/"
4019 "geocode-glib-" version ".tar.xz"))
4020 (sha256
4021 (base32
4022 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4023 (build-system meson-build-system)
4024 (arguments
4025 `(#:phases
4026 (modify-phases %standard-phases
4027 ;; The tests require a bunch of locales.
4028 (add-before 'check 'set-locales
4029 (lambda* (#:key inputs #:allow-other-keys)
4030 (setenv "GUIX_LOCPATH"
4031 (string-append (assoc-ref inputs "glibc-locales")
4032 "/lib/locale"))
4033 #t)))))
4034 (native-inputs
4035 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4036 ("glibc-locales" ,glibc-locales) ; for tests
4037 ("gettext" ,gettext-minimal)
4038 ("gobject-introspection" ,gobject-introspection)
4039 ("gtk-doc" ,gtk-doc)
4040 ("pkg-config" ,pkg-config)
4041 ("json-glib" ,json-glib)))
4042 (propagated-inputs
4043 ;; geocode-glib-1.0.pc refers to GIO.
4044 `(("glib" ,glib)))
4045 (inputs
4046 `(("libsoup" ,libsoup)))
4047 (home-page "https://github.com/GNOME/geocode-glib/")
4048 (synopsis "Geocoding and reverse-geocoding library")
4049 (description
4050 "geocode-glib is a convenience library for geocoding (finding longitude,
4051 and latitude from an address) and reverse geocoding (finding an address from
4052 coordinates) using the Nominatim service. geocode-glib caches requests for
4053 faster results and to avoid unnecessary server load.")
4054 (license license:lgpl2.0+)))
4055
4056 (define-public upower
4057 (package
4058 (name "upower")
4059 (version "0.99.11")
4060 (source (origin
4061 (method url-fetch)
4062 (uri (string-append "https://upower.freedesktop.org/releases/"
4063 "upower-" version ".tar.xz"))
4064 (sha256
4065 (base32
4066 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4067 (patches (search-patches "upower-builddir.patch"))
4068 (modules '((guix build utils)))
4069 (snippet
4070 '(begin
4071 ;; Upstream commit
4072 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4073 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4074 ;; 'dbus-configuration-directory' in (gnu services dbus)
4075 ;; expects it in etc/. Thus, move it back to its previous
4076 ;; location.
4077 (substitute* "src/Makefile.in"
4078 (("^dbusconfdir =.*$")
4079 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4080 #t))))
4081 (build-system glib-or-gtk-build-system)
4082 (arguments
4083 '( ;; The tests want to contact the system bus, which can't be done in the
4084 ;; build environment. The integration test can run, but the last of
4085 ;; the up-self-tests doesn't. Disable tests for now.
4086 #:tests? #f
4087 #:configure-flags (list "--localstatedir=/var"
4088 (string-append "--with-udevrulesdir="
4089 (assoc-ref %outputs "out")
4090 "/lib/udev/rules.d"))))
4091 (native-inputs
4092 `(("gobject-introspection" ,gobject-introspection)
4093 ("pkg-config" ,pkg-config)
4094 ("intltool" ,intltool)
4095 ("python" ,python)
4096
4097 ;; For man pages.
4098 ("libxslt" ,libxslt) ;for 'xsltproc'
4099 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4100 ("docbook-xsl" ,docbook-xsl)))
4101 (inputs
4102 `(("dbus-glib" ,dbus-glib)
4103 ("libgudev" ,libgudev)
4104 ("libusb" ,libusb)))
4105 (propagated-inputs
4106 ;; In Requires of upower-glib.pc.
4107 `(("glib" ,glib)))
4108 (home-page "https://upower.freedesktop.org/")
4109 (synopsis "System daemon for managing power devices")
4110 (description
4111 "UPower is an abstraction for enumerating power devices,
4112 listening to device events and querying history and statistics. Any
4113 application or service on the system can access the org.freedesktop.UPower
4114 service via the system message bus.")
4115 (license license:gpl2+)))
4116
4117 (define-public libgweather
4118 (package
4119 (name "libgweather")
4120 (version "3.28.3")
4121 (source (origin
4122 (method url-fetch)
4123 (uri (string-append "mirror://gnome/sources/" name "/"
4124 (version-major+minor version) "/"
4125 name "-" version ".tar.xz"))
4126 (sha256
4127 (base32
4128 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
4129 (build-system meson-build-system)
4130 (arguments
4131 `(#:tests? #f ; one of two tests requires network access
4132 #:configure-flags
4133 `(,(string-append "-Dzoneinfo_dir="
4134 (assoc-ref %build-inputs "tzdata")
4135 "/share/zoneinfo"))))
4136 (native-inputs
4137 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4138 ("gobject-introspection" ,gobject-introspection)
4139 ("pkg-config" ,pkg-config)
4140 ("vala" ,vala)
4141 ("intltool" ,intltool)))
4142 (propagated-inputs
4143 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4144 ;; libsoup.
4145 `(("gtk+" ,gtk+)
4146 ("gdk-pixbuf" ,gdk-pixbuf)
4147 ("libxml2" ,libxml2)
4148 ("libsoup" ,libsoup)
4149 ("geocode-glib" ,geocode-glib)))
4150 (inputs
4151 `(("tzdata" ,tzdata)))
4152 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4153 (synopsis "Location, time zone, and weather library for GNOME")
4154 (description
4155 "libgweather is a library to access weather information from online
4156 services for numerous locations.")
4157 (license license:gpl2+)))
4158
4159 (define-public gnome-settings-daemon
4160 (package
4161 (name "gnome-settings-daemon")
4162 (version "3.32.1")
4163 (source
4164 (origin
4165 (method url-fetch)
4166 (uri (string-append "mirror://gnome/sources/" name "/"
4167 (version-major+minor version) "/"
4168 name "-" version ".tar.xz"))
4169 (sha256
4170 (base32
4171 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
4172 (build-system meson-build-system)
4173 (arguments
4174 `(#:glib-or-gtk? #t
4175 #:configure-flags
4176 (list (string-append "-Dudev_dir="
4177 (assoc-ref %outputs "out")
4178 "/lib/udev/rules.d/")
4179 ;; Otherwise, the RUNPATH will lack the final path component.
4180 (string-append "-Dc_link_args=-Wl,-rpath="
4181 (assoc-ref %outputs "out")
4182 "/lib/gnome-settings-daemon-3.0"))
4183 ;; Color management test can't reach the colord system service.
4184 #:tests? #f))
4185 (native-inputs
4186 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4187 ("pkg-config" ,pkg-config)
4188 ("intltool" ,intltool)
4189 ("xsltproc" ,libxslt)
4190 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4191 ("docbook-xml" ,docbook-xml-4.2)
4192 ("docbook-xsl" ,docbook-xsl)))
4193 (inputs
4194 `(("alsa-lib" ,alsa-lib)
4195 ("colord" ,colord)
4196 ("libgudev" ,libgudev)
4197 ("upower" ,upower)
4198 ("polkit" ,polkit)
4199 ("pulseaudio" ,pulseaudio)
4200 ("libcanberra" ,libcanberra)
4201 ("libx11" ,libx11)
4202 ("libxtst" ,libxtst)
4203 ("lcms" ,lcms)
4204 ("libnotify" ,libnotify)
4205 ("geoclue" ,geoclue)
4206 ("geocode-glib" ,geocode-glib)
4207 ("libgweather" ,libgweather)
4208 ("gnome-desktop" ,gnome-desktop)
4209 ("nss" ,nss)
4210 ("cups" ,cups)
4211 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4212 ("libwacom" ,libwacom)
4213 ("librsvg" ,librsvg)
4214 ("xf86-input-wacom" ,xf86-input-wacom)
4215 ("wayland" ,wayland)
4216 ("network-manager" ,network-manager)))
4217 (home-page "https://www.gnome.org")
4218 (synopsis "GNOME settings daemon")
4219 (description
4220 "This package contains the daemon responsible for setting the various
4221 parameters of a GNOME session and the applications that run under it. It
4222 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4223 settings, themes, mouse settings, and startup of other daemons.")
4224 (license license:gpl2+)))
4225
4226 (define-public totem-pl-parser
4227 (package
4228 (name "totem-pl-parser")
4229 (version "3.26.3")
4230 (source (origin
4231 (method url-fetch)
4232 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4233 (version-major+minor version) "/"
4234 "totem-pl-parser-" version ".tar.xz"))
4235 (sha256
4236 (base32
4237 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4238 (build-system meson-build-system)
4239 (arguments
4240 ;; FIXME: Tests require gvfs.
4241 `(#:tests? #f))
4242 (native-inputs
4243 `(("intltool" ,intltool)
4244 ("glib" ,glib "bin")
4245 ("gobject-introspection" ,gobject-introspection)
4246 ("pkg-config" ,pkg-config)))
4247 (propagated-inputs
4248 `(("glib" ,glib)
4249 ("gmime" ,gmime)
4250 ("libarchive" ,libarchive)
4251 ("libgcrypt" ,libgcrypt)
4252 ("libxml2" ,libxml2)))
4253 (inputs
4254 `(("libsoup" ,libsoup)))
4255 (home-page "https://projects.gnome.org/totem")
4256 (synopsis "Library to parse and save media playlists for GNOME")
4257 (description "Totem-pl-parser is a GObjects-based library to parse and save
4258 playlists in a variety of formats.")
4259 (license license:lgpl2.0+)))
4260
4261 (define-public aisleriot
4262 (package
4263 (name "aisleriot")
4264 (version "3.22.9")
4265 (source (origin
4266 (method url-fetch)
4267 (uri (string-append "mirror://gnome/sources/aisleriot/"
4268 (version-major+minor version) "/"
4269 "aisleriot-" version ".tar.xz"))
4270 (sha256
4271 (base32
4272 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4273 (build-system glib-or-gtk-build-system)
4274 (arguments
4275 '(#:configure-flags
4276 '("--with-platform=gtk-only"
4277 "--with-card-theme-formats=svg")))
4278 (native-inputs
4279 `(("desktop-file-utils" ,desktop-file-utils)
4280 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4281 ("intltool" ,intltool)
4282 ("itstool" ,itstool)
4283 ("pkg-config" ,pkg-config)
4284 ("xmllint" ,libxml2)))
4285 (inputs
4286 `(("gtk+" ,gtk+)
4287 ("guile" ,guile-2.2)
4288 ("libcanberra" ,libcanberra)
4289 ("librsvg" ,librsvg)))
4290 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4291 (synopsis "Solitaire card games")
4292 (description
4293 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4294 which are easy to play with the aid of a mouse.")
4295 (license license:gpl3+)))
4296
4297 (define-public amtk
4298 (package
4299 (name "amtk")
4300 (version "5.0.2")
4301 (source (origin
4302 (method url-fetch)
4303 (uri (string-append "mirror://gnome/sources/amtk/"
4304 (version-major+minor version) "/"
4305 "amtk-" version ".tar.xz"))
4306 (sha256
4307 (base32
4308 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
4309 (build-system gnu-build-system)
4310 (arguments
4311 '(#:configure-flags '("--enable-gtk-doc")))
4312 (native-inputs
4313 `(("gobject-introspection" ,gobject-introspection)
4314 ("glib:bin" ,glib "bin") ; for glib-mkenums
4315 ("gtk-doc" ,gtk-doc)
4316 ("pkg-config" ,pkg-config)))
4317 (inputs
4318 `(("glib" ,glib)
4319 ("gtk+" ,gtk+)))
4320 (home-page "https://wiki.gnome.org/Projects/Amtk")
4321 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4322 (description
4323 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4324 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4325 both a traditional UI or a modern UI with a GtkHeaderBar.")
4326 (license license:lgpl2.1+)))
4327
4328 (define-public devhelp
4329 (package
4330 (name "devhelp")
4331 (version "3.32.0")
4332 (source (origin
4333 (method url-fetch)
4334 (uri (string-append "mirror://gnome/sources/" name "/"
4335 (version-major+minor version) "/"
4336 name "-" version ".tar.xz"))
4337 (sha256
4338 (base32
4339 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
4340 (build-system meson-build-system)
4341 (arguments
4342 '(#:glib-or-gtk? #t
4343 #:phases
4344 (modify-phases %standard-phases
4345 (add-after 'unpack 'skip-gtk-update-icon-cache
4346 ;; Don't create 'icon-theme.cache'.
4347 (lambda _
4348 (substitute* "meson_post_install.py"
4349 (("gtk-update-icon-cache") "true"))
4350 #t)))))
4351 (native-inputs
4352 `(("intltool" ,intltool)
4353 ("itstool" ,itstool)
4354 ("gobject-introspection" ,gobject-introspection)
4355 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4356 ("pkg-config" ,pkg-config)))
4357 (inputs
4358 `(("amtk" ,amtk)
4359 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4360 ("webkitgtk" ,webkitgtk)))
4361 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4362 (synopsis "API documentation browser for GNOME")
4363 (description
4364 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4365 natively with GTK-Doc (the API reference system developed for GTK+ and used
4366 throughout GNOME for API documentation).")
4367 (license license:gpl2+)))
4368
4369 (define-public cogl
4370 (package
4371 (name "cogl")
4372 (version "1.22.4")
4373 (source
4374 (origin
4375 (method url-fetch)
4376 (uri (string-append "mirror://gnome/sources/cogl/"
4377 (version-major+minor version) "/"
4378 "cogl-" version ".tar.xz"))
4379 (sha256
4380 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
4381 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4382 ;; cogl, corresponding changes may be appropriate in mutter as well.
4383 (build-system gnu-build-system)
4384 (native-inputs
4385 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4386 ("gobject-introspection" ,gobject-introspection)
4387 ;;("xorg-server" ,xorg-server) ; for the test suite
4388 ("pkg-config" ,pkg-config)))
4389 (propagated-inputs
4390 `(("glib" ,glib)
4391 ("gdk-pixbuf" ,gdk-pixbuf)
4392 ("libx11" ,libx11)
4393 ("libxext" ,libxext)
4394 ("libxfixes" ,libxfixes)
4395 ("libxdamage" ,libxdamage)
4396 ("libxcomposite" ,libxcomposite)
4397 ("libxrandr" ,libxrandr)))
4398 (inputs
4399 `(("mesa" ,mesa)
4400 ("cairo" ,cairo)
4401 ("pango" ,pango)
4402 ("gstreamer" ,gstreamer)
4403 ("gst-plugins-base" ,gst-plugins-base)
4404 ("wayland" ,wayland)))
4405 (arguments
4406 `(#:configure-flags (list "--enable-cogl-gst"
4407 "--enable-wayland-egl-platform"
4408 "--enable-wayland-egl-server"
4409
4410 ;; Arrange to pass an absolute file name to
4411 ;; dlopen for libGL.so.
4412 (string-append "--with-gl-libname="
4413 (assoc-ref %build-inputs "mesa")
4414 "/lib/libGL.so"))
4415 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4416 ;; _FontTransOpen: Unable to Parse address
4417 ;; ${prefix}/share/fonts/X11/misc/
4418 #:tests? #f
4419 #; #:phases
4420 #;
4421 (modify-phases %standard-phases
4422 (add-before 'check 'start-xorg-server
4423 (lambda* (#:key inputs #:allow-other-keys)
4424 ;; The test suite requires a running X server.
4425 (system (format #f "~a/bin/Xvfb :1 &"
4426 (assoc-ref inputs "xorg-server")))
4427 (setenv "DISPLAY" ":1")
4428 #t)))))
4429 (home-page "https://www.cogl3d.org")
4430 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4431 (description
4432 "Cogl is a small library for using 3D graphics hardware to draw pretty
4433 pictures. The API departs from the flat state machine style of OpenGL and is
4434 designed to make it easy to write orthogonal components that can render
4435 without stepping on each others toes.")
4436 (license (list license:expat ; most of the code
4437 license:bsd-3 ; cogl/cogl-point-in-poly.c
4438 license:sgifreeb2.0 ; cogl-path/tesselator/
4439 license:asl2.0)))) ; examples/android/
4440
4441 (define-public clutter
4442 (package
4443 (name "clutter")
4444 (version "1.26.2")
4445 (source
4446 (origin
4447 (method url-fetch)
4448 (uri (string-append "mirror://gnome/sources/" name "/"
4449 (version-major+minor version) "/"
4450 name "-" version ".tar.xz"))
4451 (sha256
4452 (base32
4453 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4454 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4455 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4456 (build-system gnu-build-system)
4457 (outputs '("out"
4458 "doc")) ;9 MiB of gtk-doc HTML pages
4459 (native-inputs
4460 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4461 ("gobject-introspection" ,gobject-introspection)
4462 ("pkg-config" ,pkg-config)
4463 ("xsltproc" ,libxslt)))
4464 (propagated-inputs
4465 `(("cogl" ,cogl)
4466 ("cairo" ,cairo)
4467 ("atk" ,atk)
4468 ("gtk+" ,gtk+)
4469 ("json-glib" ,json-glib)
4470 ("glib" ,glib)
4471 ("libxcomposite" ,libxcomposite)
4472 ("libxdamage" ,libxdamage)
4473 ("libxext" ,libxext)
4474 ("xinput" ,xinput)))
4475 (inputs
4476 `(("libxkbcommon" ,libxkbcommon)
4477 ("udev" ,eudev)))
4478 (arguments
4479 `(#:configure-flags (list "--enable-x11-backend=yes"
4480
4481 ;; This produces share/doc/{clutter,cally}.
4482 (string-append "--with-html-dir="
4483 (assoc-ref %outputs "doc")
4484 "/share/doc"))
4485 ;; XXX FIXME: Get test suite working. It would probably fail in the
4486 ;; same way the cogl tests fail, since clutter is based on cogl.
4487 #:tests? #f))
4488 (home-page "http://www.clutter-project.org")
4489 (synopsis "OpenGL-based interactive canvas library")
4490 (description
4491 "Clutter is an OpenGL-based interactive canvas library, designed for
4492 creating fast, mainly 2D single window applications such as media box UIs,
4493 presentations, kiosk style applications and so on.")
4494 (license license:lgpl2.0+)))
4495
4496 (define-public clutter-gtk
4497 (package
4498 (name "clutter-gtk")
4499 (version "1.8.4")
4500 (source
4501 (origin
4502 (method url-fetch)
4503 (uri (string-append "mirror://gnome/sources/" name "/"
4504 (version-major+minor version) "/"
4505 name "-" version ".tar.xz"))
4506 (sha256
4507 (base32
4508 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4509 (build-system gnu-build-system)
4510 (native-inputs
4511 `(("pkg-config" ,pkg-config)
4512 ("gobject-introspection" ,gobject-introspection)))
4513 (propagated-inputs
4514 ;; clutter-gtk.pc refers to all these.
4515 `(("clutter" ,clutter)
4516 ("gtk+" ,gtk+)))
4517 (home-page "http://www.clutter-project.org")
4518 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4519 (description
4520 "Clutter is an OpenGL-based interactive canvas library, designed for
4521 creating fast, mainly 2D single window applications such as media box UIs,
4522 presentations, kiosk style applications and so on.")
4523 (license license:lgpl2.0+)))
4524
4525 (define-public clutter-gst
4526 (package
4527 (name "clutter-gst")
4528 (version "3.0.27")
4529 (source
4530 (origin
4531 (method url-fetch)
4532 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4533 (version-major+minor version) "/"
4534 "clutter-gst-" version ".tar.xz"))
4535 (sha256
4536 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4537 (build-system gnu-build-system)
4538 (native-inputs
4539 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4540 ("pkg-config" ,pkg-config)
4541 ("gobject-introspection" ,gobject-introspection)))
4542 (inputs
4543 `(("clutter" ,clutter)
4544 ("gstreamer" ,gstreamer)
4545 ("gst-plugins-base" ,gst-plugins-base)))
4546 (home-page "http://www.clutter-project.org")
4547 (synopsis "Integration library for using GStreamer with Clutter")
4548 (description
4549 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4550 It provides a GStreamer sink to upload frames to GL and an actor that
4551 implements the ClutterGstPlayer interface using playbin. Clutter is an
4552 OpenGL-based interactive canvas library.")
4553 (license license:lgpl2.0+)))
4554
4555 (define-public libchamplain
4556 (package
4557 (name "libchamplain")
4558 (version "0.12.16")
4559 (source (origin
4560 (method url-fetch)
4561 (uri (string-append
4562 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4563 version ".tar.xz"))
4564 (sha256
4565 (base32
4566 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4567 (build-system gnu-build-system)
4568 (arguments '(#:configure-flags '("--enable-vala")))
4569 (native-inputs
4570 `(("gobject-introspection" ,gobject-introspection)
4571 ("pkg-config" ,pkg-config)
4572 ("vala" ,vala)))
4573 (propagated-inputs
4574 `(("libsoup" ,libsoup)
4575 ("sqlite" ,sqlite)
4576 ("clutter" ,clutter)
4577 ("clutter-gtk" ,clutter-gtk)
4578 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4579 ("cairo" ,cairo)
4580 ("gtk+3" ,gtk+)
4581 ("glib" ,glib)))
4582 (home-page "https://projects.gnome.org/libchamplain/")
4583 (synopsis "C library providing a ClutterActor to display maps")
4584 (description
4585 "libchamplain is a C library providing a ClutterActor to display maps.
4586 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4587 and Perl bindings are also available. It supports numerous free map sources
4588 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4589 (license license:lgpl2.1+)))
4590
4591 (define-public gom
4592 (package
4593 (name "gom")
4594 (version "0.3.2")
4595 (source
4596 (origin
4597 (method url-fetch)
4598 (uri (string-append "mirror://gnome/sources/gom/"
4599 (version-major+minor version) "/"
4600 "gom-" version ".tar.xz"))
4601 (sha256
4602 (base32
4603 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4604 (build-system gnu-build-system)
4605 (native-inputs
4606 `(("intltool" ,intltool)
4607 ("pkg-config" ,pkg-config)
4608 ("gobject-introspection" ,gobject-introspection)))
4609 (inputs
4610 `(("glib" ,glib)
4611 ("gdk-pixbuf" ,gdk-pixbuf)
4612 ("sqlite" ,sqlite)))
4613 ;; XXX TODO: Figure out how to run the test suite.
4614 (arguments `(#:tests? #f))
4615 (home-page "https://wiki.gnome.org/Projects/Gom")
4616 (synopsis "Object mapper from GObjects to SQLite")
4617 (description
4618 "Gom provides an object mapper from GObjects to SQLite. It helps you
4619 write applications that need to store structured data as well as make complex
4620 queries upon that data.")
4621 (license license:lgpl2.1+)))
4622
4623 (define-public libgnome-games-support
4624 (package
4625 (name "libgnome-games-support")
4626 (version "1.4.4")
4627 (source (origin
4628 (method url-fetch)
4629 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4630 (version-major+minor version) "/"
4631 "libgnome-games-support-" version ".tar.xz"))
4632 (sha256
4633 (base32
4634 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4635 (build-system gnu-build-system)
4636 (arguments
4637 '(#:phases
4638 (modify-phases %standard-phases
4639 (add-before 'check 'pre-check
4640 (lambda _
4641 ;; Tests require a writable HOME.
4642 (setenv "HOME" (getcwd))
4643 #t)))))
4644 (native-inputs
4645 `(("intltool" ,intltool)
4646 ("pkg-config" ,pkg-config)
4647 ("vala" ,vala)))
4648 (propagated-inputs
4649 ;; Required by libgnome-games-support-1.0.pc
4650 `(("gtk+" ,gtk+)
4651 ("libgee" ,libgee)))
4652 (home-page "https://www.gnome.org/")
4653 (synopsis "Useful functionality shared among GNOME games")
4654 (description
4655 "libgnome-games-support is a small library intended for internal use by
4656 GNOME Games, but it may be used by others.")
4657 (license license:lgpl3+)))
4658
4659 (define-public gnome-klotski
4660 (package
4661 (name "gnome-klotski")
4662 (version "3.32.0")
4663 (source (origin
4664 (method url-fetch)
4665 (uri (string-append "mirror://gnome/sources/" name "/"
4666 (version-major+minor version) "/"
4667 name "-" version ".tar.xz"))
4668 (sha256
4669 (base32
4670 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4671 (build-system meson-build-system)
4672 (arguments
4673 '(#:glib-or-gtk? #t
4674 #:phases
4675 (modify-phases %standard-phases
4676 (add-after 'unpack 'skip-gtk-update-icon-cache
4677 ;; Don't create 'icon-theme.cache'.
4678 (lambda _
4679 (substitute* "build-aux/meson_post_install.py"
4680 (("gtk-update-icon-cache") (which "true")))
4681 #t)))))
4682 (native-inputs
4683 `(("desktop-file-utils" ,desktop-file-utils)
4684 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4685 ("intltool" ,intltool)
4686 ("itstool" ,itstool)
4687 ("pkg-config" ,pkg-config)
4688 ("vala" ,vala)
4689 ("xmllint" ,libxml2)))
4690 (inputs
4691 `(("gtk+" ,gtk+)
4692 ("libgnome-games-support" ,libgnome-games-support)
4693 ("librsvg" ,librsvg)))
4694 (home-page "https://wiki.gnome.org/Apps/Klotski")
4695 (synopsis "Sliding block puzzles")
4696 (description
4697 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4698 the patterned block to the area bordered by green markers. To do so, you will
4699 need to slide other blocks out of the way. Complete each puzzle in as few moves
4700 as possible!")
4701 (license license:gpl2+)))
4702
4703 (define-public grilo
4704 (package
4705 (name "grilo")
4706 (version "0.3.10")
4707 (source
4708 (origin
4709 (method url-fetch)
4710 (uri (string-append "mirror://gnome/sources/" name "/"
4711 (version-major+minor version) "/"
4712 name "-" version ".tar.xz"))
4713 (sha256
4714 (base32
4715 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4716 (build-system meson-build-system)
4717 (native-inputs
4718 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4719 ("intltool" ,intltool)
4720 ("pkg-config" ,pkg-config)
4721 ("gobject-introspection" ,gobject-introspection)
4722 ("gtk-doc" ,gtk-doc)
4723 ("vala" ,vala)))
4724 (inputs
4725 `(("cyrus-sasl" ,cyrus-sasl)
4726 ("glib" ,glib)
4727 ("gtk+" ,gtk+)
4728 ("libxml2" ,libxml2)
4729 ("liboauth" ,liboauth)
4730 ("libsoup" ,libsoup)
4731 ("totem-pl-parser" ,totem-pl-parser)))
4732 (native-search-paths
4733 (list (search-path-specification
4734 (variable "GRL_PLUGIN_PATH")
4735 (files (list (string-append "lib/grilo-"
4736 (version-major+minor version)))))))
4737 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4738 (synopsis "Framework for discovering and browsing media")
4739 (description
4740 "Grilo is a framework focused on making media discovery and browsing easy
4741 for application developers.")
4742 (license license:lgpl2.1+)))
4743
4744 (define-public grilo-plugins
4745 (package
4746 (name "grilo-plugins")
4747 (version "0.3.10")
4748 (source
4749 (origin
4750 (method url-fetch)
4751 (uri (string-append "mirror://gnome/sources/" name "/"
4752 (version-major+minor version) "/"
4753 name "-" version ".tar.xz"))
4754 (sha256
4755 (base32
4756 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4757 (build-system meson-build-system)
4758 (native-inputs
4759 `(("gettext" ,gettext-minimal)
4760 ("glib:bin" ,glib "bin")
4761 ("gtk+:bin" ,gtk+ "bin")
4762 ("itstool" ,itstool)
4763 ("pkg-config" ,pkg-config)))
4764 ;; TODO: ahavi, gstreamer
4765 (inputs
4766 `(("grilo" ,grilo)
4767 ;("gmime" ,gmime) ; unused
4768 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4769 ("gom" ,gom)
4770 ;("gssdp" ,gssdp) ; unused
4771 ;("gupnp" ,gupnp) ; unused
4772 ;("gupnp-av" ,gupnp-av) ; unused
4773 ("json-glib" ,json-glib)
4774 ("avahi" ,avahi)
4775 ("libgdata" ,libgdata)
4776 ("libmediaart" ,libmediaart)
4777 ;("librest" ,rest) ; unused
4778 ("libsoup" ,libsoup)
4779 ("totam-pl-parser" ,totem-pl-parser)
4780 ("tracker" ,tracker))) ; unused because it's too old
4781 (arguments
4782 `(#:glib-or-gtk? #t
4783 ;;Disable lua-factory as it needs missing dependencies
4784 #:configure-flags '("-Denable-lua-factory=no")))
4785 (home-page "https://live.gnome.org/Grilo")
4786 (synopsis "Plugins for the Grilo media discovery library")
4787 (description
4788 "Grilo is a framework focused on making media discovery and browsing easy
4789 for application developers. This package provides plugins for common media
4790 discovery protocols.")
4791 (license license:lgpl2.1+)))
4792
4793 (define-public totem
4794 (package
4795 (name "totem")
4796 (version "3.32.1")
4797 (source
4798 (origin
4799 (method url-fetch)
4800 (uri (string-append "mirror://gnome/sources/" name "/"
4801 (version-major+minor version) "/"
4802 name "-" version ".tar.xz"))
4803 (sha256
4804 (base32
4805 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
4806 (build-system meson-build-system)
4807 (native-inputs
4808 `(("pkg-config" ,pkg-config)
4809 ("desktop-file-utils" ,desktop-file-utils)
4810 ("gobject-introspection" ,gobject-introspection)
4811 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4812 ("intltool" ,intltool)
4813 ("itstool" ,itstool)
4814 ("xmllint" ,libxml2)
4815 ("python-pylint" ,python-pylint)
4816 ("xorg-server" ,xorg-server-for-tests)))
4817 (propagated-inputs
4818 `(("dconf" ,dconf)))
4819 (inputs
4820 `(("gtk+" ,gtk+)
4821 ("gdk-pixbuf" ,gdk-pixbuf)
4822 ("atk" ,atk)
4823 ("cairo" ,cairo)
4824 ("dbus-glib" ,dbus-glib)
4825 ("clutter" ,clutter)
4826 ("clutter-gtk" ,clutter-gtk)
4827 ("clutter-gst" ,clutter-gst)
4828 ("xorgproto" ,xorgproto)
4829 ("libxxf86vm" ,libxxf86vm)
4830 ("libxtst" ,libxtst)
4831 ("libxrandr" ,libxrandr)
4832 ("libxml2" ,libxml2)
4833 ("libsoup" ,libsoup)
4834 ("libpeas" ,libpeas)
4835 ("librsvg" ,librsvg)
4836 ("lirc" ,lirc)
4837 ("gnome-desktop" ,gnome-desktop)
4838 ("gstreamer" ,gstreamer)
4839 ("gst-plugins-base" ,gst-plugins-base)
4840 ("gst-plugins-good" ,gst-plugins-good)
4841 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4842 ("adwaita-icon-theme" ,adwaita-icon-theme)
4843 ("python" ,python)
4844 ("python-pygobject" ,python-pygobject)
4845 ("totem-pl-parser" ,totem-pl-parser)
4846 ("grilo" ,grilo)
4847 ("grilo-plugins" ,grilo-plugins)
4848 ("vala" ,vala)))
4849 (arguments
4850 `(#:glib-or-gtk? #t
4851
4852 ;; Disable automatic GStreamer plugin installation via PackageKit and
4853 ;; all that.
4854 #:configure-flags '("-D" "enable-easy-codec-installation=no"
4855
4856 ;; Do not build .a files for the plugins, it's
4857 ;; completely useless. This saves 2 MiB.
4858 "--default-library" "shared")
4859 #:phases
4860 (modify-phases %standard-phases
4861 (add-after 'unpack 'skip-gtk-update-icon-cache
4862 ;; Don't create 'icon-theme.cache'.
4863 (lambda _
4864 (substitute* "meson_post_install.py"
4865 (("gtk-update-icon-cache") "true"))
4866 #t))
4867 (add-before
4868 'install 'disable-cache-generation
4869 (lambda _
4870 (setenv "DESTDIR" "/")
4871 #t))
4872 (add-before
4873 'check 'pre-check
4874 (lambda _
4875 ;; Tests require a running X server.
4876 (system "Xvfb :1 &")
4877 (setenv "DISPLAY" ":1")
4878 #t))
4879 (add-after
4880 'install 'wrap-totem
4881 (lambda* (#:key inputs outputs #:allow-other-keys)
4882 (let ((out (assoc-ref outputs "out"))
4883 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4884 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4885 (wrap-program (string-append out "/bin/totem")
4886 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4887 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4888 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4889 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4890 #t)))))
4891 (home-page "https://wiki.gnome.org/Apps/Videos")
4892 (synopsis "Simple media player for GNOME based on GStreamer")
4893 (description "Totem is a simple yet featureful media player for GNOME
4894 which can read a large number of file formats.")
4895 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4896 ;; to be used and distributed together with GStreamer and Totem. See
4897 ;; file://COPYING in the source distribution for details.
4898 (license license:gpl2+)))
4899
4900 (define-public rhythmbox
4901 (package
4902 (name "rhythmbox")
4903 (version "3.4.4")
4904 (source (origin
4905 (method url-fetch)
4906 (uri (string-append "mirror://gnome/sources/rhythmbox/"
4907 (version-major+minor version) "/"
4908 "rhythmbox-" version ".tar.xz"))
4909 (sha256
4910 (base32
4911 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
4912 (build-system glib-or-gtk-build-system)
4913 (arguments
4914 `(#:configure-flags
4915 (list "--enable-lirc"
4916 "--enable-python"
4917 "--enable-vala"
4918 "--with-brasero"
4919 "--with-gudev"
4920 "--with-libsecret")
4921 #:phases
4922 (modify-phases %standard-phases
4923 (add-after
4924 'install 'wrap-rhythmbox
4925 (lambda* (#:key inputs outputs #:allow-other-keys)
4926 (let ((out (assoc-ref outputs "out"))
4927 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4928 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4929 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
4930 (python-path (getenv "PYTHONPATH")))
4931 (wrap-program (string-append out "/bin/rhythmbox")
4932 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
4933 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4934 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
4935 `("PYTHONPATH" ":" prefix (,python-path))))
4936 #t)))))
4937 (propagated-inputs
4938 `(("dconf" ,dconf)))
4939 (native-inputs
4940 `(("itstool" ,itstool)
4941 ("intltool" ,intltool)
4942 ("glib" ,glib "bin")
4943 ("gobject-introspection" ,gobject-introspection)
4944 ("desktop-file-utils" ,desktop-file-utils)
4945 ("pkg-config" ,pkg-config)
4946 ("xmllint" ,libxml2)))
4947 (inputs
4948 `(("json-glib" ,json-glib)
4949 ("tdb" ,tdb)
4950 ("gnome-desktop" ,gnome-desktop)
4951 ("python" ,python)
4952 ("python-pygobject" ,python2-pygobject)
4953 ("vala" ,vala)
4954 ("gmime" ,gmime)
4955 ("adwaita-icon-theme" ,adwaita-icon-theme)
4956 ("grilo" ,grilo)
4957 ("grilo-plugins" ,grilo-plugins)
4958 ("gstreamer" ,gstreamer)
4959 ("gst-plugins-base" ,gst-plugins-base)
4960 ("gst-plugins-good" ,gst-plugins-good)
4961 ("totem-pl-parser" ,totem-pl-parser)
4962 ("libgudev" ,libgudev)
4963 ;;("libmtp" ,libmtp) FIXME: Not detected
4964 ("libsecret" ,libsecret)
4965 ("libsoup" ,libsoup)
4966 ("libnotify" ,libnotify)
4967 ("libpeas" ,libpeas)
4968 ("lirc" ,lirc)
4969 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
4970 ;;("clutter" ,clutter)
4971 ;;("clutter-gtk" ,clutter-gtk)
4972 ;;("clutter-gst" ,clutter-gst)
4973 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4974 ("atk" ,atk)
4975 ("pango" ,pango)
4976 ("gtk+" ,gtk+)
4977 ;; TODO:
4978 ;; * libgpod
4979 ;; * mx
4980 ("brasero" ,brasero)))
4981 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
4982 (synopsis "Music player for GNOME")
4983 (description "Rhythmbox is a music playing application for GNOME. It
4984 supports playlists, song ratings, and any codecs installed through gstreamer.")
4985 (license license:gpl2+)))
4986
4987 (define-public eog
4988 (package
4989 (name "eog")
4990 (version "3.32.2")
4991 (source (origin
4992 (method url-fetch)
4993 (uri (string-append "mirror://gnome/sources/" name "/"
4994 (version-major+minor version) "/"
4995 name "-" version ".tar.xz"))
4996 (sha256
4997 (base32
4998 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
4999 (build-system meson-build-system)
5000 (arguments
5001 `(#:configure-flags
5002 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5003 (list (string-append "-Dc_link_args=-Wl,-rpath="
5004 (assoc-ref %outputs "out") "/lib/eog"))
5005 #:phases
5006 (modify-phases %standard-phases
5007 (add-after 'unpack 'skip-gtk-update-icon-cache
5008 ;; Don't create 'icon-theme.cache'.
5009 (lambda _
5010 (substitute* "meson_post_install.py"
5011 (("gtk-update-icon-cache") "true"))
5012 #t))
5013 (add-after 'install 'wrap-eog
5014 (lambda* (#:key outputs #:allow-other-keys)
5015 (let ((out (assoc-ref outputs "out"))
5016 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5017 (wrap-program (string-append out "/bin/eog")
5018 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5019 #t)))))
5020 (propagated-inputs
5021 `(("dconf" ,dconf)))
5022 (native-inputs
5023 `(("intltool" ,intltool)
5024 ("itstool" ,itstool)
5025 ("glib" ,glib "bin")
5026 ("gobject-introspection" ,gobject-introspection)
5027 ("pkg-config" ,pkg-config)
5028 ("xmllint" ,libxml2)))
5029 (inputs
5030 `(("gnome-desktop" ,gnome-desktop)
5031 ("shared-mime-info" ,shared-mime-info)
5032 ("adwaita-icon-theme" ,adwaita-icon-theme)
5033 ("exempi" ,exempi)
5034 ("lcms" ,lcms)
5035 ("libexif" ,libexif)
5036 ("libpeas" ,libpeas)
5037 ("libjpeg" ,libjpeg)
5038 ("librsvg" ,librsvg)
5039 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5040 ("gtk+" ,gtk+)))
5041 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5042 (synopsis "GNOME image viewer")
5043 (description "Eye of GNOME is the GNOME image viewer. It
5044 supports image conversion, rotation, and slideshows.")
5045 (license license:gpl2+)))
5046
5047 (define-public eog-plugins
5048 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5049 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5050 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5051 ;; 'XDG_DATA_DIRS' appropriately set.
5052 (package
5053 (name "eog-plugins")
5054 (version "3.26.4")
5055 (source (origin
5056 (method url-fetch)
5057 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5058 (version-major+minor version) "/"
5059 "eog-plugins-" version ".tar.xz"))
5060 (sha256
5061 (base32
5062 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5063 (build-system gnu-build-system)
5064 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5065 (synopsis "Extensions for the Eye of GNOME image viewer")
5066 (native-inputs
5067 `(("pkg-config" ,pkg-config)
5068 ("gettext" ,gnu-gettext)))
5069 (inputs
5070 `(("eog" ,eog)
5071 ("glib" ,glib)
5072 ("gtk+" ,gtk+)
5073 ("libpeas" ,libpeas)
5074 ("libexif" ,libexif)
5075 ("libchamplain" ,libchamplain)))
5076 (description
5077 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5078 notably:
5079
5080 @itemize
5081 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5082 @item @dfn{Map}, which displays a map of where the picture was taken on the
5083 side panel;
5084 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5085 @end itemize\n")
5086
5087 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5088 ;; long suspicious byte stream that goes to a
5089 ;; ".gresource.eog_postasa_plugin" ELF section.
5090 (license license:gpl2+)))
5091
5092 (define-public libgudev
5093 (package
5094 (name "libgudev")
5095 (version "232")
5096 (source (origin
5097 (method url-fetch)
5098 (uri (string-append "mirror://gnome/sources/" name "/"
5099 version "/" name "-" version ".tar.xz"))
5100 (sha256
5101 (base32
5102 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5103 (build-system gnu-build-system)
5104 (arguments
5105 '(#:configure-flags
5106 ;; umockdev depends on libgudev.
5107 (list "--disable-umockdev")))
5108 (native-inputs
5109 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5110 ("gobject-introspection" ,gobject-introspection)
5111 ("pkg-config" ,pkg-config)))
5112 (propagated-inputs
5113 `(("glib" ,glib))) ; required by gudev-1.0.pc
5114 (inputs
5115 `(("udev" ,eudev)))
5116 (home-page "https://wiki.gnome.org/Projects/libgudev")
5117 (synopsis "GObject bindings for libudev")
5118 (description
5119 "This library provides GObject bindings for libudev. It was originally
5120 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5121 (license license:lgpl2.1+)))
5122
5123 (define-public gvfs
5124 (package
5125 (name "gvfs")
5126 (version "1.40.1")
5127 (source (origin
5128 (method url-fetch)
5129 (uri (string-append "mirror://gnome/sources/gvfs/"
5130 (version-major+minor version) "/"
5131 "gvfs-" version ".tar.xz"))
5132 (sha256
5133 (base32
5134 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5135 (build-system meson-build-system)
5136 (arguments
5137 '(#:glib-or-gtk? #t
5138 #:configure-flags
5139 (list "-Dsystemduserunitdir=no"
5140 "-Dtmpfilesdir=no"
5141 ;; Otherwise, the RUNPATH will lack the final path component.
5142 (string-append "-Dc_link_args=-Wl,-rpath="
5143 (assoc-ref %outputs "out") "/lib/gvfs"))))
5144 (native-inputs
5145 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5146 ("gettext" ,gettext-minimal)
5147 ("gtk-doc" ,gtk-doc)
5148 ("pkg-config" ,pkg-config)
5149 ("xsltproc" ,libxslt)))
5150 (inputs
5151 `(("avahi" ,avahi)
5152 ("docbook-xml" ,docbook-xml-4.2)
5153 ("docbook-xsl" ,docbook-xsl)
5154 ("dbus" ,dbus)
5155 ("elogind" ,elogind)
5156 ("fuse" ,fuse)
5157 ("gcr" ,gcr)
5158 ("glib" ,glib)
5159 ("gnome-online-accounts" ,gnome-online-accounts)
5160 ("libarchive" ,libarchive)
5161 ("libbluray" ,libbluray)
5162 ("libcap" ,libcap)
5163 ("libcdio-paranoia" ,libcdio-paranoia)
5164 ("libgcrypt" ,libgcrypt)
5165 ("libgdata" ,libgdata)
5166 ("libgphoto2" ,libgphoto2)
5167 ("libgudev" ,libgudev)
5168 ("libimobiledevice" ,libimobiledevice)
5169 ("libmtp" ,libmtp)
5170 ("libnfs" ,libnfs)
5171 ("libsecret" ,libsecret)
5172 ("libsmbclient" ,samba)
5173 ("libsoup" ,libsoup)
5174 ("libxml2" ,libxml2)
5175 ("openssh" ,openssh)
5176 ("polkit" ,polkit)
5177 ("udisks" ,udisks)))
5178 (home-page "https://wiki.gnome.org/gvfs/")
5179 (synopsis "Userspace virtual file system for GIO")
5180 (description
5181 "GVFS is a userspace virtual file system designed to work with the I/O
5182 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5183 to all applications using the GIO API. It also supports exposing the GVFS
5184 mounts to non-GIO applications using FUSE.
5185
5186 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5187 DAV, and others.")
5188 (license license:lgpl2.0+)))
5189
5190 (define-public gusb
5191 (package
5192 (name "gusb")
5193 (version "0.3.0")
5194 (source (origin
5195 (method git-fetch)
5196 (uri (git-reference
5197 (url "https://github.com/hughsie/libgusb.git")
5198 (commit version)))
5199 (file-name (git-file-name name version))
5200 (sha256
5201 (base32
5202 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5203 (build-system meson-build-system)
5204 (native-inputs
5205 `(("gobject-introspection" ,gobject-introspection)
5206 ("pkg-config" ,pkg-config)
5207 ("vala" ,vala)
5208 ("gtk-doc" ,gtk-doc)))
5209 (propagated-inputs
5210 ;; Both of these are required by gusb.pc.
5211 `(("glib" ,glib)
5212 ("libusb" ,libusb)))
5213 (arguments
5214 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5215 (home-page "https://github.com/hughsie/libgusb")
5216 (synopsis "GLib binding for libusb1")
5217 (description
5218 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5219 asynchronous control, bulk and interrupt transfers with proper cancellation
5220 and integration into a mainloop. This makes it easy to integrate low level
5221 USB transfers with your high-level application or system daemon.")
5222 (license license:lgpl2.1+)))
5223
5224 (define-public simple-scan
5225 (package
5226 (name "simple-scan")
5227 (version "3.36.0")
5228 (source
5229 (origin
5230 (method url-fetch)
5231 (uri (string-append "mirror://gnome/sources/simple-scan/"
5232 (version-major+minor version) "/"
5233 "simple-scan-" version ".tar.xz"))
5234 (sha256
5235 (base32 "198l3yhqhb2wzfdcgi8fzbwycr0njn44583dazz6wy1gqbiqnzgm"))))
5236 (build-system meson-build-system)
5237 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5238 (arguments
5239 '(#:glib-or-gtk? #t))
5240 (inputs
5241 `(("gtk" ,gtk+)
5242 ("zlib" ,zlib)
5243 ("cairo" ,cairo)
5244 ("colord" ,colord)
5245 ("gdk-pixbuf" ,gdk-pixbuf)
5246 ("gusb" ,gusb)
5247 ("libsane" ,sane-backends)))
5248 (native-inputs
5249 `(("gettext" ,gettext-minimal)
5250 ("itstool" ,itstool)
5251 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5252 ("pkg-config" ,pkg-config)
5253 ("vala" ,vala)
5254 ("xmllint" ,libxml2)))
5255 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5256 (synopsis "Document and image scanner")
5257 (description
5258 "Document Scanner is an easy-to-use application that lets you connect your
5259 scanner and quickly capture images and documents in an appropriate format. It
5260 supports any scanner for which a suitable SANE driver is available, which is
5261 almost all of them.")
5262 (license license:gpl3+)))
5263
5264 (define-public eolie
5265 (package
5266 (name "eolie")
5267 (version "0.9.98.1")
5268 (source (origin
5269 (method url-fetch)
5270 (uri (string-append "https://adishatz.org/eolie/eolie-"
5271 version ".tar.xz"))
5272 (sha256
5273 (base32
5274 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
5275 (build-system meson-build-system)
5276 (arguments
5277 `(#:glib-or-gtk? #t
5278 #:phases
5279 (modify-phases %standard-phases
5280 (add-after 'unpack 'skip-gtk-update-icon-cache
5281 ;; Don't create 'icon-theme.cache'.
5282 (lambda _
5283 (substitute* "meson_post_install.py"
5284 (("gtk-update-icon-cache") "true"))
5285 #t))
5286 (add-after 'wrap 'wrap-more
5287 (lambda* (#:key inputs outputs #:allow-other-keys)
5288 (let* ((out (assoc-ref outputs "out"))
5289 ;; These libraries must be on LD_LIBRARY_PATH.
5290 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5291 "atk" "gtk+" "gsettings-desktop-schemas"
5292 "gobject-introspection"))
5293 (path (string-join
5294 (map (lambda (lib)
5295 (string-append (assoc-ref inputs lib) "/lib"))
5296 libs)
5297 ":")))
5298 (wrap-program (string-append out "/bin/eolie")
5299 `("LD_LIBRARY_PATH" ":" prefix (,path))
5300 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5301 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5302 #t)))))
5303 (native-inputs
5304 `(("intltool" ,intltool)
5305 ("itstool" ,itstool)
5306 ("pkg-config" ,pkg-config)
5307 ("python" ,python)
5308 ("glib:bin" ,glib "bin")))
5309 (inputs
5310 `(("gobject-introspection" ,gobject-introspection)
5311 ("glib-networking" ,glib-networking)
5312 ("cairo" ,cairo)
5313 ("gtk+" ,gtk+)
5314 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5315 ("python" ,python-wrapper)
5316 ("python-dateutil" ,python-dateutil)
5317 ("python-pyfxa" ,python-pyfxa)
5318 ("python-pygobject" ,python-pygobject)
5319 ("python-pycairo" ,python-pycairo)
5320 ("python-pycrypto" ,python-pycrypto)
5321 ("libsecret" ,libsecret)
5322 ("gtkspell3" ,gtkspell3)
5323 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5324 ("webkitgtk" ,webkitgtk)))
5325 (home-page "https://wiki.gnome.org/Apps/Eolie")
5326 (synopsis "Web browser for GNOME")
5327 (description
5328 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5329 a secret password store, an adblocker, and a modern UI.")
5330 (license license:gpl3+)))
5331
5332 (define-public epiphany
5333 (package
5334 (name "epiphany")
5335 (version "3.32.5")
5336 (source (origin
5337 (method url-fetch)
5338 (uri (string-append "mirror://gnome/sources/epiphany/"
5339 (version-major+minor version) "/"
5340 "epiphany-" version ".tar.xz"))
5341 (sha256
5342 (base32
5343 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
5344
5345 (build-system meson-build-system)
5346 (arguments
5347 ;; FIXME: tests run under Xvfb, but fail with:
5348 ;; /src/bookmarks/ephy-bookmarks/create:
5349 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5350 ;; subsystem
5351 ;; FAIL
5352 '(#:tests? #f
5353 #:glib-or-gtk? #t
5354 #:phases
5355 (modify-phases %standard-phases
5356 (add-after 'unpack 'skip-gtk-update-icon-cache
5357 ;; Don't create 'icon-theme.cache'.
5358 (lambda _
5359 (substitute* "post_install.py"
5360 (("gtk-update-icon-cache") "true"))
5361 #t)))
5362 #:configure-flags
5363 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5364 (list (string-append "-Dc_link_args=-Wl,-rpath="
5365 (assoc-ref %outputs "out") "/lib/epiphany"))))
5366 (propagated-inputs
5367 `(("dconf" ,dconf)))
5368 (native-inputs
5369 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5370 ("glib:bin" ,glib "bin") ; for glib-mkenums
5371 ("intltool" ,intltool)
5372 ("itstool" ,itstool)
5373 ("pkg-config" ,pkg-config)
5374 ("xmllint" ,libxml2)))
5375 (inputs
5376 `(("avahi" ,avahi)
5377 ("gcr" ,gcr)
5378 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5379 ("glib-networking" ,glib-networking)
5380 ("gnome-desktop" ,gnome-desktop)
5381 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5382 ("json-glib" ,json-glib)
5383 ("iso-codes" ,iso-codes)
5384 ("libdazzle" ,libdazzle)
5385 ("libnotify" ,libnotify)
5386 ("libsecret" ,libsecret)
5387 ("libxslt" ,libxslt)
5388 ("nettle" ,nettle) ; for hogweed
5389 ("sqlite" ,sqlite)
5390 ("webkitgtk" ,webkitgtk)))
5391 (home-page "https://wiki.gnome.org/Apps/Web")
5392 (synopsis "GNOME web browser")
5393 (description
5394 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5395 principles are simplicity and standards compliance.")
5396 (license license:gpl2+)))
5397
5398 (define-public d-feet
5399 (package
5400 (name "d-feet")
5401 (version "0.3.14")
5402 (source (origin
5403 (method url-fetch)
5404 (uri (string-append "mirror://gnome/sources/" name "/"
5405 (version-major+minor version) "/"
5406 name "-" version ".tar.xz"))
5407 (sha256
5408 (base32
5409 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5410 (build-system glib-or-gtk-build-system)
5411 (arguments
5412 '(#:out-of-source? #f ; tests need to run in the source directory.
5413 #:phases
5414 (modify-phases %standard-phases
5415 (add-before
5416 'check 'pre-check
5417 (lambda _
5418 ;; The test suite requires a running X server.
5419 (system "Xvfb :1 &")
5420 (setenv "DISPLAY" ":1")
5421 ;; Don't fail on missing '/etc/machine-id'.
5422 (setenv "DBUS_FATAL_WARNINGS" "0")
5423 ;; tests.py and window.py don't meet E402:
5424 ;; E402 module level import not at top of file
5425 (substitute* "src/tests/Makefile"
5426 (("--ignore=E123") "--ignore=E123,E402"))
5427 #t))
5428 (add-after
5429 'install 'wrap-program
5430 (lambda* (#:key outputs #:allow-other-keys)
5431 (let ((prog (string-append (assoc-ref outputs "out")
5432 "/bin/d-feet")))
5433 (wrap-program prog
5434 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5435 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5436 #t))))))
5437 (native-inputs
5438 `(("intltool" ,intltool)
5439 ("itstool" ,itstool)
5440 ("pkg-config" ,pkg-config)
5441 ("python-pep8" ,python-pep8)
5442 ("xmllint" ,libxml2)
5443 ("xorg-server" ,xorg-server-for-tests)))
5444 (inputs
5445 `(("gobject-introspection" ,gobject-introspection)
5446 ("gtk+" ,gtk+)
5447 ("python" ,python-wrapper)
5448 ("hicolor-icon-theme" ,hicolor-icon-theme)
5449 ("python-pygobject" ,python-pygobject)))
5450 (home-page "https://wiki.gnome.org/Apps/DFeet")
5451 (synopsis "D-Bus debugger")
5452 (description
5453 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5454 of running programs and invoke methods on those interfaces.")
5455 (license license:gpl2+)))
5456
5457 (define-public yelp-xsl
5458 (package
5459 (name "yelp-xsl")
5460 (version "3.32.1")
5461 (source (origin
5462 (method url-fetch)
5463 (uri (string-append "mirror://gnome/sources/" name "/"
5464 (version-major+minor version) "/"
5465 name "-" version ".tar.xz"))
5466 (sha256
5467 (base32
5468 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
5469 (build-system gnu-build-system)
5470 (native-inputs
5471 `(("intltool" ,intltool)
5472 ("itstool" ,itstool)
5473 ("xmllint" ,libxml2)))
5474 (home-page "https://wiki.gnome.org/Apps/Yelp")
5475 (synopsis "XSL stylesheets for Yelp")
5476 (description
5477 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5478 to format Docbook and Mallard documents.")
5479 (license license:gpl2+)))
5480
5481 (define-public yelp
5482 (package
5483 (name "yelp")
5484 (version "3.32.2")
5485 (source (origin
5486 (method url-fetch)
5487 (uri (string-append "mirror://gnome/sources/" name "/"
5488 (version-major+minor version) "/"
5489 name "-" version ".tar.xz"))
5490 (sha256
5491 (base32
5492 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5493 (build-system glib-or-gtk-build-system)
5494 (native-inputs
5495 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5496 ("intltool" ,intltool)
5497 ("itstool" ,itstool)
5498 ("pkg-config" ,pkg-config)))
5499 (propagated-inputs
5500 `(("dconf" ,dconf)))
5501 (inputs
5502 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5503 ("libxslt" ,libxslt)
5504 ("sqlite" ,sqlite)
5505 ("webkitgtk" ,webkitgtk)
5506 ("yelp-xsl" ,yelp-xsl)))
5507 (home-page "https://wiki.gnome.org/Apps/Yelp")
5508 (synopsis "GNOME help browser")
5509 (description
5510 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5511 man, info, and HTML documents. It can locate documents according to the
5512 freedesktop.org help system specification.")
5513 (license license:gpl2+)))
5514
5515 (define-public yelp-tools
5516 (package
5517 (name "yelp-tools")
5518 (version "3.28.0")
5519 (source (origin
5520 (method url-fetch)
5521 (uri (string-append "mirror://gnome/sources/" name "/"
5522 (version-major+minor version) "/"
5523 name "-" version ".tar.xz"))
5524 (sha256
5525 (base32
5526 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
5527 (build-system gnu-build-system)
5528 (native-inputs
5529 `(("pkg-config" ,pkg-config)))
5530 (propagated-inputs
5531 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5532 `(("itstool" ,itstool)
5533 ("xmllint" ,libxml2)
5534 ("xsltproc" ,libxslt)))
5535 (inputs
5536 `(("yelp-xsl" ,yelp-xsl)))
5537 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5538 (synopsis "Yelp documentation tools")
5539 (description
5540 "Yelp-tools is a collection of scripts and build utilities to help create,
5541 manage, and publish documentation for Yelp and the web. Most of the heavy
5542 lifting is done by packages like yelp-xsl and itstool. This package just
5543 wraps things up in a developer-friendly way.")
5544 (license license:gpl2+)))
5545
5546 (define-public yelp-tools/fixed
5547 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5548 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5549 ;; the next rebuild cycle.
5550 (hidden-package
5551 (package/inherit
5552 yelp-tools
5553 (propagated-inputs
5554 `(("itstool" ,itstool/fixed)
5555 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5556
5557 (define-public libgee
5558 (package
5559 (name "libgee")
5560 (version "0.20.3")
5561 (source (origin
5562 (method url-fetch)
5563 (uri (string-append "mirror://gnome/sources/libgee/"
5564 (version-major+minor version) "/"
5565 "libgee-" version ".tar.xz"))
5566 (sha256
5567 (base32
5568 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
5569 (build-system gnu-build-system)
5570 (arguments
5571 `(#:phases
5572 (modify-phases %standard-phases
5573 (add-after 'unpack 'fix-introspection-install-dir
5574 (lambda* (#:key outputs #:allow-other-keys)
5575 (let ((out (assoc-ref outputs "out")))
5576 (substitute* "gee/Makefile.in"
5577 (("@INTROSPECTION_GIRDIR@")
5578 (string-append out "/share/gir-1.0/"))
5579 (("@INTROSPECTION_TYPELIBDIR@")
5580 (string-append out "/lib/girepository-1.0/")))))))))
5581 (native-inputs
5582 `(("glib" ,glib "bin")
5583 ("pkg-config" ,pkg-config)))
5584 (inputs
5585 `(("glib" ,glib)
5586 ("gobject-introspection" ,gobject-introspection)))
5587 (home-page "https://wiki.gnome.org/Projects/Libgee")
5588 (synopsis "GObject collection library")
5589 (description
5590 "Libgee is a utility library providing GObject-based interfaces and
5591 classes for commonly used data structures.")
5592 (license license:lgpl2.1+)))
5593
5594 (define-public gexiv2
5595 (package
5596 (name "gexiv2")
5597 (version "0.12.0")
5598 (source (origin
5599 (method url-fetch)
5600 (uri (string-append "mirror://gnome/sources/" name "/"
5601 (version-major+minor version) "/"
5602 name "-" version ".tar.xz"))
5603 (sha256
5604 (base32
5605 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5606 (build-system meson-build-system)
5607 (native-inputs
5608 `(("gcr" ,gcr)
5609 ("glib" ,glib "bin")
5610 ("pkg-config" ,pkg-config)
5611 ("vala" ,vala)))
5612 (propagated-inputs
5613 ;; Listed in "Requires" section of gexiv2.pc
5614 `(("exiv2" ,exiv2)))
5615 (inputs
5616 `(("glib" ,glib)
5617 ("gobject-introspection" ,gobject-introspection)))
5618 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5619 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5620 (description
5621 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5622 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5623 metadata in photo and video files of various formats.")
5624 (license license:gpl2+)))
5625
5626 (define-public shotwell
5627 (package
5628 (name "shotwell")
5629 (version "0.30.8")
5630 (source (origin
5631 (method url-fetch)
5632 (uri (string-append "mirror://gnome/sources/shotwell/"
5633 (version-major+minor version) "/"
5634 "shotwell-" version ".tar.xz"))
5635 (sha256
5636 (base32
5637 "1f7m007g6w1sz8s60w6x81ghp2rrjmik8phd958b2hy8zz92wbbj"))))
5638 (build-system meson-build-system)
5639 (arguments
5640 '(#:glib-or-gtk? #t
5641 #:phases
5642 (modify-phases %standard-phases
5643 (add-after 'unpack 'skip-gtk-update-icon-cache
5644 (lambda _
5645 (substitute* "build-aux/meson/postinstall.py"
5646 (("gtk-update-icon-cache") (which "true"))
5647 (("update-desktop-database") (which "true")))
5648 #t)))))
5649 (propagated-inputs
5650 `(("dconf" ,dconf)))
5651 (native-inputs
5652 `(("gettext" ,gettext-minimal)
5653 ("glib:bin" ,glib "bin")
5654 ("itstool" ,itstool)
5655 ("pkg-config" ,pkg-config)
5656 ("vala" ,vala)))
5657 (inputs
5658 `(("gcr" ,gcr)
5659 ("gexiv2" ,gexiv2)
5660 ("gst-plugins-base" ,gst-plugins-base)
5661 ("gstreamer" ,gstreamer)
5662 ("json-glib" ,json-glib)
5663 ("libgdata" ,libgdata)
5664 ("libgee" ,libgee)
5665 ("libgphoto2" ,libgphoto2)
5666 ("libgudev" ,libgudev)
5667 ("libraw" ,libraw)
5668 ("libsoup" ,libsoup)
5669 ("libxml2" ,libxml2)
5670 ("sqlite" ,sqlite)
5671 ("webkitgtk" ,webkitgtk)))
5672 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5673 (synopsis "Photo manager for GNOME 3")
5674 (description
5675 "Shotwell is a digital photo manager designed for the GNOME desktop
5676 environment. It allows you to import photos from disk or camera, organize
5677 them by keywords and events, view them in full-window or fullscreen mode, and
5678 share them with others via social networking and more.")
5679 (license license:lgpl2.1+)))
5680
5681 (define-public file-roller
5682 (package
5683 (name "file-roller")
5684 (version "3.32.3")
5685 (source (origin
5686 (method url-fetch)
5687 (uri (string-append "mirror://gnome/sources/file-roller/"
5688 (version-major+minor version) "/"
5689 "file-roller-" version ".tar.xz"))
5690 (sha256
5691 (base32
5692 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5693 (build-system meson-build-system)
5694 (native-inputs
5695 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5696 ("intltool" ,intltool)
5697 ("itstool" ,itstool)
5698 ("pkg-config" ,pkg-config)
5699 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5700 ("glib:bin" ,glib "bin")))
5701 ;; TODO: Add libnautilus.
5702 (inputs
5703 `(("gtk+" ,gtk+)
5704 ("gdk-pixbuf" ,gdk-pixbuf)
5705 ("json-glib" ,json-glib)
5706 ("libarchive" ,libarchive)
5707 ("libnotify" ,libnotify)
5708 ("nettle" ,nettle)
5709 ("libxml2" ,libxml2)))
5710 (synopsis "Graphical archive manager for GNOME")
5711 (description "File Roller is an archive manager for the GNOME desktop
5712 environment that allows users to view, unpack, and create compressed archives
5713 such as gzip tarballs.")
5714 (home-page "http://fileroller.sourceforge.net/")
5715 (license license:gpl2+)))
5716
5717 (define-public gnome-session
5718 (package
5719 (name "gnome-session")
5720 (version "3.32.0")
5721 (source (origin
5722 (method url-fetch)
5723 (uri (string-append "mirror://gnome/sources/" name "/"
5724 (version-major+minor version) "/"
5725 name "-" version ".tar.xz"))
5726 (sha256
5727 (base32
5728 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
5729 (arguments
5730 '(#:glib-or-gtk? #t
5731 #:phases
5732 (modify-phases %standard-phases
5733 (add-before 'configure 'pre-configure
5734 (lambda* (#:key outputs #:allow-other-keys)
5735 ;; Use elogind instead of systemd.
5736 (substitute* "meson.build"
5737 (("libsystemd-login") "libelogind")
5738 (("and libsystemd_daemon_dep.found.*") ","))
5739 (substitute* "gnome-session/gsm-systemd.c"
5740 (("#include <systemd/sd-login.h>")
5741 "#include <elogind/sd-login.h>"))
5742 ;; Remove uses of the systemd daemon.
5743 (substitute* "gnome-session/gsm-autostart-app.c"
5744 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5745 #t))
5746 (add-after 'install 'wrap-gnome-session
5747 (lambda* (#:key inputs outputs #:allow-other-keys)
5748 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5749 (let ((glib (assoc-ref inputs "glib:bin"))
5750 (out (assoc-ref outputs "out")))
5751 (wrap-program (string-append out "/bin/gnome-session")
5752 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5753 #t))))
5754
5755 #:configure-flags
5756 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5757 "-Dman=false" ; FIXME: disabled because of docbook validation error
5758 "-Dsystemd_journal=false")))
5759 (build-system meson-build-system)
5760 (native-inputs
5761 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5762 ("pkg-config" ,pkg-config)
5763 ("intltool" ,intltool)
5764 ("xsltproc" ,libxslt)
5765 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5766 ("docbook-xsl" ,docbook-xsl)
5767 ("docbook-xml" ,docbook-xml)
5768 ("xmlto" ,xmlto)))
5769 (inputs
5770 `(("elogind" ,elogind)
5771 ("gnome-desktop" ,gnome-desktop)
5772 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5773 ("gtk+" ,gtk+)
5774 ("json-glib" ,json-glib)
5775 ("libsm" ,libsm)
5776 ("libxcomposite" ,libxcomposite)
5777 ("libxtst" ,libxtst)
5778 ("mesa" ,mesa)
5779 ("upower" ,upower)
5780 ("xtrans" ,xtrans)))
5781 (synopsis "Session manager for GNOME")
5782 (description
5783 "This package contains the GNOME session manager, as well as a
5784 configuration program to choose applications starting on login.")
5785 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5786 (license license:gpl2+)))
5787
5788 (define-public gjs
5789 (package
5790 (name "gjs")
5791 (version "1.56.2")
5792 (source (origin
5793 (method url-fetch)
5794 (uri (string-append "mirror://gnome/sources/" name "/"
5795 (version-major+minor version) "/"
5796 name "-" version ".tar.xz"))
5797 (sha256
5798 (base32
5799 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
5800 (build-system gnu-build-system)
5801 (arguments
5802 '(#:phases
5803 (modify-phases %standard-phases
5804 (add-before
5805 'check 'pre-check
5806 (lambda _
5807 ;; The test suite requires a running X server.
5808 (system "Xvfb :1 &")
5809 (setenv "DISPLAY" ":1")
5810
5811 ;; For the missing /etc/machine-id.
5812 (setenv "DBUS_FATAL_WARNINGS" "0")
5813
5814 ;; Our mozjs-38 package does not compile the required Intl API
5815 ;; support for these failing tests.
5816 (substitute* "installed-tests/js/testLocale.js"
5817 ((".*toBeDefined.*") "")
5818 ((".*expect\\(datestr\\).*") ""))
5819 (substitute* "installed-tests/scripts/testCommandLine.sh"
5820 (("Valentín") "")
5821 (("☭") ""))
5822 #t)))))
5823 (native-inputs
5824 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5825 ("pkg-config" ,pkg-config)
5826 ("xmllint" ,libxml2)
5827 ;; For testing
5828 ("dbus-launch" ,dbus)
5829 ("uuidgen" ,util-linux)
5830 ("xvfb" ,xorg-server-for-tests)))
5831 (propagated-inputs
5832 ;; These are all in the Requires.private field of gjs-1.0.pc.
5833 `(("cairo" ,cairo)
5834 ("gobject-introspection" ,gobject-introspection)
5835 ("mozjs" ,mozjs-60)))
5836 (inputs
5837 `(("gtk+" ,gtk+)
5838 ("readline" ,readline)))
5839 (synopsis "Javascript bindings for GNOME")
5840 (home-page "https://live.gnome.org/Gjs")
5841 (description
5842 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5843 javascript engine and the GObject introspection framework.")
5844 (license license:gpl2+)))
5845
5846 (define-public gedit
5847 (package
5848 (name "gedit")
5849 (version "3.32.2")
5850 (source (origin
5851 (method url-fetch)
5852 (uri (string-append "mirror://gnome/sources/" name "/"
5853 (version-major+minor version) "/"
5854 name "-" version ".tar.xz"))
5855 (sha256
5856 (base32
5857 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5858 (build-system meson-build-system)
5859 (arguments
5860 `(#:glib-or-gtk? #t
5861 #:configure-flags
5862 ;; Otherwise, the RUNPATH will lack the final path component.
5863 (list (string-append "-Dc_link_args=-Wl,-rpath="
5864 (assoc-ref %outputs "out") "/lib/gedit"))
5865
5866 ;; XXX: Generated .h files are sometimes used before being built.
5867 #:parallel-build? #f
5868
5869 #:phases
5870 (modify-phases %standard-phases
5871 (add-after 'unpack 'skip-gtk-update-icon-cache
5872 ;; Don't create 'icon-theme.cache'.
5873 (lambda _
5874 (substitute* "build-aux/meson/post_install.py"
5875 (("gtk-update-icon-cache") (which "true")))
5876 #t))
5877 (add-after 'unpack 'patch-libgd-fetch
5878 (lambda* (#:key inputs #:allow-other-keys)
5879 (let ((libgd (assoc-ref inputs "libgd")))
5880 ;; Calling git is unnecessary because libgd is fetched as a
5881 ;; native input to this package.
5882 (substitute* "meson.build"
5883 ((".*git.*") ""))
5884 (copy-recursively libgd "subprojects/libgd")
5885 #t)))
5886 (add-after 'install 'wrap-gedit
5887 (lambda* (#:key inputs outputs #:allow-other-keys)
5888 (let ((out (assoc-ref outputs "out"))
5889 (gtksourceview (assoc-ref inputs "gtksourceview"))
5890 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5891 (python-path (getenv "PYTHONPATH")))
5892 (wrap-program (string-append out "/bin/gedit")
5893 ;; For plugins.
5894 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5895 `("PYTHONPATH" ":" prefix (,python-path))
5896 ;; For language-specs.
5897 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5898 "/share")))))
5899 #t)))))
5900 (propagated-inputs
5901 `(("dconf" ,dconf)))
5902 (native-inputs
5903 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5904 ("intltool" ,intltool)
5905 ("itstool" ,itstool)
5906 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5907 ("gobject-introspection" ,gobject-introspection)
5908 ("libgd"
5909 ,(origin
5910 (method git-fetch)
5911 (uri (git-reference
5912 (url "https://gitlab.gnome.org/GNOME/libgd")
5913 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5914 (file-name (git-file-name "libgd" version))
5915 (sha256
5916 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
5917 ("pkg-config" ,pkg-config)))
5918 (inputs
5919 `(("glib" ,glib)
5920 ("gspell" ,gspell)
5921 ("gtk+" ,gtk+)
5922 ("gtksourceview" ,gtksourceview)
5923 ("libpeas" ,libpeas)
5924 ("libxml2" ,libxml2)
5925 ("iso-codes" ,iso-codes)
5926 ("python-pygobject" ,python-pygobject)
5927 ("python" ,python)
5928 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5929 ("libx11" ,libx11)
5930 ("vala" ,vala)
5931 ("adwaita-icon-theme" ,adwaita-icon-theme)
5932 ("libsoup" ,libsoup)
5933 ("gnome-desktop" ,gnome-desktop)))
5934 (home-page "https://wiki.gnome.org/Apps/Gedit")
5935 (synopsis "GNOME text editor")
5936 (description "While aiming at simplicity and ease of use, gedit is a
5937 powerful general purpose text editor.")
5938 (license license:gpl2+)))
5939
5940 (define-public zenity
5941 (package
5942 (name "zenity")
5943 (version "3.32.0")
5944 (source (origin
5945 (method url-fetch)
5946 (uri (string-append "mirror://gnome/sources/zenity/"
5947 (version-major+minor version) "/"
5948 "zenity-" version ".tar.xz"))
5949 (sha256
5950 (base32
5951 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
5952 (build-system gnu-build-system)
5953 (native-inputs
5954 `(("gettext" ,gettext-minimal)
5955 ("itstool" ,itstool)
5956 ("pkg-config" ,pkg-config)))
5957 (inputs
5958 `(("libnotify" ,libnotify)
5959 ("webkitgtk" ,webkitgtk)))
5960 (synopsis "Display graphical dialog boxes from shell scripts")
5961 (home-page "https://www.gnome.org")
5962 (description
5963 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
5964 to display dialog boxes from the commandline and shell scripts.")
5965 (license license:lgpl2.0+)))
5966
5967 (define-public mutter
5968 (package
5969 (name "mutter")
5970 (version "3.32.2")
5971 (source (origin
5972 (method url-fetch)
5973 (uri (string-append "mirror://gnome/sources/" name "/"
5974 (version-major+minor version) "/"
5975 name "-" version ".tar.xz"))
5976 (sha256
5977 (base32
5978 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
5979 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
5980 ;; versions of cogl and clutter. As a result, many of the inputs,
5981 ;; propagated-inputs, and configure flags used in cogl and clutter are
5982 ;; needed here as well.
5983 (build-system meson-build-system)
5984 (arguments
5985 '(;; XXX: All mutter tests fail with the following error:
5986 ;; Settings schema 'org.gnome.mutter' is not installed
5987 #:tests? #f
5988 #:glib-or-gtk? #t
5989 #:configure-flags
5990 ;; Otherwise, the RUNPATH will lack the final path component.
5991 (list (string-append "-Dc_link_args=-Wl,-rpath="
5992 (assoc-ref %outputs "out") "/lib:"
5993 (assoc-ref %outputs "out") "/lib/mutter-4")
5994
5995 ;; The following flags are needed for the bundled clutter
5996 (string-append "-Dxwayland_path="
5997 (assoc-ref %build-inputs "xorg-server-xwayland")
5998 "/bin/Xwayland")
5999
6000 ;; the remaining flags are needed for the bundled cogl
6001 (string-append "-Dopengl_libname="
6002 (assoc-ref %build-inputs "mesa")
6003 "/lib/libGL.so"))
6004 #:phases
6005 (modify-phases %standard-phases
6006 (add-after 'unpack 'disable-werror
6007 (lambda _
6008 ;; XXX: build fails with [-Werror]:
6009 ;; backends/meta-cursor-renderer.c:112:5: error:
6010 ;; implicit declaration of function ?roundf?
6011 (substitute* "meson.build"
6012 (("'-Werror=.*',") ""))
6013 #t))
6014 ;; Replace references to systemd libraries to elogind references.
6015 (add-before 'configure 'use-elogind
6016 (lambda _
6017 (substitute* (list "meson.build"
6018 "src/backends/native/meta-launcher.c"
6019 "src/core/main.c")
6020 (("systemd") "elogind"))
6021 #t)))))
6022 (native-inputs
6023 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6024 ("gobject-introspection" ,gobject-introspection)
6025 ("intltool" ,intltool)
6026 ("pkg-config" ,pkg-config)
6027 ("xorg-server" ,xorg-server-for-tests)
6028 ;; For git build
6029 ("autoconf" ,autoconf)
6030 ("automake" ,automake)
6031 ("libtool" ,libtool)))
6032 (propagated-inputs
6033 `(;; libmutter.pc refers to these:
6034 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6035 ("gtk+" ,gtk+)
6036 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6037 ("atk" ,atk)
6038 ("cairo" ,cairo)
6039 ("gdk-pixbuf" ,gdk-pixbuf)
6040 ("glib" ,glib)
6041 ("json-glib" ,json-glib)
6042 ("libinput" ,libinput)
6043 ("libx11" ,libx11)
6044 ("libxcomposite" ,libxcomposite)
6045 ("libxdamage" ,libxdamage)
6046 ("libxext" ,libxext)
6047 ("libxfixes" ,libxfixes)
6048 ("libxkbcommon" ,libxkbcommon)
6049 ("libxrandr" ,libxrandr)
6050 ("mesa" ,mesa)
6051 ("pango" ,pango)
6052 ("udev" ,eudev)
6053 ("xinput" ,xinput)))
6054 (inputs
6055 `(("elogind" ,elogind)
6056 ("gnome-desktop" ,gnome-desktop)
6057 ("gnome-settings-daemon" ,gnome-settings-daemon)
6058 ("libcanberra-gtk" ,libcanberra)
6059 ("libgudev" ,libgudev)
6060 ("libice" ,libice)
6061 ("libsm" ,libsm)
6062 ("libwacom" ,libwacom)
6063 ("libxkbfile" ,libxkbfile)
6064 ("libxrandr" ,libxrandr)
6065 ("libxtst" ,libxtst)
6066 ("pipewire" ,pipewire)
6067 ("startup-notification" ,startup-notification)
6068 ("upower-glib" ,upower)
6069 ("xkeyboard-config" ,xkeyboard-config)
6070 ("xorg-server-xwayland" ,xorg-server-xwayland)
6071 ("zenity" ,zenity)))
6072 (synopsis "Window and compositing manager")
6073 (home-page "https://www.gnome.org")
6074 (description
6075 "Mutter is a window and compositing manager that displays and manages your
6076 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6077 Clutter toolkit with solid window-management logic inherited from the Metacity
6078 window manager.")
6079 (license license:gpl2+)))
6080
6081 (define-public gnome-online-accounts
6082 (package
6083 (name "gnome-online-accounts")
6084 (version "3.32.1")
6085 (source (origin
6086 (method url-fetch)
6087 (uri (string-append "mirror://gnome/sources/" name "/"
6088 (version-major+minor version) "/"
6089 name "-" version ".tar.xz"))
6090 (sha256
6091 (base32
6092 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
6093 (outputs '("out" "lib"))
6094 (build-system glib-or-gtk-build-system)
6095 (arguments
6096 `(#:configure-flags
6097 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6098 #:phases
6099 (modify-phases %standard-phases
6100 (add-before 'configure 'patch-libgoa-output
6101 (lambda* (#:key outputs #:allow-other-keys)
6102 (let ((lib (assoc-ref outputs "lib")))
6103 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6104 (("@prefix@") lib)
6105 (("@exec_prefix@") lib)
6106 (("@libdir@") (string-append lib "/lib"))
6107 (("@includedir@") (string-append lib "/include"))
6108 (("@datadir@") (string-append lib "/share")))
6109 ;; Make sure gobject-introspection knows about the output
6110 ;; too (see <https://bugs.gnu.org/36535>).
6111 (setenv "outputs" "out lib")
6112 #t))))))
6113 (native-inputs
6114 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6115 ("gobject-introspection" ,gobject-introspection)
6116 ("intltool" ,intltool)
6117 ("pkg-config" ,pkg-config)
6118 ("vala" ,vala)
6119 ("xsltproc" ,libxslt)))
6120 (propagated-inputs
6121 `(("glib" ,glib) ; required by goa-1.0.pc
6122 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6123 (inputs
6124 `(("docbook-xsl" ,docbook-xsl)
6125 ("json-glib" ,json-glib)
6126 ("libsecret" ,libsecret)
6127 ("rest" ,rest)
6128 ("webkitgtk" ,webkitgtk)))
6129 (synopsis "Single sign-on framework for GNOME")
6130 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6131 (description
6132 "GNOME Online Accounts provides interfaces so that applications and
6133 libraries in GNOME can access the user's online accounts. It has providers for
6134 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6135 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6136 (license license:lgpl2.0+)))
6137
6138 (define-public evolution-data-server
6139 (package
6140 (name "evolution-data-server")
6141 (version "3.32.4")
6142 (source (origin
6143 (method url-fetch)
6144 (uri (string-append "mirror://gnome/sources/" name "/"
6145 (version-major+minor version) "/"
6146 name "-" version ".tar.xz"))
6147 (patches (search-patches "evolution-data-server-locales.patch"
6148 "evolution-data-server-libical-compat.patch"))
6149 (sha256
6150 (base32
6151 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
6152 (build-system cmake-build-system)
6153 (arguments
6154 '(#:configure-flags
6155 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6156 (runpaths (map (lambda (s)
6157 (string-append lib "/evolution-data-server/" s))
6158 '("addressbook-backends" "calendar-backends"
6159 "camel-providers" "credential-modules"
6160 "registry-modules"))))
6161 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6162 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6163 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6164 "-DENABLE_VALA_BINDINGS=ON"
6165 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6166 (string-append lib "/evolution-data-server;")
6167 (string-join runpaths ";"))
6168 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6169 #:phases
6170 (modify-phases %standard-phases
6171 (add-after 'unpack 'disable-failing-tests
6172 (lambda _
6173 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6174 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6175 (delete-file-recursively "tests/book-migration")
6176 (substitute* "tests/CMakeLists.txt"
6177 (("add_subdirectory\\(book-migration\\)") ""))
6178 ;; tests/libebook/client/test-book-client-view-operations:8077):
6179 ;; e-data-server-WARNING **:
6180 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6181 ;; runtime check failed:
6182 ;; (!g_main_context_pending (closure->main_context))
6183 (substitute* "tests/libebook/client/CMakeLists.txt"
6184 (("test-book-client-view-operations") ""))
6185 #t))
6186 (add-after 'unpack 'patch-paths
6187 (lambda _
6188 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6189 "tests/libedata-book/data-test-utils.c"
6190 "tests/libedata-book/test-book-cache-utils.c"
6191 "tests/libedata-cal/test-cal-cache-utils.c")
6192 (("/bin/rm") (which "rm")))
6193 #t))
6194 (add-before 'configure 'dont-override-rpath
6195 (lambda _
6196 (substitute* "CMakeLists.txt"
6197 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6198 ;; Remove it so the configure flag is respected.
6199 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6200 #t)))))
6201 (native-inputs
6202 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6203 ("gobject-introspection" ,gobject-introspection)
6204 ("gperf" ,gperf)
6205 ("intltool" ,intltool)
6206 ("pkg-config" ,pkg-config)
6207 ("vala" ,vala)
6208 ("python" ,python-wrapper)))
6209 (propagated-inputs
6210 ;; These are all in the Requires field of .pc files.
6211 `(("gtk+" ,gtk+)
6212 ("libical" ,libical)
6213 ("libsecret" ,libsecret)
6214 ("libsoup" ,libsoup)
6215 ("nss" ,nss)
6216 ("sqlite" ,sqlite)))
6217 (inputs
6218 `(("bdb" ,bdb)
6219 ("gcr" ,gcr)
6220 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6221 ("json-glib" ,json-glib)
6222 ("libcanberra" ,libcanberra)
6223 ("libgweather" ,libgweather)
6224 ("mit-krb5" ,mit-krb5)
6225 ("openldap" ,openldap)
6226 ("webkitgtk" ,webkitgtk)))
6227 (synopsis "Store address books and calendars")
6228 (home-page "https://wiki.gnome.org/Apps/Evolution")
6229 (description
6230 "This package provides a unified backend for programs that work with
6231 contacts, tasks, and calendar information. It was originally developed for
6232 Evolution (hence the name), but is now used by other packages as well.")
6233 (license license:lgpl2.0)))
6234
6235 (define-public caribou
6236 (package
6237 (name "caribou")
6238 (version "0.4.21")
6239 (source (origin
6240 (method url-fetch)
6241 (uri (string-append "mirror://gnome/sources/" name "/"
6242 (version-major+minor version) "/"
6243 name "-" version ".tar.xz"))
6244 (sha256
6245 (base32
6246 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6247 (build-system glib-or-gtk-build-system)
6248 (arguments
6249 '(#:phases
6250 (modify-phases %standard-phases
6251 (add-before
6252 'build 'pre-build
6253 (lambda* (#:key outputs #:allow-other-keys)
6254 (let ((out (assoc-ref outputs "out")))
6255 ;; Use absolute shared library path in Caribou-1.0.typelib.
6256 (substitute* "libcaribou/Makefile"
6257 (("--shared-library=libcaribou.so")
6258 (string-append "--shared-library="
6259 out "/lib/libcaribou.so")))
6260 #t)))
6261 (add-after 'install 'wrap-programs
6262 (lambda* (#:key outputs #:allow-other-keys)
6263 (let* ((out (assoc-ref outputs "out"))
6264 (python-path (getenv "PYTHONPATH"))
6265 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6266 (for-each
6267 (lambda (prog)
6268 (wrap-program prog
6269 `("PYTHONPATH" ":" prefix (,python-path))
6270 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6271 (list (string-append out "/bin/caribou-preferences")
6272 (string-append out "/libexec/antler-keyboard"))))
6273 #t)))))
6274 (native-inputs
6275 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6276 ("gobject-introspection" ,gobject-introspection)
6277 ("intltool" ,intltool)
6278 ("pkg-config" ,pkg-config)
6279 ("python" ,python)
6280 ("vala" ,vala)
6281 ("xsltproc" ,libxslt)))
6282 (propagated-inputs
6283 ;; caribou-1.0.pc refers to all these.
6284 `(("libgee" ,libgee)
6285 ("libxklavier" ,libxklavier)
6286 ("libxtst" ,libxtst)
6287 ("gtk+" ,gtk+)))
6288 (inputs
6289 `(("clutter" ,clutter)
6290 ("dconf" ,dconf)
6291 ("gtk+-2" ,gtk+-2)
6292 ("python-pygobject" ,python-pygobject)))
6293 (synopsis "Text entry and UI navigation application")
6294 (home-page "https://wiki.gnome.org/Projects/Caribou")
6295 (description
6296 "Caribou is an input assistive technology intended for switch and pointer
6297 users.")
6298 (license license:lgpl2.1)))
6299
6300 (define-public network-manager
6301 (package
6302 (name "network-manager")
6303 (version "1.18.4")
6304 (source (origin
6305 (method url-fetch)
6306 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6307 (version-major+minor version) "/"
6308 "NetworkManager-" version ".tar.xz"))
6309 (patches (search-patches "nm-plugin-path.patch"))
6310 (sha256
6311 (base32
6312 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
6313 (modules '((guix build utils)))
6314 (snippet
6315 '(begin
6316 (substitute* "src/devices/wwan/nm-modem-manager.c"
6317 (("systemd") "elogind"))
6318 #t))))
6319 (build-system gnu-build-system)
6320 (outputs '("out"
6321 "doc")) ; 8 MiB of gtk-doc HTML
6322 (arguments
6323 '(#:configure-flags
6324 (let ((out (assoc-ref %outputs "out"))
6325 (doc (assoc-ref %outputs "doc"))
6326 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6327 "/sbin/dhclient")))
6328 (list "--with-libnm-glib" ; needed by network-manager-applet
6329 "--with-systemd-journal=no"
6330 "--with-session-tracking=elogind"
6331 "--with-suspend-resume=elogind"
6332 "--with-consolekit=no"
6333 "--with-crypto=gnutls"
6334 "--disable-config-plugin-ibft"
6335 "--sysconfdir=/etc"
6336 "--localstatedir=/var"
6337 (string-append "--with-udev-dir="
6338 out "/lib/udev")
6339 (string-append "--with-dbus-sys-dir="
6340 out "/etc/dbus-1/system.d")
6341 (string-append "--with-html-dir="
6342 doc "/share/gtk-doc/html")
6343 (string-append "--with-dhclient=" dhclient)))
6344 #:phases
6345 (modify-phases %standard-phases
6346 ;; This bare "ls" invocation breaks some tests.
6347 (add-after 'unpack 'patch-ls-invocation
6348 (lambda _
6349 (substitute* "build-aux/ltmain.sh"
6350 (("`ls -")
6351 (string-append "`" (which "ls") " -")))
6352 #t))
6353 (add-before 'configure 'pre-configure
6354 (lambda _
6355 ;; These tests try to test aspects of network-manager's
6356 ;; functionality within restricted containers, but they don't
6357 ;; cope with being already in the Guix build jail as that jail
6358 ;; lacks some features that they would like to proxy over (like
6359 ;; a /sys mount).
6360 (substitute* '("Makefile.in")
6361 (("src/platform/tests/test-address-linux") " ")
6362 (("src/platform/tests/test-cleanup-linux") " ")
6363 (("src/platform/tests/test-link-linux") " ")
6364 (("src/platform/tests/test-route-linux") " ")
6365 (("src/devices/tests/test-acd") "")
6366 (("src/devices/tests/test-arping") " ")
6367 (("src/devices/tests/test-lldp") " ")
6368 (("src/tests/test-route-manager-linux") " "))
6369 #t))
6370 (add-after 'unpack 'delete-failing-tests
6371 (lambda _
6372 ;; FIXME: These three tests fail for unknown reasons.
6373 ;; ERROR:libnm-core/tests/test-general.c:5842:
6374 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6375 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6376 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6377 ;; ERROR:libnm-core/tests/test-setting.c:907:
6378 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
6379 (substitute* "Makefile.in"
6380 (("libnm-core/tests/test-general") " ")
6381 (("libnm-core/tests/test-keyfile") " ")
6382 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
6383 #t))
6384 (add-before 'check 'pre-check
6385 (lambda _
6386 ;; For the missing /etc/machine-id.
6387 (setenv "DBUS_FATAL_WARNINGS" "0")
6388 #t))
6389 (replace 'install
6390 (lambda _
6391 (invoke "make"
6392 "sysconfdir=/tmp"
6393 "rundir=/tmp"
6394 "statedir=/tmp"
6395 "nmstatedir=/tmp/nm"
6396 "install")
6397 #t)))))
6398 (propagated-inputs
6399 `(("glib" ,glib)))
6400 (native-inputs
6401 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6402 ("gobject-introspection" ,gobject-introspection)
6403 ("docbook-xsl" ,docbook-xsl)
6404 ("intltool" ,intltool)
6405 ("libxslt" ,libxslt)
6406 ("libxml2" ,libxml2)
6407 ("pkg-config" ,pkg-config)
6408 ;; For testing.
6409 ("python" ,python-wrapper)
6410 ("python-dbus" ,python-dbus)
6411 ("python-pygobject" ,python-pygobject)))
6412 (inputs
6413 `(("coreutils" ,coreutils) ; for ls
6414 ("curl" ,curl)
6415 ("cyrus-sasl" ,cyrus-sasl)
6416 ("dbus-glib" ,dbus-glib)
6417 ("dnsmasq" ,dnsmasq)
6418 ("eudev" ,eudev)
6419 ("gnutls" ,gnutls)
6420 ("iptables" ,iptables)
6421 ("isc-dhcp" ,isc-dhcp)
6422 ("jansson" ,jansson)
6423 ("libgcrypt" ,libgcrypt)
6424 ("libgudev" ,libgudev)
6425 ("libndp" ,libndp)
6426 ("libnl" ,libnl)
6427 ("libsoup" ,libsoup)
6428 ("modem-manager" ,modem-manager)
6429 ("newt" ,newt) ;for the 'nmtui' console interface
6430 ("polkit" ,polkit)
6431 ("ppp" ,ppp)
6432 ("readline" ,readline)
6433 ("util-linux" ,util-linux)
6434 ("elogind" ,elogind)))
6435 (synopsis "Network connection manager")
6436 (home-page "https://www.gnome.org/projects/NetworkManager/")
6437 (description
6438 "NetworkManager is a system network service that manages your network
6439 devices and connections, attempting to keep active network connectivity when
6440 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6441 devices, and provides VPN integration with a variety of different VPN
6442 services.")
6443 (license license:gpl2+)
6444 (properties '((upstream-name . "NetworkManager")))))
6445
6446 (define-public network-manager-openvpn
6447 (package
6448 (name "network-manager-openvpn")
6449 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
6450 (version "1.8.10")
6451 (source (origin
6452 (method url-fetch)
6453 (uri (string-append
6454 "mirror://gnome/sources/NetworkManager-openvpn/"
6455 (version-major+minor version)
6456 "/NetworkManager-openvpn-" version ".tar.xz"))
6457 (sha256
6458 (base32
6459 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
6460 (build-system gnu-build-system)
6461 (arguments
6462 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6463 #:phases
6464 (modify-phases %standard-phases
6465 (add-after 'configure 'patch-path
6466 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6467 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6468 "/sbin/openvpn"))
6469 (modprobe (string-append (assoc-ref inputs "kmod")
6470 "/bin/modprobe"))
6471 (pretty-ovpn (string-append "\"" ovpn "\"")))
6472 (for-each
6473 (lambda (file)
6474 (substitute* file
6475 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6476 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6477 (("\"/sbin/openvpn\"") pretty-ovpn)
6478 (("/sbin/modprobe") modprobe)))
6479 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6480 #t)))))
6481 (native-inputs
6482 `(("pkg-config" ,pkg-config)
6483 ("intltool" ,intltool)))
6484 (inputs
6485 `(("gtk+" ,gtk+)
6486 ("kmod" ,kmod)
6487 ("openvpn" ,openvpn)
6488 ("network-manager" ,network-manager)
6489 ("network-manager-applet" ,network-manager-applet) ;for libnma
6490 ("libsecret" ,libsecret)))
6491 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6492 (synopsis "OpenVPN plug-in for NetworkManager")
6493 (description
6494 "This extension of NetworkManager allows it to take care of connections
6495 to virtual private networks (VPNs) via OpenVPN.")
6496 (license license:gpl2+)
6497 (properties `((upstream-name . "NetworkManager-openvpn")))))
6498
6499 (define-public network-manager-vpnc
6500 (package
6501 (name "network-manager-vpnc")
6502 (version "1.2.6")
6503 (source (origin
6504 (method url-fetch)
6505 (uri (string-append
6506 "mirror://gnome/sources/NetworkManager-vpnc/"
6507 (version-major+minor version)
6508 "/NetworkManager-vpnc-" version ".tar.xz"))
6509 (sha256
6510 (base32
6511 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6512 (build-system gnu-build-system)
6513 (arguments
6514 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6515 #:phases
6516 (modify-phases %standard-phases
6517 (add-after 'configure 'patch-path
6518 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6519 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6520 "/sbin/vpnc"))
6521 (modprobe (string-append (assoc-ref inputs "kmod")
6522 "/bin/modprobe"))
6523 (pretty-ovpn (string-append "\"" vpnc "\"")))
6524 (substitute* "src/nm-vpnc-service.c"
6525 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6526 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6527 (("\"/sbin/vpnc\"") pretty-ovpn)
6528 (("/sbin/modprobe") modprobe)))
6529 #t)))))
6530 (native-inputs
6531 `(("pkg-config" ,pkg-config)
6532 ("intltool" ,intltool)))
6533 (inputs
6534 `(("gtk+" ,gtk+)
6535 ("kmod" ,kmod)
6536 ("vpnc" ,vpnc)
6537 ("network-manager" ,network-manager)
6538 ("network-manager-applet" ,network-manager-applet) ;for libnma
6539 ("libsecret" ,libsecret)))
6540 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6541 (synopsis "VPNC plug-in for NetworkManager")
6542 (description
6543 "Support for configuring virtual private networks based on VPNC.
6544 Compatible with Cisco VPN concentrators configured to use IPsec.")
6545 (license license:gpl2+)
6546 (properties `((upstream-name . "NetworkManager-vpnc")))))
6547
6548 (define-public network-manager-openconnect
6549 (package
6550 (name "network-manager-openconnect")
6551 (version "1.2.6")
6552 (source (origin
6553 (method url-fetch)
6554 (uri (string-append
6555 "mirror://gnome/sources/NetworkManager-openconnect/"
6556 (version-major+minor version)
6557 "/NetworkManager-openconnect-" version ".tar.xz"))
6558 (sha256
6559 (base32
6560 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6561 (build-system gnu-build-system)
6562 (arguments
6563 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6564 #:phases
6565 (modify-phases %standard-phases
6566 (add-after 'configure 'patch-path
6567 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6568 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6569 "/sbin/openconnect"))
6570 (modprobe (string-append (assoc-ref inputs "kmod")
6571 "/bin/modprobe"))
6572 (pretty-ovpn (string-append "\"" openconnect "\"")))
6573 (substitute* "src/nm-openconnect-service.c"
6574 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6575 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6576 (("/sbin/modprobe") modprobe)))
6577 #t)))))
6578 (native-inputs
6579 `(("intltool" ,intltool)
6580 ("network-manager-applet" ,network-manager-applet) ;for libnma
6581 ("pkg-config" ,pkg-config)))
6582 (inputs
6583 `(("gcr" ,gcr)
6584 ("gtk+" ,gtk+)
6585 ("kmod" ,kmod)
6586 ("libsecret" ,libsecret)
6587 ("libxml2" ,libxml2)
6588 ("network-manager" ,network-manager)
6589 ("openconnect" ,openconnect)))
6590 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6591 (synopsis "OpenConnect plug-in for NetworkManager")
6592 (description
6593 "This extension of NetworkManager allows it to take care of connections
6594 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6595 Cisco's AnyConnect SSL VPN.")
6596 (license license:gpl2+)
6597 (properties `((upstream-name . "NetworkManager-openconnect")
6598
6599 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6600 ;; file refers to account "nm-openconnect". Specify it here
6601 ;; so that 'network-manager-service-type' creates it.
6602 (user-accounts . ("nm-openconnect"))))))
6603
6604 (define-public mobile-broadband-provider-info
6605 (package
6606 (name "mobile-broadband-provider-info")
6607 (version "20190116")
6608 (source (origin
6609 (method url-fetch)
6610 (uri (string-append
6611 "mirror://gnome/sources/"
6612 "mobile-broadband-provider-info/" version "/"
6613 "mobile-broadband-provider-info-" version ".tar.xz"))
6614 (sha256
6615 (base32
6616 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6617 (build-system gnu-build-system)
6618 (arguments
6619 `(#:tests? #f)) ; no tests
6620 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6621 (synopsis "Database of broadband connection configuration")
6622 (description "Database of broadband connection configuration.")
6623 (license license:public-domain)))
6624
6625 (define-public network-manager-applet
6626 (package
6627 (name "network-manager-applet")
6628 (version "1.8.24")
6629 (source (origin
6630 (method url-fetch)
6631 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6632 (version-major+minor version) "/"
6633 "network-manager-applet-" version ".tar.xz"))
6634 (sha256
6635 (base32
6636 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
6637 (build-system meson-build-system)
6638 (arguments
6639 '(#:configure-flags
6640 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6641 (list "-Dlibnm_gtk=true")
6642 #:glib-or-gtk? #t))
6643 (native-inputs
6644 `(("intltool" ,intltool)
6645 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6646 ("gobject-introspection" ,gobject-introspection)
6647 ("gtk-doc" ,gtk-doc)
6648 ("pkg-config" ,pkg-config)))
6649 (propagated-inputs
6650 ;; libnm-gtk.pc refers to all these.
6651 `(("dbus-glib" ,dbus-glib)
6652 ("gtk+" ,gtk+)
6653 ("network-manager" ,network-manager)))
6654 (inputs
6655 `(("gcr" ,gcr)
6656 ("iso-codes" ,iso-codes)
6657 ("libgudev" ,libgudev)
6658 ("libnotify" ,libnotify)
6659 ("libsecret" ,libsecret)
6660 ("libselinux" ,libselinux)
6661 ("jansson" ,jansson) ; for team support
6662 ("modem-manager" ,modem-manager)
6663 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
6664 (synopsis "Applet for managing network connections")
6665 (home-page "https://www.gnome.org/projects/NetworkManager/")
6666 (description
6667 "This package contains a systray applet for NetworkManager. It displays
6668 the available networks and allows users to easily switch between them.")
6669 (license license:gpl2+)))
6670
6671 (define-public libxml++
6672 (package
6673 (name "libxml++")
6674 (version "3.0.1")
6675 (source (origin
6676 (method url-fetch)
6677 (uri (string-append "mirror://gnome/sources/" name "/"
6678 (version-major+minor version) "/"
6679 name "-" version ".tar.xz"))
6680 (sha256
6681 (base32
6682 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6683 (build-system gnu-build-system)
6684 ;; libxml++-3.0.pc refers to all these.
6685 (propagated-inputs
6686 `(("libxml2" ,libxml2)
6687 ("glibmm" ,glibmm)))
6688 (native-inputs
6689 `(("perl" ,perl)
6690 ("pkg-config" ,pkg-config)))
6691 (home-page "http://libxmlplusplus.sourceforge.net/")
6692 (synopsis "C++ wrapper for XML parser library libxml2")
6693 (description
6694 "This package provides a C++ wrapper for the XML parser library
6695 libxml2.")
6696 (license license:lgpl2.1+)))
6697
6698 (define-public libxml++-2
6699 (package
6700 (inherit libxml++)
6701 (name "libxml++")
6702 (version "2.40.1")
6703 (source (origin
6704 (method url-fetch)
6705 (uri (string-append "mirror://gnome/sources/" name "/"
6706 (version-major+minor version) "/"
6707 name "-" version ".tar.xz"))
6708 (sha256
6709 (base32
6710 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6711
6712 (define-public gdm
6713 (package
6714 (name "gdm")
6715 (version "3.32.0")
6716 (source (origin
6717 (method url-fetch)
6718 (uri (string-append "mirror://gnome/sources/" name "/"
6719 (version-major+minor version) "/"
6720 name "-" version ".tar.xz"))
6721 (sha256
6722 (base32
6723 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
6724 (build-system glib-or-gtk-build-system)
6725 (arguments
6726 '(#:configure-flags
6727 `("--without-plymouth"
6728 "--disable-systemd-journal"
6729
6730 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6731 ;; instead of having to replace it (i.e., stopping the mingetty
6732 ;; service for TTY 1 before starting GDM).
6733 "--with-initial-vt=7"
6734
6735 ;; Use '/etc/environment' for locale settings instead of the
6736 ;; systemd-specific '/etc/locale.conf'.
6737 "--with-lang-file=/etc/environment"
6738
6739 ,(string-append "--with-udevdir="
6740 (assoc-ref %outputs "out") "/lib/udev")
6741
6742 "--localstatedir=/var"
6743 ,(string-append "--with-default-path="
6744 (string-join '("/run/setuid-programs"
6745 "/run/current-system/profile/bin"
6746 "/run/current-system/profile/sbin")
6747 ":"))
6748 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6749 ;; XDG_DATA_DIRS so that it finds its schemas.
6750 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6751 #:phases
6752 (modify-phases %standard-phases
6753 (add-before
6754 'configure 'pre-configure
6755 (lambda* (#:key inputs outputs #:allow-other-keys)
6756 ;; We don't have <systemd/sd-daemon.h>.
6757 (substitute* '("common/gdm-log.c"
6758 "daemon/gdm-server.c"
6759 "daemon/gdm-session-worker.c"
6760 "daemon/gdm-session-worker-job.c")
6761 (("#include <systemd/sd-daemon\\.h>") ""))
6762 ;; Use elogind for sd-login.
6763 (substitute* '("common/gdm-common.c"
6764 "daemon/gdm-manager.c"
6765 "libgdm/gdm-user-switching.c")
6766 (("#include <systemd/sd-login\\.h>")
6767 "#include <elogind/sd-login.h>"))
6768 ;; Check for elogind.
6769 (substitute* '("configure")
6770 (("libsystemd")
6771 "libelogind"))
6772 ;; Look for system-installed sessions in
6773 ;; /run/current-system/profile/share.
6774 (substitute* '("libgdm/gdm-sessions.c"
6775 "daemon/gdm-session.c"
6776 "daemon/gdm-display.c"
6777 "daemon/gdm-launch-environment.c")
6778 (("DATADIR \"/x")
6779 "\"/run/current-system/profile/share/x")
6780 (("DATADIR \"/wayland")
6781 "\"/run/current-system/profile/share/wayland")
6782 (("DATADIR \"/gnome")
6783 "\"/run/current-system/profile/share/gnome"))
6784 (let ((propagate '("GDM_CUSTOM_CONF"
6785 "GDM_DBUS_DAEMON"
6786 "GDM_X_SERVER"
6787 "GDM_X_SESSION"
6788 ;; XXX: Remove this once GNOME Shell is
6789 ;; a dependency of GDM.
6790 "XDG_DATA_DIRS")))
6791 (substitute* "daemon/gdm-session.c"
6792 (("set_up_session_environment \\(self\\);")
6793 (apply string-append
6794 "set_up_session_environment (self);\n"
6795 (map (lambda (name)
6796 (string-append
6797 "gdm_session_set_environment_variable "
6798 "(self, \"" name "\","
6799 "g_getenv (\"" name "\"));\n"))
6800 propagate)))))
6801 ;; Find the configuration file using an environment variable.
6802 (substitute* '("common/gdm-settings.c")
6803 (("GDM_CUSTOM_CONF")
6804 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6805 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6806 " : GDM_CUSTOM_CONF)")))
6807 ;; Use service-supplied path to X.
6808 (substitute* '("daemon/gdm-server.c")
6809 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6810 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6811 (substitute* '("daemon/gdm-x-session.c")
6812 (("\"dbus-daemon\"")
6813 "g_getenv (\"GDM_DBUS_DAEMON\")")
6814 (("X_SERVER")
6815 "g_getenv (\"GDM_X_SERVER\")")
6816 (("GDMCONFDIR \"/Xsession\"")
6817 "g_getenv (\"GDM_X_SESSION\")"))
6818 ;; Use an absolute path for GNOME Session.
6819 (substitute* "daemon/gdm-launch-environment.c"
6820 (("\"gnome-session\"")
6821 (string-append "\"" (assoc-ref inputs "gnome-session")
6822 "/bin/gnome-session\"")))
6823 ;; Do not automatically select the placeholder session.
6824 (substitute* "daemon/gdm-session.c"
6825 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6826 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6827 "(g_strcmp0(search_dirs[i], \""
6828 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6829 "\") == 0 && "
6830 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6831 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
6832 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
6833 #t))
6834 ;; GDM requires that there be at least one desktop entry
6835 ;; file. This phase installs a hidden one that simply
6836 ;; fails. This enables users to use GDM with a
6837 ;; '~/.xsession' script with no other desktop entry files.
6838 ;; See <https://bugs.gnu.org/35068>.
6839 (add-after 'install 'install-placeholder-desktop-entry
6840 (lambda* (#:key inputs outputs #:allow-other-keys)
6841 (let* ((out (assoc-ref outputs "out"))
6842 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6843 (fail (string-append sessions "/fail.desktop")))
6844 (mkdir-p sessions)
6845 (with-output-to-file fail
6846 (lambda ()
6847 (for-each
6848 display
6849 '("[Desktop Entry]\n"
6850 "Encoding=UTF-8\n"
6851 "Type=Application\n"
6852 "Name=Fail\n"
6853 "Comment=This session fails immediately.\n"
6854 "NoDisplay=true\n"
6855 "Exec=false\n"))))
6856 #t)))
6857 ;; GDM needs GNOME Session to run these applications. We link
6858 ;; their autostart files in `share/gdm/greeter/autostart'
6859 ;; because GDM explicitly tells GNOME Session to look there.
6860 ;;
6861 ;; XXX: GNOME Shell should be linked here too, but currently
6862 ;; GNOME Shell depends on GDM.
6863 (add-after 'install 'link-autostart-files
6864 (lambda* (#:key inputs outputs #:allow-other-keys)
6865 (let* ((out (assoc-ref outputs "out"))
6866 (autostart (string-append out "/share/gdm/"
6867 "greeter/autostart"))
6868 (settings (assoc-ref inputs "gnome-settings-daemon")))
6869 (mkdir-p autostart)
6870 (with-directory-excursion autostart
6871 (for-each (lambda (desktop)
6872 (symlink desktop (basename desktop)))
6873 (find-files (string-append settings "/etc/xdg"))))
6874 #t))))))
6875 (native-inputs
6876 `(("dconf" ,dconf)
6877 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6878 ("gobject-introspection" ,gobject-introspection)
6879 ("intltool" ,intltool)
6880 ("itstool" ,itstool)
6881 ("pkg-config" ,pkg-config)
6882 ("xmllint" ,libxml2)))
6883 (inputs
6884 `(("accountsservice" ,accountsservice)
6885 ("check" ,check) ; for testing
6886 ("elogind" ,elogind)
6887 ("gnome-session" ,gnome-session)
6888 ("gnome-settings-daemon" ,gnome-settings-daemon)
6889 ("gtk+" ,gtk+)
6890 ("iso-codes" ,iso-codes)
6891 ("libcanberra" ,libcanberra)
6892 ("linux-pam" ,linux-pam)))
6893 (synopsis "Display manager for GNOME")
6894 (home-page "https://wiki.gnome.org/Projects/GDM/")
6895 (description
6896 "GNOME Display Manager is a system service that is responsible for
6897 providing graphical log-ins and managing local and remote displays.")
6898 (license license:gpl2+)))
6899
6900 (define-public libgtop
6901 (package
6902 (name "libgtop")
6903 (version "2.40.0")
6904 (source (origin
6905 (method url-fetch)
6906 (uri (string-append "mirror://gnome/sources/libgtop/"
6907 (version-major+minor version) "/"
6908 "libgtop-" version ".tar.xz"))
6909 (sha256
6910 (base32
6911 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
6912 (build-system gnu-build-system)
6913 (native-inputs
6914 `(("gobject-introspection" ,gobject-introspection)
6915 ("intltool" ,intltool)
6916 ("perl" ,perl)
6917 ("pkg-config" ,pkg-config)))
6918 (propagated-inputs
6919 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6920 (synopsis "Portable system access library")
6921 (home-page "https://www.gnome.org/")
6922 (description
6923 "LibGTop is a library to get system specific data such as CPU and memory
6924 usage and information about running processes.")
6925 (license license:gpl2+)))
6926
6927 (define-public gnome-bluetooth
6928 (package
6929 (name "gnome-bluetooth")
6930 (version "3.32.1")
6931 (source (origin
6932 (method url-fetch)
6933 (uri (string-append "mirror://gnome/sources/" name "/"
6934 (version-major+minor version) "/"
6935 name "-" version ".tar.xz"))
6936 (sha256
6937 (base32
6938 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
6939 (build-system meson-build-system)
6940 (native-inputs
6941 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
6942 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6943 ("gobject-introspection" ,gobject-introspection)
6944 ("intltool" ,intltool)
6945 ("pkg-config" ,pkg-config)
6946 ("xmllint" ,libxml2)))
6947 (propagated-inputs
6948 ;; gnome-bluetooth-1.0.pc refers to all these.
6949 `(("glib" ,glib)
6950 ("gtk+" ,gtk+)))
6951 (inputs
6952 `(("eudev" ,eudev)
6953 ("libcanberra" ,libcanberra)
6954 ("libnotify" ,libnotify)))
6955 (synopsis "GNOME Bluetooth subsystem")
6956 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
6957 (description
6958 "This package contains tools for managing and manipulating Bluetooth
6959 devices using the GNOME desktop.")
6960 (license license:lgpl2.1+)))
6961
6962 (define-public gnome-control-center
6963 (package
6964 (name "gnome-control-center")
6965 (version "3.32.2")
6966 (source (origin
6967 (method url-fetch)
6968 (uri (string-append "mirror://gnome/sources/" name "/"
6969 (version-major+minor version) "/"
6970 name "-" version ".tar.xz"))
6971 (sha256
6972 (base32
6973 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
6974 (build-system meson-build-system)
6975 (arguments
6976 '(#:glib-or-gtk? #t
6977 #:configure-flags
6978 (list "-Dcheese=false"
6979 (string-append "-Dgnome_session_libexecdir="
6980 (assoc-ref %build-inputs "gnome-session")
6981 "/libexec"))
6982 #:phases
6983 (modify-phases %standard-phases
6984 (add-before 'configure 'patch-paths
6985 (lambda* (#:key inputs #:allow-other-keys)
6986 (let ((libc (assoc-ref inputs "libc"))
6987 (tzdata (assoc-ref inputs "tzdata"))
6988 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
6989 (nm-applet (assoc-ref inputs "network-manager-applet"))
6990 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
6991 (substitute* "panels/datetime/tz.h"
6992 (("/usr/share/zoneinfo/zone.tab")
6993 (string-append tzdata "/share/zoneinfo/zone.tab")))
6994 (substitute* "tests/datetime/test-endianess.c"
6995 (("/usr/share/locale")
6996 (string-append libc "/share/locale")))
6997 (substitute* "panels/region/cc-region-panel.c"
6998 (("\"gkbd-keyboard-display")
6999 (string-append "\"" libgnomekbd
7000 "/bin/gkbd-keyboard-display")))
7001 (substitute* '("panels/network/net-device-wifi.c"
7002 "panels/network/net-device.c"
7003 "panels/network/connection-editor/net-connection-editor.c")
7004 (("\"nm-connection-editor")
7005 (string-append "\"" nm-applet
7006 "/bin/nm-connection-editor")))
7007 (substitute* '("panels/user-accounts/run-passwd.c")
7008 (("/usr/bin/passwd")
7009 "/run/setuid-programs/passwd"))
7010 (substitute* "panels/info/cc-info-overview-panel.c"
7011 (("DATADIR \"/gnome/gnome-version.xml\"")
7012 (string-append "\"" gnome-desktop
7013 "/share/gnome/gnome-version.xml\"")))
7014 #t))))))
7015 (native-inputs
7016 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7017 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7018 ("intltool" ,intltool)
7019 ("pkg-config" ,pkg-config)
7020 ("xsltproc" ,libxslt)
7021 ;; For tests
7022 ("hicolor-icon-theme" ,hicolor-icon-theme)
7023 ("python-dbusmock" ,python-dbusmock)
7024 ("xorg-server" ,xorg-server-for-tests)))
7025 (inputs
7026 `(("accountsservice" ,accountsservice)
7027 ("clutter-gtk" ,clutter-gtk)
7028 ("colord-gtk" ,colord-gtk)
7029 ("cups" ,cups)
7030 ("dconf" ,dconf)
7031 ("docbook-xsl" ,docbook-xsl)
7032 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7033 ("gnome-bluetooth" ,gnome-bluetooth)
7034 ("gnome-desktop" ,gnome-desktop)
7035 ("gnome-online-accounts" ,gnome-online-accounts)
7036 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7037 ("gnome-session" ,gnome-session)
7038 ("gnome-settings-daemon" ,gnome-settings-daemon)
7039 ("grilo" ,grilo)
7040 ("gsound" ,gsound)
7041 ("ibus" ,ibus)
7042 ("libcanberra" ,libcanberra)
7043 ("libgnomekbd" ,libgnomekbd)
7044 ("libgudev" ,libgudev)
7045 ("libgtop" ,libgtop)
7046 ("libpwquality" ,libpwquality)
7047 ("libsecret" ,libsecret)
7048 ("libsoup" ,libsoup)
7049 ("libxml2" ,libxml2)
7050 ("libwacom" ,libwacom)
7051 ("mesa" ,mesa)
7052 ("mit-krb5" ,mit-krb5)
7053 ("modem-manager" ,modem-manager)
7054 ("network-manager-applet" ,network-manager-applet)
7055 ("polkit" ,polkit)
7056 ("pulseaudio" ,pulseaudio)
7057 ("smbclient" ,samba)
7058 ("tzdata" ,tzdata)
7059 ("udisks" ,udisks)
7060 ("upower" ,upower)))
7061 (synopsis "Utilities to configure the GNOME desktop")
7062 (home-page "https://www.gnome.org/")
7063 (description
7064 "This package contains configuration applets for the GNOME desktop,
7065 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7066 properties, sound setup, desktop theme and background, user interface
7067 properties, screen resolution, and other GNOME parameters.")
7068 (license license:gpl2+)))
7069
7070 (define-public gnome-shell
7071 (package
7072 (name "gnome-shell")
7073 (version "3.32.2")
7074 (source (origin
7075 (method url-fetch)
7076 (uri (string-append "mirror://gnome/sources/" name "/"
7077 (version-major+minor version) "/"
7078 name "-" version ".tar.xz"))
7079 (sha256
7080 (base32
7081 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
7082 (patches (search-patches "gnome-shell-theme.patch"))
7083 (modules '((guix build utils)))
7084 (snippet
7085 #~(begin
7086 ;; Copy images for use on the GDM log-in screen.
7087 (copy-file #$(file-append %artwork-repository
7088 "/slim/0.x/background.png")
7089 "data/theme/guix-background.png")
7090 (copy-file #$(file-append %artwork-repository
7091 "/logo/Guix-horizontal-white.svg")
7092 "data/theme/guix-logo.svg")
7093 #t))))
7094 (build-system meson-build-system)
7095 (arguments
7096 `(#:glib-or-gtk? #t
7097 #:disallowed-references ((,glib "bin")
7098 ,inkscape ,libxslt
7099 ,ruby-sass)
7100 #:configure-flags
7101 (list "-Dsystemd=false"
7102 ;; Otherwise, the RUNPATH will lack the final path component.
7103 (string-append "-Dc_link_args=-Wl,-rpath="
7104 (assoc-ref %outputs "out")
7105 "/lib/gnome-shell"))
7106
7107 #:modules ((guix build meson-build-system)
7108 (guix build utils)
7109 (srfi srfi-1))
7110
7111 #:phases
7112 (modify-phases %standard-phases
7113 (add-after 'unpack 'fix-keysdir
7114 (lambda* (#:key outputs #:allow-other-keys)
7115 (let* ((out (assoc-ref outputs "out"))
7116 (keysdir (string-append
7117 out "/share/gnome-control-center/keybindings")))
7118 (substitute* "meson.build"
7119 (("keysdir =.*")
7120 (string-append "keysdir = '" keysdir "'\n")))
7121 #t)))
7122 (add-before 'configure 'convert-logo-to-png
7123 (lambda* (#:key inputs #:allow-other-keys)
7124 ;; Convert the logo from SVG to PNG.
7125 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7126 "data/theme/guix-logo.svg")))
7127 (add-before 'configure 'record-absolute-file-names
7128 (lambda* (#:key inputs #:allow-other-keys)
7129 (substitute* "js/misc/ibusManager.js"
7130 (("'ibus-daemon'")
7131 (string-append "'" (assoc-ref inputs "ibus")
7132 "/bin/ibus-daemon'")))
7133 (substitute* "js/ui/status/keyboard.js"
7134 (("'gkbd-keyboard-display'")
7135 (string-append "'" (assoc-ref inputs "libgnomekbd")
7136 "/bin/gkbd-keyboard-display'")))
7137 #t))
7138 (add-before 'check 'pre-check
7139 (lambda* (#:key inputs #:allow-other-keys)
7140 ;; Tests require a running X server.
7141 (system "Xvfb :1 &")
7142 (setenv "DISPLAY" ":1")
7143 #t))
7144 (add-after 'install 'wrap-programs
7145 (lambda* (#:key inputs outputs #:allow-other-keys)
7146 (let ((out (assoc-ref outputs "out"))
7147 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7148 (python-path (getenv "PYTHONPATH")))
7149 (wrap-program (string-append out "/bin/gnome-shell")
7150 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7151 ;; FIXME: gnome-shell loads these libraries with unqualified
7152 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7153 ;; alternative might be to patch gnome-shell.
7154 `("LD_LIBRARY_PATH" ":" prefix
7155 ,(map (lambda (pkg)
7156 (string-append (assoc-ref inputs pkg) "/lib"))
7157 '("gdk-pixbuf"
7158 "gnome-bluetooth" "librsvg" "libgweather"))))
7159 (for-each
7160 (lambda (prog)
7161 (wrap-program (string-append out "/bin/" prog)
7162 `("PYTHONPATH" ":" prefix (,python-path))
7163 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7164 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7165 #t)))
7166 (replace 'glib-or-gtk-wrap
7167 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7168 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7169 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7170 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7171 ;; phase. Fix that since we don't need these.
7172 (wrap #:inputs (fold alist-delete inputs
7173 '("inkscape" "intltool" "glib:bin"))
7174 #:outputs outputs)))))))
7175 (native-inputs
7176 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7177 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7178 ("gobject-introspection" ,gobject-introspection)
7179 ("inkscape" ,inkscape)
7180 ("intltool" ,intltool)
7181 ("pkg-config" ,pkg-config)
7182 ("python" ,python)
7183 ("ruby-sass" ,ruby-sass)
7184 ("sassc" ,sassc)
7185 ("xsltproc" ,libxslt)
7186 ;; For tests
7187 ("xorg-server" ,xorg-server-for-tests)))
7188 (inputs
7189 `(("accountsservice" ,accountsservice)
7190 ("caribou" ,caribou)
7191 ("docbook-xsl" ,docbook-xsl)
7192 ("evolution-data-server" ,evolution-data-server)
7193 ("gcr" ,gcr)
7194 ("gdm" ,gdm)
7195 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7196 ("gjs" ,gjs)
7197 ("gnome-bluetooth" ,gnome-bluetooth)
7198 ("gnome-desktop" ,gnome-desktop)
7199 ("gnome-settings-daemon" ,gnome-settings-daemon)
7200 ("gst-plugins-base" ,gst-plugins-base)
7201 ("ibus" ,ibus)
7202 ("libcanberra" ,libcanberra)
7203 ("libcroco" ,libcroco)
7204 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7205 ("libgweather" ,libgweather)
7206 ("libsoup" ,libsoup)
7207 ("mesa-headers" ,mesa-headers)
7208 ("mutter" ,mutter)
7209 ("network-manager-applet" ,network-manager-applet)
7210 ("polkit" ,polkit)
7211 ("pulseaudio" ,pulseaudio)
7212 ("python-pygobject" ,python-pygobject)
7213 ("startup-notification" ,startup-notification)
7214 ("telepathy-logger" ,telepathy-logger)
7215 ("upower" ,upower)
7216 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7217 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7218 ("librsvg" ,librsvg)
7219 ("geoclue" ,geoclue)))
7220 (synopsis "Desktop shell for GNOME")
7221 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7222 (description
7223 "GNOME Shell provides core user interface functions for the GNOME desktop,
7224 like switching to windows and launching applications.")
7225 (license license:gpl2+)))
7226
7227 (define-public gtk-vnc
7228 (package
7229 (name "gtk-vnc")
7230 (version "0.9.0")
7231 (source
7232 (origin
7233 (method url-fetch)
7234 (uri (string-append "mirror://gnome/sources/" name "/"
7235 (version-major+minor version) "/"
7236 name "-" version ".tar.xz"))
7237 (sha256
7238 (base32
7239 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7240 (build-system gnu-build-system)
7241 (arguments
7242 '(#:configure-flags '("--with-gtk=3.0")))
7243 (propagated-inputs
7244 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7245 (inputs
7246 `(("cyrus-sasl" ,cyrus-sasl)
7247 ("gnutls" ,gnutls)
7248 ("libgcrypt" ,libgcrypt)
7249 ("pulseaudio" ,pulseaudio)))
7250 (native-inputs
7251 `(("glib:bin" ,glib "bin")
7252 ("gobject-introspection" ,gobject-introspection)
7253 ("intltool" ,intltool)
7254 ("pkg-config" ,pkg-config)
7255 ("python-wrapper" ,python-wrapper)
7256 ("vala" ,vala)))
7257 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7258 (synopsis "VNC viewer widget for GTK+")
7259 (description
7260 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7261 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7262 GTK-VNC implements client side RFB protocol and authentication extensions such
7263 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7264 (license license:lgpl2.1+)))
7265
7266 (define-public gnome-autoar
7267 (package
7268 (name "gnome-autoar")
7269 (version "0.2.3")
7270 (source (origin
7271 (method url-fetch)
7272 (uri (string-append "mirror://gnome/sources/" name "/"
7273 (version-major+minor version) "/"
7274 name "-" version ".tar.xz"))
7275 (sha256
7276 (base32
7277 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
7278 (build-system glib-or-gtk-build-system)
7279 (native-inputs
7280 `(("gnome-common" ,gnome-common)
7281 ("gobject-introspection" ,gobject-introspection)
7282 ("pkg-config" ,pkg-config)))
7283 (propagated-inputs
7284 `(("libarchive" ,libarchive))) ; XXX document why
7285 (inputs
7286 `(("gtk+" ,gtk+)))
7287 (synopsis "Archives integration support for GNOME")
7288 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7289 (description
7290 "GNOME Autoar is a library which makes creating and extracting archives
7291 easy, safe, and automatic.")
7292 (license license:lgpl2.1+)))
7293
7294 (define-public tracker
7295 (package
7296 (name "tracker")
7297 (version "2.3.4")
7298 (source (origin
7299 (method url-fetch)
7300 (uri (string-append "mirror://gnome/sources/tracker/"
7301 (version-major+minor version) "/"
7302 "tracker-" version ".tar.xz"))
7303 (sha256
7304 (base32
7305 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7306 (build-system meson-build-system)
7307 (arguments
7308 `(#:glib-or-gtk? #t
7309 #:configure-flags
7310 ;; Otherwise, the RUNPATH will lack the final path component.
7311 (list (string-append "-Dc_link_args=-Wl,-rpath="
7312 (assoc-ref %outputs "out") "/lib:"
7313 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7314 #:phases
7315 (modify-phases %standard-phases
7316 (add-before 'check 'pre-check
7317 (lambda _
7318 ;; Some tests expect to write to $HOME.
7319 (setenv "HOME" "/tmp")
7320 #t)))))
7321 (native-inputs
7322 `(("glib:bin" ,glib "bin")
7323 ("gobject-introspection" ,gobject-introspection)
7324 ("python-pygobject" ,python-pygobject)
7325 ("intltool" ,intltool)
7326 ("pkg-config" ,pkg-config)
7327 ("vala" ,vala)))
7328 (inputs
7329 `(("dbus" ,dbus)
7330 ("sqlite" ,sqlite)
7331 ("libxml2" ,libxml2)
7332 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
7333 ("json-glib" ,json-glib)
7334 ("libsoup" ,libsoup)))
7335 (synopsis "Metadata database, indexer and search tool")
7336 (home-page "https://wiki.gnome.org/Projects/Tracker")
7337 (description
7338 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7339
7340 It is a middleware component aimed at desktop application developers who want
7341 their apps to browse and search user content. It's not designed to be used
7342 directly by desktop users, but it provides a commandline tool named
7343 @command{tracker} for the adventurous.
7344
7345 Tracker allows your application to instantly perform full-text searches across
7346 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7347 example. This is achieved by indexing the user's home directory in the
7348 background.
7349
7350 Tracker also allows your application to query and list content that the user
7351 has stored. For example, GNOME Music displays all the music files that are
7352 found by Tracker. This means that GNOME Music doesn't need to maintain a
7353 database of its own.
7354
7355 If you need to go beyond simple searches, Tracker is also a linked data
7356 endpoint and it understands SPARQL. ")
7357 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
7358 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7359 ;; libstemmer is bsd-3 and the rest is gpl2+.
7360 (license (list license:gpl2+
7361 license:bsd-3
7362 license:lgpl2.1+))))
7363
7364 (define-public tracker-miners
7365 (package
7366 (name "tracker-miners")
7367 (version "2.3.3")
7368 (source (origin
7369 (method url-fetch)
7370 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7371 (version-major+minor version)
7372 "/tracker-miners-" version ".tar.xz"))
7373 (sha256
7374 (base32
7375 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
7376 (build-system meson-build-system)
7377 (arguments
7378 `(#:glib-or-gtk? #t
7379 #:configure-flags
7380 (list "-Dminer_rss=false" ; libgrss is required.
7381 ;; Ensure the RUNPATH contains all installed library locations.
7382 (string-append "-Dc_link_args=-Wl,-rpath="
7383 (assoc-ref %outputs "out")
7384 "/lib/tracker-miners-2.0")
7385 ;; TODO: Enable functional tests. Currently, the following error
7386 ;; appears:
7387 ;; Exception: The functional tests require DConf to be the default
7388 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7389 "-Dfunctional_tests=false")))
7390 (native-inputs
7391 `(("dbus" ,dbus)
7392 ("intltool" ,intltool)
7393 ("glib:bin" ,glib "bin")
7394 ("gobject-introspection" ,gobject-introspection)
7395 ("pkg-config" ,pkg-config)
7396 ("python-pygobject" ,python-pygobject)))
7397 (inputs
7398 `(("exempi" ,exempi)
7399 ("ffmpeg" ,ffmpeg)
7400 ("flac" ,flac)
7401 ("giflib" ,giflib)
7402 ("glib" ,glib)
7403 ("gstreamer" ,gstreamer)
7404 ("icu4c" ,icu4c)
7405 ("libcue" ,libcue)
7406 ("libexif" ,libexif)
7407 ("libgsf" ,libgsf)
7408 ("libgxps" ,libgxps)
7409 ("libiptcdata" ,libiptcdata)
7410 ("libjpeg" ,libjpeg)
7411 ("libosinfo" ,libosinfo)
7412 ("libpng" ,libpng)
7413 ("libseccomp" ,libseccomp)
7414 ("libtiff" ,libtiff)
7415 ("libvorbis" ,libvorbis)
7416 ("libxml2" ,libxml2)
7417 ("poppler" ,poppler)
7418 ("taglib" ,taglib)
7419 ("totem-pl-parser" ,totem-pl-parser)
7420 ("tracker" ,tracker)
7421 ("upower" ,upower)
7422 ("zlib" ,zlib)))
7423 (synopsis "Metadata database, indexer and search tool")
7424 (home-page "https://wiki.gnome.org/Projects/Tracker")
7425 (description
7426 "Tracker is an advanced framework for first class objects with associated
7427 metadata and tags. It provides a one stop solution for all metadata, tags,
7428 shared object databases, search tools and indexing.")
7429 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7430 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7431 (license (list license:gpl2+
7432 license:lgpl2.1+
7433 license:lgpl2.0+))))
7434
7435 (define-public nautilus
7436 (package
7437 (name "nautilus")
7438 (version "3.32.3")
7439 (source (origin
7440 (method url-fetch)
7441 (uri (string-append "mirror://gnome/sources/" name "/"
7442 (version-major+minor version) "/"
7443 name "-" version ".tar.xz"))
7444 (sha256
7445 (base32
7446 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
7447 (build-system meson-build-system)
7448 (arguments
7449 '(#:glib-or-gtk? #t
7450 ;; XXX: FAIL: check-nautilus
7451 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7452 #:tests? #f))
7453 (native-inputs
7454 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7455 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7456 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7457 ("gobject-introspection" ,gobject-introspection)
7458 ("intltool" ,intltool)
7459 ("pkg-config" ,pkg-config)))
7460 (inputs
7461 `(("dconf" ,dconf)
7462 ("gexiv2" ,gexiv2)
7463 ("gvfs" ,gvfs)
7464 ("exempi" ,exempi)
7465 ("gnome-desktop" ,gnome-desktop)
7466 ("gnome-autoar" ,gnome-autoar)
7467 ("gst-plugins-base" ,gst-plugins-base)
7468 ("libseccomp" ,libseccomp)
7469 ("libselinux" ,libselinux)
7470 ("tracker" ,tracker)
7471 ("tracker-miners" ,tracker-miners)
7472 ;; XXX: gtk+ is required by libnautilus-extension.pc
7473 ;;
7474 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7475 ;; package. See:
7476 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7477 ("gtk+" ,gtk+)
7478 ("libexif" ,libexif)
7479 ("libxml2" ,libxml2)))
7480 (synopsis "File manager for GNOME")
7481 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7482 (description
7483 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7484 design and behaviour, giving the user a simple way to navigate and manage its
7485 files.")
7486 (license license:gpl2+)))
7487
7488 (define-public baobab
7489 (package
7490 (name "baobab")
7491 (version "3.32.0")
7492 (source (origin
7493 (method url-fetch)
7494 (uri (string-append
7495 "mirror://gnome/sources/" name "/"
7496 (version-major+minor version) "/"
7497 name "-" version ".tar.xz"))
7498 (sha256
7499 (base32
7500 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7501 (build-system meson-build-system)
7502 (arguments
7503 '(#:glib-or-gtk? #t))
7504 (native-inputs
7505 `(("intltool" ,intltool)
7506 ("pkg-config" ,pkg-config)
7507 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7508 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7509 ("itstool" ,itstool)
7510 ("xmllint" ,libxml2)
7511 ("glib" ,glib "bin")
7512 ("vala" ,vala)))
7513 (inputs
7514 `(("gtk+" ,gtk+)))
7515 (synopsis "Disk usage analyzer for GNOME")
7516 (description
7517 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7518 usage in the GNOME desktop environment. It can easily scan device volumes or
7519 a specific user-requested directory branch (local or remote). Once the scan
7520 is complete it provides a graphical representation of each selected folder.")
7521 (home-page "https://wiki.gnome.org/Apps/Baobab")
7522 (license license:gpl2+)))
7523
7524 (define-public gnome-backgrounds
7525 (package
7526 (name "gnome-backgrounds")
7527 (version "3.32.0")
7528 (source
7529 (origin
7530 (method url-fetch)
7531 (uri (string-append "mirror://gnome/sources/" name "/"
7532 (version-major+minor version) "/"
7533 name "-" version ".tar.xz"))
7534 (sha256
7535 (base32
7536 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
7537 (build-system meson-build-system)
7538 (native-inputs
7539 `(("intltool" ,intltool)))
7540 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7541 (synopsis "Background images for the GNOME desktop")
7542 (description
7543 "GNOME backgrounds package contains a collection of graphics files which
7544 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7545 the package creates the proper framework and directory structure so that you
7546 can add your own files to the collection.")
7547 (license (list license:gpl2+
7548 license:cc-by2.0
7549 license:cc-by-sa2.0
7550 license:cc-by-sa3.0))))
7551
7552 (define-public gnome-screenshot
7553 (package
7554 (name "gnome-screenshot")
7555 (version "3.32.0")
7556 (source
7557 (origin
7558 (method url-fetch)
7559 (uri (string-append "mirror://gnome/sources/" name "/"
7560 (version-major+minor version) "/"
7561 name "-" version ".tar.xz"))
7562 (sha256
7563 (base32
7564 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
7565 (build-system meson-build-system)
7566 (native-inputs
7567 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7568 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7569 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7570 ("intltool" ,intltool)
7571 ("appstream-glib" ,appstream-glib)
7572 ("pkg-config" ,pkg-config)))
7573 (inputs
7574 `(("gtk+" ,gtk+)
7575 ("libcanberra" ,libcanberra)
7576 ("libx11" ,libx11)
7577 ("libxext" ,libxext)))
7578 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7579 (synopsis "Take pictures of your screen")
7580 (description
7581 "GNOME Screenshot is a utility used for taking screenshots of the entire
7582 screen, a window or a user defined area of the screen, with optional
7583 beautifying border effects.")
7584 (license license:gpl2+)))
7585
7586 (define-public dconf-editor
7587 (package
7588 (name "dconf-editor")
7589 (version "3.32.0")
7590 (source
7591 (origin
7592 (method url-fetch)
7593 (uri (string-append "mirror://gnome/sources/" name "/"
7594 (version-major+minor version) "/"
7595 name "-" version ".tar.xz"))
7596 (sha256
7597 (base32
7598 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
7599 (build-system meson-build-system)
7600 (arguments
7601 '(#:phases (modify-phases %standard-phases
7602 (add-before 'configure 'set-glib-minimum-version
7603 (lambda _
7604 ;; Change the minimum required GLib version so that
7605 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7606 ;; do that, it complains that "55" is not an even
7607 ;; number. See <https://bugs.gnu.org/37503>.
7608 (substitute* "editor/meson.build"
7609 (("2\\.55\\.1") "2.60.0"))
7610 #t)))))
7611 (native-inputs
7612 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7613 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7614 ("intltool" ,intltool)
7615 ("pkg-config" ,pkg-config)
7616 ("vala" ,vala)))
7617 (inputs
7618 `(("dconf" ,dconf)
7619 ("gtk+" ,gtk+)
7620 ("libxml2" ,libxml2)))
7621 (home-page "https://git.gnome.org/browse/dconf-editor")
7622 (synopsis "Graphical editor for GNOME's dconf configuration system")
7623 (description
7624 "Dconf-editor is a graphical tool for browsing and editing the dconf
7625 configuration system for GNOME. It allows users to configure desktop
7626 software that do not provide their own configuration interface.")
7627 (license license:lgpl2.1+)))
7628
7629 (define-public gnome-default-applications
7630 (package
7631 (name "gnome-default-applications")
7632 (version "0")
7633 (build-system trivial-build-system)
7634 (source #f)
7635 (propagated-inputs
7636 `(("nautilus" ,nautilus)
7637 ("evince" ,evince)))
7638 (arguments
7639 `(#:modules ((guix build utils))
7640 #:builder
7641 (begin
7642 (use-modules (guix build utils))
7643 (let* ((out (assoc-ref %outputs "out"))
7644 (apps (string-append out "/share/applications")))
7645 (mkdir-p apps)
7646 (call-with-output-file (string-append apps "/defaults.list")
7647 (lambda (port)
7648 (format port "[Default Applications]\n")
7649 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7650 (format port "application/pdf=evince.desktop\n")
7651 (format port "application/postscript=evince.desktop\n")))
7652 #t))))
7653 (synopsis "Default MIME type associations for the GNOME desktop")
7654 (description
7655 "Given many installed packages which might handle a given MIME type, a
7656 user running the GNOME desktop probably has some preferences: for example,
7657 that folders be opened by default by the Nautilus file manager, not the Baobab
7658 disk usage analyzer. This package establishes that set of default MIME type
7659 associations for GNOME.")
7660 (license license:gpl3+)
7661 (home-page #f)))
7662
7663 (define-public libgovirt
7664 (package
7665 (name "libgovirt")
7666 (version "0.3.6")
7667 (source (origin
7668 (method url-fetch)
7669 (uri (string-append "mirror://gnome/sources/" name "/"
7670 (version-major+minor version) "/"
7671 name "-" version ".tar.xz"))
7672 (sha256
7673 (base32
7674 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7675 (build-system glib-or-gtk-build-system)
7676 (native-inputs
7677 `(("gettext" ,gettext-minimal)
7678 ("glib:bin" ,glib "bin")
7679 ("gobject-introspection" ,gobject-introspection)
7680 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7681 ("gtk+:bin" ,gtk+ "bin")
7682 ("pkg-config" ,pkg-config)))
7683 (inputs
7684 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7685 ("librest" ,rest)))
7686 (synopsis "GoVirt Library")
7687 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7688 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7689 (license license:gpl2+)))
7690
7691 (define-public gnome-weather
7692 (package
7693 (name "gnome-weather")
7694 (version "3.34.0")
7695 (source (origin
7696 (method url-fetch)
7697 (uri (string-append "mirror://gnome/sources/" name "/"
7698 (version-major+minor version) "/"
7699 name "-" version ".tar.xz"))
7700 (sha256
7701 (base32
7702 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7703 (build-system meson-build-system)
7704 (native-inputs
7705 `(("gettext" ,gettext-minimal)
7706 ("glib:bin" ,glib "bin")
7707 ("gobject-introspection" ,gobject-introspection)
7708 ("gtk+:bin" ,gtk+ "bin")
7709 ("pkg-config" ,pkg-config)))
7710 (inputs
7711 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7712 ("appstream-glib" ,appstream-glib)
7713 ("geoclue" ,geoclue)
7714 ("gdk-pixbuf" ,gdk-pixbuf)
7715 ("gjs" ,gjs)
7716 ("gnome-desktop" ,gnome-desktop)
7717 ("libgweather" ,libgweather)))
7718 (synopsis "Weather monitoring for GNOME desktop")
7719 (description "GNOME Weather is a small application that allows you to
7720 monitor the current weather conditions for your city, or anywhere in the
7721 world.")
7722 (home-page "https://wiki.gnome.org/Apps/Weather")
7723 (license license:gpl2+)))
7724
7725 (define-public gnome
7726 (package
7727 (name "gnome")
7728 (version (package-version gnome-shell))
7729 (source #f)
7730 (build-system trivial-build-system)
7731 (arguments '(#:builder (begin (mkdir %output) #t)))
7732 (propagated-inputs
7733 ;; TODO: Add or remove packages according to:
7734 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7735 `(
7736 ;; GNOME-Core-OS-Services
7737 ("accountsservice" ,accountsservice)
7738 ("network-manager" ,network-manager)
7739 ("packagekit" ,packagekit)
7740 ("upower" ,upower)
7741 ;; GNOME-Core-Shell
7742 ("adwaita-icon-theme" ,adwaita-icon-theme)
7743 ("gdm" ,gdm)
7744 ("glib-networking" ,glib-networking)
7745 ("gnome-backgrounds" ,gnome-backgrounds)
7746 ("gnome-bluetooth" ,gnome-bluetooth)
7747 ("gnome-color-manager" ,gnome-color-manager)
7748 ("gnome-control-center" ,gnome-control-center)
7749 ("gnome-desktop" ,gnome-desktop)
7750 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7751 ("gnome-initial-setup" ,gnome-initial-setup)
7752 ("gnome-keyring" ,gnome-keyring)
7753 ("gnome-menus" ,gnome-menus)
7754 ("gnome-session" ,gnome-session)
7755 ("gnome-settings-daemon" ,gnome-settings-daemon)
7756 ("gnome-shell-extensions" ,gnome-shell-extensions)
7757 ("gnome-shell" ,gnome-shell)
7758 ("gnome-themes-extra" ,gnome-themes-extra)
7759 ("gnome-user-docs" ,gnome-user-docs)
7760 ("gnome-user-share" ,gnome-user-share)
7761 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7762 ("gvfs" ,gvfs)
7763 ("mutter" ,mutter)
7764 ("orca" ,orca)
7765 ("rygel" ,rygel)
7766 ("sushi" ,sushi)
7767 ;; GNOME-Core-Utilities
7768 ("baobab" ,baobab)
7769 ("cheese" ,cheese)
7770 ("eog" ,eog)
7771 ("epiphany" ,epiphany)
7772 ("evince" ,evince)
7773 ("file-roller" ,file-roller)
7774 ("gedit" ,gedit)
7775 ; TODO: ("gnome-boxes" ,gnome-boxes)
7776 ("gnome-calculator" ,gnome-calculator)
7777 ("gnome-calendar" ,gnome-calendar)
7778 ("gnome-characters" ,gnome-characters)
7779 ("gnome-clocks" ,gnome-clocks)
7780 ("gnome-contacts" ,gnome-contacts)
7781 ("gnome-disk-utility" ,gnome-disk-utility)
7782 ("gnome-font-viewer" ,gnome-font-viewer)
7783 ("gnome-maps" ,gnome-maps)
7784 ; TODO: ("gnome-music" ,gnome-music)
7785 ; TODO: ("gnome-photos" ,gnome-photos)
7786 ("gnome-screenshot" ,gnome-screenshot)
7787 ("gnome-system-monitor" ,gnome-system-monitor)
7788 ("gnome-terminal" ,gnome-terminal)
7789 ("gnome-weather" ,gnome-weather)
7790 ("nautilus" ,nautilus)
7791 ("simple-scan" ,simple-scan)
7792 ("totem" ,totem)
7793 ("yelp" ,yelp)
7794 ;; Others
7795 ("hicolor-icon-theme" ,hicolor-icon-theme)
7796 ("gnome-online-accounts" ,gnome-online-accounts)
7797
7798 ;; Packages not part of GNOME proper but that are needed for a good
7799 ;; experience. See <https://bugs.gnu.org/39646>.
7800 ;; XXX: Find out exactly which ones are needed and why.
7801 ("font-cantarell" ,font-cantarell)
7802 ("font-dejavu" ,font-dejavu)
7803 ("at-spi2-core" ,at-spi2-core)
7804 ("dbus" ,dbus)
7805 ("dconf" ,dconf)
7806 ("desktop-file-utils" ,desktop-file-utils)
7807 ("gnome-default-applications" ,gnome-default-applications)
7808 ("gnome-themes-standard" ,gnome-themes-standard)
7809 ("gst-plugins-base" ,gst-plugins-base)
7810 ("gst-plugins-good" ,gst-plugins-good)
7811 ("gucharmap" ,gucharmap)
7812 ("pinentry-gnome3" ,pinentry-gnome3)
7813 ("pulseaudio" ,pulseaudio)
7814 ("shared-mime-info" ,shared-mime-info)
7815 ("system-config-printer" ,system-config-printer)
7816 ("xdg-user-dirs" ,xdg-user-dirs)
7817 ("yelp" ,yelp)
7818 ("zenity" ,zenity)))
7819 (synopsis "The GNU desktop environment")
7820 (home-page "https://www.gnome.org/")
7821 (description
7822 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7823 applications for browsing the web, editing text and images, creating
7824 documents and diagrams, playing media, scanning, and much more.")
7825 (license license:gpl2+)))
7826
7827 (define-public byzanz
7828 ;; The last stable release of Byzanz was in 2011, but there have been many
7829 ;; useful commits made to the Byzanz repository since then that it would be
7830 ;; silly to use such an old release.
7831 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7832 (package
7833 (name "byzanz")
7834 (version (string-append "0.2-1." (string-take commit 7)))
7835 (source (origin
7836 (method git-fetch)
7837 (uri (git-reference
7838 (url "https://git.gnome.org/browse/byzanz")
7839 (commit commit)))
7840 (file-name (string-append name "-" version "-checkout"))
7841 (sha256
7842 (base32
7843 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7844 (build-system glib-or-gtk-build-system)
7845 (arguments
7846 '(#:phases
7847 (modify-phases %standard-phases
7848 (replace 'bootstrap
7849 (lambda _
7850 ;; The build system cleverly detects that we're not building from
7851 ;; a release tarball and turns on -Werror for GCC.
7852 ;; Unsurprisingly, there is a warning during compilation that
7853 ;; causes the build to fail unnecessarily, so we remove the flag.
7854 (substitute* '("configure.ac")
7855 (("-Werror") ""))
7856 ;; The autogen.sh script in gnome-common will run ./configure
7857 ;; by default, which is problematic because source shebangs
7858 ;; have not yet been patched.
7859 (setenv "NOCONFIGURE" "t")
7860 (zero? (system* "sh" "autogen.sh")))))))
7861 (native-inputs
7862 `(("autoconf" ,autoconf)
7863 ("automake" ,automake)
7864 ("gnome-common" ,gnome-common)
7865 ("intltool" ,intltool)
7866 ("libtool" ,libtool)
7867 ("pkg-config" ,pkg-config)
7868 ("which" ,which)))
7869 (inputs
7870 `(("glib" ,glib)
7871 ("gstreamer" ,gstreamer)
7872 ("gst-plugins-base" ,gst-plugins-base)
7873 ("gtk+" ,gtk+)))
7874 (synopsis "Desktop recording program")
7875 (description "Byzanz is a simple desktop recording program with a
7876 command-line interface. It can record part or all of an X display for a
7877 specified duration and save it as a GIF encoded animated image file.")
7878 (home-page "https://git.gnome.org/browse/byzanz")
7879 (license license:gpl2+))))
7880
7881 (define-public gsound
7882 (package
7883 (name "gsound")
7884 (version "1.0.2")
7885 (source (origin
7886 (method url-fetch)
7887 (uri (string-append "mirror://gnome/sources/" name "/"
7888 (version-major+minor version) "/"
7889 name "-" version ".tar.xz"))
7890 (sha256
7891 (base32
7892 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7893 (build-system glib-or-gtk-build-system)
7894 (native-inputs
7895 `(("pkg-config" ,pkg-config)
7896 ("gobject-introspection" ,gobject-introspection)
7897 ("vala" ,vala)))
7898 (inputs
7899 `(("glib" ,glib)
7900 ("libcanberra" ,libcanberra)))
7901 (home-page "https://wiki.gnome.org/Projects/GSound")
7902 (synopsis "GObject wrapper for libcanberra")
7903 (description
7904 "GSound is a small library for playing system sounds. It's designed to be
7905 used via GObject Introspection, and is a thin wrapper around the libcanberra C
7906 library.")
7907 (license license:lgpl2.1+)))
7908
7909 (define-public libzapojit
7910 (package
7911 (name "libzapojit")
7912 (version "0.0.3")
7913 (source (origin
7914 (method url-fetch)
7915 (uri (string-append "mirror://gnome/sources/" name "/"
7916 (version-major+minor version) "/"
7917 name "-" version ".tar.xz"))
7918 (sha256
7919 (base32
7920 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7921 (build-system gnu-build-system)
7922 (native-inputs
7923 `(("gobject-introspection" ,gobject-introspection)
7924 ("intltool" ,intltool)
7925 ("pkg-config" ,pkg-config)))
7926 (inputs
7927 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7928 ("json-glib" ,json-glib)
7929 ("rest" ,rest)))
7930 (home-page "https://wiki.gnome.org/Projects/Zapojit")
7931 (synopsis "Library for accessing SkyDrive and Hotmail")
7932 (description
7933 "Libzapojit is a GLib-based library for accessing online service APIs of
7934 Microsoft SkyDrive and Hotmail, using their REST protocols.")
7935 (license license:lgpl2.1+)))
7936
7937 (define-public gnome-clocks
7938 (package
7939 (name "gnome-clocks")
7940 (version "3.32.0")
7941 (source (origin
7942 (method url-fetch)
7943 (uri (string-append "mirror://gnome/sources/" name "/"
7944 (version-major+minor version) "/"
7945 name "-" version ".tar.xz"))
7946 (sha256
7947 (base32
7948 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
7949 (build-system meson-build-system)
7950 (arguments
7951 '(#:glib-or-gtk? #t))
7952 (native-inputs
7953 `(("vala" ,vala)
7954 ("pkg-config" ,pkg-config)
7955 ("glib" ,glib "bin") ; for glib-compile-resources
7956 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7957 ("desktop-file-utils" ,desktop-file-utils)
7958 ("gettext" ,gettext-minimal)
7959 ("itstool" ,itstool)))
7960 (inputs
7961 `(("glib" ,glib)
7962 ("gtk+" ,gtk+)
7963 ("gsound" ,gsound)
7964 ("geoclue" ,geoclue)
7965 ("geocode-glib" ,geocode-glib)
7966 ("libgweather" ,libgweather)
7967 ("gnome-desktop" ,gnome-desktop)))
7968 (home-page "https://wiki.gnome.org/Apps/Clocks")
7969 (synopsis "GNOME's clock application")
7970 (description
7971 "GNOME Clocks is a simple clocks application designed to fit the GNOME
7972 desktop. It supports world clock, stop watch, alarms, and count down timer.")
7973 (license license:gpl3+)))
7974
7975 (define-public gnome-calendar
7976 (package
7977 (name "gnome-calendar")
7978 (version "3.32.2")
7979 (source (origin
7980 (method url-fetch)
7981 (uri (string-append "mirror://gnome/sources/" name "/"
7982 (version-major+minor version) "/"
7983 name "-" version ".tar.xz"))
7984 (sha256
7985 (base32
7986 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
7987 (build-system meson-build-system)
7988 (arguments
7989 '(#:glib-or-gtk? #t
7990 ;; gnome-calendar has to be installed before the tests can be run
7991 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
7992 #:tests? #f))
7993 (native-inputs
7994 `(("gettext" ,gettext-minimal)
7995 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
7996 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7997 ("pkg-config" ,pkg-config)))
7998 (inputs
7999 `(("evolution-data-server" ,evolution-data-server)
8000 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8001 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8002 ("libdazzle" ,libdazzle)
8003 ("libedataserverui" ,evolution-data-server)
8004 ("libgweather" ,libgweather)
8005 ("geoclue" ,geoclue)))
8006 (home-page "https://wiki.gnome.org/Apps/Calendar")
8007 (synopsis "GNOME's calendar application")
8008 (description
8009 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8010 desktop. It supports multiple calendars, month, week and year view.")
8011 (license license:gpl3+)))
8012
8013 (define-public gnome-todo
8014 (package
8015 (name "gnome-todo")
8016 (version "3.28.1")
8017 (source (origin
8018 (method url-fetch)
8019 (uri (string-append "mirror://gnome/sources/" name "/"
8020 (version-major+minor version) "/"
8021 name "-" version ".tar.xz"))
8022 (sha256
8023 (base32
8024 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
8025 (build-system meson-build-system)
8026 (arguments
8027 '(#:glib-or-gtk? #t
8028 #:phases (modify-phases %standard-phases
8029 (add-after
8030 'install 'wrap-gnome-todo
8031 (lambda* (#:key inputs outputs #:allow-other-keys)
8032 (let ((out (assoc-ref outputs "out"))
8033 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8034 (python-path (getenv "PYTHONPATH")))
8035 (wrap-program (string-append out "/bin/gnome-todo")
8036 ;; XXX: gi plugins are broken.
8037 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8038 ;; For plugins.
8039 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8040 `("PYTHONPATH" ":" prefix (,python-path))))
8041 #t)))))
8042 (native-inputs
8043 `(("gettext" ,gettext-minimal)
8044 ("gobject-introspection" ,gobject-introspection)
8045 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8046 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8047 ("pkg-config" ,pkg-config)))
8048 (inputs
8049 `(("rest" ,rest) ; For Todoist plugin
8050 ("json-glib" ,json-glib) ; For Todoist plugin
8051 ("libedataserverui" ,evolution-data-server)
8052 ("libical" ,libical)
8053 ("libpeas" ,libpeas)
8054 ("python-pygobject" ,python-pygobject)
8055 ("evolution-data-server" ,evolution-data-server)
8056 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8057 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8058 (home-page "https://wiki.gnome.org/Apps/Todo")
8059 (synopsis "GNOME's ToDo Application")
8060 (description
8061 "GNOME To Do is a simplistic personal task manager designed to perfectly
8062 fit the GNOME desktop.")
8063 (license license:gpl3+)))
8064
8065 (define-public gnome-dictionary
8066 (package
8067 (name "gnome-dictionary")
8068 (version "3.26.1")
8069 (source (origin
8070 (method url-fetch)
8071 (uri (string-append "mirror://gnome/sources/" name "/"
8072 (version-major+minor version) "/"
8073 name "-" version ".tar.xz"))
8074 (sha256
8075 (base32
8076 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8077 (build-system meson-build-system)
8078 (arguments '(#:glib-or-gtk? #t
8079 #:phases (modify-phases %standard-phases
8080 (add-after 'unpack 'patch-install-script
8081 (lambda _
8082 ;; This script attempts to compile glib schemas
8083 ;; and create an empty MIME database. We do
8084 ;; that elsewhere, so prevent it from running.
8085 (substitute* "build-aux/post-install.sh"
8086 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8087 #t)))))
8088 (native-inputs
8089 `(("glib:bin" ,glib "bin")
8090 ("gobject-introspection" ,gobject-introspection)
8091 ("intltool" ,intltool)
8092 ("itstool" ,itstool)
8093 ("pkg-config" ,pkg-config)
8094 ("xmllint" ,libxml2)))
8095 (inputs
8096 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8097 ("gtk+" ,gtk+)))
8098 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8099 (synopsis "Look up words in dictionary sources")
8100 (description
8101 "GNOME Dictionary can look for the definition or translation of a word in
8102 existing databases over the internet.")
8103 (license license:gpl3+)))
8104
8105 (define-public gnome-tweaks
8106 (package
8107 (name "gnome-tweaks")
8108 (version "3.32.0")
8109 (source (origin
8110 (method url-fetch)
8111 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8112 (version-major+minor version) "/"
8113 "gnome-tweaks-" version ".tar.xz"))
8114 (patches
8115 (list (search-patch "gnome-tweaks-search-paths.patch")))
8116 (sha256
8117 (base32
8118 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
8119 (build-system meson-build-system)
8120 (arguments
8121 `(#:glib-or-gtk? #t
8122 #:configure-flags '("-Dlocalstatedir=/tmp"
8123 "-Dsysconfdir=/tmp")
8124 #:imported-modules ((guix build python-build-system)
8125 ,@%meson-build-system-modules)
8126 #:phases
8127 (modify-phases %standard-phases
8128 (add-after 'install 'wrap
8129 (@@ (guix build python-build-system) wrap))
8130 (add-after 'wrap 'wrap-gi-typelib
8131 (lambda* (#:key inputs outputs #:allow-other-keys)
8132 (let ((out (assoc-ref outputs "out"))
8133 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8134 (wrap-program (string-append out "/bin/gnome-tweaks")
8135 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8136 #t)))))
8137 (native-inputs
8138 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8139 ("intltool" ,intltool)
8140 ("pkg-config" ,pkg-config)))
8141 (inputs
8142 `(("gnome-desktop" ,gnome-desktop)
8143 ("gtk+" ,gtk+)
8144 ("gobject-introspection" ,gobject-introspection)
8145 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8146 ("libnotify" ,libnotify)
8147 ("libsoup" ,libsoup)
8148 ("nautilus" ,nautilus)
8149 ("python" ,python)
8150 ("python-pygobject" ,python-pygobject)))
8151 (synopsis "Customize advanced GNOME 3 options")
8152 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8153 (description
8154 "GNOME Tweaks allows adjusting advanced configuration settings in
8155 GNOME 3. This includes things like the fonts used in user interface elements,
8156 alternative user interface themes, changes in window management behavior,
8157 GNOME Shell appearance and extension, etc.")
8158 (license license:gpl3+)))
8159
8160 (define-public gnome-shell-extensions
8161 (package
8162 (name "gnome-shell-extensions")
8163 (version "3.32.1")
8164 (source (origin
8165 (method url-fetch)
8166 (uri (string-append "mirror://gnome/sources/" name "/"
8167 (version-major+minor version) "/"
8168 name "-" version ".tar.xz"))
8169 (sha256
8170 (base32
8171 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
8172 (build-system meson-build-system)
8173 (arguments
8174 '(#:configure-flags '("-Dextension_set=all")))
8175 (native-inputs
8176 `(("glib:bin" ,glib "bin")
8177 ("intltool" ,intltool)
8178 ("pkg-config" ,pkg-config)))
8179 (propagated-inputs
8180 `(("glib" ,glib)))
8181 (synopsis "Extensions for GNOME Shell")
8182 (description "GNOME Shell extensions modify and extend GNOME Shell
8183 functionality and behavior.")
8184 (home-page "https://extensions.gnome.org/")
8185 (license license:gpl3+)))
8186
8187 (define-public arc-theme
8188 (package
8189 (name "arc-theme")
8190 (version "20190917")
8191 (source (origin
8192 (method git-fetch)
8193 (uri (git-reference
8194 (url "https://github.com/NicoHood/arc-theme.git")
8195 (commit version)))
8196 (file-name (git-file-name name version))
8197 (sha256
8198 (base32
8199 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8200 (build-system gnu-build-system)
8201 (arguments
8202 '(#:phases
8203 (modify-phases %standard-phases
8204 ;; autogen.sh calls configure at the end of the script.
8205 (replace 'bootstrap
8206 (lambda _ (invoke "autoreconf" "-vfi")))
8207 (add-before 'build 'set-home ;placate Inkscape
8208 (lambda _
8209 (setenv "HOME" (getcwd))
8210 #t)))))
8211 (native-inputs
8212 `(("autoconf" ,autoconf)
8213 ("automake" ,automake)
8214 ("glib" ,glib "bin") ; for glib-compile-resources
8215 ("gnome-shell" ,gnome-shell)
8216 ("gtk+" ,gtk+)
8217 ("inkscape" ,inkscape)
8218 ("optipng" ,optipng)
8219 ("pkg-config" ,pkg-config)
8220 ("sassc" ,sassc/libsass-3.5)))
8221 (synopsis "A flat GTK+ theme with transparent elements")
8222 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8223 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8224 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8225 (home-page "https://github.com/horst3180/arc-theme")
8226 ;; No "or later" language found.
8227 (license license:gpl3+)))
8228
8229 (define-public faba-icon-theme
8230 (package
8231 (name "faba-icon-theme")
8232 (version "4.3")
8233 (source
8234 (origin
8235 (method git-fetch)
8236 (uri (git-reference
8237 (url "https://github.com/snwh/faba-icon-theme.git")
8238 (commit (string-append "v" version))))
8239 (file-name (git-file-name name version))
8240 (sha256
8241 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8242 (build-system meson-build-system)
8243 (arguments
8244 `(#:phases
8245 (modify-phases %standard-phases
8246 (add-before 'configure 'disable-post-install
8247 (lambda _
8248 (substitute* "meson.build"
8249 (("meson.add_install_script.*") "")))))))
8250 (native-inputs
8251 `(("autoconf" ,autoconf)
8252 ("automake" ,automake)))
8253 (synopsis "Faba icon theme")
8254 (description
8255 "Faba is a minimal icon set used as a basis for other themes such as
8256 Moka")
8257 (home-page "https://snwh.org/moka")
8258 (license (list license:lgpl3+
8259 license:cc-by-sa4.0))))
8260
8261 (define-public moka-icon-theme
8262 (package
8263 (inherit faba-icon-theme)
8264 (name "moka-icon-theme")
8265 (version "5.4.0")
8266 (source
8267 (origin
8268 (method git-fetch)
8269 (uri (git-reference
8270 (url "https://github.com/snwh/moka-icon-theme.git")
8271 (commit (string-append "v" version))))
8272 (file-name (git-file-name name version))
8273 (sha256
8274 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8275 (propagated-inputs
8276 ;; Moka is based on Faba by using it as a fallback icon set instead of
8277 ;; bundling it, so we need to add it as a propagated input.
8278 `(("faba-icon-theme" ,faba-icon-theme)))
8279 (synopsis "Moka icon theme")
8280 (description "Moka is a stylized desktop icon set, designed to be clear,
8281 simple and consistent.")
8282 (license (list license:gpl3+
8283 license:cc-by-sa4.0))))
8284
8285 (define-public arc-icon-theme
8286 (package
8287 (name "arc-icon-theme")
8288 (version "20161122")
8289 (source
8290 (origin
8291 (method git-fetch)
8292 (uri (git-reference
8293 (url "https://github.com/horst3180/arc-icon-theme.git")
8294 (commit version)))
8295 (file-name (git-file-name name version))
8296 (sha256
8297 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8298 (build-system gnu-build-system)
8299 (arguments
8300 `(#:phases
8301 (modify-phases %standard-phases
8302 (add-after 'unpack 'disable-configure-during-bootstrap
8303 (lambda _
8304 (substitute* "autogen.sh"
8305 (("^\"\\$srcdir/configure\".*") ""))
8306 #t)))))
8307 (native-inputs
8308 `(("autoconf" ,autoconf)
8309 ("automake" ,automake)))
8310 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8311 (propagated-inputs
8312 `(("moka-icon-theme" ,moka-icon-theme)))
8313 (synopsis "Arc icon theme")
8314 (description "The Arc icon theme provides a set of icons matching the
8315 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8316 the Moka icon theme.")
8317 (home-page "https://github.com/horst3180/arc-icon-theme")
8318 (license license:gpl3+)))
8319
8320 (define-public folks
8321 (package
8322 (name "folks")
8323 (version "0.11.4")
8324 (source (origin
8325 (method url-fetch)
8326 (uri (string-append
8327 "mirror://gnome/sources/folks/"
8328 (version-major+minor version) "/"
8329 "folks-" version ".tar.xz"))
8330 (sha256
8331 (base32
8332 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
8333 (build-system glib-or-gtk-build-system)
8334 (inputs
8335 `(("bdb" ,bdb)
8336 ("dbus-glib" ,dbus-glib)
8337 ("evolution-data-server" ,evolution-data-server)
8338 ("glib" ,glib)
8339 ("libgee" ,libgee)
8340 ("telepathy-glib" ,telepathy-glib)))
8341 (native-inputs
8342 `(("gobject-introspection" ,gobject-introspection)
8343 ("intltool" ,intltool)
8344 ("pkg-config" ,pkg-config)
8345 ("vala" ,vala)))
8346 (synopsis "Library to aggregate data about people")
8347 (description "Libfolks is a library that aggregates information about people
8348 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8349 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8350 etc.) to create metacontacts. It's written in Vala, which generates C code when
8351 compiled.")
8352 (home-page "https://wiki.gnome.org/Projects/Folks")
8353 (license license:lgpl2.1+)))
8354
8355 (define-public gfbgraph
8356 (package
8357 (name "gfbgraph")
8358 (version "0.2.3")
8359 (source (origin
8360 (method url-fetch)
8361 (uri (string-append
8362 "mirror://gnome/sources/gfbgraph/"
8363 (version-major+minor version) "/"
8364 "gfbgraph-" version ".tar.xz"))
8365 (sha256
8366 (base32
8367 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8368 (build-system glib-or-gtk-build-system)
8369 (arguments
8370 `(#:tests? #f ; Tests appear to require the network.
8371 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8372 #:configure-flags '("--disable-gtk-doc"
8373 "--disable-static"
8374 "--enable-introspection")))
8375 (native-inputs
8376 `(("pkg-config" ,pkg-config)
8377 ("gobject-introspection" ,gobject-introspection)))
8378 (inputs
8379 `(("json-glib" ,json-glib)
8380 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8381 ("rest" ,rest)))
8382 (synopsis "GLib/GObject wrapper for the Facebook API")
8383 (description "This library allows you to use the Facebook API from
8384 GLib/GObject code.")
8385 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8386 (license license:lgpl2.1+)))
8387
8388 (define-public libgnomekbd
8389 (package
8390 (name "libgnomekbd")
8391 (version "3.26.1")
8392 (source (origin
8393 (method url-fetch)
8394 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8395 (version-major+minor version) "/"
8396 "libgnomekbd-" version ".tar.xz"))
8397 (sha256
8398 (base32
8399 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8400 (build-system gnu-build-system)
8401 (native-inputs
8402 `(("pkg-config" ,pkg-config)
8403 ("glib" ,glib "bin")
8404 ("intltool" ,intltool)))
8405 (propagated-inputs
8406 ;; Referred to in .h files and .pc.
8407 `(("glib" ,glib)
8408 ("gtk+" ,gtk+)
8409 ("libxklavier" ,libxklavier)))
8410 (home-page "https://www.gnome.org")
8411 (synopsis "GNOME keyboard configuration library")
8412 (description
8413 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8414 environment, which can notably display keyboard layouts.")
8415 (license license:lgpl2.0+)))
8416
8417 ;;; This package is no longer maintained:
8418 ;;; https://wiki.gnome.org/Attic/LibUnique
8419 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8420 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8421 (define-public libunique
8422 (package
8423 (name "libunique")
8424 (version "3.0.2")
8425 (source (origin
8426 (method url-fetch)
8427 (uri (string-append "mirror://gnome/sources/" name "/"
8428 (version-major+minor version) "/"
8429 name "-" version ".tar.xz"))
8430 (sha256
8431 (base32
8432 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8433 (build-system glib-or-gtk-build-system)
8434 (arguments
8435 `(#:configure-flags '("--disable-static"
8436 "--disable-dbus" ; use gdbus
8437 "--enable-introspection")))
8438 (native-inputs
8439 `(("pkg-config" ,pkg-config)
8440 ("gobject-introspection" ,gobject-introspection)
8441 ("glib:bin" ,glib "bin")
8442 ("gtk-doc" ,gtk-doc)))
8443 (propagated-inputs
8444 ;; Referred to in .h files and .pc.
8445 `(("gtk+" ,gtk+)))
8446 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8447 (synopsis "Library for writing single instance applications")
8448 (description
8449 "Libunique is a library for writing single instance applications. If you
8450 launch a single instance application twice, the second instance will either just
8451 quit or will send a message to the running instance. Libunique makes it easy to
8452 write this kind of application, by providing a base class, taking care of all
8453 the IPC machinery needed to send messages to a running instance, and also
8454 handling the startup notification side.")
8455 (license license:lgpl2.1+)))
8456
8457 (define-public gnome-calculator
8458 (package
8459 (name "gnome-calculator")
8460 (version "3.32.2")
8461 (source
8462 (origin
8463 (method url-fetch)
8464 (uri (string-append "mirror://gnome/sources/" name "/"
8465 (version-major+minor version) "/"
8466 name "-" version ".tar.xz"))
8467 (sha256
8468 (base32
8469 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
8470 (build-system meson-build-system)
8471 (arguments '(#:glib-or-gtk? #t))
8472 (native-inputs
8473 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8474 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8475 ("intltool" ,intltool)
8476 ("itstool" ,itstool)
8477 ("vala" ,vala)
8478 ("pkg-config" ,pkg-config)))
8479 (inputs
8480 `(("glib" ,glib)
8481 ("gtksourceview" ,gtksourceview)
8482 ("libsoup" ,libsoup)
8483 ("libxml2" ,libxml2)
8484 ("mpc" ,mpc)
8485 ("mpfr" ,mpfr)))
8486 (home-page "https://wiki.gnome.org/Apps/Calculator")
8487 (synopsis "Desktop calculator")
8488 (description
8489 "Calculator is an application that solves mathematical equations and
8490 is suitable as a default application in a Desktop environment.")
8491 (license license:gpl3)))
8492
8493 (define-public xpad
8494 (package
8495 (name "xpad")
8496 (version "5.1.0")
8497 (source
8498 (origin
8499 (method url-fetch)
8500 (uri (string-append "https://launchpad.net/xpad/trunk/"
8501 version "/+download/"
8502 name "-" version ".tar.bz2"))
8503 (sha256
8504 (base32
8505 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8506 (build-system gnu-build-system)
8507 (native-inputs
8508 `(("autoconf" ,autoconf)
8509 ("automake" ,automake)
8510 ("gtk+:bin" ,gtk+ "bin")
8511 ("intltool" ,intltool)
8512 ("pkg-config" ,pkg-config)))
8513 (inputs
8514 `(("gtksourceview" ,gtksourceview-3)
8515 ("libsm" ,libsm)))
8516 (home-page "https://wiki.gnome.org/Apps/Xpad")
8517 (synopsis "Virtual sticky note")
8518 (description
8519 "Xpad is a sticky note that strives to be simple, fault tolerant,
8520 and customizable. Xpad consists of independent pad windows, each is
8521 basically a text box in which notes can be written.")
8522 (license license:gpl3+)))
8523
8524 (define-public gucharmap
8525 (let ((unicode-files
8526 '(("Blocks.txt"
8527 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8528 ("DerivedAge.txt"
8529 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8530 ("NamesList.txt"
8531 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8532 ("Scripts.txt"
8533 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8534 ("UnicodeData.txt"
8535 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8536 ("Unihan.zip"
8537 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8538 (package
8539 (name "gucharmap")
8540 (version "12.0.1")
8541 (source
8542 (origin
8543 (method url-fetch)
8544 (uri (string-append "mirror://gnome/sources/" name "/"
8545 (version-major+minor version) "/"
8546 name "-" version ".tar.xz"))
8547 (sha256
8548 (base32
8549 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8550 (build-system glib-or-gtk-build-system)
8551 (arguments
8552 `(#:modules ((ice-9 match)
8553 (guix build glib-or-gtk-build-system)
8554 (guix build utils))
8555 #:configure-flags
8556 (list "--with-unicode-data=../unicode-data")
8557 #:phases
8558 (modify-phases %standard-phases
8559 (add-after 'unpack 'prepare-unicode-data
8560 (lambda* (#:key inputs #:allow-other-keys)
8561 (mkdir-p "../unicode-data")
8562 (with-directory-excursion "../unicode-data"
8563 (for-each (match-lambda
8564 ((file _)
8565 (install-file (assoc-ref inputs file) ".")))
8566 ',unicode-files))
8567 #t)))))
8568 (native-inputs
8569 `(("desktop-file-utils" ,desktop-file-utils)
8570 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8571 ("gobject-introspection" ,gobject-introspection)
8572 ("intltool" ,intltool)
8573 ("itstool" ,itstool)
8574 ("pkg-config" ,pkg-config)
8575 ,@(map (match-lambda
8576 ((file hash)
8577 `(,file
8578 ,(origin
8579 (method url-fetch)
8580 (uri (string-append
8581 "http://www.unicode.org/Public/12.0.0/ucd/"
8582 file))
8583 (sha256 (base32 hash))))))
8584 unicode-files)
8585 ("unzip" ,unzip)))
8586 (inputs
8587 `(("gtk+" ,gtk+)
8588 ("xmllint" ,libxml2)))
8589 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8590 (synopsis "Unicode character picker and font browser")
8591 (description
8592 "This program allows you to browse through all the available Unicode
8593 characters and categories for the installed fonts, and to examine their
8594 detailed properties. It is an easy way to find the character you might
8595 only know by its Unicode name or code point.")
8596 (license license:gpl3+))))
8597
8598 (define-public bluefish
8599 (package
8600 (name "bluefish")
8601 (version "2.2.11")
8602 (source
8603 (origin
8604 (method url-fetch)
8605 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8606 "bluefish-" version ".tar.gz"))
8607 (sha256
8608 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
8609 (build-system gnu-build-system)
8610 (native-inputs
8611 `(("desktop-file-utils" ,desktop-file-utils)
8612 ("intltool" ,intltool)
8613 ("pkg-config" ,pkg-config)))
8614 (inputs
8615 `(("enchant" ,enchant)
8616 ("gtk+" ,gtk+)
8617 ("python" ,python-wrapper)
8618 ("xmllint" ,libxml2)
8619 ("gucharmap" ,gucharmap)))
8620 (home-page "http://bluefish.openoffice.nl")
8621 (synopsis "Web development studio")
8622 (description
8623 "Bluefish is an editor targeted towards programmers and web developers,
8624 with many options to write web sites, scripts and other code.
8625 Bluefish supports many programming and markup languages.")
8626 (license license:gpl3+)))
8627
8628 (define-public gnome-system-monitor
8629 (package
8630 (name "gnome-system-monitor")
8631 (version "3.32.1")
8632 (source
8633 (origin
8634 (method url-fetch)
8635 (uri (string-append "mirror://gnome/sources/" name "/"
8636 (version-major+minor version) "/"
8637 name "-" version ".tar.xz"))
8638 (sha256
8639 (base32
8640 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8641 (build-system meson-build-system)
8642 (arguments
8643 '(#:glib-or-gtk? #t
8644 #:configure-flags '("-Dsystemd=false")))
8645 (native-inputs
8646 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8647 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8648 ("intltool" ,intltool)
8649 ("itstool" ,itstool)
8650 ("libgtop" ,libgtop)
8651 ("polkit" ,polkit)
8652 ("pkg-config" ,pkg-config)))
8653 (inputs
8654 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8655 ("gtk+" ,gtk+)
8656 ("gtkmm" ,gtkmm)
8657 ("librsvg" ,librsvg)
8658 ("libxml2" ,libxml2)
8659 ("libwnck" ,libwnck)))
8660 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8661 (synopsis "Process viewer and system resource monitor for GNOME")
8662 (description
8663 "GNOME System Monitor is a GNOME process viewer and system monitor with
8664 an attractive, easy-to-use interface. It has features, such as a tree view
8665 for process dependencies, icons for processes, the ability to hide processes,
8666 graphical time histories of CPU/memory/swap usage and the ability to
8667 kill/reinice processes.")
8668 (license license:gpl2+)))
8669
8670 (define-public python-pyatspi
8671 (package
8672 (name "python-pyatspi")
8673 (version "2.34.0")
8674 (source (origin
8675 (method url-fetch)
8676 (uri (string-append
8677 "mirror://gnome/sources/pyatspi/"
8678 (version-major+minor version)
8679 "/pyatspi-" version ".tar.xz"))
8680 (sha256
8681 (base32
8682 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8683 (build-system gnu-build-system)
8684 (arguments
8685 `(#:phases
8686 (modify-phases %standard-phases
8687 (add-before 'build 'fix-atk-load
8688 (lambda _
8689 (substitute* "pyatspi/__init__.py"
8690 (("from gi.repository import Atspi")
8691 "gi.require_version('Gtk', '3.0')
8692 from gi.repository import Gtk
8693 from gi.repository import Atspi"))
8694 #t)))))
8695 (native-inputs
8696 `(("pkg-config" ,pkg-config)))
8697 (inputs
8698 `(("python" ,python)
8699 ("python-pygobject" ,python-pygobject)))
8700 (synopsis "Python client bindings for D-Bus AT-SPI")
8701 (home-page "https://wiki.linuxfoundation.org/accessibility\
8702 /atk/at-spi/at-spi_on_d-bus")
8703 (description
8704 "This package includes a python client library for the AT-SPI D-Bus
8705 accessibility infrastructure.")
8706 (license license:lgpl2.0)
8707 (properties '((upstream-name . "pyatspi")))))
8708
8709 (define-public orca
8710 (package
8711 (name "orca")
8712 (version "3.32.0")
8713 (source (origin
8714 (method url-fetch)
8715 (uri (string-append
8716 "mirror://gnome/sources/" name "/"
8717 (version-major+minor version) "/"
8718 name "-" version ".tar.xz"))
8719 (sha256
8720 (base32
8721 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
8722 (build-system glib-or-gtk-build-system)
8723 (arguments
8724 '(#:phases
8725 (modify-phases %standard-phases
8726 (add-before 'configure 'qualify-xkbcomp
8727 (lambda* (#:key inputs #:allow-other-keys)
8728 (let ((xkbcomp (string-append
8729 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8730 (substitute* "src/orca/orca.py"
8731 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8732 #t))
8733 (add-after 'install 'wrap-orca
8734 (lambda* (#:key outputs #:allow-other-keys)
8735 (let* ((out (assoc-ref outputs "out"))
8736 (prog (string-append out "/bin/orca")))
8737 (wrap-program prog
8738 `("GI_TYPELIB_PATH" ":" prefix
8739 (,(getenv "GI_TYPELIB_PATH")))
8740 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8741 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8742 `("PYTHONPATH" ":" prefix
8743 (,(getenv "PYTHONPATH")))))
8744 #t)))))
8745 (native-inputs
8746 `(("intltool" ,intltool)
8747 ("itstool" ,itstool)
8748 ("pkg-config" ,pkg-config)
8749 ("xmllint" ,libxml2)))
8750 (inputs
8751 `(("at-spi2-atk" ,at-spi2-atk)
8752 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8753 ("gstreamer" ,gstreamer)
8754 ("gst-plugins-base" ,gst-plugins-base)
8755 ("gst-plugins-good" ,gst-plugins-good)
8756 ("gtk+" ,gtk+)
8757 ("python" ,python)
8758 ("python-pygobject" ,python-pygobject)
8759 ("python-pyatspi" ,python-pyatspi)
8760 ("python-speechd" ,speech-dispatcher)
8761 ("xkbcomp" ,xkbcomp)))
8762 (synopsis
8763 "Screen reader for individuals who are blind or visually impaired")
8764 (home-page "https://wiki.gnome.org/Projects/Orca")
8765 (description
8766 "Orca is a screen reader that provides access to the graphical desktop
8767 via speech and refreshable braille. Orca works with applications and toolkits
8768 that support the Assistive Technology Service Provider Interface (AT-SPI).")
8769 (license license:lgpl2.1+)))
8770
8771 (define-public gspell
8772 (package
8773 (name "gspell")
8774 (version "1.8.2")
8775 (source (origin
8776 (method url-fetch)
8777 (uri (string-append "mirror://gnome/sources/" name "/"
8778 (version-major+minor version) "/"
8779 name "-" version ".tar.xz"))
8780 (sha256
8781 (base32
8782 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
8783 (patches (search-patches "gspell-dash-test.patch"))))
8784 (build-system glib-or-gtk-build-system)
8785 (arguments
8786 '(#:configure-flags (list "--enable-vala")
8787 #:phases
8788 (modify-phases %standard-phases
8789 (add-before 'check 'pre-check
8790 (lambda* (#:key inputs #:allow-other-keys)
8791 ;; Tests require a running X server.
8792 (system "Xvfb :1 &")
8793 (setenv "DISPLAY" ":1")
8794
8795 ;; For the missing /etc/machine-id.
8796 (setenv "DBUS_FATAL_WARNINGS" "0")
8797
8798 ;; Allow Enchant and its Aspell backend to find the en_US
8799 ;; dictionary.
8800 (setenv "ASPELL_DICT_DIR"
8801 (string-append (assoc-ref inputs "aspell-dict-en")
8802 "/lib/aspell"))
8803 #t)))))
8804 (inputs
8805 `(("gtk+" ,gtk+)
8806 ("glib" ,glib)
8807 ("iso-codes" ,iso-codes)))
8808 (native-inputs
8809 `(("glib" ,glib "bin")
8810 ("gobject-introspection" ,gobject-introspection)
8811 ("pkg-config" ,pkg-config)
8812 ("vala" ,vala) ;for VAPI, needed by Geary
8813 ("xmllint" ,libxml2)
8814
8815 ;; For tests.
8816 ("aspell-dict-en" ,aspell-dict-en)
8817 ("xorg-server" ,xorg-server-for-tests)))
8818 (propagated-inputs
8819 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
8820 (home-page "https://wiki.gnome.org/Projects/gspell")
8821 (synopsis "GNOME's alternative spell checker")
8822 (description
8823 "gspell provides a flexible API to add spell-checking to a GTK+
8824 application. It provides a GObject API, spell-checking to text entries and
8825 text views, and buttons to choose the language.")
8826 (license license:gpl2+)))
8827
8828 (define-public gnome-planner
8829 (package
8830 (name "gnome-planner")
8831 (version "0.14.6")
8832 (source (origin
8833 (method url-fetch)
8834 (uri (string-append "mirror://gnome/sources/planner/"
8835 (version-major+minor version) "/planner-"
8836 version ".tar.xz"))
8837 (sha256
8838 (base32
8839 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8840 (build-system glib-or-gtk-build-system)
8841 (arguments
8842 ;; Disable the Python bindings because the Planner program functions
8843 ;; without them, and (as of 2017-06-13) we have not packaged all of
8844 ;; packages that are necessary for building the Python bindings.
8845 `(#:configure-flags
8846 (list "--disable-python"
8847 ,@(if (string=? "aarch64-linux" (%current-system))
8848 '("--build=aarch64-unknown-linux-gnu")
8849 '()))))
8850 (inputs
8851 `(("libgnomecanvas" ,libgnomecanvas)
8852 ("libgnomeui" ,libgnomeui)
8853 ("libglade" ,libglade)
8854 ("gnome-vfs" ,gnome-vfs)
8855 ("gconf" ,gconf)
8856 ("libxml2" ,libxml2)
8857 ("libxslt" ,libxslt)
8858 ("gtk+" ,gtk+)
8859 ("glib" ,glib)))
8860 (native-inputs
8861 `(("intltool" ,intltool)
8862 ("scrollkeeper" ,scrollkeeper)
8863 ("pkg-config" ,pkg-config)))
8864 (home-page "https://wiki.gnome.org/Apps/Planner")
8865 (synopsis "Project management software for the GNOME desktop")
8866 (description
8867 "GNOME Planner is a project management tool based on the Work Breakdown
8868 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8869 the resources, tasks, and constraints that you define, Planner generates
8870 various views into a project. For example, Planner can show a Gantt chart of
8871 the project. It can show a detailed summary of tasks including their
8872 duration, cost, and current progress. It can also show a report of resource
8873 utilization that highlights under-utilized and over-utilized resources. These
8874 views can be printed as PDF or PostScript files, or exported to HTML.")
8875 (license license:gpl2+)))
8876
8877 (define-public lollypop
8878 (package
8879 (name "lollypop")
8880 (version "1.2.32")
8881 (source
8882 (origin
8883 (method url-fetch)
8884 (uri (string-append "https://adishatz.org/lollypop/"
8885 "lollypop-" version ".tar.xz"))
8886 (sha256
8887 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
8888 (build-system meson-build-system)
8889 (arguments
8890 `(#:imported-modules ((guix build python-build-system)
8891 ,@%meson-build-system-modules)
8892 #:glib-or-gtk? #t
8893 #:tests? #f ; no test suite
8894 #:phases
8895 (modify-phases %standard-phases
8896 (add-after 'install 'wrap-program
8897 (lambda* (#:key outputs #:allow-other-keys)
8898 (let ((out (assoc-ref outputs "out"))
8899 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8900 (wrap-program (string-append out "/bin/lollypop")
8901 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8902 #t))
8903 (add-after 'install 'wrap-python
8904 (@@ (guix build python-build-system) wrap))
8905 (add-after 'install 'wrap-glib-or-gtk
8906 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
8907 (native-inputs
8908 `(("intltool" ,intltool)
8909 ("itstool" ,itstool)
8910 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8911 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8912 ("pkg-config" ,pkg-config)))
8913 (inputs
8914 `(("gobject-introspection" ,gobject-introspection)
8915 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8916 ("gst-plugins-base" ,gst-plugins-base)
8917 ("libnotify" ,libnotify)
8918 ("libsecret" ,libsecret)
8919 ("libsoup" ,libsoup)
8920 ("python" ,python)
8921 ("python-beautifulsoup4" ,python-beautifulsoup4)
8922 ("python-gst" ,python-gst)
8923 ("python-pil" ,python-pillow)
8924 ("python-pycairo" ,python-pycairo)
8925 ("python-pygobject" ,python-pygobject-3.34)
8926 ("python-pylast" ,python-pylast)
8927 ("totem-pl-parser" ,totem-pl-parser)
8928 ("webkitgtk" ,webkitgtk)))
8929 (propagated-inputs
8930 `(;; gst-plugins-base is required to start Lollypop,
8931 ;; the others are required to play streaming.
8932 ("gst-plugins-good" ,gst-plugins-good)
8933 ("gst-plugins-ugly" ,gst-plugins-ugly)))
8934 (home-page "https://wiki.gnome.org/Apps/Lollypop")
8935 (synopsis "GNOME music playing application")
8936 (description
8937 "Lollypop is a music player designed to play well with GNOME desktop.
8938 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
8939 from artists and tracks from the web. It also fetches cover artworks
8940 automatically and it can stream songs from online music services and charts.")
8941 (license license:gpl3+)))
8942
8943 (define-public gnome-video-effects
8944 (package
8945 (name "gnome-video-effects")
8946 (version "0.4.3")
8947 (source (origin
8948 (method url-fetch)
8949 (uri (string-append "mirror://gnome/sources/" name "/"
8950 (version-major+minor version) "/" name "-"
8951 version ".tar.xz"))
8952 (sha256
8953 (base32
8954 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
8955 (build-system glib-or-gtk-build-system)
8956 (arguments
8957 `(#:out-of-source? #f))
8958 (native-inputs
8959 `(("glib:bin" ,glib "bin")
8960 ("intltool" ,intltool)
8961 ("gettext" ,gettext-minimal)
8962 ("pkg-config" ,pkg-config)))
8963 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
8964 (synopsis "Video effects for Cheese and other GNOME applications")
8965 (description
8966 "A collection of GStreamer video filters and effects to be used in
8967 photo-booth-like software, such as Cheese.")
8968 (license license:gpl2+)))
8969
8970 (define-public cheese
8971 (package
8972 (name "cheese")
8973 (version "3.32.1")
8974 (source (origin
8975 (method url-fetch)
8976 (uri (string-append "mirror://gnome/sources/" name "/"
8977 (version-major+minor version) "/" name "-"
8978 version ".tar.xz"))
8979 (sha256
8980 (base32
8981 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
8982 (arguments
8983 ;; Tests require GDK.
8984 `(#:tests? #f
8985 #:phases
8986 (modify-phases %standard-phases
8987 (add-before 'install 'skip-gtk-update-icon-cache
8988 (lambda _
8989 ;; Don't create 'icon-theme.cache'
8990 (substitute* "Makefile"
8991 (("gtk-update-icon-cache") (which "true")))
8992 #t))
8993 (add-after 'install 'wrap-cheese
8994 (lambda* (#:key inputs outputs #:allow-other-keys)
8995 (let ((out (assoc-ref outputs "out"))
8996 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
8997 (wrap-program (string-append out "/bin/cheese")
8998 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
8999 #t)))))
9000 (build-system glib-or-gtk-build-system)
9001 (native-inputs
9002 `(("glib:bin" ,glib "bin")
9003 ("intltool" ,intltool)
9004 ("itstool" ,itstool)
9005 ("libxml2" ,libxml2)
9006 ("pkg-config" ,pkg-config)
9007 ("vala" ,vala)))
9008 (propagated-inputs
9009 `(("gnome-video-effects" ,gnome-video-effects)
9010 ("clutter" ,clutter)
9011 ("clutter-gst" ,clutter-gst)
9012 ("clutter-gtk" ,clutter-gtk)
9013 ("libcanberra" ,libcanberra)
9014 ("gdk-pixbuf" ,gdk-pixbuf)
9015 ("glib" ,glib)
9016 ("gstreamer" ,gstreamer)))
9017 (inputs
9018 `(("gnome-desktop" ,gnome-desktop)
9019 ("gobject-introspection" ,gobject-introspection)
9020 ("gst-plugins-base" ,gst-plugins-base)
9021 ("gst-plugins-bad" ,gst-plugins-bad)
9022 ("gtk+" ,gtk+)
9023 ("libx11" ,libx11)
9024 ("libxtst" ,libxtst)))
9025 (home-page "https://wiki.gnome.org/Apps/Cheese")
9026 (synopsis "Webcam photo booth software for GNOME")
9027 (description
9028 "Cheese uses your webcam to take photos and videos. Cheese can also
9029 apply fancy special effects and lets you share the fun with others.")
9030 (license license:gpl2+)))
9031
9032 (define-public sound-juicer
9033 (package
9034 (name "sound-juicer")
9035 (version "3.24.0")
9036 (source
9037 (origin
9038 (method url-fetch)
9039 (uri (string-append "mirror://gnome/sources/" name "/"
9040 (version-major+minor version) "/"
9041 name "-" version ".tar.xz"))
9042 (sha256
9043 (base32
9044 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9045 (build-system glib-or-gtk-build-system)
9046 (native-inputs
9047 `(("desktop-file-utils" ,desktop-file-utils)
9048 ("intltool" ,intltool)
9049 ("itstool" ,itstool)
9050 ("pkg-config" ,pkg-config)
9051 ("xmllint" ,libxml2)))
9052 (inputs
9053 `(("gtk+" ,gtk+)
9054 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9055 ("gstreamer" ,gstreamer)
9056 ("gst-plugins-base" ,gst-plugins-base)
9057 ("gst-plugins-good" ,gst-plugins-good)
9058 ("iso-codes" ,iso-codes)
9059 ("libbrasero-media3" ,brasero)
9060 ("libcanberra" ,libcanberra)
9061 ("libdiscid" ,libdiscid)
9062 ("libmusicbrainz" ,libmusicbrainz)
9063 ("neon" ,neon)))
9064 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9065 (synopsis "Audio music cd ripper")
9066 (description "Sound Juicer extracts audio from compact discs and convert it
9067 into audio files that a personal computer or digital audio player can play.
9068 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9069 mp3, Ogg Vorbis and FLAC")
9070 (license license:gpl2+)))
9071
9072 (define-public soundconverter
9073 (package
9074 (name "soundconverter")
9075 (version "3.0.1")
9076 (source
9077 (origin
9078 (method url-fetch)
9079 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9080 version "/+download/"
9081 "soundconverter-" version ".tar.xz"))
9082
9083 (sha256
9084 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
9085 (patches
9086 (search-patches
9087 "soundconverter-remove-gconf-dependency.patch"))))
9088 (build-system glib-or-gtk-build-system)
9089 (arguments
9090 `(#:imported-modules ((guix build python-build-system)
9091 (guix build glib-or-gtk-build-system)
9092 ,@%gnu-build-system-modules)
9093
9094 #:modules ((guix build glib-or-gtk-build-system)
9095 (guix build utils)
9096 ((guix build gnu-build-system) #:prefix gnu:)
9097 ((guix build python-build-system) #:prefix python:))
9098
9099 #:phases
9100 (modify-phases %standard-phases
9101 (add-after 'install 'wrap-soundconverter-for-python
9102 (assoc-ref python:%standard-phases 'wrap))
9103 (add-after 'install 'wrap-soundconverter
9104 (lambda* (#:key inputs outputs #:allow-other-keys)
9105 (let ((out (assoc-ref outputs "out"))
9106 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9107 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9108 (wrap-program (string-append out "/bin/soundconverter")
9109 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9110 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9111 #t)))))
9112 (native-inputs
9113 `(("intltool" ,intltool)
9114 ("pkg-config" ,pkg-config)
9115 ("glib:bin" ,glib "bin")))
9116 (inputs
9117 `(("gtk+" ,gtk+)
9118 ("python" ,python)
9119 ("python-pygobject" ,python-pygobject)
9120 ("gstreamer" ,gstreamer)
9121 ("gst-plugins-base" ,gst-plugins-base)))
9122 (home-page "https://soundconverter.org/")
9123 (synopsis "Convert between audio formats with a graphical interface")
9124 (description
9125 "SoundConverter supports converting between many audio formats including
9126 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9127 configurable file renaming. ")
9128 (license license:gpl3)))
9129
9130 (define-public workrave
9131 (package
9132 (name "workrave")
9133 (version "1.10.37")
9134 (source
9135 (origin
9136 (method git-fetch)
9137 (uri (git-reference
9138 (url "https://github.com/rcaelers/workrave.git")
9139 (commit (string-append "v" (string-map
9140 (match-lambda (#\. #\_) (chr chr))
9141 version)))))
9142 (file-name (git-file-name name version))
9143 (sha256
9144 (base32 "01cxy7606hx9wgxl550l4p2xa9hsy0rk7swsp58hyi842z2z0y13"))))
9145 (build-system glib-or-gtk-build-system)
9146 (arguments
9147 ;; The only tests are maintainer tests (in po/), which fail.
9148 `(#:tests? #f))
9149 (inputs `(("glib" ,glib)
9150 ("gtk+" ,gtk+)
9151 ("gdk-pixbuf" ,gdk-pixbuf)
9152 ("gtkmm" ,gtkmm)
9153 ("glibmm" ,glibmm)
9154 ("libx11" ,libx11)
9155 ("libxtst" ,libxtst)
9156 ("dconf" ,dconf)
9157 ("libice" ,libice)
9158 ("libsm" ,libsm)
9159 ("libxscrnsaver" ,libxscrnsaver)))
9160 (native-inputs `(("boost" ,boost)
9161 ("pkg-config" ,pkg-config)
9162 ("gettext" ,gnu-gettext)
9163 ("autoconf" ,autoconf)
9164 ("autoconf-archive" , autoconf-archive)
9165 ("automake" ,automake)
9166 ("libtool" ,libtool)
9167 ("intltool" ,intltool)
9168 ("gobject-introspection" ,gobject-introspection)
9169 ("python3" ,python-3)
9170 ("python-jinja2" ,python-jinja2)))
9171 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9172 (description
9173 "Workrave is a program that assists in the recovery and prevention of
9174 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9175 micro-pauses and rest breaks, and restricts you to your daily limit.")
9176 (home-page "http://www.workrave.org")
9177 (license license:gpl3+)))
9178
9179 (define-public ghex
9180 (package
9181 (name "ghex")
9182 (version "3.18.4")
9183 (source (origin
9184 (method url-fetch)
9185 (uri (string-append "mirror://gnome/sources/ghex/"
9186 (version-major+minor version) "/"
9187 "ghex-" version ".tar.xz"))
9188 (sha256
9189 (base32
9190 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9191 (build-system meson-build-system)
9192 (arguments
9193 '(#:glib-or-gtk? #t
9194 #:phases
9195 (modify-phases %standard-phases
9196 (add-after 'unpack 'skip-gtk-update-icon-cache
9197 ;; Don't create 'icon-theme.cache'.
9198 (lambda _
9199 (substitute* "meson_post_install.py"
9200 (("gtk-update-icon-cache") (which "true")))
9201 #t)))))
9202 (native-inputs
9203 `(("pkg-config" ,pkg-config)
9204 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9205 ("gnome-common" ,gnome-common)
9206 ("which" ,which)
9207 ("intltool" ,intltool)
9208 ("yelp-tools" ,yelp-tools)
9209 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9210 (inputs
9211 `(("atk" ,atk)
9212 ("gtk" ,gtk+)))
9213 (synopsis "GNOME hexadecimal editor")
9214 (description "The GHex program can view and edit files in two ways:
9215 hexadecimal or ASCII. It is useful for editing binary files in general.")
9216 (home-page "https://wiki.gnome.org/Apps/Ghex")
9217 (license license:gpl2)))
9218
9219 (define-public libdazzle
9220 (package
9221 (name "libdazzle")
9222 (version "3.33.90")
9223 (source (origin
9224 (method url-fetch)
9225 (uri (string-append "mirror://gnome/sources/libdazzle/"
9226 (version-major+minor version) "/"
9227 "libdazzle-" version ".tar.xz"))
9228 (sha256
9229 (base32
9230 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
9231 (build-system meson-build-system)
9232 (arguments
9233 `(#:phases
9234 (modify-phases %standard-phases
9235 (add-before 'check 'pre-check
9236 (lambda _
9237 ;; Tests require a running X server.
9238 (system "Xvfb :1 &")
9239 (setenv "DISPLAY" ":1")
9240 #t)))))
9241 (native-inputs
9242 `(("glib" ,glib "bin") ; glib-compile-resources
9243 ("pkg-config" ,pkg-config)
9244 ;; For tests.
9245 ("xorg-server" ,xorg-server-for-tests)))
9246 (inputs
9247 `(("glib" ,glib)
9248 ("gobject-introspection" ,gobject-introspection)
9249 ("gtk+" ,gtk+)
9250 ("vala" ,vala)))
9251 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9252 (synopsis "Companion library to GObject and Gtk+")
9253 (description "The libdazzle library is a companion library to GObject and
9254 Gtk+. It provides various features that the authors wish were in the
9255 underlying library but cannot for various reasons. In most cases, they are
9256 wildly out of scope for those libraries. In other cases, they are not quite
9257 generic enough to work for everyone.")
9258 (license license:gpl3+)))
9259
9260 (define-public evolution
9261 (package
9262 (name "evolution")
9263 (version "3.32.4")
9264 (source (origin
9265 (method url-fetch)
9266 (uri (string-append "mirror://gnome/sources/evolution/"
9267 (version-major+minor version) "/"
9268 "evolution-" version ".tar.xz"))
9269 (sha256
9270 (base32
9271 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
9272 (build-system cmake-build-system)
9273 (arguments
9274 `(#:imported-modules (,@%cmake-build-system-modules
9275 (guix build glib-or-gtk-build-system))
9276 #:modules ((guix build cmake-build-system)
9277 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9278 (guix build utils))
9279 #:configure-flags
9280 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9281 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9282 ; in four years and cannot be built.
9283 #:phases
9284 (modify-phases %standard-phases
9285 ;; The build system attempts to install user interface modules to the
9286 ;; output directory of the "evolution-data-server" package. This
9287 ;; change redirects that change.
9288 (add-after 'unpack 'patch-ui-module-dir
9289 (lambda* (#:key outputs #:allow-other-keys)
9290 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9291 (("\\$\\{edsuimoduledir\\}")
9292 (string-append (assoc-ref outputs "out")
9293 "/lib/evolution-data-server/ui-modules")))
9294 #t))
9295 (add-after 'install 'glib-or-gtk-compile-schemas
9296 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9297 (add-after 'install 'glib-or-gtk-wrap
9298 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9299 (native-inputs
9300 `(("glib" ,glib "bin") ; glib-mkenums
9301 ("pkg-config" ,pkg-config)
9302 ("intltool" ,intltool)
9303 ("itstool" ,itstool)))
9304 (inputs
9305 `(("enchant" ,enchant)
9306 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9307 ("gcr" ,gcr)
9308 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9309 ("gnome-autoar" ,gnome-autoar)
9310 ("gnome-desktop" ,gnome-desktop)
9311 ("gtkspell3" ,gtkspell3)
9312 ("highlight" ,highlight)
9313 ("libcanberra" ,libcanberra)
9314 ("libedataserverui" ,evolution-data-server)
9315 ("libgweather" ,libgweather)
9316 ("libnotify" ,libnotify)
9317 ("libsoup" ,libsoup)
9318 ("nss" ,nss)
9319 ("openldap" ,openldap)
9320 ("webkitgtk" ,webkitgtk)
9321 ("ytnef" ,ytnef)))
9322 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9323 (synopsis "Manage your email, contacts and schedule")
9324 (description "Evolution is a personal information management application
9325 that provides integrated mail, calendaring and address book
9326 functionality.")
9327 ;; See COPYING for details.
9328 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9329 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9330 license:lgpl2.1+)))) ; smime/lib/*
9331
9332 (define-public gthumb
9333 (package
9334 (name "gthumb")
9335 (version "3.8.2")
9336 (source (origin
9337 (method url-fetch)
9338 (uri (string-append "mirror://gnome/sources/gthumb/"
9339 (version-major+minor version) "/"
9340 "gthumb-" version ".tar.xz"))
9341 (sha256
9342 (base32
9343 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9344 (build-system meson-build-system)
9345 (arguments
9346 `(#:glib-or-gtk? #t
9347 #:configure-flags
9348 ;; Ensure the RUNPATH contains all installed library locations.
9349 (list (string-append "-Dc_link_args=-Wl,-rpath="
9350 (assoc-ref %outputs "out")
9351 "/lib/gthumb/extensions")
9352 (string-append "-Dcpp_link_args=-Wl,-rpath="
9353 (assoc-ref %outputs "out")
9354 "/lib/gthumb/extensions"))))
9355 (native-inputs
9356 `(("pkg-config" ,pkg-config)
9357 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9358 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9359 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9360 ("intltool" ,intltool)
9361 ("itstool" ,itstool)))
9362 (inputs
9363 `(("exiv2" ,exiv2)
9364 ("gtk" ,gtk+)
9365 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9366 ("gstreamer" ,gstreamer)
9367 ("clutter" ,clutter)
9368 ("clutter-gst" ,clutter-gst)
9369 ("clutter-gtk" ,clutter-gtk)
9370 ("libjpeg" ,libjpeg)
9371 ("libtiff" ,libtiff)
9372 ("libraw" ,libraw)))
9373 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9374 (synopsis "GNOME image viewer and browser")
9375 (description "GThumb is an image viewer, browser, organizer, editor and
9376 advanced image management tool")
9377 (license license:gpl2+)))
9378
9379 (define-public terminator
9380 (package
9381 (name "terminator")
9382 (version "1.91")
9383 (source (origin
9384 (method url-fetch)
9385 (uri (string-append "https://launchpad.net/" name "/"
9386 "gtk3/" version "/" "+download/"
9387 name "-" version ".tar.gz"))
9388 (sha256
9389 (base32
9390 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9391 (build-system python-build-system)
9392 (native-inputs
9393 `(("intltool" ,intltool)
9394 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9395 ("gettext" ,gettext-minimal)
9396 ("pkg-config" ,pkg-config)))
9397 (inputs
9398 `(("cairo" ,cairo)
9399 ("gobject-introspection" ,gobject-introspection)
9400 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9401 ("python2-pycairo" ,python2-pycairo)
9402 ("python2-pygobject" ,python2-pygobject)
9403 ("python2-psutil" ,python2-psutil)
9404 ("vte" ,vte)))
9405 (arguments
9406 `(#:python ,python-2 ; Python 3 isn't supported
9407 #:imported-modules ((guix build glib-or-gtk-build-system)
9408 ,@%python-build-system-modules)
9409 #:modules ((guix build python-build-system)
9410 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9411 (guix build utils))
9412 #:phases
9413 (modify-phases %standard-phases
9414 (add-after
9415 'install 'wrap-program
9416 (lambda* (#:key outputs #:allow-other-keys)
9417 (let ((prog (string-append (assoc-ref outputs "out")
9418 "/bin/terminator")))
9419 (wrap-program prog
9420 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9421 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9422 #t)))
9423 (add-after 'wrap-program 'glib-or-gtk-wrap
9424 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9425 (home-page "https://gnometerminator.blogspot.com/")
9426 (synopsis "Store and run multiple GNOME terminals in one window")
9427 (description
9428 "Terminator allows you to run multiple GNOME terminals in a grid and
9429 +tabs, and it supports drag and drop re-ordering of terminals.")
9430 (license license:gpl2)))
9431
9432 (define-public libhandy
9433 (package
9434 (name "libhandy")
9435 (version "0.0.12")
9436 (source
9437 (origin
9438 (method git-fetch)
9439 (uri (git-reference
9440 (url "https://source.puri.sm/Librem5/libhandy")
9441 (commit (string-append "v" version))))
9442 (file-name (git-file-name name version))
9443 (sha256
9444 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9445 (build-system meson-build-system)
9446 (arguments
9447 `(#:configure-flags
9448 '("-Dglade_catalog=disabled"
9449 "-Dgtk_doc=true")
9450 #:phases
9451 (modify-phases %standard-phases
9452 (add-before 'check 'pre-check
9453 (lambda _
9454 ;; Tests require a running X server.
9455 (system "Xvfb :1 &")
9456 (setenv "DISPLAY" ":1")
9457 #t)))))
9458 (inputs
9459 `(("gtk+" ,gtk+)))
9460 (native-inputs
9461 `(("glib:bin" ,glib "bin")
9462 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9463 ("vala" ,vala)
9464 ("gtk-doc" ,gtk-doc)
9465 ("pkg-config" ,pkg-config)
9466 ("gettext" ,gettext-minimal)
9467
9468 ;; Test suite dependencies.
9469 ("xorg-server" ,xorg-server-for-tests)
9470 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9471 (home-page "https://source.puri.sm/Librem5/libhandy")
9472 (synopsis "Library full of GTK+ widgets for mobile phones")
9473 (description "The aim of the handy library is to help with developing user
9474 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9475 for usage on small and big screens.")
9476 (license license:lgpl2.1+)))
9477
9478 (define-public libgit2-glib
9479 (package
9480 (name "libgit2-glib")
9481 (version "0.99.0.1")
9482 (source (origin
9483 (method url-fetch)
9484 (uri (string-append "mirror://gnome/sources/" name "/"
9485 (version-major+minor version) "/"
9486 name "-" version ".tar.xz"))
9487 (sha256
9488 (base32
9489 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
9490 (build-system meson-build-system)
9491 (native-inputs
9492 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9493 ("gobject-introspection" ,gobject-introspection)
9494 ("pkg-config" ,pkg-config)
9495 ("python-pygobject" ,python-pygobject)
9496 ("python-wrapper" ,python-wrapper)
9497 ("vala" ,vala)))
9498 (inputs
9499 `(("glib" ,glib)
9500 ("libssh2" ,libssh2)))
9501 (propagated-inputs
9502 `(;; In Requires of libgit2-glib.pc.
9503 ("libgit2" ,libgit2)))
9504 (synopsis "GLib wrapper around the libgit2 Git access library")
9505 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9506 access library. It only implements the core plumbing functions, not really the
9507 higher level porcelain stuff.")
9508 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9509 (license license:gpl2+)))
9510
9511 (define-public gitg
9512 (package
9513 (name "gitg")
9514 (version "3.32.1")
9515 (source (origin
9516 (method url-fetch)
9517 (uri (string-append "mirror://gnome/sources/" name "/"
9518 (version-major+minor version) "/"
9519 name "-" version ".tar.xz"))
9520 (sha256
9521 (base32
9522 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9523 (build-system meson-build-system)
9524 (arguments
9525 `(#:glib-or-gtk? #t
9526 #:phases
9527 (modify-phases %standard-phases
9528 (add-after 'unpack 'disable-post-install-partially
9529 (lambda _
9530 (substitute* "meson_post_install.py"
9531 (("'python'") ; there are no python sources to compile
9532 (string-append "'" (which "true") "'"))
9533 (("gtk-update-icon-cache") (which "true")))
9534 #t))
9535 (add-after 'unpack 'fix-test-sources
9536 (lambda _
9537 (substitute* "tests/libgitg/test-commit.vala"
9538 (("/bin/bash") (which "bash")))
9539 #t))
9540 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9541 (lambda* (#:key outputs #:allow-other-keys)
9542 (let ((prog (string-append (assoc-ref outputs "out")
9543 "/bin/gitg")))
9544 (wrap-program prog
9545 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9546 #t))))))
9547 (inputs
9548 `(("glib" ,glib)
9549 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9550 ("gtk+" ,gtk+)
9551 ("gtkspell3" ,gtkspell3)
9552 ("gtksourceview" ,gtksourceview-3)
9553 ("json-glib" ,json-glib)
9554 ("libdazzle" ,libdazzle)
9555 ("libgee" ,libgee)
9556 ("libgit2-glib" ,libgit2-glib)
9557 ("libpeas" ,libpeas)
9558 ("libsecret" ,libsecret)
9559 ("libsoup" ,libsoup)
9560 ("libxml2" ,libxml2)))
9561 (native-inputs
9562 `(("glib:bin" ,glib "bin")
9563 ("gtk+:bin" ,gtk+ "bin")
9564 ("gobject-introspection" ,gobject-introspection)
9565 ("intltool" ,intltool)
9566 ("pkg-config" ,pkg-config)
9567 ("vala" ,vala)))
9568 (synopsis "Graphical user interface for git")
9569 (description
9570 "gitg is a graphical user interface for git. It aims at being a small,
9571 fast and convenient tool to visualize the history of git repositories.
9572 Besides visualization, gitg also provides several utilities to manage your
9573 repository and commit your work.")
9574 (home-page "https://wiki.gnome.org/Apps/Gitg")
9575 (license license:gpl2+)))
9576
9577 (define-public gamin
9578 (package
9579 (name "gamin")
9580 (version "0.1.10")
9581 (source (origin
9582 (method url-fetch)
9583 (uri (string-append "mirror://gnome/sources/" name "/"
9584 (version-major+minor version) "/"
9585 name "-" version ".tar.bz2"))
9586 (sha256
9587 (base32
9588 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9589 (build-system gnu-build-system)
9590 (arguments
9591 `(#:phases
9592 (modify-phases %standard-phases
9593 (add-after 'unpack 'remove-deprecated-macro
9594 (lambda _
9595 (substitute* '("server/gam_node.c"
9596 "server/gam_subscription.h"
9597 "server/gam_node.h"
9598 "server/gam_subscription.c")
9599 (("G_CONST_RETURN") "const"))
9600 #t)))))
9601 (inputs
9602 `(("glib" ,glib)))
9603 (native-inputs
9604 `(("intltool" ,intltool)
9605 ("pkg-config" ,pkg-config)))
9606 (home-page "https://people.gnome.org/~veillard/gamin/")
9607 (synopsis "File alteration monitor")
9608 (description
9609 "Gamin is a file and directory monitoring system defined to be a subset
9610 of the FAM (File Alteration Monitor) system. This is a service provided by a
9611 library which allows to detect when a file or a directory has been modified.")
9612 (license license:gpl2+)))
9613
9614 (define-public gnome-mahjongg
9615 (package
9616 (name "gnome-mahjongg")
9617 (version "3.35.1")
9618 (source (origin
9619 (method git-fetch)
9620 (uri (git-reference
9621 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9622 (commit version)))
9623 (file-name (git-file-name name version))
9624 (sha256
9625 (base32
9626 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9627 (build-system meson-build-system)
9628 (arguments
9629 `(#:glib-or-gtk? #t))
9630 (native-inputs
9631 `(("appstream-glib" ,appstream-glib)
9632 ("gettext" ,gettext-minimal)
9633 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9634 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9635 ("itstool" ,itstool)
9636 ("pkg-config" ,pkg-config)
9637 ("vala" ,vala)))
9638 (propagated-inputs
9639 `(("dconf" ,dconf)))
9640 (inputs
9641 `(("glib" ,glib)
9642 ("gtk+" ,gtk+)
9643 ("librsvg" ,librsvg)))
9644 (synopsis "Mahjongg tile-matching game")
9645 (description "GNOME Mahjongg is a game based on the classic Chinese
9646 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9647 and a high score table.")
9648 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9649 (license license:gpl2+)))
9650
9651 (define-public gnome-themes-extra
9652 (package
9653 (name "gnome-themes-extra")
9654 (version "3.28")
9655 (source
9656 (origin
9657 (method url-fetch)
9658 (uri (string-append "mirror://gnome/sources/" name "/"
9659 (version-major+minor version) "/" name "-"
9660 version ".tar.xz"))
9661 (sha256
9662 (base32
9663 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9664 (build-system gnu-build-system)
9665 (arguments
9666 '(#:configure-flags
9667 ;; Don't create 'icon-theme.cache'.
9668 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9669 (true (string-append coreutils "/bin/true")))
9670 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9671 (native-inputs
9672 `(("glib:bin" ,glib "bin")
9673 ("intltool" ,intltool)
9674 ("pkg-config" ,pkg-config)))
9675 (inputs
9676 `(("glib" ,glib)
9677 ("gtk+" ,gtk+)
9678 ("gtk+-2" ,gtk+-2)
9679 ("librsvg" ,librsvg)
9680 ("libxml2" ,libxml2)))
9681 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9682 (synopsis "GNOME Extra Themes")
9683 (description "This package provides themes and related elements that don't
9684 really fit in other upstream packages. It offers legacy support for GTK+ 2
9685 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9686 index files needed for Adwaita to be used outside of GNOME.")
9687 (license license:lgpl2.1+)))
9688
9689 (define-public polari
9690 (package
9691 (name "polari")
9692 (version "3.32.2")
9693 (source (origin
9694 (method url-fetch)
9695 (uri (string-append "mirror://gnome/sources/polari/"
9696 (version-major+minor version)
9697 "/polari-" version ".tar.xz"))
9698 (sha256
9699 (base32
9700 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9701 (build-system meson-build-system)
9702 (arguments
9703 `(#:glib-or-gtk? #t
9704 #:phases
9705 (modify-phases %standard-phases
9706 (add-after 'unpack 'skip-gtk-update-icon-cache
9707 (lambda _
9708 (substitute* "meson/meson-postinstall.sh"
9709 (("gtk-update-icon-cache") (which "true")))
9710 #t))
9711 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9712 (lambda* (#:key outputs #:allow-other-keys)
9713 (let ((prog (string-append (assoc-ref outputs "out")
9714 "/bin/polari")))
9715 (wrap-program prog
9716 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9717 #t))))))
9718 (inputs
9719 `(("glib" ,glib)
9720 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9721 ("gspell" ,gspell)
9722 ("gtk+" ,gtk+)
9723 ("gjs" ,gjs)
9724 ("libsecret" ,libsecret)
9725 ("libsoup" ,libsoup)
9726 ("telepathy-glib" ,telepathy-glib)
9727 ("telepathy-logger" ,telepathy-logger)))
9728 (native-inputs
9729 `(("glib:bin" ,glib "bin")
9730 ("gobject-introspection" ,gobject-introspection)
9731 ("intltool" ,intltool)
9732 ("pkg-config" ,pkg-config)
9733 ("yelp-tools" ,yelp-tools)))
9734 (propagated-inputs
9735 `(("telepathy-idle" ,telepathy-idle)
9736 ("telepathy-mission-control" ,telepathy-mission-control)))
9737 (synopsis "Simple IRC Client")
9738 (description
9739 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9740 integrate seamlessly with the GNOME desktop.")
9741 (home-page "https://wiki.gnome.org/Apps/Polari")
9742 (license license:gpl2+)))
9743
9744 (define-public gnome-boxes
9745 (package
9746 (name "gnome-boxes")
9747 (version "3.35.91")
9748 (source
9749 (origin
9750 (method url-fetch)
9751 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9752 (version-major+minor version) "/"
9753 "gnome-boxes-" version ".tar.xz"))
9754 (sha256
9755 (base32
9756 "0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
9757 (build-system meson-build-system)
9758 (arguments
9759 '(#:glib-or-gtk? #t
9760 #:configure-flags (list "-Drdp=false"
9761 (string-append "-Dc_link_args=-Wl,-rpath="
9762 (assoc-ref %outputs "out")
9763 "/lib/gnome-boxes"))))
9764 (native-inputs
9765 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
9766 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9767 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9768 ("itstool" ,itstool)
9769 ("intltool" ,intltool)
9770 ("vala" ,vala)
9771 ("pkg-config" ,pkg-config)))
9772 (inputs
9773 `(("libarchive" ,libarchive)
9774 ("gtk" ,gtk+)
9775 ("gtk-vnc" ,gtk-vnc)
9776 ("libosinfo" ,libosinfo)
9777 ("libsecret" ,libsecret)
9778 ("libsoup" ,libsoup)
9779 ("libusb" ,libusb)
9780 ("libvirt" ,libvirt)
9781 ("libvirt-glib" ,libvirt-glib)
9782 ("libxml" ,libxml2)
9783 ("spice-gtk" ,spice-gtk)
9784 ("sparql-query" ,sparql-query)
9785 ("vte" ,vte)
9786 ("webkitgtk" ,webkitgtk)
9787 ("tracker" ,tracker)
9788 ("libgudev" ,libgudev)))
9789 (home-page "https://wiki.gnome.org/Apps/Boxes")
9790 (synopsis "View, access, and manage remote and virtual systems")
9791 (description "GNOME Boxes is a simple application to view, access, and
9792 manage remote and virtual systems.")
9793 (license (list
9794 ;; For data/icons/empty-boxes.png.
9795 license:cc-by2.0
9796 ;; For all others.
9797 license:lgpl2.0+))))
9798
9799 (define-public geary
9800 (package
9801 (name "geary")
9802 (version "3.34.1")
9803 (source (origin
9804 (method git-fetch)
9805 (uri (git-reference
9806 (url "https://gitlab.gnome.org/GNOME/geary")
9807 (commit version)))
9808 (file-name (git-file-name name version))
9809 (sha256
9810 (base32
9811 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
9812 (build-system meson-build-system)
9813 (arguments
9814 `(#:glib-or-gtk? #t
9815 #:phases (modify-phases %standard-phases
9816 (add-after 'unpack 'disable-failing-tests
9817 (lambda _
9818 (substitute* "test/meson.build"
9819 (("test\\('client-tests', geary_test_client_bin\\)")
9820 ""))
9821 #t))
9822 (add-after 'unpack 'disable-postinstall-script
9823 (lambda _
9824 (substitute* "meson.build"
9825 (("meson.add_install_script\\(\
9826 join_paths\\('build-aux', 'post_install.py'\\)\\)")
9827 ""))
9828 #t))
9829 (add-before 'check 'setup-xvfb
9830 (lambda _
9831 (system "Xvfb :1 &")
9832 (setenv "DISPLAY" ":1")
9833 #t)))))
9834 (inputs
9835 `(("enchant" ,enchant)
9836 ("folks" ,folks)
9837 ("gcr" ,gcr)
9838 ("glib" ,glib)
9839 ("gmime" ,gmime-2.6)
9840 ("gnome-online-accounts:lib"
9841 ,gnome-online-accounts "lib")
9842 ("gspell" ,gspell)
9843 ("gtk+" ,gtk+)
9844 ("iso-codes" ,iso-codes)
9845 ("json-glib" ,json-glib)
9846 ("libcanberra" ,libcanberra)
9847 ("libgee" ,libgee)
9848 ("libhandy" ,libhandy)
9849 ("libpeas" ,libpeas)
9850 ("libsecret" ,libsecret)
9851 ("libunwind" ,libunwind)
9852 ("sqlite" ,sqlite)
9853 ("webkitgtk" ,webkitgtk)
9854 ("ytnef" ,ytnef)))
9855 (native-inputs
9856 `(("appstream-glib" ,appstream-glib)
9857 ("cmake-minimal" ,cmake-minimal)
9858 ("desktop-file-utils" ,desktop-file-utils)
9859 ("gettext" ,gnu-gettext)
9860 ("glib:bin" ,glib "bin")
9861 ("gobject-introspection" ,gobject-introspection)
9862 ("itstool" ,itstool)
9863 ("libarchive" ,libarchive)
9864 ("libxml2" ,libxml2)
9865 ("pkg-config" ,pkg-config)
9866 ("vala" ,vala)
9867 ("xvfb" ,xorg-server-for-tests)))
9868 (synopsis "GNOME email application built around conversations")
9869 (description
9870 "Geary collects related messages together into conversations,
9871 making it easy to find and follow your discussions. Full-text and keyword
9872 search makes it easy to find the email you are looking for. Geary's
9873 full-featured composer lets you send rich, styled text with images, links, and
9874 lists, but also send lightweight, easy to read text messages. Geary
9875 automatically picks up your existing GNOME Online Accounts, and adding more is
9876 easy. Geary has a clean, fast, modern interface that works like you want it
9877 to.")
9878 (home-page "https://wiki.gnome.org/Apps/Geary")
9879 (license (list
9880 ;; geary
9881 license:lgpl2.1+
9882 ;; icons
9883 license:cc-by3.0
9884 license:cc-by-sa3.0
9885 license:public-domain
9886 ;; snowball
9887 license:bsd-2))))
9888
9889 (define-public parlatype
9890 ;; This is one commit away from 2.0, because the latter introduced
9891 ;; a regression in ASR.
9892 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
9893 (revision "0"))
9894 (package
9895 (name "parlatype")
9896 (version (git-version "2.0" revision commit))
9897 (source
9898 (origin
9899 (method git-fetch)
9900 (uri (git-reference
9901 (url "https://github.com/gkarsay/parlatype.git")
9902 (commit commit)))
9903 (file-name (git-file-name name version))
9904 (sha256
9905 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
9906 (build-system meson-build-system)
9907 (arguments
9908 `(#:glib-or-gtk? #t
9909 #:tests? #f ;require internet access
9910 #:phases
9911 (modify-phases %standard-phases
9912 (add-after 'install 'wrap-parlatype
9913 ;; Add gstreamer plugin provided in this package to system's
9914 ;; plugins.
9915 (lambda* (#:key outputs #:allow-other-keys)
9916 (let* ((out (assoc-ref outputs "out"))
9917 (gst-plugin-path (string-append
9918 out "/lib/gstreamer-1.0/"
9919 ":"
9920 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
9921 (wrap-program (string-append out "/bin/parlatype")
9922 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
9923 #t)))))
9924 (native-inputs
9925 `(("appstream-glib" ,appstream-glib)
9926 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
9927 ("gettext" ,gettext-minimal)
9928 ("glib" ,glib "bin") ;for glib-compile-resources
9929 ("pkg-config" ,pkg-config)
9930 ("yelp-tools" ,yelp-tools)))
9931 (inputs
9932 `(("gst-plugins-base" ,gst-plugins-base)
9933 ("gst-plugins-good" ,gst-plugins-good)
9934 ("gstreamer" ,gstreamer)
9935 ("gtk+" ,gtk+)
9936 ("pocketsphinx" ,pocketsphinx)
9937 ("pulseaudio" ,pulseaudio)
9938 ("sphinxbase" ,sphinxbase)))
9939 (home-page "http://gkarsay.github.io/parlatype/")
9940 (synopsis "GNOME audio player for transcription")
9941 (description "Parlatype is an audio player for the GNOME desktop
9942 environment. Its main purpose is the manual transcription of spoken
9943 audio files.")
9944 (license license:gpl3+))))