gnu: nautilus: Update to 3.34.2.
[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 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;;
54 ;;; This file is part of GNU Guix.
55 ;;;
56 ;;; GNU Guix is free software; you can redistribute it and/or modify it
57 ;;; under the terms of the GNU General Public License as published by
58 ;;; the Free Software Foundation; either version 3 of the License, or (at
59 ;;; your option) any later version.
60 ;;;
61 ;;; GNU Guix is distributed in the hope that it will be useful, but
62 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
63 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
64 ;;; GNU General Public License for more details.
65 ;;;
66 ;;; You should have received a copy of the GNU General Public License
67 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
68
69 (define-module (gnu packages gnome)
70 #:use-module (gnu packages)
71 #:use-module (gnu packages admin)
72 #:use-module (gnu packages aspell)
73 #:use-module (gnu packages autotools)
74 #:use-module (gnu packages avahi)
75 #:use-module (gnu packages backup)
76 #:use-module (gnu packages base)
77 #:use-module (gnu packages bash)
78 #:use-module (gnu packages bison)
79 #:use-module (gnu packages boost)
80 #:use-module (gnu packages build-tools)
81 #:use-module (gnu packages calendar)
82 #:use-module (gnu packages cdrom)
83 #:use-module (gnu packages check)
84 #:use-module (gnu packages cmake)
85 #:use-module (gnu packages compression)
86 #:use-module (gnu packages crates-io)
87 #:use-module (gnu packages cups)
88 #:use-module (gnu packages curl)
89 #:use-module (gnu packages cyrus-sasl)
90 #:use-module (gnu packages databases)
91 #:use-module (gnu packages dbm)
92 #:use-module (gnu packages djvu)
93 #:use-module (gnu packages dns)
94 #:use-module (gnu packages docbook)
95 #:use-module (gnu packages documentation)
96 #:use-module (gnu packages enchant)
97 #:use-module (gnu packages flex)
98 #:use-module (gnu packages fonts)
99 #:use-module (gnu packages file-systems)
100 #:use-module (gnu packages fontutils)
101 #:use-module (gnu packages freedesktop)
102 #:use-module (gnu packages game-development)
103 #:use-module (gnu packages gettext)
104 #:use-module (gnu packages ghostscript)
105 #:use-module (gnu packages gl)
106 #:use-module (gnu packages glib)
107 #:use-module (gnu packages gnupg)
108 #:use-module (gnu packages gnuzilla)
109 #:use-module (gnu packages geo)
110 #:use-module (gnu packages gperf)
111 #:use-module (gnu packages graphviz)
112 #:use-module (gnu packages gstreamer)
113 #:use-module (gnu packages gtk)
114 #:use-module (gnu packages guile)
115 #:use-module (gnu packages ibus)
116 #:use-module (gnu packages icu4c)
117 #:use-module (gnu packages image)
118 #:use-module (gnu packages imagemagick)
119 #:use-module (gnu packages inkscape)
120 #:use-module (gnu packages iso-codes)
121 #:use-module (gnu packages kerberos)
122 #:use-module (gnu packages libcanberra)
123 #:use-module (gnu packages libunistring)
124 #:use-module (gnu packages libunwind)
125 #:use-module (gnu packages libusb)
126 #:use-module (gnu packages linux)
127 #:use-module (gnu packages lirc)
128 #:use-module (gnu packages lua)
129 #:use-module (gnu packages mail)
130 #:use-module (gnu packages mp3)
131 #:use-module (gnu packages multiprecision)
132 #:use-module (gnu packages music)
133 #:use-module (gnu packages ncurses)
134 #:use-module (gnu packages nettle)
135 #:use-module (gnu packages networking)
136 #:use-module (gnu packages ninja)
137 #:use-module (gnu packages nss)
138 #:use-module (gnu packages openldap)
139 #:use-module (gnu packages password-utils)
140 #:use-module (gnu packages pcre)
141 #:use-module (gnu packages pdf)
142 #:use-module (gnu packages perl)
143 #:use-module (gnu packages photo)
144 #:use-module (gnu packages pkg-config)
145 #:use-module (gnu packages polkit)
146 #:use-module (gnu packages popt)
147 #:use-module (gnu packages pretty-print)
148 #:use-module (gnu packages pulseaudio)
149 #:use-module (gnu packages python)
150 #:use-module (gnu packages python-crypto)
151 #:use-module (gnu packages python-web)
152 #:use-module (gnu packages python-xyz)
153 #:use-module (gnu packages rdesktop)
154 #:use-module (gnu packages readline)
155 #:use-module (gnu packages ruby)
156 #:use-module (gnu packages rust)
157 #:use-module (gnu packages samba)
158 #:use-module (gnu packages scanner)
159 #:use-module (gnu packages selinux)
160 #:use-module (gnu packages slang)
161 #:use-module (gnu packages speech)
162 #:use-module (gnu packages spice)
163 #:use-module (gnu packages sqlite)
164 #:use-module (gnu packages ssh)
165 #:use-module (gnu packages tex)
166 #:use-module (gnu packages time)
167 #:use-module (gnu packages tls)
168 #:use-module (gnu packages version-control)
169 #:use-module (gnu packages video)
170 #:use-module (gnu packages virtualization)
171 #:use-module (gnu packages vpn)
172 #:use-module (gnu packages web)
173 #:use-module (gnu packages webkit)
174 #:use-module (gnu packages xdisorg)
175 #:use-module (gnu packages xiph)
176 #:use-module (gnu packages xml)
177 #:use-module (gnu packages xorg)
178 #:use-module (gnu artwork)
179 #:use-module (guix build-system cargo)
180 #:use-module (guix build-system cmake)
181 #:use-module (guix build-system glib-or-gtk)
182 #:use-module (guix build-system gnu)
183 #:use-module (guix build-system meson)
184 #:use-module (guix build-system python)
185 #:use-module (guix build-system trivial)
186 #:use-module (guix download)
187 #:use-module (guix git-download)
188 #:use-module ((guix licenses) #:prefix license:)
189 #:use-module (guix packages)
190 #:use-module (guix utils)
191 #:use-module (guix gexp)
192 #:use-module (guix monads)
193 #:use-module (guix store)
194 #:use-module (ice-9 match)
195 #:use-module (srfi srfi-1))
196
197 (define-public brasero
198 (package
199 (name "brasero")
200 (version "3.12.2")
201 (source (origin
202 (method url-fetch)
203 (uri (string-append "mirror://gnome/sources/brasero/"
204 (version-major+minor version) "/"
205 "brasero-" version ".tar.xz"))
206 (sha256
207 (base32
208 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
209 (build-system glib-or-gtk-build-system)
210 (arguments
211 `(#:configure-flags (list
212 (string-append "--with-girdir="
213 (assoc-ref %outputs "out")
214 "/share/gir-1.0")
215 (string-append "--with-typelibdir="
216 (assoc-ref %outputs "out")
217 "/lib/girepository-1.0"))
218 #:phases
219 (modify-phases %standard-phases
220 (add-before 'configure 'embed-growisofs
221 (lambda* (#:key inputs #:allow-other-keys)
222 (substitute* "plugins/growisofs/burn-growisofs.c"
223 (("\"growisofs") (string-append "\"" (which "growisofs"))))
224 #t)))))
225 (propagated-inputs
226 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
227 (native-inputs
228 `(("intltool" ,intltool)
229 ("itstool" ,itstool)
230 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
231 ("gobject-introspection" ,gobject-introspection)
232 ("pkg-config" ,pkg-config)))
233 (inputs
234 `(("dvd+rw-tools" ,dvd+rw-tools)
235 ("glib" ,glib)
236 ("gnome-doc-utils" ,gnome-doc-utils)
237 ("gstreamer" ,gstreamer)
238 ("gst-plugins-base" ,gst-plugins-base)
239 ("gtk+" ,gtk+)
240 ("libcanberra" ,libcanberra)
241 ("libice" ,libice)
242 ("libnotify" ,libnotify)
243 ("libsm" ,libsm)
244 ("libxml2" ,libxml2)
245 ("totem-pl-parser" ,totem-pl-parser)))
246 (home-page "https://wiki.gnome.org/Apps/Brasero")
247 (synopsis "CD/DVD burning tool for Gnome")
248 (description "Brasero is an application to burn CD/DVD for the Gnome
249 Desktop. It is designed to be as simple as possible and has some unique
250 features to enable users to create their discs easily and quickly.")
251 (license license:gpl2+)))
252
253 (define-public mm-common
254 (package
255 (name "mm-common")
256 (version "1.0.0")
257 (source (origin
258 (method url-fetch)
259 (uri (string-append "mirror://gnome/sources/" name "/"
260 (version-major+minor version) "/"
261 name "-" version ".tar.xz"))
262 (sha256
263 (base32
264 "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr"))))
265 (build-system meson-build-system)
266 (arguments
267 `(#:phases
268 (modify-phases %standard-phases
269 (add-after 'unpack 'patch
270 (lambda* (#:key inputs #:allow-other-keys)
271 (substitute* "util/mm-common-prepare.in"
272 (("ln") (string-append (assoc-ref inputs "coreutils")
273 "/bin/ln"))
274 (("cp") (string-append (assoc-ref inputs "coreutils")
275 "/bin/cp"))
276 (("sed") (string-append (assoc-ref inputs "sed")
277 "/bin/sed"))
278 (("cat") (string-append (assoc-ref inputs "coreutils")
279 "/bin/cat")))
280 #t)))))
281 (native-inputs
282 `(("coreutils" ,coreutils)
283 ("gettext" ,gettext-minimal)
284 ("pkg-config" ,pkg-config)
285 ("sed" ,sed)))
286 (inputs
287 `(("python" ,python)))
288 (synopsis "Module of GNOME C++ bindings")
289 (description "The mm-common module provides the build infrastructure
290 and utilities shared among the GNOME C++ binding libraries. Release
291 archives of mm-common include the Doxygen tag file for the GNU C++
292 Library reference documentation.")
293 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
294 (license license:gpl2+)))
295
296 (define-public phodav
297 (package
298 (name "phodav")
299 (version "2.4")
300 (source (origin
301 (method url-fetch)
302 (uri (string-append "mirror://gnome/sources/" name "/"
303 (version-major+minor version) "/"
304 name "-" version ".tar.xz"))
305 (sha256
306 (base32
307 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
308 (build-system meson-build-system)
309 (native-inputs
310 `(("gettext" ,gettext-minimal)
311 ("glib:bin" ,glib "bin")
312 ("gtk-doc" ,gtk-doc)
313 ("pkg-config" ,pkg-config)))
314 (inputs
315 `(("avahi" ,avahi)
316 ("libgudev" ,libgudev)
317 ("libsoup" ,libsoup)))
318 (synopsis "WebDav server implementation using libsoup")
319 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
320 but it is generic enough to be reused in other projects,
321 in particular in the GNOME desktop.")
322 (home-page "https://wiki.gnome.org/phodav")
323 (license license:lgpl2.1+)))
324
325 (define-public gnome-color-manager
326 (package
327 (name "gnome-color-manager")
328 (version "3.32.0")
329 (source (origin
330 (method url-fetch)
331 (uri (string-append "mirror://gnome/sources/" name "/"
332 (version-major+minor version) "/"
333 name "-" version ".tar.xz"))
334 (sha256
335 (base32
336 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
337 (build-system meson-build-system)
338 (arguments
339 `(#:glib-or-gtk? #t
340 #:phases
341 (modify-phases %standard-phases
342 (add-before
343 'check 'pre-check
344 (lambda _
345 ;; Tests require a running X server.
346 (system "Xvfb :1 &")
347 (setenv "DISPLAY" ":1")
348 #t)))))
349 (native-inputs
350 `(("desktop-file-utils" ,desktop-file-utils)
351 ("gettext" ,gettext-minimal)
352 ("glib:bin" ,glib "bin")
353 ("gtk+:bin" ,gtk+ "bin")
354 ("itstool" ,itstool)
355 ("pkg-config" ,pkg-config)
356 ("xorg-server" ,xorg-server-for-tests)))
357 (inputs
358 `(("adwaita-icon-theme" ,adwaita-icon-theme)
359 ("appstream-glib" ,appstream-glib)
360 ("colord-gtk" ,colord-gtk)
361 ("exiv2" ,exiv2)
362 ("gnome-desktop" ,gnome-desktop)
363 ("libcanberra" ,libcanberra)
364 ("libexif" ,libexif)
365 ("libtiff" ,libtiff)
366 ("libxrandr" ,libxrandr)
367 ("libxtst" ,libxtst)
368 ("libxxf86vm" ,libxxf86vm)
369 ("vte" ,vte)
370 ("xorgproto" ,xorgproto)))
371 (synopsis "Color profile manager for the GNOME desktop")
372 (description "GNOME Color Manager is a session framework that makes
373 it easy to manage, install and generate color profiles
374 in the GNOME desktop.")
375 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
376 (license license:gpl2+)))
377
378 (define-public gnome-online-miners
379 (package
380 (name "gnome-online-miners")
381 (version "3.34.0")
382 (source (origin
383 (method url-fetch)
384 (uri (string-append "mirror://gnome/sources/" name "/"
385 (version-major+minor version) "/"
386 name "-" version ".tar.xz"))
387 (sha256
388 (base32
389 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
390 (build-system glib-or-gtk-build-system)
391 (native-inputs
392 `(("gettext" ,gettext-minimal)
393 ("glib:bin" ,glib "bin")
394 ("gobject-introspection" ,gobject-introspection)
395 ("gtk+:bin" ,gtk+ "bin")
396 ("pkg-config" ,pkg-config)))
397 (inputs
398 `(("gnome-online-accounts" ,gnome-online-accounts)
399 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
400 ("grilo" ,grilo)
401 ("libgdata" ,libgdata)
402 ("libgfbgraph" ,gfbgraph)
403 ("libzapojit" ,libzapojit)
404 ("rest" ,rest)
405 ("tracker" ,tracker)))
406 (synopsis "Web Crawlers for GNOME")
407 (description "GNOME Online Miners provides a set of crawlers that
408 go through your online content and index them locally in Tracker.
409 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
410 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
411 (license license:gpl2+)))
412
413 (define-public gssdp
414 (package
415 (name "gssdp")
416 (version "1.2.2")
417 (source (origin
418 (method url-fetch)
419 (uri (string-append "mirror://gnome/sources/" name "/"
420 (version-major+minor version) "/"
421 name "-" version ".tar.xz"))
422 (sha256
423 (base32
424 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
425 (build-system meson-build-system)
426 (native-inputs
427 `(("gettext" ,gettext-minimal)
428 ("glib:bin" ,glib "bin")
429 ("gobject-introspection" ,gobject-introspection)
430 ("gtk-doc" ,gtk-doc)
431 ("pkg-config" ,pkg-config)
432 ("vala" ,vala)))
433 (inputs
434 `(("gtk+" ,gtk+)
435 ("libsoup" ,libsoup)))
436 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
437 Protocol} for GNOME")
438 (description "This package provides a library to handle resource discovery
439 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
440 a debugging tool, @command{gssdp-device-sniffer}.")
441 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
442 (license license:lgpl2.0+)))
443
444 (define-public gupnp
445 (package
446 (name "gupnp")
447 (version "1.2.2")
448 (source (origin
449 (method url-fetch)
450 (uri (string-append "mirror://gnome/sources/" name "/"
451 (version-major+minor version) "/"
452 name "-" version ".tar.xz"))
453 (sha256
454 (base32
455 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
456 (build-system meson-build-system)
457 (native-inputs
458 `(("gettext" ,gettext-minimal)
459 ("glib:bin" ,glib "bin")
460 ("gobject-introspection" ,gobject-introspection)
461 ("gtk-doc" ,gtk-doc)
462 ("pkg-config" ,pkg-config)
463 ("vala" ,vala)))
464 (inputs
465 `(("gssdp" ,gssdp)
466 ("gtk+" ,gtk+)
467 ("libsoup" ,libsoup)))
468 (synopsis "PnP API for GNOME")
469 (description "This package provides GUPnP, an object-oriented framework
470 for creating UPnP devices and control points, written in C using
471 @code{GObject} and @code{libsoup}.")
472 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
473 (license license:lgpl2.0+)))
474
475 (define-public gupnp-dlna
476 (package
477 (name "gupnp-dlna")
478 (version "0.10.5")
479 (source (origin
480 (method url-fetch)
481 (uri (string-append "mirror://gnome/sources/" name "/"
482 (version-major+minor version) "/"
483 name "-" version ".tar.xz"))
484 (sha256
485 (base32
486 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
487 (build-system gnu-build-system)
488 (native-inputs
489 `(("gettext" ,gettext-minimal)
490 ("glib:bin" ,glib "bin")
491 ("gobject-introspection" ,gobject-introspection)
492 ("gtk-doc" ,gtk-doc)
493 ("libxml" ,libxml2)
494 ("pkg-config" ,pkg-config)
495 ("vala" ,vala)))
496 (inputs
497 `(("gstreamer" ,gstreamer)
498 ("gupnp" ,gupnp)))
499 (propagated-inputs
500 `(("gst-plugins-base" ,gst-plugins-base)
501 ("gst-plugins-good" ,gst-plugins-good)))
502 (synopsis "GUPnP DLNA for GNOME")
503 (description "This package provides a small utility library to
504 support DLNA-related tasks such as media profile guessing, transcoding to a
505 given profile, etc. DLNA is a subset of UPnP A/V.")
506 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
507 (license license:lgpl2.0+)))
508
509 (define-public gupnp-av
510 (package
511 (name "gupnp-av")
512 (version "0.12.11")
513 (source (origin
514 (method url-fetch)
515 (uri (string-append "mirror://gnome/sources/" name "/"
516 (version-major+minor version) "/"
517 name "-" version ".tar.xz"))
518 (sha256
519 (base32
520 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
521 (build-system gnu-build-system)
522 (native-inputs
523 `(("gettext" ,gettext-minimal)
524 ("glib:bin" ,glib "bin")
525 ("gobject-introspection" ,gobject-introspection)
526 ("gtk-doc" ,gtk-doc)
527 ("libxml" ,libxml2)
528 ("pkg-config" ,pkg-config)))
529 (inputs
530 `(("gtk+" ,gtk+)
531 ("gupnp" ,gupnp)))
532 (synopsis "GUPnP A/V for GNOME")
533 (description "This package provides a small library for handling
534 and implementation of UPnP A/V profiles.")
535 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
536 (license license:lgpl2.0+)))
537
538 (define-public libmediaart
539 (package
540 (name "libmediaart")
541 (version "1.9.4")
542 (source (origin
543 (method url-fetch)
544 (uri (string-append "mirror://gnome/sources/" name "/"
545 (version-major+minor version) "/"
546 name "-" version ".tar.xz"))
547 (sha256
548 (base32
549 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
550 (build-system gnu-build-system)
551 (native-inputs
552 `(("glib:bin" ,glib "bin")
553 ("pkg-config" ,pkg-config)))
554 (inputs
555 `(("gdk-pixbuf" ,gdk-pixbuf)
556 ("gettext" ,gettext-minimal)
557 ("gobject-introspection" ,gobject-introspection)
558 ("gtk+:doc", gtk+ "doc")
559 ("vala" ,vala)))
560 (synopsis "Media art library for the GNOME desktop")
561 (description
562 "The libmediaart library is the foundation for media art caching,
563 extraction, and lookup for applications on the desktop.")
564 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
565 (license license:lgpl2.1+)))
566
567 (define-public gnome-initial-setup
568 (package
569 (name "gnome-initial-setup")
570 (version "3.32.1")
571 (source (origin
572 (method url-fetch)
573 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
574 (version-major+minor version)
575 "/gnome-initial-setup-" version ".tar.xz"))
576 (sha256
577 (base32
578 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
579 (build-system meson-build-system)
580 (arguments
581 '(#:configure-flags '(;; Enable camera support for user selfie.
582 "-Dcheese=auto"
583 "-Dsystemd=false")
584 #:phases (modify-phases %standard-phases
585 (add-after 'unpack 'set-gkbd-file-name
586 (lambda* (#:key inputs #:allow-other-keys)
587 ;; Allow the "Preview" button in the keyboard layout
588 ;; selection dialog to display the layout.
589 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
590 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
591 (("\"gkbd-keyboard-display")
592 (string-append "\"" libgnomekbd
593 "/bin/gkbd-keyboard-display")))
594 #t))))))
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 (inputs
602 `(("accountsservice" ,accountsservice)
603 ;("adwaita-icon-theme" ,adwaita-icon-theme)
604 ("gdm" ,gdm)
605 ("geoclue" ,geoclue)
606 ("gnome-desktop" ,gnome-desktop)
607 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
608 ("gnome-online-accounts" ,gnome-online-accounts)
609 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
610 ("gstreamer" ,gstreamer)
611 ("ibus" ,ibus)
612 ("json-glib" ,json-glib)
613 ("krb5" ,mit-krb5)
614 ("libgweather" ,libgweather)
615 ("libsecret" ,libsecret)
616 ("network-manager" ,network-manager)
617 ("network-manager-applet" ,network-manager-applet)
618 ("packagekit" ,packagekit)
619 ("polkit" ,polkit)
620 ("pwquality" ,libpwquality)
621 ("rest" ,rest)
622 ("upower" ,upower)
623 ("webkitgtk" ,webkitgtk)
624 ("libgnomekbd" ,libgnomekbd)))
625 (synopsis "Initial setup wizard for GNOME desktop")
626 (description "This package provides a set-up wizard when a
627 user logs into GNOME for the first time. It typically provides a
628 tour of all gnome components and allows the user to set them up.")
629 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
630 (license license:gpl2)))
631
632 (define-public gnome-user-share
633 (package
634 (name "gnome-user-share")
635 (version "3.33.1")
636 (source (origin
637 (method url-fetch)
638 (uri (string-append "mirror://gnome/sources/" name "/"
639 (version-major+minor version) "/"
640 name "-" version ".tar.xz"))
641 (sha256
642 (base32
643 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
644 (build-system meson-build-system)
645 (arguments
646 `(#:glib-or-gtk? #t
647 #:configure-flags
648 `("-Dsystemd=false"
649 ;; Enable nautilus extension for file sharing.
650 "-Dnautilus_extension=true")))
651 (native-inputs
652 `(("gettext" ,gettext-minimal)
653 ("glib:bin" ,glib "bin")
654 ("gobject-introspection" ,gobject-introspection)
655 ("gtk+:bin" ,gtk+ "bin")
656 ("pkg-config" ,pkg-config)
657 ("yelp-tools" ,yelp-tools)))
658 (inputs
659 `(("glib" ,glib)
660 ("gnome-bluetooth" ,gnome-bluetooth)
661 ("gtk+" ,gtk+)
662 ("libcanberra" ,libcanberra)
663 ("libnotify" ,libnotify)
664 ("nautilus" ,nautilus))) ; For nautilus extension.
665 (synopsis "File sharing for GNOME desktop")
666 (description "GNOME User Share is a small package that binds together
667 various free software projects to bring easy to use user-level file
668 sharing to the masses.")
669 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
670 (license license:gpl2+)))
671
672 (define-public sushi
673 (package
674 (name "sushi")
675 (version "3.32.1")
676 (source (origin
677 (method url-fetch)
678 (uri (string-append "mirror://gnome/sources/" name "/"
679 (version-major+minor version) "/"
680 name "-" version ".tar.xz"))
681 (sha256
682 (base32
683 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
684 (build-system meson-build-system)
685 (arguments
686 `(#:glib-or-gtk? #t
687 #:phases
688 (modify-phases %standard-phases
689 (add-after 'glib-or-gtk-wrap 'wrap-typelib
690 (lambda* (#:key outputs #:allow-other-keys)
691 (let ((prog (string-append (assoc-ref outputs "out")
692 "/bin/sushi")))
693 ;; Put existing typelibs before sushi's deps, so as to correctly
694 ;; infer gdk-pixbuf
695 (wrap-program prog
696 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
697 #t))))))
698 (native-inputs
699 `(("glib:bin" ,glib "bin")
700 ("gettext" ,gettext-minimal)
701 ("gobject-introspection" ,gobject-introspection)
702 ("pkg-config" ,pkg-config)))
703 (inputs
704 `(("clutter" ,clutter)
705 ("clutter-gst" ,clutter-gst)
706 ("clutter-gtk" ,clutter-gtk)
707 ("evince" ,evince) ; For file previewing.
708 ("freetype" ,freetype)
709 ("gdk-pixbuf" ,gdk-pixbuf)
710 ("gjs" ,gjs)
711 ("gst-plugins-base" ,gst-plugins-base)
712 ("gstreamer" ,gstreamer)
713 ("gtksourceview" ,gtksourceview-3)
714 ("harfbuzz" ,harfbuzz)
715 ("libepoxy" ,libepoxy)
716 ("libmusicbrainz" ,libmusicbrainz)
717 ("libxml2" ,libxml2)
718 ("neon" ,neon)
719 ("webkitgtk" ,webkitgtk)))
720 (synopsis "File previewer for the GNOME desktop")
721 (description "Sushi is a DBus-activated service that allows applications to
722 preview files on the GNOME desktop.")
723 (home-page "https://gitlab.gnome.org/GNOME/sushi")
724 (license license:gpl2+)))
725
726 (define-public rygel
727 (package
728 (name "rygel")
729 (version "0.38.3")
730 (source (origin
731 (method url-fetch)
732 (uri (string-append "mirror://gnome/sources/" name "/"
733 (version-major+minor version) "/"
734 name "-" version ".tar.xz"))
735 (sha256
736 (base32
737 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
738 (build-system gnu-build-system)
739 (native-inputs
740 `(("gettext" ,gettext-minimal)
741 ("gobject-introspection" ,gobject-introspection)
742 ("gtk-doc" ,gtk-doc)
743 ("pkg-config" ,pkg-config)
744 ("vala" ,vala)))
745 (inputs
746 `(("gdk-pixbuf" ,gdk-pixbuf)
747 ("gssdp" ,gssdp)
748 ("gstreamer" ,gstreamer)
749 ("gst-plugins-base" ,gst-plugins-base)
750 ("gtk+" ,gtk+)
751 ("gupnp" ,gupnp)
752 ("gupnp-av" ,gupnp-av)
753 ("gupnp-dlna" ,gupnp-dlna)
754 ("libgee" ,libgee)
755 ("libmediaart" ,libmediaart)
756 ("libsoup" ,libsoup)
757 ("libxslt" ,libxslt)
758 ("libunistring" ,libunistring)
759 ("tracker" ,tracker)))
760 (synopsis "Share audio, video, and pictures with other devices")
761 (description
762 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
763 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
764 pictures, and to control a media player on your home network.
765
766 Rygel achieves interoperability with other devices by trying to conform to the
767 strict requirements of DLNA and by converting media on-the-fly to formats that
768 client devices can handle.")
769 (home-page "https://wiki.gnome.org/Projects/Rygel")
770 (license (list
771 ;; For logo (data/icons/*).
772 license:cc-by-sa3.0
773 ;; For all others.
774 license:lgpl2.1+))))
775
776 (define-public libnma
777 (package
778 (name "libnma")
779 (version "1.8.26")
780 (source (origin
781 (method url-fetch)
782 (uri (string-append "mirror://gnome/sources/" name "/"
783 (version-major+minor version) "/"
784 name "-" version ".tar.xz"))
785 (sha256
786 (base32
787 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
788 (build-system meson-build-system)
789 (arguments
790 `(#:glib-or-gtk? #t))
791 (native-inputs
792 `(("gettext" ,gettext-minimal)
793 ("glib:bin" ,glib "bin")
794 ("gtk-doc" ,gtk-doc)
795 ("gobject-introspection" ,gobject-introspection)
796 ("pkg-config" ,pkg-config)))
797 (inputs
798 `(("adwaita-icon-theme" ,adwaita-icon-theme)
799 ("gcr" ,gcr)
800 ("gtk+" ,gtk+)
801 ("iso-codes" ,iso-codes)
802 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
803 ("network-manager" ,network-manager)))
804 (synopsis "Network Manager's applet library")
805 (description "Libnma is an applet library for Network Manager. It was
806 initially part of network-manager-applet and has now become a separate
807 project.")
808 (home-page "https://gitlab.gnome.org/GNOME/libnma")
809
810 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
811 ;; "LGPL-2.1+".
812 (license license:gpl2+)))
813
814 (define-public gnome-menus
815 (package
816 (name "gnome-menus")
817 (version "3.32.0")
818 (source (origin
819 (method url-fetch)
820 (uri (string-append "mirror://gnome/sources/gnome-menus/"
821 (version-major+minor version) "/"
822 name "-" version ".tar.xz"))
823 (sha256
824 (base32
825 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
826 (build-system gnu-build-system)
827 (native-inputs
828 `(("gettext" ,gettext-minimal)
829 ("glib" ,glib)
830 ("pkg-config" ,pkg-config)))
831 (synopsis "Menu support for GNOME desktop")
832 (description "GNOME Menus contains the libgnome-menu library, the layout
833 configuration files for the GNOME menu, as well as a simple menu editor.")
834 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
835 (license license:lgpl2.0+)))
836
837 (define-public deja-dup
838 (package
839 (name "deja-dup")
840 (version "34.3")
841 (source (origin
842 (method url-fetch)
843 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
844 (sha256
845 (base32
846 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
847 (patches
848 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
849 (build-system glib-or-gtk-build-system)
850 (arguments
851 `(#:modules ((guix build gnu-build-system)
852 ((guix build cmake-build-system) #:prefix cmake:)
853 (guix build glib-or-gtk-build-system)
854 (guix build utils))
855 #:imported-modules (,@%glib-or-gtk-build-system-modules
856 (guix build cmake-build-system))
857 #:test-target "test"
858 #:configure-flags (list (string-append
859 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
860 (string-append
861 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
862 #:phases
863 (modify-phases %standard-phases
864 (add-after 'unpack 'patch-lockfile-deletion
865 (lambda rest
866 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
867 (("/bin/rm")
868 (which "rm")))))
869 (replace 'configure
870 (assoc-ref cmake:%standard-phases 'configure))
871 (delete 'check) ;; Fails due to issues with DBus
872 (add-after 'install 'wrap-deja-dup
873 (lambda* (#:key inputs outputs #:allow-other-keys)
874 (let ((python (assoc-ref inputs "python"))
875 (python-path (getenv "PYTHONPATH"))
876 (duplicity (assoc-ref inputs "duplicity"))
877 (out (assoc-ref outputs "out")))
878 (for-each
879 (lambda (program)
880 (wrap-program program
881 `("PATH" ":" prefix (,(string-append python "/bin")
882 ,(string-append duplicity "/bin"))))
883 (wrap-program program
884 `("PYTHONPATH" ":" prefix (,python-path))))
885
886 (find-files (string-append out "/bin")))
887 #t))))))
888 (inputs
889 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
890 ("gobject-introspection" ,gobject-introspection)
891 ("duplicity" ,duplicity)
892 ("python" ,python-2)
893 ("python-pygobject" ,python2-pygobject)
894 ("gtk+" ,gtk+)
895 ("libnotify" ,libnotify)
896 ("libpeas" ,libpeas)
897 ("libsecret" ,libsecret)
898 ("packagekit" ,packagekit)))
899 (native-inputs
900 `(("pkg-config" ,pkg-config)
901 ("vala" ,vala)
902 ("gettext" ,gettext-minimal)
903 ("itstool" ,itstool)
904 ("intltool" ,intltool)
905 ("cmake" ,cmake-minimal)))
906 (home-page "https://launchpad.net/deja-dup")
907 (synopsis "Simple backup tool, for regular encrypted backups")
908 (description
909 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
910 uses duplicity as the backend, which supports incremental backups and storage
911 either on a local, or remote machine via a number of methods.")
912 (license license:gpl3+)))
913
914 (define-public gnome-user-docs
915 (package
916 (name "gnome-user-docs")
917 (version "3.32.3")
918 (source
919 (origin
920 (method url-fetch)
921 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
922 (version-major+minor version)
923 "/gnome-user-docs-" version ".tar.xz"))
924 (sha256
925 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
926 (build-system gnu-build-system)
927 (native-inputs
928 `(("gettext" ,gettext-minimal)
929 ("itstool" ,itstool)
930 ("pkg-config" ,pkg-config)
931 ("xmllint" ,libxml2)))
932 (synopsis "User documentation for the GNOME desktop")
933 (description
934 "The GNOME User Documentation explains how to use the GNOME desktop and its
935 components. It covers usage and setup of the core GNOME programs by end-users
936 and system administrators.")
937 (home-page "https://live.gnome.org/DocumentationProject")
938 (license license:cc-by3.0)))
939
940 (define-public gnome-getting-started-docs
941 (package
942 (name "gnome-getting-started-docs")
943 (version "3.32.2")
944 (source
945 (origin
946 (method url-fetch)
947 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
948 (version-major+minor version)
949 "/gnome-getting-started-docs-" version ".tar.xz"))
950 (sha256
951 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
952 (build-system gnu-build-system)
953 (native-inputs
954 `(("gettext" ,gettext-minimal)
955 ("itstool" ,itstool)
956 ("pkg-config" ,pkg-config)
957 ("xmllint" ,libxml2)))
958 (synopsis "Help to get new users started with the GNOME desktop")
959 (description
960 "The GNOME Getting Started Documentation contains GNOME's intuitive
961 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
962
963 It is normally used together with @command{gnome-initial-setup}, but is also
964 useful as a tutorial and users' guide for new or less experienced users.")
965 (home-page "https://live.gnome.org/DocumentationProject")
966 (license license:cc-by-sa3.0)))
967
968 (define-public dia
969 ;; This version from GNOME's repository includes fixes for compiling with
970 ;; recent versions of the build tools. The latest activity on the
971 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
972 ;; fixes in 2016.
973 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
974 (package
975 (name "dia")
976 (version (git-version "0.97.3" "1" commit))
977 (source (origin
978 (method git-fetch)
979 (uri (git-reference
980 (url "https://gitlab.gnome.org/GNOME/dia.git/")
981 (commit commit)))
982 (file-name (git-file-name name version))
983 (sha256
984 (base32
985 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
986 (build-system gnu-build-system)
987 (inputs
988 `(("freetype" ,freetype)
989 ("gdk-pixbuf" ,gdk-pixbuf)
990 ("gtk+" ,gtk+-2)
991 ("libart-lgpl" ,libart-lgpl)
992 ("libxml2" ,libxml2)
993 ("pango" ,pango)))
994 (native-inputs
995 `(("autoconf" ,autoconf)
996 ("automake" ,automake)
997 ("intltool" ,intltool)
998 ("glib" ,glib "bin")
999 ("libtool" ,libtool)
1000 ("perl" ,perl)
1001 ("pkg-config" ,pkg-config)
1002 ("python-wrapper" ,python-wrapper)))
1003 (home-page "https://wiki.gnome.org/Apps/Dia")
1004 (synopsis "Diagram creation for GNOME")
1005 (description "Dia can be used to draw different types of diagrams, and
1006 includes support for UML static structure diagrams (class diagrams), entity
1007 relationship modeling, and network diagrams. The program supports various file
1008 formats like PNG, SVG, PDF and EPS.")
1009 (license license:gpl2+))))
1010
1011 ;; This is the unstable release, but it is required for the current stable
1012 ;; release of gvfs (1.38.1).
1013 (define-public libgdata
1014 (package
1015 (name "libgdata")
1016 (version "0.17.9")
1017 (source (origin
1018 (method url-fetch)
1019 (uri (string-append "mirror://gnome/sources/" name "/"
1020 (version-major+minor version) "/"
1021 name "-" version ".tar.xz"))
1022 (sha256
1023 (base32
1024 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1025 (build-system gnu-build-system)
1026 (arguments
1027 '(#:phases
1028 (modify-phases %standard-phases
1029 (add-before 'check 'disable-failing-tests
1030 (lambda _
1031 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1032 ;; They have been removed in libgdata 0.17.6, so just do the same.
1033 (substitute* "gdata/tests/Makefile"
1034 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1035 #t)))))
1036 (native-inputs
1037 `(("glib:bin" ,glib "bin")
1038 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1039 ("intltool" ,intltool)
1040 ("pkg-config" ,pkg-config)
1041 ("uhttpmock" ,uhttpmock)))
1042 (inputs
1043 `(("cyrus-sasl" ,cyrus-sasl)
1044 ("glib-networking" ,glib-networking)))
1045 (propagated-inputs
1046 `(("gcr" ,gcr)
1047 ("glib" ,glib)
1048 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1049 ("json-glib" ,json-glib)
1050 ("liboauth" ,liboauth)
1051 ("libsoup" ,libsoup)
1052 ("libxml2" ,libxml2)))
1053 (home-page "https://wiki.gnome.org/Projects/libgdata")
1054 (synopsis "Library for accessing online service APIs")
1055 (description
1056 "libgdata is a GLib-based library for accessing online service APIs using
1057 the GData protocol — most notably, Google's services. It provides APIs to
1058 access the common Google services, and has full asynchronous support.")
1059 (license license:lgpl2.1+)))
1060
1061 (define-public libgxps
1062 (package
1063 (name "libgxps")
1064 (version "0.3.1")
1065 (source (origin
1066 (method url-fetch)
1067 (uri (string-append "mirror://gnome/sources/" name "/"
1068 (version-major+minor version) "/"
1069 name "-" version ".tar.xz"))
1070 (sha256
1071 (base32
1072 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1073 (build-system meson-build-system)
1074 (native-inputs
1075 `(("gobject-introspection" ,gobject-introspection)
1076 ("pkg-config" ,pkg-config)))
1077 (inputs
1078 `(("gtk+" ,gtk+)
1079 ("libjpeg" ,libjpeg-turbo)
1080 ("lcms" ,lcms)
1081 ("libtiff" ,libtiff)))
1082 (propagated-inputs
1083 ;; In Requires of libgxps.pc.
1084 `(("cairo" ,cairo)
1085 ("glib" ,glib)
1086 ("libarchive" ,libarchive)))
1087 (home-page "https://wiki.gnome.org/Projects/libgxps")
1088 (synopsis "GObject-based library for handling and rendering XPS documents")
1089 (description
1090 "libgxps is a GObject-based library for handling and rendering XPS
1091 documents. This package also contains binaries that can convert XPS documents
1092 to other formats.")
1093 (license license:lgpl2.1+)))
1094
1095 (define-public gnome-characters
1096 (package
1097 (name "gnome-characters")
1098 (version "3.30.0")
1099 (source
1100 (origin
1101 (method url-fetch)
1102 (uri (string-append "mirror://gnome/sources/"
1103 "gnome-characters/" (version-major+minor version)
1104 "/gnome-characters-" version ".tar.xz"))
1105 (sha256
1106 (base32
1107 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1108 (build-system meson-build-system)
1109 (arguments
1110 `(#:glib-or-gtk? #t
1111 #:phases (modify-phases %standard-phases
1112 (add-after 'install 'wrap
1113 (lambda* (#:key outputs #:allow-other-keys)
1114 ;; GNOME Characters needs Typelib files from GTK and
1115 ;; gnome-desktop.
1116 (wrap-program (string-append (assoc-ref outputs "out")
1117 "/bin/gnome-characters")
1118 `("GI_TYPELIB_PATH" ":" prefix
1119 (,(getenv "GI_TYPELIB_PATH"))))
1120 #t)))))
1121 (native-inputs
1122 `(("gettext" ,gettext-minimal)
1123 ("glib:bin" ,glib "bin")
1124 ("gtk+:bin" ,gtk+ "bin")
1125 ("pkg-config" ,pkg-config)
1126 ("python" ,python-minimal)))
1127 (inputs
1128 `(("gjs" ,gjs)
1129 ("gtk+" ,gtk+)
1130 ("libunistring" ,libunistring)
1131 ("gnome-desktop" ,gnome-desktop)))
1132 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1133 (synopsis "Find and insert unusual characters")
1134 (description "Characters is a simple utility application to find
1135 and insert unusual characters. It allows you to quickly find the
1136 character you are looking for by searching for keywords.")
1137 (license license:bsd-3)))
1138
1139 (define-public gnome-common
1140 (package
1141 (name "gnome-common")
1142 (version "3.18.0")
1143 (source
1144 (origin
1145 (method url-fetch)
1146 (uri (string-append "mirror://gnome/sources/" name "/"
1147 (version-major+minor version) "/"
1148 name "-" version ".tar.xz"))
1149 (sha256
1150 (base32
1151 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1152 (build-system gnu-build-system)
1153 (home-page "https://www.gnome.org/")
1154 (synopsis "Bootstrap GNOME modules built from Git")
1155 (description "gnome-common contains various files needed to bootstrap
1156 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1157 can be used to configure a source directory checked out from Git and some
1158 commonly used macros.")
1159 (license license:gpl2+)))
1160
1161 (define-public gnome-contacts
1162 (package
1163 (name "gnome-contacts")
1164 (version "3.34")
1165 (source (origin
1166 (method url-fetch)
1167 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1168 (version-major+minor version) "/"
1169 name "-" version ".tar.xz"))
1170 (sha256
1171 (base32
1172 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1173 (build-system meson-build-system)
1174 (arguments
1175 `(#:configure-flags '("-Dcheese=false")
1176 #:phases
1177 (modify-phases %standard-phases
1178 (add-after 'unpack 'generate-vapis
1179 (lambda* (#:key inputs #:allow-other-keys)
1180 ;; To generate goa's missing .vapi file
1181 (define goa
1182 (assoc-ref inputs "gnome-online-accounts:lib"))
1183
1184 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1185 "--library=goa-1.0"
1186 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1187 #t))
1188 (add-after 'unpack 'skip-gtk-update-icon-cache
1189 ;; Don't create 'icon-theme.cache'.
1190 (lambda _
1191 (substitute* "build-aux/meson_post_install.py"
1192 (("gtk-update-icon-cache") "true"))
1193 #t)))))
1194 (native-inputs
1195 `(("glib:bin" ,glib "bin")
1196 ("pkg-config" ,pkg-config)))
1197 (inputs
1198 `(("docbook-xml" ,docbook-xml)
1199 ("dockbook-xsl" ,docbook-xsl)
1200 ("evolution-data-server" ,evolution-data-server)
1201 ("gettext" ,gettext-minimal)
1202 ("gnome-desktop" ,gnome-desktop)
1203 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1204 ("gobject-introspection" ,gobject-introspection)
1205 ("gst-plugins-base" ,gst-plugins-base)
1206 ("gtk+" ,gtk+)
1207 ("libgee" ,libgee)
1208 ("libxslt" ,libxslt)
1209 ("telepathy-glib" ,telepathy-glib)
1210 ("vala" ,vala)))
1211 (propagated-inputs
1212 `(("folks", folks)
1213 ("telepathy-mission-control" ,telepathy-mission-control)))
1214 (synopsis "GNOME's integrated address book")
1215 (description
1216 "GNOME Contacts organizes your contact information from online and
1217 offline sources, providing a centralized place for managing your contacts.")
1218 (home-page "https://wiki.gnome.org/Apps/Contacts")
1219 (license license:gpl2+)))
1220
1221 (define-public gnome-desktop
1222 (package
1223 (name "gnome-desktop")
1224 (version "3.34.2")
1225 (source
1226 (origin
1227 (method url-fetch)
1228 (uri (string-append "mirror://gnome/sources/" name "/"
1229 (version-major+minor version) "/"
1230 name "-" version ".tar.xz"))
1231 (sha256
1232 (base32
1233 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
1234 (build-system meson-build-system)
1235 (arguments
1236 '(#:phases
1237 (modify-phases %standard-phases
1238 (add-before 'configure 'patch-path
1239 (lambda* (#:key inputs #:allow-other-keys)
1240 (let ((libc (assoc-ref inputs "libc")))
1241 (substitute* "libgnome-desktop/gnome-languages.c"
1242 (("\"locale\"")
1243 (string-append "\"" libc "/bin/locale\"")))
1244 #t)))
1245 (add-before 'check 'pre-check
1246 (lambda* (#:key inputs #:allow-other-keys)
1247 ;; Tests require a running X server and locales.
1248 (system "Xvfb :1 &")
1249 (setenv "DISPLAY" ":1")
1250 (setenv "GUIX_LOCPATH"
1251 (string-append (assoc-ref inputs "glibc-locales")
1252 "/lib/locale"))
1253 #t)))))
1254 (native-inputs
1255 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1256 ("glibc-locales" ,glibc-locales) ; for tests
1257 ("gobject-introspection" ,gobject-introspection)
1258 ("itstool" ,itstool)
1259 ("intltool" ,intltool)
1260 ("pkg-config" ,pkg-config)
1261 ("xmllint" ,libxml2)
1262 ("xorg-server" ,xorg-server-for-tests)))
1263 (propagated-inputs
1264 ;; Required by gnome-desktop-3.0.pc.
1265 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1266 ("gtk+" ,gtk+)
1267 ("iso-codes" ,iso-codes)
1268 ("libseccomp" ,libseccomp)
1269 ("libx11" ,libx11)
1270 ("xkeyboard-config" ,xkeyboard-config)))
1271 (inputs
1272 `(("gdk-pixbuf" ,gdk-pixbuf)
1273 ("glib" ,glib)
1274 ("libxext" ,libxext)
1275 ("libxkbfile" ,libxkbfile)
1276 ("libxrandr" ,libxrandr)))
1277 (home-page "https://www.gnome.org/")
1278 (synopsis
1279 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1280 (description
1281 "The libgnome-desktop library provides API shared by several applications
1282 on the desktop, but that cannot live in the platform for various reasons.
1283 There is no API or ABI guarantee, although we are doing our best to provide
1284 stability. Documentation for the API is available with gtk-doc.
1285
1286 The gnome-about program helps find which version of GNOME is installed.")
1287 ; Some bits under the LGPL.
1288 (license license:gpl2+)))
1289
1290 (define-public gnome-doc-utils
1291 (package
1292 (name "gnome-doc-utils")
1293 (version "0.20.10")
1294 (source
1295 (origin
1296 (method url-fetch)
1297 (uri (string-append "mirror://gnome/sources/" name "/"
1298 (version-major+minor version) "/"
1299 name "-" version ".tar.xz"))
1300 (sha256
1301 (base32
1302 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1303 (build-system gnu-build-system)
1304 (native-inputs
1305 `(("intltool" ,intltool)
1306 ("docbook-xml" ,docbook-xml-4.4)
1307 ("python2-libxml2" ,python2-libxml2)
1308 ("libxml2" ,libxml2)
1309 ("libxslt" ,libxslt)
1310 ("pkg-config" ,pkg-config)
1311 ("python-2" ,python-2)))
1312 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1313 (synopsis
1314 "Documentation utilities for the Gnome project")
1315 (description
1316 "Gnome-doc-utils is a collection of documentation utilities for the
1317 Gnome project. It includes xml2po tool which makes it easier to translate
1318 and keep up to date translations of documentation.")
1319 (license license:gpl2+))) ; xslt under lgpl
1320
1321 (define-public gnome-disk-utility
1322 (package
1323 (name "gnome-disk-utility")
1324 (version "3.34.0")
1325 (source (origin
1326 (method url-fetch)
1327 (uri (string-append "mirror://gnome/sources/" name "/"
1328 (version-major+minor version) "/"
1329 name "-" version ".tar.xz"))
1330 (sha256
1331 (base32
1332 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
1333 (build-system meson-build-system)
1334 (arguments
1335 '(#:configure-flags '("-Dlogind=libelogind")
1336 #:phases
1337 (modify-phases %standard-phases
1338 (add-after 'unpack 'skip-gtk-update-icon-cache
1339 ;; Don't create 'icon-theme.cache'.
1340 (lambda _
1341 (substitute* "meson_post_install.py"
1342 (("gtk-update-icon-cache") "true"))
1343 #t)))))
1344 (native-inputs
1345 `(("glib:bin" ,glib "bin")
1346 ("intltool" ,intltool)
1347 ("pkg-config" ,pkg-config)
1348 ("docbook-xml" ,docbook-xml)
1349 ("docbook-xsl" ,docbook-xsl)
1350 ("libxml2" ,libxml2)
1351 ("libxslt" ,libxslt)))
1352 (inputs
1353 `(("elogind" ,elogind)
1354 ("glib" ,glib)
1355 ("appstream-glib" ,appstream-glib)
1356 ("gnome-settings-daemon" ,gnome-settings-daemon)
1357 ("gtk+" ,gtk+)
1358 ("libcanberra" ,libcanberra)
1359 ("libdvdread" ,libdvdread)
1360 ("libnotify" ,libnotify)
1361 ("libpwquality" ,libpwquality)
1362 ("libsecret" ,libsecret)
1363 ("udisks" ,udisks)))
1364 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1365 (synopsis "Disk management utility for GNOME")
1366 (description "Disk management utility for GNOME.")
1367 (license license:gpl2+)))
1368
1369 (define-public gnome-font-viewer
1370 (package
1371 (name "gnome-font-viewer")
1372 (version "3.30.0")
1373 (source (origin
1374 (method url-fetch)
1375 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1376 (version-major+minor version)
1377 "/gnome-font-viewer-" version ".tar.xz"))
1378 (sha256
1379 (base32
1380 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1381 (build-system meson-build-system)
1382 (arguments
1383 '(#:phases
1384 (modify-phases %standard-phases
1385 (add-after 'unpack 'patch-post-install-script
1386 (lambda _
1387 (substitute* "meson-postinstall.sh"
1388 (("update-desktop-database") (which "true")))
1389 #t)))))
1390 (native-inputs
1391 `(("gettext" ,gettext-minimal)
1392 ("glib:bin" ,glib "bin")
1393 ("pkg-config" ,pkg-config)))
1394 (inputs
1395 `(("glib" ,glib)
1396 ("gnome-desktop" ,gnome-desktop)
1397 ("gtk+" ,gtk+)))
1398 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1399 (synopsis "GNOME Fonts")
1400 (description "Application to show you the fonts installed on your computer
1401 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1402 the font would look under various sizes.")
1403 (license license:gpl2+)))
1404
1405 (define-public gcr
1406 (package
1407 (name "gcr")
1408 (version "3.34.0")
1409 (source (origin
1410 (method url-fetch)
1411 (uri (string-append "mirror://gnome/sources/" name "/"
1412 (version-major+minor version) "/"
1413 name "-" version ".tar.xz"))
1414 (sha256
1415 (base32
1416 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
1417 (build-system gnu-build-system)
1418 (arguments
1419 '(#:phases
1420 (modify-phases %standard-phases
1421 ;; These fail because /var/lib/dbus/machine-id is not present in the
1422 ;; build environment.
1423 (add-after 'unpack 'disable-failing-tests
1424 (lambda _
1425 (substitute* "Makefile.in"
1426 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1427 ""))
1428 #t))
1429 (add-before 'check 'pre-check
1430 (lambda _
1431 ;; Some tests expect to write to $HOME.
1432 (setenv "HOME" "/tmp")
1433 #t)))))
1434 (inputs
1435 `(("dbus" ,dbus)
1436 ("gnupg" ,gnupg) ;called as a child process during tests
1437 ("libgcrypt" ,libgcrypt)))
1438 (native-inputs
1439 `(("python" ,python-wrapper) ;for tests
1440 ("pkg-config" ,pkg-config)
1441 ("gettext" ,gettext-minimal)
1442 ("glib" ,glib "bin")
1443 ("gobject-introspection" ,gobject-introspection)
1444 ("libxml2" ,libxml2)
1445 ("vala" ,vala)
1446 ("xsltproc" ,libxslt)))
1447 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1448 (propagated-inputs
1449 `(("p11-kit" ,p11-kit)
1450 ("glib" ,glib)
1451 ("gtk+" ,gtk+)))
1452 (home-page "https://www.gnome.org")
1453 (synopsis "Libraries for displaying certificates and accessing key stores")
1454 (description
1455 "The GCR package contains libraries used for displaying certificates and
1456 accessing key stores. It also provides the viewer for crypto files on the
1457 GNOME Desktop.")
1458 (license license:lgpl2.1+)))
1459
1460 (define-public libgnome-keyring
1461 (package
1462 (name "libgnome-keyring")
1463 (version "3.12.0")
1464 (source (origin
1465 (method url-fetch)
1466 (uri (string-append "mirror://gnome/sources/" name "/"
1467 (version-major+minor version) "/"
1468 name "-" version ".tar.xz"))
1469 (sha256
1470 (base32
1471 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1472 (build-system gnu-build-system)
1473 (inputs
1474 `(("libgcrypt" ,libgcrypt)
1475 ("dbus" ,dbus)))
1476 (native-inputs
1477 `(("pkg-config" ,pkg-config)
1478 ("glib" ,glib "bin")
1479 ("intltool" ,intltool)))
1480 (propagated-inputs
1481 ;; Referred to in .h files and .pc.
1482 `(("glib" ,glib)))
1483 (home-page "https://www.gnome.org")
1484 (synopsis "Accessing passwords from the GNOME keyring")
1485 (description
1486 "Client library to access passwords from the GNOME keyring.")
1487
1488 ;; Though a couple of files are LGPLv2.1+.
1489 (license license:lgpl2.0+)))
1490
1491 (define-public gnome-keyring
1492 (package
1493 (name "gnome-keyring")
1494 (version "3.34.0")
1495 (source (origin
1496 (method url-fetch)
1497 (uri (string-append "mirror://gnome/sources/" name "/"
1498 (version-major+minor version) "/"
1499 name "-" version ".tar.xz"))
1500 (sha256
1501 (base32
1502 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
1503 (build-system gnu-build-system)
1504 (arguments
1505 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1506 ;not exist
1507 #:configure-flags
1508 (list
1509 (string-append "--with-pkcs11-config="
1510 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1511 (string-append "--with-pkcs11-modules="
1512 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1513 #:phases
1514 (modify-phases %standard-phases
1515 (add-after 'unpack 'fix-/bin/sh-reference
1516 (lambda _
1517 (substitute* "po/Makefile.in.in"
1518 (("/bin/sh") (which "sh")))
1519 #t))
1520 (add-after 'unpack 'fix-docbook
1521 (lambda* (#:key inputs #:allow-other-keys)
1522 (substitute* "docs/Makefile.am"
1523 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1524 (string-append (assoc-ref inputs "docbook-xsl")
1525 "/xml/xsl/docbook-xsl-"
1526 ,(package-version docbook-xsl)
1527 "/manpages/docbook.xsl")))
1528 (setenv "XML_CATALOG_FILES"
1529 (string-append (assoc-ref inputs "docbook-xml")
1530 "/xml/dtd/docbook/catalog.xml"))
1531 ;; Rerun the whole thing to avoid version mismatch ("This is
1532 ;; Automake 1.15.1, but the definition used by this
1533 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1534 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1535 (invoke "autoconf")
1536 (invoke "aclocal")
1537 (invoke "automake" "-ac"))))))
1538 (inputs
1539 `(("libgcrypt" ,libgcrypt)
1540 ("linux-pam" ,linux-pam)
1541 ("openssh" ,openssh)
1542 ("dbus" ,dbus)
1543 ("gcr" ,gcr)))
1544 (native-inputs
1545 `(("pkg-config" ,pkg-config)
1546 ("glib" ,glib "bin")
1547 ("glib" ,glib) ; for m4 macros
1548 ("python" ,python-2) ;for tests
1549 ("intltool" ,intltool)
1550 ("autoconf" ,autoconf)
1551 ("automake" ,automake)
1552 ("libxslt" ,libxslt) ;for documentation
1553 ("docbook-xml" ,docbook-xml-4.2)
1554 ("docbook-xsl" ,docbook-xsl)))
1555 (home-page "https://www.gnome.org")
1556 (synopsis "Daemon to store passwords and encryption keys")
1557 (description
1558 "gnome-keyring is a program that keeps passwords and other secrets for
1559 users. It is run as a daemon in the session, similar to ssh-agent, and other
1560 applications locate it via an environment variable or D-Bus.
1561
1562 The program can manage several keyrings, each with its own master password,
1563 and there is also a session keyring which is never stored to disk, but
1564 forgotten when the session ends.")
1565 (license license:lgpl2.1+)))
1566
1567 (define-public evince
1568 (package
1569 (name "evince")
1570 (version "3.34.2")
1571 (source (origin
1572 (method url-fetch)
1573 (uri (string-append "mirror://gnome/sources/evince/"
1574 (version-major+minor version) "/"
1575 "evince-" version ".tar.xz"))
1576 (sha256
1577 (base32
1578 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
1579 (build-system glib-or-gtk-build-system)
1580 (arguments
1581 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1582 #:phases
1583 (modify-phases %standard-phases
1584 (add-before 'install 'skip-gtk-update-icon-cache
1585 ;; Don't create 'icon-theme.cache'.
1586 (lambda _
1587 (substitute* "data/Makefile"
1588 (("gtk-update-icon-cache") "true"))
1589 #t)))))
1590 (inputs
1591 `(("libarchive" ,libarchive)
1592 ("libgxps" ,libgxps)
1593 ("libspectre" ,libspectre)
1594 ("djvulibre" ,djvulibre)
1595 ("ghostscript" ,ghostscript)
1596 ("poppler" ,poppler)
1597 ("libtiff" ,libtiff)
1598 ;; TODO:
1599 ;; Build libkpathsea as a shared library for DVI support.
1600 ;; ("libkpathsea" ,texlive-bin)
1601 ("gnome-desktop" ,gnome-desktop)
1602 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1603 ("gspell" ,gspell)
1604 ("libgnome-keyring" ,libgnome-keyring)
1605 ("adwaita-icon-theme" ,adwaita-icon-theme)
1606 ("gdk-pixbuf" ,gdk-pixbuf)
1607 ("atk" ,atk)
1608 ("pango" ,pango)
1609 ("gtk+" ,gtk+)
1610 ("glib" ,glib)
1611 ("libxml2" ,libxml2)
1612 ("libsm" ,libsm)
1613 ("libice" ,libice)
1614 ("shared-mime-info" ,shared-mime-info)
1615 ("dconf" ,dconf)
1616 ("libcanberra" ,libcanberra)
1617 ("libsecret" ,libsecret)
1618
1619 ;; For tests.
1620 ("dogtail" ,python2-dogtail)))
1621 (native-inputs
1622 `(("itstool" ,itstool)
1623 ("intltool" ,intltool)
1624 ("glib" ,glib "bin")
1625 ("gobject-introspection" ,gobject-introspection)
1626 ("pkg-config" ,pkg-config)
1627 ("xmllint" ,libxml2)))
1628 (home-page
1629 "https://www.gnome.org/projects/evince/")
1630 (synopsis "GNOME's document viewer")
1631 (description
1632 "Evince is a document viewer for multiple document formats. It
1633 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1634 of Evince is to replace the multiple document viewers that exist
1635 on the GNOME Desktop with a single simple application.")
1636 (license license:gpl2+)))
1637
1638 (define-public gsettings-desktop-schemas
1639 (package
1640 (name "gsettings-desktop-schemas")
1641 (version "3.34.0")
1642 (source
1643 (origin
1644 (method url-fetch)
1645 (uri (string-append "mirror://gnome/sources/" name "/"
1646 (version-major+minor version) "/"
1647 name "-" version ".tar.xz"))
1648 (sha256
1649 (base32
1650 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
1651 (build-system meson-build-system)
1652 (arguments
1653 '(#:phases (modify-phases %standard-phases
1654 (add-after 'unpack 'patch-schemas
1655 (lambda* (#:key inputs #:allow-other-keys)
1656 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1657 (substitute* (find-files "schemas"
1658 "\\.gschema\\.xml\\.in$")
1659 ;; Provide the correct file name of the default GNOME
1660 ;; background, 'adwaita-timed.xml'.
1661 (("@datadir@/backgrounds/gnome")
1662 (string-append theme "/share/backgrounds/gnome"))
1663 ;; Do not reference fonts, that may not exist.
1664 (("'Source Code Pro 10'") "'Monospace 11'"))
1665 #t))))))
1666 (inputs
1667 `(("glib" ,glib)
1668 ("gnome-backgrounds" ,gnome-backgrounds)))
1669 (native-inputs
1670 `(("intltool" ,intltool)
1671 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1672 ("gobject-introspection" ,gobject-introspection)
1673 ("pkg-config" ,pkg-config)))
1674 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1675 (synopsis
1676 "GNOME settings for various desktop components")
1677 (description
1678 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1679 for settings shared by various components of the GNOME desktop.")
1680 (license license:lgpl2.1+)))
1681
1682 (define-public icon-naming-utils
1683 (package
1684 (name "icon-naming-utils")
1685 (version "0.8.90")
1686 (source
1687 (origin
1688 (method url-fetch)
1689 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1690 version ".tar.bz2"))
1691 (sha256
1692 (base32
1693 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1694 (build-system gnu-build-system)
1695 (inputs
1696 `(("perl" ,perl)
1697 ("perl-xml-simple" ,perl-xml-simple)))
1698 (arguments
1699 '(#:phases
1700 (modify-phases %standard-phases
1701 (add-after 'install 'set-load-paths
1702 ;; Tell 'icon-name-mapping' where XML::Simple is.
1703 (lambda* (#:key outputs #:allow-other-keys)
1704 (let* ((out (assoc-ref outputs "out"))
1705 (prog (string-append out "/libexec/icon-name-mapping")))
1706 (wrap-program
1707 prog
1708 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1709 #t)))))
1710 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1711 (synopsis
1712 "Utility to implement the Freedesktop Icon Naming Specification")
1713 (description
1714 "To help with the transition to the Freedesktop Icon Naming
1715 Specification, the icon naming utility maps the icon names used by the
1716 GNOME and KDE desktops to the icon names proposed in the specification.")
1717 (license license:lgpl2.1+)))
1718
1719 (define-public gnome-icon-theme
1720 (package
1721 (name "gnome-icon-theme")
1722 (version "3.12.0")
1723 (source
1724 (origin
1725 (method url-fetch)
1726 (uri (string-append "mirror://gnome/sources/" name "/"
1727 (version-major+minor version) "/"
1728 name "-" version ".tar.xz"))
1729 (sha256
1730 (base32
1731 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1732 (build-system gnu-build-system)
1733 (arguments
1734 '(#:configure-flags
1735 ;; Don't create 'icon-theme.cache'.
1736 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1737 (true (string-append coreutils "/bin/true")))
1738 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1739 (native-inputs
1740 `(("icon-naming-utils" ,icon-naming-utils)
1741 ("intltool" ,intltool)
1742 ("pkg-config" ,pkg-config)))
1743 (home-page "https://wiki.gnome.org/Personalization")
1744 (synopsis "GNOME icon theme")
1745 (description "Icons for the GNOME desktop.")
1746 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1747
1748 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1749 (define-public adwaita-icon-theme
1750 (package (inherit gnome-icon-theme)
1751 (name "adwaita-icon-theme")
1752 (version "3.34.3")
1753 (source (origin
1754 (method url-fetch)
1755 (uri (string-append "mirror://gnome/sources/" name "/"
1756 (version-major+minor version) "/"
1757 name "-" version ".tar.xz"))
1758 (sha256
1759 (base32
1760 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
1761 (native-inputs
1762 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1763
1764 (define-public tango-icon-theme
1765 (package
1766 (name "tango-icon-theme")
1767 (version "0.8.90")
1768 (source (origin
1769 (method url-fetch)
1770 (uri (string-append "http://tango.freedesktop.org/releases/"
1771 "tango-icon-theme-" version ".tar.bz2"))
1772 (sha256
1773 (base32
1774 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1775 (build-system gnu-build-system)
1776 (native-inputs
1777 `(("icon-naming-utils" ,icon-naming-utils)
1778 ("intltool" ,intltool)
1779 ("imagemagick" ,imagemagick)
1780 ("pkg-config" ,pkg-config)))
1781 (home-page "http://tango-project.org/")
1782 (synopsis "Tango icon theme")
1783 (description "This is an icon theme that follows the Tango visual
1784 guidelines.")
1785 (license license:public-domain)))
1786
1787 (define-public shared-mime-info
1788 (package
1789 (name "shared-mime-info")
1790 (version "1.15")
1791 (source (origin
1792 (method url-fetch)
1793 (uri (string-append
1794 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1795 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1796 ".tar.xz"))
1797 (sha256
1798 (base32
1799 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
1800 (build-system gnu-build-system)
1801 (arguments
1802 ;; The build system appears not to be parallel-safe.
1803 '(#:parallel-build? #f))
1804 (inputs
1805 `(("glib" ,glib)
1806 ("libxml2" ,libxml2)))
1807 (native-inputs
1808 `(("gettext" ,gettext-minimal)
1809 ("itstool" ,itstool)
1810 ("pkg-config" ,pkg-config)))
1811 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1812 (synopsis "Database of common MIME types")
1813 (description
1814 "The shared-mime-info package contains the core database of common types
1815 and the update-mime-database command used to extend it. It requires glib2 to
1816 be installed for building the update command. Additionally, it uses intltool
1817 for translations, though this is only a dependency for the maintainers. This
1818 database is translated at Transifex.")
1819 (license license:gpl2+)))
1820
1821 (define-public system-config-printer
1822 (package
1823 (name "system-config-printer")
1824 (version "1.5.12")
1825 (source
1826 (origin
1827 (method url-fetch)
1828 (uri (string-append
1829 "https://github.com/OpenPrinting/system-config-printer/releases/"
1830 "download/" version
1831 "/system-config-printer-" version ".tar.xz"))
1832 (sha256
1833 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1834 (build-system glib-or-gtk-build-system)
1835 (arguments
1836 `(#:imported-modules ((guix build python-build-system)
1837 ,@%glib-or-gtk-build-system-modules)
1838 #:phases
1839 (modify-phases %standard-phases
1840 (add-after 'unpack 'patch-Makefile.am
1841 (lambda _
1842 ;; The Makefile generates some scripts, so set a valid shebang
1843 (substitute* "Makefile.am"
1844 (("/bin/bash") (which "bash")))
1845 (delete-file "configure")
1846 #t))
1847 (add-after 'unpack 'patch-docbook-xml
1848 (lambda* (#:key inputs #:allow-other-keys)
1849 ;; Modify the man XML otherwise xmlto tries to access the network
1850 (substitute* "man/system-config-printer.xml"
1851 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1852 (string-append (assoc-ref inputs "docbook-xml")
1853 "/xml/dtd/docbook/")))
1854 #t))
1855 (add-after 'install 'wrap-for-python
1856 (@@ (guix build python-build-system) wrap))
1857 (add-after 'install 'wrap
1858 (lambda* (#:key outputs #:allow-other-keys)
1859 (let ((out (assoc-ref outputs "out"))
1860 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1861 (for-each
1862 (lambda (program)
1863 (wrap-program program
1864 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1865 (map (lambda (name)
1866 (string-append out "/bin/" name))
1867 '("system-config-printer"
1868 "system-config-printer-applet"
1869 "install-printerdriver"
1870 "scp-dbus-service"))))
1871 #t)))))
1872 (inputs
1873 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1874 ("gobject-introspection" ,gobject-introspection)
1875 ("python" ,python)
1876 ("cups" ,cups)
1877 ("python-dbus" ,python-dbus)
1878 ("python-pygobject" ,python-pygobject)
1879 ("python-pycups" ,python-pycups)
1880 ("python-requests" ,python-requests)
1881 ("python-pycairo" ,python-pycairo)
1882 ("libnotify" ,libnotify)
1883 ("packagekit" ,packagekit)))
1884 (native-inputs
1885 `(("pkg-config" ,pkg-config)
1886 ("desktop-file-utils" ,desktop-file-utils)
1887 ("glib" ,glib)
1888 ("autoconf" ,autoconf)
1889 ("automake" ,automake)
1890 ("intltool" ,intltool)
1891 ("xmlto" ,xmlto)
1892 ("docbook-xml" ,docbook-xml-4.1.2)
1893 ("docbook-xsl" ,docbook-xsl)
1894 ("libxml2" ,libxml2)))
1895 (home-page "https://github.com/zdohnal/system-config-printer")
1896 (synopsis "CUPS administration tool")
1897 (description
1898 "system-config-printer is a CUPS administration tool. It's written in
1899 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1900 configuring CUPS.")
1901 (license license:gpl2+)))
1902
1903 (define-public hicolor-icon-theme
1904 (package
1905 (name "hicolor-icon-theme")
1906 (version "0.17")
1907 (source
1908 (origin
1909 (method url-fetch)
1910 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
1911 "hicolor-icon-theme-" version ".tar.xz"))
1912 (sha256
1913 (base32
1914 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
1915 (build-system gnu-build-system)
1916 (arguments
1917 `(#:tests? #f)) ; no check target
1918 (home-page "https://icon-theme.freedesktop.org/releases/")
1919 (synopsis
1920 "Freedesktop icon theme")
1921 (description
1922 "Freedesktop icon theme.")
1923 (license license:gpl2)))
1924
1925 (define-public libnotify
1926 (package
1927 (name "libnotify")
1928 (version "0.7.7")
1929 (source
1930 (origin
1931 (method url-fetch)
1932 (uri (string-append "mirror://gnome/sources/" name "/"
1933 (version-major+minor version) "/"
1934 name "-" version ".tar.xz"))
1935 (sha256
1936 (base32
1937 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
1938 (build-system gnu-build-system)
1939 (arguments
1940 `(#:configure-flags '("--disable-static")))
1941 (propagated-inputs
1942 `(;; In Requires of libnotify.pc.
1943 ("gdk-pixbuf" ,gdk-pixbuf)
1944 ("glib" ,glib)))
1945 (inputs
1946 `(("gtk+" ,gtk+)
1947 ("libpng" ,libpng)))
1948 (native-inputs
1949 `(("pkg-config" ,pkg-config)
1950 ("glib" ,glib "bin")
1951 ("gobject-introspection" ,gobject-introspection)))
1952 (home-page "https://developer-next.gnome.org/libnotify/")
1953 (synopsis
1954 "GNOME desktop notification library")
1955 (description
1956 "Libnotify is a library that sends desktop notifications to a
1957 notification daemon, as defined in the Desktop Notifications spec. These
1958 notifications can be used to inform the user about an event or display
1959 some form of information without getting in the user's way.")
1960 (license license:lgpl2.1+)))
1961
1962 (define-public libpeas
1963 (package
1964 (name "libpeas")
1965 (version "1.24.1")
1966 (source
1967 (origin
1968 (method url-fetch)
1969 (uri (string-append "mirror://gnome/sources/" name "/"
1970 (version-major+minor version) "/"
1971 name "-" version ".tar.xz"))
1972 (sha256
1973 (base32
1974 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
1975 (build-system meson-build-system)
1976 (arguments
1977 '(#:phases
1978 (modify-phases %standard-phases
1979 (add-before 'check 'start-xserver
1980 (lambda* (#:key inputs #:allow-other-keys)
1981 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1982 (disp ":1"))
1983 (setenv "DISPLAY" disp)
1984 ;; Tests require a running X server.
1985 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
1986 #t))))))
1987 (inputs
1988 `(("gtk+" ,gtk+)
1989 ("glade" ,glade3)
1990 ("python" ,python)
1991 ("python-pygobject" ,python-pygobject)))
1992 (native-inputs
1993 `(("pkg-config" ,pkg-config)
1994 ("gettext" ,gettext-minimal)
1995 ("glib:bin" ,glib "bin")
1996 ("gobject-introspection" ,gobject-introspection)
1997 ("xorg-server" ,xorg-server-for-tests)))
1998 (propagated-inputs
1999 ;; The .pc file "Requires" gobject-introspection.
2000 `(("gobject-introspection" ,gobject-introspection)))
2001 (home-page "https://wiki.gnome.org/Libpeas")
2002 (synopsis "GObject plugin system")
2003 (description
2004 "Libpeas is a gobject-based plugin engine, targeted at giving every
2005 application the chance to assume its own extensibility. It also has a set of
2006 features including, but not limited to: multiple extension points; on-demand
2007 (lazy) programming language support for C, Python and JS; simplicity of the
2008 API.")
2009 (license license:lgpl2.0+)))
2010
2011 (define-public gtkglext
2012 (package
2013 (name "gtkglext")
2014 (version "1.2.0")
2015 (source (origin
2016 (method url-fetch)
2017 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2018 version "/gtkglext-" version ".tar.gz"))
2019 (sha256
2020 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2021 (patches (search-patches
2022 "gtkglext-disable-disable-deprecated.patch"))))
2023 (build-system gnu-build-system)
2024 (arguments
2025 `(#:phases
2026 (modify-phases %standard-phases
2027 ;; Fix a collision between a local variable and a definition from
2028 ;; glibc's string.h.
2029 (add-after 'unpack 'fix-collision
2030 (lambda _
2031 (substitute* "gdk/gdkglshapes.c"
2032 ((" index") " triangle_index"))
2033 #t)))))
2034 (inputs `(("gtk+" ,gtk+-2)
2035 ("mesa" ,mesa)
2036 ("glu" ,glu)
2037 ("libx11" ,libx11)
2038 ("libxt" ,libxt)))
2039 (native-inputs `(("pkg-config" ,pkg-config)
2040 ("glib" ,glib "bin")))
2041 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2042 (home-page "https://projects.gnome.org/gtkglext")
2043 (synopsis "OpenGL extension to GTK+")
2044 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2045 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2046 API add-ons to make GTK+ widgets OpenGL-capable.")
2047 (license license:lgpl2.1+)))
2048
2049 (define-public glade3
2050 (package
2051 (name "glade")
2052 (version "3.22.1")
2053 (source (origin
2054 (method url-fetch)
2055 (uri (string-append "mirror://gnome/sources/" name "/"
2056 (version-major+minor version) "/"
2057 name "-" version ".tar.xz"))
2058 (sha256
2059 (base32
2060 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
2061 (build-system glib-or-gtk-build-system)
2062 (arguments
2063 `(#:tests? #f ; needs X, GL, and software rendering
2064 #:phases
2065 (modify-phases %standard-phases
2066 (add-before 'configure 'fix-docbook
2067 (lambda* (#:key inputs #:allow-other-keys)
2068 (substitute* "man/Makefile.in"
2069 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2070 (string-append (assoc-ref inputs "docbook-xsl")
2071 "/xml/xsl/docbook-xsl-"
2072 ,(package-version docbook-xsl)
2073 "/manpages/docbook.xsl")))
2074 #t)))))
2075 (inputs
2076 `(("gtk+" ,gtk+)
2077 ("libxml2" ,libxml2)))
2078 (native-inputs
2079 `(("intltool" ,intltool)
2080 ("itstool" ,itstool)
2081 ("libxslt" ,libxslt) ;for xsltproc
2082 ("docbook-xml" ,docbook-xml-4.2)
2083 ("docbook-xsl" ,docbook-xsl)
2084 ("python" ,python-2)
2085 ("pkg-config" ,pkg-config)))
2086 (home-page "https://glade.gnome.org")
2087 (synopsis "GTK+ rapid application development tool")
2088 (description "Glade is a rapid application development (RAD) tool to
2089 enable quick & easy development of user interfaces for the GTK+ toolkit and
2090 the GNOME desktop environment.")
2091 (license license:lgpl2.0+)))
2092
2093 (define-public libcroco
2094 (package
2095 (name "libcroco")
2096 (version "0.6.13")
2097 (source (origin
2098 (method url-fetch)
2099 (uri (string-append "mirror://gnome/sources/" name "/"
2100 (version-major+minor version) "/"
2101 name "-" version ".tar.xz"))
2102 (sha256
2103 (base32
2104 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2105 (build-system gnu-build-system)
2106 (native-inputs
2107 `(("pkg-config" ,pkg-config)))
2108 (inputs
2109 `(("glib" ,glib)
2110 ("libxml2" ,libxml2)
2111 ("zlib" ,zlib)))
2112 (home-page "https://github.com/GNOME/libcroco")
2113 (synopsis "CSS2 parsing and manipulation library")
2114 (description
2115 "Libcroco is a standalone CSS2 parsing and manipulation library.
2116 The parser provides a low level event driven SAC-like API and a CSS object
2117 model like API. Libcroco provides a CSS2 selection engine and an experimental
2118 XML/CSS rendering engine.")
2119
2120 ;; LGPLv2.1-only.
2121 (license license:lgpl2.1)))
2122
2123 (define-public libgsf
2124 (package
2125 (name "libgsf")
2126 (version "1.14.47")
2127 (source (origin
2128 (method url-fetch)
2129 (uri (string-append "mirror://gnome/sources/" name "/"
2130 (version-major+minor version) "/"
2131 name "-" version ".tar.xz"))
2132 (sha256
2133 (base32
2134 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
2135 (build-system gnu-build-system)
2136 (arguments
2137 '(#:configure-flags '("--disable-static")))
2138 (native-inputs
2139 `(("pkg-config" ,pkg-config)
2140 ("gettext" ,gettext-minimal)
2141
2142 ;; For tests.
2143 ("perl" ,perl)
2144 ("perl-xml-parser" ,perl-xml-parser)))
2145 (inputs
2146 `(("zlib" ,zlib)
2147 ("bzip2" ,bzip2)))
2148 (propagated-inputs
2149 `(("gdk-pixbuf" ,gdk-pixbuf)
2150 ("glib" ,glib)
2151 ("libxml2" ,libxml2)))
2152 (home-page "https://www.gnome.org/projects/libgsf")
2153 (synopsis "GNOME's Structured File Library")
2154 (description
2155 "Libgsf aims to provide an efficient extensible I/O abstraction for
2156 dealing with different structured file formats.")
2157
2158 ;; LGPLv2.1-only.
2159 (license license:lgpl2.1)))
2160
2161 (define-public librsvg
2162 (package
2163 (name "librsvg")
2164 (version "2.40.21")
2165 (source (origin
2166 (method url-fetch)
2167 (uri (string-append "mirror://gnome/sources/" name "/"
2168 (version-major+minor version) "/"
2169 name "-" version ".tar.xz"))
2170 (sha256
2171 (base32
2172 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
2173 (build-system gnu-build-system)
2174 (arguments
2175 `(#:configure-flags
2176 (list "--disable-static"
2177 "--enable-vala") ; needed for e.g. gnome-mines
2178 #:phases
2179 (modify-phases %standard-phases
2180 (add-before 'configure 'pre-configure
2181 (lambda* (#:key inputs #:allow-other-keys)
2182 (substitute* "gdk-pixbuf-loader/Makefile.in"
2183 ;; By default the gdk-pixbuf loader is installed under
2184 ;; gdk-pixbuf's prefix. Work around that.
2185 (("gdk_pixbuf_moduledir = .*$")
2186 (string-append "gdk_pixbuf_moduledir = "
2187 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2188 "loaders\n"))
2189 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2190 (("gdk_pixbuf_cache_file = .*$")
2191 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2192 #t))
2193 (add-before 'check 'remove-failing-tests
2194 (lambda _
2195 (with-directory-excursion "tests/fixtures/reftests"
2196 (for-each delete-file
2197 '(;; This test fails on i686:
2198 "svg1.1/masking-path-04-b.svg"
2199 ;; This test fails on armhf:
2200 "svg1.1/masking-mask-01-b.svg"
2201 ;; This test fails on aarch64:
2202 "bugs/777834-empty-text-children.svg")))
2203 #t)))))
2204 (native-inputs
2205 `(("pkg-config" ,pkg-config)
2206 ("vala" ,vala)
2207 ("glib" ,glib "bin") ; glib-mkenums, etc.
2208 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2209 (inputs
2210 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2211 ;; this ancient version of librsvg.
2212 ("pango" ,pango-1.42)
2213 ("libcroco" ,libcroco)
2214 ("bzip2" ,bzip2)
2215 ("libgsf" ,libgsf)
2216 ("libxml2" ,libxml2)))
2217 (propagated-inputs
2218 ;; librsvg-2.0.pc refers to all of that.
2219 `(("cairo" ,cairo)
2220 ("gdk-pixbuf" ,gdk-pixbuf)
2221 ("glib" ,glib)))
2222 (home-page "https://wiki.gnome.org/LibRsvg")
2223 (synopsis "Render SVG files using Cairo")
2224 (description
2225 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2226 library.")
2227 (license license:lgpl2.0+)))
2228
2229 (define-public librsvg-next
2230 (package
2231 (inherit librsvg)
2232 (name "librsvg")
2233 (version "2.46.4")
2234 (source (origin
2235 (method url-fetch)
2236 (uri (string-append "mirror://gnome/sources/librsvg/"
2237 (version-major+minor version) "/"
2238 "librsvg-" version ".tar.xz"))
2239 (sha256
2240 (base32
2241 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2242 (modules '((guix build utils)))
2243 (snippet
2244 '(begin (delete-file-recursively "vendor")
2245 ;; Don't demand an exact version for string_cache
2246 (substitute* "rsvg_internals/Cargo.toml"
2247 (("\"=") "\""))
2248 #t))))
2249 (build-system cargo-build-system)
2250 (arguments
2251 `(#:modules ((guix build cargo-build-system)
2252 (guix build utils)
2253 ((guix build gnu-build-system) #:prefix gnu:))
2254 #:vendor-dir "vendor"
2255 #:cargo-inputs
2256 (("rust-bitflags" ,rust-bitflags-1)
2257 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2258 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2259 ("rust-cssparser" ,rust-cssparser-0.25)
2260 ("rust-data-url" ,rust-data-url-0.1)
2261 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2262 ("rust-encoding" ,rust-encoding-0.2)
2263 ("rust-float-cmp" ,rust-float-cmp-0.5)
2264 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2265 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2266 ("rust-gio" ,rust-gio-0.7)
2267 ("rust-gio-sys" ,rust-gio-sys-0.9)
2268 ("rust-glib" ,rust-glib-0.8)
2269 ("rust-glib-sys" ,rust-glib-sys-0.9)
2270 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2271 ("rust-itertools" ,rust-itertools-0.8)
2272 ("rust-language-tags" ,rust-language-tags-0.2)
2273 ("rust-lazy-static" ,rust-lazy-static-1)
2274 ("rust-libc" ,rust-libc-0.2)
2275 ("rust-locale-config" ,rust-locale-config-0.3)
2276 ("rust-markup5ever" ,rust-markup5ever-0.9)
2277 ("rust-nalgebra" ,rust-nalgebra-0.18)
2278 ("rust-num-traits" ,rust-num-traits-0.2)
2279 ("rust-pkg-config" ,rust-pkg-config-0.3)
2280 ("rust-pango" ,rust-pango-0.7)
2281 ("rust-pango-sys" ,rust-pango-sys-0.9)
2282 ("rust-pangocairo" ,rust-pangocairo-0.8)
2283 ("rust-phf" ,rust-phf-0.7)
2284 ("rust-rayon" ,rust-rayon-1.3)
2285 ("rust-rctree" ,rust-rctree-0.3)
2286 ("rust-string-cache" ,rust-string-cache-0.7)
2287 ("rust-regex" ,rust-regex-1.3)
2288 ("rust-url" ,rust-url-2.1)
2289 ("rust-xml-rs" ,rust-xml-rs-0.8))
2290 #:cargo-development-inputs
2291 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2292 ("rust-criterion" ,rust-criterion-0.2))
2293 #:phases
2294 (modify-phases %standard-phases
2295 (add-after 'unpack 'prepare-for-build
2296 (lambda _
2297 ;; In lieu of #:make-flags
2298 (setenv "CC" "gcc")
2299 ;; Something about the build environment resists building
2300 ;; successfully with the '--locked' flag.
2301 (substitute* '("Makefile.am"
2302 "Makefile.in")
2303 (("--locked") ""))
2304 #t))
2305 (add-before 'configure 'pre-configure
2306 (lambda _
2307 (substitute* "gdk-pixbuf-loader/Makefile.in"
2308 ;; By default the gdk-pixbuf loader is installed under
2309 ;; gdk-pixbuf's prefix. Work around that.
2310 (("gdk_pixbuf_moduledir = .*$")
2311 (string-append "gdk_pixbuf_moduledir = "
2312 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2313 "loaders\n"))
2314 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2315 (("gdk_pixbuf_cache_file = .*$")
2316 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2317 #t))
2318 (add-after 'configure 'gnu-configure
2319 (assoc-ref gnu:%standard-phases 'configure))
2320 ;(lambda* (#:key outputs #:allow-other-keys)
2321 ; ((assoc-ref gnu:%standard-phases 'configure)
2322 ; #:outputs outputs
2323 ; #:configure-flags ("--disable-static"
2324 ; "--enable-vala"))))
2325 (add-after 'configure 'dont-vendor-self
2326 (lambda* (#:key vendor-dir #:allow-other-keys)
2327 ;; Don't keep the whole tarball in the vendor directory
2328 (delete-file-recursively
2329 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2330 #t))
2331 (replace 'build
2332 (assoc-ref gnu:%standard-phases 'build))
2333 (replace 'check
2334 (lambda* args
2335 ((assoc-ref gnu:%standard-phases 'check)
2336 #:test-target "check")))
2337 (replace 'install
2338 (assoc-ref gnu:%standard-phases 'install))
2339 (add-before 'check 'remove-failing-tests
2340 (lambda _
2341 (with-directory-excursion "tests/fixtures/reftests"
2342 (for-each delete-file
2343 '(;; The images produced by these tests differ slightly
2344 ;; from their reference counterparts due to differences
2345 ;; in the build environment (missing fonts, etc). See
2346 ;; <tests/README.md> for details.
2347 ;; These fail on x86_64.
2348 "svg1.1/coords-viewattr-02-b.svg"
2349 "svg1.1/filters-composite-04-f.svg"
2350 "svg1.1/filters-image-01-b.svg"
2351 "svg1.1/filters-conv-02-f.svg"
2352 "svg1.1/filters-conv-04-f.svg"
2353 ;; This test fails on i686:
2354 "svg1.1/masking-path-04-b.svg"
2355 ;; This test fails on armhf:
2356 "svg1.1/masking-mask-01-b.svg"
2357 ;; This test fails on aarch64:
2358 "bugs/777834-empty-text-children.svg")))
2359 #t)))))
2360 (license license:lgpl2.1+)))
2361
2362 (define-public libidl
2363 (package
2364 (name "libidl")
2365 (version "0.8.14")
2366 (source (origin
2367 (method url-fetch)
2368 (uri (string-append "mirror://gnome/sources/libIDL/"
2369 (version-major+minor version) "/"
2370 "libIDL-" version ".tar.bz2"))
2371 (sha256
2372 (base32
2373 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2374 (build-system gnu-build-system)
2375 (inputs `(("glib" ,glib)))
2376 (native-inputs
2377 `(("pkg-config" ,pkg-config)
2378 ("flex" ,flex)
2379 ("bison" ,bison)))
2380 (home-page "http://freecode.com/projects/libidl")
2381 (synopsis "Create trees of CORBA Interface Definition Language files")
2382 (description "Libidl is a library for creating trees of CORBA Interface
2383 Definition Language (idl) files, which is a specification for defining
2384 portable interfaces. libidl was initially written for orbit (the orb from the
2385 GNOME project, and the primary means of libidl distribution). However, the
2386 functionality was designed to be as reusable and portable as possible.")
2387 (properties `((upstream-name . "libIDL")))
2388 (license license:lgpl2.0+)))
2389
2390
2391 (define-public orbit2
2392 (package
2393 (name "orbit2")
2394 (version "2.14.19")
2395 (source (origin
2396 (method url-fetch)
2397 (uri (let ((upstream-name "ORBit2"))
2398 (string-append "mirror://gnome/sources/" upstream-name "/"
2399 (version-major+minor version) "/"
2400 upstream-name "-" version ".tar.bz2")))
2401 (sha256
2402 (base32
2403 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2404 (build-system gnu-build-system)
2405 (arguments
2406 `(;; The "timeout-server" test hangs when run in parallel.
2407 #:parallel-tests? #f
2408 #:configure-flags
2409 '(;; We don't need static libraries, plus they don't build reproducibly
2410 ;; (non-deterministic ordering of .o files in the archive.)
2411 "--disable-static"
2412
2413 ;; The programmer kindly gives us a hook to turn off deprecation
2414 ;; warnings ...
2415 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2416 ;; ... which they then completly ignore !!
2417 #:phases
2418 (modify-phases %standard-phases
2419 (add-before 'configure 'ignore-deprecations
2420 (lambda _
2421 (substitute* "linc2/src/Makefile.in"
2422 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2423 #t)))))
2424 (inputs `(("glib" ,glib)
2425 ("libidl" ,libidl)))
2426 (native-inputs
2427 `(("pkg-config" ,pkg-config)))
2428 (home-page "https://projects.gnome.org/orbit2/")
2429 (synopsis "CORBA 2.4-compliant Object Request Broker")
2430 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2431 featuring mature C, C++ and Python bindings.")
2432 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2433 ;; a version. SOME of the code files have licence notices for GPLv2+.
2434 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2435 (license license:gpl2+)
2436 (properties `((upstream-name . "ORBit2")))))
2437
2438
2439 (define-public libbonobo
2440 (package
2441 (name "libbonobo")
2442 (version "2.32.1")
2443 (source (origin
2444 (method url-fetch)
2445 (uri (string-append "mirror://gnome/sources/" name "/"
2446 (version-major+minor version)
2447 "/" name "-" version ".tar.bz2"))
2448 (sha256
2449 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2450 (patches (search-patches
2451 "libbonobo-activation-test-race.patch"))))
2452 (build-system gnu-build-system)
2453 (arguments
2454 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2455 `(#:configure-flags
2456 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2457 ;; ... which they then completly ignore !!
2458 #:phases
2459 (modify-phases %standard-phases
2460 (add-before 'configure 'ignore-deprecations
2461 (lambda _
2462 (substitute* "activation-server/Makefile.in"
2463 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2464 #t)))
2465
2466 ;; There's apparently a race condition between the server stub
2467 ;; generation and linking of the example under 'samples/echo' that can
2468 ;; lead do undefined references when building in parallel, as reported
2469 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2470 ;; Thus, disable parallel builds.
2471 #:parallel-build? #f))
2472 (inputs `(("popt" ,popt)
2473 ("libxml2" ,libxml2)))
2474 ;; The following are Required by the .pc file
2475 (propagated-inputs
2476 `(("glib" ,glib)
2477 ("orbit2" ,orbit2)))
2478 (native-inputs
2479 `(("intltool" ,intltool)
2480 ("pkg-config" ,pkg-config)
2481 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2482 ("flex" ,flex)
2483 ("bison" ,bison)))
2484 (home-page "https://developer.gnome.org/libbonobo/")
2485 (synopsis "Framework for creating reusable components for use in GNOME applications")
2486 (description "Bonobo is a framework for creating reusable components for
2487 use in GNOME applications, built on top of CORBA.")
2488 ;; Licence not explicitly stated. Source files contain no licence notices.
2489 ;; Tarball contains text of both GPLv2 and LGPLv2
2490 ;; GPLv2 covers both conditions
2491 (license license:gpl2+)))
2492
2493
2494 (define-public gconf
2495 (package
2496 (name "gconf")
2497 (version "3.2.6")
2498 (source (origin
2499 (method url-fetch)
2500 (uri
2501 (let ((upstream-name "GConf"))
2502 (string-append "mirror://gnome/sources/" upstream-name "/"
2503 (version-major+minor version) "/"
2504 upstream-name "-" version ".tar.xz")))
2505 (sha256
2506 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2507 (build-system gnu-build-system)
2508 (inputs `(("dbus-glib" ,dbus-glib)
2509 ("libxml2" ,libxml2)))
2510 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2511 ("orbit2" ,orbit2)))
2512 (native-inputs
2513 `(("intltool" ,intltool)
2514 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2515 ("pkg-config" ,pkg-config)))
2516 (home-page "https://projects.gnome.org/gconf/")
2517 (synopsis "Store application preferences")
2518 (description "Gconf is a system for storing application preferences. It
2519 is intended for user preferences; not arbitrary data storage.")
2520 (license license:lgpl2.0+)
2521 (properties '((upstream-name . "GConf")))))
2522
2523
2524 (define-public gnome-mime-data
2525 (package
2526 (name "gnome-mime-data")
2527 (version "2.18.0")
2528 (source (origin
2529 (method url-fetch)
2530 (uri (string-append "mirror://gnome/sources/" name "/"
2531 (version-major+minor version) "/"
2532 name "-" version ".tar.bz2"))
2533 (sha256
2534 (base32
2535 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2536 (build-system gnu-build-system)
2537 (native-inputs
2538 `(("perl" ,perl)
2539 ("intltool" ,intltool)))
2540 (arguments
2541 '(#:phases (modify-phases %standard-phases
2542 (add-after 'configure 'use-our-intltool
2543 (lambda _
2544 ;; Do not use the bundled intltool commands, which lack
2545 ;; the "dotless @INC" fixes of our 'intltool' package.
2546 (substitute* (find-files "." "^Makefile$")
2547 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2548 (string-append "INTLTOOL_" tool " = intltool-"
2549 (string-downcase tool) "\n")))
2550 #t)))))
2551 (home-page "https://www.gnome.org")
2552 (synopsis "Base MIME and Application database for GNOME")
2553 (description "GNOME Mime Data is a module which contains the base MIME
2554 and Application database for GNOME. The data stored by this module is
2555 designed to be accessed through the MIME functions in GnomeVFS.")
2556 (license license:gpl2+)))
2557
2558
2559 (define-public gnome-vfs
2560 (package
2561 (name "gnome-vfs")
2562 (version "2.24.4")
2563 (source (origin
2564 (method url-fetch)
2565 (uri (string-append "mirror://gnome/sources/" name "/"
2566 (version-major+minor version) "/"
2567 name "-" version ".tar.bz2"))
2568 (sha256
2569 (base32
2570 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2571 (build-system gnu-build-system)
2572 (arguments
2573 `(#:phases
2574 (modify-phases %standard-phases
2575 (add-before 'configure 'ignore-deprecations
2576 (lambda _
2577 (substitute* '("libgnomevfs/Makefile.in"
2578 "daemon/Makefile.in")
2579 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2580 #t))
2581 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2582 (lambda _
2583 (substitute* "test/test-async-cancel.c"
2584 (("EXIT_FAILURE") "77"))
2585 #t)))))
2586 (inputs `(("libxml2" ,libxml2)
2587 ("dbus-glib" ,dbus-glib)
2588 ("gconf" ,gconf)
2589 ("gnome-mime-data" ,gnome-mime-data)
2590 ("zlib" ,zlib)))
2591 (native-inputs
2592 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2593 ("intltool" ,intltool)
2594 ("pkg-config" ,pkg-config)))
2595 (home-page "https://developer.gnome.org/gnome-vfs/")
2596 (synopsis "Access files and folders in GNOME applications")
2597 (description
2598 "GnomeVFS is the core library used to access files and folders in GNOME
2599 applications. It provides a file system abstraction which allows applications
2600 to access local and remote files with a single consistent API.")
2601 (license license:lgpl2.0+)))
2602
2603
2604
2605 (define-public libgnome
2606 (package
2607 (name "libgnome")
2608 (version "2.32.1")
2609 (source (origin
2610 (method url-fetch)
2611 (uri (string-append "mirror://gnome/sources/" name "/"
2612 (version-major+minor version) "/"
2613 name "-" version ".tar.bz2"))
2614 (sha256
2615 (base32
2616 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2617 (patches (search-patches "libgnome-encoding.patch"))))
2618 (build-system gnu-build-system)
2619 (arguments
2620 `(#:phases
2621 (modify-phases %standard-phases
2622 (add-before 'configure 'enable-deprecated
2623 (lambda _
2624 (substitute* "libgnome/Makefile.in"
2625 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2626 #t)))))
2627 (inputs `(("libxml2" ,libxml2)))
2628 (native-inputs
2629 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2630 ("intltool" ,intltool)
2631 ("pkg-config" ,pkg-config)))
2632 ;; The following are listed as Required in the .pc file
2633 ;; (except for libcanberra -- which seems to be oversight on the part
2634 ;; of the upstream developers -- anything that links against libgnome,
2635 ;; must also link against libcanberra
2636 (propagated-inputs
2637 `(("libcanberra" ,libcanberra)
2638 ("libbonobo" ,libbonobo)
2639 ("gconf" ,gconf)
2640 ("gnome-vfs" ,gnome-vfs)
2641 ("popt" ,popt))) ;gnome-program.h includes popt.h
2642 (home-page "https://developer.gnome.org/libgnome/")
2643 (synopsis "Useful routines for building applications")
2644 (description "The libgnome library provides a number of useful routines
2645 for building modern applications, including session management, activation of
2646 files and URIs, and displaying help.")
2647 (license license:lgpl2.0+)))
2648
2649
2650 (define-public libart-lgpl
2651 (package
2652 (name "libart-lgpl")
2653 (version "2.3.21")
2654 (source (origin
2655 (method url-fetch)
2656 (uri (let ((upstream-name "libart_lgpl"))
2657 (string-append "mirror://gnome/sources/" upstream-name "/"
2658 (version-major+minor version) "/"
2659 upstream-name "-" version ".tar.bz2")))
2660 (sha256
2661 (base32
2662 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2663 (build-system gnu-build-system)
2664 (native-inputs
2665 `(("pkg-config" ,pkg-config)))
2666 (home-page "https://people.gnome.org/~mathieu/libart")
2667 (synopsis "2D drawing library")
2668 (description "Libart is a 2D drawing library intended as a
2669 high-quality vector-based 2D library with antialiasing and alpha composition.")
2670 (license license:lgpl2.0+)))
2671
2672
2673
2674 (define-public libgnomecanvas
2675 (package
2676 (name "libgnomecanvas")
2677 (version "2.30.3")
2678 (source (origin
2679 (method url-fetch)
2680 (uri (string-append "mirror://gnome/sources/" name "/"
2681 (version-major+minor version) "/"
2682 name "-" version ".tar.gz"))
2683 (sha256
2684 (base32
2685 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2686 (build-system gnu-build-system)
2687 ;; Mentioned as Required in the .pc file
2688 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2689 ("gtk+" ,gtk+-2)))
2690 (native-inputs
2691 `(("intltool" ,intltool)
2692 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2693 ("pkg-config" ,pkg-config)))
2694 (home-page "https://developer.gnome.org/libgnomecanvas/")
2695 (synopsis "Flexible widget for creating interactive structured graphics")
2696 (description "The GnomeCanvas widget provides a flexible widget for
2697 creating interactive structured graphics.")
2698 (license license:lgpl2.0+)))
2699
2700 (define-public libgnomecanvasmm
2701 (package
2702 (name "libgnomecanvasmm")
2703 (version "2.26.0")
2704 (source (origin
2705 (method url-fetch)
2706 (uri (string-append "mirror://gnome/sources/" name "/"
2707 (version-major+minor version) "/"
2708 name "-" version ".tar.bz2"))
2709 (sha256
2710 (base32
2711 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2712 (build-system gnu-build-system)
2713 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2714 (native-inputs
2715 `(("gtkmm-2" ,gtkmm-2)
2716 ("pkg-config" ,pkg-config)))
2717 (home-page "https://gtkmm.org")
2718 (synopsis "C++ bindings to the GNOME Canvas library")
2719 (description "C++ bindings to the GNOME Canvas library.")
2720 (license license:lgpl2.0+)))
2721
2722 (define-public libgnomeui
2723 (package
2724 (name "libgnomeui")
2725 (version "2.24.5")
2726 (source (origin
2727 (method url-fetch)
2728 (uri (string-append "mirror://gnome/sources/" name "/"
2729 (version-major+minor version) "/"
2730 name "-" version ".tar.bz2"))
2731 (patches (search-patches "libgnomeui-utf8.patch"))
2732 (sha256
2733 (base32
2734 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2735 (build-system gnu-build-system)
2736 ;; Mentioned as Required in the .pc file
2737 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2738 ("libgnome" ,libgnome)
2739 ("libgnomecanvas" ,libgnomecanvas)
2740 ("libgnome-keyring" ,libgnome-keyring)))
2741 (inputs `(("libjpeg" ,libjpeg-turbo)
2742 ("popt" ,popt)
2743 ("libbonobo" ,libbonobo)
2744 ("libxml2" ,libxml2)
2745 ("libglade" ,libglade)))
2746 (native-inputs
2747 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2748 ("intltool" ,intltool)
2749 ("pkg-config" ,pkg-config)))
2750 (home-page "https://developer.gnome.org/libgnomeui/")
2751 (synopsis "Additional widgets for applications")
2752 (description "The libgnomeui library provides additional widgets for
2753 applications. Many of the widgets from libgnomeui have already been
2754 ported to GTK+.")
2755 (license license:lgpl2.0+)))
2756
2757 (define-public libglade
2758 (package
2759 (name "libglade")
2760 (version "2.6.4")
2761 (source (origin
2762 (method url-fetch)
2763 (uri (string-append "mirror://gnome/sources/" name "/"
2764 (version-major+minor version) "/"
2765 name "-" version ".tar.bz2"))
2766 (sha256
2767 (base32
2768 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2769 (build-system gnu-build-system)
2770 (inputs
2771 `(("python" ,python))) ;; needed for the optional libglade-convert program
2772 (propagated-inputs
2773 `(("gtk+-2" ,gtk+-2)
2774 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2775 (native-inputs
2776 `(("pkg-config" ,pkg-config)))
2777 (home-page "https://developer.gnome.org/libglade")
2778 (synopsis "Load glade interfaces and access the glade built widgets")
2779 (description "Libglade is a library that provides interfaces for loading
2780 graphical interfaces described in glade files and for accessing the
2781 widgets built in the loading process.")
2782 (license license:gpl2+))) ; This is correct. GPL not LGPL
2783
2784 (define-public libgnomeprint
2785 ;; This library has been deprecated since 2006; see
2786 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2787 (package
2788 (name "libgnomeprint")
2789 (version "2.18.8")
2790 (source (origin
2791 (method url-fetch)
2792 (uri (string-append "mirror://gnome/sources/" name "/"
2793 (version-major+minor version) "/"
2794 name "-" version ".tar.bz2"))
2795 (sha256
2796 (base32
2797 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2798 (build-system gnu-build-system)
2799 (inputs
2800 `(("popt" ,popt)
2801 ("libart-lgpl" ,libart-lgpl)
2802 ("gtk+" ,gtk+-2)
2803 ("libxml2" ,libxml2)))
2804 (native-inputs
2805 `(("intltool" ,intltool)
2806 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2807 ("pkg-config" ,pkg-config)))
2808 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2809 (synopsis "Printing framework for GNOME")
2810 (description
2811 "GNOME-print was a printing framework for GNOME. It has been deprecated
2812 since ca. 2006, when GTK+ itself incorporated printing support.")
2813 (license license:lgpl2.0+)))
2814
2815
2816 (define-public libgnomeprintui
2817 ;; Deprecated; see libgnomeprint.
2818 (package
2819 (name "libgnomeprintui")
2820 (version "2.18.6")
2821 (source (origin
2822 (method url-fetch)
2823 (uri (string-append "mirror://gnome/sources/" name "/"
2824 (version-major+minor version) "/"
2825 name "-" version ".tar.bz2"))
2826 (sha256
2827 (base32
2828 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2829 (build-system gnu-build-system)
2830 ;; Mentioned as Required in the .pc file
2831 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2832 (inputs `(("gtk+" ,gtk+-2)
2833 ("glib" ,glib)
2834 ("gnome-icon-theme" ,gnome-icon-theme)
2835 ("libgnomecanvas" ,libgnomecanvas)
2836 ("libxml2" ,libxml2)))
2837 (native-inputs
2838 `(("intltool" ,intltool)
2839 ("pkg-config" ,pkg-config)))
2840 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2841 (synopsis "Printing framework for GNOME")
2842 (description (package-description libgnomeprint))
2843 (license license:lgpl2.0+)))
2844
2845 (define-public libbonoboui
2846 (package
2847 (name "libbonoboui")
2848 (version "2.24.5")
2849 (source (origin
2850 (method url-fetch)
2851 (uri (string-append "mirror://gnome/sources/" name "/"
2852 (version-major+minor version) "/"
2853 name "-" version ".tar.bz2"))
2854 (sha256
2855 (base32
2856 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2857 (build-system gnu-build-system)
2858 (arguments
2859 `(#:phases
2860 (modify-phases %standard-phases
2861 (add-before 'check 'start-xserver
2862 (lambda* (#:key inputs #:allow-other-keys)
2863 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2864 (disp ":1"))
2865
2866 (setenv "HOME" (getcwd))
2867 (setenv "DISPLAY" disp)
2868 ;; There must be a running X server and make check doesn't start one.
2869 ;; Therefore we must do it.
2870 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2871 ;; Mentioned as Required by the .pc file
2872 (propagated-inputs `(("libxml2" ,libxml2)))
2873 (inputs
2874 `(("popt" ,popt)
2875 ("pangox-compat" ,pangox-compat)
2876 ("libgnome" ,libgnome)
2877 ("libgnomecanvas" ,libgnomecanvas)
2878 ("libglade" ,libglade)))
2879 (native-inputs
2880 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2881 ("intltool" ,intltool)
2882 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2883 ("pkg-config" ,pkg-config)))
2884 (home-page "https://developer.gnome.org/libbonoboui/")
2885 (synopsis "Some user interface controls using Bonobo")
2886 (description "The Bonobo UI library provides a number of user interface
2887 controls using the Bonobo component framework.")
2888 (license license:lgpl2.0+)))
2889
2890 (define-public libwnck
2891 (package
2892 (name "libwnck")
2893 (version "3.32.0")
2894 (source (origin
2895 (method url-fetch)
2896 (uri (string-append "mirror://gnome/sources/" name "/"
2897 (version-major+minor version) "/"
2898 name "-" version ".tar.xz"))
2899 (sha256
2900 (base32
2901 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2902 (build-system meson-build-system)
2903 (native-inputs
2904 `(("pkg-config" ,pkg-config)
2905 ("glib" ,glib "bin") ; for glib-mkenums
2906 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
2907 ("intltool" ,intltool)))
2908 (propagated-inputs
2909 `(("gtk+" ,gtk+)
2910 ("libxres" ,libxres)
2911 ("startup-notification" ,startup-notification)))
2912 (home-page "https://developer.gnome.org/libwnck/")
2913 (synopsis "Window Navigator Construction Kit")
2914 (description
2915 "Libwnck is the Window Navigator Construction Kit, a library for use in
2916 writing pagers, tasklists, and more generally applications that are dealing
2917 with window management. It tries hard to respect the Extended Window Manager
2918 Hints specification (EWMH).")
2919 (license license:lgpl2.0+)))
2920
2921 ;; stable version for gtk2, required by xfwm4.
2922 (define-public libwnck-2
2923 (package (inherit libwnck)
2924 (name "libwnck")
2925 (version "2.30.7")
2926 (source (origin
2927 (method url-fetch)
2928 (uri (string-append "mirror://gnome/sources/" name "/"
2929 (version-major+minor version) "/"
2930 name "-" version ".tar.xz"))
2931 (sha256
2932 (base32
2933 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
2934 (build-system gnu-build-system)
2935 (native-inputs
2936 `(("pkg-config" ,pkg-config)
2937 ("intltool" ,intltool)))
2938 (propagated-inputs
2939 `(("gtk+" ,gtk+-2)
2940 ("libxres" ,libxres)
2941 ("startup-notification" ,startup-notification)))))
2942
2943 (define-public goffice
2944 (package
2945 (name "goffice")
2946 (version "0.10.46")
2947 (source (origin
2948 (method url-fetch)
2949 (uri (string-append "mirror://gnome/sources/goffice/"
2950 (version-major+minor version) "/"
2951 "goffice-" version ".tar.xz"))
2952 (sha256
2953 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
2954 (build-system gnu-build-system)
2955 (outputs '("out"
2956 "doc")) ; 4.0 MiB of gtk-doc
2957 (arguments
2958 '(#:configure-flags (list (string-append "--with-html-dir="
2959 (assoc-ref %outputs "doc")
2960 "/share/gtk-doc/html"))))
2961 (inputs
2962 `(("gtk+" ,gtk+)
2963 ("libgsf" ,libgsf)
2964 ("librsvg" ,librsvg)
2965 ("libxslt" ,libxslt)
2966 ("libxml2" ,libxml2)))
2967 (native-inputs
2968 `(("intltool" ,intltool)
2969 ("glib" ,glib "bin")
2970 ("pkg-config" ,pkg-config)))
2971 (home-page "https://developer.gnome.org/goffice/")
2972 (synopsis "Document-centric objects and utilities")
2973 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2974 (license
2975 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2976 ;; Note: NOT LGPL
2977 (list license:gpl2 license:gpl3))))
2978
2979 (define-public goffice-0.8
2980 (package (inherit goffice)
2981 (version "0.8.17")
2982 (source (origin
2983 (method url-fetch)
2984 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
2985 (version-major+minor version) "/"
2986 (package-name goffice) "-" version ".tar.xz"))
2987 (sha256
2988 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
2989 (arguments
2990 `(#:phases
2991 (modify-phases %standard-phases
2992 (add-after 'unpack 'fix-pcre-check
2993 (lambda _
2994 ;; Only glib.h can be included directly. See
2995 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
2996 (substitute* "configure"
2997 (("glib/gregex\\.h") "glib.h")) #t)))
2998
2999 ,@(package-arguments goffice)))
3000 (propagated-inputs
3001 ;; libgoffice-0.8.pc mentions libgsf-1
3002 `(("libgsf" ,libgsf)))
3003 (inputs
3004 `(("gtk" ,gtk+-2)
3005 ,@(alist-delete "gtk" (package-inputs goffice))))))
3006
3007 (define-public gnumeric
3008 (package
3009 (name "gnumeric")
3010 (version "1.12.46")
3011 (source (origin
3012 (method url-fetch)
3013 (uri (string-append "mirror://gnome/sources/gnumeric/"
3014 (version-major+minor version) "/"
3015 "gnumeric-" version ".tar.xz"))
3016 (sha256
3017 (base32
3018 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3019 (build-system glib-or-gtk-build-system)
3020 (arguments
3021 `(;; The gnumeric developers don't worry much about failing tests.
3022 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3023 #:tests? #f
3024 #:phases
3025 (modify-phases %standard-phases
3026 (add-before
3027 'configure 'pre-conf
3028 (lambda* (#:key outputs #:allow-other-keys)
3029 ;; Make install tries to write into the directory of goffice
3030 ;; I am informed that this only affects the possibility to embed a
3031 ;; spreadsheet inside an Abiword document. So presumably when we
3032 ;; package Abiword we'll have to refer it to this directory.
3033 (substitute* "configure"
3034 (("^GOFFICE_PLUGINS_DIR=.*")
3035 (string-append "GOFFICE_PLUGINS_DIR="
3036 (assoc-ref outputs "out")
3037 "/goffice/plugins"))))))))
3038 (inputs
3039 `(("glib" ,glib)
3040 ("gtk+" ,gtk+)
3041 ("goffice" ,goffice)
3042 ("libgsf" ,libgsf)
3043 ("librsvg" ,librsvg)
3044 ("libxml2" ,libxml2)
3045 ("libxslt" ,libxslt)
3046 ("python" ,python-2)
3047 ("python2-pygobject" ,python2-pygobject)
3048 ("zlib" ,zlib)))
3049 (native-inputs
3050 `(("bison" ,bison)
3051 ("docbook-xml" ,docbook-xml)
3052 ("intltool" ,intltool)
3053 ("itstool" ,itstool)
3054 ("glib:bin" ,glib "bin")
3055 ("pkg-config" ,pkg-config)))
3056 (home-page "http://www.gnumeric.org")
3057 (synopsis "Spreadsheet application")
3058 (description
3059 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3060 interoperable with other spreadsheet applications. It has a vast array of
3061 features beyond typical spreadsheet functionality, such as support for linear
3062 and non-linear solvers, statistical analysis, and telecommunication
3063 engineering.")
3064 (license
3065 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3066 (list license:gpl2 license:gpl3))))
3067
3068 (define-public gnome-themes-standard
3069 (package
3070 (name "gnome-themes-standard")
3071 (version "3.22.3")
3072 (source
3073 (origin
3074 (method url-fetch)
3075 (uri (string-append "mirror://gnome/sources/" name "/"
3076 (version-major+minor version) "/" name "-"
3077 version ".tar.xz"))
3078 (sha256
3079 (base32
3080 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3081 (build-system gnu-build-system)
3082 (arguments
3083 '(#:configure-flags
3084 ;; Don't create 'icon-theme.cache'.
3085 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3086 (true (string-append coreutils "/bin/true")))
3087 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3088 (inputs
3089 `(("gtk+" ,gtk+)
3090 ("gtk+-2" ,gtk+-2)
3091 ("librsvg" ,librsvg)
3092 ("libxml2" ,libxml2)
3093 ("glib" ,glib)))
3094 (native-inputs
3095 `(("intltool" ,intltool)
3096 ("glib:bin" ,glib "bin")
3097 ("pkg-config" ,pkg-config)))
3098 (home-page "https://launchpad.net/gnome-themes-standard")
3099 (synopsis "Default GNOME 3 themes")
3100 (description
3101 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3102 (license license:lgpl2.1+)))
3103
3104 (define-public seahorse
3105 (package
3106 (name "seahorse")
3107 (version "3.32.2")
3108 (source
3109 (origin
3110 (method url-fetch)
3111 (uri (string-append "mirror://gnome/sources/" name "/"
3112 (version-major+minor version) "/" name "-"
3113 version ".tar.xz"))
3114 (sha256
3115 (base32
3116 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
3117 (patches (search-patches
3118 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3119 (build-system meson-build-system)
3120 (arguments
3121 '(#:glib-or-gtk? #t
3122 #:phases
3123 (modify-phases %standard-phases
3124 (add-after 'unpack 'skip-gtk-update-icon-cache
3125 ;; Don't create 'icon-theme.cache'.
3126 (lambda _
3127 (substitute* "build-aux/meson_post_install.py"
3128 (("gtk-update-icon-cache") "true"))
3129 #t)))))
3130 (inputs
3131 `(("gtk+" ,gtk+)
3132 ("gcr" ,gcr)
3133 ("gnupg" ,gnupg)
3134 ("gpgme" ,gpgme)
3135 ("openldap" ,openldap)
3136 ("openssh" ,openssh)
3137 ("avahi" ,avahi)
3138 ("libpwquality" ,libpwquality)
3139 ("libsecret" ,libsecret)
3140 ("libsoup" ,libsoup)))
3141 (native-inputs
3142 `(("gettext" ,gettext-minimal)
3143 ("glib:bin" ,glib "bin")
3144 ("itstool" ,itstool)
3145 ("pkg-config" ,pkg-config)
3146 ("vala" ,vala)
3147 ("xmllint" ,libxml2)))
3148 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3149 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3150 (description
3151 "Seahorse is a GNOME application for managing encryption keys and
3152 passwords in the GNOME keyring.")
3153 (license license:gpl2+)))
3154
3155 (define-public vala
3156 (package
3157 (name "vala")
3158 (version "0.46.5")
3159 (source (origin
3160 (method url-fetch)
3161 (uri (string-append "mirror://gnome/sources/" name "/"
3162 (version-major+minor version) "/"
3163 name "-" version ".tar.xz"))
3164 (sha256
3165 (base32
3166 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
3167 (build-system gnu-build-system)
3168 (arguments
3169 '(#:phases
3170 (modify-phases %standard-phases
3171 (add-before 'check 'pre-check
3172 (lambda _
3173 (setenv "CC" "gcc")
3174 (substitute* "valadoc/tests/testrunner.sh"
3175 (("export PKG_CONFIG_PATH=" m)
3176 (string-append m "$PKG_CONFIG_PATH:")))
3177 ;; For missing '/etc/machine-id'.
3178 (setenv "DBUS_FATAL_WARNINGS" "0")
3179 #t)))))
3180 (native-inputs
3181 `(("pkg-config" ,pkg-config)
3182 ("flex" ,flex)
3183 ("bison" ,bison)
3184 ("xsltproc" ,libxslt)
3185 ("dbus" ,dbus) ; for dbus tests
3186 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3187 (inputs
3188 `(("graphviz" ,graphviz)))
3189 (propagated-inputs
3190 `(("glib" ,glib))) ; required by libvala-0.40.pc
3191 (home-page "https://live.gnome.org/Vala/")
3192 (synopsis "Compiler for the GObject type system")
3193 (description
3194 "Vala is a programming language that aims to bring modern programming
3195 language features to GNOME developers without imposing any additional runtime
3196 requirements and without using a different ABI compared to applications and
3197 libraries written in C.")
3198 (license license:lgpl2.1+)))
3199
3200 (define-public vte
3201 (package
3202 (name "vte")
3203 (version "0.58.3")
3204 (source (origin
3205 (method url-fetch)
3206 (uri (string-append "mirror://gnome/sources/vte/"
3207 (version-major+minor version) "/"
3208 "vte-" version ".tar.xz"))
3209 (sha256
3210 (base32
3211 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3212 (build-system meson-build-system)
3213 (native-inputs
3214 `(("pkg-config" ,pkg-config)
3215 ("intltool" ,intltool)
3216 ("vala" ,vala)
3217 ("gobject-introspection" ,gobject-introspection)
3218 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3219 ("gperf" ,gperf)
3220 ("xmllint" ,libxml2)))
3221 (propagated-inputs
3222 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3223 ("gnutls" ,gnutls) ; ditto
3224 ("pcre2" ,pcre2))) ; ditto
3225 (home-page "https://www.gnome.org/")
3226 (synopsis "Virtual Terminal Emulator")
3227 (description
3228 "VTE is a library (libvte) implementing a terminal emulator widget for
3229 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3230 gnome-terminal, but can also be used to embed a console/terminal in games,
3231 editors, IDEs, etc.")
3232 (license license:lgpl2.1+)))
3233
3234 (define-public vte-ng
3235 (package
3236 (inherit vte)
3237 (name "vte-ng")
3238 (version "0.58.2.a")
3239 (home-page "https://github.com/thestinger/vte-ng")
3240 (source (origin
3241 (method git-fetch)
3242 (uri (git-reference (url home-page) (commit version)))
3243 (file-name (git-file-name name version))
3244 (sha256
3245 (base32
3246 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3247 (build-system meson-build-system)
3248 (native-inputs
3249 `(("gtk-doc" ,gtk-doc)
3250 ,@(package-native-inputs vte)))
3251 (arguments
3252 `(#:configure-flags '("-Ddocs=true")))
3253 (synopsis "Enhanced VTE terminal widget")
3254 (description
3255 "VTE is a library (libvte) implementing a terminal emulator widget for
3256 GTK+, this fork provides additional functions exposed for keyboard text
3257 selection and URL hints.")))
3258
3259 ;; provides vte 2.90, required for some terminal emulators
3260 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3261 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3262 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3263 ;; pantheon-terminal, roxterm are not currently packaged
3264 (define-public vte-0.36
3265 (package (inherit vte)
3266 (name "vte")
3267 (version "0.36.5")
3268 (source (origin
3269 (method url-fetch)
3270 (uri (string-append "mirror://gnome/sources/" name "/"
3271 (version-major+minor version) "/"
3272 name "-" version ".tar.xz"))
3273 (sha256
3274 (base32
3275 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3276 (propagated-inputs
3277 `(("gtk" ,gtk+)
3278 ("ncurses" ,ncurses)))))
3279
3280 ;; stable version for gtk2, required by xfce4-terminal.
3281 (define-public vte/gtk+-2
3282 (package (inherit vte)
3283 (name "vte")
3284 (version "0.28.2")
3285 (source (origin
3286 (method url-fetch)
3287 (uri (string-append "mirror://gnome/sources/" name "/"
3288 (version-major+minor version) "/"
3289 name "-" version ".tar.xz"))
3290 (sha256
3291 (base32
3292 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3293 (patches (search-patches
3294 "vte-CVE-2012-2738-pt1.patch"
3295 "vte-CVE-2012-2738-pt2.patch"))))
3296 (build-system gnu-build-system)
3297 (arguments
3298 '(#:configure-flags '("--disable-python")))
3299 (native-inputs
3300 `(("pkg-config" ,pkg-config)
3301 ("intltool" ,intltool)
3302 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3303 (propagated-inputs
3304 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3305 ("ncurses" ,ncurses))))) ; required by libvte.la
3306
3307 (define-public vinagre
3308 (package
3309 (name "vinagre")
3310 (version "3.22.0")
3311 (source (origin
3312 (method url-fetch)
3313 (uri (string-append "mirror://gnome/sources/" name "/"
3314 (version-major+minor version) "/"
3315 name "-" version ".tar.xz"))
3316 (patches (search-patches "vinagre-newer-freerdp.patch"
3317 "vinagre-newer-rdp-parameters.patch"))
3318 (sha256
3319 (base32
3320 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3321 (build-system glib-or-gtk-build-system)
3322 (arguments
3323 ;; Disable -Werror and such, to avoid build failures on compilation
3324 ;; warnings.
3325 '(#:configure-flags '("--enable-compile-warnings=minimum")
3326 #:phases
3327 (modify-phases %standard-phases
3328 (add-before 'install 'skip-gtk-update-icon-cache
3329 (lambda _
3330 ;; Don't create 'icon-theme.cache'
3331 (substitute* (find-files "." "^Makefile$")
3332 (("gtk-update-icon-cache") (which "true")))
3333 #t))
3334 (add-after 'unpack 'patch-configure
3335 (lambda _
3336 (substitute* "configure"
3337 (("freerdp") "freerdp2"))
3338 #t)))))
3339 (native-inputs
3340 `(("pkg-config" ,pkg-config)
3341 ("intltool" ,intltool)
3342 ("itstool" ,itstool)
3343 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3344 (inputs
3345 `(("libxml2" ,libxml2)
3346 ("gtk-vnc" ,gtk-vnc)
3347 ("gnome-keyring" ,gnome-keyring)
3348 ("libsecret" ,libsecret)
3349 ("freerdp" ,freerdp)
3350 ("spice" ,spice)
3351 ("spice-gtk" ,spice-gtk)
3352 ("telepathy-glib" ,telepathy-glib)
3353 ("vte" ,vte)))
3354 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3355 (synopsis "Remote desktop viewer for GNOME")
3356 (description "Vinagre is a remote display client supporting the VNC, SPICE
3357 and RDP protocols.")
3358 (license license:gpl3+)))
3359
3360 (define-public dconf
3361 (package
3362 (name "dconf")
3363 (version "0.34.0")
3364 (source (origin
3365 (method url-fetch)
3366 (uri (string-append
3367 "mirror://gnome/sources/" name "/"
3368 (version-major+minor version) "/"
3369 name "-" version ".tar.xz"))
3370 (patches (search-patches "dconf-meson-0.52.patch"))
3371 (sha256
3372 (base32
3373 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
3374 (build-system meson-build-system)
3375 (propagated-inputs
3376 ;; In Requires of dconf.pc.
3377 `(("glib" ,glib)))
3378 (inputs
3379 `(("gtk+" ,gtk+)
3380 ("dbus" ,dbus)))
3381 (native-inputs
3382 `(("bash-completion" ,bash-completion)
3383 ("libxslt" ,libxslt) ;for xsltproc
3384 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3385 ("docbook-xml" ,docbook-xml-4.2)
3386 ("docbook-xsl" ,docbook-xsl)
3387 ("glib:bin" ,glib "bin")
3388 ("gtk-doc" ,gtk-doc)
3389 ("pkg-config" ,pkg-config)
3390 ("vala" ,vala)))
3391 (arguments
3392 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3393 ; or /etc/machine-id.
3394 #:glib-or-gtk? #t
3395 #:configure-flags '("-Denable-gtk-doc=true")))
3396 (home-page "https://developer.gnome.org/dconf")
3397 (synopsis "Low-level GNOME configuration system")
3398 (description "Dconf is a low-level configuration system. Its main purpose
3399 is to provide a backend to GSettings on platforms that don't already have
3400 configuration storage systems.")
3401 (license license:lgpl2.1+)))
3402
3403 (define-public json-glib
3404 (package
3405 (name "json-glib")
3406 (version "1.4.4")
3407 (source (origin
3408 (method url-fetch)
3409 (uri (string-append "mirror://gnome/sources/" name "/"
3410 (version-major+minor version) "/"
3411 name "-" version ".tar.xz"))
3412 (sha256
3413 (base32
3414 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3415 (build-system meson-build-system)
3416 (native-inputs
3417 `(("gettext" ,gettext-minimal)
3418 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3419 ("gobject-introspection" ,gobject-introspection)
3420 ("pkg-config" ,pkg-config)))
3421 (propagated-inputs
3422 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3423 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3424 (synopsis "Compiler for the GObject type system")
3425 (description
3426 "JSON-GLib is a C library based on GLib providing serialization and
3427 deserialization support for the JavaScript Object Notation (JSON) format
3428 described by RFC 4627. It provides parser and generator GObject classes and
3429 various wrappers for the complex data types employed by JSON, such as arrays
3430 and objects.")
3431 (license license:lgpl2.1+)))
3432
3433 (define-public libxklavier
3434 (package
3435 (name "libxklavier")
3436 (version "5.4")
3437 (source (origin
3438 ;; Note: There's no tarball at ftp.gnome.org for this version.
3439 (method git-fetch)
3440 (uri (git-reference
3441 (url "https://anongit.freedesktop.org/git/libxklavier")
3442 (commit (string-append "libxklavier-" version))))
3443 (sha256
3444 (base32
3445 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3446 (file-name (git-file-name name version))))
3447 (build-system gnu-build-system)
3448 (arguments
3449 '(#:configure-flags
3450 (list (string-append "--with-xkb-base="
3451 (assoc-ref %build-inputs "xkeyboard-config")
3452 "/share/X11/xkb")
3453 "--disable-xmodmap-support")))
3454 (native-inputs
3455 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3456 ("gobject-introspection" ,gobject-introspection)
3457 ("pkg-config" ,pkg-config)
3458 ("gtk-doc" ,gtk-doc)
3459 ("intltool" ,intltool)
3460 ("which" ,which)
3461 ("autoconf" ,autoconf)
3462 ("automake" ,automake)
3463 ("libtool" ,libtool)))
3464 (propagated-inputs
3465 ;; Required by libxklavier.pc.
3466 `(("glib" ,glib)
3467 ("libxml2" ,libxml2)))
3468 (inputs
3469 `(("iso-codes" ,iso-codes)
3470 ("libxi" ,libxi)
3471 ("libxkbfile" ,libxkbfile)
3472 ("xkbcomp" ,xkbcomp)
3473 ("xkeyboard-config" ,xkeyboard-config)))
3474 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3475 (synopsis "High-level API for X Keyboard Extension")
3476 (description
3477 "LibXklavier is a library providing high-level API for X Keyboard
3478 Extension known as XKB. This library is intended to support XFree86 and other
3479 commercial X servers. It is useful for creating XKB-related software (layout
3480 indicators etc).")
3481 (license license:lgpl2.0+)))
3482
3483 (define-public python2-rsvg
3484 ;; XXX: This is actually a subset of gnome-python-desktop.
3485 (package
3486 (name "python2-rsvg")
3487 (version "2.32.0")
3488 (source
3489 (origin
3490 (method url-fetch)
3491 (uri (string-append
3492 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3493 version ".tar.bz2"))
3494 (sha256
3495 (base32
3496 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3497 (build-system gnu-build-system)
3498 (native-inputs
3499 `(("pkg-config" ,pkg-config)))
3500 (inputs
3501 `(("python" ,python-2)
3502 ("python2-pygtk" ,python2-pygtk)
3503 ("librsvg" ,librsvg)))
3504 (home-page "https://www.gnome.org")
3505 (synopsis "Python bindings to librsvg")
3506 (description
3507 "This package provides Python bindings to librsvg, the SVG rendering
3508 library.")
3509
3510 ;; This is the license of the rsvg bindings. The license of each module
3511 ;; of gnome-python-desktop is given in 'COPYING'.
3512 (license license:lgpl2.1+)))
3513
3514 (define-public glib-networking
3515 (package
3516 (name "glib-networking")
3517 (version "2.62.2")
3518 (source (origin
3519 (method url-fetch)
3520 (uri (string-append "mirror://gnome/sources/glib-networking/"
3521 (version-major+minor version) "/"
3522 "glib-networking-" version ".tar.xz"))
3523 (sha256
3524 (base32
3525 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
3526 (build-system meson-build-system)
3527 (arguments
3528 `(#:configure-flags '("-Dlibproxy_support=false")))
3529 (native-inputs
3530 `(("pkg-config" ,pkg-config)
3531 ("intltool" ,intltool)))
3532 (inputs
3533 `(("glib" ,glib)
3534 ("gnutls" ,gnutls)
3535 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3536 (home-page "https://www.gnome.org")
3537 (synopsis "Network-related GIO modules")
3538 (description
3539 "This package contains various network related extensions for the GIO
3540 library.")
3541 (license license:lgpl2.0+)))
3542
3543 (define-public rest
3544 (package
3545 (name "rest")
3546 (version "0.8.1")
3547 (source (origin
3548 (method url-fetch)
3549 (uri (string-append "mirror://gnome/sources/rest/"
3550 (version-major+minor version) "/"
3551 name "-" version ".tar.xz"))
3552 (sha256
3553 (base32
3554 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3555 (build-system gnu-build-system)
3556 (arguments
3557 '(#:tests? #f ; tests require internet connection
3558 #:configure-flags
3559 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3560 (native-inputs
3561 `(("glib-mkenums" ,glib "bin")
3562 ("gobject-introspection" ,gobject-introspection)
3563 ("pkg-config" ,pkg-config)))
3564 (propagated-inputs
3565 ;; rest-0.7.pc refers to all these.
3566 `(("glib" ,glib)
3567 ("libsoup" ,libsoup)
3568 ("libxml2" ,libxml2)))
3569 (home-page "https://www.gtk.org/")
3570 (synopsis "RESTful web api query library")
3571 (description
3572 "This library was designed to make it easier to access web services that
3573 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3574 libxml to ease remote use of the RESTful API.")
3575 (license license:lgpl2.1+)))
3576
3577 (define-public libsoup
3578 (package
3579 (name "libsoup")
3580 (version "2.70.0")
3581 (source (origin
3582 (method url-fetch)
3583 (uri (string-append "mirror://gnome/sources/libsoup/"
3584 (version-major+minor version) "/"
3585 "libsoup-" version ".tar.xz"))
3586 (sha256
3587 (base32
3588 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
3589 (build-system meson-build-system)
3590 (outputs '("out" "doc"))
3591 (arguments
3592 `(#:modules ((guix build utils)
3593 (guix build meson-build-system)
3594 (ice-9 popen))
3595
3596 #:configure-flags '("-Dgtk_doc=true")
3597 #:phases
3598 (modify-phases %standard-phases
3599 (add-after 'unpack 'adjust-tests
3600 (lambda _
3601 ;; This test fails due to missing /etc/nsswitch.conf
3602 ;; in the build environment.
3603 (substitute* "tests/socket-test.c"
3604 ((".*/sockets/unconnected.*") ""))
3605
3606 ;; These fail because "subdomain.localhost" does not resolve in
3607 ;; the build environment.
3608 (substitute* "tests/hsts-test.c"
3609 ((".*/hsts/basic.*") "")
3610 ((".*/hsts/subdomains.*") "")
3611 ((".*/hsts/superdomain.*") "")
3612 ((".*/hsts/utf8-address.*") ""))
3613 (substitute* "tests/hsts-db-test.c"
3614 ((".*/hsts-db/subdomains.*") ""))
3615
3616 ;; Generate a self-signed certificate that has "localhost" as its
3617 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3618 ;; 3.5.12, tests such as "ssl-tests" fail:
3619 ;;
3620 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3621 ;;
3622 ;; 'certtool' is interactive so we have to pipe it the answers.
3623 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3624 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3625 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3626 (for-each (lambda (line)
3627 (display line pipe)
3628 (newline pipe))
3629 '("" ;Common name
3630 "" ;UID
3631 "Guix" ;Organizational unit name
3632 "GNU" ;Organization name
3633 "" ;Locality name
3634 "" ;State or province
3635 "" ;Country
3636 "" ;subject's domain component (DC)
3637 "" ;E-mail
3638 "" ;serial number
3639 "-1" ;expiration time
3640 "N" ;belong to authority?
3641 "N" ;web client certificate?
3642 "N" ;IPsec IKE?
3643 "Y" ;web server certificate?
3644 "localhost" ;dnsName of subject
3645 "" ;dnsName of subject (end)
3646 "" ;URI of subject
3647 "127.0.0.1" ;IP address of subject
3648 "" ;signing?
3649 "" ;encryption (RSA)?
3650 "" ;data encryption?
3651 "" ;sign OCSP requests?
3652 "" ;sign code?
3653 "" ;time stamping?
3654 "" ;email protection?
3655 "" ;URI of the CRL distribution point
3656 "y" ;above info OK?
3657 ))
3658 (close-pipe pipe))
3659 #t))
3660 (add-after 'install 'move-doc
3661 (lambda* (#:key outputs #:allow-other-keys)
3662 (let ((out (assoc-ref outputs "out"))
3663 (doc (assoc-ref outputs "doc")))
3664 (mkdir-p (string-append doc "/share"))
3665 (copy-recursively (string-append out "/share/gtk-doc")
3666 (string-append doc "/share/gtk-doc"))
3667 (delete-file-recursively (string-append out "/share/gtk-doc"))
3668 #t))))))
3669 (native-inputs
3670 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3671 ("gobject-introspection" ,gobject-introspection)
3672 ("gtk-doc" ,gtk-doc)
3673 ("intltool" ,intltool)
3674 ("pkg-config" ,pkg-config)
3675 ("python" ,python-wrapper)
3676 ("vala" ,vala)
3677 ;; These are needed for the tests.
3678 ;; FIXME: Add PHP once available.
3679 ("curl" ,curl)
3680 ("gnutls" ,gnutls) ;for 'certtool'
3681 ("httpd" ,httpd)))
3682 (propagated-inputs
3683 ;; libsoup-2.4.pc refers to all these.
3684 `(("brotli" ,google-brotli)
3685 ("glib" ,glib)
3686 ("libpsl" ,libpsl)
3687 ("libxml2" ,libxml2)
3688 ("sqlite" ,sqlite)
3689 ("zlib" ,zlib)))
3690 (inputs
3691 `(("glib-networking" ,glib-networking)
3692 ("mit-krb5" ,mit-krb5)))
3693 (home-page "https://live.gnome.org/LibSoup/")
3694 (synopsis "GLib-based HTTP Library")
3695 (description
3696 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3697 and the GLib main loop, to integrate well with GNOME applications.")
3698 (license license:lgpl2.0+)))
3699
3700 (define-public libsecret
3701 (package
3702 (name "libsecret")
3703 (version "0.20.2")
3704 (source (origin
3705 (method url-fetch)
3706 (uri (string-append
3707 "mirror://gnome/sources/libsecret/"
3708 (version-major+minor version) "/"
3709 "libsecret-" version ".tar.xz"))
3710 (sha256
3711 (base32
3712 "1hzz34gmsxxf1jm1b7qin390rkwbg8sx198xdkwxqp3q6cw19sc1"))))
3713 (build-system gnu-build-system)
3714 (outputs '("out" "doc"))
3715 (arguments
3716 `(#:tests? #f ; FIXME: Testing hangs.
3717 #:configure-flags
3718 (list (string-append "--with-html-dir="
3719 (assoc-ref %outputs "doc")
3720 "/share/gtk-doc/html"))))
3721 (native-inputs
3722 `(("gettext" ,gettext-minimal)
3723 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3724 ("gobject-introspection" ,gobject-introspection)
3725 ("pkg-config" ,pkg-config)
3726 ("vala" ,vala)
3727 ("xsltproc" ,libxslt)))
3728 ;; These are needed for the tests.
3729 ;; FIXME: Add gjs once available.
3730 ;("dbus" ,dbus)
3731 ;("python2" ,python-2)
3732 ;("python2-dbus" ,python2-dbus)
3733 ;("python2-pygobject" ,python2-pygobject)
3734 ;("python2-pygobject-2" ,python2-pygobject-2)))
3735 (propagated-inputs
3736 `(("glib" ,glib))) ; required by libsecret-1.pc
3737 (inputs
3738 `(("docbook-xsl" ,docbook-xsl)
3739 ("libgcrypt" ,libgcrypt)
3740 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3741 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3742 (synopsis "GObject bindings for \"Secret Service\" API")
3743 (description
3744 "Libsecret is a GObject based library for storing and retrieving passwords
3745 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3746 (license license:lgpl2.1+)))
3747
3748 (define-public five-or-more
3749 (package
3750 (name "five-or-more")
3751 (version "3.32.1")
3752 (source
3753 (origin
3754 (method url-fetch)
3755 (uri (string-append "mirror://gnome/sources/five-or-more/"
3756 (version-major+minor version) "/"
3757 "five-or-more-" version ".tar.xz"))
3758 (sha256
3759 (base32 "0xw05dd2dwi9vsph9h158b4n89s5k07xrh6bjz1icm0pdmjwhpgk"))))
3760 (build-system meson-build-system)
3761 (arguments
3762 '(#:glib-or-gtk? #t
3763 #:phases
3764 (modify-phases %standard-phases
3765 (add-after 'unpack 'skip-gtk-update-icon-cache
3766 (lambda _
3767 (substitute* "meson_post_install.py"
3768 (("gtk-update-icon-cache") (which "true")))
3769 #t)))))
3770 (native-inputs
3771 `(("pkg-config" ,pkg-config)
3772 ("appstream-glib" ,appstream-glib)
3773 ("desktop-file-utils" ,desktop-file-utils)
3774 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3775 ("intltool" ,intltool)
3776 ("itstool" ,itstool)
3777 ("vala" ,vala)
3778 ("xmllint" ,libxml2)))
3779 (inputs
3780 `(("gtk+" ,gtk+)
3781 ("libgnome-games-support" ,libgnome-games-support)
3782 ("librsvg" ,librsvg)))
3783 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3784 (synopsis "Logic puzzle game")
3785 (description "Five or More is a game where you try to align
3786 five or more objects of the same color and shape causing them to disappear.
3787 On every turn more objects will appear, until the board is full.
3788 Try to last as long as possible.")
3789 (license license:gpl2+)))
3790
3791 (define-public gnome-mines
3792 (package
3793 (name "gnome-mines")
3794 (version "3.32.2")
3795 (source
3796 (origin
3797 (method url-fetch)
3798 (uri (string-append "mirror://gnome/sources/" name "/"
3799 (version-major+minor version) "/"
3800 name "-" version ".tar.xz"))
3801 (sha256
3802 (base32
3803 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
3804 (build-system meson-build-system)
3805 (arguments
3806 '(#:glib-or-gtk? #t
3807 #:phases
3808 (modify-phases %standard-phases
3809 (add-after 'unpack 'skip-gtk-update-icon-cache
3810 (lambda _
3811 (substitute* "build-aux/meson_post_install.py"
3812 (("gtk-update-icon-cache") (which "true")))
3813 #t)))))
3814 (native-inputs
3815 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3816 ("pkg-config" ,pkg-config)
3817 ("desktop-file-utils" ,desktop-file-utils)
3818 ("intltool" ,intltool)
3819 ("itstool" ,itstool)
3820 ("vala" ,vala)
3821 ("yelp" ,yelp)
3822 ("appstream-glib" ,appstream-glib)))
3823 (inputs
3824 `(("gtk+" ,gtk+)
3825 ("libgnome-games-support" ,libgnome-games-support)
3826 ("librsvg" ,librsvg)))
3827 (home-page "https://wiki.gnome.org/Apps/Mines")
3828 (synopsis "Minesweeper game")
3829 (description
3830 "Mines (previously gnomine) is a puzzle game where you locate mines
3831 floating in an ocean using only your brain and a little bit of luck.")
3832 (license license:gpl2+)))
3833
3834 (define-public gnome-sudoku
3835 (package
3836 (name "gnome-sudoku")
3837 (version "3.32.0")
3838 (source
3839 (origin
3840 (method url-fetch)
3841 (uri (string-append "mirror://gnome/sources/" name "/"
3842 (version-major+minor version) "/"
3843 name "-" version ".tar.xz"))
3844 (sha256
3845 (base32
3846 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3847 (build-system meson-build-system)
3848 (arguments
3849 '(#:glib-or-gtk? #t
3850 #:phases
3851 (modify-phases %standard-phases
3852 (add-after 'unpack 'skip-gtk-update-icon-cache
3853 (lambda _
3854 (substitute* "build-aux/post_install.py"
3855 (("gtk-update-icon-cache") (which "true")))
3856 #t)))))
3857 (native-inputs
3858 `(("pkg-config" ,pkg-config)
3859 ("desktop-file-utils" ,desktop-file-utils)
3860 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3861 ("intltool" ,intltool)
3862 ("itstool" ,itstool)
3863 ("vala" ,vala)
3864 ("xmllint" ,libxml2)))
3865 (inputs
3866 `(("gtk+" ,gtk+)
3867 ("json-glib" ,json-glib)
3868 ("libgee" ,libgee)
3869 ("librsvg" ,librsvg)
3870 ("qqwing" ,qqwing)))
3871 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3872 (synopsis "Japanese logic game")
3873 (description
3874 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3875 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3876 possible while still providing features that make playing difficult Sudoku
3877 more fun.")
3878 (license license:gpl2+)))
3879
3880 (define-public gnome-terminal
3881 (package
3882 (name "gnome-terminal")
3883 (version "3.34.2")
3884 (source
3885 (origin
3886 (method url-fetch)
3887 (uri (string-append "mirror://gnome/sources/" name "/"
3888 (version-major+minor version) "/"
3889 name "-" version ".tar.xz"))
3890 (sha256
3891 (base32
3892 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
3893 (build-system glib-or-gtk-build-system)
3894 (arguments
3895 '(#:configure-flags
3896 (list "--disable-migration" "--disable-search-provider"
3897 "--without-nautilus-extension")
3898 #:phases
3899 (modify-phases %standard-phases
3900 (add-before 'configure 'patch-/bin/true
3901 (lambda _
3902 (substitute* "configure"
3903 (("/bin/true") (which "true"))))))))
3904 (native-inputs
3905 `(("pkg-config" ,pkg-config)
3906 ("desktop-file-utils" ,desktop-file-utils)
3907 ("intltool" ,intltool)
3908 ("itstool" ,itstool)
3909 ("xmllint" ,libxml2)))
3910 (propagated-inputs
3911 `(("dconf" ,dconf)))
3912 (inputs
3913 `(("gtk+" ,gtk+)
3914 ("vte" ,vte)
3915 ("gnutls" ,gnutls)
3916 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3917 ("util-linux" ,util-linux "lib")
3918 ("vala" ,vala)))
3919 (home-page "https://wiki.gnome.org/Apps/Terminal")
3920 (synopsis "Terminal emulator")
3921 (description
3922 "GNOME Terminal is a terminal emulator application for accessing a
3923 UNIX shell environment which can be used to run programs available on
3924 your system.
3925
3926 It supports several profiles, multiple tabs and implements several
3927 keyboard shortcuts.")
3928 (license license:gpl3+)))
3929
3930 (define-public colord
3931 (package
3932 (name "colord")
3933 (version "1.4.4")
3934 (source
3935 (origin
3936 (method url-fetch)
3937 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
3938 "colord-" version ".tar.xz"))
3939 (sha256
3940 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
3941 (build-system meson-build-system)
3942 (arguments
3943 '(;; FIXME: One test fails:
3944 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3945 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3946 ;; application/x-zerosize
3947 #:tests? #f
3948 #:glib-or-gtk? #t
3949 #:configure-flags (list "-Dlocalstatedir=/var"
3950 ;; No dep on systemd.
3951 "-Dsystemd=false"
3952 ;; Wants to install to global completion dir;
3953 ;; punt.
3954 "-Dbash_completion=false"
3955 "-Ddaemon_user=colord"
3956 "-Dsane=true"
3957 "-Dvapi=true"
3958 ;; Requires spotread.
3959 "-Dargyllcms_sensor=false"
3960 ;; TODO: Requires docbook2x.
3961 "-Dman=false")
3962 #:phases
3963 (modify-phases %standard-phases
3964 (add-before 'configure 'patch-build-system
3965 (lambda* (#:key outputs #:allow-other-keys)
3966 (substitute* "rules/meson.build"
3967 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
3968 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
3969 #t))
3970 (add-before 'configure 'set-sqlite3-file-name
3971 (lambda* (#:key inputs #:allow-other-keys)
3972 ;; "colormgr dump" works by invoking the "sqlite3" command.
3973 ;; Record its absolute file name.
3974 (let ((sqlite (assoc-ref inputs "sqlite")))
3975 (substitute* "client/cd-util.c"
3976 (("\"sqlite3\"")
3977 (string-append "\"" sqlite "/bin/sqlite3\"")))
3978 #t))))))
3979 (native-inputs
3980 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
3981 ("gettext" ,gettext-minimal)
3982 ("gobject-introspection" ,gobject-introspection)
3983 ("gtk-doc" ,gtk-doc)
3984 ("pkg-config" ,pkg-config)
3985 ("vala" ,vala)))
3986 (propagated-inputs
3987 ;; colord.pc refers to all these.
3988 `(("glib" ,glib)
3989 ("lcms" ,lcms)
3990 ("udev" ,eudev)))
3991 (inputs
3992 `(("dbus-glib" ,dbus-glib)
3993 ("gusb" ,gusb)
3994 ("libgudev" ,libgudev)
3995 ("libusb" ,libusb)
3996 ("polkit" ,polkit)
3997 ("python" ,python-wrapper)
3998 ("sqlite" ,sqlite)
3999 ("sane-backends" ,sane-backends)))
4000 (home-page "https://www.freedesktop.org/software/colord/")
4001 (synopsis "Color management service")
4002 (description "Colord is a system service that makes it easy to manage,
4003 install and generate color profiles to accurately color manage input and
4004 output devices.")
4005 (license license:gpl2+)))
4006
4007 (define-public geoclue
4008 (package
4009 (name "geoclue")
4010 (version "2.5.5")
4011 (source
4012 (origin
4013 (method url-fetch)
4014 (uri
4015 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4016 version "/geoclue-" version ".tar.bz2"))
4017 (sha256
4018 (base32
4019 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
4020 (patches (search-patches "geoclue-config.patch"))))
4021 (build-system meson-build-system)
4022 (arguments
4023 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4024 (native-inputs
4025 `(("pkg-config" ,pkg-config)
4026 ("gobject-introspection" ,gobject-introspection)
4027 ("modem-manager" ,modem-manager)
4028 ("libnotify" ,libnotify)
4029 ("gtk-doc", gtk-doc)
4030 ("intltool" ,intltool)))
4031 (inputs
4032 `(("avahi" ,avahi)
4033 ("glib:bin" ,glib "bin")
4034 ("glib-networking" ,glib-networking)
4035 ("json-glib" ,json-glib)
4036 ("libsoup" ,libsoup)))
4037 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4038 (synopsis "Geolocation service")
4039 (description "Geoclue is a D-Bus service that provides location
4040 information. The primary goal of the Geoclue project is to make creating
4041 location-aware applications as simple as possible, while the secondary goal is
4042 to ensure that no application can access location information without explicit
4043 permission from user.")
4044 (license license:gpl2+)))
4045
4046 (define-public geocode-glib
4047 (package
4048 (name "geocode-glib")
4049 (version "3.26.1")
4050 (source (origin
4051 (method url-fetch)
4052 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4053 (version-major+minor version) "/"
4054 "geocode-glib-" version ".tar.xz"))
4055 (sha256
4056 (base32
4057 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4058 (build-system meson-build-system)
4059 (arguments
4060 `(#:phases
4061 (modify-phases %standard-phases
4062 ;; The tests require a bunch of locales.
4063 (add-before 'check 'set-locales
4064 (lambda* (#:key inputs #:allow-other-keys)
4065 (setenv "GUIX_LOCPATH"
4066 (string-append (assoc-ref inputs "glibc-locales")
4067 "/lib/locale"))
4068 #t)))))
4069 (native-inputs
4070 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4071 ("glibc-locales" ,glibc-locales) ; for tests
4072 ("gettext" ,gettext-minimal)
4073 ("gobject-introspection" ,gobject-introspection)
4074 ("gtk-doc" ,gtk-doc)
4075 ("pkg-config" ,pkg-config)
4076 ("json-glib" ,json-glib)))
4077 (propagated-inputs
4078 ;; geocode-glib-1.0.pc refers to GIO.
4079 `(("glib" ,glib)))
4080 (inputs
4081 `(("libsoup" ,libsoup)))
4082 (home-page "https://github.com/GNOME/geocode-glib/")
4083 (synopsis "Geocoding and reverse-geocoding library")
4084 (description
4085 "geocode-glib is a convenience library for geocoding (finding longitude,
4086 and latitude from an address) and reverse geocoding (finding an address from
4087 coordinates) using the Nominatim service. geocode-glib caches requests for
4088 faster results and to avoid unnecessary server load.")
4089 (license license:lgpl2.0+)))
4090
4091 (define-public upower
4092 (package
4093 (name "upower")
4094 (version "0.99.11")
4095 (source (origin
4096 (method url-fetch)
4097 (uri (string-append "https://upower.freedesktop.org/releases/"
4098 "upower-" version ".tar.xz"))
4099 (sha256
4100 (base32
4101 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4102 (patches (search-patches "upower-builddir.patch"))
4103 (modules '((guix build utils)))
4104 (snippet
4105 '(begin
4106 ;; Upstream commit
4107 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4108 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4109 ;; 'dbus-configuration-directory' in (gnu services dbus)
4110 ;; expects it in etc/. Thus, move it back to its previous
4111 ;; location.
4112 (substitute* "src/Makefile.in"
4113 (("^dbusconfdir =.*$")
4114 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4115 #t))))
4116 (build-system glib-or-gtk-build-system)
4117 (arguments
4118 '( ;; The tests want to contact the system bus, which can't be done in the
4119 ;; build environment. The integration test can run, but the last of
4120 ;; the up-self-tests doesn't. Disable tests for now.
4121 #:tests? #f
4122 #:configure-flags (list "--localstatedir=/var"
4123 (string-append "--with-udevrulesdir="
4124 (assoc-ref %outputs "out")
4125 "/lib/udev/rules.d"))))
4126 (native-inputs
4127 `(("gobject-introspection" ,gobject-introspection)
4128 ("pkg-config" ,pkg-config)
4129 ("intltool" ,intltool)
4130 ("python" ,python)
4131
4132 ;; For man pages.
4133 ("libxslt" ,libxslt) ;for 'xsltproc'
4134 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4135 ("docbook-xsl" ,docbook-xsl)))
4136 (inputs
4137 `(("dbus-glib" ,dbus-glib)
4138 ("libgudev" ,libgudev)
4139 ("libusb" ,libusb)))
4140 (propagated-inputs
4141 ;; In Requires of upower-glib.pc.
4142 `(("glib" ,glib)))
4143 (home-page "https://upower.freedesktop.org/")
4144 (synopsis "System daemon for managing power devices")
4145 (description
4146 "UPower is an abstraction for enumerating power devices,
4147 listening to device events and querying history and statistics. Any
4148 application or service on the system can access the org.freedesktop.UPower
4149 service via the system message bus.")
4150 (license license:gpl2+)))
4151
4152 (define-public libgweather
4153 (package
4154 (name "libgweather")
4155 (version "3.34.0")
4156 (source (origin
4157 (method url-fetch)
4158 (uri (string-append "mirror://gnome/sources/" name "/"
4159 (version-major+minor version) "/"
4160 name "-" version ".tar.xz"))
4161 (sha256
4162 (base32
4163 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
4164 (build-system meson-build-system)
4165 (arguments
4166 `(#:tests? #f ; one of two tests requires network access
4167 #:configure-flags
4168 `(,(string-append "-Dzoneinfo_dir="
4169 (assoc-ref %build-inputs "tzdata")
4170 "/share/zoneinfo"))))
4171 (native-inputs
4172 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4173 ("gobject-introspection" ,gobject-introspection)
4174 ("pkg-config" ,pkg-config)
4175 ("vala" ,vala)
4176 ("intltool" ,intltool)))
4177 (propagated-inputs
4178 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4179 ;; libsoup.
4180 `(("gtk+" ,gtk+)
4181 ("gdk-pixbuf" ,gdk-pixbuf)
4182 ("libxml2" ,libxml2)
4183 ("libsoup" ,libsoup)
4184 ("geocode-glib" ,geocode-glib)))
4185 (inputs
4186 `(("tzdata" ,tzdata)))
4187 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4188 (synopsis "Location, time zone, and weather library for GNOME")
4189 (description
4190 "libgweather is a library to access weather information from online
4191 services for numerous locations.")
4192 (license license:gpl2+)))
4193
4194 (define-public gnome-settings-daemon
4195 (package
4196 (name "gnome-settings-daemon")
4197 (version "3.34.1")
4198 (source
4199 (origin
4200 (method url-fetch)
4201 (uri (string-append "mirror://gnome/sources/" name "/"
4202 (version-major+minor version) "/"
4203 name "-" version ".tar.xz"))
4204 (sha256
4205 (base32
4206 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
4207 (build-system meson-build-system)
4208 (arguments
4209 `(#:glib-or-gtk? #t
4210 #:configure-flags
4211 (list (string-append "-Dudev_dir="
4212 (assoc-ref %outputs "out")
4213 "/lib/udev/rules.d/")
4214 "-Dsystemd=false"
4215 ;; Otherwise, the RUNPATH will lack the final path component.
4216 (string-append "-Dc_link_args=-Wl,-rpath="
4217 (assoc-ref %outputs "out")
4218 "/lib/gnome-settings-daemon-3.0"))
4219 ;; Color management test can't reach the colord system service.
4220 #:tests? #f))
4221 (native-inputs
4222 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4223 ("pkg-config" ,pkg-config)
4224 ("intltool" ,intltool)
4225 ("xsltproc" ,libxslt)
4226 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4227 ("docbook-xml" ,docbook-xml-4.2)
4228 ("docbook-xsl" ,docbook-xsl)))
4229 (inputs
4230 `(("alsa-lib" ,alsa-lib)
4231 ("colord" ,colord)
4232 ("libgudev" ,libgudev)
4233 ("upower" ,upower)
4234 ("polkit" ,polkit)
4235 ("pulseaudio" ,pulseaudio)
4236 ("libcanberra" ,libcanberra)
4237 ("libx11" ,libx11)
4238 ("libxtst" ,libxtst)
4239 ("lcms" ,lcms)
4240 ("libnotify" ,libnotify)
4241 ("geoclue" ,geoclue)
4242 ("geocode-glib" ,geocode-glib)
4243 ("libgweather" ,libgweather)
4244 ("gnome-desktop" ,gnome-desktop)
4245 ("nss" ,nss)
4246 ("cups" ,cups)
4247 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4248 ("libwacom" ,libwacom)
4249 ("librsvg" ,librsvg)
4250 ("xf86-input-wacom" ,xf86-input-wacom)
4251 ("wayland" ,wayland)
4252 ("network-manager" ,network-manager)
4253 ("gcr" ,gcr)
4254 ("modem-manager" ,modem-manager)))
4255 (home-page "https://www.gnome.org")
4256 (synopsis "GNOME settings daemon")
4257 (description
4258 "This package contains the daemon responsible for setting the various
4259 parameters of a GNOME session and the applications that run under it. It
4260 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4261 settings, themes, mouse settings, and startup of other daemons.")
4262 (license license:gpl2+)))
4263
4264 (define-public totem-pl-parser
4265 (package
4266 (name "totem-pl-parser")
4267 (version "3.26.3")
4268 (source (origin
4269 (method url-fetch)
4270 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4271 (version-major+minor version) "/"
4272 "totem-pl-parser-" version ".tar.xz"))
4273 (sha256
4274 (base32
4275 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4276 (build-system meson-build-system)
4277 (arguments
4278 ;; FIXME: Tests require gvfs.
4279 `(#:tests? #f))
4280 (native-inputs
4281 `(("intltool" ,intltool)
4282 ("glib" ,glib "bin")
4283 ("gobject-introspection" ,gobject-introspection)
4284 ("pkg-config" ,pkg-config)))
4285 (propagated-inputs
4286 `(("glib" ,glib)
4287 ("gmime" ,gmime)
4288 ("libarchive" ,libarchive)
4289 ("libgcrypt" ,libgcrypt)
4290 ("libxml2" ,libxml2)))
4291 (inputs
4292 `(("libsoup" ,libsoup)))
4293 (home-page "https://projects.gnome.org/totem")
4294 (synopsis "Library to parse and save media playlists for GNOME")
4295 (description "Totem-pl-parser is a GObjects-based library to parse and save
4296 playlists in a variety of formats.")
4297 (license license:lgpl2.0+)))
4298
4299 (define-public aisleriot
4300 (package
4301 (name "aisleriot")
4302 (version "3.22.9")
4303 (source (origin
4304 (method url-fetch)
4305 (uri (string-append "mirror://gnome/sources/aisleriot/"
4306 (version-major+minor version) "/"
4307 "aisleriot-" version ".tar.xz"))
4308 (sha256
4309 (base32
4310 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4311 (build-system glib-or-gtk-build-system)
4312 (arguments
4313 '(#:configure-flags
4314 '("--with-platform=gtk-only"
4315 "--with-card-theme-formats=svg")))
4316 (native-inputs
4317 `(("desktop-file-utils" ,desktop-file-utils)
4318 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4319 ("intltool" ,intltool)
4320 ("itstool" ,itstool)
4321 ("pkg-config" ,pkg-config)
4322 ("xmllint" ,libxml2)))
4323 (inputs
4324 `(("gtk+" ,gtk+)
4325 ("guile" ,guile-2.2)
4326 ("libcanberra" ,libcanberra)
4327 ("librsvg" ,librsvg)))
4328 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4329 (synopsis "Solitaire card games")
4330 (description
4331 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4332 which are easy to play with the aid of a mouse.")
4333 (license license:gpl3+)))
4334
4335 (define-public amtk
4336 (package
4337 (name "amtk")
4338 (version "5.0.2")
4339 (source (origin
4340 (method url-fetch)
4341 (uri (string-append "mirror://gnome/sources/amtk/"
4342 (version-major+minor version) "/"
4343 "amtk-" version ".tar.xz"))
4344 (sha256
4345 (base32
4346 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
4347 (build-system gnu-build-system)
4348 (arguments
4349 '(#:configure-flags '("--enable-gtk-doc")))
4350 (native-inputs
4351 `(("gobject-introspection" ,gobject-introspection)
4352 ("glib:bin" ,glib "bin") ; for glib-mkenums
4353 ("gtk-doc" ,gtk-doc)
4354 ("pkg-config" ,pkg-config)))
4355 (inputs
4356 `(("glib" ,glib)
4357 ("gtk+" ,gtk+)))
4358 (home-page "https://wiki.gnome.org/Projects/Amtk")
4359 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4360 (description
4361 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4362 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4363 both a traditional UI or a modern UI with a GtkHeaderBar.")
4364 (license license:lgpl2.1+)))
4365
4366 (define-public devhelp
4367 (package
4368 (name "devhelp")
4369 (version "3.32.0")
4370 (source (origin
4371 (method url-fetch)
4372 (uri (string-append "mirror://gnome/sources/" name "/"
4373 (version-major+minor version) "/"
4374 name "-" version ".tar.xz"))
4375 (sha256
4376 (base32
4377 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
4378 (build-system meson-build-system)
4379 (arguments
4380 '(#:glib-or-gtk? #t
4381 #:phases
4382 (modify-phases %standard-phases
4383 (add-after 'unpack 'skip-gtk-update-icon-cache
4384 ;; Don't create 'icon-theme.cache'.
4385 (lambda _
4386 (substitute* "meson_post_install.py"
4387 (("gtk-update-icon-cache") "true"))
4388 #t)))))
4389 (native-inputs
4390 `(("intltool" ,intltool)
4391 ("itstool" ,itstool)
4392 ("gobject-introspection" ,gobject-introspection)
4393 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4394 ("pkg-config" ,pkg-config)))
4395 (inputs
4396 `(("amtk" ,amtk)
4397 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4398 ("webkitgtk" ,webkitgtk)))
4399 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4400 (synopsis "API documentation browser for GNOME")
4401 (description
4402 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4403 natively with GTK-Doc (the API reference system developed for GTK+ and used
4404 throughout GNOME for API documentation).")
4405 (license license:gpl2+)))
4406
4407 (define-public cogl
4408 (package
4409 (name "cogl")
4410 (version "1.22.4")
4411 (source
4412 (origin
4413 (method url-fetch)
4414 (uri (string-append "mirror://gnome/sources/cogl/"
4415 (version-major+minor version) "/"
4416 "cogl-" version ".tar.xz"))
4417 (sha256
4418 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
4419 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4420 ;; cogl, corresponding changes may be appropriate in mutter as well.
4421 (build-system gnu-build-system)
4422 (native-inputs
4423 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4424 ("gobject-introspection" ,gobject-introspection)
4425 ;;("xorg-server" ,xorg-server) ; for the test suite
4426 ("pkg-config" ,pkg-config)))
4427 (propagated-inputs
4428 `(("glib" ,glib)
4429 ("gdk-pixbuf" ,gdk-pixbuf)
4430 ("libx11" ,libx11)
4431 ("libxext" ,libxext)
4432 ("libxfixes" ,libxfixes)
4433 ("libxdamage" ,libxdamage)
4434 ("libxcomposite" ,libxcomposite)
4435 ("libxrandr" ,libxrandr)))
4436 (inputs
4437 `(("mesa" ,mesa)
4438 ("cairo" ,cairo)
4439 ("pango" ,pango)
4440 ("gstreamer" ,gstreamer)
4441 ("gst-plugins-base" ,gst-plugins-base)
4442 ("wayland" ,wayland)))
4443 (arguments
4444 `(#:configure-flags (list "--enable-cogl-gst"
4445 "--enable-wayland-egl-platform"
4446 "--enable-wayland-egl-server"
4447
4448 ;; Arrange to pass an absolute file name to
4449 ;; dlopen for libGL.so.
4450 (string-append "--with-gl-libname="
4451 (assoc-ref %build-inputs "mesa")
4452 "/lib/libGL.so"))
4453 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4454 ;; _FontTransOpen: Unable to Parse address
4455 ;; ${prefix}/share/fonts/X11/misc/
4456 #:tests? #f
4457 #; #:phases
4458 #;
4459 (modify-phases %standard-phases
4460 (add-before 'check 'start-xorg-server
4461 (lambda* (#:key inputs #:allow-other-keys)
4462 ;; The test suite requires a running X server.
4463 (system (format #f "~a/bin/Xvfb :1 &"
4464 (assoc-ref inputs "xorg-server")))
4465 (setenv "DISPLAY" ":1")
4466 #t)))))
4467 (home-page "https://www.cogl3d.org")
4468 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4469 (description
4470 "Cogl is a small library for using 3D graphics hardware to draw pretty
4471 pictures. The API departs from the flat state machine style of OpenGL and is
4472 designed to make it easy to write orthogonal components that can render
4473 without stepping on each others toes.")
4474 (license (list license:expat ; most of the code
4475 license:bsd-3 ; cogl/cogl-point-in-poly.c
4476 license:sgifreeb2.0 ; cogl-path/tesselator/
4477 license:asl2.0)))) ; examples/android/
4478
4479 (define-public clutter
4480 (package
4481 (name "clutter")
4482 (version "1.26.2")
4483 (source
4484 (origin
4485 (method url-fetch)
4486 (uri (string-append "mirror://gnome/sources/" name "/"
4487 (version-major+minor version) "/"
4488 name "-" version ".tar.xz"))
4489 (sha256
4490 (base32
4491 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4492 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4493 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4494 (build-system gnu-build-system)
4495 (outputs '("out"
4496 "doc")) ;9 MiB of gtk-doc HTML pages
4497 (native-inputs
4498 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4499 ("gobject-introspection" ,gobject-introspection)
4500 ("pkg-config" ,pkg-config)
4501 ("xsltproc" ,libxslt)))
4502 (propagated-inputs
4503 `(("cogl" ,cogl)
4504 ("cairo" ,cairo)
4505 ("atk" ,atk)
4506 ("gtk+" ,gtk+)
4507 ("json-glib" ,json-glib)
4508 ("glib" ,glib)
4509 ("libxcomposite" ,libxcomposite)
4510 ("libxdamage" ,libxdamage)
4511 ("libxext" ,libxext)
4512 ("xinput" ,xinput)))
4513 (inputs
4514 `(("libxkbcommon" ,libxkbcommon)
4515 ("udev" ,eudev)))
4516 (arguments
4517 `(#:configure-flags (list "--enable-x11-backend=yes"
4518
4519 ;; This produces share/doc/{clutter,cally}.
4520 (string-append "--with-html-dir="
4521 (assoc-ref %outputs "doc")
4522 "/share/doc"))
4523 ;; XXX FIXME: Get test suite working. It would probably fail in the
4524 ;; same way the cogl tests fail, since clutter is based on cogl.
4525 #:tests? #f))
4526 (home-page "http://www.clutter-project.org")
4527 (synopsis "OpenGL-based interactive canvas library")
4528 (description
4529 "Clutter is an OpenGL-based interactive canvas library, designed for
4530 creating fast, mainly 2D single window applications such as media box UIs,
4531 presentations, kiosk style applications and so on.")
4532 (license license:lgpl2.0+)))
4533
4534 (define-public clutter-gtk
4535 (package
4536 (name "clutter-gtk")
4537 (version "1.8.4")
4538 (source
4539 (origin
4540 (method url-fetch)
4541 (uri (string-append "mirror://gnome/sources/" name "/"
4542 (version-major+minor version) "/"
4543 name "-" version ".tar.xz"))
4544 (sha256
4545 (base32
4546 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4547 (build-system gnu-build-system)
4548 (native-inputs
4549 `(("pkg-config" ,pkg-config)
4550 ("gobject-introspection" ,gobject-introspection)))
4551 (propagated-inputs
4552 ;; clutter-gtk.pc refers to all these.
4553 `(("clutter" ,clutter)
4554 ("gtk+" ,gtk+)))
4555 (home-page "http://www.clutter-project.org")
4556 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4557 (description
4558 "Clutter is an OpenGL-based interactive canvas library, designed for
4559 creating fast, mainly 2D single window applications such as media box UIs,
4560 presentations, kiosk style applications and so on.")
4561 (license license:lgpl2.0+)))
4562
4563 (define-public clutter-gst
4564 (package
4565 (name "clutter-gst")
4566 (version "3.0.27")
4567 (source
4568 (origin
4569 (method url-fetch)
4570 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4571 (version-major+minor version) "/"
4572 "clutter-gst-" version ".tar.xz"))
4573 (sha256
4574 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4575 (build-system gnu-build-system)
4576 (native-inputs
4577 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4578 ("pkg-config" ,pkg-config)
4579 ("gobject-introspection" ,gobject-introspection)))
4580 (inputs
4581 `(("clutter" ,clutter)
4582 ("gstreamer" ,gstreamer)
4583 ("gst-plugins-base" ,gst-plugins-base)))
4584 (home-page "http://www.clutter-project.org")
4585 (synopsis "Integration library for using GStreamer with Clutter")
4586 (description
4587 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4588 It provides a GStreamer sink to upload frames to GL and an actor that
4589 implements the ClutterGstPlayer interface using playbin. Clutter is an
4590 OpenGL-based interactive canvas library.")
4591 (license license:lgpl2.0+)))
4592
4593 (define-public libchamplain
4594 (package
4595 (name "libchamplain")
4596 (version "0.12.16")
4597 (source (origin
4598 (method url-fetch)
4599 (uri (string-append
4600 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4601 version ".tar.xz"))
4602 (sha256
4603 (base32
4604 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4605 (build-system gnu-build-system)
4606 (arguments '(#:configure-flags '("--enable-vala")))
4607 (native-inputs
4608 `(("gobject-introspection" ,gobject-introspection)
4609 ("pkg-config" ,pkg-config)
4610 ("vala" ,vala)))
4611 (propagated-inputs
4612 `(("libsoup" ,libsoup)
4613 ("sqlite" ,sqlite)
4614 ("clutter" ,clutter)
4615 ("clutter-gtk" ,clutter-gtk)
4616 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4617 ("cairo" ,cairo)
4618 ("gtk+3" ,gtk+)
4619 ("glib" ,glib)))
4620 (home-page "https://projects.gnome.org/libchamplain/")
4621 (synopsis "C library providing a ClutterActor to display maps")
4622 (description
4623 "libchamplain is a C library providing a ClutterActor to display maps.
4624 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4625 and Perl bindings are also available. It supports numerous free map sources
4626 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4627 (license license:lgpl2.1+)))
4628
4629 (define-public gom
4630 (package
4631 (name "gom")
4632 (version "0.3.2")
4633 (source
4634 (origin
4635 (method url-fetch)
4636 (uri (string-append "mirror://gnome/sources/gom/"
4637 (version-major+minor version) "/"
4638 "gom-" version ".tar.xz"))
4639 (sha256
4640 (base32
4641 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4642 (build-system gnu-build-system)
4643 (native-inputs
4644 `(("intltool" ,intltool)
4645 ("pkg-config" ,pkg-config)
4646 ("gobject-introspection" ,gobject-introspection)))
4647 (inputs
4648 `(("glib" ,glib)
4649 ("gdk-pixbuf" ,gdk-pixbuf)
4650 ("sqlite" ,sqlite)))
4651 ;; XXX TODO: Figure out how to run the test suite.
4652 (arguments `(#:tests? #f))
4653 (home-page "https://wiki.gnome.org/Projects/Gom")
4654 (synopsis "Object mapper from GObjects to SQLite")
4655 (description
4656 "Gom provides an object mapper from GObjects to SQLite. It helps you
4657 write applications that need to store structured data as well as make complex
4658 queries upon that data.")
4659 (license license:lgpl2.1+)))
4660
4661 (define-public libgnome-games-support
4662 (package
4663 (name "libgnome-games-support")
4664 (version "1.4.4")
4665 (source (origin
4666 (method url-fetch)
4667 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4668 (version-major+minor version) "/"
4669 "libgnome-games-support-" version ".tar.xz"))
4670 (sha256
4671 (base32
4672 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4673 (build-system gnu-build-system)
4674 (arguments
4675 '(#:phases
4676 (modify-phases %standard-phases
4677 (add-before 'check 'pre-check
4678 (lambda _
4679 ;; Tests require a writable HOME.
4680 (setenv "HOME" (getcwd))
4681 #t)))))
4682 (native-inputs
4683 `(("intltool" ,intltool)
4684 ("pkg-config" ,pkg-config)
4685 ("vala" ,vala)))
4686 (propagated-inputs
4687 ;; Required by libgnome-games-support-1.0.pc
4688 `(("gtk+" ,gtk+)
4689 ("libgee" ,libgee)))
4690 (home-page "https://www.gnome.org/")
4691 (synopsis "Useful functionality shared among GNOME games")
4692 (description
4693 "libgnome-games-support is a small library intended for internal use by
4694 GNOME Games, but it may be used by others.")
4695 (license license:lgpl3+)))
4696
4697 (define-public gnome-klotski
4698 (package
4699 (name "gnome-klotski")
4700 (version "3.32.0")
4701 (source (origin
4702 (method url-fetch)
4703 (uri (string-append "mirror://gnome/sources/" name "/"
4704 (version-major+minor version) "/"
4705 name "-" version ".tar.xz"))
4706 (sha256
4707 (base32
4708 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4709 (build-system meson-build-system)
4710 (arguments
4711 '(#:glib-or-gtk? #t
4712 #:phases
4713 (modify-phases %standard-phases
4714 (add-after 'unpack 'skip-gtk-update-icon-cache
4715 ;; Don't create 'icon-theme.cache'.
4716 (lambda _
4717 (substitute* "build-aux/meson_post_install.py"
4718 (("gtk-update-icon-cache") (which "true")))
4719 #t)))))
4720 (native-inputs
4721 `(("desktop-file-utils" ,desktop-file-utils)
4722 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4723 ("intltool" ,intltool)
4724 ("itstool" ,itstool)
4725 ("pkg-config" ,pkg-config)
4726 ("vala" ,vala)
4727 ("xmllint" ,libxml2)))
4728 (inputs
4729 `(("gtk+" ,gtk+)
4730 ("libgnome-games-support" ,libgnome-games-support)
4731 ("librsvg" ,librsvg)))
4732 (home-page "https://wiki.gnome.org/Apps/Klotski")
4733 (synopsis "Sliding block puzzles")
4734 (description
4735 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4736 the patterned block to the area bordered by green markers. To do so, you will
4737 need to slide other blocks out of the way. Complete each puzzle in as few moves
4738 as possible!")
4739 (license license:gpl2+)))
4740
4741 (define-public grilo
4742 (package
4743 (name "grilo")
4744 (version "0.3.10")
4745 (source
4746 (origin
4747 (method url-fetch)
4748 (uri (string-append "mirror://gnome/sources/" name "/"
4749 (version-major+minor version) "/"
4750 name "-" version ".tar.xz"))
4751 (sha256
4752 (base32
4753 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4754 (build-system meson-build-system)
4755 (native-inputs
4756 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4757 ("intltool" ,intltool)
4758 ("pkg-config" ,pkg-config)
4759 ("gobject-introspection" ,gobject-introspection)
4760 ("gtk-doc" ,gtk-doc)
4761 ("vala" ,vala)))
4762 (inputs
4763 `(("cyrus-sasl" ,cyrus-sasl)
4764 ("glib" ,glib)
4765 ("gtk+" ,gtk+)
4766 ("libxml2" ,libxml2)
4767 ("liboauth" ,liboauth)
4768 ("libsoup" ,libsoup)
4769 ("totem-pl-parser" ,totem-pl-parser)))
4770 (native-search-paths
4771 (list (search-path-specification
4772 (variable "GRL_PLUGIN_PATH")
4773 (files (list (string-append "lib/grilo-"
4774 (version-major+minor version)))))))
4775 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4776 (synopsis "Framework for discovering and browsing media")
4777 (description
4778 "Grilo is a framework focused on making media discovery and browsing easy
4779 for application developers.")
4780 (license license:lgpl2.1+)))
4781
4782 (define-public grilo-plugins
4783 (package
4784 (name "grilo-plugins")
4785 (version "0.3.10")
4786 (source
4787 (origin
4788 (method url-fetch)
4789 (uri (string-append "mirror://gnome/sources/" name "/"
4790 (version-major+minor version) "/"
4791 name "-" version ".tar.xz"))
4792 (sha256
4793 (base32
4794 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4795 (build-system meson-build-system)
4796 (native-inputs
4797 `(("gettext" ,gettext-minimal)
4798 ("glib:bin" ,glib "bin")
4799 ("gtk+:bin" ,gtk+ "bin")
4800 ("itstool" ,itstool)
4801 ("pkg-config" ,pkg-config)))
4802 ;; TODO: ahavi, gstreamer
4803 (inputs
4804 `(("grilo" ,grilo)
4805 ;("gmime" ,gmime) ; unused
4806 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4807 ("gom" ,gom)
4808 ;("gssdp" ,gssdp) ; unused
4809 ;("gupnp" ,gupnp) ; unused
4810 ;("gupnp-av" ,gupnp-av) ; unused
4811 ("json-glib" ,json-glib)
4812 ("avahi" ,avahi)
4813 ("libgdata" ,libgdata)
4814 ("libmediaart" ,libmediaart)
4815 ;("librest" ,rest) ; unused
4816 ("libsoup" ,libsoup)
4817 ("totam-pl-parser" ,totem-pl-parser)
4818 ("tracker" ,tracker))) ; unused because it's too old
4819 (arguments
4820 `(#:glib-or-gtk? #t
4821 ;;Disable lua-factory as it needs missing dependencies
4822 #:configure-flags '("-Denable-lua-factory=no")))
4823 (home-page "https://live.gnome.org/Grilo")
4824 (synopsis "Plugins for the Grilo media discovery library")
4825 (description
4826 "Grilo is a framework focused on making media discovery and browsing easy
4827 for application developers. This package provides plugins for common media
4828 discovery protocols.")
4829 (license license:lgpl2.1+)))
4830
4831 (define-public totem
4832 (package
4833 (name "totem")
4834 (version "3.32.1")
4835 (source
4836 (origin
4837 (method url-fetch)
4838 (uri (string-append "mirror://gnome/sources/" name "/"
4839 (version-major+minor version) "/"
4840 name "-" version ".tar.xz"))
4841 (sha256
4842 (base32
4843 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
4844 (build-system meson-build-system)
4845 (native-inputs
4846 `(("pkg-config" ,pkg-config)
4847 ("desktop-file-utils" ,desktop-file-utils)
4848 ("gobject-introspection" ,gobject-introspection)
4849 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4850 ("intltool" ,intltool)
4851 ("itstool" ,itstool)
4852 ("xmllint" ,libxml2)
4853 ("python-pylint" ,python-pylint)
4854 ("xorg-server" ,xorg-server-for-tests)))
4855 (propagated-inputs
4856 `(("dconf" ,dconf)))
4857 (inputs
4858 `(("gtk+" ,gtk+)
4859 ("gdk-pixbuf" ,gdk-pixbuf)
4860 ("atk" ,atk)
4861 ("cairo" ,cairo)
4862 ("dbus-glib" ,dbus-glib)
4863 ("clutter" ,clutter)
4864 ("clutter-gtk" ,clutter-gtk)
4865 ("clutter-gst" ,clutter-gst)
4866 ("xorgproto" ,xorgproto)
4867 ("libxxf86vm" ,libxxf86vm)
4868 ("libxtst" ,libxtst)
4869 ("libxrandr" ,libxrandr)
4870 ("libxml2" ,libxml2)
4871 ("libsoup" ,libsoup)
4872 ("libpeas" ,libpeas)
4873 ("librsvg" ,librsvg)
4874 ("lirc" ,lirc)
4875 ("gnome-desktop" ,gnome-desktop)
4876 ("gstreamer" ,gstreamer)
4877 ("gst-plugins-base" ,gst-plugins-base)
4878 ("gst-plugins-good" ,gst-plugins-good)
4879 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4880 ("adwaita-icon-theme" ,adwaita-icon-theme)
4881 ("python" ,python)
4882 ("python-pygobject" ,python-pygobject)
4883 ("totem-pl-parser" ,totem-pl-parser)
4884 ("grilo" ,grilo)
4885 ("grilo-plugins" ,grilo-plugins)
4886 ("vala" ,vala)))
4887 (arguments
4888 `(#:glib-or-gtk? #t
4889
4890 ;; Disable automatic GStreamer plugin installation via PackageKit and
4891 ;; all that.
4892 #:configure-flags '("-D" "enable-easy-codec-installation=no"
4893
4894 ;; Do not build .a files for the plugins, it's
4895 ;; completely useless. This saves 2 MiB.
4896 "--default-library" "shared")
4897 #:phases
4898 (modify-phases %standard-phases
4899 (add-after 'unpack 'skip-gtk-update-icon-cache
4900 ;; Don't create 'icon-theme.cache'.
4901 (lambda _
4902 (substitute* "meson_post_install.py"
4903 (("gtk-update-icon-cache") "true"))
4904 #t))
4905 (add-before
4906 'install 'disable-cache-generation
4907 (lambda _
4908 (setenv "DESTDIR" "/")
4909 #t))
4910 (add-before
4911 'check 'pre-check
4912 (lambda _
4913 ;; Tests require a running X server.
4914 (system "Xvfb :1 &")
4915 (setenv "DISPLAY" ":1")
4916 #t))
4917 (add-after
4918 'install 'wrap-totem
4919 (lambda* (#:key inputs outputs #:allow-other-keys)
4920 (let ((out (assoc-ref outputs "out"))
4921 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4922 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4923 (wrap-program (string-append out "/bin/totem")
4924 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4925 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4926 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4927 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4928 #t)))))
4929 (home-page "https://wiki.gnome.org/Apps/Videos")
4930 (synopsis "Simple media player for GNOME based on GStreamer")
4931 (description "Totem is a simple yet featureful media player for GNOME
4932 which can read a large number of file formats.")
4933 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4934 ;; to be used and distributed together with GStreamer and Totem. See
4935 ;; file://COPYING in the source distribution for details.
4936 (license license:gpl2+)))
4937
4938 (define-public rhythmbox
4939 (package
4940 (name "rhythmbox")
4941 (version "3.4.4")
4942 (source (origin
4943 (method url-fetch)
4944 (uri (string-append "mirror://gnome/sources/rhythmbox/"
4945 (version-major+minor version) "/"
4946 "rhythmbox-" version ".tar.xz"))
4947 (sha256
4948 (base32
4949 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
4950 (build-system glib-or-gtk-build-system)
4951 (arguments
4952 `(#:configure-flags
4953 (list "--enable-lirc"
4954 "--enable-python"
4955 "--enable-vala"
4956 "--with-brasero"
4957 "--with-gudev"
4958 "--with-libsecret")
4959 #:phases
4960 (modify-phases %standard-phases
4961 (add-after
4962 'install 'wrap-rhythmbox
4963 (lambda* (#:key inputs outputs #:allow-other-keys)
4964 (let ((out (assoc-ref outputs "out"))
4965 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4966 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4967 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
4968 (python-path (getenv "PYTHONPATH")))
4969 (wrap-program (string-append out "/bin/rhythmbox")
4970 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
4971 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4972 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
4973 `("PYTHONPATH" ":" prefix (,python-path))))
4974 #t)))))
4975 (propagated-inputs
4976 `(("dconf" ,dconf)))
4977 (native-inputs
4978 `(("itstool" ,itstool)
4979 ("intltool" ,intltool)
4980 ("glib" ,glib "bin")
4981 ("gobject-introspection" ,gobject-introspection)
4982 ("desktop-file-utils" ,desktop-file-utils)
4983 ("pkg-config" ,pkg-config)
4984 ("xmllint" ,libxml2)))
4985 (inputs
4986 `(("json-glib" ,json-glib)
4987 ("tdb" ,tdb)
4988 ("gnome-desktop" ,gnome-desktop)
4989 ("python" ,python)
4990 ("python-pygobject" ,python2-pygobject)
4991 ("vala" ,vala)
4992 ("gmime" ,gmime)
4993 ("adwaita-icon-theme" ,adwaita-icon-theme)
4994 ("grilo" ,grilo)
4995 ("grilo-plugins" ,grilo-plugins)
4996 ("gstreamer" ,gstreamer)
4997 ("gst-plugins-base" ,gst-plugins-base)
4998 ("gst-plugins-good" ,gst-plugins-good)
4999 ("totem-pl-parser" ,totem-pl-parser)
5000 ("libgudev" ,libgudev)
5001 ;;("libmtp" ,libmtp) FIXME: Not detected
5002 ("libsecret" ,libsecret)
5003 ("libsoup" ,libsoup)
5004 ("libnotify" ,libnotify)
5005 ("libpeas" ,libpeas)
5006 ("lirc" ,lirc)
5007 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5008 ;;("clutter" ,clutter)
5009 ;;("clutter-gtk" ,clutter-gtk)
5010 ;;("clutter-gst" ,clutter-gst)
5011 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5012 ("atk" ,atk)
5013 ("pango" ,pango)
5014 ("gtk+" ,gtk+)
5015 ;; TODO:
5016 ;; * libgpod
5017 ;; * mx
5018 ("brasero" ,brasero)))
5019 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5020 (synopsis "Music player for GNOME")
5021 (description "Rhythmbox is a music playing application for GNOME. It
5022 supports playlists, song ratings, and any codecs installed through gstreamer.")
5023 (license license:gpl2+)))
5024
5025 (define-public eog
5026 (package
5027 (name "eog")
5028 (version "3.34.1")
5029 (source (origin
5030 (method url-fetch)
5031 (uri (string-append "mirror://gnome/sources/" name "/"
5032 (version-major+minor version) "/"
5033 name "-" version ".tar.xz"))
5034 (sha256
5035 (base32
5036 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5037 (build-system meson-build-system)
5038 (arguments
5039 `(#:configure-flags
5040 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5041 (list (string-append "-Dc_link_args=-Wl,-rpath="
5042 (assoc-ref %outputs "out") "/lib/eog"))
5043 #:phases
5044 (modify-phases %standard-phases
5045 (add-after 'unpack 'skip-gtk-update-icon-cache
5046 ;; Don't create 'icon-theme.cache'.
5047 (lambda _
5048 (substitute* "meson_post_install.py"
5049 (("gtk-update-icon-cache") "true"))
5050 #t))
5051 (add-after 'install 'wrap-eog
5052 (lambda* (#:key outputs #:allow-other-keys)
5053 (let ((out (assoc-ref outputs "out"))
5054 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5055 (wrap-program (string-append out "/bin/eog")
5056 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5057 #t)))))
5058 (propagated-inputs
5059 `(("dconf" ,dconf)))
5060 (native-inputs
5061 `(("intltool" ,intltool)
5062 ("itstool" ,itstool)
5063 ("glib" ,glib "bin")
5064 ("gobject-introspection" ,gobject-introspection)
5065 ("pkg-config" ,pkg-config)
5066 ("xmllint" ,libxml2)))
5067 (inputs
5068 `(("gnome-desktop" ,gnome-desktop)
5069 ("shared-mime-info" ,shared-mime-info)
5070 ("adwaita-icon-theme" ,adwaita-icon-theme)
5071 ("exempi" ,exempi)
5072 ("lcms" ,lcms)
5073 ("libexif" ,libexif)
5074 ("libpeas" ,libpeas)
5075 ("libjpeg" ,libjpeg-turbo)
5076 ("librsvg" ,librsvg-next)
5077 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5078 ("gtk+" ,gtk+)))
5079 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5080 (synopsis "GNOME image viewer")
5081 (description "Eye of GNOME is the GNOME image viewer. It
5082 supports image conversion, rotation, and slideshows.")
5083 (license license:gpl2+)))
5084
5085 (define-public eog-plugins
5086 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5087 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5088 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5089 ;; 'XDG_DATA_DIRS' appropriately set.
5090 (package
5091 (name "eog-plugins")
5092 (version "3.26.4")
5093 (source (origin
5094 (method url-fetch)
5095 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5096 (version-major+minor version) "/"
5097 "eog-plugins-" version ".tar.xz"))
5098 (sha256
5099 (base32
5100 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5101 (build-system gnu-build-system)
5102 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5103 (synopsis "Extensions for the Eye of GNOME image viewer")
5104 (native-inputs
5105 `(("pkg-config" ,pkg-config)
5106 ("gettext" ,gettext-minimal)))
5107 (inputs
5108 `(("eog" ,eog)
5109 ("glib" ,glib)
5110 ("gtk+" ,gtk+)
5111 ("libpeas" ,libpeas)
5112 ("libexif" ,libexif)
5113 ("libchamplain" ,libchamplain)))
5114 (description
5115 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5116 notably:
5117
5118 @itemize
5119 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5120 @item @dfn{Map}, which displays a map of where the picture was taken on the
5121 side panel;
5122 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5123 @end itemize\n")
5124
5125 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5126 ;; long suspicious byte stream that goes to a
5127 ;; ".gresource.eog_postasa_plugin" ELF section.
5128 (license license:gpl2+)))
5129
5130 (define-public libgudev
5131 (package
5132 (name "libgudev")
5133 (version "232")
5134 (source (origin
5135 (method url-fetch)
5136 (uri (string-append "mirror://gnome/sources/" name "/"
5137 version "/" name "-" version ".tar.xz"))
5138 (sha256
5139 (base32
5140 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5141 (build-system gnu-build-system)
5142 (arguments
5143 '(#:configure-flags
5144 ;; umockdev depends on libgudev.
5145 (list "--disable-umockdev")))
5146 (native-inputs
5147 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5148 ("gobject-introspection" ,gobject-introspection)
5149 ("pkg-config" ,pkg-config)))
5150 (propagated-inputs
5151 `(("glib" ,glib))) ; required by gudev-1.0.pc
5152 (inputs
5153 `(("udev" ,eudev)))
5154 (home-page "https://wiki.gnome.org/Projects/libgudev")
5155 (synopsis "GObject bindings for libudev")
5156 (description
5157 "This library provides GObject bindings for libudev. It was originally
5158 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5159 (license license:lgpl2.1+)))
5160
5161 (define-public gvfs
5162 (package
5163 (name "gvfs")
5164 (version "1.40.1")
5165 (source (origin
5166 (method url-fetch)
5167 (uri (string-append "mirror://gnome/sources/gvfs/"
5168 (version-major+minor version) "/"
5169 "gvfs-" version ".tar.xz"))
5170 (sha256
5171 (base32
5172 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5173 (build-system meson-build-system)
5174 (arguments
5175 '(#:glib-or-gtk? #t
5176 #:configure-flags
5177 (list "-Dsystemduserunitdir=no"
5178 "-Dtmpfilesdir=no"
5179 ;; Otherwise, the RUNPATH will lack the final path component.
5180 (string-append "-Dc_link_args=-Wl,-rpath="
5181 (assoc-ref %outputs "out") "/lib/gvfs"))))
5182 (native-inputs
5183 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5184 ("gettext" ,gettext-minimal)
5185 ("gtk-doc" ,gtk-doc)
5186 ("pkg-config" ,pkg-config)
5187 ("xsltproc" ,libxslt)))
5188 (inputs
5189 `(("avahi" ,avahi)
5190 ("docbook-xml" ,docbook-xml-4.2)
5191 ("docbook-xsl" ,docbook-xsl)
5192 ("dbus" ,dbus)
5193 ("elogind" ,elogind)
5194 ("fuse" ,fuse)
5195 ("gcr" ,gcr)
5196 ("glib" ,glib)
5197 ("gnome-online-accounts" ,gnome-online-accounts)
5198 ("libarchive" ,libarchive)
5199 ("libbluray" ,libbluray)
5200 ("libcap" ,libcap)
5201 ("libcdio-paranoia" ,libcdio-paranoia)
5202 ("libgcrypt" ,libgcrypt)
5203 ("libgdata" ,libgdata)
5204 ("libgphoto2" ,libgphoto2)
5205 ("libgudev" ,libgudev)
5206 ("libimobiledevice" ,libimobiledevice)
5207 ("libmtp" ,libmtp)
5208 ("libnfs" ,libnfs)
5209 ("libsecret" ,libsecret)
5210 ("libsmbclient" ,samba)
5211 ("libsoup" ,libsoup)
5212 ("libxml2" ,libxml2)
5213 ("openssh" ,openssh)
5214 ("polkit" ,polkit)
5215 ("udisks" ,udisks)))
5216 (home-page "https://wiki.gnome.org/gvfs/")
5217 (synopsis "Userspace virtual file system for GIO")
5218 (description
5219 "GVFS is a userspace virtual file system designed to work with the I/O
5220 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5221 to all applications using the GIO API. It also supports exposing the GVFS
5222 mounts to non-GIO applications using FUSE.
5223
5224 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5225 DAV, and others.")
5226 (license license:lgpl2.0+)))
5227
5228 (define-public gusb
5229 (package
5230 (name "gusb")
5231 (version "0.3.0")
5232 (source (origin
5233 (method git-fetch)
5234 (uri (git-reference
5235 (url "https://github.com/hughsie/libgusb.git")
5236 (commit version)))
5237 (file-name (git-file-name name version))
5238 (sha256
5239 (base32
5240 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5241 (build-system meson-build-system)
5242 (native-inputs
5243 `(("gobject-introspection" ,gobject-introspection)
5244 ("pkg-config" ,pkg-config)
5245 ("vala" ,vala)
5246 ("gtk-doc" ,gtk-doc)))
5247 (propagated-inputs
5248 ;; Both of these are required by gusb.pc.
5249 `(("glib" ,glib)
5250 ("libusb" ,libusb)))
5251 (arguments
5252 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5253 (home-page "https://github.com/hughsie/libgusb")
5254 (synopsis "GLib binding for libusb1")
5255 (description
5256 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5257 asynchronous control, bulk and interrupt transfers with proper cancellation
5258 and integration into a mainloop. This makes it easy to integrate low level
5259 USB transfers with your high-level application or system daemon.")
5260 (license license:lgpl2.1+)))
5261
5262 (define-public simple-scan
5263 (package
5264 (name "simple-scan")
5265 (version "3.36.0")
5266 (source
5267 (origin
5268 (method url-fetch)
5269 (uri (string-append "mirror://gnome/sources/simple-scan/"
5270 (version-major+minor version) "/"
5271 "simple-scan-" version ".tar.xz"))
5272 (sha256
5273 (base32 "198l3yhqhb2wzfdcgi8fzbwycr0njn44583dazz6wy1gqbiqnzgm"))))
5274 (build-system meson-build-system)
5275 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5276 (arguments
5277 '(#:glib-or-gtk? #t))
5278 (inputs
5279 `(("gtk" ,gtk+)
5280 ("zlib" ,zlib)
5281 ("cairo" ,cairo)
5282 ("colord" ,colord)
5283 ("gdk-pixbuf" ,gdk-pixbuf)
5284 ("gusb" ,gusb)
5285 ("libsane" ,sane-backends)))
5286 (native-inputs
5287 `(("gettext" ,gettext-minimal)
5288 ("itstool" ,itstool)
5289 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5290 ("pkg-config" ,pkg-config)
5291 ("vala" ,vala)
5292 ("xmllint" ,libxml2)))
5293 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5294 (synopsis "Document and image scanner")
5295 (description
5296 "Document Scanner is an easy-to-use application that lets you connect your
5297 scanner and quickly capture images and documents in an appropriate format. It
5298 supports any scanner for which a suitable SANE driver is available, which is
5299 almost all of them.")
5300 (license license:gpl3+)))
5301
5302 (define-public eolie
5303 (package
5304 (name "eolie")
5305 (version "0.9.98.1")
5306 (source (origin
5307 (method url-fetch)
5308 (uri (string-append "https://adishatz.org/eolie/eolie-"
5309 version ".tar.xz"))
5310 (sha256
5311 (base32
5312 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
5313 (build-system meson-build-system)
5314 (arguments
5315 `(#:glib-or-gtk? #t
5316 #:phases
5317 (modify-phases %standard-phases
5318 (add-after 'unpack 'skip-gtk-update-icon-cache
5319 ;; Don't create 'icon-theme.cache'.
5320 (lambda _
5321 (substitute* "meson_post_install.py"
5322 (("gtk-update-icon-cache") "true"))
5323 #t))
5324 (add-after 'wrap 'wrap-more
5325 (lambda* (#:key inputs outputs #:allow-other-keys)
5326 (let* ((out (assoc-ref outputs "out"))
5327 ;; These libraries must be on LD_LIBRARY_PATH.
5328 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5329 "atk" "gtk+" "gsettings-desktop-schemas"
5330 "gobject-introspection"))
5331 (path (string-join
5332 (map (lambda (lib)
5333 (string-append (assoc-ref inputs lib) "/lib"))
5334 libs)
5335 ":")))
5336 (wrap-program (string-append out "/bin/eolie")
5337 `("LD_LIBRARY_PATH" ":" prefix (,path))
5338 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5339 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5340 #t)))))
5341 (native-inputs
5342 `(("intltool" ,intltool)
5343 ("itstool" ,itstool)
5344 ("pkg-config" ,pkg-config)
5345 ("python" ,python)
5346 ("glib:bin" ,glib "bin")))
5347 (inputs
5348 `(("gobject-introspection" ,gobject-introspection)
5349 ("glib-networking" ,glib-networking)
5350 ("cairo" ,cairo)
5351 ("gtk+" ,gtk+)
5352 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5353 ("python" ,python-wrapper)
5354 ("python-dateutil" ,python-dateutil)
5355 ("python-pyfxa" ,python-pyfxa)
5356 ("python-pygobject" ,python-pygobject)
5357 ("python-pycairo" ,python-pycairo)
5358 ("python-pycrypto" ,python-pycrypto)
5359 ("libsecret" ,libsecret)
5360 ("gtkspell3" ,gtkspell3)
5361 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5362 ("webkitgtk" ,webkitgtk)))
5363 (home-page "https://wiki.gnome.org/Apps/Eolie")
5364 (synopsis "Web browser for GNOME")
5365 (description
5366 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5367 a secret password store, an adblocker, and a modern UI.")
5368 (license license:gpl3+)))
5369
5370 (define-public epiphany
5371 (package
5372 (name "epiphany")
5373 (version "3.34.2")
5374 (source (origin
5375 (method url-fetch)
5376 (uri (string-append "mirror://gnome/sources/epiphany/"
5377 (version-major+minor version) "/"
5378 "epiphany-" version ".tar.xz"))
5379 (sha256
5380 (base32
5381 "18d48vcp2nxs63bddkdplslgbnlfq79pm2ivl8hk38kkggy3dahf"))))
5382
5383 (build-system meson-build-system)
5384 (arguments
5385 ;; FIXME: tests run under Xvfb, but fail with:
5386 ;; /src/bookmarks/ephy-bookmarks/create:
5387 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5388 ;; subsystem
5389 ;; FAIL
5390 '(#:tests? #f
5391 #:glib-or-gtk? #t
5392 #:phases
5393 (modify-phases %standard-phases
5394 (add-after 'unpack 'skip-gtk-update-icon-cache
5395 ;; Don't create 'icon-theme.cache'.
5396 (lambda _
5397 (substitute* "post_install.py"
5398 (("gtk-update-icon-cache") "true"))
5399 #t)))
5400 #:configure-flags
5401 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5402 (list (string-append "-Dc_link_args=-Wl,-rpath="
5403 (assoc-ref %outputs "out") "/lib/epiphany"))))
5404 (propagated-inputs
5405 `(("dconf" ,dconf)))
5406 (native-inputs
5407 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5408 ("glib:bin" ,glib "bin") ; for glib-mkenums
5409 ("intltool" ,intltool)
5410 ("itstool" ,itstool)
5411 ("pkg-config" ,pkg-config)
5412 ("xmllint" ,libxml2)))
5413 (inputs
5414 `(("avahi" ,avahi)
5415 ("gcr" ,gcr)
5416 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5417 ("glib-networking" ,glib-networking)
5418 ("gnome-desktop" ,gnome-desktop)
5419 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5420 ("json-glib" ,json-glib)
5421 ("iso-codes" ,iso-codes)
5422 ("libdazzle" ,libdazzle)
5423 ("libnotify" ,libnotify)
5424 ("libsecret" ,libsecret)
5425 ("libxslt" ,libxslt)
5426 ("nettle" ,nettle) ; for hogweed
5427 ("sqlite" ,sqlite)
5428 ("webkitgtk" ,webkitgtk)))
5429 (home-page "https://wiki.gnome.org/Apps/Web")
5430 (synopsis "GNOME web browser")
5431 (description
5432 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5433 principles are simplicity and standards compliance.")
5434 (license license:gpl2+)))
5435
5436 (define-public d-feet
5437 (package
5438 (name "d-feet")
5439 (version "0.3.14")
5440 (source (origin
5441 (method url-fetch)
5442 (uri (string-append "mirror://gnome/sources/" name "/"
5443 (version-major+minor version) "/"
5444 name "-" version ".tar.xz"))
5445 (sha256
5446 (base32
5447 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5448 (build-system glib-or-gtk-build-system)
5449 (arguments
5450 '(#:out-of-source? #f ; tests need to run in the source directory.
5451 #:phases
5452 (modify-phases %standard-phases
5453 (add-before
5454 'check 'pre-check
5455 (lambda _
5456 ;; The test suite requires a running X server.
5457 (system "Xvfb :1 &")
5458 (setenv "DISPLAY" ":1")
5459 ;; Don't fail on missing '/etc/machine-id'.
5460 (setenv "DBUS_FATAL_WARNINGS" "0")
5461 ;; tests.py and window.py don't meet E402:
5462 ;; E402 module level import not at top of file
5463 (substitute* "src/tests/Makefile"
5464 (("--ignore=E123") "--ignore=E123,E402"))
5465 #t))
5466 (add-after
5467 'install 'wrap-program
5468 (lambda* (#:key outputs #:allow-other-keys)
5469 (let ((prog (string-append (assoc-ref outputs "out")
5470 "/bin/d-feet")))
5471 (wrap-program prog
5472 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5473 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5474 #t))))))
5475 (native-inputs
5476 `(("intltool" ,intltool)
5477 ("itstool" ,itstool)
5478 ("pkg-config" ,pkg-config)
5479 ("python-pep8" ,python-pep8)
5480 ("xmllint" ,libxml2)
5481 ("xorg-server" ,xorg-server-for-tests)))
5482 (inputs
5483 `(("gobject-introspection" ,gobject-introspection)
5484 ("gtk+" ,gtk+)
5485 ("python" ,python-wrapper)
5486 ("hicolor-icon-theme" ,hicolor-icon-theme)
5487 ("python-pygobject" ,python-pygobject)))
5488 (home-page "https://wiki.gnome.org/Apps/DFeet")
5489 (synopsis "D-Bus debugger")
5490 (description
5491 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5492 of running programs and invoke methods on those interfaces.")
5493 (license license:gpl2+)))
5494
5495 (define-public yelp-xsl
5496 (package
5497 (name "yelp-xsl")
5498 (version "3.34.2")
5499 (source (origin
5500 (method url-fetch)
5501 (uri (string-append "mirror://gnome/sources/" name "/"
5502 (version-major+minor version) "/"
5503 name "-" version ".tar.xz"))
5504 (sha256
5505 (base32
5506 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
5507 (build-system gnu-build-system)
5508 (native-inputs
5509 `(("gettext-minimal" ,gettext-minimal)
5510 ("itstool" ,itstool)
5511 ("xmllint" ,libxml2)))
5512 (home-page "https://wiki.gnome.org/Apps/Yelp")
5513 (synopsis "XSL stylesheets for Yelp")
5514 (description
5515 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5516 to format Docbook and Mallard documents.")
5517 (license license:gpl2+)))
5518
5519 (define-public yelp
5520 (package
5521 (name "yelp")
5522 (version "3.32.2")
5523 (source (origin
5524 (method url-fetch)
5525 (uri (string-append "mirror://gnome/sources/" name "/"
5526 (version-major+minor version) "/"
5527 name "-" version ".tar.xz"))
5528 (sha256
5529 (base32
5530 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5531 (build-system glib-or-gtk-build-system)
5532 (native-inputs
5533 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5534 ("intltool" ,intltool)
5535 ("itstool" ,itstool)
5536 ("pkg-config" ,pkg-config)))
5537 (propagated-inputs
5538 `(("dconf" ,dconf)))
5539 (inputs
5540 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5541 ("libxslt" ,libxslt)
5542 ("sqlite" ,sqlite)
5543 ("webkitgtk" ,webkitgtk)
5544 ("yelp-xsl" ,yelp-xsl)))
5545 (home-page "https://wiki.gnome.org/Apps/Yelp")
5546 (synopsis "GNOME help browser")
5547 (description
5548 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5549 man, info, and HTML documents. It can locate documents according to the
5550 freedesktop.org help system specification.")
5551 (license license:gpl2+)))
5552
5553 (define-public yelp-tools
5554 (package
5555 (name "yelp-tools")
5556 (version "3.32.2")
5557 (source (origin
5558 (method url-fetch)
5559 (uri (string-append "mirror://gnome/sources/" name "/"
5560 (version-major+minor version) "/"
5561 name "-" version ".tar.xz"))
5562 (sha256
5563 (base32
5564 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
5565 (build-system gnu-build-system)
5566 (native-inputs
5567 `(("pkg-config" ,pkg-config)))
5568 (propagated-inputs
5569 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5570 `(("itstool" ,itstool)
5571 ("xmllint" ,libxml2)
5572 ("xsltproc" ,libxslt)))
5573 (inputs
5574 `(("yelp-xsl" ,yelp-xsl)))
5575 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5576 (synopsis "Yelp documentation tools")
5577 (description
5578 "Yelp-tools is a collection of scripts and build utilities to help create,
5579 manage, and publish documentation for Yelp and the web. Most of the heavy
5580 lifting is done by packages like yelp-xsl and itstool. This package just
5581 wraps things up in a developer-friendly way.")
5582 (license license:gpl2+)))
5583
5584 (define-public libgee
5585 (package
5586 (name "libgee")
5587 (version "0.20.3")
5588 (source (origin
5589 (method url-fetch)
5590 (uri (string-append "mirror://gnome/sources/libgee/"
5591 (version-major+minor version) "/"
5592 "libgee-" version ".tar.xz"))
5593 (sha256
5594 (base32
5595 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
5596 (build-system gnu-build-system)
5597 (arguments
5598 `(#:phases
5599 (modify-phases %standard-phases
5600 (add-after 'unpack 'fix-introspection-install-dir
5601 (lambda* (#:key outputs #:allow-other-keys)
5602 (let ((out (assoc-ref outputs "out")))
5603 (substitute* "gee/Makefile.in"
5604 (("@INTROSPECTION_GIRDIR@")
5605 (string-append out "/share/gir-1.0/"))
5606 (("@INTROSPECTION_TYPELIBDIR@")
5607 (string-append out "/lib/girepository-1.0/")))))))))
5608 (native-inputs
5609 `(("glib" ,glib "bin")
5610 ("pkg-config" ,pkg-config)))
5611 (inputs
5612 `(("glib" ,glib)
5613 ("gobject-introspection" ,gobject-introspection)))
5614 (home-page "https://wiki.gnome.org/Projects/Libgee")
5615 (synopsis "GObject collection library")
5616 (description
5617 "Libgee is a utility library providing GObject-based interfaces and
5618 classes for commonly used data structures.")
5619 (license license:lgpl2.1+)))
5620
5621 (define-public gexiv2
5622 (package
5623 (name "gexiv2")
5624 (version "0.12.0")
5625 (source (origin
5626 (method url-fetch)
5627 (uri (string-append "mirror://gnome/sources/" name "/"
5628 (version-major+minor version) "/"
5629 name "-" version ".tar.xz"))
5630 (sha256
5631 (base32
5632 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5633 (build-system meson-build-system)
5634 (native-inputs
5635 `(("gcr" ,gcr)
5636 ("glib" ,glib "bin")
5637 ("pkg-config" ,pkg-config)
5638 ("vala" ,vala)))
5639 (propagated-inputs
5640 ;; Listed in "Requires" section of gexiv2.pc
5641 `(("exiv2" ,exiv2)))
5642 (inputs
5643 `(("glib" ,glib)
5644 ("gobject-introspection" ,gobject-introspection)))
5645 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5646 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5647 (description
5648 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5649 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5650 metadata in photo and video files of various formats.")
5651 (license license:gpl2+)))
5652
5653 (define-public shotwell
5654 (package
5655 (name "shotwell")
5656 (version "0.30.8")
5657 (source (origin
5658 (method url-fetch)
5659 (uri (string-append "mirror://gnome/sources/shotwell/"
5660 (version-major+minor version) "/"
5661 "shotwell-" version ".tar.xz"))
5662 (sha256
5663 (base32
5664 "1f7m007g6w1sz8s60w6x81ghp2rrjmik8phd958b2hy8zz92wbbj"))))
5665 (build-system meson-build-system)
5666 (arguments
5667 '(#:glib-or-gtk? #t
5668 #:phases
5669 (modify-phases %standard-phases
5670 (add-after 'unpack 'skip-gtk-update-icon-cache
5671 (lambda _
5672 (substitute* "build-aux/meson/postinstall.py"
5673 (("gtk-update-icon-cache") (which "true"))
5674 (("update-desktop-database") (which "true")))
5675 #t)))))
5676 (propagated-inputs
5677 `(("dconf" ,dconf)))
5678 (native-inputs
5679 `(("gettext" ,gettext-minimal)
5680 ("glib:bin" ,glib "bin")
5681 ("itstool" ,itstool)
5682 ("pkg-config" ,pkg-config)
5683 ("vala" ,vala)))
5684 (inputs
5685 `(("gcr" ,gcr)
5686 ("gexiv2" ,gexiv2)
5687 ("gst-plugins-base" ,gst-plugins-base)
5688 ("gstreamer" ,gstreamer)
5689 ("json-glib" ,json-glib)
5690 ("libgdata" ,libgdata)
5691 ("libgee" ,libgee)
5692 ("libgphoto2" ,libgphoto2)
5693 ("libgudev" ,libgudev)
5694 ("libraw" ,libraw)
5695 ("libsoup" ,libsoup)
5696 ("libxml2" ,libxml2)
5697 ("sqlite" ,sqlite)
5698 ("webkitgtk" ,webkitgtk)))
5699 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5700 (synopsis "Photo manager for GNOME 3")
5701 (description
5702 "Shotwell is a digital photo manager designed for the GNOME desktop
5703 environment. It allows you to import photos from disk or camera, organize
5704 them by keywords and events, view them in full-window or fullscreen mode, and
5705 share them with others via social networking and more.")
5706 (license license:lgpl2.1+)))
5707
5708 (define-public file-roller
5709 (package
5710 (name "file-roller")
5711 (version "3.32.3")
5712 (source (origin
5713 (method url-fetch)
5714 (uri (string-append "mirror://gnome/sources/file-roller/"
5715 (version-major+minor version) "/"
5716 "file-roller-" version ".tar.xz"))
5717 (sha256
5718 (base32
5719 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5720 (build-system meson-build-system)
5721 (native-inputs
5722 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5723 ("intltool" ,intltool)
5724 ("itstool" ,itstool)
5725 ("pkg-config" ,pkg-config)
5726 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5727 ("glib:bin" ,glib "bin")))
5728 ;; TODO: Add libnautilus.
5729 (inputs
5730 `(("gtk+" ,gtk+)
5731 ("gdk-pixbuf" ,gdk-pixbuf)
5732 ("json-glib" ,json-glib)
5733 ("libarchive" ,libarchive)
5734 ("libnotify" ,libnotify)
5735 ("nettle" ,nettle)
5736 ("libxml2" ,libxml2)))
5737 (synopsis "Graphical archive manager for GNOME")
5738 (description "File Roller is an archive manager for the GNOME desktop
5739 environment that allows users to view, unpack, and create compressed archives
5740 such as gzip tarballs.")
5741 (home-page "http://fileroller.sourceforge.net/")
5742 (license license:gpl2+)))
5743
5744 (define-public gnome-session
5745 (package
5746 (name "gnome-session")
5747 (version "3.34.2")
5748 (source (origin
5749 (method url-fetch)
5750 (uri (string-append "mirror://gnome/sources/" name "/"
5751 (version-major+minor version) "/"
5752 name "-" version ".tar.xz"))
5753 (sha256
5754 (base32
5755 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
5756 (arguments
5757 '(#:glib-or-gtk? #t
5758 #:phases
5759 (modify-phases %standard-phases
5760 (add-before 'configure 'pre-configure
5761 (lambda* (#:key outputs #:allow-other-keys)
5762 ;; Use elogind instead of systemd.
5763 (substitute* "meson.build"
5764 (("libsystemd-login") "libelogind")
5765 (("and libsystemd_daemon_dep.found.*") ","))
5766 (substitute* "gnome-session/gsm-systemd.c"
5767 (("#include <systemd/sd-login.h>")
5768 "#include <elogind/sd-login.h>"))
5769 ;; Remove uses of the systemd daemon.
5770 (substitute* "gnome-session/gsm-autostart-app.c"
5771 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5772 #t))
5773 (add-after 'install 'wrap-gnome-session
5774 (lambda* (#:key inputs outputs #:allow-other-keys)
5775 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5776 (let ((glib (assoc-ref inputs "glib:bin"))
5777 (out (assoc-ref outputs "out")))
5778 (wrap-program (string-append out "/bin/gnome-session")
5779 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5780 #t))))
5781
5782 #:configure-flags
5783 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5784 "-Dman=false" ; FIXME: disabled because of docbook validation error
5785 "-Dsystemd_journal=false")))
5786 (build-system meson-build-system)
5787 (native-inputs
5788 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5789 ("pkg-config" ,pkg-config)
5790 ("intltool" ,intltool)
5791 ("xsltproc" ,libxslt)
5792 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5793 ("docbook-xsl" ,docbook-xsl)
5794 ("docbook-xml" ,docbook-xml)
5795 ("xmlto" ,xmlto)))
5796 (inputs
5797 `(("elogind" ,elogind)
5798 ("gnome-desktop" ,gnome-desktop)
5799 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5800 ("gtk+" ,gtk+)
5801 ("json-glib" ,json-glib)
5802 ("libsm" ,libsm)
5803 ("libxcomposite" ,libxcomposite)
5804 ("libxtst" ,libxtst)
5805 ("mesa" ,mesa)
5806 ("upower" ,upower)
5807 ("xtrans" ,xtrans)))
5808 (synopsis "Session manager for GNOME")
5809 (description
5810 "This package contains the GNOME session manager, as well as a
5811 configuration program to choose applications starting on login.")
5812 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5813 (license license:gpl2+)))
5814
5815 (define-public gjs
5816 (package
5817 (name "gjs")
5818 (version "1.56.2")
5819 (source (origin
5820 (method url-fetch)
5821 (uri (string-append "mirror://gnome/sources/" name "/"
5822 (version-major+minor version) "/"
5823 name "-" version ".tar.xz"))
5824 (sha256
5825 (base32
5826 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
5827 (build-system gnu-build-system)
5828 (arguments
5829 '(#:phases
5830 (modify-phases %standard-phases
5831 (add-before
5832 'check 'pre-check
5833 (lambda _
5834 ;; The test suite requires a running X server.
5835 (system "Xvfb :1 &")
5836 (setenv "DISPLAY" ":1")
5837
5838 ;; For the missing /etc/machine-id.
5839 (setenv "DBUS_FATAL_WARNINGS" "0")
5840
5841 ;; Our mozjs-38 package does not compile the required Intl API
5842 ;; support for these failing tests.
5843 (substitute* "installed-tests/js/testLocale.js"
5844 ((".*toBeDefined.*") "")
5845 ((".*expect\\(datestr\\).*") ""))
5846 (substitute* "installed-tests/scripts/testCommandLine.sh"
5847 (("Valentín") "")
5848 (("☭") ""))
5849 #t)))))
5850 (native-inputs
5851 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5852 ("pkg-config" ,pkg-config)
5853 ("xmllint" ,libxml2)
5854 ;; For testing
5855 ("dbus-launch" ,dbus)
5856 ("uuidgen" ,util-linux)
5857 ("xvfb" ,xorg-server-for-tests)))
5858 (propagated-inputs
5859 ;; These are all in the Requires.private field of gjs-1.0.pc.
5860 `(("cairo" ,cairo)
5861 ("gobject-introspection" ,gobject-introspection)
5862 ("mozjs" ,mozjs-60)))
5863 (inputs
5864 `(("gtk+" ,gtk+)
5865 ("readline" ,readline)))
5866 (synopsis "Javascript bindings for GNOME")
5867 (home-page "https://live.gnome.org/Gjs")
5868 (description
5869 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5870 javascript engine and the GObject introspection framework.")
5871 (license license:gpl2+)))
5872
5873 (define-public gedit
5874 (package
5875 (name "gedit")
5876 (version "3.34.1")
5877 (source (origin
5878 (method url-fetch)
5879 (uri (string-append "mirror://gnome/sources/" name "/"
5880 (version-major+minor version) "/"
5881 name "-" version ".tar.xz"))
5882 (sha256
5883 (base32
5884 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
5885 (build-system meson-build-system)
5886 (arguments
5887 `(#:glib-or-gtk? #t
5888 #:configure-flags
5889 ;; Otherwise, the RUNPATH will lack the final path component.
5890 (list (string-append "-Dc_link_args=-Wl,-rpath="
5891 (assoc-ref %outputs "out") "/lib/gedit"))
5892
5893 ;; XXX: Generated .h files are sometimes used before being built.
5894 #:parallel-build? #f
5895
5896 #:phases
5897 (modify-phases %standard-phases
5898 (add-after 'unpack 'skip-gtk-update-icon-cache
5899 ;; Don't create 'icon-theme.cache'.
5900 (lambda _
5901 (substitute* "build-aux/meson/post_install.py"
5902 (("gtk-update-icon-cache") (which "true")))
5903 #t))
5904 (add-after 'unpack 'patch-libgd-fetch
5905 (lambda* (#:key inputs #:allow-other-keys)
5906 (let ((libgd (assoc-ref inputs "libgd")))
5907 ;; Calling git is unnecessary because libgd is fetched as a
5908 ;; native input to this package.
5909 (substitute* "meson.build"
5910 ((".*git.*") ""))
5911 (copy-recursively libgd "subprojects/libgd")
5912 #t)))
5913 (add-after 'install 'wrap-gedit
5914 (lambda* (#:key inputs outputs #:allow-other-keys)
5915 (let ((out (assoc-ref outputs "out"))
5916 (gtksourceview (assoc-ref inputs "gtksourceview"))
5917 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5918 (python-path (getenv "PYTHONPATH")))
5919 (wrap-program (string-append out "/bin/gedit")
5920 ;; For plugins.
5921 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5922 `("PYTHONPATH" ":" prefix (,python-path))
5923 ;; For language-specs.
5924 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5925 "/share")))))
5926 #t)))))
5927 (propagated-inputs
5928 `(("dconf" ,dconf)))
5929 (native-inputs
5930 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5931 ("intltool" ,intltool)
5932 ("itstool" ,itstool)
5933 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5934 ("gobject-introspection" ,gobject-introspection)
5935 ("libgd"
5936 ,(origin
5937 (method git-fetch)
5938 (uri (git-reference
5939 (url "https://gitlab.gnome.org/GNOME/libgd")
5940 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5941 (file-name (git-file-name "libgd" version))
5942 (sha256
5943 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
5944 ("pkg-config" ,pkg-config)))
5945 (inputs
5946 `(("glib" ,glib)
5947 ("gspell" ,gspell)
5948 ("gtk+" ,gtk+)
5949 ("gtksourceview" ,gtksourceview)
5950 ("libpeas" ,libpeas)
5951 ("libxml2" ,libxml2)
5952 ("iso-codes" ,iso-codes)
5953 ("python-pygobject" ,python-pygobject)
5954 ("python" ,python)
5955 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5956 ("libx11" ,libx11)
5957 ("vala" ,vala)
5958 ("adwaita-icon-theme" ,adwaita-icon-theme)
5959 ("libsoup" ,libsoup)
5960 ("gnome-desktop" ,gnome-desktop)))
5961 (home-page "https://wiki.gnome.org/Apps/Gedit")
5962 (synopsis "GNOME text editor")
5963 (description "While aiming at simplicity and ease of use, gedit is a
5964 powerful general purpose text editor.")
5965 (license license:gpl2+)))
5966
5967 (define-public zenity
5968 (package
5969 (name "zenity")
5970 (version "3.32.0")
5971 (source (origin
5972 (method url-fetch)
5973 (uri (string-append "mirror://gnome/sources/zenity/"
5974 (version-major+minor version) "/"
5975 "zenity-" version ".tar.xz"))
5976 (sha256
5977 (base32
5978 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
5979 (build-system gnu-build-system)
5980 (native-inputs
5981 `(("gettext" ,gettext-minimal)
5982 ("itstool" ,itstool)
5983 ("pkg-config" ,pkg-config)))
5984 (inputs
5985 `(("libnotify" ,libnotify)
5986 ("webkitgtk" ,webkitgtk)))
5987 (synopsis "Display graphical dialog boxes from shell scripts")
5988 (home-page "https://www.gnome.org")
5989 (description
5990 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
5991 to display dialog boxes from the commandline and shell scripts.")
5992 (license license:lgpl2.0+)))
5993
5994 (define-public mutter
5995 (package
5996 (name "mutter")
5997 (version "3.32.2")
5998 (source (origin
5999 (method url-fetch)
6000 (uri (string-append "mirror://gnome/sources/" name "/"
6001 (version-major+minor version) "/"
6002 name "-" version ".tar.xz"))
6003 (sha256
6004 (base32
6005 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
6006 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6007 ;; versions of cogl and clutter. As a result, many of the inputs,
6008 ;; propagated-inputs, and configure flags used in cogl and clutter are
6009 ;; needed here as well.
6010 (build-system meson-build-system)
6011 (arguments
6012 '(;; XXX: All mutter tests fail with the following error:
6013 ;; Settings schema 'org.gnome.mutter' is not installed
6014 #:tests? #f
6015 #:glib-or-gtk? #t
6016 #:configure-flags
6017 ;; Otherwise, the RUNPATH will lack the final path component.
6018 (list (string-append "-Dc_link_args=-Wl,-rpath="
6019 (assoc-ref %outputs "out") "/lib:"
6020 (assoc-ref %outputs "out") "/lib/mutter-4")
6021
6022 ;; The following flags are needed for the bundled clutter
6023 (string-append "-Dxwayland_path="
6024 (assoc-ref %build-inputs "xorg-server-xwayland")
6025 "/bin/Xwayland")
6026
6027 ;; the remaining flags are needed for the bundled cogl
6028 (string-append "-Dopengl_libname="
6029 (assoc-ref %build-inputs "mesa")
6030 "/lib/libGL.so"))
6031 #:phases
6032 (modify-phases %standard-phases
6033 (add-after 'unpack 'disable-werror
6034 (lambda _
6035 ;; XXX: build fails with [-Werror]:
6036 ;; backends/meta-cursor-renderer.c:112:5: error:
6037 ;; implicit declaration of function ?roundf?
6038 (substitute* "meson.build"
6039 (("'-Werror=.*',") ""))
6040 #t))
6041 ;; Replace references to systemd libraries to elogind references.
6042 (add-before 'configure 'use-elogind
6043 (lambda _
6044 (substitute* (list "meson.build"
6045 "src/backends/native/meta-launcher.c"
6046 "src/core/main.c")
6047 (("systemd") "elogind"))
6048 #t)))))
6049 (native-inputs
6050 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6051 ("gobject-introspection" ,gobject-introspection)
6052 ("intltool" ,intltool)
6053 ("pkg-config" ,pkg-config)
6054 ("xorg-server" ,xorg-server-for-tests)
6055 ;; For git build
6056 ("autoconf" ,autoconf)
6057 ("automake" ,automake)
6058 ("libtool" ,libtool)))
6059 (propagated-inputs
6060 `(;; libmutter.pc refers to these:
6061 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6062 ("gtk+" ,gtk+)
6063 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6064 ("atk" ,atk)
6065 ("cairo" ,cairo)
6066 ("gdk-pixbuf" ,gdk-pixbuf)
6067 ("glib" ,glib)
6068 ("json-glib" ,json-glib)
6069 ("libinput" ,libinput)
6070 ("libx11" ,libx11)
6071 ("libxcomposite" ,libxcomposite)
6072 ("libxdamage" ,libxdamage)
6073 ("libxext" ,libxext)
6074 ("libxfixes" ,libxfixes)
6075 ("libxkbcommon" ,libxkbcommon)
6076 ("libxrandr" ,libxrandr)
6077 ("mesa" ,mesa)
6078 ("pango" ,pango)
6079 ("udev" ,eudev)
6080 ("xinput" ,xinput)))
6081 (inputs
6082 `(("elogind" ,elogind)
6083 ("gnome-desktop" ,gnome-desktop)
6084 ("gnome-settings-daemon" ,gnome-settings-daemon)
6085 ("libcanberra-gtk" ,libcanberra)
6086 ("libgudev" ,libgudev)
6087 ("libice" ,libice)
6088 ("libsm" ,libsm)
6089 ("libwacom" ,libwacom)
6090 ("libxkbfile" ,libxkbfile)
6091 ("libxrandr" ,libxrandr)
6092 ("libxtst" ,libxtst)
6093 ("pipewire" ,pipewire)
6094 ("startup-notification" ,startup-notification)
6095 ("upower-glib" ,upower)
6096 ("xkeyboard-config" ,xkeyboard-config)
6097 ("xorg-server-xwayland" ,xorg-server-xwayland)
6098 ("zenity" ,zenity)))
6099 (synopsis "Window and compositing manager")
6100 (home-page "https://www.gnome.org")
6101 (description
6102 "Mutter is a window and compositing manager that displays and manages your
6103 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6104 Clutter toolkit with solid window-management logic inherited from the Metacity
6105 window manager.")
6106 (license license:gpl2+)))
6107
6108 (define-public gnome-online-accounts
6109 (package
6110 (name "gnome-online-accounts")
6111 (version "3.36.0")
6112 (source (origin
6113 (method url-fetch)
6114 (uri (string-append "mirror://gnome/sources/" name "/"
6115 (version-major+minor version) "/"
6116 name "-" version ".tar.xz"))
6117 (sha256
6118 (base32
6119 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
6120 (outputs '("out" "lib"))
6121 (build-system glib-or-gtk-build-system)
6122 (arguments
6123 `(#:configure-flags
6124 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6125 #:phases
6126 (modify-phases %standard-phases
6127 (add-before 'configure 'patch-libgoa-output
6128 (lambda* (#:key outputs #:allow-other-keys)
6129 (let ((lib (assoc-ref outputs "lib")))
6130 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6131 (("@prefix@") lib)
6132 (("@exec_prefix@") lib)
6133 (("@libdir@") (string-append lib "/lib"))
6134 (("@includedir@") (string-append lib "/include"))
6135 (("@datadir@") (string-append lib "/share")))
6136 ;; Make sure gobject-introspection knows about the output
6137 ;; too (see <https://bugs.gnu.org/36535>).
6138 (setenv "outputs" "out lib")
6139 #t))))))
6140 (native-inputs
6141 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6142 ("gobject-introspection" ,gobject-introspection)
6143 ("intltool" ,intltool)
6144 ("pkg-config" ,pkg-config)
6145 ("vala" ,vala)
6146 ("xsltproc" ,libxslt)))
6147 (propagated-inputs
6148 `(("glib" ,glib) ; required by goa-1.0.pc
6149 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6150 (inputs
6151 `(("docbook-xsl" ,docbook-xsl)
6152 ("json-glib" ,json-glib)
6153 ("libsecret" ,libsecret)
6154 ("rest" ,rest)
6155 ("webkitgtk" ,webkitgtk)))
6156 (synopsis "Single sign-on framework for GNOME")
6157 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6158 (description
6159 "GNOME Online Accounts provides interfaces so that applications and
6160 libraries in GNOME can access the user's online accounts. It has providers for
6161 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6162 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6163 (license license:lgpl2.0+)))
6164
6165 (define-public evolution-data-server
6166 (package
6167 (name "evolution-data-server")
6168 (version "3.34.2")
6169 (source (origin
6170 (method url-fetch)
6171 (uri (string-append "mirror://gnome/sources/" name "/"
6172 (version-major+minor version) "/"
6173 name "-" version ".tar.xz"))
6174 (patches (search-patches "evolution-data-server-locales.patch"
6175 "evolution-data-server-libical-compat.patch"))
6176 (sha256
6177 (base32
6178 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
6179 (build-system cmake-build-system)
6180 (arguments
6181 '(#:configure-flags
6182 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6183 (runpaths (map (lambda (s)
6184 (string-append lib "/evolution-data-server/" s))
6185 '("addressbook-backends" "calendar-backends"
6186 "camel-providers" "credential-modules"
6187 "registry-modules"))))
6188 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6189 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6190 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6191 "-DENABLE_VALA_BINDINGS=ON"
6192 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6193 (string-append lib "/evolution-data-server;")
6194 (string-join runpaths ";"))
6195 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6196 #:phases
6197 (modify-phases %standard-phases
6198 (add-after 'unpack 'disable-failing-tests
6199 (lambda _
6200 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6201 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6202 (delete-file-recursively "tests/book-migration")
6203 (substitute* "tests/CMakeLists.txt"
6204 (("add_subdirectory\\(book-migration\\)") ""))
6205 #t))
6206 (add-after 'unpack 'patch-paths
6207 (lambda _
6208 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6209 "tests/libedata-book/data-test-utils.c"
6210 "tests/libedata-book/test-book-cache-utils.c"
6211 "tests/libedata-cal/test-cal-cache-utils.c")
6212 (("/bin/rm") (which "rm")))
6213 #t))
6214 (add-before 'configure 'dont-override-rpath
6215 (lambda _
6216 (substitute* "CMakeLists.txt"
6217 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6218 ;; Remove it so the configure flag is respected.
6219 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6220 #t)))))
6221 (native-inputs
6222 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6223 ("gobject-introspection" ,gobject-introspection)
6224 ("gperf" ,gperf)
6225 ("intltool" ,intltool)
6226 ("pkg-config" ,pkg-config)
6227 ("vala" ,vala)
6228 ("python" ,python-wrapper)))
6229 (propagated-inputs
6230 ;; These are all in the Requires field of .pc files.
6231 `(("gtk+" ,gtk+)
6232 ("libical" ,libical)
6233 ("libsecret" ,libsecret)
6234 ("libsoup" ,libsoup)
6235 ("nss" ,nss)
6236 ("sqlite" ,sqlite)))
6237 (inputs
6238 `(("bdb" ,bdb)
6239 ("gcr" ,gcr)
6240 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6241 ("json-glib" ,json-glib)
6242 ("libcanberra" ,libcanberra)
6243 ("libgweather" ,libgweather)
6244 ("mit-krb5" ,mit-krb5)
6245 ("openldap" ,openldap)
6246 ("webkitgtk" ,webkitgtk)))
6247 (synopsis "Store address books and calendars")
6248 (home-page "https://wiki.gnome.org/Apps/Evolution")
6249 (description
6250 "This package provides a unified backend for programs that work with
6251 contacts, tasks, and calendar information. It was originally developed for
6252 Evolution (hence the name), but is now used by other packages as well.")
6253 (license license:lgpl2.0)))
6254
6255 (define-public caribou
6256 (package
6257 (name "caribou")
6258 (version "0.4.21")
6259 (source (origin
6260 (method url-fetch)
6261 (uri (string-append "mirror://gnome/sources/" name "/"
6262 (version-major+minor version) "/"
6263 name "-" version ".tar.xz"))
6264 (sha256
6265 (base32
6266 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6267 (build-system glib-or-gtk-build-system)
6268 (arguments
6269 '(#:phases
6270 (modify-phases %standard-phases
6271 (add-before
6272 'build 'pre-build
6273 (lambda* (#:key outputs #:allow-other-keys)
6274 (let ((out (assoc-ref outputs "out")))
6275 ;; Use absolute shared library path in Caribou-1.0.typelib.
6276 (substitute* "libcaribou/Makefile"
6277 (("--shared-library=libcaribou.so")
6278 (string-append "--shared-library="
6279 out "/lib/libcaribou.so")))
6280 #t)))
6281 (add-after 'install 'wrap-programs
6282 (lambda* (#:key outputs #:allow-other-keys)
6283 (let* ((out (assoc-ref outputs "out"))
6284 (python-path (getenv "PYTHONPATH"))
6285 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6286 (for-each
6287 (lambda (prog)
6288 (wrap-program prog
6289 `("PYTHONPATH" ":" prefix (,python-path))
6290 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6291 (list (string-append out "/bin/caribou-preferences")
6292 (string-append out "/libexec/antler-keyboard"))))
6293 #t)))))
6294 (native-inputs
6295 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6296 ("gobject-introspection" ,gobject-introspection)
6297 ("intltool" ,intltool)
6298 ("pkg-config" ,pkg-config)
6299 ("python" ,python)
6300 ("vala" ,vala)
6301 ("xsltproc" ,libxslt)))
6302 (propagated-inputs
6303 ;; caribou-1.0.pc refers to all these.
6304 `(("libgee" ,libgee)
6305 ("libxklavier" ,libxklavier)
6306 ("libxtst" ,libxtst)
6307 ("gtk+" ,gtk+)))
6308 (inputs
6309 `(("clutter" ,clutter)
6310 ("dconf" ,dconf)
6311 ("gtk+-2" ,gtk+-2)
6312 ("python-pygobject" ,python-pygobject)))
6313 (synopsis "Text entry and UI navigation application")
6314 (home-page "https://wiki.gnome.org/Projects/Caribou")
6315 (description
6316 "Caribou is an input assistive technology intended for switch and pointer
6317 users.")
6318 (license license:lgpl2.1)))
6319
6320 (define-public network-manager
6321 (package
6322 (name "network-manager")
6323 (version "1.18.4")
6324 (source (origin
6325 (method url-fetch)
6326 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6327 (version-major+minor version) "/"
6328 "NetworkManager-" version ".tar.xz"))
6329 (patches (search-patches "nm-plugin-path.patch"))
6330 (sha256
6331 (base32
6332 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
6333 (modules '((guix build utils)))
6334 (snippet
6335 '(begin
6336 (substitute* "src/devices/wwan/nm-modem-manager.c"
6337 (("systemd") "elogind"))
6338 #t))))
6339 (build-system gnu-build-system)
6340 (outputs '("out"
6341 "doc")) ; 8 MiB of gtk-doc HTML
6342 (arguments
6343 '(#:configure-flags
6344 (let ((out (assoc-ref %outputs "out"))
6345 (doc (assoc-ref %outputs "doc"))
6346 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6347 "/sbin/dhclient")))
6348 (list "--with-libnm-glib" ; needed by network-manager-applet
6349 "--with-systemd-journal=no"
6350 "--with-session-tracking=elogind"
6351 "--with-suspend-resume=elogind"
6352 "--with-consolekit=no"
6353 "--with-crypto=gnutls"
6354 "--disable-config-plugin-ibft"
6355 "--sysconfdir=/etc"
6356 "--localstatedir=/var"
6357 (string-append "--with-udev-dir="
6358 out "/lib/udev")
6359 (string-append "--with-dbus-sys-dir="
6360 out "/etc/dbus-1/system.d")
6361 (string-append "--with-html-dir="
6362 doc "/share/gtk-doc/html")
6363 (string-append "--with-dhclient=" dhclient)))
6364 #:phases
6365 (modify-phases %standard-phases
6366 ;; This bare "ls" invocation breaks some tests.
6367 (add-after 'unpack 'patch-ls-invocation
6368 (lambda _
6369 (substitute* "build-aux/ltmain.sh"
6370 (("`ls -")
6371 (string-append "`" (which "ls") " -")))
6372 #t))
6373 (add-before 'configure 'pre-configure
6374 (lambda _
6375 ;; These tests try to test aspects of network-manager's
6376 ;; functionality within restricted containers, but they don't
6377 ;; cope with being already in the Guix build jail as that jail
6378 ;; lacks some features that they would like to proxy over (like
6379 ;; a /sys mount).
6380 (substitute* '("Makefile.in")
6381 (("src/platform/tests/test-address-linux") " ")
6382 (("src/platform/tests/test-cleanup-linux") " ")
6383 (("src/platform/tests/test-link-linux") " ")
6384 (("src/platform/tests/test-route-linux") " ")
6385 (("src/devices/tests/test-acd") "")
6386 (("src/devices/tests/test-arping") " ")
6387 (("src/devices/tests/test-lldp") " ")
6388 (("src/tests/test-route-manager-linux") " "))
6389 #t))
6390 (add-after 'unpack 'delete-failing-tests
6391 (lambda _
6392 ;; FIXME: These three tests fail for unknown reasons.
6393 ;; ERROR:libnm-core/tests/test-general.c:5842:
6394 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6395 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6396 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6397 ;; ERROR:libnm-core/tests/test-setting.c:907:
6398 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
6399 (substitute* "Makefile.in"
6400 (("libnm-core/tests/test-general") " ")
6401 (("libnm-core/tests/test-keyfile") " ")
6402 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
6403 #t))
6404 (add-before 'check 'pre-check
6405 (lambda _
6406 ;; For the missing /etc/machine-id.
6407 (setenv "DBUS_FATAL_WARNINGS" "0")
6408
6409 ;; XXX: Regenerate some of the tests that are dependent on Python version.
6410 ;; Try removing this variable for newer versions of NetworkManager.
6411 (setenv "NM_TEST_REGENERATE" "1")
6412 #t))
6413 (replace 'install
6414 (lambda _
6415 (invoke "make"
6416 "sysconfdir=/tmp"
6417 "rundir=/tmp"
6418 "statedir=/tmp"
6419 "nmstatedir=/tmp/nm"
6420 "install")
6421 #t)))))
6422 (propagated-inputs
6423 `(("glib" ,glib)))
6424 (native-inputs
6425 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6426 ("gobject-introspection" ,gobject-introspection)
6427 ("docbook-xsl" ,docbook-xsl)
6428 ("intltool" ,intltool)
6429 ("libxslt" ,libxslt)
6430 ("libxml2" ,libxml2)
6431 ("pkg-config" ,pkg-config)
6432 ;; For testing.
6433 ("python" ,python-wrapper)
6434 ("python-dbus" ,python-dbus)
6435 ("python-pygobject" ,python-pygobject)))
6436 (inputs
6437 `(("coreutils" ,coreutils) ; for ls
6438 ("curl" ,curl)
6439 ("cyrus-sasl" ,cyrus-sasl)
6440 ("dbus-glib" ,dbus-glib)
6441 ("dnsmasq" ,dnsmasq)
6442 ("eudev" ,eudev)
6443 ("gnutls" ,gnutls)
6444 ("iptables" ,iptables)
6445 ("isc-dhcp" ,isc-dhcp)
6446 ("jansson" ,jansson)
6447 ("libgcrypt" ,libgcrypt)
6448 ("libgudev" ,libgudev)
6449 ("libndp" ,libndp)
6450 ("libnl" ,libnl)
6451 ("libsoup" ,libsoup)
6452 ("modem-manager" ,modem-manager)
6453 ("newt" ,newt) ;for the 'nmtui' console interface
6454 ("polkit" ,polkit)
6455 ("ppp" ,ppp)
6456 ("readline" ,readline)
6457 ("util-linux" ,util-linux)
6458 ("elogind" ,elogind)))
6459 (synopsis "Network connection manager")
6460 (home-page "https://www.gnome.org/projects/NetworkManager/")
6461 (description
6462 "NetworkManager is a system network service that manages your network
6463 devices and connections, attempting to keep active network connectivity when
6464 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6465 devices, and provides VPN integration with a variety of different VPN
6466 services.")
6467 (license license:gpl2+)
6468 (properties '((upstream-name . "NetworkManager")))))
6469
6470 (define-public network-manager-openvpn
6471 (package
6472 (name "network-manager-openvpn")
6473 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
6474 (version "1.8.10")
6475 (source (origin
6476 (method url-fetch)
6477 (uri (string-append
6478 "mirror://gnome/sources/NetworkManager-openvpn/"
6479 (version-major+minor version)
6480 "/NetworkManager-openvpn-" version ".tar.xz"))
6481 (sha256
6482 (base32
6483 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
6484 (build-system gnu-build-system)
6485 (arguments
6486 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6487 #:phases
6488 (modify-phases %standard-phases
6489 (add-after 'configure 'patch-path
6490 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6491 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6492 "/sbin/openvpn"))
6493 (modprobe (string-append (assoc-ref inputs "kmod")
6494 "/bin/modprobe"))
6495 (pretty-ovpn (string-append "\"" ovpn "\"")))
6496 (for-each
6497 (lambda (file)
6498 (substitute* file
6499 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6500 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6501 (("\"/sbin/openvpn\"") pretty-ovpn)
6502 (("/sbin/modprobe") modprobe)))
6503 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6504 #t)))))
6505 (native-inputs
6506 `(("pkg-config" ,pkg-config)
6507 ("intltool" ,intltool)))
6508 (inputs
6509 `(("gtk+" ,gtk+)
6510 ("kmod" ,kmod)
6511 ("openvpn" ,openvpn)
6512 ("network-manager" ,network-manager)
6513 ("network-manager-applet" ,network-manager-applet) ;for libnma
6514 ("libsecret" ,libsecret)))
6515 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6516 (synopsis "OpenVPN plug-in for NetworkManager")
6517 (description
6518 "This extension of NetworkManager allows it to take care of connections
6519 to virtual private networks (VPNs) via OpenVPN.")
6520 (license license:gpl2+)
6521 (properties `((upstream-name . "NetworkManager-openvpn")))))
6522
6523 (define-public network-manager-vpnc
6524 (package
6525 (name "network-manager-vpnc")
6526 (version "1.2.6")
6527 (source (origin
6528 (method url-fetch)
6529 (uri (string-append
6530 "mirror://gnome/sources/NetworkManager-vpnc/"
6531 (version-major+minor version)
6532 "/NetworkManager-vpnc-" version ".tar.xz"))
6533 (sha256
6534 (base32
6535 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6536 (build-system gnu-build-system)
6537 (arguments
6538 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6539 #:phases
6540 (modify-phases %standard-phases
6541 (add-after 'configure 'patch-path
6542 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6543 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6544 "/sbin/vpnc"))
6545 (modprobe (string-append (assoc-ref inputs "kmod")
6546 "/bin/modprobe"))
6547 (pretty-ovpn (string-append "\"" vpnc "\"")))
6548 (substitute* "src/nm-vpnc-service.c"
6549 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6550 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6551 (("\"/sbin/vpnc\"") pretty-ovpn)
6552 (("/sbin/modprobe") modprobe)))
6553 #t)))))
6554 (native-inputs
6555 `(("pkg-config" ,pkg-config)
6556 ("intltool" ,intltool)))
6557 (inputs
6558 `(("gtk+" ,gtk+)
6559 ("kmod" ,kmod)
6560 ("vpnc" ,vpnc)
6561 ("network-manager" ,network-manager)
6562 ("network-manager-applet" ,network-manager-applet) ;for libnma
6563 ("libsecret" ,libsecret)))
6564 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6565 (synopsis "VPNC plug-in for NetworkManager")
6566 (description
6567 "Support for configuring virtual private networks based on VPNC.
6568 Compatible with Cisco VPN concentrators configured to use IPsec.")
6569 (license license:gpl2+)
6570 (properties `((upstream-name . "NetworkManager-vpnc")))))
6571
6572 (define-public network-manager-openconnect
6573 (package
6574 (name "network-manager-openconnect")
6575 (version "1.2.6")
6576 (source (origin
6577 (method url-fetch)
6578 (uri (string-append
6579 "mirror://gnome/sources/NetworkManager-openconnect/"
6580 (version-major+minor version)
6581 "/NetworkManager-openconnect-" version ".tar.xz"))
6582 (sha256
6583 (base32
6584 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6585 (build-system gnu-build-system)
6586 (arguments
6587 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6588 #:phases
6589 (modify-phases %standard-phases
6590 (add-after 'configure 'patch-path
6591 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6592 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6593 "/sbin/openconnect"))
6594 (modprobe (string-append (assoc-ref inputs "kmod")
6595 "/bin/modprobe"))
6596 (pretty-ovpn (string-append "\"" openconnect "\"")))
6597 (substitute* "src/nm-openconnect-service.c"
6598 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6599 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6600 (("/sbin/modprobe") modprobe)))
6601 #t)))))
6602 (native-inputs
6603 `(("intltool" ,intltool)
6604 ("network-manager-applet" ,network-manager-applet) ;for libnma
6605 ("pkg-config" ,pkg-config)))
6606 (inputs
6607 `(("gcr" ,gcr)
6608 ("gtk+" ,gtk+)
6609 ("kmod" ,kmod)
6610 ("libsecret" ,libsecret)
6611 ("libxml2" ,libxml2)
6612 ("network-manager" ,network-manager)
6613 ("openconnect" ,openconnect)))
6614 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6615 (synopsis "OpenConnect plug-in for NetworkManager")
6616 (description
6617 "This extension of NetworkManager allows it to take care of connections
6618 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6619 Cisco's AnyConnect SSL VPN.")
6620 (license license:gpl2+)
6621 (properties `((upstream-name . "NetworkManager-openconnect")
6622
6623 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6624 ;; file refers to account "nm-openconnect". Specify it here
6625 ;; so that 'network-manager-service-type' creates it.
6626 (user-accounts . ("nm-openconnect"))))))
6627
6628 (define-public mobile-broadband-provider-info
6629 (package
6630 (name "mobile-broadband-provider-info")
6631 (version "20190116")
6632 (source (origin
6633 (method url-fetch)
6634 (uri (string-append
6635 "mirror://gnome/sources/"
6636 "mobile-broadband-provider-info/" version "/"
6637 "mobile-broadband-provider-info-" version ".tar.xz"))
6638 (sha256
6639 (base32
6640 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6641 (build-system gnu-build-system)
6642 (arguments
6643 `(#:tests? #f)) ; no tests
6644 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6645 (synopsis "Database of broadband connection configuration")
6646 (description "Database of broadband connection configuration.")
6647 (license license:public-domain)))
6648
6649 (define-public network-manager-applet
6650 (package
6651 (name "network-manager-applet")
6652 (version "1.8.24")
6653 (source (origin
6654 (method url-fetch)
6655 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6656 (version-major+minor version) "/"
6657 "network-manager-applet-" version ".tar.xz"))
6658 (sha256
6659 (base32
6660 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
6661 (build-system meson-build-system)
6662 (arguments
6663 '(#:configure-flags
6664 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6665 (list "-Dlibnm_gtk=true")
6666 #:glib-or-gtk? #t))
6667 (native-inputs
6668 `(("intltool" ,intltool)
6669 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6670 ("gobject-introspection" ,gobject-introspection)
6671 ("gtk-doc" ,gtk-doc)
6672 ("pkg-config" ,pkg-config)))
6673 (propagated-inputs
6674 ;; libnm-gtk.pc refers to all these.
6675 `(("dbus-glib" ,dbus-glib)
6676 ("gtk+" ,gtk+)
6677 ("network-manager" ,network-manager)))
6678 (inputs
6679 `(("gcr" ,gcr)
6680 ("iso-codes" ,iso-codes)
6681 ("libgudev" ,libgudev)
6682 ("libnotify" ,libnotify)
6683 ("libsecret" ,libsecret)
6684 ("libselinux" ,libselinux)
6685 ("jansson" ,jansson) ; for team support
6686 ("modem-manager" ,modem-manager)
6687 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
6688 (synopsis "Applet for managing network connections")
6689 (home-page "https://www.gnome.org/projects/NetworkManager/")
6690 (description
6691 "This package contains a systray applet for NetworkManager. It displays
6692 the available networks and allows users to easily switch between them.")
6693 (license license:gpl2+)))
6694
6695 (define-public libxml++
6696 (package
6697 (name "libxml++")
6698 (version "3.0.1")
6699 (source (origin
6700 (method url-fetch)
6701 (uri (string-append "mirror://gnome/sources/" name "/"
6702 (version-major+minor version) "/"
6703 name "-" version ".tar.xz"))
6704 (sha256
6705 (base32
6706 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6707 (build-system gnu-build-system)
6708 ;; libxml++-3.0.pc refers to all these.
6709 (propagated-inputs
6710 `(("libxml2" ,libxml2)
6711 ("glibmm" ,glibmm)))
6712 (native-inputs
6713 `(("perl" ,perl)
6714 ("pkg-config" ,pkg-config)))
6715 (home-page "http://libxmlplusplus.sourceforge.net/")
6716 (synopsis "C++ wrapper for XML parser library libxml2")
6717 (description
6718 "This package provides a C++ wrapper for the XML parser library
6719 libxml2.")
6720 (license license:lgpl2.1+)))
6721
6722 (define-public libxml++-2
6723 (package
6724 (inherit libxml++)
6725 (name "libxml++")
6726 (version "2.40.1")
6727 (source (origin
6728 (method url-fetch)
6729 (uri (string-append "mirror://gnome/sources/" name "/"
6730 (version-major+minor version) "/"
6731 name "-" version ".tar.xz"))
6732 (sha256
6733 (base32
6734 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6735
6736 (define-public gdm
6737 (package
6738 (name "gdm")
6739 (version "3.32.0")
6740 (source (origin
6741 (method url-fetch)
6742 (uri (string-append "mirror://gnome/sources/" name "/"
6743 (version-major+minor version) "/"
6744 name "-" version ".tar.xz"))
6745 (sha256
6746 (base32
6747 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))
6748 (patches (search-patches "gdm-default-session.patch"))))
6749 (build-system glib-or-gtk-build-system)
6750 (arguments
6751 '(#:configure-flags
6752 `("--without-plymouth"
6753 "--disable-systemd-journal"
6754
6755 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6756 ;; instead of having to replace it (i.e., stopping the mingetty
6757 ;; service for TTY 1 before starting GDM).
6758 "--with-initial-vt=7"
6759
6760 ;; Use '/etc/environment' for locale settings instead of the
6761 ;; systemd-specific '/etc/locale.conf'.
6762 "--with-lang-file=/etc/environment"
6763
6764 ,(string-append "--with-udevdir="
6765 (assoc-ref %outputs "out") "/lib/udev")
6766
6767 "--localstatedir=/var"
6768 ,(string-append "--with-default-path="
6769 (string-join '("/run/setuid-programs"
6770 "/run/current-system/profile/bin"
6771 "/run/current-system/profile/sbin")
6772 ":"))
6773 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6774 ;; XDG_DATA_DIRS so that it finds its schemas.
6775 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6776 #:phases
6777 (modify-phases %standard-phases
6778 (add-before
6779 'configure 'pre-configure
6780 (lambda* (#:key inputs outputs #:allow-other-keys)
6781 ;; We don't have <systemd/sd-daemon.h>.
6782 (substitute* '("common/gdm-log.c"
6783 "daemon/gdm-server.c"
6784 "daemon/gdm-session-worker.c"
6785 "daemon/gdm-session-worker-job.c")
6786 (("#include <systemd/sd-daemon\\.h>") ""))
6787 ;; Use elogind for sd-login.
6788 (substitute* '("common/gdm-common.c"
6789 "daemon/gdm-manager.c"
6790 "libgdm/gdm-user-switching.c")
6791 (("#include <systemd/sd-login\\.h>")
6792 "#include <elogind/sd-login.h>"))
6793 ;; Check for elogind.
6794 (substitute* '("configure")
6795 (("libsystemd")
6796 "libelogind"))
6797 ;; Look for system-installed sessions in
6798 ;; /run/current-system/profile/share.
6799 (substitute* '("libgdm/gdm-sessions.c"
6800 "daemon/gdm-session.c"
6801 "daemon/gdm-display.c"
6802 "daemon/gdm-launch-environment.c")
6803 (("DATADIR \"/x")
6804 "\"/run/current-system/profile/share/x")
6805 (("DATADIR \"/wayland")
6806 "\"/run/current-system/profile/share/wayland")
6807 (("DATADIR \"/gnome")
6808 "\"/run/current-system/profile/share/gnome"))
6809 (let ((propagate '("GDM_CUSTOM_CONF"
6810 "GDM_DBUS_DAEMON"
6811 "GDM_X_SERVER"
6812 "GDM_X_SESSION"
6813 ;; XXX: Remove this once GNOME Shell is
6814 ;; a dependency of GDM.
6815 "XDG_DATA_DIRS")))
6816 (substitute* "daemon/gdm-session.c"
6817 (("set_up_session_environment \\(self\\);")
6818 (apply string-append
6819 "set_up_session_environment (self);\n"
6820 (map (lambda (name)
6821 (string-append
6822 "gdm_session_set_environment_variable "
6823 "(self, \"" name "\","
6824 "g_getenv (\"" name "\"));\n"))
6825 propagate)))))
6826 ;; Find the configuration file using an environment variable.
6827 (substitute* '("common/gdm-settings.c")
6828 (("GDM_CUSTOM_CONF")
6829 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6830 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6831 " : GDM_CUSTOM_CONF)")))
6832 ;; Use service-supplied path to X.
6833 (substitute* '("daemon/gdm-server.c")
6834 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6835 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6836 (substitute* '("daemon/gdm-x-session.c")
6837 (("\"dbus-daemon\"")
6838 "g_getenv (\"GDM_DBUS_DAEMON\")")
6839 (("X_SERVER")
6840 "g_getenv (\"GDM_X_SERVER\")")
6841 (("GDMCONFDIR \"/Xsession\"")
6842 "g_getenv (\"GDM_X_SESSION\")"))
6843 ;; Use an absolute path for GNOME Session.
6844 (substitute* "daemon/gdm-launch-environment.c"
6845 (("\"gnome-session\"")
6846 (string-append "\"" (assoc-ref inputs "gnome-session")
6847 "/bin/gnome-session\"")))
6848 ;; Do not automatically select the placeholder session.
6849 (substitute* "daemon/gdm-session.c"
6850 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6851 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6852 "(g_strcmp0(search_dirs[i], \""
6853 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6854 "\") == 0 && "
6855 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6856 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
6857 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
6858 #t))
6859 ;; GDM requires that there be at least one desktop entry
6860 ;; file. This phase installs a hidden one that simply
6861 ;; fails. This enables users to use GDM with a
6862 ;; '~/.xsession' script with no other desktop entry files.
6863 ;; See <https://bugs.gnu.org/35068>.
6864 (add-after 'install 'install-placeholder-desktop-entry
6865 (lambda* (#:key inputs outputs #:allow-other-keys)
6866 (let* ((out (assoc-ref outputs "out"))
6867 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6868 (fail (string-append sessions "/fail.desktop")))
6869 (mkdir-p sessions)
6870 (with-output-to-file fail
6871 (lambda ()
6872 (for-each
6873 display
6874 '("[Desktop Entry]\n"
6875 "Encoding=UTF-8\n"
6876 "Type=Application\n"
6877 "Name=Fail\n"
6878 "Comment=This session fails immediately.\n"
6879 "NoDisplay=true\n"
6880 "Exec=false\n"))))
6881 #t)))
6882 ;; GDM needs GNOME Session to run these applications. We link
6883 ;; their autostart files in `share/gdm/greeter/autostart'
6884 ;; because GDM explicitly tells GNOME Session to look there.
6885 ;;
6886 ;; XXX: GNOME Shell should be linked here too, but currently
6887 ;; GNOME Shell depends on GDM.
6888 (add-after 'install 'link-autostart-files
6889 (lambda* (#:key inputs outputs #:allow-other-keys)
6890 (let* ((out (assoc-ref outputs "out"))
6891 (autostart (string-append out "/share/gdm/"
6892 "greeter/autostart"))
6893 (settings (assoc-ref inputs "gnome-settings-daemon")))
6894 (mkdir-p autostart)
6895 (with-directory-excursion autostart
6896 (for-each (lambda (desktop)
6897 (symlink desktop (basename desktop)))
6898 (find-files (string-append settings "/etc/xdg"))))
6899 #t))))))
6900 (native-inputs
6901 `(("dconf" ,dconf)
6902 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6903 ("gobject-introspection" ,gobject-introspection)
6904 ("intltool" ,intltool)
6905 ("itstool" ,itstool)
6906 ("pkg-config" ,pkg-config)
6907 ("xmllint" ,libxml2)))
6908 (inputs
6909 `(("accountsservice" ,accountsservice)
6910 ("check" ,check) ; for testing
6911 ("elogind" ,elogind)
6912 ("gnome-session" ,gnome-session)
6913 ("gnome-settings-daemon" ,gnome-settings-daemon)
6914 ("gtk+" ,gtk+)
6915 ("iso-codes" ,iso-codes)
6916 ("libcanberra" ,libcanberra)
6917 ("linux-pam" ,linux-pam)))
6918 (synopsis "Display manager for GNOME")
6919 (home-page "https://wiki.gnome.org/Projects/GDM/")
6920 (description
6921 "GNOME Display Manager is a system service that is responsible for
6922 providing graphical log-ins and managing local and remote displays.")
6923 (license license:gpl2+)))
6924
6925 (define-public libgtop
6926 (package
6927 (name "libgtop")
6928 (version "2.40.0")
6929 (source (origin
6930 (method url-fetch)
6931 (uri (string-append "mirror://gnome/sources/libgtop/"
6932 (version-major+minor version) "/"
6933 "libgtop-" version ".tar.xz"))
6934 (sha256
6935 (base32
6936 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
6937 (build-system gnu-build-system)
6938 (native-inputs
6939 `(("gobject-introspection" ,gobject-introspection)
6940 ("intltool" ,intltool)
6941 ("perl" ,perl)
6942 ("pkg-config" ,pkg-config)))
6943 (propagated-inputs
6944 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6945 (synopsis "Portable system access library")
6946 (home-page "https://www.gnome.org/")
6947 (description
6948 "LibGTop is a library to get system specific data such as CPU and memory
6949 usage and information about running processes.")
6950 (license license:gpl2+)))
6951
6952 (define-public gnome-bluetooth
6953 (package
6954 (name "gnome-bluetooth")
6955 (version "3.34.0")
6956 (source (origin
6957 (method url-fetch)
6958 (uri (string-append "mirror://gnome/sources/" name "/"
6959 (version-major+minor version) "/"
6960 name "-" version ".tar.xz"))
6961 (sha256
6962 (base32
6963 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
6964 (build-system meson-build-system)
6965 (native-inputs
6966 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
6967 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6968 ("gobject-introspection" ,gobject-introspection)
6969 ("intltool" ,intltool)
6970 ("pkg-config" ,pkg-config)
6971 ("xmllint" ,libxml2)))
6972 (propagated-inputs
6973 ;; gnome-bluetooth-1.0.pc refers to all these.
6974 `(("glib" ,glib)
6975 ("gtk+" ,gtk+)))
6976 (inputs
6977 `(("eudev" ,eudev)
6978 ("libcanberra" ,libcanberra)
6979 ("libnotify" ,libnotify)))
6980 (synopsis "GNOME Bluetooth subsystem")
6981 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
6982 (description
6983 "This package contains tools for managing and manipulating Bluetooth
6984 devices using the GNOME desktop.")
6985 (license license:lgpl2.1+)))
6986
6987 (define-public gnome-control-center
6988 (package
6989 (name "gnome-control-center")
6990 (version "3.34.2")
6991 (source (origin
6992 (method url-fetch)
6993 (uri (string-append "mirror://gnome/sources/" name "/"
6994 (version-major+minor version) "/"
6995 name "-" version ".tar.xz"))
6996 (sha256
6997 (base32
6998 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
6999 (build-system meson-build-system)
7000 (arguments
7001 '(#:glib-or-gtk? #t
7002 #:configure-flags
7003 (list "-Dcheese=false"
7004 (string-append "-Dgnome_session_libexecdir="
7005 (assoc-ref %build-inputs "gnome-session")
7006 "/libexec"))
7007 #:phases
7008 (modify-phases %standard-phases
7009 (add-before 'configure 'patch-paths
7010 (lambda* (#:key inputs #:allow-other-keys)
7011 (let ((libc (assoc-ref inputs "libc"))
7012 (tzdata (assoc-ref inputs "tzdata"))
7013 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7014 (nm-applet (assoc-ref inputs "network-manager-applet"))
7015 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7016 (substitute* "panels/datetime/tz.h"
7017 (("/usr/share/zoneinfo/zone.tab")
7018 (string-append tzdata "/share/zoneinfo/zone.tab")))
7019 (substitute* "tests/datetime/test-endianess.c"
7020 (("/usr/share/locale")
7021 (string-append libc "/share/locale")))
7022 (substitute* "panels/region/cc-region-panel.c"
7023 (("\"gkbd-keyboard-display")
7024 (string-append "\"" libgnomekbd
7025 "/bin/gkbd-keyboard-display")))
7026 (substitute* '("panels/network/net-device-wifi.c"
7027 "panels/network/net-device.c"
7028 "panels/network/connection-editor/net-connection-editor.c")
7029 (("\"nm-connection-editor")
7030 (string-append "\"" nm-applet
7031 "/bin/nm-connection-editor")))
7032 (substitute* '("panels/user-accounts/run-passwd.c")
7033 (("/usr/bin/passwd")
7034 "/run/setuid-programs/passwd"))
7035 (substitute* "panels/info/cc-info-overview-panel.c"
7036 (("DATADIR \"/gnome/gnome-version.xml\"")
7037 (string-append "\"" gnome-desktop
7038 "/share/gnome/gnome-version.xml\"")))
7039 #t)))
7040 (add-after 'unpack 'skip-gtk-update-icon-cache
7041 ;; Don't create 'icon-theme.cache'.
7042 (lambda _
7043 (substitute* "build-aux/meson/meson_post_install.py"
7044 (("gtk-update-icon-cache") (which "true")))
7045 #t)))))
7046 (native-inputs
7047 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7048 ("intltool" ,intltool)
7049 ("pkg-config" ,pkg-config)
7050 ("xsltproc" ,libxslt)
7051 ;; For tests
7052 ("hicolor-icon-theme" ,hicolor-icon-theme)
7053 ("python-dbusmock" ,python-dbusmock)
7054 ("xorg-server" ,xorg-server-for-tests)))
7055 (inputs
7056 `(("accountsservice" ,accountsservice)
7057 ("clutter-gtk" ,clutter-gtk)
7058 ("colord-gtk" ,colord-gtk)
7059 ("cups" ,cups)
7060 ("dconf" ,dconf)
7061 ("docbook-xsl" ,docbook-xsl)
7062 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7063 ("gnome-bluetooth" ,gnome-bluetooth)
7064 ("gnome-desktop" ,gnome-desktop)
7065 ("gnome-online-accounts" ,gnome-online-accounts)
7066 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7067 ("gnome-session" ,gnome-session)
7068 ("gnome-settings-daemon" ,gnome-settings-daemon)
7069 ("grilo" ,grilo)
7070 ("gsound" ,gsound)
7071 ("ibus" ,ibus)
7072 ("libcanberra" ,libcanberra)
7073 ("libgnomekbd" ,libgnomekbd)
7074 ("libgudev" ,libgudev)
7075 ("libgtop" ,libgtop)
7076 ("libpwquality" ,libpwquality)
7077 ("libsecret" ,libsecret)
7078 ("libsoup" ,libsoup)
7079 ("libxml2" ,libxml2)
7080 ("libwacom" ,libwacom)
7081 ("mesa" ,mesa)
7082 ("mit-krb5" ,mit-krb5)
7083 ("modem-manager" ,modem-manager)
7084 ("network-manager-applet" ,network-manager-applet)
7085 ("polkit" ,polkit)
7086 ("pulseaudio" ,pulseaudio)
7087 ("smbclient" ,samba)
7088 ("tzdata" ,tzdata)
7089 ("udisks" ,udisks)
7090 ("upower" ,upower)))
7091 (synopsis "Utilities to configure the GNOME desktop")
7092 (home-page "https://www.gnome.org/")
7093 (description
7094 "This package contains configuration applets for the GNOME desktop,
7095 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7096 properties, sound setup, desktop theme and background, user interface
7097 properties, screen resolution, and other GNOME parameters.")
7098 (license license:gpl2+)))
7099
7100 (define-public gnome-shell
7101 (package
7102 (name "gnome-shell")
7103 (version "3.32.2")
7104 (source (origin
7105 (method url-fetch)
7106 (uri (string-append "mirror://gnome/sources/" name "/"
7107 (version-major+minor version) "/"
7108 name "-" version ".tar.xz"))
7109 (sha256
7110 (base32
7111 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
7112 (patches (search-patches "gnome-shell-theme.patch"))
7113 (modules '((guix build utils)))
7114 (snippet
7115 #~(begin
7116 ;; Copy images for use on the GDM log-in screen.
7117 (copy-file #$(file-append %artwork-repository
7118 "/slim/0.x/background.png")
7119 "data/theme/guix-background.png")
7120 (copy-file #$(file-append %artwork-repository
7121 "/logo/Guix-horizontal-white.svg")
7122 "data/theme/guix-logo.svg")
7123 #t))))
7124 (build-system meson-build-system)
7125 (arguments
7126 `(#:glib-or-gtk? #t
7127 #:disallowed-references ((,glib "bin")
7128 ,inkscape ,libxslt
7129 ,ruby-sass)
7130 #:configure-flags
7131 (list "-Dsystemd=false"
7132 ;; Otherwise, the RUNPATH will lack the final path component.
7133 (string-append "-Dc_link_args=-Wl,-rpath="
7134 (assoc-ref %outputs "out")
7135 "/lib/gnome-shell"))
7136
7137 #:modules ((guix build meson-build-system)
7138 (guix build utils)
7139 (srfi srfi-1))
7140
7141 #:phases
7142 (modify-phases %standard-phases
7143 (add-after 'unpack 'fix-keysdir
7144 (lambda* (#:key outputs #:allow-other-keys)
7145 (let* ((out (assoc-ref outputs "out"))
7146 (keysdir (string-append
7147 out "/share/gnome-control-center/keybindings")))
7148 (substitute* "meson.build"
7149 (("keysdir =.*")
7150 (string-append "keysdir = '" keysdir "'\n")))
7151 #t)))
7152 (add-before 'configure 'convert-logo-to-png
7153 (lambda* (#:key inputs #:allow-other-keys)
7154 ;; Convert the logo from SVG to PNG.
7155 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7156 "data/theme/guix-logo.svg")))
7157 (add-before 'configure 'record-absolute-file-names
7158 (lambda* (#:key inputs #:allow-other-keys)
7159 (substitute* "js/misc/ibusManager.js"
7160 (("'ibus-daemon'")
7161 (string-append "'" (assoc-ref inputs "ibus")
7162 "/bin/ibus-daemon'")))
7163 (substitute* "js/ui/status/keyboard.js"
7164 (("'gkbd-keyboard-display'")
7165 (string-append "'" (assoc-ref inputs "libgnomekbd")
7166 "/bin/gkbd-keyboard-display'")))
7167 #t))
7168 (add-before 'check 'pre-check
7169 (lambda* (#:key inputs #:allow-other-keys)
7170 ;; Tests require a running X server.
7171 (system "Xvfb :1 &")
7172 (setenv "DISPLAY" ":1")
7173 #t))
7174 (add-after 'install 'wrap-programs
7175 (lambda* (#:key inputs outputs #:allow-other-keys)
7176 (let ((out (assoc-ref outputs "out"))
7177 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7178 (python-path (getenv "PYTHONPATH")))
7179 (wrap-program (string-append out "/bin/gnome-shell")
7180 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7181 ;; FIXME: gnome-shell loads these libraries with unqualified
7182 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7183 ;; alternative might be to patch gnome-shell.
7184 `("LD_LIBRARY_PATH" ":" prefix
7185 ,(map (lambda (pkg)
7186 (string-append (assoc-ref inputs pkg) "/lib"))
7187 '("gdk-pixbuf"
7188 "gnome-bluetooth" "librsvg" "libgweather"))))
7189 (for-each
7190 (lambda (prog)
7191 (wrap-program (string-append out "/bin/" prog)
7192 `("PYTHONPATH" ":" prefix (,python-path))
7193 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7194 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7195 #t)))
7196 (replace 'glib-or-gtk-wrap
7197 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7198 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7199 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7200 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7201 ;; phase. Fix that since we don't need these.
7202 (wrap #:inputs (fold alist-delete inputs
7203 '("inkscape" "intltool" "glib:bin"))
7204 #:outputs outputs)))))))
7205 (native-inputs
7206 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7207 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7208 ("gobject-introspection" ,gobject-introspection)
7209 ("inkscape" ,inkscape)
7210 ("intltool" ,intltool)
7211 ("pkg-config" ,pkg-config)
7212 ("python" ,python)
7213 ("ruby-sass" ,ruby-sass)
7214 ("sassc" ,sassc)
7215 ("xsltproc" ,libxslt)
7216 ;; For tests
7217 ("xorg-server" ,xorg-server-for-tests)))
7218 (inputs
7219 `(("accountsservice" ,accountsservice)
7220 ("caribou" ,caribou)
7221 ("docbook-xsl" ,docbook-xsl)
7222 ("evolution-data-server" ,evolution-data-server)
7223 ("gcr" ,gcr)
7224 ("gdm" ,gdm)
7225 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7226 ("gjs" ,gjs)
7227 ("gnome-bluetooth" ,gnome-bluetooth)
7228 ("gnome-desktop" ,gnome-desktop)
7229 ("gnome-settings-daemon" ,gnome-settings-daemon)
7230 ("gst-plugins-base" ,gst-plugins-base)
7231 ("ibus" ,ibus)
7232 ("libcanberra" ,libcanberra)
7233 ("libcroco" ,libcroco)
7234 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7235 ("libgweather" ,libgweather)
7236 ("libsoup" ,libsoup)
7237 ("mesa-headers" ,mesa-headers)
7238 ("mutter" ,mutter)
7239 ("network-manager-applet" ,network-manager-applet)
7240 ("polkit" ,polkit)
7241 ("pulseaudio" ,pulseaudio)
7242 ("python-pygobject" ,python-pygobject)
7243 ("startup-notification" ,startup-notification)
7244 ("telepathy-logger" ,telepathy-logger)
7245 ("upower" ,upower)
7246 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7247 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7248 ("librsvg" ,librsvg)
7249 ("geoclue" ,geoclue)))
7250 (synopsis "Desktop shell for GNOME")
7251 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7252 (description
7253 "GNOME Shell provides core user interface functions for the GNOME desktop,
7254 like switching to windows and launching applications.")
7255 (license license:gpl2+)))
7256
7257 (define-public gtk-vnc
7258 (package
7259 (name "gtk-vnc")
7260 (version "0.9.0")
7261 (source
7262 (origin
7263 (method url-fetch)
7264 (uri (string-append "mirror://gnome/sources/" name "/"
7265 (version-major+minor version) "/"
7266 name "-" version ".tar.xz"))
7267 (sha256
7268 (base32
7269 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7270 (build-system gnu-build-system)
7271 (arguments
7272 '(#:configure-flags '("--with-gtk=3.0")))
7273 (propagated-inputs
7274 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7275 (inputs
7276 `(("cyrus-sasl" ,cyrus-sasl)
7277 ("gnutls" ,gnutls)
7278 ("libgcrypt" ,libgcrypt)
7279 ("pulseaudio" ,pulseaudio)))
7280 (native-inputs
7281 `(("glib:bin" ,glib "bin")
7282 ("gobject-introspection" ,gobject-introspection)
7283 ("intltool" ,intltool)
7284 ("pkg-config" ,pkg-config)
7285 ("python-wrapper" ,python-wrapper)
7286 ("vala" ,vala)))
7287 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7288 (synopsis "VNC viewer widget for GTK+")
7289 (description
7290 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7291 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7292 GTK-VNC implements client side RFB protocol and authentication extensions such
7293 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7294 (license license:lgpl2.1+)))
7295
7296 (define-public gnome-autoar
7297 (package
7298 (name "gnome-autoar")
7299 (version "0.2.4")
7300 (source (origin
7301 (method url-fetch)
7302 (uri (string-append "mirror://gnome/sources/" name "/"
7303 (version-major+minor version) "/"
7304 name "-" version ".tar.xz"))
7305 (sha256
7306 (base32
7307 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
7308 (build-system glib-or-gtk-build-system)
7309 (native-inputs
7310 `(("gobject-introspection" ,gobject-introspection)
7311 ("pkg-config" ,pkg-config)))
7312 (propagated-inputs
7313 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
7314 (inputs
7315 `(("gtk+" ,gtk+)))
7316 (synopsis "Archives integration support for GNOME")
7317 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7318 (description
7319 "GNOME Autoar is a library which makes creating and extracting archives
7320 easy, safe, and automatic.")
7321 (license license:lgpl2.1+)))
7322
7323 (define-public tracker
7324 (package
7325 (name "tracker")
7326 (version "2.3.4")
7327 (source (origin
7328 (method url-fetch)
7329 (uri (string-append "mirror://gnome/sources/tracker/"
7330 (version-major+minor version) "/"
7331 "tracker-" version ".tar.xz"))
7332 (sha256
7333 (base32
7334 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7335 (build-system meson-build-system)
7336 (arguments
7337 `(#:glib-or-gtk? #t
7338 #:configure-flags
7339 ;; Otherwise, the RUNPATH will lack the final path component.
7340 (list (string-append "-Dc_link_args=-Wl,-rpath="
7341 (assoc-ref %outputs "out") "/lib:"
7342 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7343 #:phases
7344 (modify-phases %standard-phases
7345 (add-before 'check 'pre-check
7346 (lambda _
7347 ;; Some tests expect to write to $HOME.
7348 (setenv "HOME" "/tmp")
7349 #t)))))
7350 (native-inputs
7351 `(("glib:bin" ,glib "bin")
7352 ("gobject-introspection" ,gobject-introspection)
7353 ("python-pygobject" ,python-pygobject)
7354 ("intltool" ,intltool)
7355 ("pkg-config" ,pkg-config)
7356 ("vala" ,vala)))
7357 (inputs
7358 `(("dbus" ,dbus)
7359 ("sqlite" ,sqlite)
7360 ("libxml2" ,libxml2)
7361 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
7362 ("json-glib" ,json-glib)
7363 ("libsoup" ,libsoup)))
7364 (synopsis "Metadata database, indexer and search tool")
7365 (home-page "https://wiki.gnome.org/Projects/Tracker")
7366 (description
7367 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7368
7369 It is a middleware component aimed at desktop application developers who want
7370 their apps to browse and search user content. It's not designed to be used
7371 directly by desktop users, but it provides a commandline tool named
7372 @command{tracker} for the adventurous.
7373
7374 Tracker allows your application to instantly perform full-text searches across
7375 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7376 example. This is achieved by indexing the user's home directory in the
7377 background.
7378
7379 Tracker also allows your application to query and list content that the user
7380 has stored. For example, GNOME Music displays all the music files that are
7381 found by Tracker. This means that GNOME Music doesn't need to maintain a
7382 database of its own.
7383
7384 If you need to go beyond simple searches, Tracker is also a linked data
7385 endpoint and it understands SPARQL. ")
7386 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
7387 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7388 ;; libstemmer is bsd-3 and the rest is gpl2+.
7389 (license (list license:gpl2+
7390 license:bsd-3
7391 license:lgpl2.1+))))
7392
7393 (define-public tracker-miners
7394 (package
7395 (name "tracker-miners")
7396 (version "2.3.3")
7397 (source (origin
7398 (method url-fetch)
7399 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7400 (version-major+minor version)
7401 "/tracker-miners-" version ".tar.xz"))
7402 (sha256
7403 (base32
7404 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
7405 (build-system meson-build-system)
7406 (arguments
7407 `(#:glib-or-gtk? #t
7408 #:configure-flags
7409 (list "-Dminer_rss=false" ; libgrss is required.
7410 ;; Ensure the RUNPATH contains all installed library locations.
7411 (string-append "-Dc_link_args=-Wl,-rpath="
7412 (assoc-ref %outputs "out")
7413 "/lib/tracker-miners-2.0")
7414 ;; TODO: Enable functional tests. Currently, the following error
7415 ;; appears:
7416 ;; Exception: The functional tests require DConf to be the default
7417 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7418 "-Dfunctional_tests=false")))
7419 (native-inputs
7420 `(("dbus" ,dbus)
7421 ("intltool" ,intltool)
7422 ("glib:bin" ,glib "bin")
7423 ("gobject-introspection" ,gobject-introspection)
7424 ("pkg-config" ,pkg-config)
7425 ("python-pygobject" ,python-pygobject)))
7426 (inputs
7427 `(("exempi" ,exempi)
7428 ("ffmpeg" ,ffmpeg)
7429 ("flac" ,flac)
7430 ("giflib" ,giflib)
7431 ("glib" ,glib)
7432 ("gstreamer" ,gstreamer)
7433 ("icu4c" ,icu4c)
7434 ("libcue" ,libcue)
7435 ("libexif" ,libexif)
7436 ("libgsf" ,libgsf)
7437 ("libgxps" ,libgxps)
7438 ("libiptcdata" ,libiptcdata)
7439 ("libjpeg" ,libjpeg-turbo)
7440 ("libosinfo" ,libosinfo)
7441 ("libpng" ,libpng)
7442 ("libseccomp" ,libseccomp)
7443 ("libtiff" ,libtiff)
7444 ("libvorbis" ,libvorbis)
7445 ("libxml2" ,libxml2)
7446 ("poppler" ,poppler)
7447 ("taglib" ,taglib)
7448 ("totem-pl-parser" ,totem-pl-parser)
7449 ("tracker" ,tracker)
7450 ("upower" ,upower)
7451 ("zlib" ,zlib)))
7452 (synopsis "Metadata database, indexer and search tool")
7453 (home-page "https://wiki.gnome.org/Projects/Tracker")
7454 (description
7455 "Tracker is an advanced framework for first class objects with associated
7456 metadata and tags. It provides a one stop solution for all metadata, tags,
7457 shared object databases, search tools and indexing.")
7458 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7459 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7460 (license (list license:gpl2+
7461 license:lgpl2.1+
7462 license:lgpl2.0+))))
7463
7464 (define-public nautilus
7465 (package
7466 (name "nautilus")
7467 (version "3.34.2")
7468 (source (origin
7469 (method url-fetch)
7470 (uri (string-append "mirror://gnome/sources/" name "/"
7471 (version-major+minor version) "/"
7472 name "-" version ".tar.xz"))
7473 (sha256
7474 (base32
7475 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
7476 (build-system meson-build-system)
7477 (arguments
7478 '(#:glib-or-gtk? #t
7479 #:phases
7480 (modify-phases %standard-phases
7481 (add-after 'unpack 'skip-gtk-update-icon-cache
7482 ;; Don't create 'icon-theme.cache'.
7483 (lambda _
7484 (substitute* "build-aux/meson/postinstall.py"
7485 (("gtk-update-icon-cache") "true"))
7486 #t)))
7487 ;; XXX: FAIL: check-nautilus
7488 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7489 #:tests? #f))
7490 (native-inputs
7491 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7492 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7493 ("gobject-introspection" ,gobject-introspection)
7494 ("intltool" ,intltool)
7495 ("pkg-config" ,pkg-config)))
7496 (inputs
7497 `(("dconf" ,dconf)
7498 ("gexiv2" ,gexiv2)
7499 ("gvfs" ,gvfs)
7500 ("exempi" ,exempi)
7501 ("gnome-desktop" ,gnome-desktop)
7502 ("gnome-autoar" ,gnome-autoar)
7503 ("gst-plugins-base" ,gst-plugins-base)
7504 ("libseccomp" ,libseccomp)
7505 ("libselinux" ,libselinux)
7506 ("tracker" ,tracker)
7507 ("tracker-miners" ,tracker-miners)
7508 ;; XXX: gtk+ is required by libnautilus-extension.pc
7509 ;;
7510 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7511 ;; package. See:
7512 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7513 ("gtk+" ,gtk+)
7514 ("libexif" ,libexif)
7515 ("libxml2" ,libxml2)))
7516 (synopsis "File manager for GNOME")
7517 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7518 (description
7519 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7520 design and behaviour, giving the user a simple way to navigate and manage its
7521 files.")
7522 (license license:gpl2+)))
7523
7524 (define-public baobab
7525 (package
7526 (name "baobab")
7527 (version "3.32.0")
7528 (source (origin
7529 (method url-fetch)
7530 (uri (string-append
7531 "mirror://gnome/sources/" name "/"
7532 (version-major+minor version) "/"
7533 name "-" version ".tar.xz"))
7534 (sha256
7535 (base32
7536 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7537 (build-system meson-build-system)
7538 (arguments
7539 '(#:glib-or-gtk? #t))
7540 (native-inputs
7541 `(("intltool" ,intltool)
7542 ("pkg-config" ,pkg-config)
7543 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7544 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7545 ("itstool" ,itstool)
7546 ("xmllint" ,libxml2)
7547 ("glib" ,glib "bin")
7548 ("vala" ,vala)))
7549 (inputs
7550 `(("gtk+" ,gtk+)))
7551 (synopsis "Disk usage analyzer for GNOME")
7552 (description
7553 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7554 usage in the GNOME desktop environment. It can easily scan device volumes or
7555 a specific user-requested directory branch (local or remote). Once the scan
7556 is complete it provides a graphical representation of each selected folder.")
7557 (home-page "https://wiki.gnome.org/Apps/Baobab")
7558 (license license:gpl2+)))
7559
7560 (define-public gnome-backgrounds
7561 (package
7562 (name "gnome-backgrounds")
7563 (version "3.34.0")
7564 (source
7565 (origin
7566 (method url-fetch)
7567 (uri (string-append "mirror://gnome/sources/" name "/"
7568 (version-major+minor version) "/"
7569 name "-" version ".tar.xz"))
7570 (sha256
7571 (base32
7572 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
7573 (build-system meson-build-system)
7574 (native-inputs
7575 `(("intltool" ,intltool)))
7576 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7577 (synopsis "Background images for the GNOME desktop")
7578 (description
7579 "GNOME backgrounds package contains a collection of graphics files which
7580 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7581 the package creates the proper framework and directory structure so that you
7582 can add your own files to the collection.")
7583 (license (list license:gpl2+
7584 license:cc-by2.0
7585 license:cc-by-sa2.0
7586 license:cc-by-sa3.0))))
7587
7588 (define-public gnome-screenshot
7589 (package
7590 (name "gnome-screenshot")
7591 (version "3.34.0")
7592 (source
7593 (origin
7594 (method url-fetch)
7595 (uri (string-append "mirror://gnome/sources/" name "/"
7596 (version-major+minor version) "/"
7597 name "-" version ".tar.xz"))
7598 (sha256
7599 (base32
7600 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
7601 (build-system meson-build-system)
7602 (arguments
7603 '(#:phases
7604 (modify-phases %standard-phases
7605 (add-after 'unpack 'skip-gtk-update-icon-cache
7606 ;; Don't create 'icon-theme.cache'.
7607 (lambda _
7608 (substitute* "build-aux/postinstall.py"
7609 (("gtk-update-icon-cache") "true"))
7610 #t)))))
7611 (native-inputs
7612 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7613 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7614 ("intltool" ,intltool)
7615 ("appstream-glib" ,appstream-glib)
7616 ("pkg-config" ,pkg-config)))
7617 (inputs
7618 `(("gtk+" ,gtk+)
7619 ("libcanberra" ,libcanberra)
7620 ("libx11" ,libx11)
7621 ("libxext" ,libxext)))
7622 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7623 (synopsis "Take pictures of your screen")
7624 (description
7625 "GNOME Screenshot is a utility used for taking screenshots of the entire
7626 screen, a window or a user defined area of the screen, with optional
7627 beautifying border effects.")
7628 (license license:gpl2+)))
7629
7630 (define-public dconf-editor
7631 (package
7632 (name "dconf-editor")
7633 (version "3.34.2")
7634 (source
7635 (origin
7636 (method url-fetch)
7637 (uri (string-append "mirror://gnome/sources/" name "/"
7638 (version-major+minor version) "/"
7639 name "-" version ".tar.xz"))
7640 (sha256
7641 (base32
7642 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
7643 (build-system meson-build-system)
7644 (native-inputs
7645 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7646 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7647 ("intltool" ,intltool)
7648 ("pkg-config" ,pkg-config)
7649 ("vala" ,vala)))
7650 (inputs
7651 `(("dconf" ,dconf)
7652 ("gtk+" ,gtk+)
7653 ("libxml2" ,libxml2)))
7654 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
7655 (synopsis "Graphical editor for GNOME's dconf configuration system")
7656 (description
7657 "Dconf-editor is a graphical tool for browsing and editing the dconf
7658 configuration system for GNOME. It allows users to configure desktop
7659 software that do not provide their own configuration interface.")
7660 (license license:lgpl2.1+)))
7661
7662 (define-public gnome-default-applications
7663 (package
7664 (name "gnome-default-applications")
7665 (version "0")
7666 (build-system trivial-build-system)
7667 (source #f)
7668 (propagated-inputs
7669 `(("nautilus" ,nautilus)
7670 ("evince" ,evince)))
7671 (arguments
7672 `(#:modules ((guix build utils))
7673 #:builder
7674 (begin
7675 (use-modules (guix build utils))
7676 (let* ((out (assoc-ref %outputs "out"))
7677 (apps (string-append out "/share/applications")))
7678 (mkdir-p apps)
7679 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
7680 (lambda (port)
7681 (format port "[Default Applications]\n")
7682 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7683 (format port "application/pdf=evince.desktop\n")
7684 (format port "application/postscript=evince.desktop\n")))
7685 #t))))
7686 (synopsis "Default MIME type associations for the GNOME desktop")
7687 (description
7688 "Given many installed packages which might handle a given MIME type, a
7689 user running the GNOME desktop probably has some preferences: for example,
7690 that folders be opened by default by the Nautilus file manager, not the Baobab
7691 disk usage analyzer. This package establishes that set of default MIME type
7692 associations for GNOME.")
7693 (license license:gpl3+)
7694 (home-page #f)))
7695
7696 (define-public libgovirt
7697 (package
7698 (name "libgovirt")
7699 (version "0.3.6")
7700 (source (origin
7701 (method url-fetch)
7702 (uri (string-append "mirror://gnome/sources/" name "/"
7703 (version-major+minor version) "/"
7704 name "-" version ".tar.xz"))
7705 (sha256
7706 (base32
7707 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7708 (build-system glib-or-gtk-build-system)
7709 (native-inputs
7710 `(("gettext" ,gettext-minimal)
7711 ("glib:bin" ,glib "bin")
7712 ("gobject-introspection" ,gobject-introspection)
7713 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7714 ("gtk+:bin" ,gtk+ "bin")
7715 ("pkg-config" ,pkg-config)))
7716 (inputs
7717 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7718 ("librest" ,rest)))
7719 (synopsis "GoVirt Library")
7720 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7721 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7722 (license license:gpl2+)))
7723
7724 (define-public gnome-weather
7725 (package
7726 (name "gnome-weather")
7727 (version "3.34.0")
7728 (source (origin
7729 (method url-fetch)
7730 (uri (string-append "mirror://gnome/sources/" name "/"
7731 (version-major+minor version) "/"
7732 name "-" version ".tar.xz"))
7733 (sha256
7734 (base32
7735 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7736 (build-system meson-build-system)
7737 (native-inputs
7738 `(("gettext" ,gettext-minimal)
7739 ("glib:bin" ,glib "bin")
7740 ("gobject-introspection" ,gobject-introspection)
7741 ("gtk+:bin" ,gtk+ "bin")
7742 ("pkg-config" ,pkg-config)))
7743 (inputs
7744 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7745 ("appstream-glib" ,appstream-glib)
7746 ("geoclue" ,geoclue)
7747 ("gdk-pixbuf" ,gdk-pixbuf)
7748 ("gjs" ,gjs)
7749 ("gnome-desktop" ,gnome-desktop)
7750 ("libgweather" ,libgweather)))
7751 (arguments
7752 `(#:phases
7753 (modify-phases %standard-phases
7754 (add-after 'install 'fix-desktop-file
7755 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7756 ;; See https://issues.guix.gnu.org/issue/39324.
7757 (lambda* (#:key outputs #:allow-other-keys)
7758 (let* ((out (assoc-ref outputs "out"))
7759 (applications (string-append out "/share/applications")))
7760 (substitute* (string-append applications "/org.gnome.Weather.desktop")
7761 (("Exec=.*") "Exec=gnome-weather\n"))))))))
7762 (synopsis "Weather monitoring for GNOME desktop")
7763 (description "GNOME Weather is a small application that allows you to
7764 monitor the current weather conditions for your city, or anywhere in the
7765 world.")
7766 (home-page "https://wiki.gnome.org/Apps/Weather")
7767 (license license:gpl2+)))
7768
7769 (define-public gnome
7770 (package
7771 (name "gnome")
7772 (version (package-version gnome-shell))
7773 (source #f)
7774 (build-system trivial-build-system)
7775 (arguments '(#:builder (begin (mkdir %output) #t)))
7776 (propagated-inputs
7777 ;; TODO: Add or remove packages according to:
7778 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7779 `(
7780 ;; GNOME-Core-OS-Services
7781 ("accountsservice" ,accountsservice)
7782 ("network-manager" ,network-manager)
7783 ("packagekit" ,packagekit)
7784 ("upower" ,upower)
7785 ;; GNOME-Core-Shell
7786 ("adwaita-icon-theme" ,adwaita-icon-theme)
7787 ("gdm" ,gdm)
7788 ("glib-networking" ,glib-networking)
7789 ("gnome-backgrounds" ,gnome-backgrounds)
7790 ("gnome-bluetooth" ,gnome-bluetooth)
7791 ("gnome-color-manager" ,gnome-color-manager)
7792 ("gnome-control-center" ,gnome-control-center)
7793 ("gnome-desktop" ,gnome-desktop)
7794 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7795 ("gnome-initial-setup" ,gnome-initial-setup)
7796 ("gnome-keyring" ,gnome-keyring)
7797 ("gnome-menus" ,gnome-menus)
7798 ("gnome-session" ,gnome-session)
7799 ("gnome-settings-daemon" ,gnome-settings-daemon)
7800 ("gnome-shell-extensions" ,gnome-shell-extensions)
7801 ("gnome-shell" ,gnome-shell)
7802 ("gnome-themes-extra" ,gnome-themes-extra)
7803 ("gnome-user-docs" ,gnome-user-docs)
7804 ("gnome-user-share" ,gnome-user-share)
7805 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7806 ("gvfs" ,gvfs)
7807 ("mutter" ,mutter)
7808 ("orca" ,orca)
7809 ("rygel" ,rygel)
7810 ("sushi" ,sushi)
7811 ;; GNOME-Core-Utilities
7812 ("baobab" ,baobab)
7813 ("cheese" ,cheese)
7814 ("eog" ,eog)
7815 ("epiphany" ,epiphany)
7816 ("evince" ,evince)
7817 ("file-roller" ,file-roller)
7818 ("gedit" ,gedit)
7819 ; TODO: ("gnome-boxes" ,gnome-boxes)
7820 ("gnome-calculator" ,gnome-calculator)
7821 ("gnome-calendar" ,gnome-calendar)
7822 ("gnome-characters" ,gnome-characters)
7823 ("gnome-clocks" ,gnome-clocks)
7824 ("gnome-contacts" ,gnome-contacts)
7825 ("gnome-disk-utility" ,gnome-disk-utility)
7826 ("gnome-font-viewer" ,gnome-font-viewer)
7827 ("gnome-maps" ,gnome-maps)
7828 ; TODO: ("gnome-music" ,gnome-music)
7829 ; TODO: ("gnome-photos" ,gnome-photos)
7830 ("gnome-screenshot" ,gnome-screenshot)
7831 ("gnome-system-monitor" ,gnome-system-monitor)
7832 ("gnome-terminal" ,gnome-terminal)
7833 ("gnome-weather" ,gnome-weather)
7834 ("nautilus" ,nautilus)
7835 ("simple-scan" ,simple-scan)
7836 ("totem" ,totem)
7837 ("yelp" ,yelp)
7838 ;; Others
7839 ("hicolor-icon-theme" ,hicolor-icon-theme)
7840 ("gnome-online-accounts" ,gnome-online-accounts)
7841
7842 ;; Packages not part of GNOME proper but that are needed for a good
7843 ;; experience. See <https://bugs.gnu.org/39646>.
7844 ;; XXX: Find out exactly which ones are needed and why.
7845 ("font-cantarell" ,font-cantarell)
7846 ("font-dejavu" ,font-dejavu)
7847 ("at-spi2-core" ,at-spi2-core)
7848 ("dbus" ,dbus)
7849 ("dconf" ,dconf)
7850 ("desktop-file-utils" ,desktop-file-utils)
7851 ("gnome-default-applications" ,gnome-default-applications)
7852 ("gnome-themes-standard" ,gnome-themes-standard)
7853 ("gst-plugins-base" ,gst-plugins-base)
7854 ("gst-plugins-good" ,gst-plugins-good)
7855 ("gucharmap" ,gucharmap)
7856 ("pinentry-gnome3" ,pinentry-gnome3)
7857 ("pulseaudio" ,pulseaudio)
7858 ("shared-mime-info" ,shared-mime-info)
7859 ("system-config-printer" ,system-config-printer)
7860 ("xdg-user-dirs" ,xdg-user-dirs)
7861 ("yelp" ,yelp)
7862 ("zenity" ,zenity)))
7863 (synopsis "The GNU desktop environment")
7864 (home-page "https://www.gnome.org/")
7865 (description
7866 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7867 applications for browsing the web, editing text and images, creating
7868 documents and diagrams, playing media, scanning, and much more.")
7869 (license license:gpl2+)))
7870
7871 (define-public byzanz
7872 ;; The last stable release of Byzanz was in 2011, but there have been many
7873 ;; useful commits made to the Byzanz repository since then that it would be
7874 ;; silly to use such an old release.
7875 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7876 (package
7877 (name "byzanz")
7878 (version (string-append "0.2-1." (string-take commit 7)))
7879 (source (origin
7880 (method git-fetch)
7881 (uri (git-reference
7882 (url "https://git.gnome.org/browse/byzanz")
7883 (commit commit)))
7884 (file-name (string-append name "-" version "-checkout"))
7885 (sha256
7886 (base32
7887 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7888 (build-system glib-or-gtk-build-system)
7889 (arguments
7890 '(#:phases
7891 (modify-phases %standard-phases
7892 (add-before 'bootstrap 'build-without-Werror
7893 (lambda _
7894 ;; The build system cleverly detects that we're not building from
7895 ;; a release tarball and turns on -Werror for GCC.
7896 ;; Unsurprisingly, there is a warning during compilation that
7897 ;; causes the build to fail unnecessarily, so we remove the flag.
7898 (substitute* '("configure.ac")
7899 (("-Werror") ""))
7900 #t)))))
7901 (native-inputs
7902 `(("autoconf" ,autoconf)
7903 ("automake" ,automake)
7904 ("gnome-common" ,gnome-common)
7905 ("intltool" ,intltool)
7906 ("libtool" ,libtool)
7907 ("pkg-config" ,pkg-config)
7908 ("which" ,which)))
7909 (inputs
7910 `(("glib" ,glib)
7911 ("gstreamer" ,gstreamer)
7912 ("gst-plugins-base" ,gst-plugins-base)
7913 ("gtk+" ,gtk+)))
7914 (synopsis "Desktop recording program")
7915 (description "Byzanz is a simple desktop recording program with a
7916 command-line interface. It can record part or all of an X display for a
7917 specified duration and save it as a GIF encoded animated image file.")
7918 (home-page "https://git.gnome.org/browse/byzanz")
7919 (license license:gpl2+))))
7920
7921 (define-public gsound
7922 (package
7923 (name "gsound")
7924 (version "1.0.2")
7925 (source (origin
7926 (method url-fetch)
7927 (uri (string-append "mirror://gnome/sources/" name "/"
7928 (version-major+minor version) "/"
7929 name "-" version ".tar.xz"))
7930 (sha256
7931 (base32
7932 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7933 (build-system glib-or-gtk-build-system)
7934 (native-inputs
7935 `(("pkg-config" ,pkg-config)
7936 ("gobject-introspection" ,gobject-introspection)
7937 ("vala" ,vala)))
7938 (inputs
7939 `(("glib" ,glib)
7940 ("libcanberra" ,libcanberra)))
7941 (home-page "https://wiki.gnome.org/Projects/GSound")
7942 (synopsis "GObject wrapper for libcanberra")
7943 (description
7944 "GSound is a small library for playing system sounds. It's designed to be
7945 used via GObject Introspection, and is a thin wrapper around the libcanberra C
7946 library.")
7947 (license license:lgpl2.1+)))
7948
7949 (define-public libzapojit
7950 (package
7951 (name "libzapojit")
7952 (version "0.0.3")
7953 (source (origin
7954 (method url-fetch)
7955 (uri (string-append "mirror://gnome/sources/" name "/"
7956 (version-major+minor version) "/"
7957 name "-" version ".tar.xz"))
7958 (sha256
7959 (base32
7960 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7961 (build-system gnu-build-system)
7962 (native-inputs
7963 `(("gobject-introspection" ,gobject-introspection)
7964 ("intltool" ,intltool)
7965 ("pkg-config" ,pkg-config)))
7966 (inputs
7967 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7968 ("json-glib" ,json-glib)
7969 ("rest" ,rest)))
7970 (home-page "https://wiki.gnome.org/Projects/Zapojit")
7971 (synopsis "Library for accessing SkyDrive and Hotmail")
7972 (description
7973 "Libzapojit is a GLib-based library for accessing online service APIs of
7974 Microsoft SkyDrive and Hotmail, using their REST protocols.")
7975 (license license:lgpl2.1+)))
7976
7977 (define-public gnome-clocks
7978 (package
7979 (name "gnome-clocks")
7980 (version "3.32.0")
7981 (source (origin
7982 (method url-fetch)
7983 (uri (string-append "mirror://gnome/sources/" name "/"
7984 (version-major+minor version) "/"
7985 name "-" version ".tar.xz"))
7986 (sha256
7987 (base32
7988 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
7989 (build-system meson-build-system)
7990 (arguments
7991 '(#:glib-or-gtk? #t))
7992 (native-inputs
7993 `(("vala" ,vala)
7994 ("pkg-config" ,pkg-config)
7995 ("glib" ,glib "bin") ; for glib-compile-resources
7996 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7997 ("desktop-file-utils" ,desktop-file-utils)
7998 ("gettext" ,gettext-minimal)
7999 ("itstool" ,itstool)))
8000 (inputs
8001 `(("glib" ,glib)
8002 ("gtk+" ,gtk+)
8003 ("gsound" ,gsound)
8004 ("geoclue" ,geoclue)
8005 ("geocode-glib" ,geocode-glib)
8006 ("libgweather" ,libgweather)
8007 ("gnome-desktop" ,gnome-desktop)))
8008 (home-page "https://wiki.gnome.org/Apps/Clocks")
8009 (synopsis "GNOME's clock application")
8010 (description
8011 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8012 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8013 (license license:gpl3+)))
8014
8015 (define-public gnome-calendar
8016 (package
8017 (name "gnome-calendar")
8018 (version "3.32.2")
8019 (source (origin
8020 (method url-fetch)
8021 (uri (string-append "mirror://gnome/sources/" name "/"
8022 (version-major+minor version) "/"
8023 name "-" version ".tar.xz"))
8024 (sha256
8025 (base32
8026 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
8027 (build-system meson-build-system)
8028 (arguments
8029 '(#:glib-or-gtk? #t
8030 ;; gnome-calendar has to be installed before the tests can be run
8031 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8032 #:tests? #f))
8033 (native-inputs
8034 `(("gettext" ,gettext-minimal)
8035 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8036 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8037 ("pkg-config" ,pkg-config)))
8038 (inputs
8039 `(("evolution-data-server" ,evolution-data-server)
8040 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8041 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8042 ("libdazzle" ,libdazzle)
8043 ("libedataserverui" ,evolution-data-server)
8044 ("libgweather" ,libgweather)
8045 ("geoclue" ,geoclue)))
8046 (home-page "https://wiki.gnome.org/Apps/Calendar")
8047 (synopsis "GNOME's calendar application")
8048 (description
8049 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8050 desktop. It supports multiple calendars, month, week and year view.")
8051 (license license:gpl3+)))
8052
8053 (define-public gnome-todo
8054 (package
8055 (name "gnome-todo")
8056 (version "3.28.1")
8057 (source (origin
8058 (method url-fetch)
8059 (uri (string-append "mirror://gnome/sources/" name "/"
8060 (version-major+minor version) "/"
8061 name "-" version ".tar.xz"))
8062 (sha256
8063 (base32
8064 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
8065 (build-system meson-build-system)
8066 (arguments
8067 '(#:glib-or-gtk? #t
8068 #:phases (modify-phases %standard-phases
8069 (add-after
8070 'install 'wrap-gnome-todo
8071 (lambda* (#:key inputs outputs #:allow-other-keys)
8072 (let ((out (assoc-ref outputs "out"))
8073 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8074 (python-path (getenv "PYTHONPATH")))
8075 (wrap-program (string-append out "/bin/gnome-todo")
8076 ;; XXX: gi plugins are broken.
8077 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8078 ;; For plugins.
8079 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8080 `("PYTHONPATH" ":" prefix (,python-path))))
8081 #t)))))
8082 (native-inputs
8083 `(("gettext" ,gettext-minimal)
8084 ("gobject-introspection" ,gobject-introspection)
8085 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8086 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8087 ("pkg-config" ,pkg-config)))
8088 (inputs
8089 `(("rest" ,rest) ; For Todoist plugin
8090 ("json-glib" ,json-glib) ; For Todoist plugin
8091 ("libedataserverui" ,evolution-data-server)
8092 ("libical" ,libical)
8093 ("libpeas" ,libpeas)
8094 ("python-pygobject" ,python-pygobject)
8095 ("evolution-data-server" ,evolution-data-server)
8096 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8097 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8098 (home-page "https://wiki.gnome.org/Apps/Todo")
8099 (synopsis "GNOME's ToDo Application")
8100 (description
8101 "GNOME To Do is a simplistic personal task manager designed to perfectly
8102 fit the GNOME desktop.")
8103 (license license:gpl3+)))
8104
8105 (define-public gnome-dictionary
8106 (package
8107 (name "gnome-dictionary")
8108 (version "3.26.1")
8109 (source (origin
8110 (method url-fetch)
8111 (uri (string-append "mirror://gnome/sources/" name "/"
8112 (version-major+minor version) "/"
8113 name "-" version ".tar.xz"))
8114 (sha256
8115 (base32
8116 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8117 (build-system meson-build-system)
8118 (arguments '(#:glib-or-gtk? #t
8119 #:phases (modify-phases %standard-phases
8120 (add-after 'unpack 'patch-install-script
8121 (lambda _
8122 ;; This script attempts to compile glib schemas
8123 ;; and create an empty MIME database. We do
8124 ;; that elsewhere, so prevent it from running.
8125 (substitute* "build-aux/post-install.sh"
8126 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8127 #t)))))
8128 (native-inputs
8129 `(("glib:bin" ,glib "bin")
8130 ("gobject-introspection" ,gobject-introspection)
8131 ("intltool" ,intltool)
8132 ("itstool" ,itstool)
8133 ("pkg-config" ,pkg-config)
8134 ("xmllint" ,libxml2)))
8135 (inputs
8136 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8137 ("gtk+" ,gtk+)))
8138 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8139 (synopsis "Look up words in dictionary sources")
8140 (description
8141 "GNOME Dictionary can look for the definition or translation of a word in
8142 existing databases over the internet.")
8143 (license license:gpl3+)))
8144
8145 (define-public gnome-tweaks
8146 (package
8147 (name "gnome-tweaks")
8148 (version "3.32.0")
8149 (source (origin
8150 (method url-fetch)
8151 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8152 (version-major+minor version) "/"
8153 "gnome-tweaks-" version ".tar.xz"))
8154 (patches
8155 (list (search-patch "gnome-tweaks-search-paths.patch")))
8156 (sha256
8157 (base32
8158 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
8159 (build-system meson-build-system)
8160 (arguments
8161 `(#:glib-or-gtk? #t
8162 #:configure-flags '("-Dlocalstatedir=/tmp"
8163 "-Dsysconfdir=/tmp")
8164 #:imported-modules ((guix build python-build-system)
8165 ,@%meson-build-system-modules)
8166 #:phases
8167 (modify-phases %standard-phases
8168 (add-after 'install 'wrap
8169 (@@ (guix build python-build-system) wrap))
8170 (add-after 'wrap 'wrap-gi-typelib
8171 (lambda* (#:key inputs outputs #:allow-other-keys)
8172 (let ((out (assoc-ref outputs "out"))
8173 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8174 (wrap-program (string-append out "/bin/gnome-tweaks")
8175 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8176 #t)))))
8177 (native-inputs
8178 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8179 ("intltool" ,intltool)
8180 ("pkg-config" ,pkg-config)))
8181 (inputs
8182 `(("gnome-desktop" ,gnome-desktop)
8183 ("gtk+" ,gtk+)
8184 ("gobject-introspection" ,gobject-introspection)
8185 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8186 ("libnotify" ,libnotify)
8187 ("libsoup" ,libsoup)
8188 ("nautilus" ,nautilus)
8189 ("python" ,python)
8190 ("python-pygobject" ,python-pygobject)))
8191 (synopsis "Customize advanced GNOME 3 options")
8192 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8193 (description
8194 "GNOME Tweaks allows adjusting advanced configuration settings in
8195 GNOME 3. This includes things like the fonts used in user interface elements,
8196 alternative user interface themes, changes in window management behavior,
8197 GNOME Shell appearance and extension, etc.")
8198 (license license:gpl3+)))
8199
8200 (define-public gnome-shell-extensions
8201 (package
8202 (name "gnome-shell-extensions")
8203 (version "3.32.1")
8204 (source (origin
8205 (method url-fetch)
8206 (uri (string-append "mirror://gnome/sources/" name "/"
8207 (version-major+minor version) "/"
8208 name "-" version ".tar.xz"))
8209 (sha256
8210 (base32
8211 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
8212 (build-system meson-build-system)
8213 (arguments
8214 '(#:configure-flags '("-Dextension_set=all")))
8215 (native-inputs
8216 `(("glib:bin" ,glib "bin")
8217 ("intltool" ,intltool)
8218 ("pkg-config" ,pkg-config)))
8219 (propagated-inputs
8220 `(("glib" ,glib)))
8221 (synopsis "Extensions for GNOME Shell")
8222 (description "GNOME Shell extensions modify and extend GNOME Shell
8223 functionality and behavior.")
8224 (home-page "https://extensions.gnome.org/")
8225 (license license:gpl3+)))
8226
8227 (define-public arc-theme
8228 (package
8229 (name "arc-theme")
8230 (version "20190917")
8231 (source (origin
8232 (method git-fetch)
8233 (uri (git-reference
8234 (url "https://github.com/NicoHood/arc-theme.git")
8235 (commit version)))
8236 (file-name (git-file-name name version))
8237 (sha256
8238 (base32
8239 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8240 (build-system gnu-build-system)
8241 (arguments
8242 '(#:phases
8243 (modify-phases %standard-phases
8244 ;; autogen.sh calls configure at the end of the script.
8245 (replace 'bootstrap
8246 (lambda _ (invoke "autoreconf" "-vfi")))
8247 (add-before 'build 'set-home ;placate Inkscape
8248 (lambda _
8249 (setenv "HOME" (getcwd))
8250 #t)))))
8251 (native-inputs
8252 `(("autoconf" ,autoconf)
8253 ("automake" ,automake)
8254 ("glib" ,glib "bin") ; for glib-compile-resources
8255 ("gnome-shell" ,gnome-shell)
8256 ("gtk+" ,gtk+)
8257 ("inkscape" ,inkscape)
8258 ("optipng" ,optipng)
8259 ("pkg-config" ,pkg-config)
8260 ("sassc" ,sassc/libsass-3.5)))
8261 (synopsis "A flat GTK+ theme with transparent elements")
8262 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8263 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8264 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8265 (home-page "https://github.com/horst3180/arc-theme")
8266 ;; No "or later" language found.
8267 (license license:gpl3+)))
8268
8269 (define-public faba-icon-theme
8270 (package
8271 (name "faba-icon-theme")
8272 (version "4.3")
8273 (source
8274 (origin
8275 (method git-fetch)
8276 (uri (git-reference
8277 (url "https://github.com/snwh/faba-icon-theme.git")
8278 (commit (string-append "v" version))))
8279 (file-name (git-file-name name version))
8280 (sha256
8281 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8282 (build-system meson-build-system)
8283 (arguments
8284 `(#:phases
8285 (modify-phases %standard-phases
8286 (add-before 'configure 'disable-post-install
8287 (lambda _
8288 (substitute* "meson.build"
8289 (("meson.add_install_script.*") "")))))))
8290 (native-inputs
8291 `(("autoconf" ,autoconf)
8292 ("automake" ,automake)))
8293 (synopsis "Faba icon theme")
8294 (description
8295 "Faba is a minimal icon set used as a basis for other themes such as
8296 Moka")
8297 (home-page "https://snwh.org/moka")
8298 (license (list license:lgpl3+
8299 license:cc-by-sa4.0))))
8300
8301 (define-public moka-icon-theme
8302 (package
8303 (inherit faba-icon-theme)
8304 (name "moka-icon-theme")
8305 (version "5.4.0")
8306 (source
8307 (origin
8308 (method git-fetch)
8309 (uri (git-reference
8310 (url "https://github.com/snwh/moka-icon-theme.git")
8311 (commit (string-append "v" version))))
8312 (file-name (git-file-name name version))
8313 (sha256
8314 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8315 (propagated-inputs
8316 ;; Moka is based on Faba by using it as a fallback icon set instead of
8317 ;; bundling it, so we need to add it as a propagated input.
8318 `(("faba-icon-theme" ,faba-icon-theme)))
8319 (synopsis "Moka icon theme")
8320 (description "Moka is a stylized desktop icon set, designed to be clear,
8321 simple and consistent.")
8322 (license (list license:gpl3+
8323 license:cc-by-sa4.0))))
8324
8325 (define-public arc-icon-theme
8326 (package
8327 (name "arc-icon-theme")
8328 (version "20161122")
8329 (source
8330 (origin
8331 (method git-fetch)
8332 (uri (git-reference
8333 (url "https://github.com/horst3180/arc-icon-theme.git")
8334 (commit version)))
8335 (file-name (git-file-name name version))
8336 (sha256
8337 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8338 (build-system gnu-build-system)
8339 (arguments
8340 `(#:phases
8341 (modify-phases %standard-phases
8342 (add-after 'unpack 'disable-configure-during-bootstrap
8343 (lambda _
8344 (substitute* "autogen.sh"
8345 (("^\"\\$srcdir/configure\".*") ""))
8346 #t)))))
8347 (native-inputs
8348 `(("autoconf" ,autoconf)
8349 ("automake" ,automake)))
8350 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8351 (propagated-inputs
8352 `(("moka-icon-theme" ,moka-icon-theme)))
8353 (synopsis "Arc icon theme")
8354 (description "The Arc icon theme provides a set of icons matching the
8355 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8356 the Moka icon theme.")
8357 (home-page "https://github.com/horst3180/arc-icon-theme")
8358 (license license:gpl3+)))
8359
8360 (define-public folks
8361 (package
8362 (name "folks")
8363 (version "0.13.1")
8364 (source (origin
8365 (method url-fetch)
8366 (uri (string-append
8367 "mirror://gnome/sources/folks/"
8368 (version-major+minor version) "/"
8369 "folks-" version ".tar.xz"))
8370 (sha256
8371 (base32
8372 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8373 (build-system meson-build-system)
8374 (arguments
8375 '(#:phases
8376 (modify-phases %standard-phases
8377 (add-after 'unpack 'skip-gtk-update-icon-cache
8378 ;; Don't create 'icon-theme.cache'.
8379 (lambda _
8380 (substitute* "meson_post_install.py"
8381 (("gtk-update-icon-cache") "true"))
8382 #t)))))
8383 (inputs
8384 `(("bdb" ,bdb)
8385 ("dbus-glib" ,dbus-glib)
8386 ("evolution-data-server" ,evolution-data-server)
8387 ("glib" ,glib)
8388 ("libgee" ,libgee)
8389 ("readline" ,readline)
8390 ("telepathy-glib" ,telepathy-glib)))
8391 (native-inputs
8392 `(("glib:bin" ,glib "bin")
8393 ("gobject-introspection" ,gobject-introspection)
8394 ("intltool" ,intltool)
8395 ("pkg-config" ,pkg-config)
8396 ("vala" ,vala)))
8397 (synopsis "Library to aggregate data about people")
8398 (description "Libfolks is a library that aggregates information about people
8399 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8400 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8401 etc.) to create metacontacts. It's written in Vala, which generates C code when
8402 compiled.")
8403 (home-page "https://wiki.gnome.org/Projects/Folks")
8404 (license license:lgpl2.1+)))
8405
8406 (define-public gfbgraph
8407 (package
8408 (name "gfbgraph")
8409 (version "0.2.3")
8410 (source (origin
8411 (method url-fetch)
8412 (uri (string-append
8413 "mirror://gnome/sources/gfbgraph/"
8414 (version-major+minor version) "/"
8415 "gfbgraph-" version ".tar.xz"))
8416 (sha256
8417 (base32
8418 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8419 (build-system glib-or-gtk-build-system)
8420 (arguments
8421 `(#:tests? #f ; Tests appear to require the network.
8422 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8423 #:configure-flags '("--disable-gtk-doc"
8424 "--disable-static"
8425 "--enable-introspection")))
8426 (native-inputs
8427 `(("pkg-config" ,pkg-config)
8428 ("gobject-introspection" ,gobject-introspection)))
8429 (inputs
8430 `(("json-glib" ,json-glib)
8431 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8432 ("rest" ,rest)))
8433 (synopsis "GLib/GObject wrapper for the Facebook API")
8434 (description "This library allows you to use the Facebook API from
8435 GLib/GObject code.")
8436 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8437 (license license:lgpl2.1+)))
8438
8439 (define-public libgnomekbd
8440 (package
8441 (name "libgnomekbd")
8442 (version "3.26.1")
8443 (source (origin
8444 (method url-fetch)
8445 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8446 (version-major+minor version) "/"
8447 "libgnomekbd-" version ".tar.xz"))
8448 (sha256
8449 (base32
8450 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8451 (build-system gnu-build-system)
8452 (native-inputs
8453 `(("pkg-config" ,pkg-config)
8454 ("glib" ,glib "bin")
8455 ("intltool" ,intltool)))
8456 (propagated-inputs
8457 ;; Referred to in .h files and .pc.
8458 `(("glib" ,glib)
8459 ("gtk+" ,gtk+)
8460 ("libxklavier" ,libxklavier)))
8461 (home-page "https://www.gnome.org")
8462 (synopsis "GNOME keyboard configuration library")
8463 (description
8464 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8465 environment, which can notably display keyboard layouts.")
8466 (license license:lgpl2.0+)))
8467
8468 ;;; This package is no longer maintained:
8469 ;;; https://wiki.gnome.org/Attic/LibUnique
8470 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8471 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8472 (define-public libunique
8473 (package
8474 (name "libunique")
8475 (version "3.0.2")
8476 (source (origin
8477 (method url-fetch)
8478 (uri (string-append "mirror://gnome/sources/" name "/"
8479 (version-major+minor version) "/"
8480 name "-" version ".tar.xz"))
8481 (sha256
8482 (base32
8483 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8484 (build-system glib-or-gtk-build-system)
8485 (arguments
8486 `(#:configure-flags '("--disable-static"
8487 "--disable-dbus" ; use gdbus
8488 "--enable-introspection")))
8489 (native-inputs
8490 `(("pkg-config" ,pkg-config)
8491 ("gobject-introspection" ,gobject-introspection)
8492 ("glib:bin" ,glib "bin")
8493 ("gtk-doc" ,gtk-doc)))
8494 (propagated-inputs
8495 ;; Referred to in .h files and .pc.
8496 `(("gtk+" ,gtk+)))
8497 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8498 (synopsis "Library for writing single instance applications")
8499 (description
8500 "Libunique is a library for writing single instance applications. If you
8501 launch a single instance application twice, the second instance will either just
8502 quit or will send a message to the running instance. Libunique makes it easy to
8503 write this kind of application, by providing a base class, taking care of all
8504 the IPC machinery needed to send messages to a running instance, and also
8505 handling the startup notification side.")
8506 (license license:lgpl2.1+)))
8507
8508 (define-public gnome-calculator
8509 (package
8510 (name "gnome-calculator")
8511 (version "3.34.1")
8512 (source
8513 (origin
8514 (method url-fetch)
8515 (uri (string-append "mirror://gnome/sources/" name "/"
8516 (version-major+minor version) "/"
8517 name "-" version ".tar.xz"))
8518 (sha256
8519 (base32
8520 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
8521 (build-system meson-build-system)
8522 (arguments '(#:glib-or-gtk? #t))
8523 (native-inputs
8524 `(("gettext" ,gettext-minimal)
8525 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8526 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8527 ("itstool" ,itstool)
8528 ("vala" ,vala)
8529 ("pkg-config" ,pkg-config)))
8530 (inputs
8531 `(("glib" ,glib)
8532 ("gtksourceview" ,gtksourceview)
8533 ("libgee" ,libgee)
8534 ("libsoup" ,libsoup)
8535 ("libxml2" ,libxml2)
8536 ("mpc" ,mpc)
8537 ("mpfr" ,mpfr)))
8538 (home-page "https://wiki.gnome.org/Apps/Calculator")
8539 (synopsis "Desktop calculator")
8540 (description
8541 "Calculator is an application that solves mathematical equations and
8542 is suitable as a default application in a Desktop environment.")
8543 (license license:gpl3)))
8544
8545 (define-public xpad
8546 (package
8547 (name "xpad")
8548 (version "5.1.0")
8549 (source
8550 (origin
8551 (method url-fetch)
8552 (uri (string-append "https://launchpad.net/xpad/trunk/"
8553 version "/+download/"
8554 name "-" version ".tar.bz2"))
8555 (sha256
8556 (base32
8557 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8558 (build-system gnu-build-system)
8559 (native-inputs
8560 `(("autoconf" ,autoconf)
8561 ("automake" ,automake)
8562 ("gtk+:bin" ,gtk+ "bin")
8563 ("intltool" ,intltool)
8564 ("pkg-config" ,pkg-config)))
8565 (inputs
8566 `(("gtksourceview" ,gtksourceview-3)
8567 ("libsm" ,libsm)))
8568 (home-page "https://wiki.gnome.org/Apps/Xpad")
8569 (synopsis "Virtual sticky note")
8570 (description
8571 "Xpad is a sticky note that strives to be simple, fault tolerant,
8572 and customizable. Xpad consists of independent pad windows, each is
8573 basically a text box in which notes can be written.")
8574 (license license:gpl3+)))
8575
8576 (define-public gucharmap
8577 (let ((unicode-files
8578 '(("Blocks.txt"
8579 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8580 ("DerivedAge.txt"
8581 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8582 ("NamesList.txt"
8583 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8584 ("Scripts.txt"
8585 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8586 ("UnicodeData.txt"
8587 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8588 ("Unihan.zip"
8589 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8590 (package
8591 (name "gucharmap")
8592 (version "12.0.1")
8593 (source
8594 (origin
8595 (method url-fetch)
8596 (uri (string-append "mirror://gnome/sources/" name "/"
8597 (version-major+minor version) "/"
8598 name "-" version ".tar.xz"))
8599 (sha256
8600 (base32
8601 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8602 (build-system glib-or-gtk-build-system)
8603 (arguments
8604 `(#:modules ((ice-9 match)
8605 (guix build glib-or-gtk-build-system)
8606 (guix build utils))
8607 #:configure-flags
8608 (list "--with-unicode-data=../unicode-data")
8609 #:phases
8610 (modify-phases %standard-phases
8611 (add-after 'unpack 'prepare-unicode-data
8612 (lambda* (#:key inputs #:allow-other-keys)
8613 (mkdir-p "../unicode-data")
8614 (with-directory-excursion "../unicode-data"
8615 (for-each (match-lambda
8616 ((file _)
8617 (install-file (assoc-ref inputs file) ".")))
8618 ',unicode-files))
8619 #t)))))
8620 (native-inputs
8621 `(("desktop-file-utils" ,desktop-file-utils)
8622 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8623 ("gobject-introspection" ,gobject-introspection)
8624 ("intltool" ,intltool)
8625 ("itstool" ,itstool)
8626 ("pkg-config" ,pkg-config)
8627 ,@(map (match-lambda
8628 ((file hash)
8629 `(,file
8630 ,(origin
8631 (method url-fetch)
8632 (uri (string-append
8633 "http://www.unicode.org/Public/12.0.0/ucd/"
8634 file))
8635 (sha256 (base32 hash))))))
8636 unicode-files)
8637 ("unzip" ,unzip)))
8638 (inputs
8639 `(("gtk+" ,gtk+)
8640 ("xmllint" ,libxml2)))
8641 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8642 (synopsis "Unicode character picker and font browser")
8643 (description
8644 "This program allows you to browse through all the available Unicode
8645 characters and categories for the installed fonts, and to examine their
8646 detailed properties. It is an easy way to find the character you might
8647 only know by its Unicode name or code point.")
8648 (license license:gpl3+))))
8649
8650 (define-public bluefish
8651 (package
8652 (name "bluefish")
8653 (version "2.2.11")
8654 (source
8655 (origin
8656 (method url-fetch)
8657 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8658 "bluefish-" version ".tar.gz"))
8659 (sha256
8660 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
8661 (build-system gnu-build-system)
8662 (native-inputs
8663 `(("desktop-file-utils" ,desktop-file-utils)
8664 ("intltool" ,intltool)
8665 ("pkg-config" ,pkg-config)))
8666 (inputs
8667 `(("enchant" ,enchant)
8668 ("gtk+" ,gtk+)
8669 ("python" ,python-wrapper)
8670 ("xmllint" ,libxml2)
8671 ("gucharmap" ,gucharmap)))
8672 (home-page "http://bluefish.openoffice.nl")
8673 (synopsis "Web development studio")
8674 (description
8675 "Bluefish is an editor targeted towards programmers and web developers,
8676 with many options to write web sites, scripts and other code.
8677 Bluefish supports many programming and markup languages.")
8678 (license license:gpl3+)))
8679
8680 (define-public gnome-system-monitor
8681 (package
8682 (name "gnome-system-monitor")
8683 (version "3.32.1")
8684 (source
8685 (origin
8686 (method url-fetch)
8687 (uri (string-append "mirror://gnome/sources/" name "/"
8688 (version-major+minor version) "/"
8689 name "-" version ".tar.xz"))
8690 (sha256
8691 (base32
8692 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8693 (build-system meson-build-system)
8694 (arguments
8695 '(#:glib-or-gtk? #t
8696 #:configure-flags '("-Dsystemd=false")))
8697 (native-inputs
8698 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8699 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8700 ("intltool" ,intltool)
8701 ("itstool" ,itstool)
8702 ("libgtop" ,libgtop)
8703 ("polkit" ,polkit)
8704 ("pkg-config" ,pkg-config)))
8705 (inputs
8706 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8707 ("gtk+" ,gtk+)
8708 ("gtkmm" ,gtkmm)
8709 ("librsvg" ,librsvg)
8710 ("libxml2" ,libxml2)
8711 ("libwnck" ,libwnck)))
8712 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8713 (synopsis "Process viewer and system resource monitor for GNOME")
8714 (description
8715 "GNOME System Monitor is a GNOME process viewer and system monitor with
8716 an attractive, easy-to-use interface. It has features, such as a tree view
8717 for process dependencies, icons for processes, the ability to hide processes,
8718 graphical time histories of CPU/memory/swap usage and the ability to
8719 kill/reinice processes.")
8720 (license license:gpl2+)))
8721
8722 (define-public python-pyatspi
8723 (package
8724 (name "python-pyatspi")
8725 (version "2.34.0")
8726 (source (origin
8727 (method url-fetch)
8728 (uri (string-append
8729 "mirror://gnome/sources/pyatspi/"
8730 (version-major+minor version)
8731 "/pyatspi-" version ".tar.xz"))
8732 (sha256
8733 (base32
8734 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8735 (build-system gnu-build-system)
8736 (arguments
8737 `(#:phases
8738 (modify-phases %standard-phases
8739 (add-before 'build 'fix-atk-load
8740 (lambda _
8741 (substitute* "pyatspi/__init__.py"
8742 (("from gi.repository import Atspi")
8743 "gi.require_version('Gtk', '3.0')
8744 from gi.repository import Gtk
8745 from gi.repository import Atspi"))
8746 #t)))))
8747 (native-inputs
8748 `(("pkg-config" ,pkg-config)))
8749 (inputs
8750 `(("python" ,python)
8751 ("python-pygobject" ,python-pygobject)))
8752 (synopsis "Python client bindings for D-Bus AT-SPI")
8753 (home-page "https://wiki.linuxfoundation.org/accessibility\
8754 /atk/at-spi/at-spi_on_d-bus")
8755 (description
8756 "This package includes a python client library for the AT-SPI D-Bus
8757 accessibility infrastructure.")
8758 (license license:lgpl2.0)
8759 (properties '((upstream-name . "pyatspi")))))
8760
8761 (define-public orca
8762 (package
8763 (name "orca")
8764 (version "3.32.0")
8765 (source (origin
8766 (method url-fetch)
8767 (uri (string-append
8768 "mirror://gnome/sources/" name "/"
8769 (version-major+minor version) "/"
8770 name "-" version ".tar.xz"))
8771 (sha256
8772 (base32
8773 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
8774 (build-system glib-or-gtk-build-system)
8775 (arguments
8776 '(#:phases
8777 (modify-phases %standard-phases
8778 (add-before 'configure 'qualify-xkbcomp
8779 (lambda* (#:key inputs #:allow-other-keys)
8780 (let ((xkbcomp (string-append
8781 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8782 (substitute* "src/orca/orca.py"
8783 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8784 #t))
8785 (add-after 'install 'wrap-orca
8786 (lambda* (#:key outputs #:allow-other-keys)
8787 (let* ((out (assoc-ref outputs "out"))
8788 (prog (string-append out "/bin/orca")))
8789 (wrap-program prog
8790 `("GI_TYPELIB_PATH" ":" prefix
8791 (,(getenv "GI_TYPELIB_PATH")))
8792 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8793 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8794 `("PYTHONPATH" ":" prefix
8795 (,(getenv "PYTHONPATH")))))
8796 #t)))))
8797 (native-inputs
8798 `(("intltool" ,intltool)
8799 ("itstool" ,itstool)
8800 ("pkg-config" ,pkg-config)
8801 ("xmllint" ,libxml2)))
8802 (inputs
8803 `(("at-spi2-atk" ,at-spi2-atk)
8804 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8805 ("gstreamer" ,gstreamer)
8806 ("gst-plugins-base" ,gst-plugins-base)
8807 ("gst-plugins-good" ,gst-plugins-good)
8808 ("gtk+" ,gtk+)
8809 ("python" ,python)
8810 ("python-pygobject" ,python-pygobject)
8811 ("python-pyatspi" ,python-pyatspi)
8812 ("python-speechd" ,speech-dispatcher)
8813 ("xkbcomp" ,xkbcomp)))
8814 (synopsis
8815 "Screen reader for individuals who are blind or visually impaired")
8816 (home-page "https://wiki.gnome.org/Projects/Orca")
8817 (description
8818 "Orca is a screen reader that provides access to the graphical desktop
8819 via speech and refreshable braille. Orca works with applications and toolkits
8820 that support the Assistive Technology Service Provider Interface (AT-SPI).")
8821 (license license:lgpl2.1+)))
8822
8823 (define-public gspell
8824 (package
8825 (name "gspell")
8826 (version "1.8.2")
8827 (source (origin
8828 (method url-fetch)
8829 (uri (string-append "mirror://gnome/sources/" name "/"
8830 (version-major+minor version) "/"
8831 name "-" version ".tar.xz"))
8832 (sha256
8833 (base32
8834 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
8835 (patches (search-patches "gspell-dash-test.patch"))))
8836 (build-system glib-or-gtk-build-system)
8837 (arguments
8838 '(#:configure-flags (list "--enable-vala")
8839 #:phases
8840 (modify-phases %standard-phases
8841 (add-before 'check 'pre-check
8842 (lambda* (#:key inputs #:allow-other-keys)
8843 ;; Tests require a running X server.
8844 (system "Xvfb :1 &")
8845 (setenv "DISPLAY" ":1")
8846
8847 ;; For the missing /etc/machine-id.
8848 (setenv "DBUS_FATAL_WARNINGS" "0")
8849
8850 ;; Allow Enchant and its Aspell backend to find the en_US
8851 ;; dictionary.
8852 (setenv "ASPELL_DICT_DIR"
8853 (string-append (assoc-ref inputs "aspell-dict-en")
8854 "/lib/aspell"))
8855 #t)))))
8856 (inputs
8857 `(("gtk+" ,gtk+)
8858 ("glib" ,glib)
8859 ("iso-codes" ,iso-codes)))
8860 (native-inputs
8861 `(("glib" ,glib "bin")
8862 ("gobject-introspection" ,gobject-introspection)
8863 ("pkg-config" ,pkg-config)
8864 ("vala" ,vala) ;for VAPI, needed by Geary
8865 ("xmllint" ,libxml2)
8866
8867 ;; For tests.
8868 ("aspell-dict-en" ,aspell-dict-en)
8869 ("xorg-server" ,xorg-server-for-tests)))
8870 (propagated-inputs
8871 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
8872 (home-page "https://wiki.gnome.org/Projects/gspell")
8873 (synopsis "GNOME's alternative spell checker")
8874 (description
8875 "gspell provides a flexible API to add spell-checking to a GTK+
8876 application. It provides a GObject API, spell-checking to text entries and
8877 text views, and buttons to choose the language.")
8878 (license license:gpl2+)))
8879
8880 (define-public gnome-planner
8881 (package
8882 (name "gnome-planner")
8883 (version "0.14.6")
8884 (source (origin
8885 (method url-fetch)
8886 (uri (string-append "mirror://gnome/sources/planner/"
8887 (version-major+minor version) "/planner-"
8888 version ".tar.xz"))
8889 (sha256
8890 (base32
8891 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8892 (build-system glib-or-gtk-build-system)
8893 (arguments
8894 ;; Disable the Python bindings because the Planner program functions
8895 ;; without them, and (as of 2017-06-13) we have not packaged all of
8896 ;; packages that are necessary for building the Python bindings.
8897 `(#:configure-flags
8898 (list "--disable-python"
8899 ,@(if (string=? "aarch64-linux" (%current-system))
8900 '("--build=aarch64-unknown-linux-gnu")
8901 '()))))
8902 (inputs
8903 `(("libgnomecanvas" ,libgnomecanvas)
8904 ("libgnomeui" ,libgnomeui)
8905 ("libglade" ,libglade)
8906 ("gnome-vfs" ,gnome-vfs)
8907 ("gconf" ,gconf)
8908 ("libxml2" ,libxml2)
8909 ("libxslt" ,libxslt)
8910 ("gtk+" ,gtk+)
8911 ("glib" ,glib)))
8912 (native-inputs
8913 `(("intltool" ,intltool)
8914 ("scrollkeeper" ,scrollkeeper)
8915 ("pkg-config" ,pkg-config)))
8916 (home-page "https://wiki.gnome.org/Apps/Planner")
8917 (synopsis "Project management software for the GNOME desktop")
8918 (description
8919 "GNOME Planner is a project management tool based on the Work Breakdown
8920 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8921 the resources, tasks, and constraints that you define, Planner generates
8922 various views into a project. For example, Planner can show a Gantt chart of
8923 the project. It can show a detailed summary of tasks including their
8924 duration, cost, and current progress. It can also show a report of resource
8925 utilization that highlights under-utilized and over-utilized resources. These
8926 views can be printed as PDF or PostScript files, or exported to HTML.")
8927 (license license:gpl2+)))
8928
8929 (define-public lollypop
8930 (package
8931 (name "lollypop")
8932 (version "1.2.32")
8933 (source
8934 (origin
8935 (method url-fetch)
8936 (uri (string-append "https://adishatz.org/lollypop/"
8937 "lollypop-" version ".tar.xz"))
8938 (sha256
8939 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
8940 (build-system meson-build-system)
8941 (arguments
8942 `(#:imported-modules
8943 (,@%meson-build-system-modules
8944 (guix build python-build-system))
8945 #:modules
8946 ((guix build meson-build-system)
8947 ((guix build python-build-system) #:prefix python:)
8948 (guix build utils))
8949 #:glib-or-gtk? #t
8950 #:tests? #f ; no test suite
8951 #:phases
8952 (modify-phases %standard-phases
8953 (add-after 'install 'wrap-program
8954 (lambda* (#:key outputs #:allow-other-keys)
8955 (let ((out (assoc-ref outputs "out"))
8956 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8957 (wrap-program (string-append out "/bin/lollypop")
8958 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8959 #t))
8960 (add-after 'install 'wrap-python
8961 (assoc-ref python:%standard-phases 'wrap)))))
8962 (native-inputs
8963 `(("intltool" ,intltool)
8964 ("itstool" ,itstool)
8965 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8966 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8967 ("pkg-config" ,pkg-config)))
8968 (inputs
8969 `(("gobject-introspection" ,gobject-introspection)
8970 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8971 ("gst-plugins-base" ,gst-plugins-base)
8972 ("libnotify" ,libnotify)
8973 ("libsecret" ,libsecret)
8974 ("libsoup" ,libsoup)
8975 ("python" ,python)
8976 ("python-beautifulsoup4" ,python-beautifulsoup4)
8977 ("python-gst" ,python-gst)
8978 ("python-pil" ,python-pillow)
8979 ("python-pycairo" ,python-pycairo)
8980 ("python-pygobject" ,python-pygobject)
8981 ("python-pylast" ,python-pylast)
8982 ("totem-pl-parser" ,totem-pl-parser)
8983 ("webkitgtk" ,webkitgtk)))
8984 (propagated-inputs
8985 `(;; gst-plugins-base is required to start Lollypop,
8986 ;; the others are required to play streaming.
8987 ("gst-plugins-good" ,gst-plugins-good)
8988 ("gst-plugins-ugly" ,gst-plugins-ugly)))
8989 (home-page "https://wiki.gnome.org/Apps/Lollypop")
8990 (synopsis "GNOME music playing application")
8991 (description
8992 "Lollypop is a music player designed to play well with GNOME desktop.
8993 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
8994 from artists and tracks from the web. It also fetches cover artworks
8995 automatically and it can stream songs from online music services and charts.")
8996 (license license:gpl3+)))
8997
8998 (define-public gnome-video-effects
8999 (package
9000 (name "gnome-video-effects")
9001 (version "0.4.3")
9002 (source (origin
9003 (method url-fetch)
9004 (uri (string-append "mirror://gnome/sources/" name "/"
9005 (version-major+minor version) "/" name "-"
9006 version ".tar.xz"))
9007 (sha256
9008 (base32
9009 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9010 (build-system glib-or-gtk-build-system)
9011 (arguments
9012 `(#:out-of-source? #f))
9013 (native-inputs
9014 `(("glib:bin" ,glib "bin")
9015 ("intltool" ,intltool)
9016 ("gettext" ,gettext-minimal)
9017 ("pkg-config" ,pkg-config)))
9018 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9019 (synopsis "Video effects for Cheese and other GNOME applications")
9020 (description
9021 "A collection of GStreamer video filters and effects to be used in
9022 photo-booth-like software, such as Cheese.")
9023 (license license:gpl2+)))
9024
9025 (define-public cheese
9026 (package
9027 (name "cheese")
9028 (version "3.32.1")
9029 (source (origin
9030 (method url-fetch)
9031 (uri (string-append "mirror://gnome/sources/" name "/"
9032 (version-major+minor version) "/" name "-"
9033 version ".tar.xz"))
9034 (sha256
9035 (base32
9036 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
9037 (arguments
9038 ;; Tests require GDK.
9039 `(#:tests? #f
9040 #:phases
9041 (modify-phases %standard-phases
9042 (add-before 'install 'skip-gtk-update-icon-cache
9043 (lambda _
9044 ;; Don't create 'icon-theme.cache'
9045 (substitute* "Makefile"
9046 (("gtk-update-icon-cache") (which "true")))
9047 #t))
9048 (add-after 'install 'wrap-cheese
9049 (lambda* (#:key inputs outputs #:allow-other-keys)
9050 (let ((out (assoc-ref outputs "out"))
9051 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9052 (wrap-program (string-append out "/bin/cheese")
9053 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9054 #t)))))
9055 (build-system glib-or-gtk-build-system)
9056 (native-inputs
9057 `(("glib:bin" ,glib "bin")
9058 ("intltool" ,intltool)
9059 ("itstool" ,itstool)
9060 ("libxml2" ,libxml2)
9061 ("pkg-config" ,pkg-config)
9062 ("vala" ,vala)))
9063 (propagated-inputs
9064 `(("gnome-video-effects" ,gnome-video-effects)
9065 ("clutter" ,clutter)
9066 ("clutter-gst" ,clutter-gst)
9067 ("clutter-gtk" ,clutter-gtk)
9068 ("libcanberra" ,libcanberra)
9069 ("gdk-pixbuf" ,gdk-pixbuf)
9070 ("glib" ,glib)
9071 ("gstreamer" ,gstreamer)))
9072 (inputs
9073 `(("gnome-desktop" ,gnome-desktop)
9074 ("gobject-introspection" ,gobject-introspection)
9075 ("gst-plugins-base" ,gst-plugins-base)
9076 ("gst-plugins-bad" ,gst-plugins-bad)
9077 ("gtk+" ,gtk+)
9078 ("libx11" ,libx11)
9079 ("libxtst" ,libxtst)))
9080 (home-page "https://wiki.gnome.org/Apps/Cheese")
9081 (synopsis "Webcam photo booth software for GNOME")
9082 (description
9083 "Cheese uses your webcam to take photos and videos. Cheese can also
9084 apply fancy special effects and lets you share the fun with others.")
9085 (license license:gpl2+)))
9086
9087 (define-public sound-juicer
9088 (package
9089 (name "sound-juicer")
9090 (version "3.24.0")
9091 (source
9092 (origin
9093 (method url-fetch)
9094 (uri (string-append "mirror://gnome/sources/" name "/"
9095 (version-major+minor version) "/"
9096 name "-" version ".tar.xz"))
9097 (sha256
9098 (base32
9099 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9100 (build-system glib-or-gtk-build-system)
9101 (native-inputs
9102 `(("desktop-file-utils" ,desktop-file-utils)
9103 ("intltool" ,intltool)
9104 ("itstool" ,itstool)
9105 ("pkg-config" ,pkg-config)
9106 ("xmllint" ,libxml2)))
9107 (inputs
9108 `(("gtk+" ,gtk+)
9109 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9110 ("gstreamer" ,gstreamer)
9111 ("gst-plugins-base" ,gst-plugins-base)
9112 ("gst-plugins-good" ,gst-plugins-good)
9113 ("iso-codes" ,iso-codes)
9114 ("libbrasero-media3" ,brasero)
9115 ("libcanberra" ,libcanberra)
9116 ("libdiscid" ,libdiscid)
9117 ("libmusicbrainz" ,libmusicbrainz)
9118 ("neon" ,neon)))
9119 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9120 (synopsis "Audio music cd ripper")
9121 (description "Sound Juicer extracts audio from compact discs and convert it
9122 into audio files that a personal computer or digital audio player can play.
9123 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9124 mp3, Ogg Vorbis and FLAC")
9125 (license license:gpl2+)))
9126
9127 (define-public soundconverter
9128 (package
9129 (name "soundconverter")
9130 (version "3.0.1")
9131 (source
9132 (origin
9133 (method url-fetch)
9134 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9135 version "/+download/"
9136 "soundconverter-" version ".tar.xz"))
9137
9138 (sha256
9139 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
9140 (patches
9141 (search-patches
9142 "soundconverter-remove-gconf-dependency.patch"))))
9143 (build-system glib-or-gtk-build-system)
9144 (arguments
9145 `(#:imported-modules ((guix build python-build-system)
9146 (guix build glib-or-gtk-build-system)
9147 ,@%gnu-build-system-modules)
9148
9149 #:modules ((guix build glib-or-gtk-build-system)
9150 (guix build utils)
9151 ((guix build gnu-build-system) #:prefix gnu:)
9152 ((guix build python-build-system) #:prefix python:))
9153
9154 #:phases
9155 (modify-phases %standard-phases
9156 (add-after 'install 'wrap-soundconverter-for-python
9157 (assoc-ref python:%standard-phases 'wrap))
9158 (add-after 'install 'wrap-soundconverter
9159 (lambda* (#:key inputs outputs #:allow-other-keys)
9160 (let ((out (assoc-ref outputs "out"))
9161 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9162 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9163 (wrap-program (string-append out "/bin/soundconverter")
9164 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9165 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9166 #t)))))
9167 (native-inputs
9168 `(("intltool" ,intltool)
9169 ("pkg-config" ,pkg-config)
9170 ("glib:bin" ,glib "bin")))
9171 (inputs
9172 `(("gtk+" ,gtk+)
9173 ("python" ,python)
9174 ("python-pygobject" ,python-pygobject)
9175 ("gstreamer" ,gstreamer)
9176 ("gst-plugins-base" ,gst-plugins-base)))
9177 (home-page "https://soundconverter.org/")
9178 (synopsis "Convert between audio formats with a graphical interface")
9179 (description
9180 "SoundConverter supports converting between many audio formats including
9181 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9182 configurable file renaming. ")
9183 (license license:gpl3)))
9184
9185 (define-public workrave
9186 (package
9187 (name "workrave")
9188 (version "1.10.42")
9189 (source
9190 (origin
9191 (method git-fetch)
9192 (uri (git-reference
9193 (url "https://github.com/rcaelers/workrave.git")
9194 (commit (string-append "v" (string-map
9195 (match-lambda (#\. #\_) (chr chr))
9196 version)))))
9197 (file-name (git-file-name name version))
9198 (sha256
9199 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
9200 (build-system glib-or-gtk-build-system)
9201 (arguments
9202 ;; The only tests are maintainer tests (in po/), which fail.
9203 `(#:tests? #f))
9204 (inputs `(("glib" ,glib)
9205 ("gtk+" ,gtk+)
9206 ("gdk-pixbuf" ,gdk-pixbuf)
9207 ("gtkmm" ,gtkmm)
9208 ("glibmm" ,glibmm)
9209 ("libx11" ,libx11)
9210 ("libxtst" ,libxtst)
9211 ("dconf" ,dconf)
9212 ("libice" ,libice)
9213 ("libsm" ,libsm)
9214 ("libxscrnsaver" ,libxscrnsaver)))
9215 (native-inputs `(("boost" ,boost)
9216 ("pkg-config" ,pkg-config)
9217 ("gettext" ,gettext-minimal)
9218 ("autoconf" ,autoconf)
9219 ("autoconf-archive" , autoconf-archive)
9220 ("automake" ,automake)
9221 ("libtool" ,libtool)
9222 ("intltool" ,intltool)
9223 ("gobject-introspection" ,gobject-introspection)
9224 ("python3" ,python-3)
9225 ("python-jinja2" ,python-jinja2)))
9226 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9227 (description
9228 "Workrave is a program that assists in the recovery and prevention of
9229 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9230 micro-pauses and rest breaks, and restricts you to your daily limit.")
9231 (home-page "http://www.workrave.org")
9232 (license license:gpl3+)))
9233
9234 (define-public ghex
9235 (package
9236 (name "ghex")
9237 (version "3.18.4")
9238 (source (origin
9239 (method url-fetch)
9240 (uri (string-append "mirror://gnome/sources/ghex/"
9241 (version-major+minor version) "/"
9242 "ghex-" version ".tar.xz"))
9243 (sha256
9244 (base32
9245 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9246 (build-system meson-build-system)
9247 (arguments
9248 '(#:glib-or-gtk? #t
9249 #:phases
9250 (modify-phases %standard-phases
9251 (add-after 'unpack 'skip-gtk-update-icon-cache
9252 ;; Don't create 'icon-theme.cache'.
9253 (lambda _
9254 (substitute* "meson_post_install.py"
9255 (("gtk-update-icon-cache") (which "true")))
9256 #t)))))
9257 (native-inputs
9258 `(("pkg-config" ,pkg-config)
9259 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9260 ("gnome-common" ,gnome-common)
9261 ("which" ,which)
9262 ("intltool" ,intltool)
9263 ("yelp-tools" ,yelp-tools)
9264 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9265 (inputs
9266 `(("atk" ,atk)
9267 ("gtk" ,gtk+)))
9268 (synopsis "GNOME hexadecimal editor")
9269 (description "The GHex program can view and edit files in two ways:
9270 hexadecimal or ASCII. It is useful for editing binary files in general.")
9271 (home-page "https://wiki.gnome.org/Apps/Ghex")
9272 (license license:gpl2)))
9273
9274 (define-public libdazzle
9275 (package
9276 (name "libdazzle")
9277 (version "3.34.1")
9278 (source (origin
9279 (method url-fetch)
9280 (uri (string-append "mirror://gnome/sources/libdazzle/"
9281 (version-major+minor version) "/"
9282 "libdazzle-" version ".tar.xz"))
9283 (sha256
9284 (base32
9285 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
9286 (build-system meson-build-system)
9287 (arguments
9288 `(#:phases
9289 (modify-phases %standard-phases
9290 (add-before 'check 'pre-check
9291 (lambda _
9292 ;; Tests require a running X server.
9293 (system "Xvfb :1 &")
9294 (setenv "DISPLAY" ":1")
9295 #t)))))
9296 (native-inputs
9297 `(("glib" ,glib "bin") ; glib-compile-resources
9298 ("pkg-config" ,pkg-config)
9299 ;; For tests.
9300 ("xorg-server" ,xorg-server-for-tests)))
9301 (inputs
9302 `(("glib" ,glib)
9303 ("gobject-introspection" ,gobject-introspection)
9304 ("gtk+" ,gtk+)
9305 ("vala" ,vala)))
9306 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9307 (synopsis "Companion library to GObject and Gtk+")
9308 (description "The libdazzle library is a companion library to GObject and
9309 Gtk+. It provides various features that the authors wish were in the
9310 underlying library but cannot for various reasons. In most cases, they are
9311 wildly out of scope for those libraries. In other cases, they are not quite
9312 generic enough to work for everyone.")
9313 (license license:gpl3+)))
9314
9315 (define-public evolution
9316 (package
9317 (name "evolution")
9318 (version "3.34.2")
9319 (source (origin
9320 (method url-fetch)
9321 (uri (string-append "mirror://gnome/sources/evolution/"
9322 (version-major+minor version) "/"
9323 "evolution-" version ".tar.xz"))
9324 (sha256
9325 (base32
9326 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
9327 (build-system cmake-build-system)
9328 (arguments
9329 `(#:imported-modules (,@%cmake-build-system-modules
9330 (guix build glib-or-gtk-build-system))
9331 #:modules ((guix build cmake-build-system)
9332 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9333 (guix build utils))
9334 #:configure-flags
9335 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9336 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9337 ; in four years and cannot be built.
9338 #:phases
9339 (modify-phases %standard-phases
9340 ;; The build system attempts to install user interface modules to the
9341 ;; output directory of the "evolution-data-server" package. This
9342 ;; change redirects that change.
9343 (add-after 'unpack 'patch-ui-module-dir
9344 (lambda* (#:key outputs #:allow-other-keys)
9345 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9346 (("\\$\\{edsuimoduledir\\}")
9347 (string-append (assoc-ref outputs "out")
9348 "/lib/evolution-data-server/ui-modules")))
9349 #t))
9350 (add-after 'install 'glib-or-gtk-compile-schemas
9351 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9352 (add-after 'install 'glib-or-gtk-wrap
9353 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9354 (native-inputs
9355 `(("glib" ,glib "bin") ; glib-mkenums
9356 ("pkg-config" ,pkg-config)
9357 ("intltool" ,intltool)
9358 ("itstool" ,itstool)))
9359 (inputs
9360 `(("enchant" ,enchant)
9361 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9362 ("gcr" ,gcr)
9363 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9364 ("gnome-autoar" ,gnome-autoar)
9365 ("gnome-desktop" ,gnome-desktop)
9366 ("gspell" ,gspell)
9367 ("highlight" ,highlight)
9368 ("libcanberra" ,libcanberra)
9369 ("libgweather" ,libgweather)
9370 ("libnotify" ,libnotify)
9371 ("libsoup" ,libsoup)
9372 ("nss" ,nss)
9373 ("openldap" ,openldap)
9374 ("webkitgtk" ,webkitgtk)
9375 ("ytnef" ,ytnef)))
9376 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9377 (synopsis "Manage your email, contacts and schedule")
9378 (description "Evolution is a personal information management application
9379 that provides integrated mail, calendaring and address book
9380 functionality.")
9381 ;; See COPYING for details.
9382 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9383 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9384 license:lgpl2.1+)))) ; smime/lib/*
9385
9386 (define-public gthumb
9387 (package
9388 (name "gthumb")
9389 (version "3.8.2")
9390 (source (origin
9391 (method url-fetch)
9392 (uri (string-append "mirror://gnome/sources/gthumb/"
9393 (version-major+minor version) "/"
9394 "gthumb-" version ".tar.xz"))
9395 (sha256
9396 (base32
9397 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9398 (build-system meson-build-system)
9399 (arguments
9400 `(#:glib-or-gtk? #t
9401 #:configure-flags
9402 ;; Ensure the RUNPATH contains all installed library locations.
9403 (list (string-append "-Dc_link_args=-Wl,-rpath="
9404 (assoc-ref %outputs "out")
9405 "/lib/gthumb/extensions")
9406 (string-append "-Dcpp_link_args=-Wl,-rpath="
9407 (assoc-ref %outputs "out")
9408 "/lib/gthumb/extensions"))))
9409 (native-inputs
9410 `(("pkg-config" ,pkg-config)
9411 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9412 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9413 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9414 ("intltool" ,intltool)
9415 ("itstool" ,itstool)))
9416 (inputs
9417 `(("exiv2" ,exiv2)
9418 ("gtk" ,gtk+)
9419 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9420 ("gstreamer" ,gstreamer)
9421 ("clutter" ,clutter)
9422 ("clutter-gst" ,clutter-gst)
9423 ("clutter-gtk" ,clutter-gtk)
9424 ("libjpeg" ,libjpeg-turbo)
9425 ("libtiff" ,libtiff)
9426 ("libraw" ,libraw)))
9427 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9428 (synopsis "GNOME image viewer and browser")
9429 (description "GThumb is an image viewer, browser, organizer, editor and
9430 advanced image management tool")
9431 (license license:gpl2+)))
9432
9433 (define-public terminator
9434 (package
9435 (name "terminator")
9436 (version "1.91")
9437 (source (origin
9438 (method url-fetch)
9439 (uri (string-append "https://launchpad.net/" name "/"
9440 "gtk3/" version "/" "+download/"
9441 name "-" version ".tar.gz"))
9442 (sha256
9443 (base32
9444 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9445 (build-system python-build-system)
9446 (native-inputs
9447 `(("intltool" ,intltool)
9448 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9449 ("gettext" ,gettext-minimal)
9450 ("pkg-config" ,pkg-config)))
9451 (inputs
9452 `(("cairo" ,cairo)
9453 ("gobject-introspection" ,gobject-introspection)
9454 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9455 ("python2-pycairo" ,python2-pycairo)
9456 ("python2-pygobject" ,python2-pygobject)
9457 ("python2-psutil" ,python2-psutil)
9458 ("vte" ,vte)))
9459 (arguments
9460 `(#:python ,python-2 ; Python 3 isn't supported
9461 #:imported-modules ((guix build glib-or-gtk-build-system)
9462 ,@%python-build-system-modules)
9463 #:modules ((guix build python-build-system)
9464 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9465 (guix build utils))
9466 #:phases
9467 (modify-phases %standard-phases
9468 (add-after
9469 'install 'wrap-program
9470 (lambda* (#:key outputs #:allow-other-keys)
9471 (let ((prog (string-append (assoc-ref outputs "out")
9472 "/bin/terminator")))
9473 (wrap-program prog
9474 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9475 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9476 #t)))
9477 (add-after 'wrap-program 'glib-or-gtk-wrap
9478 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9479 (home-page "https://gnometerminator.blogspot.com/")
9480 (synopsis "Store and run multiple GNOME terminals in one window")
9481 (description
9482 "Terminator allows you to run multiple GNOME terminals in a grid and
9483 +tabs, and it supports drag and drop re-ordering of terminals.")
9484 (license license:gpl2)))
9485
9486 (define-public libhandy
9487 (package
9488 (name "libhandy")
9489 (version "0.0.12")
9490 (source
9491 (origin
9492 (method git-fetch)
9493 (uri (git-reference
9494 (url "https://source.puri.sm/Librem5/libhandy")
9495 (commit (string-append "v" version))))
9496 (file-name (git-file-name name version))
9497 (sha256
9498 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9499 (build-system meson-build-system)
9500 (arguments
9501 `(#:configure-flags
9502 '("-Dglade_catalog=disabled"
9503 "-Dgtk_doc=true")
9504 #:phases
9505 (modify-phases %standard-phases
9506 (add-before 'check 'pre-check
9507 (lambda _
9508 ;; Tests require a running X server.
9509 (system "Xvfb :1 &")
9510 (setenv "DISPLAY" ":1")
9511 #t)))))
9512 (inputs
9513 `(("gtk+" ,gtk+)))
9514 (native-inputs
9515 `(("glib:bin" ,glib "bin")
9516 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9517 ("vala" ,vala)
9518 ("gtk-doc" ,gtk-doc)
9519 ("pkg-config" ,pkg-config)
9520 ("gettext" ,gettext-minimal)
9521
9522 ;; Test suite dependencies.
9523 ("xorg-server" ,xorg-server-for-tests)
9524 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9525 (home-page "https://source.puri.sm/Librem5/libhandy")
9526 (synopsis "Library full of GTK+ widgets for mobile phones")
9527 (description "The aim of the handy library is to help with developing user
9528 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9529 for usage on small and big screens.")
9530 (license license:lgpl2.1+)))
9531
9532 (define-public libgit2-glib
9533 (package
9534 (name "libgit2-glib")
9535 (version "0.99.0.1")
9536 (source (origin
9537 (method url-fetch)
9538 (uri (string-append "mirror://gnome/sources/" name "/"
9539 (version-major+minor version) "/"
9540 name "-" version ".tar.xz"))
9541 (sha256
9542 (base32
9543 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
9544 (build-system meson-build-system)
9545 (native-inputs
9546 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9547 ("gobject-introspection" ,gobject-introspection)
9548 ("pkg-config" ,pkg-config)
9549 ("python-pygobject" ,python-pygobject)
9550 ("python-wrapper" ,python-wrapper)
9551 ("vala" ,vala)))
9552 (inputs
9553 `(("glib" ,glib)
9554 ("libssh2" ,libssh2)))
9555 (propagated-inputs
9556 `(;; In Requires of libgit2-glib.pc.
9557 ("libgit2" ,libgit2)))
9558 (synopsis "GLib wrapper around the libgit2 Git access library")
9559 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9560 access library. It only implements the core plumbing functions, not really the
9561 higher level porcelain stuff.")
9562 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9563 (license license:gpl2+)))
9564
9565 (define-public gitg
9566 (package
9567 (name "gitg")
9568 (version "3.32.1")
9569 (source (origin
9570 (method url-fetch)
9571 (uri (string-append "mirror://gnome/sources/" name "/"
9572 (version-major+minor version) "/"
9573 name "-" version ".tar.xz"))
9574 (sha256
9575 (base32
9576 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9577 (build-system meson-build-system)
9578 (arguments
9579 `(#:glib-or-gtk? #t
9580 #:phases
9581 (modify-phases %standard-phases
9582 (add-after 'unpack 'disable-post-install-partially
9583 (lambda _
9584 (substitute* "meson_post_install.py"
9585 (("'python'") ; there are no python sources to compile
9586 (string-append "'" (which "true") "'"))
9587 (("gtk-update-icon-cache") (which "true")))
9588 #t))
9589 (add-after 'unpack 'fix-test-sources
9590 (lambda _
9591 (substitute* "tests/libgitg/test-commit.vala"
9592 (("/bin/bash") (which "bash")))
9593 #t))
9594 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9595 (lambda* (#:key outputs #:allow-other-keys)
9596 (let ((prog (string-append (assoc-ref outputs "out")
9597 "/bin/gitg")))
9598 (wrap-program prog
9599 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9600 #t))))))
9601 (inputs
9602 `(("glib" ,glib)
9603 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9604 ("gtk+" ,gtk+)
9605 ("gtkspell3" ,gtkspell3)
9606 ("gtksourceview" ,gtksourceview-3)
9607 ("json-glib" ,json-glib)
9608 ("libdazzle" ,libdazzle)
9609 ("libgee" ,libgee)
9610 ("libgit2-glib" ,libgit2-glib)
9611 ("libpeas" ,libpeas)
9612 ("libsecret" ,libsecret)
9613 ("libsoup" ,libsoup)
9614 ("libxml2" ,libxml2)))
9615 (native-inputs
9616 `(("glib:bin" ,glib "bin")
9617 ("gtk+:bin" ,gtk+ "bin")
9618 ("gobject-introspection" ,gobject-introspection)
9619 ("intltool" ,intltool)
9620 ("pkg-config" ,pkg-config)
9621 ("vala" ,vala)))
9622 (synopsis "Graphical user interface for git")
9623 (description
9624 "gitg is a graphical user interface for git. It aims at being a small,
9625 fast and convenient tool to visualize the history of git repositories.
9626 Besides visualization, gitg also provides several utilities to manage your
9627 repository and commit your work.")
9628 (home-page "https://wiki.gnome.org/Apps/Gitg")
9629 (license license:gpl2+)))
9630
9631 (define-public gamin
9632 (package
9633 (name "gamin")
9634 (version "0.1.10")
9635 (source (origin
9636 (method url-fetch)
9637 (uri (string-append "mirror://gnome/sources/" name "/"
9638 (version-major+minor version) "/"
9639 name "-" version ".tar.bz2"))
9640 (sha256
9641 (base32
9642 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9643 (build-system gnu-build-system)
9644 (arguments
9645 `(#:phases
9646 (modify-phases %standard-phases
9647 (add-after 'unpack 'remove-deprecated-macro
9648 (lambda _
9649 (substitute* '("server/gam_node.c"
9650 "server/gam_subscription.h"
9651 "server/gam_node.h"
9652 "server/gam_subscription.c")
9653 (("G_CONST_RETURN") "const"))
9654 #t)))))
9655 (inputs
9656 `(("glib" ,glib)))
9657 (native-inputs
9658 `(("intltool" ,intltool)
9659 ("pkg-config" ,pkg-config)))
9660 (home-page "https://people.gnome.org/~veillard/gamin/")
9661 (synopsis "File alteration monitor")
9662 (description
9663 "Gamin is a file and directory monitoring system defined to be a subset
9664 of the FAM (File Alteration Monitor) system. This is a service provided by a
9665 library which detects when a file or a directory has been modified.")
9666 (license license:gpl2+)))
9667
9668 (define-public gnome-mahjongg
9669 (package
9670 (name "gnome-mahjongg")
9671 (version "3.35.1")
9672 (source (origin
9673 (method git-fetch)
9674 (uri (git-reference
9675 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9676 (commit version)))
9677 (file-name (git-file-name name version))
9678 (sha256
9679 (base32
9680 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9681 (build-system meson-build-system)
9682 (arguments
9683 `(#:glib-or-gtk? #t))
9684 (native-inputs
9685 `(("appstream-glib" ,appstream-glib)
9686 ("gettext" ,gettext-minimal)
9687 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9688 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9689 ("itstool" ,itstool)
9690 ("pkg-config" ,pkg-config)
9691 ("vala" ,vala)))
9692 (propagated-inputs
9693 `(("dconf" ,dconf)))
9694 (inputs
9695 `(("glib" ,glib)
9696 ("gtk+" ,gtk+)
9697 ("librsvg" ,librsvg)))
9698 (synopsis "Mahjongg tile-matching game")
9699 (description "GNOME Mahjongg is a game based on the classic Chinese
9700 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9701 and a high score table.")
9702 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9703 (license license:gpl2+)))
9704
9705 (define-public gnome-themes-extra
9706 (package
9707 (name "gnome-themes-extra")
9708 (version "3.28")
9709 (source
9710 (origin
9711 (method url-fetch)
9712 (uri (string-append "mirror://gnome/sources/" name "/"
9713 (version-major+minor version) "/" name "-"
9714 version ".tar.xz"))
9715 (sha256
9716 (base32
9717 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9718 (build-system gnu-build-system)
9719 (arguments
9720 '(#:configure-flags
9721 ;; Don't create 'icon-theme.cache'.
9722 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9723 (true (string-append coreutils "/bin/true")))
9724 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9725 (native-inputs
9726 `(("glib:bin" ,glib "bin")
9727 ("intltool" ,intltool)
9728 ("pkg-config" ,pkg-config)))
9729 (inputs
9730 `(("glib" ,glib)
9731 ("gtk+" ,gtk+)
9732 ("gtk+-2" ,gtk+-2)
9733 ("librsvg" ,librsvg)
9734 ("libxml2" ,libxml2)))
9735 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9736 (synopsis "GNOME Extra Themes")
9737 (description "This package provides themes and related elements that don't
9738 really fit in other upstream packages. It offers legacy support for GTK+ 2
9739 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9740 index files needed for Adwaita to be used outside of GNOME.")
9741 (license license:lgpl2.1+)))
9742
9743 (define-public polari
9744 (package
9745 (name "polari")
9746 (version "3.32.2")
9747 (source (origin
9748 (method url-fetch)
9749 (uri (string-append "mirror://gnome/sources/polari/"
9750 (version-major+minor version)
9751 "/polari-" version ".tar.xz"))
9752 (sha256
9753 (base32
9754 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9755 (build-system meson-build-system)
9756 (arguments
9757 `(#:glib-or-gtk? #t
9758 #:phases
9759 (modify-phases %standard-phases
9760 (add-after 'unpack 'skip-gtk-update-icon-cache
9761 (lambda _
9762 (substitute* "meson/meson-postinstall.sh"
9763 (("gtk-update-icon-cache") (which "true")))
9764 #t))
9765 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9766 (lambda* (#:key outputs #:allow-other-keys)
9767 (let ((prog (string-append (assoc-ref outputs "out")
9768 "/bin/polari")))
9769 (wrap-program prog
9770 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9771 #t))))))
9772 (inputs
9773 `(("glib" ,glib)
9774 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9775 ("gspell" ,gspell)
9776 ("gtk+" ,gtk+)
9777 ("gjs" ,gjs)
9778 ("libsecret" ,libsecret)
9779 ("libsoup" ,libsoup)
9780 ("telepathy-glib" ,telepathy-glib)
9781 ("telepathy-logger" ,telepathy-logger)))
9782 (native-inputs
9783 `(("glib:bin" ,glib "bin")
9784 ("gobject-introspection" ,gobject-introspection)
9785 ("intltool" ,intltool)
9786 ("pkg-config" ,pkg-config)
9787 ("yelp-tools" ,yelp-tools)))
9788 (propagated-inputs
9789 `(("telepathy-idle" ,telepathy-idle)
9790 ("telepathy-mission-control" ,telepathy-mission-control)))
9791 (synopsis "Simple IRC Client")
9792 (description
9793 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9794 integrate seamlessly with the GNOME desktop.")
9795 (home-page "https://wiki.gnome.org/Apps/Polari")
9796 (license license:gpl2+)))
9797
9798 (define-public gnome-boxes
9799 (package
9800 (name "gnome-boxes")
9801 (version "3.35.91")
9802 (source
9803 (origin
9804 (method url-fetch)
9805 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9806 (version-major+minor version) "/"
9807 "gnome-boxes-" version ".tar.xz"))
9808 (sha256
9809 (base32
9810 "0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
9811 (build-system meson-build-system)
9812 (arguments
9813 '(#:glib-or-gtk? #t
9814 #:configure-flags (list "-Drdp=false"
9815 (string-append "-Dc_link_args=-Wl,-rpath="
9816 (assoc-ref %outputs "out")
9817 "/lib/gnome-boxes"))))
9818 (native-inputs
9819 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
9820 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9821 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9822 ("itstool" ,itstool)
9823 ("intltool" ,intltool)
9824 ("vala" ,vala)
9825 ("pkg-config" ,pkg-config)))
9826 (inputs
9827 `(("libarchive" ,libarchive)
9828 ("gtk" ,gtk+)
9829 ("gtk-vnc" ,gtk-vnc)
9830 ("libosinfo" ,libosinfo)
9831 ("libsecret" ,libsecret)
9832 ("libsoup" ,libsoup)
9833 ("libusb" ,libusb)
9834 ("libvirt" ,libvirt)
9835 ("libvirt-glib" ,libvirt-glib)
9836 ("libxml" ,libxml2)
9837 ("spice-gtk" ,spice-gtk)
9838 ("sparql-query" ,sparql-query)
9839 ("vte" ,vte)
9840 ("webkitgtk" ,webkitgtk)
9841 ("tracker" ,tracker)
9842 ("libgudev" ,libgudev)))
9843 (home-page "https://wiki.gnome.org/Apps/Boxes")
9844 (synopsis "View, access, and manage remote and virtual systems")
9845 (description "GNOME Boxes is a simple application to view, access, and
9846 manage remote and virtual systems.")
9847 (license (list
9848 ;; For data/icons/empty-boxes.png.
9849 license:cc-by2.0
9850 ;; For all others.
9851 license:lgpl2.0+))))
9852
9853 (define-public geary
9854 (package
9855 (name "geary")
9856 (version "3.34.1")
9857 (source (origin
9858 (method git-fetch)
9859 (uri (git-reference
9860 (url "https://gitlab.gnome.org/GNOME/geary")
9861 (commit version)))
9862 (file-name (git-file-name name version))
9863 (sha256
9864 (base32
9865 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
9866 (build-system meson-build-system)
9867 (arguments
9868 `(#:glib-or-gtk? #t
9869 #:phases (modify-phases %standard-phases
9870 (add-after 'unpack 'disable-failing-tests
9871 (lambda _
9872 (substitute* "test/meson.build"
9873 (("test\\('client-tests', geary_test_client_bin\\)")
9874 ""))
9875 #t))
9876 (add-after 'unpack 'disable-postinstall-script
9877 (lambda _
9878 (substitute* "meson.build"
9879 (("meson.add_install_script\\(\
9880 join_paths\\('build-aux', 'post_install.py'\\)\\)")
9881 ""))
9882 #t))
9883 (add-before 'check 'setup-xvfb
9884 (lambda _
9885 (system "Xvfb :1 &")
9886 (setenv "DISPLAY" ":1")
9887 #t)))))
9888 (inputs
9889 `(("enchant" ,enchant)
9890 ("folks" ,folks)
9891 ("gcr" ,gcr)
9892 ("glib" ,glib)
9893 ("gmime" ,gmime-2.6)
9894 ("gnome-online-accounts:lib"
9895 ,gnome-online-accounts "lib")
9896 ("gspell" ,gspell)
9897 ("gtk+" ,gtk+)
9898 ("iso-codes" ,iso-codes)
9899 ("json-glib" ,json-glib)
9900 ("libcanberra" ,libcanberra)
9901 ("libgee" ,libgee)
9902 ("libhandy" ,libhandy)
9903 ("libpeas" ,libpeas)
9904 ("libsecret" ,libsecret)
9905 ("libunwind" ,libunwind)
9906 ("sqlite" ,sqlite)
9907 ("webkitgtk" ,webkitgtk)
9908 ("ytnef" ,ytnef)))
9909 (native-inputs
9910 `(("appstream-glib" ,appstream-glib)
9911 ("cmake-minimal" ,cmake-minimal)
9912 ("desktop-file-utils" ,desktop-file-utils)
9913 ("gettext" ,gettext-minimal)
9914 ("glib:bin" ,glib "bin")
9915 ("gobject-introspection" ,gobject-introspection)
9916 ("itstool" ,itstool)
9917 ("libarchive" ,libarchive)
9918 ("libxml2" ,libxml2)
9919 ("pkg-config" ,pkg-config)
9920 ("vala" ,vala)
9921 ("xvfb" ,xorg-server-for-tests)))
9922 (synopsis "GNOME email application built around conversations")
9923 (description
9924 "Geary collects related messages together into conversations,
9925 making it easy to find and follow your discussions. Full-text and keyword
9926 search makes it easy to find the email you are looking for. Geary's
9927 full-featured composer lets you send rich, styled text with images, links, and
9928 lists, but also send lightweight, easy to read text messages. Geary
9929 automatically picks up your existing GNOME Online Accounts, and adding more is
9930 easy. Geary has a clean, fast, modern interface that works like you want it
9931 to.")
9932 (home-page "https://wiki.gnome.org/Apps/Geary")
9933 (license (list
9934 ;; geary
9935 license:lgpl2.1+
9936 ;; icons
9937 license:cc-by3.0
9938 license:cc-by-sa3.0
9939 license:public-domain
9940 ;; snowball
9941 license:bsd-2))))
9942
9943 (define-public parlatype
9944 ;; This is one commit away from 2.0, because the latter introduced
9945 ;; a regression in ASR.
9946 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
9947 (revision "0"))
9948 (package
9949 (name "parlatype")
9950 (version (git-version "2.0" revision commit))
9951 (source
9952 (origin
9953 (method git-fetch)
9954 (uri (git-reference
9955 (url "https://github.com/gkarsay/parlatype.git")
9956 (commit commit)))
9957 (file-name (git-file-name name version))
9958 (sha256
9959 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
9960 (build-system meson-build-system)
9961 (arguments
9962 `(#:glib-or-gtk? #t
9963 #:tests? #f ;require internet access
9964 #:phases
9965 (modify-phases %standard-phases
9966 (add-after 'install 'wrap-parlatype
9967 ;; Add gstreamer plugin provided in this package to system's
9968 ;; plugins.
9969 (lambda* (#:key outputs #:allow-other-keys)
9970 (let* ((out (assoc-ref outputs "out"))
9971 (gst-plugin-path (string-append
9972 out "/lib/gstreamer-1.0/"
9973 ":"
9974 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
9975 (wrap-program (string-append out "/bin/parlatype")
9976 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
9977 #t)))))
9978 (native-inputs
9979 `(("appstream-glib" ,appstream-glib)
9980 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
9981 ("gettext" ,gettext-minimal)
9982 ("glib" ,glib "bin") ;for glib-compile-resources
9983 ("pkg-config" ,pkg-config)
9984 ("yelp-tools" ,yelp-tools)))
9985 (inputs
9986 `(("gst-plugins-base" ,gst-plugins-base)
9987 ("gst-plugins-good" ,gst-plugins-good)
9988 ("gstreamer" ,gstreamer)
9989 ("gtk+" ,gtk+)
9990 ("pocketsphinx" ,pocketsphinx)
9991 ("pulseaudio" ,pulseaudio)
9992 ("sphinxbase" ,sphinxbase)))
9993 (home-page "http://gkarsay.github.io/parlatype/")
9994 (synopsis "GNOME audio player for transcription")
9995 (description "Parlatype is an audio player for the GNOME desktop
9996 environment. Its main purpose is the manual transcription of spoken
9997 audio files.")
9998 (license license:gpl3+))))
9999
10000 (define-public jsonrpc-glib
10001 (package
10002 (name "jsonrpc-glib")
10003 (version "3.34.0")
10004 (source (origin
10005 (method url-fetch)
10006 (uri (string-append "mirror://gnome/sources/" name "/"
10007 (version-major+minor version) "/"
10008 name "-" version ".tar.xz"))
10009 (sha256
10010 (base32
10011 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10012 (build-system meson-build-system)
10013 (inputs
10014 `(("json-glib" ,json-glib)
10015 ("glib" ,glib)))
10016 (native-inputs
10017 `(("pkg-config" ,pkg-config)
10018 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10019 ("gobject-introspection" ,gobject-introspection)
10020 ("vala" ,vala)))
10021 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10022 (synopsis "JSON-RPC library for GLib")
10023 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10024 peers in either a synchronous or asynchronous fashion. It also allows
10025 communicating using the GVariant serialization format instead of JSON when
10026 both peers support it. You might want that when communicating on a single
10027 host to avoid parser overhead and memory-allocator fragmentation.")
10028 (license license:lgpl2.1+)))