gnu: bs1770gain: Deduplicate home page URLs.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 Nikita <nikita@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, 2020 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
54 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;;
58 ;;; This file is part of GNU Guix.
59 ;;;
60 ;;; GNU Guix is free software; you can redistribute it and/or modify it
61 ;;; under the terms of the GNU General Public License as published by
62 ;;; the Free Software Foundation; either version 3 of the License, or (at
63 ;;; your option) any later version.
64 ;;;
65 ;;; GNU Guix is distributed in the hope that it will be useful, but
66 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
67 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
68 ;;; GNU General Public License for more details.
69 ;;;
70 ;;; You should have received a copy of the GNU General Public License
71 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
72
73 (define-module (gnu packages gnome)
74 #:use-module (gnu packages)
75 #:use-module (gnu packages admin)
76 #:use-module (gnu packages aspell)
77 #:use-module (gnu packages autotools)
78 #:use-module (gnu packages avahi)
79 #:use-module (gnu packages backup)
80 #:use-module (gnu packages base)
81 #:use-module (gnu packages bash)
82 #:use-module (gnu packages bison)
83 #:use-module (gnu packages boost)
84 #:use-module (gnu packages build-tools)
85 #:use-module (gnu packages calendar)
86 #:use-module (gnu packages cdrom)
87 #:use-module (gnu packages check)
88 #:use-module (gnu packages cmake)
89 #:use-module (gnu packages compression)
90 #:use-module (gnu packages crates-io)
91 #:use-module (gnu packages cups)
92 #:use-module (gnu packages curl)
93 #:use-module (gnu packages cyrus-sasl)
94 #:use-module (gnu packages databases)
95 #:use-module (gnu packages dbm)
96 #:use-module (gnu packages djvu)
97 #:use-module (gnu packages dns)
98 #:use-module (gnu packages docbook)
99 #:use-module (gnu packages documentation)
100 #:use-module (gnu packages enchant)
101 #:use-module (gnu packages flex)
102 #:use-module (gnu packages fonts)
103 #:use-module (gnu packages file-systems)
104 #:use-module (gnu packages fontutils)
105 #:use-module (gnu packages freedesktop)
106 #:use-module (gnu packages game-development)
107 #:use-module (gnu packages gettext)
108 #:use-module (gnu packages ghostscript)
109 #:use-module (gnu packages gl)
110 #:use-module (gnu packages glib)
111 #:use-module (gnu packages gnupg)
112 #:use-module (gnu packages gnuzilla)
113 #:use-module (gnu packages geo)
114 #:use-module (gnu packages gperf)
115 #:use-module (gnu packages graphviz)
116 #:use-module (gnu packages gstreamer)
117 #:use-module (gnu packages gtk)
118 #:use-module (gnu packages guile)
119 #:use-module (gnu packages ibus)
120 #:use-module (gnu packages icu4c)
121 #:use-module (gnu packages image)
122 #:use-module (gnu packages imagemagick)
123 #:use-module (gnu packages inkscape)
124 #:use-module (gnu packages iso-codes)
125 #:use-module (gnu packages kerberos)
126 #:use-module (gnu packages libcanberra)
127 #:use-module (gnu packages libunistring)
128 #:use-module (gnu packages libunwind)
129 #:use-module (gnu packages libusb)
130 #:use-module (gnu packages linux)
131 #:use-module (gnu packages lirc)
132 #:use-module (gnu packages lua)
133 #:use-module (gnu packages mail)
134 #:use-module (gnu packages mp3)
135 #:use-module (gnu packages multiprecision)
136 #:use-module (gnu packages music)
137 #:use-module (gnu packages ncurses)
138 #:use-module (gnu packages nettle)
139 #:use-module (gnu packages networking)
140 #:use-module (gnu packages ninja)
141 #:use-module (gnu packages nss)
142 #:use-module (gnu packages openldap)
143 #:use-module (gnu packages password-utils)
144 #:use-module (gnu packages pcre)
145 #:use-module (gnu packages pdf)
146 #:use-module (gnu packages perl)
147 #:use-module (gnu packages photo)
148 #:use-module (gnu packages php)
149 #:use-module (gnu packages pkg-config)
150 #:use-module (gnu packages polkit)
151 #:use-module (gnu packages popt)
152 #:use-module (gnu packages pretty-print)
153 #:use-module (gnu packages pulseaudio)
154 #:use-module (gnu packages python)
155 #:use-module (gnu packages python-crypto)
156 #:use-module (gnu packages python-web)
157 #:use-module (gnu packages python-xyz)
158 #:use-module (gnu packages rdesktop)
159 #:use-module (gnu packages readline)
160 #:use-module (gnu packages ruby)
161 #:use-module (gnu packages rust)
162 #:use-module (gnu packages samba)
163 #:use-module (gnu packages scanner)
164 #:use-module (gnu packages selinux)
165 #:use-module (gnu packages slang)
166 #:use-module (gnu packages speech)
167 #:use-module (gnu packages spice)
168 #:use-module (gnu packages sqlite)
169 #:use-module (gnu packages ssh)
170 #:use-module (gnu packages swig)
171 #:use-module (gnu packages tex)
172 #:use-module (gnu packages time)
173 #:use-module (gnu packages tls)
174 #:use-module (gnu packages valgrind)
175 #:use-module (gnu packages version-control)
176 #:use-module (gnu packages video)
177 #:use-module (gnu packages virtualization)
178 #:use-module (gnu packages vpn)
179 #:use-module (gnu packages web)
180 #:use-module (gnu packages webkit)
181 #:use-module (gnu packages xdisorg)
182 #:use-module (gnu packages xiph)
183 #:use-module (gnu packages xml)
184 #:use-module (gnu packages xorg)
185 #:use-module (gnu artwork)
186 #:use-module ((guix build utils) #:select (modify-phases))
187 #:use-module (guix build-system cargo)
188 #:use-module (guix build-system cmake)
189 #:use-module (guix build-system glib-or-gtk)
190 #:use-module (guix build-system gnu)
191 #:use-module (guix build-system meson)
192 #:use-module (guix build-system python)
193 #:use-module (guix build-system trivial)
194 #:use-module (guix download)
195 #:use-module (guix git-download)
196 #:use-module ((guix licenses) #:prefix license:)
197 #:use-module (guix packages)
198 #:use-module (guix utils)
199 #:use-module (guix gexp)
200 #:use-module (guix monads)
201 #:use-module (guix store)
202 #:use-module (ice-9 match)
203 #:use-module (srfi srfi-1))
204
205 (define-public brasero
206 (package
207 (name "brasero")
208 (version "3.12.2")
209 (source (origin
210 (method url-fetch)
211 (uri (string-append "mirror://gnome/sources/brasero/"
212 (version-major+minor version) "/"
213 "brasero-" version ".tar.xz"))
214 (sha256
215 (base32
216 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
217 (build-system glib-or-gtk-build-system)
218 (arguments
219 `(#:configure-flags (list
220 (string-append "--with-girdir="
221 (assoc-ref %outputs "out")
222 "/share/gir-1.0")
223 (string-append "--with-typelibdir="
224 (assoc-ref %outputs "out")
225 "/lib/girepository-1.0"))
226 #:phases
227 (modify-phases %standard-phases
228 (add-before 'configure 'embed-growisofs
229 (lambda* (#:key inputs #:allow-other-keys)
230 (substitute* "plugins/growisofs/burn-growisofs.c"
231 (("\"growisofs") (string-append "\"" (which "growisofs"))))
232 #t)))))
233 (propagated-inputs
234 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
235 (native-inputs
236 `(("intltool" ,intltool)
237 ("itstool" ,itstool)
238 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
239 ("gobject-introspection" ,gobject-introspection)
240 ("pkg-config" ,pkg-config)))
241 (inputs
242 `(("dvd+rw-tools" ,dvd+rw-tools)
243 ("glib" ,glib)
244 ("gnome-doc-utils" ,gnome-doc-utils)
245 ("gstreamer" ,gstreamer)
246 ("gst-plugins-base" ,gst-plugins-base)
247 ("gtk+" ,gtk+)
248 ("libcanberra" ,libcanberra)
249 ("libice" ,libice)
250 ("libnotify" ,libnotify)
251 ("libsm" ,libsm)
252 ("libxml2" ,libxml2)
253 ("totem-pl-parser" ,totem-pl-parser)))
254 (home-page "https://wiki.gnome.org/Apps/Brasero")
255 (synopsis "CD/DVD burning tool for Gnome")
256 (description "Brasero is an application to burn CD/DVD for the Gnome
257 Desktop. It is designed to be as simple as possible and has some unique
258 features to enable users to create their discs easily and quickly.")
259 (license license:gpl2+)))
260
261 (define-public notification-daemon
262 (package
263 (name "notification-daemon")
264 (version "3.20.0")
265 (source
266 (origin
267 (method url-fetch)
268 (uri
269 (string-append "mirror://gnome/sources/" name "/"
270 (version-major+minor version) "/"
271 name "-" version ".tar.xz"))
272 (sha256
273 (base32
274 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
275 (build-system glib-or-gtk-build-system)
276 (native-inputs
277 `(("intltool" ,intltool)
278 ("pkg-config" ,pkg-config)))
279 (inputs
280 `(("glib" ,glib)
281 ("gtk+" ,gtk+)
282 ("x11" ,libx11)))
283 (synopsis "Notification Daemon for GNOME Desktop")
284 (description "Notification-Daemon is the server implementation of the
285 freedesktop.org desktop notification specification.")
286 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
287 (license license:gpl2+)))
288
289 (define-public mm-common
290 (package
291 (name "mm-common")
292 (version "1.0.0")
293 (source (origin
294 (method url-fetch)
295 (uri (string-append "mirror://gnome/sources/" name "/"
296 (version-major+minor version) "/"
297 name "-" version ".tar.xz"))
298 (sha256
299 (base32
300 "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr"))))
301 (build-system meson-build-system)
302 (arguments
303 `(#:phases
304 (modify-phases %standard-phases
305 (add-after 'unpack 'patch
306 (lambda* (#:key inputs #:allow-other-keys)
307 (substitute* "util/mm-common-prepare.in"
308 (("ln") (string-append (assoc-ref inputs "coreutils")
309 "/bin/ln"))
310 (("cp") (string-append (assoc-ref inputs "coreutils")
311 "/bin/cp"))
312 (("sed") (string-append (assoc-ref inputs "sed")
313 "/bin/sed"))
314 (("cat") (string-append (assoc-ref inputs "coreutils")
315 "/bin/cat")))
316 #t)))))
317 (native-inputs
318 `(("coreutils" ,coreutils)
319 ("gettext" ,gettext-minimal)
320 ("pkg-config" ,pkg-config)
321 ("sed" ,sed)))
322 (inputs
323 `(("python" ,python)))
324 (synopsis "Module of GNOME C++ bindings")
325 (description "The mm-common module provides the build infrastructure
326 and utilities shared among the GNOME C++ binding libraries. Release
327 archives of mm-common include the Doxygen tag file for the GNU C++
328 Library reference documentation.")
329 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
330 (license license:gpl2+)))
331
332 (define-public phodav
333 (package
334 (name "phodav")
335 (version "2.4")
336 (source (origin
337 (method url-fetch)
338 (uri (string-append "mirror://gnome/sources/" name "/"
339 (version-major+minor version) "/"
340 name "-" version ".tar.xz"))
341 (sha256
342 (base32
343 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
344 (build-system meson-build-system)
345 (native-inputs
346 `(("gettext" ,gettext-minimal)
347 ("glib:bin" ,glib "bin")
348 ("gtk-doc" ,gtk-doc)
349 ("pkg-config" ,pkg-config)))
350 (inputs
351 `(("avahi" ,avahi)
352 ("libgudev" ,libgudev)
353 ("libsoup" ,libsoup)))
354 (synopsis "WebDav server implementation using libsoup")
355 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
356 but it is generic enough to be reused in other projects,
357 in particular in the GNOME desktop.")
358 (home-page "https://wiki.gnome.org/phodav")
359 (license license:lgpl2.1+)))
360
361 (define-public gnome-color-manager
362 (package
363 (name "gnome-color-manager")
364 (version "3.32.0")
365 (source (origin
366 (method url-fetch)
367 (uri (string-append "mirror://gnome/sources/" name "/"
368 (version-major+minor version) "/"
369 name "-" version ".tar.xz"))
370 (sha256
371 (base32
372 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
373 (build-system meson-build-system)
374 (arguments
375 `(#:glib-or-gtk? #t
376 #:phases
377 (modify-phases %standard-phases
378 (add-before
379 'check 'pre-check
380 (lambda _
381 ;; Tests require a running X server.
382 (system "Xvfb :1 &")
383 (setenv "DISPLAY" ":1")
384 #t)))))
385 (native-inputs
386 `(("desktop-file-utils" ,desktop-file-utils)
387 ("gettext" ,gettext-minimal)
388 ("glib:bin" ,glib "bin")
389 ("gtk+:bin" ,gtk+ "bin")
390 ("itstool" ,itstool)
391 ("pkg-config" ,pkg-config)
392 ("xorg-server" ,xorg-server-for-tests)))
393 (inputs
394 `(("adwaita-icon-theme" ,adwaita-icon-theme)
395 ("appstream-glib" ,appstream-glib)
396 ("colord-gtk" ,colord-gtk)
397 ("exiv2" ,exiv2)
398 ("gnome-desktop" ,gnome-desktop)
399 ("libcanberra" ,libcanberra)
400 ("libexif" ,libexif)
401 ("libtiff" ,libtiff)
402 ("libxrandr" ,libxrandr)
403 ("libxtst" ,libxtst)
404 ("libxxf86vm" ,libxxf86vm)
405 ("vte" ,vte)
406 ("xorgproto" ,xorgproto)))
407 (synopsis "Color profile manager for the GNOME desktop")
408 (description "GNOME Color Manager is a session framework that makes
409 it easy to manage, install and generate color profiles
410 in the GNOME desktop.")
411 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
412 (license license:gpl2+)))
413
414 (define-public gnome-online-miners
415 (package
416 (name "gnome-online-miners")
417 (version "3.34.0")
418 (source (origin
419 (method url-fetch)
420 (uri (string-append "mirror://gnome/sources/" name "/"
421 (version-major+minor version) "/"
422 name "-" version ".tar.xz"))
423 (sha256
424 (base32
425 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
426 (build-system glib-or-gtk-build-system)
427 (native-inputs
428 `(("gettext" ,gettext-minimal)
429 ("glib:bin" ,glib "bin")
430 ("gobject-introspection" ,gobject-introspection)
431 ("gtk+:bin" ,gtk+ "bin")
432 ("pkg-config" ,pkg-config)))
433 (inputs
434 `(("gnome-online-accounts" ,gnome-online-accounts)
435 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
436 ("grilo" ,grilo)
437 ("libgdata" ,libgdata)
438 ("libgfbgraph" ,gfbgraph)
439 ("libzapojit" ,libzapojit)
440 ("rest" ,rest)
441 ("tracker" ,tracker)))
442 (synopsis "Web Crawlers for GNOME")
443 (description "GNOME Online Miners provides a set of crawlers that
444 go through your online content and index them locally in Tracker.
445 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
446 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
447 (license license:gpl2+)))
448
449 (define-public gssdp
450 (package
451 (name "gssdp")
452 (version "1.2.2")
453 (source (origin
454 (method url-fetch)
455 (uri (string-append "mirror://gnome/sources/" name "/"
456 (version-major+minor version) "/"
457 name "-" version ".tar.xz"))
458 (sha256
459 (base32
460 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
461 (build-system meson-build-system)
462 (native-inputs
463 `(("gettext" ,gettext-minimal)
464 ("glib:bin" ,glib "bin")
465 ("gobject-introspection" ,gobject-introspection)
466 ("gtk-doc" ,gtk-doc)
467 ("pkg-config" ,pkg-config)
468 ("vala" ,vala)))
469 (inputs
470 `(("gtk+" ,gtk+)
471 ("libsoup" ,libsoup)))
472 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
473 Protocol} for GNOME")
474 (description "This package provides a library to handle resource discovery
475 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
476 a debugging tool, @command{gssdp-device-sniffer}.")
477 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
478 (license license:lgpl2.0+)))
479
480 (define-public gupnp
481 (package
482 (name "gupnp")
483 (version "1.2.2")
484 (source (origin
485 (method url-fetch)
486 (uri (string-append "mirror://gnome/sources/" name "/"
487 (version-major+minor version) "/"
488 name "-" version ".tar.xz"))
489 (sha256
490 (base32
491 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
492 (build-system meson-build-system)
493 (native-inputs
494 `(("gettext" ,gettext-minimal)
495 ("glib:bin" ,glib "bin")
496 ("gobject-introspection" ,gobject-introspection)
497 ("gtk-doc" ,gtk-doc)
498 ("pkg-config" ,pkg-config)
499 ("vala" ,vala)))
500 (inputs
501 `(("gssdp" ,gssdp)
502 ("gtk+" ,gtk+)
503 ("libsoup" ,libsoup)))
504 (synopsis "PnP API for GNOME")
505 (description "This package provides GUPnP, an object-oriented framework
506 for creating UPnP devices and control points, written in C using
507 @code{GObject} and @code{libsoup}.")
508 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
509 (license license:lgpl2.0+)))
510
511 (define-public gupnp-dlna
512 (package
513 (name "gupnp-dlna")
514 (version "0.10.5")
515 (source (origin
516 (method url-fetch)
517 (uri (string-append "mirror://gnome/sources/" name "/"
518 (version-major+minor version) "/"
519 name "-" version ".tar.xz"))
520 (sha256
521 (base32
522 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
523 (build-system gnu-build-system)
524 (native-inputs
525 `(("gettext" ,gettext-minimal)
526 ("glib:bin" ,glib "bin")
527 ("gobject-introspection" ,gobject-introspection)
528 ("gtk-doc" ,gtk-doc)
529 ("libxml" ,libxml2)
530 ("pkg-config" ,pkg-config)
531 ("vala" ,vala)))
532 (inputs
533 `(("gstreamer" ,gstreamer)
534 ("gupnp" ,gupnp)))
535 (propagated-inputs
536 `(("gst-plugins-base" ,gst-plugins-base)
537 ("gst-plugins-good" ,gst-plugins-good)))
538 (synopsis "GUPnP DLNA for GNOME")
539 (description "This package provides a small utility library to
540 support DLNA-related tasks such as media profile guessing, transcoding to a
541 given profile, etc. DLNA is a subset of UPnP A/V.")
542 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
543 (license license:lgpl2.0+)))
544
545 (define-public gupnp-av
546 (package
547 (name "gupnp-av")
548 (version "0.12.11")
549 (source (origin
550 (method url-fetch)
551 (uri (string-append "mirror://gnome/sources/" name "/"
552 (version-major+minor version) "/"
553 name "-" version ".tar.xz"))
554 (sha256
555 (base32
556 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
557 (build-system gnu-build-system)
558 (native-inputs
559 `(("gettext" ,gettext-minimal)
560 ("glib:bin" ,glib "bin")
561 ("gobject-introspection" ,gobject-introspection)
562 ("gtk-doc" ,gtk-doc)
563 ("libxml" ,libxml2)
564 ("pkg-config" ,pkg-config)))
565 (inputs
566 `(("gtk+" ,gtk+)
567 ("gupnp" ,gupnp)))
568 (synopsis "GUPnP A/V for GNOME")
569 (description "This package provides a small library for handling
570 and implementation of UPnP A/V profiles.")
571 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
572 (license license:lgpl2.0+)))
573
574 (define-public libmediaart
575 (package
576 (name "libmediaart")
577 (version "1.9.4")
578 (source (origin
579 (method url-fetch)
580 (uri (string-append "mirror://gnome/sources/" name "/"
581 (version-major+minor version) "/"
582 name "-" version ".tar.xz"))
583 (sha256
584 (base32
585 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
586 (build-system gnu-build-system)
587 (native-inputs
588 `(("glib:bin" ,glib "bin")
589 ("pkg-config" ,pkg-config)))
590 (inputs
591 `(("gdk-pixbuf" ,gdk-pixbuf)
592 ("gettext" ,gettext-minimal)
593 ("gobject-introspection" ,gobject-introspection)
594 ("gtk+:doc", gtk+ "doc")
595 ("vala" ,vala)))
596 (synopsis "Media art library for the GNOME desktop")
597 (description
598 "The libmediaart library is the foundation for media art caching,
599 extraction, and lookup for applications on the desktop.")
600 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
601 (license license:lgpl2.1+)))
602
603 (define-public gnome-initial-setup
604 (package
605 (name "gnome-initial-setup")
606 (version "3.32.1")
607 (source (origin
608 (method url-fetch)
609 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
610 (version-major+minor version)
611 "/gnome-initial-setup-" version ".tar.xz"))
612 (sha256
613 (base32
614 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
615 (build-system meson-build-system)
616 (arguments
617 '(#:configure-flags '(;; Enable camera support for user selfie.
618 "-Dcheese=auto"
619 "-Dsystemd=false")
620 #:phases (modify-phases %standard-phases
621 (add-after 'unpack 'set-gkbd-file-name
622 (lambda* (#:key inputs #:allow-other-keys)
623 ;; Allow the "Preview" button in the keyboard layout
624 ;; selection dialog to display the layout.
625 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
626 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
627 (("\"gkbd-keyboard-display")
628 (string-append "\"" libgnomekbd
629 "/bin/gkbd-keyboard-display")))
630 #t))))))
631 (native-inputs
632 `(("gettext" ,gettext-minimal)
633 ("glib:bin" ,glib "bin")
634 ("gobject-introspection" ,gobject-introspection)
635 ("gtk+:bin" ,gtk+ "bin")
636 ("pkg-config" ,pkg-config)))
637 (inputs
638 `(("accountsservice" ,accountsservice)
639 ;("adwaita-icon-theme" ,adwaita-icon-theme)
640 ("gdm" ,gdm)
641 ("geoclue" ,geoclue)
642 ("gnome-desktop" ,gnome-desktop)
643 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
644 ("gnome-online-accounts" ,gnome-online-accounts)
645 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
646 ("gstreamer" ,gstreamer)
647 ("ibus" ,ibus)
648 ("json-glib" ,json-glib)
649 ("krb5" ,mit-krb5)
650 ("libgweather" ,libgweather)
651 ("libnma" ,libnma)
652 ("libsecret" ,libsecret)
653 ("network-manager" ,network-manager)
654 ("packagekit" ,packagekit)
655 ("polkit" ,polkit)
656 ("pwquality" ,libpwquality)
657 ("rest" ,rest)
658 ("upower" ,upower)
659 ("webkitgtk" ,webkitgtk)
660 ("libgnomekbd" ,libgnomekbd)))
661 (synopsis "Initial setup wizard for GNOME desktop")
662 (description "This package provides a set-up wizard when a
663 user logs into GNOME for the first time. It typically provides a
664 tour of all gnome components and allows the user to set them up.")
665 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
666 (license license:gpl2)))
667
668 (define-public gnome-user-share
669 (package
670 (name "gnome-user-share")
671 (version "3.33.1")
672 (source (origin
673 (method url-fetch)
674 (uri (string-append "mirror://gnome/sources/" name "/"
675 (version-major+minor version) "/"
676 name "-" version ".tar.xz"))
677 (sha256
678 (base32
679 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
680 (build-system meson-build-system)
681 (arguments
682 `(#:glib-or-gtk? #t
683 #:configure-flags
684 `("-Dsystemd=false"
685 ;; Enable nautilus extension for file sharing.
686 "-Dnautilus_extension=true")))
687 (native-inputs
688 `(("gettext" ,gettext-minimal)
689 ("glib:bin" ,glib "bin")
690 ("gobject-introspection" ,gobject-introspection)
691 ("gtk+:bin" ,gtk+ "bin")
692 ("pkg-config" ,pkg-config)
693 ("yelp-tools" ,yelp-tools)))
694 (inputs
695 `(("glib" ,glib)
696 ("gnome-bluetooth" ,gnome-bluetooth)
697 ("gtk+" ,gtk+)
698 ("libcanberra" ,libcanberra)
699 ("libnotify" ,libnotify)
700 ("nautilus" ,nautilus))) ; For nautilus extension.
701 (synopsis "File sharing for GNOME desktop")
702 (description "GNOME User Share is a small package that binds together
703 various free software projects to bring easy to use user-level file
704 sharing to the masses.")
705 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
706 (license license:gpl2+)))
707
708 (define-public sushi
709 (package
710 (name "sushi")
711 (version "3.32.1")
712 (source (origin
713 (method url-fetch)
714 (uri (string-append "mirror://gnome/sources/" name "/"
715 (version-major+minor version) "/"
716 name "-" version ".tar.xz"))
717 (sha256
718 (base32
719 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
720 (build-system meson-build-system)
721 (arguments
722 `(#:glib-or-gtk? #t
723 #:phases
724 (modify-phases %standard-phases
725 (add-after 'glib-or-gtk-wrap 'wrap-typelib
726 (lambda* (#:key outputs #:allow-other-keys)
727 (let ((prog (string-append (assoc-ref outputs "out")
728 "/bin/sushi")))
729 ;; Put existing typelibs before sushi's deps, so as to correctly
730 ;; infer gdk-pixbuf
731 (wrap-program prog
732 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
733 #t))))))
734 (native-inputs
735 `(("glib:bin" ,glib "bin")
736 ("gettext" ,gettext-minimal)
737 ("gobject-introspection" ,gobject-introspection)
738 ("pkg-config" ,pkg-config)))
739 (inputs
740 `(("clutter" ,clutter)
741 ("clutter-gst" ,clutter-gst)
742 ("clutter-gtk" ,clutter-gtk)
743 ("evince" ,evince) ; For file previewing.
744 ("freetype" ,freetype)
745 ("gdk-pixbuf" ,gdk-pixbuf)
746 ("gjs" ,gjs)
747 ("gst-plugins-base" ,gst-plugins-base)
748 ("gstreamer" ,gstreamer)
749 ("gtksourceview" ,gtksourceview-3)
750 ("harfbuzz" ,harfbuzz)
751 ("libepoxy" ,libepoxy)
752 ("libmusicbrainz" ,libmusicbrainz)
753 ("libxml2" ,libxml2)
754 ("neon" ,neon)
755 ("webkitgtk" ,webkitgtk)))
756 (synopsis "File previewer for the GNOME desktop")
757 (description "Sushi is a DBus-activated service that allows applications to
758 preview files on the GNOME desktop.")
759 (home-page "https://gitlab.gnome.org/GNOME/sushi")
760 (license license:gpl2+)))
761
762 (define-public rygel
763 (package
764 (name "rygel")
765 (version "0.38.3")
766 (source (origin
767 (method url-fetch)
768 (uri (string-append "mirror://gnome/sources/" name "/"
769 (version-major+minor version) "/"
770 name "-" version ".tar.xz"))
771 (sha256
772 (base32
773 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
774 (build-system gnu-build-system)
775 (native-inputs
776 `(("gettext" ,gettext-minimal)
777 ("gobject-introspection" ,gobject-introspection)
778 ("gtk-doc" ,gtk-doc)
779 ("pkg-config" ,pkg-config)
780 ("vala" ,vala)))
781 (inputs
782 `(("gdk-pixbuf" ,gdk-pixbuf)
783 ("gssdp" ,gssdp)
784 ("gstreamer" ,gstreamer)
785 ("gst-plugins-base" ,gst-plugins-base)
786 ("gtk+" ,gtk+)
787 ("gupnp" ,gupnp)
788 ("gupnp-av" ,gupnp-av)
789 ("gupnp-dlna" ,gupnp-dlna)
790 ("libgee" ,libgee)
791 ("libmediaart" ,libmediaart)
792 ("libsoup" ,libsoup)
793 ("libxslt" ,libxslt)
794 ("libunistring" ,libunistring)
795 ("tracker" ,tracker)))
796 (synopsis "Share audio, video, and pictures with other devices")
797 (description
798 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
799 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
800 pictures, and to control a media player on your home network.
801
802 Rygel achieves interoperability with other devices by trying to conform to the
803 strict requirements of DLNA and by converting media on-the-fly to formats that
804 client devices can handle.")
805 (home-page "https://wiki.gnome.org/Projects/Rygel")
806 (license (list
807 ;; For logo (data/icons/*).
808 license:cc-by-sa3.0
809 ;; For all others.
810 license:lgpl2.1+))))
811
812 (define-public libnma
813 (package
814 (name "libnma")
815 (version "1.8.28")
816 (source (origin
817 (method url-fetch)
818 (uri (string-append "mirror://gnome/sources/" name "/"
819 (version-major+minor version) "/"
820 name "-" version ".tar.xz"))
821 (sha256
822 (base32
823 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
824 (build-system meson-build-system)
825 (arguments
826 `(#:phases
827 (modify-phases %standard-phases
828 (add-after 'unpack 'patch-docbook-xml
829 (lambda* (#:key inputs #:allow-other-keys)
830 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
831 "/xml/dtd/docbook")))
832 (substitute* "libnma-docs.xml"
833 (("http://.*/docbookx\\.dtd")
834 (string-append xmldoc "/docbookx.dtd")))
835 #t))))))
836 (native-inputs
837 `(("docbook-xml" ,docbook-xml-4.3)
838 ("gettext" ,gettext-minimal)
839 ("glib:bin" ,glib "bin")
840 ("gtk-doc" ,gtk-doc)
841 ("gobject-introspection" ,gobject-introspection)
842 ("pkg-config" ,pkg-config)
843 ("vala" ,vala)))
844 (inputs
845 `(("gcr" ,gcr)
846 ("gtk+" ,gtk+)
847 ("iso-codes" ,iso-codes)
848 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
849 ("network-manager" ,network-manager)))
850 (synopsis "Network Manager's applet library")
851 (description "Libnma is an applet library for Network Manager. It was
852 initially part of network-manager-applet and has now become a separate
853 project.")
854 (home-page "https://gitlab.gnome.org/GNOME/libnma")
855 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
856 ;; "LGPL-2.1+".
857 (license license:gpl2+)))
858
859 (define-public gnome-menus
860 (package
861 (name "gnome-menus")
862 (version "3.32.0")
863 (source (origin
864 (method url-fetch)
865 (uri (string-append "mirror://gnome/sources/gnome-menus/"
866 (version-major+minor version) "/"
867 name "-" version ".tar.xz"))
868 (sha256
869 (base32
870 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
871 (build-system gnu-build-system)
872 (native-inputs
873 `(("gettext" ,gettext-minimal)
874 ("glib" ,glib)
875 ("pkg-config" ,pkg-config)))
876 (synopsis "Menu support for GNOME desktop")
877 (description "GNOME Menus contains the libgnome-menu library, the layout
878 configuration files for the GNOME menu, as well as a simple menu editor.")
879 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
880 (license license:lgpl2.0+)))
881
882 (define-public deja-dup
883 (package
884 (name "deja-dup")
885 (version "40.6")
886 (source (origin
887 (method url-fetch)
888 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
889 version "/deja-dup-" version ".tar.bz2"))
890 (sha256
891 (base32
892 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
893 (build-system meson-build-system)
894 (arguments
895 `(#:glib-or-gtk? #t
896 #:configure-flags
897 (list
898 ;; Otherwise, the RUNPATH will lack the final path component.
899 (string-append "-Dc_link_args=-Wl,-rpath="
900 (assoc-ref %outputs "out") "/lib/deja-dup"))
901 #:phases
902 (modify-phases %standard-phases
903 (add-after 'unpack 'patch-paths
904 (lambda* (#:key inputs #:allow-other-keys)
905 (let ((python (assoc-ref inputs "python")))
906 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
907 "libdeja/tests/scripts/instance-error.test")
908 (("/bin/rm")
909 (which "rm")))
910 (substitute* "libdeja/tests/runner.vala"
911 (("/bin/sh")
912 (which "sh")))
913 (substitute* "libdeja/tests/scripts/instance-error.test"
914 (("`which python3`")
915 (string-append python "/bin/python3"))))))
916 (add-after 'unpack 'patch-libgpg-error
917 (lambda* (#:key inputs #:allow-other-keys)
918 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
919 (substitute* "meson.build"
920 (("(gpgerror_libs = ).*" _ var)
921 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
922 #t))
923 (add-after 'unpack 'skip-gtk-update-icon-cache
924 ;; Don't create 'icon-theme.cache'.
925 (lambda _
926 (substitute* "data/post-install.sh"
927 (("gtk-update-icon-cache") "true"))
928 #t)))))
929 (inputs
930 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
931 ("duplicity" ,duplicity)
932 ("python" ,python)
933 ("python-pygobject" ,python-pygobject)
934 ("gtk+" ,gtk+)
935 ("json-glib" ,json-glib)
936 ("libnotify" ,libnotify)
937 ("libgpg-error" ,libgpg-error)
938 ("libsecret" ,libsecret)
939 ("libsoup" ,libsoup)
940 ("packagekit" ,packagekit)))
941 (native-inputs
942 `(("appstream-glib" ,appstream-glib)
943 ("desktop-file-utils" ,desktop-file-utils)
944 ("gettext" ,gettext-minimal)
945 ("glib" ,glib "bin") ; for glib-compile-schemas.
946 ("gobject-introspection" ,gobject-introspection)
947 ("itstool" ,itstool)
948 ("pkg-config" ,pkg-config)
949 ("vala" ,vala)))
950 (home-page "https://wiki.gnome.org/Apps/DejaDup")
951 (synopsis "Simple backup tool, for regular encrypted backups")
952 (description
953 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
954 uses duplicity as the backend, which supports incremental backups and storage
955 either on a local, or remote machine via a number of methods.")
956 (license license:gpl3+)))
957
958 (define-public gnome-user-docs
959 (package
960 (name "gnome-user-docs")
961 (version "3.32.3")
962 (source
963 (origin
964 (method url-fetch)
965 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
966 (version-major+minor version)
967 "/gnome-user-docs-" version ".tar.xz"))
968 (sha256
969 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
970 (build-system gnu-build-system)
971 (native-inputs
972 `(("gettext" ,gettext-minimal)
973 ("itstool" ,itstool)
974 ("pkg-config" ,pkg-config)
975 ("xmllint" ,libxml2)))
976 (synopsis "User documentation for the GNOME desktop")
977 (description
978 "The GNOME User Documentation explains how to use the GNOME desktop and its
979 components. It covers usage and setup of the core GNOME programs by end-users
980 and system administrators.")
981 (home-page "https://live.gnome.org/DocumentationProject")
982 (license license:cc-by3.0)))
983
984 (define-public gnome-getting-started-docs
985 (package
986 (name "gnome-getting-started-docs")
987 (version "3.32.2")
988 (source
989 (origin
990 (method url-fetch)
991 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
992 (version-major+minor version)
993 "/gnome-getting-started-docs-" version ".tar.xz"))
994 (sha256
995 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
996 (build-system gnu-build-system)
997 (native-inputs
998 `(("gettext" ,gettext-minimal)
999 ("itstool" ,itstool)
1000 ("pkg-config" ,pkg-config)
1001 ("xmllint" ,libxml2)))
1002 (synopsis "Help to get new users started with the GNOME desktop")
1003 (description
1004 "The GNOME Getting Started Documentation contains GNOME's intuitive
1005 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1006
1007 It is normally used together with @command{gnome-initial-setup}, but is also
1008 useful as a tutorial and users' guide for new or less experienced users.")
1009 (home-page "https://live.gnome.org/DocumentationProject")
1010 (license license:cc-by-sa3.0)))
1011
1012 (define-public dia
1013 ;; This version from GNOME's repository includes fixes for compiling with
1014 ;; recent versions of the build tools. The latest activity on the
1015 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1016 ;; fixes since.
1017 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1018 (revision "2"))
1019 (package
1020 (name "dia")
1021 (version (git-version "0.97.3" revision commit))
1022 (source (origin
1023 (method git-fetch)
1024 (uri (git-reference
1025 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1026 (commit commit)))
1027 (file-name (git-file-name name version))
1028 (sha256
1029 (base32
1030 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1031 (build-system meson-build-system)
1032 (inputs
1033 `(("graphene" ,graphene)
1034 ("gtk+" ,gtk+-2)
1035 ("libxml2" ,libxml2)
1036 ("libxslt" ,libxslt)
1037 ("poppler" ,poppler)
1038 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1039 ;; ERROR: Unknown method "dependency" in object.
1040 ("python-2" ,python-2)))
1041 (native-inputs
1042 `(("appstream-glib" ,appstream-glib)
1043 ("docbook-xsl" ,docbook-xsl)
1044 ("glib" ,glib "bin")
1045 ("intltool" ,intltool)
1046 ("pkg-config" ,pkg-config)))
1047 (home-page "https://wiki.gnome.org/Apps/Dia")
1048 (synopsis "Diagram creation for GNOME")
1049 (description "Dia can be used to draw different types of diagrams, and
1050 includes support for UML static structure diagrams (class diagrams), entity
1051 relationship modeling, and network diagrams. The program supports various file
1052 formats like PNG, SVG, PDF and EPS.")
1053 (license license:gpl2+))))
1054
1055 ;; This is the unstable release, but it is required for the current stable
1056 ;; release of gvfs (1.38.1).
1057 (define-public libgdata
1058 (package
1059 (name "libgdata")
1060 (version "0.17.9")
1061 (source (origin
1062 (method url-fetch)
1063 (uri (string-append "mirror://gnome/sources/" name "/"
1064 (version-major+minor version) "/"
1065 name "-" version ".tar.xz"))
1066 (sha256
1067 (base32
1068 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1069 (build-system gnu-build-system)
1070 (arguments
1071 '(#:phases
1072 (modify-phases %standard-phases
1073 (add-before 'check 'disable-failing-tests
1074 (lambda _
1075 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1076 ;; They have been removed in libgdata 0.17.6, so just do the same.
1077 (substitute* "gdata/tests/Makefile"
1078 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1079 #t)))))
1080 (native-inputs
1081 `(("glib:bin" ,glib "bin")
1082 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1083 ("intltool" ,intltool)
1084 ("pkg-config" ,pkg-config)
1085 ("uhttpmock" ,uhttpmock)))
1086 (inputs
1087 `(("cyrus-sasl" ,cyrus-sasl)
1088 ("glib-networking" ,glib-networking)))
1089 (propagated-inputs
1090 `(("gcr" ,gcr)
1091 ("glib" ,glib)
1092 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1093 ("json-glib" ,json-glib)
1094 ("liboauth" ,liboauth)
1095 ("libsoup" ,libsoup)
1096 ("libxml2" ,libxml2)))
1097 (home-page "https://wiki.gnome.org/Projects/libgdata")
1098 (synopsis "Library for accessing online service APIs")
1099 (description
1100 "libgdata is a GLib-based library for accessing online service APIs using
1101 the GData protocol — most notably, Google's services. It provides APIs to
1102 access the common Google services, and has full asynchronous support.")
1103 (license license:lgpl2.1+)))
1104
1105 (define-public libgxps
1106 (package
1107 (name "libgxps")
1108 (version "0.3.1")
1109 (source (origin
1110 (method url-fetch)
1111 (uri (string-append "mirror://gnome/sources/" name "/"
1112 (version-major+minor version) "/"
1113 name "-" version ".tar.xz"))
1114 (sha256
1115 (base32
1116 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1117 (build-system meson-build-system)
1118 (native-inputs
1119 `(("gobject-introspection" ,gobject-introspection)
1120 ("pkg-config" ,pkg-config)))
1121 (inputs
1122 `(("gtk+" ,gtk+)
1123 ("libjpeg" ,libjpeg-turbo)
1124 ("lcms" ,lcms)
1125 ("libtiff" ,libtiff)))
1126 (propagated-inputs
1127 ;; In Requires of libgxps.pc.
1128 `(("cairo" ,cairo)
1129 ("glib" ,glib)
1130 ("libarchive" ,libarchive)))
1131 (home-page "https://wiki.gnome.org/Projects/libgxps")
1132 (synopsis "GObject-based library for handling and rendering XPS documents")
1133 (description
1134 "libgxps is a GObject-based library for handling and rendering XPS
1135 documents. This package also contains binaries that can convert XPS documents
1136 to other formats.")
1137 (license license:lgpl2.1+)))
1138
1139 (define-public gnome-characters
1140 (package
1141 (name "gnome-characters")
1142 (version "3.30.0")
1143 (source
1144 (origin
1145 (method url-fetch)
1146 (uri (string-append "mirror://gnome/sources/"
1147 "gnome-characters/" (version-major+minor version)
1148 "/gnome-characters-" version ".tar.xz"))
1149 (sha256
1150 (base32
1151 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1152 (build-system meson-build-system)
1153 (arguments
1154 `(#:glib-or-gtk? #t
1155 #:phases (modify-phases %standard-phases
1156 (add-after 'install 'wrap
1157 (lambda* (#:key outputs #:allow-other-keys)
1158 ;; GNOME Characters needs Typelib files from GTK and
1159 ;; gnome-desktop.
1160 (wrap-program (string-append (assoc-ref outputs "out")
1161 "/bin/gnome-characters")
1162 `("GI_TYPELIB_PATH" ":" prefix
1163 (,(getenv "GI_TYPELIB_PATH"))))
1164 #t)))))
1165 (native-inputs
1166 `(("gettext" ,gettext-minimal)
1167 ("glib:bin" ,glib "bin")
1168 ("gtk+:bin" ,gtk+ "bin")
1169 ("pkg-config" ,pkg-config)
1170 ("python" ,python-minimal)))
1171 (inputs
1172 `(("gjs" ,gjs)
1173 ("gtk+" ,gtk+)
1174 ("libunistring" ,libunistring)
1175 ("gnome-desktop" ,gnome-desktop)))
1176 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1177 (synopsis "Find and insert unusual characters")
1178 (description "Characters is a simple utility application to find
1179 and insert unusual characters. It allows you to quickly find the
1180 character you are looking for by searching for keywords.")
1181 (license license:bsd-3)))
1182
1183 (define-public gnome-common
1184 (package
1185 (name "gnome-common")
1186 (version "3.18.0")
1187 (source
1188 (origin
1189 (method url-fetch)
1190 (uri (string-append "mirror://gnome/sources/" name "/"
1191 (version-major+minor version) "/"
1192 name "-" version ".tar.xz"))
1193 (sha256
1194 (base32
1195 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1196 (build-system gnu-build-system)
1197 (home-page "https://www.gnome.org/")
1198 (synopsis "Bootstrap GNOME modules built from Git")
1199 (description "gnome-common contains various files needed to bootstrap
1200 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1201 can be used to configure a source directory checked out from Git and some
1202 commonly used macros.")
1203 (license license:gpl2+)))
1204
1205 (define-public gnome-contacts
1206 (package
1207 (name "gnome-contacts")
1208 (version "3.34")
1209 (source (origin
1210 (method url-fetch)
1211 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1212 (version-major+minor version) "/"
1213 name "-" version ".tar.xz"))
1214 (sha256
1215 (base32
1216 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1217 (build-system meson-build-system)
1218 (arguments
1219 `(#:configure-flags '("-Dcheese=false")
1220 #:phases
1221 (modify-phases %standard-phases
1222 (add-after 'unpack 'generate-vapis
1223 (lambda* (#:key inputs #:allow-other-keys)
1224 ;; To generate goa's missing .vapi file
1225 (define goa
1226 (assoc-ref inputs "gnome-online-accounts:lib"))
1227
1228 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1229 "--library=goa-1.0"
1230 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1231 #t))
1232 (add-after 'unpack 'skip-gtk-update-icon-cache
1233 ;; Don't create 'icon-theme.cache'.
1234 (lambda _
1235 (substitute* "build-aux/meson_post_install.py"
1236 (("gtk-update-icon-cache") "true"))
1237 #t)))))
1238 (native-inputs
1239 `(("glib:bin" ,glib "bin")
1240 ("pkg-config" ,pkg-config)))
1241 (inputs
1242 `(("docbook-xml" ,docbook-xml)
1243 ("dockbook-xsl" ,docbook-xsl)
1244 ("evolution-data-server" ,evolution-data-server)
1245 ("gettext" ,gettext-minimal)
1246 ("gnome-desktop" ,gnome-desktop)
1247 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1248 ("gobject-introspection" ,gobject-introspection)
1249 ("gst-plugins-base" ,gst-plugins-base)
1250 ("gtk+" ,gtk+)
1251 ("libgee" ,libgee)
1252 ("libxslt" ,libxslt)
1253 ("telepathy-glib" ,telepathy-glib)
1254 ("vala" ,vala)))
1255 (propagated-inputs
1256 `(("folks", folks)
1257 ("telepathy-mission-control" ,telepathy-mission-control)))
1258 (synopsis "GNOME's integrated address book")
1259 (description
1260 "GNOME Contacts organizes your contact information from online and
1261 offline sources, providing a centralized place for managing your contacts.")
1262 (home-page "https://wiki.gnome.org/Apps/Contacts")
1263 (license license:gpl2+)))
1264
1265 (define-public gnome-desktop
1266 (package
1267 (name "gnome-desktop")
1268 (version "3.34.2")
1269 (source
1270 (origin
1271 (method url-fetch)
1272 (uri (string-append "mirror://gnome/sources/" name "/"
1273 (version-major+minor version) "/"
1274 name "-" version ".tar.xz"))
1275 (sha256
1276 (base32
1277 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
1278 (build-system meson-build-system)
1279 (arguments
1280 '(#:phases
1281 (modify-phases %standard-phases
1282 (add-before 'configure 'patch-path
1283 (lambda* (#:key inputs #:allow-other-keys)
1284 (let ((libc (assoc-ref inputs "libc")))
1285 (substitute* "libgnome-desktop/gnome-languages.c"
1286 (("\"locale\"")
1287 (string-append "\"" libc "/bin/locale\"")))
1288 #t)))
1289 (add-before 'check 'pre-check
1290 (lambda* (#:key inputs #:allow-other-keys)
1291 ;; Tests require a running X server and locales.
1292 (system "Xvfb :1 &")
1293 (setenv "DISPLAY" ":1")
1294 (setenv "GUIX_LOCPATH"
1295 (string-append (assoc-ref inputs "glibc-locales")
1296 "/lib/locale"))
1297 #t)))))
1298 (native-inputs
1299 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1300 ("glibc-locales" ,glibc-locales) ; for tests
1301 ("gobject-introspection" ,gobject-introspection)
1302 ("itstool" ,itstool)
1303 ("intltool" ,intltool)
1304 ("pkg-config" ,pkg-config)
1305 ("xmllint" ,libxml2)
1306 ("xorg-server" ,xorg-server-for-tests)))
1307 (propagated-inputs
1308 ;; Required by gnome-desktop-3.0.pc.
1309 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1310 ("gtk+" ,gtk+)
1311 ("iso-codes" ,iso-codes)
1312 ("libseccomp" ,libseccomp)
1313 ("libx11" ,libx11)
1314 ("xkeyboard-config" ,xkeyboard-config)))
1315 (inputs
1316 `(("gdk-pixbuf" ,gdk-pixbuf)
1317 ("glib" ,glib)
1318 ("libxext" ,libxext)
1319 ("libxkbfile" ,libxkbfile)
1320 ("libxrandr" ,libxrandr)))
1321 (home-page "https://www.gnome.org/")
1322 (synopsis
1323 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1324 (description
1325 "The libgnome-desktop library provides API shared by several applications
1326 on the desktop, but that cannot live in the platform for various reasons.
1327 There is no API or ABI guarantee, although we are doing our best to provide
1328 stability. Documentation for the API is available with gtk-doc.
1329
1330 The gnome-about program helps find which version of GNOME is installed.")
1331 ; Some bits under the LGPL.
1332 (license license:gpl2+)))
1333
1334 (define-public gnome-doc-utils
1335 (package
1336 (name "gnome-doc-utils")
1337 (version "0.20.10")
1338 (source
1339 (origin
1340 (method url-fetch)
1341 (uri (string-append "mirror://gnome/sources/" name "/"
1342 (version-major+minor version) "/"
1343 name "-" version ".tar.xz"))
1344 (sha256
1345 (base32
1346 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1347 (build-system gnu-build-system)
1348 (native-inputs
1349 `(("intltool" ,intltool)
1350 ("docbook-xml" ,docbook-xml-4.4)
1351 ("python2-libxml2" ,python2-libxml2)
1352 ("libxml2" ,libxml2)
1353 ("libxslt" ,libxslt)
1354 ("pkg-config" ,pkg-config)
1355 ("python-2" ,python-2)))
1356 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1357 (synopsis
1358 "Documentation utilities for the Gnome project")
1359 (description
1360 "Gnome-doc-utils is a collection of documentation utilities for the
1361 Gnome project. It includes xml2po tool which makes it easier to translate
1362 and keep up to date translations of documentation.")
1363 (license license:gpl2+))) ; xslt under lgpl
1364
1365 (define-public gnome-disk-utility
1366 (package
1367 (name "gnome-disk-utility")
1368 (version "3.34.0")
1369 (source (origin
1370 (method url-fetch)
1371 (uri (string-append "mirror://gnome/sources/" name "/"
1372 (version-major+minor version) "/"
1373 name "-" version ".tar.xz"))
1374 (sha256
1375 (base32
1376 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
1377 (build-system meson-build-system)
1378 (arguments
1379 '(#:configure-flags '("-Dlogind=libelogind")
1380 #:phases
1381 (modify-phases %standard-phases
1382 (add-after 'unpack 'skip-gtk-update-icon-cache
1383 ;; Don't create 'icon-theme.cache'.
1384 (lambda _
1385 (substitute* "meson_post_install.py"
1386 (("gtk-update-icon-cache") "true"))
1387 #t)))))
1388 (native-inputs
1389 `(("glib:bin" ,glib "bin")
1390 ("intltool" ,intltool)
1391 ("pkg-config" ,pkg-config)
1392 ("docbook-xml" ,docbook-xml)
1393 ("docbook-xsl" ,docbook-xsl)
1394 ("libxml2" ,libxml2)
1395 ("libxslt" ,libxslt)))
1396 (inputs
1397 `(("elogind" ,elogind)
1398 ("glib" ,glib)
1399 ("appstream-glib" ,appstream-glib)
1400 ("gnome-settings-daemon" ,gnome-settings-daemon)
1401 ("gtk+" ,gtk+)
1402 ("libcanberra" ,libcanberra)
1403 ("libdvdread" ,libdvdread)
1404 ("libnotify" ,libnotify)
1405 ("libpwquality" ,libpwquality)
1406 ("libsecret" ,libsecret)
1407 ("udisks" ,udisks)))
1408 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1409 (synopsis "Disk management utility for GNOME")
1410 (description "Disk management utility for GNOME.")
1411 (license license:gpl2+)))
1412
1413 (define-public gnome-font-viewer
1414 (package
1415 (name "gnome-font-viewer")
1416 (version "3.30.0")
1417 (source (origin
1418 (method url-fetch)
1419 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1420 (version-major+minor version)
1421 "/gnome-font-viewer-" version ".tar.xz"))
1422 (sha256
1423 (base32
1424 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1425 (build-system meson-build-system)
1426 (arguments
1427 '(#:phases
1428 (modify-phases %standard-phases
1429 (add-after 'unpack 'patch-post-install-script
1430 (lambda _
1431 (substitute* "meson-postinstall.sh"
1432 (("update-desktop-database") (which "true")))
1433 #t)))))
1434 (native-inputs
1435 `(("gettext" ,gettext-minimal)
1436 ("glib:bin" ,glib "bin")
1437 ("pkg-config" ,pkg-config)))
1438 (inputs
1439 `(("glib" ,glib)
1440 ("gnome-desktop" ,gnome-desktop)
1441 ("gtk+" ,gtk+)))
1442 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1443 (synopsis "GNOME Fonts")
1444 (description "Application to show you the fonts installed on your computer
1445 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1446 the font would look under various sizes.")
1447 (license license:gpl2+)))
1448
1449 (define-public gcr
1450 (package
1451 (name "gcr")
1452 (version "3.34.0")
1453 (source (origin
1454 (method url-fetch)
1455 (uri (string-append "mirror://gnome/sources/" name "/"
1456 (version-major+minor version) "/"
1457 name "-" version ".tar.xz"))
1458 (sha256
1459 (base32
1460 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
1461 (build-system gnu-build-system)
1462 (arguments
1463 '(#:phases
1464 (modify-phases %standard-phases
1465 ;; These fail because /var/lib/dbus/machine-id is not present in the
1466 ;; build environment.
1467 (add-after 'unpack 'disable-failing-tests
1468 (lambda _
1469 (substitute* "Makefile.in"
1470 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1471 ""))
1472 #t))
1473 (add-before 'check 'pre-check
1474 (lambda _
1475 ;; Some tests expect to write to $HOME.
1476 (setenv "HOME" "/tmp")
1477 #t)))))
1478 (inputs
1479 `(("dbus" ,dbus)
1480 ("gnupg" ,gnupg) ;called as a child process during tests
1481 ("libgcrypt" ,libgcrypt)))
1482 (native-inputs
1483 `(("python" ,python-wrapper) ;for tests
1484 ("pkg-config" ,pkg-config)
1485 ("gettext" ,gettext-minimal)
1486 ("glib" ,glib "bin")
1487 ("gobject-introspection" ,gobject-introspection)
1488 ("libxml2" ,libxml2)
1489 ("vala" ,vala)
1490 ("xsltproc" ,libxslt)))
1491 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1492 (propagated-inputs
1493 `(("p11-kit" ,p11-kit)
1494 ("glib" ,glib)
1495 ("gtk+" ,gtk+)))
1496 (home-page "https://www.gnome.org")
1497 (synopsis "Libraries for displaying certificates and accessing key stores")
1498 (description
1499 "The GCR package contains libraries used for displaying certificates and
1500 accessing key stores. It also provides the viewer for crypto files on the
1501 GNOME Desktop.")
1502 (license license:lgpl2.1+)))
1503
1504 (define-public gdl
1505 (package
1506 (name "gdl")
1507 (version "3.34.0")
1508 (source (origin
1509 (method git-fetch)
1510 (uri (git-reference
1511 (url "https://gitlab.gnome.org/GNOME/gdl.git")
1512 (commit (string-append "GDL_" (string-map (match-lambda
1513 (#\. #\_)
1514 (c c))
1515 version)))))
1516 (file-name (git-file-name name version))
1517 (sha256
1518 (base32
1519 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
1520 (build-system gnu-build-system)
1521 (native-inputs
1522 `(("autoconf" ,autoconf)
1523 ("automake" ,automake)
1524 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1525 ("gnome-common" ,gnome-common)
1526 ("gtk-doc" ,gtk-doc)
1527 ("intltool" ,intltool)
1528 ("pkg-config" ,pkg-config)
1529 ("libtool" ,libtool)
1530 ("which" ,which)))
1531 (inputs
1532 `(("libxml2" ,libxml2)))
1533 (propagated-inputs
1534 ;; The gdl-3.0.pc file 'Requires' GTK+.
1535 `(("gtk+" ,gtk+)))
1536 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
1537 (synopsis "GNOME docking library")
1538 (description "This library provides docking features for gtk+.")
1539 (license license:lgpl2.1+)))
1540
1541 ;;; A minimal variant used to break a cycle with Inkscape.
1542 (define-public gdl-minimal
1543 (package
1544 (inherit gdl)
1545 (name "gdl-minimal")
1546 (arguments
1547 '(#:phases
1548 (modify-phases %standard-phases
1549 (add-after 'unpack 'disable-doc-generation
1550 ;; XXX: There is no easy way to disable generating the
1551 ;; documentation.
1552 (lambda _
1553 (substitute* "configure.in"
1554 (("GTK_DOC_CHECK.*") "")
1555 (("docs/.*") ""))
1556 (substitute* "Makefile.am"
1557 (("gdl docs po") "gdl po"))
1558 #t)))))
1559 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
1560
1561 (define-public libgnome-keyring
1562 (package
1563 (name "libgnome-keyring")
1564 (version "3.12.0")
1565 (source (origin
1566 (method url-fetch)
1567 (uri (string-append "mirror://gnome/sources/" name "/"
1568 (version-major+minor version) "/"
1569 name "-" version ".tar.xz"))
1570 (sha256
1571 (base32
1572 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1573 (build-system gnu-build-system)
1574 (inputs
1575 `(("libgcrypt" ,libgcrypt)
1576 ("dbus" ,dbus)))
1577 (native-inputs
1578 `(("pkg-config" ,pkg-config)
1579 ("glib" ,glib "bin")
1580 ("intltool" ,intltool)))
1581 (propagated-inputs
1582 ;; Referred to in .h files and .pc.
1583 `(("glib" ,glib)))
1584 (home-page "https://www.gnome.org")
1585 (synopsis "Accessing passwords from the GNOME keyring")
1586 (description
1587 "Client library to access passwords from the GNOME keyring.")
1588
1589 ;; Though a couple of files are LGPLv2.1+.
1590 (license license:lgpl2.0+)))
1591
1592 (define-public gnome-keyring
1593 (package
1594 (name "gnome-keyring")
1595 (version "3.34.0")
1596 (source (origin
1597 (method url-fetch)
1598 (uri (string-append "mirror://gnome/sources/" name "/"
1599 (version-major+minor version) "/"
1600 name "-" version ".tar.xz"))
1601 (sha256
1602 (base32
1603 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
1604 (build-system gnu-build-system)
1605 (arguments
1606 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1607 ;not exist
1608 #:configure-flags
1609 (list
1610 (string-append "--with-pkcs11-config="
1611 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1612 (string-append "--with-pkcs11-modules="
1613 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1614 #:phases
1615 (modify-phases %standard-phases
1616 (add-after 'unpack 'fix-/bin/sh-reference
1617 (lambda _
1618 (substitute* "po/Makefile.in.in"
1619 (("/bin/sh") (which "sh")))
1620 #t))
1621 (add-after 'unpack 'fix-docbook
1622 (lambda* (#:key inputs #:allow-other-keys)
1623 (substitute* "docs/Makefile.am"
1624 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1625 (string-append (assoc-ref inputs "docbook-xsl")
1626 "/xml/xsl/docbook-xsl-"
1627 ,(package-version docbook-xsl)
1628 "/manpages/docbook.xsl")))
1629 (setenv "XML_CATALOG_FILES"
1630 (string-append (assoc-ref inputs "docbook-xml")
1631 "/xml/dtd/docbook/catalog.xml"))
1632 ;; Rerun the whole thing to avoid version mismatch ("This is
1633 ;; Automake 1.15.1, but the definition used by this
1634 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1635 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1636 (invoke "autoconf")
1637 (invoke "aclocal")
1638 (invoke "automake" "-ac"))))))
1639 (inputs
1640 `(("libgcrypt" ,libgcrypt)
1641 ("linux-pam" ,linux-pam)
1642 ("openssh" ,openssh)
1643 ("dbus" ,dbus)
1644 ("gcr" ,gcr)))
1645 (native-inputs
1646 `(("pkg-config" ,pkg-config)
1647 ("glib" ,glib "bin")
1648 ("glib" ,glib) ; for m4 macros
1649 ("python" ,python-2) ;for tests
1650 ("intltool" ,intltool)
1651 ("autoconf" ,autoconf)
1652 ("automake" ,automake)
1653 ("libxslt" ,libxslt) ;for documentation
1654 ("docbook-xml" ,docbook-xml-4.2)
1655 ("docbook-xsl" ,docbook-xsl)))
1656 (home-page "https://www.gnome.org")
1657 (synopsis "Daemon to store passwords and encryption keys")
1658 (description
1659 "gnome-keyring is a program that keeps passwords and other secrets for
1660 users. It is run as a daemon in the session, similar to ssh-agent, and other
1661 applications locate it via an environment variable or D-Bus.
1662
1663 The program can manage several keyrings, each with its own master password,
1664 and there is also a session keyring which is never stored to disk, but
1665 forgotten when the session ends.")
1666 (license license:lgpl2.1+)))
1667
1668 (define-public evince
1669 (package
1670 (name "evince")
1671 (version "3.34.2")
1672 (source (origin
1673 (method url-fetch)
1674 (uri (string-append "mirror://gnome/sources/evince/"
1675 (version-major+minor version) "/"
1676 "evince-" version ".tar.xz"))
1677 (sha256
1678 (base32
1679 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
1680 (build-system glib-or-gtk-build-system)
1681 (arguments
1682 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1683 #:phases
1684 (modify-phases %standard-phases
1685 (add-before 'install 'skip-gtk-update-icon-cache
1686 ;; Don't create 'icon-theme.cache'.
1687 (lambda _
1688 (substitute* "data/Makefile"
1689 (("gtk-update-icon-cache") "true"))
1690 #t)))))
1691 (inputs
1692 `(("libarchive" ,libarchive)
1693 ("libgxps" ,libgxps)
1694 ("libspectre" ,libspectre)
1695 ("djvulibre" ,djvulibre)
1696 ("ghostscript" ,ghostscript)
1697 ("poppler" ,poppler)
1698 ("libtiff" ,libtiff)
1699 ;; TODO:
1700 ;; Build libkpathsea as a shared library for DVI support.
1701 ;; ("libkpathsea" ,texlive-bin)
1702 ("gnome-desktop" ,gnome-desktop)
1703 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1704 ("gspell" ,gspell)
1705 ("libgnome-keyring" ,libgnome-keyring)
1706 ("adwaita-icon-theme" ,adwaita-icon-theme)
1707 ("gdk-pixbuf" ,gdk-pixbuf)
1708 ("atk" ,atk)
1709 ("pango" ,pango)
1710 ("gtk+" ,gtk+)
1711 ("glib" ,glib)
1712 ("libxml2" ,libxml2)
1713 ("libsm" ,libsm)
1714 ("libice" ,libice)
1715 ("shared-mime-info" ,shared-mime-info)
1716 ("dconf" ,dconf)
1717 ("libcanberra" ,libcanberra)
1718 ("libsecret" ,libsecret)
1719
1720 ;; For tests.
1721 ("dogtail" ,python2-dogtail)))
1722 (native-inputs
1723 `(("itstool" ,itstool)
1724 ("intltool" ,intltool)
1725 ("glib" ,glib "bin")
1726 ("gobject-introspection" ,gobject-introspection)
1727 ("pkg-config" ,pkg-config)
1728 ("xmllint" ,libxml2)))
1729 (home-page
1730 "https://www.gnome.org/projects/evince/")
1731 (synopsis "GNOME's document viewer")
1732 (description
1733 "Evince is a document viewer for multiple document formats. It
1734 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1735 of Evince is to replace the multiple document viewers that exist
1736 on the GNOME Desktop with a single simple application.")
1737 (license license:gpl2+)))
1738
1739 (define-public gsettings-desktop-schemas
1740 (package
1741 (name "gsettings-desktop-schemas")
1742 (version "3.34.0")
1743 (source
1744 (origin
1745 (method url-fetch)
1746 (uri (string-append "mirror://gnome/sources/" name "/"
1747 (version-major+minor version) "/"
1748 name "-" version ".tar.xz"))
1749 (sha256
1750 (base32
1751 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
1752 (build-system meson-build-system)
1753 (arguments
1754 '(#:phases (modify-phases %standard-phases
1755 (add-after 'unpack 'patch-schemas
1756 (lambda* (#:key inputs #:allow-other-keys)
1757 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1758 (substitute* (find-files "schemas"
1759 "\\.gschema\\.xml\\.in$")
1760 ;; Provide the correct file name of the default GNOME
1761 ;; background, 'adwaita-timed.xml'.
1762 (("@datadir@/backgrounds/gnome")
1763 (string-append theme "/share/backgrounds/gnome"))
1764 ;; Do not reference fonts, that may not exist.
1765 (("'Source Code Pro 10'") "'Monospace 11'"))
1766 #t))))))
1767 (inputs
1768 `(("glib" ,glib)
1769 ("gnome-backgrounds" ,gnome-backgrounds)))
1770 (native-inputs
1771 `(("intltool" ,intltool)
1772 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1773 ("gobject-introspection" ,gobject-introspection)
1774 ("pkg-config" ,pkg-config)))
1775 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1776 (synopsis
1777 "GNOME settings for various desktop components")
1778 (description
1779 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1780 for settings shared by various components of the GNOME desktop.")
1781 (license license:lgpl2.1+)))
1782
1783 (define-public icon-naming-utils
1784 (package
1785 (name "icon-naming-utils")
1786 (version "0.8.90")
1787 (source
1788 (origin
1789 (method url-fetch)
1790 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1791 version ".tar.bz2"))
1792 (sha256
1793 (base32
1794 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1795 (build-system gnu-build-system)
1796 (inputs
1797 `(("perl" ,perl)
1798 ("perl-xml-simple" ,perl-xml-simple)))
1799 (arguments
1800 '(#:phases
1801 (modify-phases %standard-phases
1802 (add-after 'install 'set-load-paths
1803 ;; Tell 'icon-name-mapping' where XML::Simple is.
1804 (lambda* (#:key outputs #:allow-other-keys)
1805 (let* ((out (assoc-ref outputs "out"))
1806 (prog (string-append out "/libexec/icon-name-mapping")))
1807 (wrap-program
1808 prog
1809 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1810 #t)))))
1811 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1812 (synopsis
1813 "Utility to implement the Freedesktop Icon Naming Specification")
1814 (description
1815 "To help with the transition to the Freedesktop Icon Naming
1816 Specification, the icon naming utility maps the icon names used by the
1817 GNOME and KDE desktops to the icon names proposed in the specification.")
1818 (license license:lgpl2.1+)))
1819
1820 (define-public gnome-icon-theme
1821 (package
1822 (name "gnome-icon-theme")
1823 (version "3.12.0")
1824 (source
1825 (origin
1826 (method url-fetch)
1827 (uri (string-append "mirror://gnome/sources/" name "/"
1828 (version-major+minor version) "/"
1829 name "-" version ".tar.xz"))
1830 (sha256
1831 (base32
1832 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1833 (build-system gnu-build-system)
1834 (arguments
1835 '(#:configure-flags
1836 ;; Don't create 'icon-theme.cache'.
1837 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1838 (true (string-append coreutils "/bin/true")))
1839 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1840 (native-inputs
1841 `(("icon-naming-utils" ,icon-naming-utils)
1842 ("intltool" ,intltool)
1843 ("pkg-config" ,pkg-config)))
1844 (home-page "https://wiki.gnome.org/Personalization")
1845 (synopsis "GNOME icon theme")
1846 (description "Icons for the GNOME desktop.")
1847 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1848
1849 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1850 (define-public adwaita-icon-theme
1851 (package (inherit gnome-icon-theme)
1852 (name "adwaita-icon-theme")
1853 (version "3.34.3")
1854 (source (origin
1855 (method url-fetch)
1856 (uri (string-append "mirror://gnome/sources/" name "/"
1857 (version-major+minor version) "/"
1858 name "-" version ".tar.xz"))
1859 (sha256
1860 (base32
1861 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
1862 (native-inputs
1863 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1864
1865 (define-public tango-icon-theme
1866 (package
1867 (name "tango-icon-theme")
1868 (version "0.8.90")
1869 (source (origin
1870 (method url-fetch)
1871 (uri (string-append "http://tango.freedesktop.org/releases/"
1872 "tango-icon-theme-" version ".tar.bz2"))
1873 (sha256
1874 (base32
1875 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1876 (build-system gnu-build-system)
1877 (native-inputs
1878 `(("icon-naming-utils" ,icon-naming-utils)
1879 ("intltool" ,intltool)
1880 ("imagemagick" ,imagemagick)
1881 ("pkg-config" ,pkg-config)))
1882 (home-page "http://tango-project.org/")
1883 (synopsis "Tango icon theme")
1884 (description "This is an icon theme that follows the Tango visual
1885 guidelines.")
1886 (license license:public-domain)))
1887
1888 (define-public shared-mime-info
1889 (package
1890 (name "shared-mime-info")
1891 (version "1.15")
1892 (source (origin
1893 (method url-fetch)
1894 (uri (string-append
1895 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1896 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1897 ".tar.xz"))
1898 (sha256
1899 (base32
1900 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
1901 (build-system gnu-build-system)
1902 (arguments
1903 ;; The build system appears not to be parallel-safe.
1904 '(#:parallel-build? #f))
1905 (inputs
1906 `(("glib" ,glib)
1907 ("libxml2" ,libxml2)))
1908 (native-inputs
1909 `(("gettext" ,gettext-minimal)
1910 ("itstool" ,itstool)
1911 ("pkg-config" ,pkg-config)))
1912 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1913 (synopsis "Database of common MIME types")
1914 (description
1915 "The shared-mime-info package contains the core database of common types
1916 and the update-mime-database command used to extend it. It requires glib2 to
1917 be installed for building the update command. Additionally, it uses intltool
1918 for translations, though this is only a dependency for the maintainers. This
1919 database is translated at Transifex.")
1920 (license license:gpl2+)))
1921
1922 (define-public system-config-printer
1923 (package
1924 (name "system-config-printer")
1925 (version "1.5.12")
1926 (source
1927 (origin
1928 (method url-fetch)
1929 (uri (string-append
1930 "https://github.com/OpenPrinting/system-config-printer/releases/"
1931 "download/" version
1932 "/system-config-printer-" version ".tar.xz"))
1933 (sha256
1934 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1935 (build-system glib-or-gtk-build-system)
1936 (arguments
1937 `(#:imported-modules ((guix build python-build-system)
1938 ,@%glib-or-gtk-build-system-modules)
1939 #:phases
1940 (modify-phases %standard-phases
1941 (add-after 'unpack 'patch-Makefile.am
1942 (lambda _
1943 ;; The Makefile generates some scripts, so set a valid shebang
1944 (substitute* "Makefile.am"
1945 (("/bin/bash") (which "bash")))
1946 (delete-file "configure")
1947 #t))
1948 (add-after 'unpack 'patch-docbook-xml
1949 (lambda* (#:key inputs #:allow-other-keys)
1950 ;; Modify the man XML otherwise xmlto tries to access the network
1951 (substitute* "man/system-config-printer.xml"
1952 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1953 (string-append (assoc-ref inputs "docbook-xml")
1954 "/xml/dtd/docbook/")))
1955 #t))
1956 (add-after 'install 'wrap-for-python
1957 (@@ (guix build python-build-system) wrap))
1958 (add-after 'install 'wrap
1959 (lambda* (#:key outputs #:allow-other-keys)
1960 (let ((out (assoc-ref outputs "out"))
1961 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1962 (for-each
1963 (lambda (program)
1964 (wrap-program program
1965 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1966 (map (lambda (name)
1967 (string-append out "/bin/" name))
1968 '("system-config-printer"
1969 "system-config-printer-applet"
1970 "install-printerdriver"
1971 "scp-dbus-service"))))
1972 #t)))))
1973 (inputs
1974 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1975 ("gobject-introspection" ,gobject-introspection)
1976 ("python" ,python)
1977 ("cups" ,cups)
1978 ("python-dbus" ,python-dbus)
1979 ("python-pygobject" ,python-pygobject)
1980 ("python-pycups" ,python-pycups)
1981 ("python-requests" ,python-requests)
1982 ("python-pycairo" ,python-pycairo)
1983 ("libnotify" ,libnotify)
1984 ("packagekit" ,packagekit)))
1985 (native-inputs
1986 `(("pkg-config" ,pkg-config)
1987 ("desktop-file-utils" ,desktop-file-utils)
1988 ("glib" ,glib)
1989 ("autoconf" ,autoconf)
1990 ("automake" ,automake)
1991 ("intltool" ,intltool)
1992 ("xmlto" ,xmlto)
1993 ("docbook-xml" ,docbook-xml-4.1.2)
1994 ("docbook-xsl" ,docbook-xsl)
1995 ("libxml2" ,libxml2)))
1996 (home-page "https://github.com/zdohnal/system-config-printer")
1997 (synopsis "CUPS administration tool")
1998 (description
1999 "system-config-printer is a CUPS administration tool. It's written in
2000 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2001 configuring CUPS.")
2002 (license license:gpl2+)))
2003
2004 (define-public hicolor-icon-theme
2005 (package
2006 (name "hicolor-icon-theme")
2007 (version "0.17")
2008 (source
2009 (origin
2010 (method url-fetch)
2011 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2012 "hicolor-icon-theme-" version ".tar.xz"))
2013 (sha256
2014 (base32
2015 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2016 (build-system gnu-build-system)
2017 (arguments
2018 `(#:tests? #f)) ; no check target
2019 (home-page "https://icon-theme.freedesktop.org/releases/")
2020 (synopsis
2021 "Freedesktop icon theme")
2022 (description
2023 "Freedesktop icon theme.")
2024 (license license:gpl2)))
2025
2026 (define-public libnotify
2027 (package
2028 (name "libnotify")
2029 (version "0.7.7")
2030 (source
2031 (origin
2032 (method url-fetch)
2033 (uri (string-append "mirror://gnome/sources/" name "/"
2034 (version-major+minor version) "/"
2035 name "-" version ".tar.xz"))
2036 (sha256
2037 (base32
2038 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2039 (build-system gnu-build-system)
2040 (arguments
2041 `(#:configure-flags '("--disable-static")))
2042 (propagated-inputs
2043 `(;; In Requires of libnotify.pc.
2044 ("gdk-pixbuf" ,gdk-pixbuf)
2045 ("glib" ,glib)))
2046 (inputs
2047 `(("gtk+" ,gtk+)
2048 ("libpng" ,libpng)))
2049 (native-inputs
2050 `(("pkg-config" ,pkg-config)
2051 ("glib" ,glib "bin")
2052 ("gobject-introspection" ,gobject-introspection)))
2053 (home-page "https://developer-next.gnome.org/libnotify/")
2054 (synopsis
2055 "GNOME desktop notification library")
2056 (description
2057 "Libnotify is a library that sends desktop notifications to a
2058 notification daemon, as defined in the Desktop Notifications spec. These
2059 notifications can be used to inform the user about an event or display
2060 some form of information without getting in the user's way.")
2061 (license license:lgpl2.1+)))
2062
2063 (define-public libpeas
2064 (package
2065 (name "libpeas")
2066 (version "1.24.1")
2067 (source
2068 (origin
2069 (method url-fetch)
2070 (uri (string-append "mirror://gnome/sources/" name "/"
2071 (version-major+minor version) "/"
2072 name "-" version ".tar.xz"))
2073 (sha256
2074 (base32
2075 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2076 (build-system meson-build-system)
2077 (arguments
2078 '(#:phases
2079 (modify-phases %standard-phases
2080 (add-before 'check 'start-xserver
2081 (lambda* (#:key inputs #:allow-other-keys)
2082 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2083 (disp ":1"))
2084 (setenv "DISPLAY" disp)
2085 ;; Tests require a running X server.
2086 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2087 #t))))))
2088 (inputs
2089 `(("gtk+" ,gtk+)
2090 ("glade" ,glade3)
2091 ("python" ,python)
2092 ("python-pygobject" ,python-pygobject)))
2093 (native-inputs
2094 `(("pkg-config" ,pkg-config)
2095 ("gettext" ,gettext-minimal)
2096 ("glib:bin" ,glib "bin")
2097 ("gobject-introspection" ,gobject-introspection)
2098 ("xorg-server" ,xorg-server-for-tests)))
2099 (propagated-inputs
2100 ;; The .pc file "Requires" gobject-introspection.
2101 `(("gobject-introspection" ,gobject-introspection)))
2102 (home-page "https://wiki.gnome.org/Libpeas")
2103 (synopsis "GObject plugin system")
2104 (description
2105 "Libpeas is a gobject-based plugin engine, targeted at giving every
2106 application the chance to assume its own extensibility. It also has a set of
2107 features including, but not limited to: multiple extension points; on-demand
2108 (lazy) programming language support for C, Python and JS; simplicity of the
2109 API.")
2110 (license license:lgpl2.0+)))
2111
2112 (define-public gtkglext
2113 (package
2114 (name "gtkglext")
2115 (version "1.2.0")
2116 (source (origin
2117 (method url-fetch)
2118 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2119 version "/gtkglext-" version ".tar.gz"))
2120 (sha256
2121 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2122 (patches (search-patches
2123 "gtkglext-disable-disable-deprecated.patch"))))
2124 (build-system gnu-build-system)
2125 (arguments
2126 `(#:phases
2127 (modify-phases %standard-phases
2128 ;; Fix a collision between a local variable and a definition from
2129 ;; glibc's string.h.
2130 (add-after 'unpack 'fix-collision
2131 (lambda _
2132 (substitute* "gdk/gdkglshapes.c"
2133 ((" index") " triangle_index"))
2134 #t)))))
2135 (inputs `(("gtk+" ,gtk+-2)
2136 ("mesa" ,mesa)
2137 ("glu" ,glu)
2138 ("libx11" ,libx11)
2139 ("libxt" ,libxt)))
2140 (native-inputs `(("pkg-config" ,pkg-config)
2141 ("glib" ,glib "bin")))
2142 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2143 (home-page "https://projects.gnome.org/gtkglext")
2144 (synopsis "OpenGL extension to GTK+")
2145 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2146 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2147 API add-ons to make GTK+ widgets OpenGL-capable.")
2148 (license license:lgpl2.1+)))
2149
2150 (define-public glade3
2151 (package
2152 (name "glade")
2153 (version "3.36.0")
2154 (source (origin
2155 (method url-fetch)
2156 (uri (string-append "mirror://gnome/sources/" name "/"
2157 (version-major+minor version) "/"
2158 name "-" version ".tar.xz"))
2159 (sha256
2160 (base32
2161 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
2162 (build-system glib-or-gtk-build-system)
2163 (arguments
2164 `(#:tests? #f ; needs X, GL, and software rendering
2165 #:phases
2166 (modify-phases %standard-phases
2167 (add-before 'configure 'fix-docbook
2168 (lambda* (#:key inputs #:allow-other-keys)
2169 (substitute* "man/Makefile.in"
2170 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2171 (string-append (assoc-ref inputs "docbook-xsl")
2172 "/xml/xsl/docbook-xsl-"
2173 ,(package-version docbook-xsl)
2174 "/manpages/docbook.xsl")))
2175 #t)))))
2176 (inputs
2177 `(("gtk+" ,gtk+)
2178 ("libxml2" ,libxml2)))
2179 (native-inputs
2180 `(("intltool" ,intltool)
2181 ("itstool" ,itstool)
2182 ("libxslt" ,libxslt) ;for xsltproc
2183 ("docbook-xml" ,docbook-xml-4.2)
2184 ("docbook-xsl" ,docbook-xsl)
2185 ("python" ,python-2)
2186 ("pkg-config" ,pkg-config)))
2187 (home-page "https://glade.gnome.org")
2188 (synopsis "GTK+ rapid application development tool")
2189 (description "Glade is a rapid application development (RAD) tool to
2190 enable quick & easy development of user interfaces for the GTK+ toolkit and
2191 the GNOME desktop environment.")
2192 (license license:lgpl2.0+)))
2193
2194 (define-public libcroco
2195 (package
2196 (name "libcroco")
2197 (version "0.6.13")
2198 (source (origin
2199 (method url-fetch)
2200 (uri (string-append "mirror://gnome/sources/" name "/"
2201 (version-major+minor version) "/"
2202 name "-" version ".tar.xz"))
2203 (sha256
2204 (base32
2205 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2206 (build-system gnu-build-system)
2207 (native-inputs
2208 `(("pkg-config" ,pkg-config)))
2209 (inputs
2210 `(("glib" ,glib)
2211 ("libxml2" ,libxml2)
2212 ("zlib" ,zlib)))
2213 (home-page "https://github.com/GNOME/libcroco")
2214 (synopsis "CSS2 parsing and manipulation library")
2215 (description
2216 "Libcroco is a standalone CSS2 parsing and manipulation library.
2217 The parser provides a low level event driven SAC-like API and a CSS object
2218 model like API. Libcroco provides a CSS2 selection engine and an experimental
2219 XML/CSS rendering engine.")
2220
2221 ;; LGPLv2.1-only.
2222 (license license:lgpl2.1)))
2223
2224 (define-public libgsf
2225 (package
2226 (name "libgsf")
2227 (version "1.14.47")
2228 (source (origin
2229 (method url-fetch)
2230 (uri (string-append "mirror://gnome/sources/" name "/"
2231 (version-major+minor version) "/"
2232 name "-" version ".tar.xz"))
2233 (sha256
2234 (base32
2235 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
2236 (build-system gnu-build-system)
2237 (arguments
2238 '(#:configure-flags '("--disable-static")))
2239 (native-inputs
2240 `(("pkg-config" ,pkg-config)
2241 ("gettext" ,gettext-minimal)
2242
2243 ;; For tests.
2244 ("perl" ,perl)
2245 ("perl-xml-parser" ,perl-xml-parser)))
2246 (inputs
2247 `(("zlib" ,zlib)
2248 ("bzip2" ,bzip2)))
2249 (propagated-inputs
2250 `(("gdk-pixbuf" ,gdk-pixbuf)
2251 ("glib" ,glib)
2252 ("libxml2" ,libxml2)))
2253 (home-page "https://www.gnome.org/projects/libgsf")
2254 (synopsis "GNOME's Structured File Library")
2255 (description
2256 "Libgsf aims to provide an efficient extensible I/O abstraction for
2257 dealing with different structured file formats.")
2258
2259 ;; LGPLv2.1-only.
2260 (license license:lgpl2.1)))
2261
2262 (define-public librsvg
2263 (package
2264 (name "librsvg")
2265 (version "2.40.21")
2266 (source (origin
2267 (method url-fetch)
2268 (uri (string-append "mirror://gnome/sources/" name "/"
2269 (version-major+minor version) "/"
2270 name "-" version ".tar.xz"))
2271 (sha256
2272 (base32
2273 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
2274 (build-system gnu-build-system)
2275 (arguments
2276 `(#:configure-flags
2277 (list "--disable-static"
2278 "--enable-vala") ; needed for e.g. gnome-mines
2279 #:phases
2280 (modify-phases %standard-phases
2281 (add-before 'configure 'pre-configure
2282 (lambda* (#:key inputs #:allow-other-keys)
2283 (substitute* "gdk-pixbuf-loader/Makefile.in"
2284 ;; By default the gdk-pixbuf loader is installed under
2285 ;; gdk-pixbuf's prefix. Work around that.
2286 (("gdk_pixbuf_moduledir = .*$")
2287 (string-append "gdk_pixbuf_moduledir = "
2288 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2289 "loaders\n"))
2290 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2291 (("gdk_pixbuf_cache_file = .*$")
2292 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2293 #t))
2294 (add-before 'check 'remove-failing-tests
2295 (lambda _
2296 (with-directory-excursion "tests/fixtures/reftests"
2297 (for-each delete-file
2298 '(;; This test fails on i686:
2299 "svg1.1/masking-path-04-b.svg"
2300 ;; This test fails on armhf:
2301 "svg1.1/masking-mask-01-b.svg"
2302 ;; This test fails on aarch64:
2303 "bugs/777834-empty-text-children.svg")))
2304 #t)))))
2305 (native-inputs
2306 `(("pkg-config" ,pkg-config)
2307 ("vala" ,vala)
2308 ("glib" ,glib "bin") ; glib-mkenums, etc.
2309 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2310 (inputs
2311 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2312 ;; this ancient version of librsvg.
2313 ("pango" ,pango-1.42)
2314 ("libcroco" ,libcroco)
2315 ("bzip2" ,bzip2)
2316 ("libgsf" ,libgsf)
2317 ("libxml2" ,libxml2)))
2318 (propagated-inputs
2319 ;; librsvg-2.0.pc refers to all of that.
2320 `(("cairo" ,cairo)
2321 ("gdk-pixbuf" ,gdk-pixbuf)
2322 ("glib" ,glib)))
2323 (home-page "https://wiki.gnome.org/LibRsvg")
2324 (synopsis "Render SVG files using Cairo")
2325 (description
2326 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2327 library.")
2328 (license license:lgpl2.0+)))
2329
2330 (define-public librsvg-next
2331 (package
2332 (inherit librsvg)
2333 (name "librsvg")
2334 (version "2.46.4")
2335 (source (origin
2336 (method url-fetch)
2337 (uri (string-append "mirror://gnome/sources/librsvg/"
2338 (version-major+minor version) "/"
2339 "librsvg-" version ".tar.xz"))
2340 (sha256
2341 (base32
2342 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2343 (modules '((guix build utils)))
2344 (snippet
2345 '(begin (delete-file-recursively "vendor")
2346 ;; Don't demand an exact version for string_cache
2347 (substitute* "rsvg_internals/Cargo.toml"
2348 (("\"=") "\""))
2349 #t))))
2350 (build-system cargo-build-system)
2351 (arguments
2352 `(#:modules ((guix build cargo-build-system)
2353 (guix build utils)
2354 ((guix build gnu-build-system) #:prefix gnu:))
2355 #:vendor-dir "vendor"
2356 #:cargo-inputs
2357 (("rust-bitflags" ,rust-bitflags-1)
2358 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2359 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2360 ("rust-cssparser" ,rust-cssparser-0.25)
2361 ("rust-data-url" ,rust-data-url-0.1)
2362 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2363 ("rust-encoding" ,rust-encoding-0.2)
2364 ("rust-float-cmp" ,rust-float-cmp-0.5)
2365 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2366 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2367 ("rust-gio" ,rust-gio-0.7)
2368 ("rust-gio-sys" ,rust-gio-sys-0.9)
2369 ("rust-glib" ,rust-glib-0.8)
2370 ("rust-glib-sys" ,rust-glib-sys-0.9)
2371 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2372 ("rust-itertools" ,rust-itertools-0.8)
2373 ("rust-language-tags" ,rust-language-tags-0.2)
2374 ("rust-lazy-static" ,rust-lazy-static-1)
2375 ("rust-libc" ,rust-libc-0.2)
2376 ("rust-locale-config" ,rust-locale-config-0.3)
2377 ("rust-markup5ever" ,rust-markup5ever-0.9)
2378 ("rust-nalgebra" ,rust-nalgebra-0.18)
2379 ("rust-num-traits" ,rust-num-traits-0.2)
2380 ("rust-pkg-config" ,rust-pkg-config-0.3)
2381 ("rust-pango" ,rust-pango-0.7)
2382 ("rust-pango-sys" ,rust-pango-sys-0.9)
2383 ("rust-pangocairo" ,rust-pangocairo-0.8)
2384 ("rust-phf" ,rust-phf-0.7)
2385 ("rust-rayon" ,rust-rayon-1.3)
2386 ("rust-rctree" ,rust-rctree-0.3)
2387 ("rust-string-cache" ,rust-string-cache-0.7)
2388 ("rust-regex" ,rust-regex-1.3)
2389 ("rust-url" ,rust-url-2.1)
2390 ("rust-xml-rs" ,rust-xml-rs-0.8))
2391 #:cargo-development-inputs
2392 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2393 ("rust-criterion" ,rust-criterion-0.2))
2394 #:phases
2395 (modify-phases %standard-phases
2396 (add-after 'unpack 'prepare-for-build
2397 (lambda _
2398 ;; In lieu of #:make-flags
2399 (setenv "CC" "gcc")
2400 ;; Something about the build environment resists building
2401 ;; successfully with the '--locked' flag.
2402 (substitute* '("Makefile.am"
2403 "Makefile.in")
2404 (("--locked") ""))
2405 #t))
2406 (add-before 'configure 'pre-configure
2407 (lambda _
2408 (substitute* "gdk-pixbuf-loader/Makefile.in"
2409 ;; By default the gdk-pixbuf loader is installed under
2410 ;; gdk-pixbuf's prefix. Work around that.
2411 (("gdk_pixbuf_moduledir = .*$")
2412 (string-append "gdk_pixbuf_moduledir = "
2413 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2414 "loaders\n"))
2415 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2416 (("gdk_pixbuf_cache_file = .*$")
2417 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2418 #t))
2419 (add-after 'configure 'gnu-configure
2420 (assoc-ref gnu:%standard-phases 'configure))
2421 ;(lambda* (#:key outputs #:allow-other-keys)
2422 ; ((assoc-ref gnu:%standard-phases 'configure)
2423 ; #:outputs outputs
2424 ; #:configure-flags ("--disable-static"
2425 ; "--enable-vala"))))
2426 (add-after 'configure 'dont-vendor-self
2427 (lambda* (#:key vendor-dir #:allow-other-keys)
2428 ;; Don't keep the whole tarball in the vendor directory
2429 (delete-file-recursively
2430 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2431 #t))
2432 (replace 'build
2433 (assoc-ref gnu:%standard-phases 'build))
2434 (replace 'check
2435 (lambda* args
2436 ((assoc-ref gnu:%standard-phases 'check)
2437 #:test-target "check")))
2438 (replace 'install
2439 (assoc-ref gnu:%standard-phases 'install))
2440 (add-before 'check 'remove-failing-tests
2441 (lambda _
2442 (with-directory-excursion "tests/fixtures/reftests"
2443 (for-each delete-file
2444 '(;; The images produced by these tests differ slightly
2445 ;; from their reference counterparts due to differences
2446 ;; in the build environment (missing fonts, etc). See
2447 ;; <tests/README.md> for details.
2448 ;; These fail on x86_64.
2449 "svg1.1/coords-viewattr-02-b.svg"
2450 "svg1.1/filters-composite-04-f.svg"
2451 "svg1.1/filters-image-01-b.svg"
2452 "svg1.1/filters-conv-02-f.svg"
2453 "svg1.1/filters-conv-04-f.svg"
2454 ;; This test fails on i686:
2455 "svg1.1/masking-path-04-b.svg"
2456 ;; This test fails on armhf:
2457 "svg1.1/masking-mask-01-b.svg"
2458 ;; This test fails on aarch64:
2459 "bugs/777834-empty-text-children.svg")))
2460 #t)))))
2461 (license license:lgpl2.1+)))
2462
2463 (define-public libidl
2464 (package
2465 (name "libidl")
2466 (version "0.8.14")
2467 (source (origin
2468 (method url-fetch)
2469 (uri (string-append "mirror://gnome/sources/libIDL/"
2470 (version-major+minor version) "/"
2471 "libIDL-" version ".tar.bz2"))
2472 (sha256
2473 (base32
2474 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2475 (build-system gnu-build-system)
2476 (inputs `(("glib" ,glib)))
2477 (native-inputs
2478 `(("pkg-config" ,pkg-config)
2479 ("flex" ,flex)
2480 ("bison" ,bison)))
2481 (home-page "http://freecode.com/projects/libidl")
2482 (synopsis "Create trees of CORBA Interface Definition Language files")
2483 (description "Libidl is a library for creating trees of CORBA Interface
2484 Definition Language (idl) files, which is a specification for defining
2485 portable interfaces. libidl was initially written for orbit (the orb from the
2486 GNOME project, and the primary means of libidl distribution). However, the
2487 functionality was designed to be as reusable and portable as possible.")
2488 (properties `((upstream-name . "libIDL")))
2489 (license license:lgpl2.0+)))
2490
2491
2492 (define-public orbit2
2493 (package
2494 (name "orbit2")
2495 (version "2.14.19")
2496 (source (origin
2497 (method url-fetch)
2498 (uri (let ((upstream-name "ORBit2"))
2499 (string-append "mirror://gnome/sources/" upstream-name "/"
2500 (version-major+minor version) "/"
2501 upstream-name "-" version ".tar.bz2")))
2502 (sha256
2503 (base32
2504 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2505 (build-system gnu-build-system)
2506 (arguments
2507 `(;; The "timeout-server" test hangs when run in parallel.
2508 #:parallel-tests? #f
2509 #:configure-flags
2510 '(;; We don't need static libraries, plus they don't build reproducibly
2511 ;; (non-deterministic ordering of .o files in the archive.)
2512 "--disable-static"
2513
2514 ;; The programmer kindly gives us a hook to turn off deprecation
2515 ;; warnings ...
2516 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2517 ;; ... which they then completly ignore !!
2518 #:phases
2519 (modify-phases %standard-phases
2520 (add-before 'configure 'ignore-deprecations
2521 (lambda _
2522 (substitute* "linc2/src/Makefile.in"
2523 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2524 #t)))))
2525 (inputs `(("glib" ,glib)
2526 ("libidl" ,libidl)))
2527 (native-inputs
2528 `(("pkg-config" ,pkg-config)))
2529 (home-page "https://projects.gnome.org/orbit2/")
2530 (synopsis "CORBA 2.4-compliant Object Request Broker")
2531 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2532 featuring mature C, C++ and Python bindings.")
2533 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2534 ;; a version. SOME of the code files have licence notices for GPLv2+.
2535 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2536 (license license:gpl2+)
2537 (properties `((upstream-name . "ORBit2")))))
2538
2539
2540 (define-public libbonobo
2541 (package
2542 (name "libbonobo")
2543 (version "2.32.1")
2544 (source (origin
2545 (method url-fetch)
2546 (uri (string-append "mirror://gnome/sources/" name "/"
2547 (version-major+minor version)
2548 "/" name "-" version ".tar.bz2"))
2549 (sha256
2550 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2551 (patches (search-patches
2552 "libbonobo-activation-test-race.patch"))))
2553 (build-system gnu-build-system)
2554 (arguments
2555 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2556 `(#:configure-flags
2557 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2558 ;; ... which they then completly ignore !!
2559 #:phases
2560 (modify-phases %standard-phases
2561 (add-before 'configure 'ignore-deprecations
2562 (lambda _
2563 (substitute* "activation-server/Makefile.in"
2564 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2565 #t)))
2566
2567 ;; There's apparently a race condition between the server stub
2568 ;; generation and linking of the example under 'samples/echo' that can
2569 ;; lead do undefined references when building in parallel, as reported
2570 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2571 ;; Thus, disable parallel builds.
2572 #:parallel-build? #f))
2573 (inputs `(("popt" ,popt)
2574 ("libxml2" ,libxml2)))
2575 ;; The following are Required by the .pc file
2576 (propagated-inputs
2577 `(("glib" ,glib)
2578 ("orbit2" ,orbit2)))
2579 (native-inputs
2580 `(("intltool" ,intltool)
2581 ("pkg-config" ,pkg-config)
2582 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2583 ("flex" ,flex)
2584 ("bison" ,bison)))
2585 (home-page "https://developer.gnome.org/libbonobo/")
2586 (synopsis "Framework for creating reusable components for use in GNOME applications")
2587 (description "Bonobo is a framework for creating reusable components for
2588 use in GNOME applications, built on top of CORBA.")
2589 ;; Licence not explicitly stated. Source files contain no licence notices.
2590 ;; Tarball contains text of both GPLv2 and LGPLv2
2591 ;; GPLv2 covers both conditions
2592 (license license:gpl2+)))
2593
2594
2595 (define-public gconf
2596 (package
2597 (name "gconf")
2598 (version "3.2.6")
2599 (source (origin
2600 (method url-fetch)
2601 (uri
2602 (let ((upstream-name "GConf"))
2603 (string-append "mirror://gnome/sources/" upstream-name "/"
2604 (version-major+minor version) "/"
2605 upstream-name "-" version ".tar.xz")))
2606 (sha256
2607 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2608 (build-system gnu-build-system)
2609 (inputs `(("dbus-glib" ,dbus-glib)
2610 ("libxml2" ,libxml2)))
2611 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2612 ("orbit2" ,orbit2)))
2613 (native-inputs
2614 `(("intltool" ,intltool)
2615 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2616 ("pkg-config" ,pkg-config)))
2617 (home-page "https://projects.gnome.org/gconf/")
2618 (synopsis "Store application preferences")
2619 (description "Gconf is a system for storing application preferences. It
2620 is intended for user preferences; not arbitrary data storage.")
2621 (license license:lgpl2.0+)
2622 (properties '((upstream-name . "GConf")))))
2623
2624
2625 (define-public gnome-mime-data
2626 (package
2627 (name "gnome-mime-data")
2628 (version "2.18.0")
2629 (source (origin
2630 (method url-fetch)
2631 (uri (string-append "mirror://gnome/sources/" name "/"
2632 (version-major+minor version) "/"
2633 name "-" version ".tar.bz2"))
2634 (sha256
2635 (base32
2636 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2637 (build-system gnu-build-system)
2638 (native-inputs
2639 `(("perl" ,perl)
2640 ("intltool" ,intltool)))
2641 (arguments
2642 '(#:phases (modify-phases %standard-phases
2643 (add-after 'configure 'use-our-intltool
2644 (lambda _
2645 ;; Do not use the bundled intltool commands, which lack
2646 ;; the "dotless @INC" fixes of our 'intltool' package.
2647 (substitute* (find-files "." "^Makefile$")
2648 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2649 (string-append "INTLTOOL_" tool " = intltool-"
2650 (string-downcase tool) "\n")))
2651 #t)))))
2652 (home-page "https://www.gnome.org")
2653 (synopsis "Base MIME and Application database for GNOME")
2654 (description "GNOME Mime Data is a module which contains the base MIME
2655 and Application database for GNOME. The data stored by this module is
2656 designed to be accessed through the MIME functions in GnomeVFS.")
2657 (license license:gpl2+)))
2658
2659
2660 (define-public gnome-vfs
2661 (package
2662 (name "gnome-vfs")
2663 (version "2.24.4")
2664 (source (origin
2665 (method url-fetch)
2666 (uri (string-append "mirror://gnome/sources/" name "/"
2667 (version-major+minor version) "/"
2668 name "-" version ".tar.bz2"))
2669 (sha256
2670 (base32
2671 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2672 (build-system gnu-build-system)
2673 (arguments
2674 `(#:phases
2675 (modify-phases %standard-phases
2676 (add-before 'configure 'ignore-deprecations
2677 (lambda _
2678 (substitute* '("libgnomevfs/Makefile.in"
2679 "daemon/Makefile.in")
2680 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2681 #t))
2682 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2683 (lambda _
2684 (substitute* "test/test-async-cancel.c"
2685 (("EXIT_FAILURE") "77"))
2686 #t)))))
2687 (inputs `(("libxml2" ,libxml2)
2688 ("dbus-glib" ,dbus-glib)
2689 ("gconf" ,gconf)
2690 ("gnome-mime-data" ,gnome-mime-data)
2691 ("zlib" ,zlib)))
2692 (native-inputs
2693 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2694 ("intltool" ,intltool)
2695 ("pkg-config" ,pkg-config)))
2696 (home-page "https://developer.gnome.org/gnome-vfs/")
2697 (synopsis "Access files and folders in GNOME applications")
2698 (description
2699 "GnomeVFS is the core library used to access files and folders in GNOME
2700 applications. It provides a file system abstraction which allows applications
2701 to access local and remote files with a single consistent API.")
2702 (license license:lgpl2.0+)))
2703
2704
2705
2706 (define-public libgnome
2707 (package
2708 (name "libgnome")
2709 (version "2.32.1")
2710 (source (origin
2711 (method url-fetch)
2712 (uri (string-append "mirror://gnome/sources/" name "/"
2713 (version-major+minor version) "/"
2714 name "-" version ".tar.bz2"))
2715 (sha256
2716 (base32
2717 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2718 (patches (search-patches "libgnome-encoding.patch"))))
2719 (build-system gnu-build-system)
2720 (arguments
2721 `(#:phases
2722 (modify-phases %standard-phases
2723 (add-before 'configure 'enable-deprecated
2724 (lambda _
2725 (substitute* "libgnome/Makefile.in"
2726 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2727 #t)))))
2728 (inputs `(("libxml2" ,libxml2)))
2729 (native-inputs
2730 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2731 ("intltool" ,intltool)
2732 ("pkg-config" ,pkg-config)))
2733 ;; The following are listed as Required in the .pc file
2734 ;; (except for libcanberra -- which seems to be oversight on the part
2735 ;; of the upstream developers -- anything that links against libgnome,
2736 ;; must also link against libcanberra
2737 (propagated-inputs
2738 `(("libcanberra" ,libcanberra)
2739 ("libbonobo" ,libbonobo)
2740 ("gconf" ,gconf)
2741 ("gnome-vfs" ,gnome-vfs)
2742 ("popt" ,popt))) ;gnome-program.h includes popt.h
2743 (home-page "https://developer.gnome.org/libgnome/")
2744 (synopsis "Useful routines for building applications")
2745 (description "The libgnome library provides a number of useful routines
2746 for building modern applications, including session management, activation of
2747 files and URIs, and displaying help.")
2748 (license license:lgpl2.0+)))
2749
2750
2751 (define-public libart-lgpl
2752 (package
2753 (name "libart-lgpl")
2754 (version "2.3.21")
2755 (source (origin
2756 (method url-fetch)
2757 (uri (let ((upstream-name "libart_lgpl"))
2758 (string-append "mirror://gnome/sources/" upstream-name "/"
2759 (version-major+minor version) "/"
2760 upstream-name "-" version ".tar.bz2")))
2761 (sha256
2762 (base32
2763 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2764 (build-system gnu-build-system)
2765 (native-inputs
2766 `(("pkg-config" ,pkg-config)))
2767 (home-page "https://people.gnome.org/~mathieu/libart")
2768 (synopsis "2D drawing library")
2769 (description "Libart is a 2D drawing library intended as a
2770 high-quality vector-based 2D library with antialiasing and alpha composition.")
2771 (license license:lgpl2.0+)))
2772
2773
2774
2775 (define-public libgnomecanvas
2776 (package
2777 (name "libgnomecanvas")
2778 (version "2.30.3")
2779 (source (origin
2780 (method url-fetch)
2781 (uri (string-append "mirror://gnome/sources/" name "/"
2782 (version-major+minor version) "/"
2783 name "-" version ".tar.gz"))
2784 (sha256
2785 (base32
2786 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2787 (build-system gnu-build-system)
2788 ;; Mentioned as Required in the .pc file
2789 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2790 ("gtk+" ,gtk+-2)))
2791 (native-inputs
2792 `(("intltool" ,intltool)
2793 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2794 ("pkg-config" ,pkg-config)))
2795 (home-page "https://developer.gnome.org/libgnomecanvas/")
2796 (synopsis "Flexible widget for creating interactive structured graphics")
2797 (description "The GnomeCanvas widget provides a flexible widget for
2798 creating interactive structured graphics.")
2799 (license license:lgpl2.0+)))
2800
2801 (define-public libgnomecanvasmm
2802 (package
2803 (name "libgnomecanvasmm")
2804 (version "2.26.0")
2805 (source (origin
2806 (method url-fetch)
2807 (uri (string-append "mirror://gnome/sources/" name "/"
2808 (version-major+minor version) "/"
2809 name "-" version ".tar.bz2"))
2810 (sha256
2811 (base32
2812 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2813 (build-system gnu-build-system)
2814 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2815 (native-inputs
2816 `(("gtkmm-2" ,gtkmm-2)
2817 ("pkg-config" ,pkg-config)))
2818 (home-page "https://gtkmm.org")
2819 (synopsis "C++ bindings to the GNOME Canvas library")
2820 (description "C++ bindings to the GNOME Canvas library.")
2821 (license license:lgpl2.0+)))
2822
2823 (define-public libgnomeui
2824 (package
2825 (name "libgnomeui")
2826 (version "2.24.5")
2827 (source (origin
2828 (method url-fetch)
2829 (uri (string-append "mirror://gnome/sources/" name "/"
2830 (version-major+minor version) "/"
2831 name "-" version ".tar.bz2"))
2832 (patches (search-patches "libgnomeui-utf8.patch"))
2833 (sha256
2834 (base32
2835 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2836 (build-system gnu-build-system)
2837 ;; Mentioned as Required in the .pc file
2838 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2839 ("libgnome" ,libgnome)
2840 ("libgnomecanvas" ,libgnomecanvas)
2841 ("libgnome-keyring" ,libgnome-keyring)))
2842 (inputs `(("libjpeg" ,libjpeg-turbo)
2843 ("popt" ,popt)
2844 ("libbonobo" ,libbonobo)
2845 ("libxml2" ,libxml2)
2846 ("libglade" ,libglade)))
2847 (native-inputs
2848 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2849 ("intltool" ,intltool)
2850 ("pkg-config" ,pkg-config)))
2851 (home-page "https://developer.gnome.org/libgnomeui/")
2852 (synopsis "Additional widgets for applications")
2853 (description "The libgnomeui library provides additional widgets for
2854 applications. Many of the widgets from libgnomeui have already been
2855 ported to GTK+.")
2856 (license license:lgpl2.0+)))
2857
2858 (define-public libglade
2859 (package
2860 (name "libglade")
2861 (version "2.6.4")
2862 (source (origin
2863 (method url-fetch)
2864 (uri (string-append "mirror://gnome/sources/" name "/"
2865 (version-major+minor version) "/"
2866 name "-" version ".tar.bz2"))
2867 (sha256
2868 (base32
2869 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2870 (build-system gnu-build-system)
2871 (inputs
2872 `(("python" ,python))) ;; needed for the optional libglade-convert program
2873 (propagated-inputs
2874 `(("gtk+-2" ,gtk+-2)
2875 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2876 (native-inputs
2877 `(("pkg-config" ,pkg-config)))
2878 (home-page "https://developer.gnome.org/libglade")
2879 (synopsis "Load glade interfaces and access the glade built widgets")
2880 (description "Libglade is a library that provides interfaces for loading
2881 graphical interfaces described in glade files and for accessing the
2882 widgets built in the loading process.")
2883 (license license:gpl2+))) ; This is correct. GPL not LGPL
2884
2885 (define-public libgnomeprint
2886 ;; This library has been deprecated since 2006; see
2887 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2888 (package
2889 (name "libgnomeprint")
2890 (version "2.18.8")
2891 (source (origin
2892 (method url-fetch)
2893 (uri (string-append "mirror://gnome/sources/" name "/"
2894 (version-major+minor version) "/"
2895 name "-" version ".tar.bz2"))
2896 (sha256
2897 (base32
2898 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2899 (build-system gnu-build-system)
2900 (inputs
2901 `(("popt" ,popt)
2902 ("libart-lgpl" ,libart-lgpl)
2903 ("gtk+" ,gtk+-2)
2904 ("libxml2" ,libxml2)))
2905 (native-inputs
2906 `(("intltool" ,intltool)
2907 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2908 ("pkg-config" ,pkg-config)))
2909 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2910 (synopsis "Printing framework for GNOME")
2911 (description
2912 "GNOME-print was a printing framework for GNOME. It has been deprecated
2913 since ca. 2006, when GTK+ itself incorporated printing support.")
2914 (license license:lgpl2.0+)))
2915
2916
2917 (define-public libgnomeprintui
2918 ;; Deprecated; see libgnomeprint.
2919 (package
2920 (name "libgnomeprintui")
2921 (version "2.18.6")
2922 (source (origin
2923 (method url-fetch)
2924 (uri (string-append "mirror://gnome/sources/" name "/"
2925 (version-major+minor version) "/"
2926 name "-" version ".tar.bz2"))
2927 (sha256
2928 (base32
2929 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2930 (build-system gnu-build-system)
2931 ;; Mentioned as Required in the .pc file
2932 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2933 (inputs `(("gtk+" ,gtk+-2)
2934 ("glib" ,glib)
2935 ("gnome-icon-theme" ,gnome-icon-theme)
2936 ("libgnomecanvas" ,libgnomecanvas)
2937 ("libxml2" ,libxml2)))
2938 (native-inputs
2939 `(("intltool" ,intltool)
2940 ("pkg-config" ,pkg-config)))
2941 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2942 (synopsis "Printing framework for GNOME")
2943 (description (package-description libgnomeprint))
2944 (license license:lgpl2.0+)))
2945
2946 (define-public libbonoboui
2947 (package
2948 (name "libbonoboui")
2949 (version "2.24.5")
2950 (source (origin
2951 (method url-fetch)
2952 (uri (string-append "mirror://gnome/sources/" name "/"
2953 (version-major+minor version) "/"
2954 name "-" version ".tar.bz2"))
2955 (sha256
2956 (base32
2957 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2958 (build-system gnu-build-system)
2959 (arguments
2960 `(#:phases
2961 (modify-phases %standard-phases
2962 (add-before 'check 'start-xserver
2963 (lambda* (#:key inputs #:allow-other-keys)
2964 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2965 (disp ":1"))
2966
2967 (setenv "HOME" (getcwd))
2968 (setenv "DISPLAY" disp)
2969 ;; There must be a running X server and make check doesn't start one.
2970 ;; Therefore we must do it.
2971 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2972 ;; Mentioned as Required by the .pc file
2973 (propagated-inputs `(("libxml2" ,libxml2)))
2974 (inputs
2975 `(("popt" ,popt)
2976 ("pangox-compat" ,pangox-compat)
2977 ("libgnome" ,libgnome)
2978 ("libgnomecanvas" ,libgnomecanvas)
2979 ("libglade" ,libglade)))
2980 (native-inputs
2981 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2982 ("intltool" ,intltool)
2983 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2984 ("pkg-config" ,pkg-config)))
2985 (home-page "https://developer.gnome.org/libbonoboui/")
2986 (synopsis "Some user interface controls using Bonobo")
2987 (description "The Bonobo UI library provides a number of user interface
2988 controls using the Bonobo component framework.")
2989 (license license:lgpl2.0+)))
2990
2991 (define-public libwnck
2992 (package
2993 (name "libwnck")
2994 (version "3.32.0")
2995 (source (origin
2996 (method url-fetch)
2997 (uri (string-append "mirror://gnome/sources/" name "/"
2998 (version-major+minor version) "/"
2999 name "-" version ".tar.xz"))
3000 (sha256
3001 (base32
3002 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3003 (build-system meson-build-system)
3004 (native-inputs
3005 `(("pkg-config" ,pkg-config)
3006 ("glib" ,glib "bin") ; for glib-mkenums
3007 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3008 ("intltool" ,intltool)))
3009 (propagated-inputs
3010 `(("gtk+" ,gtk+)
3011 ("libxres" ,libxres)
3012 ("startup-notification" ,startup-notification)))
3013 (home-page "https://developer.gnome.org/libwnck/")
3014 (synopsis "Window Navigator Construction Kit")
3015 (description
3016 "Libwnck is the Window Navigator Construction Kit, a library for use in
3017 writing pagers, tasklists, and more generally applications that are dealing
3018 with window management. It tries hard to respect the Extended Window Manager
3019 Hints specification (EWMH).")
3020 (license license:lgpl2.0+)))
3021
3022 ;; stable version for gtk2, required by xfwm4.
3023 (define-public libwnck-2
3024 (package (inherit libwnck)
3025 (name "libwnck")
3026 (version "2.30.7")
3027 (source (origin
3028 (method url-fetch)
3029 (uri (string-append "mirror://gnome/sources/" name "/"
3030 (version-major+minor version) "/"
3031 name "-" version ".tar.xz"))
3032 (sha256
3033 (base32
3034 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
3035 (build-system gnu-build-system)
3036 (native-inputs
3037 `(("pkg-config" ,pkg-config)
3038 ("intltool" ,intltool)))
3039 (propagated-inputs
3040 `(("gtk+" ,gtk+-2)
3041 ("libxres" ,libxres)
3042 ("startup-notification" ,startup-notification)))))
3043
3044 (define-public goffice
3045 (package
3046 (name "goffice")
3047 (version "0.10.46")
3048 (source (origin
3049 (method url-fetch)
3050 (uri (string-append "mirror://gnome/sources/goffice/"
3051 (version-major+minor version) "/"
3052 "goffice-" version ".tar.xz"))
3053 (sha256
3054 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
3055 (build-system gnu-build-system)
3056 (outputs '("out"
3057 "doc")) ; 4.0 MiB of gtk-doc
3058 (arguments
3059 '(#:configure-flags (list (string-append "--with-html-dir="
3060 (assoc-ref %outputs "doc")
3061 "/share/gtk-doc/html"))))
3062 (inputs
3063 `(("gtk+" ,gtk+)
3064 ("libgsf" ,libgsf)
3065 ("librsvg" ,librsvg)
3066 ("libxslt" ,libxslt)
3067 ("libxml2" ,libxml2)))
3068 (native-inputs
3069 `(("intltool" ,intltool)
3070 ("glib" ,glib "bin")
3071 ("pkg-config" ,pkg-config)))
3072 (home-page "https://developer.gnome.org/goffice/")
3073 (synopsis "Document-centric objects and utilities")
3074 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3075 (license
3076 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3077 ;; Note: NOT LGPL
3078 (list license:gpl2 license:gpl3))))
3079
3080 (define-public goffice-0.8
3081 (package (inherit goffice)
3082 (version "0.8.17")
3083 (source (origin
3084 (method url-fetch)
3085 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3086 (version-major+minor version) "/"
3087 (package-name goffice) "-" version ".tar.xz"))
3088 (sha256
3089 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3090 (arguments
3091 `(#:phases
3092 (modify-phases %standard-phases
3093 (add-after 'unpack 'fix-pcre-check
3094 (lambda _
3095 ;; Only glib.h can be included directly. See
3096 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3097 (substitute* "configure"
3098 (("glib/gregex\\.h") "glib.h")) #t)))
3099
3100 ,@(package-arguments goffice)))
3101 (propagated-inputs
3102 ;; libgoffice-0.8.pc mentions libgsf-1
3103 `(("libgsf" ,libgsf)))
3104 (inputs
3105 `(("gtk" ,gtk+-2)
3106 ,@(alist-delete "gtk" (package-inputs goffice))))))
3107
3108 (define-public gnumeric
3109 (package
3110 (name "gnumeric")
3111 (version "1.12.46")
3112 (source (origin
3113 (method url-fetch)
3114 (uri (string-append "mirror://gnome/sources/gnumeric/"
3115 (version-major+minor version) "/"
3116 "gnumeric-" version ".tar.xz"))
3117 (sha256
3118 (base32
3119 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3120 (build-system glib-or-gtk-build-system)
3121 (arguments
3122 `(;; The gnumeric developers don't worry much about failing tests.
3123 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3124 #:tests? #f
3125 #:phases
3126 (modify-phases %standard-phases
3127 (add-before
3128 'configure 'pre-conf
3129 (lambda* (#:key outputs #:allow-other-keys)
3130 ;; Make install tries to write into the directory of goffice
3131 ;; I am informed that this only affects the possibility to embed a
3132 ;; spreadsheet inside an Abiword document. So presumably when we
3133 ;; package Abiword we'll have to refer it to this directory.
3134 (substitute* "configure"
3135 (("^GOFFICE_PLUGINS_DIR=.*")
3136 (string-append "GOFFICE_PLUGINS_DIR="
3137 (assoc-ref outputs "out")
3138 "/goffice/plugins"))))))))
3139 (inputs
3140 `(("glib" ,glib)
3141 ("gtk+" ,gtk+)
3142 ("goffice" ,goffice)
3143 ("libgsf" ,libgsf)
3144 ("librsvg" ,librsvg)
3145 ("libxml2" ,libxml2)
3146 ("libxslt" ,libxslt)
3147 ("python" ,python-2)
3148 ("python2-pygobject" ,python2-pygobject)
3149 ("zlib" ,zlib)))
3150 (native-inputs
3151 `(("bison" ,bison)
3152 ("docbook-xml" ,docbook-xml)
3153 ("intltool" ,intltool)
3154 ("itstool" ,itstool)
3155 ("glib:bin" ,glib "bin")
3156 ("pkg-config" ,pkg-config)))
3157 (home-page "http://www.gnumeric.org")
3158 (synopsis "Spreadsheet application")
3159 (description
3160 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3161 interoperable with other spreadsheet applications. It has a vast array of
3162 features beyond typical spreadsheet functionality, such as support for linear
3163 and non-linear solvers, statistical analysis, and telecommunication
3164 engineering.")
3165 (license
3166 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3167 (list license:gpl2 license:gpl3))))
3168
3169 (define-public gnome-themes-standard
3170 (package
3171 (name "gnome-themes-standard")
3172 (version "3.22.3")
3173 (source
3174 (origin
3175 (method url-fetch)
3176 (uri (string-append "mirror://gnome/sources/" name "/"
3177 (version-major+minor version) "/" name "-"
3178 version ".tar.xz"))
3179 (sha256
3180 (base32
3181 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3182 (build-system gnu-build-system)
3183 (arguments
3184 '(#:configure-flags
3185 ;; Don't create 'icon-theme.cache'.
3186 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3187 (true (string-append coreutils "/bin/true")))
3188 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3189 (inputs
3190 `(("gtk+" ,gtk+)
3191 ("gtk+-2" ,gtk+-2)
3192 ("librsvg" ,librsvg)
3193 ("libxml2" ,libxml2)
3194 ("glib" ,glib)))
3195 (native-inputs
3196 `(("intltool" ,intltool)
3197 ("glib:bin" ,glib "bin")
3198 ("pkg-config" ,pkg-config)))
3199 (home-page "https://launchpad.net/gnome-themes-standard")
3200 (synopsis "Default GNOME 3 themes")
3201 (description
3202 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3203 (license license:lgpl2.1+)))
3204
3205 (define-public seahorse
3206 (package
3207 (name "seahorse")
3208 (version "3.34")
3209 (source
3210 (origin
3211 (method url-fetch)
3212 (uri (string-append "mirror://gnome/sources/" name "/"
3213 (version-major+minor version) "/" name "-"
3214 version ".tar.xz"))
3215 (sha256
3216 (base32
3217 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
3218 (build-system meson-build-system)
3219 (arguments
3220 '(#:glib-or-gtk? #t
3221 #:phases
3222 (modify-phases %standard-phases
3223 (add-after 'unpack 'skip-gtk-update-icon-cache
3224 ;; Don't create 'icon-theme.cache'.
3225 (lambda _
3226 (substitute* "build-aux/meson_post_install.py"
3227 (("gtk-update-icon-cache") "true"))
3228 #t)))))
3229 (inputs
3230 `(("gtk+" ,gtk+)
3231 ("gcr" ,gcr)
3232 ("gnupg" ,gnupg)
3233 ("gpgme" ,gpgme)
3234 ("openldap" ,openldap)
3235 ("openssh" ,openssh)
3236 ("avahi" ,avahi)
3237 ("libpwquality" ,libpwquality)
3238 ("libsecret" ,libsecret)
3239 ("libsoup" ,libsoup)))
3240 (native-inputs
3241 `(("gettext" ,gettext-minimal)
3242 ("glib:bin" ,glib "bin")
3243 ("itstool" ,itstool)
3244 ("pkg-config" ,pkg-config)
3245 ("vala" ,vala)
3246 ("xmllint" ,libxml2)))
3247 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3248 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3249 (description
3250 "Seahorse is a GNOME application for managing encryption keys and
3251 passwords in the GNOME keyring.")
3252 (license license:gpl2+)))
3253
3254 (define-public vala
3255 (package
3256 (name "vala")
3257 (version "0.46.5")
3258 (source (origin
3259 (method url-fetch)
3260 (uri (string-append "mirror://gnome/sources/" name "/"
3261 (version-major+minor version) "/"
3262 name "-" version ".tar.xz"))
3263 (sha256
3264 (base32
3265 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
3266 (build-system gnu-build-system)
3267 (arguments
3268 '(#:phases
3269 (modify-phases %standard-phases
3270 (add-before 'check 'pre-check
3271 (lambda _
3272 (setenv "CC" "gcc")
3273 (substitute* "valadoc/tests/testrunner.sh"
3274 (("export PKG_CONFIG_PATH=" m)
3275 (string-append m "$PKG_CONFIG_PATH:")))
3276 ;; For missing '/etc/machine-id'.
3277 (setenv "DBUS_FATAL_WARNINGS" "0")
3278 #t)))))
3279 (native-inputs
3280 `(("pkg-config" ,pkg-config)
3281 ("flex" ,flex)
3282 ("bison" ,bison)
3283 ("xsltproc" ,libxslt)
3284 ("dbus" ,dbus) ; for dbus tests
3285 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3286 (inputs
3287 `(("graphviz" ,graphviz)))
3288 (propagated-inputs
3289 `(("glib" ,glib))) ; required by libvala-0.40.pc
3290 (home-page "https://live.gnome.org/Vala/")
3291 (synopsis "Compiler for the GObject type system")
3292 (description
3293 "Vala is a programming language that aims to bring modern programming
3294 language features to GNOME developers without imposing any additional runtime
3295 requirements and without using a different ABI compared to applications and
3296 libraries written in C.")
3297 (license license:lgpl2.1+)))
3298
3299 (define-public vte
3300 (package
3301 (name "vte")
3302 (version "0.60.2")
3303 (source (origin
3304 (method url-fetch)
3305 (uri (string-append "mirror://gnome/sources/vte/"
3306 (version-major+minor version) "/"
3307 "vte-" version ".tar.xz"))
3308 (sha256
3309 (base32
3310 "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
3311 (build-system meson-build-system)
3312 (arguments
3313 `(#:configure-flags
3314 '("-Dvapi=true"
3315 "-D_systemd=false")))
3316 (native-inputs
3317 `(("pkg-config" ,pkg-config)
3318 ("gettext" ,gettext-minimal)
3319 ("vala" ,vala)
3320 ("gobject-introspection" ,gobject-introspection)
3321 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3322 ("gperf" ,gperf)
3323 ("xmllint" ,libxml2)))
3324 (propagated-inputs
3325 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3326 ("gnutls" ,gnutls) ; ditto
3327 ("pcre2" ,pcre2))) ; ditto
3328 (home-page "https://www.gnome.org/")
3329 (synopsis "Virtual Terminal Emulator")
3330 (description
3331 "VTE is a library (libvte) implementing a terminal emulator widget for
3332 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3333 gnome-terminal, but can also be used to embed a console/terminal in games,
3334 editors, IDEs, etc.")
3335 (license license:lgpl2.1+)))
3336
3337 (define-public vte-ng
3338 (package
3339 (inherit vte)
3340 (name "vte-ng")
3341 (version "0.58.2.a")
3342 (home-page "https://github.com/thestinger/vte-ng")
3343 (source (origin
3344 (method git-fetch)
3345 (uri (git-reference (url home-page) (commit version)))
3346 (file-name (git-file-name name version))
3347 (sha256
3348 (base32
3349 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3350 (build-system meson-build-system)
3351 (native-inputs
3352 `(("gtk-doc" ,gtk-doc)
3353 ,@(package-native-inputs vte)))
3354 (arguments
3355 `(#:configure-flags '("-Ddocs=true")))
3356 (synopsis "Enhanced VTE terminal widget")
3357 (description
3358 "VTE is a library (libvte) implementing a terminal emulator widget for
3359 GTK+, this fork provides additional functions exposed for keyboard text
3360 selection and URL hints.")))
3361
3362 ;; provides vte 2.90, required for some terminal emulators
3363 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3364 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3365 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3366 ;; pantheon-terminal, roxterm are not currently packaged
3367 (define-public vte-0.36
3368 (package (inherit vte)
3369 (name "vte")
3370 (version "0.36.5")
3371 (source (origin
3372 (method url-fetch)
3373 (uri (string-append "mirror://gnome/sources/" name "/"
3374 (version-major+minor version) "/"
3375 name "-" version ".tar.xz"))
3376 (sha256
3377 (base32
3378 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3379 (propagated-inputs
3380 `(("gtk" ,gtk+)
3381 ("ncurses" ,ncurses)))))
3382
3383 ;; stable version for gtk2, required by xfce4-terminal.
3384 (define-public vte/gtk+-2
3385 (package (inherit vte)
3386 (name "vte")
3387 (version "0.28.2")
3388 (source (origin
3389 (method url-fetch)
3390 (uri (string-append "mirror://gnome/sources/" name "/"
3391 (version-major+minor version) "/"
3392 name "-" version ".tar.xz"))
3393 (sha256
3394 (base32
3395 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3396 (patches (search-patches
3397 "vte-CVE-2012-2738-pt1.patch"
3398 "vte-CVE-2012-2738-pt2.patch"))))
3399 (build-system gnu-build-system)
3400 (arguments
3401 '(#:configure-flags '("--disable-python")))
3402 (native-inputs
3403 `(("pkg-config" ,pkg-config)
3404 ("intltool" ,intltool)
3405 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3406 (propagated-inputs
3407 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3408 ("ncurses" ,ncurses))))) ; required by libvte.la
3409
3410 (define-public vinagre
3411 (package
3412 (name "vinagre")
3413 (version "3.22.0")
3414 (source (origin
3415 (method url-fetch)
3416 (uri (string-append "mirror://gnome/sources/" name "/"
3417 (version-major+minor version) "/"
3418 name "-" version ".tar.xz"))
3419 (patches (search-patches "vinagre-newer-freerdp.patch"
3420 "vinagre-newer-rdp-parameters.patch"))
3421 (sha256
3422 (base32
3423 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3424 (build-system glib-or-gtk-build-system)
3425 (arguments
3426 ;; Disable -Werror and such, to avoid build failures on compilation
3427 ;; warnings.
3428 '(#:configure-flags '("--enable-compile-warnings=minimum")
3429 #:phases
3430 (modify-phases %standard-phases
3431 (add-before 'install 'skip-gtk-update-icon-cache
3432 (lambda _
3433 ;; Don't create 'icon-theme.cache'
3434 (substitute* (find-files "." "^Makefile$")
3435 (("gtk-update-icon-cache") (which "true")))
3436 #t))
3437 (add-after 'unpack 'patch-configure
3438 (lambda _
3439 (substitute* "configure"
3440 (("freerdp") "freerdp2"))
3441 #t)))))
3442 (native-inputs
3443 `(("pkg-config" ,pkg-config)
3444 ("intltool" ,intltool)
3445 ("itstool" ,itstool)
3446 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3447 (inputs
3448 `(("libxml2" ,libxml2)
3449 ("gtk-vnc" ,gtk-vnc)
3450 ("gnome-keyring" ,gnome-keyring)
3451 ("libsecret" ,libsecret)
3452 ("freerdp" ,freerdp)
3453 ("spice" ,spice)
3454 ("spice-gtk" ,spice-gtk)
3455 ("telepathy-glib" ,telepathy-glib)
3456 ("vte" ,vte)))
3457 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3458 (synopsis "Remote desktop viewer for GNOME")
3459 (description "Vinagre is a remote display client supporting the VNC, SPICE
3460 and RDP protocols.")
3461 (license license:gpl3+)))
3462
3463 (define-public dconf
3464 (package
3465 (name "dconf")
3466 (version "0.34.0")
3467 (source (origin
3468 (method url-fetch)
3469 (uri (string-append
3470 "mirror://gnome/sources/" name "/"
3471 (version-major+minor version) "/"
3472 name "-" version ".tar.xz"))
3473 (patches (search-patches "dconf-meson-0.52.patch"))
3474 (sha256
3475 (base32
3476 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
3477 (build-system meson-build-system)
3478 (propagated-inputs
3479 ;; In Requires of dconf.pc.
3480 `(("glib" ,glib)))
3481 (inputs
3482 `(("gtk+" ,gtk+)
3483 ("dbus" ,dbus)))
3484 (native-inputs
3485 `(("bash-completion" ,bash-completion)
3486 ("libxslt" ,libxslt) ;for xsltproc
3487 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3488 ("docbook-xml" ,docbook-xml-4.2)
3489 ("docbook-xsl" ,docbook-xsl)
3490 ("glib:bin" ,glib "bin")
3491 ("gtk-doc" ,gtk-doc)
3492 ("pkg-config" ,pkg-config)
3493 ("vala" ,vala)))
3494 (arguments
3495 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3496 ; or /etc/machine-id.
3497 #:glib-or-gtk? #t
3498 #:configure-flags '("-Denable-gtk-doc=true")))
3499 (home-page "https://developer.gnome.org/dconf/")
3500 (synopsis "Low-level GNOME configuration system")
3501 (description "Dconf is a low-level configuration system. Its main purpose
3502 is to provide a backend to GSettings on platforms that don't already have
3503 configuration storage systems.")
3504 (license license:lgpl2.1+)))
3505
3506 (define-public json-glib
3507 (package
3508 (name "json-glib")
3509 (version "1.4.4")
3510 (source (origin
3511 (method url-fetch)
3512 (uri (string-append "mirror://gnome/sources/" name "/"
3513 (version-major+minor version) "/"
3514 name "-" version ".tar.xz"))
3515 (sha256
3516 (base32
3517 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3518 (build-system meson-build-system)
3519 (native-inputs
3520 `(("gettext" ,gettext-minimal)
3521 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3522 ("gobject-introspection" ,gobject-introspection)
3523 ("pkg-config" ,pkg-config)))
3524 (propagated-inputs
3525 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3526 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3527 (synopsis "Compiler for the GObject type system")
3528 (description
3529 "JSON-GLib is a C library based on GLib providing serialization and
3530 deserialization support for the JavaScript Object Notation (JSON) format
3531 described by RFC 4627. It provides parser and generator GObject classes and
3532 various wrappers for the complex data types employed by JSON, such as arrays
3533 and objects.")
3534 (license license:lgpl2.1+)))
3535
3536 (define-public libxklavier
3537 (package
3538 (name "libxklavier")
3539 (version "5.4")
3540 (source (origin
3541 ;; Note: There's no tarball at ftp.gnome.org for this version.
3542 (method git-fetch)
3543 (uri (git-reference
3544 (url "https://anongit.freedesktop.org/git/libxklavier")
3545 (commit (string-append "libxklavier-" version))))
3546 (sha256
3547 (base32
3548 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3549 (file-name (git-file-name name version))))
3550 (build-system gnu-build-system)
3551 (arguments
3552 '(#:configure-flags
3553 (list (string-append "--with-xkb-base="
3554 (assoc-ref %build-inputs "xkeyboard-config")
3555 "/share/X11/xkb")
3556 "--disable-xmodmap-support")))
3557 (native-inputs
3558 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3559 ("gobject-introspection" ,gobject-introspection)
3560 ("pkg-config" ,pkg-config)
3561 ("gtk-doc" ,gtk-doc)
3562 ("intltool" ,intltool)
3563 ("which" ,which)
3564 ("autoconf" ,autoconf)
3565 ("automake" ,automake)
3566 ("libtool" ,libtool)))
3567 (propagated-inputs
3568 ;; Required by libxklavier.pc.
3569 `(("glib" ,glib)
3570 ("libxml2" ,libxml2)))
3571 (inputs
3572 `(("iso-codes" ,iso-codes)
3573 ("libxi" ,libxi)
3574 ("libxkbfile" ,libxkbfile)
3575 ("xkbcomp" ,xkbcomp)
3576 ("xkeyboard-config" ,xkeyboard-config)))
3577 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3578 (synopsis "High-level API for X Keyboard Extension")
3579 (description
3580 "LibXklavier is a library providing high-level API for X Keyboard
3581 Extension known as XKB. This library is intended to support XFree86 and other
3582 commercial X servers. It is useful for creating XKB-related software (layout
3583 indicators etc).")
3584 (license license:lgpl2.0+)))
3585
3586 (define-public python2-rsvg
3587 ;; XXX: This is actually a subset of gnome-python-desktop.
3588 (package
3589 (name "python2-rsvg")
3590 (version "2.32.0")
3591 (source
3592 (origin
3593 (method url-fetch)
3594 (uri (string-append
3595 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3596 version ".tar.bz2"))
3597 (sha256
3598 (base32
3599 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3600 (build-system gnu-build-system)
3601 (native-inputs
3602 `(("pkg-config" ,pkg-config)))
3603 (inputs
3604 `(("python" ,python-2)
3605 ("python2-pygtk" ,python2-pygtk)
3606 ("librsvg" ,librsvg)))
3607 (home-page "https://www.gnome.org")
3608 (synopsis "Python bindings to librsvg")
3609 (description
3610 "This package provides Python bindings to librsvg, the SVG rendering
3611 library.")
3612
3613 ;; This is the license of the rsvg bindings. The license of each module
3614 ;; of gnome-python-desktop is given in 'COPYING'.
3615 (license license:lgpl2.1+)))
3616
3617 (define-public glib-networking
3618 (package
3619 (name "glib-networking")
3620 (version "2.62.2")
3621 (source (origin
3622 (method url-fetch)
3623 (uri (string-append "mirror://gnome/sources/glib-networking/"
3624 (version-major+minor version) "/"
3625 "glib-networking-" version ".tar.xz"))
3626 (sha256
3627 (base32
3628 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
3629 (build-system meson-build-system)
3630 (arguments
3631 `(#:configure-flags '("-Dlibproxy_support=false")))
3632 (native-inputs
3633 `(("pkg-config" ,pkg-config)
3634 ("intltool" ,intltool)))
3635 (inputs
3636 `(("glib" ,glib)
3637 ("gnutls" ,gnutls)
3638 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3639 (home-page "https://www.gnome.org")
3640 (synopsis "Network-related GIO modules")
3641 (description
3642 "This package contains various network related extensions for the GIO
3643 library.")
3644 (license license:lgpl2.0+)))
3645
3646 (define-public rest
3647 (package
3648 (name "rest")
3649 (version "0.8.1")
3650 (source (origin
3651 (method url-fetch)
3652 (uri (string-append "mirror://gnome/sources/rest/"
3653 (version-major+minor version) "/"
3654 name "-" version ".tar.xz"))
3655 (sha256
3656 (base32
3657 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3658 (build-system gnu-build-system)
3659 (arguments
3660 '(#:tests? #f ; tests require internet connection
3661 #:configure-flags
3662 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3663 (native-inputs
3664 `(("glib-mkenums" ,glib "bin")
3665 ("gobject-introspection" ,gobject-introspection)
3666 ("pkg-config" ,pkg-config)))
3667 (propagated-inputs
3668 ;; rest-0.7.pc refers to all these.
3669 `(("glib" ,glib)
3670 ("libsoup" ,libsoup)
3671 ("libxml2" ,libxml2)))
3672 (home-page "https://www.gtk.org/")
3673 (synopsis "RESTful web api query library")
3674 (description
3675 "This library was designed to make it easier to access web services that
3676 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3677 libxml to ease remote use of the RESTful API.")
3678 (license license:lgpl2.1+)))
3679
3680 (define-public libsoup
3681 (package
3682 (name "libsoup")
3683 (version "2.70.0")
3684 (source (origin
3685 (method url-fetch)
3686 (uri (string-append "mirror://gnome/sources/libsoup/"
3687 (version-major+minor version) "/"
3688 "libsoup-" version ".tar.xz"))
3689 (sha256
3690 (base32
3691 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
3692 (build-system meson-build-system)
3693 (outputs '("out" "doc"))
3694 (arguments
3695 `(#:modules ((guix build utils)
3696 (guix build meson-build-system)
3697 (ice-9 popen))
3698
3699 #:configure-flags '("-Dgtk_doc=true")
3700 #:phases
3701 (modify-phases %standard-phases
3702 (add-after 'unpack 'adjust-tests
3703 (lambda _
3704 ;; This test fails due to missing /etc/nsswitch.conf
3705 ;; in the build environment.
3706 (substitute* "tests/socket-test.c"
3707 ((".*/sockets/unconnected.*") ""))
3708
3709 ;; These fail because "subdomain.localhost" does not resolve in
3710 ;; the build environment.
3711 (substitute* "tests/hsts-test.c"
3712 ((".*/hsts/basic.*") "")
3713 ((".*/hsts/subdomains.*") "")
3714 ((".*/hsts/superdomain.*") "")
3715 ((".*/hsts/utf8-address.*") ""))
3716 (substitute* "tests/hsts-db-test.c"
3717 ((".*/hsts-db/subdomains.*") ""))
3718
3719 ;; Generate a self-signed certificate that has "localhost" as its
3720 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3721 ;; 3.5.12, tests such as "ssl-tests" fail:
3722 ;;
3723 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3724 ;;
3725 ;; 'certtool' is interactive so we have to pipe it the answers.
3726 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3727 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3728 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3729 (for-each (lambda (line)
3730 (display line pipe)
3731 (newline pipe))
3732 '("" ;Common name
3733 "" ;UID
3734 "Guix" ;Organizational unit name
3735 "GNU" ;Organization name
3736 "" ;Locality name
3737 "" ;State or province
3738 "" ;Country
3739 "" ;subject's domain component (DC)
3740 "" ;E-mail
3741 "" ;serial number
3742 "-1" ;expiration time
3743 "N" ;belong to authority?
3744 "N" ;web client certificate?
3745 "N" ;IPsec IKE?
3746 "Y" ;web server certificate?
3747 "localhost" ;dnsName of subject
3748 "" ;dnsName of subject (end)
3749 "" ;URI of subject
3750 "127.0.0.1" ;IP address of subject
3751 "" ;signing?
3752 "" ;encryption (RSA)?
3753 "" ;data encryption?
3754 "" ;sign OCSP requests?
3755 "" ;sign code?
3756 "" ;time stamping?
3757 "" ;email protection?
3758 "" ;URI of the CRL distribution point
3759 "y" ;above info OK?
3760 ))
3761 (close-pipe pipe))
3762 #t))
3763 (add-after 'install 'move-doc
3764 (lambda* (#:key outputs #:allow-other-keys)
3765 (let ((out (assoc-ref outputs "out"))
3766 (doc (assoc-ref outputs "doc")))
3767 (mkdir-p (string-append doc "/share"))
3768 (copy-recursively (string-append out "/share/gtk-doc")
3769 (string-append doc "/share/gtk-doc"))
3770 (delete-file-recursively (string-append out "/share/gtk-doc"))
3771 #t))))))
3772 (native-inputs
3773 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3774 ("gobject-introspection" ,gobject-introspection)
3775 ("gtk-doc" ,gtk-doc)
3776 ("intltool" ,intltool)
3777 ("pkg-config" ,pkg-config)
3778 ("python" ,python-wrapper)
3779 ("vala" ,vala)
3780 ("php" ,php)
3781 ("curl" ,curl)
3782 ("gnutls" ,gnutls) ;for 'certtool'
3783 ("httpd" ,httpd)))
3784 (propagated-inputs
3785 ;; libsoup-2.4.pc refers to all these.
3786 `(("brotli" ,google-brotli)
3787 ("glib" ,glib)
3788 ("libpsl" ,libpsl)
3789 ("libxml2" ,libxml2)
3790 ("sqlite" ,sqlite)
3791 ("zlib" ,zlib)))
3792 (inputs
3793 `(("glib-networking" ,glib-networking)
3794 ("mit-krb5" ,mit-krb5)))
3795 (home-page "https://live.gnome.org/LibSoup/")
3796 (synopsis "GLib-based HTTP Library")
3797 (description
3798 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3799 and the GLib main loop, to integrate well with GNOME applications.")
3800 (license license:lgpl2.0+)))
3801
3802
3803 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
3804 (define-public libsoup-minimal
3805 (package
3806 (inherit libsoup)
3807 (name "libsoup-minimal")
3808 (outputs (delete "doc" (package-outputs libsoup)))
3809 (arguments
3810 (substitute-keyword-arguments (package-arguments libsoup)
3811 ((#:configure-flags configure-flags)
3812 `(delete "-Dgtk_doc=true" ,configure-flags))
3813 ((#:phases phases)
3814 `(modify-phases ,phases
3815 (delete 'move-doc)))))
3816 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
3817
3818 (define-public libsecret
3819 (package
3820 (name "libsecret")
3821 (version "0.20.3")
3822 (source (origin
3823 (method url-fetch)
3824 (uri (string-append
3825 "mirror://gnome/sources/libsecret/"
3826 (version-major+minor version) "/"
3827 "libsecret-" version ".tar.xz"))
3828 (sha256
3829 (base32
3830 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
3831 (build-system gnu-build-system)
3832 (outputs '("out" "doc"))
3833 (arguments
3834 `(#:tests? #f ; FIXME: Testing hangs.
3835 #:configure-flags
3836 (list (string-append "--with-html-dir="
3837 (assoc-ref %outputs "doc")
3838 "/share/gtk-doc/html"))))
3839 (native-inputs
3840 `(("gettext" ,gettext-minimal)
3841 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3842 ("gobject-introspection" ,gobject-introspection)
3843 ("pkg-config" ,pkg-config)
3844 ("vala" ,vala)
3845 ("xsltproc" ,libxslt)))
3846 ;; These are needed for the tests.
3847 ;; FIXME: Add gjs once available.
3848 ;("dbus" ,dbus)
3849 ;("python2" ,python-2)
3850 ;("python2-dbus" ,python2-dbus)
3851 ;("python2-pygobject" ,python2-pygobject)
3852 ;("python2-pygobject-2" ,python2-pygobject-2)))
3853 (propagated-inputs
3854 `(("glib" ,glib))) ; required by libsecret-1.pc
3855 (inputs
3856 `(("docbook-xsl" ,docbook-xsl)
3857 ("libgcrypt" ,libgcrypt)
3858 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3859 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3860 (synopsis "GObject bindings for \"Secret Service\" API")
3861 (description
3862 "Libsecret is a GObject based library for storing and retrieving passwords
3863 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3864 (license license:lgpl2.1+)))
3865
3866 (define-public five-or-more
3867 (package
3868 (name "five-or-more")
3869 (version "3.32.2")
3870 (source
3871 (origin
3872 (method url-fetch)
3873 (uri (string-append "mirror://gnome/sources/five-or-more/"
3874 (version-major+minor version) "/"
3875 "five-or-more-" version ".tar.xz"))
3876 (sha256
3877 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
3878 (build-system meson-build-system)
3879 (arguments
3880 '(#:glib-or-gtk? #t
3881 #:phases
3882 (modify-phases %standard-phases
3883 (add-after 'unpack 'skip-gtk-update-icon-cache
3884 (lambda _
3885 (substitute* "meson_post_install.py"
3886 (("gtk-update-icon-cache") (which "true")))
3887 #t)))))
3888 (native-inputs
3889 `(("pkg-config" ,pkg-config)
3890 ("appstream-glib" ,appstream-glib)
3891 ("desktop-file-utils" ,desktop-file-utils)
3892 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3893 ("intltool" ,intltool)
3894 ("itstool" ,itstool)
3895 ("vala" ,vala)
3896 ("xmllint" ,libxml2)))
3897 (inputs
3898 `(("gtk+" ,gtk+)
3899 ("libgnome-games-support" ,libgnome-games-support)
3900 ("librsvg" ,librsvg)))
3901 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3902 (synopsis "Logic puzzle game")
3903 (description "Five or More is a game where you try to align
3904 five or more objects of the same color and shape causing them to disappear.
3905 On every turn more objects will appear, until the board is full.
3906 Try to last as long as possible.")
3907 (license license:gpl2+)))
3908
3909 (define-public gnome-mines
3910 (package
3911 (name "gnome-mines")
3912 (version "3.34.0")
3913 (source
3914 (origin
3915 (method url-fetch)
3916 (uri (string-append "mirror://gnome/sources/" name "/"
3917 (version-major+minor version) "/"
3918 name "-" version ".tar.xz"))
3919 (sha256
3920 (base32
3921 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
3922 (build-system meson-build-system)
3923 (arguments
3924 '(#:glib-or-gtk? #t
3925 #:phases
3926 (modify-phases %standard-phases
3927 (add-after 'unpack 'skip-gtk-update-icon-cache
3928 (lambda _
3929 (substitute* "build-aux/meson_post_install.py"
3930 (("gtk-update-icon-cache") (which "true")))
3931 #t)))))
3932 (native-inputs
3933 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3934 ("pkg-config" ,pkg-config)
3935 ("desktop-file-utils" ,desktop-file-utils)
3936 ("intltool" ,intltool)
3937 ("itstool" ,itstool)
3938 ("vala" ,vala)
3939 ("yelp" ,yelp)
3940 ("appstream-glib" ,appstream-glib)))
3941 (inputs
3942 `(("gtk+" ,gtk+)
3943 ("libgnome-games-support" ,libgnome-games-support)
3944 ("librsvg" ,librsvg)))
3945 (home-page "https://wiki.gnome.org/Apps/Mines")
3946 (synopsis "Minesweeper game")
3947 (description
3948 "Mines (previously gnomine) is a puzzle game where you locate mines
3949 floating in an ocean using only your brain and a little bit of luck.")
3950 (license license:gpl2+)))
3951
3952 (define-public gnome-sudoku
3953 (package
3954 (name "gnome-sudoku")
3955 (version "3.34.1")
3956 (source
3957 (origin
3958 (method url-fetch)
3959 (uri (string-append "mirror://gnome/sources/" name "/"
3960 (version-major+minor version) "/"
3961 name "-" version ".tar.xz"))
3962 (sha256
3963 (base32
3964 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
3965 (build-system meson-build-system)
3966 (arguments
3967 '(#:glib-or-gtk? #t
3968 #:phases
3969 (modify-phases %standard-phases
3970 (add-after 'unpack 'skip-gtk-update-icon-cache
3971 (lambda _
3972 (substitute* "build-aux/post_install.py"
3973 (("gtk-update-icon-cache") (which "true")))
3974 #t)))))
3975 (native-inputs
3976 `(("pkg-config" ,pkg-config)
3977 ("desktop-file-utils" ,desktop-file-utils)
3978 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3979 ("intltool" ,intltool)
3980 ("itstool" ,itstool)
3981 ("vala" ,vala)
3982 ("xmllint" ,libxml2)))
3983 (inputs
3984 `(("gtk+" ,gtk+)
3985 ("json-glib" ,json-glib)
3986 ("libgee" ,libgee)
3987 ("librsvg" ,librsvg)
3988 ("qqwing" ,qqwing)))
3989 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3990 (synopsis "Japanese logic game")
3991 (description
3992 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3993 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3994 possible while still providing features that make playing difficult Sudoku
3995 more fun.")
3996 (license license:gpl2+)))
3997
3998 (define-public gnome-terminal
3999 (package
4000 (name "gnome-terminal")
4001 (version "3.34.2")
4002 (source
4003 (origin
4004 (method url-fetch)
4005 (uri (string-append "mirror://gnome/sources/" name "/"
4006 (version-major+minor version) "/"
4007 name "-" version ".tar.xz"))
4008 (sha256
4009 (base32
4010 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
4011 (build-system glib-or-gtk-build-system)
4012 (arguments
4013 '(#:configure-flags
4014 (list "--disable-migration" "--disable-search-provider"
4015 "--without-nautilus-extension")
4016 #:phases
4017 (modify-phases %standard-phases
4018 (add-before 'configure 'patch-/bin/true
4019 (lambda _
4020 (substitute* "configure"
4021 (("/bin/true") (which "true"))))))))
4022 (native-inputs
4023 `(("pkg-config" ,pkg-config)
4024 ("desktop-file-utils" ,desktop-file-utils)
4025 ("intltool" ,intltool)
4026 ("itstool" ,itstool)
4027 ("xmllint" ,libxml2)))
4028 (propagated-inputs
4029 `(("dconf" ,dconf)))
4030 (inputs
4031 `(("gtk+" ,gtk+)
4032 ("vte" ,vte)
4033 ("gnutls" ,gnutls)
4034 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4035 ("util-linux" ,util-linux "lib")
4036 ("vala" ,vala)))
4037 (home-page "https://wiki.gnome.org/Apps/Terminal")
4038 (synopsis "Terminal emulator")
4039 (description
4040 "GNOME Terminal is a terminal emulator application for accessing a
4041 UNIX shell environment which can be used to run programs available on
4042 your system.
4043
4044 It supports several profiles, multiple tabs and implements several
4045 keyboard shortcuts.")
4046 (license license:gpl3+)))
4047
4048 (define-public colord
4049 (package
4050 (name "colord")
4051 (version "1.4.4")
4052 (source
4053 (origin
4054 (method url-fetch)
4055 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
4056 "colord-" version ".tar.xz"))
4057 (sha256
4058 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
4059 (build-system meson-build-system)
4060 (arguments
4061 '(;; FIXME: One test fails:
4062 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4063 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4064 ;; application/x-zerosize
4065 #:tests? #f
4066 #:glib-or-gtk? #t
4067 #:configure-flags (list "-Dlocalstatedir=/var"
4068 ;; No dep on systemd.
4069 "-Dsystemd=false"
4070 ;; Wants to install to global completion dir;
4071 ;; punt.
4072 "-Dbash_completion=false"
4073 "-Ddaemon_user=colord"
4074 "-Dsane=true"
4075 "-Dvapi=true"
4076 ;; Requires spotread.
4077 "-Dargyllcms_sensor=false"
4078 ;; TODO: Requires docbook2x.
4079 "-Dman=false")
4080 #:phases
4081 (modify-phases %standard-phases
4082 (add-before 'configure 'patch-build-system
4083 (lambda* (#:key outputs #:allow-other-keys)
4084 (substitute* "rules/meson.build"
4085 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4086 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4087 #t))
4088 (add-before 'configure 'set-sqlite3-file-name
4089 (lambda* (#:key inputs #:allow-other-keys)
4090 ;; "colormgr dump" works by invoking the "sqlite3" command.
4091 ;; Record its absolute file name.
4092 (let ((sqlite (assoc-ref inputs "sqlite")))
4093 (substitute* "client/cd-util.c"
4094 (("\"sqlite3\"")
4095 (string-append "\"" sqlite "/bin/sqlite3\"")))
4096 #t))))))
4097 (native-inputs
4098 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4099 ("gettext" ,gettext-minimal)
4100 ("gobject-introspection" ,gobject-introspection)
4101 ("gtk-doc" ,gtk-doc)
4102 ("pkg-config" ,pkg-config)
4103 ("vala" ,vala)))
4104 (propagated-inputs
4105 ;; colord.pc refers to all these.
4106 `(("glib" ,glib)
4107 ("lcms" ,lcms)
4108 ("udev" ,eudev)))
4109 (inputs
4110 `(("dbus-glib" ,dbus-glib)
4111 ("gusb" ,gusb)
4112 ("libgudev" ,libgudev)
4113 ("libusb" ,libusb)
4114 ("polkit" ,polkit)
4115 ("python" ,python-wrapper)
4116 ("sqlite" ,sqlite)
4117 ("sane-backends" ,sane-backends)))
4118 (home-page "https://www.freedesktop.org/software/colord/")
4119 (synopsis "Color management service")
4120 (description "Colord is a system service that makes it easy to manage,
4121 install and generate color profiles to accurately color manage input and
4122 output devices.")
4123 (license license:gpl2+)))
4124
4125 (define-public geoclue
4126 (package
4127 (name "geoclue")
4128 (version "2.5.5")
4129 (source
4130 (origin
4131 (method url-fetch)
4132 (uri
4133 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4134 version "/geoclue-" version ".tar.bz2"))
4135 (sha256
4136 (base32
4137 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
4138 (patches (search-patches "geoclue-config.patch"))))
4139 (build-system meson-build-system)
4140 (arguments
4141 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4142 (native-inputs
4143 `(("pkg-config" ,pkg-config)
4144 ("gobject-introspection" ,gobject-introspection)
4145 ("modem-manager" ,modem-manager)
4146 ("libnotify" ,libnotify)
4147 ("gtk-doc", gtk-doc)
4148 ("intltool" ,intltool)))
4149 (inputs
4150 `(("avahi" ,avahi)
4151 ("glib:bin" ,glib "bin")
4152 ("glib-networking" ,glib-networking)
4153 ("json-glib" ,json-glib)
4154 ("libsoup" ,libsoup)))
4155 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4156 (synopsis "Geolocation service")
4157 (description "Geoclue is a D-Bus service that provides location
4158 information. The primary goal of the Geoclue project is to make creating
4159 location-aware applications as simple as possible, while the secondary goal is
4160 to ensure that no application can access location information without explicit
4161 permission from user.")
4162 (license license:gpl2+)))
4163
4164 (define-public geocode-glib
4165 (package
4166 (name "geocode-glib")
4167 (version "3.26.1")
4168 (source (origin
4169 (method url-fetch)
4170 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4171 (version-major+minor version) "/"
4172 "geocode-glib-" version ".tar.xz"))
4173 (sha256
4174 (base32
4175 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4176 (build-system meson-build-system)
4177 (arguments
4178 `(#:phases
4179 (modify-phases %standard-phases
4180 ;; The tests require a bunch of locales.
4181 (add-before 'check 'set-locales
4182 (lambda* (#:key inputs #:allow-other-keys)
4183 (setenv "GUIX_LOCPATH"
4184 (string-append (assoc-ref inputs "glibc-locales")
4185 "/lib/locale"))
4186 #t)))))
4187 (native-inputs
4188 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4189 ("glibc-locales" ,glibc-locales) ; for tests
4190 ("gettext" ,gettext-minimal)
4191 ("gobject-introspection" ,gobject-introspection)
4192 ("gtk-doc" ,gtk-doc)
4193 ("pkg-config" ,pkg-config)
4194 ("json-glib" ,json-glib)))
4195 (propagated-inputs
4196 ;; geocode-glib-1.0.pc refers to GIO.
4197 `(("glib" ,glib)))
4198 (inputs
4199 `(("libsoup" ,libsoup)))
4200 (home-page "https://github.com/GNOME/geocode-glib/")
4201 (synopsis "Geocoding and reverse-geocoding library")
4202 (description
4203 "geocode-glib is a convenience library for geocoding (finding longitude,
4204 and latitude from an address) and reverse geocoding (finding an address from
4205 coordinates) using the Nominatim service. geocode-glib caches requests for
4206 faster results and to avoid unnecessary server load.")
4207 (license license:lgpl2.0+)))
4208
4209 (define-public upower
4210 (package
4211 (name "upower")
4212 (version "0.99.11")
4213 (source (origin
4214 (method url-fetch)
4215 (uri (string-append "https://upower.freedesktop.org/releases/"
4216 "upower-" version ".tar.xz"))
4217 (sha256
4218 (base32
4219 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4220 (patches (search-patches "upower-builddir.patch"))
4221 (modules '((guix build utils)))
4222 (snippet
4223 '(begin
4224 ;; Upstream commit
4225 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4226 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4227 ;; 'dbus-configuration-directory' in (gnu services dbus)
4228 ;; expects it in etc/. Thus, move it back to its previous
4229 ;; location.
4230 (substitute* "src/Makefile.in"
4231 (("^dbusconfdir =.*$")
4232 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4233 #t))))
4234 (build-system glib-or-gtk-build-system)
4235 (arguments
4236 '(#:phases
4237 (modify-phases %standard-phases
4238 (add-before 'check 'pre-check
4239 (lambda* (#:key inputs #:allow-other-keys)
4240 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4241 "/lib")))
4242 (setenv "LD_LIBRARY_PATH" umockdev))
4243 #t)))
4244 #:configure-flags (list "--localstatedir=/var"
4245 (string-append "--with-udevrulesdir="
4246 (assoc-ref %outputs "out")
4247 "/lib/udev/rules.d"))))
4248 (native-inputs
4249 `(("gobject-introspection" ,gobject-introspection)
4250 ("pkg-config" ,pkg-config)
4251 ("intltool" ,intltool)
4252 ("python" ,python)
4253
4254 ;; For tests.
4255 ("python-dbus" ,python-dbus)
4256 ("python-dbusmock" ,python-dbusmock)
4257 ("python-pygobject" ,python-pygobject)
4258 ("umockdev" ,umockdev)
4259
4260 ;; For man pages.
4261 ("libxslt" ,libxslt) ;for 'xsltproc'
4262 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4263 ("docbook-xsl" ,docbook-xsl)))
4264 (inputs
4265 `(("dbus-glib" ,dbus-glib)
4266 ("libgudev" ,libgudev)
4267 ("libusb" ,libusb)))
4268 (propagated-inputs
4269 ;; In Requires of upower-glib.pc.
4270 `(("glib" ,glib)))
4271 (home-page "https://upower.freedesktop.org/")
4272 (synopsis "System daemon for managing power devices")
4273 (description
4274 "UPower is an abstraction for enumerating power devices,
4275 listening to device events and querying history and statistics. Any
4276 application or service on the system can access the org.freedesktop.UPower
4277 service via the system message bus.")
4278 (license license:gpl2+)))
4279
4280 (define-public libgweather
4281 (package
4282 (name "libgweather")
4283 (version "3.34.0")
4284 (source (origin
4285 (method url-fetch)
4286 (uri (string-append "mirror://gnome/sources/" name "/"
4287 (version-major+minor version) "/"
4288 name "-" version ".tar.xz"))
4289 (sha256
4290 (base32
4291 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
4292 (build-system meson-build-system)
4293 (arguments
4294 `(#:tests? #f ; one of two tests requires network access
4295 #:configure-flags
4296 `(,(string-append "-Dzoneinfo_dir="
4297 (assoc-ref %build-inputs "tzdata")
4298 "/share/zoneinfo"))))
4299 (native-inputs
4300 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4301 ("gobject-introspection" ,gobject-introspection)
4302 ("pkg-config" ,pkg-config)
4303 ("vala" ,vala)
4304 ("intltool" ,intltool)))
4305 (propagated-inputs
4306 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4307 ;; libsoup.
4308 `(("gtk+" ,gtk+)
4309 ("gdk-pixbuf" ,gdk-pixbuf)
4310 ("libxml2" ,libxml2)
4311 ("libsoup" ,libsoup)
4312 ("geocode-glib" ,geocode-glib)))
4313 (inputs
4314 `(("tzdata" ,tzdata)))
4315 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4316 (synopsis "Location, time zone, and weather library for GNOME")
4317 (description
4318 "libgweather is a library to access weather information from online
4319 services for numerous locations.")
4320 (license license:gpl2+)))
4321
4322 (define-public gnome-settings-daemon
4323 (package
4324 (name "gnome-settings-daemon")
4325 (version "3.34.1")
4326 (source
4327 (origin
4328 (method url-fetch)
4329 (uri (string-append "mirror://gnome/sources/" name "/"
4330 (version-major+minor version) "/"
4331 name "-" version ".tar.xz"))
4332 (sha256
4333 (base32
4334 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
4335 (build-system meson-build-system)
4336 (arguments
4337 `(#:glib-or-gtk? #t
4338 #:configure-flags
4339 (list (string-append "-Dudev_dir="
4340 (assoc-ref %outputs "out")
4341 "/lib/udev/rules.d/")
4342 "-Dsystemd=false"
4343 ;; Otherwise, the RUNPATH will lack the final path component.
4344 (string-append "-Dc_link_args=-Wl,-rpath="
4345 (assoc-ref %outputs "out")
4346 "/lib/gnome-settings-daemon-3.0"))
4347 ;; Color management test can't reach the colord system service.
4348 #:tests? #f))
4349 (native-inputs
4350 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4351 ("pkg-config" ,pkg-config)
4352 ("intltool" ,intltool)
4353 ("xsltproc" ,libxslt)
4354 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4355 ("docbook-xml" ,docbook-xml-4.2)
4356 ("docbook-xsl" ,docbook-xsl)))
4357 (inputs
4358 `(("alsa-lib" ,alsa-lib)
4359 ("colord" ,colord)
4360 ("libgudev" ,libgudev)
4361 ("upower" ,upower)
4362 ("polkit" ,polkit)
4363 ("pulseaudio" ,pulseaudio)
4364 ("libcanberra" ,libcanberra)
4365 ("libx11" ,libx11)
4366 ("libxtst" ,libxtst)
4367 ("lcms" ,lcms)
4368 ("libnotify" ,libnotify)
4369 ("geoclue" ,geoclue)
4370 ("geocode-glib" ,geocode-glib)
4371 ("libgweather" ,libgweather)
4372 ("gnome-desktop" ,gnome-desktop)
4373 ("nss" ,nss)
4374 ("cups" ,cups)
4375 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4376 ("libwacom" ,libwacom)
4377 ("librsvg" ,librsvg)
4378 ("xf86-input-wacom" ,xf86-input-wacom)
4379 ("wayland" ,wayland)
4380 ("network-manager" ,network-manager)
4381 ("gcr" ,gcr)
4382 ("modem-manager" ,modem-manager)))
4383 (home-page "https://www.gnome.org")
4384 (synopsis "GNOME settings daemon")
4385 (description
4386 "This package contains the daemon responsible for setting the various
4387 parameters of a GNOME session and the applications that run under it. It
4388 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4389 settings, themes, mouse settings, and startup of other daemons.")
4390 (license license:gpl2+)))
4391
4392 (define-public totem-pl-parser
4393 (package
4394 (name "totem-pl-parser")
4395 (version "3.26.3")
4396 (source (origin
4397 (method url-fetch)
4398 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4399 (version-major+minor version) "/"
4400 "totem-pl-parser-" version ".tar.xz"))
4401 (sha256
4402 (base32
4403 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4404 (build-system meson-build-system)
4405 (arguments
4406 ;; FIXME: Tests require gvfs.
4407 `(#:tests? #f))
4408 (native-inputs
4409 `(("intltool" ,intltool)
4410 ("glib" ,glib "bin")
4411 ("gobject-introspection" ,gobject-introspection)
4412 ("pkg-config" ,pkg-config)))
4413 (propagated-inputs
4414 `(("glib" ,glib)
4415 ("gmime" ,gmime)
4416 ("libarchive" ,libarchive)
4417 ("libgcrypt" ,libgcrypt)
4418 ("libxml2" ,libxml2)))
4419 (inputs
4420 `(("libsoup" ,libsoup)))
4421 (home-page "https://projects.gnome.org/totem")
4422 (synopsis "Library to parse and save media playlists for GNOME")
4423 (description "Totem-pl-parser is a GObjects-based library to parse and save
4424 playlists in a variety of formats.")
4425 (license license:lgpl2.0+)))
4426
4427 (define-public aisleriot
4428 (package
4429 (name "aisleriot")
4430 (version "3.22.9")
4431 (source (origin
4432 (method url-fetch)
4433 (uri (string-append "mirror://gnome/sources/aisleriot/"
4434 (version-major+minor version) "/"
4435 "aisleriot-" version ".tar.xz"))
4436 (sha256
4437 (base32
4438 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4439 (build-system glib-or-gtk-build-system)
4440 (arguments
4441 '(#:configure-flags
4442 '("--with-platform=gtk-only"
4443 "--with-card-theme-formats=svg")))
4444 (native-inputs
4445 `(("desktop-file-utils" ,desktop-file-utils)
4446 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4447 ("intltool" ,intltool)
4448 ("itstool" ,itstool)
4449 ("pkg-config" ,pkg-config)
4450 ("xmllint" ,libxml2)))
4451 (inputs
4452 `(("gtk+" ,gtk+)
4453 ("guile" ,guile-2.2)
4454 ("libcanberra" ,libcanberra)
4455 ("librsvg" ,librsvg)))
4456 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4457 (synopsis "Solitaire card games")
4458 (description
4459 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4460 which are easy to play with the aid of a mouse.")
4461 (license license:gpl3+)))
4462
4463 (define-public amtk
4464 (package
4465 (name "amtk")
4466 (version "5.0.2")
4467 (source (origin
4468 (method url-fetch)
4469 (uri (string-append "mirror://gnome/sources/amtk/"
4470 (version-major+minor version) "/"
4471 "amtk-" version ".tar.xz"))
4472 (sha256
4473 (base32
4474 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
4475 (build-system gnu-build-system)
4476 (arguments
4477 '(#:configure-flags '("--enable-gtk-doc")))
4478 (native-inputs
4479 `(("gobject-introspection" ,gobject-introspection)
4480 ("glib:bin" ,glib "bin") ; for glib-mkenums
4481 ("gtk-doc" ,gtk-doc)
4482 ("pkg-config" ,pkg-config)))
4483 (inputs
4484 `(("glib" ,glib)
4485 ("gtk+" ,gtk+)))
4486 (home-page "https://wiki.gnome.org/Projects/Amtk")
4487 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4488 (description
4489 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4490 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4491 both a traditional UI or a modern UI with a GtkHeaderBar.")
4492 (license license:lgpl2.1+)))
4493
4494 (define-public devhelp
4495 (package
4496 (name "devhelp")
4497 (version "3.34.0")
4498 (source (origin
4499 (method url-fetch)
4500 (uri (string-append "mirror://gnome/sources/" name "/"
4501 (version-major+minor version) "/"
4502 name "-" version ".tar.xz"))
4503 (sha256
4504 (base32
4505 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
4506 (build-system meson-build-system)
4507 (arguments
4508 '(#:glib-or-gtk? #t
4509 #:phases
4510 (modify-phases %standard-phases
4511 (add-after 'unpack 'skip-gtk-update-icon-cache
4512 ;; Don't create 'icon-theme.cache'.
4513 (lambda _
4514 (substitute* "meson_post_install.py"
4515 (("gtk-update-icon-cache") "true"))
4516 #t)))))
4517 (native-inputs
4518 `(("intltool" ,intltool)
4519 ("itstool" ,itstool)
4520 ("gobject-introspection" ,gobject-introspection)
4521 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4522 ("pkg-config" ,pkg-config)))
4523 (inputs
4524 `(("amtk" ,amtk)
4525 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4526 ("webkitgtk" ,webkitgtk)))
4527 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4528 (synopsis "API documentation browser for GNOME")
4529 (description
4530 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4531 natively with GTK-Doc (the API reference system developed for GTK+ and used
4532 throughout GNOME for API documentation).")
4533 (license license:gpl2+)))
4534
4535 (define-public cogl
4536 (package
4537 (name "cogl")
4538 (version "1.22.6")
4539 (source
4540 (origin
4541 (method url-fetch)
4542 (uri (string-append "mirror://gnome/sources/cogl/"
4543 (version-major+minor version) "/"
4544 "cogl-" version ".tar.xz"))
4545 (sha256
4546 (base32 "0x8v4n61q89qy27v824bqswpz6bmn801403w2q3pa1lcwk9ln4vd"))))
4547 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4548 ;; cogl, corresponding changes may be appropriate in mutter as well.
4549 (build-system gnu-build-system)
4550 (native-inputs
4551 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4552 ("gobject-introspection" ,gobject-introspection)
4553 ("xorg-server" ,xorg-server-for-tests)
4554 ("pkg-config" ,pkg-config)))
4555 (propagated-inputs
4556 `(("glib" ,glib)
4557 ("gdk-pixbuf" ,gdk-pixbuf)
4558 ("libx11" ,libx11)
4559 ("libxext" ,libxext)
4560 ("libxfixes" ,libxfixes)
4561 ("libxdamage" ,libxdamage)
4562 ("libxcomposite" ,libxcomposite)
4563 ("libxrandr" ,libxrandr)))
4564 (inputs
4565 `(("mesa" ,mesa)
4566 ("cairo" ,cairo)
4567 ("pango" ,pango)
4568 ("gstreamer" ,gstreamer)
4569 ("gst-plugins-base" ,gst-plugins-base)
4570 ("wayland" ,wayland)))
4571 (arguments
4572 `(#:disallowed-references (,xorg-server-for-tests)
4573 #:configure-flags (list "--enable-cogl-gst"
4574 "--enable-wayland-egl-platform"
4575 "--enable-wayland-egl-server"
4576
4577 ;; Arrange to pass an absolute file name to
4578 ;; dlopen for libGL.so.
4579 (string-append "--with-gl-libname="
4580 (assoc-ref %build-inputs "mesa")
4581 "/lib/libGL.so"))
4582 #:phases
4583 (modify-phases %standard-phases
4584 (add-before 'check 'start-xorg-server
4585 (lambda* (#:key tests? inputs #:allow-other-keys)
4586 (if tests?
4587 (begin
4588 ;; The test suite requires a running X server.
4589 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4590 (assoc-ref inputs "xorg-server")))
4591 (setenv "DISPLAY" ":1")
4592 #t)
4593 (format #t "test suite not run~%"))
4594 #t)))))
4595 (home-page "https://www.cogl3d.org")
4596 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4597 (description
4598 "Cogl is a small library for using 3D graphics hardware to draw pretty
4599 pictures. The API departs from the flat state machine style of OpenGL and is
4600 designed to make it easy to write orthogonal components that can render
4601 without stepping on each others toes.")
4602 (license (list license:expat ; most of the code
4603 license:bsd-3 ; cogl/cogl-point-in-poly.c
4604 license:sgifreeb2.0 ; cogl-path/tesselator/
4605 license:asl2.0)))) ; examples/android/
4606
4607 (define-public clutter
4608 (package
4609 (name "clutter")
4610 (version "1.26.2")
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 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4620 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4621 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4622 (build-system gnu-build-system)
4623 (outputs '("out"
4624 "doc")) ;9 MiB of gtk-doc HTML pages
4625 (native-inputs
4626 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4627 ("gobject-introspection" ,gobject-introspection)
4628 ("pkg-config" ,pkg-config)
4629 ("xsltproc" ,libxslt)))
4630 (propagated-inputs
4631 `(("cogl" ,cogl)
4632 ("cairo" ,cairo)
4633 ("atk" ,atk)
4634 ("gtk+" ,gtk+)
4635 ("json-glib" ,json-glib)
4636 ("glib" ,glib)
4637 ("libxcomposite" ,libxcomposite)
4638 ("libxdamage" ,libxdamage)
4639 ("libxext" ,libxext)
4640 ("xinput" ,xinput)))
4641 (inputs
4642 `(("libxkbcommon" ,libxkbcommon)
4643 ("udev" ,eudev)))
4644 (arguments
4645 `(#:configure-flags (list "--enable-x11-backend=yes"
4646
4647 ;; This produces share/doc/{clutter,cally}.
4648 (string-append "--with-html-dir="
4649 (assoc-ref %outputs "doc")
4650 "/share/doc"))
4651 ;; XXX FIXME: Get test suite working. It would probably fail in the
4652 ;; same way the cogl tests fail, since clutter is based on cogl.
4653 #:tests? #f))
4654 (home-page "http://www.clutter-project.org")
4655 (synopsis "OpenGL-based interactive canvas library")
4656 (description
4657 "Clutter is an OpenGL-based interactive canvas library, designed for
4658 creating fast, mainly 2D single window applications such as media box UIs,
4659 presentations, kiosk style applications and so on.")
4660 (license license:lgpl2.0+)))
4661
4662 (define-public clutter-gtk
4663 (package
4664 (name "clutter-gtk")
4665 (version "1.8.4")
4666 (source
4667 (origin
4668 (method url-fetch)
4669 (uri (string-append "mirror://gnome/sources/" name "/"
4670 (version-major+minor version) "/"
4671 name "-" version ".tar.xz"))
4672 (sha256
4673 (base32
4674 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4675 (build-system gnu-build-system)
4676 (native-inputs
4677 `(("pkg-config" ,pkg-config)
4678 ("gobject-introspection" ,gobject-introspection)))
4679 (propagated-inputs
4680 ;; clutter-gtk.pc refers to all these.
4681 `(("clutter" ,clutter)
4682 ("gtk+" ,gtk+)))
4683 (home-page "http://www.clutter-project.org")
4684 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4685 (description
4686 "Clutter is an OpenGL-based interactive canvas library, designed for
4687 creating fast, mainly 2D single window applications such as media box UIs,
4688 presentations, kiosk style applications and so on.")
4689 (license license:lgpl2.0+)))
4690
4691 (define-public clutter-gst
4692 (package
4693 (name "clutter-gst")
4694 (version "3.0.27")
4695 (source
4696 (origin
4697 (method url-fetch)
4698 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4699 (version-major+minor version) "/"
4700 "clutter-gst-" version ".tar.xz"))
4701 (sha256
4702 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4703 (build-system gnu-build-system)
4704 (native-inputs
4705 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4706 ("pkg-config" ,pkg-config)
4707 ("gobject-introspection" ,gobject-introspection)))
4708 (inputs
4709 `(("clutter" ,clutter)
4710 ("gstreamer" ,gstreamer)
4711 ("gst-plugins-base" ,gst-plugins-base)))
4712 (home-page "http://www.clutter-project.org")
4713 (synopsis "Integration library for using GStreamer with Clutter")
4714 (description
4715 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4716 It provides a GStreamer sink to upload frames to GL and an actor that
4717 implements the ClutterGstPlayer interface using playbin. Clutter is an
4718 OpenGL-based interactive canvas library.")
4719 (license license:lgpl2.0+)))
4720
4721 (define-public libchamplain
4722 (package
4723 (name "libchamplain")
4724 (version "0.12.16")
4725 (source (origin
4726 (method url-fetch)
4727 (uri (string-append
4728 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4729 version ".tar.xz"))
4730 (sha256
4731 (base32
4732 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4733 (build-system gnu-build-system)
4734 (arguments '(#:configure-flags '("--enable-vala")))
4735 (native-inputs
4736 `(("gobject-introspection" ,gobject-introspection)
4737 ("pkg-config" ,pkg-config)
4738 ("vala" ,vala)))
4739 (propagated-inputs
4740 `(("libsoup" ,libsoup)
4741 ("sqlite" ,sqlite)
4742 ("clutter" ,clutter)
4743 ("clutter-gtk" ,clutter-gtk)
4744 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4745 ("cairo" ,cairo)
4746 ("gtk+3" ,gtk+)
4747 ("glib" ,glib)))
4748 (home-page "https://projects.gnome.org/libchamplain/")
4749 (synopsis "C library providing a ClutterActor to display maps")
4750 (description
4751 "libchamplain is a C library providing a ClutterActor to display maps.
4752 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4753 and Perl bindings are also available. It supports numerous free map sources
4754 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4755 (license license:lgpl2.1+)))
4756
4757 (define-public gom
4758 (package
4759 (name "gom")
4760 (version "0.3.2")
4761 (source
4762 (origin
4763 (method url-fetch)
4764 (uri (string-append "mirror://gnome/sources/gom/"
4765 (version-major+minor version) "/"
4766 "gom-" version ".tar.xz"))
4767 (sha256
4768 (base32
4769 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4770 (build-system gnu-build-system)
4771 (native-inputs
4772 `(("intltool" ,intltool)
4773 ("pkg-config" ,pkg-config)
4774 ("gobject-introspection" ,gobject-introspection)))
4775 (inputs
4776 `(("glib" ,glib)
4777 ("gdk-pixbuf" ,gdk-pixbuf)
4778 ("sqlite" ,sqlite)))
4779 ;; XXX TODO: Figure out how to run the test suite.
4780 (arguments `(#:tests? #f))
4781 (home-page "https://wiki.gnome.org/Projects/Gom")
4782 (synopsis "Object mapper from GObjects to SQLite")
4783 (description
4784 "Gom provides an object mapper from GObjects to SQLite. It helps you
4785 write applications that need to store structured data as well as make complex
4786 queries upon that data.")
4787 (license license:lgpl2.1+)))
4788
4789 (define-public libgnome-games-support
4790 (package
4791 (name "libgnome-games-support")
4792 (version "1.4.4")
4793 (source (origin
4794 (method url-fetch)
4795 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4796 (version-major+minor version) "/"
4797 "libgnome-games-support-" version ".tar.xz"))
4798 (sha256
4799 (base32
4800 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4801 (build-system gnu-build-system)
4802 (arguments
4803 '(#:phases
4804 (modify-phases %standard-phases
4805 (add-before 'check 'pre-check
4806 (lambda _
4807 ;; Tests require a writable HOME.
4808 (setenv "HOME" (getcwd))
4809 #t)))))
4810 (native-inputs
4811 `(("intltool" ,intltool)
4812 ("pkg-config" ,pkg-config)
4813 ("vala" ,vala)))
4814 (propagated-inputs
4815 ;; Required by libgnome-games-support-1.0.pc
4816 `(("gtk+" ,gtk+)
4817 ("libgee" ,libgee)))
4818 (home-page "https://www.gnome.org/")
4819 (synopsis "Useful functionality shared among GNOME games")
4820 (description
4821 "libgnome-games-support is a small library intended for internal use by
4822 GNOME Games, but it may be used by others.")
4823 (license license:lgpl3+)))
4824
4825 (define-public gnome-klotski
4826 (package
4827 (name "gnome-klotski")
4828 (version "3.34.0")
4829 (source (origin
4830 (method url-fetch)
4831 (uri (string-append "mirror://gnome/sources/" name "/"
4832 (version-major+minor version) "/"
4833 name "-" version ".tar.xz"))
4834 (sha256
4835 (base32
4836 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
4837 (build-system meson-build-system)
4838 (arguments
4839 '(#:glib-or-gtk? #t
4840 #:phases
4841 (modify-phases %standard-phases
4842 (add-after 'unpack 'skip-gtk-update-icon-cache
4843 ;; Don't create 'icon-theme.cache'.
4844 (lambda _
4845 (substitute* "build-aux/meson_post_install.py"
4846 (("gtk-update-icon-cache") (which "true")))
4847 #t)))))
4848 (native-inputs
4849 `(("desktop-file-utils" ,desktop-file-utils)
4850 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4851 ("intltool" ,intltool)
4852 ("itstool" ,itstool)
4853 ("pkg-config" ,pkg-config)
4854 ("vala" ,vala)
4855 ("xmllint" ,libxml2)))
4856 (inputs
4857 `(("gtk+" ,gtk+)
4858 ("libgnome-games-support" ,libgnome-games-support)
4859 ("librsvg" ,librsvg)))
4860 (home-page "https://wiki.gnome.org/Apps/Klotski")
4861 (synopsis "Sliding block puzzles")
4862 (description
4863 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4864 the patterned block to the area bordered by green markers. To do so, you will
4865 need to slide other blocks out of the way. Complete each puzzle in as few moves
4866 as possible!")
4867 (license license:gpl2+)))
4868
4869 (define-public grilo
4870 (package
4871 (name "grilo")
4872 (version "0.3.10")
4873 (source
4874 (origin
4875 (method url-fetch)
4876 (uri (string-append "mirror://gnome/sources/" name "/"
4877 (version-major+minor version) "/"
4878 name "-" version ".tar.xz"))
4879 (sha256
4880 (base32
4881 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4882 (build-system meson-build-system)
4883 (native-inputs
4884 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4885 ("intltool" ,intltool)
4886 ("pkg-config" ,pkg-config)
4887 ("gobject-introspection" ,gobject-introspection)
4888 ("gtk-doc" ,gtk-doc)
4889 ("vala" ,vala)))
4890 (inputs
4891 `(("cyrus-sasl" ,cyrus-sasl)
4892 ("glib" ,glib)
4893 ("gtk+" ,gtk+)
4894 ("libxml2" ,libxml2)
4895 ("liboauth" ,liboauth)
4896 ("libsoup" ,libsoup)
4897 ("totem-pl-parser" ,totem-pl-parser)))
4898 (native-search-paths
4899 (list (search-path-specification
4900 (variable "GRL_PLUGIN_PATH")
4901 (files (list (string-append "lib/grilo-"
4902 (version-major+minor version)))))))
4903 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4904 (synopsis "Framework for discovering and browsing media")
4905 (description
4906 "Grilo is a framework focused on making media discovery and browsing easy
4907 for application developers.")
4908 (license license:lgpl2.1+)))
4909
4910 (define-public grilo-plugins
4911 (package
4912 (name "grilo-plugins")
4913 (version "0.3.10")
4914 (source
4915 (origin
4916 (method url-fetch)
4917 (uri (string-append "mirror://gnome/sources/" name "/"
4918 (version-major+minor version) "/"
4919 name "-" version ".tar.xz"))
4920 (sha256
4921 (base32
4922 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4923 (build-system meson-build-system)
4924 (native-inputs
4925 `(("gettext" ,gettext-minimal)
4926 ("glib:bin" ,glib "bin")
4927 ("gtk+:bin" ,gtk+ "bin")
4928 ("itstool" ,itstool)
4929 ("pkg-config" ,pkg-config)))
4930 ;; TODO: ahavi, gstreamer
4931 (inputs
4932 `(("grilo" ,grilo)
4933 ;("gmime" ,gmime) ; unused
4934 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4935 ("gom" ,gom)
4936 ;("gssdp" ,gssdp) ; unused
4937 ;("gupnp" ,gupnp) ; unused
4938 ;("gupnp-av" ,gupnp-av) ; unused
4939 ("json-glib" ,json-glib)
4940 ("avahi" ,avahi)
4941 ("libgdata" ,libgdata)
4942 ("libmediaart" ,libmediaart)
4943 ;("librest" ,rest) ; unused
4944 ("libsoup" ,libsoup)
4945 ("totam-pl-parser" ,totem-pl-parser)
4946 ("tracker" ,tracker))) ; unused because it's too old
4947 (arguments
4948 `(#:glib-or-gtk? #t
4949 ;;Disable lua-factory as it needs missing dependencies
4950 #:configure-flags '("-Denable-lua-factory=no")))
4951 (home-page "https://live.gnome.org/Grilo")
4952 (synopsis "Plugins for the Grilo media discovery library")
4953 (description
4954 "Grilo is a framework focused on making media discovery and browsing easy
4955 for application developers. This package provides plugins for common media
4956 discovery protocols.")
4957 (license license:lgpl2.1+)))
4958
4959 (define-public totem
4960 (package
4961 (name "totem")
4962 (version "3.34.1")
4963 (source
4964 (origin
4965 (method url-fetch)
4966 (uri (string-append "mirror://gnome/sources/totem/"
4967 (version-major+minor version) "/"
4968 "totem-" version ".tar.xz"))
4969 (sha256
4970 (base32
4971 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
4972 (build-system meson-build-system)
4973 (native-inputs
4974 `(("pkg-config" ,pkg-config)
4975 ("desktop-file-utils" ,desktop-file-utils)
4976 ("gobject-introspection" ,gobject-introspection)
4977 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4978 ("intltool" ,intltool)
4979 ("itstool" ,itstool)
4980 ("xmllint" ,libxml2)
4981 ("xorg-server" ,xorg-server-for-tests)))
4982 (propagated-inputs
4983 `(("dconf" ,dconf)))
4984 (inputs
4985 `(("gtk+" ,gtk+)
4986 ("gdk-pixbuf" ,gdk-pixbuf)
4987 ("atk" ,atk)
4988 ("cairo" ,cairo)
4989 ("dbus-glib" ,dbus-glib)
4990 ("clutter" ,clutter)
4991 ("clutter-gtk" ,clutter-gtk)
4992 ("clutter-gst" ,clutter-gst)
4993 ("xorgproto" ,xorgproto)
4994 ("libxxf86vm" ,libxxf86vm)
4995 ("libxtst" ,libxtst)
4996 ("libxrandr" ,libxrandr)
4997 ("libxml2" ,libxml2)
4998 ("libsoup" ,libsoup)
4999 ("libpeas" ,libpeas)
5000 ("librsvg" ,librsvg)
5001 ("lirc" ,lirc)
5002 ("gnome-desktop" ,gnome-desktop)
5003 ("gstreamer" ,gstreamer)
5004 ("gst-plugins-base" ,gst-plugins-base)
5005 ("gst-plugins-good" ,gst-plugins-good)
5006 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5007 ("adwaita-icon-theme" ,adwaita-icon-theme)
5008 ("python" ,python)
5009 ("python-pygobject" ,python-pygobject)
5010 ("totem-pl-parser" ,totem-pl-parser)
5011 ("grilo" ,grilo)
5012 ("grilo-plugins" ,grilo-plugins)
5013 ("vala" ,vala)))
5014 (arguments
5015 `(#:glib-or-gtk? #t
5016
5017 ;; Disable automatic GStreamer plugin installation via PackageKit and
5018 ;; all that.
5019 #:configure-flags '("-D" "enable-easy-codec-installation=no"
5020
5021 ;; Do not build .a files for the plugins, it's
5022 ;; completely useless. This saves 2 MiB.
5023 "--default-library" "shared")
5024 #:phases
5025 (modify-phases %standard-phases
5026 (add-after 'unpack 'skip-gtk-update-icon-cache
5027 ;; Don't create 'icon-theme.cache'.
5028 (lambda _
5029 (substitute* "meson_post_install.py"
5030 (("gtk-update-icon-cache") "true"))
5031 #t))
5032 (add-before
5033 'install 'disable-cache-generation
5034 (lambda _
5035 (setenv "DESTDIR" "/")
5036 #t))
5037 (add-before
5038 'check 'pre-check
5039 (lambda _
5040 ;; Tests require a running X server.
5041 (system "Xvfb :1 &")
5042 (setenv "DISPLAY" ":1")
5043 #t))
5044 (add-after
5045 'install 'wrap-totem
5046 (lambda* (#:key inputs outputs #:allow-other-keys)
5047 (let ((out (assoc-ref outputs "out"))
5048 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5049 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5050 (wrap-program (string-append out "/bin/totem")
5051 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5052 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5053 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5054 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
5055 #t)))))
5056 (home-page "https://wiki.gnome.org/Apps/Videos")
5057 (synopsis "Simple media player for GNOME based on GStreamer")
5058 (description "Totem is a simple yet featureful media player for GNOME
5059 which can read a large number of file formats.")
5060 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5061 ;; to be used and distributed together with GStreamer and Totem. See
5062 ;; file://COPYING in the source distribution for details.
5063 (license license:gpl2+)))
5064
5065 (define-public rhythmbox
5066 (package
5067 (name "rhythmbox")
5068 (version "3.4.4")
5069 (source (origin
5070 (method url-fetch)
5071 (uri (string-append "mirror://gnome/sources/rhythmbox/"
5072 (version-major+minor version) "/"
5073 "rhythmbox-" version ".tar.xz"))
5074 (sha256
5075 (base32
5076 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
5077 (build-system glib-or-gtk-build-system)
5078 (arguments
5079 `(#:configure-flags
5080 (list "--enable-lirc"
5081 "--enable-python"
5082 "--enable-vala"
5083 "--with-brasero"
5084 "--with-gudev"
5085 "--with-libsecret")
5086 #:phases
5087 (modify-phases %standard-phases
5088 (add-after
5089 'install 'wrap-rhythmbox
5090 (lambda* (#:key inputs outputs #:allow-other-keys)
5091 (let ((out (assoc-ref outputs "out"))
5092 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5093 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5094 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5095 (python-path (getenv "PYTHONPATH")))
5096 (wrap-program (string-append out "/bin/rhythmbox")
5097 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5098 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5099 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5100 `("PYTHONPATH" ":" prefix (,python-path))))
5101 #t)))))
5102 (propagated-inputs
5103 `(("dconf" ,dconf)))
5104 (native-inputs
5105 `(("itstool" ,itstool)
5106 ("intltool" ,intltool)
5107 ("glib" ,glib "bin")
5108 ("gobject-introspection" ,gobject-introspection)
5109 ("desktop-file-utils" ,desktop-file-utils)
5110 ("pkg-config" ,pkg-config)
5111 ("xmllint" ,libxml2)))
5112 (inputs
5113 `(("json-glib" ,json-glib)
5114 ("tdb" ,tdb)
5115 ("gnome-desktop" ,gnome-desktop)
5116 ("python" ,python)
5117 ("python-pygobject" ,python2-pygobject)
5118 ("vala" ,vala)
5119 ("gmime" ,gmime)
5120 ("adwaita-icon-theme" ,adwaita-icon-theme)
5121 ("grilo" ,grilo)
5122 ("grilo-plugins" ,grilo-plugins)
5123 ("gstreamer" ,gstreamer)
5124 ("gst-plugins-base" ,gst-plugins-base)
5125 ("gst-plugins-good" ,gst-plugins-good)
5126 ("totem-pl-parser" ,totem-pl-parser)
5127 ("libgudev" ,libgudev)
5128 ;;("libmtp" ,libmtp) FIXME: Not detected
5129 ("libsecret" ,libsecret)
5130 ("libsoup" ,libsoup)
5131 ("libnotify" ,libnotify)
5132 ("libpeas" ,libpeas)
5133 ("lirc" ,lirc)
5134 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5135 ;;("clutter" ,clutter)
5136 ;;("clutter-gtk" ,clutter-gtk)
5137 ;;("clutter-gst" ,clutter-gst)
5138 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5139 ("atk" ,atk)
5140 ("pango" ,pango)
5141 ("gtk+" ,gtk+)
5142 ;; TODO:
5143 ;; * libgpod
5144 ;; * mx
5145 ("brasero" ,brasero)))
5146 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5147 (synopsis "Music player for GNOME")
5148 (description "Rhythmbox is a music playing application for GNOME. It
5149 supports playlists, song ratings, and any codecs installed through gstreamer.")
5150 (license license:gpl2+)))
5151
5152 (define-public eog
5153 (package
5154 (name "eog")
5155 (version "3.34.1")
5156 (source (origin
5157 (method url-fetch)
5158 (uri (string-append "mirror://gnome/sources/" name "/"
5159 (version-major+minor version) "/"
5160 name "-" version ".tar.xz"))
5161 (sha256
5162 (base32
5163 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5164 (build-system meson-build-system)
5165 (arguments
5166 `(#:configure-flags
5167 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5168 (list (string-append "-Dc_link_args=-Wl,-rpath="
5169 (assoc-ref %outputs "out") "/lib/eog"))
5170 #:phases
5171 (modify-phases %standard-phases
5172 (add-after 'unpack 'skip-gtk-update-icon-cache
5173 ;; Don't create 'icon-theme.cache'.
5174 (lambda _
5175 (substitute* "meson_post_install.py"
5176 (("gtk-update-icon-cache") "true"))
5177 #t))
5178 (add-after 'install 'wrap-eog
5179 (lambda* (#:key outputs #:allow-other-keys)
5180 (let ((out (assoc-ref outputs "out"))
5181 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5182 (wrap-program (string-append out "/bin/eog")
5183 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5184 #t)))))
5185 (propagated-inputs
5186 `(("dconf" ,dconf)))
5187 (native-inputs
5188 `(("intltool" ,intltool)
5189 ("itstool" ,itstool)
5190 ("glib" ,glib "bin")
5191 ("gobject-introspection" ,gobject-introspection)
5192 ("pkg-config" ,pkg-config)
5193 ("xmllint" ,libxml2)))
5194 (inputs
5195 `(("gnome-desktop" ,gnome-desktop)
5196 ("shared-mime-info" ,shared-mime-info)
5197 ("adwaita-icon-theme" ,adwaita-icon-theme)
5198 ("exempi" ,exempi)
5199 ("lcms" ,lcms)
5200 ("libexif" ,libexif)
5201 ("libpeas" ,libpeas)
5202 ("libjpeg" ,libjpeg-turbo)
5203 ("librsvg" ,librsvg-next)
5204 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5205 ("gtk+" ,gtk+)))
5206 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5207 (synopsis "GNOME image viewer")
5208 (description "Eye of GNOME is the GNOME image viewer. It
5209 supports image conversion, rotation, and slideshows.")
5210 (license license:gpl2+)))
5211
5212 (define-public eog-plugins
5213 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5214 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5215 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5216 ;; 'XDG_DATA_DIRS' appropriately set.
5217 (package
5218 (name "eog-plugins")
5219 (version "3.26.4")
5220 (source (origin
5221 (method url-fetch)
5222 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5223 (version-major+minor version) "/"
5224 "eog-plugins-" version ".tar.xz"))
5225 (sha256
5226 (base32
5227 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5228 (build-system gnu-build-system)
5229 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5230 (synopsis "Extensions for the Eye of GNOME image viewer")
5231 (native-inputs
5232 `(("pkg-config" ,pkg-config)
5233 ("gettext" ,gettext-minimal)))
5234 (inputs
5235 `(("eog" ,eog)
5236 ("glib" ,glib)
5237 ("gtk+" ,gtk+)
5238 ("libpeas" ,libpeas)
5239 ("libexif" ,libexif)
5240 ("libchamplain" ,libchamplain)))
5241 (description
5242 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5243 notably:
5244
5245 @itemize
5246 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5247 @item @dfn{Map}, which displays a map of where the picture was taken on the
5248 side panel;
5249 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5250 @end itemize\n")
5251
5252 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5253 ;; long suspicious byte stream that goes to a
5254 ;; ".gresource.eog_postasa_plugin" ELF section.
5255 (license license:gpl2+)))
5256
5257 (define-public libgudev
5258 (package
5259 (name "libgudev")
5260 (version "232")
5261 (source (origin
5262 (method url-fetch)
5263 (uri (string-append "mirror://gnome/sources/" name "/"
5264 version "/" name "-" version ".tar.xz"))
5265 (sha256
5266 (base32
5267 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5268 (build-system gnu-build-system)
5269 (arguments
5270 '(#:configure-flags
5271 ;; umockdev depends on libgudev.
5272 (list "--disable-umockdev")))
5273 (native-inputs
5274 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5275 ("gobject-introspection" ,gobject-introspection)
5276 ("pkg-config" ,pkg-config)))
5277 (propagated-inputs
5278 `(("glib" ,glib))) ; required by gudev-1.0.pc
5279 (inputs
5280 `(("udev" ,eudev)))
5281 (home-page "https://wiki.gnome.org/Projects/libgudev")
5282 (synopsis "GObject bindings for libudev")
5283 (description
5284 "This library provides GObject bindings for libudev. It was originally
5285 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5286 (license license:lgpl2.1+)))
5287
5288 (define-public gvfs
5289 (package
5290 (name "gvfs")
5291 (version "1.40.1")
5292 (source (origin
5293 (method url-fetch)
5294 (uri (string-append "mirror://gnome/sources/gvfs/"
5295 (version-major+minor version) "/"
5296 "gvfs-" version ".tar.xz"))
5297 (sha256
5298 (base32
5299 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5300 (build-system meson-build-system)
5301 (arguments
5302 '(#:glib-or-gtk? #t
5303 #:configure-flags
5304 (list "-Dsystemduserunitdir=no"
5305 "-Dtmpfilesdir=no"
5306 ;; Otherwise, the RUNPATH will lack the final path component.
5307 (string-append "-Dc_link_args=-Wl,-rpath="
5308 (assoc-ref %outputs "out") "/lib/gvfs"))))
5309 (native-inputs
5310 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5311 ("gettext" ,gettext-minimal)
5312 ("gtk-doc" ,gtk-doc)
5313 ("pkg-config" ,pkg-config)
5314 ("xsltproc" ,libxslt)))
5315 (inputs
5316 `(("avahi" ,avahi)
5317 ("docbook-xml" ,docbook-xml-4.2)
5318 ("docbook-xsl" ,docbook-xsl)
5319 ("dbus" ,dbus)
5320 ("elogind" ,elogind)
5321 ("fuse" ,fuse)
5322 ("gcr" ,gcr)
5323 ("glib" ,glib)
5324 ("gnome-online-accounts" ,gnome-online-accounts)
5325 ("libarchive" ,libarchive)
5326 ("libbluray" ,libbluray)
5327 ("libcap" ,libcap)
5328 ("libcdio-paranoia" ,libcdio-paranoia)
5329 ("libgcrypt" ,libgcrypt)
5330 ("libgdata" ,libgdata)
5331 ("libgphoto2" ,libgphoto2)
5332 ("libgudev" ,libgudev)
5333 ("libimobiledevice" ,libimobiledevice)
5334 ("libmtp" ,libmtp)
5335 ("libnfs" ,libnfs)
5336 ("libsecret" ,libsecret)
5337 ("libsmbclient" ,samba)
5338 ("libsoup" ,libsoup)
5339 ("libxml2" ,libxml2)
5340 ("openssh" ,openssh)
5341 ("polkit" ,polkit)
5342 ("udisks" ,udisks)))
5343 (home-page "https://wiki.gnome.org/gvfs/")
5344 (synopsis "Userspace virtual file system for GIO")
5345 (description
5346 "GVFS is a userspace virtual file system designed to work with the I/O
5347 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5348 to all applications using the GIO API. It also supports exposing the GVFS
5349 mounts to non-GIO applications using FUSE.
5350
5351 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5352 DAV, and others.")
5353 (license license:lgpl2.0+)))
5354
5355 (define-public gusb
5356 (package
5357 (name "gusb")
5358 (version "0.3.0")
5359 (source (origin
5360 (method git-fetch)
5361 (uri (git-reference
5362 (url "https://github.com/hughsie/libgusb.git")
5363 (commit version)))
5364 (file-name (git-file-name name version))
5365 (sha256
5366 (base32
5367 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5368 (build-system meson-build-system)
5369 (native-inputs
5370 `(("gobject-introspection" ,gobject-introspection)
5371 ("pkg-config" ,pkg-config)
5372 ("vala" ,vala)
5373 ("gtk-doc" ,gtk-doc)))
5374 (propagated-inputs
5375 ;; Both of these are required by gusb.pc.
5376 `(("glib" ,glib)
5377 ("libusb" ,libusb)))
5378 (arguments
5379 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5380 (home-page "https://github.com/hughsie/libgusb")
5381 (synopsis "GLib binding for libusb1")
5382 (description
5383 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5384 asynchronous control, bulk and interrupt transfers with proper cancellation
5385 and integration into a mainloop. This makes it easy to integrate low level
5386 USB transfers with your high-level application or system daemon.")
5387 (license license:lgpl2.1+)))
5388
5389 (define-public simple-scan
5390 (package
5391 (name "simple-scan")
5392 (version "3.36.2.1")
5393 (source
5394 (origin
5395 (method url-fetch)
5396 (uri (string-append "mirror://gnome/sources/simple-scan/"
5397 (version-major+minor version) "/"
5398 "simple-scan-" version ".tar.xz"))
5399 (sha256
5400 (base32 "0aq1pf0wk536b91as54684xgmhl7lps0k2xcwha5wh6h1isyb35v"))))
5401 (build-system meson-build-system)
5402 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5403 (arguments
5404 '(#:glib-or-gtk? #t))
5405 (inputs
5406 `(("gtk" ,gtk+)
5407 ("zlib" ,zlib)
5408 ("cairo" ,cairo)
5409 ("colord" ,colord)
5410 ("gdk-pixbuf" ,gdk-pixbuf)
5411 ("gusb" ,gusb)
5412 ("libsane" ,sane-backends)))
5413 (native-inputs
5414 `(("gettext" ,gettext-minimal)
5415 ("itstool" ,itstool)
5416 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5417 ("pkg-config" ,pkg-config)
5418 ("vala" ,vala)
5419 ("xmllint" ,libxml2)))
5420 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5421 (synopsis "Document and image scanner")
5422 (description
5423 "Document Scanner is an easy-to-use application that lets you connect your
5424 scanner and quickly capture images and documents in an appropriate format. It
5425 supports any scanner for which a suitable SANE driver is available, which is
5426 almost all of them.")
5427 (license license:gpl3+)))
5428
5429 (define-public eolie
5430 (package
5431 (name "eolie")
5432 (version "0.9.98.1")
5433 (source (origin
5434 (method url-fetch)
5435 (uri (string-append "https://adishatz.org/eolie/eolie-"
5436 version ".tar.xz"))
5437 (sha256
5438 (base32
5439 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
5440 (build-system meson-build-system)
5441 (arguments
5442 `(#:glib-or-gtk? #t
5443 #:phases
5444 (modify-phases %standard-phases
5445 (add-after 'unpack 'skip-gtk-update-icon-cache
5446 ;; Don't create 'icon-theme.cache'.
5447 (lambda _
5448 (substitute* "meson_post_install.py"
5449 (("gtk-update-icon-cache") "true"))
5450 #t))
5451 (add-after 'wrap 'wrap-more
5452 (lambda* (#:key inputs outputs #:allow-other-keys)
5453 (let* ((out (assoc-ref outputs "out"))
5454 ;; These libraries must be on LD_LIBRARY_PATH.
5455 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5456 "atk" "gtk+" "gsettings-desktop-schemas"
5457 "gobject-introspection"))
5458 (path (string-join
5459 (map (lambda (lib)
5460 (string-append (assoc-ref inputs lib) "/lib"))
5461 libs)
5462 ":")))
5463 (wrap-program (string-append out "/bin/eolie")
5464 `("LD_LIBRARY_PATH" ":" prefix (,path))
5465 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5466 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5467 #t)))))
5468 (native-inputs
5469 `(("intltool" ,intltool)
5470 ("itstool" ,itstool)
5471 ("pkg-config" ,pkg-config)
5472 ("python" ,python)
5473 ("glib:bin" ,glib "bin")))
5474 (inputs
5475 `(("gobject-introspection" ,gobject-introspection)
5476 ("glib-networking" ,glib-networking)
5477 ("cairo" ,cairo)
5478 ("gtk+" ,gtk+)
5479 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5480 ("python" ,python-wrapper)
5481 ("python-dateutil" ,python-dateutil)
5482 ("python-pyfxa" ,python-pyfxa)
5483 ("python-pygobject" ,python-pygobject)
5484 ("python-pycairo" ,python-pycairo)
5485 ("python-pycrypto" ,python-pycrypto)
5486 ("libsecret" ,libsecret)
5487 ("gtkspell3" ,gtkspell3)
5488 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5489 ("webkitgtk" ,webkitgtk)))
5490 (home-page "https://wiki.gnome.org/Apps/Eolie")
5491 (synopsis "Web browser for GNOME")
5492 (description
5493 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5494 a secret password store, an adblocker, and a modern UI.")
5495 (license license:gpl3+)))
5496
5497 (define-public epiphany
5498 (package
5499 (name "epiphany")
5500 (version "3.34.4")
5501 (source (origin
5502 (method url-fetch)
5503 (uri (string-append "mirror://gnome/sources/epiphany/"
5504 (version-major+minor version) "/"
5505 "epiphany-" version ".tar.xz"))
5506 (sha256
5507 (base32
5508 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
5509
5510 (build-system meson-build-system)
5511 (arguments
5512 '(#:glib-or-gtk? #t
5513 #:phases
5514 (modify-phases %standard-phases
5515 (add-after 'unpack 'skip-gtk-update-icon-cache
5516 ;; Don't create 'icon-theme.cache'.
5517 (lambda _
5518 (substitute* "post_install.py"
5519 (("gtk-update-icon-cache") "true"))
5520 #t))
5521 (add-after 'unpack 'disable-failing-tests
5522 (lambda _
5523 (substitute* "tests/meson.build"
5524 ;; embed_shell fails, because webkitgtk apparently no longer supports
5525 ;; overriding the ftp schema
5526 ;; web_app_utils fails due to missing network access
5527 (("(embed_shell|web_app_utils)_test,")
5528 "find_program('sh'), args: ['-c', 'exit 77'],"))
5529 #t))
5530 (add-before 'check 'pre-check
5531 (lambda _
5532 ;; Tests require a running X server.
5533 (system "Xvfb :1 &")
5534 (setenv "DISPLAY" ":1")
5535 #t)))
5536 #:configure-flags
5537 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5538 (list (string-append "-Dc_link_args=-Wl,-rpath="
5539 (assoc-ref %outputs "out") "/lib/epiphany"))))
5540 (propagated-inputs
5541 `(("dconf" ,dconf)))
5542 (native-inputs
5543 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5544 ("glib:bin" ,glib "bin") ; for glib-mkenums
5545 ("intltool" ,intltool)
5546 ("itstool" ,itstool)
5547 ("pkg-config" ,pkg-config)
5548 ("xmllint" ,libxml2)
5549 ("xorg-server" ,xorg-server-for-tests)))
5550 (inputs
5551 `(("avahi" ,avahi)
5552 ("gcr" ,gcr)
5553 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5554 ("glib-networking" ,glib-networking)
5555 ("gnome-desktop" ,gnome-desktop)
5556 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5557 ("json-glib" ,json-glib)
5558 ("iso-codes" ,iso-codes)
5559 ("libdazzle" ,libdazzle)
5560 ("libnotify" ,libnotify)
5561 ("libsecret" ,libsecret)
5562 ("libxslt" ,libxslt)
5563 ("nettle" ,nettle) ; for hogweed
5564 ("sqlite" ,sqlite)
5565 ("webkitgtk" ,webkitgtk)))
5566 (home-page "https://wiki.gnome.org/Apps/Web")
5567 (synopsis "GNOME web browser")
5568 (description
5569 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5570 principles are simplicity and standards compliance.")
5571 (license license:gpl2+)))
5572
5573 (define-public d-feet
5574 (package
5575 (name "d-feet")
5576 (version "0.3.14")
5577 (source (origin
5578 (method url-fetch)
5579 (uri (string-append "mirror://gnome/sources/" name "/"
5580 (version-major+minor version) "/"
5581 name "-" version ".tar.xz"))
5582 (sha256
5583 (base32
5584 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5585 (build-system glib-or-gtk-build-system)
5586 (arguments
5587 '(#:out-of-source? #f ; tests need to run in the source directory.
5588 #:phases
5589 (modify-phases %standard-phases
5590 (add-before
5591 'check 'pre-check
5592 (lambda _
5593 ;; The test suite requires a running X server.
5594 (system "Xvfb :1 &")
5595 (setenv "DISPLAY" ":1")
5596 ;; Don't fail on missing '/etc/machine-id'.
5597 (setenv "DBUS_FATAL_WARNINGS" "0")
5598 ;; tests.py and window.py don't meet E402:
5599 ;; E402 module level import not at top of file
5600 (substitute* "src/tests/Makefile"
5601 (("--ignore=E123") "--ignore=E123,E402"))
5602 #t))
5603 (add-after
5604 'install 'wrap-program
5605 (lambda* (#:key outputs #:allow-other-keys)
5606 (let ((prog (string-append (assoc-ref outputs "out")
5607 "/bin/d-feet")))
5608 (wrap-program prog
5609 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5610 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5611 #t))))))
5612 (native-inputs
5613 `(("intltool" ,intltool)
5614 ("itstool" ,itstool)
5615 ("pkg-config" ,pkg-config)
5616 ("python-pep8" ,python-pep8)
5617 ("xmllint" ,libxml2)
5618 ("xorg-server" ,xorg-server-for-tests)))
5619 (inputs
5620 `(("gobject-introspection" ,gobject-introspection)
5621 ("gtk+" ,gtk+)
5622 ("python" ,python-wrapper)
5623 ("hicolor-icon-theme" ,hicolor-icon-theme)
5624 ("python-pygobject" ,python-pygobject)))
5625 (home-page "https://wiki.gnome.org/Apps/DFeet")
5626 (synopsis "D-Bus debugger")
5627 (description
5628 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5629 of running programs and invoke methods on those interfaces.")
5630 (license license:gpl2+)))
5631
5632 (define-public yelp-xsl
5633 (package
5634 (name "yelp-xsl")
5635 (version "3.34.2")
5636 (source (origin
5637 (method url-fetch)
5638 (uri (string-append "mirror://gnome/sources/" name "/"
5639 (version-major+minor version) "/"
5640 name "-" version ".tar.xz"))
5641 (sha256
5642 (base32
5643 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
5644 (build-system gnu-build-system)
5645 (native-inputs
5646 `(("gettext-minimal" ,gettext-minimal)
5647 ("itstool" ,itstool)
5648 ("xmllint" ,libxml2)))
5649 (home-page "https://wiki.gnome.org/Apps/Yelp")
5650 (synopsis "XSL stylesheets for Yelp")
5651 (description
5652 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5653 to format Docbook and Mallard documents.")
5654 (license license:gpl2+)))
5655
5656 (define-public yelp
5657 (package
5658 (name "yelp")
5659 (version "3.32.2")
5660 (source (origin
5661 (method url-fetch)
5662 (uri (string-append "mirror://gnome/sources/" name "/"
5663 (version-major+minor version) "/"
5664 name "-" version ".tar.xz"))
5665 (sha256
5666 (base32
5667 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5668 (build-system glib-or-gtk-build-system)
5669 (native-inputs
5670 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5671 ("intltool" ,intltool)
5672 ("itstool" ,itstool)
5673 ("pkg-config" ,pkg-config)))
5674 (propagated-inputs
5675 `(("dconf" ,dconf)))
5676 (inputs
5677 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5678 ("libxslt" ,libxslt)
5679 ("sqlite" ,sqlite)
5680 ("webkitgtk" ,webkitgtk)
5681 ("yelp-xsl" ,yelp-xsl)))
5682 (home-page "https://wiki.gnome.org/Apps/Yelp")
5683 (synopsis "GNOME help browser")
5684 (description
5685 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5686 man, info, and HTML documents. It can locate documents according to the
5687 freedesktop.org help system specification.")
5688 (license license:gpl2+)))
5689
5690 (define-public yelp-tools
5691 (package
5692 (name "yelp-tools")
5693 (version "3.32.2")
5694 (source (origin
5695 (method url-fetch)
5696 (uri (string-append "mirror://gnome/sources/" name "/"
5697 (version-major+minor version) "/"
5698 name "-" version ".tar.xz"))
5699 (sha256
5700 (base32
5701 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
5702 (build-system gnu-build-system)
5703 (native-inputs
5704 `(("pkg-config" ,pkg-config)))
5705 (propagated-inputs
5706 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5707 `(("itstool" ,itstool)
5708 ("xmllint" ,libxml2)
5709 ("xsltproc" ,libxslt)))
5710 (inputs
5711 `(("yelp-xsl" ,yelp-xsl)))
5712 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5713 (synopsis "Yelp documentation tools")
5714 (description
5715 "Yelp-tools is a collection of scripts and build utilities to help create,
5716 manage, and publish documentation for Yelp and the web. Most of the heavy
5717 lifting is done by packages like yelp-xsl and itstool. This package just
5718 wraps things up in a developer-friendly way.")
5719 (license license:gpl2+)))
5720
5721 (define-public libgee
5722 (package
5723 (name "libgee")
5724 (version "0.20.3")
5725 (source (origin
5726 (method url-fetch)
5727 (uri (string-append "mirror://gnome/sources/libgee/"
5728 (version-major+minor version) "/"
5729 "libgee-" version ".tar.xz"))
5730 (sha256
5731 (base32
5732 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
5733 (build-system gnu-build-system)
5734 (arguments
5735 `(#:phases
5736 (modify-phases %standard-phases
5737 (add-after 'unpack 'fix-introspection-install-dir
5738 (lambda* (#:key outputs #:allow-other-keys)
5739 (let ((out (assoc-ref outputs "out")))
5740 (substitute* "gee/Makefile.in"
5741 (("@INTROSPECTION_GIRDIR@")
5742 (string-append out "/share/gir-1.0/"))
5743 (("@INTROSPECTION_TYPELIBDIR@")
5744 (string-append out "/lib/girepository-1.0/")))))))))
5745 (native-inputs
5746 `(("glib" ,glib "bin")
5747 ("pkg-config" ,pkg-config)))
5748 (inputs
5749 `(("glib" ,glib)
5750 ("gobject-introspection" ,gobject-introspection)))
5751 (home-page "https://wiki.gnome.org/Projects/Libgee")
5752 (synopsis "GObject collection library")
5753 (description
5754 "Libgee is a utility library providing GObject-based interfaces and
5755 classes for commonly used data structures.")
5756 (license license:lgpl2.1+)))
5757
5758 (define-public gexiv2
5759 (package
5760 (name "gexiv2")
5761 (version "0.12.0")
5762 (source (origin
5763 (method url-fetch)
5764 (uri (string-append "mirror://gnome/sources/" name "/"
5765 (version-major+minor version) "/"
5766 name "-" version ".tar.xz"))
5767 (sha256
5768 (base32
5769 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5770 (build-system meson-build-system)
5771 (native-inputs
5772 `(("gcr" ,gcr)
5773 ("glib" ,glib "bin")
5774 ("pkg-config" ,pkg-config)
5775 ("vala" ,vala)))
5776 (propagated-inputs
5777 ;; Listed in "Requires" section of gexiv2.pc
5778 `(("exiv2" ,exiv2)))
5779 (inputs
5780 `(("glib" ,glib)
5781 ("gobject-introspection" ,gobject-introspection)))
5782 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5783 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5784 (description
5785 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5786 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5787 metadata in photo and video files of various formats.")
5788 (license license:gpl2+)))
5789
5790 (define-public shotwell
5791 (package
5792 (name "shotwell")
5793 (version "0.30.9")
5794 (source (origin
5795 (method url-fetch)
5796 (uri (string-append "mirror://gnome/sources/shotwell/"
5797 (version-major+minor version) "/"
5798 "shotwell-" version ".tar.xz"))
5799 (sha256
5800 (base32
5801 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
5802 (build-system meson-build-system)
5803 (arguments
5804 '(#:glib-or-gtk? #t
5805 #:phases
5806 (modify-phases %standard-phases
5807 (add-after 'unpack 'skip-gtk-update-icon-cache
5808 (lambda _
5809 (substitute* "build-aux/meson/postinstall.py"
5810 (("gtk-update-icon-cache") (which "true"))
5811 (("update-desktop-database") (which "true")))
5812 #t)))))
5813 (propagated-inputs
5814 `(("dconf" ,dconf)))
5815 (native-inputs
5816 `(("gettext" ,gettext-minimal)
5817 ("glib:bin" ,glib "bin")
5818 ("itstool" ,itstool)
5819 ("pkg-config" ,pkg-config)
5820 ("vala" ,vala)))
5821 (inputs
5822 `(("gcr" ,gcr)
5823 ("gexiv2" ,gexiv2)
5824 ("gst-plugins-base" ,gst-plugins-base)
5825 ("gstreamer" ,gstreamer)
5826 ("json-glib" ,json-glib)
5827 ("libgdata" ,libgdata)
5828 ("libgee" ,libgee)
5829 ("libgphoto2" ,libgphoto2)
5830 ("libgudev" ,libgudev)
5831 ("libraw" ,libraw)
5832 ("libsoup" ,libsoup)
5833 ("libxml2" ,libxml2)
5834 ("sqlite" ,sqlite)
5835 ("webkitgtk" ,webkitgtk)))
5836 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5837 (synopsis "Photo manager for GNOME 3")
5838 (description
5839 "Shotwell is a digital photo manager designed for the GNOME desktop
5840 environment. It allows you to import photos from disk or camera, organize
5841 them by keywords and events, view them in full-window or fullscreen mode, and
5842 share them with others via social networking and more.")
5843 (license license:lgpl2.1+)))
5844
5845 (define-public file-roller
5846 (package
5847 (name "file-roller")
5848 (version "3.32.3")
5849 (source (origin
5850 (method url-fetch)
5851 (uri (string-append "mirror://gnome/sources/file-roller/"
5852 (version-major+minor version) "/"
5853 "file-roller-" version ".tar.xz"))
5854 (sha256
5855 (base32
5856 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5857 (build-system meson-build-system)
5858 (native-inputs
5859 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5860 ("intltool" ,intltool)
5861 ("itstool" ,itstool)
5862 ("pkg-config" ,pkg-config)
5863 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5864 ("glib:bin" ,glib "bin")))
5865 ;; TODO: Add libnautilus.
5866 (inputs
5867 `(("gtk+" ,gtk+)
5868 ("gdk-pixbuf" ,gdk-pixbuf)
5869 ("json-glib" ,json-glib)
5870 ("libarchive" ,libarchive)
5871 ("libnotify" ,libnotify)
5872 ("nettle" ,nettle)
5873 ("libxml2" ,libxml2)))
5874 (synopsis "Graphical archive manager for GNOME")
5875 (description "File Roller is an archive manager for the GNOME desktop
5876 environment that allows users to view, unpack, and create compressed archives
5877 such as gzip tarballs.")
5878 (home-page "http://fileroller.sourceforge.net/")
5879 (license license:gpl2+)))
5880
5881 (define-public gnome-session
5882 (package
5883 (name "gnome-session")
5884 (version "3.34.2")
5885 (source (origin
5886 (method url-fetch)
5887 (uri (string-append "mirror://gnome/sources/" name "/"
5888 (version-major+minor version) "/"
5889 name "-" version ".tar.xz"))
5890 (sha256
5891 (base32
5892 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
5893 (arguments
5894 '(#:glib-or-gtk? #t
5895 #:phases
5896 (modify-phases %standard-phases
5897 (add-before 'configure 'pre-configure
5898 (lambda* (#:key outputs #:allow-other-keys)
5899 ;; Use elogind instead of systemd.
5900 (substitute* "meson.build"
5901 (("libsystemd-login") "libelogind")
5902 (("and libsystemd_daemon_dep.found.*") ","))
5903 (substitute* "gnome-session/gsm-systemd.c"
5904 (("#include <systemd/sd-login.h>")
5905 "#include <elogind/sd-login.h>"))
5906 ;; Remove uses of the systemd daemon.
5907 (substitute* "gnome-session/gsm-autostart-app.c"
5908 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5909 #t))
5910 (add-after 'install 'wrap-gnome-session
5911 (lambda* (#:key inputs outputs #:allow-other-keys)
5912 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5913 (let ((glib (assoc-ref inputs "glib:bin"))
5914 (out (assoc-ref outputs "out")))
5915 (wrap-program (string-append out "/bin/gnome-session")
5916 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5917 #t))))
5918
5919 #:configure-flags
5920 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5921 "-Dman=false" ; FIXME: disabled because of docbook validation error
5922 "-Dsystemd_journal=false")))
5923 (build-system meson-build-system)
5924 (native-inputs
5925 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5926 ("pkg-config" ,pkg-config)
5927 ("intltool" ,intltool)
5928 ("xsltproc" ,libxslt)
5929 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5930 ("docbook-xsl" ,docbook-xsl)
5931 ("docbook-xml" ,docbook-xml)
5932 ("xmlto" ,xmlto)))
5933 (inputs
5934 `(("elogind" ,elogind)
5935 ("gnome-desktop" ,gnome-desktop)
5936 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5937 ("gtk+" ,gtk+)
5938 ("json-glib" ,json-glib)
5939 ("libsm" ,libsm)
5940 ("libxcomposite" ,libxcomposite)
5941 ("libxtst" ,libxtst)
5942 ("mesa" ,mesa)
5943 ("upower" ,upower)
5944 ("xtrans" ,xtrans)))
5945 (synopsis "Session manager for GNOME")
5946 (description
5947 "This package contains the GNOME session manager, as well as a
5948 configuration program to choose applications starting on login.")
5949 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5950 (license license:gpl2+)))
5951
5952 (define-public gjs
5953 (package
5954 (name "gjs")
5955 (version "1.58.3")
5956 (source (origin
5957 (method url-fetch)
5958 (uri (string-append "mirror://gnome/sources/" name "/"
5959 (version-major+minor version) "/"
5960 name "-" version ".tar.xz"))
5961 (sha256
5962 (base32
5963 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
5964 (build-system gnu-build-system)
5965 (arguments
5966 '(#:phases
5967 (modify-phases %standard-phases
5968 (add-before
5969 'check 'pre-check
5970 (lambda _
5971 ;; The test suite requires a running X server.
5972 (system "Xvfb :1 &")
5973 (setenv "DISPLAY" ":1")
5974
5975 ;; For the missing /etc/machine-id.
5976 (setenv "DBUS_FATAL_WARNINGS" "0")
5977
5978 ;; Our mozjs-38 package does not compile the required Intl API
5979 ;; support for these failing tests.
5980 (substitute* "installed-tests/js/testLocale.js"
5981 ((".*toBeDefined.*") "")
5982 ((".*expect\\(datestr\\).*") ""))
5983 (substitute* "installed-tests/scripts/testCommandLine.sh"
5984 (("Valentín") "")
5985 (("☭") ""))
5986 #t)))))
5987 (native-inputs
5988 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5989 ("pkg-config" ,pkg-config)
5990 ("xmllint" ,libxml2)
5991 ;; For testing
5992 ("dbus-launch" ,dbus)
5993 ("dconf" ,dconf) ; required to properly store settings
5994 ("uuidgen" ,util-linux)
5995 ("xvfb" ,xorg-server-for-tests)))
5996 (propagated-inputs
5997 ;; These are all in the Requires.private field of gjs-1.0.pc.
5998 `(("cairo" ,cairo)
5999 ("gobject-introspection" ,gobject-introspection)
6000 ("mozjs" ,mozjs-60)))
6001 (inputs
6002 `(("gtk+" ,gtk+)
6003 ("readline" ,readline)))
6004 (synopsis "Javascript bindings for GNOME")
6005 (home-page "https://live.gnome.org/Gjs")
6006 (description
6007 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6008 javascript engine and the GObject introspection framework.")
6009 (license license:gpl2+)))
6010
6011 (define-public gedit
6012 (package
6013 (name "gedit")
6014 (version "3.34.1")
6015 (source (origin
6016 (method url-fetch)
6017 (uri (string-append "mirror://gnome/sources/" name "/"
6018 (version-major+minor version) "/"
6019 name "-" version ".tar.xz"))
6020 (sha256
6021 (base32
6022 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
6023 (build-system meson-build-system)
6024 (arguments
6025 `(#:glib-or-gtk? #t
6026 #:configure-flags
6027 ;; Otherwise, the RUNPATH will lack the final path component.
6028 (list (string-append "-Dc_link_args=-Wl,-rpath="
6029 (assoc-ref %outputs "out") "/lib/gedit"))
6030
6031 ;; XXX: Generated .h files are sometimes used before being built.
6032 #:parallel-build? #f
6033
6034 #:phases
6035 (modify-phases %standard-phases
6036 (add-after 'unpack 'skip-gtk-update-icon-cache
6037 ;; Don't create 'icon-theme.cache'.
6038 (lambda _
6039 (substitute* "build-aux/meson/post_install.py"
6040 (("gtk-update-icon-cache") (which "true")))
6041 #t))
6042 (add-after 'unpack 'patch-libgd-fetch
6043 (lambda* (#:key inputs #:allow-other-keys)
6044 (let ((libgd (assoc-ref inputs "libgd")))
6045 ;; Calling git is unnecessary because libgd is fetched as a
6046 ;; native input to this package.
6047 (substitute* "meson.build"
6048 ((".*git.*") ""))
6049 (copy-recursively libgd "subprojects/libgd")
6050 #t)))
6051 (add-after 'install 'wrap-gedit
6052 (lambda* (#:key inputs outputs #:allow-other-keys)
6053 (let ((out (assoc-ref outputs "out"))
6054 (gtksourceview (assoc-ref inputs "gtksourceview"))
6055 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6056 (python-path (getenv "PYTHONPATH")))
6057 (wrap-program (string-append out "/bin/gedit")
6058 ;; For plugins.
6059 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6060 `("PYTHONPATH" ":" prefix (,python-path))
6061 ;; For language-specs.
6062 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6063 "/share")))))
6064 #t)))))
6065 (propagated-inputs
6066 `(("dconf" ,dconf)))
6067 (native-inputs
6068 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6069 ("intltool" ,intltool)
6070 ("itstool" ,itstool)
6071 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6072 ("gobject-introspection" ,gobject-introspection)
6073 ("libgd"
6074 ,(origin
6075 (method git-fetch)
6076 (uri (git-reference
6077 (url "https://gitlab.gnome.org/GNOME/libgd")
6078 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6079 (file-name (git-file-name "libgd" version))
6080 (sha256
6081 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6082 ("pkg-config" ,pkg-config)))
6083 (inputs
6084 `(("glib" ,glib)
6085 ("gspell" ,gspell)
6086 ("gtk+" ,gtk+)
6087 ("gtksourceview" ,gtksourceview)
6088 ("libpeas" ,libpeas)
6089 ("libxml2" ,libxml2)
6090 ("iso-codes" ,iso-codes)
6091 ("python-pygobject" ,python-pygobject)
6092 ("python" ,python)
6093 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6094 ("libx11" ,libx11)
6095 ("vala" ,vala)
6096 ("adwaita-icon-theme" ,adwaita-icon-theme)
6097 ("libsoup" ,libsoup)
6098 ("gnome-desktop" ,gnome-desktop)))
6099 (home-page "https://wiki.gnome.org/Apps/Gedit")
6100 (synopsis "GNOME text editor")
6101 (description "While aiming at simplicity and ease of use, gedit is a
6102 powerful general purpose text editor.")
6103 (license license:gpl2+)))
6104
6105 (define-public zenity
6106 (package
6107 (name "zenity")
6108 (version "3.32.0")
6109 (source (origin
6110 (method url-fetch)
6111 (uri (string-append "mirror://gnome/sources/zenity/"
6112 (version-major+minor version) "/"
6113 "zenity-" version ".tar.xz"))
6114 (sha256
6115 (base32
6116 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6117 (build-system gnu-build-system)
6118 (native-inputs
6119 `(("gettext" ,gettext-minimal)
6120 ("itstool" ,itstool)
6121 ("pkg-config" ,pkg-config)))
6122 (inputs
6123 `(("libnotify" ,libnotify)
6124 ("webkitgtk" ,webkitgtk)))
6125 (synopsis "Display graphical dialog boxes from shell scripts")
6126 (home-page "https://www.gnome.org")
6127 (description
6128 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6129 to display dialog boxes from the commandline and shell scripts.")
6130 (license license:lgpl2.0+)))
6131
6132 (define-public mutter
6133 (package
6134 (name "mutter")
6135 (version "3.34.2")
6136 (source (origin
6137 (method url-fetch)
6138 (uri (string-append "mirror://gnome/sources/" name "/"
6139 (version-major+minor version) "/"
6140 name "-" version ".tar.xz"))
6141 (sha256
6142 (base32
6143 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
6144 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6145 ;; versions of cogl and clutter. As a result, many of the inputs,
6146 ;; propagated-inputs, and configure flags used in cogl and clutter are
6147 ;; needed here as well.
6148 (build-system meson-build-system)
6149 (arguments
6150 '(;; XXX: All mutter tests fail with the following error:
6151 ;; Settings schema 'org.gnome.mutter' is not installed
6152 #:tests? #f
6153 #:glib-or-gtk? #t
6154 #:configure-flags
6155 ;; TODO: Enable profiler when Sysprof is packaged.
6156 (list "-Dprofiler=false"
6157 ;; Otherwise, the RUNPATH will lack the final path component.
6158 (string-append "-Dc_link_args=-Wl,-rpath="
6159 (assoc-ref %outputs "out") "/lib:"
6160 (assoc-ref %outputs "out") "/lib/mutter-5")
6161
6162 ;; The following flags are needed for the bundled clutter
6163 (string-append "-Dxwayland_path="
6164 (assoc-ref %build-inputs "xorg-server-xwayland")
6165 "/bin/Xwayland")
6166
6167 ;; the remaining flags are needed for the bundled cogl
6168 (string-append "-Dopengl_libname="
6169 (assoc-ref %build-inputs "mesa")
6170 "/lib/libGL.so"))))
6171 (native-inputs
6172 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6173 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6174 ("gobject-introspection" ,gobject-introspection)
6175 ("intltool" ,intltool)
6176 ("pkg-config" ,pkg-config)
6177 ("xorg-server" ,xorg-server-for-tests)
6178 ;; For git build
6179 ("autoconf" ,autoconf)
6180 ("automake" ,automake)
6181 ("libtool" ,libtool)))
6182 (propagated-inputs
6183 `(;; libmutter.pc refers to these:
6184 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6185 ("gtk+" ,gtk+)
6186 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6187 ("atk" ,atk)
6188 ("cairo" ,cairo)
6189 ("gdk-pixbuf" ,gdk-pixbuf)
6190 ("glib" ,glib)
6191 ("json-glib" ,json-glib)
6192 ("libinput" ,libinput)
6193 ("libx11" ,libx11)
6194 ("libxcomposite" ,libxcomposite)
6195 ("libxdamage" ,libxdamage)
6196 ("libxext" ,libxext)
6197 ("libxfixes" ,libxfixes)
6198 ("libxkbcommon" ,libxkbcommon)
6199 ("libxrandr" ,libxrandr)
6200 ("mesa" ,mesa)
6201 ("pango" ,pango)
6202 ("udev" ,eudev)
6203 ("xinput" ,xinput)))
6204 (inputs
6205 `(("elogind" ,elogind)
6206 ("gnome-desktop" ,gnome-desktop)
6207 ("gnome-settings-daemon" ,gnome-settings-daemon)
6208 ("libcanberra-gtk" ,libcanberra)
6209 ("libgudev" ,libgudev)
6210 ("libice" ,libice)
6211 ("libsm" ,libsm)
6212 ("libwacom" ,libwacom)
6213 ("libxkbfile" ,libxkbfile)
6214 ("libxrandr" ,libxrandr)
6215 ("libxtst" ,libxtst)
6216 ("pipewire" ,pipewire)
6217 ("startup-notification" ,startup-notification)
6218 ("upower-glib" ,upower)
6219 ("xkeyboard-config" ,xkeyboard-config)
6220 ("xorg-server-xwayland" ,xorg-server-xwayland)
6221 ("zenity" ,zenity)))
6222 (synopsis "Window and compositing manager")
6223 (home-page "https://www.gnome.org")
6224 (description
6225 "Mutter is a window and compositing manager that displays and manages your
6226 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6227 Clutter toolkit with solid window-management logic inherited from the Metacity
6228 window manager.")
6229 (license license:gpl2+)))
6230
6231 (define-public gnome-online-accounts
6232 (package
6233 (name "gnome-online-accounts")
6234 (version "3.36.0")
6235 (source (origin
6236 (method url-fetch)
6237 (uri (string-append "mirror://gnome/sources/" name "/"
6238 (version-major+minor version) "/"
6239 name "-" version ".tar.xz"))
6240 (sha256
6241 (base32
6242 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
6243 (outputs '("out" "lib"))
6244 (build-system glib-or-gtk-build-system)
6245 (arguments
6246 `(#:configure-flags
6247 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6248 #:phases
6249 (modify-phases %standard-phases
6250 (add-before 'configure 'patch-libgoa-output
6251 (lambda* (#:key outputs #:allow-other-keys)
6252 (let ((lib (assoc-ref outputs "lib")))
6253 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6254 (("@prefix@") lib)
6255 (("@exec_prefix@") lib)
6256 (("@libdir@") (string-append lib "/lib"))
6257 (("@includedir@") (string-append lib "/include"))
6258 (("@datadir@") (string-append lib "/share")))
6259 ;; Make sure gobject-introspection knows about the output
6260 ;; too (see <https://bugs.gnu.org/36535>).
6261 (setenv "outputs" "out lib")
6262 #t))))))
6263 (native-inputs
6264 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6265 ("gobject-introspection" ,gobject-introspection)
6266 ("intltool" ,intltool)
6267 ("pkg-config" ,pkg-config)
6268 ("vala" ,vala)
6269 ("xsltproc" ,libxslt)))
6270 (propagated-inputs
6271 `(("glib" ,glib) ; required by goa-1.0.pc
6272 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6273 (inputs
6274 `(("docbook-xsl" ,docbook-xsl)
6275 ("json-glib" ,json-glib)
6276 ("libsecret" ,libsecret)
6277 ("rest" ,rest)
6278 ("webkitgtk" ,webkitgtk)))
6279 (synopsis "Single sign-on framework for GNOME")
6280 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6281 (description
6282 "GNOME Online Accounts provides interfaces so that applications and
6283 libraries in GNOME can access the user's online accounts. It has providers for
6284 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6285 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6286 (license license:lgpl2.0+)))
6287
6288 (define-public evolution-data-server
6289 (package
6290 (name "evolution-data-server")
6291 (version "3.34.2")
6292 (source (origin
6293 (method url-fetch)
6294 (uri (string-append "mirror://gnome/sources/" name "/"
6295 (version-major+minor version) "/"
6296 name "-" version ".tar.xz"))
6297 (patches (search-patches "evolution-data-server-locales.patch"
6298 "evolution-data-server-libical-compat.patch"))
6299 (sha256
6300 (base32
6301 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
6302 (build-system cmake-build-system)
6303 (arguments
6304 '(#:configure-flags
6305 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6306 (runpaths (map (lambda (s)
6307 (string-append lib "/evolution-data-server/" s))
6308 '("addressbook-backends" "calendar-backends"
6309 "camel-providers" "credential-modules"
6310 "registry-modules"))))
6311 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6312 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6313 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6314 "-DENABLE_VALA_BINDINGS=ON"
6315 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6316 (string-append lib "/evolution-data-server;")
6317 (string-join runpaths ";"))
6318 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6319 #:phases
6320 (modify-phases %standard-phases
6321 (add-after 'unpack 'disable-failing-tests
6322 (lambda _
6323 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6324 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6325 (delete-file-recursively "tests/book-migration")
6326 (substitute* "tests/CMakeLists.txt"
6327 (("add_subdirectory\\(book-migration\\)") ""))
6328 #t))
6329 (add-after 'unpack 'patch-paths
6330 (lambda _
6331 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6332 "tests/libedata-book/data-test-utils.c"
6333 "tests/libedata-book/test-book-cache-utils.c"
6334 "tests/libedata-cal/test-cal-cache-utils.c")
6335 (("/bin/rm") (which "rm")))
6336 #t))
6337 (add-before 'configure 'dont-override-rpath
6338 (lambda _
6339 (substitute* "CMakeLists.txt"
6340 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6341 ;; Remove it so the configure flag is respected.
6342 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6343 #t)))))
6344 (native-inputs
6345 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6346 ("gobject-introspection" ,gobject-introspection)
6347 ("gperf" ,gperf)
6348 ("intltool" ,intltool)
6349 ("pkg-config" ,pkg-config)
6350 ("vala" ,vala)
6351 ("python" ,python-wrapper)))
6352 (propagated-inputs
6353 ;; These are all in the Requires field of .pc files.
6354 `(("gtk+" ,gtk+)
6355 ("libical" ,libical)
6356 ("libsecret" ,libsecret)
6357 ("libsoup" ,libsoup)
6358 ("nss" ,nss)
6359 ("sqlite" ,sqlite)))
6360 (inputs
6361 `(("bdb" ,bdb)
6362 ("gcr" ,gcr)
6363 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6364 ("json-glib" ,json-glib)
6365 ("libcanberra" ,libcanberra)
6366 ("libgweather" ,libgweather)
6367 ("mit-krb5" ,mit-krb5)
6368 ("openldap" ,openldap)
6369 ("webkitgtk" ,webkitgtk)))
6370 (synopsis "Store address books and calendars")
6371 (home-page "https://wiki.gnome.org/Apps/Evolution")
6372 (description
6373 "This package provides a unified backend for programs that work with
6374 contacts, tasks, and calendar information. It was originally developed for
6375 Evolution (hence the name), but is now used by other packages as well.")
6376 (license license:lgpl2.0)))
6377
6378 (define-public caribou
6379 (package
6380 (name "caribou")
6381 (version "0.4.21")
6382 (source (origin
6383 (method url-fetch)
6384 (uri (string-append "mirror://gnome/sources/" name "/"
6385 (version-major+minor version) "/"
6386 name "-" version ".tar.xz"))
6387 (sha256
6388 (base32
6389 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6390 (build-system glib-or-gtk-build-system)
6391 (arguments
6392 '(#:phases
6393 (modify-phases %standard-phases
6394 (add-before
6395 'build 'pre-build
6396 (lambda* (#:key outputs #:allow-other-keys)
6397 (let ((out (assoc-ref outputs "out")))
6398 ;; Use absolute shared library path in Caribou-1.0.typelib.
6399 (substitute* "libcaribou/Makefile"
6400 (("--shared-library=libcaribou.so")
6401 (string-append "--shared-library="
6402 out "/lib/libcaribou.so")))
6403 #t)))
6404 (add-after 'install 'wrap-programs
6405 (lambda* (#:key outputs #:allow-other-keys)
6406 (let* ((out (assoc-ref outputs "out"))
6407 (python-path (getenv "PYTHONPATH"))
6408 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6409 (for-each
6410 (lambda (prog)
6411 (wrap-program prog
6412 `("PYTHONPATH" ":" prefix (,python-path))
6413 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6414 (list (string-append out "/bin/caribou-preferences")
6415 (string-append out "/libexec/antler-keyboard"))))
6416 #t)))))
6417 (native-inputs
6418 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6419 ("gobject-introspection" ,gobject-introspection)
6420 ("intltool" ,intltool)
6421 ("pkg-config" ,pkg-config)
6422 ("python" ,python)
6423 ("vala" ,vala)
6424 ("xsltproc" ,libxslt)))
6425 (propagated-inputs
6426 ;; caribou-1.0.pc refers to all these.
6427 `(("libgee" ,libgee)
6428 ("libxklavier" ,libxklavier)
6429 ("libxtst" ,libxtst)
6430 ("gtk+" ,gtk+)))
6431 (inputs
6432 `(("clutter" ,clutter)
6433 ("dconf" ,dconf)
6434 ("gtk+-2" ,gtk+-2)
6435 ("python-pygobject" ,python-pygobject)))
6436 (synopsis "Text entry and UI navigation application")
6437 (home-page "https://wiki.gnome.org/Projects/Caribou")
6438 (description
6439 "Caribou is an input assistive technology intended for switch and pointer
6440 users.")
6441 (license license:lgpl2.1)))
6442
6443 (define-public network-manager
6444 (package
6445 (name "network-manager")
6446 (version "1.24.0")
6447 (source (origin
6448 (method url-fetch)
6449 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6450 (version-major+minor version) "/"
6451 "NetworkManager-" version ".tar.xz"))
6452 (patches (search-patches "network-manager-plugin-path.patch"))
6453 (sha256
6454 (base32
6455 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
6456 (modules '((guix build utils)))
6457 (snippet
6458 '(begin
6459 (substitute* "src/devices/wwan/nm-modem-manager.c"
6460 (("systemd") "elogind"))
6461 #t))))
6462 (build-system meson-build-system)
6463 (outputs '("out"
6464 "doc")) ; 8 MiB of gtk-doc HTML
6465 (arguments
6466 `(#:configure-flags
6467 (let ((out (assoc-ref %outputs "out"))
6468 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6469 "/sbin/dhclient")))
6470 (list
6471 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6472 ;; component.
6473 (string-append "-Dc_link_args=-Wl,-rpath="
6474 out "/lib:"
6475 out "/lib/NetworkManager/" ,version)
6476 "-Dsystemd_journal=false"
6477 "-Dsession_tracking=elogind"
6478 "-Dsuspend_resume=elogind"
6479 "-Dsystemdsystemunitdir=no"
6480 "-Dsession_tracking_consolekit=false"
6481 "-Ddhcpcd=no"
6482 "-Ddhcpcanon=no"
6483 "-Dcrypto=gnutls"
6484 "-Diwd=true"
6485 "-Dlibaudit=yes"
6486 "-Dqt=false"
6487 "-Ddocs=true"
6488 "--sysconfdir=/etc"
6489 "--localstatedir=/var"
6490 (string-append "-Dudev_dir="
6491 out "/lib/udev")
6492 (string-append "-Ddbus_conf_dir="
6493 out "/etc/dbus-1/system.d")
6494
6495 (string-append "-Ddhclient=" dhclient)))
6496 #:phases
6497 (modify-phases %standard-phases
6498 (add-before 'configure 'pre-configure
6499 (lambda _
6500 ;; These tests try to test aspects of network-manager's
6501 ;; functionality within restricted containers, but they don't
6502 ;; cope with being already in the Guix build jail as that jail
6503 ;; lacks some features that they would like to proxy over (like
6504 ;; a /sys mount).
6505 (substitute* "src/platform/tests/meson.build"
6506 ((".*test-address-linux.*") "")
6507 ((".*test-cleanup-linux.*") "")
6508 ((".*test-link-linux.*") "")
6509 ((".*test-route-linux.*") ""))
6510 (substitute* "src/devices/tests/meson.build"
6511 ((".*test-acd.*") "")
6512 ((".*test-lldp.*") ""))
6513 #t))
6514 (add-after 'unpack 'patch-docbook-xml
6515 (lambda* (#:key inputs #:allow-other-keys)
6516 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6517 "/xml/dtd/docbook")))
6518 (substitute* (find-files "." ".*\\.(xsl|xml)")
6519 (("http://.*/docbookx\\.dtd")
6520 (string-append xmldoc "/docbookx.dtd")))
6521 #t)))
6522 (add-before 'check 'pre-check
6523 (lambda _
6524 ;; For the missing /etc/machine-id.
6525 (setenv "DBUS_FATAL_WARNINGS" "0")
6526 #t))
6527 (add-before 'install 'no-polkit-magic
6528 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
6529 (lambda _
6530 (setenv "PKEXEC_UID" "something")
6531 #t))
6532 (add-after 'install 'move-doc
6533 (lambda* (#:key outputs #:allow-other-keys)
6534 (let ((out (assoc-ref outputs "out"))
6535 (doc (assoc-ref outputs "doc")))
6536 (mkdir-p (string-append doc "/share"))
6537 (for-each (lambda (directory)
6538 (copy-recursively (string-append out directory)
6539 (string-append doc directory))
6540 (delete-file-recursively
6541 (string-append out directory)))
6542 '("/share/doc" "/share/gtk-doc"))
6543 #t))))))
6544 (propagated-inputs
6545 `(("glib" ,glib)))
6546 (native-inputs
6547 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6548 ("gtk-doc" ,gtk-doc)
6549 ("gobject-introspection" ,gobject-introspection)
6550 ("docbook-xml" ,docbook-xml)
6551 ("docbook-xsl" ,docbook-xsl)
6552 ("intltool" ,intltool)
6553 ("libxslt" ,libxslt)
6554 ("libxml2" ,libxml2)
6555 ("pkg-config" ,pkg-config)
6556 ("vala" ,vala)
6557 ;; For testing.
6558 ("python" ,python-wrapper)
6559 ("python-dbus" ,python-dbus)
6560 ("python-pygobject" ,python-pygobject)))
6561 (inputs
6562 `(("curl" ,curl)
6563 ("cyrus-sasl" ,cyrus-sasl)
6564 ("dbus-glib" ,dbus-glib)
6565 ("dnsmasq" ,dnsmasq)
6566 ("eudev" ,eudev)
6567 ("gnutls" ,gnutls)
6568 ("iptables" ,iptables)
6569 ("isc-dhcp" ,isc-dhcp)
6570 ("iwd" ,iwd) ; wpa_supplicant alternative
6571 ("jansson" ,jansson)
6572 ("libaudit" ,audit)
6573 ("libgcrypt" ,libgcrypt)
6574 ("libgudev" ,libgudev)
6575 ("libndp" ,libndp)
6576 ("libnl" ,libnl)
6577 ("libsoup" ,libsoup)
6578 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
6579 ("modem-manager" ,modem-manager)
6580 ("newt" ,newt) ;for the 'nmtui' console interface
6581 ("openresolv" ,openresolv) ; alternative resolv.conf manager
6582 ("polkit" ,polkit)
6583 ("ppp" ,ppp)
6584 ("readline" ,readline)
6585 ("util-linux" ,util-linux)
6586 ("elogind" ,elogind)))
6587 (synopsis "Network connection manager")
6588 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6589 (description
6590 "NetworkManager is a system network service that manages your network
6591 devices and connections, attempting to keep active network connectivity when
6592 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6593 devices, and provides VPN integration with a variety of different VPN
6594 services.")
6595 ;; “This NetworkManager project consists of the daemon, client tools, and
6596 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6597 ;; GPL-2.0+.”
6598 (license (list license:gpl2+
6599 license:lgpl2.1+))
6600 (properties '((upstream-name . "NetworkManager")))))
6601
6602 (define-public network-manager-openvpn
6603 (package
6604 (name "network-manager-openvpn")
6605 (version "1.8.12")
6606 (source (origin
6607 (method url-fetch)
6608 (uri (string-append
6609 "mirror://gnome/sources/NetworkManager-openvpn/"
6610 (version-major+minor version)
6611 "/NetworkManager-openvpn-" version ".tar.xz"))
6612 (sha256
6613 (base32
6614 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
6615 (build-system gnu-build-system)
6616 (arguments
6617 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6618 #:phases
6619 (modify-phases %standard-phases
6620 (add-after 'configure 'patch-path
6621 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6622 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6623 "/sbin/openvpn"))
6624 (modprobe (string-append (assoc-ref inputs "kmod")
6625 "/bin/modprobe"))
6626 (pretty-ovpn (string-append "\"" ovpn "\"")))
6627 (for-each
6628 (lambda (file)
6629 (substitute* file
6630 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6631 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6632 (("\"/sbin/openvpn\"") pretty-ovpn)
6633 (("/sbin/modprobe") modprobe)))
6634 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6635 #t)))))
6636 (native-inputs
6637 `(("pkg-config" ,pkg-config)
6638 ("intltool" ,intltool)))
6639 (inputs
6640 `(("gtk+" ,gtk+)
6641 ("kmod" ,kmod)
6642 ("openvpn" ,openvpn)
6643 ("network-manager" ,network-manager)
6644 ("libnma" ,libnma)
6645 ("libsecret" ,libsecret)))
6646 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6647 (synopsis "OpenVPN plug-in for NetworkManager")
6648 (description
6649 "This extension of NetworkManager allows it to take care of connections
6650 to virtual private networks (VPNs) via OpenVPN.")
6651 (license license:gpl2+)
6652 (properties `((upstream-name . "NetworkManager-openvpn")))))
6653
6654 (define-public network-manager-vpnc
6655 (package
6656 (name "network-manager-vpnc")
6657 (version "1.2.6")
6658 (source (origin
6659 (method url-fetch)
6660 (uri (string-append
6661 "mirror://gnome/sources/NetworkManager-vpnc/"
6662 (version-major+minor version)
6663 "/NetworkManager-vpnc-" version ".tar.xz"))
6664 (sha256
6665 (base32
6666 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6667 (build-system gnu-build-system)
6668 (arguments
6669 `(#:configure-flags '("--enable-absolute-paths"
6670 "--localstatedir=/var"
6671 ;; libnm-glib has been removed from network-manager
6672 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
6673 "--with-libnm-glib=no")
6674 #:phases
6675 (modify-phases %standard-phases
6676 (add-after 'configure 'patch-path
6677 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6678 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6679 "/sbin/vpnc"))
6680 (modprobe (string-append (assoc-ref inputs "kmod")
6681 "/bin/modprobe"))
6682 (pretty-ovpn (string-append "\"" vpnc "\"")))
6683 (substitute* "src/nm-vpnc-service.c"
6684 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6685 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6686 (("\"/sbin/vpnc\"") pretty-ovpn)
6687 (("/sbin/modprobe") modprobe)))
6688 #t)))))
6689 (native-inputs
6690 `(("pkg-config" ,pkg-config)
6691 ("intltool" ,intltool)))
6692 (inputs
6693 `(("gtk+" ,gtk+)
6694 ("kmod" ,kmod)
6695 ("vpnc" ,vpnc)
6696 ("network-manager" ,network-manager)
6697 ("libnma" ,libnma)
6698 ("libsecret" ,libsecret)))
6699 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6700 (synopsis "VPNC plug-in for NetworkManager")
6701 (description
6702 "Support for configuring virtual private networks based on VPNC.
6703 Compatible with Cisco VPN concentrators configured to use IPsec.")
6704 (license license:gpl2+)
6705 (properties `((upstream-name . "NetworkManager-vpnc")))))
6706
6707 (define-public network-manager-openconnect
6708 (package
6709 (name "network-manager-openconnect")
6710 (version "1.2.6")
6711 (source (origin
6712 (method url-fetch)
6713 (uri (string-append
6714 "mirror://gnome/sources/NetworkManager-openconnect/"
6715 (version-major+minor version)
6716 "/NetworkManager-openconnect-" version ".tar.xz"))
6717 (sha256
6718 (base32
6719 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6720 (build-system gnu-build-system)
6721 (arguments
6722 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6723 #:phases
6724 (modify-phases %standard-phases
6725 (add-after 'configure 'patch-path
6726 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6727 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6728 "/sbin/openconnect"))
6729 (modprobe (string-append (assoc-ref inputs "kmod")
6730 "/bin/modprobe"))
6731 (pretty-ovpn (string-append "\"" openconnect "\"")))
6732 (substitute* "src/nm-openconnect-service.c"
6733 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6734 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6735 (("/sbin/modprobe") modprobe)))
6736 #t)))))
6737 (native-inputs
6738 `(("intltool" ,intltool)
6739 ("libnma" ,libnma)
6740 ("pkg-config" ,pkg-config)))
6741 (inputs
6742 `(("gcr" ,gcr)
6743 ("gtk+" ,gtk+)
6744 ("kmod" ,kmod)
6745 ("libsecret" ,libsecret)
6746 ("libxml2" ,libxml2)
6747 ("lz4" ,lz4)
6748 ("network-manager" ,network-manager)
6749 ("openconnect" ,openconnect)))
6750 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6751 (synopsis "OpenConnect plug-in for NetworkManager")
6752 (description
6753 "This extension of NetworkManager allows it to take care of connections
6754 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6755 Cisco's AnyConnect SSL VPN.")
6756 (license license:gpl2+)
6757 (properties `((upstream-name . "NetworkManager-openconnect")
6758
6759 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6760 ;; file refers to account "nm-openconnect". Specify it here
6761 ;; so that 'network-manager-service-type' creates it.
6762 (user-accounts . ("nm-openconnect"))))))
6763
6764 (define-public mobile-broadband-provider-info
6765 (package
6766 (name "mobile-broadband-provider-info")
6767 (version "20190116")
6768 (source (origin
6769 (method url-fetch)
6770 (uri (string-append
6771 "mirror://gnome/sources/"
6772 "mobile-broadband-provider-info/" version "/"
6773 "mobile-broadband-provider-info-" version ".tar.xz"))
6774 (sha256
6775 (base32
6776 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6777 (build-system gnu-build-system)
6778 (arguments
6779 `(#:tests? #f)) ; no tests
6780 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6781 (synopsis "Database of broadband connection configuration")
6782 (description "Database of broadband connection configuration.")
6783 (license license:public-domain)))
6784
6785 (define-public network-manager-applet
6786 (package
6787 (name "network-manager-applet")
6788 (version "1.16.0")
6789 (source (origin
6790 (method url-fetch)
6791 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6792 (version-major+minor version) "/"
6793 "network-manager-applet-" version ".tar.xz"))
6794 (sha256
6795 (base32
6796 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
6797 (build-system meson-build-system)
6798 (arguments
6799 '(#:glib-or-gtk? #t))
6800 (native-inputs
6801 `(("intltool" ,intltool)
6802 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6803 ("gobject-introspection" ,gobject-introspection)
6804 ("gtk-doc" ,gtk-doc)
6805 ("pkg-config" ,pkg-config)))
6806 (propagated-inputs
6807 ;; libnm-gtk.pc refers to all these.
6808 `(("dbus-glib" ,dbus-glib)
6809 ("gtk+" ,gtk+)
6810 ("network-manager" ,network-manager)))
6811 (inputs
6812 `(("gcr" ,gcr)
6813 ("libnma" ,libnma)
6814 ("libgudev" ,libgudev)
6815 ("libnotify" ,libnotify)
6816 ("libsecret" ,libsecret)
6817 ("libselinux" ,libselinux)
6818 ("jansson" ,jansson) ; for team support
6819 ("modem-manager" ,modem-manager)))
6820 (synopsis "Applet for managing network connections")
6821 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6822 (description
6823 "This package contains a systray applet for NetworkManager. It displays
6824 the available networks and allows users to easily switch between them.")
6825 (license license:gpl2+)))
6826
6827 (define-public libxml++
6828 (package
6829 (name "libxml++")
6830 (version "3.0.1")
6831 (source (origin
6832 (method url-fetch)
6833 (uri (string-append "mirror://gnome/sources/" name "/"
6834 (version-major+minor version) "/"
6835 name "-" version ".tar.xz"))
6836 (sha256
6837 (base32
6838 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6839 (build-system gnu-build-system)
6840 ;; libxml++-3.0.pc refers to all these.
6841 (propagated-inputs
6842 `(("libxml2" ,libxml2)
6843 ("glibmm" ,glibmm)))
6844 (native-inputs
6845 `(("perl" ,perl)
6846 ("pkg-config" ,pkg-config)))
6847 (home-page "http://libxmlplusplus.sourceforge.net/")
6848 (synopsis "C++ wrapper for XML parser library libxml2")
6849 (description
6850 "This package provides a C++ wrapper for the XML parser library
6851 libxml2.")
6852 (license license:lgpl2.1+)))
6853
6854 (define-public libxml++-2
6855 (package
6856 (inherit libxml++)
6857 (name "libxml++")
6858 (version "2.40.1")
6859 (source (origin
6860 (method url-fetch)
6861 (uri (string-append "mirror://gnome/sources/" name "/"
6862 (version-major+minor version) "/"
6863 name "-" version ".tar.xz"))
6864 (sha256
6865 (base32
6866 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6867
6868 (define-public gdm
6869 (package
6870 (name "gdm")
6871 (version "3.34.1")
6872 (source (origin
6873 (method url-fetch)
6874 (uri (string-append "mirror://gnome/sources/" name "/"
6875 (version-major+minor version) "/"
6876 name "-" version ".tar.xz"))
6877 (sha256
6878 (base32
6879 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
6880 (patches (search-patches "gdm-default-session.patch"))))
6881 (build-system glib-or-gtk-build-system)
6882 (arguments
6883 '(#:configure-flags
6884 `("--without-plymouth"
6885 "--disable-systemd-journal"
6886
6887 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6888 ;; instead of having to replace it (i.e., stopping the mingetty
6889 ;; service for TTY 1 before starting GDM).
6890 "--with-initial-vt=7"
6891
6892 ;; Use '/etc/environment' for locale settings instead of the
6893 ;; systemd-specific '/etc/locale.conf'.
6894 "--with-lang-file=/etc/environment"
6895
6896 ,(string-append "--with-udevdir="
6897 (assoc-ref %outputs "out") "/lib/udev")
6898
6899 "--localstatedir=/var"
6900 ,(string-append "--with-default-path="
6901 (string-join '("/run/setuid-programs"
6902 "/run/current-system/profile/bin"
6903 "/run/current-system/profile/sbin")
6904 ":"))
6905 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6906 ;; XDG_DATA_DIRS so that it finds its schemas.
6907 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6908 #:phases
6909 (modify-phases %standard-phases
6910 (add-before
6911 'configure 'pre-configure
6912 (lambda* (#:key inputs outputs #:allow-other-keys)
6913 ;; We don't have <systemd/sd-daemon.h>.
6914 (substitute* '("common/gdm-log.c"
6915 "daemon/gdm-server.c"
6916 "daemon/gdm-session-worker.c"
6917 "daemon/gdm-session-worker-job.c")
6918 (("#include <systemd/sd-daemon\\.h>") ""))
6919 ;; Use elogind for sd-login.
6920 (substitute* '("common/gdm-common.c"
6921 "daemon/gdm-local-display-factory.c"
6922 "daemon/gdm-manager.c"
6923 "libgdm/gdm-user-switching.c")
6924 (("#include <systemd/sd-login\\.h>")
6925 "#include <elogind/sd-login.h>"))
6926 ;; Check for elogind.
6927 (substitute* '("configure")
6928 (("libsystemd")
6929 "libelogind"))
6930 ;; Look for system-installed sessions in
6931 ;; /run/current-system/profile/share.
6932 (substitute* '("libgdm/gdm-sessions.c"
6933 "daemon/gdm-session.c"
6934 "daemon/gdm-display.c"
6935 "daemon/gdm-launch-environment.c")
6936 (("DATADIR \"/x")
6937 "\"/run/current-system/profile/share/x")
6938 (("DATADIR \"/wayland")
6939 "\"/run/current-system/profile/share/wayland")
6940 (("DATADIR \"/gnome")
6941 "\"/run/current-system/profile/share/gnome"))
6942 (let ((propagate '("GDM_CUSTOM_CONF"
6943 "GDM_DBUS_DAEMON"
6944 "GDM_X_SERVER"
6945 "GDM_X_SESSION"
6946 ;; XXX: Remove this once GNOME Shell is
6947 ;; a dependency of GDM.
6948 "XDG_DATA_DIRS")))
6949 (substitute* "daemon/gdm-session.c"
6950 (("set_up_session_environment \\(self\\);")
6951 (apply string-append
6952 "set_up_session_environment (self);\n"
6953 (map (lambda (name)
6954 (string-append
6955 "gdm_session_set_environment_variable "
6956 "(self, \"" name "\","
6957 "g_getenv (\"" name "\"));\n"))
6958 propagate)))))
6959 ;; Find the configuration file using an environment variable.
6960 (substitute* '("common/gdm-settings.c")
6961 (("GDM_CUSTOM_CONF")
6962 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6963 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6964 " : GDM_CUSTOM_CONF)")))
6965 ;; Use service-supplied path to X.
6966 (substitute* '("daemon/gdm-server.c")
6967 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6968 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6969 (substitute* '("daemon/gdm-wayland-session.c"
6970 "daemon/gdm-x-session.c")
6971 (("\"dbus-daemon\"")
6972 "g_getenv (\"GDM_DBUS_DAEMON\")")
6973 (("X_SERVER")
6974 "g_getenv (\"GDM_X_SERVER\")")
6975 (("GDMCONFDIR \"/Xsession\"")
6976 "g_getenv (\"GDM_X_SESSION\")"))
6977 ;; Use an absolute path for GNOME Session.
6978 (substitute* "daemon/gdm-launch-environment.c"
6979 (("\"gnome-session\"")
6980 (string-append "\"" (assoc-ref inputs "gnome-session")
6981 "/bin/gnome-session\"")))
6982 ;; Do not automatically select the placeholder session.
6983 (substitute* "daemon/gdm-session.c"
6984 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6985 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6986 "(g_strcmp0(search_dirs[i], \""
6987 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6988 "\") == 0 && "
6989 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6990 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
6991 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
6992 #t))
6993 ;; GDM requires that there be at least one desktop entry
6994 ;; file. This phase installs a hidden one that simply
6995 ;; fails. This enables users to use GDM with a
6996 ;; '~/.xsession' script with no other desktop entry files.
6997 ;; See <https://bugs.gnu.org/35068>.
6998 (add-after 'install 'install-placeholder-desktop-entry
6999 (lambda* (#:key inputs outputs #:allow-other-keys)
7000 (let* ((out (assoc-ref outputs "out"))
7001 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7002 (fail (string-append sessions "/fail.desktop")))
7003 (mkdir-p sessions)
7004 (with-output-to-file fail
7005 (lambda ()
7006 (for-each
7007 display
7008 '("[Desktop Entry]\n"
7009 "Encoding=UTF-8\n"
7010 "Type=Application\n"
7011 "Name=Fail\n"
7012 "Comment=This session fails immediately.\n"
7013 "NoDisplay=true\n"
7014 "Exec=false\n"))))
7015 #t)))
7016 ;; GDM needs GNOME Session to run these applications. We link
7017 ;; their autostart files in `share/gdm/greeter/autostart'
7018 ;; because GDM explicitly tells GNOME Session to look there.
7019 ;;
7020 ;; XXX: GNOME Shell should be linked here too, but currently
7021 ;; GNOME Shell depends on GDM.
7022 (add-after 'install 'link-autostart-files
7023 (lambda* (#:key inputs outputs #:allow-other-keys)
7024 (let* ((out (assoc-ref outputs "out"))
7025 (autostart (string-append out "/share/gdm/"
7026 "greeter/autostart"))
7027 (settings (assoc-ref inputs "gnome-settings-daemon")))
7028 (mkdir-p autostart)
7029 (with-directory-excursion autostart
7030 (for-each (lambda (desktop)
7031 (symlink desktop (basename desktop)))
7032 (find-files (string-append settings "/etc/xdg"))))
7033 #t))))))
7034 (native-inputs
7035 `(("dconf" ,dconf)
7036 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7037 ("gobject-introspection" ,gobject-introspection)
7038 ("intltool" ,intltool)
7039 ("itstool" ,itstool)
7040 ("pkg-config" ,pkg-config)
7041 ("xmllint" ,libxml2)))
7042 (inputs
7043 `(("accountsservice" ,accountsservice)
7044 ("check" ,check) ; for testing
7045 ("elogind" ,elogind)
7046 ("gnome-session" ,gnome-session)
7047 ("gnome-settings-daemon" ,gnome-settings-daemon)
7048 ("gtk+" ,gtk+)
7049 ("iso-codes" ,iso-codes)
7050 ("libcanberra" ,libcanberra)
7051 ("linux-pam" ,linux-pam)))
7052 (synopsis "Display manager for GNOME")
7053 (home-page "https://wiki.gnome.org/Projects/GDM/")
7054 (description
7055 "GNOME Display Manager is a system service that is responsible for
7056 providing graphical log-ins and managing local and remote displays.")
7057 (license license:gpl2+)))
7058
7059 (define-public libgtop
7060 (package
7061 (name "libgtop")
7062 (version "2.40.0")
7063 (source (origin
7064 (method url-fetch)
7065 (uri (string-append "mirror://gnome/sources/libgtop/"
7066 (version-major+minor version) "/"
7067 "libgtop-" version ".tar.xz"))
7068 (sha256
7069 (base32
7070 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7071 (build-system gnu-build-system)
7072 (native-inputs
7073 `(("gobject-introspection" ,gobject-introspection)
7074 ("intltool" ,intltool)
7075 ("perl" ,perl)
7076 ("pkg-config" ,pkg-config)))
7077 (propagated-inputs
7078 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7079 (synopsis "Portable system access library")
7080 (home-page "https://www.gnome.org/")
7081 (description
7082 "LibGTop is a library to get system specific data such as CPU and memory
7083 usage and information about running processes.")
7084 (license license:gpl2+)))
7085
7086 (define-public gnome-bluetooth
7087 (package
7088 (name "gnome-bluetooth")
7089 (version "3.34.0")
7090 (source (origin
7091 (method url-fetch)
7092 (uri (string-append "mirror://gnome/sources/" name "/"
7093 (version-major+minor version) "/"
7094 name "-" version ".tar.xz"))
7095 (sha256
7096 (base32
7097 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
7098 (build-system meson-build-system)
7099 (native-inputs
7100 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7101 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7102 ("gobject-introspection" ,gobject-introspection)
7103 ("intltool" ,intltool)
7104 ("pkg-config" ,pkg-config)
7105 ("xmllint" ,libxml2)))
7106 (propagated-inputs
7107 ;; gnome-bluetooth-1.0.pc refers to all these.
7108 `(("glib" ,glib)
7109 ("gtk+" ,gtk+)))
7110 (inputs
7111 `(("eudev" ,eudev)
7112 ("libcanberra" ,libcanberra)
7113 ("libnotify" ,libnotify)))
7114 (synopsis "GNOME Bluetooth subsystem")
7115 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7116 (description
7117 "This package contains tools for managing and manipulating Bluetooth
7118 devices using the GNOME desktop.")
7119 (license license:lgpl2.1+)))
7120
7121 (define-public gnome-control-center
7122 (package
7123 (name "gnome-control-center")
7124 (version "3.34.2")
7125 (source (origin
7126 (method url-fetch)
7127 (uri (string-append "mirror://gnome/sources/" name "/"
7128 (version-major+minor version) "/"
7129 name "-" version ".tar.xz"))
7130 (sha256
7131 (base32
7132 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7133 (build-system meson-build-system)
7134 (arguments
7135 '(#:glib-or-gtk? #t
7136 #:configure-flags
7137 (list "-Dcheese=false"
7138 (string-append "-Dgnome_session_libexecdir="
7139 (assoc-ref %build-inputs "gnome-session")
7140 "/libexec"))
7141 #:phases
7142 (modify-phases %standard-phases
7143 (add-before 'configure 'patch-paths
7144 (lambda* (#:key inputs #:allow-other-keys)
7145 (let ((libc (assoc-ref inputs "libc"))
7146 (tzdata (assoc-ref inputs "tzdata"))
7147 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7148 (nm-applet (assoc-ref inputs "network-manager-applet"))
7149 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7150 (substitute* "panels/datetime/tz.h"
7151 (("/usr/share/zoneinfo/zone.tab")
7152 (string-append tzdata "/share/zoneinfo/zone.tab")))
7153 (substitute* "tests/datetime/test-endianess.c"
7154 (("/usr/share/locale")
7155 (string-append libc "/share/locale")))
7156 (substitute* "panels/region/cc-region-panel.c"
7157 (("\"gkbd-keyboard-display")
7158 (string-append "\"" libgnomekbd
7159 "/bin/gkbd-keyboard-display")))
7160 (substitute* '("panels/network/net-device-wifi.c"
7161 "panels/network/net-device.c"
7162 "panels/network/connection-editor/net-connection-editor.c")
7163 (("\"nm-connection-editor")
7164 (string-append "\"" nm-applet
7165 "/bin/nm-connection-editor")))
7166 (substitute* '("panels/user-accounts/run-passwd.c")
7167 (("/usr/bin/passwd")
7168 "/run/setuid-programs/passwd"))
7169 (substitute* "panels/info/cc-info-overview-panel.c"
7170 (("DATADIR \"/gnome/gnome-version.xml\"")
7171 (string-append "\"" gnome-desktop
7172 "/share/gnome/gnome-version.xml\"")))
7173 #t)))
7174 (add-after 'unpack 'skip-gtk-update-icon-cache
7175 ;; Don't create 'icon-theme.cache'.
7176 (lambda _
7177 (substitute* "build-aux/meson/meson_post_install.py"
7178 (("gtk-update-icon-cache") (which "true")))
7179 #t)))))
7180 (native-inputs
7181 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7182 ("intltool" ,intltool)
7183 ("pkg-config" ,pkg-config)
7184 ("xsltproc" ,libxslt)
7185 ;; For tests
7186 ("hicolor-icon-theme" ,hicolor-icon-theme)
7187 ("python-dbusmock" ,python-dbusmock)
7188 ("xorg-server" ,xorg-server-for-tests)))
7189 (inputs
7190 `(("accountsservice" ,accountsservice)
7191 ("clutter-gtk" ,clutter-gtk)
7192 ("colord-gtk" ,colord-gtk)
7193 ("cups" ,cups)
7194 ("dconf" ,dconf)
7195 ("docbook-xsl" ,docbook-xsl)
7196 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7197 ("gnome-bluetooth" ,gnome-bluetooth)
7198 ("gnome-desktop" ,gnome-desktop)
7199 ("gnome-online-accounts" ,gnome-online-accounts)
7200 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7201 ("gnome-session" ,gnome-session)
7202 ("gnome-settings-daemon" ,gnome-settings-daemon)
7203 ("grilo" ,grilo)
7204 ("gsound" ,gsound)
7205 ("ibus" ,ibus)
7206 ("libcanberra" ,libcanberra)
7207 ("libgnomekbd" ,libgnomekbd)
7208 ("libgudev" ,libgudev)
7209 ("libgtop" ,libgtop)
7210 ("libnma" ,libnma)
7211 ("libpwquality" ,libpwquality)
7212 ("libsecret" ,libsecret)
7213 ("libsoup" ,libsoup)
7214 ("libxml2" ,libxml2)
7215 ("libwacom" ,libwacom)
7216 ("mesa" ,mesa)
7217 ("mit-krb5" ,mit-krb5)
7218 ("modem-manager" ,modem-manager)
7219 ("network-manager-applet" ,network-manager-applet)
7220 ("polkit" ,polkit)
7221 ("pulseaudio" ,pulseaudio)
7222 ("smbclient" ,samba)
7223 ("tzdata" ,tzdata)
7224 ("udisks" ,udisks)
7225 ("upower" ,upower)))
7226 (synopsis "Utilities to configure the GNOME desktop")
7227 (home-page "https://www.gnome.org/")
7228 (description
7229 "This package contains configuration applets for the GNOME desktop,
7230 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7231 properties, sound setup, desktop theme and background, user interface
7232 properties, screen resolution, and other GNOME parameters.")
7233 (license license:gpl2+)))
7234
7235 (define-public gnome-shell
7236 (package
7237 (name "gnome-shell")
7238 (version "3.34.2")
7239 (source (origin
7240 (method url-fetch)
7241 (uri (string-append "mirror://gnome/sources/" name "/"
7242 (version-major+minor version) "/"
7243 name "-" version ".tar.xz"))
7244 (sha256
7245 (base32
7246 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7247 (patches (search-patches "gnome-shell-theme.patch"
7248 "gnome-shell-disable-test.patch"))
7249 (modules '((guix build utils)))
7250 (snippet
7251 #~(begin
7252 ;; Copy images for use on the GDM log-in screen.
7253 (copy-file #$(file-append %artwork-repository
7254 "/slim/0.x/background.png")
7255 "data/theme/guix-background.png")
7256 (copy-file #$(file-append %artwork-repository
7257 "/logo/Guix-horizontal-white.svg")
7258 "data/theme/guix-logo.svg")
7259 #t))))
7260 (build-system meson-build-system)
7261 (arguments
7262 `(#:glib-or-gtk? #t
7263 #:disallowed-references ((,glib "bin")
7264 ,inkscape ,libxslt
7265 ,ruby-sass)
7266 #:configure-flags
7267 (list "-Dsystemd=false"
7268 ;; Otherwise, the RUNPATH will lack the final path component.
7269 (string-append "-Dc_link_args=-Wl,-rpath="
7270 (assoc-ref %outputs "out")
7271 "/lib/gnome-shell"))
7272
7273 #:modules ((guix build meson-build-system)
7274 (guix build utils)
7275 (srfi srfi-1))
7276
7277 #:phases
7278 (modify-phases %standard-phases
7279 (add-after 'unpack 'fix-keysdir
7280 (lambda* (#:key outputs #:allow-other-keys)
7281 (let* ((out (assoc-ref outputs "out"))
7282 (keysdir (string-append
7283 out "/share/gnome-control-center/keybindings")))
7284 (substitute* "meson.build"
7285 (("keysdir =.*")
7286 (string-append "keysdir = '" keysdir "'\n")))
7287 #t)))
7288 (add-before 'configure 'convert-logo-to-png
7289 (lambda* (#:key inputs #:allow-other-keys)
7290 ;; Convert the logo from SVG to PNG.
7291 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7292 "data/theme/guix-logo.svg")))
7293 (add-before 'configure 'record-absolute-file-names
7294 (lambda* (#:key inputs #:allow-other-keys)
7295 (substitute* "js/misc/ibusManager.js"
7296 (("'ibus-daemon'")
7297 (string-append "'" (assoc-ref inputs "ibus")
7298 "/bin/ibus-daemon'")))
7299 (substitute* "js/ui/status/keyboard.js"
7300 (("'gkbd-keyboard-display'")
7301 (string-append "'" (assoc-ref inputs "libgnomekbd")
7302 "/bin/gkbd-keyboard-display'")))
7303 #t))
7304 (add-before 'check 'pre-check
7305 (lambda* (#:key inputs #:allow-other-keys)
7306 ;; Tests require a running X server.
7307 (system "Xvfb :1 &")
7308 (setenv "DISPLAY" ":1")
7309 #t))
7310 (add-after 'install 'wrap-programs
7311 (lambda* (#:key inputs outputs #:allow-other-keys)
7312 (let ((out (assoc-ref outputs "out"))
7313 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7314 (python-path (getenv "PYTHONPATH")))
7315 (wrap-program (string-append out "/bin/gnome-shell")
7316 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7317 ;; FIXME: gnome-shell loads these libraries with unqualified
7318 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7319 ;; alternative might be to patch gnome-shell.
7320 `("LD_LIBRARY_PATH" ":" prefix
7321 ,(map (lambda (pkg)
7322 (string-append (assoc-ref inputs pkg) "/lib"))
7323 '("gdk-pixbuf"
7324 "gnome-bluetooth" "librsvg" "libgweather"))))
7325 (for-each
7326 (lambda (prog)
7327 (wrap-program (string-append out "/bin/" prog)
7328 `("PYTHONPATH" ":" prefix (,python-path))
7329 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7330 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7331 #t)))
7332 (replace 'glib-or-gtk-wrap
7333 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7334 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7335 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7336 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7337 ;; phase. Fix that since we don't need these.
7338 (wrap #:inputs (fold alist-delete inputs
7339 '("inkscape" "intltool" "glib:bin"))
7340 #:outputs outputs)))))))
7341 (native-inputs
7342 `(("asciidoc" ,asciidoc)
7343 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7344 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7345 ("gobject-introspection" ,gobject-introspection)
7346 ("inkscape" ,inkscape)
7347 ("intltool" ,intltool)
7348 ("pkg-config" ,pkg-config)
7349 ("python" ,python)
7350 ("ruby-sass" ,ruby-sass)
7351 ("sassc" ,sassc)
7352 ("xsltproc" ,libxslt)
7353 ;; For tests
7354 ("xorg-server" ,xorg-server-for-tests)))
7355 (inputs
7356 `(("accountsservice" ,accountsservice)
7357 ("caribou" ,caribou)
7358 ("docbook-xsl" ,docbook-xsl)
7359 ("evolution-data-server" ,evolution-data-server)
7360 ("gcr" ,gcr)
7361 ("gdm" ,gdm)
7362 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7363 ("gjs" ,gjs)
7364 ("gnome-autoar" ,gnome-autoar)
7365 ("gnome-bluetooth" ,gnome-bluetooth)
7366 ("gnome-desktop" ,gnome-desktop)
7367 ("gnome-settings-daemon" ,gnome-settings-daemon)
7368 ("gst-plugins-base" ,gst-plugins-base)
7369 ("ibus" ,ibus)
7370 ("libcanberra" ,libcanberra)
7371 ("libcroco" ,libcroco)
7372 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7373 ("libgweather" ,libgweather)
7374 ("libnma" ,libnma)
7375 ("libsoup" ,libsoup)
7376 ("mesa-headers" ,mesa-headers)
7377 ("mutter" ,mutter)
7378 ("network-manager-applet" ,network-manager-applet)
7379 ("polkit" ,polkit)
7380 ("pulseaudio" ,pulseaudio)
7381 ("python-pygobject" ,python-pygobject)
7382 ("startup-notification" ,startup-notification)
7383 ("telepathy-logger" ,telepathy-logger)
7384 ("upower" ,upower)
7385 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7386 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7387 ("librsvg" ,librsvg)
7388 ("geoclue" ,geoclue)))
7389 (synopsis "Desktop shell for GNOME")
7390 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7391 (description
7392 "GNOME Shell provides core user interface functions for the GNOME desktop,
7393 like switching to windows and launching applications.")
7394 (license license:gpl2+)))
7395
7396 (define-public gtk-vnc
7397 (package
7398 (name "gtk-vnc")
7399 (version "0.9.0")
7400 (source
7401 (origin
7402 (method url-fetch)
7403 (uri (string-append "mirror://gnome/sources/" name "/"
7404 (version-major+minor version) "/"
7405 name "-" version ".tar.xz"))
7406 (sha256
7407 (base32
7408 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7409 (build-system gnu-build-system)
7410 (arguments
7411 '(#:configure-flags '("--with-gtk=3.0")))
7412 (propagated-inputs
7413 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7414 (inputs
7415 `(("cyrus-sasl" ,cyrus-sasl)
7416 ("gnutls" ,gnutls)
7417 ("libgcrypt" ,libgcrypt)
7418 ("pulseaudio" ,pulseaudio)))
7419 (native-inputs
7420 `(("glib:bin" ,glib "bin")
7421 ("gobject-introspection" ,gobject-introspection)
7422 ("intltool" ,intltool)
7423 ("pkg-config" ,pkg-config)
7424 ("python-wrapper" ,python-wrapper)
7425 ("vala" ,vala)))
7426 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7427 (synopsis "VNC viewer widget for GTK+")
7428 (description
7429 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7430 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7431 GTK-VNC implements client side RFB protocol and authentication extensions such
7432 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7433 (license license:lgpl2.1+)))
7434
7435 (define-public gnome-autoar
7436 (package
7437 (name "gnome-autoar")
7438 (version "0.2.4")
7439 (source (origin
7440 (method url-fetch)
7441 (uri (string-append "mirror://gnome/sources/" name "/"
7442 (version-major+minor version) "/"
7443 name "-" version ".tar.xz"))
7444 (sha256
7445 (base32
7446 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
7447 (build-system glib-or-gtk-build-system)
7448 (native-inputs
7449 `(("gobject-introspection" ,gobject-introspection)
7450 ("pkg-config" ,pkg-config)))
7451 (propagated-inputs
7452 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
7453 (inputs
7454 `(("gtk+" ,gtk+)))
7455 (synopsis "Archives integration support for GNOME")
7456 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7457 (description
7458 "GNOME Autoar is a library which makes creating and extracting archives
7459 easy, safe, and automatic.")
7460 (license license:lgpl2.1+)))
7461
7462 (define-public tracker
7463 (package
7464 (name "tracker")
7465 (version "2.3.4")
7466 (source (origin
7467 (method url-fetch)
7468 (uri (string-append "mirror://gnome/sources/tracker/"
7469 (version-major+minor version) "/"
7470 "tracker-" version ".tar.xz"))
7471 (sha256
7472 (base32
7473 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7474 (build-system meson-build-system)
7475 (arguments
7476 `(#:glib-or-gtk? #t
7477 #:configure-flags
7478 ;; Otherwise, the RUNPATH will lack the final path component.
7479 (list (string-append "-Dc_link_args=-Wl,-rpath="
7480 (assoc-ref %outputs "out") "/lib:"
7481 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7482 #:phases
7483 (modify-phases %standard-phases
7484 (add-before 'check 'pre-check
7485 (lambda _
7486 ;; Some tests expect to write to $HOME.
7487 (setenv "HOME" "/tmp")
7488 #t)))))
7489 (native-inputs
7490 `(("glib:bin" ,glib "bin")
7491 ("gobject-introspection" ,gobject-introspection)
7492 ("python-pygobject" ,python-pygobject)
7493 ("intltool" ,intltool)
7494 ("pkg-config" ,pkg-config)
7495 ("vala" ,vala)))
7496 (inputs
7497 `(("dbus" ,dbus)
7498 ("sqlite" ,sqlite)
7499 ("libxml2" ,libxml2)
7500 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
7501 ("json-glib" ,json-glib)
7502 ("libsoup" ,libsoup)))
7503 (synopsis "Metadata database, indexer and search tool")
7504 (home-page "https://wiki.gnome.org/Projects/Tracker")
7505 (description
7506 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7507
7508 It is a middleware component aimed at desktop application developers who want
7509 their apps to browse and search user content. It's not designed to be used
7510 directly by desktop users, but it provides a commandline tool named
7511 @command{tracker} for the adventurous.
7512
7513 Tracker allows your application to instantly perform full-text searches across
7514 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7515 example. This is achieved by indexing the user's home directory in the
7516 background.
7517
7518 Tracker also allows your application to query and list content that the user
7519 has stored. For example, GNOME Music displays all the music files that are
7520 found by Tracker. This means that GNOME Music doesn't need to maintain a
7521 database of its own.
7522
7523 If you need to go beyond simple searches, Tracker is also a linked data
7524 endpoint and it understands SPARQL. ")
7525 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
7526 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7527 ;; libstemmer is bsd-3 and the rest is gpl2+.
7528 (license (list license:gpl2+
7529 license:bsd-3
7530 license:lgpl2.1+))))
7531
7532 (define-public tracker-miners
7533 (package
7534 (name "tracker-miners")
7535 (version "2.3.3")
7536 (source (origin
7537 (method url-fetch)
7538 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7539 (version-major+minor version)
7540 "/tracker-miners-" version ".tar.xz"))
7541 (sha256
7542 (base32
7543 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
7544 (build-system meson-build-system)
7545 (arguments
7546 `(#:glib-or-gtk? #t
7547 #:configure-flags
7548 (list "-Dminer_rss=false" ; libgrss is required.
7549 ;; Ensure the RUNPATH contains all installed library locations.
7550 (string-append "-Dc_link_args=-Wl,-rpath="
7551 (assoc-ref %outputs "out")
7552 "/lib/tracker-miners-2.0")
7553 ;; TODO: Enable functional tests. Currently, the following error
7554 ;; appears:
7555 ;; Exception: The functional tests require DConf to be the default
7556 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7557 "-Dfunctional_tests=false")))
7558 (native-inputs
7559 `(("dbus" ,dbus)
7560 ("intltool" ,intltool)
7561 ("glib:bin" ,glib "bin")
7562 ("gobject-introspection" ,gobject-introspection)
7563 ("pkg-config" ,pkg-config)
7564 ("python-pygobject" ,python-pygobject)))
7565 (inputs
7566 `(("exempi" ,exempi)
7567 ("ffmpeg" ,ffmpeg)
7568 ("flac" ,flac)
7569 ("giflib" ,giflib)
7570 ("glib" ,glib)
7571 ("gstreamer" ,gstreamer)
7572 ("icu4c" ,icu4c)
7573 ("libcue" ,libcue)
7574 ("libexif" ,libexif)
7575 ("libgsf" ,libgsf)
7576 ("libgxps" ,libgxps)
7577 ("libiptcdata" ,libiptcdata)
7578 ("libjpeg" ,libjpeg-turbo)
7579 ("libosinfo" ,libosinfo)
7580 ("libpng" ,libpng)
7581 ("libseccomp" ,libseccomp)
7582 ("libtiff" ,libtiff)
7583 ("libvorbis" ,libvorbis)
7584 ("libxml2" ,libxml2)
7585 ("poppler" ,poppler)
7586 ("taglib" ,taglib)
7587 ("totem-pl-parser" ,totem-pl-parser)
7588 ("tracker" ,tracker)
7589 ("upower" ,upower)
7590 ("zlib" ,zlib)))
7591 (synopsis "Metadata database, indexer and search tool")
7592 (home-page "https://wiki.gnome.org/Projects/Tracker")
7593 (description
7594 "Tracker is an advanced framework for first class objects with associated
7595 metadata and tags. It provides a one stop solution for all metadata, tags,
7596 shared object databases, search tools and indexing.")
7597 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7598 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7599 (license (list license:gpl2+
7600 license:lgpl2.1+
7601 license:lgpl2.0+))))
7602
7603 (define-public nautilus
7604 (package
7605 (name "nautilus")
7606 (version "3.34.2")
7607 (source (origin
7608 (method url-fetch)
7609 (uri (string-append "mirror://gnome/sources/" name "/"
7610 (version-major+minor version) "/"
7611 name "-" version ".tar.xz"))
7612 (sha256
7613 (base32
7614 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
7615 (build-system meson-build-system)
7616 (arguments
7617 '(#:glib-or-gtk? #t
7618 #:phases
7619 (modify-phases %standard-phases
7620 (add-after 'unpack 'skip-gtk-update-icon-cache
7621 ;; Don't create 'icon-theme.cache'.
7622 (lambda _
7623 (substitute* "build-aux/meson/postinstall.py"
7624 (("gtk-update-icon-cache") "true"))
7625 #t)))
7626 ;; XXX: FAIL: check-nautilus
7627 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7628 #:tests? #f))
7629 (native-inputs
7630 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7631 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7632 ("gobject-introspection" ,gobject-introspection)
7633 ("intltool" ,intltool)
7634 ("pkg-config" ,pkg-config)))
7635 (inputs
7636 `(("dconf" ,dconf)
7637 ("gexiv2" ,gexiv2)
7638 ("gvfs" ,gvfs)
7639 ("exempi" ,exempi)
7640 ("gnome-desktop" ,gnome-desktop)
7641 ("gnome-autoar" ,gnome-autoar)
7642 ("gst-plugins-base" ,gst-plugins-base)
7643 ("libseccomp" ,libseccomp)
7644 ("libselinux" ,libselinux)
7645 ("tracker" ,tracker)
7646 ("tracker-miners" ,tracker-miners)
7647 ;; XXX: gtk+ is required by libnautilus-extension.pc
7648 ;;
7649 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7650 ;; package. See:
7651 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7652 ("gtk+" ,gtk+)
7653 ("libexif" ,libexif)
7654 ("libxml2" ,libxml2)))
7655 (synopsis "File manager for GNOME")
7656 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7657 (description
7658 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7659 design and behaviour, giving the user a simple way to navigate and manage its
7660 files.")
7661 (license license:gpl2+)))
7662
7663 (define-public baobab
7664 (package
7665 (name "baobab")
7666 (version "3.32.0")
7667 (source (origin
7668 (method url-fetch)
7669 (uri (string-append
7670 "mirror://gnome/sources/" name "/"
7671 (version-major+minor version) "/"
7672 name "-" version ".tar.xz"))
7673 (sha256
7674 (base32
7675 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7676 (build-system meson-build-system)
7677 (arguments
7678 '(#:glib-or-gtk? #t))
7679 (native-inputs
7680 `(("intltool" ,intltool)
7681 ("pkg-config" ,pkg-config)
7682 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7683 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7684 ("itstool" ,itstool)
7685 ("xmllint" ,libxml2)
7686 ("glib" ,glib "bin")
7687 ("vala" ,vala)))
7688 (inputs
7689 `(("gtk+" ,gtk+)))
7690 (synopsis "Disk usage analyzer for GNOME")
7691 (description
7692 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7693 usage in the GNOME desktop environment. It can easily scan device volumes or
7694 a specific user-requested directory branch (local or remote). Once the scan
7695 is complete it provides a graphical representation of each selected folder.")
7696 (home-page "https://wiki.gnome.org/Apps/Baobab")
7697 (license license:gpl2+)))
7698
7699 (define-public gnome-backgrounds
7700 (package
7701 (name "gnome-backgrounds")
7702 (version "3.34.0")
7703 (source
7704 (origin
7705 (method url-fetch)
7706 (uri (string-append "mirror://gnome/sources/" name "/"
7707 (version-major+minor version) "/"
7708 name "-" version ".tar.xz"))
7709 (sha256
7710 (base32
7711 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
7712 (build-system meson-build-system)
7713 (native-inputs
7714 `(("intltool" ,intltool)))
7715 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7716 (synopsis "Background images for the GNOME desktop")
7717 (description
7718 "GNOME backgrounds package contains a collection of graphics files which
7719 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7720 the package creates the proper framework and directory structure so that you
7721 can add your own files to the collection.")
7722 (license (list license:gpl2+
7723 license:cc-by2.0
7724 license:cc-by-sa2.0
7725 license:cc-by-sa3.0))))
7726
7727 (define-public gnome-screenshot
7728 (package
7729 (name "gnome-screenshot")
7730 (version "3.34.0")
7731 (source
7732 (origin
7733 (method url-fetch)
7734 (uri (string-append "mirror://gnome/sources/" name "/"
7735 (version-major+minor version) "/"
7736 name "-" version ".tar.xz"))
7737 (sha256
7738 (base32
7739 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
7740 (build-system meson-build-system)
7741 (arguments
7742 '(#:phases
7743 (modify-phases %standard-phases
7744 (add-after 'unpack 'skip-gtk-update-icon-cache
7745 ;; Don't create 'icon-theme.cache'.
7746 (lambda _
7747 (substitute* "build-aux/postinstall.py"
7748 (("gtk-update-icon-cache") "true"))
7749 #t)))))
7750 (native-inputs
7751 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7752 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7753 ("intltool" ,intltool)
7754 ("appstream-glib" ,appstream-glib)
7755 ("pkg-config" ,pkg-config)))
7756 (inputs
7757 `(("gtk+" ,gtk+)
7758 ("libcanberra" ,libcanberra)
7759 ("libx11" ,libx11)
7760 ("libxext" ,libxext)))
7761 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7762 (synopsis "Take pictures of your screen")
7763 (description
7764 "GNOME Screenshot is a utility used for taking screenshots of the entire
7765 screen, a window or a user defined area of the screen, with optional
7766 beautifying border effects.")
7767 (license license:gpl2+)))
7768
7769 (define-public dconf-editor
7770 (package
7771 (name "dconf-editor")
7772 (version "3.34.2")
7773 (source
7774 (origin
7775 (method url-fetch)
7776 (uri (string-append "mirror://gnome/sources/" name "/"
7777 (version-major+minor version) "/"
7778 name "-" version ".tar.xz"))
7779 (sha256
7780 (base32
7781 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
7782 (build-system meson-build-system)
7783 (native-inputs
7784 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7785 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7786 ("intltool" ,intltool)
7787 ("pkg-config" ,pkg-config)
7788 ("vala" ,vala)))
7789 (inputs
7790 `(("dconf" ,dconf)
7791 ("gtk+" ,gtk+)
7792 ("libxml2" ,libxml2)))
7793 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
7794 (synopsis "Graphical editor for GNOME's dconf configuration system")
7795 (description
7796 "Dconf-editor is a graphical tool for browsing and editing the dconf
7797 configuration system for GNOME. It allows users to configure desktop
7798 software that do not provide their own configuration interface.")
7799 (license license:lgpl2.1+)))
7800
7801 (define-public gnome-default-applications
7802 (package
7803 (name "gnome-default-applications")
7804 (version "0")
7805 (build-system trivial-build-system)
7806 (source #f)
7807 (propagated-inputs
7808 `(("nautilus" ,nautilus)
7809 ("evince" ,evince)))
7810 (arguments
7811 `(#:modules ((guix build utils))
7812 #:builder
7813 (begin
7814 (use-modules (guix build utils))
7815 (let* ((out (assoc-ref %outputs "out"))
7816 (apps (string-append out "/share/applications")))
7817 (mkdir-p apps)
7818 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
7819 (lambda (port)
7820 (format port "[Default Applications]\n")
7821 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7822 (format port "application/pdf=evince.desktop\n")
7823 (format port "application/postscript=evince.desktop\n")))
7824 #t))))
7825 (synopsis "Default MIME type associations for the GNOME desktop")
7826 (description
7827 "Given many installed packages which might handle a given MIME type, a
7828 user running the GNOME desktop probably has some preferences: for example,
7829 that folders be opened by default by the Nautilus file manager, not the Baobab
7830 disk usage analyzer. This package establishes that set of default MIME type
7831 associations for GNOME.")
7832 (license license:gpl3+)
7833 (home-page #f)))
7834
7835 (define-public libgovirt
7836 (package
7837 (name "libgovirt")
7838 (version "0.3.6")
7839 (source (origin
7840 (method url-fetch)
7841 (uri (string-append "mirror://gnome/sources/" name "/"
7842 (version-major+minor version) "/"
7843 name "-" version ".tar.xz"))
7844 (sha256
7845 (base32
7846 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7847 (build-system glib-or-gtk-build-system)
7848 (native-inputs
7849 `(("gettext" ,gettext-minimal)
7850 ("glib:bin" ,glib "bin")
7851 ("gobject-introspection" ,gobject-introspection)
7852 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7853 ("gtk+:bin" ,gtk+ "bin")
7854 ("pkg-config" ,pkg-config)))
7855 (inputs
7856 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7857 ("librest" ,rest)))
7858 (synopsis "GoVirt Library")
7859 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7860 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7861 (license license:gpl2+)))
7862
7863 (define-public gnome-weather
7864 (package
7865 (name "gnome-weather")
7866 (version "3.34.0")
7867 (source (origin
7868 (method url-fetch)
7869 (uri (string-append "mirror://gnome/sources/" name "/"
7870 (version-major+minor version) "/"
7871 name "-" version ".tar.xz"))
7872 (sha256
7873 (base32
7874 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7875 (build-system meson-build-system)
7876 (native-inputs
7877 `(("gettext" ,gettext-minimal)
7878 ("glib:bin" ,glib "bin")
7879 ("gobject-introspection" ,gobject-introspection)
7880 ("gtk+:bin" ,gtk+ "bin")
7881 ("pkg-config" ,pkg-config)))
7882 (inputs
7883 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7884 ("appstream-glib" ,appstream-glib)
7885 ("geoclue" ,geoclue)
7886 ("gdk-pixbuf" ,gdk-pixbuf)
7887 ("gjs" ,gjs)
7888 ("gnome-desktop" ,gnome-desktop)
7889 ("libgweather" ,libgweather)))
7890 (arguments
7891 `(#:glib-or-gtk? #t
7892 #:phases
7893 (modify-phases %standard-phases
7894 (add-after 'install 'fix-desktop-file
7895 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7896 ;; See https://issues.guix.gnu.org/issue/39324.
7897 (lambda* (#:key outputs #:allow-other-keys)
7898 (let* ((out (assoc-ref outputs "out"))
7899 (applications (string-append out "/share/applications")))
7900 (substitute* (string-append applications "/org.gnome.Weather.desktop")
7901 (("Exec=.*") "Exec=gnome-weather\n"))
7902 #t)))
7903 (add-after 'install 'wrap
7904 (lambda* (#:key inputs outputs #:allow-other-keys)
7905 (let ((out (assoc-ref outputs "out"))
7906 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7907 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7908 (wrap-program (string-append out "/bin/gnome-weather")
7909 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7910 #t))))))
7911 (synopsis "Weather monitoring for GNOME desktop")
7912 (description "GNOME Weather is a small application that allows you to
7913 monitor the current weather conditions for your city, or anywhere in the
7914 world.")
7915 (home-page "https://wiki.gnome.org/Apps/Weather")
7916 (license license:gpl2+)))
7917
7918 (define-public gnome
7919 (package
7920 (name "gnome")
7921 (version (package-version gnome-shell))
7922 (source #f)
7923 (build-system trivial-build-system)
7924 (arguments '(#:builder (begin (mkdir %output) #t)))
7925 (propagated-inputs
7926 ;; TODO: Add or remove packages according to:
7927 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7928 `(
7929 ;; GNOME-Core-OS-Services
7930 ("accountsservice" ,accountsservice)
7931 ("network-manager" ,network-manager)
7932 ("packagekit" ,packagekit)
7933 ("upower" ,upower)
7934 ;; GNOME-Core-Shell
7935 ("adwaita-icon-theme" ,adwaita-icon-theme)
7936 ("gdm" ,gdm)
7937 ("glib-networking" ,glib-networking)
7938 ("gnome-backgrounds" ,gnome-backgrounds)
7939 ("gnome-bluetooth" ,gnome-bluetooth)
7940 ("gnome-color-manager" ,gnome-color-manager)
7941 ("gnome-control-center" ,gnome-control-center)
7942 ("gnome-desktop" ,gnome-desktop)
7943 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7944 ("gnome-initial-setup" ,gnome-initial-setup)
7945 ("gnome-keyring" ,gnome-keyring)
7946 ("gnome-menus" ,gnome-menus)
7947 ("gnome-session" ,gnome-session)
7948 ("gnome-settings-daemon" ,gnome-settings-daemon)
7949 ("gnome-shell-extensions" ,gnome-shell-extensions)
7950 ("gnome-shell" ,gnome-shell)
7951 ("gnome-themes-extra" ,gnome-themes-extra)
7952 ("gnome-user-docs" ,gnome-user-docs)
7953 ("gnome-user-share" ,gnome-user-share)
7954 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7955 ("gvfs" ,gvfs)
7956 ("mutter" ,mutter)
7957 ("orca" ,orca)
7958 ("rygel" ,rygel)
7959 ("sushi" ,sushi)
7960 ;; GNOME-Core-Utilities
7961 ("baobab" ,baobab)
7962 ("cheese" ,cheese)
7963 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
7964 ;; only works on x86_64, so exclude it on other architectures.
7965 ,@(if (string-prefix? "x86_64" (%current-system))
7966 `(("eog" ,eog))
7967 '())
7968 ("epiphany" ,epiphany)
7969 ("evince" ,evince)
7970 ("file-roller" ,file-roller)
7971 ("gedit" ,gedit)
7972 ("gnome-boxes" ,gnome-boxes)
7973 ("gnome-calculator" ,gnome-calculator)
7974 ("gnome-calendar" ,gnome-calendar)
7975 ("gnome-characters" ,gnome-characters)
7976 ("gnome-clocks" ,gnome-clocks)
7977 ("gnome-contacts" ,gnome-contacts)
7978 ("gnome-disk-utility" ,gnome-disk-utility)
7979 ("gnome-font-viewer" ,gnome-font-viewer)
7980 ("gnome-maps" ,gnome-maps)
7981 ; TODO: ("gnome-music" ,gnome-music)
7982 ; TODO: ("gnome-photos" ,gnome-photos)
7983 ("gnome-screenshot" ,gnome-screenshot)
7984 ("gnome-system-monitor" ,gnome-system-monitor)
7985 ("gnome-terminal" ,gnome-terminal)
7986 ("gnome-weather" ,gnome-weather)
7987 ("nautilus" ,nautilus)
7988 ("simple-scan" ,simple-scan)
7989 ("totem" ,totem)
7990 ("yelp" ,yelp)
7991 ;; Others
7992 ("hicolor-icon-theme" ,hicolor-icon-theme)
7993 ("gnome-online-accounts" ,gnome-online-accounts)
7994
7995 ;; Packages not part of GNOME proper but that are needed for a good
7996 ;; experience. See <https://bugs.gnu.org/39646>.
7997 ;; XXX: Find out exactly which ones are needed and why.
7998 ("font-cantarell" ,font-cantarell)
7999 ("font-dejavu" ,font-dejavu)
8000 ("at-spi2-core" ,at-spi2-core)
8001 ("dbus" ,dbus)
8002 ("dconf" ,dconf)
8003 ("desktop-file-utils" ,desktop-file-utils)
8004 ("gnome-default-applications" ,gnome-default-applications)
8005 ("gnome-themes-standard" ,gnome-themes-standard)
8006 ("gst-plugins-base" ,gst-plugins-base)
8007 ("gst-plugins-good" ,gst-plugins-good)
8008 ("gucharmap" ,gucharmap)
8009 ("pinentry-gnome3" ,pinentry-gnome3)
8010 ("pulseaudio" ,pulseaudio)
8011 ("shared-mime-info" ,shared-mime-info)
8012 ("system-config-printer" ,system-config-printer)
8013 ("xdg-user-dirs" ,xdg-user-dirs)
8014 ("yelp" ,yelp)
8015 ("zenity" ,zenity)))
8016 (synopsis "The GNU desktop environment")
8017 (home-page "https://www.gnome.org/")
8018 (description
8019 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8020 applications for browsing the web, editing text and images, creating
8021 documents and diagrams, playing media, scanning, and much more.")
8022 (license license:gpl2+)))
8023
8024 (define-public byzanz
8025 ;; The last stable release of Byzanz was in 2011, but there have been many
8026 ;; useful commits made to the Byzanz repository since then that it would be
8027 ;; silly to use such an old release.
8028 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8029 (package
8030 (name "byzanz")
8031 (version (string-append "0.2-1." (string-take commit 7)))
8032 (source (origin
8033 (method git-fetch)
8034 (uri (git-reference
8035 (url "https://git.gnome.org/browse/byzanz")
8036 (commit commit)))
8037 (file-name (string-append name "-" version "-checkout"))
8038 (sha256
8039 (base32
8040 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8041 (build-system glib-or-gtk-build-system)
8042 (arguments
8043 '(#:phases
8044 (modify-phases %standard-phases
8045 (add-before 'bootstrap 'build-without-Werror
8046 (lambda _
8047 ;; The build system cleverly detects that we're not building from
8048 ;; a release tarball and turns on -Werror for GCC.
8049 ;; Unsurprisingly, there is a warning during compilation that
8050 ;; causes the build to fail unnecessarily, so we remove the flag.
8051 (substitute* '("configure.ac")
8052 (("-Werror") ""))
8053 #t)))))
8054 (native-inputs
8055 `(("autoconf" ,autoconf)
8056 ("automake" ,automake)
8057 ("gnome-common" ,gnome-common)
8058 ("intltool" ,intltool)
8059 ("libtool" ,libtool)
8060 ("pkg-config" ,pkg-config)
8061 ("which" ,which)))
8062 (inputs
8063 `(("glib" ,glib)
8064 ("gstreamer" ,gstreamer)
8065 ("gst-plugins-base" ,gst-plugins-base)
8066 ("gtk+" ,gtk+)))
8067 (synopsis "Desktop recording program")
8068 (description "Byzanz is a simple desktop recording program with a
8069 command-line interface. It can record part or all of an X display for a
8070 specified duration and save it as a GIF encoded animated image file.")
8071 (home-page "https://git.gnome.org/browse/byzanz")
8072 (license license:gpl2+))))
8073
8074 (define-public gsound
8075 (package
8076 (name "gsound")
8077 (version "1.0.2")
8078 (source (origin
8079 (method url-fetch)
8080 (uri (string-append "mirror://gnome/sources/" name "/"
8081 (version-major+minor version) "/"
8082 name "-" version ".tar.xz"))
8083 (sha256
8084 (base32
8085 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8086 (build-system glib-or-gtk-build-system)
8087 (native-inputs
8088 `(("pkg-config" ,pkg-config)
8089 ("gobject-introspection" ,gobject-introspection)
8090 ("vala" ,vala)))
8091 (inputs
8092 `(("glib" ,glib)
8093 ("libcanberra" ,libcanberra)))
8094 (home-page "https://wiki.gnome.org/Projects/GSound")
8095 (synopsis "GObject wrapper for libcanberra")
8096 (description
8097 "GSound is a small library for playing system sounds. It's designed to be
8098 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8099 library.")
8100 (license license:lgpl2.1+)))
8101
8102 (define-public libzapojit
8103 (package
8104 (name "libzapojit")
8105 (version "0.0.3")
8106 (source (origin
8107 (method url-fetch)
8108 (uri (string-append "mirror://gnome/sources/" name "/"
8109 (version-major+minor version) "/"
8110 name "-" version ".tar.xz"))
8111 (sha256
8112 (base32
8113 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8114 (build-system gnu-build-system)
8115 (native-inputs
8116 `(("gobject-introspection" ,gobject-introspection)
8117 ("intltool" ,intltool)
8118 ("pkg-config" ,pkg-config)))
8119 (inputs
8120 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8121 ("json-glib" ,json-glib)
8122 ("rest" ,rest)))
8123 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8124 (synopsis "Library for accessing SkyDrive and Hotmail")
8125 (description
8126 "Libzapojit is a GLib-based library for accessing online service APIs of
8127 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8128 (license license:lgpl2.1+)))
8129
8130 (define-public gnome-clocks
8131 (package
8132 (name "gnome-clocks")
8133 (version "3.34.0")
8134 (source (origin
8135 (method url-fetch)
8136 (uri (string-append "mirror://gnome/sources/" name "/"
8137 (version-major+minor version) "/"
8138 name "-" version ".tar.xz"))
8139 (sha256
8140 (base32
8141 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8142 (build-system meson-build-system)
8143 (arguments
8144 '(#:glib-or-gtk? #t
8145 #:phases
8146 (modify-phases %standard-phases
8147 (add-after 'unpack 'skip-gtk-update-icon-cache
8148 ;; Don't create 'icon-theme.cache'.
8149 (lambda _
8150 (substitute* "build-aux/post-install.py"
8151 (("gtk-update-icon-cache") "true"))
8152 #t)))))
8153 (native-inputs
8154 `(("vala" ,vala)
8155 ("pkg-config" ,pkg-config)
8156 ("glib" ,glib "bin") ; for glib-compile-resources
8157 ("desktop-file-utils" ,desktop-file-utils)
8158 ("gettext" ,gettext-minimal)
8159 ("itstool" ,itstool)))
8160 (inputs
8161 `(("glib" ,glib)
8162 ("gtk+" ,gtk+)
8163 ("gsound" ,gsound)
8164 ("geoclue" ,geoclue)
8165 ("geocode-glib" ,geocode-glib)
8166 ("libgweather" ,libgweather)
8167 ("gnome-desktop" ,gnome-desktop)))
8168 (home-page "https://wiki.gnome.org/Apps/Clocks")
8169 (synopsis "GNOME's clock application")
8170 (description
8171 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8172 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8173 (license license:gpl3+)))
8174
8175 (define-public gnome-calendar
8176 (package
8177 (name "gnome-calendar")
8178 (version "3.34.2")
8179 (source (origin
8180 (method url-fetch)
8181 (uri (string-append "mirror://gnome/sources/" name "/"
8182 (version-major+minor version) "/"
8183 name "-" version ".tar.xz"))
8184 (sha256
8185 (base32
8186 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
8187 (build-system meson-build-system)
8188 (arguments
8189 '(#:glib-or-gtk? #t
8190 ;; gnome-calendar has to be installed before the tests can be run
8191 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8192 #:tests? #f
8193 #:phases
8194 (modify-phases %standard-phases
8195 (add-after 'unpack 'skip-gtk-update-icon-cache
8196 ;; Don't create 'icon-theme.cache'.
8197 (lambda _
8198 (substitute* "build-aux/meson/meson_post_install.py"
8199 (("gtk-update-icon-cache") "true"))
8200 #t)))))
8201 (native-inputs
8202 `(("gettext" ,gettext-minimal)
8203 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8204 ("pkg-config" ,pkg-config)))
8205 (inputs
8206 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8207 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8208 ("libdazzle" ,libdazzle)
8209 ("libedataserverui" ,evolution-data-server)
8210 ("libgweather" ,libgweather)
8211 ("geoclue" ,geoclue)))
8212 (propagated-inputs
8213 `(("evolution-data-server" ,evolution-data-server)))
8214 (home-page "https://wiki.gnome.org/Apps/Calendar")
8215 (synopsis "GNOME's calendar application")
8216 (description
8217 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8218 desktop. It supports multiple calendars, month, week and year view.")
8219 (license license:gpl3+)))
8220
8221 (define-public gnome-todo
8222 (package
8223 (name "gnome-todo")
8224 (version "3.28.1")
8225 (source (origin
8226 (method url-fetch)
8227 (uri (string-append "mirror://gnome/sources/" name "/"
8228 (version-major+minor version) "/"
8229 name "-" version ".tar.xz"))
8230 (sha256
8231 (base32
8232 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8233 (patches
8234 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
8235 (build-system meson-build-system)
8236 (arguments
8237 '(#:glib-or-gtk? #t
8238 #:phases (modify-phases %standard-phases
8239 (add-after
8240 'install 'wrap-gnome-todo
8241 (lambda* (#:key inputs outputs #:allow-other-keys)
8242 (let ((out (assoc-ref outputs "out"))
8243 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8244 (python-path (getenv "PYTHONPATH")))
8245 (wrap-program (string-append out "/bin/gnome-todo")
8246 ;; XXX: gi plugins are broken.
8247 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8248 ;; For plugins.
8249 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8250 `("PYTHONPATH" ":" prefix (,python-path))))
8251 #t)))))
8252 (native-inputs
8253 `(("gettext" ,gettext-minimal)
8254 ("gobject-introspection" ,gobject-introspection)
8255 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8256 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8257 ("pkg-config" ,pkg-config)))
8258 (inputs
8259 `(("rest" ,rest) ; For Todoist plugin
8260 ("json-glib" ,json-glib) ; For Todoist plugin
8261 ("libedataserverui" ,evolution-data-server)
8262 ("libical" ,libical)
8263 ("libpeas" ,libpeas)
8264 ("python-pygobject" ,python-pygobject)
8265 ("evolution-data-server" ,evolution-data-server)
8266 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8267 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8268 (home-page "https://wiki.gnome.org/Apps/Todo")
8269 (synopsis "GNOME's ToDo Application")
8270 (description
8271 "GNOME To Do is a simplistic personal task manager designed to perfectly
8272 fit the GNOME desktop.")
8273 (license license:gpl3+)))
8274
8275 (define-public gnome-dictionary
8276 (package
8277 (name "gnome-dictionary")
8278 (version "3.26.1")
8279 (source (origin
8280 (method url-fetch)
8281 (uri (string-append "mirror://gnome/sources/" name "/"
8282 (version-major+minor version) "/"
8283 name "-" version ".tar.xz"))
8284 (sha256
8285 (base32
8286 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8287 (build-system meson-build-system)
8288 (arguments '(#:glib-or-gtk? #t
8289 #:phases (modify-phases %standard-phases
8290 (add-after 'unpack 'patch-install-script
8291 (lambda _
8292 ;; This script attempts to compile glib schemas
8293 ;; and create an empty MIME database. We do
8294 ;; that elsewhere, so prevent it from running.
8295 (substitute* "build-aux/post-install.sh"
8296 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8297 #t)))))
8298 (native-inputs
8299 `(("glib:bin" ,glib "bin")
8300 ("gobject-introspection" ,gobject-introspection)
8301 ("intltool" ,intltool)
8302 ("itstool" ,itstool)
8303 ("pkg-config" ,pkg-config)
8304 ("xmllint" ,libxml2)))
8305 (inputs
8306 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8307 ("gtk+" ,gtk+)))
8308 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8309 (synopsis "Look up words in dictionary sources")
8310 (description
8311 "GNOME Dictionary can look for the definition or translation of a word in
8312 existing databases over the internet.")
8313 (license license:gpl3+)))
8314
8315 (define-public gnome-tweaks
8316 (package
8317 (name "gnome-tweaks")
8318 (version "3.34.0")
8319 (source (origin
8320 (method url-fetch)
8321 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8322 (version-major+minor version) "/"
8323 "gnome-tweaks-" version ".tar.xz"))
8324 (patches
8325 (list (search-patch "gnome-tweaks-search-paths.patch")))
8326 (sha256
8327 (base32
8328 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
8329 (build-system meson-build-system)
8330 (arguments
8331 `(#:glib-or-gtk? #t
8332 #:configure-flags '("-Dlocalstatedir=/tmp"
8333 "-Dsysconfdir=/tmp")
8334 #:imported-modules ((guix build python-build-system)
8335 ,@%meson-build-system-modules)
8336 #:phases
8337 (modify-phases %standard-phases
8338 (add-after 'unpack 'skip-gtk-update-icon-cache
8339 ;; Don't create 'icon-theme.cache'.
8340 (lambda _
8341 (substitute* "meson-postinstall.py"
8342 (("gtk-update-icon-cache") "true"))
8343 #t))
8344 (add-after 'install 'wrap
8345 (@@ (guix build python-build-system) wrap))
8346 (add-after 'wrap 'wrap-gi-typelib
8347 (lambda* (#:key inputs outputs #:allow-other-keys)
8348 (let ((out (assoc-ref outputs "out"))
8349 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8350 (wrap-program (string-append out "/bin/gnome-tweaks")
8351 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8352 #t)))))
8353 (native-inputs
8354 `(("intltool" ,intltool)
8355 ("pkg-config" ,pkg-config)))
8356 (inputs
8357 `(("gnome-desktop" ,gnome-desktop)
8358 ("gtk+" ,gtk+)
8359 ("gobject-introspection" ,gobject-introspection)
8360 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8361 ("libhandy" ,libhandy)
8362 ("libnotify" ,libnotify)
8363 ("libsoup" ,libsoup)
8364 ("nautilus" ,nautilus)
8365 ("python" ,python)
8366 ("python-pygobject" ,python-pygobject)))
8367 (synopsis "Customize advanced GNOME 3 options")
8368 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8369 (description
8370 "GNOME Tweaks allows adjusting advanced configuration settings in
8371 GNOME 3. This includes things like the fonts used in user interface elements,
8372 alternative user interface themes, changes in window management behavior,
8373 GNOME Shell appearance and extension, etc.")
8374 (license license:gpl3+)))
8375
8376 (define-public gnome-shell-extensions
8377 (package
8378 (name "gnome-shell-extensions")
8379 (version "3.34.2")
8380 (source (origin
8381 (method url-fetch)
8382 (uri (string-append "mirror://gnome/sources/" name "/"
8383 (version-major+minor version) "/"
8384 name "-" version ".tar.xz"))
8385 (sha256
8386 (base32
8387 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
8388 (build-system meson-build-system)
8389 (arguments
8390 '(#:configure-flags '("-Dextension_set=all")))
8391 (native-inputs
8392 `(("glib:bin" ,glib "bin")
8393 ("intltool" ,intltool)
8394 ("pkg-config" ,pkg-config)))
8395 (propagated-inputs
8396 `(("glib" ,glib)))
8397 (synopsis "Extensions for GNOME Shell")
8398 (description "GNOME Shell extensions modify and extend GNOME Shell
8399 functionality and behavior.")
8400 (home-page "https://extensions.gnome.org/")
8401 (license license:gpl3+)))
8402
8403 (define-public arc-theme
8404 (package
8405 (name "arc-theme")
8406 (version "20190917")
8407 (source (origin
8408 (method git-fetch)
8409 (uri (git-reference
8410 (url "https://github.com/NicoHood/arc-theme.git")
8411 (commit version)))
8412 (file-name (git-file-name name version))
8413 (sha256
8414 (base32
8415 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8416 (build-system gnu-build-system)
8417 (arguments
8418 '(#:phases
8419 (modify-phases %standard-phases
8420 ;; autogen.sh calls configure at the end of the script.
8421 (replace 'bootstrap
8422 (lambda _ (invoke "autoreconf" "-vfi")))
8423 (add-before 'build 'set-home ;placate Inkscape
8424 (lambda _
8425 (setenv "HOME" (getcwd))
8426 #t)))))
8427 (native-inputs
8428 `(("autoconf" ,autoconf)
8429 ("automake" ,automake)
8430 ("glib" ,glib "bin") ; for glib-compile-resources
8431 ("gnome-shell" ,gnome-shell)
8432 ("gtk+" ,gtk+)
8433 ("inkscape" ,inkscape)
8434 ("optipng" ,optipng)
8435 ("pkg-config" ,pkg-config)
8436 ("sassc" ,sassc/libsass-3.5)))
8437 (synopsis "A flat GTK+ theme with transparent elements")
8438 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8439 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8440 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8441 (home-page "https://github.com/horst3180/arc-theme")
8442 ;; No "or later" language found.
8443 (license license:gpl3+)))
8444
8445 (define-public faba-icon-theme
8446 (package
8447 (name "faba-icon-theme")
8448 (version "4.3")
8449 (source
8450 (origin
8451 (method git-fetch)
8452 (uri (git-reference
8453 (url "https://github.com/snwh/faba-icon-theme.git")
8454 (commit (string-append "v" version))))
8455 (file-name (git-file-name name version))
8456 (sha256
8457 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8458 (build-system meson-build-system)
8459 (arguments
8460 `(#:phases
8461 (modify-phases %standard-phases
8462 (add-before 'configure 'disable-post-install
8463 (lambda _
8464 (substitute* "meson.build"
8465 (("meson.add_install_script.*") "")))))))
8466 (native-inputs
8467 `(("autoconf" ,autoconf)
8468 ("automake" ,automake)))
8469 (synopsis "Faba icon theme")
8470 (description
8471 "Faba is a minimal icon set used as a basis for other themes such as
8472 Moka")
8473 (home-page "https://snwh.org/moka")
8474 (license (list license:lgpl3+
8475 license:cc-by-sa4.0))))
8476
8477 (define-public moka-icon-theme
8478 (package
8479 (inherit faba-icon-theme)
8480 (name "moka-icon-theme")
8481 (version "5.4.0")
8482 (source
8483 (origin
8484 (method git-fetch)
8485 (uri (git-reference
8486 (url "https://github.com/snwh/moka-icon-theme.git")
8487 (commit (string-append "v" version))))
8488 (file-name (git-file-name name version))
8489 (sha256
8490 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8491 (propagated-inputs
8492 ;; Moka is based on Faba by using it as a fallback icon set instead of
8493 ;; bundling it, so we need to add it as a propagated input.
8494 `(("faba-icon-theme" ,faba-icon-theme)))
8495 (synopsis "Moka icon theme")
8496 (description "Moka is a stylized desktop icon set, designed to be clear,
8497 simple and consistent.")
8498 (license (list license:gpl3+
8499 license:cc-by-sa4.0))))
8500
8501 (define-public arc-icon-theme
8502 (package
8503 (name "arc-icon-theme")
8504 (version "20161122")
8505 (source
8506 (origin
8507 (method git-fetch)
8508 (uri (git-reference
8509 (url "https://github.com/horst3180/arc-icon-theme.git")
8510 (commit version)))
8511 (file-name (git-file-name name version))
8512 (sha256
8513 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8514 (build-system gnu-build-system)
8515 (arguments
8516 `(#:phases
8517 (modify-phases %standard-phases
8518 (add-after 'unpack 'disable-configure-during-bootstrap
8519 (lambda _
8520 (substitute* "autogen.sh"
8521 (("^\"\\$srcdir/configure\".*") ""))
8522 #t)))))
8523 (native-inputs
8524 `(("autoconf" ,autoconf)
8525 ("automake" ,automake)))
8526 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8527 (propagated-inputs
8528 `(("moka-icon-theme" ,moka-icon-theme)))
8529 (synopsis "Arc icon theme")
8530 (description "The Arc icon theme provides a set of icons matching the
8531 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8532 the Moka icon theme.")
8533 (home-page "https://github.com/horst3180/arc-icon-theme")
8534 (license license:gpl3+)))
8535
8536 (define-public folks
8537 (package
8538 (name "folks")
8539 (version "0.13.1")
8540 (source (origin
8541 (method url-fetch)
8542 (uri (string-append
8543 "mirror://gnome/sources/folks/"
8544 (version-major+minor version) "/"
8545 "folks-" version ".tar.xz"))
8546 (sha256
8547 (base32
8548 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8549 (build-system meson-build-system)
8550 (arguments
8551 '(#:phases
8552 (modify-phases %standard-phases
8553 (add-after 'unpack 'skip-gtk-update-icon-cache
8554 ;; Don't create 'icon-theme.cache'.
8555 (lambda _
8556 (substitute* "meson_post_install.py"
8557 (("gtk-update-icon-cache") "true"))
8558 #t)))))
8559 (inputs
8560 `(("bdb" ,bdb)
8561 ("dbus-glib" ,dbus-glib)
8562 ("evolution-data-server" ,evolution-data-server)
8563 ("glib" ,glib)
8564 ("libgee" ,libgee)
8565 ("readline" ,readline)
8566 ("telepathy-glib" ,telepathy-glib)))
8567 (native-inputs
8568 `(("glib:bin" ,glib "bin")
8569 ("gobject-introspection" ,gobject-introspection)
8570 ("intltool" ,intltool)
8571 ("pkg-config" ,pkg-config)
8572 ("vala" ,vala)))
8573 (synopsis "Library to aggregate data about people")
8574 (description "Libfolks is a library that aggregates information about people
8575 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8576 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8577 etc.) to create metacontacts. It's written in Vala, which generates C code when
8578 compiled.")
8579 (home-page "https://wiki.gnome.org/Projects/Folks")
8580 (license license:lgpl2.1+)))
8581
8582 (define-public gfbgraph
8583 (package
8584 (name "gfbgraph")
8585 (version "0.2.3")
8586 (source (origin
8587 (method url-fetch)
8588 (uri (string-append
8589 "mirror://gnome/sources/gfbgraph/"
8590 (version-major+minor version) "/"
8591 "gfbgraph-" version ".tar.xz"))
8592 (sha256
8593 (base32
8594 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8595 (build-system glib-or-gtk-build-system)
8596 (arguments
8597 `(#:tests? #f ; Tests appear to require the network.
8598 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8599 #:configure-flags '("--disable-gtk-doc"
8600 "--disable-static"
8601 "--enable-introspection")))
8602 (native-inputs
8603 `(("pkg-config" ,pkg-config)
8604 ("gobject-introspection" ,gobject-introspection)))
8605 (inputs
8606 `(("json-glib" ,json-glib)
8607 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8608 ("rest" ,rest)))
8609 (synopsis "GLib/GObject wrapper for the Facebook API")
8610 (description "This library allows you to use the Facebook API from
8611 GLib/GObject code.")
8612 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8613 (license license:lgpl2.1+)))
8614
8615 (define-public libgnomekbd
8616 (package
8617 (name "libgnomekbd")
8618 (version "3.26.1")
8619 (source (origin
8620 (method url-fetch)
8621 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8622 (version-major+minor version) "/"
8623 "libgnomekbd-" version ".tar.xz"))
8624 (sha256
8625 (base32
8626 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8627 (build-system gnu-build-system)
8628 (native-inputs
8629 `(("pkg-config" ,pkg-config)
8630 ("glib" ,glib "bin")
8631 ("intltool" ,intltool)))
8632 (propagated-inputs
8633 ;; Referred to in .h files and .pc.
8634 `(("glib" ,glib)
8635 ("gtk+" ,gtk+)
8636 ("libxklavier" ,libxklavier)))
8637 (home-page "https://www.gnome.org")
8638 (synopsis "GNOME keyboard configuration library")
8639 (description
8640 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8641 environment, which can notably display keyboard layouts.")
8642 (license license:lgpl2.0+)))
8643
8644 ;;; This package is no longer maintained:
8645 ;;; https://wiki.gnome.org/Attic/LibUnique
8646 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8647 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8648 (define-public libunique
8649 (package
8650 (name "libunique")
8651 (version "3.0.2")
8652 (source (origin
8653 (method url-fetch)
8654 (uri (string-append "mirror://gnome/sources/" name "/"
8655 (version-major+minor version) "/"
8656 name "-" version ".tar.xz"))
8657 (sha256
8658 (base32
8659 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8660 (build-system glib-or-gtk-build-system)
8661 (arguments
8662 `(#:configure-flags '("--disable-static"
8663 "--disable-dbus" ; use gdbus
8664 "--enable-introspection")))
8665 (native-inputs
8666 `(("pkg-config" ,pkg-config)
8667 ("gobject-introspection" ,gobject-introspection)
8668 ("glib:bin" ,glib "bin")
8669 ("gtk-doc" ,gtk-doc)))
8670 (propagated-inputs
8671 ;; Referred to in .h files and .pc.
8672 `(("gtk+" ,gtk+)))
8673 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8674 (synopsis "Library for writing single instance applications")
8675 (description
8676 "Libunique is a library for writing single instance applications. If you
8677 launch a single instance application twice, the second instance will either just
8678 quit or will send a message to the running instance. Libunique makes it easy to
8679 write this kind of application, by providing a base class, taking care of all
8680 the IPC machinery needed to send messages to a running instance, and also
8681 handling the startup notification side.")
8682 (license license:lgpl2.1+)))
8683
8684 (define-public gnome-calculator
8685 (package
8686 (name "gnome-calculator")
8687 (version "3.34.1")
8688 (source
8689 (origin
8690 (method url-fetch)
8691 (uri (string-append "mirror://gnome/sources/" name "/"
8692 (version-major+minor version) "/"
8693 name "-" version ".tar.xz"))
8694 (sha256
8695 (base32
8696 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
8697 (build-system meson-build-system)
8698 (arguments '(#:glib-or-gtk? #t))
8699 (native-inputs
8700 `(("gettext" ,gettext-minimal)
8701 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8702 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8703 ("itstool" ,itstool)
8704 ("vala" ,vala)
8705 ("pkg-config" ,pkg-config)))
8706 (inputs
8707 `(("glib" ,glib)
8708 ("gtksourceview" ,gtksourceview)
8709 ("libgee" ,libgee)
8710 ("libsoup" ,libsoup)
8711 ("libxml2" ,libxml2)
8712 ("mpc" ,mpc)
8713 ("mpfr" ,mpfr)))
8714 (home-page "https://wiki.gnome.org/Apps/Calculator")
8715 (synopsis "Desktop calculator")
8716 (description
8717 "Calculator is an application that solves mathematical equations and
8718 is suitable as a default application in a Desktop environment.")
8719 (license license:gpl3)))
8720
8721 (define-public xpad
8722 (package
8723 (name "xpad")
8724 (version "5.1.0")
8725 (source
8726 (origin
8727 (method url-fetch)
8728 (uri (string-append "https://launchpad.net/xpad/trunk/"
8729 version "/+download/"
8730 name "-" version ".tar.bz2"))
8731 (sha256
8732 (base32
8733 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8734 (build-system gnu-build-system)
8735 (native-inputs
8736 `(("autoconf" ,autoconf)
8737 ("automake" ,automake)
8738 ("gtk+:bin" ,gtk+ "bin")
8739 ("intltool" ,intltool)
8740 ("pkg-config" ,pkg-config)))
8741 (inputs
8742 `(("gtksourceview" ,gtksourceview-3)
8743 ("libsm" ,libsm)))
8744 (home-page "https://wiki.gnome.org/Apps/Xpad")
8745 (synopsis "Virtual sticky note")
8746 (description
8747 "Xpad is a sticky note that strives to be simple, fault tolerant,
8748 and customizable. Xpad consists of independent pad windows, each is
8749 basically a text box in which notes can be written.")
8750 (license license:gpl3+)))
8751
8752 (define-public gucharmap
8753 (let ((unicode-files
8754 '(("Blocks.txt"
8755 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8756 ("DerivedAge.txt"
8757 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8758 ("NamesList.txt"
8759 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8760 ("Scripts.txt"
8761 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8762 ("UnicodeData.txt"
8763 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8764 ("Unihan.zip"
8765 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8766 (package
8767 (name "gucharmap")
8768 (version "12.0.1")
8769 (source
8770 (origin
8771 (method url-fetch)
8772 (uri (string-append "mirror://gnome/sources/" name "/"
8773 (version-major+minor version) "/"
8774 name "-" version ".tar.xz"))
8775 (sha256
8776 (base32
8777 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8778 (build-system glib-or-gtk-build-system)
8779 (arguments
8780 `(#:modules ((ice-9 match)
8781 (guix build glib-or-gtk-build-system)
8782 (guix build utils))
8783 #:configure-flags
8784 (list "--with-unicode-data=../unicode-data")
8785 #:phases
8786 (modify-phases %standard-phases
8787 (add-after 'unpack 'prepare-unicode-data
8788 (lambda* (#:key inputs #:allow-other-keys)
8789 (mkdir-p "../unicode-data")
8790 (with-directory-excursion "../unicode-data"
8791 (for-each (match-lambda
8792 ((file _)
8793 (install-file (assoc-ref inputs file) ".")))
8794 ',unicode-files))
8795 #t)))))
8796 (native-inputs
8797 `(("desktop-file-utils" ,desktop-file-utils)
8798 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8799 ("gobject-introspection" ,gobject-introspection)
8800 ("intltool" ,intltool)
8801 ("itstool" ,itstool)
8802 ("pkg-config" ,pkg-config)
8803 ,@(map (match-lambda
8804 ((file hash)
8805 `(,file
8806 ,(origin
8807 (method url-fetch)
8808 (uri (string-append
8809 "http://www.unicode.org/Public/12.0.0/ucd/"
8810 file))
8811 (sha256 (base32 hash))))))
8812 unicode-files)
8813 ("unzip" ,unzip)))
8814 (inputs
8815 `(("gtk+" ,gtk+)
8816 ("xmllint" ,libxml2)))
8817 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8818 (synopsis "Unicode character picker and font browser")
8819 (description
8820 "This program allows you to browse through all the available Unicode
8821 characters and categories for the installed fonts, and to examine their
8822 detailed properties. It is an easy way to find the character you might
8823 only know by its Unicode name or code point.")
8824 (license license:gpl3+))))
8825
8826 (define-public bluefish
8827 (package
8828 (name "bluefish")
8829 (version "2.2.11")
8830 (source
8831 (origin
8832 (method url-fetch)
8833 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8834 "bluefish-" version ".tar.gz"))
8835 (sha256
8836 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
8837 (build-system gnu-build-system)
8838 (native-inputs
8839 `(("desktop-file-utils" ,desktop-file-utils)
8840 ("intltool" ,intltool)
8841 ("pkg-config" ,pkg-config)))
8842 (inputs
8843 `(("enchant" ,enchant)
8844 ("gtk+" ,gtk+)
8845 ("python" ,python-wrapper)
8846 ("xmllint" ,libxml2)
8847 ("gucharmap" ,gucharmap)))
8848 (home-page "http://bluefish.openoffice.nl")
8849 (synopsis "Web development studio")
8850 (description
8851 "Bluefish is an editor targeted towards programmers and web developers,
8852 with many options to write web sites, scripts and other code.
8853 Bluefish supports many programming and markup languages.")
8854 (license license:gpl3+)))
8855
8856 (define-public gnome-system-monitor
8857 (package
8858 (name "gnome-system-monitor")
8859 (version "3.32.1")
8860 (source
8861 (origin
8862 (method url-fetch)
8863 (uri (string-append "mirror://gnome/sources/" name "/"
8864 (version-major+minor version) "/"
8865 name "-" version ".tar.xz"))
8866 (sha256
8867 (base32
8868 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8869 (build-system meson-build-system)
8870 (arguments
8871 '(#:glib-or-gtk? #t
8872 #:configure-flags '("-Dsystemd=false")))
8873 (native-inputs
8874 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8875 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8876 ("intltool" ,intltool)
8877 ("itstool" ,itstool)
8878 ("libgtop" ,libgtop)
8879 ("polkit" ,polkit)
8880 ("pkg-config" ,pkg-config)))
8881 (inputs
8882 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8883 ("gtk+" ,gtk+)
8884 ("gtkmm" ,gtkmm)
8885 ("librsvg" ,librsvg)
8886 ("libxml2" ,libxml2)
8887 ("libwnck" ,libwnck)))
8888 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8889 (synopsis "Process viewer and system resource monitor for GNOME")
8890 (description
8891 "GNOME System Monitor is a GNOME process viewer and system monitor with
8892 an attractive, easy-to-use interface. It has features, such as a tree view
8893 for process dependencies, icons for processes, the ability to hide processes,
8894 graphical time histories of CPU/memory/swap usage and the ability to
8895 kill/reinice processes.")
8896 (license license:gpl2+)))
8897
8898 (define-public python-pyatspi
8899 (package
8900 (name "python-pyatspi")
8901 (version "2.34.0")
8902 (source (origin
8903 (method url-fetch)
8904 (uri (string-append
8905 "mirror://gnome/sources/pyatspi/"
8906 (version-major+minor version)
8907 "/pyatspi-" version ".tar.xz"))
8908 (sha256
8909 (base32
8910 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8911 (build-system gnu-build-system)
8912 (arguments
8913 `(#:phases
8914 (modify-phases %standard-phases
8915 (add-before 'build 'fix-atk-load
8916 (lambda _
8917 (substitute* "pyatspi/__init__.py"
8918 (("from gi.repository import Atspi")
8919 "gi.require_version('Gtk', '3.0')
8920 from gi.repository import Gtk
8921 from gi.repository import Atspi"))
8922 #t)))))
8923 (native-inputs
8924 `(("pkg-config" ,pkg-config)))
8925 (inputs
8926 `(("python" ,python)))
8927 (propagated-inputs
8928 `(("python-pygobject" ,python-pygobject)))
8929 (synopsis "Python client bindings for D-Bus AT-SPI")
8930 (home-page "https://wiki.linuxfoundation.org/accessibility\
8931 /atk/at-spi/at-spi_on_d-bus")
8932 (description
8933 "This package includes a python client library for the AT-SPI D-Bus
8934 accessibility infrastructure.")
8935 (license license:lgpl2.0)
8936 (properties '((upstream-name . "pyatspi")))))
8937
8938 (define-public python2-pyatspi
8939 (package
8940 (inherit python-pyatspi)
8941 (name "python2-pyatspi")
8942 (inputs
8943 `(("python" ,python-2)))
8944 (propagated-inputs
8945 `(("python-pygobject" ,python2-pygobject)))))
8946
8947 (define-public orca
8948 (package
8949 (name "orca")
8950 (version "3.34.1")
8951 (source (origin
8952 (method url-fetch)
8953 (uri (string-append
8954 "mirror://gnome/sources/" name "/"
8955 (version-major+minor version) "/"
8956 name "-" version ".tar.xz"))
8957 (sha256
8958 (base32
8959 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
8960 (build-system glib-or-gtk-build-system)
8961 (arguments
8962 '(#:phases
8963 (modify-phases %standard-phases
8964 (add-before 'configure 'qualify-xkbcomp
8965 (lambda* (#:key inputs #:allow-other-keys)
8966 (let ((xkbcomp (string-append
8967 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8968 (substitute* "src/orca/orca.py"
8969 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8970 #t))
8971 (add-after 'install 'wrap-orca
8972 (lambda* (#:key outputs #:allow-other-keys)
8973 (let* ((out (assoc-ref outputs "out"))
8974 (prog (string-append out "/bin/orca")))
8975 (wrap-program prog
8976 `("GI_TYPELIB_PATH" ":" prefix
8977 (,(getenv "GI_TYPELIB_PATH")))
8978 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8979 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8980 `("PYTHONPATH" ":" prefix
8981 (,(getenv "PYTHONPATH")))))
8982 #t)))))
8983 (native-inputs
8984 `(("intltool" ,intltool)
8985 ("itstool" ,itstool)
8986 ("pkg-config" ,pkg-config)
8987 ("xmllint" ,libxml2)))
8988 (inputs
8989 `(("at-spi2-atk" ,at-spi2-atk)
8990 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8991 ("gstreamer" ,gstreamer)
8992 ("gst-plugins-base" ,gst-plugins-base)
8993 ("gst-plugins-good" ,gst-plugins-good)
8994 ("gtk+" ,gtk+)
8995 ("python" ,python)
8996 ("python-pygobject" ,python-pygobject)
8997 ("python-pyatspi" ,python-pyatspi)
8998 ("python-speechd" ,speech-dispatcher)
8999 ("xkbcomp" ,xkbcomp)))
9000 (synopsis
9001 "Screen reader for individuals who are blind or visually impaired")
9002 (home-page "https://wiki.gnome.org/Projects/Orca")
9003 (description
9004 "Orca is a screen reader that provides access to the graphical desktop
9005 via speech and refreshable braille. Orca works with applications and toolkits
9006 that support the Assistive Technology Service Provider Interface (AT-SPI).")
9007 (license license:lgpl2.1+)))
9008
9009 (define-public gspell
9010 (package
9011 (name "gspell")
9012 (version "1.8.2")
9013 (source (origin
9014 (method url-fetch)
9015 (uri (string-append "mirror://gnome/sources/" name "/"
9016 (version-major+minor version) "/"
9017 name "-" version ".tar.xz"))
9018 (sha256
9019 (base32
9020 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
9021 (patches (search-patches "gspell-dash-test.patch"))))
9022 (build-system glib-or-gtk-build-system)
9023 (arguments
9024 '(#:configure-flags (list "--enable-vala")
9025 #:phases
9026 (modify-phases %standard-phases
9027 (add-before 'check 'pre-check
9028 (lambda* (#:key inputs #:allow-other-keys)
9029 ;; Tests require a running X server.
9030 (system "Xvfb :1 &")
9031 (setenv "DISPLAY" ":1")
9032
9033 ;; For the missing /etc/machine-id.
9034 (setenv "DBUS_FATAL_WARNINGS" "0")
9035
9036 ;; Allow Enchant and its Aspell backend to find the en_US
9037 ;; dictionary.
9038 (setenv "ASPELL_DICT_DIR"
9039 (string-append (assoc-ref inputs "aspell-dict-en")
9040 "/lib/aspell"))
9041 #t)))))
9042 (inputs
9043 `(("gtk+" ,gtk+)
9044 ("glib" ,glib)
9045 ("iso-codes" ,iso-codes)))
9046 (native-inputs
9047 `(("glib" ,glib "bin")
9048 ("gobject-introspection" ,gobject-introspection)
9049 ("pkg-config" ,pkg-config)
9050 ("vala" ,vala) ;for VAPI, needed by Geary
9051 ("xmllint" ,libxml2)
9052
9053 ;; For tests.
9054 ("aspell-dict-en" ,aspell-dict-en)
9055 ("xorg-server" ,xorg-server-for-tests)))
9056 (propagated-inputs
9057 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
9058 (home-page "https://wiki.gnome.org/Projects/gspell")
9059 (synopsis "GNOME's alternative spell checker")
9060 (description
9061 "gspell provides a flexible API to add spell-checking to a GTK+
9062 application. It provides a GObject API, spell-checking to text entries and
9063 text views, and buttons to choose the language.")
9064 (license license:gpl2+)))
9065
9066 (define-public gnome-planner
9067 (package
9068 (name "gnome-planner")
9069 (version "0.14.6")
9070 (source (origin
9071 (method url-fetch)
9072 (uri (string-append "mirror://gnome/sources/planner/"
9073 (version-major+minor version) "/planner-"
9074 version ".tar.xz"))
9075 (sha256
9076 (base32
9077 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9078 (build-system glib-or-gtk-build-system)
9079 (arguments
9080 ;; Disable the Python bindings because the Planner program functions
9081 ;; without them, and (as of 2017-06-13) we have not packaged all of
9082 ;; packages that are necessary for building the Python bindings.
9083 `(#:configure-flags
9084 (list "--disable-python"
9085 ,@(if (string=? "aarch64-linux" (%current-system))
9086 '("--build=aarch64-unknown-linux-gnu")
9087 '()))))
9088 (inputs
9089 `(("libgnomecanvas" ,libgnomecanvas)
9090 ("libgnomeui" ,libgnomeui)
9091 ("libglade" ,libglade)
9092 ("gnome-vfs" ,gnome-vfs)
9093 ("gconf" ,gconf)
9094 ("libxml2" ,libxml2)
9095 ("libxslt" ,libxslt)
9096 ("gtk+" ,gtk+)
9097 ("glib" ,glib)))
9098 (native-inputs
9099 `(("intltool" ,intltool)
9100 ("scrollkeeper" ,scrollkeeper)
9101 ("pkg-config" ,pkg-config)))
9102 (home-page "https://wiki.gnome.org/Apps/Planner")
9103 (synopsis "Project management software for the GNOME desktop")
9104 (description
9105 "GNOME Planner is a project management tool based on the Work Breakdown
9106 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9107 the resources, tasks, and constraints that you define, Planner generates
9108 various views into a project. For example, Planner can show a Gantt chart of
9109 the project. It can show a detailed summary of tasks including their
9110 duration, cost, and current progress. It can also show a report of resource
9111 utilization that highlights under-utilized and over-utilized resources. These
9112 views can be printed as PDF or PostScript files, or exported to HTML.")
9113 (license license:gpl2+)))
9114
9115 (define-public lollypop
9116 (package
9117 (name "lollypop")
9118 (version "1.2.32")
9119 (source
9120 (origin
9121 (method url-fetch)
9122 (uri (string-append "https://adishatz.org/lollypop/"
9123 "lollypop-" version ".tar.xz"))
9124 (sha256
9125 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
9126 (build-system meson-build-system)
9127 (arguments
9128 `(#:imported-modules
9129 (,@%meson-build-system-modules
9130 (guix build python-build-system))
9131 #:modules
9132 ((guix build meson-build-system)
9133 ((guix build python-build-system) #:prefix python:)
9134 (guix build utils))
9135 #:glib-or-gtk? #t
9136 #:tests? #f ; no test suite
9137 #:phases
9138 (modify-phases %standard-phases
9139 (add-after 'install 'wrap-program
9140 (lambda* (#:key outputs #:allow-other-keys)
9141 (let ((out (assoc-ref outputs "out"))
9142 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9143 (wrap-program (string-append out "/bin/lollypop")
9144 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9145 #t))
9146 (add-after 'install 'wrap-python
9147 (assoc-ref python:%standard-phases 'wrap)))))
9148 (native-inputs
9149 `(("intltool" ,intltool)
9150 ("itstool" ,itstool)
9151 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9152 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9153 ("pkg-config" ,pkg-config)))
9154 (inputs
9155 `(("gobject-introspection" ,gobject-introspection)
9156 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9157 ("gst-plugins-base" ,gst-plugins-base)
9158 ("libnotify" ,libnotify)
9159 ("libsecret" ,libsecret)
9160 ("libsoup" ,libsoup)
9161 ("python" ,python)
9162 ("python-beautifulsoup4" ,python-beautifulsoup4)
9163 ("python-gst" ,python-gst)
9164 ("python-pil" ,python-pillow)
9165 ("python-pycairo" ,python-pycairo)
9166 ("python-pygobject" ,python-pygobject)
9167 ("python-pylast" ,python-pylast)
9168 ("totem-pl-parser" ,totem-pl-parser)
9169 ("webkitgtk" ,webkitgtk)))
9170 (propagated-inputs
9171 `(;; gst-plugins-base is required to start Lollypop,
9172 ;; the others are required to play streaming.
9173 ("gst-plugins-good" ,gst-plugins-good)
9174 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9175 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9176 (synopsis "GNOME music playing application")
9177 (description
9178 "Lollypop is a music player designed to play well with GNOME desktop.
9179 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9180 from artists and tracks from the web. It also fetches cover artworks
9181 automatically and it can stream songs from online music services and charts.")
9182 (license license:gpl3+)))
9183
9184 (define-public gnome-video-effects
9185 (package
9186 (name "gnome-video-effects")
9187 (version "0.4.3")
9188 (source (origin
9189 (method url-fetch)
9190 (uri (string-append "mirror://gnome/sources/" name "/"
9191 (version-major+minor version) "/" name "-"
9192 version ".tar.xz"))
9193 (sha256
9194 (base32
9195 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9196 (build-system glib-or-gtk-build-system)
9197 (arguments
9198 `(#:out-of-source? #f))
9199 (native-inputs
9200 `(("glib:bin" ,glib "bin")
9201 ("intltool" ,intltool)
9202 ("gettext" ,gettext-minimal)
9203 ("pkg-config" ,pkg-config)))
9204 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9205 (synopsis "Video effects for Cheese and other GNOME applications")
9206 (description
9207 "A collection of GStreamer video filters and effects to be used in
9208 photo-booth-like software, such as Cheese.")
9209 (license license:gpl2+)))
9210
9211 (define-public cheese
9212 (package
9213 (name "cheese")
9214 (version "3.34.0")
9215 (source (origin
9216 (method url-fetch)
9217 (uri (string-append "mirror://gnome/sources/" name "/"
9218 (version-major+minor version) "/" name "-"
9219 version ".tar.xz"))
9220 (sha256
9221 (base32
9222 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
9223 (arguments
9224 `(#:glib-or-gtk? #t
9225 ;; Tests require GDK.
9226 #:tests? #f
9227 #:phases
9228 (modify-phases %standard-phases
9229 (add-after 'unpack 'skip-gtk-update-icon-cache
9230 (lambda _
9231 ;; Don't create 'icon-theme.cache'
9232 (substitute* "meson_post_install.py"
9233 (("gtk-update-icon-cache") (which "true")))
9234 #t))
9235 (add-after 'install 'wrap-cheese
9236 (lambda* (#:key inputs outputs #:allow-other-keys)
9237 (let ((out (assoc-ref outputs "out"))
9238 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9239 (wrap-program (string-append out "/bin/cheese")
9240 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9241 #t)))))
9242 (build-system meson-build-system)
9243 (native-inputs
9244 `(("docbook-xsl" ,docbook-xsl)
9245 ("glib:bin" ,glib "bin")
9246 ("gtk-doc" ,gtk-doc)
9247 ("intltool" ,intltool)
9248 ("itstool" ,itstool)
9249 ("libxml2" ,libxml2)
9250 ("libxslt" ,libxslt)
9251 ("pkg-config" ,pkg-config)
9252 ("vala" ,vala)))
9253 (propagated-inputs
9254 `(("gnome-video-effects" ,gnome-video-effects)
9255 ("clutter" ,clutter)
9256 ("clutter-gst" ,clutter-gst)
9257 ("clutter-gtk" ,clutter-gtk)
9258 ("libcanberra" ,libcanberra)
9259 ("gdk-pixbuf" ,gdk-pixbuf)
9260 ("glib" ,glib)
9261 ("gstreamer" ,gstreamer)))
9262 (inputs
9263 `(("gnome-desktop" ,gnome-desktop)
9264 ("gobject-introspection" ,gobject-introspection)
9265 ("gst-plugins-base" ,gst-plugins-base)
9266 ("gst-plugins-bad" ,gst-plugins-bad)
9267 ("gtk+" ,gtk+)
9268 ("libx11" ,libx11)
9269 ("libxtst" ,libxtst)))
9270 (home-page "https://wiki.gnome.org/Apps/Cheese")
9271 (synopsis "Webcam photo booth software for GNOME")
9272 (description
9273 "Cheese uses your webcam to take photos and videos. Cheese can also
9274 apply fancy special effects and lets you share the fun with others.")
9275 (license license:gpl2+)))
9276
9277 (define-public sound-juicer
9278 (package
9279 (name "sound-juicer")
9280 (version "3.24.0")
9281 (source
9282 (origin
9283 (method url-fetch)
9284 (uri (string-append "mirror://gnome/sources/" name "/"
9285 (version-major+minor version) "/"
9286 name "-" version ".tar.xz"))
9287 (sha256
9288 (base32
9289 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9290 (build-system glib-or-gtk-build-system)
9291 (native-inputs
9292 `(("desktop-file-utils" ,desktop-file-utils)
9293 ("intltool" ,intltool)
9294 ("itstool" ,itstool)
9295 ("pkg-config" ,pkg-config)
9296 ("xmllint" ,libxml2)))
9297 (inputs
9298 `(("gtk+" ,gtk+)
9299 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9300 ("gstreamer" ,gstreamer)
9301 ("gst-plugins-base" ,gst-plugins-base)
9302 ("gst-plugins-good" ,gst-plugins-good)
9303 ("iso-codes" ,iso-codes)
9304 ("libbrasero-media3" ,brasero)
9305 ("libcanberra" ,libcanberra)
9306 ("libdiscid" ,libdiscid)
9307 ("libmusicbrainz" ,libmusicbrainz)
9308 ("neon" ,neon)))
9309 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9310 (synopsis "Audio music cd ripper")
9311 (description "Sound Juicer extracts audio from compact discs and convert it
9312 into audio files that a personal computer or digital audio player can play.
9313 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9314 mp3, Ogg Vorbis and FLAC")
9315 (license license:gpl2+)))
9316
9317 (define-public soundconverter
9318 (package
9319 (name "soundconverter")
9320 (version "3.0.2")
9321 (source
9322 (origin
9323 (method url-fetch)
9324 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9325 version "/+download/"
9326 "soundconverter-" version ".tar.xz"))
9327
9328 (sha256
9329 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
9330 (build-system glib-or-gtk-build-system)
9331 (arguments
9332 `(#:imported-modules ((guix build python-build-system)
9333 (guix build glib-or-gtk-build-system)
9334 ,@%gnu-build-system-modules)
9335
9336 #:modules ((guix build glib-or-gtk-build-system)
9337 (guix build utils)
9338 ((guix build gnu-build-system) #:prefix gnu:)
9339 ((guix build python-build-system) #:prefix python:))
9340
9341 #:phases
9342 (modify-phases %standard-phases
9343 (add-after 'install 'wrap-soundconverter-for-python
9344 (assoc-ref python:%standard-phases 'wrap))
9345 (add-after 'install 'wrap-soundconverter
9346 (lambda* (#:key inputs outputs #:allow-other-keys)
9347 (let ((out (assoc-ref outputs "out"))
9348 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9349 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9350 (wrap-program (string-append out "/bin/soundconverter")
9351 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9352 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9353 #t)))))
9354 (native-inputs
9355 `(("intltool" ,intltool)
9356 ("pkg-config" ,pkg-config)
9357 ("glib:bin" ,glib "bin")))
9358 (inputs
9359 `(("gtk+" ,gtk+)
9360 ("python" ,python)
9361 ("python-pygobject" ,python-pygobject)
9362 ("gstreamer" ,gstreamer)
9363 ("gst-plugins-base" ,gst-plugins-base)))
9364 (home-page "https://soundconverter.org/")
9365 (synopsis "Convert between audio formats with a graphical interface")
9366 (description
9367 "SoundConverter supports converting between many audio formats including
9368 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9369 configurable file renaming. ")
9370 (license license:gpl3)))
9371
9372 (define-public workrave
9373 (package
9374 (name "workrave")
9375 (version "1.10.42")
9376 (source
9377 (origin
9378 (method git-fetch)
9379 (uri (git-reference
9380 (url "https://github.com/rcaelers/workrave.git")
9381 (commit (string-append "v" (string-map
9382 (match-lambda (#\. #\_) (chr chr))
9383 version)))))
9384 (file-name (git-file-name name version))
9385 (sha256
9386 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
9387 (build-system glib-or-gtk-build-system)
9388 (arguments
9389 ;; The only tests are maintainer tests (in po/), which fail.
9390 `(#:tests? #f))
9391 (inputs `(("glib" ,glib)
9392 ("gtk+" ,gtk+)
9393 ("gdk-pixbuf" ,gdk-pixbuf)
9394 ("gtkmm" ,gtkmm)
9395 ("glibmm" ,glibmm)
9396 ("libx11" ,libx11)
9397 ("libxtst" ,libxtst)
9398 ("dconf" ,dconf)
9399 ("libice" ,libice)
9400 ("libsm" ,libsm)
9401 ("libxscrnsaver" ,libxscrnsaver)))
9402 (native-inputs `(("boost" ,boost)
9403 ("pkg-config" ,pkg-config)
9404 ("gettext" ,gettext-minimal)
9405 ("autoconf" ,autoconf)
9406 ("autoconf-archive" , autoconf-archive)
9407 ("automake" ,automake)
9408 ("libtool" ,libtool)
9409 ("intltool" ,intltool)
9410 ("gobject-introspection" ,gobject-introspection)
9411 ("python3" ,python-3)
9412 ("python-jinja2" ,python-jinja2)))
9413 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9414 (description
9415 "Workrave is a program that assists in the recovery and prevention of
9416 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9417 micro-pauses and rest breaks, and restricts you to your daily limit.")
9418 (home-page "http://www.workrave.org")
9419 (license license:gpl3+)))
9420
9421 (define-public ghex
9422 (package
9423 (name "ghex")
9424 (version "3.18.4")
9425 (source (origin
9426 (method url-fetch)
9427 (uri (string-append "mirror://gnome/sources/ghex/"
9428 (version-major+minor version) "/"
9429 "ghex-" version ".tar.xz"))
9430 (sha256
9431 (base32
9432 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9433 (build-system meson-build-system)
9434 (arguments
9435 '(#:glib-or-gtk? #t
9436 #:phases
9437 (modify-phases %standard-phases
9438 (add-after 'unpack 'skip-gtk-update-icon-cache
9439 ;; Don't create 'icon-theme.cache'.
9440 (lambda _
9441 (substitute* "meson_post_install.py"
9442 (("gtk-update-icon-cache") (which "true")))
9443 #t)))))
9444 (native-inputs
9445 `(("pkg-config" ,pkg-config)
9446 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9447 ("gnome-common" ,gnome-common)
9448 ("which" ,which)
9449 ("intltool" ,intltool)
9450 ("yelp-tools" ,yelp-tools)
9451 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9452 (inputs
9453 `(("atk" ,atk)
9454 ("gtk" ,gtk+)))
9455 (synopsis "GNOME hexadecimal editor")
9456 (description "The GHex program can view and edit files in two ways:
9457 hexadecimal or ASCII. It is useful for editing binary files in general.")
9458 (home-page "https://wiki.gnome.org/Apps/Ghex")
9459 (license license:gpl2)))
9460
9461 (define-public libdazzle
9462 (package
9463 (name "libdazzle")
9464 (version "3.34.1")
9465 (source (origin
9466 (method url-fetch)
9467 (uri (string-append "mirror://gnome/sources/libdazzle/"
9468 (version-major+minor version) "/"
9469 "libdazzle-" version ".tar.xz"))
9470 (sha256
9471 (base32
9472 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
9473 (build-system meson-build-system)
9474 (arguments
9475 `(#:phases
9476 (modify-phases %standard-phases
9477 (add-before 'check 'pre-check
9478 (lambda _
9479 ;; Tests require a running X server.
9480 (system "Xvfb :1 &")
9481 (setenv "DISPLAY" ":1")
9482 #t)))))
9483 (native-inputs
9484 `(("glib" ,glib "bin") ; glib-compile-resources
9485 ("pkg-config" ,pkg-config)
9486 ;; For tests.
9487 ("xorg-server" ,xorg-server-for-tests)))
9488 (inputs
9489 `(("glib" ,glib)
9490 ("gobject-introspection" ,gobject-introspection)
9491 ("gtk+" ,gtk+)
9492 ("vala" ,vala)))
9493 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9494 (synopsis "Companion library to GObject and Gtk+")
9495 (description "The libdazzle library is a companion library to GObject and
9496 Gtk+. It provides various features that the authors wish were in the
9497 underlying library but cannot for various reasons. In most cases, they are
9498 wildly out of scope for those libraries. In other cases, they are not quite
9499 generic enough to work for everyone.")
9500 (license license:gpl3+)))
9501
9502 (define-public evolution
9503 (package
9504 (name "evolution")
9505 (version "3.34.2")
9506 (source (origin
9507 (method url-fetch)
9508 (uri (string-append "mirror://gnome/sources/evolution/"
9509 (version-major+minor version) "/"
9510 "evolution-" version ".tar.xz"))
9511 (sha256
9512 (base32
9513 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
9514 (build-system cmake-build-system)
9515 (arguments
9516 `(#:imported-modules (,@%cmake-build-system-modules
9517 (guix build glib-or-gtk-build-system))
9518 #:modules ((guix build cmake-build-system)
9519 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9520 (guix build utils))
9521 #:configure-flags
9522 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9523 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9524 ; in four years and cannot be built.
9525 #:phases
9526 (modify-phases %standard-phases
9527 ;; The build system attempts to install user interface modules to the
9528 ;; output directory of the "evolution-data-server" package. This
9529 ;; change redirects that change.
9530 (add-after 'unpack 'patch-ui-module-dir
9531 (lambda* (#:key outputs #:allow-other-keys)
9532 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9533 (("\\$\\{edsuimoduledir\\}")
9534 (string-append (assoc-ref outputs "out")
9535 "/lib/evolution-data-server/ui-modules")))
9536 #t))
9537 (add-after 'install 'glib-or-gtk-compile-schemas
9538 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9539 (add-after 'install 'glib-or-gtk-wrap
9540 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9541 (native-inputs
9542 `(("glib" ,glib "bin") ; glib-mkenums
9543 ("pkg-config" ,pkg-config)
9544 ("intltool" ,intltool)
9545 ("itstool" ,itstool)))
9546 (inputs
9547 `(("enchant" ,enchant)
9548 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9549 ("gcr" ,gcr)
9550 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9551 ("gnome-autoar" ,gnome-autoar)
9552 ("gnome-desktop" ,gnome-desktop)
9553 ("gspell" ,gspell)
9554 ("highlight" ,highlight)
9555 ("libcanberra" ,libcanberra)
9556 ("libgweather" ,libgweather)
9557 ("libnotify" ,libnotify)
9558 ("libsoup" ,libsoup)
9559 ("nss" ,nss)
9560 ("openldap" ,openldap)
9561 ("webkitgtk" ,webkitgtk)
9562 ("ytnef" ,ytnef)))
9563 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9564 (synopsis "Manage your email, contacts and schedule")
9565 (description "Evolution is a personal information management application
9566 that provides integrated mail, calendaring and address book
9567 functionality.")
9568 ;; See COPYING for details.
9569 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9570 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9571 license:lgpl2.1+)))) ; smime/lib/*
9572
9573 (define-public gthumb
9574 (package
9575 (name "gthumb")
9576 (version "3.8.2")
9577 (source (origin
9578 (method url-fetch)
9579 (uri (string-append "mirror://gnome/sources/gthumb/"
9580 (version-major+minor version) "/"
9581 "gthumb-" version ".tar.xz"))
9582 (sha256
9583 (base32
9584 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9585 (build-system meson-build-system)
9586 (arguments
9587 `(#:glib-or-gtk? #t
9588 #:configure-flags
9589 ;; Ensure the RUNPATH contains all installed library locations.
9590 (list (string-append "-Dc_link_args=-Wl,-rpath="
9591 (assoc-ref %outputs "out")
9592 "/lib/gthumb/extensions")
9593 (string-append "-Dcpp_link_args=-Wl,-rpath="
9594 (assoc-ref %outputs "out")
9595 "/lib/gthumb/extensions"))))
9596 (native-inputs
9597 `(("pkg-config" ,pkg-config)
9598 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9599 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9600 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9601 ("intltool" ,intltool)
9602 ("itstool" ,itstool)))
9603 (inputs
9604 `(("exiv2" ,exiv2)
9605 ("gtk" ,gtk+)
9606 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9607 ("gstreamer" ,gstreamer)
9608 ("clutter" ,clutter)
9609 ("clutter-gst" ,clutter-gst)
9610 ("clutter-gtk" ,clutter-gtk)
9611 ("libjpeg" ,libjpeg-turbo)
9612 ("libtiff" ,libtiff)
9613 ("libraw" ,libraw)))
9614 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9615 (synopsis "GNOME image viewer and browser")
9616 (description "GThumb is an image viewer, browser, organizer, editor and
9617 advanced image management tool")
9618 (license license:gpl2+)))
9619
9620 (define-public terminator
9621 (package
9622 (name "terminator")
9623 (version "1.91")
9624 (source (origin
9625 (method url-fetch)
9626 (uri (string-append "https://launchpad.net/" name "/"
9627 "gtk3/" version "/" "+download/"
9628 name "-" version ".tar.gz"))
9629 (sha256
9630 (base32
9631 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9632 (build-system python-build-system)
9633 (native-inputs
9634 `(("intltool" ,intltool)
9635 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9636 ("gettext" ,gettext-minimal)
9637 ("pkg-config" ,pkg-config)))
9638 (inputs
9639 `(("cairo" ,cairo)
9640 ("gobject-introspection" ,gobject-introspection)
9641 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9642 ("python2-pycairo" ,python2-pycairo)
9643 ("python2-pygobject" ,python2-pygobject)
9644 ("python2-psutil" ,python2-psutil)
9645 ("vte" ,vte)))
9646 (arguments
9647 `(#:python ,python-2 ; Python 3 isn't supported
9648 #:imported-modules ((guix build glib-or-gtk-build-system)
9649 ,@%python-build-system-modules)
9650 #:modules ((guix build python-build-system)
9651 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9652 (guix build utils))
9653 #:phases
9654 (modify-phases %standard-phases
9655 (add-after
9656 'install 'wrap-program
9657 (lambda* (#:key outputs #:allow-other-keys)
9658 (let ((prog (string-append (assoc-ref outputs "out")
9659 "/bin/terminator")))
9660 (wrap-program prog
9661 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9662 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9663 #t)))
9664 (add-after 'wrap-program 'glib-or-gtk-wrap
9665 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9666 (home-page "https://gnometerminator.blogspot.com/")
9667 (synopsis "Store and run multiple GNOME terminals in one window")
9668 (description
9669 "Terminator allows you to run multiple GNOME terminals in a grid and
9670 +tabs, and it supports drag and drop re-ordering of terminals.")
9671 (license license:gpl2)))
9672
9673 (define-public libhandy
9674 (package
9675 (name "libhandy")
9676 (version "0.0.12")
9677 (source
9678 (origin
9679 (method git-fetch)
9680 (uri (git-reference
9681 (url "https://source.puri.sm/Librem5/libhandy")
9682 (commit (string-append "v" version))))
9683 (file-name (git-file-name name version))
9684 (sha256
9685 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9686 (build-system meson-build-system)
9687 (arguments
9688 `(#:configure-flags
9689 '("-Dglade_catalog=disabled"
9690 "-Dgtk_doc=true")
9691 #:phases
9692 (modify-phases %standard-phases
9693 (add-before 'check 'pre-check
9694 (lambda _
9695 ;; Tests require a running X server.
9696 (system "Xvfb :1 &")
9697 (setenv "DISPLAY" ":1")
9698 #t)))))
9699 (inputs
9700 `(("gtk+" ,gtk+)))
9701 (native-inputs
9702 `(("glib:bin" ,glib "bin")
9703 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9704 ("vala" ,vala)
9705 ("gtk-doc" ,gtk-doc)
9706 ("pkg-config" ,pkg-config)
9707 ("gettext" ,gettext-minimal)
9708
9709 ;; Test suite dependencies.
9710 ("xorg-server" ,xorg-server-for-tests)
9711 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9712 (home-page "https://source.puri.sm/Librem5/libhandy")
9713 (synopsis "Library full of GTK+ widgets for mobile phones")
9714 (description "The aim of the handy library is to help with developing user
9715 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9716 for usage on small and big screens.")
9717 (license license:lgpl2.1+)))
9718
9719 (define-public libgit2-glib
9720 (package
9721 (name "libgit2-glib")
9722 (version "0.99.0.1")
9723 (source (origin
9724 (method url-fetch)
9725 (uri (string-append "mirror://gnome/sources/" name "/"
9726 (version-major+minor version) "/"
9727 name "-" version ".tar.xz"))
9728 (sha256
9729 (base32
9730 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
9731 (build-system meson-build-system)
9732 (native-inputs
9733 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9734 ("gobject-introspection" ,gobject-introspection)
9735 ("pkg-config" ,pkg-config)
9736 ("python-pygobject" ,python-pygobject)
9737 ("python-wrapper" ,python-wrapper)
9738 ("vala" ,vala)))
9739 (inputs
9740 `(("glib" ,glib)
9741 ("libssh2" ,libssh2)))
9742 (propagated-inputs
9743 `(;; In Requires of libgit2-glib.pc.
9744 ("libgit2" ,libgit2)))
9745 (synopsis "GLib wrapper around the libgit2 Git access library")
9746 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9747 access library. It only implements the core plumbing functions, not really the
9748 higher level porcelain stuff.")
9749 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9750 (license license:gpl2+)))
9751
9752 (define-public gitg
9753 (package
9754 (name "gitg")
9755 (version "3.32.1")
9756 (source (origin
9757 (method url-fetch)
9758 (uri (string-append "mirror://gnome/sources/" name "/"
9759 (version-major+minor version) "/"
9760 name "-" version ".tar.xz"))
9761 (sha256
9762 (base32
9763 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9764 (build-system meson-build-system)
9765 (arguments
9766 `(#:glib-or-gtk? #t
9767 #:phases
9768 (modify-phases %standard-phases
9769 (add-after 'unpack 'disable-post-install-partially
9770 (lambda _
9771 (substitute* "meson_post_install.py"
9772 (("'python'") ; there are no python sources to compile
9773 (string-append "'" (which "true") "'"))
9774 (("gtk-update-icon-cache") (which "true")))
9775 #t))
9776 (add-after 'unpack 'fix-test-sources
9777 (lambda _
9778 (substitute* "tests/libgitg/test-commit.vala"
9779 (("/bin/bash") (which "bash")))
9780 #t))
9781 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9782 (lambda* (#:key outputs #:allow-other-keys)
9783 (let ((prog (string-append (assoc-ref outputs "out")
9784 "/bin/gitg")))
9785 (wrap-program prog
9786 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9787 #t))))))
9788 (inputs
9789 `(("glib" ,glib)
9790 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9791 ("gtk+" ,gtk+)
9792 ("gtkspell3" ,gtkspell3)
9793 ("gtksourceview" ,gtksourceview-3)
9794 ("json-glib" ,json-glib)
9795 ("libdazzle" ,libdazzle)
9796 ("libgee" ,libgee)
9797 ("libgit2-glib" ,libgit2-glib)
9798 ("libpeas" ,libpeas)
9799 ("libsecret" ,libsecret)
9800 ("libsoup" ,libsoup)
9801 ("libxml2" ,libxml2)))
9802 (native-inputs
9803 `(("glib:bin" ,glib "bin")
9804 ("gtk+:bin" ,gtk+ "bin")
9805 ("gobject-introspection" ,gobject-introspection)
9806 ("intltool" ,intltool)
9807 ("pkg-config" ,pkg-config)
9808 ("vala" ,vala)))
9809 (synopsis "Graphical user interface for git")
9810 (description
9811 "gitg is a graphical user interface for git. It aims at being a small,
9812 fast and convenient tool to visualize the history of git repositories.
9813 Besides visualization, gitg also provides several utilities to manage your
9814 repository and commit your work.")
9815 (home-page "https://wiki.gnome.org/Apps/Gitg")
9816 (license license:gpl2+)))
9817
9818 (define-public gamin
9819 (package
9820 (name "gamin")
9821 (version "0.1.10")
9822 (source (origin
9823 (method url-fetch)
9824 (uri (string-append "mirror://gnome/sources/" name "/"
9825 (version-major+minor version) "/"
9826 name "-" version ".tar.bz2"))
9827 (sha256
9828 (base32
9829 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9830 (build-system gnu-build-system)
9831 (arguments
9832 `(#:phases
9833 (modify-phases %standard-phases
9834 (add-after 'unpack 'remove-deprecated-macro
9835 (lambda _
9836 (substitute* '("server/gam_node.c"
9837 "server/gam_subscription.h"
9838 "server/gam_node.h"
9839 "server/gam_subscription.c")
9840 (("G_CONST_RETURN") "const"))
9841 #t)))))
9842 (inputs
9843 `(("glib" ,glib)))
9844 (native-inputs
9845 `(("intltool" ,intltool)
9846 ("pkg-config" ,pkg-config)))
9847 (home-page "https://people.gnome.org/~veillard/gamin/")
9848 (synopsis "File alteration monitor")
9849 (description
9850 "Gamin is a file and directory monitoring system defined to be a subset
9851 of the FAM (File Alteration Monitor) system. This is a service provided by a
9852 library which detects when a file or a directory has been modified.")
9853 (license license:gpl2+)))
9854
9855 (define-public gnome-mahjongg
9856 (package
9857 (name "gnome-mahjongg")
9858 (version "3.35.1")
9859 (source (origin
9860 (method git-fetch)
9861 (uri (git-reference
9862 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9863 (commit version)))
9864 (file-name (git-file-name name version))
9865 (sha256
9866 (base32
9867 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9868 (build-system meson-build-system)
9869 (arguments
9870 `(#:glib-or-gtk? #t))
9871 (native-inputs
9872 `(("appstream-glib" ,appstream-glib)
9873 ("gettext" ,gettext-minimal)
9874 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9875 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9876 ("itstool" ,itstool)
9877 ("pkg-config" ,pkg-config)
9878 ("vala" ,vala)))
9879 (propagated-inputs
9880 `(("dconf" ,dconf)))
9881 (inputs
9882 `(("glib" ,glib)
9883 ("gtk+" ,gtk+)
9884 ("librsvg" ,librsvg)))
9885 (synopsis "Mahjongg tile-matching game")
9886 (description "GNOME Mahjongg is a game based on the classic Chinese
9887 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9888 and a high score table.")
9889 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9890 (license license:gpl2+)))
9891
9892 (define-public gnome-themes-extra
9893 (package
9894 (name "gnome-themes-extra")
9895 (version "3.28")
9896 (source
9897 (origin
9898 (method url-fetch)
9899 (uri (string-append "mirror://gnome/sources/" name "/"
9900 (version-major+minor version) "/" name "-"
9901 version ".tar.xz"))
9902 (sha256
9903 (base32
9904 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9905 (build-system gnu-build-system)
9906 (arguments
9907 '(#:configure-flags
9908 ;; Don't create 'icon-theme.cache'.
9909 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9910 (true (string-append coreutils "/bin/true")))
9911 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9912 (native-inputs
9913 `(("glib:bin" ,glib "bin")
9914 ("intltool" ,intltool)
9915 ("pkg-config" ,pkg-config)))
9916 (inputs
9917 `(("glib" ,glib)
9918 ("gtk+" ,gtk+)
9919 ("gtk+-2" ,gtk+-2)
9920 ("librsvg" ,librsvg)
9921 ("libxml2" ,libxml2)))
9922 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9923 (synopsis "GNOME Extra Themes")
9924 (description "This package provides themes and related elements that don't
9925 really fit in other upstream packages. It offers legacy support for GTK+ 2
9926 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9927 index files needed for Adwaita to be used outside of GNOME.")
9928 (license license:lgpl2.1+)))
9929
9930 (define-public polari
9931 (package
9932 (name "polari")
9933 (version "3.32.2")
9934 (source (origin
9935 (method url-fetch)
9936 (uri (string-append "mirror://gnome/sources/polari/"
9937 (version-major+minor version)
9938 "/polari-" version ".tar.xz"))
9939 (sha256
9940 (base32
9941 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9942 (build-system meson-build-system)
9943 (arguments
9944 `(#:glib-or-gtk? #t
9945 #:phases
9946 (modify-phases %standard-phases
9947 (add-after 'unpack 'skip-gtk-update-icon-cache
9948 (lambda _
9949 (substitute* "meson/meson-postinstall.sh"
9950 (("gtk-update-icon-cache") (which "true")))
9951 #t))
9952 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9953 (lambda* (#:key outputs #:allow-other-keys)
9954 (let ((prog (string-append (assoc-ref outputs "out")
9955 "/bin/polari")))
9956 (wrap-program prog
9957 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9958 #t))))))
9959 (inputs
9960 `(("glib" ,glib)
9961 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9962 ("gspell" ,gspell)
9963 ("gtk+" ,gtk+)
9964 ("gjs" ,gjs)
9965 ("libsecret" ,libsecret)
9966 ("libsoup" ,libsoup)
9967 ("telepathy-glib" ,telepathy-glib)
9968 ("telepathy-logger" ,telepathy-logger)))
9969 (native-inputs
9970 `(("glib:bin" ,glib "bin")
9971 ("gobject-introspection" ,gobject-introspection)
9972 ("intltool" ,intltool)
9973 ("pkg-config" ,pkg-config)
9974 ("yelp-tools" ,yelp-tools)))
9975 (propagated-inputs
9976 `(("telepathy-idle" ,telepathy-idle)
9977 ("telepathy-mission-control" ,telepathy-mission-control)))
9978 (synopsis "Simple IRC Client")
9979 (description
9980 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9981 integrate seamlessly with the GNOME desktop.")
9982 (home-page "https://wiki.gnome.org/Apps/Polari")
9983 (license license:gpl2+)))
9984
9985 (define-public gnome-boxes
9986 (package
9987 (name "gnome-boxes")
9988 (version "3.36.4")
9989 (source
9990 (origin
9991 (method url-fetch)
9992 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9993 (version-major+minor version) "/"
9994 "gnome-boxes-" version ".tar.xz"))
9995 (sha256
9996 (base32 "16l0mq2ydmywcdya1795mcy8syg4zkmz9ws3pzjcqv5y4m7cjj03"))))
9997 (build-system meson-build-system)
9998 (arguments
9999 '(#:glib-or-gtk? #t
10000 #:configure-flags (list "-Drdp=false"
10001 (string-append "-Dc_link_args=-Wl,-rpath="
10002 (assoc-ref %outputs "out")
10003 "/lib/gnome-boxes"))))
10004 (native-inputs
10005 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10006 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10007 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10008 ("itstool" ,itstool)
10009 ("intltool" ,intltool)
10010 ("vala" ,vala)
10011 ("pkg-config" ,pkg-config)))
10012 (inputs
10013 `(("libarchive" ,libarchive)
10014 ("gtk" ,gtk+)
10015 ("gtk-vnc" ,gtk-vnc)
10016 ("libosinfo" ,libosinfo)
10017 ("libsecret" ,libsecret)
10018 ("libsoup" ,libsoup)
10019 ("libusb" ,libusb)
10020 ("libvirt" ,libvirt)
10021 ("libvirt-glib" ,libvirt-glib)
10022 ("libxml" ,libxml2)
10023 ("spice-gtk" ,spice-gtk)
10024 ("sparql-query" ,sparql-query)
10025 ("vte" ,vte)
10026 ("webkitgtk" ,webkitgtk)
10027 ("tracker" ,tracker)
10028 ("libgudev" ,libgudev)))
10029 (home-page "https://wiki.gnome.org/Apps/Boxes")
10030 (synopsis "View, access, and manage remote and virtual systems")
10031 (description "GNOME Boxes is a simple application to view, access, and
10032 manage remote and virtual systems.")
10033 (license (list
10034 ;; For data/icons/empty-boxes.png.
10035 license:cc-by2.0
10036 ;; For all others.
10037 license:lgpl2.0+))))
10038
10039 (define-public geary
10040 (package
10041 (name "geary")
10042 (version "3.34.1")
10043 (source (origin
10044 (method git-fetch)
10045 (uri (git-reference
10046 (url "https://gitlab.gnome.org/GNOME/geary")
10047 (commit version)))
10048 (file-name (git-file-name name version))
10049 (sha256
10050 (base32
10051 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10052 (build-system meson-build-system)
10053 (arguments
10054 `(#:glib-or-gtk? #t
10055 #:phases (modify-phases %standard-phases
10056 (add-after 'unpack 'disable-failing-tests
10057 (lambda _
10058 (substitute* "test/meson.build"
10059 (("test\\('client-tests', geary_test_client_bin\\)")
10060 ""))
10061 #t))
10062 (add-after 'unpack 'disable-postinstall-script
10063 (lambda _
10064 (substitute* "meson.build"
10065 (("meson.add_install_script\\(\
10066 join_paths\\('build-aux', 'post_install.py'\\)\\)")
10067 ""))
10068 #t))
10069 (add-before 'check 'setup-xvfb
10070 (lambda _
10071 (system "Xvfb :1 &")
10072 (setenv "DISPLAY" ":1")
10073 #t)))))
10074 (inputs
10075 `(("enchant" ,enchant)
10076 ("folks" ,folks)
10077 ("gcr" ,gcr)
10078 ("glib" ,glib)
10079 ("gmime" ,gmime-2.6)
10080 ("gnome-online-accounts:lib"
10081 ,gnome-online-accounts "lib")
10082 ("gspell" ,gspell)
10083 ("gtk+" ,gtk+)
10084 ("iso-codes" ,iso-codes)
10085 ("json-glib" ,json-glib)
10086 ("libcanberra" ,libcanberra)
10087 ("libgee" ,libgee)
10088 ("libhandy" ,libhandy)
10089 ("libpeas" ,libpeas)
10090 ("libsecret" ,libsecret)
10091 ("libunwind" ,libunwind)
10092 ("sqlite" ,sqlite)
10093 ("webkitgtk" ,webkitgtk)
10094 ("ytnef" ,ytnef)))
10095 (native-inputs
10096 `(("appstream-glib" ,appstream-glib)
10097 ("cmake-minimal" ,cmake-minimal)
10098 ("desktop-file-utils" ,desktop-file-utils)
10099 ("gettext" ,gettext-minimal)
10100 ("glib:bin" ,glib "bin")
10101 ("gobject-introspection" ,gobject-introspection)
10102 ("itstool" ,itstool)
10103 ("libarchive" ,libarchive)
10104 ("libxml2" ,libxml2)
10105 ("pkg-config" ,pkg-config)
10106 ("vala" ,vala)
10107 ("xvfb" ,xorg-server-for-tests)))
10108 (synopsis "GNOME email application built around conversations")
10109 (description
10110 "Geary collects related messages together into conversations,
10111 making it easy to find and follow your discussions. Full-text and keyword
10112 search makes it easy to find the email you are looking for. Geary's
10113 full-featured composer lets you send rich, styled text with images, links, and
10114 lists, but also send lightweight, easy to read text messages. Geary
10115 automatically picks up your existing GNOME Online Accounts, and adding more is
10116 easy. Geary has a clean, fast, modern interface that works like you want it
10117 to.")
10118 (home-page "https://wiki.gnome.org/Apps/Geary")
10119 (license (list
10120 ;; geary
10121 license:lgpl2.1+
10122 ;; icons
10123 license:cc-by3.0
10124 license:cc-by-sa3.0
10125 license:public-domain
10126 ;; snowball
10127 license:bsd-2))))
10128
10129 (define-public glabels
10130 (package
10131 (name "glabels")
10132 (version "3.4.1")
10133 (source
10134 (origin
10135 (method url-fetch)
10136 (uri (string-append "mirror://gnome/sources/" name "/"
10137 (version-major+minor version) "/"
10138 "glabels-" version ".tar.xz"))
10139 (sha256
10140 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10141 (build-system glib-or-gtk-build-system)
10142 (native-inputs
10143 `(("gettext" ,gettext-minimal)
10144 ("glib:bin" ,glib "bin")
10145 ("intltool" ,intltool)
10146 ("itstool" ,itstool)
10147 ("pkg-config" ,pkg-config)))
10148 (inputs
10149 `(("gtk+" ,gtk+)
10150 ("librsvg" ,librsvg)
10151 ("libxml2" ,libxml2)))
10152 (home-page "https://glabels.org/")
10153 (synopsis "Program for creating labels and business cards")
10154 (description
10155 "gLabels is a program for creating labels and business cards. It is
10156 designed to work with various laser/ink-jet peel-off label and business
10157 card sheets that you’ll find at most office supply stores.")
10158 (license license:gpl3+)))
10159
10160 (define-public libratbag
10161 (package
10162 (name "libratbag")
10163 (version "0.13")
10164 (source
10165 (origin
10166 (method git-fetch)
10167 (uri (git-reference
10168 (url "https://github.com/libratbag/libratbag.git")
10169 (commit (string-append "v" version))))
10170 (file-name (git-file-name name version))
10171 (sha256
10172 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10173 (build-system meson-build-system)
10174 (arguments
10175 `(#:configure-flags
10176 (list "-Dsystemd=false"
10177 "-Dlogind-provider=elogind")
10178 #:phases
10179 (modify-phases %standard-phases
10180 (add-after 'install 'wrap
10181 (lambda* (#:key inputs outputs #:allow-other-keys)
10182 (let* ((out (assoc-ref outputs "out"))
10183 (site (string-append
10184 "/lib/python"
10185 ,(version-major+minor (package-version python))
10186 "/site-packages"))
10187 (evdev (string-append
10188 (assoc-ref inputs "python-evdev") site))
10189 (pygo (string-append
10190 (assoc-ref inputs "python-pygobject") site))
10191 (python-wrap
10192 `("PYTHONPATH" = (,evdev ,pygo))))
10193 (wrap-program (string-append out "/bin/" "ratbagctl")
10194 python-wrap)
10195 #t))))))
10196 (native-inputs
10197 `(("check" ,check)
10198 ("pkg-config" ,pkg-config)
10199 ("swig" ,swig)
10200 ("valgrind" ,valgrind)))
10201 (inputs
10202 `(("glib" ,glib)
10203 ("json-glib" ,json-glib)
10204 ("libevdev" ,libevdev)
10205 ("libsystemd" ,elogind)
10206 ("libunistring" ,libunistring)
10207 ("python-evdev" ,python-evdev)
10208 ("python-pygobject" ,python-pygobject)
10209 ("udev" ,eudev)))
10210 (home-page "https://github.com/libratbag/libratbag")
10211 (synopsis "DBus daemon and utility for configuring gaming mice")
10212 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10213 configure input devices, mainly gaming mice. The daemon provides a generic
10214 way to access the various features exposed by these mice and abstracts away
10215 hardware-specific and kernel-specific quirks. There is also the
10216 @command{ratbagctl} command line interface for configuring devices.
10217
10218 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10219 Steelseries.
10220
10221 The ratbagd DBus service can be enabled by adding the following service to
10222 your operating-system definition:
10223
10224 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10225 (license license:expat)))
10226
10227 (define-public piper
10228 (package
10229 (name "piper")
10230 (version "0.5")
10231 (source
10232 (origin
10233 (method git-fetch)
10234 (uri (git-reference
10235 (url "https://github.com/libratbag/piper.git")
10236 (commit version)))
10237 (sha256
10238 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10239 (file-name (git-file-name name version))))
10240 (build-system meson-build-system)
10241 (native-inputs
10242 `(("gettext" ,gettext-minimal)
10243 ("glib:bin" ,glib "bin")
10244 ("gobject-introspection" ,gobject-introspection)
10245 ("pkg-config" ,pkg-config)
10246 ("python-flake8" ,python-flake8)))
10247 (inputs
10248 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10249 ("gtk" ,gtk+)
10250 ("gtk:bin" ,gtk+ "bin")
10251 ("librsvg" ,librsvg)
10252 ("python-evdev" ,python-evdev)
10253 ("python-lxml" ,python-lxml)
10254 ("python-pycairo" ,python-pycairo)
10255 ("python-pygobject" ,python-pygobject)))
10256 (arguments
10257 `(#:imported-modules ((guix build python-build-system)
10258 ,@%meson-build-system-modules)
10259 #:modules (((guix build python-build-system) #:prefix python:)
10260 (guix build meson-build-system)
10261 (guix build utils))
10262 #:phases
10263 (modify-phases %standard-phases
10264 (add-after 'unpack 'dont-update-gtk-icon-cache
10265 (lambda _
10266 (substitute* "meson.build"
10267 (("meson.add_install_script('meson_install.sh')") ""))
10268 #t))
10269 ;; TODO: Switch to wrap-script when it is fixed.
10270 (add-after 'install 'wrap-python
10271 (assoc-ref python:%standard-phases 'wrap))
10272 (add-after 'wrap-python 'wrap
10273 (lambda* (#:key outputs #:allow-other-keys)
10274 (wrap-program
10275 (string-append (assoc-ref outputs "out" )"/bin/piper")
10276 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10277 #t)))))
10278 (home-page "https://github.com/libratbag/piper/")
10279 (synopsis "Configure bindings and LEDs on gaming mice")
10280 (description "Piper is a GTK+ application for configuring gaming mice with
10281 onboard configuration for key bindings via libratbag. Piper requires
10282 a @command{ratbagd} daemon running with root privileges. It can be run
10283 manually as root, but is preferably configured as a DBus service that can
10284 launch on demand. This can be configured by enabling the following service,
10285 provided there is a DBus service present:
10286
10287 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10288 (license license:gpl2)))
10289
10290 (define-public parlatype
10291 ;; This is one commit away from 2.0, because the latter introduced
10292 ;; a regression in ASR.
10293 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10294 (revision "0"))
10295 (package
10296 (name "parlatype")
10297 (version (git-version "2.0" revision commit))
10298 (source
10299 (origin
10300 (method git-fetch)
10301 (uri (git-reference
10302 (url "https://github.com/gkarsay/parlatype.git")
10303 (commit commit)))
10304 (file-name (git-file-name name version))
10305 (sha256
10306 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10307 (build-system meson-build-system)
10308 (arguments
10309 `(#:glib-or-gtk? #t
10310 #:tests? #f ;require internet access
10311 #:phases
10312 (modify-phases %standard-phases
10313 (add-after 'install 'wrap-parlatype
10314 ;; Add gstreamer plugin provided in this package to system's
10315 ;; plugins.
10316 (lambda* (#:key outputs #:allow-other-keys)
10317 (let* ((out (assoc-ref outputs "out"))
10318 (gst-plugin-path (string-append
10319 out "/lib/gstreamer-1.0/"
10320 ":"
10321 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10322 (wrap-program (string-append out "/bin/parlatype")
10323 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10324 #t)))))
10325 (native-inputs
10326 `(("appstream-glib" ,appstream-glib)
10327 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10328 ("gettext" ,gettext-minimal)
10329 ("glib" ,glib "bin") ;for glib-compile-resources
10330 ("pkg-config" ,pkg-config)
10331 ("yelp-tools" ,yelp-tools)))
10332 (inputs
10333 `(("gst-plugins-base" ,gst-plugins-base)
10334 ("gst-plugins-good" ,gst-plugins-good)
10335 ("gstreamer" ,gstreamer)
10336 ("gtk+" ,gtk+)
10337 ("pocketsphinx" ,pocketsphinx)
10338 ("pulseaudio" ,pulseaudio)
10339 ("sphinxbase" ,sphinxbase)))
10340 (home-page "http://gkarsay.github.io/parlatype/")
10341 (synopsis "GNOME audio player for transcription")
10342 (description "Parlatype is an audio player for the GNOME desktop
10343 environment. Its main purpose is the manual transcription of spoken
10344 audio files.")
10345 (license license:gpl3+))))
10346
10347 (define-public jsonrpc-glib
10348 (package
10349 (name "jsonrpc-glib")
10350 (version "3.34.0")
10351 (source (origin
10352 (method url-fetch)
10353 (uri (string-append "mirror://gnome/sources/" name "/"
10354 (version-major+minor version) "/"
10355 name "-" version ".tar.xz"))
10356 (sha256
10357 (base32
10358 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10359 (build-system meson-build-system)
10360 (inputs
10361 `(("json-glib" ,json-glib)
10362 ("glib" ,glib)))
10363 (native-inputs
10364 `(("pkg-config" ,pkg-config)
10365 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10366 ("gobject-introspection" ,gobject-introspection)
10367 ("vala" ,vala)))
10368 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10369 (synopsis "JSON-RPC library for GLib")
10370 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10371 peers in either a synchronous or asynchronous fashion. It also allows
10372 communicating using the GVariant serialization format instead of JSON when
10373 both peers support it. You might want that when communicating on a single
10374 host to avoid parser overhead and memory-allocator fragmentation.")
10375 (license license:lgpl2.1+)))