gnu: util-linux: Move libraries to separate output.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;;
50 ;;; This file is part of GNU Guix.
51 ;;;
52 ;;; GNU Guix is free software; you can redistribute it and/or modify it
53 ;;; under the terms of the GNU General Public License as published by
54 ;;; the Free Software Foundation; either version 3 of the License, or (at
55 ;;; your option) any later version.
56 ;;;
57 ;;; GNU Guix is distributed in the hope that it will be useful, but
58 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
59 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
60 ;;; GNU General Public License for more details.
61 ;;;
62 ;;; You should have received a copy of the GNU General Public License
63 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
64
65 (define-module (gnu packages gnome)
66 #:use-module (gnu packages)
67 #:use-module (gnu packages admin)
68 #:use-module (gnu packages aspell)
69 #:use-module (gnu packages autotools)
70 #:use-module (gnu packages avahi)
71 #:use-module (gnu packages backup)
72 #:use-module (gnu packages base)
73 #:use-module (gnu packages bash)
74 #:use-module (gnu packages bison)
75 #:use-module (gnu packages boost)
76 #:use-module (gnu packages build-tools)
77 #:use-module (gnu packages calendar)
78 #:use-module (gnu packages cdrom)
79 #:use-module (gnu packages check)
80 #:use-module (gnu packages cmake)
81 #:use-module (gnu packages compression)
82 #:use-module (gnu packages crates-io)
83 #:use-module (gnu packages cups)
84 #:use-module (gnu packages curl)
85 #:use-module (gnu packages cyrus-sasl)
86 #:use-module (gnu packages databases)
87 #:use-module (gnu packages dbm)
88 #:use-module (gnu packages djvu)
89 #:use-module (gnu packages dns)
90 #:use-module (gnu packages docbook)
91 #:use-module (gnu packages documentation)
92 #:use-module (gnu packages enchant)
93 #:use-module (gnu packages flex)
94 #:use-module (gnu packages fonts)
95 #:use-module (gnu packages file-systems)
96 #:use-module (gnu packages fontutils)
97 #:use-module (gnu packages freedesktop)
98 #:use-module (gnu packages game-development)
99 #:use-module (gnu packages gettext)
100 #:use-module (gnu packages ghostscript)
101 #:use-module (gnu packages gl)
102 #:use-module (gnu packages glib)
103 #:use-module (gnu packages gnupg)
104 #:use-module (gnu packages gnuzilla)
105 #:use-module (gnu packages geo)
106 #:use-module (gnu packages gperf)
107 #:use-module (gnu packages graphviz)
108 #:use-module (gnu packages gstreamer)
109 #:use-module (gnu packages gtk)
110 #:use-module (gnu packages guile)
111 #:use-module (gnu packages ibus)
112 #:use-module (gnu packages icu4c)
113 #:use-module (gnu packages image)
114 #:use-module (gnu packages imagemagick)
115 #:use-module (gnu packages inkscape)
116 #:use-module (gnu packages iso-codes)
117 #:use-module (gnu packages kerberos)
118 #:use-module (gnu packages libcanberra)
119 #:use-module (gnu packages libunistring)
120 #:use-module (gnu packages libusb)
121 #:use-module (gnu packages linux)
122 #:use-module (gnu packages lirc)
123 #:use-module (gnu packages lua)
124 #:use-module (gnu packages mail)
125 #:use-module (gnu packages mp3)
126 #:use-module (gnu packages multiprecision)
127 #:use-module (gnu packages music)
128 #:use-module (gnu packages ncurses)
129 #:use-module (gnu packages nettle)
130 #:use-module (gnu packages networking)
131 #:use-module (gnu packages ninja)
132 #:use-module (gnu packages nss)
133 #:use-module (gnu packages openldap)
134 #:use-module (gnu packages password-utils)
135 #:use-module (gnu packages pcre)
136 #:use-module (gnu packages pdf)
137 #:use-module (gnu packages perl)
138 #:use-module (gnu packages photo)
139 #:use-module (gnu packages pkg-config)
140 #:use-module (gnu packages polkit)
141 #:use-module (gnu packages popt)
142 #:use-module (gnu packages pretty-print)
143 #:use-module (gnu packages pulseaudio)
144 #:use-module (gnu packages python)
145 #:use-module (gnu packages python-crypto)
146 #:use-module (gnu packages python-web)
147 #:use-module (gnu packages python-xyz)
148 #:use-module (gnu packages rdesktop)
149 #:use-module (gnu packages readline)
150 #:use-module (gnu packages ruby)
151 #:use-module (gnu packages rust)
152 #:use-module (gnu packages samba)
153 #:use-module (gnu packages scanner)
154 #:use-module (gnu packages selinux)
155 #:use-module (gnu packages slang)
156 #:use-module (gnu packages speech)
157 #:use-module (gnu packages spice)
158 #:use-module (gnu packages sqlite)
159 #:use-module (gnu packages ssh)
160 #:use-module (gnu packages tex)
161 #:use-module (gnu packages time)
162 #:use-module (gnu packages tls)
163 #:use-module (gnu packages version-control)
164 #:use-module (gnu packages video)
165 #:use-module (gnu packages virtualization)
166 #:use-module (gnu packages vpn)
167 #:use-module (gnu packages web)
168 #:use-module (gnu packages web)
169 #:use-module (gnu packages webkit)
170 #:use-module (gnu packages xdisorg)
171 #:use-module (gnu packages xiph)
172 #:use-module (gnu packages xml)
173 #:use-module (gnu packages xorg)
174 #:use-module (gnu packages xorg)
175 #:use-module (gnu artwork)
176 #:use-module (guix build-system cargo)
177 #:use-module (guix build-system cmake)
178 #:use-module (guix build-system glib-or-gtk)
179 #:use-module (guix build-system gnu)
180 #:use-module (guix build-system meson)
181 #:use-module (guix build-system python)
182 #:use-module (guix build-system trivial)
183 #:use-module (guix download)
184 #:use-module (guix git-download)
185 #:use-module ((guix licenses) #:prefix license:)
186 #:use-module (guix packages)
187 #:use-module (guix utils)
188 #:use-module (guix gexp)
189 #:use-module (guix monads)
190 #:use-module (guix store)
191 #:use-module (ice-9 match)
192 #:use-module (srfi srfi-1))
193
194 (define-public brasero
195 (package
196 (name "brasero")
197 (version "3.12.2")
198 (source (origin
199 (method url-fetch)
200 (uri (string-append "mirror://gnome/sources/brasero/"
201 (version-major+minor version) "/"
202 "brasero-" version ".tar.xz"))
203 (sha256
204 (base32
205 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
206 (build-system glib-or-gtk-build-system)
207 (arguments
208 `(#:configure-flags (list
209 (string-append "--with-girdir="
210 (assoc-ref %outputs "out")
211 "/share/gir-1.0")
212 (string-append "--with-typelibdir="
213 (assoc-ref %outputs "out")
214 "/lib/girepository-1.0"))
215 #:phases
216 (modify-phases %standard-phases
217 (add-before 'configure 'embed-growisofs
218 (lambda* (#:key inputs #:allow-other-keys)
219 (substitute* "plugins/growisofs/burn-growisofs.c"
220 (("\"growisofs") (string-append "\"" (which "growisofs"))))
221 #t)))))
222 (propagated-inputs
223 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
224 (native-inputs
225 `(("intltool" ,intltool)
226 ("itstool" ,itstool)
227 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
228 ("gobject-introspection" ,gobject-introspection)
229 ("pkg-config" ,pkg-config)))
230 (inputs
231 `(("dvd+rw-tools" ,dvd+rw-tools)
232 ("glib" ,glib)
233 ("gnome-doc-utils" ,gnome-doc-utils)
234 ("gstreamer" ,gstreamer)
235 ("gst-plugins-base" ,gst-plugins-base)
236 ("gtk+" ,gtk+)
237 ("libcanberra" ,libcanberra)
238 ("libice" ,libice)
239 ("libnotify" ,libnotify)
240 ("libsm" ,libsm)
241 ("libxml2" ,libxml2)
242 ("totem-pl-parser" ,totem-pl-parser)))
243 (home-page "https://wiki.gnome.org/Apps/Brasero")
244 (synopsis "CD/DVD burning tool for Gnome")
245 (description "Brasero is an application to burn CD/DVD for the Gnome
246 Desktop. It is designed to be as simple as possible and has some unique
247 features to enable users to create their discs easily and quickly.")
248 (license license:gpl2+)))
249
250 (define-public gnome-color-manager
251 (package
252 (name "gnome-color-manager")
253 (version "3.32.0")
254 (source (origin
255 (method url-fetch)
256 (uri (string-append "mirror://gnome/sources/" name "/"
257 (version-major+minor version) "/"
258 name "-" version ".tar.xz"))
259 (sha256
260 (base32
261 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
262 (build-system meson-build-system)
263 (arguments
264 `(#:glib-or-gtk? #t
265 #:phases
266 (modify-phases %standard-phases
267 (add-before
268 'check 'pre-check
269 (lambda _
270 ;; Tests require a running X server.
271 (system "Xvfb :1 &")
272 (setenv "DISPLAY" ":1")
273 #t)))))
274 (native-inputs
275 `(("desktop-file-utils" ,desktop-file-utils)
276 ("gettext" ,gettext-minimal)
277 ("glib:bin" ,glib "bin")
278 ("gtk+:bin" ,gtk+ "bin")
279 ("itstool" ,itstool)
280 ("pkg-config" ,pkg-config)
281 ("xorg-server" ,xorg-server-for-tests)))
282 (inputs
283 `(("adwaita-icon-theme" ,adwaita-icon-theme)
284 ("appstream-glib" ,appstream-glib)
285 ("colord-gtk" ,colord-gtk)
286 ("exiv2" ,exiv2)
287 ("gnome-desktop" ,gnome-desktop)
288 ("libcanberra" ,libcanberra)
289 ("libexif" ,libexif)
290 ("libtiff" ,libtiff)
291 ("libxrandr" ,libxrandr)
292 ("libxtst" ,libxtst)
293 ("libxxf86vm" ,libxxf86vm)
294 ("vte" ,vte)
295 ("xorgproto" ,xorgproto)))
296 (synopsis "Color profile manager for the GNOME desktop")
297 (description "GNOME Color Manager is a session framework that makes
298 it easy to manage, install and generate color profiles
299 in the GNOME desktop.")
300 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
301 (license license:gpl2+)))
302
303 (define-public gnome-online-miners
304 (package
305 (name "gnome-online-miners")
306 (version "3.30.0")
307 (source (origin
308 (method url-fetch)
309 (uri (string-append "mirror://gnome/sources/" name "/"
310 (version-major+minor version) "/"
311 name "-" version ".tar.xz"))
312 (sha256
313 (base32
314 "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"))))
315 (build-system glib-or-gtk-build-system)
316 (native-inputs
317 `(("gettext" ,gettext-minimal)
318 ("glib:bin" ,glib "bin")
319 ("gobject-introspection" ,gobject-introspection)
320 ("gtk+:bin" ,gtk+ "bin")
321 ("pkg-config" ,pkg-config)))
322 (inputs
323 `(("gnome-online-accounts" ,gnome-online-accounts)
324 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
325 ("grilo" ,grilo)
326 ("libgdata" ,libgdata)
327 ("libgfbgraph" ,gfbgraph)
328 ("libzapojit" ,libzapojit)
329 ("rest" ,rest)
330 ("tracker" ,tracker)))
331 (synopsis "Web Crawlers for GNOME")
332 (description "GNOME Online Miners provides a set of crawlers that
333 go through your online content and index them locally in Tracker.
334 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
335 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
336 (license license:gpl2+)))
337
338 (define-public gssdp
339 (package
340 (name "gssdp")
341 (version "1.2.2")
342 (source (origin
343 (method url-fetch)
344 (uri (string-append "mirror://gnome/sources/" name "/"
345 (version-major+minor version) "/"
346 name "-" version ".tar.xz"))
347 (sha256
348 (base32
349 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
350 (build-system meson-build-system)
351 (native-inputs
352 `(("gettext" ,gettext-minimal)
353 ("glib:bin" ,glib "bin")
354 ("gobject-introspection" ,gobject-introspection)
355 ("gtk-doc" ,gtk-doc)
356 ("pkg-config" ,pkg-config)
357 ("vala" ,vala)))
358 (inputs
359 `(("gtk+" ,gtk+)
360 ("libsoup" ,libsoup)))
361 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
362 Protocol} for GNOME")
363 (description "This package provides a library to handle resource discovery
364 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
365 a debugging tool, @command{gssdp-device-sniffer}.")
366 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
367 (license license:lgpl2.0+)))
368
369 (define-public gupnp
370 (package
371 (name "gupnp")
372 (version "1.2.2")
373 (source (origin
374 (method url-fetch)
375 (uri (string-append "mirror://gnome/sources/" name "/"
376 (version-major+minor version) "/"
377 name "-" version ".tar.xz"))
378 (sha256
379 (base32
380 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
381 (build-system meson-build-system)
382 (native-inputs
383 `(("gettext" ,gettext-minimal)
384 ("glib:bin" ,glib "bin")
385 ("gobject-introspection" ,gobject-introspection)
386 ("gtk-doc" ,gtk-doc)
387 ("pkg-config" ,pkg-config)
388 ("vala" ,vala)))
389 (inputs
390 `(("gssdp" ,gssdp)
391 ("gtk+" ,gtk+)
392 ("libsoup" ,libsoup)))
393 (synopsis "PnP API for GNOME")
394 (description "This package provides GUPnP, an object-oriented framework
395 for creating UPnP devices and control points, written in C using
396 @code{GObject} and @code{libsoup}.")
397 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
398 (license license:lgpl2.0+)))
399
400 (define-public gupnp-dlna
401 (package
402 (name "gupnp-dlna")
403 (version "0.10.5")
404 (source (origin
405 (method url-fetch)
406 (uri (string-append "mirror://gnome/sources/" name "/"
407 (version-major+minor version) "/"
408 name "-" version ".tar.xz"))
409 (sha256
410 (base32
411 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
412 (build-system gnu-build-system)
413 (native-inputs
414 `(("gettext" ,gettext-minimal)
415 ("glib:bin" ,glib "bin")
416 ("gobject-introspection" ,gobject-introspection)
417 ("gtk-doc" ,gtk-doc)
418 ("libxml" ,libxml2)
419 ("pkg-config" ,pkg-config)
420 ("vala" ,vala)))
421 (inputs
422 `(("gstreamer" ,gstreamer)
423 ("gupnp" ,gupnp)))
424 (propagated-inputs
425 `(("gst-plugins-base" ,gst-plugins-base)
426 ("gst-plugins-good" ,gst-plugins-good)))
427 (synopsis "GUPnP DLNA for GNOME")
428 (description "This package provides a small utility library to
429 support DLNA-related tasks such as media profile guessing, transcoding to a
430 given profile, etc. DLNA is a subset of UPnP A/V.")
431 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
432 (license license:lgpl2.0+)))
433
434 (define-public gupnp-av
435 (package
436 (name "gupnp-av")
437 (version "0.12.11")
438 (source (origin
439 (method url-fetch)
440 (uri (string-append "mirror://gnome/sources/" name "/"
441 (version-major+minor version) "/"
442 name "-" version ".tar.xz"))
443 (sha256
444 (base32
445 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
446 (build-system gnu-build-system)
447 (native-inputs
448 `(("gettext" ,gettext-minimal)
449 ("glib:bin" ,glib "bin")
450 ("gobject-introspection" ,gobject-introspection)
451 ("gtk-doc" ,gtk-doc)
452 ("libxml" ,libxml2)
453 ("pkg-config" ,pkg-config)))
454 (inputs
455 `(("gtk+" ,gtk+)
456 ("gupnp" ,gupnp)))
457 (synopsis "GUPnP A/V for GNOME")
458 (description "This package provides a small library for handling
459 and implementation of UPnP A/V profiles.")
460 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
461 (license license:lgpl2.0+)))
462
463 (define-public libmediaart
464 (package
465 (name "libmediaart")
466 (version "1.9.4")
467 (source (origin
468 (method url-fetch)
469 (uri (string-append "mirror://gnome/sources/" name "/"
470 (version-major+minor version) "/"
471 name "-" version ".tar.xz"))
472 (sha256
473 (base32
474 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
475 (build-system gnu-build-system)
476 (native-inputs
477 `(("glib:bin" ,glib "bin")
478 ("pkg-config" ,pkg-config)))
479 (inputs
480 `(("gdk-pixbuf" ,gdk-pixbuf)
481 ("gettext" ,gettext-minimal)
482 ("gobject-introspection" ,gobject-introspection)
483 ("gtk+:doc", gtk+ "doc")
484 ("vala" ,vala)))
485 (synopsis "Media art library for the GNOME desktop")
486 (description
487 "The libmediaart library is the foundation for media art caching,
488 extraction, and lookup for applications on the desktop.")
489 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
490 (license license:lgpl2.1+)))
491
492 (define-public gnome-initial-setup
493 (package
494 (name "gnome-initial-setup")
495 (version "3.32.1")
496 (source (origin
497 (method url-fetch)
498 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
499 (version-major+minor version)
500 "/gnome-initial-setup-" version ".tar.xz"))
501 (sha256
502 (base32
503 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
504 (build-system meson-build-system)
505 (arguments
506 '(#:configure-flags '(;; Enable camera support for user selfie.
507 "-Dcheese=auto"
508 "-Dsystemd=false")))
509 (native-inputs
510 `(("gettext" ,gettext-minimal)
511 ("glib:bin" ,glib "bin")
512 ("gobject-introspection" ,gobject-introspection)
513 ("gtk+:bin" ,gtk+ "bin")
514 ("pkg-config" ,pkg-config)))
515 (inputs
516 `(("accountsservice" ,accountsservice)
517 ;("adwaita-icon-theme" ,adwaita-icon-theme)
518 ("gdm" ,gdm)
519 ("geoclue" ,geoclue)
520 ("gnome-desktop" ,gnome-desktop)
521 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
522 ("gnome-online-accounts" ,gnome-online-accounts)
523 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
524 ("gstreamer" ,gstreamer)
525 ("ibus" ,ibus)
526 ("json-glib" ,json-glib)
527 ("krb5" ,mit-krb5)
528 ("libgweather" ,libgweather)
529 ("libsecret" ,libsecret)
530 ("network-manager" ,network-manager)
531 ("network-manager-applet" ,network-manager-applet)
532 ("packagekit" ,packagekit)
533 ("polkit" ,polkit)
534 ("pwquality" ,libpwquality)
535 ("rest" ,rest)
536 ("upower" ,upower)
537 ("webkitgtk" ,webkitgtk)))
538 (synopsis "Initial setup wizard for GNOME desktop")
539 (description "This package provides a set-up wizard when a
540 user logs into GNOME for the first time. It typically provides a
541 tour of all gnome components and allows the user to set them up.")
542 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
543 (license license:gpl2)))
544
545 (define-public gnome-user-share
546 (package
547 (name "gnome-user-share")
548 (version "3.33.1")
549 (source (origin
550 (method url-fetch)
551 (uri (string-append "mirror://gnome/sources/" name "/"
552 (version-major+minor version) "/"
553 name "-" version ".tar.xz"))
554 (sha256
555 (base32
556 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
557 (build-system meson-build-system)
558 (arguments
559 `(#:glib-or-gtk? #t
560 #:configure-flags
561 `("-Dsystemd=false"
562 ;; Enable nautilus extension for file sharing.
563 "-Dnautilus_extension=true")))
564 (native-inputs
565 `(("gettext" ,gettext-minimal)
566 ("glib:bin" ,glib "bin")
567 ("gobject-introspection" ,gobject-introspection)
568 ("gtk+:bin" ,gtk+ "bin")
569 ("pkg-config" ,pkg-config)
570 ("yelp-tools" ,yelp-tools)))
571 (inputs
572 `(("glib" ,glib)
573 ("gnome-bluetooth" ,gnome-bluetooth)
574 ("gtk+" ,gtk+)
575 ("libcanberra" ,libcanberra)
576 ("libnotify" ,libnotify)
577 ("nautilus" ,nautilus))) ; For nautilus extension.
578 (synopsis "File sharing for GNOME desktop")
579 (description "GNOME User Share is a small package that binds together
580 various free software projects to bring easy to use user-level file
581 sharing to the masses.")
582 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
583 (license license:gpl2+)))
584
585 (define-public gnome-menus
586 (package
587 (name "gnome-menus")
588 (version "3.32.0")
589 (source (origin
590 (method url-fetch)
591 (uri (string-append "mirror://gnome/sources/gnome-menus/"
592 (version-major+minor version) "/"
593 name "-" version ".tar.xz"))
594 (sha256
595 (base32
596 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
597 (build-system gnu-build-system)
598 (native-inputs
599 `(("gettext" ,gettext-minimal)
600 ("glib" ,glib)
601 ("pkg-config" ,pkg-config)))
602 (synopsis "Menu support for GNOME desktop")
603 (description "GNOME Menus contains the libgnome-menu library, the layout
604 configuration files for the GNOME menu, as well as a simple menu editor.")
605 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
606 (license license:lgpl2.0+)))
607
608 (define-public deja-dup
609 (package
610 (name "deja-dup")
611 (version "34.3")
612 (source (origin
613 (method url-fetch)
614 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
615 (sha256
616 (base32
617 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
618 (patches
619 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
620 (build-system glib-or-gtk-build-system)
621 (arguments
622 `(#:modules ((guix build gnu-build-system)
623 ((guix build cmake-build-system) #:prefix cmake:)
624 (guix build glib-or-gtk-build-system)
625 (guix build utils))
626 #:imported-modules (,@%glib-or-gtk-build-system-modules
627 (guix build cmake-build-system))
628 #:test-target "test"
629 #:configure-flags (list (string-append
630 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
631 (string-append
632 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
633 #:phases
634 (modify-phases %standard-phases
635 (add-after 'unpack 'patch-lockfile-deletion
636 (lambda rest
637 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
638 (("/bin/rm")
639 (which "rm")))))
640 (replace 'configure
641 (assoc-ref cmake:%standard-phases 'configure))
642 (delete 'check) ;; Fails due to issues with DBus
643 (add-after 'install 'wrap-deja-dup
644 (lambda* (#:key inputs outputs #:allow-other-keys)
645 (let ((python (assoc-ref inputs "python"))
646 (python-path (getenv "PYTHONPATH"))
647 (duplicity (assoc-ref inputs "duplicity"))
648 (out (assoc-ref outputs "out")))
649 (for-each
650 (lambda (program)
651 (wrap-program program
652 `("PATH" ":" prefix (,(string-append python "/bin")
653 ,(string-append duplicity "/bin"))))
654 (wrap-program program
655 `("PYTHONPATH" ":" prefix (,python-path))))
656
657 (find-files (string-append out "/bin")))
658 #t))))))
659 (inputs
660 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
661 ("gobject-introspection" ,gobject-introspection)
662 ("duplicity" ,duplicity)
663 ("python" ,python-2)
664 ("python-pygobject" ,python2-pygobject)
665 ("gtk+" ,gtk+)
666 ("libnotify" ,libnotify)
667 ("libpeas" ,libpeas)
668 ("libsecret" ,libsecret)
669 ("packagekit" ,packagekit)))
670 (native-inputs
671 `(("pkg-config" ,pkg-config)
672 ("vala" ,vala)
673 ("gettext" ,gettext-minimal)
674 ("itstool" ,itstool)
675 ("intltool" ,intltool)
676 ("cmake" ,cmake-minimal)))
677 (home-page "https://launchpad.net/deja-dup")
678 (synopsis "Simple backup tool, for regular encrypted backups")
679 (description
680 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
681 uses duplicity as the backend, which supports incremental backups and storage
682 either on a local, or remote machine via a number of methods.")
683 (license license:gpl3+)))
684
685 (define-public gnome-user-docs
686 (package
687 (name "gnome-user-docs")
688 (version "3.32.3")
689 (source
690 (origin
691 (method url-fetch)
692 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
693 (version-major+minor version)
694 "/gnome-user-docs-" version ".tar.xz"))
695 (sha256
696 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
697 (build-system gnu-build-system)
698 (native-inputs
699 `(("gettext" ,gettext-minimal)
700 ("itstool" ,itstool)
701 ("pkg-config" ,pkg-config)
702 ("xmllint" ,libxml2)))
703 (synopsis "User documentation for the GNOME desktop")
704 (description
705 "The GNOME User Documentation explains how to use the GNOME desktop and its
706 components. It covers usage and setup of the core GNOME programs by end-users
707 and system administrators.")
708 (home-page "https://live.gnome.org/DocumentationProject")
709 (license license:cc-by3.0)))
710
711 (define-public gnome-getting-started-docs
712 (package
713 (name "gnome-getting-started-docs")
714 (version "3.32.2")
715 (source
716 (origin
717 (method url-fetch)
718 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
719 (version-major+minor version)
720 "/gnome-getting-started-docs-" version ".tar.xz"))
721 (sha256
722 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
723 (build-system gnu-build-system)
724 (native-inputs
725 `(("gettext" ,gettext-minimal)
726 ("itstool" ,itstool)
727 ("pkg-config" ,pkg-config)
728 ("xmllint" ,libxml2)))
729 (synopsis "Help to get new users started with the GNOME desktop")
730 (description
731 "The GNOME Getting Started Documentation contains GNOME's intuitive
732 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
733
734 It is normally used together with @command{gnome-initial-setup}, but is also
735 useful as a tutorial and users' guide for new or less experienced users.")
736 (home-page "https://live.gnome.org/DocumentationProject")
737 (license license:cc-by-sa3.0)))
738
739 (define-public dia
740 ;; This version from GNOME's repository includes fixes for compiling with
741 ;; recent versions of the build tools. The latest activity on the
742 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
743 ;; fixes in 2016.
744 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
745 (package
746 (name "dia")
747 (version (git-version "0.97.3" "1" commit))
748 (source (origin
749 (method git-fetch)
750 (uri (git-reference
751 (url "https://gitlab.gnome.org/GNOME/dia.git/")
752 (commit commit)))
753 (file-name (git-file-name name version))
754 (sha256
755 (base32
756 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
757 (build-system gnu-build-system)
758 (inputs
759 `(("freetype" ,freetype)
760 ("gdk-pixbuf" ,gdk-pixbuf)
761 ("gtk+" ,gtk+-2)
762 ("libart-lgpl" ,libart-lgpl)
763 ("libxml2" ,libxml2)
764 ("pango" ,pango)))
765 (native-inputs
766 `(("autoconf" ,autoconf)
767 ("automake" ,automake)
768 ("intltool" ,intltool)
769 ("glib" ,glib "bin")
770 ("libtool" ,libtool)
771 ("perl" ,perl)
772 ("pkg-config" ,pkg-config)
773 ("python-wrapper" ,python-wrapper)))
774 (arguments
775 `(#:phases
776 (modify-phases %standard-phases
777 (add-before 'bootstrap 'dont-configure-during-bootstrap
778 (lambda _
779 (setenv "NOCONFIGURE" "true")
780 #t)))))
781 (home-page "https://wiki.gnome.org/Apps/Dia")
782 (synopsis "Diagram creation for GNOME")
783 (description "Dia can be used to draw different types of diagrams, and
784 includes support for UML static structure diagrams (class diagrams), entity
785 relationship modeling, and network diagrams. The program supports various file
786 formats like PNG, SVG, PDF and EPS.")
787 (license license:gpl2+))))
788
789 ;; This is the unstable release, but it is required for the current stable
790 ;; release of gvfs (1.38.1).
791 (define-public libgdata
792 (package
793 (name "libgdata")
794 (version "0.17.9")
795 (source (origin
796 (method url-fetch)
797 (uri (string-append "mirror://gnome/sources/" name "/"
798 (version-major+minor version) "/"
799 name "-" version ".tar.xz"))
800 (sha256
801 (base32
802 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
803 (build-system gnu-build-system)
804 (arguments
805 '(#:phases
806 (modify-phases %standard-phases
807 (add-before 'check 'disable-failing-tests
808 (lambda _
809 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
810 ;; They have been removed in libgdata 0.17.6, so just do the same.
811 (substitute* "gdata/tests/Makefile"
812 (("picasaweb\\$\\(EXEEXT\\) ") ""))
813 #t)))))
814 (native-inputs
815 `(("glib:bin" ,glib "bin")
816 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
817 ("intltool" ,intltool)
818 ("pkg-config" ,pkg-config)
819 ("uhttpmock" ,uhttpmock)))
820 (inputs
821 `(("cyrus-sasl" ,cyrus-sasl)
822 ("glib-networking" ,glib-networking)))
823 (propagated-inputs
824 `(("gcr" ,gcr)
825 ("glib" ,glib)
826 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
827 ("json-glib" ,json-glib)
828 ("liboauth" ,liboauth)
829 ("libsoup" ,libsoup)
830 ("libxml2" ,libxml2)))
831 (home-page "https://wiki.gnome.org/Projects/libgdata")
832 (synopsis "Library for accessing online service APIs")
833 (description
834 "libgdata is a GLib-based library for accessing online service APIs using
835 the GData protocol — most notably, Google's services. It provides APIs to
836 access the common Google services, and has full asynchronous support.")
837 (license license:lgpl2.1+)))
838
839 (define-public libgxps
840 (package
841 (name "libgxps")
842 (version "0.3.1")
843 (source (origin
844 (method url-fetch)
845 (uri (string-append "mirror://gnome/sources/" name "/"
846 (version-major+minor version) "/"
847 name "-" version ".tar.xz"))
848 (sha256
849 (base32
850 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
851 (build-system meson-build-system)
852 (native-inputs
853 `(("gobject-introspection" ,gobject-introspection)
854 ("pkg-config" ,pkg-config)))
855 (inputs
856 `(("gtk+" ,gtk+)
857 ("libjpeg" ,libjpeg-turbo)
858 ("lcms" ,lcms)
859 ("libtiff" ,libtiff)))
860 (propagated-inputs
861 ;; In Requires of libgxps.pc.
862 `(("cairo" ,cairo)
863 ("glib" ,glib)
864 ("libarchive" ,libarchive)))
865 (home-page "https://wiki.gnome.org/Projects/libgxps")
866 (synopsis "GObject-based library for handling and rendering XPS documents")
867 (description
868 "libgxps is a GObject-based library for handling and rendering XPS
869 documents. This package also contains binaries that can convert XPS documents
870 to other formats.")
871 (license license:lgpl2.1+)))
872
873 (define-public gnome-characters
874 (package
875 (name "gnome-characters")
876 (version "3.30.0")
877 (source
878 (origin
879 (method url-fetch)
880 (uri (string-append "mirror://gnome/sources/"
881 "gnome-characters/" (version-major+minor version)
882 "/gnome-characters-" version ".tar.xz"))
883 (sha256
884 (base32
885 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
886 (build-system meson-build-system)
887 (arguments
888 `(#:glib-or-gtk? #t
889 #:phases (modify-phases %standard-phases
890 (add-after 'install 'wrap
891 (lambda* (#:key outputs #:allow-other-keys)
892 ;; GNOME Characters needs Typelib files from GTK and
893 ;; gnome-desktop.
894 (wrap-program (string-append (assoc-ref outputs "out")
895 "/bin/gnome-characters")
896 `("GI_TYPELIB_PATH" ":" prefix
897 (,(getenv "GI_TYPELIB_PATH"))))
898 #t)))))
899 (native-inputs
900 `(("gettext" ,gettext-minimal)
901 ("glib:bin" ,glib "bin")
902 ("gtk+:bin" ,gtk+ "bin")
903 ("pkg-config" ,pkg-config)
904 ("python" ,python-minimal)))
905 (inputs
906 `(("gjs" ,gjs)
907 ("gtk+" ,gtk+)
908 ("libunistring" ,libunistring)
909 ("gnome-desktop" ,gnome-desktop)))
910 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
911 (synopsis "Find and insert unusual characters")
912 (description "Characters is a simple utility application to find
913 and insert unusual characters. It allows you to quickly find the
914 character you are looking for by searching for keywords.")
915 (license license:bsd-3)))
916
917 (define-public gnome-common
918 (package
919 (name "gnome-common")
920 (version "3.18.0")
921 (source
922 (origin
923 (method url-fetch)
924 (uri (string-append "mirror://gnome/sources/" name "/"
925 (version-major+minor version) "/"
926 name "-" version ".tar.xz"))
927 (sha256
928 (base32
929 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
930 (build-system gnu-build-system)
931 (home-page "https://www.gnome.org/")
932 (synopsis "Bootstrap GNOME modules built from Git")
933 (description "gnome-common contains various files needed to bootstrap
934 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
935 can be used to configure a source directory checked out from Git and some
936 commonly used macros.")
937 (license license:gpl2+)))
938
939 (define-public gnome-contacts
940 (package
941 (name "gnome-contacts")
942 (version "3.32.1")
943 (source (origin
944 (method url-fetch)
945 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
946 (version-major+minor version) "/"
947 name "-" version ".tar.xz"))
948 (sha256
949 (base32
950 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
951 (build-system meson-build-system)
952 (arguments
953 `(#:phases
954 (modify-phases %standard-phases
955 (add-after 'unpack 'generate-vapis
956 (lambda* (#:key inputs #:allow-other-keys)
957 ;; To generate goa's missing .vapi file
958 (define goa
959 (assoc-ref inputs "gnome-online-accounts:lib"))
960
961 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
962 "--library=goa-1.0"
963 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
964 #t)))))
965 (native-inputs
966 `(("glib:bin" ,glib "bin")
967 ("gtk+:bin" ,gtk+ "bin")
968 ("pkg-config" ,pkg-config)))
969 (inputs
970 `(("cheese" ,cheese)
971 ("docbook-xml" ,docbook-xml)
972 ("dockbook-xsl" ,docbook-xsl)
973 ("evolution-data-server" ,evolution-data-server)
974 ("gettext" ,gettext-minimal)
975 ("gnome-desktop" ,gnome-desktop)
976 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
977 ("gobject-introspection" ,gobject-introspection)
978 ("gst-plugins-base" ,gst-plugins-base)
979 ("gtk+" ,gtk+)
980 ("libgee" ,libgee)
981 ("libxslt" ,libxslt)
982 ("telepathy-glib" ,telepathy-glib)
983 ("vala" ,vala)))
984 (propagated-inputs
985 `(("folks", folks)
986 ("telepathy-mission-control" ,telepathy-mission-control)))
987 (synopsis "GNOME's integrated address book")
988 (description
989 "GNOME Contacts organizes your contact information from online and
990 offline sources, providing a centralized place for managing your contacts.")
991 (home-page "https://wiki.gnome.org/Apps/Contacts")
992 (license license:gpl2+)))
993
994 (define-public gnome-desktop
995 (package
996 (name "gnome-desktop")
997 (version "3.32.2")
998 (source
999 (origin
1000 (method url-fetch)
1001 (uri (string-append "mirror://gnome/sources/" name "/"
1002 (version-major+minor version) "/"
1003 name "-" version ".tar.xz"))
1004 (sha256
1005 (base32
1006 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
1007 (build-system meson-build-system)
1008 (arguments
1009 '(#:phases
1010 (modify-phases %standard-phases
1011 (add-before 'configure 'patch-path
1012 (lambda* (#:key inputs #:allow-other-keys)
1013 (let ((libc (assoc-ref inputs "libc")))
1014 (substitute* "libgnome-desktop/gnome-languages.c"
1015 (("\"locale\"")
1016 (string-append "\"" libc "/bin/locale\"")))
1017 #t)))
1018 (add-before 'check 'pre-check
1019 (lambda* (#:key inputs #:allow-other-keys)
1020 ;; Tests require a running X server and locales.
1021 (system "Xvfb :1 &")
1022 (setenv "DISPLAY" ":1")
1023 (setenv "GUIX_LOCPATH"
1024 (string-append (assoc-ref inputs "glibc-locales")
1025 "/lib/locale"))
1026 #t)))))
1027 (native-inputs
1028 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1029 ("glibc-locales" ,glibc-locales) ; for tests
1030 ("gobject-introspection" ,gobject-introspection)
1031 ("itstool" ,itstool)
1032 ("intltool" ,intltool)
1033 ("pkg-config" ,pkg-config)
1034 ("xmllint" ,libxml2)
1035 ("xorg-server" ,xorg-server-for-tests)))
1036 (propagated-inputs
1037 ;; Required by gnome-desktop-3.0.pc.
1038 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1039 ("gtk+" ,gtk+)
1040 ("iso-codes" ,iso-codes)
1041 ("libseccomp" ,libseccomp)
1042 ("libx11" ,libx11)
1043 ("xkeyboard-config" ,xkeyboard-config)))
1044 (inputs
1045 `(("gdk-pixbuf" ,gdk-pixbuf)
1046 ("glib" ,glib)
1047 ("libxext" ,libxext)
1048 ("libxkbfile" ,libxkbfile)
1049 ("libxrandr" ,libxrandr)))
1050 (home-page "https://www.gnome.org/")
1051 (synopsis
1052 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1053 (description
1054 "The libgnome-desktop library provides API shared by several applications
1055 on the desktop, but that cannot live in the platform for various reasons.
1056 There is no API or ABI guarantee, although we are doing our best to provide
1057 stability. Documentation for the API is available with gtk-doc.
1058
1059 The gnome-about program helps find which version of GNOME is installed.")
1060 ; Some bits under the LGPL.
1061 (license license:gpl2+)))
1062
1063 (define-public gnome-doc-utils
1064 (package
1065 (name "gnome-doc-utils")
1066 (version "0.20.10")
1067 (source
1068 (origin
1069 (method url-fetch)
1070 (uri (string-append "mirror://gnome/sources/" name "/"
1071 (version-major+minor version) "/"
1072 name "-" version ".tar.xz"))
1073 (sha256
1074 (base32
1075 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1076 (build-system gnu-build-system)
1077 (native-inputs
1078 `(("intltool" ,intltool)
1079 ("docbook-xml" ,docbook-xml-4.4)
1080 ("python2-libxml2" ,python2-libxml2)
1081 ("libxml2" ,libxml2)
1082 ("libxslt" ,libxslt)
1083 ("pkg-config" ,pkg-config)
1084 ("python-2" ,python-2)))
1085 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1086 (synopsis
1087 "Documentation utilities for the Gnome project")
1088 (description
1089 "Gnome-doc-utils is a collection of documentation utilities for the
1090 Gnome project. It includes xml2po tool which makes it easier to translate
1091 and keep up to date translations of documentation.")
1092 (license license:gpl2+))) ; xslt under lgpl
1093
1094 (define-public gnome-disk-utility
1095 (package
1096 (name "gnome-disk-utility")
1097 (version "3.32.1")
1098 (source (origin
1099 (method url-fetch)
1100 (uri (string-append "mirror://gnome/sources/" name "/"
1101 (version-major+minor version) "/"
1102 name "-" version ".tar.xz"))
1103 (sha256
1104 (base32
1105 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
1106 (build-system meson-build-system)
1107 (arguments
1108 '(#:phases
1109 (modify-phases %standard-phases
1110 (add-after 'unpack 'skip-gtk-update-icon-cache
1111 ;; Don't create 'icon-theme.cache'.
1112 (lambda _
1113 (substitute* "meson_post_install.py"
1114 (("gtk-update-icon-cache") "true"))
1115 #t)))))
1116 (native-inputs
1117 `(("glib:bin" ,glib "bin")
1118 ("intltool" ,intltool)
1119 ("pkg-config" ,pkg-config)
1120 ("docbook-xml" ,docbook-xml)
1121 ("docbook-xsl" ,docbook-xsl)
1122 ("libxml2" ,libxml2)
1123 ("libxslt" ,libxslt)))
1124 (inputs
1125 `(("glib" ,glib)
1126 ("appstream-glib" ,appstream-glib)
1127 ("gnome-settings-daemon" ,gnome-settings-daemon)
1128 ("gtk+" ,gtk+)
1129 ("libcanberra" ,libcanberra)
1130 ("libdvdread" ,libdvdread)
1131 ("libnotify" ,libnotify)
1132 ("libpwquality" ,libpwquality)
1133 ("libsecret" ,libsecret)
1134 ("udisks" ,udisks)))
1135 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1136 (synopsis "Disk management utility for GNOME")
1137 (description "Disk management utility for GNOME.")
1138 (license license:gpl2+)))
1139
1140 (define-public gnome-font-viewer
1141 (package
1142 (name "gnome-font-viewer")
1143 (version "3.30.0")
1144 (source (origin
1145 (method url-fetch)
1146 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1147 (version-major+minor version)
1148 "/gnome-font-viewer-" version ".tar.xz"))
1149 (sha256
1150 (base32
1151 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1152 (build-system meson-build-system)
1153 (arguments
1154 '(#:phases
1155 (modify-phases %standard-phases
1156 (add-after 'unpack 'patch-post-install-script
1157 (lambda _
1158 (substitute* "meson-postinstall.sh"
1159 (("update-desktop-database") (which "true")))
1160 #t)))))
1161 (native-inputs
1162 `(("gettext" ,gettext-minimal)
1163 ("glib:bin" ,glib "bin")
1164 ("pkg-config" ,pkg-config)))
1165 (inputs
1166 `(("glib" ,glib)
1167 ("gnome-desktop" ,gnome-desktop)
1168 ("gtk+" ,gtk+)))
1169 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1170 (synopsis "GNOME Fonts")
1171 (description "Application to show you the fonts installed on your computer
1172 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1173 the font would look under various sizes.")
1174 (license license:gpl2+)))
1175
1176 (define-public gcr
1177 (package
1178 (name "gcr")
1179 (version "3.28.1")
1180 (source (origin
1181 (method url-fetch)
1182 (uri (string-append "mirror://gnome/sources/" name "/"
1183 (version-major+minor version) "/"
1184 name "-" version ".tar.xz"))
1185 (sha256
1186 (base32
1187 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
1188 (patches
1189 (list
1190 ;; This patch solves an ordering issue that showed up when
1191 ;; running the test suite against newer Glib 2.60. See
1192 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
1193 (origin
1194 (method url-fetch)
1195 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
1196 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
1197 (file-name "gcr-hashtable-ordering.patch")
1198 (sha256
1199 (base32
1200 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
1201 (build-system gnu-build-system)
1202 (arguments
1203 '(#:phases
1204 (modify-phases %standard-phases
1205 ;; These fail because /var/lib/dbus/machine-id is not present in the
1206 ;; build environment.
1207 (add-after 'unpack 'disable-failing-tests
1208 (lambda _
1209 (substitute* "gcr/test-system-prompt.c"
1210 (("g_test_add") "//")
1211 (("return.*") "return 0;"))
1212 #t))
1213 (add-before 'check 'pre-check
1214 (lambda _
1215 ;; Some tests expect to write to $HOME.
1216 (setenv "HOME" "/tmp")
1217 #t)))))
1218 (inputs
1219 `(("dbus" ,dbus)
1220 ("gnupg" ,gnupg) ;called as a child process during tests
1221 ("libgcrypt" ,libgcrypt)))
1222 (native-inputs
1223 `(("python" ,python-2) ;for tests
1224 ("pkg-config" ,pkg-config)
1225 ("glib" ,glib "bin")
1226 ("gobject-introspection" ,gobject-introspection)
1227 ("intltool" ,intltool)
1228 ("libxml2" ,libxml2)
1229 ("vala" ,vala)
1230 ("xsltproc" ,libxslt)))
1231 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1232 (propagated-inputs
1233 `(("p11-kit" ,p11-kit)
1234 ("glib" ,glib)
1235 ("gtk+" ,gtk+)))
1236 (home-page "https://www.gnome.org")
1237 (synopsis "Libraries for displaying certificates and accessing key stores")
1238 (description
1239 "The GCR package contains libraries used for displaying certificates and
1240 accessing key stores. It also provides the viewer for crypto files on the
1241 GNOME Desktop.")
1242 (license license:lgpl2.1+)))
1243
1244 (define-public libgnome-keyring
1245 (package
1246 (name "libgnome-keyring")
1247 (version "3.12.0")
1248 (source (origin
1249 (method url-fetch)
1250 (uri (string-append "mirror://gnome/sources/" name "/"
1251 (version-major+minor version) "/"
1252 name "-" version ".tar.xz"))
1253 (sha256
1254 (base32
1255 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1256 (build-system gnu-build-system)
1257 (inputs
1258 `(("libgcrypt" ,libgcrypt)
1259 ("dbus" ,dbus)))
1260 (native-inputs
1261 `(("pkg-config" ,pkg-config)
1262 ("glib" ,glib "bin")
1263 ("intltool" ,intltool)))
1264 (propagated-inputs
1265 ;; Referred to in .h files and .pc.
1266 `(("glib" ,glib)))
1267 (home-page "https://www.gnome.org")
1268 (synopsis "Accessing passwords from the GNOME keyring")
1269 (description
1270 "Client library to access passwords from the GNOME keyring.")
1271
1272 ;; Though a couple of files are LGPLv2.1+.
1273 (license license:lgpl2.0+)))
1274
1275 (define-public gnome-keyring
1276 (package
1277 (name "gnome-keyring")
1278 (version "3.28.2")
1279 (source (origin
1280 (method url-fetch)
1281 (uri (string-append "mirror://gnome/sources/" name "/"
1282 (version-major+minor version) "/"
1283 name "-" version ".tar.xz"))
1284 (sha256
1285 (base32
1286 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
1287 (build-system gnu-build-system)
1288 (arguments
1289 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1290 ;not exist
1291 #:configure-flags
1292 (list
1293 (string-append "--with-pkcs11-config="
1294 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1295 (string-append "--with-pkcs11-modules="
1296 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1297 #:phases
1298 (modify-phases %standard-phases
1299 (add-after 'unpack 'fix-/bin/sh-reference
1300 (lambda _
1301 (substitute* "po/Makefile.in.in"
1302 (("/bin/sh") (which "sh")))
1303 #t))
1304 (add-after 'unpack 'fix-docbook
1305 (lambda* (#:key inputs #:allow-other-keys)
1306 (substitute* "docs/Makefile.am"
1307 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1308 (string-append (assoc-ref inputs "docbook-xsl")
1309 "/xml/xsl/docbook-xsl-"
1310 ,(package-version docbook-xsl)
1311 "/manpages/docbook.xsl")))
1312 (setenv "XML_CATALOG_FILES"
1313 (string-append (assoc-ref inputs "docbook-xml")
1314 "/xml/dtd/docbook/catalog.xml"))
1315 ;; Rerun the whole thing to avoid version mismatch ("This is
1316 ;; Automake 1.15.1, but the definition used by this
1317 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1318 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1319 (invoke "autoconf")
1320 (invoke "aclocal")
1321 (invoke "automake" "-ac"))))))
1322 (inputs
1323 `(("libgcrypt" ,libgcrypt)
1324 ("linux-pam" ,linux-pam)
1325 ("openssh" ,openssh)
1326 ("dbus" ,dbus)
1327 ("gcr" ,gcr)))
1328 (native-inputs
1329 `(("pkg-config" ,pkg-config)
1330 ("glib" ,glib "bin")
1331 ("glib" ,glib) ; for m4 macros
1332 ("python" ,python-2) ;for tests
1333 ("intltool" ,intltool)
1334 ("autoconf" ,autoconf)
1335 ("automake" ,automake)
1336 ("libxslt" ,libxslt) ;for documentation
1337 ("docbook-xml" ,docbook-xml-4.2)
1338 ("docbook-xsl" ,docbook-xsl)))
1339 (home-page "https://www.gnome.org")
1340 (synopsis "Daemon to store passwords and encryption keys")
1341 (description
1342 "gnome-keyring is a program that keeps passwords and other secrets for
1343 users. It is run as a daemon in the session, similar to ssh-agent, and other
1344 applications locate it via an environment variable or D-Bus.
1345
1346 The program can manage several keyrings, each with its own master password,
1347 and there is also a session keyring which is never stored to disk, but
1348 forgotten when the session ends.")
1349 (license license:lgpl2.1+)))
1350
1351 (define-public evince
1352 (package
1353 (name "evince")
1354 (version "3.34.2")
1355 (source (origin
1356 (method url-fetch)
1357 (uri (string-append "mirror://gnome/sources/evince/"
1358 (version-major+minor version) "/"
1359 "evince-" version ".tar.xz"))
1360 (sha256
1361 (base32
1362 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
1363 (build-system glib-or-gtk-build-system)
1364 (arguments
1365 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1366 #:phases
1367 (modify-phases %standard-phases
1368 (add-before 'install 'skip-gtk-update-icon-cache
1369 ;; Don't create 'icon-theme.cache'.
1370 (lambda _
1371 (substitute* "data/Makefile"
1372 (("gtk-update-icon-cache") "true"))
1373 #t)))))
1374 (inputs
1375 `(("libarchive" ,libarchive)
1376 ("libgxps" ,libgxps)
1377 ("libspectre" ,libspectre)
1378 ("djvulibre" ,djvulibre)
1379 ("ghostscript" ,ghostscript)
1380 ("poppler" ,poppler)
1381 ("libtiff" ,libtiff)
1382 ;; TODO:
1383 ;; Build libkpathsea as a shared library for DVI support.
1384 ;; ("libkpathsea" ,texlive-bin)
1385 ("gnome-desktop" ,gnome-desktop)
1386 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1387 ("gspell" ,gspell)
1388 ("libgnome-keyring" ,libgnome-keyring)
1389 ("adwaita-icon-theme" ,adwaita-icon-theme)
1390 ("gdk-pixbuf" ,gdk-pixbuf)
1391 ("atk" ,atk)
1392 ("pango" ,pango)
1393 ("gtk+" ,gtk+)
1394 ("glib" ,glib)
1395 ("libxml2" ,libxml2)
1396 ("libsm" ,libsm)
1397 ("libice" ,libice)
1398 ("shared-mime-info" ,shared-mime-info)
1399 ("dconf" ,dconf)
1400 ("libcanberra" ,libcanberra)
1401 ("libsecret" ,libsecret)
1402
1403 ;; For tests.
1404 ("dogtail" ,python2-dogtail)))
1405 (native-inputs
1406 `(("itstool" ,itstool)
1407 ("intltool" ,intltool)
1408 ("glib" ,glib "bin")
1409 ("gobject-introspection" ,gobject-introspection)
1410 ("pkg-config" ,pkg-config)
1411 ("xmllint" ,libxml2)))
1412 (home-page
1413 "https://www.gnome.org/projects/evince/")
1414 (synopsis "GNOME's document viewer")
1415 (description
1416 "Evince is a document viewer for multiple document formats. It
1417 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1418 of Evince is to replace the multiple document viewers that exist
1419 on the GNOME Desktop with a single simple application.")
1420 (license license:gpl2+)))
1421
1422 (define-public gsettings-desktop-schemas
1423 (package
1424 (name "gsettings-desktop-schemas")
1425 (version "3.32.0")
1426 (source
1427 (origin
1428 (method url-fetch)
1429 (uri (string-append "mirror://gnome/sources/" name "/"
1430 (version-major+minor version) "/"
1431 name "-" version ".tar.xz"))
1432 (sha256
1433 (base32
1434 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1435 (build-system meson-build-system)
1436 (arguments
1437 '(#:phases (modify-phases %standard-phases
1438 (add-after 'unpack 'set-adwaita-theme-file-name
1439 (lambda* (#:key inputs #:allow-other-keys)
1440 ;; Provide the correct file name of the default GNOME
1441 ;; background, 'adwaita-timed.xml'.
1442 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1443 (substitute* (find-files "schemas"
1444 "\\.gschema\\.xml\\.in$")
1445 (("@datadir@/backgrounds/gnome")
1446 (string-append theme "/share/backgrounds/gnome")))
1447 #t))))))
1448 (inputs
1449 `(("glib" ,glib)
1450 ("gnome-backgrounds" ,gnome-backgrounds)))
1451 (native-inputs
1452 `(("intltool" ,intltool)
1453 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1454 ("gobject-introspection" ,gobject-introspection)
1455 ("pkg-config" ,pkg-config)))
1456 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1457 (synopsis
1458 "GNOME settings for various desktop components")
1459 (description
1460 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1461 for settings shared by various components of the GNOME desktop.")
1462 (license license:lgpl2.1+)))
1463
1464 (define-public icon-naming-utils
1465 (package
1466 (name "icon-naming-utils")
1467 (version "0.8.90")
1468 (source
1469 (origin
1470 (method url-fetch)
1471 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1472 version ".tar.bz2"))
1473 (sha256
1474 (base32
1475 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1476 (build-system gnu-build-system)
1477 (inputs
1478 `(("perl" ,perl)
1479 ("perl-xml-simple" ,perl-xml-simple)))
1480 (arguments
1481 '(#:phases
1482 (modify-phases %standard-phases
1483 (add-after 'install 'set-load-paths
1484 ;; Tell 'icon-name-mapping' where XML::Simple is.
1485 (lambda* (#:key outputs #:allow-other-keys)
1486 (let* ((out (assoc-ref outputs "out"))
1487 (prog (string-append out "/libexec/icon-name-mapping")))
1488 (wrap-program
1489 prog
1490 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1491 #t)))))
1492 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1493 (synopsis
1494 "Utility to implement the Freedesktop Icon Naming Specification")
1495 (description
1496 "To help with the transition to the Freedesktop Icon Naming
1497 Specification, the icon naming utility maps the icon names used by the
1498 GNOME and KDE desktops to the icon names proposed in the specification.")
1499 (license license:lgpl2.1+)))
1500
1501 (define-public gnome-icon-theme
1502 (package
1503 (name "gnome-icon-theme")
1504 (version "3.12.0")
1505 (source
1506 (origin
1507 (method url-fetch)
1508 (uri (string-append "mirror://gnome/sources/" name "/"
1509 (version-major+minor version) "/"
1510 name "-" version ".tar.xz"))
1511 (sha256
1512 (base32
1513 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1514 (build-system gnu-build-system)
1515 (arguments
1516 '(#:configure-flags
1517 ;; Don't create 'icon-theme.cache'.
1518 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1519 (true (string-append coreutils "/bin/true")))
1520 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1521 (native-inputs
1522 `(("icon-naming-utils" ,icon-naming-utils)
1523 ("intltool" ,intltool)
1524 ("pkg-config" ,pkg-config)))
1525 (home-page "https://wiki.gnome.org/Personalization")
1526 (synopsis "GNOME icon theme")
1527 (description "Icons for the GNOME desktop.")
1528 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1529
1530 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1531 (define-public adwaita-icon-theme
1532 (package (inherit gnome-icon-theme)
1533 (name "adwaita-icon-theme")
1534 (version "3.32.0")
1535 (source (origin
1536 (method url-fetch)
1537 (uri (string-append "mirror://gnome/sources/" name "/"
1538 (version-major+minor version) "/"
1539 name "-" version ".tar.xz"))
1540 (sha256
1541 (base32
1542 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
1543 (native-inputs
1544 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1545
1546 (define-public tango-icon-theme
1547 (package
1548 (name "tango-icon-theme")
1549 (version "0.8.90")
1550 (source (origin
1551 (method url-fetch)
1552 (uri (string-append "http://tango.freedesktop.org/releases/"
1553 "tango-icon-theme-" version ".tar.bz2"))
1554 (sha256
1555 (base32
1556 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1557 (build-system gnu-build-system)
1558 (native-inputs
1559 `(("icon-naming-utils" ,icon-naming-utils)
1560 ("intltool" ,intltool)
1561 ("imagemagick" ,imagemagick)
1562 ("pkg-config" ,pkg-config)))
1563 (home-page "http://tango-project.org/")
1564 (synopsis "Tango icon theme")
1565 (description "This is an icon theme that follows the Tango visual
1566 guidelines.")
1567 (license license:public-domain)))
1568
1569 (define-public shared-mime-info
1570 (package
1571 (name "shared-mime-info")
1572 (version "1.10")
1573 (source (origin
1574 (method url-fetch)
1575 (uri (string-append "https://freedesktop.org/~hadess/"
1576 "shared-mime-info-" version ".tar.xz"))
1577 (sha256
1578 (base32
1579 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
1580 (build-system gnu-build-system)
1581 (arguments
1582 ;; The build system appears not to be parallel-safe.
1583 '(#:parallel-build? #f))
1584 (inputs
1585 `(("glib" ,glib)
1586 ("libxml2" ,libxml2)))
1587 (native-inputs
1588 `(("intltool" ,intltool)
1589 ("pkg-config" ,pkg-config)))
1590 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1591 (synopsis "Database of common MIME types")
1592 (description
1593 "The shared-mime-info package contains the core database of common types
1594 and the update-mime-database command used to extend it. It requires glib2 to
1595 be installed for building the update command. Additionally, it uses intltool
1596 for translations, though this is only a dependency for the maintainers. This
1597 database is translated at Transifex.")
1598 (license license:gpl2+)))
1599
1600 (define-public system-config-printer
1601 (package
1602 (name "system-config-printer")
1603 (version "1.5.12")
1604 (source
1605 (origin
1606 (method url-fetch)
1607 (uri (string-append
1608 "https://github.com/OpenPrinting/system-config-printer/releases/"
1609 "download/" version
1610 "/system-config-printer-" version ".tar.xz"))
1611 (sha256
1612 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1613 (build-system glib-or-gtk-build-system)
1614 (arguments
1615 `(#:imported-modules ((guix build python-build-system)
1616 ,@%glib-or-gtk-build-system-modules)
1617 #:phases
1618 (modify-phases %standard-phases
1619 (add-after 'unpack 'patch-Makefile.am
1620 (lambda _
1621 ;; The Makefile generates some scripts, so set a valid shebang
1622 (substitute* "Makefile.am"
1623 (("/bin/bash") (which "bash")))
1624 (delete-file "configure")
1625 #t))
1626 (add-after 'unpack 'patch-docbook-xml
1627 (lambda* (#:key inputs #:allow-other-keys)
1628 ;; Modify the man XML otherwise xmlto tries to access the network
1629 (substitute* "man/system-config-printer.xml"
1630 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1631 (string-append (assoc-ref inputs "docbook-xml")
1632 "/xml/dtd/docbook/")))
1633 #t))
1634 (add-after 'install 'wrap-for-python
1635 (@@ (guix build python-build-system) wrap))
1636 (add-after 'install 'wrap
1637 (lambda* (#:key outputs #:allow-other-keys)
1638 (let ((out (assoc-ref outputs "out"))
1639 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1640 (for-each
1641 (lambda (program)
1642 (wrap-program program
1643 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1644 (map (lambda (name)
1645 (string-append out "/bin/" name))
1646 '("system-config-printer"
1647 "system-config-printer-applet"
1648 "install-printerdriver"
1649 "scp-dbus-service"))))
1650 #t)))))
1651 (inputs
1652 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1653 ("gobject-introspection" ,gobject-introspection)
1654 ("python" ,python)
1655 ("cups" ,cups)
1656 ("python-dbus" ,python-dbus)
1657 ("python-pygobject" ,python-pygobject)
1658 ("python-pycups" ,python-pycups)
1659 ("python-requests" ,python-requests)
1660 ("python-pycairo" ,python-pycairo)
1661 ("libnotify" ,libnotify)
1662 ("packagekit" ,packagekit)))
1663 (native-inputs
1664 `(("pkg-config" ,pkg-config)
1665 ("desktop-file-utils" ,desktop-file-utils)
1666 ("glib" ,glib)
1667 ("autoconf" ,autoconf)
1668 ("automake" ,automake)
1669 ("intltool" ,intltool)
1670 ("xmlto" ,xmlto)
1671 ("docbook-xml" ,docbook-xml-4.1.2)
1672 ("docbook-xsl" ,docbook-xsl)
1673 ("libxml2" ,libxml2)))
1674 (home-page "https://github.com/zdohnal/system-config-printer")
1675 (synopsis "CUPS administration tool")
1676 (description
1677 "system-config-printer is a CUPS administration tool. It's written in
1678 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1679 configuring CUPS.")
1680 (license license:gpl2+)))
1681
1682 (define-public hicolor-icon-theme
1683 (package
1684 (name "hicolor-icon-theme")
1685 (version "0.17")
1686 (source
1687 (origin
1688 (method url-fetch)
1689 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
1690 "hicolor-icon-theme-" version ".tar.xz"))
1691 (sha256
1692 (base32
1693 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
1694 (build-system gnu-build-system)
1695 (arguments
1696 `(#:tests? #f)) ; no check target
1697 (home-page "https://icon-theme.freedesktop.org/releases/")
1698 (synopsis
1699 "Freedesktop icon theme")
1700 (description
1701 "Freedesktop icon theme.")
1702 (license license:gpl2)))
1703
1704 (define-public libnotify
1705 (package
1706 (name "libnotify")
1707 (version "0.7.7")
1708 (source
1709 (origin
1710 (method url-fetch)
1711 (uri (string-append "mirror://gnome/sources/" name "/"
1712 (version-major+minor version) "/"
1713 name "-" version ".tar.xz"))
1714 (sha256
1715 (base32
1716 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
1717 (build-system gnu-build-system)
1718 (arguments
1719 `(#:configure-flags '("--disable-static")))
1720 (propagated-inputs
1721 `(;; In Requires of libnotify.pc.
1722 ("gdk-pixbuf" ,gdk-pixbuf)
1723 ("glib" ,glib)))
1724 (inputs
1725 `(("gtk+" ,gtk+)
1726 ("libpng" ,libpng)))
1727 (native-inputs
1728 `(("pkg-config" ,pkg-config)
1729 ("glib" ,glib "bin")
1730 ("gobject-introspection" ,gobject-introspection)))
1731 (home-page "https://developer-next.gnome.org/libnotify/")
1732 (synopsis
1733 "GNOME desktop notification library")
1734 (description
1735 "Libnotify is a library that sends desktop notifications to a
1736 notification daemon, as defined in the Desktop Notifications spec. These
1737 notifications can be used to inform the user about an event or display
1738 some form of information without getting in the user's way.")
1739 (license license:lgpl2.1+)))
1740
1741 (define-public libpeas
1742 (package
1743 (name "libpeas")
1744 (version "1.22.0")
1745 (source
1746 (origin
1747 (method url-fetch)
1748 (uri (string-append "mirror://gnome/sources/" name "/"
1749 (version-major+minor version) "/"
1750 name "-" version ".tar.xz"))
1751 (sha256
1752 (base32
1753 "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv"))))
1754 (build-system gnu-build-system)
1755 (inputs
1756 `(("gtk+" ,gtk+)
1757 ("glade" ,glade3)
1758 ("python" ,python)
1759 ("python-pygobject" ,python-pygobject)))
1760 (native-inputs
1761 `(("pkg-config" ,pkg-config)
1762 ("glib:bin" ,glib "bin")
1763 ("gobject-introspection" ,gobject-introspection)
1764 ("intltool" ,intltool)))
1765 (propagated-inputs
1766 ;; The .pc file "Requires" gobject-introspection.
1767 `(("gobject-introspection" ,gobject-introspection)))
1768 (home-page "https://wiki.gnome.org/Libpeas")
1769 (synopsis "GObject plugin system")
1770 (description
1771 "Libpeas is a gobject-based plugin engine, targeted at giving every
1772 application the chance to assume its own extensibility. It also has a set of
1773 features including, but not limited to: multiple extension points; on-demand
1774 (lazy) programming language support for C, Python and JS; simplicity of the
1775 API.")
1776 (license license:lgpl2.0+)))
1777
1778 (define-public gtkglext
1779 (package
1780 (name "gtkglext")
1781 (version "1.2.0")
1782 (source (origin
1783 (method url-fetch)
1784 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
1785 version "/gtkglext-" version ".tar.gz"))
1786 (sha256
1787 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
1788 (patches (search-patches
1789 "gtkglext-disable-disable-deprecated.patch"))))
1790 (build-system gnu-build-system)
1791 (arguments
1792 `(#:phases
1793 (modify-phases %standard-phases
1794 ;; Fix a collision between a local variable and a definition from
1795 ;; glibc's string.h.
1796 (add-after 'unpack 'fix-collision
1797 (lambda _
1798 (substitute* "gdk/gdkglshapes.c"
1799 ((" index") " triangle_index"))
1800 #t)))))
1801 (inputs `(("gtk+" ,gtk+-2)
1802 ("mesa" ,mesa)
1803 ("glu" ,glu)
1804 ("libx11" ,libx11)
1805 ("libxt" ,libxt)))
1806 (native-inputs `(("pkg-config" ,pkg-config)
1807 ("glib" ,glib "bin")))
1808 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
1809 (home-page "https://projects.gnome.org/gtkglext")
1810 (synopsis "OpenGL extension to GTK+")
1811 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
1812 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1813 API add-ons to make GTK+ widgets OpenGL-capable.")
1814 (license license:lgpl2.1+)))
1815
1816 (define-public glade3
1817 (package
1818 (name "glade")
1819 (version "3.22.1")
1820 (source (origin
1821 (method url-fetch)
1822 (uri (string-append "mirror://gnome/sources/" name "/"
1823 (version-major+minor version) "/"
1824 name "-" version ".tar.xz"))
1825 (sha256
1826 (base32
1827 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
1828 (build-system glib-or-gtk-build-system)
1829 (arguments
1830 `(#:tests? #f ; needs X, GL, and software rendering
1831 #:phases
1832 (modify-phases %standard-phases
1833 (add-before 'configure 'fix-docbook
1834 (lambda* (#:key inputs #:allow-other-keys)
1835 (substitute* "man/Makefile.in"
1836 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1837 (string-append (assoc-ref inputs "docbook-xsl")
1838 "/xml/xsl/docbook-xsl-"
1839 ,(package-version docbook-xsl)
1840 "/manpages/docbook.xsl")))
1841 #t)))))
1842 (inputs
1843 `(("gtk+" ,gtk+)
1844 ("libxml2" ,libxml2)))
1845 (native-inputs
1846 `(("intltool" ,intltool)
1847 ("itstool" ,itstool)
1848 ("libxslt" ,libxslt) ;for xsltproc
1849 ("docbook-xml" ,docbook-xml-4.2)
1850 ("docbook-xsl" ,docbook-xsl)
1851 ("python" ,python-2)
1852 ("pkg-config" ,pkg-config)))
1853 (home-page "https://glade.gnome.org")
1854 (synopsis "GTK+ rapid application development tool")
1855 (description "Glade is a rapid application development (RAD) tool to
1856 enable quick & easy development of user interfaces for the GTK+ toolkit and
1857 the GNOME desktop environment.")
1858 (license license:lgpl2.0+)))
1859
1860 (define-public libcroco
1861 (package
1862 (name "libcroco")
1863 (version "0.6.13")
1864 (source (origin
1865 (method url-fetch)
1866 (uri (string-append "mirror://gnome/sources/" name "/"
1867 (version-major+minor version) "/"
1868 name "-" version ".tar.xz"))
1869 (sha256
1870 (base32
1871 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
1872 (build-system gnu-build-system)
1873 (native-inputs
1874 `(("pkg-config" ,pkg-config)))
1875 (inputs
1876 `(("glib" ,glib)
1877 ("libxml2" ,libxml2)
1878 ("zlib" ,zlib)))
1879 (home-page "https://github.com/GNOME/libcroco")
1880 (synopsis "CSS2 parsing and manipulation library")
1881 (description
1882 "Libcroco is a standalone CSS2 parsing and manipulation library.
1883 The parser provides a low level event driven SAC-like API and a CSS object
1884 model like API. Libcroco provides a CSS2 selection engine and an experimental
1885 XML/CSS rendering engine.")
1886
1887 ;; LGPLv2.1-only.
1888 (license license:lgpl2.1)))
1889
1890 (define-public libgsf
1891 (package
1892 (name "libgsf")
1893 (version "1.14.46")
1894 (source (origin
1895 (method url-fetch)
1896 (uri (string-append "mirror://gnome/sources/" name "/"
1897 (version-major+minor version) "/"
1898 name "-" version ".tar.xz"))
1899 (sha256
1900 (base32
1901 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
1902 (build-system gnu-build-system)
1903 (native-inputs
1904 `(("intltool" ,intltool)
1905 ("pkg-config" ,pkg-config)))
1906 (inputs
1907 `(("python" ,python)
1908 ("zlib" ,zlib)
1909 ("bzip2" ,bzip2)))
1910 (propagated-inputs
1911 `(("gdk-pixbuf" ,gdk-pixbuf)
1912 ("glib" ,glib)
1913 ("libxml2" ,libxml2)))
1914 (home-page "https://www.gnome.org/projects/libgsf")
1915 (synopsis "GNOME's Structured File Library")
1916 (description
1917 "Libgsf aims to provide an efficient extensible I/O abstraction for
1918 dealing with different structured file formats.")
1919
1920 ;; LGPLv2.1-only.
1921 (license license:lgpl2.1)))
1922
1923 (define-public librsvg
1924 (package
1925 (name "librsvg")
1926 (version "2.40.20")
1927 (source (origin
1928 (method url-fetch)
1929 (uri (string-append "mirror://gnome/sources/" name "/"
1930 (version-major+minor version) "/"
1931 name "-" version ".tar.xz"))
1932 (sha256
1933 (base32
1934 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
1935 (build-system gnu-build-system)
1936 (arguments
1937 `(#:configure-flags
1938 (list "--disable-static"
1939 "--enable-vala") ; needed for e.g. gnome-mines
1940 #:phases
1941 (modify-phases %standard-phases
1942 (add-before 'configure 'pre-configure
1943 (lambda* (#:key inputs #:allow-other-keys)
1944 (substitute* "gdk-pixbuf-loader/Makefile.in"
1945 ;; By default the gdk-pixbuf loader is installed under
1946 ;; gdk-pixbuf's prefix. Work around that.
1947 (("gdk_pixbuf_moduledir = .*$")
1948 (string-append "gdk_pixbuf_moduledir = "
1949 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
1950 "loaders\n"))
1951 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
1952 (("gdk_pixbuf_cache_file = .*$")
1953 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
1954 #t))
1955 (add-before 'check 'remove-failing-tests
1956 (lambda _
1957 (with-directory-excursion "tests/fixtures/reftests"
1958 (for-each delete-file
1959 '(;; This test fails on i686:
1960 "svg1.1/masking-path-04-b.svg"
1961 ;; This test fails on armhf:
1962 "svg1.1/masking-mask-01-b.svg"
1963 ;; This test fails on aarch64:
1964 "bugs/777834-empty-text-children.svg")))
1965 #t)))))
1966 (native-inputs
1967 `(("pkg-config" ,pkg-config)
1968 ("vala" ,vala)
1969 ("glib" ,glib "bin") ; glib-mkenums, etc.
1970 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
1971 (inputs
1972 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
1973 ;; this ancient version of librsvg.
1974 ("pango" ,pango-1.42)
1975 ("libcroco" ,libcroco)
1976 ("bzip2" ,bzip2)
1977 ("libgsf" ,libgsf)
1978 ("libxml2" ,libxml2)))
1979 (propagated-inputs
1980 ;; librsvg-2.0.pc refers to all of that.
1981 `(("cairo" ,cairo)
1982 ("gdk-pixbuf" ,gdk-pixbuf)
1983 ("glib" ,glib)))
1984 (home-page "https://wiki.gnome.org/LibRsvg")
1985 (synopsis "Render SVG files using Cairo")
1986 (description
1987 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
1988 library.")
1989 (license license:lgpl2.0+)))
1990
1991 (define* (computed-origin-method gexp-promise hash-algo hash
1992 #:optional (name "source")
1993 #:key (system (%current-system))
1994 (guile (default-guile)))
1995 "Return a derivation that executes the G-expression that results
1996 from forcing GEXP-PROMISE."
1997 (mlet %store-monad ((guile (package->derivation guile system)))
1998 (gexp->derivation (or name "computed-origin")
1999 (force gexp-promise)
2000 #:graft? #f ;nothing to graft
2001 #:system system
2002 #:guile-for-build guile)))
2003
2004 (define librsvg-next-source
2005 (let* ((version "2.46.3")
2006 (upstream-source (origin
2007 (method url-fetch)
2008 (uri (string-append "mirror://gnome/sources/librsvg/"
2009 (version-major+minor version) "/"
2010 "librsvg-" version ".tar.xz"))
2011 (sha256
2012 (base32
2013 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
2014 (origin
2015 (method computed-origin-method)
2016 (file-name (string-append "librsvg-" version ".tar.xz"))
2017 (sha256 #f)
2018 (uri
2019 (delay
2020 (with-imported-modules '((guix build utils))
2021 #~(begin
2022 (use-modules (guix build utils))
2023 (set-path-environment-variable
2024 "PATH" '("bin")
2025 (list "/tmp"
2026 #+(canonical-package xz)
2027 #+(canonical-package gzip)
2028 #+(canonical-package tar)))
2029 (invoke "tar" "xvf" #+upstream-source)
2030 (with-directory-excursion (string-append "librsvg-" #$version)
2031 (for-each
2032 (lambda (crate)
2033 (delete-file-recursively (string-append "vendor/" (car crate)))
2034 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
2035 '(;("aho-corasick" . #+(package-source rust-aho-corasick-0.7))
2036 ;; alga 0.9
2037 ("approx" . #+(package-source rust-approx-0.3))
2038 ("arrayvec" . #+(package-source rust-arrayvec-0.4))
2039 ("atty" . #+(package-source rust-atty-0.2))
2040 ("autocfg" . #+(package-source rust-autocfg-0.1))
2041 ("bitflags" . #+(package-source rust-bitflags-1))
2042 ;; block 0.1
2043 ("bstr" . #+(package-source rust-bstr-0.2))
2044 ("byteorder" . #+(package-source rust-byteorder-1.3))
2045 ;; cairo-rs 0.7
2046 ;; cairo-sys-rs 0.9
2047 ("cast" . #+(package-source rust-cast-0.2))
2048 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
2049 ("clap" . #+(package-source rust-clap-2))
2050 ("cloudabi" . #+(package-source rust-cloudabi-0.0))
2051 ("criterion" . #+(package-source rust-criterion-0.2))
2052 ("criterion-plot" . #+(package-source rust-criterion-plot-0.3))
2053 ("crossbeam-deque" . #+(package-source rust-crossbeam-deque-0.7))
2054 ;("crossbeam-epoch" . #+(package-source rust-crossbeam-epoch-0.7))
2055 ("crossbeam-queue" . #+(package-source rust-crossbeam-queue-0.1))
2056 ("crossbeam-utils" . #+(package-source rust-crossbeam-utils-0.6))
2057 ;; cssparser 0.25
2058 ;; cssparser-macros 0.3
2059 ("csv" . #+(package-source rust-csv-1.1))
2060 ("csv-core" . #+(package-source rust-csv-core-0.1))
2061 ;; data-url 0.1
2062 ;; downcast-rs 1.0
2063 ("dtoa" . #+(package-source rust-dtoa-0.4))
2064 ;; dtoa-short 0.3
2065 ("either" . #+(package-source rust-either-1.5))
2066 ("encoding" . #+(package-source rust-encoding-0.2))
2067 ("encoding-index-japanese" . #+(package-source rust-encoding-index-japanese-1.20141219))
2068 ("encoding-index-korean" . #+(package-source rust-encoding-index-korean-1.20141219))
2069 ("encoding-index-simpchinese" . #+(package-source rust-encoding-index-simpchinese-1.20141219))
2070 ("encoding-index-singlebyte" . #+(package-source rust-encoding-index-singlebyte-1.20141219))
2071 ("encoding-index-tradchinese" . #+(package-source rust-encoding-index-tradchinese-1.20141219))
2072 ("encoding_index_tests" . #+(package-source rust-encoding-index-tests-0.1))
2073 ;; float-cmp 0.5
2074 ;; fragile 0.3
2075 ("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
2076 ("futf" . #+(package-source rust-futf-0.1))
2077 ;; gdk-pixbuf 0.7
2078 ;; gdk-pixbuf-sys 0.9
2079 ("generic-array" . #+(package-source rust-generic-array-0.12))
2080 ;; gio 0.7
2081 ;; gio-sys 0.9
2082 ;; glib 0.8
2083 ;; glib-sys 0.9
2084 ;; gobject-sys 0.9
2085 ;; idna 0.2
2086 ("itertools" . #+(package-source rust-itertools-0.8))
2087 ("itoa" . #+(package-source rust-itoa-0.4))
2088 ("language-tags" . #+(package-source rust-language-tags-0.2))
2089 ("lazy_static" . #+(package-source rust-lazy-static-1.3))
2090 ("libc" . #+(package-source rust-libc-0.2))
2091 ;; libm 0.1
2092 ;; locale_config 0.3
2093 ("log" . #+(package-source rust-log-0.4))
2094 ("mac" . #+(package-source rust-mac-0.1))
2095 ;; malloc_buf 0.0
2096 ;; markup5ever 0.9
2097 ("matches" . #+(package-source rust-matches-0.1))
2098 ;; matrixmultiply 0.2
2099 ;("memchr" . #+(package-source rust-memchr-2.2))
2100 ;; memoffset 0.5
2101 ;; nalgebra 0.18
2102 ("new_debug_unreachable" . #+(package-source rust-new-debug-unreachable-1.0))
2103 ("nodrop" . #+(package-source rust-nodrop-0.1))
2104 ("num-complex" . #+(package-source rust-num-complex-0.2))
2105 ("num-integer" . #+(package-source rust-num-integer-0.1))
2106 ;; num-rational 0.2
2107 ("num-traits" . #+(package-source rust-num-traits-0.2))
2108 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
2109 ;; objc 0.2
2110 ;; objc-foundation 0.1
2111 ;; objc_id 0.1
2112 ;; pango 0.7
2113 ;; pango-sys 0.9
2114 ;; pangocairo 0.8
2115 ;; pangocairo-sys 0.10
2116 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
2117 ("phf" . #+(package-source rust-phf-0.7))
2118 ("phf_codegen" . #+(package-source rust-phf-codegen-0.7))
2119 ("phf_generator" . #+(package-source rust-phf-generator-0.7))
2120 ("phf_shared" . #+(package-source rust-phf-shared-0.7))
2121 ("pkg-config" . #+(package-source rust-pkg-config-0.3))
2122 ("precomputed-hash" . #+(package-source rust-precomputed-hash-0.1))
2123 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
2124 ;; procedural-masquerade 0.1
2125 ("quote" . #+(package-source rust-quote-1.0))
2126 ("rand" . #+(package-source rust-rand-0.6))
2127 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
2128 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
2129 ("rand_core" . #+(package-source rust-rand-core-0.4))
2130 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
2131 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
2132 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
2133 ("rand_os" . #+(package-source rust-rand-os-0.1))
2134 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
2135 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
2136 ;; rand_xoshiro 0.1
2137 ;; rawpointer 0.2
2138 ;; rayon 1.2
2139 ;; rayon-core 1.6
2140 ;; rctree 0.3
2141 ("rdrand" . #+(package-source rust-rdrand-0.4))
2142 ;; regex 1.3
2143 ("regex-automata" . #+(package-source rust-regex-automata-0.1))
2144 ;("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
2145 ("rustc_version" . #+(package-source rust-rustc-version-0.2))
2146 ("ryu" . #+(package-source rust-ryu-1.0))
2147 ("same-file" . #+(package-source rust-same-file-1.0))
2148 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
2149 ("semver" . #+(package-source rust-semver-0.9))
2150 ("semver-parser" . #+(package-source rust-semver-parser-0.7))
2151 ("serde" . #+(package-source rust-serde-1.0))
2152 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
2153 ("serde_json" . #+(package-source rust-serde-json-1.0))
2154 ("siphasher" . #+(package-source rust-siphasher-0.2))
2155 ("smallvec" . #+(package-source rust-smallvec-0.6))
2156 ("string_cache" . #+(package-source rust-string-cache-0.7))
2157 ;("string_cache_codegen" . #+(package-source rust-string-cache-codegen-0.4))
2158 ("string_cache_shared" . #+(package-source rust-string-cache-shared-0.3))
2159 ("syn" . #+(package-source rust-syn-1.0))
2160 ("tendril" . #+(package-source rust-tendril-0.4))
2161 ("textwrap" . #+(package-source rust-textwrap-0.11))
2162 ("thread_local" . #+(package-source rust-thread-local-0.3))
2163 ("tinytemplate" . #+(package-source rust-tinytemplate-1.0))
2164 ("typenum" . #+(package-source rust-typenum-1.10))
2165 ("unicode-bidi" . #+(package-source rust-unicode-bidi-0.3))
2166 ("unicode-normalization" . #+(package-source rust-unicode-normalization-0.1))
2167 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
2168 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
2169 ;; url 2.1
2170 ("utf-8" . #+(package-source rust-utf-8-0.7))
2171 ("walkdir" . #+(package-source rust-walkdir-2.2))
2172 ("winapi" . #+(package-source rust-winapi-0.3))
2173 ("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
2174 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
2175 ("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
2176 ;; xml-rs 0.8
2177 )))
2178 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
2179 (force-output)
2180 (invoke "tar" "cfa" #$output
2181 ;; Avoid non-determinism in the archive. We set the
2182 ;; mtime of files in the archive to early 1980 because
2183 ;; the build process fails if the mtime of source
2184 ;; files is pre-1980, due to the creation of zip
2185 ;; archives.
2186 "--mtime=@315619200" ; 1980-01-02 UTC
2187 "--owner=root:0"
2188 "--group=root:0"
2189 "--sort=name"
2190 (string-append "librsvg-" #$version))
2191 #t)))))))
2192
2193 (define-public librsvg-next
2194 (package
2195 (name "librsvg")
2196 (version "2.46.3")
2197 (source librsvg-next-source)
2198 (build-system gnu-build-system)
2199 (arguments
2200 `(#:configure-flags
2201 (list "--disable-static"
2202 "--enable-vala") ; needed for e.g. gnome-mines
2203 #:make-flags '("CC=gcc")
2204 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
2205 #:phases
2206 (modify-phases %standard-phases
2207 (add-after 'configure 'patch-cargo-checksums
2208 (lambda _
2209 (use-modules (guix build cargo-utils))
2210 (substitute* "librsvg/Cargo.toml"
2211 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
2212 (generate-all-checksums "vendor")
2213 (delete-file "Cargo.lock")
2214 (invoke "cargo" "generate-lockfile")))
2215 (add-before 'configure 'pre-configure
2216 (lambda* (#:key inputs #:allow-other-keys)
2217 (substitute* "gdk-pixbuf-loader/Makefile.in"
2218 ;; By default the gdk-pixbuf loader is installed under
2219 ;; gdk-pixbuf's prefix. Work around that.
2220 (("gdk_pixbuf_moduledir = .*$")
2221 (string-append "gdk_pixbuf_moduledir = "
2222 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2223 "loaders\n"))
2224 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2225 (("gdk_pixbuf_cache_file = .*$")
2226 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2227 #t))
2228 (add-before 'check 'remove-failing-tests
2229 (lambda _
2230 (with-directory-excursion "tests/fixtures/reftests"
2231 (for-each delete-file
2232 '(;; The images produced by these tests differ slightly
2233 ;; from their reference counterparts due to differences
2234 ;; in the build environment (missing fonts, etc). See
2235 ;; <tests/README.md> for details.
2236 ;; These fail on x86_64.
2237 "svg1.1/coords-viewattr-02-b.svg"
2238 "svg1.1/filters-composite-04-f.svg"
2239 "svg1.1/filters-image-01-b.svg"
2240 "svg1.1/filters-conv-02-f.svg"
2241 "svg1.1/filters-conv-04-f.svg"
2242 ;; This test fails on i686:
2243 "svg1.1/masking-path-04-b.svg"
2244 ;; This test fails on armhf:
2245 "svg1.1/masking-mask-01-b.svg"
2246 ;; This test fails on aarch64:
2247 "bugs/777834-empty-text-children.svg")))
2248 #t)))))
2249 (native-inputs
2250 `(("pkg-config" ,pkg-config)
2251 ;; This is the minimum supported Rust version in Librsvg 2.46.
2252 ("rust" ,rust-1.34)
2253 ("cargo" ,rust-1.34 "cargo")
2254 ("vala" ,vala)
2255 ("glib" ,glib "bin") ; glib-mkenums, etc.
2256 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2257 (inputs
2258 `(("pango" ,pango)
2259 ("libcroco" ,libcroco)
2260 ("bzip2" ,bzip2)
2261 ("libgsf" ,libgsf)
2262 ("libxml2" ,libxml2)))
2263 (propagated-inputs
2264 ;; librsvg-2.0.pc refers to all of that.
2265 `(("cairo" ,cairo)
2266 ("gdk-pixbuf" ,gdk-pixbuf)
2267 ("glib" ,glib)))
2268 (home-page "https://wiki.gnome.org/LibRsvg")
2269 (synopsis "Render SVG files using Cairo")
2270 (description
2271 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2272 library.")
2273 (license license:lgpl2.1+)))
2274
2275 (define-public libidl
2276 (package
2277 (name "libidl")
2278 (version "0.8.14")
2279 (source (origin
2280 (method url-fetch)
2281 (uri (string-append "mirror://gnome/sources/libIDL/"
2282 (version-major+minor version) "/"
2283 "libIDL-" version ".tar.bz2"))
2284 (sha256
2285 (base32
2286 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2287 (build-system gnu-build-system)
2288 (inputs `(("glib" ,glib)))
2289 (native-inputs
2290 `(("pkg-config" ,pkg-config)
2291 ("flex" ,flex)
2292 ("bison" ,bison)))
2293 (home-page "http://freecode.com/projects/libidl")
2294 (synopsis "Create trees of CORBA Interface Definition Language files")
2295 (description "Libidl is a library for creating trees of CORBA Interface
2296 Definition Language (idl) files, which is a specification for defining
2297 portable interfaces. libidl was initially written for orbit (the orb from the
2298 GNOME project, and the primary means of libidl distribution). However, the
2299 functionality was designed to be as reusable and portable as possible.")
2300 (properties `((upstream-name . "libIDL")))
2301 (license license:lgpl2.0+)))
2302
2303
2304 (define-public orbit2
2305 (package
2306 (name "orbit2")
2307 (version "2.14.19")
2308 (source (origin
2309 (method url-fetch)
2310 (uri (let ((upstream-name "ORBit2"))
2311 (string-append "mirror://gnome/sources/" upstream-name "/"
2312 (version-major+minor version) "/"
2313 upstream-name "-" version ".tar.bz2")))
2314 (sha256
2315 (base32
2316 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2317 (build-system gnu-build-system)
2318 (arguments
2319 `(#:configure-flags
2320 '(;; We don't need static libraries, plus they don't build reproducibly
2321 ;; (non-deterministic ordering of .o files in the archive.)
2322 "--disable-static"
2323
2324 ;; The programmer kindly gives us a hook to turn off deprecation
2325 ;; warnings ...
2326 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2327 ;; ... which they then completly ignore !!
2328 #:phases
2329 (modify-phases %standard-phases
2330 (add-before 'configure 'ignore-deprecations
2331 (lambda _
2332 (substitute* "linc2/src/Makefile.in"
2333 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2334 #t)))))
2335 (inputs `(("glib" ,glib)
2336 ("libidl" ,libidl)))
2337 (native-inputs
2338 `(("pkg-config" ,pkg-config)))
2339 (home-page "https://projects.gnome.org/orbit2/")
2340 (synopsis "CORBA 2.4-compliant Object Request Broker")
2341 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2342 featuring mature C, C++ and Python bindings.")
2343 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2344 ;; a version. SOME of the code files have licence notices for GPLv2+.
2345 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2346 (license license:gpl2+)
2347 (properties `((upstream-name . "ORBit2")))))
2348
2349
2350 (define-public libbonobo
2351 (package
2352 (name "libbonobo")
2353 (version "2.32.1")
2354 (source (origin
2355 (method url-fetch)
2356 (uri (string-append "mirror://gnome/sources/" name "/"
2357 (version-major+minor version)
2358 "/" name "-" version ".tar.bz2"))
2359 (sha256
2360 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2361 (patches (search-patches
2362 "libbonobo-activation-test-race.patch"))))
2363 (build-system gnu-build-system)
2364 (arguments
2365 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2366 `(#:configure-flags
2367 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2368 ;; ... which they then completly ignore !!
2369 #:phases
2370 (modify-phases %standard-phases
2371 (add-before 'configure 'ignore-deprecations
2372 (lambda _
2373 (substitute* "activation-server/Makefile.in"
2374 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2375 #t)))
2376
2377 ;; There's apparently a race condition between the server stub
2378 ;; generation and linking of the example under 'samples/echo' that can
2379 ;; lead do undefined references when building in parallel, as reported
2380 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2381 ;; Thus, disable parallel builds.
2382 #:parallel-build? #f))
2383 (inputs `(("popt" ,popt)
2384 ("libxml2" ,libxml2)))
2385 ;; The following are Required by the .pc file
2386 (propagated-inputs
2387 `(("glib" ,glib)
2388 ("orbit2" ,orbit2)))
2389 (native-inputs
2390 `(("intltool" ,intltool)
2391 ("pkg-config" ,pkg-config)
2392 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2393 ("flex" ,flex)
2394 ("bison" ,bison)))
2395 (home-page "https://developer.gnome.org/libbonobo/")
2396 (synopsis "Framework for creating reusable components for use in GNOME applications")
2397 (description "Bonobo is a framework for creating reusable components for
2398 use in GNOME applications, built on top of CORBA.")
2399 ;; Licence not explicitly stated. Source files contain no licence notices.
2400 ;; Tarball contains text of both GPLv2 and LGPLv2
2401 ;; GPLv2 covers both conditions
2402 (license license:gpl2+)))
2403
2404
2405 (define-public gconf
2406 (package
2407 (name "gconf")
2408 (version "3.2.6")
2409 (source (origin
2410 (method url-fetch)
2411 (uri
2412 (let ((upstream-name "GConf"))
2413 (string-append "mirror://gnome/sources/" upstream-name "/"
2414 (version-major+minor version) "/"
2415 upstream-name "-" version ".tar.xz")))
2416 (sha256
2417 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2418 (build-system gnu-build-system)
2419 (inputs `(("dbus-glib" ,dbus-glib)
2420 ("libxml2" ,libxml2)))
2421 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2422 ("orbit2" ,orbit2)))
2423 (native-inputs
2424 `(("intltool" ,intltool)
2425 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2426 ("pkg-config" ,pkg-config)))
2427 (home-page "https://projects.gnome.org/gconf/")
2428 (synopsis "Store application preferences")
2429 (description "Gconf is a system for storing application preferences. It
2430 is intended for user preferences; not arbitrary data storage.")
2431 (license license:lgpl2.0+)
2432 (properties '((upstream-name . "GConf")))))
2433
2434
2435 (define-public gnome-mime-data
2436 (package
2437 (name "gnome-mime-data")
2438 (version "2.18.0")
2439 (source (origin
2440 (method url-fetch)
2441 (uri (string-append "mirror://gnome/sources/" name "/"
2442 (version-major+minor version) "/"
2443 name "-" version ".tar.bz2"))
2444 (sha256
2445 (base32
2446 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2447 (build-system gnu-build-system)
2448 (native-inputs
2449 `(("perl" ,perl)
2450 ("intltool" ,intltool)))
2451 (arguments
2452 '(#:phases (modify-phases %standard-phases
2453 (add-after 'configure 'use-our-intltool
2454 (lambda _
2455 ;; Do not use the bundled intltool commands, which lack
2456 ;; the "dotless @INC" fixes of our 'intltool' package.
2457 (substitute* (find-files "." "^Makefile$")
2458 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2459 (string-append "INTLTOOL_" tool " = intltool-"
2460 (string-downcase tool) "\n")))
2461 #t)))))
2462 (home-page "https://www.gnome.org")
2463 (synopsis "Base MIME and Application database for GNOME")
2464 (description "GNOME Mime Data is a module which contains the base MIME
2465 and Application database for GNOME. The data stored by this module is
2466 designed to be accessed through the MIME functions in GnomeVFS.")
2467 (license license:gpl2+)))
2468
2469
2470 (define-public gnome-vfs
2471 (package
2472 (name "gnome-vfs")
2473 (version "2.24.4")
2474 (source (origin
2475 (method url-fetch)
2476 (uri (string-append "mirror://gnome/sources/" name "/"
2477 (version-major+minor version) "/"
2478 name "-" version ".tar.bz2"))
2479 (sha256
2480 (base32
2481 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2482 (build-system gnu-build-system)
2483 (arguments
2484 `(#:phases
2485 (modify-phases %standard-phases
2486 (add-before 'configure 'ignore-deprecations
2487 (lambda _
2488 (substitute* '("libgnomevfs/Makefile.in"
2489 "daemon/Makefile.in")
2490 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2491 #t))
2492 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2493 (lambda _
2494 (substitute* "test/test-async-cancel.c"
2495 (("EXIT_FAILURE") "77"))
2496 #t)))))
2497 (inputs `(("libxml2" ,libxml2)
2498 ("dbus-glib" ,dbus-glib)
2499 ("gconf" ,gconf)
2500 ("gnome-mime-data" ,gnome-mime-data)
2501 ("zlib" ,zlib)))
2502 (native-inputs
2503 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2504 ("intltool" ,intltool)
2505 ("pkg-config" ,pkg-config)))
2506 (home-page "https://developer.gnome.org/gnome-vfs/")
2507 (synopsis "Access files and folders in GNOME applications")
2508 (description
2509 "GnomeVFS is the core library used to access files and folders in GNOME
2510 applications. It provides a file system abstraction which allows applications
2511 to access local and remote files with a single consistent API.")
2512 (license license:lgpl2.0+)))
2513
2514
2515
2516 (define-public libgnome
2517 (package
2518 (name "libgnome")
2519 (version "2.32.1")
2520 (source (origin
2521 (method url-fetch)
2522 (uri (string-append "mirror://gnome/sources/" name "/"
2523 (version-major+minor version) "/"
2524 name "-" version ".tar.bz2"))
2525 (sha256
2526 (base32
2527 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2528 (patches (search-patches "libgnome-encoding.patch"))))
2529 (build-system gnu-build-system)
2530 (arguments
2531 `(#:phases
2532 (modify-phases %standard-phases
2533 (add-before 'configure 'enable-deprecated
2534 (lambda _
2535 (substitute* "libgnome/Makefile.in"
2536 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2537 #t)))))
2538 (inputs `(("libxml2" ,libxml2)))
2539 (native-inputs
2540 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2541 ("intltool" ,intltool)
2542 ("pkg-config" ,pkg-config)))
2543 ;; The following are listed as Required in the .pc file
2544 ;; (except for libcanberra -- which seems to be oversight on the part
2545 ;; of the upstream developers -- anything that links against libgnome,
2546 ;; must also link against libcanberra
2547 (propagated-inputs
2548 `(("libcanberra" ,libcanberra)
2549 ("libbonobo" ,libbonobo)
2550 ("gconf" ,gconf)
2551 ("gnome-vfs" ,gnome-vfs)
2552 ("popt" ,popt))) ;gnome-program.h includes popt.h
2553 (home-page "https://developer.gnome.org/libgnome/")
2554 (synopsis "Useful routines for building applications")
2555 (description "The libgnome library provides a number of useful routines
2556 for building modern applications, including session management, activation of
2557 files and URIs, and displaying help.")
2558 (license license:lgpl2.0+)))
2559
2560
2561 (define-public libart-lgpl
2562 (package
2563 (name "libart-lgpl")
2564 (version "2.3.21")
2565 (source (origin
2566 (method url-fetch)
2567 (uri (let ((upstream-name "libart_lgpl"))
2568 (string-append "mirror://gnome/sources/" upstream-name "/"
2569 (version-major+minor version) "/"
2570 upstream-name "-" version ".tar.bz2")))
2571 (sha256
2572 (base32
2573 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2574 (build-system gnu-build-system)
2575 (native-inputs
2576 `(("pkg-config" ,pkg-config)))
2577 (home-page "https://people.gnome.org/~mathieu/libart")
2578 (synopsis "2D drawing library")
2579 (description "Libart is a 2D drawing library intended as a
2580 high-quality vector-based 2D library with antialiasing and alpha composition.")
2581 (license license:lgpl2.0+)))
2582
2583
2584
2585 (define-public libgnomecanvas
2586 (package
2587 (name "libgnomecanvas")
2588 (version "2.30.3")
2589 (source (origin
2590 (method url-fetch)
2591 (uri (string-append "mirror://gnome/sources/" name "/"
2592 (version-major+minor version) "/"
2593 name "-" version ".tar.gz"))
2594 (sha256
2595 (base32
2596 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2597 (build-system gnu-build-system)
2598 ;; Mentioned as Required in the .pc file
2599 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2600 ("gtk+" ,gtk+-2)))
2601 (native-inputs
2602 `(("intltool" ,intltool)
2603 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2604 ("pkg-config" ,pkg-config)))
2605 (home-page "https://developer.gnome.org/libgnomecanvas/")
2606 (synopsis "Flexible widget for creating interactive structured graphics")
2607 (description "The GnomeCanvas widget provides a flexible widget for
2608 creating interactive structured graphics.")
2609 (license license:lgpl2.0+)))
2610
2611 (define-public libgnomecanvasmm
2612 (package
2613 (name "libgnomecanvasmm")
2614 (version "2.26.0")
2615 (source (origin
2616 (method url-fetch)
2617 (uri (string-append "mirror://gnome/sources/" name "/"
2618 (version-major+minor version) "/"
2619 name "-" version ".tar.bz2"))
2620 (sha256
2621 (base32
2622 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2623 (build-system gnu-build-system)
2624 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2625 (native-inputs
2626 `(("gtkmm-2" ,gtkmm-2)
2627 ("pkg-config" ,pkg-config)))
2628 (home-page "https://gtkmm.org")
2629 (synopsis "C++ bindings to the GNOME Canvas library")
2630 (description "C++ bindings to the GNOME Canvas library.")
2631 (license license:lgpl2.0+)))
2632
2633 (define-public libgnomeui
2634 (package
2635 (name "libgnomeui")
2636 (version "2.24.5")
2637 (source (origin
2638 (method url-fetch)
2639 (uri (string-append "mirror://gnome/sources/" name "/"
2640 (version-major+minor version) "/"
2641 name "-" version ".tar.bz2"))
2642 (patches (search-patches "libgnomeui-utf8.patch"))
2643 (sha256
2644 (base32
2645 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2646 (build-system gnu-build-system)
2647 ;; Mentioned as Required in the .pc file
2648 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2649 ("libgnome" ,libgnome)
2650 ("libgnomecanvas" ,libgnomecanvas)
2651 ("libgnome-keyring" ,libgnome-keyring)))
2652 (inputs `(("libjpeg" ,libjpeg)
2653 ("popt" ,popt)
2654 ("libbonobo" ,libbonobo)
2655 ("libxml2" ,libxml2)
2656 ("libglade" ,libglade)))
2657 (native-inputs
2658 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2659 ("intltool" ,intltool)
2660 ("pkg-config" ,pkg-config)))
2661 (home-page "https://developer.gnome.org/libgnomeui/")
2662 (synopsis "Additional widgets for applications")
2663 (description "The libgnomeui library provides additional widgets for
2664 applications. Many of the widgets from libgnomeui have already been
2665 ported to GTK+.")
2666 (license license:lgpl2.0+)))
2667
2668 (define-public libglade
2669 (package
2670 (name "libglade")
2671 (version "2.6.4")
2672 (source (origin
2673 (method url-fetch)
2674 (uri (string-append "mirror://gnome/sources/" name "/"
2675 (version-major+minor version) "/"
2676 name "-" version ".tar.bz2"))
2677 (sha256
2678 (base32
2679 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2680 (build-system gnu-build-system)
2681 (inputs
2682 `(("python" ,python))) ;; needed for the optional libglade-convert program
2683 (propagated-inputs
2684 `(("gtk+-2" ,gtk+-2)
2685 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2686 (native-inputs
2687 `(("pkg-config" ,pkg-config)))
2688 (home-page "https://developer.gnome.org/libglade")
2689 (synopsis "Load glade interfaces and access the glade built widgets")
2690 (description "Libglade is a library that provides interfaces for loading
2691 graphical interfaces described in glade files and for accessing the
2692 widgets built in the loading process.")
2693 (license license:gpl2+))) ; This is correct. GPL not LGPL
2694
2695 (define-public libgnomeprint
2696 ;; This library has been deprecated since 2006; see
2697 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2698 (package
2699 (name "libgnomeprint")
2700 (version "2.18.8")
2701 (source (origin
2702 (method url-fetch)
2703 (uri (string-append "mirror://gnome/sources/" name "/"
2704 (version-major+minor version) "/"
2705 name "-" version ".tar.bz2"))
2706 (sha256
2707 (base32
2708 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2709 (build-system gnu-build-system)
2710 (inputs
2711 `(("popt" ,popt)
2712 ("libart-lgpl" ,libart-lgpl)
2713 ("gtk+" ,gtk+-2)
2714 ("libxml2" ,libxml2)))
2715 (native-inputs
2716 `(("intltool" ,intltool)
2717 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2718 ("pkg-config" ,pkg-config)))
2719 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2720 (synopsis "Printing framework for GNOME")
2721 (description
2722 "GNOME-print was a printing framework for GNOME. It has been deprecated
2723 since ca. 2006, when GTK+ itself incorporated printing support.")
2724 (license license:lgpl2.0+)))
2725
2726
2727 (define-public libgnomeprintui
2728 ;; Deprecated; see libgnomeprint.
2729 (package
2730 (name "libgnomeprintui")
2731 (version "2.18.6")
2732 (source (origin
2733 (method url-fetch)
2734 (uri (string-append "mirror://gnome/sources/" name "/"
2735 (version-major+minor version) "/"
2736 name "-" version ".tar.bz2"))
2737 (sha256
2738 (base32
2739 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2740 (build-system gnu-build-system)
2741 ;; Mentioned as Required in the .pc file
2742 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2743 (inputs `(("gtk+" ,gtk+-2)
2744 ("glib" ,glib)
2745 ("gnome-icon-theme" ,gnome-icon-theme)
2746 ("libgnomecanvas" ,libgnomecanvas)
2747 ("libxml2" ,libxml2)))
2748 (native-inputs
2749 `(("intltool" ,intltool)
2750 ("pkg-config" ,pkg-config)))
2751 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2752 (synopsis "Printing framework for GNOME")
2753 (description (package-description libgnomeprint))
2754 (license license:lgpl2.0+)))
2755
2756 (define-public libbonoboui
2757 (package
2758 (name "libbonoboui")
2759 (version "2.24.5")
2760 (source (origin
2761 (method url-fetch)
2762 (uri (string-append "mirror://gnome/sources/" name "/"
2763 (version-major+minor version) "/"
2764 name "-" version ".tar.bz2"))
2765 (sha256
2766 (base32
2767 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2768 (build-system gnu-build-system)
2769 (arguments
2770 `(#:phases
2771 (modify-phases %standard-phases
2772 (add-before 'check 'start-xserver
2773 (lambda* (#:key inputs #:allow-other-keys)
2774 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2775 (disp ":1"))
2776
2777 (setenv "HOME" (getcwd))
2778 (setenv "DISPLAY" disp)
2779 ;; There must be a running X server and make check doesn't start one.
2780 ;; Therefore we must do it.
2781 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2782 ;; Mentioned as Required by the .pc file
2783 (propagated-inputs `(("libxml2" ,libxml2)))
2784 (inputs
2785 `(("popt" ,popt)
2786 ("pangox-compat" ,pangox-compat)
2787 ("libgnome" ,libgnome)
2788 ("libgnomecanvas" ,libgnomecanvas)
2789 ("libglade" ,libglade)))
2790 (native-inputs
2791 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2792 ("intltool" ,intltool)
2793 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2794 ("pkg-config" ,pkg-config)))
2795 (home-page "https://developer.gnome.org/libbonoboui/")
2796 (synopsis "Some user interface controls using Bonobo")
2797 (description "The Bonobo UI library provides a number of user interface
2798 controls using the Bonobo component framework.")
2799 (license license:lgpl2.0+)))
2800
2801 (define-public libwnck
2802 (package
2803 (name "libwnck")
2804 (version "3.32.0")
2805 (source (origin
2806 (method url-fetch)
2807 (uri (string-append "mirror://gnome/sources/" name "/"
2808 (version-major+minor version) "/"
2809 name "-" version ".tar.xz"))
2810 (sha256
2811 (base32
2812 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2813 (build-system meson-build-system)
2814 (native-inputs
2815 `(("pkg-config" ,pkg-config)
2816 ("glib" ,glib "bin") ; for glib-mkenums
2817 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
2818 ("intltool" ,intltool)))
2819 (propagated-inputs
2820 `(("gtk+" ,gtk+)
2821 ("libxres" ,libxres)
2822 ("startup-notification" ,startup-notification)))
2823 (home-page "https://developer.gnome.org/libwnck/")
2824 (synopsis "Window Navigator Construction Kit")
2825 (description
2826 "Libwnck is the Window Navigator Construction Kit, a library for use in
2827 writing pagers, tasklists, and more generally applications that are dealing
2828 with window management. It tries hard to respect the Extended Window Manager
2829 Hints specification (EWMH).")
2830 (license license:lgpl2.0+)))
2831
2832 ;; stable version for gtk2, required by xfwm4.
2833 (define-public libwnck-2
2834 (package (inherit libwnck)
2835 (name "libwnck")
2836 (version "2.30.7")
2837 (source (origin
2838 (method url-fetch)
2839 (uri (string-append "mirror://gnome/sources/" name "/"
2840 (version-major+minor version) "/"
2841 name "-" version ".tar.xz"))
2842 (sha256
2843 (base32
2844 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
2845 (build-system gnu-build-system)
2846 (native-inputs
2847 `(("pkg-config" ,pkg-config)
2848 ("intltool" ,intltool)))
2849 (propagated-inputs
2850 `(("gtk+" ,gtk+-2)
2851 ("libxres" ,libxres)
2852 ("startup-notification" ,startup-notification)))))
2853
2854 (define-public goffice
2855 (package
2856 (name "goffice")
2857 (version "0.10.46")
2858 (source (origin
2859 (method url-fetch)
2860 (uri (string-append "mirror://gnome/sources/goffice/"
2861 (version-major+minor version) "/"
2862 "goffice-" version ".tar.xz"))
2863 (sha256
2864 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
2865 (build-system gnu-build-system)
2866 (outputs '("out"
2867 "doc")) ; 4.0 MiB of gtk-doc
2868 (arguments
2869 '(#:configure-flags (list (string-append "--with-html-dir="
2870 (assoc-ref %outputs "doc")
2871 "/share/gtk-doc/html"))))
2872 (inputs
2873 `(("gtk+" ,gtk+)
2874 ("libgsf" ,libgsf)
2875 ("librsvg" ,librsvg)
2876 ("libxslt" ,libxslt)
2877 ("libxml2" ,libxml2)))
2878 (native-inputs
2879 `(("intltool" ,intltool)
2880 ("glib" ,glib "bin")
2881 ("pkg-config" ,pkg-config)))
2882 (home-page "https://developer.gnome.org/goffice/")
2883 (synopsis "Document-centric objects and utilities")
2884 (description "A GLib/GTK+ set of document-centric objects and utilities.")
2885 (license
2886 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2887 ;; Note: NOT LGPL
2888 (list license:gpl2 license:gpl3))))
2889
2890 (define-public goffice-0.8
2891 (package (inherit goffice)
2892 (version "0.8.17")
2893 (source (origin
2894 (method url-fetch)
2895 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
2896 (version-major+minor version) "/"
2897 (package-name goffice) "-" version ".tar.xz"))
2898 (sha256
2899 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
2900 (arguments
2901 `(#:phases
2902 (modify-phases %standard-phases
2903 (add-after 'unpack 'fix-pcre-check
2904 (lambda _
2905 ;; Only glib.h can be included directly. See
2906 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
2907 (substitute* "configure"
2908 (("glib/gregex\\.h") "glib.h")) #t)))
2909
2910 ,@(package-arguments goffice)))
2911 (propagated-inputs
2912 ;; libgoffice-0.8.pc mentions libgsf-1
2913 `(("libgsf" ,libgsf)))
2914 (inputs
2915 `(("gtk" ,gtk+-2)
2916 ,@(alist-delete "gtk" (package-inputs goffice))))))
2917
2918 (define-public gnumeric
2919 (package
2920 (name "gnumeric")
2921 (version "1.12.46")
2922 (source (origin
2923 (method url-fetch)
2924 (uri (string-append "mirror://gnome/sources/gnumeric/"
2925 (version-major+minor version) "/"
2926 "gnumeric-" version ".tar.xz"))
2927 (sha256
2928 (base32
2929 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
2930 (build-system glib-or-gtk-build-system)
2931 (arguments
2932 `(;; The gnumeric developers don't worry much about failing tests.
2933 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
2934 #:tests? #f
2935 #:phases
2936 (modify-phases %standard-phases
2937 (add-before
2938 'configure 'pre-conf
2939 (lambda* (#:key outputs #:allow-other-keys)
2940 ;; Make install tries to write into the directory of goffice
2941 ;; I am informed that this only affects the possibility to embed a
2942 ;; spreadsheet inside an Abiword document. So presumably when we
2943 ;; package Abiword we'll have to refer it to this directory.
2944 (substitute* "configure"
2945 (("^GOFFICE_PLUGINS_DIR=.*")
2946 (string-append "GOFFICE_PLUGINS_DIR="
2947 (assoc-ref outputs "out")
2948 "/goffice/plugins"))))))))
2949 (inputs
2950 `(("glib" ,glib)
2951 ("gtk+" ,gtk+)
2952 ("goffice" ,goffice)
2953 ("libgsf" ,libgsf)
2954 ("librsvg" ,librsvg)
2955 ("libxml2" ,libxml2)
2956 ("libxslt" ,libxslt)
2957 ("python" ,python-2)
2958 ("python2-pygobject" ,python2-pygobject)
2959 ("zlib" ,zlib)))
2960 (native-inputs
2961 `(("bison" ,bison)
2962 ("docbook-xml" ,docbook-xml)
2963 ("intltool" ,intltool)
2964 ("itstool" ,itstool)
2965 ("glib:bin" ,glib "bin")
2966 ("pkg-config" ,pkg-config)))
2967 (home-page "http://www.gnumeric.org")
2968 (synopsis "Spreadsheet application")
2969 (description
2970 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
2971 interoperable with other spreadsheet applications. It has a vast array of
2972 features beyond typical spreadsheet functionality, such as support for linear
2973 and non-linear solvers, statistical analysis, and telecommunication
2974 engineering.")
2975 (license
2976 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
2977 (list license:gpl2 license:gpl3))))
2978
2979 (define-public gnome-themes-standard
2980 (package
2981 (name "gnome-themes-standard")
2982 (version "3.22.3")
2983 (source
2984 (origin
2985 (method url-fetch)
2986 (uri (string-append "mirror://gnome/sources/" name "/"
2987 (version-major+minor version) "/" name "-"
2988 version ".tar.xz"))
2989 (sha256
2990 (base32
2991 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
2992 (build-system gnu-build-system)
2993 (arguments
2994 '(#:configure-flags
2995 ;; Don't create 'icon-theme.cache'.
2996 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2997 (true (string-append coreutils "/bin/true")))
2998 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2999 (inputs
3000 `(("gtk+" ,gtk+)
3001 ("gtk+-2" ,gtk+-2)
3002 ("librsvg" ,librsvg)
3003 ("libxml2" ,libxml2)
3004 ("glib" ,glib)))
3005 (native-inputs
3006 `(("intltool" ,intltool)
3007 ("glib:bin" ,glib "bin")
3008 ("pkg-config" ,pkg-config)))
3009 (home-page "https://launchpad.net/gnome-themes-standard")
3010 (synopsis "Default GNOME 3 themes")
3011 (description
3012 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3013 (license license:lgpl2.1+)))
3014
3015 (define-public seahorse
3016 (package
3017 (name "seahorse")
3018 (version "3.32.2")
3019 (source
3020 (origin
3021 (method url-fetch)
3022 (uri (string-append "mirror://gnome/sources/" name "/"
3023 (version-major+minor version) "/" name "-"
3024 version ".tar.xz"))
3025 (sha256
3026 (base32
3027 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
3028 (patches (search-patches
3029 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3030 (build-system meson-build-system)
3031 (arguments
3032 '(#:glib-or-gtk? #t
3033 #:phases
3034 (modify-phases %standard-phases
3035 (add-after 'unpack 'skip-gtk-update-icon-cache
3036 ;; Don't create 'icon-theme.cache'.
3037 (lambda _
3038 (substitute* "build-aux/meson_post_install.py"
3039 (("gtk-update-icon-cache") "true"))
3040 #t)))))
3041 (inputs
3042 `(("gtk+" ,gtk+)
3043 ("gcr" ,gcr)
3044 ("gnupg" ,gnupg)
3045 ("gpgme" ,gpgme)
3046 ("openldap" ,openldap)
3047 ("openssh" ,openssh)
3048 ("avahi" ,avahi)
3049 ("libpwquality" ,libpwquality)
3050 ("libsecret" ,libsecret)
3051 ("libsoup" ,libsoup)))
3052 (native-inputs
3053 `(("gettext" ,gettext-minimal)
3054 ("glib:bin" ,glib "bin")
3055 ("itstool" ,itstool)
3056 ("pkg-config" ,pkg-config)
3057 ("vala" ,vala)
3058 ("xmllint" ,libxml2)))
3059 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3060 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3061 (description
3062 "Seahorse is a GNOME application for managing encryption keys and
3063 passwords in the GNOME keyring.")
3064 (license license:gpl2+)))
3065
3066 (define-public vala
3067 (package
3068 (name "vala")
3069 (version "0.44.5")
3070 (source (origin
3071 (method url-fetch)
3072 (uri (string-append "mirror://gnome/sources/" name "/"
3073 (version-major+minor version) "/"
3074 name "-" version ".tar.xz"))
3075 (sha256
3076 (base32
3077 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
3078 (build-system gnu-build-system)
3079 (arguments
3080 '(#:phases
3081 (modify-phases %standard-phases
3082 (add-before 'check 'pre-check
3083 (lambda _
3084 (setenv "CC" "gcc")
3085 (substitute* "valadoc/tests/testrunner.sh"
3086 (("export PKG_CONFIG_PATH=" m)
3087 (string-append m "$PKG_CONFIG_PATH:")))
3088 ;; For missing '/etc/machine-id'.
3089 (setenv "DBUS_FATAL_WARNINGS" "0")
3090 #t)))))
3091 (native-inputs
3092 `(("pkg-config" ,pkg-config)
3093 ("flex" ,flex)
3094 ("bison" ,bison)
3095 ("xsltproc" ,libxslt)
3096 ("dbus" ,dbus) ; for dbus tests
3097 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3098 (inputs
3099 `(("graphviz" ,graphviz)))
3100 (propagated-inputs
3101 `(("glib" ,glib))) ; required by libvala-0.40.pc
3102 (home-page "https://live.gnome.org/Vala/")
3103 (synopsis "Compiler for the GObject type system")
3104 (description
3105 "Vala is a programming language that aims to bring modern programming
3106 language features to GNOME developers without imposing any additional runtime
3107 requirements and without using a different ABI compared to applications and
3108 libraries written in C.")
3109 (license license:lgpl2.1+)))
3110
3111 (define-public vte
3112 (package
3113 (name "vte")
3114 (version "0.58.3")
3115 (source (origin
3116 (method url-fetch)
3117 (uri (string-append "mirror://gnome/sources/vte/"
3118 (version-major+minor version) "/"
3119 "vte-" version ".tar.xz"))
3120 (sha256
3121 (base32
3122 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3123 (build-system meson-build-system)
3124 (native-inputs
3125 `(("pkg-config" ,pkg-config)
3126 ("intltool" ,intltool)
3127 ("vala" ,vala)
3128 ("gobject-introspection" ,gobject-introspection)
3129 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3130 ("gperf" ,gperf)
3131 ("xmllint" ,libxml2)))
3132 (propagated-inputs
3133 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3134 ("gnutls" ,gnutls) ; ditto
3135 ("pcre2" ,pcre2))) ; ditto
3136 (home-page "https://www.gnome.org/")
3137 (synopsis "Virtual Terminal Emulator")
3138 (description
3139 "VTE is a library (libvte) implementing a terminal emulator widget for
3140 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3141 gnome-terminal, but can also be used to embed a console/terminal in games,
3142 editors, IDEs, etc.")
3143 (license license:lgpl2.1+)))
3144
3145 (define-public vte-ng
3146 (package
3147 (inherit vte)
3148 (name "vte-ng")
3149 (version "0.58.2.a")
3150 (home-page "https://github.com/thestinger/vte-ng")
3151 (source (origin
3152 (method git-fetch)
3153 (uri (git-reference (url home-page) (commit version)))
3154 (file-name (git-file-name name version))
3155 (sha256
3156 (base32
3157 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3158 (build-system meson-build-system)
3159 (native-inputs
3160 `(("gtk-doc" ,gtk-doc)
3161 ,@(package-native-inputs vte)))
3162 (arguments
3163 `(#:configure-flags '("-Ddocs=true")))
3164 (synopsis "Enhanced VTE terminal widget")
3165 (description
3166 "VTE is a library (libvte) implementing a terminal emulator widget for
3167 GTK+, this fork provides additional functions exposed for keyboard text
3168 selection and URL hints.")))
3169
3170 ;; provides vte 2.90, required for some terminal emulators
3171 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3172 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3173 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3174 ;; pantheon-terminal, roxterm are not currently packaged
3175 (define-public vte-0.36
3176 (package (inherit vte)
3177 (name "vte")
3178 (version "0.36.5")
3179 (source (origin
3180 (method url-fetch)
3181 (uri (string-append "mirror://gnome/sources/" name "/"
3182 (version-major+minor version) "/"
3183 name "-" version ".tar.xz"))
3184 (sha256
3185 (base32
3186 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3187 (propagated-inputs
3188 `(("gtk" ,gtk+)
3189 ("ncurses" ,ncurses)))))
3190
3191 ;; stable version for gtk2, required by xfce4-terminal.
3192 (define-public vte/gtk+-2
3193 (package (inherit vte)
3194 (name "vte")
3195 (version "0.28.2")
3196 (source (origin
3197 (method url-fetch)
3198 (uri (string-append "mirror://gnome/sources/" name "/"
3199 (version-major+minor version) "/"
3200 name "-" version ".tar.xz"))
3201 (sha256
3202 (base32
3203 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3204 (patches (search-patches
3205 "vte-CVE-2012-2738-pt1.patch"
3206 "vte-CVE-2012-2738-pt2.patch"))))
3207 (build-system gnu-build-system)
3208 (arguments
3209 '(#:configure-flags '("--disable-python")))
3210 (native-inputs
3211 `(("pkg-config" ,pkg-config)
3212 ("intltool" ,intltool)
3213 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3214 (propagated-inputs
3215 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3216 ("ncurses" ,ncurses))))) ; required by libvte.la
3217
3218 (define-public vinagre
3219 (package
3220 (name "vinagre")
3221 (version "3.22.0")
3222 (source (origin
3223 (method url-fetch)
3224 (uri (string-append "mirror://gnome/sources/" name "/"
3225 (version-major+minor version) "/"
3226 name "-" version ".tar.xz"))
3227 (patches (search-patches "vinagre-newer-freerdp.patch"
3228 "vinagre-newer-rdp-parameters.patch"))
3229 (sha256
3230 (base32
3231 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3232 (build-system glib-or-gtk-build-system)
3233 (arguments
3234 ;; Disable -Werror and such, to avoid build failures on compilation
3235 ;; warnings.
3236 '(#:configure-flags '("--enable-compile-warnings=minimum")
3237 #:phases
3238 (modify-phases %standard-phases
3239 (add-before 'install 'skip-gtk-update-icon-cache
3240 (lambda _
3241 ;; Don't create 'icon-theme.cache'
3242 (substitute* (find-files "." "^Makefile$")
3243 (("gtk-update-icon-cache") (which "true")))
3244 #t))
3245 (add-after 'unpack 'patch-configure
3246 (lambda _
3247 (substitute* "configure"
3248 (("freerdp") "freerdp2"))
3249 #t)))))
3250 (native-inputs
3251 `(("pkg-config" ,pkg-config)
3252 ("intltool" ,intltool)
3253 ("itstool" ,itstool)
3254 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3255 (inputs
3256 `(("libxml2" ,libxml2)
3257 ("gtk-vnc" ,gtk-vnc)
3258 ("gnome-keyring" ,gnome-keyring)
3259 ("libsecret" ,libsecret)
3260 ("freerdp" ,freerdp)
3261 ("spice" ,spice)
3262 ("spice-gtk" ,spice-gtk)
3263 ("telepathy-glib" ,telepathy-glib)
3264 ("vte" ,vte)))
3265 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3266 (synopsis "Remote desktop viewer for GNOME")
3267 (description "Vinagre is a remote display client supporting the VNC, SPICE
3268 and RDP protocols.")
3269 (license license:gpl3+)))
3270
3271 (define-public dconf
3272 (package
3273 (name "dconf")
3274 (version "0.32.0")
3275 (source (origin
3276 (method url-fetch)
3277 (uri (string-append
3278 "mirror://gnome/sources/" name "/"
3279 (version-major+minor version) "/"
3280 name "-" version ".tar.xz"))
3281 (patches (search-patches "dconf-meson-0.52.patch"))
3282 (sha256
3283 (base32
3284 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
3285 (build-system meson-build-system)
3286 (propagated-inputs
3287 ;; In Requires of dconf.pc.
3288 `(("glib" ,glib)))
3289 (inputs
3290 `(("gtk+" ,gtk+)
3291 ("dbus" ,dbus)))
3292 (native-inputs
3293 `(("bash-completion" ,bash-completion)
3294 ("libxslt" ,libxslt) ;for xsltproc
3295 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3296 ("docbook-xml" ,docbook-xml-4.2)
3297 ("docbook-xsl" ,docbook-xsl)
3298 ("glib:bin" ,glib "bin")
3299 ("gtk-doc" ,gtk-doc)
3300 ("pkg-config" ,pkg-config)
3301 ("vala" ,vala)))
3302 (arguments
3303 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3304 ; or /etc/machine-id.
3305 #:glib-or-gtk? #t
3306 #:configure-flags '("-Denable-gtk-doc=true")))
3307 (home-page "https://developer.gnome.org/dconf")
3308 (synopsis "Low-level GNOME configuration system")
3309 (description "Dconf is a low-level configuration system. Its main purpose
3310 is to provide a backend to GSettings on platforms that don't already have
3311 configuration storage systems.")
3312 (license license:lgpl2.1+)))
3313
3314 (define-public json-glib
3315 (package
3316 (name "json-glib")
3317 (version "1.4.4")
3318 (source (origin
3319 (method url-fetch)
3320 (uri (string-append "mirror://gnome/sources/" name "/"
3321 (version-major+minor version) "/"
3322 name "-" version ".tar.xz"))
3323 (sha256
3324 (base32
3325 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3326 (build-system meson-build-system)
3327 (native-inputs
3328 `(("gettext" ,gettext-minimal)
3329 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3330 ("gobject-introspection" ,gobject-introspection)
3331 ("pkg-config" ,pkg-config)))
3332 (propagated-inputs
3333 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3334 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3335 (synopsis "Compiler for the GObject type system")
3336 (description
3337 "JSON-GLib is a C library based on GLib providing serialization and
3338 deserialization support for the JavaScript Object Notation (JSON) format
3339 described by RFC 4627. It provides parser and generator GObject classes and
3340 various wrappers for the complex data types employed by JSON, such as arrays
3341 and objects.")
3342 (license license:lgpl2.1+)))
3343
3344 (define-public libxklavier
3345 (package
3346 (name "libxklavier")
3347 (version "5.4")
3348 (source (origin
3349 ;; Note: There's no tarball at ftp.gnome.org for this version.
3350 (method git-fetch)
3351 (uri (git-reference
3352 (url "https://anongit.freedesktop.org/git/libxklavier")
3353 (commit (string-append "libxklavier-" version))))
3354 (sha256
3355 (base32
3356 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3357 (file-name (git-file-name name version))))
3358 (build-system gnu-build-system)
3359 (arguments
3360 '(#:phases
3361 (modify-phases %standard-phases
3362 (add-after 'unpack 'no-configure
3363 (lambda* _
3364 (setenv "NOCONFIGURE" "1")
3365 #t)))
3366 #:configure-flags
3367 (list (string-append "--with-xkb-base="
3368 (assoc-ref %build-inputs "xkeyboard-config")
3369 "/share/X11/xkb")
3370 "--disable-xmodmap-support")))
3371 (native-inputs
3372 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3373 ("gobject-introspection" ,gobject-introspection)
3374 ("pkg-config" ,pkg-config)
3375 ("gtk-doc" ,gtk-doc)
3376 ("intltool" ,intltool)
3377 ("which" ,which)
3378 ("autoconf" ,autoconf)
3379 ("automake" ,automake)
3380 ("libtool" ,libtool)))
3381 (propagated-inputs
3382 ;; Required by libxklavier.pc.
3383 `(("glib" ,glib)
3384 ("libxml2" ,libxml2)))
3385 (inputs
3386 `(("iso-codes" ,iso-codes)
3387 ("libxi" ,libxi)
3388 ("libxkbfile" ,libxkbfile)
3389 ("xkbcomp" ,xkbcomp)
3390 ("xkeyboard-config" ,xkeyboard-config)))
3391 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3392 (synopsis "High-level API for X Keyboard Extension")
3393 (description
3394 "LibXklavier is a library providing high-level API for X Keyboard
3395 Extension known as XKB. This library is intended to support XFree86 and other
3396 commercial X servers. It is useful for creating XKB-related software (layout
3397 indicators etc).")
3398 (license license:lgpl2.0+)))
3399
3400 (define-public python2-rsvg
3401 ;; XXX: This is actually a subset of gnome-python-desktop.
3402 (package
3403 (name "python2-rsvg")
3404 (version "2.32.0")
3405 (source
3406 (origin
3407 (method url-fetch)
3408 (uri (string-append
3409 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3410 version ".tar.bz2"))
3411 (sha256
3412 (base32
3413 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3414 (build-system gnu-build-system)
3415 (native-inputs
3416 `(("pkg-config" ,pkg-config)))
3417 (inputs
3418 `(("python" ,python-2)
3419 ("python2-pygtk" ,python2-pygtk)
3420 ("librsvg" ,librsvg)))
3421 (home-page "https://www.gnome.org")
3422 (synopsis "Python bindings to librsvg")
3423 (description
3424 "This package provides Python bindings to librsvg, the SVG rendering
3425 library.")
3426
3427 ;; This is the license of the rsvg bindings. The license of each module
3428 ;; of gnome-python-desktop is given in 'COPYING'.
3429 (license license:lgpl2.1+)))
3430
3431 (define-public glib-networking
3432 (package
3433 (name "glib-networking")
3434 (version "2.60.3")
3435 (source (origin
3436 (method url-fetch)
3437 (uri (string-append "mirror://gnome/sources/glib-networking/"
3438 (version-major+minor version) "/"
3439 "glib-networking-" version ".tar.xz"))
3440 (sha256
3441 (base32
3442 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
3443 (build-system meson-build-system)
3444 (arguments
3445 `(#:configure-flags '("-Dlibproxy_support=false")))
3446 (native-inputs
3447 `(("pkg-config" ,pkg-config)
3448 ("intltool" ,intltool)))
3449 (inputs
3450 `(("glib" ,glib)
3451 ("gnutls" ,gnutls)
3452 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3453 (home-page "https://www.gnome.org")
3454 (synopsis "Network-related GIO modules")
3455 (description
3456 "This package contains various network related extensions for the GIO
3457 library.")
3458 (license license:lgpl2.0+)))
3459
3460 (define-public rest
3461 (package
3462 (name "rest")
3463 (version "0.8.1")
3464 (source (origin
3465 (method url-fetch)
3466 (uri (string-append "mirror://gnome/sources/rest/"
3467 (version-major+minor version) "/"
3468 name "-" version ".tar.xz"))
3469 (sha256
3470 (base32
3471 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3472 (build-system gnu-build-system)
3473 (arguments
3474 '(#:tests? #f ; tests require internet connection
3475 #:configure-flags
3476 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3477 (native-inputs
3478 `(("glib-mkenums" ,glib "bin")
3479 ("gobject-introspection" ,gobject-introspection)
3480 ("pkg-config" ,pkg-config)))
3481 (propagated-inputs
3482 ;; rest-0.7.pc refers to all these.
3483 `(("glib" ,glib)
3484 ("libsoup" ,libsoup)
3485 ("libxml2" ,libxml2)))
3486 (home-page "https://www.gtk.org/")
3487 (synopsis "RESTful web api query library")
3488 (description
3489 "This library was designed to make it easier to access web services that
3490 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3491 libxml to ease remote use of the RESTful API.")
3492 (license license:lgpl2.1+)))
3493
3494 (define-public libsoup
3495 (package
3496 (name "libsoup")
3497 (version "2.68.3")
3498 (source (origin
3499 (method url-fetch)
3500 (uri (string-append "mirror://gnome/sources/libsoup/"
3501 (version-major+minor version) "/"
3502 "libsoup-" version ".tar.xz"))
3503 (sha256
3504 (base32
3505 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
3506 (build-system meson-build-system)
3507 (outputs '("out" "doc"))
3508 (arguments
3509 `(#:modules ((guix build utils)
3510 (guix build meson-build-system)
3511 (ice-9 popen))
3512
3513 #:configure-flags '("-Dgtk_doc=true")
3514 #:phases
3515 (modify-phases %standard-phases
3516 (add-after 'unpack 'adjust-tests
3517 (lambda _
3518 ;; This test fails due to missing /etc/nsswitch.conf
3519 ;; in the build environment.
3520 (substitute* "tests/socket-test.c"
3521 ((".*/sockets/unconnected.*") ""))
3522
3523 ;; These fail because "subdomain.localhost" does not resolve in
3524 ;; the build environment.
3525 (substitute* "tests/hsts-test.c"
3526 ((".*/hsts/basic.*") "")
3527 ((".*/hsts/subdomains.*") "")
3528 ((".*/hsts/superdomain.*") "")
3529 ((".*/hsts/utf8-address.*") ""))
3530 (substitute* "tests/hsts-db-test.c"
3531 ((".*/hsts-db/subdomains.*") ""))
3532
3533 ;; Generate a self-signed certificate that has "localhost" as its
3534 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3535 ;; 3.5.12, tests such as "ssl-tests" fail:
3536 ;;
3537 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3538 ;;
3539 ;; 'certtool' is interactive so we have to pipe it the answers.
3540 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3541 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3542 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3543 (for-each (lambda (line)
3544 (display line pipe)
3545 (newline pipe))
3546 '("" ;Common name
3547 "" ;UID
3548 "Guix" ;Organizational unit name
3549 "GNU" ;Organization name
3550 "" ;Locality name
3551 "" ;State or province
3552 "" ;Country
3553 "" ;subject's domain component (DC)
3554 "" ;E-mail
3555 "" ;serial number
3556 "-1" ;expiration time
3557 "N" ;belong to authority?
3558 "N" ;web client certificate?
3559 "N" ;IPsec IKE?
3560 "Y" ;web server certificate?
3561 "localhost" ;dnsName of subject
3562 "" ;dnsName of subject (end)
3563 "" ;URI of subject
3564 "127.0.0.1" ;IP address of subject
3565 "" ;signing?
3566 "" ;encryption (RSA)?
3567 "" ;data encryption?
3568 "" ;sign OCSP requests?
3569 "" ;sign code?
3570 "" ;time stamping?
3571 "" ;email protection?
3572 "" ;URI of the CRL distribution point
3573 "y" ;above info OK?
3574 ))
3575 (close-pipe pipe))
3576 #t))
3577 (add-after 'install 'move-doc
3578 (lambda* (#:key outputs #:allow-other-keys)
3579 (let ((out (assoc-ref outputs "out"))
3580 (doc (assoc-ref outputs "doc")))
3581 (mkdir-p (string-append doc "/share"))
3582 (copy-recursively (string-append out "/share/gtk-doc")
3583 (string-append doc "/share/gtk-doc"))
3584 (delete-file-recursively (string-append out "/share/gtk-doc"))
3585 #t))))))
3586 (native-inputs
3587 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3588 ("gobject-introspection" ,gobject-introspection)
3589 ("gtk-doc" ,gtk-doc)
3590 ("intltool" ,intltool)
3591 ("pkg-config" ,pkg-config)
3592 ("python" ,python-wrapper)
3593 ("vala" ,vala)
3594 ;; These are needed for the tests.
3595 ;; FIXME: Add PHP once available.
3596 ("curl" ,curl)
3597 ("gnutls" ,gnutls) ;for 'certtool'
3598 ("httpd" ,httpd)))
3599 (propagated-inputs
3600 ;; libsoup-2.4.pc refers to all these.
3601 `(("brotli" ,google-brotli)
3602 ("glib" ,glib)
3603 ("libpsl" ,libpsl)
3604 ("libxml2" ,libxml2)
3605 ("sqlite" ,sqlite)
3606 ("zlib" ,zlib)))
3607 (inputs
3608 `(("glib-networking" ,glib-networking)
3609 ("mit-krb5" ,mit-krb5)))
3610 (home-page "https://live.gnome.org/LibSoup/")
3611 (synopsis "GLib-based HTTP Library")
3612 (description
3613 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3614 and the GLib main loop, to integrate well with GNOME applications.")
3615 (license license:lgpl2.0+)))
3616
3617 (define-public libsecret
3618 (package
3619 (name "libsecret")
3620 (version "0.19.1")
3621 (source (origin
3622 (method url-fetch)
3623 (uri (string-append
3624 "mirror://gnome/sources/libsecret/"
3625 (version-major+minor version) "/"
3626 "libsecret-" version ".tar.xz"))
3627 (sha256
3628 (base32
3629 "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
3630 (build-system gnu-build-system)
3631 (outputs '("out" "doc"))
3632 (arguments
3633 `(#:tests? #f ; FIXME: Testing hangs.
3634 #:configure-flags
3635 (list (string-append "--with-html-dir="
3636 (assoc-ref %outputs "doc")
3637 "/share/gtk-doc/html"))))
3638 (native-inputs
3639 `(("gettext" ,gettext-minimal)
3640 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3641 ("gobject-introspection" ,gobject-introspection)
3642 ("pkg-config" ,pkg-config)
3643 ("vala" ,vala)
3644 ("xsltproc" ,libxslt)))
3645 ;; These are needed for the tests.
3646 ;; FIXME: Add gjs once available.
3647 ;("dbus" ,dbus)
3648 ;("python2" ,python-2)
3649 ;("python2-dbus" ,python2-dbus)
3650 ;("python2-pygobject" ,python2-pygobject)
3651 ;("python2-pygobject-2" ,python2-pygobject-2)))
3652 (propagated-inputs
3653 `(("glib" ,glib))) ; required by libsecret-1.pc
3654 (inputs
3655 `(("docbook-xsl" ,docbook-xsl)
3656 ("libgcrypt" ,libgcrypt)
3657 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3658 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3659 (synopsis "GObject bindings for \"Secret Service\" API")
3660 (description
3661 "Libsecret is a GObject based library for storing and retrieving passwords
3662 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3663 (license license:lgpl2.1+)))
3664
3665 (define-public five-or-more
3666 (package
3667 (name "five-or-more")
3668 (version "3.32.0")
3669 (source
3670 (origin
3671 (method url-fetch)
3672 (uri (string-append "mirror://gnome/sources/" name "/"
3673 (version-major+minor version) "/"
3674 name "-" version ".tar.xz"))
3675 (sha256
3676 (base32
3677 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3678 (build-system meson-build-system)
3679 (arguments
3680 '(#:glib-or-gtk? #t
3681 #:phases
3682 (modify-phases %standard-phases
3683 (add-after 'unpack 'skip-gtk-update-icon-cache
3684 (lambda _
3685 (substitute* "meson_post_install.py"
3686 (("gtk-update-icon-cache") (which "true")))
3687 #t)))))
3688 (native-inputs
3689 `(("pkg-config" ,pkg-config)
3690 ("appstream-glib" ,appstream-glib)
3691 ("desktop-file-utils" ,desktop-file-utils)
3692 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3693 ("intltool" ,intltool)
3694 ("itstool" ,itstool)
3695 ("vala" ,vala)
3696 ("xmllint" ,libxml2)))
3697 (inputs
3698 `(("gtk+" ,gtk+)
3699 ("libgnome-games-support" ,libgnome-games-support)
3700 ("librsvg" ,librsvg)))
3701 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3702 (synopsis "Logic puzzle game")
3703 (description "Five or More is a game where you try to align
3704 five or more objects of the same color and shape causing them to disappear.
3705 On every turn more objects will appear, until the board is full.
3706 Try to last as long as possible.")
3707 (license license:gpl2+)))
3708
3709 (define-public gnome-mines
3710 (package
3711 (name "gnome-mines")
3712 (version "3.32.2")
3713 (source
3714 (origin
3715 (method url-fetch)
3716 (uri (string-append "mirror://gnome/sources/" name "/"
3717 (version-major+minor version) "/"
3718 name "-" version ".tar.xz"))
3719 (sha256
3720 (base32
3721 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
3722 (build-system meson-build-system)
3723 (arguments
3724 '(#:glib-or-gtk? #t
3725 #:phases
3726 (modify-phases %standard-phases
3727 (add-after 'unpack 'skip-gtk-update-icon-cache
3728 (lambda _
3729 (substitute* "build-aux/meson_post_install.py"
3730 (("gtk-update-icon-cache") (which "true")))
3731 #t)))))
3732 (native-inputs
3733 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3734 ("pkg-config" ,pkg-config)
3735 ("desktop-file-utils" ,desktop-file-utils)
3736 ("intltool" ,intltool)
3737 ("itstool" ,itstool)
3738 ("vala" ,vala)
3739 ("yelp" ,yelp)
3740 ("appstream-glib" ,appstream-glib)))
3741 (inputs
3742 `(("gtk+" ,gtk+)
3743 ("libgnome-games-support" ,libgnome-games-support)
3744 ("librsvg" ,librsvg)))
3745 (home-page "https://wiki.gnome.org/Apps/Mines")
3746 (synopsis "Minesweeper game")
3747 (description
3748 "Mines (previously gnomine) is a puzzle game where you locate mines
3749 floating in an ocean using only your brain and a little bit of luck.")
3750 (license license:gpl2+)))
3751
3752 (define-public gnome-sudoku
3753 (package
3754 (name "gnome-sudoku")
3755 (version "3.32.0")
3756 (source
3757 (origin
3758 (method url-fetch)
3759 (uri (string-append "mirror://gnome/sources/" name "/"
3760 (version-major+minor version) "/"
3761 name "-" version ".tar.xz"))
3762 (sha256
3763 (base32
3764 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3765 (build-system meson-build-system)
3766 (arguments
3767 '(#:glib-or-gtk? #t
3768 #:phases
3769 (modify-phases %standard-phases
3770 (add-after 'unpack 'skip-gtk-update-icon-cache
3771 (lambda _
3772 (substitute* "build-aux/post_install.py"
3773 (("gtk-update-icon-cache") (which "true")))
3774 #t)))))
3775 (native-inputs
3776 `(("pkg-config" ,pkg-config)
3777 ("desktop-file-utils" ,desktop-file-utils)
3778 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3779 ("intltool" ,intltool)
3780 ("itstool" ,itstool)
3781 ("vala" ,vala)
3782 ("xmllint" ,libxml2)))
3783 (inputs
3784 `(("gtk+" ,gtk+)
3785 ("json-glib" ,json-glib)
3786 ("libgee" ,libgee)
3787 ("librsvg" ,librsvg)
3788 ("qqwing" ,qqwing)))
3789 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3790 (synopsis "Japanese logic game")
3791 (description
3792 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3793 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3794 possible while still providing features that make playing difficult Sudoku
3795 more fun.")
3796 (license license:gpl2+)))
3797
3798 (define-public gnome-terminal
3799 (package
3800 (name "gnome-terminal")
3801 (version "3.32.2")
3802 (source
3803 (origin
3804 (method url-fetch)
3805 (uri (string-append "mirror://gnome/sources/" name "/"
3806 (version-major+minor version) "/"
3807 name "-" version ".tar.xz"))
3808 (sha256
3809 (base32
3810 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
3811 (build-system glib-or-gtk-build-system)
3812 (arguments
3813 '(#:configure-flags
3814 (list "--disable-migration" "--disable-search-provider"
3815 "--without-nautilus-extension")
3816 #:phases
3817 (modify-phases %standard-phases
3818 (add-before 'configure 'patch-/bin/true
3819 (lambda _
3820 (substitute* "configure"
3821 (("/bin/true") (which "true"))))))))
3822 (native-inputs
3823 `(("pkg-config" ,pkg-config)
3824 ("desktop-file-utils" ,desktop-file-utils)
3825 ("intltool" ,intltool)
3826 ("itstool" ,itstool)
3827 ("xmllint" ,libxml2)))
3828 (propagated-inputs
3829 `(("dconf" ,dconf)))
3830 (inputs
3831 `(("gtk+" ,gtk+)
3832 ("vte" ,vte)
3833 ("gnutls" ,gnutls)
3834 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3835 ("util-linux" ,util-linux "lib")
3836 ("vala" ,vala)))
3837 (home-page "https://wiki.gnome.org/Apps/Terminal")
3838 (synopsis "Terminal emulator")
3839 (description
3840 "GNOME Terminal is a terminal emulator application for accessing a
3841 UNIX shell environment which can be used to run programs available on
3842 your system.
3843
3844 It supports several profiles, multiple tabs and implements several
3845 keyboard shortcuts.")
3846 (license license:gpl3+)))
3847
3848 (define-public colord
3849 (package
3850 (name "colord")
3851 (version "1.4.4")
3852 (source
3853 (origin
3854 (method url-fetch)
3855 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
3856 "colord-" version ".tar.xz"))
3857 (sha256
3858 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
3859 (build-system meson-build-system)
3860 (arguments
3861 '(;; FIXME: One test fails:
3862 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3863 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3864 ;; application/x-zerosize
3865 #:tests? #f
3866 #:glib-or-gtk? #t
3867 #:configure-flags (list "-Dlocalstatedir=/var"
3868 ;; No dep on systemd.
3869 "-Dsystemd=false"
3870 ;; Wants to install to global completion dir;
3871 ;; punt.
3872 "-Dbash_completion=false"
3873 "-Ddaemon_user=colord"
3874 "-Dsane=true"
3875 "-Dvapi=true"
3876 ;; Requires spotread.
3877 "-Dargyllcms_sensor=false"
3878 ;; TODO: Requires docbook2x.
3879 "-Dman=false")
3880 #:phases
3881 (modify-phases %standard-phases
3882 (add-before 'configure 'patch-build-system
3883 (lambda* (#:key outputs #:allow-other-keys)
3884 (substitute* "rules/meson.build"
3885 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
3886 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
3887 #t))
3888 (add-before 'configure 'set-sqlite3-file-name
3889 (lambda* (#:key inputs #:allow-other-keys)
3890 ;; "colormgr dump" works by invoking the "sqlite3" command.
3891 ;; Record its absolute file name.
3892 (let ((sqlite (assoc-ref inputs "sqlite")))
3893 (substitute* "client/cd-util.c"
3894 (("\"sqlite3\"")
3895 (string-append "\"" sqlite "/bin/sqlite3\"")))
3896 #t))))))
3897 (native-inputs
3898 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
3899 ("gettext" ,gettext-minimal)
3900 ("gobject-introspection" ,gobject-introspection)
3901 ("gtk-doc" ,gtk-doc)
3902 ("pkg-config" ,pkg-config)
3903 ("vala" ,vala)))
3904 (propagated-inputs
3905 ;; colord.pc refers to all these.
3906 `(("glib" ,glib)
3907 ("lcms" ,lcms)
3908 ("udev" ,eudev)))
3909 (inputs
3910 `(("dbus-glib" ,dbus-glib)
3911 ("gusb" ,gusb)
3912 ("libgudev" ,libgudev)
3913 ("libusb" ,libusb)
3914 ("polkit" ,polkit)
3915 ("python" ,python-wrapper)
3916 ("sqlite" ,sqlite)
3917 ("sane-backends" ,sane-backends)))
3918 (home-page "https://www.freedesktop.org/software/colord/")
3919 (synopsis "Color management service")
3920 (description "Colord is a system service that makes it easy to manage,
3921 install and generate color profiles to accurately color manage input and
3922 output devices.")
3923 (license license:gpl2+)))
3924
3925 (define-public geoclue
3926 (package
3927 (name "geoclue")
3928 (version "2.4.8")
3929 (source
3930 (origin
3931 (method url-fetch)
3932 (uri (string-append "https://www.freedesktop.org/software/" name
3933 "/releases/" (version-major+minor version) "/"
3934 name "-" version ".tar.xz"))
3935 (sha256
3936 (base32
3937 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
3938 (patches (search-patches "geoclue-config.patch"))))
3939 (build-system glib-or-gtk-build-system)
3940 (arguments
3941 '(;; The tests want to run the system bus.
3942 #:tests? #f
3943 #:configure-flags (list ;; Disable bits requiring ModemManager.
3944 "--disable-3g-source"
3945 "--disable-cdma-source"
3946 "--disable-modem-gps-source"
3947 "--with-dbus-service-user=geoclue")
3948 #:phases
3949 (modify-phases %standard-phases
3950 (add-before 'configure 'patch-/bin/true
3951 (lambda _
3952 (substitute* "configure"
3953 (("/bin/true") (which "true")))
3954 #t)))))
3955 (native-inputs
3956 `(("pkg-config" ,pkg-config)
3957 ("gobject-introspection" ,gobject-introspection)
3958 ("intltool" ,intltool)))
3959 (inputs
3960 `(("avahi" ,avahi)
3961 ("glib" ,glib)
3962 ("json-glib" ,json-glib)
3963 ("libsoup" ,libsoup)))
3964 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
3965 (synopsis "Geolocation service")
3966 (description "Geoclue is a D-Bus service that provides location
3967 information. The primary goal of the Geoclue project is to make creating
3968 location-aware applications as simple as possible, while the secondary goal is
3969 to ensure that no application can access location information without explicit
3970 permission from user.")
3971 (license license:gpl2+)))
3972
3973 (define-public geocode-glib
3974 (package
3975 (name "geocode-glib")
3976 (version "3.26.1")
3977 (source (origin
3978 (method url-fetch)
3979 (uri (string-append "mirror://gnome/sources/geocode-glib/"
3980 (version-major+minor version) "/"
3981 "geocode-glib-" version ".tar.xz"))
3982 (sha256
3983 (base32
3984 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
3985 (build-system meson-build-system)
3986 (arguments
3987 `(#:phases
3988 (modify-phases %standard-phases
3989 ;; The tests require a bunch of locales.
3990 (add-before 'check 'set-locales
3991 (lambda* (#:key inputs #:allow-other-keys)
3992 (setenv "GUIX_LOCPATH"
3993 (string-append (assoc-ref inputs "glibc-locales")
3994 "/lib/locale"))
3995 #t)))))
3996 (native-inputs
3997 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3998 ("glibc-locales" ,glibc-locales) ; for tests
3999 ("gettext" ,gettext-minimal)
4000 ("gobject-introspection" ,gobject-introspection)
4001 ("gtk-doc" ,gtk-doc)
4002 ("pkg-config" ,pkg-config)
4003 ("json-glib" ,json-glib)))
4004 (propagated-inputs
4005 ;; geocode-glib-1.0.pc refers to GIO.
4006 `(("glib" ,glib)))
4007 (inputs
4008 `(("libsoup" ,libsoup)))
4009 (home-page "https://github.com/GNOME/geocode-glib/")
4010 (synopsis "Geocoding and reverse-geocoding library")
4011 (description
4012 "geocode-glib is a convenience library for geocoding (finding longitude,
4013 and latitude from an address) and reverse geocoding (finding an address from
4014 coordinates) using the Nominatim service. geocode-glib caches requests for
4015 faster results and to avoid unnecessary server load.")
4016 (license license:lgpl2.0+)))
4017
4018 (define-public upower
4019 (package
4020 (name "upower")
4021 (version "0.99.11")
4022 (source (origin
4023 (method url-fetch)
4024 (uri (string-append "https://upower.freedesktop.org/releases/"
4025 "upower-" version ".tar.xz"))
4026 (sha256
4027 (base32
4028 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4029 (patches (search-patches "upower-builddir.patch"))))
4030 (build-system glib-or-gtk-build-system)
4031 (arguments
4032 '( ;; The tests want to contact the system bus, which can't be done in the
4033 ;; build environment. The integration test can run, but the last of
4034 ;; the up-self-tests doesn't. Disable tests for now.
4035 #:tests? #f
4036 #:configure-flags (list "--localstatedir=/var"
4037 (string-append "--with-udevrulesdir="
4038 (assoc-ref %outputs "out")
4039 "/lib/udev/rules.d"))))
4040 (native-inputs
4041 `(("gobject-introspection" ,gobject-introspection)
4042 ("pkg-config" ,pkg-config)
4043 ("intltool" ,intltool)
4044 ("python" ,python)
4045
4046 ;; For man pages.
4047 ("libxslt" ,libxslt) ;for 'xsltproc'
4048 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4049 ("docbook-xsl" ,docbook-xsl)))
4050 (inputs
4051 `(("dbus-glib" ,dbus-glib)
4052 ("libgudev" ,libgudev)
4053 ("libusb" ,libusb)))
4054 (propagated-inputs
4055 ;; In Requires of upower-glib.pc.
4056 `(("glib" ,glib)))
4057 (home-page "https://upower.freedesktop.org/")
4058 (synopsis "System daemon for managing power devices")
4059 (description
4060 "UPower is an abstraction for enumerating power devices,
4061 listening to device events and querying history and statistics. Any
4062 application or service on the system can access the org.freedesktop.UPower
4063 service via the system message bus.")
4064 (license license:gpl2+)))
4065
4066 (define-public libgweather
4067 (package
4068 (name "libgweather")
4069 (version "3.28.3")
4070 (source (origin
4071 (method url-fetch)
4072 (uri (string-append "mirror://gnome/sources/" name "/"
4073 (version-major+minor version) "/"
4074 name "-" version ".tar.xz"))
4075 (sha256
4076 (base32
4077 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
4078 (build-system meson-build-system)
4079 (arguments
4080 `(#:tests? #f ; one of two tests requires network access
4081 #:configure-flags
4082 `(,(string-append "-Dzoneinfo_dir="
4083 (assoc-ref %build-inputs "tzdata")
4084 "/share/zoneinfo"))))
4085 (native-inputs
4086 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4087 ("gobject-introspection" ,gobject-introspection)
4088 ("pkg-config" ,pkg-config)
4089 ("vala" ,vala)
4090 ("intltool" ,intltool)))
4091 (propagated-inputs
4092 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4093 ;; libsoup.
4094 `(("gtk+" ,gtk+)
4095 ("gdk-pixbuf" ,gdk-pixbuf)
4096 ("libxml2" ,libxml2)
4097 ("libsoup" ,libsoup)
4098 ("geocode-glib" ,geocode-glib)))
4099 (inputs
4100 `(("tzdata" ,tzdata)))
4101 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4102 (synopsis "Location, time zone, and weather library for GNOME")
4103 (description
4104 "libgweather is a library to access weather information from online
4105 services for numerous locations.")
4106 (license license:gpl2+)))
4107
4108 (define-public gnome-settings-daemon
4109 (package
4110 (name "gnome-settings-daemon")
4111 (version "3.32.1")
4112 (source
4113 (origin
4114 (method url-fetch)
4115 (uri (string-append "mirror://gnome/sources/" name "/"
4116 (version-major+minor version) "/"
4117 name "-" version ".tar.xz"))
4118 (sha256
4119 (base32
4120 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
4121 (build-system meson-build-system)
4122 (arguments
4123 `(#:glib-or-gtk? #t
4124 #:configure-flags
4125 (list (string-append "-Dudev_dir="
4126 (assoc-ref %outputs "out")
4127 "/lib/udev/rules.d/")
4128 ;; Otherwise, the RUNPATH will lack the final path component.
4129 (string-append "-Dc_link_args=-Wl,-rpath="
4130 (assoc-ref %outputs "out")
4131 "/lib/gnome-settings-daemon-3.0"))
4132 ;; Color management test can't reach the colord system service.
4133 #:tests? #f))
4134 (native-inputs
4135 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4136 ("pkg-config" ,pkg-config)
4137 ("intltool" ,intltool)
4138 ("xsltproc" ,libxslt)
4139 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4140 ("docbook-xml" ,docbook-xml-4.2)
4141 ("docbook-xsl" ,docbook-xsl)))
4142 (inputs
4143 `(("alsa-lib" ,alsa-lib)
4144 ("colord" ,colord)
4145 ("libgudev" ,libgudev)
4146 ("upower" ,upower)
4147 ("polkit" ,polkit)
4148 ("pulseaudio" ,pulseaudio)
4149 ("libcanberra" ,libcanberra)
4150 ("libx11" ,libx11)
4151 ("libxtst" ,libxtst)
4152 ("lcms" ,lcms)
4153 ("libnotify" ,libnotify)
4154 ("geoclue" ,geoclue)
4155 ("geocode-glib" ,geocode-glib)
4156 ("libgweather" ,libgweather)
4157 ("gnome-desktop" ,gnome-desktop)
4158 ("nss" ,nss)
4159 ("cups" ,cups)
4160 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4161 ("libwacom" ,libwacom)
4162 ("librsvg" ,librsvg)
4163 ("xf86-input-wacom" ,xf86-input-wacom)
4164 ("wayland" ,wayland)
4165 ("network-manager" ,network-manager)))
4166 (home-page "https://www.gnome.org")
4167 (synopsis "GNOME settings daemon")
4168 (description
4169 "This package contains the daemon responsible for setting the various
4170 parameters of a GNOME session and the applications that run under it. It
4171 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4172 settings, themes, mouse settings, and startup of other daemons.")
4173 (license license:gpl2+)))
4174
4175 (define-public totem-pl-parser
4176 (package
4177 (name "totem-pl-parser")
4178 (version "3.26.3")
4179 (source (origin
4180 (method url-fetch)
4181 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4182 (version-major+minor version) "/"
4183 "totem-pl-parser-" version ".tar.xz"))
4184 (sha256
4185 (base32
4186 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4187 (build-system meson-build-system)
4188 (arguments
4189 ;; FIXME: Tests require gvfs.
4190 `(#:tests? #f))
4191 (native-inputs
4192 `(("intltool" ,intltool)
4193 ("glib" ,glib "bin")
4194 ("gobject-introspection" ,gobject-introspection)
4195 ("pkg-config" ,pkg-config)))
4196 (propagated-inputs
4197 `(("glib" ,glib)
4198 ("gmime" ,gmime)
4199 ("libarchive" ,libarchive)
4200 ("libgcrypt" ,libgcrypt)
4201 ("libxml2" ,libxml2)))
4202 (inputs
4203 `(("libsoup" ,libsoup)))
4204 (home-page "https://projects.gnome.org/totem")
4205 (synopsis "Library to parse and save media playlists for GNOME")
4206 (description "Totem-pl-parser is a GObjects-based library to parse and save
4207 playlists in a variety of formats.")
4208 (license license:lgpl2.0+)))
4209
4210 (define-public aisleriot
4211 (package
4212 (name "aisleriot")
4213 (version "3.22.9")
4214 (source (origin
4215 (method url-fetch)
4216 (uri (string-append "mirror://gnome/sources/aisleriot/"
4217 (version-major+minor version) "/"
4218 "aisleriot-" version ".tar.xz"))
4219 (sha256
4220 (base32
4221 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4222 (build-system glib-or-gtk-build-system)
4223 (arguments
4224 '(#:configure-flags
4225 '("--with-platform=gtk-only"
4226 "--with-card-theme-formats=svg")))
4227 (native-inputs
4228 `(("desktop-file-utils" ,desktop-file-utils)
4229 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4230 ("intltool" ,intltool)
4231 ("itstool" ,itstool)
4232 ("pkg-config" ,pkg-config)
4233 ("xmllint" ,libxml2)))
4234 (inputs
4235 `(("gtk+" ,gtk+)
4236 ("guile" ,guile-2.2)
4237 ("libcanberra" ,libcanberra)
4238 ("librsvg" ,librsvg)))
4239 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4240 (synopsis "Solitaire card games")
4241 (description
4242 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4243 which are easy to play with the aid of a mouse.")
4244 (license license:gpl3+)))
4245
4246 (define-public amtk
4247 (package
4248 (name "amtk")
4249 (version "5.0.1")
4250 (source (origin
4251 (method url-fetch)
4252 (uri (string-append "mirror://gnome/sources/amtk/"
4253 (version-major+minor version) "/"
4254 "amtk-" version ".tar.xz"))
4255 (sha256
4256 (base32
4257 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
4258 (build-system gnu-build-system)
4259 (arguments
4260 '(#:configure-flags '("--enable-gtk-doc")))
4261 (native-inputs
4262 `(("gobject-introspection" ,gobject-introspection)
4263 ("glib:bin" ,glib "bin") ; for glib-mkenums
4264 ("gtk-doc" ,gtk-doc)
4265 ("pkg-config" ,pkg-config)))
4266 (inputs
4267 `(("glib" ,glib)
4268 ("gtk+" ,gtk+)))
4269 (home-page "https://wiki.gnome.org/Projects/Amtk")
4270 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4271 (description
4272 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4273 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4274 both a traditional UI or a modern UI with a GtkHeaderBar.")
4275 (license license:lgpl2.1+)))
4276
4277 (define-public devhelp
4278 (package
4279 (name "devhelp")
4280 (version "3.32.0")
4281 (source (origin
4282 (method url-fetch)
4283 (uri (string-append "mirror://gnome/sources/" name "/"
4284 (version-major+minor version) "/"
4285 name "-" version ".tar.xz"))
4286 (sha256
4287 (base32
4288 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
4289 (build-system meson-build-system)
4290 (arguments
4291 '(#:glib-or-gtk? #t
4292 #:phases
4293 (modify-phases %standard-phases
4294 (add-after 'unpack 'skip-gtk-update-icon-cache
4295 ;; Don't create 'icon-theme.cache'.
4296 (lambda _
4297 (substitute* "meson_post_install.py"
4298 (("gtk-update-icon-cache") "true"))
4299 #t)))))
4300 (native-inputs
4301 `(("intltool" ,intltool)
4302 ("itstool" ,itstool)
4303 ("gobject-introspection" ,gobject-introspection)
4304 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4305 ("pkg-config" ,pkg-config)))
4306 (inputs
4307 `(("amtk" ,amtk)
4308 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4309 ("webkitgtk" ,webkitgtk)))
4310 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4311 (synopsis "API documentation browser for GNOME")
4312 (description
4313 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4314 natively with GTK-Doc (the API reference system developed for GTK+ and used
4315 throughout GNOME for API documentation).")
4316 (license license:gpl2+)))
4317
4318 (define-public cogl
4319 (package
4320 (name "cogl")
4321 (version "1.22.4")
4322 (source
4323 (origin
4324 (method url-fetch)
4325 (uri (string-append "mirror://gnome/sources/cogl/"
4326 (version-major+minor version) "/"
4327 "cogl-" version ".tar.xz"))
4328 (sha256
4329 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
4330 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4331 ;; cogl, corresponding changes may be appropriate in mutter as well.
4332 (build-system gnu-build-system)
4333 (native-inputs
4334 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4335 ("gobject-introspection" ,gobject-introspection)
4336 ;;("xorg-server" ,xorg-server) ; for the test suite
4337 ("pkg-config" ,pkg-config)))
4338 (propagated-inputs
4339 `(("glib" ,glib)
4340 ("gdk-pixbuf" ,gdk-pixbuf)
4341 ("libx11" ,libx11)
4342 ("libxext" ,libxext)
4343 ("libxfixes" ,libxfixes)
4344 ("libxdamage" ,libxdamage)
4345 ("libxcomposite" ,libxcomposite)
4346 ("libxrandr" ,libxrandr)))
4347 (inputs
4348 `(("mesa" ,mesa)
4349 ("cairo" ,cairo)
4350 ("pango" ,pango)
4351 ("gstreamer" ,gstreamer)
4352 ("gst-plugins-base" ,gst-plugins-base)
4353 ("wayland" ,wayland)))
4354 (arguments
4355 `(#:configure-flags (list "--enable-cogl-gst"
4356 "--enable-wayland-egl-platform"
4357 "--enable-wayland-egl-server"
4358
4359 ;; Arrange to pass an absolute file name to
4360 ;; dlopen for libGL.so.
4361 (string-append "--with-gl-libname="
4362 (assoc-ref %build-inputs "mesa")
4363 "/lib/libGL.so"))
4364 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4365 ;; _FontTransOpen: Unable to Parse address
4366 ;; ${prefix}/share/fonts/X11/misc/
4367 #:tests? #f
4368 #; #:phases
4369 #;
4370 (modify-phases %standard-phases
4371 (add-before 'check 'start-xorg-server
4372 (lambda* (#:key inputs #:allow-other-keys)
4373 ;; The test suite requires a running X server.
4374 (system (format #f "~a/bin/Xvfb :1 &"
4375 (assoc-ref inputs "xorg-server")))
4376 (setenv "DISPLAY" ":1")
4377 #t)))))
4378 (home-page "http://www.cogl3d.org")
4379 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4380 (description
4381 "Cogl is a small library for using 3D graphics hardware to draw pretty
4382 pictures. The API departs from the flat state machine style of OpenGL and is
4383 designed to make it easy to write orthogonal components that can render
4384 without stepping on each others toes.")
4385 (license (list license:expat ; most of the code
4386 license:bsd-3 ; cogl/cogl-point-in-poly.c
4387 license:sgifreeb2.0 ; cogl-path/tesselator/
4388 license:asl2.0)))) ; examples/android/
4389
4390 (define-public clutter
4391 (package
4392 (name "clutter")
4393 (version "1.26.2")
4394 (source
4395 (origin
4396 (method url-fetch)
4397 (uri (string-append "mirror://gnome/sources/" name "/"
4398 (version-major+minor version) "/"
4399 name "-" version ".tar.xz"))
4400 (sha256
4401 (base32
4402 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4403 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4404 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4405 (build-system gnu-build-system)
4406 (outputs '("out"
4407 "doc")) ;9 MiB of gtk-doc HTML pages
4408 (native-inputs
4409 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4410 ("gobject-introspection" ,gobject-introspection)
4411 ("pkg-config" ,pkg-config)
4412 ("xsltproc" ,libxslt)))
4413 (propagated-inputs
4414 `(("cogl" ,cogl)
4415 ("cairo" ,cairo)
4416 ("atk" ,atk)
4417 ("gtk+" ,gtk+)
4418 ("json-glib" ,json-glib)
4419 ("glib" ,glib)
4420 ("libxcomposite" ,libxcomposite)
4421 ("libxdamage" ,libxdamage)
4422 ("libxext" ,libxext)
4423 ("xinput" ,xinput)))
4424 (inputs
4425 `(("libxkbcommon" ,libxkbcommon)
4426 ("udev" ,eudev)))
4427 (arguments
4428 `(#:configure-flags (list "--enable-x11-backend=yes"
4429
4430 ;; This produces share/doc/{clutter,cally}.
4431 (string-append "--with-html-dir="
4432 (assoc-ref %outputs "doc")
4433 "/share/doc"))
4434 ;; XXX FIXME: Get test suite working. It would probably fail in the
4435 ;; same way the cogl tests fail, since clutter is based on cogl.
4436 #:tests? #f))
4437 (home-page "http://www.clutter-project.org")
4438 (synopsis "OpenGL-based interactive canvas library")
4439 (description
4440 "Clutter is an OpenGL-based interactive canvas library, designed for
4441 creating fast, mainly 2D single window applications such as media box UIs,
4442 presentations, kiosk style applications and so on.")
4443 (license license:lgpl2.0+)))
4444
4445 (define-public clutter-gtk
4446 (package
4447 (name "clutter-gtk")
4448 (version "1.8.4")
4449 (source
4450 (origin
4451 (method url-fetch)
4452 (uri (string-append "mirror://gnome/sources/" name "/"
4453 (version-major+minor version) "/"
4454 name "-" version ".tar.xz"))
4455 (sha256
4456 (base32
4457 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4458 (build-system gnu-build-system)
4459 (native-inputs
4460 `(("pkg-config" ,pkg-config)
4461 ("gobject-introspection" ,gobject-introspection)))
4462 (propagated-inputs
4463 ;; clutter-gtk.pc refers to all these.
4464 `(("clutter" ,clutter)
4465 ("gtk+" ,gtk+)))
4466 (home-page "http://www.clutter-project.org")
4467 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4468 (description
4469 "Clutter is an OpenGL-based interactive canvas library, designed for
4470 creating fast, mainly 2D single window applications such as media box UIs,
4471 presentations, kiosk style applications and so on.")
4472 (license license:lgpl2.0+)))
4473
4474 (define-public clutter-gst
4475 (package
4476 (name "clutter-gst")
4477 (version "3.0.27")
4478 (source
4479 (origin
4480 (method url-fetch)
4481 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4482 (version-major+minor version) "/"
4483 "clutter-gst-" version ".tar.xz"))
4484 (sha256
4485 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4486 (build-system gnu-build-system)
4487 (native-inputs
4488 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4489 ("pkg-config" ,pkg-config)
4490 ("gobject-introspection" ,gobject-introspection)))
4491 (inputs
4492 `(("clutter" ,clutter)
4493 ("gstreamer" ,gstreamer)
4494 ("gst-plugins-base" ,gst-plugins-base)))
4495 (home-page "http://www.clutter-project.org")
4496 (synopsis "Integration library for using GStreamer with Clutter")
4497 (description
4498 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4499 It provides a GStreamer sink to upload frames to GL and an actor that
4500 implements the ClutterGstPlayer interface using playbin. Clutter is an
4501 OpenGL-based interactive canvas library.")
4502 (license license:lgpl2.0+)))
4503
4504 (define-public libchamplain
4505 (package
4506 (name "libchamplain")
4507 (version "0.12.16")
4508 (source (origin
4509 (method url-fetch)
4510 (uri (string-append
4511 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4512 version ".tar.xz"))
4513 (sha256
4514 (base32
4515 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4516 (build-system gnu-build-system)
4517 (arguments '(#:configure-flags '("--enable-vala")))
4518 (native-inputs
4519 `(("gobject-introspection" ,gobject-introspection)
4520 ("pkg-config" ,pkg-config)
4521 ("vala" ,vala)))
4522 (propagated-inputs
4523 `(("libsoup" ,libsoup)
4524 ("sqlite" ,sqlite)
4525 ("clutter" ,clutter)
4526 ("clutter-gtk" ,clutter-gtk)
4527 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4528 ("cairo" ,cairo)
4529 ("gtk+3" ,gtk+)
4530 ("glib" ,glib)))
4531 (home-page "https://projects.gnome.org/libchamplain/")
4532 (synopsis "C library providing a ClutterActor to display maps")
4533 (description
4534 "libchamplain is a C library providing a ClutterActor to display maps.
4535 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4536 and Perl bindings are also available. It supports numerous free map sources
4537 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4538 (license license:lgpl2.1+)))
4539
4540 (define-public gom
4541 (package
4542 (name "gom")
4543 (version "0.3.2")
4544 (source
4545 (origin
4546 (method url-fetch)
4547 (uri (string-append "mirror://gnome/sources/gom/"
4548 (version-major+minor version) "/"
4549 "gom-" version ".tar.xz"))
4550 (sha256
4551 (base32
4552 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4553 (build-system gnu-build-system)
4554 (native-inputs
4555 `(("intltool" ,intltool)
4556 ("pkg-config" ,pkg-config)
4557 ("gobject-introspection" ,gobject-introspection)))
4558 (inputs
4559 `(("glib" ,glib)
4560 ("gdk-pixbuf" ,gdk-pixbuf)
4561 ("sqlite" ,sqlite)))
4562 ;; XXX TODO: Figure out how to run the test suite.
4563 (arguments `(#:tests? #f))
4564 (home-page "https://wiki.gnome.org/Projects/Gom")
4565 (synopsis "Object mapper from GObjects to SQLite")
4566 (description
4567 "Gom provides an object mapper from GObjects to SQLite. It helps you
4568 write applications that need to store structured data as well as make complex
4569 queries upon that data.")
4570 (license license:lgpl2.1+)))
4571
4572 (define-public libgnome-games-support
4573 (package
4574 (name "libgnome-games-support")
4575 (version "1.4.4")
4576 (source (origin
4577 (method url-fetch)
4578 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4579 (version-major+minor version) "/"
4580 "libgnome-games-support-" version ".tar.xz"))
4581 (sha256
4582 (base32
4583 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4584 (build-system gnu-build-system)
4585 (arguments
4586 '(#:phases
4587 (modify-phases %standard-phases
4588 (add-before 'check 'pre-check
4589 (lambda _
4590 ;; Tests require a writable HOME.
4591 (setenv "HOME" (getcwd))
4592 #t)))))
4593 (native-inputs
4594 `(("intltool" ,intltool)
4595 ("pkg-config" ,pkg-config)
4596 ("vala" ,vala)))
4597 (propagated-inputs
4598 ;; Required by libgnome-games-support-1.0.pc
4599 `(("gtk+" ,gtk+)
4600 ("libgee" ,libgee)))
4601 (home-page "https://www.gnome.org/")
4602 (synopsis "Useful functionality shared among GNOME games")
4603 (description
4604 "libgnome-games-support is a small library intended for internal use by
4605 GNOME Games, but it may be used by others.")
4606 (license license:lgpl3+)))
4607
4608 (define-public gnome-klotski
4609 (package
4610 (name "gnome-klotski")
4611 (version "3.32.0")
4612 (source (origin
4613 (method url-fetch)
4614 (uri (string-append "mirror://gnome/sources/" name "/"
4615 (version-major+minor version) "/"
4616 name "-" version ".tar.xz"))
4617 (sha256
4618 (base32
4619 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4620 (build-system meson-build-system)
4621 (arguments
4622 '(#:glib-or-gtk? #t
4623 #:phases
4624 (modify-phases %standard-phases
4625 (add-after 'unpack 'skip-gtk-update-icon-cache
4626 ;; Don't create 'icon-theme.cache'.
4627 (lambda _
4628 (substitute* "build-aux/meson_post_install.py"
4629 (("gtk-update-icon-cache") (which "true")))
4630 #t)))))
4631 (native-inputs
4632 `(("desktop-file-utils" ,desktop-file-utils)
4633 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4634 ("intltool" ,intltool)
4635 ("itstool" ,itstool)
4636 ("pkg-config" ,pkg-config)
4637 ("vala" ,vala)
4638 ("xmllint" ,libxml2)))
4639 (inputs
4640 `(("gtk+" ,gtk+)
4641 ("libgnome-games-support" ,libgnome-games-support)
4642 ("librsvg" ,librsvg)))
4643 (home-page "https://wiki.gnome.org/Apps/Klotski")
4644 (synopsis "Sliding block puzzles")
4645 (description
4646 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4647 the patterned block to the area bordered by green markers. To do so, you will
4648 need to slide other blocks out of the way. Complete each puzzle in as few moves
4649 as possible!")
4650 (license license:gpl2+)))
4651
4652 (define-public grilo
4653 (package
4654 (name "grilo")
4655 (version "0.3.10")
4656 (source
4657 (origin
4658 (method url-fetch)
4659 (uri (string-append "mirror://gnome/sources/" name "/"
4660 (version-major+minor version) "/"
4661 name "-" version ".tar.xz"))
4662 (sha256
4663 (base32
4664 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4665 (build-system meson-build-system)
4666 (native-inputs
4667 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4668 ("intltool" ,intltool)
4669 ("pkg-config" ,pkg-config)
4670 ("gobject-introspection" ,gobject-introspection)
4671 ("gtk-doc" ,gtk-doc)
4672 ("vala" ,vala)))
4673 (inputs
4674 `(("cyrus-sasl" ,cyrus-sasl)
4675 ("glib" ,glib)
4676 ("gtk+" ,gtk+)
4677 ("libxml2" ,libxml2)
4678 ("liboauth" ,liboauth)
4679 ("libsoup" ,libsoup)
4680 ("totem-pl-parser" ,totem-pl-parser)))
4681 (native-search-paths
4682 (list (search-path-specification
4683 (variable "GRL_PLUGIN_PATH")
4684 (files (list (string-append "lib/grilo-"
4685 (version-major+minor version)))))))
4686 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4687 (synopsis "Framework for discovering and browsing media")
4688 (description
4689 "Grilo is a framework focused on making media discovery and browsing easy
4690 for application developers.")
4691 (license license:lgpl2.1+)))
4692
4693 (define-public grilo-plugins
4694 (package
4695 (name "grilo-plugins")
4696 (version "0.3.10")
4697 (source
4698 (origin
4699 (method url-fetch)
4700 (uri (string-append "mirror://gnome/sources/" name "/"
4701 (version-major+minor version) "/"
4702 name "-" version ".tar.xz"))
4703 (sha256
4704 (base32
4705 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4706 (build-system meson-build-system)
4707 (native-inputs
4708 `(("gettext" ,gettext-minimal)
4709 ("glib:bin" ,glib "bin")
4710 ("gtk+:bin" ,gtk+ "bin")
4711 ("itstool" ,itstool)
4712 ("pkg-config" ,pkg-config)))
4713 ;; TODO: ahavi, gstreamer
4714 (inputs
4715 `(("grilo" ,grilo)
4716 ;("gmime" ,gmime) ; unused
4717 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4718 ("gom" ,gom)
4719 ;("gssdp" ,gssdp) ; unused
4720 ;("gupnp" ,gupnp) ; unused
4721 ;("gupnp-av" ,gupnp-av) ; unused
4722 ("json-glib" ,json-glib)
4723 ("avahi" ,avahi)
4724 ("libgdata" ,libgdata)
4725 ("libmediaart" ,libmediaart)
4726 ;("librest" ,rest) ; unused
4727 ("libsoup" ,libsoup)
4728 ("totam-pl-parser" ,totem-pl-parser)
4729 ("tracker" ,tracker))) ; unused because it's too old
4730 (arguments
4731 `(#:glib-or-gtk? #t
4732 ;;Disable lua-factory as it needs missing dependencies
4733 #:configure-flags '("-Denable-lua-factory=no")))
4734 (home-page "https://live.gnome.org/Grilo")
4735 (synopsis "Plugins for the Grilo media discovery library")
4736 (description
4737 "Grilo is a framework focused on making media discovery and browsing easy
4738 for application developers. This package provides plugins for common media
4739 discovery protocols.")
4740 (license license:lgpl2.1+)))
4741
4742 (define-public totem
4743 (package
4744 (name "totem")
4745 (version "3.32.1")
4746 (source
4747 (origin
4748 (method url-fetch)
4749 (uri (string-append "mirror://gnome/sources/" name "/"
4750 (version-major+minor version) "/"
4751 name "-" version ".tar.xz"))
4752 (sha256
4753 (base32
4754 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
4755 (build-system meson-build-system)
4756 (native-inputs
4757 `(("pkg-config" ,pkg-config)
4758 ("desktop-file-utils" ,desktop-file-utils)
4759 ("gobject-introspection" ,gobject-introspection)
4760 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4761 ("intltool" ,intltool)
4762 ("itstool" ,itstool)
4763 ("xmllint" ,libxml2)
4764 ("python-pylint" ,python-pylint)
4765 ("xorg-server" ,xorg-server-for-tests)))
4766 (propagated-inputs
4767 `(("dconf" ,dconf)))
4768 (inputs
4769 `(("gtk+" ,gtk+)
4770 ("gdk-pixbuf" ,gdk-pixbuf)
4771 ("atk" ,atk)
4772 ("cairo" ,cairo)
4773 ("dbus-glib" ,dbus-glib)
4774 ("clutter" ,clutter)
4775 ("clutter-gtk" ,clutter-gtk)
4776 ("clutter-gst" ,clutter-gst)
4777 ("xorgproto" ,xorgproto)
4778 ("libxxf86vm" ,libxxf86vm)
4779 ("libxtst" ,libxtst)
4780 ("libxrandr" ,libxrandr)
4781 ("libxml2" ,libxml2)
4782 ("libsoup" ,libsoup)
4783 ("libpeas" ,libpeas)
4784 ("librsvg" ,librsvg)
4785 ("lirc" ,lirc)
4786 ("gnome-desktop" ,gnome-desktop)
4787 ("gstreamer" ,gstreamer)
4788 ("gst-plugins-base" ,gst-plugins-base)
4789 ("gst-plugins-good" ,gst-plugins-good)
4790 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4791 ("adwaita-icon-theme" ,adwaita-icon-theme)
4792 ("python" ,python)
4793 ("python-pygobject" ,python-pygobject)
4794 ("totem-pl-parser" ,totem-pl-parser)
4795 ("grilo" ,grilo)
4796 ("grilo-plugins" ,grilo-plugins)
4797 ("vala" ,vala)))
4798 (arguments
4799 `(#:glib-or-gtk? #t
4800
4801 ;; Disable automatic GStreamer plugin installation via PackageKit and
4802 ;; all that.
4803 #:configure-flags '("-D" "enable-easy-codec-installation=no"
4804
4805 ;; Do not build .a files for the plugins, it's
4806 ;; completely useless. This saves 2 MiB.
4807 "--default-library" "shared")
4808 #:phases
4809 (modify-phases %standard-phases
4810 (add-after 'unpack 'skip-gtk-update-icon-cache
4811 ;; Don't create 'icon-theme.cache'.
4812 (lambda _
4813 (substitute* "meson_post_install.py"
4814 (("gtk-update-icon-cache") "true"))
4815 #t))
4816 (add-before
4817 'install 'disable-cache-generation
4818 (lambda _
4819 (setenv "DESTDIR" "/")
4820 #t))
4821 (add-before
4822 'check 'pre-check
4823 (lambda _
4824 ;; Tests require a running X server.
4825 (system "Xvfb :1 &")
4826 (setenv "DISPLAY" ":1")
4827 #t))
4828 (add-after
4829 'install 'wrap-totem
4830 (lambda* (#:key inputs outputs #:allow-other-keys)
4831 (let ((out (assoc-ref outputs "out"))
4832 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4833 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4834 (wrap-program (string-append out "/bin/totem")
4835 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4836 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4837 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4838 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4839 #t)))))
4840 (home-page "https://wiki.gnome.org/Apps/Videos")
4841 (synopsis "Simple media player for GNOME based on GStreamer")
4842 (description "Totem is a simple yet featureful media player for GNOME
4843 which can read a large number of file formats.")
4844 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4845 ;; to be used and distributed together with GStreamer and Totem. See
4846 ;; file://COPYING in the source distribution for details.
4847 (license license:gpl2+)))
4848
4849 (define-public rhythmbox
4850 (package
4851 (name "rhythmbox")
4852 (version "3.4.3")
4853 (source (origin
4854 (method url-fetch)
4855 (uri (string-append "mirror://gnome/sources/" name "/"
4856 (version-major+minor version) "/"
4857 name "-" version ".tar.xz"))
4858 (sha256
4859 (base32
4860 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
4861 (build-system glib-or-gtk-build-system)
4862 (arguments
4863 `(#:configure-flags
4864 (list "--enable-lirc"
4865 "--enable-python"
4866 "--enable-vala"
4867 "--with-brasero"
4868 "--with-gudev"
4869 "--with-libsecret")
4870 #:phases
4871 (modify-phases %standard-phases
4872 (add-after
4873 'install 'wrap-rhythmbox
4874 (lambda* (#:key inputs outputs #:allow-other-keys)
4875 (let ((out (assoc-ref outputs "out"))
4876 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4877 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4878 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
4879 (python-path (getenv "PYTHONPATH")))
4880 (wrap-program (string-append out "/bin/rhythmbox")
4881 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
4882 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4883 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
4884 `("PYTHONPATH" ":" prefix (,python-path))))
4885 #t)))))
4886 (propagated-inputs
4887 `(("dconf" ,dconf)))
4888 (native-inputs
4889 `(("itstool" ,itstool)
4890 ("intltool" ,intltool)
4891 ("glib" ,glib "bin")
4892 ("gobject-introspection" ,gobject-introspection)
4893 ("desktop-file-utils" ,desktop-file-utils)
4894 ("pkg-config" ,pkg-config)
4895 ("xmllint" ,libxml2)))
4896 (inputs
4897 `(("json-glib" ,json-glib)
4898 ("tdb" ,tdb)
4899 ("gnome-desktop" ,gnome-desktop)
4900 ("python" ,python)
4901 ("python-pygobject" ,python2-pygobject)
4902 ("vala" ,vala)
4903 ("gmime" ,gmime)
4904 ("adwaita-icon-theme" ,adwaita-icon-theme)
4905 ("grilo" ,grilo)
4906 ("grilo-plugins" ,grilo-plugins)
4907 ("gstreamer" ,gstreamer)
4908 ("gst-plugins-base" ,gst-plugins-base)
4909 ("gst-plugins-good" ,gst-plugins-good)
4910 ("totem-pl-parser" ,totem-pl-parser)
4911 ("libgudev" ,libgudev)
4912 ;;("libmtp" ,libmtp) FIXME: Not detected
4913 ("libsecret" ,libsecret)
4914 ("libsoup" ,libsoup)
4915 ("libnotify" ,libnotify)
4916 ("libpeas" ,libpeas)
4917 ("lirc" ,lirc)
4918 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
4919 ;;("clutter" ,clutter)
4920 ;;("clutter-gtk" ,clutter-gtk)
4921 ;;("clutter-gst" ,clutter-gst)
4922 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4923 ("atk" ,atk)
4924 ("pango" ,pango)
4925 ("gtk+" ,gtk+)
4926 ;; TODO:
4927 ;; * libgpod
4928 ;; * mx
4929 ("brasero" ,brasero)))
4930 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
4931 (synopsis "Music player for GNOME")
4932 (description "Rhythmbox is a music playing application for GNOME. It
4933 supports playlists, song ratings, and any codecs installed through gstreamer.")
4934 (license license:gpl2+)))
4935
4936 (define-public eog
4937 (package
4938 (name "eog")
4939 (version "3.32.2")
4940 (source (origin
4941 (method url-fetch)
4942 (uri (string-append "mirror://gnome/sources/" name "/"
4943 (version-major+minor version) "/"
4944 name "-" version ".tar.xz"))
4945 (sha256
4946 (base32
4947 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
4948 (build-system meson-build-system)
4949 (arguments
4950 `(#:configure-flags
4951 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
4952 (list (string-append "-Dc_link_args=-Wl,-rpath="
4953 (assoc-ref %outputs "out") "/lib/eog"))
4954 #:phases
4955 (modify-phases %standard-phases
4956 (add-after 'unpack 'skip-gtk-update-icon-cache
4957 ;; Don't create 'icon-theme.cache'.
4958 (lambda _
4959 (substitute* "meson_post_install.py"
4960 (("gtk-update-icon-cache") "true"))
4961 #t))
4962 (add-after 'install 'wrap-eog
4963 (lambda* (#:key outputs #:allow-other-keys)
4964 (let ((out (assoc-ref outputs "out"))
4965 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
4966 (wrap-program (string-append out "/bin/eog")
4967 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
4968 #t)))))
4969 (propagated-inputs
4970 `(("dconf" ,dconf)))
4971 (native-inputs
4972 `(("intltool" ,intltool)
4973 ("itstool" ,itstool)
4974 ("glib" ,glib "bin")
4975 ("gobject-introspection" ,gobject-introspection)
4976 ("pkg-config" ,pkg-config)
4977 ("xmllint" ,libxml2)))
4978 (inputs
4979 `(("gnome-desktop" ,gnome-desktop)
4980 ("shared-mime-info" ,shared-mime-info)
4981 ("adwaita-icon-theme" ,adwaita-icon-theme)
4982 ("exempi" ,exempi)
4983 ("lcms" ,lcms)
4984 ("libexif" ,libexif)
4985 ("libpeas" ,libpeas)
4986 ("libjpeg" ,libjpeg)
4987 ("librsvg" ,librsvg)
4988 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4989 ("gtk+" ,gtk+)))
4990 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
4991 (synopsis "GNOME image viewer")
4992 (description "Eye of GNOME is the GNOME image viewer. It
4993 supports image conversion, rotation, and slideshows.")
4994 (license license:gpl2+)))
4995
4996 (define-public eog-plugins
4997 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
4998 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
4999 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5000 ;; 'XDG_DATA_DIRS' appropriately set.
5001 (package
5002 (name "eog-plugins")
5003 (version "3.26.4")
5004 (source (origin
5005 (method url-fetch)
5006 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5007 (version-major+minor version) "/"
5008 "eog-plugins-" version ".tar.xz"))
5009 (sha256
5010 (base32
5011 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5012 (build-system gnu-build-system)
5013 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5014 (synopsis "Extensions for the Eye of GNOME image viewer")
5015 (native-inputs
5016 `(("pkg-config" ,pkg-config)
5017 ("gettext" ,gnu-gettext)))
5018 (inputs
5019 `(("eog" ,eog)
5020 ("glib" ,glib)
5021 ("gtk+" ,gtk+)
5022 ("libpeas" ,libpeas)
5023 ("libexif" ,libexif)
5024 ("libchamplain" ,libchamplain)))
5025 (description
5026 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5027 notably:
5028
5029 @itemize
5030 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5031 @item @dfn{Map}, which displays a map of where the picture was taken on the
5032 side panel;
5033 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5034 @end itemize\n")
5035
5036 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5037 ;; long suspicious byte stream that goes to a
5038 ;; ".gresource.eog_postasa_plugin" ELF section.
5039 (license license:gpl2+)))
5040
5041 (define-public libgudev
5042 (package
5043 (name "libgudev")
5044 (version "232")
5045 (source (origin
5046 (method url-fetch)
5047 (uri (string-append "mirror://gnome/sources/" name "/"
5048 version "/" name "-" version ".tar.xz"))
5049 (sha256
5050 (base32
5051 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5052 (build-system gnu-build-system)
5053 (arguments
5054 '(#:configure-flags
5055 ;; umockdev depends on libgudev.
5056 (list "--disable-umockdev")))
5057 (native-inputs
5058 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5059 ("gobject-introspection" ,gobject-introspection)
5060 ("pkg-config" ,pkg-config)))
5061 (propagated-inputs
5062 `(("glib" ,glib))) ; required by gudev-1.0.pc
5063 (inputs
5064 `(("udev" ,eudev)))
5065 (home-page "https://wiki.gnome.org/Projects/libgudev")
5066 (synopsis "GObject bindings for libudev")
5067 (description
5068 "This library provides GObject bindings for libudev. It was originally
5069 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5070 (license license:lgpl2.1+)))
5071
5072 (define-public gvfs
5073 (package
5074 (name "gvfs")
5075 (version "1.40.1")
5076 (source (origin
5077 (method url-fetch)
5078 (uri (string-append "mirror://gnome/sources/gvfs/"
5079 (version-major+minor version) "/"
5080 "gvfs-" version ".tar.xz"))
5081 (sha256
5082 (base32
5083 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5084 (build-system meson-build-system)
5085 (arguments
5086 '(#:glib-or-gtk? #t
5087 #:configure-flags
5088 (list "-Dsystemduserunitdir=no"
5089 "-Dtmpfilesdir=no"
5090 ;; Otherwise, the RUNPATH will lack the final path component.
5091 (string-append "-Dc_link_args=-Wl,-rpath="
5092 (assoc-ref %outputs "out") "/lib/gvfs"))))
5093 (native-inputs
5094 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5095 ("gettext" ,gettext-minimal)
5096 ("gtk-doc" ,gtk-doc)
5097 ("pkg-config" ,pkg-config)
5098 ("xsltproc" ,libxslt)))
5099 (inputs
5100 `(("avahi" ,avahi)
5101 ("docbook-xml" ,docbook-xml-4.2)
5102 ("docbook-xsl" ,docbook-xsl)
5103 ("dbus" ,dbus)
5104 ("elogind" ,elogind)
5105 ("fuse" ,fuse)
5106 ("gcr" ,gcr)
5107 ("glib" ,glib)
5108 ("gnome-online-accounts" ,gnome-online-accounts)
5109 ("libarchive" ,libarchive)
5110 ("libbluray" ,libbluray)
5111 ("libcap" ,libcap)
5112 ("libcdio-paranoia" ,libcdio-paranoia)
5113 ("libgcrypt" ,libgcrypt)
5114 ("libgdata" ,libgdata)
5115 ("libgphoto2" ,libgphoto2)
5116 ("libgudev" ,libgudev)
5117 ("libimobiledevice" ,libimobiledevice)
5118 ("libmtp" ,libmtp)
5119 ("libnfs" ,libnfs)
5120 ("libsecret" ,libsecret)
5121 ("libsmbclient" ,samba)
5122 ("libsoup" ,libsoup)
5123 ("libxml2" ,libxml2)
5124 ("openssh" ,openssh)
5125 ("polkit" ,polkit)
5126 ("udisks" ,udisks)))
5127 (home-page "https://wiki.gnome.org/gvfs/")
5128 (synopsis "Userspace virtual file system for GIO")
5129 (description
5130 "GVFS is a userspace virtual file system designed to work with the I/O
5131 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5132 to all applications using the GIO API. It also supports exposing the GVFS
5133 mounts to non-GIO applications using FUSE.
5134
5135 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5136 DAV, and others.")
5137 (license license:lgpl2.0+)))
5138
5139 (define-public gusb
5140 (package
5141 (name "gusb")
5142 (version "0.3.0")
5143 (source (origin
5144 (method git-fetch)
5145 (uri (git-reference
5146 (url "https://github.com/hughsie/libgusb.git")
5147 (commit version)))
5148 (file-name (git-file-name name version))
5149 (sha256
5150 (base32
5151 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5152 (build-system meson-build-system)
5153 (native-inputs
5154 `(("gobject-introspection" ,gobject-introspection)
5155 ("pkg-config" ,pkg-config)
5156 ("vala" ,vala)
5157 ("gtk-doc" ,gtk-doc)))
5158 (propagated-inputs
5159 ;; Both of these are required by gusb.pc.
5160 `(("glib" ,glib)
5161 ("libusb" ,libusb)))
5162 (arguments
5163 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5164 (home-page "https://github.com/hughsie/libgusb")
5165 (synopsis "GLib binding for libusb1")
5166 (description
5167 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5168 asynchronous control, bulk and interrupt transfers with proper cancellation
5169 and integration into a mainloop. This makes it easy to integrate low level
5170 USB transfers with your high-level application or system daemon.")
5171 (license license:lgpl2.1+)))
5172
5173 (define-public simple-scan
5174 (package
5175 (name "simple-scan")
5176 (version "3.34.2")
5177 (source
5178 (origin
5179 (method url-fetch)
5180 (uri (string-append "mirror://gnome/sources/simple-scan/"
5181 (version-major+minor version) "/"
5182 "simple-scan-" version ".tar.xz"))
5183 (sha256
5184 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
5185 (build-system meson-build-system)
5186 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5187 (arguments
5188 '(#:glib-or-gtk? #t))
5189 (inputs
5190 `(("gtk" ,gtk+)
5191 ("zlib" ,zlib)
5192 ("cairo" ,cairo)
5193 ("colord" ,colord)
5194 ("gdk-pixbuf" ,gdk-pixbuf)
5195 ("gusb" ,gusb)
5196 ("libsane" ,sane-backends)))
5197 (native-inputs
5198 `(("gettext" ,gettext-minimal)
5199 ("itstool" ,itstool)
5200 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5201 ("pkg-config" ,pkg-config)
5202 ("vala" ,vala)
5203 ("xmllint" ,libxml2)))
5204 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5205 (synopsis "Document and image scanner")
5206 (description
5207 "Document Scanner is an easy-to-use application that lets you connect your
5208 scanner and quickly capture images and documents in an appropriate format. It
5209 supports any scanner for which a suitable SANE driver is available, which is
5210 almost all of them.")
5211 (license license:gpl3+)))
5212
5213 (define-public eolie
5214 (package
5215 (name "eolie")
5216 (version "0.9.63")
5217 (source (origin
5218 (method url-fetch)
5219 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
5220 "uploads/d42b466752729a0d3fa828a721e25043/"
5221 "eolie-" version ".tar.xz"))
5222 (sha256
5223 (base32
5224 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
5225 (build-system meson-build-system)
5226 (arguments
5227 `(#:glib-or-gtk? #t
5228 #:phases
5229 (modify-phases %standard-phases
5230 (add-after 'unpack 'skip-gtk-update-icon-cache
5231 ;; Don't create 'icon-theme.cache'.
5232 (lambda _
5233 (substitute* "meson_post_install.py"
5234 (("gtk-update-icon-cache") "true"))
5235 #t))
5236 (add-after 'wrap 'wrap-more
5237 (lambda* (#:key inputs outputs #:allow-other-keys)
5238 (let* ((out (assoc-ref outputs "out"))
5239 ;; These libraries must be on LD_LIBRARY_PATH.
5240 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5241 "atk" "gtk+" "gsettings-desktop-schemas"
5242 "gobject-introspection"))
5243 (path (string-join
5244 (map (lambda (lib)
5245 (string-append (assoc-ref inputs lib) "/lib"))
5246 libs)
5247 ":")))
5248 (wrap-program (string-append out "/bin/eolie")
5249 `("LD_LIBRARY_PATH" ":" prefix (,path))
5250 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5251 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5252 #t)))))
5253 (native-inputs
5254 `(("intltool" ,intltool)
5255 ("itstool" ,itstool)
5256 ("pkg-config" ,pkg-config)
5257 ("python" ,python)
5258 ("glib:bin" ,glib "bin")))
5259 (inputs
5260 `(("gobject-introspection" ,gobject-introspection)
5261 ("glib-networking" ,glib-networking)
5262 ("cairo" ,cairo)
5263 ("gtk+" ,gtk+)
5264 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5265 ("python" ,python-wrapper)
5266 ("python-dateutil" ,python-dateutil)
5267 ("python-pyfxa" ,python-pyfxa)
5268 ("python-pygobject" ,python-pygobject)
5269 ("python-pycairo" ,python-pycairo)
5270 ("python-pycrypto" ,python-pycrypto)
5271 ("libsecret" ,libsecret)
5272 ("gtkspell3" ,gtkspell3)
5273 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5274 ("webkitgtk" ,webkitgtk)))
5275 (home-page "https://wiki.gnome.org/Apps/Eolie")
5276 (synopsis "Web browser for GNOME")
5277 (description
5278 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5279 a secret password store, an adblocker, and a modern UI.")
5280 (license license:gpl3+)))
5281
5282 (define-public epiphany
5283 (package
5284 (name "epiphany")
5285 (version "3.32.5")
5286 (source (origin
5287 (method url-fetch)
5288 (uri (string-append "mirror://gnome/sources/epiphany/"
5289 (version-major+minor version) "/"
5290 "epiphany-" version ".tar.xz"))
5291 (sha256
5292 (base32
5293 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
5294
5295 (build-system meson-build-system)
5296 (arguments
5297 ;; FIXME: tests run under Xvfb, but fail with:
5298 ;; /src/bookmarks/ephy-bookmarks/create:
5299 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5300 ;; subsystem
5301 ;; FAIL
5302 '(#:tests? #f
5303 #:glib-or-gtk? #t
5304 #:phases
5305 (modify-phases %standard-phases
5306 (add-after 'unpack 'skip-gtk-update-icon-cache
5307 ;; Don't create 'icon-theme.cache'.
5308 (lambda _
5309 (substitute* "post_install.py"
5310 (("gtk-update-icon-cache") "true"))
5311 #t)))
5312 #:configure-flags
5313 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5314 (list (string-append "-Dc_link_args=-Wl,-rpath="
5315 (assoc-ref %outputs "out") "/lib/epiphany"))))
5316 (propagated-inputs
5317 `(("dconf" ,dconf)))
5318 (native-inputs
5319 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5320 ("glib:bin" ,glib "bin") ; for glib-mkenums
5321 ("intltool" ,intltool)
5322 ("itstool" ,itstool)
5323 ("pkg-config" ,pkg-config)
5324 ("xmllint" ,libxml2)))
5325 (inputs
5326 `(("avahi" ,avahi)
5327 ("gcr" ,gcr)
5328 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5329 ("glib-networking" ,glib-networking)
5330 ("gnome-desktop" ,gnome-desktop)
5331 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5332 ("json-glib" ,json-glib)
5333 ("iso-codes" ,iso-codes)
5334 ("libdazzle" ,libdazzle)
5335 ("libnotify" ,libnotify)
5336 ("libsecret" ,libsecret)
5337 ("libxslt" ,libxslt)
5338 ("nettle" ,nettle) ; for hogweed
5339 ("sqlite" ,sqlite)
5340 ("webkitgtk" ,webkitgtk)))
5341 (home-page "https://wiki.gnome.org/Apps/Web")
5342 (synopsis "GNOME web browser")
5343 (description
5344 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5345 principles are simplicity and standards compliance.")
5346 (license license:gpl2+)))
5347
5348 (define-public d-feet
5349 (package
5350 (name "d-feet")
5351 (version "0.3.14")
5352 (source (origin
5353 (method url-fetch)
5354 (uri (string-append "mirror://gnome/sources/" name "/"
5355 (version-major+minor version) "/"
5356 name "-" version ".tar.xz"))
5357 (sha256
5358 (base32
5359 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5360 (build-system glib-or-gtk-build-system)
5361 (arguments
5362 '(#:out-of-source? #f ; tests need to run in the source directory.
5363 #:phases
5364 (modify-phases %standard-phases
5365 (add-before
5366 'check 'pre-check
5367 (lambda _
5368 ;; The test suite requires a running X server.
5369 (system "Xvfb :1 &")
5370 (setenv "DISPLAY" ":1")
5371 ;; Don't fail on missing '/etc/machine-id'.
5372 (setenv "DBUS_FATAL_WARNINGS" "0")
5373 ;; tests.py and window.py don't meet E402:
5374 ;; E402 module level import not at top of file
5375 (substitute* "src/tests/Makefile"
5376 (("--ignore=E123") "--ignore=E123,E402"))
5377 #t))
5378 (add-after
5379 'install 'wrap-program
5380 (lambda* (#:key outputs #:allow-other-keys)
5381 (let ((prog (string-append (assoc-ref outputs "out")
5382 "/bin/d-feet")))
5383 (wrap-program prog
5384 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5385 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5386 #t))))))
5387 (native-inputs
5388 `(("intltool" ,intltool)
5389 ("itstool" ,itstool)
5390 ("pkg-config" ,pkg-config)
5391 ("python-pep8" ,python-pep8)
5392 ("xmllint" ,libxml2)
5393 ("xorg-server" ,xorg-server-for-tests)))
5394 (inputs
5395 `(("gobject-introspection" ,gobject-introspection)
5396 ("gtk+" ,gtk+)
5397 ("python" ,python-wrapper)
5398 ("hicolor-icon-theme" ,hicolor-icon-theme)
5399 ("python-pygobject" ,python-pygobject)))
5400 (home-page "https://wiki.gnome.org/Apps/DFeet")
5401 (synopsis "D-Bus debugger")
5402 (description
5403 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5404 of running programs and invoke methods on those interfaces.")
5405 (license license:gpl2+)))
5406
5407 (define-public yelp-xsl
5408 (package
5409 (name "yelp-xsl")
5410 (version "3.32.1")
5411 (source (origin
5412 (method url-fetch)
5413 (uri (string-append "mirror://gnome/sources/" name "/"
5414 (version-major+minor version) "/"
5415 name "-" version ".tar.xz"))
5416 (sha256
5417 (base32
5418 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
5419 (build-system gnu-build-system)
5420 (native-inputs
5421 `(("intltool" ,intltool)
5422 ("itstool" ,itstool)
5423 ("xmllint" ,libxml2)))
5424 (home-page "https://wiki.gnome.org/Apps/Yelp")
5425 (synopsis "XSL stylesheets for Yelp")
5426 (description
5427 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5428 to format Docbook and Mallard documents.")
5429 (license license:gpl2+)))
5430
5431 (define-public yelp
5432 (package
5433 (name "yelp")
5434 (version "3.32.2")
5435 (source (origin
5436 (method url-fetch)
5437 (uri (string-append "mirror://gnome/sources/" name "/"
5438 (version-major+minor version) "/"
5439 name "-" version ".tar.xz"))
5440 (sha256
5441 (base32
5442 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5443 (build-system glib-or-gtk-build-system)
5444 (native-inputs
5445 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5446 ("intltool" ,intltool)
5447 ("itstool" ,itstool)
5448 ("pkg-config" ,pkg-config)))
5449 (propagated-inputs
5450 `(("dconf" ,dconf)))
5451 (inputs
5452 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5453 ("libxslt" ,libxslt)
5454 ("sqlite" ,sqlite)
5455 ("webkitgtk" ,webkitgtk)
5456 ("yelp-xsl" ,yelp-xsl)))
5457 (home-page "https://wiki.gnome.org/Apps/Yelp")
5458 (synopsis "GNOME help browser")
5459 (description
5460 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5461 man, info, and HTML documents. It can locate documents according to the
5462 freedesktop.org help system specification.")
5463 (license license:gpl2+)))
5464
5465 (define-public yelp-tools
5466 (package
5467 (name "yelp-tools")
5468 (version "3.28.0")
5469 (source (origin
5470 (method url-fetch)
5471 (uri (string-append "mirror://gnome/sources/" name "/"
5472 (version-major+minor version) "/"
5473 name "-" version ".tar.xz"))
5474 (sha256
5475 (base32
5476 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
5477 (build-system gnu-build-system)
5478 (native-inputs
5479 `(("pkg-config" ,pkg-config)))
5480 (propagated-inputs
5481 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5482 `(("itstool" ,itstool)
5483 ("xmllint" ,libxml2)
5484 ("xsltproc" ,libxslt)))
5485 (inputs
5486 `(("yelp-xsl" ,yelp-xsl)))
5487 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5488 (synopsis "Yelp documentation tools")
5489 (description
5490 "Yelp-tools is a collection of scripts and build utilities to help create,
5491 manage, and publish documentation for Yelp and the web. Most of the heavy
5492 lifting is done by packages like yelp-xsl and itstool. This package just
5493 wraps things up in a developer-friendly way.")
5494 (license license:gpl2+)))
5495
5496 (define-public libgee
5497 (package
5498 (name "libgee")
5499 (version "0.20.2")
5500 (source (origin
5501 (method url-fetch)
5502 (uri (string-append "mirror://gnome/sources/libgee/"
5503 (version-major+minor version) "/"
5504 "libgee-" version ".tar.xz"))
5505 (sha256
5506 (base32
5507 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
5508 (build-system gnu-build-system)
5509 (arguments
5510 `(#:phases
5511 (modify-phases %standard-phases
5512 (add-after 'unpack 'fix-introspection-install-dir
5513 (lambda* (#:key outputs #:allow-other-keys)
5514 (let ((out (assoc-ref outputs "out")))
5515 (substitute* "gee/Makefile.in"
5516 (("@INTROSPECTION_GIRDIR@")
5517 (string-append out "/share/gir-1.0/"))
5518 (("@INTROSPECTION_TYPELIBDIR@")
5519 (string-append out "/lib/girepository-1.0/")))))))))
5520 (native-inputs
5521 `(("glib" ,glib "bin")
5522 ("pkg-config" ,pkg-config)))
5523 (inputs
5524 `(("glib" ,glib)
5525 ("gobject-introspection" ,gobject-introspection)))
5526 (home-page "https://wiki.gnome.org/Projects/Libgee")
5527 (synopsis "GObject collection library")
5528 (description
5529 "Libgee is a utility library providing GObject-based interfaces and
5530 classes for commonly used data structures.")
5531 (license license:lgpl2.1+)))
5532
5533 (define-public gexiv2
5534 (package
5535 (name "gexiv2")
5536 (version "0.12.0")
5537 (source (origin
5538 (method url-fetch)
5539 (uri (string-append "mirror://gnome/sources/" name "/"
5540 (version-major+minor version) "/"
5541 name "-" version ".tar.xz"))
5542 (sha256
5543 (base32
5544 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5545 (build-system meson-build-system)
5546 (native-inputs
5547 `(("gcr" ,gcr)
5548 ("glib" ,glib "bin")
5549 ("pkg-config" ,pkg-config)
5550 ("vala" ,vala)))
5551 (propagated-inputs
5552 ;; Listed in "Requires" section of gexiv2.pc
5553 `(("exiv2" ,exiv2)))
5554 (inputs
5555 `(("glib" ,glib)
5556 ("gobject-introspection" ,gobject-introspection)))
5557 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5558 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5559 (description
5560 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5561 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5562 metadata in photo and video files of various formats.")
5563 (license license:gpl2+)))
5564
5565 (define-public shotwell
5566 (package
5567 (name "shotwell")
5568 (version "0.30.7")
5569 (source (origin
5570 (method url-fetch)
5571 (uri (string-append "mirror://gnome/sources/shotwell/"
5572 (version-major+minor version) "/"
5573 "shotwell-" version ".tar.xz"))
5574 (sha256
5575 (base32
5576 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
5577 (build-system meson-build-system)
5578 (arguments
5579 '(#:glib-or-gtk? #t
5580 #:phases
5581 (modify-phases %standard-phases
5582 (add-after 'unpack 'skip-gtk-update-icon-cache
5583 (lambda _
5584 (substitute* "build-aux/meson/postinstall.py"
5585 (("gtk-update-icon-cache") (which "true"))
5586 (("update-desktop-database") (which "true")))
5587 #t)))))
5588 (propagated-inputs
5589 `(("dconf" ,dconf)))
5590 (native-inputs
5591 `(("gettext" ,gettext-minimal)
5592 ("glib:bin" ,glib "bin")
5593 ("itstool" ,itstool)
5594 ("pkg-config" ,pkg-config)
5595 ("vala" ,vala)))
5596 (inputs
5597 `(("gcr" ,gcr)
5598 ("gexiv2" ,gexiv2)
5599 ("gst-plugins-base" ,gst-plugins-base)
5600 ("gstreamer" ,gstreamer)
5601 ("json-glib" ,json-glib)
5602 ("libgdata" ,libgdata)
5603 ("libgee" ,libgee)
5604 ("libgphoto2" ,libgphoto2)
5605 ("libgudev" ,libgudev)
5606 ("libraw" ,libraw)
5607 ("libsoup" ,libsoup)
5608 ("libxml2" ,libxml2)
5609 ("sqlite" ,sqlite)
5610 ("webkitgtk" ,webkitgtk)))
5611 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5612 (synopsis "Photo manager for GNOME 3")
5613 (description
5614 "Shotwell is a digital photo manager designed for the GNOME desktop
5615 environment. It allows you to import photos from disk or camera, organize
5616 them by keywords and events, view them in full-window or fullscreen mode, and
5617 share them with others via social networking and more.")
5618 (license license:lgpl2.1+)))
5619
5620 (define-public file-roller
5621 (package
5622 (name "file-roller")
5623 (version "3.32.3")
5624 (source (origin
5625 (method url-fetch)
5626 (uri (string-append "mirror://gnome/sources/file-roller/"
5627 (version-major+minor version) "/"
5628 "file-roller-" version ".tar.xz"))
5629 (sha256
5630 (base32
5631 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5632 (build-system meson-build-system)
5633 (native-inputs
5634 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5635 ("intltool" ,intltool)
5636 ("itstool" ,itstool)
5637 ("pkg-config" ,pkg-config)
5638 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5639 ("glib:bin" ,glib "bin")))
5640 ;; TODO: Add libnautilus.
5641 (inputs
5642 `(("gtk+" ,gtk+)
5643 ("gdk-pixbuf" ,gdk-pixbuf)
5644 ("json-glib" ,json-glib)
5645 ("libarchive" ,libarchive)
5646 ("libnotify" ,libnotify)
5647 ("nettle" ,nettle)
5648 ("libxml2" ,libxml2)))
5649 (synopsis "Graphical archive manager for GNOME")
5650 (description "File Roller is an archive manager for the GNOME desktop
5651 environment that allows users to view, unpack, and create compressed archives
5652 such as gzip tarballs.")
5653 (home-page "http://fileroller.sourceforge.net/")
5654 (license license:gpl2+)))
5655
5656 (define-public gnome-session
5657 (package
5658 (name "gnome-session")
5659 (version "3.32.0")
5660 (source (origin
5661 (method url-fetch)
5662 (uri (string-append "mirror://gnome/sources/" name "/"
5663 (version-major+minor version) "/"
5664 name "-" version ".tar.xz"))
5665 (sha256
5666 (base32
5667 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
5668 (arguments
5669 '(#:glib-or-gtk? #t
5670 #:phases
5671 (modify-phases %standard-phases
5672 (add-before 'configure 'pre-configure
5673 (lambda* (#:key outputs #:allow-other-keys)
5674 ;; Use elogind instead of systemd.
5675 (substitute* "meson.build"
5676 (("libsystemd-login") "libelogind")
5677 (("and libsystemd_daemon_dep.found.*") ","))
5678 (substitute* "gnome-session/gsm-systemd.c"
5679 (("#include <systemd/sd-login.h>")
5680 "#include <elogind/sd-login.h>"))
5681 ;; Remove uses of the systemd daemon.
5682 (substitute* "gnome-session/gsm-autostart-app.c"
5683 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5684 #t))
5685 (add-after 'install 'wrap-gnome-session
5686 (lambda* (#:key inputs outputs #:allow-other-keys)
5687 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5688 (let ((glib (assoc-ref inputs "glib:bin"))
5689 (out (assoc-ref outputs "out")))
5690 (wrap-program (string-append out "/bin/gnome-session")
5691 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5692 #t))))
5693
5694 #:configure-flags
5695 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5696 "-Dman=false" ; FIXME: disabled because of docbook validation error
5697 "-Dsystemd_journal=false")))
5698 (build-system meson-build-system)
5699 (native-inputs
5700 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5701 ("pkg-config" ,pkg-config)
5702 ("intltool" ,intltool)
5703 ("xsltproc" ,libxslt)
5704 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5705 ("docbook-xsl" ,docbook-xsl)
5706 ("docbook-xml" ,docbook-xml)
5707 ("xmlto" ,xmlto)))
5708 (inputs
5709 `(("elogind" ,elogind)
5710 ("gnome-desktop" ,gnome-desktop)
5711 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5712 ("gtk+" ,gtk+)
5713 ("json-glib" ,json-glib)
5714 ("libsm" ,libsm)
5715 ("libxcomposite" ,libxcomposite)
5716 ("libxtst" ,libxtst)
5717 ("mesa" ,mesa)
5718 ("upower" ,upower)
5719 ("xtrans" ,xtrans)))
5720 (synopsis "Session manager for GNOME")
5721 (description
5722 "This package contains the GNOME session manager, as well as a
5723 configuration program to choose applications starting on login.")
5724 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5725 (license license:gpl2+)))
5726
5727 (define-public gjs
5728 (package
5729 (name "gjs")
5730 (version "1.56.2")
5731 (source (origin
5732 (method url-fetch)
5733 (uri (string-append "mirror://gnome/sources/" name "/"
5734 (version-major+minor version) "/"
5735 name "-" version ".tar.xz"))
5736 (sha256
5737 (base32
5738 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
5739 (build-system gnu-build-system)
5740 (arguments
5741 '(#:phases
5742 (modify-phases %standard-phases
5743 (add-before
5744 'check 'pre-check
5745 (lambda _
5746 ;; The test suite requires a running X server.
5747 (system "Xvfb :1 &")
5748 (setenv "DISPLAY" ":1")
5749
5750 ;; For the missing /etc/machine-id.
5751 (setenv "DBUS_FATAL_WARNINGS" "0")
5752
5753 ;; Our mozjs-38 package does not compile the required Intl API
5754 ;; support for these failing tests.
5755 (substitute* "installed-tests/js/testLocale.js"
5756 ((".*toBeDefined.*") "")
5757 ((".*expect\\(datestr\\).*") ""))
5758 (substitute* "installed-tests/scripts/testCommandLine.sh"
5759 (("Valentín") "")
5760 (("☭") ""))
5761 #t)))))
5762 (native-inputs
5763 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5764 ("pkg-config" ,pkg-config)
5765 ("xmllint" ,libxml2)
5766 ;; For testing
5767 ("dbus-launch" ,dbus)
5768 ("uuidgen" ,util-linux)
5769 ("xvfb" ,xorg-server-for-tests)))
5770 (propagated-inputs
5771 ;; These are all in the Requires.private field of gjs-1.0.pc.
5772 `(("cairo" ,cairo)
5773 ("gobject-introspection" ,gobject-introspection)
5774 ("mozjs" ,mozjs-60)))
5775 (inputs
5776 `(("gtk+" ,gtk+)
5777 ("readline" ,readline)))
5778 (synopsis "Javascript bindings for GNOME")
5779 (home-page "https://live.gnome.org/Gjs")
5780 (description
5781 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5782 javascript engine and the GObject introspection framework.")
5783 (license license:gpl2+)))
5784
5785 (define-public gedit
5786 (package
5787 (name "gedit")
5788 (version "3.32.2")
5789 (source (origin
5790 (method url-fetch)
5791 (uri (string-append "mirror://gnome/sources/" name "/"
5792 (version-major+minor version) "/"
5793 name "-" version ".tar.xz"))
5794 (sha256
5795 (base32
5796 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5797 (build-system meson-build-system)
5798 (arguments
5799 `(#:glib-or-gtk? #t
5800 #:configure-flags
5801 ;; Otherwise, the RUNPATH will lack the final path component.
5802 (list (string-append "-Dc_link_args=-Wl,-rpath="
5803 (assoc-ref %outputs "out") "/lib/gedit"))
5804
5805 ;; XXX: Generated .h files are sometimes used before being built.
5806 #:parallel-build? #f
5807
5808 #:phases
5809 (modify-phases %standard-phases
5810 (add-after 'unpack 'skip-gtk-update-icon-cache
5811 ;; Don't create 'icon-theme.cache'.
5812 (lambda _
5813 (substitute* "build-aux/meson/post_install.py"
5814 (("gtk-update-icon-cache") (which "true")))
5815 #t))
5816 (add-after 'unpack 'patch-libgd-fetch
5817 (lambda* (#:key inputs #:allow-other-keys)
5818 (let ((libgd (assoc-ref inputs "libgd")))
5819 ;; Calling git is unnecessary because libgd is fetched as a
5820 ;; native input to this package.
5821 (substitute* "meson.build"
5822 ((".*git.*") ""))
5823 (copy-recursively libgd "subprojects/libgd")
5824 #t)))
5825 (add-after 'install 'wrap-gedit
5826 (lambda* (#:key inputs outputs #:allow-other-keys)
5827 (let ((out (assoc-ref outputs "out"))
5828 (gtksourceview (assoc-ref inputs "gtksourceview"))
5829 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5830 (python-path (getenv "PYTHONPATH")))
5831 (wrap-program (string-append out "/bin/gedit")
5832 ;; For plugins.
5833 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5834 `("PYTHONPATH" ":" prefix (,python-path))
5835 ;; For language-specs.
5836 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5837 "/share")))))
5838 #t)))))
5839 (propagated-inputs
5840 `(("dconf" ,dconf)))
5841 (native-inputs
5842 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5843 ("intltool" ,intltool)
5844 ("itstool" ,itstool)
5845 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5846 ("gobject-introspection" ,gobject-introspection)
5847 ("libgd"
5848 ,(origin
5849 (method git-fetch)
5850 (uri (git-reference
5851 (url "https://gitlab.gnome.org/GNOME/libgd")
5852 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5853 (file-name (git-file-name "libgd" version))
5854 (sha256
5855 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
5856 ("pkg-config" ,pkg-config)))
5857 (inputs
5858 `(("glib" ,glib)
5859 ("gspell" ,gspell)
5860 ("gtk+" ,gtk+)
5861 ("gtksourceview" ,gtksourceview)
5862 ("libpeas" ,libpeas)
5863 ("libxml2" ,libxml2)
5864 ("iso-codes" ,iso-codes)
5865 ("python-pygobject" ,python-pygobject)
5866 ("python" ,python)
5867 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5868 ("libx11" ,libx11)
5869 ("vala" ,vala)
5870 ("adwaita-icon-theme" ,adwaita-icon-theme)
5871 ("libsoup" ,libsoup)
5872 ("gnome-desktop" ,gnome-desktop)))
5873 (home-page "https://wiki.gnome.org/Apps/Gedit")
5874 (synopsis "GNOME text editor")
5875 (description "While aiming at simplicity and ease of use, gedit is a
5876 powerful general purpose text editor.")
5877 (license license:gpl2+)))
5878
5879 (define-public zenity
5880 (package
5881 (name "zenity")
5882 (version "3.32.0")
5883 (source (origin
5884 (method url-fetch)
5885 (uri (string-append "mirror://gnome/sources/zenity/"
5886 (version-major+minor version) "/"
5887 "zenity-" version ".tar.xz"))
5888 (sha256
5889 (base32
5890 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
5891 (build-system gnu-build-system)
5892 (native-inputs
5893 `(("gettext" ,gettext-minimal)
5894 ("itstool" ,itstool)
5895 ("pkg-config" ,pkg-config)))
5896 (inputs
5897 `(("libnotify" ,libnotify)
5898 ("webkitgtk" ,webkitgtk)))
5899 (synopsis "Display graphical dialog boxes from shell scripts")
5900 (home-page "https://www.gnome.org")
5901 (description
5902 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
5903 to display dialog boxes from the commandline and shell scripts.")
5904 (license license:lgpl2.0+)))
5905
5906 (define-public mutter
5907 (package
5908 (name "mutter")
5909 (version "3.32.2")
5910 (source (origin
5911 (method url-fetch)
5912 (uri (string-append "mirror://gnome/sources/" name "/"
5913 (version-major+minor version) "/"
5914 name "-" version ".tar.xz"))
5915 (sha256
5916 (base32
5917 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
5918 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
5919 ;; versions of cogl and clutter. As a result, many of the inputs,
5920 ;; propagated-inputs, and configure flags used in cogl and clutter are
5921 ;; needed here as well.
5922 (build-system meson-build-system)
5923 (arguments
5924 '(;; XXX: All mutter tests fail with the following error:
5925 ;; Settings schema 'org.gnome.mutter' is not installed
5926 #:tests? #f
5927 #:glib-or-gtk? #t
5928 #:configure-flags
5929 ;; Otherwise, the RUNPATH will lack the final path component.
5930 (list (string-append "-Dc_link_args=-Wl,-rpath="
5931 (assoc-ref %outputs "out") "/lib:"
5932 (assoc-ref %outputs "out") "/lib/mutter-4")
5933
5934 ;; The following flags are needed for the bundled clutter
5935 (string-append "-Dxwayland_path="
5936 (assoc-ref %build-inputs "xorg-server-xwayland")
5937 "/bin/Xwayland")
5938
5939 ;; the remaining flags are needed for the bundled cogl
5940 (string-append "-Dopengl_libname="
5941 (assoc-ref %build-inputs "mesa")
5942 "/lib/libGL.so"))
5943 #:phases
5944 (modify-phases %standard-phases
5945 (add-after 'unpack 'disable-werror
5946 (lambda _
5947 ;; XXX: build fails with [-Werror]:
5948 ;; backends/meta-cursor-renderer.c:112:5: error:
5949 ;; implicit declaration of function ?roundf?
5950 (substitute* "meson.build"
5951 (("'-Werror=.*',") ""))
5952 #t))
5953 ;; Replace references to systemd libraries to elogind references.
5954 (add-before 'configure 'use-elogind
5955 (lambda _
5956 (substitute* (list "meson.build"
5957 "src/backends/native/meta-launcher.c"
5958 "src/core/main.c")
5959 (("systemd") "elogind"))
5960 #t)))))
5961 (native-inputs
5962 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5963 ("gobject-introspection" ,gobject-introspection)
5964 ("intltool" ,intltool)
5965 ("pkg-config" ,pkg-config)
5966 ("xorg-server" ,xorg-server-for-tests)
5967 ;; For git build
5968 ("autoconf" ,autoconf)
5969 ("automake" ,automake)
5970 ("libtool" ,libtool)))
5971 (propagated-inputs
5972 `(;; libmutter.pc refers to these:
5973 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5974 ("gtk+" ,gtk+)
5975 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
5976 ("atk" ,atk)
5977 ("cairo" ,cairo)
5978 ("gdk-pixbuf" ,gdk-pixbuf)
5979 ("glib" ,glib)
5980 ("json-glib" ,json-glib)
5981 ("libinput" ,libinput)
5982 ("libx11" ,libx11)
5983 ("libxcomposite" ,libxcomposite)
5984 ("libxdamage" ,libxdamage)
5985 ("libxext" ,libxext)
5986 ("libxfixes" ,libxfixes)
5987 ("libxkbcommon" ,libxkbcommon)
5988 ("libxrandr" ,libxrandr)
5989 ("mesa" ,mesa)
5990 ("pango" ,pango)
5991 ("udev" ,eudev)
5992 ("xinput" ,xinput)))
5993 (inputs
5994 `(("elogind" ,elogind)
5995 ("gnome-desktop" ,gnome-desktop)
5996 ("gnome-settings-daemon" ,gnome-settings-daemon)
5997 ("libcanberra-gtk" ,libcanberra)
5998 ("libgudev" ,libgudev)
5999 ("libice" ,libice)
6000 ("libsm" ,libsm)
6001 ("libwacom" ,libwacom)
6002 ("libxkbfile" ,libxkbfile)
6003 ("libxrandr" ,libxrandr)
6004 ("libxtst" ,libxtst)
6005 ("pipewire" ,pipewire)
6006 ("startup-notification" ,startup-notification)
6007 ("upower-glib" ,upower)
6008 ("xkeyboard-config" ,xkeyboard-config)
6009 ("xorg-server-xwayland" ,xorg-server-xwayland)
6010 ("zenity" ,zenity)))
6011 (synopsis "Window and compositing manager")
6012 (home-page "https://www.gnome.org")
6013 (description
6014 "Mutter is a window and compositing manager that displays and manages your
6015 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6016 Clutter toolkit with solid window-management logic inherited from the Metacity
6017 window manager.")
6018 (license license:gpl2+)))
6019
6020 (define-public gnome-online-accounts
6021 (package
6022 (name "gnome-online-accounts")
6023 (version "3.32.1")
6024 (source (origin
6025 (method url-fetch)
6026 (uri (string-append "mirror://gnome/sources/" name "/"
6027 (version-major+minor version) "/"
6028 name "-" version ".tar.xz"))
6029 (sha256
6030 (base32
6031 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
6032 (outputs '("out" "lib"))
6033 (build-system glib-or-gtk-build-system)
6034 (arguments
6035 `(#:configure-flags
6036 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6037 #:phases
6038 (modify-phases %standard-phases
6039 (add-before 'configure 'patch-libgoa-output
6040 (lambda* (#:key outputs #:allow-other-keys)
6041 (let ((lib (assoc-ref outputs "lib")))
6042 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6043 (("@prefix@") lib)
6044 (("@exec_prefix@") lib)
6045 (("@libdir@") (string-append lib "/lib"))
6046 (("@includedir@") (string-append lib "/include"))
6047 (("@datadir@") (string-append lib "/share")))
6048 ;; Make sure gobject-introspection knows about the output
6049 ;; too (see <https://bugs.gnu.org/36535>).
6050 (setenv "outputs" "out lib")
6051 #t))))))
6052 (native-inputs
6053 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6054 ("gobject-introspection" ,gobject-introspection)
6055 ("intltool" ,intltool)
6056 ("pkg-config" ,pkg-config)
6057 ("vala" ,vala)
6058 ("xsltproc" ,libxslt)))
6059 (propagated-inputs
6060 `(("glib" ,glib) ; required by goa-1.0.pc
6061 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6062 (inputs
6063 `(("docbook-xsl" ,docbook-xsl)
6064 ("json-glib" ,json-glib)
6065 ("libsecret" ,libsecret)
6066 ("rest" ,rest)
6067 ("webkitgtk" ,webkitgtk)))
6068 (synopsis "Single sign-on framework for GNOME")
6069 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6070 (description
6071 "GNOME Online Accounts provides interfaces so that applications and
6072 libraries in GNOME can access the user's online accounts. It has providers for
6073 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6074 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6075 (license license:lgpl2.0+)))
6076
6077 (define-public evolution-data-server
6078 (package
6079 (name "evolution-data-server")
6080 (version "3.32.4")
6081 (source (origin
6082 (method url-fetch)
6083 (uri (string-append "mirror://gnome/sources/" name "/"
6084 (version-major+minor version) "/"
6085 name "-" version ".tar.xz"))
6086 (patches (search-patches "evolution-data-server-locales.patch"))
6087 (sha256
6088 (base32
6089 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
6090 (build-system cmake-build-system)
6091 (arguments
6092 '(#:configure-flags
6093 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6094 (runpaths (map (lambda (s)
6095 (string-append lib "/evolution-data-server/" s))
6096 '("addressbook-backends" "calendar-backends"
6097 "camel-providers" "credential-modules"
6098 "registry-modules"))))
6099 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6100 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6101 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6102 "-DENABLE_VALA_BINDINGS=ON"
6103 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6104 (string-append lib "/evolution-data-server;")
6105 (string-join runpaths ";"))
6106 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6107 #:phases
6108 (modify-phases %standard-phases
6109 (add-after 'unpack 'disable-failing-tests
6110 (lambda _
6111 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6112 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6113 (delete-file-recursively "tests/book-migration")
6114 (substitute* "tests/CMakeLists.txt"
6115 (("add_subdirectory\\(book-migration\\)") ""))
6116 ;; tests/libebook/client/test-book-client-view-operations:8077):
6117 ;; e-data-server-WARNING **:
6118 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6119 ;; runtime check failed:
6120 ;; (!g_main_context_pending (closure->main_context))
6121 (substitute* "tests/libebook/client/CMakeLists.txt"
6122 (("test-book-client-view-operations") ""))
6123 #t))
6124 (add-after 'unpack 'patch-paths
6125 (lambda _
6126 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6127 "tests/libedata-book/data-test-utils.c"
6128 "tests/libedata-book/test-book-cache-utils.c"
6129 "tests/libedata-cal/test-cal-cache-utils.c")
6130 (("/bin/rm") (which "rm")))
6131 #t))
6132 (add-before 'configure 'dont-override-rpath
6133 (lambda _
6134 (substitute* "CMakeLists.txt"
6135 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6136 ;; Remove it so the configure flag is respected.
6137 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6138 #t)))))
6139 (native-inputs
6140 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6141 ("gobject-introspection" ,gobject-introspection)
6142 ("gperf" ,gperf)
6143 ("intltool" ,intltool)
6144 ("pkg-config" ,pkg-config)
6145 ("vala" ,vala)
6146 ("python" ,python-wrapper)))
6147 (propagated-inputs
6148 ;; These are all in the Requires field of .pc files.
6149 `(("gtk+" ,gtk+)
6150 ("libical" ,libical)
6151 ("libsecret" ,libsecret)
6152 ("libsoup" ,libsoup)
6153 ("nss" ,nss)
6154 ("sqlite" ,sqlite)))
6155 (inputs
6156 `(("bdb" ,bdb)
6157 ("gcr" ,gcr)
6158 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6159 ("json-glib" ,json-glib)
6160 ("libcanberra" ,libcanberra)
6161 ("libgweather" ,libgweather)
6162 ("mit-krb5" ,mit-krb5)
6163 ("openldap" ,openldap)
6164 ("webkitgtk" ,webkitgtk)))
6165 (synopsis "Store address books and calendars")
6166 (home-page "https://wiki.gnome.org/Apps/Evolution")
6167 (description
6168 "This package provides a unified backend for programs that work with
6169 contacts, tasks, and calendar information. It was originally developed for
6170 Evolution (hence the name), but is now used by other packages as well.")
6171 (license license:lgpl2.0)))
6172
6173 (define-public caribou
6174 (package
6175 (name "caribou")
6176 (version "0.4.21")
6177 (source (origin
6178 (method url-fetch)
6179 (uri (string-append "mirror://gnome/sources/" name "/"
6180 (version-major+minor version) "/"
6181 name "-" version ".tar.xz"))
6182 (sha256
6183 (base32
6184 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6185 (build-system glib-or-gtk-build-system)
6186 (arguments
6187 '(#:phases
6188 (modify-phases %standard-phases
6189 (add-before
6190 'build 'pre-build
6191 (lambda* (#:key outputs #:allow-other-keys)
6192 (let ((out (assoc-ref outputs "out")))
6193 ;; Use absolute shared library path in Caribou-1.0.typelib.
6194 (substitute* "libcaribou/Makefile"
6195 (("--shared-library=libcaribou.so")
6196 (string-append "--shared-library="
6197 out "/lib/libcaribou.so")))
6198 #t)))
6199 (add-after 'install 'wrap-programs
6200 (lambda* (#:key outputs #:allow-other-keys)
6201 (let* ((out (assoc-ref outputs "out"))
6202 (python-path (getenv "PYTHONPATH"))
6203 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6204 (for-each
6205 (lambda (prog)
6206 (wrap-program prog
6207 `("PYTHONPATH" ":" prefix (,python-path))
6208 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6209 (list (string-append out "/bin/caribou-preferences")
6210 (string-append out "/libexec/antler-keyboard"))))
6211 #t)))))
6212 (native-inputs
6213 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6214 ("gobject-introspection" ,gobject-introspection)
6215 ("intltool" ,intltool)
6216 ("pkg-config" ,pkg-config)
6217 ("python" ,python-2) ; incompatible with Python 3 (print syntax)
6218 ("vala" ,vala)
6219 ("xsltproc" ,libxslt)))
6220 (propagated-inputs
6221 ;; caribou-1.0.pc refers to all these.
6222 `(("libgee" ,libgee)
6223 ("libxklavier" ,libxklavier)
6224 ("libxtst" ,libxtst)
6225 ("gtk+" ,gtk+)))
6226 (inputs
6227 `(("clutter" ,clutter)
6228 ("dconf" ,dconf)
6229 ("gtk+-2" ,gtk+-2)
6230 ("python-pygobject" ,python2-pygobject)))
6231 (synopsis "Text entry and UI navigation application")
6232 (home-page "https://wiki.gnome.org/Projects/Caribou")
6233 (description
6234 "Caribou is an input assistive technology intended for switch and pointer
6235 users.")
6236 (license license:lgpl2.1)))
6237
6238 (define-public network-manager
6239 (package
6240 (name "network-manager")
6241 (version "1.18.4")
6242 (source (origin
6243 (method url-fetch)
6244 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6245 (version-major+minor version) "/"
6246 "NetworkManager-" version ".tar.xz"))
6247 (patches (search-patches "nm-plugin-path.patch"))
6248 (sha256
6249 (base32
6250 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
6251 (modules '((guix build utils)))
6252 (snippet
6253 '(begin
6254 (substitute* "src/devices/wwan/nm-modem-manager.c"
6255 (("systemd") "elogind"))
6256 #t))))
6257 (build-system gnu-build-system)
6258 (outputs '("out"
6259 "doc")) ; 8 MiB of gtk-doc HTML
6260 (arguments
6261 '(#:configure-flags
6262 (let ((out (assoc-ref %outputs "out"))
6263 (doc (assoc-ref %outputs "doc"))
6264 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6265 "/sbin/dhclient")))
6266 (list "--with-libnm-glib" ; needed by network-manager-applet
6267 "--with-systemd-journal=no"
6268 "--with-session-tracking=elogind"
6269 "--with-suspend-resume=elogind"
6270 "--with-consolekit=no"
6271 "--with-crypto=gnutls"
6272 "--disable-config-plugin-ibft"
6273 "--sysconfdir=/etc"
6274 "--localstatedir=/var"
6275 (string-append "--with-udev-dir="
6276 out "/lib/udev")
6277 (string-append "--with-dbus-sys-dir="
6278 out "/etc/dbus-1/system.d")
6279 (string-append "--with-html-dir="
6280 doc "/share/gtk-doc/html")
6281 (string-append "--with-dhclient=" dhclient)))
6282 #:phases
6283 (modify-phases %standard-phases
6284 ;; This bare "ls" invocation breaks some tests.
6285 (add-after 'unpack 'patch-ls-invocation
6286 (lambda _
6287 (substitute* "build-aux/ltmain.sh"
6288 (("`ls -")
6289 (string-append "`" (which "ls") " -")))
6290 #t))
6291 (add-before 'configure 'pre-configure
6292 (lambda _
6293 ;; These tests try to test aspects of network-manager's
6294 ;; functionality within restricted containers, but they don't
6295 ;; cope with being already in the Guix build jail as that jail
6296 ;; lacks some features that they would like to proxy over (like
6297 ;; a /sys mount).
6298 (substitute* '("Makefile.in")
6299 (("src/platform/tests/test-address-linux") " ")
6300 (("src/platform/tests/test-cleanup-linux") " ")
6301 (("src/platform/tests/test-link-linux") " ")
6302 (("src/platform/tests/test-route-linux") " ")
6303 (("src/devices/tests/test-acd") "")
6304 (("src/devices/tests/test-arping") " ")
6305 (("src/devices/tests/test-lldp") " ")
6306 (("src/tests/test-route-manager-linux") " "))
6307 #t))
6308 (add-after 'unpack 'delete-failing-tests
6309 (lambda _
6310 ;; FIXME: These three tests fail for unknown reasons.
6311 ;; ERROR:libnm-core/tests/test-general.c:5842:
6312 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6313 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6314 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6315 ;; ERROR:libnm-core/tests/test-setting.c:907:
6316 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
6317 (substitute* "Makefile.in"
6318 (("libnm-core/tests/test-general") " ")
6319 (("libnm-core/tests/test-keyfile") " ")
6320 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
6321 #t))
6322 (add-before 'check 'pre-check
6323 (lambda _
6324 ;; For the missing /etc/machine-id.
6325 (setenv "DBUS_FATAL_WARNINGS" "0")
6326 #t))
6327 (replace 'install
6328 (lambda _
6329 (invoke "make"
6330 "sysconfdir=/tmp"
6331 "rundir=/tmp"
6332 "statedir=/tmp"
6333 "nmstatedir=/tmp/nm"
6334 "install")
6335 #t)))))
6336 (propagated-inputs
6337 `(("glib" ,glib)))
6338 (native-inputs
6339 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6340 ("gobject-introspection" ,gobject-introspection)
6341 ("docbook-xsl" ,docbook-xsl)
6342 ("intltool" ,intltool)
6343 ("libxslt" ,libxslt)
6344 ("libxml2" ,libxml2)
6345 ("pkg-config" ,pkg-config)
6346 ;; For testing.
6347 ("python" ,python-wrapper)
6348 ("python-dbus" ,python-dbus)
6349 ("python-pygobject" ,python-pygobject)))
6350 (inputs
6351 `(("coreutils" ,coreutils) ; for ls
6352 ("curl" ,curl)
6353 ("cyrus-sasl" ,cyrus-sasl)
6354 ("dbus-glib" ,dbus-glib)
6355 ("dnsmasq" ,dnsmasq)
6356 ("eudev" ,eudev)
6357 ("gnutls" ,gnutls)
6358 ("iptables" ,iptables)
6359 ("isc-dhcp" ,isc-dhcp)
6360 ("jansson" ,jansson)
6361 ("libgcrypt" ,libgcrypt)
6362 ("libgudev" ,libgudev)
6363 ("libndp" ,libndp)
6364 ("libnl" ,libnl)
6365 ("libsoup" ,libsoup)
6366 ("modem-manager" ,modem-manager)
6367 ("newt" ,newt) ;for the 'nmtui' console interface
6368 ("polkit" ,polkit)
6369 ("ppp" ,ppp)
6370 ("readline" ,readline)
6371 ("util-linux" ,util-linux)
6372 ("elogind" ,elogind)))
6373 (synopsis "Network connection manager")
6374 (home-page "https://www.gnome.org/projects/NetworkManager/")
6375 (description
6376 "NetworkManager is a system network service that manages your network
6377 devices and connections, attempting to keep active network connectivity when
6378 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6379 devices, and provides VPN integration with a variety of different VPN
6380 services.")
6381 (license license:gpl2+)
6382 (properties '((upstream-name . "NetworkManager")))))
6383
6384 (define-public network-manager-openvpn
6385 (package
6386 (name "network-manager-openvpn")
6387 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
6388 (version "1.8.10")
6389 (source (origin
6390 (method url-fetch)
6391 (uri (string-append
6392 "mirror://gnome/sources/NetworkManager-openvpn/"
6393 (version-major+minor version)
6394 "/NetworkManager-openvpn-" version ".tar.xz"))
6395 (sha256
6396 (base32
6397 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
6398 (build-system gnu-build-system)
6399 (arguments
6400 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6401 #:phases
6402 (modify-phases %standard-phases
6403 (add-after 'configure 'patch-path
6404 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6405 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6406 "/sbin/openvpn"))
6407 (modprobe (string-append (assoc-ref inputs "kmod")
6408 "/bin/modprobe"))
6409 (pretty-ovpn (string-append "\"" ovpn "\"")))
6410 (for-each
6411 (lambda (file)
6412 (substitute* file
6413 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6414 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6415 (("\"/sbin/openvpn\"") pretty-ovpn)
6416 (("/sbin/modprobe") modprobe)))
6417 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6418 #t)))))
6419 (native-inputs
6420 `(("pkg-config" ,pkg-config)
6421 ("intltool" ,intltool)))
6422 (inputs
6423 `(("gtk+" ,gtk+)
6424 ("kmod" ,kmod)
6425 ("openvpn" ,openvpn)
6426 ("network-manager" ,network-manager)
6427 ("network-manager-applet" ,network-manager-applet) ;for libnma
6428 ("libsecret" ,libsecret)))
6429 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6430 (synopsis "OpenVPN plug-in for NetworkManager")
6431 (description
6432 "This extension of NetworkManager allows it to take care of connections
6433 to virtual private networks (VPNs) via OpenVPN.")
6434 (license license:gpl2+)
6435 (properties `((upstream-name . "NetworkManager-openvpn")))))
6436
6437 (define-public network-manager-vpnc
6438 (package
6439 (name "network-manager-vpnc")
6440 (version "1.2.6")
6441 (source (origin
6442 (method url-fetch)
6443 (uri (string-append
6444 "mirror://gnome/sources/NetworkManager-vpnc/"
6445 (version-major+minor version)
6446 "/NetworkManager-vpnc-" version ".tar.xz"))
6447 (sha256
6448 (base32
6449 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6450 (build-system gnu-build-system)
6451 (arguments
6452 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6453 #:phases
6454 (modify-phases %standard-phases
6455 (add-after 'configure 'patch-path
6456 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6457 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6458 "/sbin/vpnc"))
6459 (modprobe (string-append (assoc-ref inputs "kmod")
6460 "/bin/modprobe"))
6461 (pretty-ovpn (string-append "\"" vpnc "\"")))
6462 (substitute* "src/nm-vpnc-service.c"
6463 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6464 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6465 (("\"/sbin/vpnc\"") pretty-ovpn)
6466 (("/sbin/modprobe") modprobe)))
6467 #t)))))
6468 (native-inputs
6469 `(("pkg-config" ,pkg-config)
6470 ("intltool" ,intltool)))
6471 (inputs
6472 `(("gtk+" ,gtk+)
6473 ("kmod" ,kmod)
6474 ("vpnc" ,vpnc)
6475 ("network-manager" ,network-manager)
6476 ("network-manager-applet" ,network-manager-applet) ;for libnma
6477 ("libsecret" ,libsecret)))
6478 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6479 (synopsis "VPNC plug-in for NetworkManager")
6480 (description
6481 "Support for configuring virtual private networks based on VPNC.
6482 Compatible with Cisco VPN concentrators configured to use IPsec.")
6483 (license license:gpl2+)
6484 (properties `((upstream-name . "NetworkManager-vpnc")))))
6485
6486 (define-public network-manager-openconnect
6487 (package
6488 (name "network-manager-openconnect")
6489 (version "1.2.6")
6490 (source (origin
6491 (method url-fetch)
6492 (uri (string-append
6493 "mirror://gnome/sources/NetworkManager-openconnect/"
6494 (version-major+minor version)
6495 "/NetworkManager-openconnect-" version ".tar.xz"))
6496 (sha256
6497 (base32
6498 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6499 (build-system gnu-build-system)
6500 (arguments
6501 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6502 #:phases
6503 (modify-phases %standard-phases
6504 (add-after 'configure 'patch-path
6505 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6506 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6507 "/sbin/openconnect"))
6508 (modprobe (string-append (assoc-ref inputs "kmod")
6509 "/bin/modprobe"))
6510 (pretty-ovpn (string-append "\"" openconnect "\"")))
6511 (substitute* "src/nm-openconnect-service.c"
6512 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6513 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6514 (("/sbin/modprobe") modprobe)))
6515 #t)))))
6516 (native-inputs
6517 `(("intltool" ,intltool)
6518 ("network-manager-applet" ,network-manager-applet) ;for libnma
6519 ("pkg-config" ,pkg-config)))
6520 (inputs
6521 `(("gcr" ,gcr)
6522 ("gtk+" ,gtk+)
6523 ("kmod" ,kmod)
6524 ("libsecret" ,libsecret)
6525 ("libxml2" ,libxml2)
6526 ("network-manager" ,network-manager)
6527 ("openconnect" ,openconnect)))
6528 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6529 (synopsis "OpenConnect plug-in for NetworkManager")
6530 (description
6531 "This extension of NetworkManager allows it to take care of connections
6532 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6533 Cisco's AnyConnect SSL VPN.")
6534 (license license:gpl2+)
6535 (properties `((upstream-name . "NetworkManager-openconnect")
6536
6537 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6538 ;; file refers to account "nm-openconnect". Specify it here
6539 ;; so that 'network-manager-service-type' creates it.
6540 (user-accounts . ("nm-openconnect"))))))
6541
6542 (define-public mobile-broadband-provider-info
6543 (package
6544 (name "mobile-broadband-provider-info")
6545 (version "20190116")
6546 (source (origin
6547 (method url-fetch)
6548 (uri (string-append
6549 "mirror://gnome/sources/"
6550 "mobile-broadband-provider-info/" version "/"
6551 "mobile-broadband-provider-info-" version ".tar.xz"))
6552 (sha256
6553 (base32
6554 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6555 (build-system gnu-build-system)
6556 (arguments
6557 `(#:tests? #f)) ; no tests
6558 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6559 (synopsis "Database of broadband connection configuration")
6560 (description "Database of broadband connection configuration.")
6561 (license license:public-domain)))
6562
6563 (define-public network-manager-applet
6564 (package
6565 (name "network-manager-applet")
6566 (version "1.8.24")
6567 (source (origin
6568 (method url-fetch)
6569 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6570 (version-major+minor version) "/"
6571 "network-manager-applet-" version ".tar.xz"))
6572 (sha256
6573 (base32
6574 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
6575 (build-system meson-build-system)
6576 (arguments
6577 '(#:configure-flags
6578 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6579 (list "-Dlibnm_gtk=true")
6580 #:glib-or-gtk? #t))
6581 (native-inputs
6582 `(("intltool" ,intltool)
6583 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6584 ("gobject-introspection" ,gobject-introspection)
6585 ("gtk-doc" ,gtk-doc)
6586 ("pkg-config" ,pkg-config)))
6587 (propagated-inputs
6588 ;; libnm-gtk.pc refers to all these.
6589 `(("dbus-glib" ,dbus-glib)
6590 ("gtk+" ,gtk+)
6591 ("network-manager" ,network-manager)))
6592 (inputs
6593 `(("gcr" ,gcr)
6594 ("iso-codes" ,iso-codes)
6595 ("libgudev" ,libgudev)
6596 ("libnotify" ,libnotify)
6597 ("libsecret" ,libsecret)
6598 ("libselinux" ,libselinux)
6599 ("jansson" ,jansson) ; for team support
6600 ("modem-manager" ,modem-manager)
6601 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
6602 (synopsis "Applet for managing network connections")
6603 (home-page "https://www.gnome.org/projects/NetworkManager/")
6604 (description
6605 "This package contains a systray applet for NetworkManager. It displays
6606 the available networks and allows users to easily switch between them.")
6607 (license license:gpl2+)))
6608
6609 (define-public libxml++
6610 (package
6611 (name "libxml++")
6612 (version "3.0.1")
6613 (source (origin
6614 (method url-fetch)
6615 (uri (string-append "mirror://gnome/sources/" name "/"
6616 (version-major+minor version) "/"
6617 name "-" version ".tar.xz"))
6618 (sha256
6619 (base32
6620 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6621 (build-system gnu-build-system)
6622 ;; libxml++-3.0.pc refers to all these.
6623 (propagated-inputs
6624 `(("libxml2" ,libxml2)
6625 ("glibmm" ,glibmm)))
6626 (native-inputs
6627 `(("perl" ,perl)
6628 ("pkg-config" ,pkg-config)))
6629 (home-page "http://libxmlplusplus.sourceforge.net/")
6630 (synopsis "C++ wrapper for XML parser library libxml2")
6631 (description
6632 "This package provides a C++ wrapper for the XML parser library
6633 libxml2.")
6634 (license license:lgpl2.1+)))
6635
6636 (define-public libxml++-2
6637 (package
6638 (inherit libxml++)
6639 (name "libxml++")
6640 (version "2.40.1")
6641 (source (origin
6642 (method url-fetch)
6643 (uri (string-append "mirror://gnome/sources/" name "/"
6644 (version-major+minor version) "/"
6645 name "-" version ".tar.xz"))
6646 (sha256
6647 (base32
6648 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6649
6650 (define-public gdm
6651 (package
6652 (name "gdm")
6653 (version "3.32.0")
6654 (source (origin
6655 (method url-fetch)
6656 (uri (string-append "mirror://gnome/sources/" name "/"
6657 (version-major+minor version) "/"
6658 name "-" version ".tar.xz"))
6659 (sha256
6660 (base32
6661 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
6662 (build-system glib-or-gtk-build-system)
6663 (arguments
6664 '(#:configure-flags
6665 `("--without-plymouth"
6666 "--disable-systemd-journal"
6667
6668 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6669 ;; instead of having to replace it (i.e., stopping the mingetty
6670 ;; service for TTY 1 before starting GDM).
6671 "--with-initial-vt=7"
6672
6673 ;; Use '/etc/environment' for locale settings instead of the
6674 ;; systemd-specific '/etc/locale.conf'.
6675 "--with-lang-file=/etc/environment"
6676
6677 ,(string-append "--with-udevdir="
6678 (assoc-ref %outputs "out") "/lib/udev")
6679
6680 "--localstatedir=/var"
6681 ,(string-append "--with-default-path="
6682 (string-join '("/run/setuid-programs"
6683 "/run/current-system/profile/bin"
6684 "/run/current-system/profile/sbin")
6685 ":"))
6686 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6687 ;; XDG_DATA_DIRS so that it finds its schemas.
6688 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6689 #:phases
6690 (modify-phases %standard-phases
6691 (add-before
6692 'configure 'pre-configure
6693 (lambda* (#:key inputs outputs #:allow-other-keys)
6694 ;; We don't have <systemd/sd-daemon.h>.
6695 (substitute* '("common/gdm-log.c"
6696 "daemon/gdm-server.c"
6697 "daemon/gdm-session-worker.c"
6698 "daemon/gdm-session-worker-job.c")
6699 (("#include <systemd/sd-daemon\\.h>") ""))
6700 ;; Use elogind for sd-login.
6701 (substitute* '("common/gdm-common.c"
6702 "daemon/gdm-manager.c"
6703 "libgdm/gdm-user-switching.c")
6704 (("#include <systemd/sd-login\\.h>")
6705 "#include <elogind/sd-login.h>"))
6706 ;; Check for elogind.
6707 (substitute* '("configure")
6708 (("libsystemd")
6709 "libelogind"))
6710 ;; Look for system-installed sessions in
6711 ;; /run/current-system/profile/share.
6712 (substitute* '("libgdm/gdm-sessions.c"
6713 "daemon/gdm-session.c"
6714 "daemon/gdm-display.c"
6715 "daemon/gdm-launch-environment.c")
6716 (("DATADIR \"/x")
6717 "\"/run/current-system/profile/share/x")
6718 (("DATADIR \"/wayland")
6719 "\"/run/current-system/profile/share/wayland")
6720 (("DATADIR \"/gnome")
6721 "\"/run/current-system/profile/share/gnome"))
6722 (let ((propagate '("GDM_CUSTOM_CONF"
6723 "GDM_DBUS_DAEMON"
6724 "GDM_X_SERVER"
6725 "GDM_X_SESSION"
6726 ;; XXX: Remove this once GNOME Shell is
6727 ;; a dependency of GDM.
6728 "XDG_DATA_DIRS")))
6729 (substitute* "daemon/gdm-session.c"
6730 (("set_up_session_environment \\(self\\);")
6731 (apply string-append
6732 "set_up_session_environment (self);\n"
6733 (map (lambda (name)
6734 (string-append
6735 "gdm_session_set_environment_variable "
6736 "(self, \"" name "\","
6737 "g_getenv (\"" name "\"));\n"))
6738 propagate)))))
6739 ;; Find the configuration file using an environment variable.
6740 (substitute* '("common/gdm-settings.c")
6741 (("GDM_CUSTOM_CONF")
6742 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6743 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6744 " : GDM_CUSTOM_CONF)")))
6745 ;; Use service-supplied path to X.
6746 (substitute* '("daemon/gdm-server.c")
6747 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6748 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6749 (substitute* '("daemon/gdm-x-session.c")
6750 (("\"dbus-daemon\"")
6751 "g_getenv (\"GDM_DBUS_DAEMON\")")
6752 (("X_SERVER")
6753 "g_getenv (\"GDM_X_SERVER\")")
6754 (("GDMCONFDIR \"/Xsession\"")
6755 "g_getenv (\"GDM_X_SESSION\")"))
6756 ;; Use an absolute path for GNOME Session.
6757 (substitute* "daemon/gdm-launch-environment.c"
6758 (("\"gnome-session\"")
6759 (string-append "\"" (assoc-ref inputs "gnome-session")
6760 "/bin/gnome-session\"")))
6761 ;; Do not automatically select the placeholder session.
6762 (substitute* "daemon/gdm-session.c"
6763 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6764 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6765 "(g_strcmp0(search_dirs[i], \""
6766 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6767 "\") == 0 && "
6768 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6769 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
6770 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
6771 #t))
6772 ;; GDM requires that there be at least one desktop entry
6773 ;; file. This phase installs a hidden one that simply
6774 ;; fails. This enables users to use GDM with a
6775 ;; '~/.xsession' script with no other desktop entry files.
6776 ;; See <https://bugs.gnu.org/35068>.
6777 (add-after 'install 'install-placeholder-desktop-entry
6778 (lambda* (#:key inputs outputs #:allow-other-keys)
6779 (let* ((out (assoc-ref outputs "out"))
6780 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6781 (fail (string-append sessions "/fail.desktop")))
6782 (mkdir-p sessions)
6783 (with-output-to-file fail
6784 (lambda ()
6785 (for-each
6786 display
6787 '("[Desktop Entry]\n"
6788 "Encoding=UTF-8\n"
6789 "Type=Application\n"
6790 "Name=Fail\n"
6791 "Comment=This session fails immediately.\n"
6792 "NoDisplay=true\n"
6793 "Exec=false\n"))))
6794 #t)))
6795 ;; GDM needs GNOME Session to run these applications. We link
6796 ;; their autostart files in `share/gdm/greeter/autostart'
6797 ;; because GDM explicitly tells GNOME Session to look there.
6798 ;;
6799 ;; XXX: GNOME Shell should be linked here too, but currently
6800 ;; GNOME Shell depends on GDM.
6801 (add-after 'install 'link-autostart-files
6802 (lambda* (#:key inputs outputs #:allow-other-keys)
6803 (let* ((out (assoc-ref outputs "out"))
6804 (autostart (string-append out "/share/gdm/"
6805 "greeter/autostart"))
6806 (settings (assoc-ref inputs "gnome-settings-daemon")))
6807 (mkdir-p autostart)
6808 (with-directory-excursion autostart
6809 (for-each (lambda (desktop)
6810 (symlink desktop (basename desktop)))
6811 (find-files (string-append settings "/etc/xdg"))))
6812 #t))))))
6813 (native-inputs
6814 `(("dconf" ,dconf)
6815 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6816 ("gobject-introspection" ,gobject-introspection)
6817 ("intltool" ,intltool)
6818 ("itstool" ,itstool)
6819 ("pkg-config" ,pkg-config)
6820 ("xmllint" ,libxml2)))
6821 (inputs
6822 `(("accountsservice" ,accountsservice)
6823 ("check" ,check) ; for testing
6824 ("elogind" ,elogind)
6825 ("gnome-session" ,gnome-session)
6826 ("gnome-settings-daemon" ,gnome-settings-daemon)
6827 ("gtk+" ,gtk+)
6828 ("iso-codes" ,iso-codes)
6829 ("libcanberra" ,libcanberra)
6830 ("linux-pam" ,linux-pam)))
6831 (synopsis "Display manager for GNOME")
6832 (home-page "https://wiki.gnome.org/Projects/GDM/")
6833 (description
6834 "GNOME Display Manager is a system service that is responsible for
6835 providing graphical log-ins and managing local and remote displays.")
6836 (license license:gpl2+)))
6837
6838 (define-public libgtop
6839 (package
6840 (name "libgtop")
6841 (version "2.40.0")
6842 (source (origin
6843 (method url-fetch)
6844 (uri (string-append "mirror://gnome/sources/libgtop/"
6845 (version-major+minor version) "/"
6846 "libgtop-" version ".tar.xz"))
6847 (sha256
6848 (base32
6849 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
6850 (build-system gnu-build-system)
6851 (native-inputs
6852 `(("gobject-introspection" ,gobject-introspection)
6853 ("intltool" ,intltool)
6854 ("perl" ,perl)
6855 ("pkg-config" ,pkg-config)))
6856 (propagated-inputs
6857 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6858 (synopsis "Portable system access library")
6859 (home-page "https://www.gnome.org/")
6860 (description
6861 "LibGTop is a library to get system specific data such as CPU and memory
6862 usage and information about running processes.")
6863 (license license:gpl2+)))
6864
6865 (define-public gnome-bluetooth
6866 (package
6867 (name "gnome-bluetooth")
6868 (version "3.32.1")
6869 (source (origin
6870 (method url-fetch)
6871 (uri (string-append "mirror://gnome/sources/" name "/"
6872 (version-major+minor version) "/"
6873 name "-" version ".tar.xz"))
6874 (sha256
6875 (base32
6876 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
6877 (build-system meson-build-system)
6878 (native-inputs
6879 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
6880 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6881 ("gobject-introspection" ,gobject-introspection)
6882 ("intltool" ,intltool)
6883 ("pkg-config" ,pkg-config)
6884 ("xmllint" ,libxml2)))
6885 (propagated-inputs
6886 ;; gnome-bluetooth-1.0.pc refers to all these.
6887 `(("glib" ,glib)
6888 ("gtk+" ,gtk+)))
6889 (inputs
6890 `(("eudev" ,eudev)
6891 ("libcanberra" ,libcanberra)
6892 ("libnotify" ,libnotify)))
6893 (synopsis "GNOME Bluetooth subsystem")
6894 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
6895 (description
6896 "This package contains tools for managing and manipulating Bluetooth
6897 devices using the GNOME desktop.")
6898 (license license:lgpl2.1+)))
6899
6900 (define-public gnome-control-center
6901 (package
6902 (name "gnome-control-center")
6903 (version "3.32.2")
6904 (source (origin
6905 (method url-fetch)
6906 (uri (string-append "mirror://gnome/sources/" name "/"
6907 (version-major+minor version) "/"
6908 name "-" version ".tar.xz"))
6909 (sha256
6910 (base32
6911 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
6912 (build-system meson-build-system)
6913 (arguments
6914 '(#:glib-or-gtk? #t
6915 #:configure-flags
6916 (list "-Dcheese=false"
6917 (string-append "-Dgnome_session_libexecdir="
6918 (assoc-ref %build-inputs "gnome-session")
6919 "/libexec"))
6920 #:phases
6921 (modify-phases %standard-phases
6922 (add-before 'configure 'patch-paths
6923 (lambda* (#:key inputs #:allow-other-keys)
6924 (let ((libc (assoc-ref inputs "libc"))
6925 (tzdata (assoc-ref inputs "tzdata"))
6926 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
6927 (nm-applet (assoc-ref inputs "network-manager-applet"))
6928 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
6929 (substitute* "panels/datetime/tz.h"
6930 (("/usr/share/zoneinfo/zone.tab")
6931 (string-append tzdata "/share/zoneinfo/zone.tab")))
6932 (substitute* "tests/datetime/test-endianess.c"
6933 (("/usr/share/locale")
6934 (string-append libc "/share/locale")))
6935 (substitute* "panels/region/cc-region-panel.c"
6936 (("\"gkbd-keyboard-display")
6937 (string-append "\"" libgnomekbd
6938 "/bin/gkbd-keyboard-display")))
6939 (substitute* '("panels/network/net-device-wifi.c"
6940 "panels/network/net-device.c"
6941 "panels/network/connection-editor/net-connection-editor.c")
6942 (("\"nm-connection-editor")
6943 (string-append "\"" nm-applet
6944 "/bin/nm-connection-editor")))
6945 (substitute* '("panels/user-accounts/run-passwd.c")
6946 (("/usr/bin/passwd")
6947 "/run/setuid-programs/passwd"))
6948 (substitute* "panels/info/cc-info-overview-panel.c"
6949 (("DATADIR \"/gnome/gnome-version.xml\"")
6950 (string-append "\"" gnome-desktop
6951 "/share/gnome/gnome-version.xml\"")))
6952 #t))))))
6953 (native-inputs
6954 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6955 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
6956 ("intltool" ,intltool)
6957 ("pkg-config" ,pkg-config)
6958 ("xsltproc" ,libxslt)
6959 ;; For tests
6960 ("hicolor-icon-theme" ,hicolor-icon-theme)
6961 ("python-dbusmock" ,python-dbusmock)
6962 ("xorg-server" ,xorg-server-for-tests)))
6963 (inputs
6964 `(("accountsservice" ,accountsservice)
6965 ("clutter-gtk" ,clutter-gtk)
6966 ("colord-gtk" ,colord-gtk)
6967 ("cups" ,cups)
6968 ("dconf" ,dconf)
6969 ("docbook-xsl" ,docbook-xsl)
6970 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
6971 ("gnome-bluetooth" ,gnome-bluetooth)
6972 ("gnome-desktop" ,gnome-desktop)
6973 ("gnome-online-accounts" ,gnome-online-accounts)
6974 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6975 ("gnome-session" ,gnome-session)
6976 ("gnome-settings-daemon" ,gnome-settings-daemon)
6977 ("grilo" ,grilo)
6978 ("gsound" ,gsound)
6979 ("ibus" ,ibus)
6980 ("libcanberra" ,libcanberra)
6981 ("libgnomekbd" ,libgnomekbd)
6982 ("libgudev" ,libgudev)
6983 ("libgtop" ,libgtop)
6984 ("libpwquality" ,libpwquality)
6985 ("libsecret" ,libsecret)
6986 ("libsoup" ,libsoup)
6987 ("libxml2" ,libxml2)
6988 ("libwacom" ,libwacom)
6989 ("mesa" ,mesa)
6990 ("mit-krb5" ,mit-krb5)
6991 ("modem-manager" ,modem-manager)
6992 ("network-manager-applet" ,network-manager-applet)
6993 ("polkit" ,polkit)
6994 ("pulseaudio" ,pulseaudio)
6995 ("smbclient" ,samba)
6996 ("tzdata" ,tzdata)
6997 ("udisks" ,udisks)
6998 ("upower" ,upower)))
6999 (synopsis "Utilities to configure the GNOME desktop")
7000 (home-page "https://www.gnome.org/")
7001 (description
7002 "This package contains configuration applets for the GNOME desktop,
7003 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7004 properties, sound setup, desktop theme and background, user interface
7005 properties, screen resolution, and other GNOME parameters.")
7006 (license license:gpl2+)))
7007
7008 (define-public gnome-shell
7009 (package
7010 (name "gnome-shell")
7011 (version "3.32.2")
7012 (source (origin
7013 (method url-fetch)
7014 (uri (string-append "mirror://gnome/sources/" name "/"
7015 (version-major+minor version) "/"
7016 name "-" version ".tar.xz"))
7017 (sha256
7018 (base32
7019 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
7020 (patches (search-patches "gnome-shell-theme.patch"))
7021 (modules '((guix build utils)))
7022 (snippet
7023 #~(begin
7024 ;; Copy images for use on the GDM log-in screen.
7025 (copy-file #$(file-append %artwork-repository
7026 "/slim/0.x/background.png")
7027 "data/theme/guix-background.png")
7028 (copy-file #$(file-append %artwork-repository
7029 "/logo/Guix-horizontal-white.svg")
7030 "data/theme/guix-logo.svg")
7031 #t))))
7032 (build-system meson-build-system)
7033 (arguments
7034 `(#:glib-or-gtk? #t
7035 #:disallowed-references ((,glib "bin")
7036 ,inkscape ,libxslt
7037 ,ruby-sass)
7038 #:configure-flags
7039 (list "-Dsystemd=false"
7040 ;; Otherwise, the RUNPATH will lack the final path component.
7041 (string-append "-Dc_link_args=-Wl,-rpath="
7042 (assoc-ref %outputs "out")
7043 "/lib/gnome-shell"))
7044
7045 #:modules ((guix build meson-build-system)
7046 (guix build utils)
7047 (srfi srfi-1))
7048
7049 #:phases
7050 (modify-phases %standard-phases
7051 (add-after 'unpack 'fix-keysdir
7052 (lambda* (#:key outputs #:allow-other-keys)
7053 (let* ((out (assoc-ref outputs "out"))
7054 (keysdir (string-append
7055 out "/share/gnome-control-center/keybindings")))
7056 (substitute* "meson.build"
7057 (("keysdir =.*")
7058 (string-append "keysdir = '" keysdir "'\n")))
7059 #t)))
7060 (add-before 'configure 'convert-logo-to-png
7061 (lambda* (#:key inputs #:allow-other-keys)
7062 ;; Convert the logo from SVG to PNG.
7063 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7064 "data/theme/guix-logo.svg")))
7065 (add-before 'configure 'record-absolute-file-names
7066 (lambda* (#:key inputs #:allow-other-keys)
7067 (substitute* "js/misc/ibusManager.js"
7068 (("'ibus-daemon'")
7069 (string-append "'" (assoc-ref inputs "ibus")
7070 "/bin/ibus-daemon'")))
7071 (substitute* "js/ui/status/keyboard.js"
7072 (("'gkbd-keyboard-display'")
7073 (string-append "'" (assoc-ref inputs "libgnomekbd")
7074 "/bin/gkbd-keyboard-display'")))
7075 #t))
7076 (add-before 'check 'pre-check
7077 (lambda* (#:key inputs #:allow-other-keys)
7078 ;; Tests require a running X server.
7079 (system "Xvfb :1 &")
7080 (setenv "DISPLAY" ":1")
7081 #t))
7082 (add-after 'install 'wrap-programs
7083 (lambda* (#:key inputs outputs #:allow-other-keys)
7084 (let ((out (assoc-ref outputs "out"))
7085 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7086 (python-path (getenv "PYTHONPATH")))
7087 (wrap-program (string-append out "/bin/gnome-shell")
7088 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7089 ;; FIXME: gnome-shell loads these libraries with unqualified
7090 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7091 ;; alternative might be to patch gnome-shell.
7092 `("LD_LIBRARY_PATH" ":" prefix
7093 ,(map (lambda (pkg)
7094 (string-append (assoc-ref inputs pkg) "/lib"))
7095 '("gdk-pixbuf"
7096 "gnome-bluetooth" "librsvg" "libgweather"))))
7097 (for-each
7098 (lambda (prog)
7099 (wrap-program (string-append out "/bin/" prog)
7100 `("PYTHONPATH" ":" prefix (,python-path))
7101 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7102 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7103 #t)))
7104 (replace 'glib-or-gtk-wrap
7105 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7106 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7107 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7108 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7109 ;; phase. Fix that since we don't need these.
7110 (wrap #:inputs (fold alist-delete inputs
7111 '("inkscape" "intltool" "glib:bin"))
7112 #:outputs outputs)))))))
7113 (native-inputs
7114 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7115 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7116 ("gobject-introspection" ,gobject-introspection)
7117 ("inkscape" ,inkscape)
7118 ("intltool" ,intltool)
7119 ("pkg-config" ,pkg-config)
7120 ("python" ,python)
7121 ("ruby-sass" ,ruby-sass)
7122 ("sassc" ,sassc)
7123 ("xsltproc" ,libxslt)
7124 ;; For tests
7125 ("xorg-server" ,xorg-server-for-tests)))
7126 (inputs
7127 `(("accountsservice" ,accountsservice)
7128 ("caribou" ,caribou)
7129 ("docbook-xsl" ,docbook-xsl)
7130 ("evolution-data-server" ,evolution-data-server)
7131 ("gcr" ,gcr)
7132 ("gdm" ,gdm)
7133 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7134 ("gjs" ,gjs)
7135 ("gnome-bluetooth" ,gnome-bluetooth)
7136 ("gnome-desktop" ,gnome-desktop)
7137 ("gnome-settings-daemon" ,gnome-settings-daemon)
7138 ("gst-plugins-base" ,gst-plugins-base)
7139 ("ibus" ,ibus)
7140 ("libcanberra" ,libcanberra)
7141 ("libcroco" ,libcroco)
7142 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7143 ("libgweather" ,libgweather)
7144 ("libsoup" ,libsoup)
7145 ("mesa-headers" ,mesa-headers)
7146 ("mutter" ,mutter)
7147 ("network-manager-applet" ,network-manager-applet)
7148 ("polkit" ,polkit)
7149 ("pulseaudio" ,pulseaudio)
7150 ("python-pygobject" ,python-pygobject)
7151 ("startup-notification" ,startup-notification)
7152 ("telepathy-logger" ,telepathy-logger)
7153 ("upower" ,upower)
7154 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7155 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7156 ("librsvg" ,librsvg)
7157 ("geoclue" ,geoclue)))
7158 (synopsis "Desktop shell for GNOME")
7159 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7160 (description
7161 "GNOME Shell provides core user interface functions for the GNOME desktop,
7162 like switching to windows and launching applications.")
7163 (license license:gpl2+)))
7164
7165 (define-public gtk-vnc
7166 (package
7167 (name "gtk-vnc")
7168 (version "0.9.0")
7169 (source
7170 (origin
7171 (method url-fetch)
7172 (uri (string-append "mirror://gnome/sources/" name "/"
7173 (version-major+minor version) "/"
7174 name "-" version ".tar.xz"))
7175 (sha256
7176 (base32
7177 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7178 (build-system gnu-build-system)
7179 (arguments
7180 '(#:configure-flags '("--with-gtk=3.0")))
7181 (propagated-inputs
7182 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7183 (inputs
7184 `(("cyrus-sasl" ,cyrus-sasl)
7185 ("gnutls" ,gnutls)
7186 ("libgcrypt" ,libgcrypt)
7187 ("pulseaudio" ,pulseaudio)))
7188 (native-inputs
7189 `(("glib:bin" ,glib "bin")
7190 ("gobject-introspection" ,gobject-introspection)
7191 ("intltool" ,intltool)
7192 ("pkg-config" ,pkg-config)
7193 ("python-wrapper" ,python-wrapper)
7194 ("vala" ,vala)))
7195 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7196 (synopsis "VNC viewer widget for GTK+")
7197 (description
7198 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7199 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7200 GTK-VNC implements client side RFB protocol and authentication extensions such
7201 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7202 (license license:lgpl2.1+)))
7203
7204 (define-public gnome-autoar
7205 (package
7206 (name "gnome-autoar")
7207 (version "0.2.3")
7208 (source (origin
7209 (method url-fetch)
7210 (uri (string-append "mirror://gnome/sources/" name "/"
7211 (version-major+minor version) "/"
7212 name "-" version ".tar.xz"))
7213 (sha256
7214 (base32
7215 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
7216 (build-system glib-or-gtk-build-system)
7217 (native-inputs
7218 `(("gnome-common" ,gnome-common)
7219 ("gobject-introspection" ,gobject-introspection)
7220 ("pkg-config" ,pkg-config)))
7221 (propagated-inputs
7222 `(("libarchive" ,libarchive))) ; XXX document why
7223 (inputs
7224 `(("gtk+" ,gtk+)))
7225 (synopsis "Archives integration support for GNOME")
7226 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7227 (description
7228 "GNOME Autoar is a library which makes creating and extracting archives
7229 easy, safe, and automatic.")
7230 (license license:lgpl2.1+)))
7231
7232 (define-public tracker
7233 (package
7234 (name "tracker")
7235 (version "2.2.2")
7236 (source (origin
7237 (method url-fetch)
7238 (uri (string-append "mirror://gnome/sources/tracker/"
7239 (version-major+minor version) "/"
7240 "tracker-" version ".tar.xz"))
7241 (sha256
7242 (base32
7243 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
7244 (build-system meson-build-system)
7245 (arguments
7246 `(#:glib-or-gtk? #t
7247 #:configure-flags
7248 ;; Otherwise, the RUNPATH will lack the final path component.
7249 (list (string-append "-Dc_link_args=-Wl,-rpath="
7250 (assoc-ref %outputs "out") "/lib:"
7251 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7252 #:phases
7253 (modify-phases %standard-phases
7254 (add-after 'unpack 'disable-broken-tests
7255 (lambda _
7256 ;; These fail because the SPARQL backend could not be loaded.
7257 ;; That's because /etc/machine-id is missing, but
7258 ;; DBUS_FATAL_WARNINGS does not help here.
7259 (substitute* "tests/libtracker-sparql/meson.build"
7260 (("'sparql',") ""))
7261 (substitute* "tests/tracker-steroids/meson.build"
7262 (("test\\(.*") ""))
7263 #t))
7264 ;; Two tests fail if LANG is not set.
7265 (add-before 'check 'pre-check
7266 (lambda _
7267 (setenv "LANG" "en_US.UTF-8")
7268 ;; For the missing /etc/machine-id.
7269 (setenv "DBUS_FATAL_WARNINGS" "0")
7270 #t)))))
7271 (native-inputs
7272 `(("glib:bin" ,glib "bin")
7273 ("gnome-common" ,gnome-common)
7274 ("gobject-introspection" ,gobject-introspection)
7275 ("python-pygobject" ,python-pygobject)
7276 ("intltool" ,intltool)
7277 ("pkg-config" ,pkg-config)
7278 ("vala" ,vala)))
7279 (inputs
7280 `(("gtk+" ,gtk+)
7281 ("dbus" ,dbus)
7282 ("sqlite" ,sqlite)
7283 ("python" ,python)
7284 ("poppler" ,poppler)
7285 ("libpng" ,libpng)
7286 ("libtiff" ,libtiff)
7287 ("zlib" ,zlib)
7288 ("libxml2" ,libxml2)
7289 ("libunistring" ,libunistring)
7290 ("json-glib" ,json-glib)
7291 ("openjpeg" ,openjpeg-1)
7292 ("libseccomp" ,libseccomp)
7293 ("libsoup" ,libsoup)
7294 ("libuuid" ,util-linux "lib")
7295 ("network-manager" ,network-manager)))
7296 (synopsis "Metadata database, indexer and search tool")
7297 (home-page "https://wiki.gnome.org/Projects/Tracker")
7298 (description
7299 "Tracker is an advanced framework for first class objects with associated
7300 metadata and tags. It provides a one stop solution for all metadata, tags,
7301 shared object databases, search tools and indexing.")
7302 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7303 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7304 (license (list license:gpl2+
7305 license:lgpl2.1+
7306 license:lgpl2.0+))))
7307
7308 (define-public tracker-miners
7309 (package
7310 (name "tracker-miners")
7311 (version "2.2.2")
7312 (source (origin
7313 (method url-fetch)
7314 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7315 (version-major+minor version)
7316 "/tracker-miners-" version ".tar.xz"))
7317 (sha256
7318 (base32
7319 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
7320 (build-system meson-build-system)
7321 (arguments
7322 `(#:glib-or-gtk? #t
7323 #:configure-flags
7324 (list "-Dminer_rss=false" ; libgrss is required.
7325 ;; Ensure the RUNPATH contains all installed library locations.
7326 (string-append "-Dc_link_args=-Wl,-rpath="
7327 (assoc-ref %outputs "out")
7328 "/lib/tracker-miners-2.0")
7329 ;; TODO: Enable functional tests. Currently, the following error
7330 ;; appears:
7331 ;; Exception: The functional tests require DConf to be the default
7332 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7333 "-Dfunctional_tests=false")))
7334 (native-inputs
7335 `(("dbus" ,dbus)
7336 ("intltool" ,intltool)
7337 ("glib:bin" ,glib "bin")
7338 ("gobject-introspection" ,gobject-introspection)
7339 ("pkg-config" ,pkg-config)
7340 ("python-pygobject" ,python-pygobject)))
7341 (inputs
7342 `(("exempi" ,exempi)
7343 ("ffmpeg" ,ffmpeg)
7344 ("flac" ,flac)
7345 ("giflib" ,giflib)
7346 ("glib" ,glib)
7347 ("gstreamer" ,gstreamer)
7348 ("icu4c" ,icu4c)
7349 ("libcue" ,libcue)
7350 ("libexif" ,libexif)
7351 ("libgsf" ,libgsf)
7352 ("libgxps" ,libgxps)
7353 ("libiptcdata" ,libiptcdata)
7354 ("libjpeg" ,libjpeg)
7355 ("libosinfo" ,libosinfo)
7356 ("libpng" ,libpng)
7357 ("libseccomp" ,libseccomp)
7358 ("libtiff" ,libtiff)
7359 ("libvorbis" ,libvorbis)
7360 ("libxml2" ,libxml2)
7361 ("poppler" ,poppler)
7362 ("taglib" ,taglib)
7363 ("totem-pl-parser" ,totem-pl-parser)
7364 ("tracker" ,tracker)
7365 ("upower" ,upower)
7366 ("zlib" ,zlib)))
7367 (synopsis "Metadata database, indexer and search tool")
7368 (home-page "https://wiki.gnome.org/Projects/Tracker")
7369 (description
7370 "Tracker is an advanced framework for first class objects with associated
7371 metadata and tags. It provides a one stop solution for all metadata, tags,
7372 shared object databases, search tools and indexing.")
7373 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7374 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7375 (license (list license:gpl2+
7376 license:lgpl2.1+
7377 license:lgpl2.0+))))
7378
7379 (define-public nautilus
7380 (package
7381 (name "nautilus")
7382 (version "3.32.3")
7383 (source (origin
7384 (method url-fetch)
7385 (uri (string-append "mirror://gnome/sources/" name "/"
7386 (version-major+minor version) "/"
7387 name "-" version ".tar.xz"))
7388 (sha256
7389 (base32
7390 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
7391 (build-system meson-build-system)
7392 (arguments
7393 '(#:glib-or-gtk? #t
7394 ;; XXX: FAIL: check-nautilus
7395 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7396 #:tests? #f))
7397 (native-inputs
7398 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7399 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7400 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7401 ("gobject-introspection" ,gobject-introspection)
7402 ("intltool" ,intltool)
7403 ("pkg-config" ,pkg-config)))
7404 (inputs
7405 `(("dconf" ,dconf)
7406 ("gexiv2" ,gexiv2)
7407 ("gvfs" ,gvfs)
7408 ("exempi" ,exempi)
7409 ("gnome-desktop" ,gnome-desktop)
7410 ("gnome-autoar" ,gnome-autoar)
7411 ("gst-plugins-base" ,gst-plugins-base)
7412 ("libseccomp" ,libseccomp)
7413 ("libselinux" ,libselinux)
7414 ("tracker" ,tracker)
7415 ("tracker-miners" ,tracker-miners)
7416 ;; XXX: gtk+ is required by libnautilus-extension.pc
7417 ;;
7418 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7419 ;; package. See:
7420 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7421 ("gtk+" ,gtk+)
7422 ("libexif" ,libexif)
7423 ("libxml2" ,libxml2)))
7424 (synopsis "File manager for GNOME")
7425 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7426 (description
7427 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7428 design and behaviour, giving the user a simple way to navigate and manage its
7429 files.")
7430 (license license:gpl2+)))
7431
7432 (define-public baobab
7433 (package
7434 (name "baobab")
7435 (version "3.32.0")
7436 (source (origin
7437 (method url-fetch)
7438 (uri (string-append
7439 "mirror://gnome/sources/" name "/"
7440 (version-major+minor version) "/"
7441 name "-" version ".tar.xz"))
7442 (sha256
7443 (base32
7444 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7445 (build-system meson-build-system)
7446 (arguments
7447 '(#:glib-or-gtk? #t))
7448 (native-inputs
7449 `(("intltool" ,intltool)
7450 ("pkg-config" ,pkg-config)
7451 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7452 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7453 ("itstool" ,itstool)
7454 ("xmllint" ,libxml2)
7455 ("glib" ,glib "bin")
7456 ("vala" ,vala)))
7457 (inputs
7458 `(("gtk+" ,gtk+)))
7459 (synopsis "Disk usage analyzer for GNOME")
7460 (description
7461 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7462 usage in the GNOME desktop environment. It can easily scan device volumes or
7463 a specific user-requested directory branch (local or remote). Once the scan
7464 is complete it provides a graphical representation of each selected folder.")
7465 (home-page "https://wiki.gnome.org/Apps/Baobab")
7466 (license license:gpl2+)))
7467
7468 (define-public gnome-backgrounds
7469 (package
7470 (name "gnome-backgrounds")
7471 (version "3.32.0")
7472 (source
7473 (origin
7474 (method url-fetch)
7475 (uri (string-append "mirror://gnome/sources/" name "/"
7476 (version-major+minor version) "/"
7477 name "-" version ".tar.xz"))
7478 (sha256
7479 (base32
7480 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
7481 (build-system meson-build-system)
7482 (native-inputs
7483 `(("intltool" ,intltool)))
7484 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7485 (synopsis "Background images for the GNOME desktop")
7486 (description
7487 "GNOME backgrounds package contains a collection of graphics files which
7488 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7489 the package creates the proper framework and directory structure so that you
7490 can add your own files to the collection.")
7491 (license (list license:gpl2+
7492 license:cc-by2.0
7493 license:cc-by-sa2.0
7494 license:cc-by-sa3.0))))
7495
7496 (define-public gnome-screenshot
7497 (package
7498 (name "gnome-screenshot")
7499 (version "3.32.0")
7500 (source
7501 (origin
7502 (method url-fetch)
7503 (uri (string-append "mirror://gnome/sources/" name "/"
7504 (version-major+minor version) "/"
7505 name "-" version ".tar.xz"))
7506 (sha256
7507 (base32
7508 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
7509 (build-system meson-build-system)
7510 (native-inputs
7511 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7512 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7513 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7514 ("intltool" ,intltool)
7515 ("appstream-glib" ,appstream-glib)
7516 ("pkg-config" ,pkg-config)))
7517 (inputs
7518 `(("gtk+" ,gtk+)
7519 ("libcanberra" ,libcanberra)
7520 ("libx11" ,libx11)
7521 ("libxext" ,libxext)))
7522 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7523 (synopsis "Take pictures of your screen")
7524 (description
7525 "GNOME Screenshot is a utility used for taking screenshots of the entire
7526 screen, a window or a user defined area of the screen, with optional
7527 beautifying border effects.")
7528 (license license:gpl2+)))
7529
7530 (define-public dconf-editor
7531 (package
7532 (name "dconf-editor")
7533 (version "3.32.0")
7534 (source
7535 (origin
7536 (method url-fetch)
7537 (uri (string-append "mirror://gnome/sources/" name "/"
7538 (version-major+minor version) "/"
7539 name "-" version ".tar.xz"))
7540 (sha256
7541 (base32
7542 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
7543 (build-system meson-build-system)
7544 (arguments
7545 '(#:phases (modify-phases %standard-phases
7546 (add-before 'configure 'set-glib-minimum-version
7547 (lambda _
7548 ;; Change the minimum required GLib version so that
7549 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7550 ;; do that, it complains that "55" is not an even
7551 ;; number. See <https://bugs.gnu.org/37503>.
7552 (substitute* "editor/meson.build"
7553 (("2\\.55\\.1") "2.60.0"))
7554 #t)))))
7555 (native-inputs
7556 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7557 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7558 ("intltool" ,intltool)
7559 ("pkg-config" ,pkg-config)
7560 ("vala" ,vala)))
7561 (inputs
7562 `(("dconf" ,dconf)
7563 ("gtk+" ,gtk+)
7564 ("libxml2" ,libxml2)))
7565 (home-page "https://git.gnome.org/browse/dconf-editor")
7566 (synopsis "Graphical editor for GNOME's dconf configuration system")
7567 (description
7568 "Dconf-editor is a graphical tool for browsing and editing the dconf
7569 configuration system for GNOME. It allows users to configure desktop
7570 software that do not provide their own configuration interface.")
7571 (license license:lgpl2.1+)))
7572
7573 (define-public gnome-default-applications
7574 (package
7575 (name "gnome-default-applications")
7576 (version "0")
7577 (build-system trivial-build-system)
7578 (source #f)
7579 (propagated-inputs
7580 `(("nautilus" ,nautilus)
7581 ("evince" ,evince)))
7582 (arguments
7583 `(#:modules ((guix build utils))
7584 #:builder
7585 (begin
7586 (use-modules (guix build utils))
7587 (let* ((out (assoc-ref %outputs "out"))
7588 (apps (string-append out "/share/applications")))
7589 (mkdir-p apps)
7590 (call-with-output-file (string-append apps "/defaults.list")
7591 (lambda (port)
7592 (format port "[Default Applications]\n")
7593 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7594 (format port "application/pdf=evince.desktop\n")
7595 (format port "application/postscript=evince.desktop\n")))
7596 #t))))
7597 (synopsis "Default MIME type associations for the GNOME desktop")
7598 (description
7599 "Given many installed packages which might handle a given MIME type, a
7600 user running the GNOME desktop probably has some preferences: for example,
7601 that folders be opened by default by the Nautilus file manager, not the Baobab
7602 disk usage analyzer. This package establishes that set of default MIME type
7603 associations for GNOME.")
7604 (license license:gpl3+)
7605 (home-page #f)))
7606
7607 (define-public libgovirt
7608 (package
7609 (name "libgovirt")
7610 (version "0.3.6")
7611 (source (origin
7612 (method url-fetch)
7613 (uri (string-append "mirror://gnome/sources/" name "/"
7614 (version-major+minor version) "/"
7615 name "-" version ".tar.xz"))
7616 (sha256
7617 (base32
7618 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7619 (build-system glib-or-gtk-build-system)
7620 (native-inputs
7621 `(("gettext" ,gettext-minimal)
7622 ("glib:bin" ,glib "bin")
7623 ("gobject-introspection" ,gobject-introspection)
7624 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7625 ("gtk+:bin" ,gtk+ "bin")
7626 ("pkg-config" ,pkg-config)))
7627 (inputs
7628 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7629 ("librest" ,rest)))
7630 (synopsis "GoVirt Library")
7631 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7632 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7633 (license license:gpl2+)))
7634
7635 (define-public gnome-weather
7636 (package
7637 (name "gnome-weather")
7638 (version "3.34.0")
7639 (source (origin
7640 (method url-fetch)
7641 (uri (string-append "mirror://gnome/sources/" name "/"
7642 (version-major+minor version) "/"
7643 name "-" version ".tar.xz"))
7644 (sha256
7645 (base32
7646 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7647 (build-system meson-build-system)
7648 (native-inputs
7649 `(("gettext" ,gettext-minimal)
7650 ("glib:bin" ,glib "bin")
7651 ("gobject-introspection" ,gobject-introspection)
7652 ("gtk+:bin" ,gtk+ "bin")
7653 ("pkg-config" ,pkg-config)))
7654 (inputs
7655 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7656 ("appstream-glib" ,appstream-glib)
7657 ("geoclue" ,geoclue)
7658 ("gdk-pixbuf" ,gdk-pixbuf)
7659 ("gjs" ,gjs)
7660 ("gnome-desktop" ,gnome-desktop)
7661 ("libgweather" ,libgweather)))
7662 (synopsis "Weather monitoring for GNOME desktop")
7663 (description "GNOME Weather is a small application that allows you to
7664 monitor the current weather conditions for your city, or anywhere in the
7665 world.")
7666 (home-page "https://wiki.gnome.org/Apps/Weather")
7667 (license license:gpl2+)))
7668
7669 (define-public gnome
7670 (package
7671 (name "gnome")
7672 (version (package-version gnome-shell))
7673 (source #f)
7674 (build-system trivial-build-system)
7675 (arguments '(#:builder (begin (mkdir %output) #t)))
7676 (propagated-inputs
7677 ;; TODO: Add or remove packages according to:
7678 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7679 `(
7680 ;; GNOME-Core-OS-Services
7681 ("accountsservice" ,accountsservice)
7682 ("network-manager" ,network-manager)
7683 ("packagekit" ,packagekit)
7684 ("upower" ,upower)
7685 ;; GNOME-Core-Shell
7686 ("adwaita-icon-theme" ,adwaita-icon-theme)
7687 ("gdm" ,gdm)
7688 ("glib-networking" ,glib-networking)
7689 ("gnome-backgrounds" ,gnome-backgrounds)
7690 ("gnome-bluetooth" ,gnome-bluetooth)
7691 ("gnome-control-center" ,gnome-control-center)
7692 ("gnome-desktop" ,gnome-desktop)
7693 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7694 ("gnome-keyring" ,gnome-keyring)
7695 ("gnome-menus" ,gnome-menus)
7696 ("gnome-session" ,gnome-session)
7697 ("gnome-settings-daemon" ,gnome-settings-daemon)
7698 ("gnome-shell-extensions" ,gnome-shell-extensions)
7699 ("gnome-shell" ,gnome-shell)
7700 ("gnome-themes-extra" ,gnome-themes-extra)
7701 ("gnome-user-docs" ,gnome-user-docs)
7702 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7703 ("gvfs" ,gvfs)
7704 ("mutter" ,mutter)
7705 ("orca" ,orca)
7706 ;; GNOME-Core-Utilities
7707 ("baobab" ,baobab)
7708 ("cheese" ,cheese)
7709 ("eog" ,eog)
7710 ("epiphany" ,epiphany)
7711 ("evince" ,evince)
7712 ("file-roller" ,file-roller)
7713 ("gedit" ,gedit)
7714 ("gnome-calculator" ,gnome-calculator)
7715 ("gnome-calendar" ,gnome-calendar)
7716 ("gnome-characters" ,gnome-characters)
7717 ("gnome-clocks" ,gnome-clocks)
7718 ("gnome-contacts" ,gnome-contacts)
7719 ("gnome-disk-utility" ,gnome-disk-utility)
7720 ("gnome-font-viewer" ,gnome-font-viewer)
7721 ("gnome-maps" ,gnome-maps)
7722 ("gnome-screenshot" ,gnome-screenshot)
7723 ("gnome-system-monitor" ,gnome-system-monitor)
7724 ("gnome-terminal" ,gnome-terminal)
7725 ("nautilus" ,nautilus)
7726 ("simple-scan" ,simple-scan)
7727 ("totem" ,totem)
7728 ("yelp" ,yelp)
7729 ;; Others
7730 ("hicolor-icon-theme" ,hicolor-icon-theme)
7731 ("gnome-online-accounts" ,gnome-online-accounts)))
7732 (synopsis "The GNU desktop environment")
7733 (home-page "https://www.gnome.org/")
7734 (description
7735 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7736 applications for browsing the web, editing text and images, creating
7737 documents and diagrams, playing media, scanning, and much more.")
7738 (license license:gpl2+)))
7739
7740 (define-public byzanz
7741 ;; The last stable release of Byzanz was in 2011, but there have been many
7742 ;; useful commits made to the Byzanz repository since then that it would be
7743 ;; silly to use such an old release.
7744 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7745 (package
7746 (name "byzanz")
7747 (version (string-append "0.2-1." (string-take commit 7)))
7748 (source (origin
7749 (method git-fetch)
7750 (uri (git-reference
7751 (url "https://git.gnome.org/browse/byzanz")
7752 (commit commit)))
7753 (file-name (string-append name "-" version "-checkout"))
7754 (sha256
7755 (base32
7756 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7757 (build-system glib-or-gtk-build-system)
7758 (arguments
7759 '(#:phases
7760 (modify-phases %standard-phases
7761 (replace 'bootstrap
7762 (lambda _
7763 ;; The build system cleverly detects that we're not building from
7764 ;; a release tarball and turns on -Werror for GCC.
7765 ;; Unsurprisingly, there is a warning during compilation that
7766 ;; causes the build to fail unnecessarily, so we remove the flag.
7767 (substitute* '("configure.ac")
7768 (("-Werror") ""))
7769 ;; The autogen.sh script in gnome-common will run ./configure
7770 ;; by default, which is problematic because source shebangs
7771 ;; have not yet been patched.
7772 (setenv "NOCONFIGURE" "t")
7773 (zero? (system* "sh" "autogen.sh")))))))
7774 (native-inputs
7775 `(("autoconf" ,autoconf)
7776 ("automake" ,automake)
7777 ("gnome-common" ,gnome-common)
7778 ("intltool" ,intltool)
7779 ("libtool" ,libtool)
7780 ("pkg-config" ,pkg-config)
7781 ("which" ,which)))
7782 (inputs
7783 `(("glib" ,glib)
7784 ("gstreamer" ,gstreamer)
7785 ("gst-plugins-base" ,gst-plugins-base)
7786 ("gtk+" ,gtk+)))
7787 (synopsis "Desktop recording program")
7788 (description "Byzanz is a simple desktop recording program with a
7789 command-line interface. It can record part or all of an X display for a
7790 specified duration and save it as a GIF encoded animated image file.")
7791 (home-page "https://git.gnome.org/browse/byzanz")
7792 (license license:gpl2+))))
7793
7794 (define-public gsound
7795 (package
7796 (name "gsound")
7797 (version "1.0.2")
7798 (source (origin
7799 (method url-fetch)
7800 (uri (string-append "mirror://gnome/sources/" name "/"
7801 (version-major+minor version) "/"
7802 name "-" version ".tar.xz"))
7803 (sha256
7804 (base32
7805 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7806 (build-system glib-or-gtk-build-system)
7807 (native-inputs
7808 `(("pkg-config" ,pkg-config)
7809 ("gobject-introspection" ,gobject-introspection)
7810 ("vala" ,vala)))
7811 (inputs
7812 `(("glib" ,glib)
7813 ("libcanberra" ,libcanberra)))
7814 (home-page "https://wiki.gnome.org/Projects/GSound")
7815 (synopsis "GObject wrapper for libcanberra")
7816 (description
7817 "GSound is a small library for playing system sounds. It's designed to be
7818 used via GObject Introspection, and is a thin wrapper around the libcanberra C
7819 library.")
7820 (license license:lgpl2.1+)))
7821
7822 (define-public libzapojit
7823 (package
7824 (name "libzapojit")
7825 (version "0.0.3")
7826 (source (origin
7827 (method url-fetch)
7828 (uri (string-append "mirror://gnome/sources/" name "/"
7829 (version-major+minor version) "/"
7830 name "-" version ".tar.xz"))
7831 (sha256
7832 (base32
7833 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7834 (build-system gnu-build-system)
7835 (native-inputs
7836 `(("gobject-introspection" ,gobject-introspection)
7837 ("intltool" ,intltool)
7838 ("pkg-config" ,pkg-config)))
7839 (inputs
7840 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7841 ("json-glib" ,json-glib)
7842 ("rest" ,rest)))
7843 (home-page "https://wiki.gnome.org/Projects/Zapojit")
7844 (synopsis "Library for accessing SkyDrive and Hotmail")
7845 (description
7846 "Libzapojit is a GLib-based library for accessing online service APIs of
7847 Microsoft SkyDrive and Hotmail, using their REST protocols.")
7848 (license license:lgpl2.1+)))
7849
7850 (define-public gnome-clocks
7851 (package
7852 (name "gnome-clocks")
7853 (version "3.32.0")
7854 (source (origin
7855 (method url-fetch)
7856 (uri (string-append "mirror://gnome/sources/" name "/"
7857 (version-major+minor version) "/"
7858 name "-" version ".tar.xz"))
7859 (sha256
7860 (base32
7861 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
7862 (build-system meson-build-system)
7863 (arguments
7864 '(#:glib-or-gtk? #t))
7865 (native-inputs
7866 `(("vala" ,vala)
7867 ("pkg-config" ,pkg-config)
7868 ("glib" ,glib "bin") ; for glib-compile-resources
7869 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7870 ("desktop-file-utils" ,desktop-file-utils)
7871 ("gettext" ,gettext-minimal)
7872 ("itstool" ,itstool)))
7873 (inputs
7874 `(("glib" ,glib)
7875 ("gtk+" ,gtk+)
7876 ("gsound" ,gsound)
7877 ("geoclue" ,geoclue)
7878 ("geocode-glib" ,geocode-glib)
7879 ("libgweather" ,libgweather)
7880 ("gnome-desktop" ,gnome-desktop)))
7881 (home-page "https://wiki.gnome.org/Apps/Clocks")
7882 (synopsis "GNOME's clock application")
7883 (description
7884 "GNOME Clocks is a simple clocks application designed to fit the GNOME
7885 desktop. It supports world clock, stop watch, alarms, and count down timer.")
7886 (license license:gpl3+)))
7887
7888 (define-public gnome-calendar
7889 (package
7890 (name "gnome-calendar")
7891 (version "3.32.2")
7892 (source (origin
7893 (method url-fetch)
7894 (uri (string-append "mirror://gnome/sources/" name "/"
7895 (version-major+minor version) "/"
7896 name "-" version ".tar.xz"))
7897 (sha256
7898 (base32
7899 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
7900 (build-system meson-build-system)
7901 (arguments
7902 '(#:glib-or-gtk? #t
7903 ;; gnome-calendar has to be installed before the tests can be run
7904 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
7905 #:tests? #f))
7906 (native-inputs
7907 `(("gettext" ,gettext-minimal)
7908 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
7909 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7910 ("pkg-config" ,pkg-config)))
7911 (inputs
7912 `(("evolution-data-server" ,evolution-data-server)
7913 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7914 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7915 ("libdazzle" ,libdazzle)
7916 ("libedataserverui" ,evolution-data-server)
7917 ("libgweather" ,libgweather)
7918 ("geoclue" ,geoclue)))
7919 (home-page "https://wiki.gnome.org/Apps/Calendar")
7920 (synopsis "GNOME's calendar application")
7921 (description
7922 "GNOME Calendar is a simple calendar application designed to fit the GNOME
7923 desktop. It supports multiple calendars, month, week and year view.")
7924 (license license:gpl3+)))
7925
7926 (define-public gnome-todo
7927 (package
7928 (name "gnome-todo")
7929 (version "3.28.1")
7930 (source (origin
7931 (method url-fetch)
7932 (uri (string-append "mirror://gnome/sources/" name "/"
7933 (version-major+minor version) "/"
7934 name "-" version ".tar.xz"))
7935 (sha256
7936 (base32
7937 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
7938 (build-system meson-build-system)
7939 (arguments
7940 '(#:glib-or-gtk? #t
7941 #:phases (modify-phases %standard-phases
7942 (add-after
7943 'install 'wrap-gnome-todo
7944 (lambda* (#:key inputs outputs #:allow-other-keys)
7945 (let ((out (assoc-ref outputs "out"))
7946 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7947 (python-path (getenv "PYTHONPATH")))
7948 (wrap-program (string-append out "/bin/gnome-todo")
7949 ;; XXX: gi plugins are broken.
7950 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
7951 ;; For plugins.
7952 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7953 `("PYTHONPATH" ":" prefix (,python-path))))
7954 #t)))))
7955 (native-inputs
7956 `(("gettext" ,gettext-minimal)
7957 ("gobject-introspection" ,gobject-introspection)
7958 ("glib:bin" ,glib "bin") ; For glib-compile-resources
7959 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
7960 ("pkg-config" ,pkg-config)))
7961 (inputs
7962 `(("rest" ,rest) ; For Todoist plugin
7963 ("json-glib" ,json-glib) ; For Todoist plugin
7964 ("libedataserverui" ,evolution-data-server)
7965 ("libical" ,libical)
7966 ("libpeas" ,libpeas)
7967 ("python-pygobject" ,python-pygobject)
7968 ("evolution-data-server" ,evolution-data-server)
7969 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7970 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
7971 (home-page "https://wiki.gnome.org/Apps/Todo")
7972 (synopsis "GNOME's ToDo Application")
7973 (description
7974 "GNOME To Do is a simplistic personal task manager designed to perfectly
7975 fit the GNOME desktop.")
7976 (license license:gpl3+)))
7977
7978 (define-public gnome-dictionary
7979 (package
7980 (name "gnome-dictionary")
7981 (version "3.26.1")
7982 (source (origin
7983 (method url-fetch)
7984 (uri (string-append "mirror://gnome/sources/" name "/"
7985 (version-major+minor version) "/"
7986 name "-" version ".tar.xz"))
7987 (sha256
7988 (base32
7989 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
7990 (build-system meson-build-system)
7991 (arguments '(#:glib-or-gtk? #t
7992 #:phases (modify-phases %standard-phases
7993 (add-after 'unpack 'patch-install-script
7994 (lambda _
7995 ;; This script attempts to compile glib schemas
7996 ;; and create an empty MIME database. We do
7997 ;; that elsewhere, so prevent it from running.
7998 (substitute* "build-aux/post-install.sh"
7999 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8000 #t)))))
8001 (native-inputs
8002 `(("glib:bin" ,glib "bin")
8003 ("gobject-introspection" ,gobject-introspection)
8004 ("intltool" ,intltool)
8005 ("itstool" ,itstool)
8006 ("pkg-config" ,pkg-config)
8007 ("xmllint" ,libxml2)))
8008 (inputs
8009 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8010 ("gtk+" ,gtk+)))
8011 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8012 (synopsis "Look up words in dictionary sources")
8013 (description
8014 "GNOME Dictionary can look for the definition or translation of a word in
8015 existing databases over the internet.")
8016 (license license:gpl3+)))
8017
8018 (define-public gnome-tweaks
8019 (package
8020 (name "gnome-tweaks")
8021 (version "3.32.0")
8022 (source (origin
8023 (method url-fetch)
8024 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8025 (version-major+minor version) "/"
8026 "gnome-tweaks-" version ".tar.xz"))
8027 (patches
8028 (list (search-patch "gnome-tweaks-search-paths.patch")))
8029 (sha256
8030 (base32
8031 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
8032 (build-system meson-build-system)
8033 (arguments
8034 `(#:glib-or-gtk? #t
8035 #:configure-flags '("-Dlocalstatedir=/tmp"
8036 "-Dsysconfdir=/tmp")
8037 #:imported-modules ((guix build python-build-system)
8038 ,@%meson-build-system-modules)
8039 #:phases
8040 (modify-phases %standard-phases
8041 (add-after 'install 'wrap
8042 (@@ (guix build python-build-system) wrap))
8043 (add-after 'wrap 'wrap-gi-typelib
8044 (lambda* (#:key inputs outputs #:allow-other-keys)
8045 (let ((out (assoc-ref outputs "out"))
8046 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8047 (wrap-program (string-append out "/bin/gnome-tweaks")
8048 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8049 #t)))))
8050 (native-inputs
8051 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8052 ("intltool" ,intltool)
8053 ("pkg-config" ,pkg-config)))
8054 (inputs
8055 `(("gnome-desktop" ,gnome-desktop)
8056 ("gtk+" ,gtk+)
8057 ("gobject-introspection" ,gobject-introspection)
8058 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8059 ("libnotify" ,libnotify)
8060 ("libsoup" ,libsoup)
8061 ("nautilus" ,nautilus)
8062 ("python" ,python)
8063 ("python-pygobject" ,python-pygobject)))
8064 (synopsis "Customize advanced GNOME 3 options")
8065 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8066 (description
8067 "GNOME Tweaks allows adjusting advanced configuration settings in
8068 GNOME 3. This includes things like the fonts used in user interface elements,
8069 alternative user interface themes, changes in window management behavior,
8070 GNOME Shell appearance and extension, etc.")
8071 (license license:gpl3+)))
8072
8073 ;; This package has been renamed by upstream.
8074 (define-public gnome-tweak-tool
8075 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
8076
8077 (define-public gnome-shell-extensions
8078 (package
8079 (name "gnome-shell-extensions")
8080 (version "3.32.1")
8081 (source (origin
8082 (method url-fetch)
8083 (uri (string-append "mirror://gnome/sources/" name "/"
8084 (version-major+minor version) "/"
8085 name "-" version ".tar.xz"))
8086 (sha256
8087 (base32
8088 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
8089 (build-system meson-build-system)
8090 (arguments
8091 '(#:configure-flags '("-Dextension_set=all")))
8092 (native-inputs
8093 `(("glib:bin" ,glib "bin")
8094 ("intltool" ,intltool)
8095 ("pkg-config" ,pkg-config)))
8096 (propagated-inputs
8097 `(("glib" ,glib)))
8098 (synopsis "Extensions for GNOME Shell")
8099 (description "GNOME Shell extensions modify and extend GNOME Shell
8100 functionality and behavior.")
8101 (home-page "https://extensions.gnome.org/")
8102 (license license:gpl3+)))
8103
8104 (define-public arc-theme
8105 (package
8106 (name "arc-theme")
8107 (version "20190917")
8108 (source (origin
8109 (method git-fetch)
8110 (uri (git-reference
8111 (url "https://github.com/NicoHood/arc-theme.git")
8112 (commit version)))
8113 (file-name (git-file-name name version))
8114 (sha256
8115 (base32
8116 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8117 (build-system gnu-build-system)
8118 (arguments
8119 '(#:phases
8120 (modify-phases %standard-phases
8121 ;; autogen.sh calls configure at the end of the script.
8122 (replace 'bootstrap
8123 (lambda _ (invoke "autoreconf" "-vfi"))))))
8124 (native-inputs
8125 `(("autoconf" ,autoconf)
8126 ("automake" ,automake)
8127 ("glib" ,glib "bin") ; for glib-compile-resources
8128 ("gnome-shell" ,gnome-shell)
8129 ("gtk+" ,gtk+)
8130 ("inkscape" ,inkscape)
8131 ("optipng" ,optipng)
8132 ("pkg-config" ,pkg-config)
8133 ("sassc" ,sassc)))
8134 (synopsis "A flat GTK+ theme with transparent elements")
8135 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8136 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8137 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8138 (home-page "https://github.com/horst3180/arc-theme")
8139 ;; No "or later" language found.
8140 (license license:gpl3+)))
8141
8142 (define-public faba-icon-theme
8143 (package
8144 (name "faba-icon-theme")
8145 (version "4.3")
8146 (source
8147 (origin
8148 (method git-fetch)
8149 (uri (git-reference
8150 (url "https://github.com/snwh/faba-icon-theme.git")
8151 (commit (string-append "v" version))))
8152 (file-name (git-file-name name version))
8153 (sha256
8154 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8155 (build-system meson-build-system)
8156 (arguments
8157 `(#:phases
8158 (modify-phases %standard-phases
8159 (add-before 'configure 'disable-post-install
8160 (lambda _
8161 (substitute* "meson.build"
8162 (("meson.add_install_script.*") "")))))))
8163 (native-inputs
8164 `(("autoconf" ,autoconf)
8165 ("automake" ,automake)))
8166 (synopsis "Faba icon theme")
8167 (description
8168 "Faba is a minimal icon set used as a basis for other themes such as
8169 Moka")
8170 (home-page "https://snwh.org/moka")
8171 (license (list license:lgpl3+
8172 license:cc-by-sa4.0))))
8173
8174 (define-public moka-icon-theme
8175 (package
8176 (inherit faba-icon-theme)
8177 (name "moka-icon-theme")
8178 (version "5.4.0")
8179 (source
8180 (origin
8181 (method git-fetch)
8182 (uri (git-reference
8183 (url "https://github.com/snwh/moka-icon-theme.git")
8184 (commit (string-append "v" version))))
8185 (file-name (git-file-name name version))
8186 (sha256
8187 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8188 (propagated-inputs
8189 ;; Moka is based on Faba by using it as a fallback icon set instead of
8190 ;; bundling it, so we need to add it as a propagated input.
8191 `(("faba-icon-theme" ,faba-icon-theme)))
8192 (synopsis "Moka icon theme")
8193 (description "Moka is a stylized desktop icon set, designed to be clear,
8194 simple and consistent.")
8195 (license (list license:gpl3+
8196 license:cc-by-sa4.0))))
8197
8198 (define-public arc-icon-theme
8199 (package
8200 (name "arc-icon-theme")
8201 (version "20161122")
8202 (source
8203 (origin
8204 (method git-fetch)
8205 (uri (git-reference
8206 (url "https://github.com/horst3180/arc-icon-theme.git")
8207 (commit version)))
8208 (file-name (git-file-name name version))
8209 (sha256
8210 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8211 (build-system gnu-build-system)
8212 (arguments
8213 `(#:phases
8214 (modify-phases %standard-phases
8215 (add-after 'unpack 'disable-configure-during-bootstrap
8216 (lambda _
8217 (substitute* "autogen.sh"
8218 (("^\"\\$srcdir/configure\".*") ""))
8219 #t)))))
8220 (native-inputs
8221 `(("autoconf" ,autoconf)
8222 ("automake" ,automake)))
8223 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8224 (propagated-inputs
8225 `(("moka-icon-theme" ,moka-icon-theme)))
8226 (synopsis "Arc icon theme")
8227 (description "The Arc icon theme provides a set of icons matching the
8228 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8229 the Moka icon theme.")
8230 (home-page "https://github.com/horst3180/arc-icon-theme")
8231 (license license:gpl3+)))
8232
8233 (define-public folks
8234 (package
8235 (name "folks")
8236 (version "0.11.4")
8237 (source (origin
8238 (method url-fetch)
8239 (uri (string-append
8240 "mirror://gnome/sources/folks/"
8241 (version-major+minor version) "/"
8242 "folks-" version ".tar.xz"))
8243 (sha256
8244 (base32
8245 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
8246 (build-system glib-or-gtk-build-system)
8247 (inputs
8248 `(("bdb" ,bdb)
8249 ("dbus-glib" ,dbus-glib)
8250 ("evolution-data-server" ,evolution-data-server)
8251 ("glib" ,glib)
8252 ("libgee" ,libgee)
8253 ("telepathy-glib" ,telepathy-glib)))
8254 (native-inputs
8255 `(("gobject-introspection" ,gobject-introspection)
8256 ("intltool" ,intltool)
8257 ("pkg-config" ,pkg-config)
8258 ("vala" ,vala)))
8259 (synopsis "Library to aggregate data about people")
8260 (description "Libfolks is a library that aggregates information about people
8261 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8262 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8263 etc.) to create metacontacts. It's written in Vala, which generates C code when
8264 compiled.")
8265 (home-page "https://wiki.gnome.org/Projects/Folks")
8266 (license license:lgpl2.1+)))
8267
8268 (define-public gfbgraph
8269 (package
8270 (name "gfbgraph")
8271 (version "0.2.3")
8272 (source (origin
8273 (method url-fetch)
8274 (uri (string-append
8275 "mirror://gnome/sources/gfbgraph/"
8276 (version-major+minor version) "/"
8277 "gfbgraph-" version ".tar.xz"))
8278 (sha256
8279 (base32
8280 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8281 (build-system glib-or-gtk-build-system)
8282 (arguments
8283 `(#:tests? #f ; Tests appear to require the network.
8284 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8285 #:configure-flags '("--disable-gtk-doc"
8286 "--disable-static"
8287 "--enable-introspection")))
8288 (native-inputs
8289 `(("pkg-config" ,pkg-config)
8290 ("gobject-introspection" ,gobject-introspection)))
8291 (inputs
8292 `(("json-glib" ,json-glib)
8293 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8294 ("rest" ,rest)))
8295 (synopsis "GLib/GObject wrapper for the Facebook API")
8296 (description "This library allows you to use the Facebook API from
8297 GLib/GObject code.")
8298 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8299 (license license:lgpl2.1+)))
8300
8301 (define-public libgnomekbd
8302 (package
8303 (name "libgnomekbd")
8304 (version "3.26.1")
8305 (source (origin
8306 (method url-fetch)
8307 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8308 (version-major+minor version) "/"
8309 "libgnomekbd-" version ".tar.xz"))
8310 (sha256
8311 (base32
8312 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8313 (build-system gnu-build-system)
8314 (native-inputs
8315 `(("pkg-config" ,pkg-config)
8316 ("glib" ,glib "bin")
8317 ("intltool" ,intltool)))
8318 (propagated-inputs
8319 ;; Referred to in .h files and .pc.
8320 `(("glib" ,glib)
8321 ("gtk+" ,gtk+)
8322 ("libxklavier" ,libxklavier)))
8323 (home-page "https://www.gnome.org")
8324 (synopsis "GNOME keyboard configuration library")
8325 (description
8326 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8327 environment, which can notably display keyboard layouts.")
8328 (license license:lgpl2.0+)))
8329
8330 ;;; This package is no longer maintained:
8331 ;;; https://wiki.gnome.org/Attic/LibUnique
8332 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8333 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8334 (define-public libunique
8335 (package
8336 (name "libunique")
8337 (version "3.0.2")
8338 (source (origin
8339 (method url-fetch)
8340 (uri (string-append "mirror://gnome/sources/" name "/"
8341 (version-major+minor version) "/"
8342 name "-" version ".tar.xz"))
8343 (sha256
8344 (base32
8345 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8346 (build-system glib-or-gtk-build-system)
8347 (arguments
8348 `(#:configure-flags '("--disable-static"
8349 "--disable-dbus" ; use gdbus
8350 "--enable-introspection")))
8351 (native-inputs
8352 `(("pkg-config" ,pkg-config)
8353 ("gobject-introspection" ,gobject-introspection)
8354 ("glib:bin" ,glib "bin")
8355 ("gtk-doc" ,gtk-doc)))
8356 (propagated-inputs
8357 ;; Referred to in .h files and .pc.
8358 `(("gtk+" ,gtk+)))
8359 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8360 (synopsis "Library for writing single instance applications")
8361 (description
8362 "Libunique is a library for writing single instance applications. If you
8363 launch a single instance application twice, the second instance will either just
8364 quit or will send a message to the running instance. Libunique makes it easy to
8365 write this kind of application, by providing a base class, taking care of all
8366 the IPC machinery needed to send messages to a running instance, and also
8367 handling the startup notification side.")
8368 (license license:lgpl2.1+)))
8369
8370 (define-public gnome-calculator
8371 (package
8372 (name "gnome-calculator")
8373 (version "3.32.2")
8374 (source
8375 (origin
8376 (method url-fetch)
8377 (uri (string-append "mirror://gnome/sources/" name "/"
8378 (version-major+minor version) "/"
8379 name "-" version ".tar.xz"))
8380 (sha256
8381 (base32
8382 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
8383 (build-system meson-build-system)
8384 (arguments '(#:glib-or-gtk? #t))
8385 (native-inputs
8386 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8387 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8388 ("intltool" ,intltool)
8389 ("itstool" ,itstool)
8390 ("vala" ,vala)
8391 ("pkg-config" ,pkg-config)))
8392 (inputs
8393 `(("glib" ,glib)
8394 ("gtksourceview" ,gtksourceview)
8395 ("libsoup" ,libsoup)
8396 ("libxml2" ,libxml2)
8397 ("mpc" ,mpc)
8398 ("mpfr" ,mpfr)))
8399 (home-page "https://wiki.gnome.org/Apps/Calculator")
8400 (synopsis "Desktop calculator")
8401 (description
8402 "Calculator is an application that solves mathematical equations and
8403 is suitable as a default application in a Desktop environment.")
8404 (license license:gpl3)))
8405
8406 (define-public xpad
8407 (package
8408 (name "xpad")
8409 (version "5.1.0")
8410 (source
8411 (origin
8412 (method url-fetch)
8413 (uri (string-append "https://launchpad.net/xpad/trunk/"
8414 version "/+download/"
8415 name "-" version ".tar.bz2"))
8416 (sha256
8417 (base32
8418 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8419 (build-system gnu-build-system)
8420 (native-inputs
8421 `(("autoconf" ,autoconf)
8422 ("automake" ,automake)
8423 ("gtk+:bin" ,gtk+ "bin")
8424 ("intltool" ,intltool)
8425 ("pkg-config" ,pkg-config)))
8426 (inputs
8427 `(("gtksourceview" ,gtksourceview-3)
8428 ("libsm" ,libsm)))
8429 (home-page "https://wiki.gnome.org/Apps/Xpad")
8430 (synopsis "Virtual sticky note")
8431 (description
8432 "Xpad is a sticky note that strives to be simple, fault tolerant,
8433 and customizable. Xpad consists of independent pad windows, each is
8434 basically a text box in which notes can be written.")
8435 (license license:gpl3+)))
8436
8437 (define-public gucharmap
8438 (let ((unicode-files
8439 '(("Blocks.txt"
8440 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8441 ("DerivedAge.txt"
8442 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8443 ("NamesList.txt"
8444 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8445 ("Scripts.txt"
8446 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8447 ("UnicodeData.txt"
8448 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8449 ("Unihan.zip"
8450 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8451 (package
8452 (name "gucharmap")
8453 (version "12.0.1")
8454 (source
8455 (origin
8456 (method url-fetch)
8457 (uri (string-append "mirror://gnome/sources/" name "/"
8458 (version-major+minor version) "/"
8459 name "-" version ".tar.xz"))
8460 (sha256
8461 (base32
8462 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8463 (build-system glib-or-gtk-build-system)
8464 (arguments
8465 `(#:modules ((ice-9 match)
8466 (guix build glib-or-gtk-build-system)
8467 (guix build utils))
8468 #:configure-flags
8469 (list "--with-unicode-data=../unicode-data")
8470 #:phases
8471 (modify-phases %standard-phases
8472 (add-after 'unpack 'prepare-unicode-data
8473 (lambda* (#:key inputs #:allow-other-keys)
8474 (mkdir-p "../unicode-data")
8475 (with-directory-excursion "../unicode-data"
8476 (for-each (match-lambda
8477 ((file _)
8478 (install-file (assoc-ref inputs file) ".")))
8479 ',unicode-files))
8480 #t)))))
8481 (native-inputs
8482 `(("desktop-file-utils" ,desktop-file-utils)
8483 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8484 ("gobject-introspection" ,gobject-introspection)
8485 ("intltool" ,intltool)
8486 ("itstool" ,itstool)
8487 ("pkg-config" ,pkg-config)
8488 ,@(map (match-lambda
8489 ((file hash)
8490 `(,file
8491 ,(origin
8492 (method url-fetch)
8493 (uri (string-append
8494 "http://www.unicode.org/Public/12.0.0/ucd/"
8495 file))
8496 (sha256 (base32 hash))))))
8497 unicode-files)
8498 ("unzip" ,unzip)))
8499 (inputs
8500 `(("gtk+" ,gtk+)
8501 ("xmllint" ,libxml2)))
8502 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8503 (synopsis "Unicode character picker and font browser")
8504 (description
8505 "This program allows you to browse through all the available Unicode
8506 characters and categories for the installed fonts, and to examine their
8507 detailed properties. It is an easy way to find the character you might
8508 only know by its Unicode name or code point.")
8509 (license license:gpl3+))))
8510
8511 (define-public bluefish
8512 (package
8513 (name "bluefish")
8514 (version "2.2.10")
8515 (source
8516 (origin
8517 (method url-fetch)
8518 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8519 name "-" version ".tar.gz"))
8520 (sha256
8521 (base32
8522 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
8523 (build-system gnu-build-system)
8524 (native-inputs
8525 `(("desktop-file-utils" ,desktop-file-utils)
8526 ("intltool" ,intltool)
8527 ("pkg-config" ,pkg-config)))
8528 (inputs
8529 `(("enchant" ,enchant)
8530 ("gtk+" ,gtk+)
8531 ("python" ,python-2)
8532 ("xmllint" ,libxml2)
8533 ("gucharmap" ,gucharmap)))
8534 (home-page "http://bluefish.openoffice.nl")
8535 (synopsis "Web development studio")
8536 (description
8537 "Bluefish is an editor targeted towards programmers and web developers,
8538 with many options to write web sites, scripts and other code.
8539 Bluefish supports many programming and markup languages.")
8540 (license license:gpl3+)))
8541
8542 (define-public gnome-system-monitor
8543 (package
8544 (name "gnome-system-monitor")
8545 (version "3.32.1")
8546 (source
8547 (origin
8548 (method url-fetch)
8549 (uri (string-append "mirror://gnome/sources/" name "/"
8550 (version-major+minor version) "/"
8551 name "-" version ".tar.xz"))
8552 (sha256
8553 (base32
8554 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8555 (build-system meson-build-system)
8556 (arguments
8557 '(#:glib-or-gtk? #t
8558 #:configure-flags '("-Dsystemd=false")))
8559 (native-inputs
8560 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8561 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8562 ("intltool" ,intltool)
8563 ("itstool" ,itstool)
8564 ("libgtop" ,libgtop)
8565 ("polkit" ,polkit)
8566 ("pkg-config" ,pkg-config)))
8567 (inputs
8568 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8569 ("gtk+" ,gtk+)
8570 ("gtkmm" ,gtkmm)
8571 ("librsvg" ,librsvg)
8572 ("libxml2" ,libxml2)
8573 ("libwnck" ,libwnck)))
8574 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8575 (synopsis "Process viewer and system resource monitor for GNOME")
8576 (description
8577 "GNOME System Monitor is a GNOME process viewer and system monitor with
8578 an attractive, easy-to-use interface. It has features, such as a tree view
8579 for process dependencies, icons for processes, the ability to hide processes,
8580 graphical time histories of CPU/memory/swap usage and the ability to
8581 kill/reinice processes.")
8582 (license license:gpl2+)))
8583
8584 (define-public python-pyatspi
8585 (package
8586 (name "python-pyatspi")
8587 (version "2.34.0")
8588 (source (origin
8589 (method url-fetch)
8590 (uri (string-append
8591 "mirror://gnome/sources/pyatspi/"
8592 (version-major+minor version)
8593 "/pyatspi-" version ".tar.xz"))
8594 (sha256
8595 (base32
8596 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8597 (build-system gnu-build-system)
8598 (arguments
8599 `(#:phases
8600 (modify-phases %standard-phases
8601 (add-before 'build 'fix-atk-load
8602 (lambda _
8603 (substitute* "pyatspi/__init__.py"
8604 (("from gi.repository import Atspi")
8605 "gi.require_version('Gtk', '3.0')
8606 from gi.repository import Gtk
8607 from gi.repository import Atspi"))
8608 #t)))))
8609 (native-inputs
8610 `(("pkg-config" ,pkg-config)))
8611 (inputs
8612 `(("python" ,python)
8613 ("python-pygobject" ,python-pygobject)))
8614 (synopsis "Python client bindings for D-Bus AT-SPI")
8615 (home-page "https://wiki.linuxfoundation.org/accessibility\
8616 /atk/at-spi/at-spi_on_d-bus")
8617 (description
8618 "This package includes a python client library for the AT-SPI D-Bus
8619 accessibility infrastructure.")
8620 (license license:lgpl2.0)
8621 (properties '((upstream-name . "pyatspi")))))
8622
8623 (define-public orca
8624 (package
8625 (name "orca")
8626 (version "3.32.0")
8627 (source (origin
8628 (method url-fetch)
8629 (uri (string-append
8630 "mirror://gnome/sources/" name "/"
8631 (version-major+minor version) "/"
8632 name "-" version ".tar.xz"))
8633 (sha256
8634 (base32
8635 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
8636 (build-system glib-or-gtk-build-system)
8637 (arguments
8638 '(#:phases
8639 (modify-phases %standard-phases
8640 (add-before 'configure 'qualify-xkbcomp
8641 (lambda* (#:key inputs #:allow-other-keys)
8642 (let ((xkbcomp (string-append
8643 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8644 (substitute* "src/orca/orca.py"
8645 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8646 #t))
8647 (add-after 'install 'wrap-orca
8648 (lambda* (#:key outputs #:allow-other-keys)
8649 (let* ((out (assoc-ref outputs "out"))
8650 (prog (string-append out "/bin/orca")))
8651 (wrap-program prog
8652 `("GI_TYPELIB_PATH" ":" prefix
8653 (,(getenv "GI_TYPELIB_PATH")))
8654 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8655 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8656 `("PYTHONPATH" ":" prefix
8657 (,(getenv "PYTHONPATH")))))
8658 #t)))))
8659 (native-inputs
8660 `(("intltool" ,intltool)
8661 ("itstool" ,itstool)
8662 ("pkg-config" ,pkg-config)
8663 ("xmllint" ,libxml2)))
8664 (inputs
8665 `(("at-spi2-atk" ,at-spi2-atk)
8666 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8667 ("gstreamer" ,gstreamer)
8668 ("gst-plugins-base" ,gst-plugins-base)
8669 ("gst-plugins-good" ,gst-plugins-good)
8670 ("gtk+" ,gtk+)
8671 ("python" ,python)
8672 ("python-pygobject" ,python-pygobject)
8673 ("python-pyatspi" ,python-pyatspi)
8674 ("python-speechd" ,speech-dispatcher)
8675 ("xkbcomp" ,xkbcomp)))
8676 (synopsis
8677 "Screen reader for individuals who are blind or visually impaired")
8678 (home-page "https://wiki.gnome.org/Projects/Orca")
8679 (description
8680 "Orca is a screen reader that provides access to the graphical desktop
8681 via speech and refreshable braille. Orca works with applications and toolkits
8682 that support the Assistive Technology Service Provider Interface (AT-SPI).")
8683 (license license:lgpl2.1+)))
8684
8685 (define-public gspell
8686 (package
8687 (name "gspell")
8688 (version "1.8.2")
8689 (source (origin
8690 (method url-fetch)
8691 (uri (string-append "mirror://gnome/sources/" name "/"
8692 (version-major+minor version) "/"
8693 name "-" version ".tar.xz"))
8694 (sha256
8695 (base32
8696 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
8697 (patches (search-patches "gspell-dash-test.patch"))))
8698 (build-system glib-or-gtk-build-system)
8699 (arguments
8700 '(#:phases
8701 (modify-phases %standard-phases
8702 (add-before 'check 'pre-check
8703 (lambda* (#:key inputs #:allow-other-keys)
8704 ;; Tests require a running X server.
8705 (system "Xvfb :1 &")
8706 (setenv "DISPLAY" ":1")
8707
8708 ;; For the missing /etc/machine-id.
8709 (setenv "DBUS_FATAL_WARNINGS" "0")
8710
8711 ;; Allow Enchant and its Aspell backend to find the en_US
8712 ;; dictionary.
8713 (setenv "ASPELL_DICT_DIR"
8714 (string-append (assoc-ref inputs "aspell-dict-en")
8715 "/lib/aspell"))
8716 #t)))))
8717 (inputs
8718 `(("gtk+" ,gtk+)
8719 ("glib" ,glib)
8720 ("iso-codes" ,iso-codes)))
8721 (native-inputs
8722 `(("glib" ,glib "bin")
8723 ("gobject-introspection" ,gobject-introspection)
8724 ("pkg-config" ,pkg-config)
8725 ("xmllint" ,libxml2)
8726
8727 ;; For tests.
8728 ("aspell-dict-en" ,aspell-dict-en)
8729 ("xorg-server" ,xorg-server-for-tests)))
8730 (propagated-inputs
8731 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
8732 (home-page "https://wiki.gnome.org/Projects/gspell")
8733 (synopsis "GNOME's alternative spell checker")
8734 (description
8735 "gspell provides a flexible API to add spell-checking to a GTK+
8736 application. It provides a GObject API, spell-checking to text entries and
8737 text views, and buttons to choose the language.")
8738 (license license:gpl2+)))
8739
8740 (define-public gnome-planner
8741 (package
8742 (name "gnome-planner")
8743 (version "0.14.6")
8744 (source (origin
8745 (method url-fetch)
8746 (uri (string-append "mirror://gnome/sources/planner/"
8747 (version-major+minor version) "/planner-"
8748 version ".tar.xz"))
8749 (sha256
8750 (base32
8751 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8752 (build-system glib-or-gtk-build-system)
8753 (arguments
8754 ;; Disable the Python bindings because the Planner program functions
8755 ;; without them, and (as of 2017-06-13) we have not packaged all of
8756 ;; packages that are necessary for building the Python bindings.
8757 `(#:configure-flags
8758 (list "--disable-python"
8759 ,@(if (string=? "aarch64-linux" (%current-system))
8760 '("--build=aarch64-unknown-linux-gnu")
8761 '()))))
8762 (inputs
8763 `(("libgnomecanvas" ,libgnomecanvas)
8764 ("libgnomeui" ,libgnomeui)
8765 ("libglade" ,libglade)
8766 ("gnome-vfs" ,gnome-vfs)
8767 ("gconf" ,gconf)
8768 ("libxml2" ,libxml2)
8769 ("libxslt" ,libxslt)
8770 ("gtk+" ,gtk+)
8771 ("glib" ,glib)))
8772 (native-inputs
8773 `(("intltool" ,intltool)
8774 ("scrollkeeper" ,scrollkeeper)
8775 ("pkg-config" ,pkg-config)))
8776 (home-page "https://wiki.gnome.org/Apps/Planner")
8777 (synopsis "Project management software for the GNOME desktop")
8778 (description
8779 "GNOME Planner is a project management tool based on the Work Breakdown
8780 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8781 the resources, tasks, and constraints that you define, Planner generates
8782 various views into a project. For example, Planner can show a Gantt chart of
8783 the project. It can show a detailed summary of tasks including their
8784 duration, cost, and current progress. It can also show a report of resource
8785 utilization that highlights under-utilized and over-utilized resources. These
8786 views can be printed as PDF or PostScript files, or exported to HTML.")
8787 (license license:gpl2+)))
8788
8789 (define-public lollypop
8790 (package
8791 (name "lollypop")
8792 (version "1.2.7")
8793 (source
8794 (origin
8795 (method url-fetch)
8796 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
8797 "08f973788c7ca46d9285eec2ac818edb/"
8798 "lollypop-" version ".tar.xz"))
8799 (sha256
8800 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
8801 (build-system meson-build-system)
8802 (arguments
8803 `(#:imported-modules ((guix build python-build-system)
8804 ,@%meson-build-system-modules)
8805 #:glib-or-gtk? #t
8806 #:tests? #f ; no test suite
8807 #:phases
8808 (modify-phases %standard-phases
8809 (add-after 'install 'wrap-program
8810 (lambda* (#:key outputs #:allow-other-keys)
8811 (let ((out (assoc-ref outputs "out"))
8812 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8813 (wrap-program (string-append out "/bin/lollypop")
8814 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8815 #t))
8816 (add-after 'install 'wrap-python
8817 (@@ (guix build python-build-system) wrap))
8818 (add-after 'install 'wrap-glib-or-gtk
8819 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
8820 (native-inputs
8821 `(("intltool" ,intltool)
8822 ("itstool" ,itstool)
8823 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8824 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8825 ("pkg-config" ,pkg-config)))
8826 (inputs
8827 `(("gobject-introspection" ,gobject-introspection)
8828 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8829 ("gst-plugins-base" ,gst-plugins-base)
8830 ("libnotify" ,libnotify)
8831 ("libsecret" ,libsecret)
8832 ("libsoup" ,libsoup)
8833 ("python" ,python)
8834 ("python-beautifulsoup4" ,python-beautifulsoup4)
8835 ("python-gst" ,python-gst)
8836 ("python-pil" ,python-pillow)
8837 ("python-pycairo" ,python-pycairo)
8838 ("python-pygobject" ,python-pygobject-3.34)
8839 ("python-pylast" ,python-pylast)
8840 ("totem-pl-parser" ,totem-pl-parser)
8841 ("webkitgtk" ,webkitgtk)))
8842 (propagated-inputs
8843 `(;; gst-plugins-base is required to start Lollypop,
8844 ;; the others are required to play streaming.
8845 ("gst-plugins-good" ,gst-plugins-good)
8846 ("gst-plugins-ugly" ,gst-plugins-ugly)))
8847 (home-page "https://wiki.gnome.org/Apps/Lollypop")
8848 (synopsis "GNOME music playing application")
8849 (description
8850 "Lollypop is a music player designed to play well with GNOME desktop.
8851 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
8852 from artists and tracks from the web. It also fetches cover artworks
8853 automatically and it can stream songs from online music services and charts.")
8854 (license license:gpl3+)))
8855
8856 (define-public gnome-video-effects
8857 (package
8858 (name "gnome-video-effects")
8859 (version "0.4.3")
8860 (source (origin
8861 (method url-fetch)
8862 (uri (string-append "mirror://gnome/sources/" name "/"
8863 (version-major+minor version) "/" name "-"
8864 version ".tar.xz"))
8865 (sha256
8866 (base32
8867 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
8868 (build-system glib-or-gtk-build-system)
8869 (arguments
8870 `(#:out-of-source? #f))
8871 (native-inputs
8872 `(("glib:bin" ,glib "bin")
8873 ("intltool" ,intltool)
8874 ("gettext" ,gettext-minimal)
8875 ("pkg-config" ,pkg-config)))
8876 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
8877 (synopsis "Video effects for Cheese and other GNOME applications")
8878 (description
8879 "A collection of GStreamer video filters and effects to be used in
8880 photo-booth-like software, such as Cheese.")
8881 (license license:gpl2+)))
8882
8883 (define-public cheese
8884 (package
8885 (name "cheese")
8886 (version "3.32.1")
8887 (source (origin
8888 (method url-fetch)
8889 (uri (string-append "mirror://gnome/sources/" name "/"
8890 (version-major+minor version) "/" name "-"
8891 version ".tar.xz"))
8892 (sha256
8893 (base32
8894 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
8895 (arguments
8896 ;; Tests require GDK.
8897 `(#:tests? #f
8898 #:phases
8899 (modify-phases %standard-phases
8900 (add-before 'install 'skip-gtk-update-icon-cache
8901 (lambda _
8902 ;; Don't create 'icon-theme.cache'
8903 (substitute* "Makefile"
8904 (("gtk-update-icon-cache") (which "true")))
8905 #t))
8906 (add-after 'install 'wrap-cheese
8907 (lambda* (#:key inputs outputs #:allow-other-keys)
8908 (let ((out (assoc-ref outputs "out"))
8909 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
8910 (wrap-program (string-append out "/bin/cheese")
8911 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
8912 #t)))))
8913 (build-system glib-or-gtk-build-system)
8914 (native-inputs
8915 `(("glib:bin" ,glib "bin")
8916 ("intltool" ,intltool)
8917 ("itstool" ,itstool)
8918 ("libxml2" ,libxml2)
8919 ("pkg-config" ,pkg-config)
8920 ("vala" ,vala)))
8921 (propagated-inputs
8922 `(("gnome-video-effects" ,gnome-video-effects)
8923 ("clutter" ,clutter)
8924 ("clutter-gst" ,clutter-gst)
8925 ("clutter-gtk" ,clutter-gtk)
8926 ("libcanberra" ,libcanberra)
8927 ("gdk-pixbuf" ,gdk-pixbuf)
8928 ("glib" ,glib)
8929 ("gstreamer" ,gstreamer)))
8930 (inputs
8931 `(("gnome-desktop" ,gnome-desktop)
8932 ("gobject-introspection" ,gobject-introspection)
8933 ("gst-plugins-base" ,gst-plugins-base)
8934 ("gst-plugins-bad" ,gst-plugins-bad)
8935 ("gtk+" ,gtk+)
8936 ("libx11" ,libx11)
8937 ("libxtst" ,libxtst)))
8938 (home-page "https://wiki.gnome.org/Apps/Cheese")
8939 (synopsis "Webcam photo booth software for GNOME")
8940 (description
8941 "Cheese uses your webcam to take photos and videos. Cheese can also
8942 apply fancy special effects and lets you share the fun with others.")
8943 (license license:gpl2+)))
8944
8945 (define-public sound-juicer
8946 (package
8947 (name "sound-juicer")
8948 (version "3.24.0")
8949 (source
8950 (origin
8951 (method url-fetch)
8952 (uri (string-append "mirror://gnome/sources/" name "/"
8953 (version-major+minor version) "/"
8954 name "-" version ".tar.xz"))
8955 (sha256
8956 (base32
8957 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
8958 (build-system glib-or-gtk-build-system)
8959 (native-inputs
8960 `(("desktop-file-utils" ,desktop-file-utils)
8961 ("intltool" ,intltool)
8962 ("itstool" ,itstool)
8963 ("pkg-config" ,pkg-config)
8964 ("xmllint" ,libxml2)))
8965 (inputs
8966 `(("gtk+" ,gtk+)
8967 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8968 ("gstreamer" ,gstreamer)
8969 ("gst-plugins-base" ,gst-plugins-base)
8970 ("gst-plugins-good" ,gst-plugins-good)
8971 ("iso-codes" ,iso-codes)
8972 ("libbrasero-media3" ,brasero)
8973 ("libcanberra" ,libcanberra)
8974 ("libdiscid" ,libdiscid)
8975 ("libmusicbrainz" ,libmusicbrainz)
8976 ("neon" ,neon)))
8977 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
8978 (synopsis "Audio music cd ripper")
8979 (description "Sound Juicer extracts audio from compact discs and convert it
8980 into audio files that a personal computer or digital audio player can play.
8981 It supports ripping to any audio codec supported by a GStreamer plugin, such as
8982 mp3, Ogg Vorbis and FLAC")
8983 (license license:gpl2+)))
8984
8985 (define-public soundconverter
8986 (package
8987 (name "soundconverter")
8988 (version "3.0.1")
8989 (source
8990 (origin
8991 (method url-fetch)
8992 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
8993 version "/+download/"
8994 "soundconverter-" version ".tar.xz"))
8995
8996 (sha256
8997 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
8998 (patches
8999 (search-patches
9000 "soundconverter-remove-gconf-dependency.patch"))))
9001 (build-system glib-or-gtk-build-system)
9002 (arguments
9003 `(#:imported-modules ((guix build python-build-system)
9004 (guix build glib-or-gtk-build-system)
9005 ,@%gnu-build-system-modules)
9006
9007 #:modules ((guix build glib-or-gtk-build-system)
9008 (guix build utils)
9009 ((guix build gnu-build-system) #:prefix gnu:)
9010 ((guix build python-build-system) #:prefix python:))
9011
9012 #:phases
9013 (modify-phases %standard-phases
9014 (add-after 'install 'wrap-soundconverter-for-python
9015 (assoc-ref python:%standard-phases 'wrap))
9016 (add-after 'install 'wrap-soundconverter
9017 (lambda* (#:key inputs outputs #:allow-other-keys)
9018 (let ((out (assoc-ref outputs "out"))
9019 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9020 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9021 (wrap-program (string-append out "/bin/soundconverter")
9022 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9023 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9024 #t)))))
9025 (native-inputs
9026 `(("intltool" ,intltool)
9027 ("pkg-config" ,pkg-config)
9028 ("glib:bin" ,glib "bin")))
9029 (inputs
9030 `(("gtk+" ,gtk+)
9031 ("python" ,python)
9032 ("python-pygobject" ,python-pygobject)
9033 ("gstreamer" ,gstreamer)
9034 ("gst-plugins-base" ,gst-plugins-base)))
9035 (home-page "http://soundconverter.org/")
9036 (synopsis "Convert between audio formats with a graphical interface")
9037 (description
9038 "SoundConverter supports converting between many audio formats including
9039 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9040 configurable file renaming. ")
9041 (license license:gpl3)))
9042
9043 (define-public workrave
9044 (package
9045 (name "workrave")
9046 (version "1.10.34")
9047 (source
9048 (origin
9049 (method git-fetch)
9050 (uri (git-reference
9051 (url "https://github.com/rcaelers/workrave.git")
9052 (commit (string-append "v" (string-map
9053 (match-lambda (#\. #\_) (chr chr))
9054 version)))))
9055 (file-name (git-file-name name version))
9056 (sha256
9057 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
9058 (build-system glib-or-gtk-build-system)
9059 (inputs `(("glib" ,glib)
9060 ("gtk+" ,gtk+)
9061 ("gdk-pixbuf" ,gdk-pixbuf)
9062 ("gtkmm" ,gtkmm)
9063 ("glibmm" ,glibmm)
9064 ("libx11" ,libx11)
9065 ("libxtst" ,libxtst)
9066 ("dconf" ,dconf)
9067 ("libice" ,libice)
9068 ("libsm" ,libsm)
9069 ("libxscrnsaver" ,libxscrnsaver)))
9070 (native-inputs `(("boost" ,boost)
9071 ("pkg-config" ,pkg-config)
9072 ("gettext" ,gnu-gettext)
9073 ("autoconf" ,autoconf)
9074 ("autoconf-archive" , autoconf-archive)
9075 ("automake" ,automake)
9076 ("libtool" ,libtool)
9077 ("intltool" ,intltool)
9078 ("gobject-introspection" ,gobject-introspection)
9079 ("python3" ,python-3)
9080 ("python-jinja2" ,python-jinja2)))
9081 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9082 (description
9083 "Workrave is a program that assists in the recovery and prevention of
9084 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9085 micro-pauses and rest breaks, and restricts you to your daily limit.")
9086 (home-page "http://www.workrave.org")
9087 (license license:gpl3+)))
9088
9089 (define-public ghex
9090 (package
9091 (name "ghex")
9092 (version "3.18.4")
9093 (source (origin
9094 (method url-fetch)
9095 (uri (string-append "mirror://gnome/sources/ghex/"
9096 (version-major+minor version) "/"
9097 "ghex-" version ".tar.xz"))
9098 (sha256
9099 (base32
9100 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9101 (build-system meson-build-system)
9102 (arguments
9103 '(#:glib-or-gtk? #t
9104 #:phases
9105 (modify-phases %standard-phases
9106 (add-after 'unpack 'skip-gtk-update-icon-cache
9107 ;; Don't create 'icon-theme.cache'.
9108 (lambda _
9109 (substitute* "meson_post_install.py"
9110 (("gtk-update-icon-cache") (which "true")))
9111 #t)))))
9112 (native-inputs
9113 `(("pkg-config" ,pkg-config)
9114 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9115 ("gnome-common" ,gnome-common)
9116 ("which" ,which)
9117 ("intltool" ,intltool)
9118 ("yelp-tools" ,yelp-tools)
9119 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9120 (inputs
9121 `(("atk" ,atk)
9122 ("gtk" ,gtk+)))
9123 (synopsis "GNOME hexadecimal editor")
9124 (description "The GHex program can view and edit files in two ways:
9125 hexadecimal or ASCII. It is useful for editing binary files in general.")
9126 (home-page "https://wiki.gnome.org/Apps/Ghex")
9127 (license license:gpl2)))
9128
9129 (define-public libdazzle
9130 (package
9131 (name "libdazzle")
9132 (version "3.33.90")
9133 (source (origin
9134 (method url-fetch)
9135 (uri (string-append "mirror://gnome/sources/libdazzle/"
9136 (version-major+minor version) "/"
9137 "libdazzle-" version ".tar.xz"))
9138 (sha256
9139 (base32
9140 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
9141 (build-system meson-build-system)
9142 (arguments
9143 `(#:phases
9144 (modify-phases %standard-phases
9145 (add-before 'check 'pre-check
9146 (lambda _
9147 ;; Tests require a running X server.
9148 (system "Xvfb :1 &")
9149 (setenv "DISPLAY" ":1")
9150 #t)))))
9151 (native-inputs
9152 `(("glib" ,glib "bin") ; glib-compile-resources
9153 ("pkg-config" ,pkg-config)
9154 ;; For tests.
9155 ("xorg-server" ,xorg-server-for-tests)))
9156 (inputs
9157 `(("glib" ,glib)
9158 ("gobject-introspection" ,gobject-introspection)
9159 ("gtk+" ,gtk+)
9160 ("vala" ,vala)))
9161 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9162 (synopsis "Companion library to GObject and Gtk+")
9163 (description "The libdazzle library is a companion library to GObject and
9164 Gtk+. It provides various features that the authors wish were in the
9165 underlying library but cannot for various reasons. In most cases, they are
9166 wildly out of scope for those libraries. In other cases, they are not quite
9167 generic enough to work for everyone.")
9168 (license license:gpl3+)))
9169
9170 (define-public evolution
9171 (package
9172 (name "evolution")
9173 (version "3.32.4")
9174 (source (origin
9175 (method url-fetch)
9176 (uri (string-append "mirror://gnome/sources/evolution/"
9177 (version-major+minor version) "/"
9178 "evolution-" version ".tar.xz"))
9179 (sha256
9180 (base32
9181 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
9182 (build-system cmake-build-system)
9183 (arguments
9184 `(#:imported-modules (,@%cmake-build-system-modules
9185 (guix build glib-or-gtk-build-system))
9186 #:modules ((guix build cmake-build-system)
9187 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9188 (guix build utils))
9189 #:configure-flags
9190 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9191 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9192 ; in four years and cannot be built.
9193 #:phases
9194 (modify-phases %standard-phases
9195 ;; The build system attempts to install user interface modules to the
9196 ;; output directory of the "evolution-data-server" package. This
9197 ;; change redirects that change.
9198 (add-after 'unpack 'patch-ui-module-dir
9199 (lambda* (#:key outputs #:allow-other-keys)
9200 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9201 (("\\$\\{edsuimoduledir\\}")
9202 (string-append (assoc-ref outputs "out")
9203 "/lib/evolution-data-server/ui-modules")))
9204 #t))
9205 (add-after 'install 'glib-or-gtk-compile-schemas
9206 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9207 (add-after 'install 'glib-or-gtk-wrap
9208 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9209 (native-inputs
9210 `(("glib" ,glib "bin") ; glib-mkenums
9211 ("pkg-config" ,pkg-config)
9212 ("intltool" ,intltool)
9213 ("itstool" ,itstool)))
9214 (inputs
9215 `(("enchant" ,enchant)
9216 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9217 ("gcr" ,gcr)
9218 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9219 ("gnome-autoar" ,gnome-autoar)
9220 ("gnome-desktop" ,gnome-desktop)
9221 ("gtkspell3" ,gtkspell3)
9222 ("highlight" ,highlight)
9223 ("libcanberra" ,libcanberra)
9224 ("libedataserverui" ,evolution-data-server)
9225 ("libgweather" ,libgweather)
9226 ("libnotify" ,libnotify)
9227 ("libsoup" ,libsoup)
9228 ("nss" ,nss)
9229 ("openldap" ,openldap)
9230 ("webkitgtk" ,webkitgtk)
9231 ("ytnef" ,ytnef)))
9232 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9233 (synopsis "Manage your email, contacts and schedule")
9234 (description "Evolution is a personal information management application
9235 that provides integrated mail, calendaring and address book
9236 functionality.")
9237 ;; See COPYING for details.
9238 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9239 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9240 license:lgpl2.1+)))) ; smime/lib/*
9241
9242 (define-public gthumb
9243 (package
9244 (name "gthumb")
9245 (version "3.8.2")
9246 (source (origin
9247 (method url-fetch)
9248 (uri (string-append "mirror://gnome/sources/gthumb/"
9249 (version-major+minor version) "/"
9250 "gthumb-" version ".tar.xz"))
9251 (sha256
9252 (base32
9253 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9254 (build-system meson-build-system)
9255 (arguments
9256 `(#:glib-or-gtk? #t
9257 #:configure-flags
9258 ;; Ensure the RUNPATH contains all installed library locations.
9259 (list (string-append "-Dc_link_args=-Wl,-rpath="
9260 (assoc-ref %outputs "out")
9261 "/lib/gthumb/extensions")
9262 (string-append "-Dcpp_link_args=-Wl,-rpath="
9263 (assoc-ref %outputs "out")
9264 "/lib/gthumb/extensions"))))
9265 (native-inputs
9266 `(("pkg-config" ,pkg-config)
9267 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9268 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9269 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9270 ("intltool" ,intltool)
9271 ("itstool" ,itstool)))
9272 (inputs
9273 `(("exiv2" ,exiv2)
9274 ("gtk" ,gtk+)
9275 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9276 ("gstreamer" ,gstreamer)
9277 ("clutter" ,clutter)
9278 ("clutter-gst" ,clutter-gst)
9279 ("clutter-gtk" ,clutter-gtk)
9280 ("libjpeg" ,libjpeg)
9281 ("libtiff" ,libtiff)
9282 ("libraw" ,libraw)))
9283 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9284 (synopsis "GNOME image viewer and browser")
9285 (description "GThumb is an image viewer, browser, organizer, editor and
9286 advanced image management tool")
9287 (license license:gpl2+)))
9288
9289 (define-public terminator
9290 (package
9291 (name "terminator")
9292 (version "1.91")
9293 (source (origin
9294 (method url-fetch)
9295 (uri (string-append "https://launchpad.net/" name "/"
9296 "gtk3/" version "/" "+download/"
9297 name "-" version ".tar.gz"))
9298 (sha256
9299 (base32
9300 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9301 (build-system python-build-system)
9302 (native-inputs
9303 `(("intltool" ,intltool)
9304 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9305 ("gettext" ,gettext-minimal)
9306 ("pkg-config" ,pkg-config)))
9307 (inputs
9308 `(("cairo" ,cairo)
9309 ("gobject-introspection" ,gobject-introspection)
9310 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9311 ("python2-pycairo" ,python2-pycairo)
9312 ("python2-pygobject" ,python2-pygobject)
9313 ("python2-psutil" ,python2-psutil)
9314 ("vte" ,vte)))
9315 (arguments
9316 `(#:python ,python-2 ; Python 3 isn't supported
9317 #:imported-modules ((guix build glib-or-gtk-build-system)
9318 ,@%python-build-system-modules)
9319 #:modules ((guix build python-build-system)
9320 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9321 (guix build utils))
9322 #:phases
9323 (modify-phases %standard-phases
9324 (add-after
9325 'install 'wrap-program
9326 (lambda* (#:key outputs #:allow-other-keys)
9327 (let ((prog (string-append (assoc-ref outputs "out")
9328 "/bin/terminator")))
9329 (wrap-program prog
9330 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9331 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9332 #t)))
9333 (add-after 'wrap-program 'glib-or-gtk-wrap
9334 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9335 (home-page "https://gnometerminator.blogspot.com/")
9336 (synopsis "Store and run multiple GNOME terminals in one window")
9337 (description
9338 "Terminator allows you to run multiple GNOME terminals in a grid and
9339 +tabs, and it supports drag and drop re-ordering of terminals.")
9340 (license license:gpl2)))
9341
9342 (define-public libhandy
9343 (package
9344 (name "libhandy")
9345 (version "0.0.12")
9346 (source
9347 (origin
9348 (method git-fetch)
9349 (uri (git-reference
9350 (url "https://source.puri.sm/Librem5/libhandy")
9351 (commit (string-append "v" version))))
9352 (file-name (git-file-name name version))
9353 (sha256
9354 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9355 (build-system meson-build-system)
9356 (arguments
9357 `(#:configure-flags
9358 '("-Dglade_catalog=disabled"
9359 "-Dgtk_doc=true")
9360 #:phases
9361 (modify-phases %standard-phases
9362 (add-before 'check 'pre-check
9363 (lambda _
9364 ;; Tests require a running X server.
9365 (system "Xvfb :1 &")
9366 (setenv "DISPLAY" ":1")
9367 #t)))))
9368 (inputs
9369 `(("gtk+" ,gtk+)))
9370 (native-inputs
9371 `(("glib:bin" ,glib "bin")
9372 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9373 ("vala" ,vala)
9374 ("gtk-doc" ,gtk-doc)
9375 ("pkg-config" ,pkg-config)
9376 ("gettext" ,gettext-minimal)
9377
9378 ;; Test suite dependencies.
9379 ("xorg-server" ,xorg-server-for-tests)
9380 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9381 (home-page "https://source.puri.sm/Librem5/libhandy")
9382 (synopsis "Library full of GTK+ widgets for mobile phones")
9383 (description "The aim of the handy library is to help with developing user
9384 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9385 for usage on small and big screens.")
9386 (license license:lgpl2.1+)))
9387
9388 (define-public libgit2-glib
9389 (package
9390 (name "libgit2-glib")
9391 (version "0.28.0.1")
9392 (source (origin
9393 (method url-fetch)
9394 (uri (string-append "mirror://gnome/sources/" name "/"
9395 (version-major+minor version) "/"
9396 name "-" version ".tar.xz"))
9397 (sha256
9398 (base32
9399 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9400 (build-system meson-build-system)
9401 (native-inputs
9402 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9403 ("gobject-introspection" ,gobject-introspection)
9404 ("intltool" ,intltool)
9405 ("libssh2" ,libssh2)
9406 ("pkg-config" ,pkg-config)
9407 ("python-pygobject" ,python-pygobject)
9408 ("python-wrapper" ,python-wrapper)
9409 ("vala" ,vala)))
9410 (inputs
9411 `(("glib" ,glib)
9412 ("libgit2" ,libgit2)))
9413 (synopsis "GLib wrapper around the libgit2 Git access library")
9414 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9415 access library. It only implements the core plumbing functions, not really the
9416 higher level porcelain stuff.")
9417 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9418 (license license:gpl2+)))
9419
9420 (define-public gitg
9421 (package
9422 (name "gitg")
9423 (version "3.32.1")
9424 (source (origin
9425 (method url-fetch)
9426 (uri (string-append "mirror://gnome/sources/" name "/"
9427 (version-major+minor version) "/"
9428 name "-" version ".tar.xz"))
9429 (sha256
9430 (base32
9431 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9432 (build-system meson-build-system)
9433 (arguments
9434 `(#:glib-or-gtk? #t
9435 #:phases
9436 (modify-phases %standard-phases
9437 (add-after 'unpack 'disable-post-install-partially
9438 (lambda _
9439 (substitute* "meson_post_install.py"
9440 (("'python'") ; there are no python sources to compile
9441 (string-append "'" (which "true") "'"))
9442 (("gtk-update-icon-cache") (which "true")))
9443 #t))
9444 (add-after 'unpack 'fix-test-sources
9445 (lambda _
9446 (substitute* "tests/libgitg/test-commit.vala"
9447 (("/bin/bash") (which "bash")))
9448 #t))
9449 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9450 (lambda* (#:key outputs #:allow-other-keys)
9451 (let ((prog (string-append (assoc-ref outputs "out")
9452 "/bin/gitg")))
9453 (wrap-program prog
9454 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9455 #t))))))
9456 (inputs
9457 `(("glib" ,glib)
9458 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9459 ("gtk+" ,gtk+)
9460 ("gtkspell3" ,gtkspell3)
9461 ("gtksourceview" ,gtksourceview-3)
9462 ("json-glib" ,json-glib)
9463 ("libdazzle" ,libdazzle)
9464 ("libgee" ,libgee)
9465 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9466 ("libgit2-glib" ,libgit2-glib)
9467 ("libpeas" ,libpeas)
9468 ("libsecret" ,libsecret)
9469 ("libsoup" ,libsoup)
9470 ("libxml2" ,libxml2)))
9471 (native-inputs
9472 `(("glib:bin" ,glib "bin")
9473 ("gtk+:bin" ,gtk+ "bin")
9474 ("gobject-introspection" ,gobject-introspection)
9475 ("intltool" ,intltool)
9476 ("pkg-config" ,pkg-config)
9477 ("vala" ,vala)))
9478 (synopsis "Graphical user interface for git")
9479 (description
9480 "gitg is a graphical user interface for git. It aims at being a small,
9481 fast and convenient tool to visualize the history of git repositories.
9482 Besides visualization, gitg also provides several utilities to manage your
9483 repository and commit your work.")
9484 (home-page "https://wiki.gnome.org/Apps/Gitg")
9485 (license license:gpl2+)))
9486
9487 (define-public gamin
9488 (package
9489 (name "gamin")
9490 (version "0.1.10")
9491 (source (origin
9492 (method url-fetch)
9493 (uri (string-append "mirror://gnome/sources/" name "/"
9494 (version-major+minor version) "/"
9495 name "-" version ".tar.bz2"))
9496 (sha256
9497 (base32
9498 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9499 (build-system gnu-build-system)
9500 (arguments
9501 `(#:phases
9502 (modify-phases %standard-phases
9503 (add-after 'unpack 'remove-deprecated-macro
9504 (lambda _
9505 (substitute* '("server/gam_node.c"
9506 "server/gam_subscription.h"
9507 "server/gam_node.h"
9508 "server/gam_subscription.c")
9509 (("G_CONST_RETURN") "const"))
9510 #t)))))
9511 (inputs
9512 `(("glib" ,glib)))
9513 (native-inputs
9514 `(("intltool" ,intltool)
9515 ("pkg-config" ,pkg-config)))
9516 (home-page "https://people.gnome.org/~veillard/gamin/")
9517 (synopsis "File alteration monitor")
9518 (description
9519 "Gamin is a file and directory monitoring system defined to be a subset
9520 of the FAM (File Alteration Monitor) system. This is a service provided by a
9521 library which allows to detect when a file or a directory has been modified.")
9522 (license license:gpl2+)))
9523
9524 (define-public gnome-mahjongg
9525 (package
9526 (name "gnome-mahjongg")
9527 (version "3.35.1")
9528 (source (origin
9529 (method git-fetch)
9530 (uri (git-reference
9531 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9532 (commit version)))
9533 (file-name (git-file-name name version))
9534 (sha256
9535 (base32
9536 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9537 (build-system meson-build-system)
9538 (arguments
9539 `(#:glib-or-gtk? #t))
9540 (native-inputs
9541 `(("appstream-glib" ,appstream-glib)
9542 ("gettext" ,gettext-minimal)
9543 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9544 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9545 ("itstool" ,itstool)
9546 ("pkg-config" ,pkg-config)
9547 ("vala" ,vala)))
9548 (propagated-inputs
9549 `(("dconf" ,dconf)))
9550 (inputs
9551 `(("glib" ,glib)
9552 ("gtk+" ,gtk+)
9553 ("librsvg" ,librsvg)))
9554 (synopsis "Mahjongg tile-matching game")
9555 (description "GNOME Mahjongg is a game based on the classic Chinese
9556 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9557 and a high score table.")
9558 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9559 (license license:gpl2+)))
9560
9561 (define-public gnome-themes-extra
9562 (package
9563 (name "gnome-themes-extra")
9564 (version "3.28")
9565 (source
9566 (origin
9567 (method url-fetch)
9568 (uri (string-append "mirror://gnome/sources/" name "/"
9569 (version-major+minor version) "/" name "-"
9570 version ".tar.xz"))
9571 (sha256
9572 (base32
9573 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9574 (build-system gnu-build-system)
9575 (arguments
9576 '(#:configure-flags
9577 ;; Don't create 'icon-theme.cache'.
9578 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9579 (true (string-append coreutils "/bin/true")))
9580 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9581 (native-inputs
9582 `(("glib:bin" ,glib "bin")
9583 ("intltool" ,intltool)
9584 ("pkg-config" ,pkg-config)))
9585 (inputs
9586 `(("glib" ,glib)
9587 ("gtk+" ,gtk+)
9588 ("gtk+-2" ,gtk+-2)
9589 ("librsvg" ,librsvg)
9590 ("libxml2" ,libxml2)))
9591 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9592 (synopsis "GNOME Extra Themes")
9593 (description "This package provides themes and related elements that don't
9594 really fit in other upstream packages. It offers legacy support for GTK+ 2
9595 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9596 index files needed for Adwaita to be used outside of GNOME.")
9597 (license license:lgpl2.1+)))
9598
9599 (define-public polari
9600 (package
9601 (name "polari")
9602 (version "3.32.2")
9603 (source (origin
9604 (method url-fetch)
9605 (uri (string-append "mirror://gnome/sources/polari/"
9606 (version-major+minor version)
9607 "/polari-" version ".tar.xz"))
9608 (sha256
9609 (base32
9610 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9611 (build-system meson-build-system)
9612 (arguments
9613 `(#:glib-or-gtk? #t
9614 #:phases
9615 (modify-phases %standard-phases
9616 (add-after 'unpack 'skip-gtk-update-icon-cache
9617 (lambda _
9618 (substitute* "meson/meson-postinstall.sh"
9619 (("gtk-update-icon-cache") (which "true")))
9620 #t))
9621 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9622 (lambda* (#:key outputs #:allow-other-keys)
9623 (let ((prog (string-append (assoc-ref outputs "out")
9624 "/bin/polari")))
9625 (wrap-program prog
9626 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9627 #t))))))
9628 (inputs
9629 `(("glib" ,glib)
9630 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9631 ("gspell" ,gspell)
9632 ("gtk+" ,gtk+)
9633 ("gjs" ,gjs)
9634 ("libsecret" ,libsecret)
9635 ("libsoup" ,libsoup)
9636 ("telepathy-glib" ,telepathy-glib)
9637 ("telepathy-logger" ,telepathy-logger)))
9638 (native-inputs
9639 `(("glib:bin" ,glib "bin")
9640 ("gobject-introspection" ,gobject-introspection)
9641 ("intltool" ,intltool)
9642 ("pkg-config" ,pkg-config)
9643 ("yelp-tools" ,yelp-tools)))
9644 (propagated-inputs
9645 `(("telepathy-idle" ,telepathy-idle)
9646 ("telepathy-mission-control" ,telepathy-mission-control)))
9647 (synopsis "Simple IRC Client")
9648 (description
9649 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9650 integrate seamlessly with the GNOME desktop.")
9651 (home-page "https://wiki.gnome.org/Apps/Polari")
9652 (license license:gpl2+)))