Merge branch 'master' into staging
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;;
50 ;;; This file is part of GNU Guix.
51 ;;;
52 ;;; GNU Guix is free software; you can redistribute it and/or modify it
53 ;;; under the terms of the GNU General Public License as published by
54 ;;; the Free Software Foundation; either version 3 of the License, or (at
55 ;;; your option) any later version.
56 ;;;
57 ;;; GNU Guix is distributed in the hope that it will be useful, but
58 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
59 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
60 ;;; GNU General Public License for more details.
61 ;;;
62 ;;; You should have received a copy of the GNU General Public License
63 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
64
65 (define-module (gnu packages gnome)
66 #:use-module (gnu packages)
67 #:use-module (gnu packages admin)
68 #:use-module (gnu packages aspell)
69 #:use-module (gnu packages autotools)
70 #:use-module (gnu packages avahi)
71 #:use-module (gnu packages backup)
72 #:use-module (gnu packages base)
73 #:use-module (gnu packages bash)
74 #:use-module (gnu packages bison)
75 #:use-module (gnu packages boost)
76 #:use-module (gnu packages build-tools)
77 #:use-module (gnu packages calendar)
78 #:use-module (gnu packages cdrom)
79 #:use-module (gnu packages check)
80 #:use-module (gnu packages cmake)
81 #:use-module (gnu packages compression)
82 #:use-module (gnu packages crates-io)
83 #:use-module (gnu packages cups)
84 #:use-module (gnu packages curl)
85 #:use-module (gnu packages cyrus-sasl)
86 #:use-module (gnu packages databases)
87 #:use-module (gnu packages dbm)
88 #:use-module (gnu packages djvu)
89 #:use-module (gnu packages dns)
90 #:use-module (gnu packages docbook)
91 #:use-module (gnu packages documentation)
92 #:use-module (gnu packages enchant)
93 #:use-module (gnu packages flex)
94 #:use-module (gnu packages fonts)
95 #:use-module (gnu packages file-systems)
96 #:use-module (gnu packages fontutils)
97 #:use-module (gnu packages freedesktop)
98 #:use-module (gnu packages game-development)
99 #:use-module (gnu packages gettext)
100 #:use-module (gnu packages ghostscript)
101 #:use-module (gnu packages gl)
102 #:use-module (gnu packages glib)
103 #:use-module (gnu packages gnupg)
104 #:use-module (gnu packages gnuzilla)
105 #:use-module (gnu packages geo)
106 #:use-module (gnu packages gperf)
107 #:use-module (gnu packages graphviz)
108 #:use-module (gnu packages gstreamer)
109 #:use-module (gnu packages gtk)
110 #:use-module (gnu packages guile)
111 #:use-module (gnu packages ibus)
112 #:use-module (gnu packages icu4c)
113 #:use-module (gnu packages image)
114 #:use-module (gnu packages imagemagick)
115 #:use-module (gnu packages inkscape)
116 #:use-module (gnu packages iso-codes)
117 #:use-module (gnu packages kerberos)
118 #:use-module (gnu packages libcanberra)
119 #:use-module (gnu packages libunistring)
120 #:use-module (gnu packages libusb)
121 #:use-module (gnu packages linux)
122 #:use-module (gnu packages lirc)
123 #:use-module (gnu packages lua)
124 #:use-module (gnu packages mail)
125 #:use-module (gnu packages mp3)
126 #:use-module (gnu packages multiprecision)
127 #:use-module (gnu packages music)
128 #:use-module (gnu packages ncurses)
129 #:use-module (gnu packages nettle)
130 #:use-module (gnu packages networking)
131 #:use-module (gnu packages ninja)
132 #:use-module (gnu packages nss)
133 #:use-module (gnu packages openldap)
134 #:use-module (gnu packages password-utils)
135 #:use-module (gnu packages pcre)
136 #:use-module (gnu packages pdf)
137 #:use-module (gnu packages perl)
138 #:use-module (gnu packages photo)
139 #:use-module (gnu packages pkg-config)
140 #:use-module (gnu packages polkit)
141 #:use-module (gnu packages popt)
142 #:use-module (gnu packages pretty-print)
143 #:use-module (gnu packages pulseaudio)
144 #:use-module (gnu packages python)
145 #:use-module (gnu packages python-crypto)
146 #:use-module (gnu packages python-web)
147 #:use-module (gnu packages python-xyz)
148 #:use-module (gnu packages rdesktop)
149 #:use-module (gnu packages readline)
150 #:use-module (gnu packages ruby)
151 #:use-module (gnu packages rust)
152 #:use-module (gnu packages samba)
153 #:use-module (gnu packages scanner)
154 #:use-module (gnu packages selinux)
155 #:use-module (gnu packages slang)
156 #:use-module (gnu packages speech)
157 #:use-module (gnu packages spice)
158 #:use-module (gnu packages sqlite)
159 #:use-module (gnu packages ssh)
160 #:use-module (gnu packages tex)
161 #:use-module (gnu packages time)
162 #:use-module (gnu packages tls)
163 #:use-module (gnu packages version-control)
164 #:use-module (gnu packages video)
165 #:use-module (gnu packages virtualization)
166 #:use-module (gnu packages vpn)
167 #:use-module (gnu packages web)
168 #:use-module (gnu packages webkit)
169 #:use-module (gnu packages xdisorg)
170 #:use-module (gnu packages xiph)
171 #:use-module (gnu packages xml)
172 #:use-module (gnu packages xorg)
173 #:use-module (gnu artwork)
174 #:use-module (guix build-system cargo)
175 #:use-module (guix build-system cmake)
176 #:use-module (guix build-system glib-or-gtk)
177 #:use-module (guix build-system gnu)
178 #:use-module (guix build-system meson)
179 #:use-module (guix build-system python)
180 #:use-module (guix build-system trivial)
181 #:use-module (guix download)
182 #:use-module (guix git-download)
183 #:use-module ((guix licenses) #:prefix license:)
184 #:use-module (guix packages)
185 #:use-module (guix utils)
186 #:use-module (guix gexp)
187 #:use-module (guix monads)
188 #:use-module (guix store)
189 #:use-module (ice-9 match)
190 #:use-module (srfi srfi-1))
191
192 (define-public brasero
193 (package
194 (name "brasero")
195 (version "3.12.2")
196 (source (origin
197 (method url-fetch)
198 (uri (string-append "mirror://gnome/sources/brasero/"
199 (version-major+minor version) "/"
200 "brasero-" version ".tar.xz"))
201 (sha256
202 (base32
203 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
204 (build-system glib-or-gtk-build-system)
205 (arguments
206 `(#:configure-flags (list
207 (string-append "--with-girdir="
208 (assoc-ref %outputs "out")
209 "/share/gir-1.0")
210 (string-append "--with-typelibdir="
211 (assoc-ref %outputs "out")
212 "/lib/girepository-1.0"))
213 #:phases
214 (modify-phases %standard-phases
215 (add-before 'configure 'embed-growisofs
216 (lambda* (#:key inputs #:allow-other-keys)
217 (substitute* "plugins/growisofs/burn-growisofs.c"
218 (("\"growisofs") (string-append "\"" (which "growisofs"))))
219 #t)))))
220 (propagated-inputs
221 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
222 (native-inputs
223 `(("intltool" ,intltool)
224 ("itstool" ,itstool)
225 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
226 ("gobject-introspection" ,gobject-introspection)
227 ("pkg-config" ,pkg-config)))
228 (inputs
229 `(("dvd+rw-tools" ,dvd+rw-tools)
230 ("glib" ,glib)
231 ("gnome-doc-utils" ,gnome-doc-utils)
232 ("gstreamer" ,gstreamer)
233 ("gst-plugins-base" ,gst-plugins-base)
234 ("gtk+" ,gtk+)
235 ("libcanberra" ,libcanberra)
236 ("libice" ,libice)
237 ("libnotify" ,libnotify)
238 ("libsm" ,libsm)
239 ("libxml2" ,libxml2)
240 ("totem-pl-parser" ,totem-pl-parser)))
241 (home-page "https://wiki.gnome.org/Apps/Brasero")
242 (synopsis "CD/DVD burning tool for Gnome")
243 (description "Brasero is an application to burn CD/DVD for the Gnome
244 Desktop. It is designed to be as simple as possible and has some unique
245 features to enable users to create their discs easily and quickly.")
246 (license license:gpl2+)))
247
248 (define-public gnome-color-manager
249 (package
250 (name "gnome-color-manager")
251 (version "3.32.0")
252 (source (origin
253 (method url-fetch)
254 (uri (string-append "mirror://gnome/sources/" name "/"
255 (version-major+minor version) "/"
256 name "-" version ".tar.xz"))
257 (sha256
258 (base32
259 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
260 (build-system meson-build-system)
261 (arguments
262 `(#:glib-or-gtk? #t
263 #:phases
264 (modify-phases %standard-phases
265 (add-before
266 'check 'pre-check
267 (lambda _
268 ;; Tests require a running X server.
269 (system "Xvfb :1 &")
270 (setenv "DISPLAY" ":1")
271 #t)))))
272 (native-inputs
273 `(("desktop-file-utils" ,desktop-file-utils)
274 ("gettext" ,gettext-minimal)
275 ("glib:bin" ,glib "bin")
276 ("gtk+:bin" ,gtk+ "bin")
277 ("itstool" ,itstool)
278 ("pkg-config" ,pkg-config)
279 ("xorg-server" ,xorg-server-for-tests)))
280 (inputs
281 `(("adwaita-icon-theme" ,adwaita-icon-theme)
282 ("appstream-glib" ,appstream-glib)
283 ("colord-gtk" ,colord-gtk)
284 ("exiv2" ,exiv2)
285 ("gnome-desktop" ,gnome-desktop)
286 ("libcanberra" ,libcanberra)
287 ("libexif" ,libexif)
288 ("libtiff" ,libtiff)
289 ("libxrandr" ,libxrandr)
290 ("libxtst" ,libxtst)
291 ("libxxf86vm" ,libxxf86vm)
292 ("vte" ,vte)
293 ("xorgproto" ,xorgproto)))
294 (synopsis "Color profile manager for the GNOME desktop")
295 (description "GNOME Color Manager is a session framework that makes
296 it easy to manage, install and generate color profiles
297 in the GNOME desktop.")
298 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
299 (license license:gpl2+)))
300
301 (define-public gnome-online-miners
302 (package
303 (name "gnome-online-miners")
304 (version "3.30.0")
305 (source (origin
306 (method url-fetch)
307 (uri (string-append "mirror://gnome/sources/" name "/"
308 (version-major+minor version) "/"
309 name "-" version ".tar.xz"))
310 (sha256
311 (base32
312 "0pjamwwzn5wqgihyss357dyl2q70r0bngnqmwsqawchx5f9aja9c"))))
313 (build-system glib-or-gtk-build-system)
314 (native-inputs
315 `(("gettext" ,gettext-minimal)
316 ("glib:bin" ,glib "bin")
317 ("gobject-introspection" ,gobject-introspection)
318 ("gtk+:bin" ,gtk+ "bin")
319 ("pkg-config" ,pkg-config)))
320 (inputs
321 `(("gnome-online-accounts" ,gnome-online-accounts)
322 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
323 ("grilo" ,grilo)
324 ("libgdata" ,libgdata)
325 ("libgfbgraph" ,gfbgraph)
326 ("libzapojit" ,libzapojit)
327 ("rest" ,rest)
328 ("tracker" ,tracker)))
329 (synopsis "Web Crawlers for GNOME")
330 (description "GNOME Online Miners provides a set of crawlers that
331 go through your online content and index them locally in Tracker.
332 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
333 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
334 (license license:gpl2+)))
335
336 (define-public gssdp
337 (package
338 (name "gssdp")
339 (version "1.2.2")
340 (source (origin
341 (method url-fetch)
342 (uri (string-append "mirror://gnome/sources/" name "/"
343 (version-major+minor version) "/"
344 name "-" version ".tar.xz"))
345 (sha256
346 (base32
347 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
348 (build-system meson-build-system)
349 (native-inputs
350 `(("gettext" ,gettext-minimal)
351 ("glib:bin" ,glib "bin")
352 ("gobject-introspection" ,gobject-introspection)
353 ("gtk-doc" ,gtk-doc)
354 ("pkg-config" ,pkg-config)
355 ("vala" ,vala)))
356 (inputs
357 `(("gtk+" ,gtk+)
358 ("libsoup" ,libsoup)))
359 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
360 Protocol} for GNOME")
361 (description "This package provides a library to handle resource discovery
362 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
363 a debugging tool, @command{gssdp-device-sniffer}.")
364 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
365 (license license:lgpl2.0+)))
366
367 (define-public gupnp
368 (package
369 (name "gupnp")
370 (version "1.2.2")
371 (source (origin
372 (method url-fetch)
373 (uri (string-append "mirror://gnome/sources/" name "/"
374 (version-major+minor version) "/"
375 name "-" version ".tar.xz"))
376 (sha256
377 (base32
378 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
379 (build-system meson-build-system)
380 (native-inputs
381 `(("gettext" ,gettext-minimal)
382 ("glib:bin" ,glib "bin")
383 ("gobject-introspection" ,gobject-introspection)
384 ("gtk-doc" ,gtk-doc)
385 ("pkg-config" ,pkg-config)
386 ("vala" ,vala)))
387 (inputs
388 `(("gssdp" ,gssdp)
389 ("gtk+" ,gtk+)
390 ("libsoup" ,libsoup)))
391 (synopsis "PnP API for GNOME")
392 (description "This package provides GUPnP, an object-oriented framework
393 for creating UPnP devices and control points, written in C using
394 @code{GObject} and @code{libsoup}.")
395 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
396 (license license:lgpl2.0+)))
397
398 (define-public gupnp-dlna
399 (package
400 (name "gupnp-dlna")
401 (version "0.10.5")
402 (source (origin
403 (method url-fetch)
404 (uri (string-append "mirror://gnome/sources/" name "/"
405 (version-major+minor version) "/"
406 name "-" version ".tar.xz"))
407 (sha256
408 (base32
409 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
410 (build-system gnu-build-system)
411 (native-inputs
412 `(("gettext" ,gettext-minimal)
413 ("glib:bin" ,glib "bin")
414 ("gobject-introspection" ,gobject-introspection)
415 ("gtk-doc" ,gtk-doc)
416 ("libxml" ,libxml2)
417 ("pkg-config" ,pkg-config)
418 ("vala" ,vala)))
419 (inputs
420 `(("gstreamer" ,gstreamer)
421 ("gupnp" ,gupnp)))
422 (propagated-inputs
423 `(("gst-plugins-base" ,gst-plugins-base)
424 ("gst-plugins-good" ,gst-plugins-good)))
425 (synopsis "GUPnP DLNA for GNOME")
426 (description "This package provides a small utility library to
427 support DLNA-related tasks such as media profile guessing, transcoding to a
428 given profile, etc. DLNA is a subset of UPnP A/V.")
429 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
430 (license license:lgpl2.0+)))
431
432 (define-public gupnp-av
433 (package
434 (name "gupnp-av")
435 (version "0.12.11")
436 (source (origin
437 (method url-fetch)
438 (uri (string-append "mirror://gnome/sources/" name "/"
439 (version-major+minor version) "/"
440 name "-" version ".tar.xz"))
441 (sha256
442 (base32
443 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
444 (build-system gnu-build-system)
445 (native-inputs
446 `(("gettext" ,gettext-minimal)
447 ("glib:bin" ,glib "bin")
448 ("gobject-introspection" ,gobject-introspection)
449 ("gtk-doc" ,gtk-doc)
450 ("libxml" ,libxml2)
451 ("pkg-config" ,pkg-config)))
452 (inputs
453 `(("gtk+" ,gtk+)
454 ("gupnp" ,gupnp)))
455 (synopsis "GUPnP A/V for GNOME")
456 (description "This package provides a small library for handling
457 and implementation of UPnP A/V profiles.")
458 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
459 (license license:lgpl2.0+)))
460
461 (define-public libmediaart
462 (package
463 (name "libmediaart")
464 (version "1.9.4")
465 (source (origin
466 (method url-fetch)
467 (uri (string-append "mirror://gnome/sources/" name "/"
468 (version-major+minor version) "/"
469 name "-" version ".tar.xz"))
470 (sha256
471 (base32
472 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
473 (build-system gnu-build-system)
474 (native-inputs
475 `(("glib:bin" ,glib "bin")
476 ("pkg-config" ,pkg-config)))
477 (inputs
478 `(("gdk-pixbuf" ,gdk-pixbuf)
479 ("gettext" ,gettext-minimal)
480 ("gobject-introspection" ,gobject-introspection)
481 ("gtk+:doc", gtk+ "doc")
482 ("vala" ,vala)))
483 (synopsis "Media art library for the GNOME desktop")
484 (description
485 "The libmediaart library is the foundation for media art caching,
486 extraction, and lookup for applications on the desktop.")
487 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
488 (license license:lgpl2.1+)))
489
490 (define-public gnome-initial-setup
491 (package
492 (name "gnome-initial-setup")
493 (version "3.32.1")
494 (source (origin
495 (method url-fetch)
496 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
497 (version-major+minor version)
498 "/gnome-initial-setup-" version ".tar.xz"))
499 (sha256
500 (base32
501 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
502 (build-system meson-build-system)
503 (arguments
504 '(#:configure-flags '(;; Enable camera support for user selfie.
505 "-Dcheese=auto"
506 "-Dsystemd=false")))
507 (native-inputs
508 `(("gettext" ,gettext-minimal)
509 ("glib:bin" ,glib "bin")
510 ("gobject-introspection" ,gobject-introspection)
511 ("gtk+:bin" ,gtk+ "bin")
512 ("pkg-config" ,pkg-config)))
513 (inputs
514 `(("accountsservice" ,accountsservice)
515 ;("adwaita-icon-theme" ,adwaita-icon-theme)
516 ("gdm" ,gdm)
517 ("geoclue" ,geoclue)
518 ("gnome-desktop" ,gnome-desktop)
519 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
520 ("gnome-online-accounts" ,gnome-online-accounts)
521 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
522 ("gstreamer" ,gstreamer)
523 ("ibus" ,ibus)
524 ("json-glib" ,json-glib)
525 ("krb5" ,mit-krb5)
526 ("libgweather" ,libgweather)
527 ("libsecret" ,libsecret)
528 ("network-manager" ,network-manager)
529 ("network-manager-applet" ,network-manager-applet)
530 ("packagekit" ,packagekit)
531 ("polkit" ,polkit)
532 ("pwquality" ,libpwquality)
533 ("rest" ,rest)
534 ("upower" ,upower)
535 ("webkitgtk" ,webkitgtk)))
536 (synopsis "Initial setup wizard for GNOME desktop")
537 (description "This package provides a set-up wizard when a
538 user logs into GNOME for the first time. It typically provides a
539 tour of all gnome components and allows the user to set them up.")
540 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
541 (license license:gpl2)))
542
543 (define-public gnome-user-share
544 (package
545 (name "gnome-user-share")
546 (version "3.33.1")
547 (source (origin
548 (method url-fetch)
549 (uri (string-append "mirror://gnome/sources/" name "/"
550 (version-major+minor version) "/"
551 name "-" version ".tar.xz"))
552 (sha256
553 (base32
554 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
555 (build-system meson-build-system)
556 (arguments
557 `(#:glib-or-gtk? #t
558 #:configure-flags
559 `("-Dsystemd=false"
560 ;; Enable nautilus extension for file sharing.
561 "-Dnautilus_extension=true")))
562 (native-inputs
563 `(("gettext" ,gettext-minimal)
564 ("glib:bin" ,glib "bin")
565 ("gobject-introspection" ,gobject-introspection)
566 ("gtk+:bin" ,gtk+ "bin")
567 ("pkg-config" ,pkg-config)
568 ("yelp-tools" ,yelp-tools)))
569 (inputs
570 `(("glib" ,glib)
571 ("gnome-bluetooth" ,gnome-bluetooth)
572 ("gtk+" ,gtk+)
573 ("libcanberra" ,libcanberra)
574 ("libnotify" ,libnotify)
575 ("nautilus" ,nautilus))) ; For nautilus extension.
576 (synopsis "File sharing for GNOME desktop")
577 (description "GNOME User Share is a small package that binds together
578 various free software projects to bring easy to use user-level file
579 sharing to the masses.")
580 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
581 (license license:gpl2+)))
582
583 (define-public sushi
584 (package
585 (name "sushi")
586 (version "3.32.1")
587 (source (origin
588 (method url-fetch)
589 (uri (string-append "mirror://gnome/sources/" name "/"
590 (version-major+minor version) "/"
591 name "-" version ".tar.xz"))
592 (sha256
593 (base32
594 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
595 (build-system meson-build-system)
596 (arguments
597 `(#:glib-or-gtk? #t
598 #:phases
599 (modify-phases %standard-phases
600 (add-after 'glib-or-gtk-wrap 'wrap-typelib
601 (lambda* (#:key outputs #:allow-other-keys)
602 (let ((prog (string-append (assoc-ref outputs "out")
603 "/bin/sushi")))
604 ;; Put existing typelibs before sushi's deps, so as to correctly
605 ;; infer gdk-pixbuf
606 (wrap-program prog
607 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
608 #t))))))
609 (native-inputs
610 `(("glib:bin" ,glib "bin")
611 ("gettext" ,gettext-minimal)
612 ("gobject-introspection" ,gobject-introspection)
613 ("pkg-config" ,pkg-config)))
614 (inputs
615 `(("clutter" ,clutter)
616 ("clutter-gst" ,clutter-gst)
617 ("clutter-gtk" ,clutter-gtk)
618 ("evince" ,evince) ; For file previewing.
619 ("freetype" ,freetype)
620 ("gdk-pixbuf" ,gdk-pixbuf)
621 ("gjs" ,gjs)
622 ("gst-plugins-base" ,gst-plugins-base)
623 ("gstreamer" ,gstreamer)
624 ("gtksourceview" ,gtksourceview-3)
625 ("harfbuzz" ,harfbuzz)
626 ("libepoxy" ,libepoxy)
627 ("libmusicbrainz" ,libmusicbrainz)
628 ("libxml2" ,libxml2)
629 ("neon" ,neon)
630 ("webkitgtk" ,webkitgtk)))
631 (synopsis "File previewer for the GNOME desktop")
632 (description "Sushi is a DBus-activated service that allows applications to
633 preview files on the GNOME desktop.")
634 (home-page "https://gitlab.gnome.org/GNOME/sushi")
635 (license license:gpl2+)))
636
637 (define-public rygel
638 (package
639 (name "rygel")
640 (version "0.38.3")
641 (source (origin
642 (method url-fetch)
643 (uri (string-append "mirror://gnome/sources/" name "/"
644 (version-major+minor version) "/"
645 name "-" version ".tar.xz"))
646 (sha256
647 (base32
648 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
649 (build-system gnu-build-system)
650 (native-inputs
651 `(("gettext" ,gettext-minimal)
652 ("gobject-introspection" ,gobject-introspection)
653 ("gtk-doc" ,gtk-doc)
654 ("pkg-config" ,pkg-config)
655 ("vala" ,vala)))
656 (inputs
657 `(("gdk-pixbuf" ,gdk-pixbuf)
658 ("gssdp" ,gssdp)
659 ("gstreamer" ,gstreamer)
660 ("gst-plugins-base" ,gst-plugins-base)
661 ("gtk+" ,gtk+)
662 ("gupnp" ,gupnp)
663 ("gupnp-av" ,gupnp-av)
664 ("gupnp-dlna" ,gupnp-dlna)
665 ("libgee" ,libgee)
666 ("libmediaart" ,libmediaart)
667 ("libsoup" ,libsoup)
668 ("libxslt" ,libxslt)
669 ("libunistring" ,libunistring)
670 ("tracker" ,tracker)))
671 (synopsis "Share audio, video, and pictures with other devices")
672 (description
673 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
674 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
675 pictures, and to control a media player on your home network.
676
677 Rygel achieves interoperability with other devices by trying to conform to the
678 strict requirements of DLNA and by converting media on-the-fly to formats that
679 client devices can handle.")
680 (home-page "https://wiki.gnome.org/Projects/Rygel")
681 (license (list
682 ;; For logo (data/icons/*).
683 license:cc-by-sa3.0
684 ;; For all others.
685 license:lgpl2.1+))))
686
687 (define-public libnma
688 (package
689 (name "libnma")
690 (version "1.8.26")
691 (source (origin
692 (method url-fetch)
693 (uri (string-append "mirror://gnome/sources/" name "/"
694 (version-major+minor version) "/"
695 name "-" version ".tar.xz"))
696 (sha256
697 (base32
698 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
699 (build-system meson-build-system)
700 (arguments
701 `(#:glib-or-gtk? #t))
702 (native-inputs
703 `(("gettext" ,gettext-minimal)
704 ("glib:bin" ,glib "bin")
705 ("gtk-doc" ,gtk-doc)
706 ("gobject-introspection" ,gobject-introspection)
707 ("pkg-config" ,pkg-config)))
708 (inputs
709 `(("adwaita-icon-theme" ,adwaita-icon-theme)
710 ("gcr" ,gcr)
711 ("gtk+" ,gtk+)
712 ("iso-codes" ,iso-codes)
713 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
714 ("network-manager" ,network-manager)))
715 (synopsis "Network Manager's applet library")
716 (description "Libnma is an applet library for Network Manager. It was
717 initially part of network-manager-applet and has now become a separate
718 project.")
719 (home-page "https://gitlab.gnome.org/GNOME/libnma")
720
721 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
722 ;; "LGPL-2.1+".
723 (license license:gpl2+)))
724
725 (define-public gnome-menus
726 (package
727 (name "gnome-menus")
728 (version "3.32.0")
729 (source (origin
730 (method url-fetch)
731 (uri (string-append "mirror://gnome/sources/gnome-menus/"
732 (version-major+minor version) "/"
733 name "-" version ".tar.xz"))
734 (sha256
735 (base32
736 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
737 (build-system gnu-build-system)
738 (native-inputs
739 `(("gettext" ,gettext-minimal)
740 ("glib" ,glib)
741 ("pkg-config" ,pkg-config)))
742 (synopsis "Menu support for GNOME desktop")
743 (description "GNOME Menus contains the libgnome-menu library, the layout
744 configuration files for the GNOME menu, as well as a simple menu editor.")
745 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
746 (license license:lgpl2.0+)))
747
748 (define-public deja-dup
749 (package
750 (name "deja-dup")
751 (version "34.3")
752 (source (origin
753 (method url-fetch)
754 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
755 (sha256
756 (base32
757 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
758 (patches
759 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
760 (build-system glib-or-gtk-build-system)
761 (arguments
762 `(#:modules ((guix build gnu-build-system)
763 ((guix build cmake-build-system) #:prefix cmake:)
764 (guix build glib-or-gtk-build-system)
765 (guix build utils))
766 #:imported-modules (,@%glib-or-gtk-build-system-modules
767 (guix build cmake-build-system))
768 #:test-target "test"
769 #:configure-flags (list (string-append
770 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
771 (string-append
772 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
773 #:phases
774 (modify-phases %standard-phases
775 (add-after 'unpack 'patch-lockfile-deletion
776 (lambda rest
777 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
778 (("/bin/rm")
779 (which "rm")))))
780 (replace 'configure
781 (assoc-ref cmake:%standard-phases 'configure))
782 (delete 'check) ;; Fails due to issues with DBus
783 (add-after 'install 'wrap-deja-dup
784 (lambda* (#:key inputs outputs #:allow-other-keys)
785 (let ((python (assoc-ref inputs "python"))
786 (python-path (getenv "PYTHONPATH"))
787 (duplicity (assoc-ref inputs "duplicity"))
788 (out (assoc-ref outputs "out")))
789 (for-each
790 (lambda (program)
791 (wrap-program program
792 `("PATH" ":" prefix (,(string-append python "/bin")
793 ,(string-append duplicity "/bin"))))
794 (wrap-program program
795 `("PYTHONPATH" ":" prefix (,python-path))))
796
797 (find-files (string-append out "/bin")))
798 #t))))))
799 (inputs
800 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
801 ("gobject-introspection" ,gobject-introspection)
802 ("duplicity" ,duplicity)
803 ("python" ,python-2)
804 ("python-pygobject" ,python2-pygobject)
805 ("gtk+" ,gtk+)
806 ("libnotify" ,libnotify)
807 ("libpeas" ,libpeas)
808 ("libsecret" ,libsecret)
809 ("packagekit" ,packagekit)))
810 (native-inputs
811 `(("pkg-config" ,pkg-config)
812 ("vala" ,vala)
813 ("gettext" ,gettext-minimal)
814 ("itstool" ,itstool)
815 ("intltool" ,intltool)
816 ("cmake" ,cmake-minimal)))
817 (home-page "https://launchpad.net/deja-dup")
818 (synopsis "Simple backup tool, for regular encrypted backups")
819 (description
820 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
821 uses duplicity as the backend, which supports incremental backups and storage
822 either on a local, or remote machine via a number of methods.")
823 (license license:gpl3+)))
824
825 (define-public gnome-user-docs
826 (package
827 (name "gnome-user-docs")
828 (version "3.32.3")
829 (source
830 (origin
831 (method url-fetch)
832 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
833 (version-major+minor version)
834 "/gnome-user-docs-" version ".tar.xz"))
835 (sha256
836 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
837 (build-system gnu-build-system)
838 (native-inputs
839 `(("gettext" ,gettext-minimal)
840 ("itstool" ,itstool)
841 ("pkg-config" ,pkg-config)
842 ("xmllint" ,libxml2)))
843 (synopsis "User documentation for the GNOME desktop")
844 (description
845 "The GNOME User Documentation explains how to use the GNOME desktop and its
846 components. It covers usage and setup of the core GNOME programs by end-users
847 and system administrators.")
848 (home-page "https://live.gnome.org/DocumentationProject")
849 (license license:cc-by3.0)))
850
851 (define-public gnome-getting-started-docs
852 (package
853 (name "gnome-getting-started-docs")
854 (version "3.32.2")
855 (source
856 (origin
857 (method url-fetch)
858 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
859 (version-major+minor version)
860 "/gnome-getting-started-docs-" version ".tar.xz"))
861 (sha256
862 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
863 (build-system gnu-build-system)
864 (native-inputs
865 `(("gettext" ,gettext-minimal)
866 ("itstool" ,itstool)
867 ("pkg-config" ,pkg-config)
868 ("xmllint" ,libxml2)))
869 (synopsis "Help to get new users started with the GNOME desktop")
870 (description
871 "The GNOME Getting Started Documentation contains GNOME's intuitive
872 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
873
874 It is normally used together with @command{gnome-initial-setup}, but is also
875 useful as a tutorial and users' guide for new or less experienced users.")
876 (home-page "https://live.gnome.org/DocumentationProject")
877 (license license:cc-by-sa3.0)))
878
879 (define-public dia
880 ;; This version from GNOME's repository includes fixes for compiling with
881 ;; recent versions of the build tools. The latest activity on the
882 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
883 ;; fixes in 2016.
884 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
885 (package
886 (name "dia")
887 (version (git-version "0.97.3" "1" commit))
888 (source (origin
889 (method git-fetch)
890 (uri (git-reference
891 (url "https://gitlab.gnome.org/GNOME/dia.git/")
892 (commit commit)))
893 (file-name (git-file-name name version))
894 (sha256
895 (base32
896 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
897 (build-system gnu-build-system)
898 (inputs
899 `(("freetype" ,freetype)
900 ("gdk-pixbuf" ,gdk-pixbuf)
901 ("gtk+" ,gtk+-2)
902 ("libart-lgpl" ,libart-lgpl)
903 ("libxml2" ,libxml2)
904 ("pango" ,pango)))
905 (native-inputs
906 `(("autoconf" ,autoconf)
907 ("automake" ,automake)
908 ("intltool" ,intltool)
909 ("glib" ,glib "bin")
910 ("libtool" ,libtool)
911 ("perl" ,perl)
912 ("pkg-config" ,pkg-config)
913 ("python-wrapper" ,python-wrapper)))
914 (arguments
915 `(#:phases
916 (modify-phases %standard-phases
917 (add-before 'bootstrap 'dont-configure-during-bootstrap
918 (lambda _
919 (setenv "NOCONFIGURE" "true")
920 #t)))))
921 (home-page "https://wiki.gnome.org/Apps/Dia")
922 (synopsis "Diagram creation for GNOME")
923 (description "Dia can be used to draw different types of diagrams, and
924 includes support for UML static structure diagrams (class diagrams), entity
925 relationship modeling, and network diagrams. The program supports various file
926 formats like PNG, SVG, PDF and EPS.")
927 (license license:gpl2+))))
928
929 ;; This is the unstable release, but it is required for the current stable
930 ;; release of gvfs (1.38.1).
931 (define-public libgdata
932 (package
933 (name "libgdata")
934 (version "0.17.9")
935 (source (origin
936 (method url-fetch)
937 (uri (string-append "mirror://gnome/sources/" name "/"
938 (version-major+minor version) "/"
939 name "-" version ".tar.xz"))
940 (sha256
941 (base32
942 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
943 (build-system gnu-build-system)
944 (arguments
945 '(#:phases
946 (modify-phases %standard-phases
947 (add-before 'check 'disable-failing-tests
948 (lambda _
949 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
950 ;; They have been removed in libgdata 0.17.6, so just do the same.
951 (substitute* "gdata/tests/Makefile"
952 (("picasaweb\\$\\(EXEEXT\\) ") ""))
953 #t)))))
954 (native-inputs
955 `(("glib:bin" ,glib "bin")
956 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
957 ("intltool" ,intltool)
958 ("pkg-config" ,pkg-config)
959 ("uhttpmock" ,uhttpmock)))
960 (inputs
961 `(("cyrus-sasl" ,cyrus-sasl)
962 ("glib-networking" ,glib-networking)))
963 (propagated-inputs
964 `(("gcr" ,gcr)
965 ("glib" ,glib)
966 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
967 ("json-glib" ,json-glib)
968 ("liboauth" ,liboauth)
969 ("libsoup" ,libsoup)
970 ("libxml2" ,libxml2)))
971 (home-page "https://wiki.gnome.org/Projects/libgdata")
972 (synopsis "Library for accessing online service APIs")
973 (description
974 "libgdata is a GLib-based library for accessing online service APIs using
975 the GData protocol — most notably, Google's services. It provides APIs to
976 access the common Google services, and has full asynchronous support.")
977 (license license:lgpl2.1+)))
978
979 (define-public libgxps
980 (package
981 (name "libgxps")
982 (version "0.3.1")
983 (source (origin
984 (method url-fetch)
985 (uri (string-append "mirror://gnome/sources/" name "/"
986 (version-major+minor version) "/"
987 name "-" version ".tar.xz"))
988 (sha256
989 (base32
990 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
991 (build-system meson-build-system)
992 (native-inputs
993 `(("gobject-introspection" ,gobject-introspection)
994 ("pkg-config" ,pkg-config)))
995 (inputs
996 `(("gtk+" ,gtk+)
997 ("libjpeg" ,libjpeg-turbo)
998 ("lcms" ,lcms)
999 ("libtiff" ,libtiff)))
1000 (propagated-inputs
1001 ;; In Requires of libgxps.pc.
1002 `(("cairo" ,cairo)
1003 ("glib" ,glib)
1004 ("libarchive" ,libarchive)))
1005 (home-page "https://wiki.gnome.org/Projects/libgxps")
1006 (synopsis "GObject-based library for handling and rendering XPS documents")
1007 (description
1008 "libgxps is a GObject-based library for handling and rendering XPS
1009 documents. This package also contains binaries that can convert XPS documents
1010 to other formats.")
1011 (license license:lgpl2.1+)))
1012
1013 (define-public gnome-characters
1014 (package
1015 (name "gnome-characters")
1016 (version "3.30.0")
1017 (source
1018 (origin
1019 (method url-fetch)
1020 (uri (string-append "mirror://gnome/sources/"
1021 "gnome-characters/" (version-major+minor version)
1022 "/gnome-characters-" version ".tar.xz"))
1023 (sha256
1024 (base32
1025 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1026 (build-system meson-build-system)
1027 (arguments
1028 `(#:glib-or-gtk? #t
1029 #:phases (modify-phases %standard-phases
1030 (add-after 'install 'wrap
1031 (lambda* (#:key outputs #:allow-other-keys)
1032 ;; GNOME Characters needs Typelib files from GTK and
1033 ;; gnome-desktop.
1034 (wrap-program (string-append (assoc-ref outputs "out")
1035 "/bin/gnome-characters")
1036 `("GI_TYPELIB_PATH" ":" prefix
1037 (,(getenv "GI_TYPELIB_PATH"))))
1038 #t)))))
1039 (native-inputs
1040 `(("gettext" ,gettext-minimal)
1041 ("glib:bin" ,glib "bin")
1042 ("gtk+:bin" ,gtk+ "bin")
1043 ("pkg-config" ,pkg-config)
1044 ("python" ,python-minimal)))
1045 (inputs
1046 `(("gjs" ,gjs)
1047 ("gtk+" ,gtk+)
1048 ("libunistring" ,libunistring)
1049 ("gnome-desktop" ,gnome-desktop)))
1050 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1051 (synopsis "Find and insert unusual characters")
1052 (description "Characters is a simple utility application to find
1053 and insert unusual characters. It allows you to quickly find the
1054 character you are looking for by searching for keywords.")
1055 (license license:bsd-3)))
1056
1057 (define-public gnome-common
1058 (package
1059 (name "gnome-common")
1060 (version "3.18.0")
1061 (source
1062 (origin
1063 (method url-fetch)
1064 (uri (string-append "mirror://gnome/sources/" name "/"
1065 (version-major+minor version) "/"
1066 name "-" version ".tar.xz"))
1067 (sha256
1068 (base32
1069 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1070 (build-system gnu-build-system)
1071 (home-page "https://www.gnome.org/")
1072 (synopsis "Bootstrap GNOME modules built from Git")
1073 (description "gnome-common contains various files needed to bootstrap
1074 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1075 can be used to configure a source directory checked out from Git and some
1076 commonly used macros.")
1077 (license license:gpl2+)))
1078
1079 (define-public gnome-contacts
1080 (package
1081 (name "gnome-contacts")
1082 (version "3.32.1")
1083 (source (origin
1084 (method url-fetch)
1085 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1086 (version-major+minor version) "/"
1087 name "-" version ".tar.xz"))
1088 (sha256
1089 (base32
1090 "17g1gh8yj58cfpdx69h2szivlbjgvv982kmhnkkh0i5bwj0zs2yy"))))
1091 (build-system meson-build-system)
1092 (arguments
1093 `(#:phases
1094 (modify-phases %standard-phases
1095 (add-after 'unpack 'generate-vapis
1096 (lambda* (#:key inputs #:allow-other-keys)
1097 ;; To generate goa's missing .vapi file
1098 (define goa
1099 (assoc-ref inputs "gnome-online-accounts:lib"))
1100
1101 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1102 "--library=goa-1.0"
1103 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1104 #t)))))
1105 (native-inputs
1106 `(("glib:bin" ,glib "bin")
1107 ("gtk+:bin" ,gtk+ "bin")
1108 ("pkg-config" ,pkg-config)))
1109 (inputs
1110 `(("cheese" ,cheese)
1111 ("docbook-xml" ,docbook-xml)
1112 ("dockbook-xsl" ,docbook-xsl)
1113 ("evolution-data-server" ,evolution-data-server)
1114 ("gettext" ,gettext-minimal)
1115 ("gnome-desktop" ,gnome-desktop)
1116 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1117 ("gobject-introspection" ,gobject-introspection)
1118 ("gst-plugins-base" ,gst-plugins-base)
1119 ("gtk+" ,gtk+)
1120 ("libgee" ,libgee)
1121 ("libxslt" ,libxslt)
1122 ("telepathy-glib" ,telepathy-glib)
1123 ("vala" ,vala)))
1124 (propagated-inputs
1125 `(("folks", folks)
1126 ("telepathy-mission-control" ,telepathy-mission-control)))
1127 (synopsis "GNOME's integrated address book")
1128 (description
1129 "GNOME Contacts organizes your contact information from online and
1130 offline sources, providing a centralized place for managing your contacts.")
1131 (home-page "https://wiki.gnome.org/Apps/Contacts")
1132 (license license:gpl2+)))
1133
1134 (define-public gnome-desktop
1135 (package
1136 (name "gnome-desktop")
1137 (version "3.32.2")
1138 (source
1139 (origin
1140 (method url-fetch)
1141 (uri (string-append "mirror://gnome/sources/" name "/"
1142 (version-major+minor version) "/"
1143 name "-" version ".tar.xz"))
1144 (sha256
1145 (base32
1146 "0bidx4626x7k2myv6f64qv4fzmxv8v475wibiz19kj8hjfr737q9"))))
1147 (build-system meson-build-system)
1148 (arguments
1149 '(#:phases
1150 (modify-phases %standard-phases
1151 (add-before 'configure 'patch-path
1152 (lambda* (#:key inputs #:allow-other-keys)
1153 (let ((libc (assoc-ref inputs "libc")))
1154 (substitute* "libgnome-desktop/gnome-languages.c"
1155 (("\"locale\"")
1156 (string-append "\"" libc "/bin/locale\"")))
1157 #t)))
1158 (add-before 'check 'pre-check
1159 (lambda* (#:key inputs #:allow-other-keys)
1160 ;; Tests require a running X server and locales.
1161 (system "Xvfb :1 &")
1162 (setenv "DISPLAY" ":1")
1163 (setenv "GUIX_LOCPATH"
1164 (string-append (assoc-ref inputs "glibc-locales")
1165 "/lib/locale"))
1166 #t)))))
1167 (native-inputs
1168 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1169 ("glibc-locales" ,glibc-locales) ; for tests
1170 ("gobject-introspection" ,gobject-introspection)
1171 ("itstool" ,itstool)
1172 ("intltool" ,intltool)
1173 ("pkg-config" ,pkg-config)
1174 ("xmllint" ,libxml2)
1175 ("xorg-server" ,xorg-server-for-tests)))
1176 (propagated-inputs
1177 ;; Required by gnome-desktop-3.0.pc.
1178 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1179 ("gtk+" ,gtk+)
1180 ("iso-codes" ,iso-codes)
1181 ("libseccomp" ,libseccomp)
1182 ("libx11" ,libx11)
1183 ("xkeyboard-config" ,xkeyboard-config)))
1184 (inputs
1185 `(("gdk-pixbuf" ,gdk-pixbuf)
1186 ("glib" ,glib)
1187 ("libxext" ,libxext)
1188 ("libxkbfile" ,libxkbfile)
1189 ("libxrandr" ,libxrandr)))
1190 (home-page "https://www.gnome.org/")
1191 (synopsis
1192 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1193 (description
1194 "The libgnome-desktop library provides API shared by several applications
1195 on the desktop, but that cannot live in the platform for various reasons.
1196 There is no API or ABI guarantee, although we are doing our best to provide
1197 stability. Documentation for the API is available with gtk-doc.
1198
1199 The gnome-about program helps find which version of GNOME is installed.")
1200 ; Some bits under the LGPL.
1201 (license license:gpl2+)))
1202
1203 (define-public gnome-doc-utils
1204 (package
1205 (name "gnome-doc-utils")
1206 (version "0.20.10")
1207 (source
1208 (origin
1209 (method url-fetch)
1210 (uri (string-append "mirror://gnome/sources/" name "/"
1211 (version-major+minor version) "/"
1212 name "-" version ".tar.xz"))
1213 (sha256
1214 (base32
1215 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1216 (build-system gnu-build-system)
1217 (native-inputs
1218 `(("intltool" ,intltool)
1219 ("docbook-xml" ,docbook-xml-4.4)
1220 ("python2-libxml2" ,python2-libxml2)
1221 ("libxml2" ,libxml2)
1222 ("libxslt" ,libxslt)
1223 ("pkg-config" ,pkg-config)
1224 ("python-2" ,python-2)))
1225 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1226 (synopsis
1227 "Documentation utilities for the Gnome project")
1228 (description
1229 "Gnome-doc-utils is a collection of documentation utilities for the
1230 Gnome project. It includes xml2po tool which makes it easier to translate
1231 and keep up to date translations of documentation.")
1232 (license license:gpl2+))) ; xslt under lgpl
1233
1234 (define-public gnome-disk-utility
1235 (package
1236 (name "gnome-disk-utility")
1237 (version "3.32.1")
1238 (source (origin
1239 (method url-fetch)
1240 (uri (string-append "mirror://gnome/sources/" name "/"
1241 (version-major+minor version) "/"
1242 name "-" version ".tar.xz"))
1243 (sha256
1244 (base32
1245 "08vwbji9m1nhjjdiyhhaqi8cncys7i89b4bpy095f8475v8y05bg"))))
1246 (build-system meson-build-system)
1247 (arguments
1248 '(#:phases
1249 (modify-phases %standard-phases
1250 (add-after 'unpack 'skip-gtk-update-icon-cache
1251 ;; Don't create 'icon-theme.cache'.
1252 (lambda _
1253 (substitute* "meson_post_install.py"
1254 (("gtk-update-icon-cache") "true"))
1255 #t)))))
1256 (native-inputs
1257 `(("glib:bin" ,glib "bin")
1258 ("intltool" ,intltool)
1259 ("pkg-config" ,pkg-config)
1260 ("docbook-xml" ,docbook-xml)
1261 ("docbook-xsl" ,docbook-xsl)
1262 ("libxml2" ,libxml2)
1263 ("libxslt" ,libxslt)))
1264 (inputs
1265 `(("glib" ,glib)
1266 ("appstream-glib" ,appstream-glib)
1267 ("gnome-settings-daemon" ,gnome-settings-daemon)
1268 ("gtk+" ,gtk+)
1269 ("libcanberra" ,libcanberra)
1270 ("libdvdread" ,libdvdread)
1271 ("libnotify" ,libnotify)
1272 ("libpwquality" ,libpwquality)
1273 ("libsecret" ,libsecret)
1274 ("udisks" ,udisks)))
1275 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1276 (synopsis "Disk management utility for GNOME")
1277 (description "Disk management utility for GNOME.")
1278 (license license:gpl2+)))
1279
1280 (define-public gnome-font-viewer
1281 (package
1282 (name "gnome-font-viewer")
1283 (version "3.30.0")
1284 (source (origin
1285 (method url-fetch)
1286 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1287 (version-major+minor version)
1288 "/gnome-font-viewer-" version ".tar.xz"))
1289 (sha256
1290 (base32
1291 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1292 (build-system meson-build-system)
1293 (arguments
1294 '(#:phases
1295 (modify-phases %standard-phases
1296 (add-after 'unpack 'patch-post-install-script
1297 (lambda _
1298 (substitute* "meson-postinstall.sh"
1299 (("update-desktop-database") (which "true")))
1300 #t)))))
1301 (native-inputs
1302 `(("gettext" ,gettext-minimal)
1303 ("glib:bin" ,glib "bin")
1304 ("pkg-config" ,pkg-config)))
1305 (inputs
1306 `(("glib" ,glib)
1307 ("gnome-desktop" ,gnome-desktop)
1308 ("gtk+" ,gtk+)))
1309 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1310 (synopsis "GNOME Fonts")
1311 (description "Application to show you the fonts installed on your computer
1312 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1313 the font would look under various sizes.")
1314 (license license:gpl2+)))
1315
1316 (define-public gcr
1317 (package
1318 (name "gcr")
1319 (version "3.28.1")
1320 (source (origin
1321 (method url-fetch)
1322 (uri (string-append "mirror://gnome/sources/" name "/"
1323 (version-major+minor version) "/"
1324 name "-" version ".tar.xz"))
1325 (sha256
1326 (base32
1327 "12qn7mcmxb45lz1gq3s3b34rimiyrrshkrpvxdw1fc0w26i4l84m"))
1328 (patches
1329 (list
1330 ;; This patch solves an ordering issue that showed up when
1331 ;; running the test suite against newer Glib 2.60. See
1332 ;; <https://gitlab.gnome.org/GNOME/gcr/merge_requests/9>.
1333 (origin
1334 (method url-fetch)
1335 (uri (string-append "https://gitlab.gnome.org/GNOME/gcr/commit/"
1336 "45d637578d7643ff96c0183ac267497a0b4c6344.diff"))
1337 (file-name "gcr-hashtable-ordering.patch")
1338 (sha256
1339 (base32
1340 "1vsqiys8fsm1f1vvds783wwf7zwi5v282rhsai8jrsm6x7h79gbi")))))))
1341 (build-system gnu-build-system)
1342 (arguments
1343 '(#:phases
1344 (modify-phases %standard-phases
1345 ;; These fail because /var/lib/dbus/machine-id is not present in the
1346 ;; build environment.
1347 (add-after 'unpack 'disable-failing-tests
1348 (lambda _
1349 (substitute* "gcr/test-system-prompt.c"
1350 (("g_test_add") "//")
1351 (("return.*") "return 0;"))
1352 #t))
1353 (add-before 'check 'pre-check
1354 (lambda _
1355 ;; Some tests expect to write to $HOME.
1356 (setenv "HOME" "/tmp")
1357 #t)))))
1358 (inputs
1359 `(("dbus" ,dbus)
1360 ("gnupg" ,gnupg) ;called as a child process during tests
1361 ("libgcrypt" ,libgcrypt)))
1362 (native-inputs
1363 `(("python" ,python-2) ;for tests
1364 ("pkg-config" ,pkg-config)
1365 ("glib" ,glib "bin")
1366 ("gobject-introspection" ,gobject-introspection)
1367 ("intltool" ,intltool)
1368 ("libxml2" ,libxml2)
1369 ("vala" ,vala)
1370 ("xsltproc" ,libxslt)))
1371 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1372 (propagated-inputs
1373 `(("p11-kit" ,p11-kit)
1374 ("glib" ,glib)
1375 ("gtk+" ,gtk+)))
1376 (home-page "https://www.gnome.org")
1377 (synopsis "Libraries for displaying certificates and accessing key stores")
1378 (description
1379 "The GCR package contains libraries used for displaying certificates and
1380 accessing key stores. It also provides the viewer for crypto files on the
1381 GNOME Desktop.")
1382 (license license:lgpl2.1+)))
1383
1384 (define-public libgnome-keyring
1385 (package
1386 (name "libgnome-keyring")
1387 (version "3.12.0")
1388 (source (origin
1389 (method url-fetch)
1390 (uri (string-append "mirror://gnome/sources/" name "/"
1391 (version-major+minor version) "/"
1392 name "-" version ".tar.xz"))
1393 (sha256
1394 (base32
1395 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1396 (build-system gnu-build-system)
1397 (inputs
1398 `(("libgcrypt" ,libgcrypt)
1399 ("dbus" ,dbus)))
1400 (native-inputs
1401 `(("pkg-config" ,pkg-config)
1402 ("glib" ,glib "bin")
1403 ("intltool" ,intltool)))
1404 (propagated-inputs
1405 ;; Referred to in .h files and .pc.
1406 `(("glib" ,glib)))
1407 (home-page "https://www.gnome.org")
1408 (synopsis "Accessing passwords from the GNOME keyring")
1409 (description
1410 "Client library to access passwords from the GNOME keyring.")
1411
1412 ;; Though a couple of files are LGPLv2.1+.
1413 (license license:lgpl2.0+)))
1414
1415 (define-public gnome-keyring
1416 (package
1417 (name "gnome-keyring")
1418 (version "3.28.2")
1419 (source (origin
1420 (method url-fetch)
1421 (uri (string-append "mirror://gnome/sources/" name "/"
1422 (version-major+minor version) "/"
1423 name "-" version ".tar.xz"))
1424 (sha256
1425 (base32
1426 "0sk4las4ji8wv9nx8mldzqccmpmkvvr9pdwv9imj26r10xyin5w1"))))
1427 (build-system gnu-build-system)
1428 (arguments
1429 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1430 ;not exist
1431 #:configure-flags
1432 (list
1433 (string-append "--with-pkcs11-config="
1434 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1435 (string-append "--with-pkcs11-modules="
1436 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1437 #:phases
1438 (modify-phases %standard-phases
1439 (add-after 'unpack 'fix-/bin/sh-reference
1440 (lambda _
1441 (substitute* "po/Makefile.in.in"
1442 (("/bin/sh") (which "sh")))
1443 #t))
1444 (add-after 'unpack 'fix-docbook
1445 (lambda* (#:key inputs #:allow-other-keys)
1446 (substitute* "docs/Makefile.am"
1447 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1448 (string-append (assoc-ref inputs "docbook-xsl")
1449 "/xml/xsl/docbook-xsl-"
1450 ,(package-version docbook-xsl)
1451 "/manpages/docbook.xsl")))
1452 (setenv "XML_CATALOG_FILES"
1453 (string-append (assoc-ref inputs "docbook-xml")
1454 "/xml/dtd/docbook/catalog.xml"))
1455 ;; Rerun the whole thing to avoid version mismatch ("This is
1456 ;; Automake 1.15.1, but the definition used by this
1457 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1458 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1459 (invoke "autoconf")
1460 (invoke "aclocal")
1461 (invoke "automake" "-ac"))))))
1462 (inputs
1463 `(("libgcrypt" ,libgcrypt)
1464 ("linux-pam" ,linux-pam)
1465 ("openssh" ,openssh)
1466 ("dbus" ,dbus)
1467 ("gcr" ,gcr)))
1468 (native-inputs
1469 `(("pkg-config" ,pkg-config)
1470 ("glib" ,glib "bin")
1471 ("glib" ,glib) ; for m4 macros
1472 ("python" ,python-2) ;for tests
1473 ("intltool" ,intltool)
1474 ("autoconf" ,autoconf)
1475 ("automake" ,automake)
1476 ("libxslt" ,libxslt) ;for documentation
1477 ("docbook-xml" ,docbook-xml-4.2)
1478 ("docbook-xsl" ,docbook-xsl)))
1479 (home-page "https://www.gnome.org")
1480 (synopsis "Daemon to store passwords and encryption keys")
1481 (description
1482 "gnome-keyring is a program that keeps passwords and other secrets for
1483 users. It is run as a daemon in the session, similar to ssh-agent, and other
1484 applications locate it via an environment variable or D-Bus.
1485
1486 The program can manage several keyrings, each with its own master password,
1487 and there is also a session keyring which is never stored to disk, but
1488 forgotten when the session ends.")
1489 (license license:lgpl2.1+)))
1490
1491 (define-public evince
1492 (package
1493 (name "evince")
1494 (version "3.34.2")
1495 (source (origin
1496 (method url-fetch)
1497 (uri (string-append "mirror://gnome/sources/evince/"
1498 (version-major+minor version) "/"
1499 "evince-" version ".tar.xz"))
1500 (sha256
1501 (base32
1502 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
1503 (build-system glib-or-gtk-build-system)
1504 (arguments
1505 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1506 #:phases
1507 (modify-phases %standard-phases
1508 (add-before 'install 'skip-gtk-update-icon-cache
1509 ;; Don't create 'icon-theme.cache'.
1510 (lambda _
1511 (substitute* "data/Makefile"
1512 (("gtk-update-icon-cache") "true"))
1513 #t)))))
1514 (inputs
1515 `(("libarchive" ,libarchive)
1516 ("libgxps" ,libgxps)
1517 ("libspectre" ,libspectre)
1518 ("djvulibre" ,djvulibre)
1519 ("ghostscript" ,ghostscript)
1520 ("poppler" ,poppler)
1521 ("libtiff" ,libtiff)
1522 ;; TODO:
1523 ;; Build libkpathsea as a shared library for DVI support.
1524 ;; ("libkpathsea" ,texlive-bin)
1525 ("gnome-desktop" ,gnome-desktop)
1526 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1527 ("gspell" ,gspell)
1528 ("libgnome-keyring" ,libgnome-keyring)
1529 ("adwaita-icon-theme" ,adwaita-icon-theme)
1530 ("gdk-pixbuf" ,gdk-pixbuf)
1531 ("atk" ,atk)
1532 ("pango" ,pango)
1533 ("gtk+" ,gtk+)
1534 ("glib" ,glib)
1535 ("libxml2" ,libxml2)
1536 ("libsm" ,libsm)
1537 ("libice" ,libice)
1538 ("shared-mime-info" ,shared-mime-info)
1539 ("dconf" ,dconf)
1540 ("libcanberra" ,libcanberra)
1541 ("libsecret" ,libsecret)
1542
1543 ;; For tests.
1544 ("dogtail" ,python2-dogtail)))
1545 (native-inputs
1546 `(("itstool" ,itstool)
1547 ("intltool" ,intltool)
1548 ("glib" ,glib "bin")
1549 ("gobject-introspection" ,gobject-introspection)
1550 ("pkg-config" ,pkg-config)
1551 ("xmllint" ,libxml2)))
1552 (home-page
1553 "https://www.gnome.org/projects/evince/")
1554 (synopsis "GNOME's document viewer")
1555 (description
1556 "Evince is a document viewer for multiple document formats. It
1557 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1558 of Evince is to replace the multiple document viewers that exist
1559 on the GNOME Desktop with a single simple application.")
1560 (license license:gpl2+)))
1561
1562 (define-public gsettings-desktop-schemas
1563 (package
1564 (name "gsettings-desktop-schemas")
1565 (version "3.32.0")
1566 (source
1567 (origin
1568 (method url-fetch)
1569 (uri (string-append "mirror://gnome/sources/" name "/"
1570 (version-major+minor version) "/"
1571 name "-" version ".tar.xz"))
1572 (sha256
1573 (base32
1574 "0d8a6479vappgplq5crdr3ah0ykqcr3fw533wkx9v1a8lnrv8n9d"))))
1575 (build-system meson-build-system)
1576 (arguments
1577 '(#:phases (modify-phases %standard-phases
1578 (add-after 'unpack 'set-adwaita-theme-file-name
1579 (lambda* (#:key inputs #:allow-other-keys)
1580 ;; Provide the correct file name of the default GNOME
1581 ;; background, 'adwaita-timed.xml'.
1582 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1583 (substitute* (find-files "schemas"
1584 "\\.gschema\\.xml\\.in$")
1585 (("@datadir@/backgrounds/gnome")
1586 (string-append theme "/share/backgrounds/gnome")))
1587 #t))))))
1588 (inputs
1589 `(("glib" ,glib)
1590 ("gnome-backgrounds" ,gnome-backgrounds)))
1591 (native-inputs
1592 `(("intltool" ,intltool)
1593 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1594 ("gobject-introspection" ,gobject-introspection)
1595 ("pkg-config" ,pkg-config)))
1596 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1597 (synopsis
1598 "GNOME settings for various desktop components")
1599 (description
1600 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1601 for settings shared by various components of the GNOME desktop.")
1602 (license license:lgpl2.1+)))
1603
1604 (define-public icon-naming-utils
1605 (package
1606 (name "icon-naming-utils")
1607 (version "0.8.90")
1608 (source
1609 (origin
1610 (method url-fetch)
1611 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1612 version ".tar.bz2"))
1613 (sha256
1614 (base32
1615 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1616 (build-system gnu-build-system)
1617 (inputs
1618 `(("perl" ,perl)
1619 ("perl-xml-simple" ,perl-xml-simple)))
1620 (arguments
1621 '(#:phases
1622 (modify-phases %standard-phases
1623 (add-after 'install 'set-load-paths
1624 ;; Tell 'icon-name-mapping' where XML::Simple is.
1625 (lambda* (#:key outputs #:allow-other-keys)
1626 (let* ((out (assoc-ref outputs "out"))
1627 (prog (string-append out "/libexec/icon-name-mapping")))
1628 (wrap-program
1629 prog
1630 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1631 #t)))))
1632 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1633 (synopsis
1634 "Utility to implement the Freedesktop Icon Naming Specification")
1635 (description
1636 "To help with the transition to the Freedesktop Icon Naming
1637 Specification, the icon naming utility maps the icon names used by the
1638 GNOME and KDE desktops to the icon names proposed in the specification.")
1639 (license license:lgpl2.1+)))
1640
1641 (define-public gnome-icon-theme
1642 (package
1643 (name "gnome-icon-theme")
1644 (version "3.12.0")
1645 (source
1646 (origin
1647 (method url-fetch)
1648 (uri (string-append "mirror://gnome/sources/" name "/"
1649 (version-major+minor version) "/"
1650 name "-" version ".tar.xz"))
1651 (sha256
1652 (base32
1653 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1654 (build-system gnu-build-system)
1655 (arguments
1656 '(#:configure-flags
1657 ;; Don't create 'icon-theme.cache'.
1658 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1659 (true (string-append coreutils "/bin/true")))
1660 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1661 (native-inputs
1662 `(("icon-naming-utils" ,icon-naming-utils)
1663 ("intltool" ,intltool)
1664 ("pkg-config" ,pkg-config)))
1665 (home-page "https://wiki.gnome.org/Personalization")
1666 (synopsis "GNOME icon theme")
1667 (description "Icons for the GNOME desktop.")
1668 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1669
1670 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1671 (define-public adwaita-icon-theme
1672 (package (inherit gnome-icon-theme)
1673 (name "adwaita-icon-theme")
1674 (version "3.32.0")
1675 (source (origin
1676 (method url-fetch)
1677 (uri (string-append "mirror://gnome/sources/" name "/"
1678 (version-major+minor version) "/"
1679 name "-" version ".tar.xz"))
1680 (sha256
1681 (base32
1682 "11ij35na8nisvxx3qh527iz33h6z2q1a7iinqyp7p65v0zjbd3b9"))))
1683 (native-inputs
1684 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1685
1686 (define-public tango-icon-theme
1687 (package
1688 (name "tango-icon-theme")
1689 (version "0.8.90")
1690 (source (origin
1691 (method url-fetch)
1692 (uri (string-append "http://tango.freedesktop.org/releases/"
1693 "tango-icon-theme-" version ".tar.bz2"))
1694 (sha256
1695 (base32
1696 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1697 (build-system gnu-build-system)
1698 (native-inputs
1699 `(("icon-naming-utils" ,icon-naming-utils)
1700 ("intltool" ,intltool)
1701 ("imagemagick" ,imagemagick)
1702 ("pkg-config" ,pkg-config)))
1703 (home-page "http://tango-project.org/")
1704 (synopsis "Tango icon theme")
1705 (description "This is an icon theme that follows the Tango visual
1706 guidelines.")
1707 (license license:public-domain)))
1708
1709 (define-public shared-mime-info
1710 (package
1711 (name "shared-mime-info")
1712 (version "1.10")
1713 (source (origin
1714 (method url-fetch)
1715 (uri (string-append "https://freedesktop.org/~hadess/"
1716 "shared-mime-info-" version ".tar.xz"))
1717 (sha256
1718 (base32
1719 "1gxyvwym3xgpmp262gfn8jg5sla6k5hy6m6dmy6grgiq90xsh9f6"))))
1720 (build-system gnu-build-system)
1721 (arguments
1722 ;; The build system appears not to be parallel-safe.
1723 '(#:parallel-build? #f))
1724 (inputs
1725 `(("glib" ,glib)
1726 ("libxml2" ,libxml2)))
1727 (native-inputs
1728 `(("intltool" ,intltool)
1729 ("pkg-config" ,pkg-config)))
1730 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1731 (synopsis "Database of common MIME types")
1732 (description
1733 "The shared-mime-info package contains the core database of common types
1734 and the update-mime-database command used to extend it. It requires glib2 to
1735 be installed for building the update command. Additionally, it uses intltool
1736 for translations, though this is only a dependency for the maintainers. This
1737 database is translated at Transifex.")
1738 (license license:gpl2+)))
1739
1740 (define-public system-config-printer
1741 (package
1742 (name "system-config-printer")
1743 (version "1.5.12")
1744 (source
1745 (origin
1746 (method url-fetch)
1747 (uri (string-append
1748 "https://github.com/OpenPrinting/system-config-printer/releases/"
1749 "download/" version
1750 "/system-config-printer-" version ".tar.xz"))
1751 (sha256
1752 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1753 (build-system glib-or-gtk-build-system)
1754 (arguments
1755 `(#:imported-modules ((guix build python-build-system)
1756 ,@%glib-or-gtk-build-system-modules)
1757 #:phases
1758 (modify-phases %standard-phases
1759 (add-after 'unpack 'patch-Makefile.am
1760 (lambda _
1761 ;; The Makefile generates some scripts, so set a valid shebang
1762 (substitute* "Makefile.am"
1763 (("/bin/bash") (which "bash")))
1764 (delete-file "configure")
1765 #t))
1766 (add-after 'unpack 'patch-docbook-xml
1767 (lambda* (#:key inputs #:allow-other-keys)
1768 ;; Modify the man XML otherwise xmlto tries to access the network
1769 (substitute* "man/system-config-printer.xml"
1770 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1771 (string-append (assoc-ref inputs "docbook-xml")
1772 "/xml/dtd/docbook/")))
1773 #t))
1774 (add-after 'install 'wrap-for-python
1775 (@@ (guix build python-build-system) wrap))
1776 (add-after 'install 'wrap
1777 (lambda* (#:key outputs #:allow-other-keys)
1778 (let ((out (assoc-ref outputs "out"))
1779 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1780 (for-each
1781 (lambda (program)
1782 (wrap-program program
1783 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1784 (map (lambda (name)
1785 (string-append out "/bin/" name))
1786 '("system-config-printer"
1787 "system-config-printer-applet"
1788 "install-printerdriver"
1789 "scp-dbus-service"))))
1790 #t)))))
1791 (inputs
1792 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1793 ("gobject-introspection" ,gobject-introspection)
1794 ("python" ,python)
1795 ("cups" ,cups)
1796 ("python-dbus" ,python-dbus)
1797 ("python-pygobject" ,python-pygobject)
1798 ("python-pycups" ,python-pycups)
1799 ("python-requests" ,python-requests)
1800 ("python-pycairo" ,python-pycairo)
1801 ("libnotify" ,libnotify)
1802 ("packagekit" ,packagekit)))
1803 (native-inputs
1804 `(("pkg-config" ,pkg-config)
1805 ("desktop-file-utils" ,desktop-file-utils)
1806 ("glib" ,glib)
1807 ("autoconf" ,autoconf)
1808 ("automake" ,automake)
1809 ("intltool" ,intltool)
1810 ("xmlto" ,xmlto)
1811 ("docbook-xml" ,docbook-xml-4.1.2)
1812 ("docbook-xsl" ,docbook-xsl)
1813 ("libxml2" ,libxml2)))
1814 (home-page "https://github.com/zdohnal/system-config-printer")
1815 (synopsis "CUPS administration tool")
1816 (description
1817 "system-config-printer is a CUPS administration tool. It's written in
1818 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1819 configuring CUPS.")
1820 (license license:gpl2+)))
1821
1822 (define-public hicolor-icon-theme
1823 (package
1824 (name "hicolor-icon-theme")
1825 (version "0.17")
1826 (source
1827 (origin
1828 (method url-fetch)
1829 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
1830 "hicolor-icon-theme-" version ".tar.xz"))
1831 (sha256
1832 (base32
1833 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
1834 (build-system gnu-build-system)
1835 (arguments
1836 `(#:tests? #f)) ; no check target
1837 (home-page "https://icon-theme.freedesktop.org/releases/")
1838 (synopsis
1839 "Freedesktop icon theme")
1840 (description
1841 "Freedesktop icon theme.")
1842 (license license:gpl2)))
1843
1844 (define-public libnotify
1845 (package
1846 (name "libnotify")
1847 (version "0.7.7")
1848 (source
1849 (origin
1850 (method url-fetch)
1851 (uri (string-append "mirror://gnome/sources/" name "/"
1852 (version-major+minor version) "/"
1853 name "-" version ".tar.xz"))
1854 (sha256
1855 (base32
1856 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
1857 (build-system gnu-build-system)
1858 (arguments
1859 `(#:configure-flags '("--disable-static")))
1860 (propagated-inputs
1861 `(;; In Requires of libnotify.pc.
1862 ("gdk-pixbuf" ,gdk-pixbuf)
1863 ("glib" ,glib)))
1864 (inputs
1865 `(("gtk+" ,gtk+)
1866 ("libpng" ,libpng)))
1867 (native-inputs
1868 `(("pkg-config" ,pkg-config)
1869 ("glib" ,glib "bin")
1870 ("gobject-introspection" ,gobject-introspection)))
1871 (home-page "https://developer-next.gnome.org/libnotify/")
1872 (synopsis
1873 "GNOME desktop notification library")
1874 (description
1875 "Libnotify is a library that sends desktop notifications to a
1876 notification daemon, as defined in the Desktop Notifications spec. These
1877 notifications can be used to inform the user about an event or display
1878 some form of information without getting in the user's way.")
1879 (license license:lgpl2.1+)))
1880
1881 (define-public libpeas
1882 (package
1883 (name "libpeas")
1884 (version "1.24.1")
1885 (source
1886 (origin
1887 (method url-fetch)
1888 (uri (string-append "mirror://gnome/sources/" name "/"
1889 (version-major+minor version) "/"
1890 name "-" version ".tar.xz"))
1891 (sha256
1892 (base32
1893 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
1894 (build-system meson-build-system)
1895 (arguments
1896 '(#:phases
1897 (modify-phases %standard-phases
1898 (add-before 'check 'start-xserver
1899 (lambda* (#:key inputs #:allow-other-keys)
1900 (let ((xorg-server (assoc-ref inputs "xorg-server"))
1901 (disp ":1"))
1902 (setenv "DISPLAY" disp)
1903 ;; Tests require a running X server.
1904 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
1905 #t))))))
1906 (inputs
1907 `(("gtk+" ,gtk+)
1908 ("glade" ,glade3)
1909 ("python" ,python)
1910 ("python-pygobject" ,python-pygobject)))
1911 (native-inputs
1912 `(("pkg-config" ,pkg-config)
1913 ("gettext" ,gettext-minimal)
1914 ("glib:bin" ,glib "bin")
1915 ("gobject-introspection" ,gobject-introspection)
1916 ("xorg-server" ,xorg-server-for-tests)))
1917 (propagated-inputs
1918 ;; The .pc file "Requires" gobject-introspection.
1919 `(("gobject-introspection" ,gobject-introspection)))
1920 (home-page "https://wiki.gnome.org/Libpeas")
1921 (synopsis "GObject plugin system")
1922 (description
1923 "Libpeas is a gobject-based plugin engine, targeted at giving every
1924 application the chance to assume its own extensibility. It also has a set of
1925 features including, but not limited to: multiple extension points; on-demand
1926 (lazy) programming language support for C, Python and JS; simplicity of the
1927 API.")
1928 (license license:lgpl2.0+)))
1929
1930 (define-public gtkglext
1931 (package
1932 (name "gtkglext")
1933 (version "1.2.0")
1934 (source (origin
1935 (method url-fetch)
1936 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
1937 version "/gtkglext-" version ".tar.gz"))
1938 (sha256
1939 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
1940 (patches (search-patches
1941 "gtkglext-disable-disable-deprecated.patch"))))
1942 (build-system gnu-build-system)
1943 (arguments
1944 `(#:phases
1945 (modify-phases %standard-phases
1946 ;; Fix a collision between a local variable and a definition from
1947 ;; glibc's string.h.
1948 (add-after 'unpack 'fix-collision
1949 (lambda _
1950 (substitute* "gdk/gdkglshapes.c"
1951 ((" index") " triangle_index"))
1952 #t)))))
1953 (inputs `(("gtk+" ,gtk+-2)
1954 ("mesa" ,mesa)
1955 ("glu" ,glu)
1956 ("libx11" ,libx11)
1957 ("libxt" ,libxt)))
1958 (native-inputs `(("pkg-config" ,pkg-config)
1959 ("glib" ,glib "bin")))
1960 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
1961 (home-page "https://projects.gnome.org/gtkglext")
1962 (synopsis "OpenGL extension to GTK+")
1963 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
1964 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
1965 API add-ons to make GTK+ widgets OpenGL-capable.")
1966 (license license:lgpl2.1+)))
1967
1968 (define-public glade3
1969 (package
1970 (name "glade")
1971 (version "3.22.1")
1972 (source (origin
1973 (method url-fetch)
1974 (uri (string-append "mirror://gnome/sources/" name "/"
1975 (version-major+minor version) "/"
1976 name "-" version ".tar.xz"))
1977 (sha256
1978 (base32
1979 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
1980 (build-system glib-or-gtk-build-system)
1981 (arguments
1982 `(#:tests? #f ; needs X, GL, and software rendering
1983 #:phases
1984 (modify-phases %standard-phases
1985 (add-before 'configure 'fix-docbook
1986 (lambda* (#:key inputs #:allow-other-keys)
1987 (substitute* "man/Makefile.in"
1988 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1989 (string-append (assoc-ref inputs "docbook-xsl")
1990 "/xml/xsl/docbook-xsl-"
1991 ,(package-version docbook-xsl)
1992 "/manpages/docbook.xsl")))
1993 #t)))))
1994 (inputs
1995 `(("gtk+" ,gtk+)
1996 ("libxml2" ,libxml2)))
1997 (native-inputs
1998 `(("intltool" ,intltool)
1999 ("itstool" ,itstool)
2000 ("libxslt" ,libxslt) ;for xsltproc
2001 ("docbook-xml" ,docbook-xml-4.2)
2002 ("docbook-xsl" ,docbook-xsl)
2003 ("python" ,python-2)
2004 ("pkg-config" ,pkg-config)))
2005 (home-page "https://glade.gnome.org")
2006 (synopsis "GTK+ rapid application development tool")
2007 (description "Glade is a rapid application development (RAD) tool to
2008 enable quick & easy development of user interfaces for the GTK+ toolkit and
2009 the GNOME desktop environment.")
2010 (license license:lgpl2.0+)))
2011
2012 (define-public libcroco
2013 (package
2014 (name "libcroco")
2015 (version "0.6.13")
2016 (source (origin
2017 (method url-fetch)
2018 (uri (string-append "mirror://gnome/sources/" name "/"
2019 (version-major+minor version) "/"
2020 name "-" version ".tar.xz"))
2021 (sha256
2022 (base32
2023 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2024 (build-system gnu-build-system)
2025 (native-inputs
2026 `(("pkg-config" ,pkg-config)))
2027 (inputs
2028 `(("glib" ,glib)
2029 ("libxml2" ,libxml2)
2030 ("zlib" ,zlib)))
2031 (home-page "https://github.com/GNOME/libcroco")
2032 (synopsis "CSS2 parsing and manipulation library")
2033 (description
2034 "Libcroco is a standalone CSS2 parsing and manipulation library.
2035 The parser provides a low level event driven SAC-like API and a CSS object
2036 model like API. Libcroco provides a CSS2 selection engine and an experimental
2037 XML/CSS rendering engine.")
2038
2039 ;; LGPLv2.1-only.
2040 (license license:lgpl2.1)))
2041
2042 (define-public libgsf
2043 (package
2044 (name "libgsf")
2045 (version "1.14.46")
2046 (source (origin
2047 (method url-fetch)
2048 (uri (string-append "mirror://gnome/sources/" name "/"
2049 (version-major+minor version) "/"
2050 name "-" version ".tar.xz"))
2051 (sha256
2052 (base32
2053 "0bddmlzg719sjhlbzqlhb7chwk93qc7g68m2r9r8xz112jdradpa"))))
2054 (build-system gnu-build-system)
2055 (native-inputs
2056 `(("intltool" ,intltool)
2057 ("pkg-config" ,pkg-config)))
2058 (inputs
2059 `(("python" ,python)
2060 ("zlib" ,zlib)
2061 ("bzip2" ,bzip2)))
2062 (propagated-inputs
2063 `(("gdk-pixbuf" ,gdk-pixbuf)
2064 ("glib" ,glib)
2065 ("libxml2" ,libxml2)))
2066 (home-page "https://www.gnome.org/projects/libgsf")
2067 (synopsis "GNOME's Structured File Library")
2068 (description
2069 "Libgsf aims to provide an efficient extensible I/O abstraction for
2070 dealing with different structured file formats.")
2071
2072 ;; LGPLv2.1-only.
2073 (license license:lgpl2.1)))
2074
2075 (define-public librsvg
2076 (package
2077 (name "librsvg")
2078 (version "2.40.20")
2079 (source (origin
2080 (method url-fetch)
2081 (uri (string-append "mirror://gnome/sources/" name "/"
2082 (version-major+minor version) "/"
2083 name "-" version ".tar.xz"))
2084 (sha256
2085 (base32
2086 "0ay9himvw1l1swcf3h1312d2iqzfl65kpbfgiyfykgvq7cydvx6g"))))
2087 (build-system gnu-build-system)
2088 (arguments
2089 `(#:configure-flags
2090 (list "--disable-static"
2091 "--enable-vala") ; needed for e.g. gnome-mines
2092 #:phases
2093 (modify-phases %standard-phases
2094 (add-before 'configure 'pre-configure
2095 (lambda* (#:key inputs #:allow-other-keys)
2096 (substitute* "gdk-pixbuf-loader/Makefile.in"
2097 ;; By default the gdk-pixbuf loader is installed under
2098 ;; gdk-pixbuf's prefix. Work around that.
2099 (("gdk_pixbuf_moduledir = .*$")
2100 (string-append "gdk_pixbuf_moduledir = "
2101 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2102 "loaders\n"))
2103 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2104 (("gdk_pixbuf_cache_file = .*$")
2105 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2106 #t))
2107 (add-before 'check 'remove-failing-tests
2108 (lambda _
2109 (with-directory-excursion "tests/fixtures/reftests"
2110 (for-each delete-file
2111 '(;; This test fails on i686:
2112 "svg1.1/masking-path-04-b.svg"
2113 ;; This test fails on armhf:
2114 "svg1.1/masking-mask-01-b.svg"
2115 ;; This test fails on aarch64:
2116 "bugs/777834-empty-text-children.svg")))
2117 #t)))))
2118 (native-inputs
2119 `(("pkg-config" ,pkg-config)
2120 ("vala" ,vala)
2121 ("glib" ,glib "bin") ; glib-mkenums, etc.
2122 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2123 (inputs
2124 `(("pango" ,pango)
2125 ("libcroco" ,libcroco)
2126 ("bzip2" ,bzip2)
2127 ("libgsf" ,libgsf)
2128 ("libxml2" ,libxml2)))
2129 (propagated-inputs
2130 ;; librsvg-2.0.pc refers to all of that.
2131 `(("cairo" ,cairo)
2132 ("gdk-pixbuf" ,gdk-pixbuf)
2133 ("glib" ,glib)))
2134 (home-page "https://wiki.gnome.org/LibRsvg")
2135 (synopsis "Render SVG files using Cairo")
2136 (description
2137 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2138 library.")
2139 (license license:lgpl2.0+)))
2140
2141 (define* (computed-origin-method gexp-promise hash-algo hash
2142 #:optional (name "source")
2143 #:key (system (%current-system))
2144 (guile (default-guile)))
2145 "Return a derivation that executes the G-expression that results
2146 from forcing GEXP-PROMISE."
2147 (mlet %store-monad ((guile (package->derivation guile system)))
2148 (gexp->derivation (or name "computed-origin")
2149 (force gexp-promise)
2150 #:graft? #f ;nothing to graft
2151 #:system system
2152 #:guile-for-build guile)))
2153
2154 (define librsvg-next-source
2155 (let* ((version "2.46.3")
2156 (upstream-source (origin
2157 (method url-fetch)
2158 (uri (string-append "mirror://gnome/sources/librsvg/"
2159 (version-major+minor version) "/"
2160 "librsvg-" version ".tar.xz"))
2161 (sha256
2162 (base32
2163 "1s3a96i7f4pynjwxxvhysp4b6r7kyi8nasdxfyi62hc7gm34d3kn")))))
2164 (origin
2165 (method computed-origin-method)
2166 (file-name (string-append "librsvg-" version ".tar.xz"))
2167 (sha256 #f)
2168 (uri
2169 (delay
2170 (with-imported-modules '((guix build utils))
2171 #~(begin
2172 (use-modules (guix build utils))
2173 (set-path-environment-variable
2174 "PATH" '("bin")
2175 (list "/tmp"
2176 #+(canonical-package xz)
2177 #+(canonical-package gzip)
2178 #+(canonical-package tar)))
2179 (invoke "tar" "xvf" #+upstream-source)
2180 (with-directory-excursion (string-append "librsvg-" #$version)
2181 (for-each
2182 (lambda (crate)
2183 (delete-file-recursively (string-append "vendor/" (car crate)))
2184 (invoke "tar" "xvf" (cdr crate) "-C" "vendor"))
2185 '(("aho-corasick" . #+(package-source rust-aho-corasick-0.7))
2186 ;; alga 0.9
2187 ("approx" . #+(package-source rust-approx-0.3))
2188 ("arrayvec" . #+(package-source rust-arrayvec-0.4))
2189 ("atty" . #+(package-source rust-atty-0.2))
2190 ("autocfg" . #+(package-source rust-autocfg-0.1))
2191 ("bitflags" . #+(package-source rust-bitflags-1))
2192 ;; block 0.1
2193 ("bstr" . #+(package-source rust-bstr-0.2))
2194 ("byteorder" . #+(package-source rust-byteorder-1.3))
2195 ;; cairo-rs 0.7
2196 ;; cairo-sys-rs 0.9
2197 ("cast" . #+(package-source rust-cast-0.2))
2198 ("cfg-if" . #+(package-source rust-cfg-if-0.1))
2199 ("clap" . #+(package-source rust-clap-2))
2200 ("cloudabi" . #+(package-source rust-cloudabi-0.0))
2201 ("criterion" . #+(package-source rust-criterion-0.2))
2202 ("criterion-plot" . #+(package-source rust-criterion-plot-0.3))
2203 ("crossbeam-deque" . #+(package-source rust-crossbeam-deque-0.7))
2204 ("crossbeam-epoch" . #+(package-source rust-crossbeam-epoch-0.8))
2205 ("crossbeam-queue" . #+(package-source rust-crossbeam-queue-0.2))
2206 ("crossbeam-utils" . #+(package-source rust-crossbeam-utils-0.7))
2207 ;; cssparser 0.25
2208 ;; cssparser-macros 0.3
2209 ("csv" . #+(package-source rust-csv-1.1))
2210 ("csv-core" . #+(package-source rust-csv-core-0.1))
2211 ;; data-url 0.1
2212 ;; downcast-rs 1.0
2213 ("dtoa" . #+(package-source rust-dtoa-0.4))
2214 ;; dtoa-short 0.3
2215 ("either" . #+(package-source rust-either-1.5))
2216 ("encoding" . #+(package-source rust-encoding-0.2))
2217 ("encoding-index-japanese" . #+(package-source rust-encoding-index-japanese-1.20141219))
2218 ("encoding-index-korean" . #+(package-source rust-encoding-index-korean-1.20141219))
2219 ("encoding-index-simpchinese" . #+(package-source rust-encoding-index-simpchinese-1.20141219))
2220 ("encoding-index-singlebyte" . #+(package-source rust-encoding-index-singlebyte-1.20141219))
2221 ("encoding-index-tradchinese" . #+(package-source rust-encoding-index-tradchinese-1.20141219))
2222 ("encoding_index_tests" . #+(package-source rust-encoding-index-tests-0.1))
2223 ;; float-cmp 0.5
2224 ;; fragile 0.3
2225 ("fuchsia-cprng" . #+(package-source rust-fuchsia-cprng-0.1))
2226 ("futf" . #+(package-source rust-futf-0.1))
2227 ;; gdk-pixbuf 0.7
2228 ;; gdk-pixbuf-sys 0.9
2229 ("generic-array" . #+(package-source rust-generic-array-0.12))
2230 ;; gio 0.7
2231 ;; gio-sys 0.9
2232 ;; glib 0.8
2233 ;; glib-sys 0.9
2234 ;; gobject-sys 0.9
2235 ("idna" . #+(package-source rust-idna-0.2))
2236 ("itertools" . #+(package-source rust-itertools-0.8))
2237 ("itoa" . #+(package-source rust-itoa-0.4))
2238 ("language-tags" . #+(package-source rust-language-tags-0.2))
2239 ("lazy_static" . #+(package-source rust-lazy-static-1.3))
2240 ("libc" . #+(package-source rust-libc-0.2))
2241 ;; libm 0.1
2242 ;; locale_config 0.3
2243 ("log" . #+(package-source rust-log-0.4))
2244 ("mac" . #+(package-source rust-mac-0.1))
2245 ;; malloc_buf 0.0
2246 ;; markup5ever 0.9
2247 ("matches" . #+(package-source rust-matches-0.1))
2248 ;; matrixmultiply 0.2
2249 ("memchr" . #+(package-source rust-memchr-2.2))
2250 ("memoffset" . #+(package-source rust-memoffset-0.5))
2251 ;; nalgebra 0.18
2252 ("new_debug_unreachable" . #+(package-source rust-new-debug-unreachable-1.0))
2253 ("nodrop" . #+(package-source rust-nodrop-0.1))
2254 ("num-complex" . #+(package-source rust-num-complex-0.2))
2255 ("num-integer" . #+(package-source rust-num-integer-0.1))
2256 ;; num-rational 0.2
2257 ("num-traits" . #+(package-source rust-num-traits-0.2))
2258 ("num_cpus" . #+(package-source rust-num-cpus-1.10))
2259 ;; objc 0.2
2260 ;; objc-foundation 0.1
2261 ;; objc_id 0.1
2262 ;; pango 0.7
2263 ;; pango-sys 0.9
2264 ;; pangocairo 0.8
2265 ;; pangocairo-sys 0.10
2266 ("percent-encoding" . #+(package-source rust-percent-encoding-2.1))
2267 ("phf" . #+(package-source rust-phf-0.7))
2268 ("phf_codegen" . #+(package-source rust-phf-codegen-0.7))
2269 ("phf_generator" . #+(package-source rust-phf-generator-0.7))
2270 ("phf_shared" . #+(package-source rust-phf-shared-0.7))
2271 ("pkg-config" . #+(package-source rust-pkg-config-0.3))
2272 ("precomputed-hash" . #+(package-source rust-precomputed-hash-0.1))
2273 ("proc-macro2" . #+(package-source rust-proc-macro2-1.0))
2274 ;; procedural-masquerade 0.1
2275 ("quote" . #+(package-source rust-quote-1.0))
2276 ("rand" . #+(package-source rust-rand-0.6))
2277 ("rand_chacha" . #+(package-source rust-rand-chacha-0.1))
2278 ("rand_core-0.3.1" . #+(package-source rust-rand-core-0.3))
2279 ("rand_core" . #+(package-source rust-rand-core-0.4))
2280 ("rand_hc" . #+(package-source rust-rand-hc-0.1))
2281 ("rand_isaac" . #+(package-source rust-rand-isaac-0.1))
2282 ("rand_jitter" . #+(package-source rust-rand-jitter-0.1))
2283 ("rand_os" . #+(package-source rust-rand-os-0.1))
2284 ("rand_pcg" . #+(package-source rust-rand-pcg-0.1))
2285 ("rand_xorshift" . #+(package-source rust-rand-xorshift-0.1))
2286 ("rand_xoshiro" . #+(package-source rust-rand-xoshiro-0.1))
2287 ;; rawpointer 0.2
2288 ("rayon" . #+(package-source rust-rayon-1.3))
2289 ("rayon-core" . #+(package-source rust-rayon-core-1.7))
2290 ;; rctree 0.3
2291 ("rdrand" . #+(package-source rust-rdrand-0.4))
2292 ("regex" . #+(package-source rust-regex-1.3))
2293 ("regex-automata" . #+(package-source rust-regex-automata-0.1))
2294 ("regex-syntax" . #+(package-source rust-regex-syntax-0.6))
2295 ("rustc_version" . #+(package-source rust-rustc-version-0.2))
2296 ("ryu" . #+(package-source rust-ryu-1.0))
2297 ("same-file" . #+(package-source rust-same-file-1.0))
2298 ("scopeguard" . #+(package-source rust-scopeguard-1.0))
2299 ("semver" . #+(package-source rust-semver-0.9))
2300 ("semver-parser" . #+(package-source rust-semver-parser-0.7))
2301 ("serde" . #+(package-source rust-serde-1.0))
2302 ("serde_derive" . #+(package-source rust-serde-derive-1.0))
2303 ("serde_json" . #+(package-source rust-serde-json-1.0))
2304 ("siphasher" . #+(package-source rust-siphasher-0.2))
2305 ("smallvec" . #+(package-source rust-smallvec-0.6))
2306 ("string_cache" . #+(package-source rust-string-cache-0.7))
2307 ;("string_cache_codegen" . #+(package-source rust-string-cache-codegen-0.4))
2308 ("string_cache_shared" . #+(package-source rust-string-cache-shared-0.3))
2309 ("syn" . #+(package-source rust-syn-1.0))
2310 ("tendril" . #+(package-source rust-tendril-0.4))
2311 ("textwrap" . #+(package-source rust-textwrap-0.11))
2312 ("thread_local" . #+(package-source rust-thread-local-1.0))
2313 ("tinytemplate" . #+(package-source rust-tinytemplate-1.0))
2314 ("typenum" . #+(package-source rust-typenum-1.10))
2315 ("unicode-bidi" . #+(package-source rust-unicode-bidi-0.3))
2316 ("unicode-normalization" . #+(package-source rust-unicode-normalization-0.1))
2317 ("unicode-width" . #+(package-source rust-unicode-width-0.1))
2318 ("unicode-xid" . #+(package-source rust-unicode-xid-0.2))
2319 ("url" . #+(package-source rust-url-2.1))
2320 ("utf-8" . #+(package-source rust-utf-8-0.7))
2321 ("walkdir" . #+(package-source rust-walkdir-2.2))
2322 ("winapi" . #+(package-source rust-winapi-0.3))
2323 ("winapi-i686-pc-windows-gnu" . #+(package-source rust-winapi-i686-pc-windows-gnu-0.4))
2324 ("winapi-util" . #+(package-source rust-winapi-util-0.1))
2325 ("winapi-x86_64-pc-windows-gnu" . #+(package-source rust-winapi-x86-64-pc-windows-gnu-0.4))
2326 ;; xml-rs 0.8
2327 )))
2328 (format #t "Replacing vendored crates in the tarball and repacking ...~%")
2329 (force-output)
2330 (invoke "tar" "cfa" #$output
2331 ;; Avoid non-determinism in the archive. We set the
2332 ;; mtime of files in the archive to early 1980 because
2333 ;; the build process fails if the mtime of source
2334 ;; files is pre-1980, due to the creation of zip
2335 ;; archives.
2336 "--mtime=@315619200" ; 1980-01-02 UTC
2337 "--owner=root:0"
2338 "--group=root:0"
2339 "--sort=name"
2340 (string-append "librsvg-" #$version))
2341 #t)))))))
2342
2343 (define-public librsvg-next
2344 (package
2345 (name "librsvg")
2346 (version "2.46.3")
2347 (source librsvg-next-source)
2348 (build-system gnu-build-system)
2349 (arguments
2350 `(#:configure-flags
2351 (list "--disable-static"
2352 "--enable-vala") ; needed for e.g. gnome-mines
2353 #:make-flags '("CC=gcc")
2354 #:imported-modules ,%cargo-utils-modules ;for `generate-all-checksums'
2355 #:phases
2356 (modify-phases %standard-phases
2357 (add-after 'configure 'patch-cargo-checksums
2358 (lambda _
2359 (use-modules (guix build cargo-utils))
2360 (substitute* "librsvg/Cargo.toml"
2361 (("bitflags .*") "bitflags = \"1\"\n")) ; 1.2 is vendored
2362 (generate-all-checksums "vendor")
2363 (delete-file "Cargo.lock")
2364 (invoke "cargo" "generate-lockfile")))
2365 (add-before 'configure 'pre-configure
2366 (lambda* (#:key inputs #:allow-other-keys)
2367 (substitute* "gdk-pixbuf-loader/Makefile.in"
2368 ;; By default the gdk-pixbuf loader is installed under
2369 ;; gdk-pixbuf's prefix. Work around that.
2370 (("gdk_pixbuf_moduledir = .*$")
2371 (string-append "gdk_pixbuf_moduledir = "
2372 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2373 "loaders\n"))
2374 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2375 (("gdk_pixbuf_cache_file = .*$")
2376 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2377 #t))
2378 (add-before 'check 'remove-failing-tests
2379 (lambda _
2380 (with-directory-excursion "tests/fixtures/reftests"
2381 (for-each delete-file
2382 '(;; The images produced by these tests differ slightly
2383 ;; from their reference counterparts due to differences
2384 ;; in the build environment (missing fonts, etc). See
2385 ;; <tests/README.md> for details.
2386 ;; These fail on x86_64.
2387 "svg1.1/coords-viewattr-02-b.svg"
2388 "svg1.1/filters-composite-04-f.svg"
2389 "svg1.1/filters-image-01-b.svg"
2390 "svg1.1/filters-conv-02-f.svg"
2391 "svg1.1/filters-conv-04-f.svg"
2392 ;; This test fails on i686:
2393 "svg1.1/masking-path-04-b.svg"
2394 ;; This test fails on armhf:
2395 "svg1.1/masking-mask-01-b.svg"
2396 ;; This test fails on aarch64:
2397 "bugs/777834-empty-text-children.svg")))
2398 #t)))))
2399 (native-inputs
2400 `(("pkg-config" ,pkg-config)
2401 ;; This is the minimum supported Rust version in Librsvg 2.46.
2402 ("rust" ,rust-1.34)
2403 ("cargo" ,rust-1.34 "cargo")
2404 ("vala" ,vala)
2405 ("glib" ,glib "bin") ; glib-mkenums, etc.
2406 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2407 (inputs
2408 `(("pango" ,pango)
2409 ("libcroco" ,libcroco)
2410 ("bzip2" ,bzip2)
2411 ("libgsf" ,libgsf)
2412 ("libxml2" ,libxml2)))
2413 (propagated-inputs
2414 ;; librsvg-2.0.pc refers to all of that.
2415 `(("cairo" ,cairo)
2416 ("gdk-pixbuf" ,gdk-pixbuf)
2417 ("glib" ,glib)))
2418 (home-page "https://wiki.gnome.org/LibRsvg")
2419 (synopsis "Render SVG files using Cairo")
2420 (description
2421 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2422 library.")
2423 (license license:lgpl2.1+)))
2424
2425 (define-public libidl
2426 (package
2427 (name "libidl")
2428 (version "0.8.14")
2429 (source (origin
2430 (method url-fetch)
2431 (uri (string-append "mirror://gnome/sources/libIDL/"
2432 (version-major+minor version) "/"
2433 "libIDL-" version ".tar.bz2"))
2434 (sha256
2435 (base32
2436 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2437 (build-system gnu-build-system)
2438 (inputs `(("glib" ,glib)))
2439 (native-inputs
2440 `(("pkg-config" ,pkg-config)
2441 ("flex" ,flex)
2442 ("bison" ,bison)))
2443 (home-page "http://freecode.com/projects/libidl")
2444 (synopsis "Create trees of CORBA Interface Definition Language files")
2445 (description "Libidl is a library for creating trees of CORBA Interface
2446 Definition Language (idl) files, which is a specification for defining
2447 portable interfaces. libidl was initially written for orbit (the orb from the
2448 GNOME project, and the primary means of libidl distribution). However, the
2449 functionality was designed to be as reusable and portable as possible.")
2450 (properties `((upstream-name . "libIDL")))
2451 (license license:lgpl2.0+)))
2452
2453
2454 (define-public orbit2
2455 (package
2456 (name "orbit2")
2457 (version "2.14.19")
2458 (source (origin
2459 (method url-fetch)
2460 (uri (let ((upstream-name "ORBit2"))
2461 (string-append "mirror://gnome/sources/" upstream-name "/"
2462 (version-major+minor version) "/"
2463 upstream-name "-" version ".tar.bz2")))
2464 (sha256
2465 (base32
2466 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2467 (build-system gnu-build-system)
2468 (arguments
2469 `(#:configure-flags
2470 '(;; We don't need static libraries, plus they don't build reproducibly
2471 ;; (non-deterministic ordering of .o files in the archive.)
2472 "--disable-static"
2473
2474 ;; The programmer kindly gives us a hook to turn off deprecation
2475 ;; warnings ...
2476 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2477 ;; ... which they then completly ignore !!
2478 #:phases
2479 (modify-phases %standard-phases
2480 (add-before 'configure 'ignore-deprecations
2481 (lambda _
2482 (substitute* "linc2/src/Makefile.in"
2483 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2484 #t)))))
2485 (inputs `(("glib" ,glib)
2486 ("libidl" ,libidl)))
2487 (native-inputs
2488 `(("pkg-config" ,pkg-config)))
2489 (home-page "https://projects.gnome.org/orbit2/")
2490 (synopsis "CORBA 2.4-compliant Object Request Broker")
2491 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2492 featuring mature C, C++ and Python bindings.")
2493 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2494 ;; a version. SOME of the code files have licence notices for GPLv2+.
2495 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2496 (license license:gpl2+)
2497 (properties `((upstream-name . "ORBit2")))))
2498
2499
2500 (define-public libbonobo
2501 (package
2502 (name "libbonobo")
2503 (version "2.32.1")
2504 (source (origin
2505 (method url-fetch)
2506 (uri (string-append "mirror://gnome/sources/" name "/"
2507 (version-major+minor version)
2508 "/" name "-" version ".tar.bz2"))
2509 (sha256
2510 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2511 (patches (search-patches
2512 "libbonobo-activation-test-race.patch"))))
2513 (build-system gnu-build-system)
2514 (arguments
2515 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2516 `(#:configure-flags
2517 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2518 ;; ... which they then completly ignore !!
2519 #:phases
2520 (modify-phases %standard-phases
2521 (add-before 'configure 'ignore-deprecations
2522 (lambda _
2523 (substitute* "activation-server/Makefile.in"
2524 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2525 #t)))
2526
2527 ;; There's apparently a race condition between the server stub
2528 ;; generation and linking of the example under 'samples/echo' that can
2529 ;; lead do undefined references when building in parallel, as reported
2530 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2531 ;; Thus, disable parallel builds.
2532 #:parallel-build? #f))
2533 (inputs `(("popt" ,popt)
2534 ("libxml2" ,libxml2)))
2535 ;; The following are Required by the .pc file
2536 (propagated-inputs
2537 `(("glib" ,glib)
2538 ("orbit2" ,orbit2)))
2539 (native-inputs
2540 `(("intltool" ,intltool)
2541 ("pkg-config" ,pkg-config)
2542 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2543 ("flex" ,flex)
2544 ("bison" ,bison)))
2545 (home-page "https://developer.gnome.org/libbonobo/")
2546 (synopsis "Framework for creating reusable components for use in GNOME applications")
2547 (description "Bonobo is a framework for creating reusable components for
2548 use in GNOME applications, built on top of CORBA.")
2549 ;; Licence not explicitly stated. Source files contain no licence notices.
2550 ;; Tarball contains text of both GPLv2 and LGPLv2
2551 ;; GPLv2 covers both conditions
2552 (license license:gpl2+)))
2553
2554
2555 (define-public gconf
2556 (package
2557 (name "gconf")
2558 (version "3.2.6")
2559 (source (origin
2560 (method url-fetch)
2561 (uri
2562 (let ((upstream-name "GConf"))
2563 (string-append "mirror://gnome/sources/" upstream-name "/"
2564 (version-major+minor version) "/"
2565 upstream-name "-" version ".tar.xz")))
2566 (sha256
2567 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2568 (build-system gnu-build-system)
2569 (inputs `(("dbus-glib" ,dbus-glib)
2570 ("libxml2" ,libxml2)))
2571 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2572 ("orbit2" ,orbit2)))
2573 (native-inputs
2574 `(("intltool" ,intltool)
2575 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2576 ("pkg-config" ,pkg-config)))
2577 (home-page "https://projects.gnome.org/gconf/")
2578 (synopsis "Store application preferences")
2579 (description "Gconf is a system for storing application preferences. It
2580 is intended for user preferences; not arbitrary data storage.")
2581 (license license:lgpl2.0+)
2582 (properties '((upstream-name . "GConf")))))
2583
2584
2585 (define-public gnome-mime-data
2586 (package
2587 (name "gnome-mime-data")
2588 (version "2.18.0")
2589 (source (origin
2590 (method url-fetch)
2591 (uri (string-append "mirror://gnome/sources/" name "/"
2592 (version-major+minor version) "/"
2593 name "-" version ".tar.bz2"))
2594 (sha256
2595 (base32
2596 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2597 (build-system gnu-build-system)
2598 (native-inputs
2599 `(("perl" ,perl)
2600 ("intltool" ,intltool)))
2601 (arguments
2602 '(#:phases (modify-phases %standard-phases
2603 (add-after 'configure 'use-our-intltool
2604 (lambda _
2605 ;; Do not use the bundled intltool commands, which lack
2606 ;; the "dotless @INC" fixes of our 'intltool' package.
2607 (substitute* (find-files "." "^Makefile$")
2608 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2609 (string-append "INTLTOOL_" tool " = intltool-"
2610 (string-downcase tool) "\n")))
2611 #t)))))
2612 (home-page "https://www.gnome.org")
2613 (synopsis "Base MIME and Application database for GNOME")
2614 (description "GNOME Mime Data is a module which contains the base MIME
2615 and Application database for GNOME. The data stored by this module is
2616 designed to be accessed through the MIME functions in GnomeVFS.")
2617 (license license:gpl2+)))
2618
2619
2620 (define-public gnome-vfs
2621 (package
2622 (name "gnome-vfs")
2623 (version "2.24.4")
2624 (source (origin
2625 (method url-fetch)
2626 (uri (string-append "mirror://gnome/sources/" name "/"
2627 (version-major+minor version) "/"
2628 name "-" version ".tar.bz2"))
2629 (sha256
2630 (base32
2631 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2632 (build-system gnu-build-system)
2633 (arguments
2634 `(#:phases
2635 (modify-phases %standard-phases
2636 (add-before 'configure 'ignore-deprecations
2637 (lambda _
2638 (substitute* '("libgnomevfs/Makefile.in"
2639 "daemon/Makefile.in")
2640 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2641 #t))
2642 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2643 (lambda _
2644 (substitute* "test/test-async-cancel.c"
2645 (("EXIT_FAILURE") "77"))
2646 #t)))))
2647 (inputs `(("libxml2" ,libxml2)
2648 ("dbus-glib" ,dbus-glib)
2649 ("gconf" ,gconf)
2650 ("gnome-mime-data" ,gnome-mime-data)
2651 ("zlib" ,zlib)))
2652 (native-inputs
2653 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2654 ("intltool" ,intltool)
2655 ("pkg-config" ,pkg-config)))
2656 (home-page "https://developer.gnome.org/gnome-vfs/")
2657 (synopsis "Access files and folders in GNOME applications")
2658 (description
2659 "GnomeVFS is the core library used to access files and folders in GNOME
2660 applications. It provides a file system abstraction which allows applications
2661 to access local and remote files with a single consistent API.")
2662 (license license:lgpl2.0+)))
2663
2664
2665
2666 (define-public libgnome
2667 (package
2668 (name "libgnome")
2669 (version "2.32.1")
2670 (source (origin
2671 (method url-fetch)
2672 (uri (string-append "mirror://gnome/sources/" name "/"
2673 (version-major+minor version) "/"
2674 name "-" version ".tar.bz2"))
2675 (sha256
2676 (base32
2677 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2678 (patches (search-patches "libgnome-encoding.patch"))))
2679 (build-system gnu-build-system)
2680 (arguments
2681 `(#:phases
2682 (modify-phases %standard-phases
2683 (add-before 'configure 'enable-deprecated
2684 (lambda _
2685 (substitute* "libgnome/Makefile.in"
2686 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2687 #t)))))
2688 (inputs `(("libxml2" ,libxml2)))
2689 (native-inputs
2690 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2691 ("intltool" ,intltool)
2692 ("pkg-config" ,pkg-config)))
2693 ;; The following are listed as Required in the .pc file
2694 ;; (except for libcanberra -- which seems to be oversight on the part
2695 ;; of the upstream developers -- anything that links against libgnome,
2696 ;; must also link against libcanberra
2697 (propagated-inputs
2698 `(("libcanberra" ,libcanberra)
2699 ("libbonobo" ,libbonobo)
2700 ("gconf" ,gconf)
2701 ("gnome-vfs" ,gnome-vfs)
2702 ("popt" ,popt))) ;gnome-program.h includes popt.h
2703 (home-page "https://developer.gnome.org/libgnome/")
2704 (synopsis "Useful routines for building applications")
2705 (description "The libgnome library provides a number of useful routines
2706 for building modern applications, including session management, activation of
2707 files and URIs, and displaying help.")
2708 (license license:lgpl2.0+)))
2709
2710
2711 (define-public libart-lgpl
2712 (package
2713 (name "libart-lgpl")
2714 (version "2.3.21")
2715 (source (origin
2716 (method url-fetch)
2717 (uri (let ((upstream-name "libart_lgpl"))
2718 (string-append "mirror://gnome/sources/" upstream-name "/"
2719 (version-major+minor version) "/"
2720 upstream-name "-" version ".tar.bz2")))
2721 (sha256
2722 (base32
2723 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2724 (build-system gnu-build-system)
2725 (native-inputs
2726 `(("pkg-config" ,pkg-config)))
2727 (home-page "https://people.gnome.org/~mathieu/libart")
2728 (synopsis "2D drawing library")
2729 (description "Libart is a 2D drawing library intended as a
2730 high-quality vector-based 2D library with antialiasing and alpha composition.")
2731 (license license:lgpl2.0+)))
2732
2733
2734
2735 (define-public libgnomecanvas
2736 (package
2737 (name "libgnomecanvas")
2738 (version "2.30.3")
2739 (source (origin
2740 (method url-fetch)
2741 (uri (string-append "mirror://gnome/sources/" name "/"
2742 (version-major+minor version) "/"
2743 name "-" version ".tar.gz"))
2744 (sha256
2745 (base32
2746 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2747 (build-system gnu-build-system)
2748 ;; Mentioned as Required in the .pc file
2749 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2750 ("gtk+" ,gtk+-2)))
2751 (native-inputs
2752 `(("intltool" ,intltool)
2753 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2754 ("pkg-config" ,pkg-config)))
2755 (home-page "https://developer.gnome.org/libgnomecanvas/")
2756 (synopsis "Flexible widget for creating interactive structured graphics")
2757 (description "The GnomeCanvas widget provides a flexible widget for
2758 creating interactive structured graphics.")
2759 (license license:lgpl2.0+)))
2760
2761 (define-public libgnomecanvasmm
2762 (package
2763 (name "libgnomecanvasmm")
2764 (version "2.26.0")
2765 (source (origin
2766 (method url-fetch)
2767 (uri (string-append "mirror://gnome/sources/" name "/"
2768 (version-major+minor version) "/"
2769 name "-" version ".tar.bz2"))
2770 (sha256
2771 (base32
2772 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2773 (build-system gnu-build-system)
2774 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2775 (native-inputs
2776 `(("gtkmm-2" ,gtkmm-2)
2777 ("pkg-config" ,pkg-config)))
2778 (home-page "https://gtkmm.org")
2779 (synopsis "C++ bindings to the GNOME Canvas library")
2780 (description "C++ bindings to the GNOME Canvas library.")
2781 (license license:lgpl2.0+)))
2782
2783 (define-public libgnomeui
2784 (package
2785 (name "libgnomeui")
2786 (version "2.24.5")
2787 (source (origin
2788 (method url-fetch)
2789 (uri (string-append "mirror://gnome/sources/" name "/"
2790 (version-major+minor version) "/"
2791 name "-" version ".tar.bz2"))
2792 (patches (search-patches "libgnomeui-utf8.patch"))
2793 (sha256
2794 (base32
2795 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2796 (build-system gnu-build-system)
2797 ;; Mentioned as Required in the .pc file
2798 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2799 ("libgnome" ,libgnome)
2800 ("libgnomecanvas" ,libgnomecanvas)
2801 ("libgnome-keyring" ,libgnome-keyring)))
2802 (inputs `(("libjpeg" ,libjpeg)
2803 ("popt" ,popt)
2804 ("libbonobo" ,libbonobo)
2805 ("libxml2" ,libxml2)
2806 ("libglade" ,libglade)))
2807 (native-inputs
2808 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2809 ("intltool" ,intltool)
2810 ("pkg-config" ,pkg-config)))
2811 (home-page "https://developer.gnome.org/libgnomeui/")
2812 (synopsis "Additional widgets for applications")
2813 (description "The libgnomeui library provides additional widgets for
2814 applications. Many of the widgets from libgnomeui have already been
2815 ported to GTK+.")
2816 (license license:lgpl2.0+)))
2817
2818 (define-public libglade
2819 (package
2820 (name "libglade")
2821 (version "2.6.4")
2822 (source (origin
2823 (method url-fetch)
2824 (uri (string-append "mirror://gnome/sources/" name "/"
2825 (version-major+minor version) "/"
2826 name "-" version ".tar.bz2"))
2827 (sha256
2828 (base32
2829 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2830 (build-system gnu-build-system)
2831 (inputs
2832 `(("python" ,python))) ;; needed for the optional libglade-convert program
2833 (propagated-inputs
2834 `(("gtk+-2" ,gtk+-2)
2835 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2836 (native-inputs
2837 `(("pkg-config" ,pkg-config)))
2838 (home-page "https://developer.gnome.org/libglade")
2839 (synopsis "Load glade interfaces and access the glade built widgets")
2840 (description "Libglade is a library that provides interfaces for loading
2841 graphical interfaces described in glade files and for accessing the
2842 widgets built in the loading process.")
2843 (license license:gpl2+))) ; This is correct. GPL not LGPL
2844
2845 (define-public libgnomeprint
2846 ;; This library has been deprecated since 2006; see
2847 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2848 (package
2849 (name "libgnomeprint")
2850 (version "2.18.8")
2851 (source (origin
2852 (method url-fetch)
2853 (uri (string-append "mirror://gnome/sources/" name "/"
2854 (version-major+minor version) "/"
2855 name "-" version ".tar.bz2"))
2856 (sha256
2857 (base32
2858 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2859 (build-system gnu-build-system)
2860 (inputs
2861 `(("popt" ,popt)
2862 ("libart-lgpl" ,libart-lgpl)
2863 ("gtk+" ,gtk+-2)
2864 ("libxml2" ,libxml2)))
2865 (native-inputs
2866 `(("intltool" ,intltool)
2867 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2868 ("pkg-config" ,pkg-config)))
2869 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2870 (synopsis "Printing framework for GNOME")
2871 (description
2872 "GNOME-print was a printing framework for GNOME. It has been deprecated
2873 since ca. 2006, when GTK+ itself incorporated printing support.")
2874 (license license:lgpl2.0+)))
2875
2876
2877 (define-public libgnomeprintui
2878 ;; Deprecated; see libgnomeprint.
2879 (package
2880 (name "libgnomeprintui")
2881 (version "2.18.6")
2882 (source (origin
2883 (method url-fetch)
2884 (uri (string-append "mirror://gnome/sources/" name "/"
2885 (version-major+minor version) "/"
2886 name "-" version ".tar.bz2"))
2887 (sha256
2888 (base32
2889 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2890 (build-system gnu-build-system)
2891 ;; Mentioned as Required in the .pc file
2892 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2893 (inputs `(("gtk+" ,gtk+-2)
2894 ("glib" ,glib)
2895 ("gnome-icon-theme" ,gnome-icon-theme)
2896 ("libgnomecanvas" ,libgnomecanvas)
2897 ("libxml2" ,libxml2)))
2898 (native-inputs
2899 `(("intltool" ,intltool)
2900 ("pkg-config" ,pkg-config)))
2901 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2902 (synopsis "Printing framework for GNOME")
2903 (description (package-description libgnomeprint))
2904 (license license:lgpl2.0+)))
2905
2906 (define-public libbonoboui
2907 (package
2908 (name "libbonoboui")
2909 (version "2.24.5")
2910 (source (origin
2911 (method url-fetch)
2912 (uri (string-append "mirror://gnome/sources/" name "/"
2913 (version-major+minor version) "/"
2914 name "-" version ".tar.bz2"))
2915 (sha256
2916 (base32
2917 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2918 (build-system gnu-build-system)
2919 (arguments
2920 `(#:phases
2921 (modify-phases %standard-phases
2922 (add-before 'check 'start-xserver
2923 (lambda* (#:key inputs #:allow-other-keys)
2924 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2925 (disp ":1"))
2926
2927 (setenv "HOME" (getcwd))
2928 (setenv "DISPLAY" disp)
2929 ;; There must be a running X server and make check doesn't start one.
2930 ;; Therefore we must do it.
2931 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2932 ;; Mentioned as Required by the .pc file
2933 (propagated-inputs `(("libxml2" ,libxml2)))
2934 (inputs
2935 `(("popt" ,popt)
2936 ("pangox-compat" ,pangox-compat)
2937 ("libgnome" ,libgnome)
2938 ("libgnomecanvas" ,libgnomecanvas)
2939 ("libglade" ,libglade)))
2940 (native-inputs
2941 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2942 ("intltool" ,intltool)
2943 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2944 ("pkg-config" ,pkg-config)))
2945 (home-page "https://developer.gnome.org/libbonoboui/")
2946 (synopsis "Some user interface controls using Bonobo")
2947 (description "The Bonobo UI library provides a number of user interface
2948 controls using the Bonobo component framework.")
2949 (license license:lgpl2.0+)))
2950
2951 (define-public libwnck
2952 (package
2953 (name "libwnck")
2954 (version "3.32.0")
2955 (source (origin
2956 (method url-fetch)
2957 (uri (string-append "mirror://gnome/sources/" name "/"
2958 (version-major+minor version) "/"
2959 name "-" version ".tar.xz"))
2960 (sha256
2961 (base32
2962 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2963 (build-system meson-build-system)
2964 (native-inputs
2965 `(("pkg-config" ,pkg-config)
2966 ("glib" ,glib "bin") ; for glib-mkenums
2967 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
2968 ("intltool" ,intltool)))
2969 (propagated-inputs
2970 `(("gtk+" ,gtk+)
2971 ("libxres" ,libxres)
2972 ("startup-notification" ,startup-notification)))
2973 (home-page "https://developer.gnome.org/libwnck/")
2974 (synopsis "Window Navigator Construction Kit")
2975 (description
2976 "Libwnck is the Window Navigator Construction Kit, a library for use in
2977 writing pagers, tasklists, and more generally applications that are dealing
2978 with window management. It tries hard to respect the Extended Window Manager
2979 Hints specification (EWMH).")
2980 (license license:lgpl2.0+)))
2981
2982 ;; stable version for gtk2, required by xfwm4.
2983 (define-public libwnck-2
2984 (package (inherit libwnck)
2985 (name "libwnck")
2986 (version "2.30.7")
2987 (source (origin
2988 (method url-fetch)
2989 (uri (string-append "mirror://gnome/sources/" name "/"
2990 (version-major+minor version) "/"
2991 name "-" version ".tar.xz"))
2992 (sha256
2993 (base32
2994 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
2995 (build-system gnu-build-system)
2996 (native-inputs
2997 `(("pkg-config" ,pkg-config)
2998 ("intltool" ,intltool)))
2999 (propagated-inputs
3000 `(("gtk+" ,gtk+-2)
3001 ("libxres" ,libxres)
3002 ("startup-notification" ,startup-notification)))))
3003
3004 (define-public goffice
3005 (package
3006 (name "goffice")
3007 (version "0.10.46")
3008 (source (origin
3009 (method url-fetch)
3010 (uri (string-append "mirror://gnome/sources/goffice/"
3011 (version-major+minor version) "/"
3012 "goffice-" version ".tar.xz"))
3013 (sha256
3014 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
3015 (build-system gnu-build-system)
3016 (outputs '("out"
3017 "doc")) ; 4.0 MiB of gtk-doc
3018 (arguments
3019 '(#:configure-flags (list (string-append "--with-html-dir="
3020 (assoc-ref %outputs "doc")
3021 "/share/gtk-doc/html"))))
3022 (inputs
3023 `(("gtk+" ,gtk+)
3024 ("libgsf" ,libgsf)
3025 ("librsvg" ,librsvg)
3026 ("libxslt" ,libxslt)
3027 ("libxml2" ,libxml2)))
3028 (native-inputs
3029 `(("intltool" ,intltool)
3030 ("glib" ,glib "bin")
3031 ("pkg-config" ,pkg-config)))
3032 (home-page "https://developer.gnome.org/goffice/")
3033 (synopsis "Document-centric objects and utilities")
3034 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3035 (license
3036 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3037 ;; Note: NOT LGPL
3038 (list license:gpl2 license:gpl3))))
3039
3040 (define-public goffice-0.8
3041 (package (inherit goffice)
3042 (version "0.8.17")
3043 (source (origin
3044 (method url-fetch)
3045 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3046 (version-major+minor version) "/"
3047 (package-name goffice) "-" version ".tar.xz"))
3048 (sha256
3049 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3050 (arguments
3051 `(#:phases
3052 (modify-phases %standard-phases
3053 (add-after 'unpack 'fix-pcre-check
3054 (lambda _
3055 ;; Only glib.h can be included directly. See
3056 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3057 (substitute* "configure"
3058 (("glib/gregex\\.h") "glib.h")) #t)))
3059
3060 ,@(package-arguments goffice)))
3061 (propagated-inputs
3062 ;; libgoffice-0.8.pc mentions libgsf-1
3063 `(("libgsf" ,libgsf)))
3064 (inputs
3065 `(("gtk" ,gtk+-2)
3066 ,@(alist-delete "gtk" (package-inputs goffice))))))
3067
3068 (define-public gnumeric
3069 (package
3070 (name "gnumeric")
3071 (version "1.12.46")
3072 (source (origin
3073 (method url-fetch)
3074 (uri (string-append "mirror://gnome/sources/gnumeric/"
3075 (version-major+minor version) "/"
3076 "gnumeric-" version ".tar.xz"))
3077 (sha256
3078 (base32
3079 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3080 (build-system glib-or-gtk-build-system)
3081 (arguments
3082 `(;; The gnumeric developers don't worry much about failing tests.
3083 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3084 #:tests? #f
3085 #:phases
3086 (modify-phases %standard-phases
3087 (add-before
3088 'configure 'pre-conf
3089 (lambda* (#:key outputs #:allow-other-keys)
3090 ;; Make install tries to write into the directory of goffice
3091 ;; I am informed that this only affects the possibility to embed a
3092 ;; spreadsheet inside an Abiword document. So presumably when we
3093 ;; package Abiword we'll have to refer it to this directory.
3094 (substitute* "configure"
3095 (("^GOFFICE_PLUGINS_DIR=.*")
3096 (string-append "GOFFICE_PLUGINS_DIR="
3097 (assoc-ref outputs "out")
3098 "/goffice/plugins"))))))))
3099 (inputs
3100 `(("glib" ,glib)
3101 ("gtk+" ,gtk+)
3102 ("goffice" ,goffice)
3103 ("libgsf" ,libgsf)
3104 ("librsvg" ,librsvg)
3105 ("libxml2" ,libxml2)
3106 ("libxslt" ,libxslt)
3107 ("python" ,python-2)
3108 ("python2-pygobject" ,python2-pygobject)
3109 ("zlib" ,zlib)))
3110 (native-inputs
3111 `(("bison" ,bison)
3112 ("docbook-xml" ,docbook-xml)
3113 ("intltool" ,intltool)
3114 ("itstool" ,itstool/fixed) ;see <https://bugs.gnu.org/37468>
3115 ("glib:bin" ,glib "bin")
3116 ("pkg-config" ,pkg-config)))
3117 (home-page "http://www.gnumeric.org")
3118 (synopsis "Spreadsheet application")
3119 (description
3120 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3121 interoperable with other spreadsheet applications. It has a vast array of
3122 features beyond typical spreadsheet functionality, such as support for linear
3123 and non-linear solvers, statistical analysis, and telecommunication
3124 engineering.")
3125 (license
3126 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3127 (list license:gpl2 license:gpl3))))
3128
3129 (define-public gnome-themes-standard
3130 (package
3131 (name "gnome-themes-standard")
3132 (version "3.22.3")
3133 (source
3134 (origin
3135 (method url-fetch)
3136 (uri (string-append "mirror://gnome/sources/" name "/"
3137 (version-major+minor version) "/" name "-"
3138 version ".tar.xz"))
3139 (sha256
3140 (base32
3141 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3142 (build-system gnu-build-system)
3143 (arguments
3144 '(#:configure-flags
3145 ;; Don't create 'icon-theme.cache'.
3146 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3147 (true (string-append coreutils "/bin/true")))
3148 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3149 (inputs
3150 `(("gtk+" ,gtk+)
3151 ("gtk+-2" ,gtk+-2)
3152 ("librsvg" ,librsvg)
3153 ("libxml2" ,libxml2)
3154 ("glib" ,glib)))
3155 (native-inputs
3156 `(("intltool" ,intltool)
3157 ("glib:bin" ,glib "bin")
3158 ("pkg-config" ,pkg-config)))
3159 (home-page "https://launchpad.net/gnome-themes-standard")
3160 (synopsis "Default GNOME 3 themes")
3161 (description
3162 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3163 (license license:lgpl2.1+)))
3164
3165 (define-public seahorse
3166 (package
3167 (name "seahorse")
3168 (version "3.32.2")
3169 (source
3170 (origin
3171 (method url-fetch)
3172 (uri (string-append "mirror://gnome/sources/" name "/"
3173 (version-major+minor version) "/" name "-"
3174 version ".tar.xz"))
3175 (sha256
3176 (base32
3177 "0d8zdzmlz7fjv9xl20zl4ckidf465mvdjnbpxy3k08y9iw423q4x"))
3178 (patches (search-patches
3179 "seahorse-gkr-use-0-on-empty-flags.patch"))))
3180 (build-system meson-build-system)
3181 (arguments
3182 '(#:glib-or-gtk? #t
3183 #:phases
3184 (modify-phases %standard-phases
3185 (add-after 'unpack 'skip-gtk-update-icon-cache
3186 ;; Don't create 'icon-theme.cache'.
3187 (lambda _
3188 (substitute* "build-aux/meson_post_install.py"
3189 (("gtk-update-icon-cache") "true"))
3190 #t)))))
3191 (inputs
3192 `(("gtk+" ,gtk+)
3193 ("gcr" ,gcr)
3194 ("gnupg" ,gnupg)
3195 ("gpgme" ,gpgme)
3196 ("openldap" ,openldap)
3197 ("openssh" ,openssh)
3198 ("avahi" ,avahi)
3199 ("libpwquality" ,libpwquality)
3200 ("libsecret" ,libsecret)
3201 ("libsoup" ,libsoup)))
3202 (native-inputs
3203 `(("gettext" ,gettext-minimal)
3204 ("glib:bin" ,glib "bin")
3205 ("itstool" ,itstool)
3206 ("pkg-config" ,pkg-config)
3207 ("vala" ,vala)
3208 ("xmllint" ,libxml2)))
3209 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3210 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3211 (description
3212 "Seahorse is a GNOME application for managing encryption keys and
3213 passwords in the GNOME keyring.")
3214 (license license:gpl2+)))
3215
3216 (define-public vala
3217 (package
3218 (name "vala")
3219 (version "0.44.5")
3220 (source (origin
3221 (method url-fetch)
3222 (uri (string-append "mirror://gnome/sources/" name "/"
3223 (version-major+minor version) "/"
3224 name "-" version ".tar.xz"))
3225 (sha256
3226 (base32
3227 "0zy2kfcvhikczfzhk5l7pkw6mvn3d6vw8cv7g08iah85p22q33xv"))))
3228 (build-system gnu-build-system)
3229 (arguments
3230 '(#:phases
3231 (modify-phases %standard-phases
3232 (add-before 'check 'pre-check
3233 (lambda _
3234 (setenv "CC" "gcc")
3235 (substitute* "valadoc/tests/testrunner.sh"
3236 (("export PKG_CONFIG_PATH=" m)
3237 (string-append m "$PKG_CONFIG_PATH:")))
3238 ;; For missing '/etc/machine-id'.
3239 (setenv "DBUS_FATAL_WARNINGS" "0")
3240 #t)))))
3241 (native-inputs
3242 `(("pkg-config" ,pkg-config)
3243 ("flex" ,flex)
3244 ("bison" ,bison)
3245 ("xsltproc" ,libxslt)
3246 ("dbus" ,dbus) ; for dbus tests
3247 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3248 (inputs
3249 `(("graphviz" ,graphviz)))
3250 (propagated-inputs
3251 `(("glib" ,glib))) ; required by libvala-0.40.pc
3252 (home-page "https://live.gnome.org/Vala/")
3253 (synopsis "Compiler for the GObject type system")
3254 (description
3255 "Vala is a programming language that aims to bring modern programming
3256 language features to GNOME developers without imposing any additional runtime
3257 requirements and without using a different ABI compared to applications and
3258 libraries written in C.")
3259 (license license:lgpl2.1+)))
3260
3261 (define-public vte
3262 (package
3263 (name "vte")
3264 (version "0.58.3")
3265 (source (origin
3266 (method url-fetch)
3267 (uri (string-append "mirror://gnome/sources/vte/"
3268 (version-major+minor version) "/"
3269 "vte-" version ".tar.xz"))
3270 (sha256
3271 (base32
3272 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3273 (build-system meson-build-system)
3274 (native-inputs
3275 `(("pkg-config" ,pkg-config)
3276 ("intltool" ,intltool)
3277 ("vala" ,vala)
3278 ("gobject-introspection" ,gobject-introspection)
3279 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3280 ("gperf" ,gperf)
3281 ("xmllint" ,libxml2)))
3282 (propagated-inputs
3283 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3284 ("gnutls" ,gnutls) ; ditto
3285 ("pcre2" ,pcre2))) ; ditto
3286 (home-page "https://www.gnome.org/")
3287 (synopsis "Virtual Terminal Emulator")
3288 (description
3289 "VTE is a library (libvte) implementing a terminal emulator widget for
3290 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3291 gnome-terminal, but can also be used to embed a console/terminal in games,
3292 editors, IDEs, etc.")
3293 (license license:lgpl2.1+)))
3294
3295 (define-public vte-ng
3296 (package
3297 (inherit vte)
3298 (name "vte-ng")
3299 (version "0.58.2.a")
3300 (home-page "https://github.com/thestinger/vte-ng")
3301 (source (origin
3302 (method git-fetch)
3303 (uri (git-reference (url home-page) (commit version)))
3304 (file-name (git-file-name name version))
3305 (sha256
3306 (base32
3307 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3308 (build-system meson-build-system)
3309 (native-inputs
3310 `(("gtk-doc" ,gtk-doc)
3311 ,@(package-native-inputs vte)))
3312 (arguments
3313 `(#:configure-flags '("-Ddocs=true")))
3314 (synopsis "Enhanced VTE terminal widget")
3315 (description
3316 "VTE is a library (libvte) implementing a terminal emulator widget for
3317 GTK+, this fork provides additional functions exposed for keyboard text
3318 selection and URL hints.")))
3319
3320 ;; provides vte 2.90, required for some terminal emulators
3321 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3322 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3323 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3324 ;; pantheon-terminal, roxterm are not currently packaged
3325 (define-public vte-0.36
3326 (package (inherit vte)
3327 (name "vte")
3328 (version "0.36.5")
3329 (source (origin
3330 (method url-fetch)
3331 (uri (string-append "mirror://gnome/sources/" name "/"
3332 (version-major+minor version) "/"
3333 name "-" version ".tar.xz"))
3334 (sha256
3335 (base32
3336 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3337 (propagated-inputs
3338 `(("gtk" ,gtk+)
3339 ("ncurses" ,ncurses)))))
3340
3341 ;; stable version for gtk2, required by xfce4-terminal.
3342 (define-public vte/gtk+-2
3343 (package (inherit vte)
3344 (name "vte")
3345 (version "0.28.2")
3346 (source (origin
3347 (method url-fetch)
3348 (uri (string-append "mirror://gnome/sources/" name "/"
3349 (version-major+minor version) "/"
3350 name "-" version ".tar.xz"))
3351 (sha256
3352 (base32
3353 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3354 (patches (search-patches
3355 "vte-CVE-2012-2738-pt1.patch"
3356 "vte-CVE-2012-2738-pt2.patch"))))
3357 (build-system gnu-build-system)
3358 (arguments
3359 '(#:configure-flags '("--disable-python")))
3360 (native-inputs
3361 `(("pkg-config" ,pkg-config)
3362 ("intltool" ,intltool)
3363 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3364 (propagated-inputs
3365 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3366 ("ncurses" ,ncurses))))) ; required by libvte.la
3367
3368 (define-public vinagre
3369 (package
3370 (name "vinagre")
3371 (version "3.22.0")
3372 (source (origin
3373 (method url-fetch)
3374 (uri (string-append "mirror://gnome/sources/" name "/"
3375 (version-major+minor version) "/"
3376 name "-" version ".tar.xz"))
3377 (patches (search-patches "vinagre-newer-freerdp.patch"
3378 "vinagre-newer-rdp-parameters.patch"))
3379 (sha256
3380 (base32
3381 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3382 (build-system glib-or-gtk-build-system)
3383 (arguments
3384 ;; Disable -Werror and such, to avoid build failures on compilation
3385 ;; warnings.
3386 '(#:configure-flags '("--enable-compile-warnings=minimum")
3387 #:phases
3388 (modify-phases %standard-phases
3389 (add-before 'install 'skip-gtk-update-icon-cache
3390 (lambda _
3391 ;; Don't create 'icon-theme.cache'
3392 (substitute* (find-files "." "^Makefile$")
3393 (("gtk-update-icon-cache") (which "true")))
3394 #t))
3395 (add-after 'unpack 'patch-configure
3396 (lambda _
3397 (substitute* "configure"
3398 (("freerdp") "freerdp2"))
3399 #t)))))
3400 (native-inputs
3401 `(("pkg-config" ,pkg-config)
3402 ("intltool" ,intltool)
3403 ("itstool" ,itstool)
3404 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3405 (inputs
3406 `(("libxml2" ,libxml2)
3407 ("gtk-vnc" ,gtk-vnc)
3408 ("gnome-keyring" ,gnome-keyring)
3409 ("libsecret" ,libsecret)
3410 ("freerdp" ,freerdp)
3411 ("spice" ,spice)
3412 ("spice-gtk" ,spice-gtk)
3413 ("telepathy-glib" ,telepathy-glib)
3414 ("vte" ,vte)))
3415 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3416 (synopsis "Remote desktop viewer for GNOME")
3417 (description "Vinagre is a remote display client supporting the VNC, SPICE
3418 and RDP protocols.")
3419 (license license:gpl3+)))
3420
3421 (define-public dconf
3422 (package
3423 (name "dconf")
3424 (version "0.32.0")
3425 (source (origin
3426 (method url-fetch)
3427 (uri (string-append
3428 "mirror://gnome/sources/" name "/"
3429 (version-major+minor version) "/"
3430 name "-" version ".tar.xz"))
3431 (sha256
3432 (base32
3433 "1azz4hb9z76yxn34yrrsiib3iqz5z4vpwn5q7cncp55w365ygg38"))))
3434 (build-system meson-build-system)
3435 (propagated-inputs
3436 ;; In Requires of dconf.pc.
3437 `(("glib" ,glib)))
3438 (inputs
3439 `(("gtk+" ,gtk+)
3440 ("dbus" ,dbus)))
3441 (native-inputs
3442 `(("bash-completion" ,bash-completion)
3443 ("libxslt" ,libxslt) ;for xsltproc
3444 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3445 ("docbook-xml" ,docbook-xml-4.2)
3446 ("docbook-xsl" ,docbook-xsl)
3447 ("glib:bin" ,glib "bin")
3448 ("gtk-doc" ,gtk-doc)
3449 ("pkg-config" ,pkg-config)
3450 ("vala" ,vala)))
3451 (arguments
3452 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3453 ; or /etc/machine-id.
3454 #:glib-or-gtk? #t
3455 #:configure-flags '("-Denable-gtk-doc=true")))
3456 (home-page "https://developer.gnome.org/dconf")
3457 (synopsis "Low-level GNOME configuration system")
3458 (description "Dconf is a low-level configuration system. Its main purpose
3459 is to provide a backend to GSettings on platforms that don't already have
3460 configuration storage systems.")
3461 (license license:lgpl2.1+)))
3462
3463 (define-public json-glib
3464 (package
3465 (name "json-glib")
3466 (version "1.4.4")
3467 (source (origin
3468 (method url-fetch)
3469 (uri (string-append "mirror://gnome/sources/" name "/"
3470 (version-major+minor version) "/"
3471 name "-" version ".tar.xz"))
3472 (sha256
3473 (base32
3474 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3475 (build-system meson-build-system)
3476 (native-inputs
3477 `(("gettext" ,gettext-minimal)
3478 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3479 ("gobject-introspection" ,gobject-introspection)
3480 ("pkg-config" ,pkg-config)))
3481 (propagated-inputs
3482 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3483 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3484 (synopsis "Compiler for the GObject type system")
3485 (description
3486 "JSON-GLib is a C library based on GLib providing serialization and
3487 deserialization support for the JavaScript Object Notation (JSON) format
3488 described by RFC 4627. It provides parser and generator GObject classes and
3489 various wrappers for the complex data types employed by JSON, such as arrays
3490 and objects.")
3491 (license license:lgpl2.1+)))
3492
3493 (define-public libxklavier
3494 (package
3495 (name "libxklavier")
3496 (version "5.4")
3497 (source (origin
3498 ;; Note: There's no tarball at ftp.gnome.org for this version.
3499 (method git-fetch)
3500 (uri (git-reference
3501 (url "https://anongit.freedesktop.org/git/libxklavier")
3502 (commit (string-append "libxklavier-" version))))
3503 (sha256
3504 (base32
3505 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3506 (file-name (git-file-name name version))))
3507 (build-system gnu-build-system)
3508 (arguments
3509 '(#:phases
3510 (modify-phases %standard-phases
3511 (add-after 'unpack 'no-configure
3512 (lambda* _
3513 (setenv "NOCONFIGURE" "1")
3514 #t)))
3515 #:configure-flags
3516 (list (string-append "--with-xkb-base="
3517 (assoc-ref %build-inputs "xkeyboard-config")
3518 "/share/X11/xkb")
3519 "--disable-xmodmap-support")))
3520 (native-inputs
3521 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3522 ("gobject-introspection" ,gobject-introspection)
3523 ("pkg-config" ,pkg-config)
3524 ("gtk-doc" ,gtk-doc)
3525 ("intltool" ,intltool)
3526 ("which" ,which)
3527 ("autoconf" ,autoconf)
3528 ("automake" ,automake)
3529 ("libtool" ,libtool)))
3530 (propagated-inputs
3531 ;; Required by libxklavier.pc.
3532 `(("glib" ,glib)
3533 ("libxml2" ,libxml2)))
3534 (inputs
3535 `(("iso-codes" ,iso-codes)
3536 ("libxi" ,libxi)
3537 ("libxkbfile" ,libxkbfile)
3538 ("xkbcomp" ,xkbcomp)
3539 ("xkeyboard-config" ,xkeyboard-config)))
3540 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3541 (synopsis "High-level API for X Keyboard Extension")
3542 (description
3543 "LibXklavier is a library providing high-level API for X Keyboard
3544 Extension known as XKB. This library is intended to support XFree86 and other
3545 commercial X servers. It is useful for creating XKB-related software (layout
3546 indicators etc).")
3547 (license license:lgpl2.0+)))
3548
3549 (define-public python2-rsvg
3550 ;; XXX: This is actually a subset of gnome-python-desktop.
3551 (package
3552 (name "python2-rsvg")
3553 (version "2.32.0")
3554 (source
3555 (origin
3556 (method url-fetch)
3557 (uri (string-append
3558 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3559 version ".tar.bz2"))
3560 (sha256
3561 (base32
3562 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3563 (build-system gnu-build-system)
3564 (native-inputs
3565 `(("pkg-config" ,pkg-config)))
3566 (inputs
3567 `(("python" ,python-2)
3568 ("python2-pygtk" ,python2-pygtk)
3569 ("librsvg" ,librsvg)))
3570 (home-page "https://www.gnome.org")
3571 (synopsis "Python bindings to librsvg")
3572 (description
3573 "This package provides Python bindings to librsvg, the SVG rendering
3574 library.")
3575
3576 ;; This is the license of the rsvg bindings. The license of each module
3577 ;; of gnome-python-desktop is given in 'COPYING'.
3578 (license license:lgpl2.1+)))
3579
3580 (define-public glib-networking
3581 (package
3582 (name "glib-networking")
3583 (version "2.60.3")
3584 (source (origin
3585 (method url-fetch)
3586 (uri (string-append "mirror://gnome/sources/glib-networking/"
3587 (version-major+minor version) "/"
3588 "glib-networking-" version ".tar.xz"))
3589 (sha256
3590 (base32
3591 "1mfw44qpmwvz6yzj8c6spx6z357wrmkk15byrkc5byagd82860fm"))))
3592 (build-system meson-build-system)
3593 (arguments
3594 `(#:configure-flags '("-Dlibproxy_support=false")))
3595 (native-inputs
3596 `(("pkg-config" ,pkg-config)
3597 ("intltool" ,intltool)))
3598 (inputs
3599 `(("glib" ,glib)
3600 ("gnutls" ,gnutls)
3601 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3602 (home-page "https://www.gnome.org")
3603 (synopsis "Network-related GIO modules")
3604 (description
3605 "This package contains various network related extensions for the GIO
3606 library.")
3607 (license license:lgpl2.0+)))
3608
3609 (define-public rest
3610 (package
3611 (name "rest")
3612 (version "0.8.1")
3613 (source (origin
3614 (method url-fetch)
3615 (uri (string-append "mirror://gnome/sources/rest/"
3616 (version-major+minor version) "/"
3617 name "-" version ".tar.xz"))
3618 (sha256
3619 (base32
3620 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3621 (build-system gnu-build-system)
3622 (arguments
3623 '(#:tests? #f ; tests require internet connection
3624 #:configure-flags
3625 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3626 (native-inputs
3627 `(("glib-mkenums" ,glib "bin")
3628 ("gobject-introspection" ,gobject-introspection)
3629 ("pkg-config" ,pkg-config)))
3630 (propagated-inputs
3631 ;; rest-0.7.pc refers to all these.
3632 `(("glib" ,glib)
3633 ("libsoup" ,libsoup)
3634 ("libxml2" ,libxml2)))
3635 (home-page "https://www.gtk.org/")
3636 (synopsis "RESTful web api query library")
3637 (description
3638 "This library was designed to make it easier to access web services that
3639 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3640 libxml to ease remote use of the RESTful API.")
3641 (license license:lgpl2.1+)))
3642
3643 (define-public libsoup
3644 (package
3645 (name "libsoup")
3646 (version "2.68.3")
3647 (source (origin
3648 (method url-fetch)
3649 (uri (string-append "mirror://gnome/sources/libsoup/"
3650 (version-major+minor version) "/"
3651 "libsoup-" version ".tar.xz"))
3652 (sha256
3653 (base32
3654 "1yxs0ax4rq3g0lgkbv7mz497rqj16iyyizddyc13gzxh6n7b0jsk"))))
3655 (build-system meson-build-system)
3656 (outputs '("out" "doc"))
3657 (arguments
3658 `(#:modules ((guix build utils)
3659 (guix build meson-build-system)
3660 (ice-9 popen))
3661
3662 #:configure-flags '("-Dgtk_doc=true")
3663 #:phases
3664 (modify-phases %standard-phases
3665 (add-after 'unpack 'adjust-tests
3666 (lambda _
3667 ;; This test fails due to missing /etc/nsswitch.conf
3668 ;; in the build environment.
3669 (substitute* "tests/socket-test.c"
3670 ((".*/sockets/unconnected.*") ""))
3671
3672 ;; These fail because "subdomain.localhost" does not resolve in
3673 ;; the build environment.
3674 (substitute* "tests/hsts-test.c"
3675 ((".*/hsts/basic.*") "")
3676 ((".*/hsts/subdomains.*") "")
3677 ((".*/hsts/superdomain.*") "")
3678 ((".*/hsts/utf8-address.*") ""))
3679 (substitute* "tests/hsts-db-test.c"
3680 ((".*/hsts-db/subdomains.*") ""))
3681
3682 ;; Generate a self-signed certificate that has "localhost" as its
3683 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3684 ;; 3.5.12, tests such as "ssl-tests" fail:
3685 ;;
3686 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3687 ;;
3688 ;; 'certtool' is interactive so we have to pipe it the answers.
3689 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3690 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3691 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3692 (for-each (lambda (line)
3693 (display line pipe)
3694 (newline pipe))
3695 '("" ;Common name
3696 "" ;UID
3697 "Guix" ;Organizational unit name
3698 "GNU" ;Organization name
3699 "" ;Locality name
3700 "" ;State or province
3701 "" ;Country
3702 "" ;subject's domain component (DC)
3703 "" ;E-mail
3704 "" ;serial number
3705 "-1" ;expiration time
3706 "N" ;belong to authority?
3707 "N" ;web client certificate?
3708 "N" ;IPsec IKE?
3709 "Y" ;web server certificate?
3710 "localhost" ;dnsName of subject
3711 "" ;dnsName of subject (end)
3712 "" ;URI of subject
3713 "127.0.0.1" ;IP address of subject
3714 "" ;signing?
3715 "" ;encryption (RSA)?
3716 "" ;data encryption?
3717 "" ;sign OCSP requests?
3718 "" ;sign code?
3719 "" ;time stamping?
3720 "" ;email protection?
3721 "" ;URI of the CRL distribution point
3722 "y" ;above info OK?
3723 ))
3724 (close-pipe pipe))
3725 #t))
3726 (add-after 'install 'move-doc
3727 (lambda* (#:key outputs #:allow-other-keys)
3728 (let ((out (assoc-ref outputs "out"))
3729 (doc (assoc-ref outputs "doc")))
3730 (mkdir-p (string-append doc "/share"))
3731 (copy-recursively (string-append out "/share/gtk-doc")
3732 (string-append doc "/share/gtk-doc"))
3733 (delete-file-recursively (string-append out "/share/gtk-doc"))
3734 #t))))))
3735 (native-inputs
3736 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3737 ("gobject-introspection" ,gobject-introspection)
3738 ("gtk-doc" ,gtk-doc)
3739 ("intltool" ,intltool)
3740 ("pkg-config" ,pkg-config)
3741 ("python" ,python-wrapper)
3742 ("vala" ,vala)
3743 ;; These are needed for the tests.
3744 ;; FIXME: Add PHP once available.
3745 ("curl" ,curl)
3746 ("gnutls" ,gnutls) ;for 'certtool'
3747 ("httpd" ,httpd)))
3748 (propagated-inputs
3749 ;; libsoup-2.4.pc refers to all these.
3750 `(("brotli" ,google-brotli)
3751 ("glib" ,glib)
3752 ("libpsl" ,libpsl)
3753 ("libxml2" ,libxml2)
3754 ("sqlite" ,sqlite)
3755 ("zlib" ,zlib)))
3756 (inputs
3757 `(("glib-networking" ,glib-networking)
3758 ("mit-krb5" ,mit-krb5)))
3759 (home-page "https://live.gnome.org/LibSoup/")
3760 (synopsis "GLib-based HTTP Library")
3761 (description
3762 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3763 and the GLib main loop, to integrate well with GNOME applications.")
3764 (license license:lgpl2.0+)))
3765
3766 (define-public libsecret
3767 (package
3768 (name "libsecret")
3769 (version "0.19.1")
3770 (source (origin
3771 (method url-fetch)
3772 (uri (string-append
3773 "mirror://gnome/sources/libsecret/"
3774 (version-major+minor version) "/"
3775 "libsecret-" version ".tar.xz"))
3776 (sha256
3777 (base32
3778 "0fhflcsr70b1pps2pcvqcbdhip2ny5am9nbm634f4sj5g40y30w5"))))
3779 (build-system gnu-build-system)
3780 (outputs '("out" "doc"))
3781 (arguments
3782 `(#:tests? #f ; FIXME: Testing hangs.
3783 #:configure-flags
3784 (list (string-append "--with-html-dir="
3785 (assoc-ref %outputs "doc")
3786 "/share/gtk-doc/html"))))
3787 (native-inputs
3788 `(("gettext" ,gettext-minimal)
3789 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3790 ("gobject-introspection" ,gobject-introspection)
3791 ("pkg-config" ,pkg-config)
3792 ("vala" ,vala)
3793 ("xsltproc" ,libxslt)))
3794 ;; These are needed for the tests.
3795 ;; FIXME: Add gjs once available.
3796 ;("dbus" ,dbus)
3797 ;("python2" ,python-2)
3798 ;("python2-dbus" ,python2-dbus)
3799 ;("python2-pygobject" ,python2-pygobject)
3800 ;("python2-pygobject-2" ,python2-pygobject-2)))
3801 (propagated-inputs
3802 `(("glib" ,glib))) ; required by libsecret-1.pc
3803 (inputs
3804 `(("docbook-xsl" ,docbook-xsl)
3805 ("libgcrypt" ,libgcrypt)
3806 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3807 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3808 (synopsis "GObject bindings for \"Secret Service\" API")
3809 (description
3810 "Libsecret is a GObject based library for storing and retrieving passwords
3811 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3812 (license license:lgpl2.1+)))
3813
3814 (define-public five-or-more
3815 (package
3816 (name "five-or-more")
3817 (version "3.32.0")
3818 (source
3819 (origin
3820 (method url-fetch)
3821 (uri (string-append "mirror://gnome/sources/" name "/"
3822 (version-major+minor version) "/"
3823 name "-" version ".tar.xz"))
3824 (sha256
3825 (base32
3826 "0v52i22ygv6y4zqs8nyb1qmacmj9whhqrw7qss6vn7by4nsikhrn"))))
3827 (build-system meson-build-system)
3828 (arguments
3829 '(#:glib-or-gtk? #t
3830 #:phases
3831 (modify-phases %standard-phases
3832 (add-after 'unpack 'skip-gtk-update-icon-cache
3833 (lambda _
3834 (substitute* "meson_post_install.py"
3835 (("gtk-update-icon-cache") (which "true")))
3836 #t)))))
3837 (native-inputs
3838 `(("pkg-config" ,pkg-config)
3839 ("appstream-glib" ,appstream-glib)
3840 ("desktop-file-utils" ,desktop-file-utils)
3841 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3842 ("intltool" ,intltool)
3843 ("itstool" ,itstool)
3844 ("vala" ,vala)
3845 ("xmllint" ,libxml2)))
3846 (inputs
3847 `(("gtk+" ,gtk+)
3848 ("libgnome-games-support" ,libgnome-games-support)
3849 ("librsvg" ,librsvg)))
3850 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3851 (synopsis "Logic puzzle game")
3852 (description "Five or More is a game where you try to align
3853 five or more objects of the same color and shape causing them to disappear.
3854 On every turn more objects will appear, until the board is full.
3855 Try to last as long as possible.")
3856 (license license:gpl2+)))
3857
3858 (define-public gnome-mines
3859 (package
3860 (name "gnome-mines")
3861 (version "3.32.2")
3862 (source
3863 (origin
3864 (method url-fetch)
3865 (uri (string-append "mirror://gnome/sources/" name "/"
3866 (version-major+minor version) "/"
3867 name "-" version ".tar.xz"))
3868 (sha256
3869 (base32
3870 "1nv966wkp2rqxzcdb76bwlbzpjqadcaqzrnkxpzwnvjjr167yx8g"))))
3871 (build-system meson-build-system)
3872 (arguments
3873 '(#:glib-or-gtk? #t
3874 #:phases
3875 (modify-phases %standard-phases
3876 (add-after 'unpack 'skip-gtk-update-icon-cache
3877 (lambda _
3878 (substitute* "build-aux/meson_post_install.py"
3879 (("gtk-update-icon-cache") (which "true")))
3880 #t)))))
3881 (native-inputs
3882 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3883 ("pkg-config" ,pkg-config)
3884 ("desktop-file-utils" ,desktop-file-utils)
3885 ("intltool" ,intltool)
3886 ("itstool" ,itstool)
3887 ("vala" ,vala)
3888 ("yelp" ,yelp)
3889 ("appstream-glib" ,appstream-glib)))
3890 (inputs
3891 `(("gtk+" ,gtk+)
3892 ("libgnome-games-support" ,libgnome-games-support)
3893 ("librsvg" ,librsvg)))
3894 (home-page "https://wiki.gnome.org/Apps/Mines")
3895 (synopsis "Minesweeper game")
3896 (description
3897 "Mines (previously gnomine) is a puzzle game where you locate mines
3898 floating in an ocean using only your brain and a little bit of luck.")
3899 (license license:gpl2+)))
3900
3901 (define-public gnome-sudoku
3902 (package
3903 (name "gnome-sudoku")
3904 (version "3.32.0")
3905 (source
3906 (origin
3907 (method url-fetch)
3908 (uri (string-append "mirror://gnome/sources/" name "/"
3909 (version-major+minor version) "/"
3910 name "-" version ".tar.xz"))
3911 (sha256
3912 (base32
3913 "1wwdjflw1lbx3cv6gvqcgp5jnjkrq37ld6mjbjj03g3vr90qaf0l"))))
3914 (build-system meson-build-system)
3915 (arguments
3916 '(#:glib-or-gtk? #t
3917 #:phases
3918 (modify-phases %standard-phases
3919 (add-after 'unpack 'skip-gtk-update-icon-cache
3920 (lambda _
3921 (substitute* "build-aux/post_install.py"
3922 (("gtk-update-icon-cache") (which "true")))
3923 #t)))))
3924 (native-inputs
3925 `(("pkg-config" ,pkg-config)
3926 ("desktop-file-utils" ,desktop-file-utils)
3927 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3928 ("intltool" ,intltool)
3929 ("itstool" ,itstool)
3930 ("vala" ,vala)
3931 ("xmllint" ,libxml2)))
3932 (inputs
3933 `(("gtk+" ,gtk+)
3934 ("json-glib" ,json-glib)
3935 ("libgee" ,libgee)
3936 ("librsvg" ,librsvg)
3937 ("qqwing" ,qqwing)))
3938 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3939 (synopsis "Japanese logic game")
3940 (description
3941 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3942 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3943 possible while still providing features that make playing difficult Sudoku
3944 more fun.")
3945 (license license:gpl2+)))
3946
3947 (define-public gnome-terminal
3948 (package
3949 (name "gnome-terminal")
3950 (version "3.32.2")
3951 (source
3952 (origin
3953 (method url-fetch)
3954 (uri (string-append "mirror://gnome/sources/" name "/"
3955 (version-major+minor version) "/"
3956 name "-" version ".tar.xz"))
3957 (sha256
3958 (base32
3959 "0shhpnagasyp1kxgjczfrivcxbgrrl3y8lzvp1z101m67h4jp6km"))))
3960 (build-system glib-or-gtk-build-system)
3961 (arguments
3962 '(#:configure-flags
3963 (list "--disable-migration" "--disable-search-provider"
3964 "--without-nautilus-extension")
3965 #:phases
3966 (modify-phases %standard-phases
3967 (add-before 'configure 'patch-/bin/true
3968 (lambda _
3969 (substitute* "configure"
3970 (("/bin/true") (which "true"))))))))
3971 (native-inputs
3972 `(("pkg-config" ,pkg-config)
3973 ("desktop-file-utils" ,desktop-file-utils)
3974 ("intltool" ,intltool)
3975 ("itstool" ,itstool)
3976 ("xmllint" ,libxml2)))
3977 (propagated-inputs
3978 `(("dconf" ,dconf)))
3979 (inputs
3980 `(("gtk+" ,gtk+)
3981 ("vte" ,vte)
3982 ("gnutls" ,gnutls)
3983 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3984 ("util-linux" ,util-linux)
3985 ("vala" ,vala)))
3986 (home-page "https://wiki.gnome.org/Apps/Terminal")
3987 (synopsis "Terminal emulator")
3988 (description
3989 "GNOME Terminal is a terminal emulator application for accessing a
3990 UNIX shell environment which can be used to run programs available on
3991 your system.
3992
3993 It supports several profiles, multiple tabs and implements several
3994 keyboard shortcuts.")
3995 (license license:gpl3+)))
3996
3997 (define-public colord
3998 (package
3999 (name "colord")
4000 (version "1.4.4")
4001 (source
4002 (origin
4003 (method url-fetch)
4004 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
4005 "colord-" version ".tar.xz"))
4006 (sha256
4007 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
4008 (build-system meson-build-system)
4009 (arguments
4010 '(;; FIXME: One test fails:
4011 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4012 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4013 ;; application/x-zerosize
4014 #:tests? #f
4015 #:glib-or-gtk? #t
4016 #:configure-flags (list "-Dlocalstatedir=/var"
4017 ;; No dep on systemd.
4018 "-Dsystemd=false"
4019 ;; Wants to install to global completion dir;
4020 ;; punt.
4021 "-Dbash_completion=false"
4022 "-Ddaemon_user=colord"
4023 "-Dsane=true"
4024 "-Dvapi=true"
4025 ;; Requires spotread.
4026 "-Dargyllcms_sensor=false"
4027 ;; TODO: Requires docbook2x.
4028 "-Dman=false")
4029 #:phases
4030 (modify-phases %standard-phases
4031 (add-before 'configure 'patch-build-system
4032 (lambda* (#:key outputs #:allow-other-keys)
4033 (substitute* "rules/meson.build"
4034 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4035 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4036 #t))
4037 (add-before 'configure 'set-sqlite3-file-name
4038 (lambda* (#:key inputs #:allow-other-keys)
4039 ;; "colormgr dump" works by invoking the "sqlite3" command.
4040 ;; Record its absolute file name.
4041 (let ((sqlite (assoc-ref inputs "sqlite")))
4042 (substitute* "client/cd-util.c"
4043 (("\"sqlite3\"")
4044 (string-append "\"" sqlite "/bin/sqlite3\"")))
4045 #t))))))
4046 (native-inputs
4047 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4048 ("gettext" ,gettext-minimal)
4049 ("gobject-introspection" ,gobject-introspection)
4050 ("gtk-doc" ,gtk-doc)
4051 ("pkg-config" ,pkg-config)
4052 ("vala" ,vala)))
4053 (propagated-inputs
4054 ;; colord.pc refers to all these.
4055 `(("glib" ,glib)
4056 ("lcms" ,lcms)
4057 ("udev" ,eudev)))
4058 (inputs
4059 `(("dbus-glib" ,dbus-glib)
4060 ("gusb" ,gusb)
4061 ("libgudev" ,libgudev)
4062 ("libusb" ,libusb)
4063 ("polkit" ,polkit)
4064 ("python" ,python-wrapper)
4065 ("sqlite" ,sqlite)
4066 ("sane-backends" ,sane-backends)))
4067 (home-page "https://www.freedesktop.org/software/colord/")
4068 (synopsis "Color management service")
4069 (description "Colord is a system service that makes it easy to manage,
4070 install and generate color profiles to accurately color manage input and
4071 output devices.")
4072 (license license:gpl2+)))
4073
4074 (define-public geoclue
4075 (package
4076 (name "geoclue")
4077 (version "2.4.8")
4078 (source
4079 (origin
4080 (method url-fetch)
4081 (uri (string-append "https://www.freedesktop.org/software/" name
4082 "/releases/" (version-major+minor version) "/"
4083 name "-" version ".tar.xz"))
4084 (sha256
4085 (base32
4086 "08yg1r7m0n9hwyvcy769qkmkf8lslqwv69cjfffwnc3zm5km25qj"))
4087 (patches (search-patches "geoclue-config.patch"))))
4088 (build-system glib-or-gtk-build-system)
4089 (arguments
4090 '(;; The tests want to run the system bus.
4091 #:tests? #f
4092 #:configure-flags (list ;; Disable bits requiring ModemManager.
4093 "--disable-3g-source"
4094 "--disable-cdma-source"
4095 "--disable-modem-gps-source"
4096 "--with-dbus-service-user=geoclue")
4097 #:phases
4098 (modify-phases %standard-phases
4099 (add-before 'configure 'patch-/bin/true
4100 (lambda _
4101 (substitute* "configure"
4102 (("/bin/true") (which "true")))
4103 #t)))))
4104 (native-inputs
4105 `(("pkg-config" ,pkg-config)
4106 ("gobject-introspection" ,gobject-introspection)
4107 ("intltool" ,intltool)))
4108 (inputs
4109 `(("avahi" ,avahi)
4110 ("glib" ,glib)
4111 ("json-glib" ,json-glib)
4112 ("libsoup" ,libsoup)))
4113 (home-page "https://www.freedesktop.org/wiki/Software/GeoClue/")
4114 (synopsis "Geolocation service")
4115 (description "Geoclue is a D-Bus service that provides location
4116 information. The primary goal of the Geoclue project is to make creating
4117 location-aware applications as simple as possible, while the secondary goal is
4118 to ensure that no application can access location information without explicit
4119 permission from user.")
4120 (license license:gpl2+)))
4121
4122 (define-public geocode-glib
4123 (package
4124 (name "geocode-glib")
4125 (version "3.26.1")
4126 (source (origin
4127 (method url-fetch)
4128 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4129 (version-major+minor version) "/"
4130 "geocode-glib-" version ".tar.xz"))
4131 (sha256
4132 (base32
4133 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4134 (build-system meson-build-system)
4135 (arguments
4136 `(#:phases
4137 (modify-phases %standard-phases
4138 ;; The tests require a bunch of locales.
4139 (add-before 'check 'set-locales
4140 (lambda* (#:key inputs #:allow-other-keys)
4141 (setenv "GUIX_LOCPATH"
4142 (string-append (assoc-ref inputs "glibc-locales")
4143 "/lib/locale"))
4144 #t)))))
4145 (native-inputs
4146 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4147 ("glibc-locales" ,glibc-locales) ; for tests
4148 ("gettext" ,gettext-minimal)
4149 ("gobject-introspection" ,gobject-introspection)
4150 ("gtk-doc" ,gtk-doc)
4151 ("pkg-config" ,pkg-config)
4152 ("json-glib" ,json-glib)))
4153 (propagated-inputs
4154 ;; geocode-glib-1.0.pc refers to GIO.
4155 `(("glib" ,glib)))
4156 (inputs
4157 `(("libsoup" ,libsoup)))
4158 (home-page "https://github.com/GNOME/geocode-glib/")
4159 (synopsis "Geocoding and reverse-geocoding library")
4160 (description
4161 "geocode-glib is a convenience library for geocoding (finding longitude,
4162 and latitude from an address) and reverse geocoding (finding an address from
4163 coordinates) using the Nominatim service. geocode-glib caches requests for
4164 faster results and to avoid unnecessary server load.")
4165 (license license:lgpl2.0+)))
4166
4167 (define-public upower
4168 (package
4169 (name "upower")
4170 (version "0.99.11")
4171 (source (origin
4172 (method url-fetch)
4173 (uri (string-append "https://upower.freedesktop.org/releases/"
4174 "upower-" version ".tar.xz"))
4175 (sha256
4176 (base32
4177 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4178 (patches (search-patches "upower-builddir.patch"))
4179 (modules '((guix build utils)))
4180 (snippet
4181 '(begin
4182 ;; Upstream commit
4183 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4184 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4185 ;; 'dbus-configuration-directory' in (gnu services dbus)
4186 ;; expects it in etc/. Thus, move it back to its previous
4187 ;; location.
4188 (substitute* "src/Makefile.in"
4189 (("^dbusconfdir =.*$")
4190 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4191 #t))))
4192 (build-system glib-or-gtk-build-system)
4193 (arguments
4194 '( ;; The tests want to contact the system bus, which can't be done in the
4195 ;; build environment. The integration test can run, but the last of
4196 ;; the up-self-tests doesn't. Disable tests for now.
4197 #:tests? #f
4198 #:configure-flags (list "--localstatedir=/var"
4199 (string-append "--with-udevrulesdir="
4200 (assoc-ref %outputs "out")
4201 "/lib/udev/rules.d"))))
4202 (native-inputs
4203 `(("gobject-introspection" ,gobject-introspection)
4204 ("pkg-config" ,pkg-config)
4205 ("intltool" ,intltool)
4206 ("python" ,python)
4207
4208 ;; For man pages.
4209 ("libxslt" ,libxslt) ;for 'xsltproc'
4210 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4211 ("docbook-xsl" ,docbook-xsl)))
4212 (inputs
4213 `(("dbus-glib" ,dbus-glib)
4214 ("libgudev" ,libgudev)
4215 ("libusb" ,libusb)))
4216 (propagated-inputs
4217 ;; In Requires of upower-glib.pc.
4218 `(("glib" ,glib)))
4219 (home-page "https://upower.freedesktop.org/")
4220 (synopsis "System daemon for managing power devices")
4221 (description
4222 "UPower is an abstraction for enumerating power devices,
4223 listening to device events and querying history and statistics. Any
4224 application or service on the system can access the org.freedesktop.UPower
4225 service via the system message bus.")
4226 (license license:gpl2+)))
4227
4228 (define-public libgweather
4229 (package
4230 (name "libgweather")
4231 (version "3.28.3")
4232 (source (origin
4233 (method url-fetch)
4234 (uri (string-append "mirror://gnome/sources/" name "/"
4235 (version-major+minor version) "/"
4236 name "-" version ".tar.xz"))
4237 (sha256
4238 (base32
4239 "1xz60h59zgyk61y2wwzm0xlqav72i668g7v0x7rh9idz240hxls5"))))
4240 (build-system meson-build-system)
4241 (arguments
4242 `(#:tests? #f ; one of two tests requires network access
4243 #:configure-flags
4244 `(,(string-append "-Dzoneinfo_dir="
4245 (assoc-ref %build-inputs "tzdata")
4246 "/share/zoneinfo"))))
4247 (native-inputs
4248 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4249 ("gobject-introspection" ,gobject-introspection)
4250 ("pkg-config" ,pkg-config)
4251 ("vala" ,vala)
4252 ("intltool" ,intltool)))
4253 (propagated-inputs
4254 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4255 ;; libsoup.
4256 `(("gtk+" ,gtk+)
4257 ("gdk-pixbuf" ,gdk-pixbuf)
4258 ("libxml2" ,libxml2)
4259 ("libsoup" ,libsoup)
4260 ("geocode-glib" ,geocode-glib)))
4261 (inputs
4262 `(("tzdata" ,tzdata)))
4263 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4264 (synopsis "Location, time zone, and weather library for GNOME")
4265 (description
4266 "libgweather is a library to access weather information from online
4267 services for numerous locations.")
4268 (license license:gpl2+)))
4269
4270 (define-public gnome-settings-daemon
4271 (package
4272 (name "gnome-settings-daemon")
4273 (version "3.32.1")
4274 (source
4275 (origin
4276 (method url-fetch)
4277 (uri (string-append "mirror://gnome/sources/" name "/"
4278 (version-major+minor version) "/"
4279 name "-" version ".tar.xz"))
4280 (sha256
4281 (base32
4282 "02d0s0g2mmqfib44r3sf0499r08p61s8l2ndsjssbam1bi7x2dks"))))
4283 (build-system meson-build-system)
4284 (arguments
4285 `(#:glib-or-gtk? #t
4286 #:configure-flags
4287 (list (string-append "-Dudev_dir="
4288 (assoc-ref %outputs "out")
4289 "/lib/udev/rules.d/")
4290 ;; Otherwise, the RUNPATH will lack the final path component.
4291 (string-append "-Dc_link_args=-Wl,-rpath="
4292 (assoc-ref %outputs "out")
4293 "/lib/gnome-settings-daemon-3.0"))
4294 ;; Color management test can't reach the colord system service.
4295 #:tests? #f))
4296 (native-inputs
4297 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4298 ("pkg-config" ,pkg-config)
4299 ("intltool" ,intltool)
4300 ("xsltproc" ,libxslt)
4301 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4302 ("docbook-xml" ,docbook-xml-4.2)
4303 ("docbook-xsl" ,docbook-xsl)))
4304 (inputs
4305 `(("alsa-lib" ,alsa-lib)
4306 ("colord" ,colord)
4307 ("libgudev" ,libgudev)
4308 ("upower" ,upower)
4309 ("polkit" ,polkit)
4310 ("pulseaudio" ,pulseaudio)
4311 ("libcanberra" ,libcanberra)
4312 ("libx11" ,libx11)
4313 ("libxtst" ,libxtst)
4314 ("lcms" ,lcms)
4315 ("libnotify" ,libnotify)
4316 ("geoclue" ,geoclue)
4317 ("geocode-glib" ,geocode-glib)
4318 ("libgweather" ,libgweather)
4319 ("gnome-desktop" ,gnome-desktop)
4320 ("nss" ,nss)
4321 ("cups" ,cups)
4322 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4323 ("libwacom" ,libwacom)
4324 ("librsvg" ,librsvg)
4325 ("xf86-input-wacom" ,xf86-input-wacom)
4326 ("wayland" ,wayland)
4327 ("network-manager" ,network-manager)))
4328 (home-page "https://www.gnome.org")
4329 (synopsis "GNOME settings daemon")
4330 (description
4331 "This package contains the daemon responsible for setting the various
4332 parameters of a GNOME session and the applications that run under it. It
4333 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4334 settings, themes, mouse settings, and startup of other daemons.")
4335 (license license:gpl2+)))
4336
4337 (define-public totem-pl-parser
4338 (package
4339 (name "totem-pl-parser")
4340 (version "3.26.3")
4341 (source (origin
4342 (method url-fetch)
4343 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4344 (version-major+minor version) "/"
4345 "totem-pl-parser-" version ".tar.xz"))
4346 (sha256
4347 (base32
4348 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4349 (build-system meson-build-system)
4350 (arguments
4351 ;; FIXME: Tests require gvfs.
4352 `(#:tests? #f))
4353 (native-inputs
4354 `(("intltool" ,intltool)
4355 ("glib" ,glib "bin")
4356 ("gobject-introspection" ,gobject-introspection)
4357 ("pkg-config" ,pkg-config)))
4358 (propagated-inputs
4359 `(("glib" ,glib)
4360 ("gmime" ,gmime)
4361 ("libarchive" ,libarchive)
4362 ("libgcrypt" ,libgcrypt)
4363 ("libxml2" ,libxml2)))
4364 (inputs
4365 `(("libsoup" ,libsoup)))
4366 (home-page "https://projects.gnome.org/totem")
4367 (synopsis "Library to parse and save media playlists for GNOME")
4368 (description "Totem-pl-parser is a GObjects-based library to parse and save
4369 playlists in a variety of formats.")
4370 (license license:lgpl2.0+)))
4371
4372 (define-public aisleriot
4373 (package
4374 (name "aisleriot")
4375 (version "3.22.9")
4376 (source (origin
4377 (method url-fetch)
4378 (uri (string-append "mirror://gnome/sources/aisleriot/"
4379 (version-major+minor version) "/"
4380 "aisleriot-" version ".tar.xz"))
4381 (sha256
4382 (base32
4383 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4384 (build-system glib-or-gtk-build-system)
4385 (arguments
4386 '(#:configure-flags
4387 '("--with-platform=gtk-only"
4388 "--with-card-theme-formats=svg")))
4389 (native-inputs
4390 `(("desktop-file-utils" ,desktop-file-utils)
4391 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4392 ("intltool" ,intltool)
4393 ("itstool" ,itstool)
4394 ("pkg-config" ,pkg-config)
4395 ("xmllint" ,libxml2)))
4396 (inputs
4397 `(("gtk+" ,gtk+)
4398 ("guile" ,guile-2.2)
4399 ("libcanberra" ,libcanberra)
4400 ("librsvg" ,librsvg)))
4401 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4402 (synopsis "Solitaire card games")
4403 (description
4404 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4405 which are easy to play with the aid of a mouse.")
4406 (license license:gpl3+)))
4407
4408 (define-public amtk
4409 (package
4410 (name "amtk")
4411 (version "5.0.1")
4412 (source (origin
4413 (method url-fetch)
4414 (uri (string-append "mirror://gnome/sources/amtk/"
4415 (version-major+minor version) "/"
4416 "amtk-" version ".tar.xz"))
4417 (sha256
4418 (base32
4419 "09yy95w1s83c43mh9vha1jbb780yighf5pd2j0ygjmc68sjg871d"))))
4420 (build-system gnu-build-system)
4421 (arguments
4422 '(#:configure-flags '("--enable-gtk-doc")))
4423 (native-inputs
4424 `(("gobject-introspection" ,gobject-introspection)
4425 ("glib:bin" ,glib "bin") ; for glib-mkenums
4426 ("gtk-doc" ,gtk-doc)
4427 ("pkg-config" ,pkg-config)))
4428 (inputs
4429 `(("glib" ,glib)
4430 ("gtk+" ,gtk+)))
4431 (home-page "https://wiki.gnome.org/Projects/Amtk")
4432 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4433 (description
4434 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4435 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4436 both a traditional UI or a modern UI with a GtkHeaderBar.")
4437 (license license:lgpl2.1+)))
4438
4439 (define-public devhelp
4440 (package
4441 (name "devhelp")
4442 (version "3.32.0")
4443 (source (origin
4444 (method url-fetch)
4445 (uri (string-append "mirror://gnome/sources/" name "/"
4446 (version-major+minor version) "/"
4447 name "-" version ".tar.xz"))
4448 (sha256
4449 (base32
4450 "06sa83zggk29wcg75fl3gqh0rmi7cd3gsbk09a2z23r7vpy7xanq"))))
4451 (build-system meson-build-system)
4452 (arguments
4453 '(#:glib-or-gtk? #t
4454 #:phases
4455 (modify-phases %standard-phases
4456 (add-after 'unpack 'skip-gtk-update-icon-cache
4457 ;; Don't create 'icon-theme.cache'.
4458 (lambda _
4459 (substitute* "meson_post_install.py"
4460 (("gtk-update-icon-cache") "true"))
4461 #t)))))
4462 (native-inputs
4463 `(("intltool" ,intltool)
4464 ("itstool" ,itstool)
4465 ("gobject-introspection" ,gobject-introspection)
4466 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4467 ("pkg-config" ,pkg-config)))
4468 (inputs
4469 `(("amtk" ,amtk)
4470 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4471 ("webkitgtk" ,webkitgtk)))
4472 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4473 (synopsis "API documentation browser for GNOME")
4474 (description
4475 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4476 natively with GTK-Doc (the API reference system developed for GTK+ and used
4477 throughout GNOME for API documentation).")
4478 (license license:gpl2+)))
4479
4480 (define-public cogl
4481 (package
4482 (name "cogl")
4483 (version "1.22.4")
4484 (source
4485 (origin
4486 (method url-fetch)
4487 (uri (string-append "mirror://gnome/sources/cogl/"
4488 (version-major+minor version) "/"
4489 "cogl-" version ".tar.xz"))
4490 (sha256
4491 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
4492 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4493 ;; cogl, corresponding changes may be appropriate in mutter as well.
4494 (build-system gnu-build-system)
4495 (native-inputs
4496 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4497 ("gobject-introspection" ,gobject-introspection)
4498 ;;("xorg-server" ,xorg-server) ; for the test suite
4499 ("pkg-config" ,pkg-config)))
4500 (propagated-inputs
4501 `(("glib" ,glib)
4502 ("gdk-pixbuf" ,gdk-pixbuf)
4503 ("libx11" ,libx11)
4504 ("libxext" ,libxext)
4505 ("libxfixes" ,libxfixes)
4506 ("libxdamage" ,libxdamage)
4507 ("libxcomposite" ,libxcomposite)
4508 ("libxrandr" ,libxrandr)))
4509 (inputs
4510 `(("mesa" ,mesa)
4511 ("cairo" ,cairo)
4512 ("pango" ,pango)
4513 ("gstreamer" ,gstreamer)
4514 ("gst-plugins-base" ,gst-plugins-base)
4515 ("wayland" ,wayland)))
4516 (arguments
4517 `(#:configure-flags (list "--enable-cogl-gst"
4518 "--enable-wayland-egl-platform"
4519 "--enable-wayland-egl-server"
4520
4521 ;; Arrange to pass an absolute file name to
4522 ;; dlopen for libGL.so.
4523 (string-append "--with-gl-libname="
4524 (assoc-ref %build-inputs "mesa")
4525 "/lib/libGL.so"))
4526 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4527 ;; _FontTransOpen: Unable to Parse address
4528 ;; ${prefix}/share/fonts/X11/misc/
4529 #:tests? #f
4530 #; #:phases
4531 #;
4532 (modify-phases %standard-phases
4533 (add-before 'check 'start-xorg-server
4534 (lambda* (#:key inputs #:allow-other-keys)
4535 ;; The test suite requires a running X server.
4536 (system (format #f "~a/bin/Xvfb :1 &"
4537 (assoc-ref inputs "xorg-server")))
4538 (setenv "DISPLAY" ":1")
4539 #t)))))
4540 (home-page "http://www.cogl3d.org")
4541 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4542 (description
4543 "Cogl is a small library for using 3D graphics hardware to draw pretty
4544 pictures. The API departs from the flat state machine style of OpenGL and is
4545 designed to make it easy to write orthogonal components that can render
4546 without stepping on each others toes.")
4547 (license (list license:expat ; most of the code
4548 license:bsd-3 ; cogl/cogl-point-in-poly.c
4549 license:sgifreeb2.0 ; cogl-path/tesselator/
4550 license:asl2.0)))) ; examples/android/
4551
4552 (define-public clutter
4553 (package
4554 (name "clutter")
4555 (version "1.26.2")
4556 (source
4557 (origin
4558 (method url-fetch)
4559 (uri (string-append "mirror://gnome/sources/" name "/"
4560 (version-major+minor version) "/"
4561 name "-" version ".tar.xz"))
4562 (sha256
4563 (base32
4564 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4565 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4566 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4567 (build-system gnu-build-system)
4568 (outputs '("out"
4569 "doc")) ;9 MiB of gtk-doc HTML pages
4570 (native-inputs
4571 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4572 ("gobject-introspection" ,gobject-introspection)
4573 ("pkg-config" ,pkg-config)
4574 ("xsltproc" ,libxslt)))
4575 (propagated-inputs
4576 `(("cogl" ,cogl)
4577 ("cairo" ,cairo)
4578 ("atk" ,atk)
4579 ("gtk+" ,gtk+)
4580 ("json-glib" ,json-glib)
4581 ("glib" ,glib)
4582 ("libxcomposite" ,libxcomposite)
4583 ("libxdamage" ,libxdamage)
4584 ("libxext" ,libxext)
4585 ("xinput" ,xinput)))
4586 (inputs
4587 `(("libxkbcommon" ,libxkbcommon)
4588 ("udev" ,eudev)))
4589 (arguments
4590 `(#:configure-flags (list "--enable-x11-backend=yes"
4591
4592 ;; This produces share/doc/{clutter,cally}.
4593 (string-append "--with-html-dir="
4594 (assoc-ref %outputs "doc")
4595 "/share/doc"))
4596 ;; XXX FIXME: Get test suite working. It would probably fail in the
4597 ;; same way the cogl tests fail, since clutter is based on cogl.
4598 #:tests? #f))
4599 (home-page "http://www.clutter-project.org")
4600 (synopsis "OpenGL-based interactive canvas library")
4601 (description
4602 "Clutter is an OpenGL-based interactive canvas library, designed for
4603 creating fast, mainly 2D single window applications such as media box UIs,
4604 presentations, kiosk style applications and so on.")
4605 (license license:lgpl2.0+)))
4606
4607 (define-public clutter-gtk
4608 (package
4609 (name "clutter-gtk")
4610 (version "1.8.4")
4611 (source
4612 (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 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4620 (build-system gnu-build-system)
4621 (native-inputs
4622 `(("pkg-config" ,pkg-config)
4623 ("gobject-introspection" ,gobject-introspection)))
4624 (propagated-inputs
4625 ;; clutter-gtk.pc refers to all these.
4626 `(("clutter" ,clutter)
4627 ("gtk+" ,gtk+)))
4628 (home-page "http://www.clutter-project.org")
4629 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4630 (description
4631 "Clutter is an OpenGL-based interactive canvas library, designed for
4632 creating fast, mainly 2D single window applications such as media box UIs,
4633 presentations, kiosk style applications and so on.")
4634 (license license:lgpl2.0+)))
4635
4636 (define-public clutter-gst
4637 (package
4638 (name "clutter-gst")
4639 (version "3.0.27")
4640 (source
4641 (origin
4642 (method url-fetch)
4643 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4644 (version-major+minor version) "/"
4645 "clutter-gst-" version ".tar.xz"))
4646 (sha256
4647 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4648 (build-system gnu-build-system)
4649 (native-inputs
4650 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4651 ("pkg-config" ,pkg-config)
4652 ("gobject-introspection" ,gobject-introspection)))
4653 (inputs
4654 `(("clutter" ,clutter)
4655 ("gstreamer" ,gstreamer)
4656 ("gst-plugins-base" ,gst-plugins-base)))
4657 (home-page "http://www.clutter-project.org")
4658 (synopsis "Integration library for using GStreamer with Clutter")
4659 (description
4660 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4661 It provides a GStreamer sink to upload frames to GL and an actor that
4662 implements the ClutterGstPlayer interface using playbin. Clutter is an
4663 OpenGL-based interactive canvas library.")
4664 (license license:lgpl2.0+)))
4665
4666 (define-public libchamplain
4667 (package
4668 (name "libchamplain")
4669 (version "0.12.16")
4670 (source (origin
4671 (method url-fetch)
4672 (uri (string-append
4673 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4674 version ".tar.xz"))
4675 (sha256
4676 (base32
4677 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4678 (build-system gnu-build-system)
4679 (arguments '(#:configure-flags '("--enable-vala")))
4680 (native-inputs
4681 `(("gobject-introspection" ,gobject-introspection)
4682 ("pkg-config" ,pkg-config)
4683 ("vala" ,vala)))
4684 (propagated-inputs
4685 `(("libsoup" ,libsoup)
4686 ("sqlite" ,sqlite)
4687 ("clutter" ,clutter)
4688 ("clutter-gtk" ,clutter-gtk)
4689 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4690 ("cairo" ,cairo)
4691 ("gtk+3" ,gtk+)
4692 ("glib" ,glib)))
4693 (home-page "https://projects.gnome.org/libchamplain/")
4694 (synopsis "C library providing a ClutterActor to display maps")
4695 (description
4696 "libchamplain is a C library providing a ClutterActor to display maps.
4697 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4698 and Perl bindings are also available. It supports numerous free map sources
4699 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4700 (license license:lgpl2.1+)))
4701
4702 (define-public gom
4703 (package
4704 (name "gom")
4705 (version "0.3.2")
4706 (source
4707 (origin
4708 (method url-fetch)
4709 (uri (string-append "mirror://gnome/sources/gom/"
4710 (version-major+minor version) "/"
4711 "gom-" version ".tar.xz"))
4712 (sha256
4713 (base32
4714 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4715 (build-system gnu-build-system)
4716 (native-inputs
4717 `(("intltool" ,intltool)
4718 ("pkg-config" ,pkg-config)
4719 ("gobject-introspection" ,gobject-introspection)))
4720 (inputs
4721 `(("glib" ,glib)
4722 ("gdk-pixbuf" ,gdk-pixbuf)
4723 ("sqlite" ,sqlite)))
4724 ;; XXX TODO: Figure out how to run the test suite.
4725 (arguments `(#:tests? #f))
4726 (home-page "https://wiki.gnome.org/Projects/Gom")
4727 (synopsis "Object mapper from GObjects to SQLite")
4728 (description
4729 "Gom provides an object mapper from GObjects to SQLite. It helps you
4730 write applications that need to store structured data as well as make complex
4731 queries upon that data.")
4732 (license license:lgpl2.1+)))
4733
4734 (define-public libgnome-games-support
4735 (package
4736 (name "libgnome-games-support")
4737 (version "1.4.4")
4738 (source (origin
4739 (method url-fetch)
4740 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4741 (version-major+minor version) "/"
4742 "libgnome-games-support-" version ".tar.xz"))
4743 (sha256
4744 (base32
4745 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4746 (build-system gnu-build-system)
4747 (arguments
4748 '(#:phases
4749 (modify-phases %standard-phases
4750 (add-before 'check 'pre-check
4751 (lambda _
4752 ;; Tests require a writable HOME.
4753 (setenv "HOME" (getcwd))
4754 #t)))))
4755 (native-inputs
4756 `(("intltool" ,intltool)
4757 ("pkg-config" ,pkg-config)
4758 ("vala" ,vala)))
4759 (propagated-inputs
4760 ;; Required by libgnome-games-support-1.0.pc
4761 `(("gtk+" ,gtk+)
4762 ("libgee" ,libgee)))
4763 (home-page "https://www.gnome.org/")
4764 (synopsis "Useful functionality shared among GNOME games")
4765 (description
4766 "libgnome-games-support is a small library intended for internal use by
4767 GNOME Games, but it may be used by others.")
4768 (license license:lgpl3+)))
4769
4770 (define-public gnome-klotski
4771 (package
4772 (name "gnome-klotski")
4773 (version "3.32.0")
4774 (source (origin
4775 (method url-fetch)
4776 (uri (string-append "mirror://gnome/sources/" name "/"
4777 (version-major+minor version) "/"
4778 name "-" version ".tar.xz"))
4779 (sha256
4780 (base32
4781 "1p4s15gxj6gasix22z9vlx2yrx196fvcxr6v6qrl569idfgjbi72"))))
4782 (build-system meson-build-system)
4783 (arguments
4784 '(#:glib-or-gtk? #t
4785 #:phases
4786 (modify-phases %standard-phases
4787 (add-after 'unpack 'skip-gtk-update-icon-cache
4788 ;; Don't create 'icon-theme.cache'.
4789 (lambda _
4790 (substitute* "build-aux/meson_post_install.py"
4791 (("gtk-update-icon-cache") (which "true")))
4792 #t)))))
4793 (native-inputs
4794 `(("desktop-file-utils" ,desktop-file-utils)
4795 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4796 ("intltool" ,intltool)
4797 ("itstool" ,itstool)
4798 ("pkg-config" ,pkg-config)
4799 ("vala" ,vala)
4800 ("xmllint" ,libxml2)))
4801 (inputs
4802 `(("gtk+" ,gtk+)
4803 ("libgnome-games-support" ,libgnome-games-support)
4804 ("librsvg" ,librsvg)))
4805 (home-page "https://wiki.gnome.org/Apps/Klotski")
4806 (synopsis "Sliding block puzzles")
4807 (description
4808 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4809 the patterned block to the area bordered by green markers. To do so, you will
4810 need to slide other blocks out of the way. Complete each puzzle in as few moves
4811 as possible!")
4812 (license license:gpl2+)))
4813
4814 (define-public grilo
4815 (package
4816 (name "grilo")
4817 (version "0.3.10")
4818 (source
4819 (origin
4820 (method url-fetch)
4821 (uri (string-append "mirror://gnome/sources/" name "/"
4822 (version-major+minor version) "/"
4823 name "-" version ".tar.xz"))
4824 (sha256
4825 (base32
4826 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4827 (build-system meson-build-system)
4828 (native-inputs
4829 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4830 ("intltool" ,intltool)
4831 ("pkg-config" ,pkg-config)
4832 ("gobject-introspection" ,gobject-introspection)
4833 ("gtk-doc" ,gtk-doc)
4834 ("vala" ,vala)))
4835 (inputs
4836 `(("cyrus-sasl" ,cyrus-sasl)
4837 ("glib" ,glib)
4838 ("gtk+" ,gtk+)
4839 ("libxml2" ,libxml2)
4840 ("liboauth" ,liboauth)
4841 ("libsoup" ,libsoup)
4842 ("totem-pl-parser" ,totem-pl-parser)))
4843 (native-search-paths
4844 (list (search-path-specification
4845 (variable "GRL_PLUGIN_PATH")
4846 (files (list (string-append "lib/grilo-"
4847 (version-major+minor version)))))))
4848 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4849 (synopsis "Framework for discovering and browsing media")
4850 (description
4851 "Grilo is a framework focused on making media discovery and browsing easy
4852 for application developers.")
4853 (license license:lgpl2.1+)))
4854
4855 (define-public grilo-plugins
4856 (package
4857 (name "grilo-plugins")
4858 (version "0.3.10")
4859 (source
4860 (origin
4861 (method url-fetch)
4862 (uri (string-append "mirror://gnome/sources/" name "/"
4863 (version-major+minor version) "/"
4864 name "-" version ".tar.xz"))
4865 (sha256
4866 (base32
4867 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4868 (build-system meson-build-system)
4869 (native-inputs
4870 `(("gettext" ,gettext-minimal)
4871 ("glib:bin" ,glib "bin")
4872 ("gtk+:bin" ,gtk+ "bin")
4873 ("itstool" ,itstool)
4874 ("pkg-config" ,pkg-config)))
4875 ;; TODO: ahavi, gstreamer
4876 (inputs
4877 `(("grilo" ,grilo)
4878 ;("gmime" ,gmime) ; unused
4879 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4880 ("gom" ,gom)
4881 ;("gssdp" ,gssdp) ; unused
4882 ;("gupnp" ,gupnp) ; unused
4883 ;("gupnp-av" ,gupnp-av) ; unused
4884 ("json-glib" ,json-glib)
4885 ("avahi" ,avahi)
4886 ("libgdata" ,libgdata)
4887 ("libmediaart" ,libmediaart)
4888 ;("librest" ,rest) ; unused
4889 ("libsoup" ,libsoup)
4890 ("totam-pl-parser" ,totem-pl-parser)
4891 ("tracker" ,tracker))) ; unused because it's too old
4892 (arguments
4893 `(#:glib-or-gtk? #t
4894 ;;Disable lua-factory as it needs missing dependencies
4895 #:configure-flags '("-Denable-lua-factory=no")))
4896 (home-page "https://live.gnome.org/Grilo")
4897 (synopsis "Plugins for the Grilo media discovery library")
4898 (description
4899 "Grilo is a framework focused on making media discovery and browsing easy
4900 for application developers. This package provides plugins for common media
4901 discovery protocols.")
4902 (license license:lgpl2.1+)))
4903
4904 (define-public totem
4905 (package
4906 (name "totem")
4907 (version "3.32.1")
4908 (source
4909 (origin
4910 (method url-fetch)
4911 (uri (string-append "mirror://gnome/sources/" name "/"
4912 (version-major+minor version) "/"
4913 name "-" version ".tar.xz"))
4914 (sha256
4915 (base32
4916 "0yra8apc7smpwf7d1k8crhrm8d4wix24ds6i9yxbch1v11jnhr3v"))))
4917 (build-system meson-build-system)
4918 (native-inputs
4919 `(("pkg-config" ,pkg-config)
4920 ("desktop-file-utils" ,desktop-file-utils)
4921 ("gobject-introspection" ,gobject-introspection)
4922 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4923 ("intltool" ,intltool)
4924 ("itstool" ,itstool)
4925 ("xmllint" ,libxml2)
4926 ("python-pylint" ,python-pylint)
4927 ("xorg-server" ,xorg-server-for-tests)))
4928 (propagated-inputs
4929 `(("dconf" ,dconf)))
4930 (inputs
4931 `(("gtk+" ,gtk+)
4932 ("gdk-pixbuf" ,gdk-pixbuf)
4933 ("atk" ,atk)
4934 ("cairo" ,cairo)
4935 ("dbus-glib" ,dbus-glib)
4936 ("clutter" ,clutter)
4937 ("clutter-gtk" ,clutter-gtk)
4938 ("clutter-gst" ,clutter-gst)
4939 ("xorgproto" ,xorgproto)
4940 ("libxxf86vm" ,libxxf86vm)
4941 ("libxtst" ,libxtst)
4942 ("libxrandr" ,libxrandr)
4943 ("libxml2" ,libxml2)
4944 ("libsoup" ,libsoup)
4945 ("libpeas" ,libpeas)
4946 ("librsvg" ,librsvg)
4947 ("lirc" ,lirc)
4948 ("gnome-desktop" ,gnome-desktop)
4949 ("gstreamer" ,gstreamer)
4950 ("gst-plugins-base" ,gst-plugins-base)
4951 ("gst-plugins-good" ,gst-plugins-good)
4952 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4953 ("adwaita-icon-theme" ,adwaita-icon-theme)
4954 ("python" ,python)
4955 ("python-pygobject" ,python-pygobject)
4956 ("totem-pl-parser" ,totem-pl-parser)
4957 ("grilo" ,grilo)
4958 ("grilo-plugins" ,grilo-plugins)
4959 ("vala" ,vala)))
4960 (arguments
4961 `(#:glib-or-gtk? #t
4962
4963 ;; Disable automatic GStreamer plugin installation via PackageKit and
4964 ;; all that.
4965 #:configure-flags '("-D" "enable-easy-codec-installation=no"
4966
4967 ;; Do not build .a files for the plugins, it's
4968 ;; completely useless. This saves 2 MiB.
4969 "--default-library" "shared")
4970 #:phases
4971 (modify-phases %standard-phases
4972 (add-after 'unpack 'skip-gtk-update-icon-cache
4973 ;; Don't create 'icon-theme.cache'.
4974 (lambda _
4975 (substitute* "meson_post_install.py"
4976 (("gtk-update-icon-cache") "true"))
4977 #t))
4978 (add-before
4979 'install 'disable-cache-generation
4980 (lambda _
4981 (setenv "DESTDIR" "/")
4982 #t))
4983 (add-before
4984 'check 'pre-check
4985 (lambda _
4986 ;; Tests require a running X server.
4987 (system "Xvfb :1 &")
4988 (setenv "DISPLAY" ":1")
4989 #t))
4990 (add-after
4991 'install 'wrap-totem
4992 (lambda* (#:key inputs outputs #:allow-other-keys)
4993 (let ((out (assoc-ref outputs "out"))
4994 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4995 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4996 (wrap-program (string-append out "/bin/totem")
4997 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4998 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4999 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5000 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
5001 #t)))))
5002 (home-page "https://wiki.gnome.org/Apps/Videos")
5003 (synopsis "Simple media player for GNOME based on GStreamer")
5004 (description "Totem is a simple yet featureful media player for GNOME
5005 which can read a large number of file formats.")
5006 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5007 ;; to be used and distributed together with GStreamer and Totem. See
5008 ;; file://COPYING in the source distribution for details.
5009 (license license:gpl2+)))
5010
5011 (define-public rhythmbox
5012 (package
5013 (name "rhythmbox")
5014 (version "3.4.3")
5015 (source (origin
5016 (method url-fetch)
5017 (uri (string-append "mirror://gnome/sources/" name "/"
5018 (version-major+minor version) "/"
5019 name "-" version ".tar.xz"))
5020 (sha256
5021 (base32
5022 "1yx3n7p9vmv23jsv98fxwq95n78awdxqm8idhyhxx2d6vk4w1hgx"))))
5023 (build-system glib-or-gtk-build-system)
5024 (arguments
5025 `(#:configure-flags
5026 (list "--enable-lirc"
5027 "--enable-python"
5028 "--enable-vala"
5029 "--with-brasero"
5030 "--with-gudev"
5031 "--with-libsecret")
5032 #:phases
5033 (modify-phases %standard-phases
5034 (add-after
5035 'install 'wrap-rhythmbox
5036 (lambda* (#:key inputs outputs #:allow-other-keys)
5037 (let ((out (assoc-ref outputs "out"))
5038 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5039 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5040 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5041 (python-path (getenv "PYTHONPATH")))
5042 (wrap-program (string-append out "/bin/rhythmbox")
5043 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5044 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5045 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5046 `("PYTHONPATH" ":" prefix (,python-path))))
5047 #t)))))
5048 (propagated-inputs
5049 `(("dconf" ,dconf)))
5050 (native-inputs
5051 `(("itstool" ,itstool)
5052 ("intltool" ,intltool)
5053 ("glib" ,glib "bin")
5054 ("gobject-introspection" ,gobject-introspection)
5055 ("desktop-file-utils" ,desktop-file-utils)
5056 ("pkg-config" ,pkg-config)
5057 ("xmllint" ,libxml2)))
5058 (inputs
5059 `(("json-glib" ,json-glib)
5060 ("tdb" ,tdb)
5061 ("gnome-desktop" ,gnome-desktop)
5062 ("python" ,python)
5063 ("python-pygobject" ,python2-pygobject)
5064 ("vala" ,vala)
5065 ("gmime" ,gmime)
5066 ("adwaita-icon-theme" ,adwaita-icon-theme)
5067 ("grilo" ,grilo)
5068 ("grilo-plugins" ,grilo-plugins)
5069 ("gstreamer" ,gstreamer)
5070 ("gst-plugins-base" ,gst-plugins-base)
5071 ("gst-plugins-good" ,gst-plugins-good)
5072 ("totem-pl-parser" ,totem-pl-parser)
5073 ("libgudev" ,libgudev)
5074 ;;("libmtp" ,libmtp) FIXME: Not detected
5075 ("libsecret" ,libsecret)
5076 ("libsoup" ,libsoup)
5077 ("libnotify" ,libnotify)
5078 ("libpeas" ,libpeas)
5079 ("lirc" ,lirc)
5080 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5081 ;;("clutter" ,clutter)
5082 ;;("clutter-gtk" ,clutter-gtk)
5083 ;;("clutter-gst" ,clutter-gst)
5084 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5085 ("atk" ,atk)
5086 ("pango" ,pango)
5087 ("gtk+" ,gtk+)
5088 ;; TODO:
5089 ;; * libgpod
5090 ;; * mx
5091 ("brasero" ,brasero)))
5092 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5093 (synopsis "Music player for GNOME")
5094 (description "Rhythmbox is a music playing application for GNOME. It
5095 supports playlists, song ratings, and any codecs installed through gstreamer.")
5096 (license license:gpl2+)))
5097
5098 (define-public eog
5099 (package
5100 (name "eog")
5101 (version "3.32.2")
5102 (source (origin
5103 (method url-fetch)
5104 (uri (string-append "mirror://gnome/sources/" name "/"
5105 (version-major+minor version) "/"
5106 name "-" version ".tar.xz"))
5107 (sha256
5108 (base32
5109 "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy"))))
5110 (build-system meson-build-system)
5111 (arguments
5112 `(#:configure-flags
5113 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5114 (list (string-append "-Dc_link_args=-Wl,-rpath="
5115 (assoc-ref %outputs "out") "/lib/eog"))
5116 #:phases
5117 (modify-phases %standard-phases
5118 (add-after 'unpack 'skip-gtk-update-icon-cache
5119 ;; Don't create 'icon-theme.cache'.
5120 (lambda _
5121 (substitute* "meson_post_install.py"
5122 (("gtk-update-icon-cache") "true"))
5123 #t))
5124 (add-after 'install 'wrap-eog
5125 (lambda* (#:key outputs #:allow-other-keys)
5126 (let ((out (assoc-ref outputs "out"))
5127 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5128 (wrap-program (string-append out "/bin/eog")
5129 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5130 #t)))))
5131 (propagated-inputs
5132 `(("dconf" ,dconf)))
5133 (native-inputs
5134 `(("intltool" ,intltool)
5135 ("itstool" ,itstool)
5136 ("glib" ,glib "bin")
5137 ("gobject-introspection" ,gobject-introspection)
5138 ("pkg-config" ,pkg-config)
5139 ("xmllint" ,libxml2)))
5140 (inputs
5141 `(("gnome-desktop" ,gnome-desktop)
5142 ("shared-mime-info" ,shared-mime-info)
5143 ("adwaita-icon-theme" ,adwaita-icon-theme)
5144 ("exempi" ,exempi)
5145 ("lcms" ,lcms)
5146 ("libexif" ,libexif)
5147 ("libpeas" ,libpeas)
5148 ("libjpeg" ,libjpeg)
5149 ("librsvg" ,librsvg)
5150 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5151 ("gtk+" ,gtk+)))
5152 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5153 (synopsis "GNOME image viewer")
5154 (description "Eye of GNOME is the GNOME image viewer. It
5155 supports image conversion, rotation, and slideshows.")
5156 (license license:gpl2+)))
5157
5158 (define-public eog-plugins
5159 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5160 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5161 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5162 ;; 'XDG_DATA_DIRS' appropriately set.
5163 (package
5164 (name "eog-plugins")
5165 (version "3.26.4")
5166 (source (origin
5167 (method url-fetch)
5168 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5169 (version-major+minor version) "/"
5170 "eog-plugins-" version ".tar.xz"))
5171 (sha256
5172 (base32
5173 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5174 (build-system gnu-build-system)
5175 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5176 (synopsis "Extensions for the Eye of GNOME image viewer")
5177 (native-inputs
5178 `(("pkg-config" ,pkg-config)
5179 ("gettext" ,gnu-gettext)))
5180 (inputs
5181 `(("eog" ,eog)
5182 ("glib" ,glib)
5183 ("gtk+" ,gtk+)
5184 ("libpeas" ,libpeas)
5185 ("libexif" ,libexif)
5186 ("libchamplain" ,libchamplain)))
5187 (description
5188 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5189 notably:
5190
5191 @itemize
5192 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5193 @item @dfn{Map}, which displays a map of where the picture was taken on the
5194 side panel;
5195 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5196 @end itemize\n")
5197
5198 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5199 ;; long suspicious byte stream that goes to a
5200 ;; ".gresource.eog_postasa_plugin" ELF section.
5201 (license license:gpl2+)))
5202
5203 (define-public libgudev
5204 (package
5205 (name "libgudev")
5206 (version "232")
5207 (source (origin
5208 (method url-fetch)
5209 (uri (string-append "mirror://gnome/sources/" name "/"
5210 version "/" name "-" version ".tar.xz"))
5211 (sha256
5212 (base32
5213 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5214 (build-system gnu-build-system)
5215 (arguments
5216 '(#:configure-flags
5217 ;; umockdev depends on libgudev.
5218 (list "--disable-umockdev")))
5219 (native-inputs
5220 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5221 ("gobject-introspection" ,gobject-introspection)
5222 ("pkg-config" ,pkg-config)))
5223 (propagated-inputs
5224 `(("glib" ,glib))) ; required by gudev-1.0.pc
5225 (inputs
5226 `(("udev" ,eudev)))
5227 (home-page "https://wiki.gnome.org/Projects/libgudev")
5228 (synopsis "GObject bindings for libudev")
5229 (description
5230 "This library provides GObject bindings for libudev. It was originally
5231 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5232 (license license:lgpl2.1+)))
5233
5234 (define-public gvfs
5235 (package
5236 (name "gvfs")
5237 (version "1.40.1")
5238 (source (origin
5239 (method url-fetch)
5240 (uri (string-append "mirror://gnome/sources/gvfs/"
5241 (version-major+minor version) "/"
5242 "gvfs-" version ".tar.xz"))
5243 (sha256
5244 (base32
5245 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5246 (build-system meson-build-system)
5247 (arguments
5248 '(#:glib-or-gtk? #t
5249 #:configure-flags
5250 (list "-Dsystemduserunitdir=no"
5251 "-Dtmpfilesdir=no"
5252 ;; Otherwise, the RUNPATH will lack the final path component.
5253 (string-append "-Dc_link_args=-Wl,-rpath="
5254 (assoc-ref %outputs "out") "/lib/gvfs"))))
5255 (native-inputs
5256 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5257 ("gettext" ,gettext-minimal)
5258 ("gtk-doc" ,gtk-doc)
5259 ("pkg-config" ,pkg-config)
5260 ("xsltproc" ,libxslt)))
5261 (inputs
5262 `(("avahi" ,avahi)
5263 ("docbook-xml" ,docbook-xml-4.2)
5264 ("docbook-xsl" ,docbook-xsl)
5265 ("dbus" ,dbus)
5266 ("elogind" ,elogind)
5267 ("fuse" ,fuse)
5268 ("gcr" ,gcr)
5269 ("glib" ,glib)
5270 ("gnome-online-accounts" ,gnome-online-accounts)
5271 ("libarchive" ,libarchive)
5272 ("libbluray" ,libbluray)
5273 ("libcap" ,libcap)
5274 ("libcdio-paranoia" ,libcdio-paranoia)
5275 ("libgcrypt" ,libgcrypt)
5276 ("libgdata" ,libgdata)
5277 ("libgphoto2" ,libgphoto2)
5278 ("libgudev" ,libgudev)
5279 ("libimobiledevice" ,libimobiledevice)
5280 ("libmtp" ,libmtp)
5281 ("libnfs" ,libnfs)
5282 ("libsecret" ,libsecret)
5283 ("libsmbclient" ,samba)
5284 ("libsoup" ,libsoup)
5285 ("libxml2" ,libxml2)
5286 ("openssh" ,openssh)
5287 ("polkit" ,polkit)
5288 ("udisks" ,udisks)))
5289 (home-page "https://wiki.gnome.org/gvfs/")
5290 (synopsis "Userspace virtual file system for GIO")
5291 (description
5292 "GVFS is a userspace virtual file system designed to work with the I/O
5293 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5294 to all applications using the GIO API. It also supports exposing the GVFS
5295 mounts to non-GIO applications using FUSE.
5296
5297 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5298 DAV, and others.")
5299 (license license:lgpl2.0+)))
5300
5301 (define-public gusb
5302 (package
5303 (name "gusb")
5304 (version "0.3.0")
5305 (source (origin
5306 (method git-fetch)
5307 (uri (git-reference
5308 (url "https://github.com/hughsie/libgusb.git")
5309 (commit version)))
5310 (file-name (git-file-name name version))
5311 (sha256
5312 (base32
5313 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5314 (build-system meson-build-system)
5315 (native-inputs
5316 `(("gobject-introspection" ,gobject-introspection)
5317 ("pkg-config" ,pkg-config)
5318 ("vala" ,vala)
5319 ("gtk-doc" ,gtk-doc)))
5320 (propagated-inputs
5321 ;; Both of these are required by gusb.pc.
5322 `(("glib" ,glib)
5323 ("libusb" ,libusb)))
5324 (arguments
5325 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5326 (home-page "https://github.com/hughsie/libgusb")
5327 (synopsis "GLib binding for libusb1")
5328 (description
5329 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5330 asynchronous control, bulk and interrupt transfers with proper cancellation
5331 and integration into a mainloop. This makes it easy to integrate low level
5332 USB transfers with your high-level application or system daemon.")
5333 (license license:lgpl2.1+)))
5334
5335 (define-public simple-scan
5336 (package
5337 (name "simple-scan")
5338 (version "3.34.2")
5339 (source
5340 (origin
5341 (method url-fetch)
5342 (uri (string-append "mirror://gnome/sources/simple-scan/"
5343 (version-major+minor version) "/"
5344 "simple-scan-" version ".tar.xz"))
5345 (sha256
5346 (base32 "1fk3g4f9slckqfwm576jrjq1d1qihw0dlgzdf00ns7qbhzb0kxsp"))))
5347 (build-system meson-build-system)
5348 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5349 (arguments
5350 '(#:glib-or-gtk? #t))
5351 (inputs
5352 `(("gtk" ,gtk+)
5353 ("zlib" ,zlib)
5354 ("cairo" ,cairo)
5355 ("colord" ,colord)
5356 ("gdk-pixbuf" ,gdk-pixbuf)
5357 ("gusb" ,gusb)
5358 ("libsane" ,sane-backends)))
5359 (native-inputs
5360 `(("gettext" ,gettext-minimal)
5361 ("itstool" ,itstool)
5362 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5363 ("pkg-config" ,pkg-config)
5364 ("vala" ,vala)
5365 ("xmllint" ,libxml2)))
5366 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5367 (synopsis "Document and image scanner")
5368 (description
5369 "Document Scanner is an easy-to-use application that lets you connect your
5370 scanner and quickly capture images and documents in an appropriate format. It
5371 supports any scanner for which a suitable SANE driver is available, which is
5372 almost all of them.")
5373 (license license:gpl3+)))
5374
5375 (define-public eolie
5376 (package
5377 (name "eolie")
5378 (version "0.9.63")
5379 (source (origin
5380 (method url-fetch)
5381 (uri (string-append "https://gitlab.gnome.org/World/eolie/"
5382 "uploads/d42b466752729a0d3fa828a721e25043/"
5383 "eolie-" version ".tar.xz"))
5384 (sha256
5385 (base32
5386 "11pp8g0w22h1q0bbj9517l5838gcymvvp8fp9kh6h2dmgir2ssih"))))
5387 (build-system meson-build-system)
5388 (arguments
5389 `(#:glib-or-gtk? #t
5390 #:phases
5391 (modify-phases %standard-phases
5392 (add-after 'unpack 'skip-gtk-update-icon-cache
5393 ;; Don't create 'icon-theme.cache'.
5394 (lambda _
5395 (substitute* "meson_post_install.py"
5396 (("gtk-update-icon-cache") "true"))
5397 #t))
5398 (add-after 'wrap 'wrap-more
5399 (lambda* (#:key inputs outputs #:allow-other-keys)
5400 (let* ((out (assoc-ref outputs "out"))
5401 ;; These libraries must be on LD_LIBRARY_PATH.
5402 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5403 "atk" "gtk+" "gsettings-desktop-schemas"
5404 "gobject-introspection"))
5405 (path (string-join
5406 (map (lambda (lib)
5407 (string-append (assoc-ref inputs lib) "/lib"))
5408 libs)
5409 ":")))
5410 (wrap-program (string-append out "/bin/eolie")
5411 `("LD_LIBRARY_PATH" ":" prefix (,path))
5412 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5413 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5414 #t)))))
5415 (native-inputs
5416 `(("intltool" ,intltool)
5417 ("itstool" ,itstool)
5418 ("pkg-config" ,pkg-config)
5419 ("python" ,python)
5420 ("glib:bin" ,glib "bin")))
5421 (inputs
5422 `(("gobject-introspection" ,gobject-introspection)
5423 ("glib-networking" ,glib-networking)
5424 ("cairo" ,cairo)
5425 ("gtk+" ,gtk+)
5426 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5427 ("python" ,python-wrapper)
5428 ("python-dateutil" ,python-dateutil)
5429 ("python-pyfxa" ,python-pyfxa)
5430 ("python-pygobject" ,python-pygobject)
5431 ("python-pycairo" ,python-pycairo)
5432 ("python-pycrypto" ,python-pycrypto)
5433 ("libsecret" ,libsecret)
5434 ("gtkspell3" ,gtkspell3)
5435 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5436 ("webkitgtk" ,webkitgtk)))
5437 (home-page "https://wiki.gnome.org/Apps/Eolie")
5438 (synopsis "Web browser for GNOME")
5439 (description
5440 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5441 a secret password store, an adblocker, and a modern UI.")
5442 (license license:gpl3+)))
5443
5444 (define-public epiphany
5445 (package
5446 (name "epiphany")
5447 (version "3.32.5")
5448 (source (origin
5449 (method url-fetch)
5450 (uri (string-append "mirror://gnome/sources/epiphany/"
5451 (version-major+minor version) "/"
5452 "epiphany-" version ".tar.xz"))
5453 (sha256
5454 (base32
5455 "1hj4yy53fwh96h17cqiw3gxc070vmc7yqwc7phvhnpyinkp9g5my"))))
5456
5457 (build-system meson-build-system)
5458 (arguments
5459 ;; FIXME: tests run under Xvfb, but fail with:
5460 ;; /src/bookmarks/ephy-bookmarks/create:
5461 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5462 ;; subsystem
5463 ;; FAIL
5464 '(#:tests? #f
5465 #:glib-or-gtk? #t
5466 #:phases
5467 (modify-phases %standard-phases
5468 (add-after 'unpack 'skip-gtk-update-icon-cache
5469 ;; Don't create 'icon-theme.cache'.
5470 (lambda _
5471 (substitute* "post_install.py"
5472 (("gtk-update-icon-cache") "true"))
5473 #t)))
5474 #:configure-flags
5475 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5476 (list (string-append "-Dc_link_args=-Wl,-rpath="
5477 (assoc-ref %outputs "out") "/lib/epiphany"))))
5478 (propagated-inputs
5479 `(("dconf" ,dconf)))
5480 (native-inputs
5481 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5482 ("glib:bin" ,glib "bin") ; for glib-mkenums
5483 ("intltool" ,intltool)
5484 ("itstool" ,itstool)
5485 ("pkg-config" ,pkg-config)
5486 ("xmllint" ,libxml2)))
5487 (inputs
5488 `(("avahi" ,avahi)
5489 ("gcr" ,gcr)
5490 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5491 ("glib-networking" ,glib-networking)
5492 ("gnome-desktop" ,gnome-desktop)
5493 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5494 ("json-glib" ,json-glib)
5495 ("iso-codes" ,iso-codes)
5496 ("libdazzle" ,libdazzle)
5497 ("libnotify" ,libnotify)
5498 ("libsecret" ,libsecret)
5499 ("libxslt" ,libxslt)
5500 ("nettle" ,nettle) ; for hogweed
5501 ("sqlite" ,sqlite)
5502 ("webkitgtk" ,webkitgtk)))
5503 (home-page "https://wiki.gnome.org/Apps/Web")
5504 (synopsis "GNOME web browser")
5505 (description
5506 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5507 principles are simplicity and standards compliance.")
5508 (license license:gpl2+)))
5509
5510 (define-public d-feet
5511 (package
5512 (name "d-feet")
5513 (version "0.3.14")
5514 (source (origin
5515 (method url-fetch)
5516 (uri (string-append "mirror://gnome/sources/" name "/"
5517 (version-major+minor version) "/"
5518 name "-" version ".tar.xz"))
5519 (sha256
5520 (base32
5521 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5522 (build-system glib-or-gtk-build-system)
5523 (arguments
5524 '(#:out-of-source? #f ; tests need to run in the source directory.
5525 #:phases
5526 (modify-phases %standard-phases
5527 (add-before
5528 'check 'pre-check
5529 (lambda _
5530 ;; The test suite requires a running X server.
5531 (system "Xvfb :1 &")
5532 (setenv "DISPLAY" ":1")
5533 ;; Don't fail on missing '/etc/machine-id'.
5534 (setenv "DBUS_FATAL_WARNINGS" "0")
5535 ;; tests.py and window.py don't meet E402:
5536 ;; E402 module level import not at top of file
5537 (substitute* "src/tests/Makefile"
5538 (("--ignore=E123") "--ignore=E123,E402"))
5539 #t))
5540 (add-after
5541 'install 'wrap-program
5542 (lambda* (#:key outputs #:allow-other-keys)
5543 (let ((prog (string-append (assoc-ref outputs "out")
5544 "/bin/d-feet")))
5545 (wrap-program prog
5546 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5547 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5548 #t))))))
5549 (native-inputs
5550 `(("intltool" ,intltool)
5551 ("itstool" ,itstool)
5552 ("pkg-config" ,pkg-config)
5553 ("python-pep8" ,python-pep8)
5554 ("xmllint" ,libxml2)
5555 ("xorg-server" ,xorg-server-for-tests)))
5556 (inputs
5557 `(("gobject-introspection" ,gobject-introspection)
5558 ("gtk+" ,gtk+)
5559 ("python" ,python-wrapper)
5560 ("hicolor-icon-theme" ,hicolor-icon-theme)
5561 ("python-pygobject" ,python-pygobject)))
5562 (home-page "https://wiki.gnome.org/Apps/DFeet")
5563 (synopsis "D-Bus debugger")
5564 (description
5565 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5566 of running programs and invoke methods on those interfaces.")
5567 (license license:gpl2+)))
5568
5569 (define-public yelp-xsl
5570 (package
5571 (name "yelp-xsl")
5572 (version "3.32.1")
5573 (source (origin
5574 (method url-fetch)
5575 (uri (string-append "mirror://gnome/sources/" name "/"
5576 (version-major+minor version) "/"
5577 name "-" version ".tar.xz"))
5578 (sha256
5579 (base32
5580 "013z2ixx9kfrs6hq79qpil093xfbc12y1p0mvsh6lpala30iphya"))))
5581 (build-system gnu-build-system)
5582 (native-inputs
5583 `(("intltool" ,intltool)
5584 ("itstool" ,itstool)
5585 ("xmllint" ,libxml2)))
5586 (home-page "https://wiki.gnome.org/Apps/Yelp")
5587 (synopsis "XSL stylesheets for Yelp")
5588 (description
5589 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5590 to format Docbook and Mallard documents.")
5591 (license license:gpl2+)))
5592
5593 (define-public yelp
5594 (package
5595 (name "yelp")
5596 (version "3.32.2")
5597 (source (origin
5598 (method url-fetch)
5599 (uri (string-append "mirror://gnome/sources/" name "/"
5600 (version-major+minor version) "/"
5601 name "-" version ".tar.xz"))
5602 (sha256
5603 (base32
5604 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5605 (build-system glib-or-gtk-build-system)
5606 (native-inputs
5607 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5608 ("intltool" ,intltool)
5609 ("itstool" ,itstool)
5610 ("pkg-config" ,pkg-config)))
5611 (propagated-inputs
5612 `(("dconf" ,dconf)))
5613 (inputs
5614 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5615 ("libxslt" ,libxslt)
5616 ("sqlite" ,sqlite)
5617 ("webkitgtk" ,webkitgtk)
5618 ("yelp-xsl" ,yelp-xsl)))
5619 (home-page "https://wiki.gnome.org/Apps/Yelp")
5620 (synopsis "GNOME help browser")
5621 (description
5622 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5623 man, info, and HTML documents. It can locate documents according to the
5624 freedesktop.org help system specification.")
5625 (license license:gpl2+)))
5626
5627 (define-public yelp-tools
5628 (package
5629 (name "yelp-tools")
5630 (version "3.28.0")
5631 (source (origin
5632 (method url-fetch)
5633 (uri (string-append "mirror://gnome/sources/" name "/"
5634 (version-major+minor version) "/"
5635 name "-" version ".tar.xz"))
5636 (sha256
5637 (base32
5638 "1b61dmlb1sd50fgq6zgnkcpx2s1py33q0x9cx67fzpsr4gmgxnw2"))))
5639 (build-system gnu-build-system)
5640 (native-inputs
5641 `(("pkg-config" ,pkg-config)))
5642 (propagated-inputs
5643 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5644 `(("itstool" ,itstool)
5645 ("xmllint" ,libxml2)
5646 ("xsltproc" ,libxslt)))
5647 (inputs
5648 `(("yelp-xsl" ,yelp-xsl)))
5649 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5650 (synopsis "Yelp documentation tools")
5651 (description
5652 "Yelp-tools is a collection of scripts and build utilities to help create,
5653 manage, and publish documentation for Yelp and the web. Most of the heavy
5654 lifting is done by packages like yelp-xsl and itstool. This package just
5655 wraps things up in a developer-friendly way.")
5656 (license license:gpl2+)))
5657
5658 (define-public yelp-tools/fixed
5659 ;; This variant fixes a python-libxml2 crash when processing UTF-8
5660 ;; sequences: <https://bugs.gnu.org/37468>. TODO: Remove this in
5661 ;; the next rebuild cycle.
5662 (hidden-package
5663 (package/inherit
5664 yelp-tools
5665 (propagated-inputs
5666 `(("itstool" ,itstool/fixed)
5667 ,@(alist-delete "itstool" (package-propagated-inputs yelp-tools)))))))
5668
5669 (define-public libgee
5670 (package
5671 (name "libgee")
5672 (version "0.20.2")
5673 (source (origin
5674 (method url-fetch)
5675 (uri (string-append "mirror://gnome/sources/libgee/"
5676 (version-major+minor version) "/"
5677 "libgee-" version ".tar.xz"))
5678 (sha256
5679 (base32
5680 "0g1mhl7nidg82v4cikkk8dakzc18hg7wv0dsf2pbyijzfm5mq0wy"))))
5681 (build-system gnu-build-system)
5682 (arguments
5683 `(#:phases
5684 (modify-phases %standard-phases
5685 (add-after 'unpack 'fix-introspection-install-dir
5686 (lambda* (#:key outputs #:allow-other-keys)
5687 (let ((out (assoc-ref outputs "out")))
5688 (substitute* "gee/Makefile.in"
5689 (("@INTROSPECTION_GIRDIR@")
5690 (string-append out "/share/gir-1.0/"))
5691 (("@INTROSPECTION_TYPELIBDIR@")
5692 (string-append out "/lib/girepository-1.0/")))))))))
5693 (native-inputs
5694 `(("glib" ,glib "bin")
5695 ("pkg-config" ,pkg-config)))
5696 (inputs
5697 `(("glib" ,glib)
5698 ("gobject-introspection" ,gobject-introspection)))
5699 (home-page "https://wiki.gnome.org/Projects/Libgee")
5700 (synopsis "GObject collection library")
5701 (description
5702 "Libgee is a utility library providing GObject-based interfaces and
5703 classes for commonly used data structures.")
5704 (license license:lgpl2.1+)))
5705
5706 (define-public gexiv2
5707 (package
5708 (name "gexiv2")
5709 (version "0.12.0")
5710 (source (origin
5711 (method url-fetch)
5712 (uri (string-append "mirror://gnome/sources/" name "/"
5713 (version-major+minor version) "/"
5714 name "-" version ".tar.xz"))
5715 (sha256
5716 (base32
5717 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5718 (build-system meson-build-system)
5719 (native-inputs
5720 `(("gcr" ,gcr)
5721 ("glib" ,glib "bin")
5722 ("pkg-config" ,pkg-config)
5723 ("vala" ,vala)))
5724 (propagated-inputs
5725 ;; Listed in "Requires" section of gexiv2.pc
5726 `(("exiv2" ,exiv2)))
5727 (inputs
5728 `(("glib" ,glib)
5729 ("gobject-introspection" ,gobject-introspection)))
5730 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5731 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5732 (description
5733 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5734 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5735 metadata in photo and video files of various formats.")
5736 (license license:gpl2+)))
5737
5738 (define-public shotwell
5739 (package
5740 (name "shotwell")
5741 (version "0.30.7")
5742 (source (origin
5743 (method url-fetch)
5744 (uri (string-append "mirror://gnome/sources/shotwell/"
5745 (version-major+minor version) "/"
5746 "shotwell-" version ".tar.xz"))
5747 (sha256
5748 (base32
5749 "1m9i8r4gyd2hzlxjjwfyck4kz7gdg2vz2k6l6d0ga9hdfq2l4p9l"))))
5750 (build-system meson-build-system)
5751 (arguments
5752 '(#:glib-or-gtk? #t
5753 #:phases
5754 (modify-phases %standard-phases
5755 (add-after 'unpack 'skip-gtk-update-icon-cache
5756 (lambda _
5757 (substitute* "build-aux/meson/postinstall.py"
5758 (("gtk-update-icon-cache") (which "true"))
5759 (("update-desktop-database") (which "true")))
5760 #t)))))
5761 (propagated-inputs
5762 `(("dconf" ,dconf)))
5763 (native-inputs
5764 `(("gettext" ,gettext-minimal)
5765 ("glib:bin" ,glib "bin")
5766 ("itstool" ,itstool)
5767 ("pkg-config" ,pkg-config)
5768 ("vala" ,vala)))
5769 (inputs
5770 `(("gcr" ,gcr)
5771 ("gexiv2" ,gexiv2)
5772 ("gst-plugins-base" ,gst-plugins-base)
5773 ("gstreamer" ,gstreamer)
5774 ("json-glib" ,json-glib)
5775 ("libgdata" ,libgdata)
5776 ("libgee" ,libgee)
5777 ("libgphoto2" ,libgphoto2)
5778 ("libgudev" ,libgudev)
5779 ("libraw" ,libraw)
5780 ("libsoup" ,libsoup)
5781 ("libxml2" ,libxml2)
5782 ("sqlite" ,sqlite)
5783 ("webkitgtk" ,webkitgtk)))
5784 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5785 (synopsis "Photo manager for GNOME 3")
5786 (description
5787 "Shotwell is a digital photo manager designed for the GNOME desktop
5788 environment. It allows you to import photos from disk or camera, organize
5789 them by keywords and events, view them in full-window or fullscreen mode, and
5790 share them with others via social networking and more.")
5791 (license license:lgpl2.1+)))
5792
5793 (define-public file-roller
5794 (package
5795 (name "file-roller")
5796 (version "3.32.3")
5797 (source (origin
5798 (method url-fetch)
5799 (uri (string-append "mirror://gnome/sources/file-roller/"
5800 (version-major+minor version) "/"
5801 "file-roller-" version ".tar.xz"))
5802 (sha256
5803 (base32
5804 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5805 (build-system meson-build-system)
5806 (native-inputs
5807 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5808 ("intltool" ,intltool)
5809 ("itstool" ,itstool)
5810 ("pkg-config" ,pkg-config)
5811 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5812 ("glib:bin" ,glib "bin")))
5813 ;; TODO: Add libnautilus.
5814 (inputs
5815 `(("gtk+" ,gtk+)
5816 ("gdk-pixbuf" ,gdk-pixbuf)
5817 ("json-glib" ,json-glib)
5818 ("libarchive" ,libarchive)
5819 ("libnotify" ,libnotify)
5820 ("nettle" ,nettle)
5821 ("libxml2" ,libxml2)))
5822 (synopsis "Graphical archive manager for GNOME")
5823 (description "File Roller is an archive manager for the GNOME desktop
5824 environment that allows users to view, unpack, and create compressed archives
5825 such as gzip tarballs.")
5826 (home-page "http://fileroller.sourceforge.net/")
5827 (license license:gpl2+)))
5828
5829 (define-public gnome-session
5830 (package
5831 (name "gnome-session")
5832 (version "3.32.0")
5833 (source (origin
5834 (method url-fetch)
5835 (uri (string-append "mirror://gnome/sources/" name "/"
5836 (version-major+minor version) "/"
5837 name "-" version ".tar.xz"))
5838 (sha256
5839 (base32
5840 "0zrzkpd406i159mla7bfs5npa32fgqh66aip1rfq02rgsgmc9m5v"))))
5841 (arguments
5842 '(#:glib-or-gtk? #t
5843 #:phases
5844 (modify-phases %standard-phases
5845 (add-before 'configure 'pre-configure
5846 (lambda* (#:key outputs #:allow-other-keys)
5847 ;; Use elogind instead of systemd.
5848 (substitute* "meson.build"
5849 (("libsystemd-login") "libelogind")
5850 (("and libsystemd_daemon_dep.found.*") ","))
5851 (substitute* "gnome-session/gsm-systemd.c"
5852 (("#include <systemd/sd-login.h>")
5853 "#include <elogind/sd-login.h>"))
5854 ;; Remove uses of the systemd daemon.
5855 (substitute* "gnome-session/gsm-autostart-app.c"
5856 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5857 #t))
5858 (add-after 'install 'wrap-gnome-session
5859 (lambda* (#:key inputs outputs #:allow-other-keys)
5860 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5861 (let ((glib (assoc-ref inputs "glib:bin"))
5862 (out (assoc-ref outputs "out")))
5863 (wrap-program (string-append out "/bin/gnome-session")
5864 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5865 #t))))
5866
5867 #:configure-flags
5868 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5869 "-Dman=false" ; FIXME: disabled because of docbook validation error
5870 "-Dsystemd_journal=false")))
5871 (build-system meson-build-system)
5872 (native-inputs
5873 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5874 ("pkg-config" ,pkg-config)
5875 ("intltool" ,intltool)
5876 ("xsltproc" ,libxslt)
5877 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5878 ("docbook-xsl" ,docbook-xsl)
5879 ("docbook-xml" ,docbook-xml)
5880 ("xmlto" ,xmlto)))
5881 (inputs
5882 `(("elogind" ,elogind)
5883 ("gnome-desktop" ,gnome-desktop)
5884 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5885 ("gtk+" ,gtk+)
5886 ("json-glib" ,json-glib)
5887 ("libsm" ,libsm)
5888 ("libxcomposite" ,libxcomposite)
5889 ("libxtst" ,libxtst)
5890 ("mesa" ,mesa)
5891 ("upower" ,upower)
5892 ("xtrans" ,xtrans)))
5893 (synopsis "Session manager for GNOME")
5894 (description
5895 "This package contains the GNOME session manager, as well as a
5896 configuration program to choose applications starting on login.")
5897 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5898 (license license:gpl2+)))
5899
5900 (define-public gjs
5901 (package
5902 (name "gjs")
5903 (version "1.56.2")
5904 (source (origin
5905 (method url-fetch)
5906 (uri (string-append "mirror://gnome/sources/" name "/"
5907 (version-major+minor version) "/"
5908 name "-" version ".tar.xz"))
5909 (sha256
5910 (base32
5911 "1b5321krn89p3f7s2ik6gpfnc61apzljhlnbqky8c88f7n6832ac"))))
5912 (build-system gnu-build-system)
5913 (arguments
5914 '(#:phases
5915 (modify-phases %standard-phases
5916 (add-before
5917 'check 'pre-check
5918 (lambda _
5919 ;; The test suite requires a running X server.
5920 (system "Xvfb :1 &")
5921 (setenv "DISPLAY" ":1")
5922
5923 ;; For the missing /etc/machine-id.
5924 (setenv "DBUS_FATAL_WARNINGS" "0")
5925
5926 ;; Our mozjs-38 package does not compile the required Intl API
5927 ;; support for these failing tests.
5928 (substitute* "installed-tests/js/testLocale.js"
5929 ((".*toBeDefined.*") "")
5930 ((".*expect\\(datestr\\).*") ""))
5931 (substitute* "installed-tests/scripts/testCommandLine.sh"
5932 (("Valentín") "")
5933 (("☭") ""))
5934 #t)))))
5935 (native-inputs
5936 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5937 ("pkg-config" ,pkg-config)
5938 ("xmllint" ,libxml2)
5939 ;; For testing
5940 ("dbus-launch" ,dbus)
5941 ("uuidgen" ,util-linux)
5942 ("xvfb" ,xorg-server-for-tests)))
5943 (propagated-inputs
5944 ;; These are all in the Requires.private field of gjs-1.0.pc.
5945 `(("cairo" ,cairo)
5946 ("gobject-introspection" ,gobject-introspection)
5947 ("mozjs" ,mozjs-60)))
5948 (inputs
5949 `(("gtk+" ,gtk+)
5950 ("readline" ,readline)))
5951 (synopsis "Javascript bindings for GNOME")
5952 (home-page "https://live.gnome.org/Gjs")
5953 (description
5954 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5955 javascript engine and the GObject introspection framework.")
5956 (license license:gpl2+)))
5957
5958 (define-public gedit
5959 (package
5960 (name "gedit")
5961 (version "3.32.2")
5962 (source (origin
5963 (method url-fetch)
5964 (uri (string-append "mirror://gnome/sources/" name "/"
5965 (version-major+minor version) "/"
5966 name "-" version ".tar.xz"))
5967 (sha256
5968 (base32
5969 "1q2rk7fym542c7k3bn2wlnzgy384gxacbifsjny0spbg95gfybvl"))))
5970 (build-system meson-build-system)
5971 (arguments
5972 `(#:glib-or-gtk? #t
5973 #:configure-flags
5974 ;; Otherwise, the RUNPATH will lack the final path component.
5975 (list (string-append "-Dc_link_args=-Wl,-rpath="
5976 (assoc-ref %outputs "out") "/lib/gedit"))
5977
5978 ;; XXX: Generated .h files are sometimes used before being built.
5979 #:parallel-build? #f
5980
5981 #:phases
5982 (modify-phases %standard-phases
5983 (add-after 'unpack 'skip-gtk-update-icon-cache
5984 ;; Don't create 'icon-theme.cache'.
5985 (lambda _
5986 (substitute* "build-aux/meson/post_install.py"
5987 (("gtk-update-icon-cache") (which "true")))
5988 #t))
5989 (add-after 'unpack 'patch-libgd-fetch
5990 (lambda* (#:key inputs #:allow-other-keys)
5991 (let ((libgd (assoc-ref inputs "libgd")))
5992 ;; Calling git is unnecessary because libgd is fetched as a
5993 ;; native input to this package.
5994 (substitute* "meson.build"
5995 ((".*git.*") ""))
5996 (copy-recursively libgd "subprojects/libgd")
5997 #t)))
5998 (add-after 'install 'wrap-gedit
5999 (lambda* (#:key inputs outputs #:allow-other-keys)
6000 (let ((out (assoc-ref outputs "out"))
6001 (gtksourceview (assoc-ref inputs "gtksourceview"))
6002 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6003 (python-path (getenv "PYTHONPATH")))
6004 (wrap-program (string-append out "/bin/gedit")
6005 ;; For plugins.
6006 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6007 `("PYTHONPATH" ":" prefix (,python-path))
6008 ;; For language-specs.
6009 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6010 "/share")))))
6011 #t)))))
6012 (propagated-inputs
6013 `(("dconf" ,dconf)))
6014 (native-inputs
6015 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6016 ("intltool" ,intltool)
6017 ("itstool" ,itstool)
6018 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6019 ("gobject-introspection" ,gobject-introspection)
6020 ("libgd"
6021 ,(origin
6022 (method git-fetch)
6023 (uri (git-reference
6024 (url "https://gitlab.gnome.org/GNOME/libgd")
6025 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6026 (file-name (git-file-name "libgd" version))
6027 (sha256
6028 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6029 ("pkg-config" ,pkg-config)))
6030 (inputs
6031 `(("glib" ,glib)
6032 ("gspell" ,gspell)
6033 ("gtk+" ,gtk+)
6034 ("gtksourceview" ,gtksourceview)
6035 ("libpeas" ,libpeas)
6036 ("libxml2" ,libxml2)
6037 ("iso-codes" ,iso-codes)
6038 ("python-pygobject" ,python-pygobject)
6039 ("python" ,python)
6040 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6041 ("libx11" ,libx11)
6042 ("vala" ,vala)
6043 ("adwaita-icon-theme" ,adwaita-icon-theme)
6044 ("libsoup" ,libsoup)
6045 ("gnome-desktop" ,gnome-desktop)))
6046 (home-page "https://wiki.gnome.org/Apps/Gedit")
6047 (synopsis "GNOME text editor")
6048 (description "While aiming at simplicity and ease of use, gedit is a
6049 powerful general purpose text editor.")
6050 (license license:gpl2+)))
6051
6052 (define-public zenity
6053 (package
6054 (name "zenity")
6055 (version "3.32.0")
6056 (source (origin
6057 (method url-fetch)
6058 (uri (string-append "mirror://gnome/sources/zenity/"
6059 (version-major+minor version) "/"
6060 "zenity-" version ".tar.xz"))
6061 (sha256
6062 (base32
6063 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6064 (build-system gnu-build-system)
6065 (native-inputs
6066 `(("gettext" ,gettext-minimal)
6067 ("itstool" ,itstool)
6068 ("pkg-config" ,pkg-config)))
6069 (inputs
6070 `(("libnotify" ,libnotify)
6071 ("webkitgtk" ,webkitgtk)))
6072 (synopsis "Display graphical dialog boxes from shell scripts")
6073 (home-page "https://www.gnome.org")
6074 (description
6075 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6076 to display dialog boxes from the commandline and shell scripts.")
6077 (license license:lgpl2.0+)))
6078
6079 (define-public mutter
6080 (package
6081 (name "mutter")
6082 (version "3.32.2")
6083 (source (origin
6084 (method url-fetch)
6085 (uri (string-append "mirror://gnome/sources/" name "/"
6086 (version-major+minor version) "/"
6087 name "-" version ".tar.xz"))
6088 (sha256
6089 (base32
6090 "1h577i2ap7dpfy1jg101jvc6nzccc0csgvd55ahydlr8f94frcva"))))
6091 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6092 ;; versions of cogl and clutter. As a result, many of the inputs,
6093 ;; propagated-inputs, and configure flags used in cogl and clutter are
6094 ;; needed here as well.
6095 (build-system meson-build-system)
6096 (arguments
6097 '(;; XXX: All mutter tests fail with the following error:
6098 ;; Settings schema 'org.gnome.mutter' is not installed
6099 #:tests? #f
6100 #:glib-or-gtk? #t
6101 #:configure-flags
6102 ;; Otherwise, the RUNPATH will lack the final path component.
6103 (list (string-append "-Dc_link_args=-Wl,-rpath="
6104 (assoc-ref %outputs "out") "/lib:"
6105 (assoc-ref %outputs "out") "/lib/mutter-4")
6106
6107 ;; The following flags are needed for the bundled clutter
6108 (string-append "-Dxwayland_path="
6109 (assoc-ref %build-inputs "xorg-server-xwayland")
6110 "/bin/Xwayland")
6111
6112 ;; the remaining flags are needed for the bundled cogl
6113 (string-append "-Dopengl_libname="
6114 (assoc-ref %build-inputs "mesa")
6115 "/lib/libGL.so"))
6116 #:phases
6117 (modify-phases %standard-phases
6118 (add-after 'unpack 'disable-werror
6119 (lambda _
6120 ;; XXX: build fails with [-Werror]:
6121 ;; backends/meta-cursor-renderer.c:112:5: error:
6122 ;; implicit declaration of function ?roundf?
6123 (substitute* "meson.build"
6124 (("'-Werror=.*',") ""))
6125 #t))
6126 ;; Replace references to systemd libraries to elogind references.
6127 (add-before 'configure 'use-elogind
6128 (lambda _
6129 (substitute* (list "meson.build"
6130 "src/backends/native/meta-launcher.c"
6131 "src/core/main.c")
6132 (("systemd") "elogind"))
6133 #t)))))
6134 (native-inputs
6135 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6136 ("gobject-introspection" ,gobject-introspection)
6137 ("intltool" ,intltool)
6138 ("pkg-config" ,pkg-config)
6139 ("xorg-server" ,xorg-server-for-tests)
6140 ;; For git build
6141 ("autoconf" ,autoconf)
6142 ("automake" ,automake)
6143 ("libtool" ,libtool)))
6144 (propagated-inputs
6145 `(;; libmutter.pc refers to these:
6146 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6147 ("gtk+" ,gtk+)
6148 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6149 ("atk" ,atk)
6150 ("cairo" ,cairo)
6151 ("gdk-pixbuf" ,gdk-pixbuf)
6152 ("glib" ,glib)
6153 ("json-glib" ,json-glib)
6154 ("libinput" ,libinput)
6155 ("libx11" ,libx11)
6156 ("libxcomposite" ,libxcomposite)
6157 ("libxdamage" ,libxdamage)
6158 ("libxext" ,libxext)
6159 ("libxfixes" ,libxfixes)
6160 ("libxkbcommon" ,libxkbcommon)
6161 ("libxrandr" ,libxrandr)
6162 ("mesa" ,mesa)
6163 ("pango" ,pango)
6164 ("udev" ,eudev)
6165 ("xinput" ,xinput)))
6166 (inputs
6167 `(("elogind" ,elogind)
6168 ("gnome-desktop" ,gnome-desktop)
6169 ("gnome-settings-daemon" ,gnome-settings-daemon)
6170 ("libcanberra-gtk" ,libcanberra)
6171 ("libgudev" ,libgudev)
6172 ("libice" ,libice)
6173 ("libsm" ,libsm)
6174 ("libwacom" ,libwacom)
6175 ("libxkbfile" ,libxkbfile)
6176 ("libxrandr" ,libxrandr)
6177 ("libxtst" ,libxtst)
6178 ("pipewire" ,pipewire)
6179 ("startup-notification" ,startup-notification)
6180 ("upower-glib" ,upower)
6181 ("xkeyboard-config" ,xkeyboard-config)
6182 ("xorg-server-xwayland" ,xorg-server-xwayland)
6183 ("zenity" ,zenity)))
6184 (synopsis "Window and compositing manager")
6185 (home-page "https://www.gnome.org")
6186 (description
6187 "Mutter is a window and compositing manager that displays and manages your
6188 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6189 Clutter toolkit with solid window-management logic inherited from the Metacity
6190 window manager.")
6191 (license license:gpl2+)))
6192
6193 (define-public gnome-online-accounts
6194 (package
6195 (name "gnome-online-accounts")
6196 (version "3.32.1")
6197 (source (origin
6198 (method url-fetch)
6199 (uri (string-append "mirror://gnome/sources/" name "/"
6200 (version-major+minor version) "/"
6201 name "-" version ".tar.xz"))
6202 (sha256
6203 (base32
6204 "08g9kdj8fzcgp76z2zsj9m7wfjks9z6xfrfrbfmcr69k40mapfx8"))))
6205 (outputs '("out" "lib"))
6206 (build-system glib-or-gtk-build-system)
6207 (arguments
6208 `(#:configure-flags
6209 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6210 #:phases
6211 (modify-phases %standard-phases
6212 (add-before 'configure 'patch-libgoa-output
6213 (lambda* (#:key outputs #:allow-other-keys)
6214 (let ((lib (assoc-ref outputs "lib")))
6215 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6216 (("@prefix@") lib)
6217 (("@exec_prefix@") lib)
6218 (("@libdir@") (string-append lib "/lib"))
6219 (("@includedir@") (string-append lib "/include"))
6220 (("@datadir@") (string-append lib "/share")))
6221 ;; Make sure gobject-introspection knows about the output
6222 ;; too (see <https://bugs.gnu.org/36535>).
6223 (setenv "outputs" "out lib")
6224 #t))))))
6225 (native-inputs
6226 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6227 ("gobject-introspection" ,gobject-introspection)
6228 ("intltool" ,intltool)
6229 ("pkg-config" ,pkg-config)
6230 ("vala" ,vala)
6231 ("xsltproc" ,libxslt)))
6232 (propagated-inputs
6233 `(("glib" ,glib) ; required by goa-1.0.pc
6234 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6235 (inputs
6236 `(("docbook-xsl" ,docbook-xsl)
6237 ("json-glib" ,json-glib)
6238 ("libsecret" ,libsecret)
6239 ("rest" ,rest)
6240 ("webkitgtk" ,webkitgtk)))
6241 (synopsis "Single sign-on framework for GNOME")
6242 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6243 (description
6244 "GNOME Online Accounts provides interfaces so that applications and
6245 libraries in GNOME can access the user's online accounts. It has providers for
6246 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6247 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6248 (license license:lgpl2.0+)))
6249
6250 (define-public evolution-data-server
6251 (package
6252 (name "evolution-data-server")
6253 (version "3.32.4")
6254 (source (origin
6255 (method url-fetch)
6256 (uri (string-append "mirror://gnome/sources/" name "/"
6257 (version-major+minor version) "/"
6258 name "-" version ".tar.xz"))
6259 (patches (search-patches "evolution-data-server-locales.patch"
6260 "evolution-data-server-libical-compat.patch"))
6261 (sha256
6262 (base32
6263 "0zsc9xwy6ixk3x0dx69ax5isrdw8qxjdxg2i5fr95s40nss7rxl3"))))
6264 (build-system cmake-build-system)
6265 (arguments
6266 '(#:configure-flags
6267 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6268 (runpaths (map (lambda (s)
6269 (string-append lib "/evolution-data-server/" s))
6270 '("addressbook-backends" "calendar-backends"
6271 "camel-providers" "credential-modules"
6272 "registry-modules"))))
6273 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6274 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6275 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6276 "-DENABLE_VALA_BINDINGS=ON"
6277 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6278 (string-append lib "/evolution-data-server;")
6279 (string-join runpaths ";"))
6280 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6281 #:phases
6282 (modify-phases %standard-phases
6283 (add-after 'unpack 'disable-failing-tests
6284 (lambda _
6285 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6286 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6287 (delete-file-recursively "tests/book-migration")
6288 (substitute* "tests/CMakeLists.txt"
6289 (("add_subdirectory\\(book-migration\\)") ""))
6290 ;; tests/libebook/client/test-book-client-view-operations:8077):
6291 ;; e-data-server-WARNING **:
6292 ;; (src/libedataserver/e-source-registry.c:264):thread_closure_free:
6293 ;; runtime check failed:
6294 ;; (!g_main_context_pending (closure->main_context))
6295 (substitute* "tests/libebook/client/CMakeLists.txt"
6296 (("test-book-client-view-operations") ""))
6297 #t))
6298 (add-after 'unpack 'patch-paths
6299 (lambda _
6300 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6301 "tests/libedata-book/data-test-utils.c"
6302 "tests/libedata-book/test-book-cache-utils.c"
6303 "tests/libedata-cal/test-cal-cache-utils.c")
6304 (("/bin/rm") (which "rm")))
6305 #t))
6306 (add-before 'configure 'dont-override-rpath
6307 (lambda _
6308 (substitute* "CMakeLists.txt"
6309 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6310 ;; Remove it so the configure flag is respected.
6311 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6312 #t)))))
6313 (native-inputs
6314 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6315 ("gobject-introspection" ,gobject-introspection)
6316 ("gperf" ,gperf)
6317 ("intltool" ,intltool)
6318 ("pkg-config" ,pkg-config)
6319 ("vala" ,vala)
6320 ("python" ,python-wrapper)))
6321 (propagated-inputs
6322 ;; These are all in the Requires field of .pc files.
6323 `(("gtk+" ,gtk+)
6324 ("libical" ,libical)
6325 ("libsecret" ,libsecret)
6326 ("libsoup" ,libsoup)
6327 ("nss" ,nss)
6328 ("sqlite" ,sqlite)))
6329 (inputs
6330 `(("bdb" ,bdb)
6331 ("gcr" ,gcr)
6332 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6333 ("json-glib" ,json-glib)
6334 ("libcanberra" ,libcanberra)
6335 ("libgweather" ,libgweather)
6336 ("mit-krb5" ,mit-krb5)
6337 ("openldap" ,openldap)
6338 ("webkitgtk" ,webkitgtk)))
6339 (synopsis "Store address books and calendars")
6340 (home-page "https://wiki.gnome.org/Apps/Evolution")
6341 (description
6342 "This package provides a unified backend for programs that work with
6343 contacts, tasks, and calendar information. It was originally developed for
6344 Evolution (hence the name), but is now used by other packages as well.")
6345 (license license:lgpl2.0)))
6346
6347 (define-public caribou
6348 (package
6349 (name "caribou")
6350 (version "0.4.21")
6351 (source (origin
6352 (method url-fetch)
6353 (uri (string-append "mirror://gnome/sources/" name "/"
6354 (version-major+minor version) "/"
6355 name "-" version ".tar.xz"))
6356 (sha256
6357 (base32
6358 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6359 (build-system glib-or-gtk-build-system)
6360 (arguments
6361 '(#:phases
6362 (modify-phases %standard-phases
6363 (add-before
6364 'build 'pre-build
6365 (lambda* (#:key outputs #:allow-other-keys)
6366 (let ((out (assoc-ref outputs "out")))
6367 ;; Use absolute shared library path in Caribou-1.0.typelib.
6368 (substitute* "libcaribou/Makefile"
6369 (("--shared-library=libcaribou.so")
6370 (string-append "--shared-library="
6371 out "/lib/libcaribou.so")))
6372 #t)))
6373 (add-after 'install 'wrap-programs
6374 (lambda* (#:key outputs #:allow-other-keys)
6375 (let* ((out (assoc-ref outputs "out"))
6376 (python-path (getenv "PYTHONPATH"))
6377 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6378 (for-each
6379 (lambda (prog)
6380 (wrap-program prog
6381 `("PYTHONPATH" ":" prefix (,python-path))
6382 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6383 (list (string-append out "/bin/caribou-preferences")
6384 (string-append out "/libexec/antler-keyboard"))))
6385 #t)))))
6386 (native-inputs
6387 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6388 ("gobject-introspection" ,gobject-introspection)
6389 ("intltool" ,intltool)
6390 ("pkg-config" ,pkg-config)
6391 ("python" ,python)
6392 ("vala" ,vala)
6393 ("xsltproc" ,libxslt)))
6394 (propagated-inputs
6395 ;; caribou-1.0.pc refers to all these.
6396 `(("libgee" ,libgee)
6397 ("libxklavier" ,libxklavier)
6398 ("libxtst" ,libxtst)
6399 ("gtk+" ,gtk+)))
6400 (inputs
6401 `(("clutter" ,clutter)
6402 ("dconf" ,dconf)
6403 ("gtk+-2" ,gtk+-2)
6404 ("python-pygobject" ,python-pygobject)))
6405 (synopsis "Text entry and UI navigation application")
6406 (home-page "https://wiki.gnome.org/Projects/Caribou")
6407 (description
6408 "Caribou is an input assistive technology intended for switch and pointer
6409 users.")
6410 (license license:lgpl2.1)))
6411
6412 (define-public network-manager
6413 (package
6414 (name "network-manager")
6415 (version "1.18.4")
6416 (source (origin
6417 (method url-fetch)
6418 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6419 (version-major+minor version) "/"
6420 "NetworkManager-" version ".tar.xz"))
6421 (patches (search-patches "nm-plugin-path.patch"))
6422 (sha256
6423 (base32
6424 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
6425 (modules '((guix build utils)))
6426 (snippet
6427 '(begin
6428 (substitute* "src/devices/wwan/nm-modem-manager.c"
6429 (("systemd") "elogind"))
6430 #t))))
6431 (build-system gnu-build-system)
6432 (outputs '("out"
6433 "doc")) ; 8 MiB of gtk-doc HTML
6434 (arguments
6435 '(#:configure-flags
6436 (let ((out (assoc-ref %outputs "out"))
6437 (doc (assoc-ref %outputs "doc"))
6438 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6439 "/sbin/dhclient")))
6440 (list "--with-libnm-glib" ; needed by network-manager-applet
6441 "--with-systemd-journal=no"
6442 "--with-session-tracking=elogind"
6443 "--with-suspend-resume=elogind"
6444 "--with-consolekit=no"
6445 "--with-crypto=gnutls"
6446 "--disable-config-plugin-ibft"
6447 "--sysconfdir=/etc"
6448 "--localstatedir=/var"
6449 (string-append "--with-udev-dir="
6450 out "/lib/udev")
6451 (string-append "--with-dbus-sys-dir="
6452 out "/etc/dbus-1/system.d")
6453 (string-append "--with-html-dir="
6454 doc "/share/gtk-doc/html")
6455 (string-append "--with-dhclient=" dhclient)))
6456 #:phases
6457 (modify-phases %standard-phases
6458 ;; This bare "ls" invocation breaks some tests.
6459 (add-after 'unpack 'patch-ls-invocation
6460 (lambda _
6461 (substitute* "build-aux/ltmain.sh"
6462 (("`ls -")
6463 (string-append "`" (which "ls") " -")))
6464 #t))
6465 (add-before 'configure 'pre-configure
6466 (lambda _
6467 ;; These tests try to test aspects of network-manager's
6468 ;; functionality within restricted containers, but they don't
6469 ;; cope with being already in the Guix build jail as that jail
6470 ;; lacks some features that they would like to proxy over (like
6471 ;; a /sys mount).
6472 (substitute* '("Makefile.in")
6473 (("src/platform/tests/test-address-linux") " ")
6474 (("src/platform/tests/test-cleanup-linux") " ")
6475 (("src/platform/tests/test-link-linux") " ")
6476 (("src/platform/tests/test-route-linux") " ")
6477 (("src/devices/tests/test-acd") "")
6478 (("src/devices/tests/test-arping") " ")
6479 (("src/devices/tests/test-lldp") " ")
6480 (("src/tests/test-route-manager-linux") " "))
6481 #t))
6482 (add-after 'unpack 'delete-failing-tests
6483 (lambda _
6484 ;; FIXME: These three tests fail for unknown reasons.
6485 ;; ERROR:libnm-core/tests/test-general.c:5842:
6486 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6487 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6488 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6489 ;; ERROR:libnm-core/tests/test-setting.c:907:
6490 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
6491 (substitute* "Makefile.in"
6492 (("libnm-core/tests/test-general") " ")
6493 (("libnm-core/tests/test-keyfile") " ")
6494 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
6495 #t))
6496 (add-before 'check 'pre-check
6497 (lambda _
6498 ;; For the missing /etc/machine-id.
6499 (setenv "DBUS_FATAL_WARNINGS" "0")
6500 #t))
6501 (replace 'install
6502 (lambda _
6503 (invoke "make"
6504 "sysconfdir=/tmp"
6505 "rundir=/tmp"
6506 "statedir=/tmp"
6507 "nmstatedir=/tmp/nm"
6508 "install")
6509 #t)))))
6510 (propagated-inputs
6511 `(("glib" ,glib)))
6512 (native-inputs
6513 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6514 ("gobject-introspection" ,gobject-introspection)
6515 ("docbook-xsl" ,docbook-xsl)
6516 ("intltool" ,intltool)
6517 ("libxslt" ,libxslt)
6518 ("libxml2" ,libxml2)
6519 ("pkg-config" ,pkg-config)
6520 ;; For testing.
6521 ("python" ,python-wrapper)
6522 ("python-dbus" ,python-dbus)
6523 ("python-pygobject" ,python-pygobject)))
6524 (inputs
6525 `(("coreutils" ,coreutils) ; for ls
6526 ("curl" ,curl)
6527 ("cyrus-sasl" ,cyrus-sasl)
6528 ("dbus-glib" ,dbus-glib)
6529 ("dnsmasq" ,dnsmasq)
6530 ("eudev" ,eudev)
6531 ("gnutls" ,gnutls)
6532 ("iptables" ,iptables)
6533 ("isc-dhcp" ,isc-dhcp)
6534 ("jansson" ,jansson)
6535 ("libgcrypt" ,libgcrypt)
6536 ("libgudev" ,libgudev)
6537 ("libndp" ,libndp)
6538 ("libnl" ,libnl)
6539 ("libsoup" ,libsoup)
6540 ("modem-manager" ,modem-manager)
6541 ("newt" ,newt) ;for the 'nmtui' console interface
6542 ("polkit" ,polkit)
6543 ("ppp" ,ppp)
6544 ("readline" ,readline)
6545 ("util-linux" ,util-linux)
6546 ("elogind" ,elogind)))
6547 (synopsis "Network connection manager")
6548 (home-page "https://www.gnome.org/projects/NetworkManager/")
6549 (description
6550 "NetworkManager is a system network service that manages your network
6551 devices and connections, attempting to keep active network connectivity when
6552 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6553 devices, and provides VPN integration with a variety of different VPN
6554 services.")
6555 (license license:gpl2+)
6556 (properties '((upstream-name . "NetworkManager")))))
6557
6558 (define-public network-manager-openvpn
6559 (package
6560 (name "network-manager-openvpn")
6561 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
6562 (version "1.8.10")
6563 (source (origin
6564 (method url-fetch)
6565 (uri (string-append
6566 "mirror://gnome/sources/NetworkManager-openvpn/"
6567 (version-major+minor version)
6568 "/NetworkManager-openvpn-" version ".tar.xz"))
6569 (sha256
6570 (base32
6571 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
6572 (build-system gnu-build-system)
6573 (arguments
6574 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6575 #:phases
6576 (modify-phases %standard-phases
6577 (add-after 'configure 'patch-path
6578 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6579 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6580 "/sbin/openvpn"))
6581 (modprobe (string-append (assoc-ref inputs "kmod")
6582 "/bin/modprobe"))
6583 (pretty-ovpn (string-append "\"" ovpn "\"")))
6584 (for-each
6585 (lambda (file)
6586 (substitute* file
6587 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6588 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6589 (("\"/sbin/openvpn\"") pretty-ovpn)
6590 (("/sbin/modprobe") modprobe)))
6591 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6592 #t)))))
6593 (native-inputs
6594 `(("pkg-config" ,pkg-config)
6595 ("intltool" ,intltool)))
6596 (inputs
6597 `(("gtk+" ,gtk+)
6598 ("kmod" ,kmod)
6599 ("openvpn" ,openvpn)
6600 ("network-manager" ,network-manager)
6601 ("network-manager-applet" ,network-manager-applet) ;for libnma
6602 ("libsecret" ,libsecret)))
6603 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6604 (synopsis "OpenVPN plug-in for NetworkManager")
6605 (description
6606 "This extension of NetworkManager allows it to take care of connections
6607 to virtual private networks (VPNs) via OpenVPN.")
6608 (license license:gpl2+)
6609 (properties `((upstream-name . "NetworkManager-openvpn")))))
6610
6611 (define-public network-manager-vpnc
6612 (package
6613 (name "network-manager-vpnc")
6614 (version "1.2.6")
6615 (source (origin
6616 (method url-fetch)
6617 (uri (string-append
6618 "mirror://gnome/sources/NetworkManager-vpnc/"
6619 (version-major+minor version)
6620 "/NetworkManager-vpnc-" version ".tar.xz"))
6621 (sha256
6622 (base32
6623 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6624 (build-system gnu-build-system)
6625 (arguments
6626 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6627 #:phases
6628 (modify-phases %standard-phases
6629 (add-after 'configure 'patch-path
6630 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6631 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6632 "/sbin/vpnc"))
6633 (modprobe (string-append (assoc-ref inputs "kmod")
6634 "/bin/modprobe"))
6635 (pretty-ovpn (string-append "\"" vpnc "\"")))
6636 (substitute* "src/nm-vpnc-service.c"
6637 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6638 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6639 (("\"/sbin/vpnc\"") pretty-ovpn)
6640 (("/sbin/modprobe") modprobe)))
6641 #t)))))
6642 (native-inputs
6643 `(("pkg-config" ,pkg-config)
6644 ("intltool" ,intltool)))
6645 (inputs
6646 `(("gtk+" ,gtk+)
6647 ("kmod" ,kmod)
6648 ("vpnc" ,vpnc)
6649 ("network-manager" ,network-manager)
6650 ("network-manager-applet" ,network-manager-applet) ;for libnma
6651 ("libsecret" ,libsecret)))
6652 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6653 (synopsis "VPNC plug-in for NetworkManager")
6654 (description
6655 "Support for configuring virtual private networks based on VPNC.
6656 Compatible with Cisco VPN concentrators configured to use IPsec.")
6657 (license license:gpl2+)
6658 (properties `((upstream-name . "NetworkManager-vpnc")))))
6659
6660 (define-public network-manager-openconnect
6661 (package
6662 (name "network-manager-openconnect")
6663 (version "1.2.6")
6664 (source (origin
6665 (method url-fetch)
6666 (uri (string-append
6667 "mirror://gnome/sources/NetworkManager-openconnect/"
6668 (version-major+minor version)
6669 "/NetworkManager-openconnect-" version ".tar.xz"))
6670 (sha256
6671 (base32
6672 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6673 (build-system gnu-build-system)
6674 (arguments
6675 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6676 #:phases
6677 (modify-phases %standard-phases
6678 (add-after 'configure 'patch-path
6679 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6680 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6681 "/sbin/openconnect"))
6682 (modprobe (string-append (assoc-ref inputs "kmod")
6683 "/bin/modprobe"))
6684 (pretty-ovpn (string-append "\"" openconnect "\"")))
6685 (substitute* "src/nm-openconnect-service.c"
6686 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6687 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6688 (("/sbin/modprobe") modprobe)))
6689 #t)))))
6690 (native-inputs
6691 `(("intltool" ,intltool)
6692 ("network-manager-applet" ,network-manager-applet) ;for libnma
6693 ("pkg-config" ,pkg-config)))
6694 (inputs
6695 `(("gcr" ,gcr)
6696 ("gtk+" ,gtk+)
6697 ("kmod" ,kmod)
6698 ("libsecret" ,libsecret)
6699 ("libxml2" ,libxml2)
6700 ("network-manager" ,network-manager)
6701 ("openconnect" ,openconnect)))
6702 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6703 (synopsis "OpenConnect plug-in for NetworkManager")
6704 (description
6705 "This extension of NetworkManager allows it to take care of connections
6706 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6707 Cisco's AnyConnect SSL VPN.")
6708 (license license:gpl2+)
6709 (properties `((upstream-name . "NetworkManager-openconnect")
6710
6711 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6712 ;; file refers to account "nm-openconnect". Specify it here
6713 ;; so that 'network-manager-service-type' creates it.
6714 (user-accounts . ("nm-openconnect"))))))
6715
6716 (define-public mobile-broadband-provider-info
6717 (package
6718 (name "mobile-broadband-provider-info")
6719 (version "20190116")
6720 (source (origin
6721 (method url-fetch)
6722 (uri (string-append
6723 "mirror://gnome/sources/"
6724 "mobile-broadband-provider-info/" version "/"
6725 "mobile-broadband-provider-info-" version ".tar.xz"))
6726 (sha256
6727 (base32
6728 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6729 (build-system gnu-build-system)
6730 (arguments
6731 `(#:tests? #f)) ; no tests
6732 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6733 (synopsis "Database of broadband connection configuration")
6734 (description "Database of broadband connection configuration.")
6735 (license license:public-domain)))
6736
6737 (define-public network-manager-applet
6738 (package
6739 (name "network-manager-applet")
6740 (version "1.8.24")
6741 (source (origin
6742 (method url-fetch)
6743 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6744 (version-major+minor version) "/"
6745 "network-manager-applet-" version ".tar.xz"))
6746 (sha256
6747 (base32
6748 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
6749 (build-system meson-build-system)
6750 (arguments
6751 '(#:configure-flags
6752 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6753 (list "-Dlibnm_gtk=true")
6754 #:glib-or-gtk? #t))
6755 (native-inputs
6756 `(("intltool" ,intltool)
6757 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6758 ("gobject-introspection" ,gobject-introspection)
6759 ("gtk-doc" ,gtk-doc)
6760 ("pkg-config" ,pkg-config)))
6761 (propagated-inputs
6762 ;; libnm-gtk.pc refers to all these.
6763 `(("dbus-glib" ,dbus-glib)
6764 ("gtk+" ,gtk+)
6765 ("network-manager" ,network-manager)))
6766 (inputs
6767 `(("gcr" ,gcr)
6768 ("iso-codes" ,iso-codes)
6769 ("libgudev" ,libgudev)
6770 ("libnotify" ,libnotify)
6771 ("libsecret" ,libsecret)
6772 ("libselinux" ,libselinux)
6773 ("jansson" ,jansson) ; for team support
6774 ("modem-manager" ,modem-manager)
6775 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
6776 (synopsis "Applet for managing network connections")
6777 (home-page "https://www.gnome.org/projects/NetworkManager/")
6778 (description
6779 "This package contains a systray applet for NetworkManager. It displays
6780 the available networks and allows users to easily switch between them.")
6781 (license license:gpl2+)))
6782
6783 (define-public libxml++
6784 (package
6785 (name "libxml++")
6786 (version "3.0.1")
6787 (source (origin
6788 (method url-fetch)
6789 (uri (string-append "mirror://gnome/sources/" name "/"
6790 (version-major+minor version) "/"
6791 name "-" version ".tar.xz"))
6792 (sha256
6793 (base32
6794 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6795 (build-system gnu-build-system)
6796 ;; libxml++-3.0.pc refers to all these.
6797 (propagated-inputs
6798 `(("libxml2" ,libxml2)
6799 ("glibmm" ,glibmm)))
6800 (native-inputs
6801 `(("perl" ,perl)
6802 ("pkg-config" ,pkg-config)))
6803 (home-page "http://libxmlplusplus.sourceforge.net/")
6804 (synopsis "C++ wrapper for XML parser library libxml2")
6805 (description
6806 "This package provides a C++ wrapper for the XML parser library
6807 libxml2.")
6808 (license license:lgpl2.1+)))
6809
6810 (define-public libxml++-2
6811 (package
6812 (inherit libxml++)
6813 (name "libxml++")
6814 (version "2.40.1")
6815 (source (origin
6816 (method url-fetch)
6817 (uri (string-append "mirror://gnome/sources/" name "/"
6818 (version-major+minor version) "/"
6819 name "-" version ".tar.xz"))
6820 (sha256
6821 (base32
6822 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6823
6824 (define-public gdm
6825 (package
6826 (name "gdm")
6827 (version "3.32.0")
6828 (source (origin
6829 (method url-fetch)
6830 (uri (string-append "mirror://gnome/sources/" name "/"
6831 (version-major+minor version) "/"
6832 name "-" version ".tar.xz"))
6833 (sha256
6834 (base32
6835 "12ypdz9i24hwbl1d1wnnxb8zlvfa4f49n9ac5cl9d6h8qp4b0gb4"))))
6836 (build-system glib-or-gtk-build-system)
6837 (arguments
6838 '(#:configure-flags
6839 `("--without-plymouth"
6840 "--disable-systemd-journal"
6841
6842 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6843 ;; instead of having to replace it (i.e., stopping the mingetty
6844 ;; service for TTY 1 before starting GDM).
6845 "--with-initial-vt=7"
6846
6847 ;; Use '/etc/environment' for locale settings instead of the
6848 ;; systemd-specific '/etc/locale.conf'.
6849 "--with-lang-file=/etc/environment"
6850
6851 ,(string-append "--with-udevdir="
6852 (assoc-ref %outputs "out") "/lib/udev")
6853
6854 "--localstatedir=/var"
6855 ,(string-append "--with-default-path="
6856 (string-join '("/run/setuid-programs"
6857 "/run/current-system/profile/bin"
6858 "/run/current-system/profile/sbin")
6859 ":"))
6860 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6861 ;; XDG_DATA_DIRS so that it finds its schemas.
6862 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6863 #:phases
6864 (modify-phases %standard-phases
6865 (add-before
6866 'configure 'pre-configure
6867 (lambda* (#:key inputs outputs #:allow-other-keys)
6868 ;; We don't have <systemd/sd-daemon.h>.
6869 (substitute* '("common/gdm-log.c"
6870 "daemon/gdm-server.c"
6871 "daemon/gdm-session-worker.c"
6872 "daemon/gdm-session-worker-job.c")
6873 (("#include <systemd/sd-daemon\\.h>") ""))
6874 ;; Use elogind for sd-login.
6875 (substitute* '("common/gdm-common.c"
6876 "daemon/gdm-manager.c"
6877 "libgdm/gdm-user-switching.c")
6878 (("#include <systemd/sd-login\\.h>")
6879 "#include <elogind/sd-login.h>"))
6880 ;; Check for elogind.
6881 (substitute* '("configure")
6882 (("libsystemd")
6883 "libelogind"))
6884 ;; Look for system-installed sessions in
6885 ;; /run/current-system/profile/share.
6886 (substitute* '("libgdm/gdm-sessions.c"
6887 "daemon/gdm-session.c"
6888 "daemon/gdm-display.c"
6889 "daemon/gdm-launch-environment.c")
6890 (("DATADIR \"/x")
6891 "\"/run/current-system/profile/share/x")
6892 (("DATADIR \"/wayland")
6893 "\"/run/current-system/profile/share/wayland")
6894 (("DATADIR \"/gnome")
6895 "\"/run/current-system/profile/share/gnome"))
6896 (let ((propagate '("GDM_CUSTOM_CONF"
6897 "GDM_DBUS_DAEMON"
6898 "GDM_X_SERVER"
6899 "GDM_X_SESSION"
6900 ;; XXX: Remove this once GNOME Shell is
6901 ;; a dependency of GDM.
6902 "XDG_DATA_DIRS")))
6903 (substitute* "daemon/gdm-session.c"
6904 (("set_up_session_environment \\(self\\);")
6905 (apply string-append
6906 "set_up_session_environment (self);\n"
6907 (map (lambda (name)
6908 (string-append
6909 "gdm_session_set_environment_variable "
6910 "(self, \"" name "\","
6911 "g_getenv (\"" name "\"));\n"))
6912 propagate)))))
6913 ;; Find the configuration file using an environment variable.
6914 (substitute* '("common/gdm-settings.c")
6915 (("GDM_CUSTOM_CONF")
6916 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6917 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6918 " : GDM_CUSTOM_CONF)")))
6919 ;; Use service-supplied path to X.
6920 (substitute* '("daemon/gdm-server.c")
6921 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6922 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6923 (substitute* '("daemon/gdm-x-session.c")
6924 (("\"dbus-daemon\"")
6925 "g_getenv (\"GDM_DBUS_DAEMON\")")
6926 (("X_SERVER")
6927 "g_getenv (\"GDM_X_SERVER\")")
6928 (("GDMCONFDIR \"/Xsession\"")
6929 "g_getenv (\"GDM_X_SESSION\")"))
6930 ;; Use an absolute path for GNOME Session.
6931 (substitute* "daemon/gdm-launch-environment.c"
6932 (("\"gnome-session\"")
6933 (string-append "\"" (assoc-ref inputs "gnome-session")
6934 "/bin/gnome-session\"")))
6935 ;; Do not automatically select the placeholder session.
6936 (substitute* "daemon/gdm-session.c"
6937 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6938 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6939 "(g_strcmp0(search_dirs[i], \""
6940 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6941 "\") == 0 && "
6942 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6943 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
6944 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
6945 #t))
6946 ;; GDM requires that there be at least one desktop entry
6947 ;; file. This phase installs a hidden one that simply
6948 ;; fails. This enables users to use GDM with a
6949 ;; '~/.xsession' script with no other desktop entry files.
6950 ;; See <https://bugs.gnu.org/35068>.
6951 (add-after 'install 'install-placeholder-desktop-entry
6952 (lambda* (#:key inputs outputs #:allow-other-keys)
6953 (let* ((out (assoc-ref outputs "out"))
6954 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6955 (fail (string-append sessions "/fail.desktop")))
6956 (mkdir-p sessions)
6957 (with-output-to-file fail
6958 (lambda ()
6959 (for-each
6960 display
6961 '("[Desktop Entry]\n"
6962 "Encoding=UTF-8\n"
6963 "Type=Application\n"
6964 "Name=Fail\n"
6965 "Comment=This session fails immediately.\n"
6966 "NoDisplay=true\n"
6967 "Exec=false\n"))))
6968 #t)))
6969 ;; GDM needs GNOME Session to run these applications. We link
6970 ;; their autostart files in `share/gdm/greeter/autostart'
6971 ;; because GDM explicitly tells GNOME Session to look there.
6972 ;;
6973 ;; XXX: GNOME Shell should be linked here too, but currently
6974 ;; GNOME Shell depends on GDM.
6975 (add-after 'install 'link-autostart-files
6976 (lambda* (#:key inputs outputs #:allow-other-keys)
6977 (let* ((out (assoc-ref outputs "out"))
6978 (autostart (string-append out "/share/gdm/"
6979 "greeter/autostart"))
6980 (settings (assoc-ref inputs "gnome-settings-daemon")))
6981 (mkdir-p autostart)
6982 (with-directory-excursion autostart
6983 (for-each (lambda (desktop)
6984 (symlink desktop (basename desktop)))
6985 (find-files (string-append settings "/etc/xdg"))))
6986 #t))))))
6987 (native-inputs
6988 `(("dconf" ,dconf)
6989 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6990 ("gobject-introspection" ,gobject-introspection)
6991 ("intltool" ,intltool)
6992 ("itstool" ,itstool)
6993 ("pkg-config" ,pkg-config)
6994 ("xmllint" ,libxml2)))
6995 (inputs
6996 `(("accountsservice" ,accountsservice)
6997 ("check" ,check) ; for testing
6998 ("elogind" ,elogind)
6999 ("gnome-session" ,gnome-session)
7000 ("gnome-settings-daemon" ,gnome-settings-daemon)
7001 ("gtk+" ,gtk+)
7002 ("iso-codes" ,iso-codes)
7003 ("libcanberra" ,libcanberra)
7004 ("linux-pam" ,linux-pam)))
7005 (synopsis "Display manager for GNOME")
7006 (home-page "https://wiki.gnome.org/Projects/GDM/")
7007 (description
7008 "GNOME Display Manager is a system service that is responsible for
7009 providing graphical log-ins and managing local and remote displays.")
7010 (license license:gpl2+)))
7011
7012 (define-public libgtop
7013 (package
7014 (name "libgtop")
7015 (version "2.40.0")
7016 (source (origin
7017 (method url-fetch)
7018 (uri (string-append "mirror://gnome/sources/libgtop/"
7019 (version-major+minor version) "/"
7020 "libgtop-" version ".tar.xz"))
7021 (sha256
7022 (base32
7023 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7024 (build-system gnu-build-system)
7025 (native-inputs
7026 `(("gobject-introspection" ,gobject-introspection)
7027 ("intltool" ,intltool)
7028 ("perl" ,perl)
7029 ("pkg-config" ,pkg-config)))
7030 (propagated-inputs
7031 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7032 (synopsis "Portable system access library")
7033 (home-page "https://www.gnome.org/")
7034 (description
7035 "LibGTop is a library to get system specific data such as CPU and memory
7036 usage and information about running processes.")
7037 (license license:gpl2+)))
7038
7039 (define-public gnome-bluetooth
7040 (package
7041 (name "gnome-bluetooth")
7042 (version "3.32.1")
7043 (source (origin
7044 (method url-fetch)
7045 (uri (string-append "mirror://gnome/sources/" name "/"
7046 (version-major+minor version) "/"
7047 name "-" version ".tar.xz"))
7048 (sha256
7049 (base32
7050 "1am1gf0nzwg6x1s8ly13j0xnjzgrfj06j0dp52x4zy9s67ywlhb4"))))
7051 (build-system meson-build-system)
7052 (native-inputs
7053 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7054 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7055 ("gobject-introspection" ,gobject-introspection)
7056 ("intltool" ,intltool)
7057 ("pkg-config" ,pkg-config)
7058 ("xmllint" ,libxml2)))
7059 (propagated-inputs
7060 ;; gnome-bluetooth-1.0.pc refers to all these.
7061 `(("glib" ,glib)
7062 ("gtk+" ,gtk+)))
7063 (inputs
7064 `(("eudev" ,eudev)
7065 ("libcanberra" ,libcanberra)
7066 ("libnotify" ,libnotify)))
7067 (synopsis "GNOME Bluetooth subsystem")
7068 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7069 (description
7070 "This package contains tools for managing and manipulating Bluetooth
7071 devices using the GNOME desktop.")
7072 (license license:lgpl2.1+)))
7073
7074 (define-public gnome-control-center
7075 (package
7076 (name "gnome-control-center")
7077 (version "3.32.2")
7078 (source (origin
7079 (method url-fetch)
7080 (uri (string-append "mirror://gnome/sources/" name "/"
7081 (version-major+minor version) "/"
7082 name "-" version ".tar.xz"))
7083 (sha256
7084 (base32
7085 "03np0mhfl9kkdw4cb711pda0cli9zgh2bq2gqn2zwbdi3qnhk9gs"))))
7086 (build-system meson-build-system)
7087 (arguments
7088 '(#:glib-or-gtk? #t
7089 #:configure-flags
7090 (list "-Dcheese=false"
7091 (string-append "-Dgnome_session_libexecdir="
7092 (assoc-ref %build-inputs "gnome-session")
7093 "/libexec"))
7094 #:phases
7095 (modify-phases %standard-phases
7096 (add-before 'configure 'patch-paths
7097 (lambda* (#:key inputs #:allow-other-keys)
7098 (let ((libc (assoc-ref inputs "libc"))
7099 (tzdata (assoc-ref inputs "tzdata"))
7100 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7101 (nm-applet (assoc-ref inputs "network-manager-applet"))
7102 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7103 (substitute* "panels/datetime/tz.h"
7104 (("/usr/share/zoneinfo/zone.tab")
7105 (string-append tzdata "/share/zoneinfo/zone.tab")))
7106 (substitute* "tests/datetime/test-endianess.c"
7107 (("/usr/share/locale")
7108 (string-append libc "/share/locale")))
7109 (substitute* "panels/region/cc-region-panel.c"
7110 (("\"gkbd-keyboard-display")
7111 (string-append "\"" libgnomekbd
7112 "/bin/gkbd-keyboard-display")))
7113 (substitute* '("panels/network/net-device-wifi.c"
7114 "panels/network/net-device.c"
7115 "panels/network/connection-editor/net-connection-editor.c")
7116 (("\"nm-connection-editor")
7117 (string-append "\"" nm-applet
7118 "/bin/nm-connection-editor")))
7119 (substitute* '("panels/user-accounts/run-passwd.c")
7120 (("/usr/bin/passwd")
7121 "/run/setuid-programs/passwd"))
7122 (substitute* "panels/info/cc-info-overview-panel.c"
7123 (("DATADIR \"/gnome/gnome-version.xml\"")
7124 (string-append "\"" gnome-desktop
7125 "/share/gnome/gnome-version.xml\"")))
7126 #t))))))
7127 (native-inputs
7128 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7129 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7130 ("intltool" ,intltool)
7131 ("pkg-config" ,pkg-config)
7132 ("xsltproc" ,libxslt)
7133 ;; For tests
7134 ("hicolor-icon-theme" ,hicolor-icon-theme)
7135 ("python-dbusmock" ,python-dbusmock)
7136 ("xorg-server" ,xorg-server-for-tests)))
7137 (inputs
7138 `(("accountsservice" ,accountsservice)
7139 ("clutter-gtk" ,clutter-gtk)
7140 ("colord-gtk" ,colord-gtk)
7141 ("cups" ,cups)
7142 ("dconf" ,dconf)
7143 ("docbook-xsl" ,docbook-xsl)
7144 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7145 ("gnome-bluetooth" ,gnome-bluetooth)
7146 ("gnome-desktop" ,gnome-desktop)
7147 ("gnome-online-accounts" ,gnome-online-accounts)
7148 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7149 ("gnome-session" ,gnome-session)
7150 ("gnome-settings-daemon" ,gnome-settings-daemon)
7151 ("grilo" ,grilo)
7152 ("gsound" ,gsound)
7153 ("ibus" ,ibus)
7154 ("libcanberra" ,libcanberra)
7155 ("libgnomekbd" ,libgnomekbd)
7156 ("libgudev" ,libgudev)
7157 ("libgtop" ,libgtop)
7158 ("libpwquality" ,libpwquality)
7159 ("libsecret" ,libsecret)
7160 ("libsoup" ,libsoup)
7161 ("libxml2" ,libxml2)
7162 ("libwacom" ,libwacom)
7163 ("mesa" ,mesa)
7164 ("mit-krb5" ,mit-krb5)
7165 ("modem-manager" ,modem-manager)
7166 ("network-manager-applet" ,network-manager-applet)
7167 ("polkit" ,polkit)
7168 ("pulseaudio" ,pulseaudio)
7169 ("smbclient" ,samba)
7170 ("tzdata" ,tzdata)
7171 ("udisks" ,udisks)
7172 ("upower" ,upower)))
7173 (synopsis "Utilities to configure the GNOME desktop")
7174 (home-page "https://www.gnome.org/")
7175 (description
7176 "This package contains configuration applets for the GNOME desktop,
7177 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7178 properties, sound setup, desktop theme and background, user interface
7179 properties, screen resolution, and other GNOME parameters.")
7180 (license license:gpl2+)))
7181
7182 (define-public gnome-shell
7183 (package
7184 (name "gnome-shell")
7185 (version "3.32.2")
7186 (source (origin
7187 (method url-fetch)
7188 (uri (string-append "mirror://gnome/sources/" name "/"
7189 (version-major+minor version) "/"
7190 name "-" version ".tar.xz"))
7191 (sha256
7192 (base32
7193 "0anlkdnqsp5fqvmg95rqjpp1ifcx5xzsvwcrdsvb1cqzbh6inmp5"))
7194 (patches (search-patches "gnome-shell-theme.patch"))
7195 (modules '((guix build utils)))
7196 (snippet
7197 #~(begin
7198 ;; Copy images for use on the GDM log-in screen.
7199 (copy-file #$(file-append %artwork-repository
7200 "/slim/0.x/background.png")
7201 "data/theme/guix-background.png")
7202 (copy-file #$(file-append %artwork-repository
7203 "/logo/Guix-horizontal-white.svg")
7204 "data/theme/guix-logo.svg")
7205 #t))))
7206 (build-system meson-build-system)
7207 (arguments
7208 `(#:glib-or-gtk? #t
7209 #:disallowed-references ((,glib "bin")
7210 ,inkscape ,libxslt
7211 ,ruby-sass)
7212 #:configure-flags
7213 (list "-Dsystemd=false"
7214 ;; Otherwise, the RUNPATH will lack the final path component.
7215 (string-append "-Dc_link_args=-Wl,-rpath="
7216 (assoc-ref %outputs "out")
7217 "/lib/gnome-shell"))
7218
7219 #:modules ((guix build meson-build-system)
7220 (guix build utils)
7221 (srfi srfi-1))
7222
7223 #:phases
7224 (modify-phases %standard-phases
7225 (add-after 'unpack 'fix-keysdir
7226 (lambda* (#:key outputs #:allow-other-keys)
7227 (let* ((out (assoc-ref outputs "out"))
7228 (keysdir (string-append
7229 out "/share/gnome-control-center/keybindings")))
7230 (substitute* "meson.build"
7231 (("keysdir =.*")
7232 (string-append "keysdir = '" keysdir "'\n")))
7233 #t)))
7234 (add-before 'configure 'convert-logo-to-png
7235 (lambda* (#:key inputs #:allow-other-keys)
7236 ;; Convert the logo from SVG to PNG.
7237 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7238 "data/theme/guix-logo.svg")))
7239 (add-before 'configure 'record-absolute-file-names
7240 (lambda* (#:key inputs #:allow-other-keys)
7241 (substitute* "js/misc/ibusManager.js"
7242 (("'ibus-daemon'")
7243 (string-append "'" (assoc-ref inputs "ibus")
7244 "/bin/ibus-daemon'")))
7245 (substitute* "js/ui/status/keyboard.js"
7246 (("'gkbd-keyboard-display'")
7247 (string-append "'" (assoc-ref inputs "libgnomekbd")
7248 "/bin/gkbd-keyboard-display'")))
7249 #t))
7250 (add-before 'check 'pre-check
7251 (lambda* (#:key inputs #:allow-other-keys)
7252 ;; Tests require a running X server.
7253 (system "Xvfb :1 &")
7254 (setenv "DISPLAY" ":1")
7255 #t))
7256 (add-after 'install 'wrap-programs
7257 (lambda* (#:key inputs outputs #:allow-other-keys)
7258 (let ((out (assoc-ref outputs "out"))
7259 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7260 (python-path (getenv "PYTHONPATH")))
7261 (wrap-program (string-append out "/bin/gnome-shell")
7262 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7263 ;; FIXME: gnome-shell loads these libraries with unqualified
7264 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7265 ;; alternative might be to patch gnome-shell.
7266 `("LD_LIBRARY_PATH" ":" prefix
7267 ,(map (lambda (pkg)
7268 (string-append (assoc-ref inputs pkg) "/lib"))
7269 '("gdk-pixbuf"
7270 "gnome-bluetooth" "librsvg" "libgweather"))))
7271 (for-each
7272 (lambda (prog)
7273 (wrap-program (string-append out "/bin/" prog)
7274 `("PYTHONPATH" ":" prefix (,python-path))
7275 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7276 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7277 #t)))
7278 (replace 'glib-or-gtk-wrap
7279 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7280 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7281 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7282 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7283 ;; phase. Fix that since we don't need these.
7284 (wrap #:inputs (fold alist-delete inputs
7285 '("inkscape" "intltool" "glib:bin"))
7286 #:outputs outputs)))))))
7287 (native-inputs
7288 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7289 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7290 ("gobject-introspection" ,gobject-introspection)
7291 ("inkscape" ,inkscape)
7292 ("intltool" ,intltool)
7293 ("pkg-config" ,pkg-config)
7294 ("python" ,python)
7295 ("ruby-sass" ,ruby-sass)
7296 ("sassc" ,sassc)
7297 ("xsltproc" ,libxslt)
7298 ;; For tests
7299 ("xorg-server" ,xorg-server-for-tests)))
7300 (inputs
7301 `(("accountsservice" ,accountsservice)
7302 ("caribou" ,caribou)
7303 ("docbook-xsl" ,docbook-xsl)
7304 ("evolution-data-server" ,evolution-data-server)
7305 ("gcr" ,gcr)
7306 ("gdm" ,gdm)
7307 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7308 ("gjs" ,gjs)
7309 ("gnome-bluetooth" ,gnome-bluetooth)
7310 ("gnome-desktop" ,gnome-desktop)
7311 ("gnome-settings-daemon" ,gnome-settings-daemon)
7312 ("gst-plugins-base" ,gst-plugins-base)
7313 ("ibus" ,ibus)
7314 ("libcanberra" ,libcanberra)
7315 ("libcroco" ,libcroco)
7316 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7317 ("libgweather" ,libgweather)
7318 ("libsoup" ,libsoup)
7319 ("mesa-headers" ,mesa-headers)
7320 ("mutter" ,mutter)
7321 ("network-manager-applet" ,network-manager-applet)
7322 ("polkit" ,polkit)
7323 ("pulseaudio" ,pulseaudio)
7324 ("python-pygobject" ,python-pygobject)
7325 ("startup-notification" ,startup-notification)
7326 ("telepathy-logger" ,telepathy-logger)
7327 ("upower" ,upower)
7328 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7329 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7330 ("librsvg" ,librsvg)
7331 ("geoclue" ,geoclue)))
7332 (synopsis "Desktop shell for GNOME")
7333 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7334 (description
7335 "GNOME Shell provides core user interface functions for the GNOME desktop,
7336 like switching to windows and launching applications.")
7337 (license license:gpl2+)))
7338
7339 (define-public gtk-vnc
7340 (package
7341 (name "gtk-vnc")
7342 (version "0.9.0")
7343 (source
7344 (origin
7345 (method url-fetch)
7346 (uri (string-append "mirror://gnome/sources/" name "/"
7347 (version-major+minor version) "/"
7348 name "-" version ".tar.xz"))
7349 (sha256
7350 (base32
7351 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7352 (build-system gnu-build-system)
7353 (arguments
7354 '(#:configure-flags '("--with-gtk=3.0")))
7355 (propagated-inputs
7356 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7357 (inputs
7358 `(("cyrus-sasl" ,cyrus-sasl)
7359 ("gnutls" ,gnutls)
7360 ("libgcrypt" ,libgcrypt)
7361 ("pulseaudio" ,pulseaudio)))
7362 (native-inputs
7363 `(("glib:bin" ,glib "bin")
7364 ("gobject-introspection" ,gobject-introspection)
7365 ("intltool" ,intltool)
7366 ("pkg-config" ,pkg-config)
7367 ("python-wrapper" ,python-wrapper)
7368 ("vala" ,vala)))
7369 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7370 (synopsis "VNC viewer widget for GTK+")
7371 (description
7372 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7373 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7374 GTK-VNC implements client side RFB protocol and authentication extensions such
7375 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7376 (license license:lgpl2.1+)))
7377
7378 (define-public gnome-autoar
7379 (package
7380 (name "gnome-autoar")
7381 (version "0.2.3")
7382 (source (origin
7383 (method url-fetch)
7384 (uri (string-append "mirror://gnome/sources/" name "/"
7385 (version-major+minor version) "/"
7386 name "-" version ".tar.xz"))
7387 (sha256
7388 (base32
7389 "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"))))
7390 (build-system glib-or-gtk-build-system)
7391 (native-inputs
7392 `(("gnome-common" ,gnome-common)
7393 ("gobject-introspection" ,gobject-introspection)
7394 ("pkg-config" ,pkg-config)))
7395 (propagated-inputs
7396 `(("libarchive" ,libarchive))) ; XXX document why
7397 (inputs
7398 `(("gtk+" ,gtk+)))
7399 (synopsis "Archives integration support for GNOME")
7400 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7401 (description
7402 "GNOME Autoar is a library which makes creating and extracting archives
7403 easy, safe, and automatic.")
7404 (license license:lgpl2.1+)))
7405
7406 (define-public tracker
7407 (package
7408 (name "tracker")
7409 (version "2.2.2")
7410 (source (origin
7411 (method url-fetch)
7412 (uri (string-append "mirror://gnome/sources/tracker/"
7413 (version-major+minor version) "/"
7414 "tracker-" version ".tar.xz"))
7415 (sha256
7416 (base32
7417 "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
7418 (build-system meson-build-system)
7419 (arguments
7420 `(#:glib-or-gtk? #t
7421 #:configure-flags
7422 ;; Otherwise, the RUNPATH will lack the final path component.
7423 (list (string-append "-Dc_link_args=-Wl,-rpath="
7424 (assoc-ref %outputs "out") "/lib:"
7425 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7426 #:phases
7427 (modify-phases %standard-phases
7428 (add-after 'unpack 'disable-broken-tests
7429 (lambda _
7430 ;; These fail because the SPARQL backend could not be loaded.
7431 ;; That's because /etc/machine-id is missing, but
7432 ;; DBUS_FATAL_WARNINGS does not help here.
7433 (substitute* "tests/libtracker-sparql/meson.build"
7434 (("'sparql',") ""))
7435 (substitute* "tests/tracker-steroids/meson.build"
7436 (("test\\(.*") ""))
7437 #t))
7438 ;; Two tests fail if LANG is not set.
7439 (add-before 'check 'pre-check
7440 (lambda _
7441 (setenv "LANG" "en_US.UTF-8")
7442 ;; For the missing /etc/machine-id.
7443 (setenv "DBUS_FATAL_WARNINGS" "0")
7444 #t)))))
7445 (native-inputs
7446 `(("glib:bin" ,glib "bin")
7447 ("gnome-common" ,gnome-common)
7448 ("gobject-introspection" ,gobject-introspection)
7449 ("python-pygobject" ,python-pygobject)
7450 ("intltool" ,intltool)
7451 ("pkg-config" ,pkg-config)
7452 ("vala" ,vala)))
7453 (inputs
7454 `(("gtk+" ,gtk+)
7455 ("dbus" ,dbus)
7456 ("sqlite" ,sqlite)
7457 ("python" ,python)
7458 ("poppler" ,poppler)
7459 ("libpng" ,libpng)
7460 ("libtiff" ,libtiff)
7461 ("zlib" ,zlib)
7462 ("libxml2" ,libxml2)
7463 ("libunistring" ,libunistring)
7464 ("json-glib" ,json-glib)
7465 ("openjpeg" ,openjpeg-1)
7466 ("libseccomp" ,libseccomp)
7467 ("libsoup" ,libsoup)
7468 ("libuuid" ,util-linux)
7469 ("network-manager" ,network-manager)))
7470 (synopsis "Metadata database, indexer and search tool")
7471 (home-page "https://wiki.gnome.org/Projects/Tracker")
7472 (description
7473 "Tracker is an advanced framework for first class objects with associated
7474 metadata and tags. It provides a one stop solution for all metadata, tags,
7475 shared object databases, search tools and indexing.")
7476 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7477 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7478 (license (list license:gpl2+
7479 license:lgpl2.1+
7480 license:lgpl2.0+))))
7481
7482 (define-public tracker-miners
7483 (package
7484 (name "tracker-miners")
7485 (version "2.2.2")
7486 (source (origin
7487 (method url-fetch)
7488 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7489 (version-major+minor version)
7490 "/tracker-miners-" version ".tar.xz"))
7491 (sha256
7492 (base32
7493 "0kk5xaajamb8jlm6cfdbc2m3axzr6bnph84m7697xmb0pkg8hdiw"))))
7494 (build-system meson-build-system)
7495 (arguments
7496 `(#:glib-or-gtk? #t
7497 #:configure-flags
7498 (list "-Dminer_rss=false" ; libgrss is required.
7499 ;; Ensure the RUNPATH contains all installed library locations.
7500 (string-append "-Dc_link_args=-Wl,-rpath="
7501 (assoc-ref %outputs "out")
7502 "/lib/tracker-miners-2.0")
7503 ;; TODO: Enable functional tests. Currently, the following error
7504 ;; appears:
7505 ;; Exception: The functional tests require DConf to be the default
7506 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7507 "-Dfunctional_tests=false")))
7508 (native-inputs
7509 `(("dbus" ,dbus)
7510 ("intltool" ,intltool)
7511 ("glib:bin" ,glib "bin")
7512 ("gobject-introspection" ,gobject-introspection)
7513 ("pkg-config" ,pkg-config)
7514 ("python-pygobject" ,python-pygobject)))
7515 (inputs
7516 `(("exempi" ,exempi)
7517 ("ffmpeg" ,ffmpeg)
7518 ("flac" ,flac)
7519 ("giflib" ,giflib)
7520 ("glib" ,glib)
7521 ("gstreamer" ,gstreamer)
7522 ("icu4c" ,icu4c)
7523 ("libcue" ,libcue)
7524 ("libexif" ,libexif)
7525 ("libgsf" ,libgsf)
7526 ("libgxps" ,libgxps)
7527 ("libiptcdata" ,libiptcdata)
7528 ("libjpeg" ,libjpeg)
7529 ("libosinfo" ,libosinfo)
7530 ("libpng" ,libpng)
7531 ("libseccomp" ,libseccomp)
7532 ("libtiff" ,libtiff)
7533 ("libvorbis" ,libvorbis)
7534 ("libxml2" ,libxml2)
7535 ("poppler" ,poppler)
7536 ("taglib" ,taglib)
7537 ("totem-pl-parser" ,totem-pl-parser)
7538 ("tracker" ,tracker)
7539 ("upower" ,upower)
7540 ("zlib" ,zlib)))
7541 (synopsis "Metadata database, indexer and search tool")
7542 (home-page "https://wiki.gnome.org/Projects/Tracker")
7543 (description
7544 "Tracker is an advanced framework for first class objects with associated
7545 metadata and tags. It provides a one stop solution for all metadata, tags,
7546 shared object databases, search tools and indexing.")
7547 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7548 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7549 (license (list license:gpl2+
7550 license:lgpl2.1+
7551 license:lgpl2.0+))))
7552
7553 (define-public nautilus
7554 (package
7555 (name "nautilus")
7556 (version "3.32.3")
7557 (source (origin
7558 (method url-fetch)
7559 (uri (string-append "mirror://gnome/sources/" name "/"
7560 (version-major+minor version) "/"
7561 name "-" version ".tar.xz"))
7562 (sha256
7563 (base32
7564 "1x9crzbj6rrrf8w5dkcx0c14j40byr4ijpzkwd5dcrbfvvdy1r01"))))
7565 (build-system meson-build-system)
7566 (arguments
7567 '(#:glib-or-gtk? #t
7568 ;; XXX: FAIL: check-nautilus
7569 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7570 #:tests? #f))
7571 (native-inputs
7572 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7573 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7574 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7575 ("gobject-introspection" ,gobject-introspection)
7576 ("intltool" ,intltool)
7577 ("pkg-config" ,pkg-config)))
7578 (inputs
7579 `(("dconf" ,dconf)
7580 ("gexiv2" ,gexiv2)
7581 ("gvfs" ,gvfs)
7582 ("exempi" ,exempi)
7583 ("gnome-desktop" ,gnome-desktop)
7584 ("gnome-autoar" ,gnome-autoar)
7585 ("gst-plugins-base" ,gst-plugins-base)
7586 ("libseccomp" ,libseccomp)
7587 ("libselinux" ,libselinux)
7588 ("tracker" ,tracker)
7589 ("tracker-miners" ,tracker-miners)
7590 ;; XXX: gtk+ is required by libnautilus-extension.pc
7591 ;;
7592 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7593 ;; package. See:
7594 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7595 ("gtk+" ,gtk+)
7596 ("libexif" ,libexif)
7597 ("libxml2" ,libxml2)))
7598 (synopsis "File manager for GNOME")
7599 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7600 (description
7601 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7602 design and behaviour, giving the user a simple way to navigate and manage its
7603 files.")
7604 (license license:gpl2+)))
7605
7606 (define-public baobab
7607 (package
7608 (name "baobab")
7609 (version "3.32.0")
7610 (source (origin
7611 (method url-fetch)
7612 (uri (string-append
7613 "mirror://gnome/sources/" name "/"
7614 (version-major+minor version) "/"
7615 name "-" version ".tar.xz"))
7616 (sha256
7617 (base32
7618 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7619 (build-system meson-build-system)
7620 (arguments
7621 '(#:glib-or-gtk? #t))
7622 (native-inputs
7623 `(("intltool" ,intltool)
7624 ("pkg-config" ,pkg-config)
7625 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7626 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7627 ("itstool" ,itstool)
7628 ("xmllint" ,libxml2)
7629 ("glib" ,glib "bin")
7630 ("vala" ,vala)))
7631 (inputs
7632 `(("gtk+" ,gtk+)))
7633 (synopsis "Disk usage analyzer for GNOME")
7634 (description
7635 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7636 usage in the GNOME desktop environment. It can easily scan device volumes or
7637 a specific user-requested directory branch (local or remote). Once the scan
7638 is complete it provides a graphical representation of each selected folder.")
7639 (home-page "https://wiki.gnome.org/Apps/Baobab")
7640 (license license:gpl2+)))
7641
7642 (define-public gnome-backgrounds
7643 (package
7644 (name "gnome-backgrounds")
7645 (version "3.32.0")
7646 (source
7647 (origin
7648 (method url-fetch)
7649 (uri (string-append "mirror://gnome/sources/" name "/"
7650 (version-major+minor version) "/"
7651 name "-" version ".tar.xz"))
7652 (sha256
7653 (base32
7654 "1s5krdmd3md44p1fgr2lqm5ifxb8s1vzx6hm11sb4cgzr4dw6lrz"))))
7655 (build-system meson-build-system)
7656 (native-inputs
7657 `(("intltool" ,intltool)))
7658 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7659 (synopsis "Background images for the GNOME desktop")
7660 (description
7661 "GNOME backgrounds package contains a collection of graphics files which
7662 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7663 the package creates the proper framework and directory structure so that you
7664 can add your own files to the collection.")
7665 (license (list license:gpl2+
7666 license:cc-by2.0
7667 license:cc-by-sa2.0
7668 license:cc-by-sa3.0))))
7669
7670 (define-public gnome-screenshot
7671 (package
7672 (name "gnome-screenshot")
7673 (version "3.32.0")
7674 (source
7675 (origin
7676 (method url-fetch)
7677 (uri (string-append "mirror://gnome/sources/" name "/"
7678 (version-major+minor version) "/"
7679 name "-" version ".tar.xz"))
7680 (sha256
7681 (base32
7682 "09ha7dizjm5ymqpjyrqd10ijfb3xlqc1mwg9ajkrbfry11q9yq4b"))))
7683 (build-system meson-build-system)
7684 (native-inputs
7685 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7686 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7687 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7688 ("intltool" ,intltool)
7689 ("appstream-glib" ,appstream-glib)
7690 ("pkg-config" ,pkg-config)))
7691 (inputs
7692 `(("gtk+" ,gtk+)
7693 ("libcanberra" ,libcanberra)
7694 ("libx11" ,libx11)
7695 ("libxext" ,libxext)))
7696 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7697 (synopsis "Take pictures of your screen")
7698 (description
7699 "GNOME Screenshot is a utility used for taking screenshots of the entire
7700 screen, a window or a user defined area of the screen, with optional
7701 beautifying border effects.")
7702 (license license:gpl2+)))
7703
7704 (define-public dconf-editor
7705 (package
7706 (name "dconf-editor")
7707 (version "3.32.0")
7708 (source
7709 (origin
7710 (method url-fetch)
7711 (uri (string-append "mirror://gnome/sources/" name "/"
7712 (version-major+minor version) "/"
7713 name "-" version ".tar.xz"))
7714 (sha256
7715 (base32
7716 "1fmsmlh16njjm948grz20mzrsvb4wjj7pl1fvkrkxqi7mhr177gi"))))
7717 (build-system meson-build-system)
7718 (arguments
7719 '(#:phases (modify-phases %standard-phases
7720 (add-before 'configure 'set-glib-minimum-version
7721 (lambda _
7722 ;; Change the minimum required GLib version so that
7723 ;; 'valac' is passed '--target-glib 2.60.0'; failing to
7724 ;; do that, it complains that "55" is not an even
7725 ;; number. See <https://bugs.gnu.org/37503>.
7726 (substitute* "editor/meson.build"
7727 (("2\\.55\\.1") "2.60.0"))
7728 #t)))))
7729 (native-inputs
7730 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7731 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7732 ("intltool" ,intltool)
7733 ("pkg-config" ,pkg-config)
7734 ("vala" ,vala)))
7735 (inputs
7736 `(("dconf" ,dconf)
7737 ("gtk+" ,gtk+)
7738 ("libxml2" ,libxml2)))
7739 (home-page "https://git.gnome.org/browse/dconf-editor")
7740 (synopsis "Graphical editor for GNOME's dconf configuration system")
7741 (description
7742 "Dconf-editor is a graphical tool for browsing and editing the dconf
7743 configuration system for GNOME. It allows users to configure desktop
7744 software that do not provide their own configuration interface.")
7745 (license license:lgpl2.1+)))
7746
7747 (define-public gnome-default-applications
7748 (package
7749 (name "gnome-default-applications")
7750 (version "0")
7751 (build-system trivial-build-system)
7752 (source #f)
7753 (propagated-inputs
7754 `(("nautilus" ,nautilus)
7755 ("evince" ,evince)))
7756 (arguments
7757 `(#:modules ((guix build utils))
7758 #:builder
7759 (begin
7760 (use-modules (guix build utils))
7761 (let* ((out (assoc-ref %outputs "out"))
7762 (apps (string-append out "/share/applications")))
7763 (mkdir-p apps)
7764 (call-with-output-file (string-append apps "/defaults.list")
7765 (lambda (port)
7766 (format port "[Default Applications]\n")
7767 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7768 (format port "application/pdf=evince.desktop\n")
7769 (format port "application/postscript=evince.desktop\n")))
7770 #t))))
7771 (synopsis "Default MIME type associations for the GNOME desktop")
7772 (description
7773 "Given many installed packages which might handle a given MIME type, a
7774 user running the GNOME desktop probably has some preferences: for example,
7775 that folders be opened by default by the Nautilus file manager, not the Baobab
7776 disk usage analyzer. This package establishes that set of default MIME type
7777 associations for GNOME.")
7778 (license license:gpl3+)
7779 (home-page #f)))
7780
7781 (define-public libgovirt
7782 (package
7783 (name "libgovirt")
7784 (version "0.3.6")
7785 (source (origin
7786 (method url-fetch)
7787 (uri (string-append "mirror://gnome/sources/" name "/"
7788 (version-major+minor version) "/"
7789 name "-" version ".tar.xz"))
7790 (sha256
7791 (base32
7792 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7793 (build-system glib-or-gtk-build-system)
7794 (native-inputs
7795 `(("gettext" ,gettext-minimal)
7796 ("glib:bin" ,glib "bin")
7797 ("gobject-introspection" ,gobject-introspection)
7798 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7799 ("gtk+:bin" ,gtk+ "bin")
7800 ("pkg-config" ,pkg-config)))
7801 (inputs
7802 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7803 ("librest" ,rest)))
7804 (synopsis "GoVirt Library")
7805 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7806 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7807 (license license:gpl2+)))
7808
7809 (define-public gnome-weather
7810 (package
7811 (name "gnome-weather")
7812 (version "3.34.0")
7813 (source (origin
7814 (method url-fetch)
7815 (uri (string-append "mirror://gnome/sources/" name "/"
7816 (version-major+minor version) "/"
7817 name "-" version ".tar.xz"))
7818 (sha256
7819 (base32
7820 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7821 (build-system meson-build-system)
7822 (native-inputs
7823 `(("gettext" ,gettext-minimal)
7824 ("glib:bin" ,glib "bin")
7825 ("gobject-introspection" ,gobject-introspection)
7826 ("gtk+:bin" ,gtk+ "bin")
7827 ("pkg-config" ,pkg-config)))
7828 (inputs
7829 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7830 ("appstream-glib" ,appstream-glib)
7831 ("geoclue" ,geoclue)
7832 ("gdk-pixbuf" ,gdk-pixbuf)
7833 ("gjs" ,gjs)
7834 ("gnome-desktop" ,gnome-desktop)
7835 ("libgweather" ,libgweather)))
7836 (synopsis "Weather monitoring for GNOME desktop")
7837 (description "GNOME Weather is a small application that allows you to
7838 monitor the current weather conditions for your city, or anywhere in the
7839 world.")
7840 (home-page "https://wiki.gnome.org/Apps/Weather")
7841 (license license:gpl2+)))
7842
7843 (define-public gnome
7844 (package
7845 (name "gnome")
7846 (version (package-version gnome-shell))
7847 (source #f)
7848 (build-system trivial-build-system)
7849 (arguments '(#:builder (begin (mkdir %output) #t)))
7850 (propagated-inputs
7851 ;; TODO: Add or remove packages according to:
7852 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7853 `(
7854 ;; GNOME-Core-OS-Services
7855 ("accountsservice" ,accountsservice)
7856 ("network-manager" ,network-manager)
7857 ("packagekit" ,packagekit)
7858 ("upower" ,upower)
7859 ;; GNOME-Core-Shell
7860 ("adwaita-icon-theme" ,adwaita-icon-theme)
7861 ("gdm" ,gdm)
7862 ("glib-networking" ,glib-networking)
7863 ("gnome-backgrounds" ,gnome-backgrounds)
7864 ("gnome-bluetooth" ,gnome-bluetooth)
7865 ("gnome-color-manager" ,gnome-color-manager)
7866 ("gnome-control-center" ,gnome-control-center)
7867 ("gnome-desktop" ,gnome-desktop)
7868 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7869 ("gnome-initial-setup" ,gnome-initial-setup)
7870 ("gnome-keyring" ,gnome-keyring)
7871 ("gnome-menus" ,gnome-menus)
7872 ("gnome-session" ,gnome-session)
7873 ("gnome-settings-daemon" ,gnome-settings-daemon)
7874 ("gnome-shell-extensions" ,gnome-shell-extensions)
7875 ("gnome-shell" ,gnome-shell)
7876 ("gnome-themes-extra" ,gnome-themes-extra)
7877 ("gnome-user-docs" ,gnome-user-docs)
7878 ("gnome-user-share" ,gnome-user-share)
7879 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7880 ("gvfs" ,gvfs)
7881 ("mutter" ,mutter)
7882 ("orca" ,orca)
7883 ("rygel" ,rygel)
7884 ("sushi" ,sushi)
7885 ;; GNOME-Core-Utilities
7886 ("baobab" ,baobab)
7887 ("cheese" ,cheese)
7888 ("eog" ,eog)
7889 ("epiphany" ,epiphany)
7890 ("evince" ,evince)
7891 ("file-roller" ,file-roller)
7892 ("gedit" ,gedit)
7893 ; TODO: ("gnome-boxes" ,gnome-boxes)
7894 ("gnome-calculator" ,gnome-calculator)
7895 ("gnome-calendar" ,gnome-calendar)
7896 ("gnome-characters" ,gnome-characters)
7897 ("gnome-clocks" ,gnome-clocks)
7898 ("gnome-contacts" ,gnome-contacts)
7899 ("gnome-disk-utility" ,gnome-disk-utility)
7900 ("gnome-font-viewer" ,gnome-font-viewer)
7901 ("gnome-maps" ,gnome-maps)
7902 ; TODO: ("gnome-music" ,gnome-music)
7903 ; TODO: ("gnome-photos" ,gnome-photos)
7904 ("gnome-screenshot" ,gnome-screenshot)
7905 ("gnome-system-monitor" ,gnome-system-monitor)
7906 ("gnome-terminal" ,gnome-terminal)
7907 ("gnome-weather" ,gnome-weather)
7908 ("nautilus" ,nautilus)
7909 ("simple-scan" ,simple-scan)
7910 ("totem" ,totem)
7911 ("yelp" ,yelp)
7912 ;; Others
7913 ("hicolor-icon-theme" ,hicolor-icon-theme)
7914 ("gnome-online-accounts" ,gnome-online-accounts)))
7915 (synopsis "The GNU desktop environment")
7916 (home-page "https://www.gnome.org/")
7917 (description
7918 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7919 applications for browsing the web, editing text and images, creating
7920 documents and diagrams, playing media, scanning, and much more.")
7921 (license license:gpl2+)))
7922
7923 (define-public byzanz
7924 ;; The last stable release of Byzanz was in 2011, but there have been many
7925 ;; useful commits made to the Byzanz repository since then that it would be
7926 ;; silly to use such an old release.
7927 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7928 (package
7929 (name "byzanz")
7930 (version (string-append "0.2-1." (string-take commit 7)))
7931 (source (origin
7932 (method git-fetch)
7933 (uri (git-reference
7934 (url "https://git.gnome.org/browse/byzanz")
7935 (commit commit)))
7936 (file-name (string-append name "-" version "-checkout"))
7937 (sha256
7938 (base32
7939 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7940 (build-system glib-or-gtk-build-system)
7941 (arguments
7942 '(#:phases
7943 (modify-phases %standard-phases
7944 (replace 'bootstrap
7945 (lambda _
7946 ;; The build system cleverly detects that we're not building from
7947 ;; a release tarball and turns on -Werror for GCC.
7948 ;; Unsurprisingly, there is a warning during compilation that
7949 ;; causes the build to fail unnecessarily, so we remove the flag.
7950 (substitute* '("configure.ac")
7951 (("-Werror") ""))
7952 ;; The autogen.sh script in gnome-common will run ./configure
7953 ;; by default, which is problematic because source shebangs
7954 ;; have not yet been patched.
7955 (setenv "NOCONFIGURE" "t")
7956 (zero? (system* "sh" "autogen.sh")))))))
7957 (native-inputs
7958 `(("autoconf" ,autoconf)
7959 ("automake" ,automake)
7960 ("gnome-common" ,gnome-common)
7961 ("intltool" ,intltool)
7962 ("libtool" ,libtool)
7963 ("pkg-config" ,pkg-config)
7964 ("which" ,which)))
7965 (inputs
7966 `(("glib" ,glib)
7967 ("gstreamer" ,gstreamer)
7968 ("gst-plugins-base" ,gst-plugins-base)
7969 ("gtk+" ,gtk+)))
7970 (synopsis "Desktop recording program")
7971 (description "Byzanz is a simple desktop recording program with a
7972 command-line interface. It can record part or all of an X display for a
7973 specified duration and save it as a GIF encoded animated image file.")
7974 (home-page "https://git.gnome.org/browse/byzanz")
7975 (license license:gpl2+))))
7976
7977 (define-public gsound
7978 (package
7979 (name "gsound")
7980 (version "1.0.2")
7981 (source (origin
7982 (method url-fetch)
7983 (uri (string-append "mirror://gnome/sources/" name "/"
7984 (version-major+minor version) "/"
7985 name "-" version ".tar.xz"))
7986 (sha256
7987 (base32
7988 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7989 (build-system glib-or-gtk-build-system)
7990 (native-inputs
7991 `(("pkg-config" ,pkg-config)
7992 ("gobject-introspection" ,gobject-introspection)
7993 ("vala" ,vala)))
7994 (inputs
7995 `(("glib" ,glib)
7996 ("libcanberra" ,libcanberra)))
7997 (home-page "https://wiki.gnome.org/Projects/GSound")
7998 (synopsis "GObject wrapper for libcanberra")
7999 (description
8000 "GSound is a small library for playing system sounds. It's designed to be
8001 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8002 library.")
8003 (license license:lgpl2.1+)))
8004
8005 (define-public libzapojit
8006 (package
8007 (name "libzapojit")
8008 (version "0.0.3")
8009 (source (origin
8010 (method url-fetch)
8011 (uri (string-append "mirror://gnome/sources/" name "/"
8012 (version-major+minor version) "/"
8013 name "-" version ".tar.xz"))
8014 (sha256
8015 (base32
8016 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8017 (build-system gnu-build-system)
8018 (native-inputs
8019 `(("gobject-introspection" ,gobject-introspection)
8020 ("intltool" ,intltool)
8021 ("pkg-config" ,pkg-config)))
8022 (inputs
8023 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8024 ("json-glib" ,json-glib)
8025 ("rest" ,rest)))
8026 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8027 (synopsis "Library for accessing SkyDrive and Hotmail")
8028 (description
8029 "Libzapojit is a GLib-based library for accessing online service APIs of
8030 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8031 (license license:lgpl2.1+)))
8032
8033 (define-public gnome-clocks
8034 (package
8035 (name "gnome-clocks")
8036 (version "3.32.0")
8037 (source (origin
8038 (method url-fetch)
8039 (uri (string-append "mirror://gnome/sources/" name "/"
8040 (version-major+minor version) "/"
8041 name "-" version ".tar.xz"))
8042 (sha256
8043 (base32
8044 "1w6lgjdak3x76c9gyhd1lqrdmjfh8q77sjnrkcimylsg0jq913bc"))))
8045 (build-system meson-build-system)
8046 (arguments
8047 '(#:glib-or-gtk? #t))
8048 (native-inputs
8049 `(("vala" ,vala)
8050 ("pkg-config" ,pkg-config)
8051 ("glib" ,glib "bin") ; for glib-compile-resources
8052 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8053 ("desktop-file-utils" ,desktop-file-utils)
8054 ("gettext" ,gettext-minimal)
8055 ("itstool" ,itstool)))
8056 (inputs
8057 `(("glib" ,glib)
8058 ("gtk+" ,gtk+)
8059 ("gsound" ,gsound)
8060 ("geoclue" ,geoclue)
8061 ("geocode-glib" ,geocode-glib)
8062 ("libgweather" ,libgweather)
8063 ("gnome-desktop" ,gnome-desktop)))
8064 (home-page "https://wiki.gnome.org/Apps/Clocks")
8065 (synopsis "GNOME's clock application")
8066 (description
8067 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8068 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8069 (license license:gpl3+)))
8070
8071 (define-public gnome-calendar
8072 (package
8073 (name "gnome-calendar")
8074 (version "3.32.2")
8075 (source (origin
8076 (method url-fetch)
8077 (uri (string-append "mirror://gnome/sources/" name "/"
8078 (version-major+minor version) "/"
8079 name "-" version ".tar.xz"))
8080 (sha256
8081 (base32
8082 "07p73cvzj8idr80npja5yiv9pjfyi6qqfhaz5jwcgqspqbnhnl7k"))))
8083 (build-system meson-build-system)
8084 (arguments
8085 '(#:glib-or-gtk? #t
8086 ;; gnome-calendar has to be installed before the tests can be run
8087 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8088 #:tests? #f))
8089 (native-inputs
8090 `(("gettext" ,gettext-minimal)
8091 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8092 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8093 ("pkg-config" ,pkg-config)))
8094 (inputs
8095 `(("evolution-data-server" ,evolution-data-server)
8096 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8097 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8098 ("libdazzle" ,libdazzle)
8099 ("libedataserverui" ,evolution-data-server)
8100 ("libgweather" ,libgweather)
8101 ("geoclue" ,geoclue)))
8102 (home-page "https://wiki.gnome.org/Apps/Calendar")
8103 (synopsis "GNOME's calendar application")
8104 (description
8105 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8106 desktop. It supports multiple calendars, month, week and year view.")
8107 (license license:gpl3+)))
8108
8109 (define-public gnome-todo
8110 (package
8111 (name "gnome-todo")
8112 (version "3.28.1")
8113 (source (origin
8114 (method url-fetch)
8115 (uri (string-append "mirror://gnome/sources/" name "/"
8116 (version-major+minor version) "/"
8117 name "-" version ".tar.xz"))
8118 (sha256
8119 (base32
8120 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
8121 (build-system meson-build-system)
8122 (arguments
8123 '(#:glib-or-gtk? #t
8124 #:phases (modify-phases %standard-phases
8125 (add-after
8126 'install 'wrap-gnome-todo
8127 (lambda* (#:key inputs outputs #:allow-other-keys)
8128 (let ((out (assoc-ref outputs "out"))
8129 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8130 (python-path (getenv "PYTHONPATH")))
8131 (wrap-program (string-append out "/bin/gnome-todo")
8132 ;; XXX: gi plugins are broken.
8133 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8134 ;; For plugins.
8135 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8136 `("PYTHONPATH" ":" prefix (,python-path))))
8137 #t)))))
8138 (native-inputs
8139 `(("gettext" ,gettext-minimal)
8140 ("gobject-introspection" ,gobject-introspection)
8141 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8142 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8143 ("pkg-config" ,pkg-config)))
8144 (inputs
8145 `(("rest" ,rest) ; For Todoist plugin
8146 ("json-glib" ,json-glib) ; For Todoist plugin
8147 ("libedataserverui" ,evolution-data-server)
8148 ("libical" ,libical)
8149 ("libpeas" ,libpeas)
8150 ("python-pygobject" ,python-pygobject)
8151 ("evolution-data-server" ,evolution-data-server)
8152 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8153 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8154 (home-page "https://wiki.gnome.org/Apps/Todo")
8155 (synopsis "GNOME's ToDo Application")
8156 (description
8157 "GNOME To Do is a simplistic personal task manager designed to perfectly
8158 fit the GNOME desktop.")
8159 (license license:gpl3+)))
8160
8161 (define-public gnome-dictionary
8162 (package
8163 (name "gnome-dictionary")
8164 (version "3.26.1")
8165 (source (origin
8166 (method url-fetch)
8167 (uri (string-append "mirror://gnome/sources/" name "/"
8168 (version-major+minor version) "/"
8169 name "-" version ".tar.xz"))
8170 (sha256
8171 (base32
8172 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8173 (build-system meson-build-system)
8174 (arguments '(#:glib-or-gtk? #t
8175 #:phases (modify-phases %standard-phases
8176 (add-after 'unpack 'patch-install-script
8177 (lambda _
8178 ;; This script attempts to compile glib schemas
8179 ;; and create an empty MIME database. We do
8180 ;; that elsewhere, so prevent it from running.
8181 (substitute* "build-aux/post-install.sh"
8182 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8183 #t)))))
8184 (native-inputs
8185 `(("glib:bin" ,glib "bin")
8186 ("gobject-introspection" ,gobject-introspection)
8187 ("intltool" ,intltool)
8188 ("itstool" ,itstool)
8189 ("pkg-config" ,pkg-config)
8190 ("xmllint" ,libxml2)))
8191 (inputs
8192 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8193 ("gtk+" ,gtk+)))
8194 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8195 (synopsis "Look up words in dictionary sources")
8196 (description
8197 "GNOME Dictionary can look for the definition or translation of a word in
8198 existing databases over the internet.")
8199 (license license:gpl3+)))
8200
8201 (define-public gnome-tweaks
8202 (package
8203 (name "gnome-tweaks")
8204 (version "3.32.0")
8205 (source (origin
8206 (method url-fetch)
8207 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8208 (version-major+minor version) "/"
8209 "gnome-tweaks-" version ".tar.xz"))
8210 (patches
8211 (list (search-patch "gnome-tweaks-search-paths.patch")))
8212 (sha256
8213 (base32
8214 "037r35cw34ifcs676fq9n2v4mh1nkqx0qk474bznf18mr6r62h55"))))
8215 (build-system meson-build-system)
8216 (arguments
8217 `(#:glib-or-gtk? #t
8218 #:configure-flags '("-Dlocalstatedir=/tmp"
8219 "-Dsysconfdir=/tmp")
8220 #:imported-modules ((guix build python-build-system)
8221 ,@%meson-build-system-modules)
8222 #:phases
8223 (modify-phases %standard-phases
8224 (add-after 'install 'wrap
8225 (@@ (guix build python-build-system) wrap))
8226 (add-after 'wrap 'wrap-gi-typelib
8227 (lambda* (#:key inputs outputs #:allow-other-keys)
8228 (let ((out (assoc-ref outputs "out"))
8229 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8230 (wrap-program (string-append out "/bin/gnome-tweaks")
8231 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8232 #t)))))
8233 (native-inputs
8234 `(("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8235 ("intltool" ,intltool)
8236 ("pkg-config" ,pkg-config)))
8237 (inputs
8238 `(("gnome-desktop" ,gnome-desktop)
8239 ("gtk+" ,gtk+)
8240 ("gobject-introspection" ,gobject-introspection)
8241 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8242 ("libnotify" ,libnotify)
8243 ("libsoup" ,libsoup)
8244 ("nautilus" ,nautilus)
8245 ("python" ,python)
8246 ("python-pygobject" ,python-pygobject)))
8247 (synopsis "Customize advanced GNOME 3 options")
8248 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8249 (description
8250 "GNOME Tweaks allows adjusting advanced configuration settings in
8251 GNOME 3. This includes things like the fonts used in user interface elements,
8252 alternative user interface themes, changes in window management behavior,
8253 GNOME Shell appearance and extension, etc.")
8254 (license license:gpl3+)))
8255
8256 ;; This package has been renamed by upstream.
8257 (define-public gnome-tweak-tool
8258 (deprecated-package "gnome-tweak-tool" gnome-tweaks))
8259
8260 (define-public gnome-shell-extensions
8261 (package
8262 (name "gnome-shell-extensions")
8263 (version "3.32.1")
8264 (source (origin
8265 (method url-fetch)
8266 (uri (string-append "mirror://gnome/sources/" name "/"
8267 (version-major+minor version) "/"
8268 name "-" version ".tar.xz"))
8269 (sha256
8270 (base32
8271 "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2"))))
8272 (build-system meson-build-system)
8273 (arguments
8274 '(#:configure-flags '("-Dextension_set=all")))
8275 (native-inputs
8276 `(("glib:bin" ,glib "bin")
8277 ("intltool" ,intltool)
8278 ("pkg-config" ,pkg-config)))
8279 (propagated-inputs
8280 `(("glib" ,glib)))
8281 (synopsis "Extensions for GNOME Shell")
8282 (description "GNOME Shell extensions modify and extend GNOME Shell
8283 functionality and behavior.")
8284 (home-page "https://extensions.gnome.org/")
8285 (license license:gpl3+)))
8286
8287 (define-public arc-theme
8288 (package
8289 (name "arc-theme")
8290 (version "20190917")
8291 (source (origin
8292 (method git-fetch)
8293 (uri (git-reference
8294 (url "https://github.com/NicoHood/arc-theme.git")
8295 (commit version)))
8296 (file-name (git-file-name name version))
8297 (sha256
8298 (base32
8299 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8300 (build-system gnu-build-system)
8301 (arguments
8302 '(#:phases
8303 (modify-phases %standard-phases
8304 ;; autogen.sh calls configure at the end of the script.
8305 (replace 'bootstrap
8306 (lambda _ (invoke "autoreconf" "-vfi")))
8307 (add-before 'build 'set-home ;placate Inkscape
8308 (lambda _
8309 (setenv "HOME" (getcwd))
8310 #t)))))
8311 (native-inputs
8312 `(("autoconf" ,autoconf)
8313 ("automake" ,automake)
8314 ("glib" ,glib "bin") ; for glib-compile-resources
8315 ("gnome-shell" ,gnome-shell)
8316 ("gtk+" ,gtk+)
8317 ("inkscape" ,inkscape)
8318 ("optipng" ,optipng)
8319 ("pkg-config" ,pkg-config)
8320 ("sassc" ,sassc/libsass-3.5)))
8321 (synopsis "A flat GTK+ theme with transparent elements")
8322 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8323 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8324 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8325 (home-page "https://github.com/horst3180/arc-theme")
8326 ;; No "or later" language found.
8327 (license license:gpl3+)))
8328
8329 (define-public faba-icon-theme
8330 (package
8331 (name "faba-icon-theme")
8332 (version "4.3")
8333 (source
8334 (origin
8335 (method git-fetch)
8336 (uri (git-reference
8337 (url "https://github.com/snwh/faba-icon-theme.git")
8338 (commit (string-append "v" version))))
8339 (file-name (git-file-name name version))
8340 (sha256
8341 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8342 (build-system meson-build-system)
8343 (arguments
8344 `(#:phases
8345 (modify-phases %standard-phases
8346 (add-before 'configure 'disable-post-install
8347 (lambda _
8348 (substitute* "meson.build"
8349 (("meson.add_install_script.*") "")))))))
8350 (native-inputs
8351 `(("autoconf" ,autoconf)
8352 ("automake" ,automake)))
8353 (synopsis "Faba icon theme")
8354 (description
8355 "Faba is a minimal icon set used as a basis for other themes such as
8356 Moka")
8357 (home-page "https://snwh.org/moka")
8358 (license (list license:lgpl3+
8359 license:cc-by-sa4.0))))
8360
8361 (define-public moka-icon-theme
8362 (package
8363 (inherit faba-icon-theme)
8364 (name "moka-icon-theme")
8365 (version "5.4.0")
8366 (source
8367 (origin
8368 (method git-fetch)
8369 (uri (git-reference
8370 (url "https://github.com/snwh/moka-icon-theme.git")
8371 (commit (string-append "v" version))))
8372 (file-name (git-file-name name version))
8373 (sha256
8374 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8375 (propagated-inputs
8376 ;; Moka is based on Faba by using it as a fallback icon set instead of
8377 ;; bundling it, so we need to add it as a propagated input.
8378 `(("faba-icon-theme" ,faba-icon-theme)))
8379 (synopsis "Moka icon theme")
8380 (description "Moka is a stylized desktop icon set, designed to be clear,
8381 simple and consistent.")
8382 (license (list license:gpl3+
8383 license:cc-by-sa4.0))))
8384
8385 (define-public arc-icon-theme
8386 (package
8387 (name "arc-icon-theme")
8388 (version "20161122")
8389 (source
8390 (origin
8391 (method git-fetch)
8392 (uri (git-reference
8393 (url "https://github.com/horst3180/arc-icon-theme.git")
8394 (commit version)))
8395 (file-name (git-file-name name version))
8396 (sha256
8397 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8398 (build-system gnu-build-system)
8399 (arguments
8400 `(#:phases
8401 (modify-phases %standard-phases
8402 (add-after 'unpack 'disable-configure-during-bootstrap
8403 (lambda _
8404 (substitute* "autogen.sh"
8405 (("^\"\\$srcdir/configure\".*") ""))
8406 #t)))))
8407 (native-inputs
8408 `(("autoconf" ,autoconf)
8409 ("automake" ,automake)))
8410 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8411 (propagated-inputs
8412 `(("moka-icon-theme" ,moka-icon-theme)))
8413 (synopsis "Arc icon theme")
8414 (description "The Arc icon theme provides a set of icons matching the
8415 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8416 the Moka icon theme.")
8417 (home-page "https://github.com/horst3180/arc-icon-theme")
8418 (license license:gpl3+)))
8419
8420 (define-public folks
8421 (package
8422 (name "folks")
8423 (version "0.11.4")
8424 (source (origin
8425 (method url-fetch)
8426 (uri (string-append
8427 "mirror://gnome/sources/folks/"
8428 (version-major+minor version) "/"
8429 "folks-" version ".tar.xz"))
8430 (sha256
8431 (base32
8432 "16hqh2gxlbx0b0hgq216hndr1m72vj54jvryzii9zqkk0g9kxc57"))))
8433 (build-system glib-or-gtk-build-system)
8434 (inputs
8435 `(("bdb" ,bdb)
8436 ("dbus-glib" ,dbus-glib)
8437 ("evolution-data-server" ,evolution-data-server)
8438 ("glib" ,glib)
8439 ("libgee" ,libgee)
8440 ("telepathy-glib" ,telepathy-glib)))
8441 (native-inputs
8442 `(("gobject-introspection" ,gobject-introspection)
8443 ("intltool" ,intltool)
8444 ("pkg-config" ,pkg-config)
8445 ("vala" ,vala)))
8446 (synopsis "Library to aggregate data about people")
8447 (description "Libfolks is a library that aggregates information about people
8448 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8449 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8450 etc.) to create metacontacts. It's written in Vala, which generates C code when
8451 compiled.")
8452 (home-page "https://wiki.gnome.org/Projects/Folks")
8453 (license license:lgpl2.1+)))
8454
8455 (define-public gfbgraph
8456 (package
8457 (name "gfbgraph")
8458 (version "0.2.3")
8459 (source (origin
8460 (method url-fetch)
8461 (uri (string-append
8462 "mirror://gnome/sources/gfbgraph/"
8463 (version-major+minor version) "/"
8464 "gfbgraph-" version ".tar.xz"))
8465 (sha256
8466 (base32
8467 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8468 (build-system glib-or-gtk-build-system)
8469 (arguments
8470 `(#:tests? #f ; Tests appear to require the network.
8471 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8472 #:configure-flags '("--disable-gtk-doc"
8473 "--disable-static"
8474 "--enable-introspection")))
8475 (native-inputs
8476 `(("pkg-config" ,pkg-config)
8477 ("gobject-introspection" ,gobject-introspection)))
8478 (inputs
8479 `(("json-glib" ,json-glib)
8480 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8481 ("rest" ,rest)))
8482 (synopsis "GLib/GObject wrapper for the Facebook API")
8483 (description "This library allows you to use the Facebook API from
8484 GLib/GObject code.")
8485 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8486 (license license:lgpl2.1+)))
8487
8488 (define-public libgnomekbd
8489 (package
8490 (name "libgnomekbd")
8491 (version "3.26.1")
8492 (source (origin
8493 (method url-fetch)
8494 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8495 (version-major+minor version) "/"
8496 "libgnomekbd-" version ".tar.xz"))
8497 (sha256
8498 (base32
8499 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8500 (build-system gnu-build-system)
8501 (native-inputs
8502 `(("pkg-config" ,pkg-config)
8503 ("glib" ,glib "bin")
8504 ("intltool" ,intltool)))
8505 (propagated-inputs
8506 ;; Referred to in .h files and .pc.
8507 `(("glib" ,glib)
8508 ("gtk+" ,gtk+)
8509 ("libxklavier" ,libxklavier)))
8510 (home-page "https://www.gnome.org")
8511 (synopsis "GNOME keyboard configuration library")
8512 (description
8513 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8514 environment, which can notably display keyboard layouts.")
8515 (license license:lgpl2.0+)))
8516
8517 ;;; This package is no longer maintained:
8518 ;;; https://wiki.gnome.org/Attic/LibUnique
8519 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8520 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8521 (define-public libunique
8522 (package
8523 (name "libunique")
8524 (version "3.0.2")
8525 (source (origin
8526 (method url-fetch)
8527 (uri (string-append "mirror://gnome/sources/" name "/"
8528 (version-major+minor version) "/"
8529 name "-" version ".tar.xz"))
8530 (sha256
8531 (base32
8532 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8533 (build-system glib-or-gtk-build-system)
8534 (arguments
8535 `(#:configure-flags '("--disable-static"
8536 "--disable-dbus" ; use gdbus
8537 "--enable-introspection")))
8538 (native-inputs
8539 `(("pkg-config" ,pkg-config)
8540 ("gobject-introspection" ,gobject-introspection)
8541 ("glib:bin" ,glib "bin")
8542 ("gtk-doc" ,gtk-doc)))
8543 (propagated-inputs
8544 ;; Referred to in .h files and .pc.
8545 `(("gtk+" ,gtk+)))
8546 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8547 (synopsis "Library for writing single instance applications")
8548 (description
8549 "Libunique is a library for writing single instance applications. If you
8550 launch a single instance application twice, the second instance will either just
8551 quit or will send a message to the running instance. Libunique makes it easy to
8552 write this kind of application, by providing a base class, taking care of all
8553 the IPC machinery needed to send messages to a running instance, and also
8554 handling the startup notification side.")
8555 (license license:lgpl2.1+)))
8556
8557 (define-public gnome-calculator
8558 (package
8559 (name "gnome-calculator")
8560 (version "3.32.2")
8561 (source
8562 (origin
8563 (method url-fetch)
8564 (uri (string-append "mirror://gnome/sources/" name "/"
8565 (version-major+minor version) "/"
8566 name "-" version ".tar.xz"))
8567 (sha256
8568 (base32
8569 "0fgpn3sc226s9fpzhik5rkkrf669037gc659ga2kn9jsyckj6p41"))))
8570 (build-system meson-build-system)
8571 (arguments '(#:glib-or-gtk? #t))
8572 (native-inputs
8573 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8574 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8575 ("intltool" ,intltool)
8576 ("itstool" ,itstool)
8577 ("vala" ,vala)
8578 ("pkg-config" ,pkg-config)))
8579 (inputs
8580 `(("glib" ,glib)
8581 ("gtksourceview" ,gtksourceview)
8582 ("libsoup" ,libsoup)
8583 ("libxml2" ,libxml2)
8584 ("mpc" ,mpc)
8585 ("mpfr" ,mpfr)))
8586 (home-page "https://wiki.gnome.org/Apps/Calculator")
8587 (synopsis "Desktop calculator")
8588 (description
8589 "Calculator is an application that solves mathematical equations and
8590 is suitable as a default application in a Desktop environment.")
8591 (license license:gpl3)))
8592
8593 (define-public xpad
8594 (package
8595 (name "xpad")
8596 (version "5.1.0")
8597 (source
8598 (origin
8599 (method url-fetch)
8600 (uri (string-append "https://launchpad.net/xpad/trunk/"
8601 version "/+download/"
8602 name "-" version ".tar.bz2"))
8603 (sha256
8604 (base32
8605 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8606 (build-system gnu-build-system)
8607 (native-inputs
8608 `(("autoconf" ,autoconf)
8609 ("automake" ,automake)
8610 ("gtk+:bin" ,gtk+ "bin")
8611 ("intltool" ,intltool)
8612 ("pkg-config" ,pkg-config)))
8613 (inputs
8614 `(("gtksourceview" ,gtksourceview-3)
8615 ("libsm" ,libsm)))
8616 (home-page "https://wiki.gnome.org/Apps/Xpad")
8617 (synopsis "Virtual sticky note")
8618 (description
8619 "Xpad is a sticky note that strives to be simple, fault tolerant,
8620 and customizable. Xpad consists of independent pad windows, each is
8621 basically a text box in which notes can be written.")
8622 (license license:gpl3+)))
8623
8624 (define-public gucharmap
8625 (let ((unicode-files
8626 '(("Blocks.txt"
8627 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8628 ("DerivedAge.txt"
8629 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8630 ("NamesList.txt"
8631 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8632 ("Scripts.txt"
8633 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8634 ("UnicodeData.txt"
8635 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8636 ("Unihan.zip"
8637 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8638 (package
8639 (name "gucharmap")
8640 (version "12.0.1")
8641 (source
8642 (origin
8643 (method url-fetch)
8644 (uri (string-append "mirror://gnome/sources/" name "/"
8645 (version-major+minor version) "/"
8646 name "-" version ".tar.xz"))
8647 (sha256
8648 (base32
8649 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8650 (build-system glib-or-gtk-build-system)
8651 (arguments
8652 `(#:modules ((ice-9 match)
8653 (guix build glib-or-gtk-build-system)
8654 (guix build utils))
8655 #:configure-flags
8656 (list "--with-unicode-data=../unicode-data")
8657 #:phases
8658 (modify-phases %standard-phases
8659 (add-after 'unpack 'prepare-unicode-data
8660 (lambda* (#:key inputs #:allow-other-keys)
8661 (mkdir-p "../unicode-data")
8662 (with-directory-excursion "../unicode-data"
8663 (for-each (match-lambda
8664 ((file _)
8665 (install-file (assoc-ref inputs file) ".")))
8666 ',unicode-files))
8667 #t)))))
8668 (native-inputs
8669 `(("desktop-file-utils" ,desktop-file-utils)
8670 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8671 ("gobject-introspection" ,gobject-introspection)
8672 ("intltool" ,intltool)
8673 ("itstool" ,itstool)
8674 ("pkg-config" ,pkg-config)
8675 ,@(map (match-lambda
8676 ((file hash)
8677 `(,file
8678 ,(origin
8679 (method url-fetch)
8680 (uri (string-append
8681 "http://www.unicode.org/Public/12.0.0/ucd/"
8682 file))
8683 (sha256 (base32 hash))))))
8684 unicode-files)
8685 ("unzip" ,unzip)))
8686 (inputs
8687 `(("gtk+" ,gtk+)
8688 ("xmllint" ,libxml2)))
8689 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8690 (synopsis "Unicode character picker and font browser")
8691 (description
8692 "This program allows you to browse through all the available Unicode
8693 characters and categories for the installed fonts, and to examine their
8694 detailed properties. It is an easy way to find the character you might
8695 only know by its Unicode name or code point.")
8696 (license license:gpl3+))))
8697
8698 (define-public bluefish
8699 (package
8700 (name "bluefish")
8701 (version "2.2.10")
8702 (source
8703 (origin
8704 (method url-fetch)
8705 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8706 name "-" version ".tar.gz"))
8707 (sha256
8708 (base32
8709 "1jw4has7lbp77lqmzvnnjmqcf0lacjfnka873lkkwdyrpzc4c1q4"))))
8710 (build-system gnu-build-system)
8711 (native-inputs
8712 `(("desktop-file-utils" ,desktop-file-utils)
8713 ("intltool" ,intltool)
8714 ("pkg-config" ,pkg-config)))
8715 (inputs
8716 `(("enchant" ,enchant)
8717 ("gtk+" ,gtk+)
8718 ("python" ,python-2)
8719 ("xmllint" ,libxml2)
8720 ("gucharmap" ,gucharmap)))
8721 (home-page "http://bluefish.openoffice.nl")
8722 (synopsis "Web development studio")
8723 (description
8724 "Bluefish is an editor targeted towards programmers and web developers,
8725 with many options to write web sites, scripts and other code.
8726 Bluefish supports many programming and markup languages.")
8727 (license license:gpl3+)))
8728
8729 (define-public gnome-system-monitor
8730 (package
8731 (name "gnome-system-monitor")
8732 (version "3.32.1")
8733 (source
8734 (origin
8735 (method url-fetch)
8736 (uri (string-append "mirror://gnome/sources/" name "/"
8737 (version-major+minor version) "/"
8738 name "-" version ".tar.xz"))
8739 (sha256
8740 (base32
8741 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8742 (build-system meson-build-system)
8743 (arguments
8744 '(#:glib-or-gtk? #t
8745 #:configure-flags '("-Dsystemd=false")))
8746 (native-inputs
8747 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8748 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8749 ("intltool" ,intltool)
8750 ("itstool" ,itstool)
8751 ("libgtop" ,libgtop)
8752 ("polkit" ,polkit)
8753 ("pkg-config" ,pkg-config)))
8754 (inputs
8755 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8756 ("gtk+" ,gtk+)
8757 ("gtkmm" ,gtkmm)
8758 ("librsvg" ,librsvg)
8759 ("libxml2" ,libxml2)
8760 ("libwnck" ,libwnck)))
8761 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8762 (synopsis "Process viewer and system resource monitor for GNOME")
8763 (description
8764 "GNOME System Monitor is a GNOME process viewer and system monitor with
8765 an attractive, easy-to-use interface. It has features, such as a tree view
8766 for process dependencies, icons for processes, the ability to hide processes,
8767 graphical time histories of CPU/memory/swap usage and the ability to
8768 kill/reinice processes.")
8769 (license license:gpl2+)))
8770
8771 (define-public python-pyatspi
8772 (package
8773 (name "python-pyatspi")
8774 (version "2.34.0")
8775 (source (origin
8776 (method url-fetch)
8777 (uri (string-append
8778 "mirror://gnome/sources/pyatspi/"
8779 (version-major+minor version)
8780 "/pyatspi-" version ".tar.xz"))
8781 (sha256
8782 (base32
8783 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8784 (build-system gnu-build-system)
8785 (arguments
8786 `(#:phases
8787 (modify-phases %standard-phases
8788 (add-before 'build 'fix-atk-load
8789 (lambda _
8790 (substitute* "pyatspi/__init__.py"
8791 (("from gi.repository import Atspi")
8792 "gi.require_version('Gtk', '3.0')
8793 from gi.repository import Gtk
8794 from gi.repository import Atspi"))
8795 #t)))))
8796 (native-inputs
8797 `(("pkg-config" ,pkg-config)))
8798 (inputs
8799 `(("python" ,python)
8800 ("python-pygobject" ,python-pygobject)))
8801 (synopsis "Python client bindings for D-Bus AT-SPI")
8802 (home-page "https://wiki.linuxfoundation.org/accessibility\
8803 /atk/at-spi/at-spi_on_d-bus")
8804 (description
8805 "This package includes a python client library for the AT-SPI D-Bus
8806 accessibility infrastructure.")
8807 (license license:lgpl2.0)
8808 (properties '((upstream-name . "pyatspi")))))
8809
8810 (define-public orca
8811 (package
8812 (name "orca")
8813 (version "3.32.0")
8814 (source (origin
8815 (method url-fetch)
8816 (uri (string-append
8817 "mirror://gnome/sources/" name "/"
8818 (version-major+minor version) "/"
8819 name "-" version ".tar.xz"))
8820 (sha256
8821 (base32
8822 "05jqzlg0f1x53hyl0l9282ynmw37159g6dsbrid12b7sjs12cc1i"))))
8823 (build-system glib-or-gtk-build-system)
8824 (arguments
8825 '(#:phases
8826 (modify-phases %standard-phases
8827 (add-before 'configure 'qualify-xkbcomp
8828 (lambda* (#:key inputs #:allow-other-keys)
8829 (let ((xkbcomp (string-append
8830 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8831 (substitute* "src/orca/orca.py"
8832 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8833 #t))
8834 (add-after 'install 'wrap-orca
8835 (lambda* (#:key outputs #:allow-other-keys)
8836 (let* ((out (assoc-ref outputs "out"))
8837 (prog (string-append out "/bin/orca")))
8838 (wrap-program prog
8839 `("GI_TYPELIB_PATH" ":" prefix
8840 (,(getenv "GI_TYPELIB_PATH")))
8841 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8842 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8843 `("PYTHONPATH" ":" prefix
8844 (,(getenv "PYTHONPATH")))))
8845 #t)))))
8846 (native-inputs
8847 `(("intltool" ,intltool)
8848 ("itstool" ,itstool)
8849 ("pkg-config" ,pkg-config)
8850 ("xmllint" ,libxml2)))
8851 (inputs
8852 `(("at-spi2-atk" ,at-spi2-atk)
8853 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8854 ("gstreamer" ,gstreamer)
8855 ("gst-plugins-base" ,gst-plugins-base)
8856 ("gst-plugins-good" ,gst-plugins-good)
8857 ("gtk+" ,gtk+)
8858 ("python" ,python)
8859 ("python-pygobject" ,python-pygobject)
8860 ("python-pyatspi" ,python-pyatspi)
8861 ("python-speechd" ,speech-dispatcher)
8862 ("xkbcomp" ,xkbcomp)))
8863 (synopsis
8864 "Screen reader for individuals who are blind or visually impaired")
8865 (home-page "https://wiki.gnome.org/Projects/Orca")
8866 (description
8867 "Orca is a screen reader that provides access to the graphical desktop
8868 via speech and refreshable braille. Orca works with applications and toolkits
8869 that support the Assistive Technology Service Provider Interface (AT-SPI).")
8870 (license license:lgpl2.1+)))
8871
8872 (define-public gspell
8873 (package
8874 (name "gspell")
8875 (version "1.8.2")
8876 (source (origin
8877 (method url-fetch)
8878 (uri (string-append "mirror://gnome/sources/" name "/"
8879 (version-major+minor version) "/"
8880 name "-" version ".tar.xz"))
8881 (sha256
8882 (base32
8883 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
8884 (patches (search-patches "gspell-dash-test.patch"))))
8885 (build-system glib-or-gtk-build-system)
8886 (arguments
8887 '(#:phases
8888 (modify-phases %standard-phases
8889 (add-before 'check 'pre-check
8890 (lambda* (#:key inputs #:allow-other-keys)
8891 ;; Tests require a running X server.
8892 (system "Xvfb :1 &")
8893 (setenv "DISPLAY" ":1")
8894
8895 ;; For the missing /etc/machine-id.
8896 (setenv "DBUS_FATAL_WARNINGS" "0")
8897
8898 ;; Allow Enchant and its Aspell backend to find the en_US
8899 ;; dictionary.
8900 (setenv "ASPELL_DICT_DIR"
8901 (string-append (assoc-ref inputs "aspell-dict-en")
8902 "/lib/aspell"))
8903 #t)))))
8904 (inputs
8905 `(("gtk+" ,gtk+)
8906 ("glib" ,glib)
8907 ("iso-codes" ,iso-codes)))
8908 (native-inputs
8909 `(("glib" ,glib "bin")
8910 ("gobject-introspection" ,gobject-introspection)
8911 ("pkg-config" ,pkg-config)
8912 ("xmllint" ,libxml2)
8913
8914 ;; For tests.
8915 ("aspell-dict-en" ,aspell-dict-en)
8916 ("xorg-server" ,xorg-server-for-tests)))
8917 (propagated-inputs
8918 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
8919 (home-page "https://wiki.gnome.org/Projects/gspell")
8920 (synopsis "GNOME's alternative spell checker")
8921 (description
8922 "gspell provides a flexible API to add spell-checking to a GTK+
8923 application. It provides a GObject API, spell-checking to text entries and
8924 text views, and buttons to choose the language.")
8925 (license license:gpl2+)))
8926
8927 (define-public gnome-planner
8928 (package
8929 (name "gnome-planner")
8930 (version "0.14.6")
8931 (source (origin
8932 (method url-fetch)
8933 (uri (string-append "mirror://gnome/sources/planner/"
8934 (version-major+minor version) "/planner-"
8935 version ".tar.xz"))
8936 (sha256
8937 (base32
8938 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8939 (build-system glib-or-gtk-build-system)
8940 (arguments
8941 ;; Disable the Python bindings because the Planner program functions
8942 ;; without them, and (as of 2017-06-13) we have not packaged all of
8943 ;; packages that are necessary for building the Python bindings.
8944 `(#:configure-flags
8945 (list "--disable-python"
8946 ,@(if (string=? "aarch64-linux" (%current-system))
8947 '("--build=aarch64-unknown-linux-gnu")
8948 '()))))
8949 (inputs
8950 `(("libgnomecanvas" ,libgnomecanvas)
8951 ("libgnomeui" ,libgnomeui)
8952 ("libglade" ,libglade)
8953 ("gnome-vfs" ,gnome-vfs)
8954 ("gconf" ,gconf)
8955 ("libxml2" ,libxml2)
8956 ("libxslt" ,libxslt)
8957 ("gtk+" ,gtk+)
8958 ("glib" ,glib)))
8959 (native-inputs
8960 `(("intltool" ,intltool)
8961 ("scrollkeeper" ,scrollkeeper)
8962 ("pkg-config" ,pkg-config)))
8963 (home-page "https://wiki.gnome.org/Apps/Planner")
8964 (synopsis "Project management software for the GNOME desktop")
8965 (description
8966 "GNOME Planner is a project management tool based on the Work Breakdown
8967 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8968 the resources, tasks, and constraints that you define, Planner generates
8969 various views into a project. For example, Planner can show a Gantt chart of
8970 the project. It can show a detailed summary of tasks including their
8971 duration, cost, and current progress. It can also show a report of resource
8972 utilization that highlights under-utilized and over-utilized resources. These
8973 views can be printed as PDF or PostScript files, or exported to HTML.")
8974 (license license:gpl2+)))
8975
8976 (define-public lollypop
8977 (package
8978 (name "lollypop")
8979 (version "1.2.7")
8980 (source
8981 (origin
8982 (method url-fetch)
8983 (uri (string-append "https://gitlab.gnome.org/World/lollypop/uploads/"
8984 "08f973788c7ca46d9285eec2ac818edb/"
8985 "lollypop-" version ".tar.xz"))
8986 (sha256
8987 (base32 "0hvq6m4i62i0m63bg4gzpfb9rv1fk6vq5jl2g3ppcgm4srmfm77j"))))
8988 (build-system meson-build-system)
8989 (arguments
8990 `(#:imported-modules ((guix build python-build-system)
8991 ,@%meson-build-system-modules)
8992 #:glib-or-gtk? #t
8993 #:tests? #f ; no test suite
8994 #:phases
8995 (modify-phases %standard-phases
8996 (add-after 'install 'wrap-program
8997 (lambda* (#:key outputs #:allow-other-keys)
8998 (let ((out (assoc-ref outputs "out"))
8999 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9000 (wrap-program (string-append out "/bin/lollypop")
9001 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9002 #t))
9003 (add-after 'install 'wrap-python
9004 (@@ (guix build python-build-system) wrap))
9005 (add-after 'install 'wrap-glib-or-gtk
9006 (@@ (guix build glib-or-gtk-build-system) wrap-all-programs)))))
9007 (native-inputs
9008 `(("intltool" ,intltool)
9009 ("itstool" ,itstool)
9010 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9011 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9012 ("pkg-config" ,pkg-config)))
9013 (inputs
9014 `(("gobject-introspection" ,gobject-introspection)
9015 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9016 ("gst-plugins-base" ,gst-plugins-base)
9017 ("libnotify" ,libnotify)
9018 ("libsecret" ,libsecret)
9019 ("libsoup" ,libsoup)
9020 ("python" ,python)
9021 ("python-beautifulsoup4" ,python-beautifulsoup4)
9022 ("python-gst" ,python-gst)
9023 ("python-pil" ,python-pillow)
9024 ("python-pycairo" ,python-pycairo)
9025 ("python-pygobject" ,python-pygobject-3.34)
9026 ("python-pylast" ,python-pylast)
9027 ("totem-pl-parser" ,totem-pl-parser)
9028 ("webkitgtk" ,webkitgtk)))
9029 (propagated-inputs
9030 `(;; gst-plugins-base is required to start Lollypop,
9031 ;; the others are required to play streaming.
9032 ("gst-plugins-good" ,gst-plugins-good)
9033 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9034 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9035 (synopsis "GNOME music playing application")
9036 (description
9037 "Lollypop is a music player designed to play well with GNOME desktop.
9038 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9039 from artists and tracks from the web. It also fetches cover artworks
9040 automatically and it can stream songs from online music services and charts.")
9041 (license license:gpl3+)))
9042
9043 (define-public gnome-video-effects
9044 (package
9045 (name "gnome-video-effects")
9046 (version "0.4.3")
9047 (source (origin
9048 (method url-fetch)
9049 (uri (string-append "mirror://gnome/sources/" name "/"
9050 (version-major+minor version) "/" name "-"
9051 version ".tar.xz"))
9052 (sha256
9053 (base32
9054 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9055 (build-system glib-or-gtk-build-system)
9056 (arguments
9057 `(#:out-of-source? #f))
9058 (native-inputs
9059 `(("glib:bin" ,glib "bin")
9060 ("intltool" ,intltool)
9061 ("gettext" ,gettext-minimal)
9062 ("pkg-config" ,pkg-config)))
9063 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9064 (synopsis "Video effects for Cheese and other GNOME applications")
9065 (description
9066 "A collection of GStreamer video filters and effects to be used in
9067 photo-booth-like software, such as Cheese.")
9068 (license license:gpl2+)))
9069
9070 (define-public cheese
9071 (package
9072 (name "cheese")
9073 (version "3.32.1")
9074 (source (origin
9075 (method url-fetch)
9076 (uri (string-append "mirror://gnome/sources/" name "/"
9077 (version-major+minor version) "/" name "-"
9078 version ".tar.xz"))
9079 (sha256
9080 (base32
9081 "1xlmsm4zsx05ahvpd4mgy1hfhxbag0r5i6p63bksjxdligdd36kv"))))
9082 (arguments
9083 ;; Tests require GDK.
9084 `(#:tests? #f
9085 #:phases
9086 (modify-phases %standard-phases
9087 (add-before 'install 'skip-gtk-update-icon-cache
9088 (lambda _
9089 ;; Don't create 'icon-theme.cache'
9090 (substitute* "Makefile"
9091 (("gtk-update-icon-cache") (which "true")))
9092 #t))
9093 (add-after 'install 'wrap-cheese
9094 (lambda* (#:key inputs outputs #:allow-other-keys)
9095 (let ((out (assoc-ref outputs "out"))
9096 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9097 (wrap-program (string-append out "/bin/cheese")
9098 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9099 #t)))))
9100 (build-system glib-or-gtk-build-system)
9101 (native-inputs
9102 `(("glib:bin" ,glib "bin")
9103 ("intltool" ,intltool)
9104 ("itstool" ,itstool)
9105 ("libxml2" ,libxml2)
9106 ("pkg-config" ,pkg-config)
9107 ("vala" ,vala)))
9108 (propagated-inputs
9109 `(("gnome-video-effects" ,gnome-video-effects)
9110 ("clutter" ,clutter)
9111 ("clutter-gst" ,clutter-gst)
9112 ("clutter-gtk" ,clutter-gtk)
9113 ("libcanberra" ,libcanberra)
9114 ("gdk-pixbuf" ,gdk-pixbuf)
9115 ("glib" ,glib)
9116 ("gstreamer" ,gstreamer)))
9117 (inputs
9118 `(("gnome-desktop" ,gnome-desktop)
9119 ("gobject-introspection" ,gobject-introspection)
9120 ("gst-plugins-base" ,gst-plugins-base)
9121 ("gst-plugins-bad" ,gst-plugins-bad)
9122 ("gtk+" ,gtk+)
9123 ("libx11" ,libx11)
9124 ("libxtst" ,libxtst)))
9125 (home-page "https://wiki.gnome.org/Apps/Cheese")
9126 (synopsis "Webcam photo booth software for GNOME")
9127 (description
9128 "Cheese uses your webcam to take photos and videos. Cheese can also
9129 apply fancy special effects and lets you share the fun with others.")
9130 (license license:gpl2+)))
9131
9132 (define-public sound-juicer
9133 (package
9134 (name "sound-juicer")
9135 (version "3.24.0")
9136 (source
9137 (origin
9138 (method url-fetch)
9139 (uri (string-append "mirror://gnome/sources/" name "/"
9140 (version-major+minor version) "/"
9141 name "-" version ".tar.xz"))
9142 (sha256
9143 (base32
9144 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9145 (build-system glib-or-gtk-build-system)
9146 (native-inputs
9147 `(("desktop-file-utils" ,desktop-file-utils)
9148 ("intltool" ,intltool)
9149 ("itstool" ,itstool)
9150 ("pkg-config" ,pkg-config)
9151 ("xmllint" ,libxml2)))
9152 (inputs
9153 `(("gtk+" ,gtk+)
9154 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9155 ("gstreamer" ,gstreamer)
9156 ("gst-plugins-base" ,gst-plugins-base)
9157 ("gst-plugins-good" ,gst-plugins-good)
9158 ("iso-codes" ,iso-codes)
9159 ("libbrasero-media3" ,brasero)
9160 ("libcanberra" ,libcanberra)
9161 ("libdiscid" ,libdiscid)
9162 ("libmusicbrainz" ,libmusicbrainz)
9163 ("neon" ,neon)))
9164 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9165 (synopsis "Audio music cd ripper")
9166 (description "Sound Juicer extracts audio from compact discs and convert it
9167 into audio files that a personal computer or digital audio player can play.
9168 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9169 mp3, Ogg Vorbis and FLAC")
9170 (license license:gpl2+)))
9171
9172 (define-public soundconverter
9173 (package
9174 (name "soundconverter")
9175 (version "3.0.1")
9176 (source
9177 (origin
9178 (method url-fetch)
9179 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9180 version "/+download/"
9181 "soundconverter-" version ".tar.xz"))
9182
9183 (sha256
9184 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
9185 (patches
9186 (search-patches
9187 "soundconverter-remove-gconf-dependency.patch"))))
9188 (build-system glib-or-gtk-build-system)
9189 (arguments
9190 `(#:imported-modules ((guix build python-build-system)
9191 (guix build glib-or-gtk-build-system)
9192 ,@%gnu-build-system-modules)
9193
9194 #:modules ((guix build glib-or-gtk-build-system)
9195 (guix build utils)
9196 ((guix build gnu-build-system) #:prefix gnu:)
9197 ((guix build python-build-system) #:prefix python:))
9198
9199 #:phases
9200 (modify-phases %standard-phases
9201 (add-after 'install 'wrap-soundconverter-for-python
9202 (assoc-ref python:%standard-phases 'wrap))
9203 (add-after 'install 'wrap-soundconverter
9204 (lambda* (#:key inputs outputs #:allow-other-keys)
9205 (let ((out (assoc-ref outputs "out"))
9206 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9207 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9208 (wrap-program (string-append out "/bin/soundconverter")
9209 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9210 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9211 #t)))))
9212 (native-inputs
9213 `(("intltool" ,intltool)
9214 ("pkg-config" ,pkg-config)
9215 ("glib:bin" ,glib "bin")))
9216 (inputs
9217 `(("gtk+" ,gtk+)
9218 ("python" ,python)
9219 ("python-pygobject" ,python-pygobject)
9220 ("gstreamer" ,gstreamer)
9221 ("gst-plugins-base" ,gst-plugins-base)))
9222 (home-page "http://soundconverter.org/")
9223 (synopsis "Convert between audio formats with a graphical interface")
9224 (description
9225 "SoundConverter supports converting between many audio formats including
9226 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9227 configurable file renaming. ")
9228 (license license:gpl3)))
9229
9230 (define-public workrave
9231 (package
9232 (name "workrave")
9233 (version "1.10.34")
9234 (source
9235 (origin
9236 (method git-fetch)
9237 (uri (git-reference
9238 (url "https://github.com/rcaelers/workrave.git")
9239 (commit (string-append "v" (string-map
9240 (match-lambda (#\. #\_) (chr chr))
9241 version)))))
9242 (file-name (git-file-name name version))
9243 (sha256
9244 (base32 "0czwhr7nw523753ajcjjfwrf91mq8pmzr19gp0srqsvb1dsn1zcf"))))
9245 (build-system glib-or-gtk-build-system)
9246 (inputs `(("glib" ,glib)
9247 ("gtk+" ,gtk+)
9248 ("gdk-pixbuf" ,gdk-pixbuf)
9249 ("gtkmm" ,gtkmm)
9250 ("glibmm" ,glibmm)
9251 ("libx11" ,libx11)
9252 ("libxtst" ,libxtst)
9253 ("dconf" ,dconf)
9254 ("libice" ,libice)
9255 ("libsm" ,libsm)
9256 ("libxscrnsaver" ,libxscrnsaver)))
9257 (native-inputs `(("boost" ,boost)
9258 ("pkg-config" ,pkg-config)
9259 ("gettext" ,gnu-gettext)
9260 ("autoconf" ,autoconf)
9261 ("autoconf-archive" , autoconf-archive)
9262 ("automake" ,automake)
9263 ("libtool" ,libtool)
9264 ("intltool" ,intltool)
9265 ("gobject-introspection" ,gobject-introspection)
9266 ("python3" ,python-3)
9267 ("python-jinja2" ,python-jinja2)))
9268 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9269 (description
9270 "Workrave is a program that assists in the recovery and prevention of
9271 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9272 micro-pauses and rest breaks, and restricts you to your daily limit.")
9273 (home-page "http://www.workrave.org")
9274 (license license:gpl3+)))
9275
9276 (define-public ghex
9277 (package
9278 (name "ghex")
9279 (version "3.18.4")
9280 (source (origin
9281 (method url-fetch)
9282 (uri (string-append "mirror://gnome/sources/ghex/"
9283 (version-major+minor version) "/"
9284 "ghex-" version ".tar.xz"))
9285 (sha256
9286 (base32
9287 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9288 (build-system meson-build-system)
9289 (arguments
9290 '(#:glib-or-gtk? #t
9291 #:phases
9292 (modify-phases %standard-phases
9293 (add-after 'unpack 'skip-gtk-update-icon-cache
9294 ;; Don't create 'icon-theme.cache'.
9295 (lambda _
9296 (substitute* "meson_post_install.py"
9297 (("gtk-update-icon-cache") (which "true")))
9298 #t)))))
9299 (native-inputs
9300 `(("pkg-config" ,pkg-config)
9301 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9302 ("gnome-common" ,gnome-common)
9303 ("which" ,which)
9304 ("intltool" ,intltool)
9305 ("yelp-tools" ,yelp-tools)
9306 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9307 (inputs
9308 `(("atk" ,atk)
9309 ("gtk" ,gtk+)))
9310 (synopsis "GNOME hexadecimal editor")
9311 (description "The GHex program can view and edit files in two ways:
9312 hexadecimal or ASCII. It is useful for editing binary files in general.")
9313 (home-page "https://wiki.gnome.org/Apps/Ghex")
9314 (license license:gpl2)))
9315
9316 (define-public libdazzle
9317 (package
9318 (name "libdazzle")
9319 (version "3.33.90")
9320 (source (origin
9321 (method url-fetch)
9322 (uri (string-append "mirror://gnome/sources/libdazzle/"
9323 (version-major+minor version) "/"
9324 "libdazzle-" version ".tar.xz"))
9325 (sha256
9326 (base32
9327 "189m7q88d1a7bq0yyal9f3yhm9kz46lb61379nn4wsnnhpa1d0qs"))))
9328 (build-system meson-build-system)
9329 (arguments
9330 `(#:phases
9331 (modify-phases %standard-phases
9332 (add-before 'check 'pre-check
9333 (lambda _
9334 ;; Tests require a running X server.
9335 (system "Xvfb :1 &")
9336 (setenv "DISPLAY" ":1")
9337 #t)))))
9338 (native-inputs
9339 `(("glib" ,glib "bin") ; glib-compile-resources
9340 ("pkg-config" ,pkg-config)
9341 ;; For tests.
9342 ("xorg-server" ,xorg-server-for-tests)))
9343 (inputs
9344 `(("glib" ,glib)
9345 ("gobject-introspection" ,gobject-introspection)
9346 ("gtk+" ,gtk+)
9347 ("vala" ,vala)))
9348 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9349 (synopsis "Companion library to GObject and Gtk+")
9350 (description "The libdazzle library is a companion library to GObject and
9351 Gtk+. It provides various features that the authors wish were in the
9352 underlying library but cannot for various reasons. In most cases, they are
9353 wildly out of scope for those libraries. In other cases, they are not quite
9354 generic enough to work for everyone.")
9355 (license license:gpl3+)))
9356
9357 (define-public evolution
9358 (package
9359 (name "evolution")
9360 (version "3.32.4")
9361 (source (origin
9362 (method url-fetch)
9363 (uri (string-append "mirror://gnome/sources/evolution/"
9364 (version-major+minor version) "/"
9365 "evolution-" version ".tar.xz"))
9366 (sha256
9367 (base32
9368 "00hmmg4hfns8rq9rcilmy0gi1xkksld27lfbd9zmw2xw37wjmbqh"))))
9369 (build-system cmake-build-system)
9370 (arguments
9371 `(#:imported-modules (,@%cmake-build-system-modules
9372 (guix build glib-or-gtk-build-system))
9373 #:modules ((guix build cmake-build-system)
9374 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9375 (guix build utils))
9376 #:configure-flags
9377 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9378 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9379 ; in four years and cannot be built.
9380 #:phases
9381 (modify-phases %standard-phases
9382 ;; The build system attempts to install user interface modules to the
9383 ;; output directory of the "evolution-data-server" package. This
9384 ;; change redirects that change.
9385 (add-after 'unpack 'patch-ui-module-dir
9386 (lambda* (#:key outputs #:allow-other-keys)
9387 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9388 (("\\$\\{edsuimoduledir\\}")
9389 (string-append (assoc-ref outputs "out")
9390 "/lib/evolution-data-server/ui-modules")))
9391 #t))
9392 (add-after 'install 'glib-or-gtk-compile-schemas
9393 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9394 (add-after 'install 'glib-or-gtk-wrap
9395 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9396 (native-inputs
9397 `(("glib" ,glib "bin") ; glib-mkenums
9398 ("pkg-config" ,pkg-config)
9399 ("intltool" ,intltool)
9400 ("itstool" ,itstool)))
9401 (inputs
9402 `(("enchant" ,enchant)
9403 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9404 ("gcr" ,gcr)
9405 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9406 ("gnome-autoar" ,gnome-autoar)
9407 ("gnome-desktop" ,gnome-desktop)
9408 ("gtkspell3" ,gtkspell3)
9409 ("highlight" ,highlight)
9410 ("libcanberra" ,libcanberra)
9411 ("libedataserverui" ,evolution-data-server)
9412 ("libgweather" ,libgweather)
9413 ("libnotify" ,libnotify)
9414 ("libsoup" ,libsoup)
9415 ("nss" ,nss)
9416 ("openldap" ,openldap)
9417 ("webkitgtk" ,webkitgtk)
9418 ("ytnef" ,ytnef)))
9419 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9420 (synopsis "Manage your email, contacts and schedule")
9421 (description "Evolution is a personal information management application
9422 that provides integrated mail, calendaring and address book
9423 functionality.")
9424 ;; See COPYING for details.
9425 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9426 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9427 license:lgpl2.1+)))) ; smime/lib/*
9428
9429 (define-public gthumb
9430 (package
9431 (name "gthumb")
9432 (version "3.8.2")
9433 (source (origin
9434 (method url-fetch)
9435 (uri (string-append "mirror://gnome/sources/gthumb/"
9436 (version-major+minor version) "/"
9437 "gthumb-" version ".tar.xz"))
9438 (sha256
9439 (base32
9440 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9441 (build-system meson-build-system)
9442 (arguments
9443 `(#:glib-or-gtk? #t
9444 #:configure-flags
9445 ;; Ensure the RUNPATH contains all installed library locations.
9446 (list (string-append "-Dc_link_args=-Wl,-rpath="
9447 (assoc-ref %outputs "out")
9448 "/lib/gthumb/extensions")
9449 (string-append "-Dcpp_link_args=-Wl,-rpath="
9450 (assoc-ref %outputs "out")
9451 "/lib/gthumb/extensions"))))
9452 (native-inputs
9453 `(("pkg-config" ,pkg-config)
9454 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9455 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9456 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9457 ("intltool" ,intltool)
9458 ("itstool" ,itstool)))
9459 (inputs
9460 `(("exiv2" ,exiv2)
9461 ("gtk" ,gtk+)
9462 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9463 ("gstreamer" ,gstreamer)
9464 ("clutter" ,clutter)
9465 ("clutter-gst" ,clutter-gst)
9466 ("clutter-gtk" ,clutter-gtk)
9467 ("libjpeg" ,libjpeg)
9468 ("libtiff" ,libtiff)
9469 ("libraw" ,libraw)))
9470 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9471 (synopsis "GNOME image viewer and browser")
9472 (description "GThumb is an image viewer, browser, organizer, editor and
9473 advanced image management tool")
9474 (license license:gpl2+)))
9475
9476 (define-public terminator
9477 (package
9478 (name "terminator")
9479 (version "1.91")
9480 (source (origin
9481 (method url-fetch)
9482 (uri (string-append "https://launchpad.net/" name "/"
9483 "gtk3/" version "/" "+download/"
9484 name "-" version ".tar.gz"))
9485 (sha256
9486 (base32
9487 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9488 (build-system python-build-system)
9489 (native-inputs
9490 `(("intltool" ,intltool)
9491 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9492 ("gettext" ,gettext-minimal)
9493 ("pkg-config" ,pkg-config)))
9494 (inputs
9495 `(("cairo" ,cairo)
9496 ("gobject-introspection" ,gobject-introspection)
9497 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9498 ("python2-pycairo" ,python2-pycairo)
9499 ("python2-pygobject" ,python2-pygobject)
9500 ("python2-psutil" ,python2-psutil)
9501 ("vte" ,vte)))
9502 (arguments
9503 `(#:python ,python-2 ; Python 3 isn't supported
9504 #:imported-modules ((guix build glib-or-gtk-build-system)
9505 ,@%python-build-system-modules)
9506 #:modules ((guix build python-build-system)
9507 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9508 (guix build utils))
9509 #:phases
9510 (modify-phases %standard-phases
9511 (add-after
9512 'install 'wrap-program
9513 (lambda* (#:key outputs #:allow-other-keys)
9514 (let ((prog (string-append (assoc-ref outputs "out")
9515 "/bin/terminator")))
9516 (wrap-program prog
9517 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9518 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9519 #t)))
9520 (add-after 'wrap-program 'glib-or-gtk-wrap
9521 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9522 (home-page "https://gnometerminator.blogspot.com/")
9523 (synopsis "Store and run multiple GNOME terminals in one window")
9524 (description
9525 "Terminator allows you to run multiple GNOME terminals in a grid and
9526 +tabs, and it supports drag and drop re-ordering of terminals.")
9527 (license license:gpl2)))
9528
9529 (define-public libhandy
9530 (package
9531 (name "libhandy")
9532 (version "0.0.12")
9533 (source
9534 (origin
9535 (method git-fetch)
9536 (uri (git-reference
9537 (url "https://source.puri.sm/Librem5/libhandy")
9538 (commit (string-append "v" version))))
9539 (file-name (git-file-name name version))
9540 (sha256
9541 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9542 (build-system meson-build-system)
9543 (arguments
9544 `(#:configure-flags
9545 '("-Dglade_catalog=disabled"
9546 "-Dgtk_doc=true")
9547 #:phases
9548 (modify-phases %standard-phases
9549 (add-before 'check 'pre-check
9550 (lambda _
9551 ;; Tests require a running X server.
9552 (system "Xvfb :1 &")
9553 (setenv "DISPLAY" ":1")
9554 #t)))))
9555 (inputs
9556 `(("gtk+" ,gtk+)))
9557 (native-inputs
9558 `(("glib:bin" ,glib "bin")
9559 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9560 ("vala" ,vala)
9561 ("gtk-doc" ,gtk-doc)
9562 ("pkg-config" ,pkg-config)
9563 ("gettext" ,gettext-minimal)
9564
9565 ;; Test suite dependencies.
9566 ("xorg-server" ,xorg-server-for-tests)
9567 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9568 (home-page "https://source.puri.sm/Librem5/libhandy")
9569 (synopsis "Library full of GTK+ widgets for mobile phones")
9570 (description "The aim of the handy library is to help with developing user
9571 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9572 for usage on small and big screens.")
9573 (license license:lgpl2.1+)))
9574
9575 (define-public libgit2-glib
9576 (package
9577 (name "libgit2-glib")
9578 (version "0.28.0.1")
9579 (source (origin
9580 (method url-fetch)
9581 (uri (string-append "mirror://gnome/sources/" name "/"
9582 (version-major+minor version) "/"
9583 name "-" version ".tar.xz"))
9584 (sha256
9585 (base32
9586 "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
9587 (build-system meson-build-system)
9588 (native-inputs
9589 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9590 ("gobject-introspection" ,gobject-introspection)
9591 ("intltool" ,intltool)
9592 ("libssh2" ,libssh2)
9593 ("pkg-config" ,pkg-config)
9594 ("python-pygobject" ,python-pygobject)
9595 ("python-wrapper" ,python-wrapper)
9596 ("vala" ,vala)))
9597 (inputs
9598 `(("glib" ,glib)
9599 ("libgit2" ,libgit2)))
9600 (synopsis "GLib wrapper around the libgit2 Git access library")
9601 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9602 access library. It only implements the core plumbing functions, not really the
9603 higher level porcelain stuff.")
9604 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9605 (license license:gpl2+)))
9606
9607 (define-public gitg
9608 (package
9609 (name "gitg")
9610 (version "3.32.1")
9611 (source (origin
9612 (method url-fetch)
9613 (uri (string-append "mirror://gnome/sources/" name "/"
9614 (version-major+minor version) "/"
9615 name "-" version ".tar.xz"))
9616 (sha256
9617 (base32
9618 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9619 (build-system meson-build-system)
9620 (arguments
9621 `(#:glib-or-gtk? #t
9622 #:phases
9623 (modify-phases %standard-phases
9624 (add-after 'unpack 'disable-post-install-partially
9625 (lambda _
9626 (substitute* "meson_post_install.py"
9627 (("'python'") ; there are no python sources to compile
9628 (string-append "'" (which "true") "'"))
9629 (("gtk-update-icon-cache") (which "true")))
9630 #t))
9631 (add-after 'unpack 'fix-test-sources
9632 (lambda _
9633 (substitute* "tests/libgitg/test-commit.vala"
9634 (("/bin/bash") (which "bash")))
9635 #t))
9636 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9637 (lambda* (#:key outputs #:allow-other-keys)
9638 (let ((prog (string-append (assoc-ref outputs "out")
9639 "/bin/gitg")))
9640 (wrap-program prog
9641 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9642 #t))))))
9643 (inputs
9644 `(("glib" ,glib)
9645 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9646 ("gtk+" ,gtk+)
9647 ("gtkspell3" ,gtkspell3)
9648 ("gtksourceview" ,gtksourceview-3)
9649 ("json-glib" ,json-glib)
9650 ("libdazzle" ,libdazzle)
9651 ("libgee" ,libgee)
9652 ("libgit2" ,libgit2) ; propagated by libgit2-glib
9653 ("libgit2-glib" ,libgit2-glib)
9654 ("libpeas" ,libpeas)
9655 ("libsecret" ,libsecret)
9656 ("libsoup" ,libsoup)
9657 ("libxml2" ,libxml2)))
9658 (native-inputs
9659 `(("glib:bin" ,glib "bin")
9660 ("gtk+:bin" ,gtk+ "bin")
9661 ("gobject-introspection" ,gobject-introspection)
9662 ("intltool" ,intltool)
9663 ("pkg-config" ,pkg-config)
9664 ("vala" ,vala)))
9665 (synopsis "Graphical user interface for git")
9666 (description
9667 "gitg is a graphical user interface for git. It aims at being a small,
9668 fast and convenient tool to visualize the history of git repositories.
9669 Besides visualization, gitg also provides several utilities to manage your
9670 repository and commit your work.")
9671 (home-page "https://wiki.gnome.org/Apps/Gitg")
9672 (license license:gpl2+)))
9673
9674 (define-public gamin
9675 (package
9676 (name "gamin")
9677 (version "0.1.10")
9678 (source (origin
9679 (method url-fetch)
9680 (uri (string-append "mirror://gnome/sources/" name "/"
9681 (version-major+minor version) "/"
9682 name "-" version ".tar.bz2"))
9683 (sha256
9684 (base32
9685 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9686 (build-system gnu-build-system)
9687 (arguments
9688 `(#:phases
9689 (modify-phases %standard-phases
9690 (add-after 'unpack 'remove-deprecated-macro
9691 (lambda _
9692 (substitute* '("server/gam_node.c"
9693 "server/gam_subscription.h"
9694 "server/gam_node.h"
9695 "server/gam_subscription.c")
9696 (("G_CONST_RETURN") "const"))
9697 #t)))))
9698 (inputs
9699 `(("glib" ,glib)))
9700 (native-inputs
9701 `(("intltool" ,intltool)
9702 ("pkg-config" ,pkg-config)))
9703 (home-page "https://people.gnome.org/~veillard/gamin/")
9704 (synopsis "File alteration monitor")
9705 (description
9706 "Gamin is a file and directory monitoring system defined to be a subset
9707 of the FAM (File Alteration Monitor) system. This is a service provided by a
9708 library which allows to detect when a file or a directory has been modified.")
9709 (license license:gpl2+)))
9710
9711 (define-public gnome-mahjongg
9712 (package
9713 (name "gnome-mahjongg")
9714 (version "3.35.1")
9715 (source (origin
9716 (method git-fetch)
9717 (uri (git-reference
9718 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9719 (commit version)))
9720 (file-name (git-file-name name version))
9721 (sha256
9722 (base32
9723 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9724 (build-system meson-build-system)
9725 (arguments
9726 `(#:glib-or-gtk? #t))
9727 (native-inputs
9728 `(("appstream-glib" ,appstream-glib)
9729 ("gettext" ,gettext-minimal)
9730 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9731 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9732 ("itstool" ,itstool)
9733 ("pkg-config" ,pkg-config)
9734 ("vala" ,vala)))
9735 (propagated-inputs
9736 `(("dconf" ,dconf)))
9737 (inputs
9738 `(("glib" ,glib)
9739 ("gtk+" ,gtk+)
9740 ("librsvg" ,librsvg)))
9741 (synopsis "Mahjongg tile-matching game")
9742 (description "GNOME Mahjongg is a game based on the classic Chinese
9743 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9744 and a high score table.")
9745 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9746 (license license:gpl2+)))
9747
9748 (define-public gnome-themes-extra
9749 (package
9750 (name "gnome-themes-extra")
9751 (version "3.28")
9752 (source
9753 (origin
9754 (method url-fetch)
9755 (uri (string-append "mirror://gnome/sources/" name "/"
9756 (version-major+minor version) "/" name "-"
9757 version ".tar.xz"))
9758 (sha256
9759 (base32
9760 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9761 (build-system gnu-build-system)
9762 (arguments
9763 '(#:configure-flags
9764 ;; Don't create 'icon-theme.cache'.
9765 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9766 (true (string-append coreutils "/bin/true")))
9767 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9768 (native-inputs
9769 `(("glib:bin" ,glib "bin")
9770 ("intltool" ,intltool)
9771 ("pkg-config" ,pkg-config)))
9772 (inputs
9773 `(("glib" ,glib)
9774 ("gtk+" ,gtk+)
9775 ("gtk+-2" ,gtk+-2)
9776 ("librsvg" ,librsvg)
9777 ("libxml2" ,libxml2)))
9778 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9779 (synopsis "GNOME Extra Themes")
9780 (description "This package provides themes and related elements that don't
9781 really fit in other upstream packages. It offers legacy support for GTK+ 2
9782 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9783 index files needed for Adwaita to be used outside of GNOME.")
9784 (license license:lgpl2.1+)))
9785
9786 (define-public polari
9787 (package
9788 (name "polari")
9789 (version "3.32.2")
9790 (source (origin
9791 (method url-fetch)
9792 (uri (string-append "mirror://gnome/sources/polari/"
9793 (version-major+minor version)
9794 "/polari-" version ".tar.xz"))
9795 (sha256
9796 (base32
9797 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9798 (build-system meson-build-system)
9799 (arguments
9800 `(#:glib-or-gtk? #t
9801 #:phases
9802 (modify-phases %standard-phases
9803 (add-after 'unpack 'skip-gtk-update-icon-cache
9804 (lambda _
9805 (substitute* "meson/meson-postinstall.sh"
9806 (("gtk-update-icon-cache") (which "true")))
9807 #t))
9808 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9809 (lambda* (#:key outputs #:allow-other-keys)
9810 (let ((prog (string-append (assoc-ref outputs "out")
9811 "/bin/polari")))
9812 (wrap-program prog
9813 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9814 #t))))))
9815 (inputs
9816 `(("glib" ,glib)
9817 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9818 ("gspell" ,gspell)
9819 ("gtk+" ,gtk+)
9820 ("gjs" ,gjs)
9821 ("libsecret" ,libsecret)
9822 ("libsoup" ,libsoup)
9823 ("telepathy-glib" ,telepathy-glib)
9824 ("telepathy-logger" ,telepathy-logger)))
9825 (native-inputs
9826 `(("glib:bin" ,glib "bin")
9827 ("gobject-introspection" ,gobject-introspection)
9828 ("intltool" ,intltool)
9829 ("pkg-config" ,pkg-config)
9830 ("yelp-tools" ,yelp-tools)))
9831 (propagated-inputs
9832 `(("telepathy-idle" ,telepathy-idle)
9833 ("telepathy-mission-control" ,telepathy-mission-control)))
9834 (synopsis "Simple IRC Client")
9835 (description
9836 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9837 integrate seamlessly with the GNOME desktop.")
9838 (home-page "https://wiki.gnome.org/Apps/Polari")
9839 (license license:gpl2+)))