gnu: Add vala-0.48.
[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.36.1")
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 "1msbb66lasikpfjpkwsvi7h22hqmk275850ilpdqwbd0b39vzf4c"))))
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 "https://www.gnome.org/projects/evince/")
1730 (synopsis "GNOME's document viewer")
1731 (description
1732 "Evince is a document viewer for multiple document formats. It
1733 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1734 of Evince is to replace the multiple document viewers that exist
1735 on the GNOME Desktop with a single simple application.")
1736 (license license:gpl2+)))
1737
1738 (define-public gsettings-desktop-schemas
1739 (package
1740 (name "gsettings-desktop-schemas")
1741 (version "3.34.0")
1742 (source
1743 (origin
1744 (method url-fetch)
1745 (uri (string-append "mirror://gnome/sources/" name "/"
1746 (version-major+minor version) "/"
1747 name "-" version ".tar.xz"))
1748 (sha256
1749 (base32
1750 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
1751 (build-system meson-build-system)
1752 (arguments
1753 '(#:phases (modify-phases %standard-phases
1754 (add-after 'unpack 'patch-schemas
1755 (lambda* (#:key inputs #:allow-other-keys)
1756 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1757 (substitute* (find-files "schemas"
1758 "\\.gschema\\.xml\\.in$")
1759 ;; Provide the correct file name of the default GNOME
1760 ;; background, 'adwaita-timed.xml'.
1761 (("@datadir@/backgrounds/gnome")
1762 (string-append theme "/share/backgrounds/gnome"))
1763 ;; Do not reference fonts, that may not exist.
1764 (("'Source Code Pro 10'") "'Monospace 11'"))
1765 #t))))))
1766 (inputs
1767 `(("glib" ,glib)
1768 ("gnome-backgrounds" ,gnome-backgrounds)))
1769 (native-inputs
1770 `(("intltool" ,intltool)
1771 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1772 ("gobject-introspection" ,gobject-introspection)
1773 ("pkg-config" ,pkg-config)))
1774 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1775 (synopsis
1776 "GNOME settings for various desktop components")
1777 (description
1778 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1779 for settings shared by various components of the GNOME desktop.")
1780 (license license:lgpl2.1+)))
1781
1782 (define-public icon-naming-utils
1783 (package
1784 (name "icon-naming-utils")
1785 (version "0.8.90")
1786 (source
1787 (origin
1788 (method url-fetch)
1789 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1790 version ".tar.bz2"))
1791 (sha256
1792 (base32
1793 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1794 (build-system gnu-build-system)
1795 (inputs
1796 `(("perl" ,perl)
1797 ("perl-xml-simple" ,perl-xml-simple)))
1798 (arguments
1799 '(#:phases
1800 (modify-phases %standard-phases
1801 (add-after 'install 'set-load-paths
1802 ;; Tell 'icon-name-mapping' where XML::Simple is.
1803 (lambda* (#:key outputs #:allow-other-keys)
1804 (let* ((out (assoc-ref outputs "out"))
1805 (prog (string-append out "/libexec/icon-name-mapping")))
1806 (wrap-program
1807 prog
1808 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1809 #t)))))
1810 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1811 (synopsis
1812 "Utility to implement the Freedesktop Icon Naming Specification")
1813 (description
1814 "To help with the transition to the Freedesktop Icon Naming
1815 Specification, the icon naming utility maps the icon names used by the
1816 GNOME and KDE desktops to the icon names proposed in the specification.")
1817 (license license:lgpl2.1+)))
1818
1819 (define-public gnome-icon-theme
1820 (package
1821 (name "gnome-icon-theme")
1822 (version "3.12.0")
1823 (source
1824 (origin
1825 (method url-fetch)
1826 (uri (string-append "mirror://gnome/sources/" name "/"
1827 (version-major+minor version) "/"
1828 name "-" version ".tar.xz"))
1829 (sha256
1830 (base32
1831 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1832 (build-system gnu-build-system)
1833 (arguments
1834 '(#:configure-flags
1835 ;; Don't create 'icon-theme.cache'.
1836 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1837 (true (string-append coreutils "/bin/true")))
1838 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1839 (native-inputs
1840 `(("icon-naming-utils" ,icon-naming-utils)
1841 ("intltool" ,intltool)
1842 ("pkg-config" ,pkg-config)))
1843 (home-page "https://wiki.gnome.org/Personalization")
1844 (synopsis "GNOME icon theme")
1845 (description "Icons for the GNOME desktop.")
1846 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1847
1848 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1849 (define-public adwaita-icon-theme
1850 (package (inherit gnome-icon-theme)
1851 (name "adwaita-icon-theme")
1852 (version "3.34.3")
1853 (source (origin
1854 (method url-fetch)
1855 (uri (string-append "mirror://gnome/sources/" name "/"
1856 (version-major+minor version) "/"
1857 name "-" version ".tar.xz"))
1858 (sha256
1859 (base32
1860 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
1861 (native-inputs
1862 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1863
1864 (define-public tango-icon-theme
1865 (package
1866 (name "tango-icon-theme")
1867 (version "0.8.90")
1868 (source (origin
1869 (method url-fetch)
1870 (uri (string-append "http://tango.freedesktop.org/releases/"
1871 "tango-icon-theme-" version ".tar.bz2"))
1872 (sha256
1873 (base32
1874 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1875 (build-system gnu-build-system)
1876 (native-inputs
1877 `(("icon-naming-utils" ,icon-naming-utils)
1878 ("intltool" ,intltool)
1879 ("imagemagick" ,imagemagick)
1880 ("pkg-config" ,pkg-config)))
1881 (home-page "http://tango-project.org/")
1882 (synopsis "Tango icon theme")
1883 (description "This is an icon theme that follows the Tango visual
1884 guidelines.")
1885 (license license:public-domain)))
1886
1887 (define-public shared-mime-info
1888 (package
1889 (name "shared-mime-info")
1890 (version "1.15")
1891 (source (origin
1892 (method url-fetch)
1893 (uri (string-append
1894 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1895 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1896 ".tar.xz"))
1897 (sha256
1898 (base32
1899 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
1900 (build-system gnu-build-system)
1901 (arguments
1902 ;; The build system appears not to be parallel-safe.
1903 '(#:parallel-build? #f))
1904 (inputs
1905 `(("glib" ,glib)
1906 ("libxml2" ,libxml2)))
1907 (native-inputs
1908 `(("gettext" ,gettext-minimal)
1909 ("itstool" ,itstool)
1910 ("pkg-config" ,pkg-config)))
1911 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1912 (synopsis "Database of common MIME types")
1913 (description
1914 "The shared-mime-info package contains the core database of common types
1915 and the update-mime-database command used to extend it. It requires glib2 to
1916 be installed for building the update command. Additionally, it uses intltool
1917 for translations, though this is only a dependency for the maintainers. This
1918 database is translated at Transifex.")
1919 (license license:gpl2+)))
1920
1921 (define-public system-config-printer
1922 (package
1923 (name "system-config-printer")
1924 (version "1.5.12")
1925 (source
1926 (origin
1927 (method url-fetch)
1928 (uri (string-append
1929 "https://github.com/OpenPrinting/system-config-printer/releases/"
1930 "download/" version
1931 "/system-config-printer-" version ".tar.xz"))
1932 (sha256
1933 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1934 (build-system glib-or-gtk-build-system)
1935 (arguments
1936 `(#:imported-modules ((guix build python-build-system)
1937 ,@%glib-or-gtk-build-system-modules)
1938 #:phases
1939 (modify-phases %standard-phases
1940 (add-after 'unpack 'patch-Makefile.am
1941 (lambda _
1942 ;; The Makefile generates some scripts, so set a valid shebang
1943 (substitute* "Makefile.am"
1944 (("/bin/bash") (which "bash")))
1945 (delete-file "configure")
1946 #t))
1947 (add-after 'unpack 'patch-docbook-xml
1948 (lambda* (#:key inputs #:allow-other-keys)
1949 ;; Modify the man XML otherwise xmlto tries to access the network
1950 (substitute* "man/system-config-printer.xml"
1951 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1952 (string-append (assoc-ref inputs "docbook-xml")
1953 "/xml/dtd/docbook/")))
1954 #t))
1955 (add-after 'install 'wrap-for-python
1956 (@@ (guix build python-build-system) wrap))
1957 (add-after 'install 'wrap
1958 (lambda* (#:key outputs #:allow-other-keys)
1959 (let ((out (assoc-ref outputs "out"))
1960 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1961 (for-each
1962 (lambda (program)
1963 (wrap-program program
1964 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1965 (map (lambda (name)
1966 (string-append out "/bin/" name))
1967 '("system-config-printer"
1968 "system-config-printer-applet"
1969 "install-printerdriver"
1970 "scp-dbus-service"))))
1971 #t)))))
1972 (inputs
1973 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1974 ("gobject-introspection" ,gobject-introspection)
1975 ("python" ,python)
1976 ("cups" ,cups)
1977 ("python-dbus" ,python-dbus)
1978 ("python-pygobject" ,python-pygobject)
1979 ("python-pycups" ,python-pycups)
1980 ("python-requests" ,python-requests)
1981 ("python-pycairo" ,python-pycairo)
1982 ("libnotify" ,libnotify)
1983 ("packagekit" ,packagekit)))
1984 (native-inputs
1985 `(("pkg-config" ,pkg-config)
1986 ("desktop-file-utils" ,desktop-file-utils)
1987 ("glib" ,glib)
1988 ("autoconf" ,autoconf)
1989 ("automake" ,automake)
1990 ("intltool" ,intltool)
1991 ("xmlto" ,xmlto)
1992 ("docbook-xml" ,docbook-xml-4.1.2)
1993 ("docbook-xsl" ,docbook-xsl)
1994 ("libxml2" ,libxml2)))
1995 (home-page "https://github.com/zdohnal/system-config-printer")
1996 (synopsis "CUPS administration tool")
1997 (description
1998 "system-config-printer is a CUPS administration tool. It's written in
1999 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2000 configuring CUPS.")
2001 (license license:gpl2+)))
2002
2003 (define-public hicolor-icon-theme
2004 (package
2005 (name "hicolor-icon-theme")
2006 (version "0.17")
2007 (source
2008 (origin
2009 (method url-fetch)
2010 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2011 "hicolor-icon-theme-" version ".tar.xz"))
2012 (sha256
2013 (base32
2014 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2015 (build-system gnu-build-system)
2016 (arguments
2017 `(#:tests? #f)) ; no check target
2018 (home-page "https://icon-theme.freedesktop.org/releases/")
2019 (synopsis
2020 "Freedesktop icon theme")
2021 (description
2022 "Freedesktop icon theme.")
2023 (license license:gpl2)))
2024
2025 (define-public libnotify
2026 (package
2027 (name "libnotify")
2028 (version "0.7.7")
2029 (source
2030 (origin
2031 (method url-fetch)
2032 (uri (string-append "mirror://gnome/sources/" name "/"
2033 (version-major+minor version) "/"
2034 name "-" version ".tar.xz"))
2035 (sha256
2036 (base32
2037 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2038 (build-system gnu-build-system)
2039 (arguments
2040 `(#:configure-flags '("--disable-static")))
2041 (propagated-inputs
2042 `(;; In Requires of libnotify.pc.
2043 ("gdk-pixbuf" ,gdk-pixbuf)
2044 ("glib" ,glib)))
2045 (inputs
2046 `(("gtk+" ,gtk+)
2047 ("libpng" ,libpng)))
2048 (native-inputs
2049 `(("pkg-config" ,pkg-config)
2050 ("glib" ,glib "bin")
2051 ("gobject-introspection" ,gobject-introspection)))
2052 (home-page "https://developer-next.gnome.org/libnotify/")
2053 (synopsis
2054 "GNOME desktop notification library")
2055 (description
2056 "Libnotify is a library that sends desktop notifications to a
2057 notification daemon, as defined in the Desktop Notifications spec. These
2058 notifications can be used to inform the user about an event or display
2059 some form of information without getting in the user's way.")
2060 (license license:lgpl2.1+)))
2061
2062 (define-public libpeas
2063 (package
2064 (name "libpeas")
2065 (version "1.24.1")
2066 (source
2067 (origin
2068 (method url-fetch)
2069 (uri (string-append "mirror://gnome/sources/" name "/"
2070 (version-major+minor version) "/"
2071 name "-" version ".tar.xz"))
2072 (sha256
2073 (base32
2074 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2075 (build-system meson-build-system)
2076 (arguments
2077 '(#:phases
2078 (modify-phases %standard-phases
2079 (add-before 'check 'start-xserver
2080 (lambda* (#:key inputs #:allow-other-keys)
2081 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2082 (disp ":1"))
2083 (setenv "DISPLAY" disp)
2084 ;; Tests require a running X server.
2085 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2086 #t))))))
2087 (inputs
2088 `(("gtk+" ,gtk+)
2089 ("glade" ,glade3)
2090 ("python" ,python)
2091 ("python-pygobject" ,python-pygobject)))
2092 (native-inputs
2093 `(("pkg-config" ,pkg-config)
2094 ("gettext" ,gettext-minimal)
2095 ("glib:bin" ,glib "bin")
2096 ("gobject-introspection" ,gobject-introspection)
2097 ("xorg-server" ,xorg-server-for-tests)))
2098 (propagated-inputs
2099 ;; The .pc file "Requires" gobject-introspection.
2100 `(("gobject-introspection" ,gobject-introspection)))
2101 (home-page "https://wiki.gnome.org/Libpeas")
2102 (synopsis "GObject plugin system")
2103 (description
2104 "Libpeas is a gobject-based plugin engine, targeted at giving every
2105 application the chance to assume its own extensibility. It also has a set of
2106 features including, but not limited to: multiple extension points; on-demand
2107 (lazy) programming language support for C, Python and JS; simplicity of the
2108 API.")
2109 (license license:lgpl2.0+)))
2110
2111 (define-public gtkglext
2112 (package
2113 (name "gtkglext")
2114 (version "1.2.0")
2115 (source (origin
2116 (method url-fetch)
2117 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2118 version "/gtkglext-" version ".tar.gz"))
2119 (sha256
2120 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2121 (patches (search-patches
2122 "gtkglext-disable-disable-deprecated.patch"))))
2123 (build-system gnu-build-system)
2124 (arguments
2125 `(#:phases
2126 (modify-phases %standard-phases
2127 ;; Fix a collision between a local variable and a definition from
2128 ;; glibc's string.h.
2129 (add-after 'unpack 'fix-collision
2130 (lambda _
2131 (substitute* "gdk/gdkglshapes.c"
2132 ((" index") " triangle_index"))
2133 #t)))))
2134 (inputs `(("gtk+" ,gtk+-2)
2135 ("mesa" ,mesa)
2136 ("glu" ,glu)
2137 ("libx11" ,libx11)
2138 ("libxt" ,libxt)))
2139 (native-inputs `(("pkg-config" ,pkg-config)
2140 ("glib" ,glib "bin")))
2141 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2142 (home-page "https://projects.gnome.org/gtkglext")
2143 (synopsis "OpenGL extension to GTK+")
2144 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2145 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2146 API add-ons to make GTK+ widgets OpenGL-capable.")
2147 (license license:lgpl2.1+)))
2148
2149 (define-public glade3
2150 (package
2151 (name "glade")
2152 (version "3.36.0")
2153 (source (origin
2154 (method url-fetch)
2155 (uri (string-append "mirror://gnome/sources/" name "/"
2156 (version-major+minor version) "/"
2157 name "-" version ".tar.xz"))
2158 (sha256
2159 (base32
2160 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
2161 (build-system glib-or-gtk-build-system)
2162 (arguments
2163 `(#:tests? #f ; needs X, GL, and software rendering
2164 #:phases
2165 (modify-phases %standard-phases
2166 (add-before 'configure 'fix-docbook
2167 (lambda* (#:key inputs #:allow-other-keys)
2168 (substitute* "man/Makefile.in"
2169 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2170 (string-append (assoc-ref inputs "docbook-xsl")
2171 "/xml/xsl/docbook-xsl-"
2172 ,(package-version docbook-xsl)
2173 "/manpages/docbook.xsl")))
2174 #t)))))
2175 (inputs
2176 `(("gtk+" ,gtk+)
2177 ("libxml2" ,libxml2)))
2178 (native-inputs
2179 `(("intltool" ,intltool)
2180 ("itstool" ,itstool)
2181 ("libxslt" ,libxslt) ;for xsltproc
2182 ("docbook-xml" ,docbook-xml-4.2)
2183 ("docbook-xsl" ,docbook-xsl)
2184 ("python" ,python-2)
2185 ("pkg-config" ,pkg-config)))
2186 (home-page "https://glade.gnome.org")
2187 (synopsis "GTK+ rapid application development tool")
2188 (description "Glade is a rapid application development (RAD) tool to
2189 enable quick & easy development of user interfaces for the GTK+ toolkit and
2190 the GNOME desktop environment.")
2191 (license license:lgpl2.0+)))
2192
2193 (define-public libcroco
2194 (package
2195 (name "libcroco")
2196 (version "0.6.13")
2197 (source (origin
2198 (method url-fetch)
2199 (uri (string-append "mirror://gnome/sources/" name "/"
2200 (version-major+minor version) "/"
2201 name "-" version ".tar.xz"))
2202 (sha256
2203 (base32
2204 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2205 (build-system gnu-build-system)
2206 (native-inputs
2207 `(("pkg-config" ,pkg-config)))
2208 (inputs
2209 `(("glib" ,glib)
2210 ("libxml2" ,libxml2)
2211 ("zlib" ,zlib)))
2212 (home-page "https://github.com/GNOME/libcroco")
2213 (synopsis "CSS2 parsing and manipulation library")
2214 (description
2215 "Libcroco is a standalone CSS2 parsing and manipulation library.
2216 The parser provides a low level event driven SAC-like API and a CSS object
2217 model like API. Libcroco provides a CSS2 selection engine and an experimental
2218 XML/CSS rendering engine.")
2219
2220 ;; LGPLv2.1-only.
2221 (license license:lgpl2.1)))
2222
2223 (define-public libgsf
2224 (package
2225 (name "libgsf")
2226 (version "1.14.47")
2227 (source (origin
2228 (method url-fetch)
2229 (uri (string-append "mirror://gnome/sources/" name "/"
2230 (version-major+minor version) "/"
2231 name "-" version ".tar.xz"))
2232 (sha256
2233 (base32
2234 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
2235 (build-system gnu-build-system)
2236 (arguments
2237 '(#:configure-flags '("--disable-static")))
2238 (native-inputs
2239 `(("pkg-config" ,pkg-config)
2240 ("gettext" ,gettext-minimal)
2241
2242 ;; For tests.
2243 ("perl" ,perl)
2244 ("perl-xml-parser" ,perl-xml-parser)))
2245 (inputs
2246 `(("zlib" ,zlib)
2247 ("bzip2" ,bzip2)))
2248 (propagated-inputs
2249 `(("gdk-pixbuf" ,gdk-pixbuf)
2250 ("glib" ,glib)
2251 ("libxml2" ,libxml2)))
2252 (home-page "https://www.gnome.org/projects/libgsf")
2253 (synopsis "GNOME's Structured File Library")
2254 (description
2255 "Libgsf aims to provide an efficient extensible I/O abstraction for
2256 dealing with different structured file formats.")
2257
2258 ;; LGPLv2.1-only.
2259 (license license:lgpl2.1)))
2260
2261 (define-public librsvg
2262 (package
2263 (name "librsvg")
2264 (version "2.40.21")
2265 (source (origin
2266 (method url-fetch)
2267 (uri (string-append "mirror://gnome/sources/" name "/"
2268 (version-major+minor version) "/"
2269 name "-" version ".tar.xz"))
2270 (sha256
2271 (base32
2272 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
2273 (build-system gnu-build-system)
2274 (arguments
2275 `(#:configure-flags
2276 (list "--disable-static"
2277 "--enable-vala") ; needed for e.g. gnome-mines
2278 #:phases
2279 (modify-phases %standard-phases
2280 (add-before 'configure 'pre-configure
2281 (lambda* (#:key inputs #:allow-other-keys)
2282 (substitute* "gdk-pixbuf-loader/Makefile.in"
2283 ;; By default the gdk-pixbuf loader is installed under
2284 ;; gdk-pixbuf's prefix. Work around that.
2285 (("gdk_pixbuf_moduledir = .*$")
2286 (string-append "gdk_pixbuf_moduledir = "
2287 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2288 "loaders\n"))
2289 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2290 (("gdk_pixbuf_cache_file = .*$")
2291 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2292 #t))
2293 (add-before 'check 'remove-failing-tests
2294 (lambda _
2295 (with-directory-excursion "tests/fixtures/reftests"
2296 (for-each delete-file
2297 '(;; This test fails on i686:
2298 "svg1.1/masking-path-04-b.svg"
2299 ;; This test fails on armhf:
2300 "svg1.1/masking-mask-01-b.svg"
2301 ;; This test fails on aarch64:
2302 "bugs/777834-empty-text-children.svg")))
2303 #t)))))
2304 (native-inputs
2305 `(("pkg-config" ,pkg-config)
2306 ("vala" ,vala)
2307 ("glib" ,glib "bin") ; glib-mkenums, etc.
2308 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2309 (inputs
2310 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2311 ;; this ancient version of librsvg.
2312 ("pango" ,pango-1.42)
2313 ("libcroco" ,libcroco)
2314 ("bzip2" ,bzip2)
2315 ("libgsf" ,libgsf)
2316 ("libxml2" ,libxml2)))
2317 (propagated-inputs
2318 ;; librsvg-2.0.pc refers to all of that.
2319 `(("cairo" ,cairo)
2320 ("gdk-pixbuf" ,gdk-pixbuf)
2321 ("glib" ,glib)))
2322 (home-page "https://wiki.gnome.org/LibRsvg")
2323 (synopsis "Render SVG files using Cairo")
2324 (description
2325 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2326 library.")
2327 (license license:lgpl2.0+)))
2328
2329 (define-public librsvg-next
2330 (package
2331 (inherit librsvg)
2332 (name "librsvg")
2333 (version "2.46.4")
2334 (source (origin
2335 (method url-fetch)
2336 (uri (string-append "mirror://gnome/sources/librsvg/"
2337 (version-major+minor version) "/"
2338 "librsvg-" version ".tar.xz"))
2339 (sha256
2340 (base32
2341 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2342 (modules '((guix build utils)))
2343 (snippet
2344 '(begin (delete-file-recursively "vendor")
2345 ;; Don't demand an exact version for string_cache
2346 (substitute* "rsvg_internals/Cargo.toml"
2347 (("\"=") "\""))
2348 #t))))
2349 (build-system cargo-build-system)
2350 (arguments
2351 `(#:modules ((guix build cargo-build-system)
2352 (guix build utils)
2353 ((guix build gnu-build-system) #:prefix gnu:))
2354 #:vendor-dir "vendor"
2355 #:cargo-inputs
2356 (("rust-bitflags" ,rust-bitflags-1)
2357 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2358 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2359 ("rust-cssparser" ,rust-cssparser-0.25)
2360 ("rust-data-url" ,rust-data-url-0.1)
2361 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2362 ("rust-encoding" ,rust-encoding-0.2)
2363 ("rust-float-cmp" ,rust-float-cmp-0.5)
2364 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2365 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2366 ("rust-gio" ,rust-gio-0.7)
2367 ("rust-gio-sys" ,rust-gio-sys-0.9)
2368 ("rust-glib" ,rust-glib-0.8)
2369 ("rust-glib-sys" ,rust-glib-sys-0.9)
2370 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2371 ("rust-itertools" ,rust-itertools-0.8)
2372 ("rust-language-tags" ,rust-language-tags-0.2)
2373 ("rust-lazy-static" ,rust-lazy-static-1)
2374 ("rust-libc" ,rust-libc-0.2)
2375 ("rust-locale-config" ,rust-locale-config-0.3)
2376 ("rust-markup5ever" ,rust-markup5ever-0.9)
2377 ("rust-nalgebra" ,rust-nalgebra-0.18)
2378 ("rust-num-traits" ,rust-num-traits-0.2)
2379 ("rust-pkg-config" ,rust-pkg-config-0.3)
2380 ("rust-pango" ,rust-pango-0.7)
2381 ("rust-pango-sys" ,rust-pango-sys-0.9)
2382 ("rust-pangocairo" ,rust-pangocairo-0.8)
2383 ("rust-phf" ,rust-phf-0.7)
2384 ("rust-rayon" ,rust-rayon-1.3)
2385 ("rust-rctree" ,rust-rctree-0.3)
2386 ("rust-string-cache" ,rust-string-cache-0.7)
2387 ("rust-regex" ,rust-regex-1.3)
2388 ("rust-url" ,rust-url-2.1)
2389 ("rust-xml-rs" ,rust-xml-rs-0.8))
2390 #:cargo-development-inputs
2391 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2392 ("rust-criterion" ,rust-criterion-0.2))
2393 #:phases
2394 (modify-phases %standard-phases
2395 (add-after 'unpack 'prepare-for-build
2396 (lambda _
2397 ;; In lieu of #:make-flags
2398 (setenv "CC" "gcc")
2399 ;; Something about the build environment resists building
2400 ;; successfully with the '--locked' flag.
2401 (substitute* '("Makefile.am"
2402 "Makefile.in")
2403 (("--locked") ""))
2404 #t))
2405 (add-before 'configure 'pre-configure
2406 (lambda _
2407 (substitute* "gdk-pixbuf-loader/Makefile.in"
2408 ;; By default the gdk-pixbuf loader is installed under
2409 ;; gdk-pixbuf's prefix. Work around that.
2410 (("gdk_pixbuf_moduledir = .*$")
2411 (string-append "gdk_pixbuf_moduledir = "
2412 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2413 "loaders\n"))
2414 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2415 (("gdk_pixbuf_cache_file = .*$")
2416 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2417 #t))
2418 (add-after 'configure 'gnu-configure
2419 (assoc-ref gnu:%standard-phases 'configure))
2420 ;(lambda* (#:key outputs #:allow-other-keys)
2421 ; ((assoc-ref gnu:%standard-phases 'configure)
2422 ; #:outputs outputs
2423 ; #:configure-flags ("--disable-static"
2424 ; "--enable-vala"))))
2425 (add-after 'configure 'dont-vendor-self
2426 (lambda* (#:key vendor-dir #:allow-other-keys)
2427 ;; Don't keep the whole tarball in the vendor directory
2428 (delete-file-recursively
2429 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2430 #t))
2431 (replace 'build
2432 (assoc-ref gnu:%standard-phases 'build))
2433 (replace 'check
2434 (lambda* args
2435 ((assoc-ref gnu:%standard-phases 'check)
2436 #:test-target "check")))
2437 (replace 'install
2438 (assoc-ref gnu:%standard-phases 'install))
2439 (add-before 'check 'remove-failing-tests
2440 (lambda _
2441 (with-directory-excursion "tests/fixtures/reftests"
2442 (for-each delete-file
2443 '(;; The images produced by these tests differ slightly
2444 ;; from their reference counterparts due to differences
2445 ;; in the build environment (missing fonts, etc). See
2446 ;; <tests/README.md> for details.
2447 ;; These fail on x86_64.
2448 "svg1.1/coords-viewattr-02-b.svg"
2449 "svg1.1/filters-composite-04-f.svg"
2450 "svg1.1/filters-image-01-b.svg"
2451 "svg1.1/filters-conv-02-f.svg"
2452 "svg1.1/filters-conv-04-f.svg"
2453 ;; This test fails on i686:
2454 "svg1.1/masking-path-04-b.svg"
2455 ;; This test fails on armhf:
2456 "svg1.1/masking-mask-01-b.svg"
2457 ;; This test fails on aarch64:
2458 "bugs/777834-empty-text-children.svg")))
2459 #t)))))
2460 (license license:lgpl2.1+)))
2461
2462 (define-public libidl
2463 (package
2464 (name "libidl")
2465 (version "0.8.14")
2466 (source (origin
2467 (method url-fetch)
2468 (uri (string-append "mirror://gnome/sources/libIDL/"
2469 (version-major+minor version) "/"
2470 "libIDL-" version ".tar.bz2"))
2471 (sha256
2472 (base32
2473 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2474 (build-system gnu-build-system)
2475 (inputs `(("glib" ,glib)))
2476 (native-inputs
2477 `(("pkg-config" ,pkg-config)
2478 ("flex" ,flex)
2479 ("bison" ,bison)))
2480 (home-page "http://freecode.com/projects/libidl")
2481 (synopsis "Create trees of CORBA Interface Definition Language files")
2482 (description "Libidl is a library for creating trees of CORBA Interface
2483 Definition Language (idl) files, which is a specification for defining
2484 portable interfaces. libidl was initially written for orbit (the orb from the
2485 GNOME project, and the primary means of libidl distribution). However, the
2486 functionality was designed to be as reusable and portable as possible.")
2487 (properties `((upstream-name . "libIDL")))
2488 (license license:lgpl2.0+)))
2489
2490
2491 (define-public orbit2
2492 (package
2493 (name "orbit2")
2494 (version "2.14.19")
2495 (source (origin
2496 (method url-fetch)
2497 (uri (let ((upstream-name "ORBit2"))
2498 (string-append "mirror://gnome/sources/" upstream-name "/"
2499 (version-major+minor version) "/"
2500 upstream-name "-" version ".tar.bz2")))
2501 (sha256
2502 (base32
2503 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2504 (build-system gnu-build-system)
2505 (arguments
2506 `(;; The "timeout-server" test hangs when run in parallel.
2507 #:parallel-tests? #f
2508 #:configure-flags
2509 '(;; We don't need static libraries, plus they don't build reproducibly
2510 ;; (non-deterministic ordering of .o files in the archive.)
2511 "--disable-static"
2512
2513 ;; The programmer kindly gives us a hook to turn off deprecation
2514 ;; warnings ...
2515 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2516 ;; ... which they then completly ignore !!
2517 #:phases
2518 (modify-phases %standard-phases
2519 (add-before 'configure 'ignore-deprecations
2520 (lambda _
2521 (substitute* "linc2/src/Makefile.in"
2522 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2523 #t)))))
2524 (inputs `(("glib" ,glib)
2525 ("libidl" ,libidl)))
2526 (native-inputs
2527 `(("pkg-config" ,pkg-config)))
2528 (home-page "https://projects.gnome.org/orbit2/")
2529 (synopsis "CORBA 2.4-compliant Object Request Broker")
2530 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2531 featuring mature C, C++ and Python bindings.")
2532 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2533 ;; a version. SOME of the code files have licence notices for GPLv2+.
2534 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2535 (license license:gpl2+)
2536 (properties `((upstream-name . "ORBit2")))))
2537
2538
2539 (define-public libbonobo
2540 (package
2541 (name "libbonobo")
2542 (version "2.32.1")
2543 (source (origin
2544 (method url-fetch)
2545 (uri (string-append "mirror://gnome/sources/" name "/"
2546 (version-major+minor version)
2547 "/" name "-" version ".tar.bz2"))
2548 (sha256
2549 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2550 (patches (search-patches
2551 "libbonobo-activation-test-race.patch"))))
2552 (build-system gnu-build-system)
2553 (arguments
2554 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2555 `(#:configure-flags
2556 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2557 ;; ... which they then completly ignore !!
2558 #:phases
2559 (modify-phases %standard-phases
2560 (add-before 'configure 'ignore-deprecations
2561 (lambda _
2562 (substitute* "activation-server/Makefile.in"
2563 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2564 #t)))
2565
2566 ;; There's apparently a race condition between the server stub
2567 ;; generation and linking of the example under 'samples/echo' that can
2568 ;; lead do undefined references when building in parallel, as reported
2569 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2570 ;; Thus, disable parallel builds.
2571 #:parallel-build? #f))
2572 (inputs `(("popt" ,popt)
2573 ("libxml2" ,libxml2)))
2574 ;; The following are Required by the .pc file
2575 (propagated-inputs
2576 `(("glib" ,glib)
2577 ("orbit2" ,orbit2)))
2578 (native-inputs
2579 `(("intltool" ,intltool)
2580 ("pkg-config" ,pkg-config)
2581 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2582 ("flex" ,flex)
2583 ("bison" ,bison)))
2584 (home-page "https://developer.gnome.org/libbonobo/")
2585 (synopsis "Framework for creating reusable components for use in GNOME applications")
2586 (description "Bonobo is a framework for creating reusable components for
2587 use in GNOME applications, built on top of CORBA.")
2588 ;; Licence not explicitly stated. Source files contain no licence notices.
2589 ;; Tarball contains text of both GPLv2 and LGPLv2
2590 ;; GPLv2 covers both conditions
2591 (license license:gpl2+)))
2592
2593
2594 (define-public gconf
2595 (package
2596 (name "gconf")
2597 (version "3.2.6")
2598 (source (origin
2599 (method url-fetch)
2600 (uri
2601 (let ((upstream-name "GConf"))
2602 (string-append "mirror://gnome/sources/" upstream-name "/"
2603 (version-major+minor version) "/"
2604 upstream-name "-" version ".tar.xz")))
2605 (sha256
2606 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2607 (build-system gnu-build-system)
2608 (inputs `(("dbus-glib" ,dbus-glib)
2609 ("libxml2" ,libxml2)))
2610 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2611 ("orbit2" ,orbit2)))
2612 (native-inputs
2613 `(("intltool" ,intltool)
2614 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2615 ("pkg-config" ,pkg-config)))
2616 (home-page "https://projects.gnome.org/gconf/")
2617 (synopsis "Store application preferences")
2618 (description "Gconf is a system for storing application preferences. It
2619 is intended for user preferences; not arbitrary data storage.")
2620 (license license:lgpl2.0+)
2621 (properties '((upstream-name . "GConf")))))
2622
2623
2624 (define-public gnome-mime-data
2625 (package
2626 (name "gnome-mime-data")
2627 (version "2.18.0")
2628 (source (origin
2629 (method url-fetch)
2630 (uri (string-append "mirror://gnome/sources/" name "/"
2631 (version-major+minor version) "/"
2632 name "-" version ".tar.bz2"))
2633 (sha256
2634 (base32
2635 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2636 (build-system gnu-build-system)
2637 (native-inputs
2638 `(("perl" ,perl)
2639 ("intltool" ,intltool)))
2640 (arguments
2641 '(#:phases (modify-phases %standard-phases
2642 (add-after 'configure 'use-our-intltool
2643 (lambda _
2644 ;; Do not use the bundled intltool commands, which lack
2645 ;; the "dotless @INC" fixes of our 'intltool' package.
2646 (substitute* (find-files "." "^Makefile$")
2647 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2648 (string-append "INTLTOOL_" tool " = intltool-"
2649 (string-downcase tool) "\n")))
2650 #t)))))
2651 (home-page "https://www.gnome.org")
2652 (synopsis "Base MIME and Application database for GNOME")
2653 (description "GNOME Mime Data is a module which contains the base MIME
2654 and Application database for GNOME. The data stored by this module is
2655 designed to be accessed through the MIME functions in GnomeVFS.")
2656 (license license:gpl2+)))
2657
2658
2659 (define-public gnome-vfs
2660 (package
2661 (name "gnome-vfs")
2662 (version "2.24.4")
2663 (source (origin
2664 (method url-fetch)
2665 (uri (string-append "mirror://gnome/sources/" name "/"
2666 (version-major+minor version) "/"
2667 name "-" version ".tar.bz2"))
2668 (sha256
2669 (base32
2670 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2671 (build-system gnu-build-system)
2672 (arguments
2673 `(#:phases
2674 (modify-phases %standard-phases
2675 (add-before 'configure 'ignore-deprecations
2676 (lambda _
2677 (substitute* '("libgnomevfs/Makefile.in"
2678 "daemon/Makefile.in")
2679 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2680 #t))
2681 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2682 (lambda _
2683 (substitute* "test/test-async-cancel.c"
2684 (("EXIT_FAILURE") "77"))
2685 #t)))))
2686 (inputs `(("libxml2" ,libxml2)
2687 ("dbus-glib" ,dbus-glib)
2688 ("gconf" ,gconf)
2689 ("gnome-mime-data" ,gnome-mime-data)
2690 ("zlib" ,zlib)))
2691 (native-inputs
2692 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2693 ("intltool" ,intltool)
2694 ("pkg-config" ,pkg-config)))
2695 (home-page "https://developer.gnome.org/gnome-vfs/")
2696 (synopsis "Access files and folders in GNOME applications")
2697 (description
2698 "GnomeVFS is the core library used to access files and folders in GNOME
2699 applications. It provides a file system abstraction which allows applications
2700 to access local and remote files with a single consistent API.")
2701 (license license:lgpl2.0+)))
2702
2703
2704
2705 (define-public libgnome
2706 (package
2707 (name "libgnome")
2708 (version "2.32.1")
2709 (source (origin
2710 (method url-fetch)
2711 (uri (string-append "mirror://gnome/sources/" name "/"
2712 (version-major+minor version) "/"
2713 name "-" version ".tar.bz2"))
2714 (sha256
2715 (base32
2716 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2717 (patches (search-patches "libgnome-encoding.patch"))))
2718 (build-system gnu-build-system)
2719 (arguments
2720 `(#:phases
2721 (modify-phases %standard-phases
2722 (add-before 'configure 'enable-deprecated
2723 (lambda _
2724 (substitute* "libgnome/Makefile.in"
2725 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2726 #t)))))
2727 (inputs `(("libxml2" ,libxml2)))
2728 (native-inputs
2729 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2730 ("intltool" ,intltool)
2731 ("pkg-config" ,pkg-config)))
2732 ;; The following are listed as Required in the .pc file
2733 ;; (except for libcanberra -- which seems to be oversight on the part
2734 ;; of the upstream developers -- anything that links against libgnome,
2735 ;; must also link against libcanberra
2736 (propagated-inputs
2737 `(("libcanberra" ,libcanberra)
2738 ("libbonobo" ,libbonobo)
2739 ("gconf" ,gconf)
2740 ("gnome-vfs" ,gnome-vfs)
2741 ("popt" ,popt))) ;gnome-program.h includes popt.h
2742 (home-page "https://developer.gnome.org/libgnome/")
2743 (synopsis "Useful routines for building applications")
2744 (description "The libgnome library provides a number of useful routines
2745 for building modern applications, including session management, activation of
2746 files and URIs, and displaying help.")
2747 (license license:lgpl2.0+)))
2748
2749
2750 (define-public libart-lgpl
2751 (package
2752 (name "libart-lgpl")
2753 (version "2.3.21")
2754 (source (origin
2755 (method url-fetch)
2756 (uri (let ((upstream-name "libart_lgpl"))
2757 (string-append "mirror://gnome/sources/" upstream-name "/"
2758 (version-major+minor version) "/"
2759 upstream-name "-" version ".tar.bz2")))
2760 (sha256
2761 (base32
2762 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2763 (build-system gnu-build-system)
2764 (native-inputs
2765 `(("pkg-config" ,pkg-config)))
2766 (home-page "https://people.gnome.org/~mathieu/libart")
2767 (synopsis "2D drawing library")
2768 (description "Libart is a 2D drawing library intended as a
2769 high-quality vector-based 2D library with antialiasing and alpha composition.")
2770 (license license:lgpl2.0+)))
2771
2772
2773
2774 (define-public libgnomecanvas
2775 (package
2776 (name "libgnomecanvas")
2777 (version "2.30.3")
2778 (source (origin
2779 (method url-fetch)
2780 (uri (string-append "mirror://gnome/sources/" name "/"
2781 (version-major+minor version) "/"
2782 name "-" version ".tar.gz"))
2783 (sha256
2784 (base32
2785 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2786 (build-system gnu-build-system)
2787 ;; Mentioned as Required in the .pc file
2788 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2789 ("gtk+" ,gtk+-2)))
2790 (native-inputs
2791 `(("intltool" ,intltool)
2792 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2793 ("pkg-config" ,pkg-config)))
2794 (home-page "https://developer.gnome.org/libgnomecanvas/")
2795 (synopsis "Flexible widget for creating interactive structured graphics")
2796 (description "The GnomeCanvas widget provides a flexible widget for
2797 creating interactive structured graphics.")
2798 (license license:lgpl2.0+)))
2799
2800 (define-public libgnomecanvasmm
2801 (package
2802 (name "libgnomecanvasmm")
2803 (version "2.26.0")
2804 (source (origin
2805 (method url-fetch)
2806 (uri (string-append "mirror://gnome/sources/" name "/"
2807 (version-major+minor version) "/"
2808 name "-" version ".tar.bz2"))
2809 (sha256
2810 (base32
2811 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2812 (build-system gnu-build-system)
2813 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2814 (native-inputs
2815 `(("gtkmm-2" ,gtkmm-2)
2816 ("pkg-config" ,pkg-config)))
2817 (home-page "https://gtkmm.org")
2818 (synopsis "C++ bindings to the GNOME Canvas library")
2819 (description "C++ bindings to the GNOME Canvas library.")
2820 (license license:lgpl2.0+)))
2821
2822 (define-public libgnomeui
2823 (package
2824 (name "libgnomeui")
2825 (version "2.24.5")
2826 (source (origin
2827 (method url-fetch)
2828 (uri (string-append "mirror://gnome/sources/" name "/"
2829 (version-major+minor version) "/"
2830 name "-" version ".tar.bz2"))
2831 (patches (search-patches "libgnomeui-utf8.patch"))
2832 (sha256
2833 (base32
2834 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2835 (build-system gnu-build-system)
2836 ;; Mentioned as Required in the .pc file
2837 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2838 ("libgnome" ,libgnome)
2839 ("libgnomecanvas" ,libgnomecanvas)
2840 ("libgnome-keyring" ,libgnome-keyring)))
2841 (inputs `(("libjpeg" ,libjpeg-turbo)
2842 ("popt" ,popt)
2843 ("libbonobo" ,libbonobo)
2844 ("libxml2" ,libxml2)
2845 ("libglade" ,libglade)))
2846 (native-inputs
2847 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2848 ("intltool" ,intltool)
2849 ("pkg-config" ,pkg-config)))
2850 (home-page "https://developer.gnome.org/libgnomeui/")
2851 (synopsis "Additional widgets for applications")
2852 (description "The libgnomeui library provides additional widgets for
2853 applications. Many of the widgets from libgnomeui have already been
2854 ported to GTK+.")
2855 (license license:lgpl2.0+)))
2856
2857 (define-public libglade
2858 (package
2859 (name "libglade")
2860 (version "2.6.4")
2861 (source (origin
2862 (method url-fetch)
2863 (uri (string-append "mirror://gnome/sources/" name "/"
2864 (version-major+minor version) "/"
2865 name "-" version ".tar.bz2"))
2866 (sha256
2867 (base32
2868 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2869 (build-system gnu-build-system)
2870 (inputs
2871 `(("python" ,python))) ;; needed for the optional libglade-convert program
2872 (propagated-inputs
2873 `(("gtk+-2" ,gtk+-2)
2874 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2875 (native-inputs
2876 `(("pkg-config" ,pkg-config)))
2877 (home-page "https://developer.gnome.org/libglade")
2878 (synopsis "Load glade interfaces and access the glade built widgets")
2879 (description "Libglade is a library that provides interfaces for loading
2880 graphical interfaces described in glade files and for accessing the
2881 widgets built in the loading process.")
2882 (license license:gpl2+))) ; This is correct. GPL not LGPL
2883
2884 (define-public libgnomeprint
2885 ;; This library has been deprecated since 2006; see
2886 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2887 (package
2888 (name "libgnomeprint")
2889 (version "2.18.8")
2890 (source (origin
2891 (method url-fetch)
2892 (uri (string-append "mirror://gnome/sources/" name "/"
2893 (version-major+minor version) "/"
2894 name "-" version ".tar.bz2"))
2895 (sha256
2896 (base32
2897 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2898 (build-system gnu-build-system)
2899 (inputs
2900 `(("popt" ,popt)
2901 ("libart-lgpl" ,libart-lgpl)
2902 ("gtk+" ,gtk+-2)
2903 ("libxml2" ,libxml2)))
2904 (native-inputs
2905 `(("intltool" ,intltool)
2906 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2907 ("pkg-config" ,pkg-config)))
2908 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2909 (synopsis "Printing framework for GNOME")
2910 (description
2911 "GNOME-print was a printing framework for GNOME. It has been deprecated
2912 since ca. 2006, when GTK+ itself incorporated printing support.")
2913 (license license:lgpl2.0+)))
2914
2915
2916 (define-public libgnomeprintui
2917 ;; Deprecated; see libgnomeprint.
2918 (package
2919 (name "libgnomeprintui")
2920 (version "2.18.6")
2921 (source (origin
2922 (method url-fetch)
2923 (uri (string-append "mirror://gnome/sources/" name "/"
2924 (version-major+minor version) "/"
2925 name "-" version ".tar.bz2"))
2926 (sha256
2927 (base32
2928 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2929 (build-system gnu-build-system)
2930 ;; Mentioned as Required in the .pc file
2931 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2932 (inputs `(("gtk+" ,gtk+-2)
2933 ("glib" ,glib)
2934 ("gnome-icon-theme" ,gnome-icon-theme)
2935 ("libgnomecanvas" ,libgnomecanvas)
2936 ("libxml2" ,libxml2)))
2937 (native-inputs
2938 `(("intltool" ,intltool)
2939 ("pkg-config" ,pkg-config)))
2940 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2941 (synopsis "Printing framework for GNOME")
2942 (description (package-description libgnomeprint))
2943 (license license:lgpl2.0+)))
2944
2945 (define-public libbonoboui
2946 (package
2947 (name "libbonoboui")
2948 (version "2.24.5")
2949 (source (origin
2950 (method url-fetch)
2951 (uri (string-append "mirror://gnome/sources/" name "/"
2952 (version-major+minor version) "/"
2953 name "-" version ".tar.bz2"))
2954 (sha256
2955 (base32
2956 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2957 (build-system gnu-build-system)
2958 (arguments
2959 `(#:phases
2960 (modify-phases %standard-phases
2961 (add-before 'check 'start-xserver
2962 (lambda* (#:key inputs #:allow-other-keys)
2963 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2964 (disp ":1"))
2965
2966 (setenv "HOME" (getcwd))
2967 (setenv "DISPLAY" disp)
2968 ;; There must be a running X server and make check doesn't start one.
2969 ;; Therefore we must do it.
2970 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2971 ;; Mentioned as Required by the .pc file
2972 (propagated-inputs `(("libxml2" ,libxml2)))
2973 (inputs
2974 `(("popt" ,popt)
2975 ("pangox-compat" ,pangox-compat)
2976 ("libgnome" ,libgnome)
2977 ("libgnomecanvas" ,libgnomecanvas)
2978 ("libglade" ,libglade)))
2979 (native-inputs
2980 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2981 ("intltool" ,intltool)
2982 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2983 ("pkg-config" ,pkg-config)))
2984 (home-page "https://developer.gnome.org/libbonoboui/")
2985 (synopsis "Some user interface controls using Bonobo")
2986 (description "The Bonobo UI library provides a number of user interface
2987 controls using the Bonobo component framework.")
2988 (license license:lgpl2.0+)))
2989
2990 (define-public libwnck
2991 (package
2992 (name "libwnck")
2993 (version "3.32.0")
2994 (source (origin
2995 (method url-fetch)
2996 (uri (string-append "mirror://gnome/sources/" name "/"
2997 (version-major+minor version) "/"
2998 name "-" version ".tar.xz"))
2999 (sha256
3000 (base32
3001 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3002 (build-system meson-build-system)
3003 (native-inputs
3004 `(("pkg-config" ,pkg-config)
3005 ("glib" ,glib "bin") ; for glib-mkenums
3006 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3007 ("intltool" ,intltool)))
3008 (propagated-inputs
3009 `(("gtk+" ,gtk+)
3010 ("libxres" ,libxres)
3011 ("startup-notification" ,startup-notification)))
3012 (home-page "https://developer.gnome.org/libwnck/")
3013 (synopsis "Window Navigator Construction Kit")
3014 (description
3015 "Libwnck is the Window Navigator Construction Kit, a library for use in
3016 writing pagers, tasklists, and more generally applications that are dealing
3017 with window management. It tries hard to respect the Extended Window Manager
3018 Hints specification (EWMH).")
3019 (license license:lgpl2.0+)))
3020
3021 ;; stable version for gtk2, required by xfwm4.
3022 (define-public libwnck-2
3023 (package (inherit libwnck)
3024 (name "libwnck")
3025 (version "2.30.7")
3026 (source (origin
3027 (method url-fetch)
3028 (uri (string-append "mirror://gnome/sources/" name "/"
3029 (version-major+minor version) "/"
3030 name "-" version ".tar.xz"))
3031 (sha256
3032 (base32
3033 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
3034 (build-system gnu-build-system)
3035 (native-inputs
3036 `(("pkg-config" ,pkg-config)
3037 ("intltool" ,intltool)))
3038 (propagated-inputs
3039 `(("gtk+" ,gtk+-2)
3040 ("libxres" ,libxres)
3041 ("startup-notification" ,startup-notification)))))
3042
3043 (define-public goffice
3044 (package
3045 (name "goffice")
3046 (version "0.10.46")
3047 (source (origin
3048 (method url-fetch)
3049 (uri (string-append "mirror://gnome/sources/goffice/"
3050 (version-major+minor version) "/"
3051 "goffice-" version ".tar.xz"))
3052 (sha256
3053 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
3054 (build-system gnu-build-system)
3055 (outputs '("out"
3056 "doc")) ; 4.0 MiB of gtk-doc
3057 (arguments
3058 '(#:configure-flags (list (string-append "--with-html-dir="
3059 (assoc-ref %outputs "doc")
3060 "/share/gtk-doc/html"))))
3061 (inputs
3062 `(("gtk+" ,gtk+)
3063 ("libgsf" ,libgsf)
3064 ("librsvg" ,librsvg)
3065 ("libxslt" ,libxslt)
3066 ("libxml2" ,libxml2)))
3067 (native-inputs
3068 `(("intltool" ,intltool)
3069 ("glib" ,glib "bin")
3070 ("pkg-config" ,pkg-config)))
3071 (home-page "https://developer.gnome.org/goffice/")
3072 (synopsis "Document-centric objects and utilities")
3073 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3074 (license
3075 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3076 ;; Note: NOT LGPL
3077 (list license:gpl2 license:gpl3))))
3078
3079 (define-public goffice-0.8
3080 (package (inherit goffice)
3081 (version "0.8.17")
3082 (source (origin
3083 (method url-fetch)
3084 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3085 (version-major+minor version) "/"
3086 (package-name goffice) "-" version ".tar.xz"))
3087 (sha256
3088 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3089 (arguments
3090 `(#:phases
3091 (modify-phases %standard-phases
3092 (add-after 'unpack 'fix-pcre-check
3093 (lambda _
3094 ;; Only glib.h can be included directly. See
3095 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3096 (substitute* "configure"
3097 (("glib/gregex\\.h") "glib.h")) #t)))
3098
3099 ,@(package-arguments goffice)))
3100 (propagated-inputs
3101 ;; libgoffice-0.8.pc mentions libgsf-1
3102 `(("libgsf" ,libgsf)))
3103 (inputs
3104 `(("gtk" ,gtk+-2)
3105 ,@(alist-delete "gtk" (package-inputs goffice))))))
3106
3107 (define-public gnumeric
3108 (package
3109 (name "gnumeric")
3110 (version "1.12.46")
3111 (source (origin
3112 (method url-fetch)
3113 (uri (string-append "mirror://gnome/sources/gnumeric/"
3114 (version-major+minor version) "/"
3115 "gnumeric-" version ".tar.xz"))
3116 (sha256
3117 (base32
3118 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3119 (build-system glib-or-gtk-build-system)
3120 (arguments
3121 `(;; The gnumeric developers don't worry much about failing tests.
3122 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3123 #:tests? #f
3124 #:phases
3125 (modify-phases %standard-phases
3126 (add-before
3127 'configure 'pre-conf
3128 (lambda* (#:key outputs #:allow-other-keys)
3129 ;; Make install tries to write into the directory of goffice
3130 ;; I am informed that this only affects the possibility to embed a
3131 ;; spreadsheet inside an Abiword document. So presumably when we
3132 ;; package Abiword we'll have to refer it to this directory.
3133 (substitute* "configure"
3134 (("^GOFFICE_PLUGINS_DIR=.*")
3135 (string-append "GOFFICE_PLUGINS_DIR="
3136 (assoc-ref outputs "out")
3137 "/goffice/plugins"))))))))
3138 (inputs
3139 `(("glib" ,glib)
3140 ("gtk+" ,gtk+)
3141 ("goffice" ,goffice)
3142 ("libgsf" ,libgsf)
3143 ("librsvg" ,librsvg)
3144 ("libxml2" ,libxml2)
3145 ("libxslt" ,libxslt)
3146 ("python" ,python-2)
3147 ("python2-pygobject" ,python2-pygobject)
3148 ("zlib" ,zlib)))
3149 (native-inputs
3150 `(("bison" ,bison)
3151 ("docbook-xml" ,docbook-xml)
3152 ("intltool" ,intltool)
3153 ("itstool" ,itstool)
3154 ("glib:bin" ,glib "bin")
3155 ("pkg-config" ,pkg-config)))
3156 (home-page "http://www.gnumeric.org")
3157 (synopsis "Spreadsheet application")
3158 (description
3159 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3160 interoperable with other spreadsheet applications. It has a vast array of
3161 features beyond typical spreadsheet functionality, such as support for linear
3162 and non-linear solvers, statistical analysis, and telecommunication
3163 engineering.")
3164 (license
3165 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3166 (list license:gpl2 license:gpl3))))
3167
3168 (define-public gnome-themes-standard
3169 (package
3170 (name "gnome-themes-standard")
3171 (version "3.22.3")
3172 (source
3173 (origin
3174 (method url-fetch)
3175 (uri (string-append "mirror://gnome/sources/" name "/"
3176 (version-major+minor version) "/" name "-"
3177 version ".tar.xz"))
3178 (sha256
3179 (base32
3180 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3181 (build-system gnu-build-system)
3182 (arguments
3183 '(#:configure-flags
3184 ;; Don't create 'icon-theme.cache'.
3185 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3186 (true (string-append coreutils "/bin/true")))
3187 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3188 (inputs
3189 `(("gtk+" ,gtk+)
3190 ("gtk+-2" ,gtk+-2)
3191 ("librsvg" ,librsvg)
3192 ("libxml2" ,libxml2)
3193 ("glib" ,glib)))
3194 (native-inputs
3195 `(("intltool" ,intltool)
3196 ("glib:bin" ,glib "bin")
3197 ("pkg-config" ,pkg-config)))
3198 (home-page "https://launchpad.net/gnome-themes-standard")
3199 (synopsis "Default GNOME 3 themes")
3200 (description
3201 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3202 (license license:lgpl2.1+)))
3203
3204 (define-public seahorse
3205 (package
3206 (name "seahorse")
3207 (version "3.34")
3208 (source
3209 (origin
3210 (method url-fetch)
3211 (uri (string-append "mirror://gnome/sources/" name "/"
3212 (version-major+minor version) "/" name "-"
3213 version ".tar.xz"))
3214 (sha256
3215 (base32
3216 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
3217 (build-system meson-build-system)
3218 (arguments
3219 '(#:glib-or-gtk? #t
3220 #:phases
3221 (modify-phases %standard-phases
3222 (add-after 'unpack 'skip-gtk-update-icon-cache
3223 ;; Don't create 'icon-theme.cache'.
3224 (lambda _
3225 (substitute* "build-aux/meson_post_install.py"
3226 (("gtk-update-icon-cache") "true"))
3227 #t)))))
3228 (inputs
3229 `(("gtk+" ,gtk+)
3230 ("gcr" ,gcr)
3231 ("gnupg" ,gnupg)
3232 ("gpgme" ,gpgme)
3233 ("openldap" ,openldap)
3234 ("openssh" ,openssh)
3235 ("avahi" ,avahi)
3236 ("libpwquality" ,libpwquality)
3237 ("libsecret" ,libsecret)
3238 ("libsoup" ,libsoup)))
3239 (native-inputs
3240 `(("gettext" ,gettext-minimal)
3241 ("glib:bin" ,glib "bin")
3242 ("itstool" ,itstool)
3243 ("pkg-config" ,pkg-config)
3244 ("vala" ,vala)
3245 ("xmllint" ,libxml2)))
3246 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3247 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3248 (description
3249 "Seahorse is a GNOME application for managing encryption keys and
3250 passwords in the GNOME keyring.")
3251 (license license:gpl2+)))
3252
3253 (define-public vala
3254 (package
3255 (name "vala")
3256 (version "0.46.5")
3257 (source (origin
3258 (method url-fetch)
3259 (uri (string-append "mirror://gnome/sources/" name "/"
3260 (version-major+minor version) "/"
3261 name "-" version ".tar.xz"))
3262 (sha256
3263 (base32
3264 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
3265 (build-system gnu-build-system)
3266 (arguments
3267 '(#:phases
3268 (modify-phases %standard-phases
3269 (add-before 'check 'pre-check
3270 (lambda _
3271 (setenv "CC" "gcc")
3272 (substitute* "valadoc/tests/testrunner.sh"
3273 (("export PKG_CONFIG_PATH=" m)
3274 (string-append m "$PKG_CONFIG_PATH:")))
3275 ;; For missing '/etc/machine-id'.
3276 (setenv "DBUS_FATAL_WARNINGS" "0")
3277 #t)))))
3278 (native-inputs
3279 `(("pkg-config" ,pkg-config)
3280 ("flex" ,flex)
3281 ("bison" ,bison)
3282 ("xsltproc" ,libxslt)
3283 ("dbus" ,dbus) ; for dbus tests
3284 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3285 (inputs
3286 `(("graphviz" ,graphviz)))
3287 (propagated-inputs
3288 `(("glib" ,glib))) ; required by libvala-0.40.pc
3289 (home-page "https://live.gnome.org/Vala/")
3290 (synopsis "Compiler for the GObject type system")
3291 (description
3292 "Vala is a programming language that aims to bring modern programming
3293 language features to GNOME developers without imposing any additional runtime
3294 requirements and without using a different ABI compared to applications and
3295 libraries written in C.")
3296 (license license:lgpl2.1+)))
3297
3298 (define-public vala-0.48
3299 (package
3300 (inherit vala)
3301 (version "0.48.6")
3302 (source (origin
3303 (method url-fetch)
3304 (uri (string-append "mirror://gnome/sources/vala/"
3305 (version-major+minor version) "/"
3306 "vala-" version ".tar.xz"))
3307 (sha256
3308 (base32
3309 "01wppzgacdmp8dgf8047myz1any2yffmrhgl8kqf1q0c0gnhi3fi"))))))
3310
3311 (define-public vte
3312 (package
3313 (name "vte")
3314 (version "0.60.2")
3315 (source (origin
3316 (method url-fetch)
3317 (uri (string-append "mirror://gnome/sources/vte/"
3318 (version-major+minor version) "/"
3319 "vte-" version ".tar.xz"))
3320 (sha256
3321 (base32
3322 "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
3323 (build-system meson-build-system)
3324 (arguments
3325 `(#:configure-flags
3326 '("-Dvapi=true"
3327 "-D_systemd=false")))
3328 (native-inputs
3329 `(("pkg-config" ,pkg-config)
3330 ("gettext" ,gettext-minimal)
3331 ("vala" ,vala)
3332 ("gobject-introspection" ,gobject-introspection)
3333 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3334 ("gperf" ,gperf)
3335 ("xmllint" ,libxml2)))
3336 (propagated-inputs
3337 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3338 ("gnutls" ,gnutls) ; ditto
3339 ("pcre2" ,pcre2))) ; ditto
3340 (home-page "https://www.gnome.org/")
3341 (synopsis "Virtual Terminal Emulator")
3342 (description
3343 "VTE is a library (libvte) implementing a terminal emulator widget for
3344 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3345 gnome-terminal, but can also be used to embed a console/terminal in games,
3346 editors, IDEs, etc.")
3347 (license license:lgpl2.1+)))
3348
3349 (define-public vte-ng
3350 (package
3351 (inherit vte)
3352 (name "vte-ng")
3353 (version "0.58.2.a")
3354 (home-page "https://github.com/thestinger/vte-ng")
3355 (source (origin
3356 (method git-fetch)
3357 (uri (git-reference (url home-page) (commit version)))
3358 (file-name (git-file-name name version))
3359 (sha256
3360 (base32
3361 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3362 (build-system meson-build-system)
3363 (native-inputs
3364 `(("gtk-doc" ,gtk-doc)
3365 ,@(package-native-inputs vte)))
3366 (arguments
3367 `(#:configure-flags '("-Ddocs=true")))
3368 (synopsis "Enhanced VTE terminal widget")
3369 (description
3370 "VTE is a library (libvte) implementing a terminal emulator widget for
3371 GTK+, this fork provides additional functions exposed for keyboard text
3372 selection and URL hints.")))
3373
3374 ;; provides vte 2.90, required for some terminal emulators
3375 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3376 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3377 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3378 ;; pantheon-terminal, roxterm are not currently packaged
3379 (define-public vte-0.36
3380 (package (inherit vte)
3381 (name "vte")
3382 (version "0.36.5")
3383 (source (origin
3384 (method url-fetch)
3385 (uri (string-append "mirror://gnome/sources/" name "/"
3386 (version-major+minor version) "/"
3387 name "-" version ".tar.xz"))
3388 (sha256
3389 (base32
3390 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3391 (propagated-inputs
3392 `(("gtk" ,gtk+)
3393 ("ncurses" ,ncurses)))))
3394
3395 ;; stable version for gtk2, required by xfce4-terminal.
3396 (define-public vte/gtk+-2
3397 (package (inherit vte)
3398 (name "vte")
3399 (version "0.28.2")
3400 (source (origin
3401 (method url-fetch)
3402 (uri (string-append "mirror://gnome/sources/" name "/"
3403 (version-major+minor version) "/"
3404 name "-" version ".tar.xz"))
3405 (sha256
3406 (base32
3407 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3408 (patches (search-patches
3409 "vte-CVE-2012-2738-pt1.patch"
3410 "vte-CVE-2012-2738-pt2.patch"))))
3411 (build-system gnu-build-system)
3412 (arguments
3413 '(#:configure-flags '("--disable-python")))
3414 (native-inputs
3415 `(("pkg-config" ,pkg-config)
3416 ("intltool" ,intltool)
3417 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3418 (propagated-inputs
3419 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3420 ("ncurses" ,ncurses))))) ; required by libvte.la
3421
3422 (define-public vinagre
3423 (package
3424 (name "vinagre")
3425 (version "3.22.0")
3426 (source (origin
3427 (method url-fetch)
3428 (uri (string-append "mirror://gnome/sources/" name "/"
3429 (version-major+minor version) "/"
3430 name "-" version ".tar.xz"))
3431 (patches (search-patches "vinagre-newer-freerdp.patch"
3432 "vinagre-newer-rdp-parameters.patch"))
3433 (sha256
3434 (base32
3435 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3436 (build-system glib-or-gtk-build-system)
3437 (arguments
3438 ;; Disable -Werror and such, to avoid build failures on compilation
3439 ;; warnings.
3440 '(#:configure-flags '("--enable-compile-warnings=minimum")
3441 #:phases
3442 (modify-phases %standard-phases
3443 (add-before 'install 'skip-gtk-update-icon-cache
3444 (lambda _
3445 ;; Don't create 'icon-theme.cache'
3446 (substitute* (find-files "." "^Makefile$")
3447 (("gtk-update-icon-cache") (which "true")))
3448 #t))
3449 (add-after 'unpack 'patch-configure
3450 (lambda _
3451 (substitute* "configure"
3452 (("freerdp") "freerdp2"))
3453 #t)))))
3454 (native-inputs
3455 `(("pkg-config" ,pkg-config)
3456 ("intltool" ,intltool)
3457 ("itstool" ,itstool)
3458 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3459 (inputs
3460 `(("libxml2" ,libxml2)
3461 ("gtk-vnc" ,gtk-vnc)
3462 ("gnome-keyring" ,gnome-keyring)
3463 ("libsecret" ,libsecret)
3464 ("freerdp" ,freerdp)
3465 ("spice" ,spice)
3466 ("spice-gtk" ,spice-gtk)
3467 ("telepathy-glib" ,telepathy-glib)
3468 ("vte" ,vte)))
3469 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3470 (synopsis "Remote desktop viewer for GNOME")
3471 (description "Vinagre is a remote display client supporting the VNC, SPICE
3472 and RDP protocols.")
3473 (license license:gpl3+)))
3474
3475 (define-public dconf
3476 (package
3477 (name "dconf")
3478 (version "0.34.0")
3479 (source (origin
3480 (method url-fetch)
3481 (uri (string-append
3482 "mirror://gnome/sources/" name "/"
3483 (version-major+minor version) "/"
3484 name "-" version ".tar.xz"))
3485 (patches (search-patches "dconf-meson-0.52.patch"))
3486 (sha256
3487 (base32
3488 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
3489 (build-system meson-build-system)
3490 (propagated-inputs
3491 ;; In Requires of dconf.pc.
3492 `(("glib" ,glib)))
3493 (inputs
3494 `(("gtk+" ,gtk+)
3495 ("dbus" ,dbus)))
3496 (native-inputs
3497 `(("bash-completion" ,bash-completion)
3498 ("libxslt" ,libxslt) ;for xsltproc
3499 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3500 ("docbook-xml" ,docbook-xml-4.2)
3501 ("docbook-xsl" ,docbook-xsl)
3502 ("glib:bin" ,glib "bin")
3503 ("gtk-doc" ,gtk-doc)
3504 ("pkg-config" ,pkg-config)
3505 ("vala" ,vala)))
3506 (arguments
3507 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3508 ; or /etc/machine-id.
3509 #:glib-or-gtk? #t
3510 #:configure-flags '("-Denable-gtk-doc=true")))
3511 (home-page "https://developer.gnome.org/dconf/")
3512 (synopsis "Low-level GNOME configuration system")
3513 (description "Dconf is a low-level configuration system. Its main purpose
3514 is to provide a backend to GSettings on platforms that don't already have
3515 configuration storage systems.")
3516 (license license:lgpl2.1+)))
3517
3518 (define-public json-glib
3519 (package
3520 (name "json-glib")
3521 (version "1.4.4")
3522 (source (origin
3523 (method url-fetch)
3524 (uri (string-append "mirror://gnome/sources/" name "/"
3525 (version-major+minor version) "/"
3526 name "-" version ".tar.xz"))
3527 (sha256
3528 (base32
3529 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3530 (build-system meson-build-system)
3531 (native-inputs
3532 `(("gettext" ,gettext-minimal)
3533 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3534 ("gobject-introspection" ,gobject-introspection)
3535 ("pkg-config" ,pkg-config)))
3536 (propagated-inputs
3537 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3538 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3539 (synopsis "Compiler for the GObject type system")
3540 (description
3541 "JSON-GLib is a C library based on GLib providing serialization and
3542 deserialization support for the JavaScript Object Notation (JSON) format
3543 described by RFC 4627. It provides parser and generator GObject classes and
3544 various wrappers for the complex data types employed by JSON, such as arrays
3545 and objects.")
3546 (license license:lgpl2.1+)))
3547
3548 (define-public libxklavier
3549 (package
3550 (name "libxklavier")
3551 (version "5.4")
3552 (source (origin
3553 ;; Note: There's no tarball at ftp.gnome.org for this version.
3554 (method git-fetch)
3555 (uri (git-reference
3556 (url "https://anongit.freedesktop.org/git/libxklavier")
3557 (commit (string-append "libxklavier-" version))))
3558 (sha256
3559 (base32
3560 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3561 (file-name (git-file-name name version))))
3562 (build-system gnu-build-system)
3563 (arguments
3564 '(#:configure-flags
3565 (list (string-append "--with-xkb-base="
3566 (assoc-ref %build-inputs "xkeyboard-config")
3567 "/share/X11/xkb")
3568 "--disable-xmodmap-support")))
3569 (native-inputs
3570 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3571 ("gobject-introspection" ,gobject-introspection)
3572 ("pkg-config" ,pkg-config)
3573 ("gtk-doc" ,gtk-doc)
3574 ("intltool" ,intltool)
3575 ("which" ,which)
3576 ("autoconf" ,autoconf)
3577 ("automake" ,automake)
3578 ("libtool" ,libtool)))
3579 (propagated-inputs
3580 ;; Required by libxklavier.pc.
3581 `(("glib" ,glib)
3582 ("libxml2" ,libxml2)))
3583 (inputs
3584 `(("iso-codes" ,iso-codes)
3585 ("libxi" ,libxi)
3586 ("libxkbfile" ,libxkbfile)
3587 ("xkbcomp" ,xkbcomp)
3588 ("xkeyboard-config" ,xkeyboard-config)))
3589 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3590 (synopsis "High-level API for X Keyboard Extension")
3591 (description
3592 "LibXklavier is a library providing high-level API for X Keyboard
3593 Extension known as XKB. This library is intended to support XFree86 and other
3594 commercial X servers. It is useful for creating XKB-related software (layout
3595 indicators etc).")
3596 (license license:lgpl2.0+)))
3597
3598 (define-public python2-rsvg
3599 ;; XXX: This is actually a subset of gnome-python-desktop.
3600 (package
3601 (name "python2-rsvg")
3602 (version "2.32.0")
3603 (source
3604 (origin
3605 (method url-fetch)
3606 (uri (string-append
3607 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3608 version ".tar.bz2"))
3609 (sha256
3610 (base32
3611 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3612 (build-system gnu-build-system)
3613 (native-inputs
3614 `(("pkg-config" ,pkg-config)))
3615 (inputs
3616 `(("python" ,python-2)
3617 ("python2-pygtk" ,python2-pygtk)
3618 ("librsvg" ,librsvg)))
3619 (home-page "https://www.gnome.org")
3620 (synopsis "Python bindings to librsvg")
3621 (description
3622 "This package provides Python bindings to librsvg, the SVG rendering
3623 library.")
3624
3625 ;; This is the license of the rsvg bindings. The license of each module
3626 ;; of gnome-python-desktop is given in 'COPYING'.
3627 (license license:lgpl2.1+)))
3628
3629 (define-public glib-networking
3630 (package
3631 (name "glib-networking")
3632 (version "2.62.2")
3633 (source (origin
3634 (method url-fetch)
3635 (uri (string-append "mirror://gnome/sources/glib-networking/"
3636 (version-major+minor version) "/"
3637 "glib-networking-" version ".tar.xz"))
3638 (sha256
3639 (base32
3640 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
3641 (build-system meson-build-system)
3642 (arguments
3643 `(#:configure-flags '("-Dlibproxy_support=false")))
3644 (native-inputs
3645 `(("pkg-config" ,pkg-config)
3646 ("intltool" ,intltool)))
3647 (inputs
3648 `(("glib" ,glib)
3649 ("gnutls" ,gnutls)
3650 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3651 (home-page "https://www.gnome.org")
3652 (synopsis "Network-related GIO modules")
3653 (description
3654 "This package contains various network related extensions for the GIO
3655 library.")
3656 (license license:lgpl2.0+)))
3657
3658 (define-public rest
3659 (package
3660 (name "rest")
3661 (version "0.8.1")
3662 (source (origin
3663 (method url-fetch)
3664 (uri (string-append "mirror://gnome/sources/rest/"
3665 (version-major+minor version) "/"
3666 name "-" version ".tar.xz"))
3667 (sha256
3668 (base32
3669 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3670 (build-system gnu-build-system)
3671 (arguments
3672 '(#:tests? #f ; tests require internet connection
3673 #:configure-flags
3674 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3675 (native-inputs
3676 `(("glib-mkenums" ,glib "bin")
3677 ("gobject-introspection" ,gobject-introspection)
3678 ("pkg-config" ,pkg-config)))
3679 (propagated-inputs
3680 ;; rest-0.7.pc refers to all these.
3681 `(("glib" ,glib)
3682 ("libsoup" ,libsoup)
3683 ("libxml2" ,libxml2)))
3684 (home-page "https://www.gtk.org/")
3685 (synopsis "RESTful web api query library")
3686 (description
3687 "This library was designed to make it easier to access web services that
3688 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3689 libxml to ease remote use of the RESTful API.")
3690 (license license:lgpl2.1+)))
3691
3692 (define-public libsoup
3693 (package
3694 (name "libsoup")
3695 (version "2.70.0")
3696 (source (origin
3697 (method url-fetch)
3698 (uri (string-append "mirror://gnome/sources/libsoup/"
3699 (version-major+minor version) "/"
3700 "libsoup-" version ".tar.xz"))
3701 (sha256
3702 (base32
3703 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
3704 (build-system meson-build-system)
3705 (outputs '("out" "doc"))
3706 (arguments
3707 `(#:modules ((guix build utils)
3708 (guix build meson-build-system)
3709 (ice-9 popen))
3710
3711 #:configure-flags '("-Dgtk_doc=true")
3712 #:phases
3713 (modify-phases %standard-phases
3714 (add-after 'unpack 'adjust-tests
3715 (lambda _
3716 ;; This test fails due to missing /etc/nsswitch.conf
3717 ;; in the build environment.
3718 (substitute* "tests/socket-test.c"
3719 ((".*/sockets/unconnected.*") ""))
3720
3721 ;; These fail because "subdomain.localhost" does not resolve in
3722 ;; the build environment.
3723 (substitute* "tests/hsts-test.c"
3724 ((".*/hsts/basic.*") "")
3725 ((".*/hsts/subdomains.*") "")
3726 ((".*/hsts/superdomain.*") "")
3727 ((".*/hsts/utf8-address.*") ""))
3728 (substitute* "tests/hsts-db-test.c"
3729 ((".*/hsts-db/subdomains.*") ""))
3730
3731 ;; Generate a self-signed certificate that has "localhost" as its
3732 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3733 ;; 3.5.12, tests such as "ssl-tests" fail:
3734 ;;
3735 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3736 ;;
3737 ;; 'certtool' is interactive so we have to pipe it the answers.
3738 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3739 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3740 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3741 (for-each (lambda (line)
3742 (display line pipe)
3743 (newline pipe))
3744 '("" ;Common name
3745 "" ;UID
3746 "Guix" ;Organizational unit name
3747 "GNU" ;Organization name
3748 "" ;Locality name
3749 "" ;State or province
3750 "" ;Country
3751 "" ;subject's domain component (DC)
3752 "" ;E-mail
3753 "" ;serial number
3754 "-1" ;expiration time
3755 "N" ;belong to authority?
3756 "N" ;web client certificate?
3757 "N" ;IPsec IKE?
3758 "Y" ;web server certificate?
3759 "localhost" ;dnsName of subject
3760 "" ;dnsName of subject (end)
3761 "" ;URI of subject
3762 "127.0.0.1" ;IP address of subject
3763 "" ;signing?
3764 "" ;encryption (RSA)?
3765 "" ;data encryption?
3766 "" ;sign OCSP requests?
3767 "" ;sign code?
3768 "" ;time stamping?
3769 "" ;email protection?
3770 "" ;URI of the CRL distribution point
3771 "y" ;above info OK?
3772 ))
3773 (close-pipe pipe))
3774 #t))
3775 (add-after 'install 'move-doc
3776 (lambda* (#:key outputs #:allow-other-keys)
3777 (let ((out (assoc-ref outputs "out"))
3778 (doc (assoc-ref outputs "doc")))
3779 (mkdir-p (string-append doc "/share"))
3780 (copy-recursively (string-append out "/share/gtk-doc")
3781 (string-append doc "/share/gtk-doc"))
3782 (delete-file-recursively (string-append out "/share/gtk-doc"))
3783 #t))))))
3784 (native-inputs
3785 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3786 ("gobject-introspection" ,gobject-introspection)
3787 ("gtk-doc" ,gtk-doc)
3788 ("intltool" ,intltool)
3789 ("pkg-config" ,pkg-config)
3790 ("python" ,python-wrapper)
3791 ("vala" ,vala)
3792 ("php" ,php)
3793 ("curl" ,curl)
3794 ("gnutls" ,gnutls) ;for 'certtool'
3795 ("httpd" ,httpd)))
3796 (propagated-inputs
3797 ;; libsoup-2.4.pc refers to all these.
3798 `(("brotli" ,google-brotli)
3799 ("glib" ,glib)
3800 ("libpsl" ,libpsl)
3801 ("libxml2" ,libxml2)
3802 ("sqlite" ,sqlite)
3803 ("zlib" ,zlib)))
3804 (inputs
3805 `(("glib-networking" ,glib-networking)
3806 ("mit-krb5" ,mit-krb5)))
3807 (home-page "https://live.gnome.org/LibSoup/")
3808 (synopsis "GLib-based HTTP Library")
3809 (description
3810 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3811 and the GLib main loop, to integrate well with GNOME applications.")
3812 (license license:lgpl2.0+)))
3813
3814
3815 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
3816 (define-public libsoup-minimal
3817 (package
3818 (inherit libsoup)
3819 (name "libsoup-minimal")
3820 (outputs (delete "doc" (package-outputs libsoup)))
3821 (arguments
3822 (substitute-keyword-arguments (package-arguments libsoup)
3823 ((#:configure-flags configure-flags)
3824 `(delete "-Dgtk_doc=true" ,configure-flags))
3825 ((#:phases phases)
3826 `(modify-phases ,phases
3827 (delete 'move-doc)))))
3828 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
3829
3830 (define-public libsecret
3831 (package
3832 (name "libsecret")
3833 (version "0.20.3")
3834 (source (origin
3835 (method url-fetch)
3836 (uri (string-append
3837 "mirror://gnome/sources/libsecret/"
3838 (version-major+minor version) "/"
3839 "libsecret-" version ".tar.xz"))
3840 (sha256
3841 (base32
3842 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
3843 (build-system gnu-build-system)
3844 (outputs '("out" "doc"))
3845 (arguments
3846 `(#:tests? #f ; FIXME: Testing hangs.
3847 #:configure-flags
3848 (list (string-append "--with-html-dir="
3849 (assoc-ref %outputs "doc")
3850 "/share/gtk-doc/html"))))
3851 (native-inputs
3852 `(("gettext" ,gettext-minimal)
3853 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3854 ("gobject-introspection" ,gobject-introspection)
3855 ("pkg-config" ,pkg-config)
3856 ("vala" ,vala)
3857 ("xsltproc" ,libxslt)))
3858 ;; These are needed for the tests.
3859 ;; FIXME: Add gjs once available.
3860 ;("dbus" ,dbus)
3861 ;("python2" ,python-2)
3862 ;("python2-dbus" ,python2-dbus)
3863 ;("python2-pygobject" ,python2-pygobject)
3864 ;("python2-pygobject-2" ,python2-pygobject-2)))
3865 (propagated-inputs
3866 `(("glib" ,glib))) ; required by libsecret-1.pc
3867 (inputs
3868 `(("docbook-xsl" ,docbook-xsl)
3869 ("libgcrypt" ,libgcrypt)
3870 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3871 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3872 (synopsis "GObject bindings for \"Secret Service\" API")
3873 (description
3874 "Libsecret is a GObject based library for storing and retrieving passwords
3875 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3876 (license license:lgpl2.1+)))
3877
3878 (define-public five-or-more
3879 (package
3880 (name "five-or-more")
3881 (version "3.32.2")
3882 (source
3883 (origin
3884 (method url-fetch)
3885 (uri (string-append "mirror://gnome/sources/five-or-more/"
3886 (version-major+minor version) "/"
3887 "five-or-more-" version ".tar.xz"))
3888 (sha256
3889 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
3890 (build-system meson-build-system)
3891 (arguments
3892 '(#:glib-or-gtk? #t
3893 #:phases
3894 (modify-phases %standard-phases
3895 (add-after 'unpack 'skip-gtk-update-icon-cache
3896 (lambda _
3897 (substitute* "meson_post_install.py"
3898 (("gtk-update-icon-cache") (which "true")))
3899 #t)))))
3900 (native-inputs
3901 `(("pkg-config" ,pkg-config)
3902 ("appstream-glib" ,appstream-glib)
3903 ("desktop-file-utils" ,desktop-file-utils)
3904 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3905 ("intltool" ,intltool)
3906 ("itstool" ,itstool)
3907 ("vala" ,vala)
3908 ("xmllint" ,libxml2)))
3909 (inputs
3910 `(("gtk+" ,gtk+)
3911 ("libgnome-games-support" ,libgnome-games-support)
3912 ("librsvg" ,librsvg)))
3913 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3914 (synopsis "Logic puzzle game")
3915 (description "Five or More is a game where you try to align
3916 five or more objects of the same color and shape causing them to disappear.
3917 On every turn more objects will appear, until the board is full.
3918 Try to last as long as possible.")
3919 (license license:gpl2+)))
3920
3921 (define-public gnome-mines
3922 (package
3923 (name "gnome-mines")
3924 (version "3.34.0")
3925 (source
3926 (origin
3927 (method url-fetch)
3928 (uri (string-append "mirror://gnome/sources/" name "/"
3929 (version-major+minor version) "/"
3930 name "-" version ".tar.xz"))
3931 (sha256
3932 (base32
3933 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
3934 (build-system meson-build-system)
3935 (arguments
3936 '(#:glib-or-gtk? #t
3937 #:phases
3938 (modify-phases %standard-phases
3939 (add-after 'unpack 'skip-gtk-update-icon-cache
3940 (lambda _
3941 (substitute* "build-aux/meson_post_install.py"
3942 (("gtk-update-icon-cache") (which "true")))
3943 #t)))))
3944 (native-inputs
3945 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3946 ("pkg-config" ,pkg-config)
3947 ("desktop-file-utils" ,desktop-file-utils)
3948 ("intltool" ,intltool)
3949 ("itstool" ,itstool)
3950 ("vala" ,vala)
3951 ("yelp" ,yelp)
3952 ("appstream-glib" ,appstream-glib)))
3953 (inputs
3954 `(("gtk+" ,gtk+)
3955 ("libgnome-games-support" ,libgnome-games-support)
3956 ("librsvg" ,librsvg)))
3957 (home-page "https://wiki.gnome.org/Apps/Mines")
3958 (synopsis "Minesweeper game")
3959 (description
3960 "Mines (previously gnomine) is a puzzle game where you locate mines
3961 floating in an ocean using only your brain and a little bit of luck.")
3962 (license license:gpl2+)))
3963
3964 (define-public gnome-sudoku
3965 (package
3966 (name "gnome-sudoku")
3967 (version "3.34.1")
3968 (source
3969 (origin
3970 (method url-fetch)
3971 (uri (string-append "mirror://gnome/sources/" name "/"
3972 (version-major+minor version) "/"
3973 name "-" version ".tar.xz"))
3974 (sha256
3975 (base32
3976 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
3977 (build-system meson-build-system)
3978 (arguments
3979 '(#:glib-or-gtk? #t
3980 #:phases
3981 (modify-phases %standard-phases
3982 (add-after 'unpack 'skip-gtk-update-icon-cache
3983 (lambda _
3984 (substitute* "build-aux/post_install.py"
3985 (("gtk-update-icon-cache") (which "true")))
3986 #t)))))
3987 (native-inputs
3988 `(("pkg-config" ,pkg-config)
3989 ("desktop-file-utils" ,desktop-file-utils)
3990 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3991 ("intltool" ,intltool)
3992 ("itstool" ,itstool)
3993 ("vala" ,vala)
3994 ("xmllint" ,libxml2)))
3995 (inputs
3996 `(("gtk+" ,gtk+)
3997 ("json-glib" ,json-glib)
3998 ("libgee" ,libgee)
3999 ("librsvg" ,librsvg)
4000 ("qqwing" ,qqwing)))
4001 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4002 (synopsis "Japanese logic game")
4003 (description
4004 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4005 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4006 possible while still providing features that make playing difficult Sudoku
4007 more fun.")
4008 (license license:gpl2+)))
4009
4010 (define-public gnome-terminal
4011 (package
4012 (name "gnome-terminal")
4013 (version "3.34.2")
4014 (source
4015 (origin
4016 (method url-fetch)
4017 (uri (string-append "mirror://gnome/sources/" name "/"
4018 (version-major+minor version) "/"
4019 name "-" version ".tar.xz"))
4020 (sha256
4021 (base32
4022 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
4023 (build-system glib-or-gtk-build-system)
4024 (arguments
4025 '(#:configure-flags
4026 (list "--disable-migration" "--disable-search-provider"
4027 "--without-nautilus-extension")
4028 #:phases
4029 (modify-phases %standard-phases
4030 (add-before 'configure 'patch-/bin/true
4031 (lambda _
4032 (substitute* "configure"
4033 (("/bin/true") (which "true"))))))))
4034 (native-inputs
4035 `(("pkg-config" ,pkg-config)
4036 ("desktop-file-utils" ,desktop-file-utils)
4037 ("intltool" ,intltool)
4038 ("itstool" ,itstool)
4039 ("xmllint" ,libxml2)))
4040 (propagated-inputs
4041 `(("dconf" ,dconf)))
4042 (inputs
4043 `(("gtk+" ,gtk+)
4044 ("vte" ,vte)
4045 ("gnutls" ,gnutls)
4046 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4047 ("util-linux" ,util-linux "lib")
4048 ("vala" ,vala)))
4049 (home-page "https://wiki.gnome.org/Apps/Terminal")
4050 (synopsis "Terminal emulator")
4051 (description
4052 "GNOME Terminal is a terminal emulator application for accessing a
4053 UNIX shell environment which can be used to run programs available on
4054 your system.
4055
4056 It supports several profiles, multiple tabs and implements several
4057 keyboard shortcuts.")
4058 (license license:gpl3+)))
4059
4060 (define-public colord
4061 (package
4062 (name "colord")
4063 (version "1.4.4")
4064 (source
4065 (origin
4066 (method url-fetch)
4067 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
4068 "colord-" version ".tar.xz"))
4069 (sha256
4070 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
4071 (build-system meson-build-system)
4072 (arguments
4073 '(;; FIXME: One test fails:
4074 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4075 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4076 ;; application/x-zerosize
4077 #:tests? #f
4078 #:glib-or-gtk? #t
4079 #:configure-flags (list "-Dlocalstatedir=/var"
4080 ;; No dep on systemd.
4081 "-Dsystemd=false"
4082 ;; Wants to install to global completion dir;
4083 ;; punt.
4084 "-Dbash_completion=false"
4085 "-Ddaemon_user=colord"
4086 "-Dsane=true"
4087 "-Dvapi=true"
4088 ;; Requires spotread.
4089 "-Dargyllcms_sensor=false"
4090 ;; TODO: Requires docbook2x.
4091 "-Dman=false")
4092 #:phases
4093 (modify-phases %standard-phases
4094 (add-before 'configure 'patch-build-system
4095 (lambda* (#:key outputs #:allow-other-keys)
4096 (substitute* "rules/meson.build"
4097 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4098 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4099 #t))
4100 (add-before 'configure 'set-sqlite3-file-name
4101 (lambda* (#:key inputs #:allow-other-keys)
4102 ;; "colormgr dump" works by invoking the "sqlite3" command.
4103 ;; Record its absolute file name.
4104 (let ((sqlite (assoc-ref inputs "sqlite")))
4105 (substitute* "client/cd-util.c"
4106 (("\"sqlite3\"")
4107 (string-append "\"" sqlite "/bin/sqlite3\"")))
4108 #t))))))
4109 (native-inputs
4110 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4111 ("gettext" ,gettext-minimal)
4112 ("gobject-introspection" ,gobject-introspection)
4113 ("gtk-doc" ,gtk-doc)
4114 ("pkg-config" ,pkg-config)
4115 ("vala" ,vala)))
4116 (propagated-inputs
4117 ;; colord.pc refers to all these.
4118 `(("glib" ,glib)
4119 ("lcms" ,lcms)
4120 ("udev" ,eudev)))
4121 (inputs
4122 `(("dbus-glib" ,dbus-glib)
4123 ("gusb" ,gusb)
4124 ("libgudev" ,libgudev)
4125 ("libusb" ,libusb)
4126 ("polkit" ,polkit)
4127 ("python" ,python-wrapper)
4128 ("sqlite" ,sqlite)
4129 ("sane-backends" ,sane-backends)))
4130 (home-page "https://www.freedesktop.org/software/colord/")
4131 (synopsis "Color management service")
4132 (description "Colord is a system service that makes it easy to manage,
4133 install and generate color profiles to accurately color manage input and
4134 output devices.")
4135 (license license:gpl2+)))
4136
4137 (define-public geoclue
4138 (package
4139 (name "geoclue")
4140 (version "2.5.6")
4141 (source
4142 (origin
4143 (method url-fetch)
4144 (uri
4145 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4146 version "/geoclue-" version ".tar.bz2"))
4147 (sha256
4148 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
4149 (patches (search-patches "geoclue-config.patch"))))
4150 (build-system meson-build-system)
4151 (arguments
4152 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4153 (native-inputs
4154 `(("pkg-config" ,pkg-config)
4155 ("gobject-introspection" ,gobject-introspection)
4156 ("modem-manager" ,modem-manager)
4157 ("libnotify" ,libnotify)
4158 ("gtk-doc", gtk-doc)
4159 ("intltool" ,intltool)))
4160 (inputs
4161 `(("avahi" ,avahi)
4162 ("glib:bin" ,glib "bin")
4163 ("glib-networking" ,glib-networking)
4164 ("json-glib" ,json-glib)
4165 ("libsoup" ,libsoup)))
4166 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4167 (synopsis "Geolocation service")
4168 (description "Geoclue is a D-Bus service that provides location
4169 information. The primary goal of the Geoclue project is to make creating
4170 location-aware applications as simple as possible, while the secondary goal is
4171 to ensure that no application can access location information without explicit
4172 permission from user.")
4173 (license license:gpl2+)))
4174
4175 (define-public geocode-glib
4176 (package
4177 (name "geocode-glib")
4178 (version "3.26.1")
4179 (source (origin
4180 (method url-fetch)
4181 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4182 (version-major+minor version) "/"
4183 "geocode-glib-" version ".tar.xz"))
4184 (sha256
4185 (base32
4186 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4187 (build-system meson-build-system)
4188 (arguments
4189 `(#:phases
4190 (modify-phases %standard-phases
4191 ;; The tests require a bunch of locales.
4192 (add-before 'check 'set-locales
4193 (lambda* (#:key inputs #:allow-other-keys)
4194 (setenv "GUIX_LOCPATH"
4195 (string-append (assoc-ref inputs "glibc-locales")
4196 "/lib/locale"))
4197 #t)))))
4198 (native-inputs
4199 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4200 ("glibc-locales" ,glibc-locales) ; for tests
4201 ("gettext" ,gettext-minimal)
4202 ("gobject-introspection" ,gobject-introspection)
4203 ("gtk-doc" ,gtk-doc)
4204 ("pkg-config" ,pkg-config)
4205 ("json-glib" ,json-glib)))
4206 (propagated-inputs
4207 ;; geocode-glib-1.0.pc refers to GIO.
4208 `(("glib" ,glib)))
4209 (inputs
4210 `(("libsoup" ,libsoup)))
4211 (home-page "https://github.com/GNOME/geocode-glib/")
4212 (synopsis "Geocoding and reverse-geocoding library")
4213 (description
4214 "geocode-glib is a convenience library for geocoding (finding longitude,
4215 and latitude from an address) and reverse geocoding (finding an address from
4216 coordinates) using the Nominatim service. geocode-glib caches requests for
4217 faster results and to avoid unnecessary server load.")
4218 (license license:lgpl2.0+)))
4219
4220 (define-public upower
4221 (package
4222 (name "upower")
4223 (version "0.99.11")
4224 (source (origin
4225 (method url-fetch)
4226 (uri (string-append "https://upower.freedesktop.org/releases/"
4227 "upower-" version ".tar.xz"))
4228 (sha256
4229 (base32
4230 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4231 (patches (search-patches "upower-builddir.patch"))
4232 (modules '((guix build utils)))
4233 (snippet
4234 '(begin
4235 ;; Upstream commit
4236 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4237 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4238 ;; 'dbus-configuration-directory' in (gnu services dbus)
4239 ;; expects it in etc/. Thus, move it back to its previous
4240 ;; location.
4241 (substitute* "src/Makefile.in"
4242 (("^dbusconfdir =.*$")
4243 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4244 #t))))
4245 (build-system glib-or-gtk-build-system)
4246 (arguments
4247 '(#:phases
4248 (modify-phases %standard-phases
4249 (add-before 'check 'pre-check
4250 (lambda* (#:key inputs #:allow-other-keys)
4251 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4252 "/lib")))
4253 (setenv "LD_LIBRARY_PATH" umockdev))
4254 #t)))
4255 #:configure-flags (list "--localstatedir=/var"
4256 (string-append "--with-udevrulesdir="
4257 (assoc-ref %outputs "out")
4258 "/lib/udev/rules.d"))))
4259 (native-inputs
4260 `(("gobject-introspection" ,gobject-introspection)
4261 ("pkg-config" ,pkg-config)
4262 ("intltool" ,intltool)
4263 ("python" ,python)
4264
4265 ;; For tests.
4266 ("python-dbus" ,python-dbus)
4267 ("python-dbusmock" ,python-dbusmock)
4268 ("python-pygobject" ,python-pygobject)
4269 ("umockdev" ,umockdev)
4270
4271 ;; For man pages.
4272 ("libxslt" ,libxslt) ;for 'xsltproc'
4273 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4274 ("docbook-xsl" ,docbook-xsl)))
4275 (inputs
4276 `(("dbus-glib" ,dbus-glib)
4277 ("libgudev" ,libgudev)
4278 ("libusb" ,libusb)))
4279 (propagated-inputs
4280 ;; In Requires of upower-glib.pc.
4281 `(("glib" ,glib)))
4282 (home-page "https://upower.freedesktop.org/")
4283 (synopsis "System daemon for managing power devices")
4284 (description
4285 "UPower is an abstraction for enumerating power devices,
4286 listening to device events and querying history and statistics. Any
4287 application or service on the system can access the org.freedesktop.UPower
4288 service via the system message bus.")
4289 (license license:gpl2+)))
4290
4291 (define-public libgweather
4292 (package
4293 (name "libgweather")
4294 (version "3.34.0")
4295 (source (origin
4296 (method url-fetch)
4297 (uri (string-append "mirror://gnome/sources/" name "/"
4298 (version-major+minor version) "/"
4299 name "-" version ".tar.xz"))
4300 (sha256
4301 (base32
4302 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
4303 (build-system meson-build-system)
4304 (arguments
4305 `(#:tests? #f ; one of two tests requires network access
4306 #:configure-flags
4307 `(,(string-append "-Dzoneinfo_dir="
4308 (assoc-ref %build-inputs "tzdata")
4309 "/share/zoneinfo"))))
4310 (native-inputs
4311 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4312 ("gobject-introspection" ,gobject-introspection)
4313 ("pkg-config" ,pkg-config)
4314 ("vala" ,vala)
4315 ("intltool" ,intltool)))
4316 (propagated-inputs
4317 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4318 ;; libsoup.
4319 `(("gtk+" ,gtk+)
4320 ("gdk-pixbuf" ,gdk-pixbuf)
4321 ("libxml2" ,libxml2)
4322 ("libsoup" ,libsoup)
4323 ("geocode-glib" ,geocode-glib)))
4324 (inputs
4325 `(("tzdata" ,tzdata)))
4326 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4327 (synopsis "Location, time zone, and weather library for GNOME")
4328 (description
4329 "libgweather is a library to access weather information from online
4330 services for numerous locations.")
4331 (license license:gpl2+)))
4332
4333 (define-public gnome-settings-daemon
4334 (package
4335 (name "gnome-settings-daemon")
4336 (version "3.34.1")
4337 (source
4338 (origin
4339 (method url-fetch)
4340 (uri (string-append "mirror://gnome/sources/" name "/"
4341 (version-major+minor version) "/"
4342 name "-" version ".tar.xz"))
4343 (sha256
4344 (base32
4345 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
4346 (build-system meson-build-system)
4347 (arguments
4348 `(#:glib-or-gtk? #t
4349 #:configure-flags
4350 (list (string-append "-Dudev_dir="
4351 (assoc-ref %outputs "out")
4352 "/lib/udev/rules.d/")
4353 "-Dsystemd=false"
4354 ;; Otherwise, the RUNPATH will lack the final path component.
4355 (string-append "-Dc_link_args=-Wl,-rpath="
4356 (assoc-ref %outputs "out")
4357 "/lib/gnome-settings-daemon-3.0"))
4358 ;; Color management test can't reach the colord system service.
4359 #:tests? #f))
4360 (native-inputs
4361 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4362 ("pkg-config" ,pkg-config)
4363 ("intltool" ,intltool)
4364 ("xsltproc" ,libxslt)
4365 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4366 ("docbook-xml" ,docbook-xml-4.2)
4367 ("docbook-xsl" ,docbook-xsl)))
4368 (inputs
4369 `(("alsa-lib" ,alsa-lib)
4370 ("colord" ,colord)
4371 ("libgudev" ,libgudev)
4372 ("upower" ,upower)
4373 ("polkit" ,polkit)
4374 ("pulseaudio" ,pulseaudio)
4375 ("libcanberra" ,libcanberra)
4376 ("libx11" ,libx11)
4377 ("libxtst" ,libxtst)
4378 ("lcms" ,lcms)
4379 ("libnotify" ,libnotify)
4380 ("geoclue" ,geoclue)
4381 ("geocode-glib" ,geocode-glib)
4382 ("libgweather" ,libgweather)
4383 ("gnome-desktop" ,gnome-desktop)
4384 ("nss" ,nss)
4385 ("cups" ,cups)
4386 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4387 ("libwacom" ,libwacom)
4388 ("librsvg" ,librsvg)
4389 ("xf86-input-wacom" ,xf86-input-wacom)
4390 ("wayland" ,wayland)
4391 ("network-manager" ,network-manager)
4392 ("gcr" ,gcr)
4393 ("modem-manager" ,modem-manager)))
4394 (home-page "https://www.gnome.org")
4395 (synopsis "GNOME settings daemon")
4396 (description
4397 "This package contains the daemon responsible for setting the various
4398 parameters of a GNOME session and the applications that run under it. It
4399 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4400 settings, themes, mouse settings, and startup of other daemons.")
4401 (license license:gpl2+)))
4402
4403 (define-public totem-pl-parser
4404 (package
4405 (name "totem-pl-parser")
4406 (version "3.26.3")
4407 (source (origin
4408 (method url-fetch)
4409 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4410 (version-major+minor version) "/"
4411 "totem-pl-parser-" version ".tar.xz"))
4412 (sha256
4413 (base32
4414 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4415 (build-system meson-build-system)
4416 (arguments
4417 ;; FIXME: Tests require gvfs.
4418 `(#:tests? #f))
4419 (native-inputs
4420 `(("intltool" ,intltool)
4421 ("glib" ,glib "bin")
4422 ("gobject-introspection" ,gobject-introspection)
4423 ("pkg-config" ,pkg-config)))
4424 (propagated-inputs
4425 `(("glib" ,glib)
4426 ("gmime" ,gmime)
4427 ("libarchive" ,libarchive)
4428 ("libgcrypt" ,libgcrypt)
4429 ("libxml2" ,libxml2)))
4430 (inputs
4431 `(("libsoup" ,libsoup)))
4432 (home-page "https://projects.gnome.org/totem")
4433 (synopsis "Library to parse and save media playlists for GNOME")
4434 (description "Totem-pl-parser is a GObjects-based library to parse and save
4435 playlists in a variety of formats.")
4436 (license license:lgpl2.0+)))
4437
4438 (define-public aisleriot
4439 (package
4440 (name "aisleriot")
4441 (version "3.22.9")
4442 (source (origin
4443 (method url-fetch)
4444 (uri (string-append "mirror://gnome/sources/aisleriot/"
4445 (version-major+minor version) "/"
4446 "aisleriot-" version ".tar.xz"))
4447 (sha256
4448 (base32
4449 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4450 (build-system glib-or-gtk-build-system)
4451 (arguments
4452 '(#:configure-flags
4453 '("--with-platform=gtk-only"
4454 "--with-card-theme-formats=svg")))
4455 (native-inputs
4456 `(("desktop-file-utils" ,desktop-file-utils)
4457 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4458 ("intltool" ,intltool)
4459 ("itstool" ,itstool)
4460 ("pkg-config" ,pkg-config)
4461 ("xmllint" ,libxml2)))
4462 (inputs
4463 `(("gtk+" ,gtk+)
4464 ("guile" ,guile-2.2)
4465 ("libcanberra" ,libcanberra)
4466 ("librsvg" ,librsvg)))
4467 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4468 (synopsis "Solitaire card games")
4469 (description
4470 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4471 which are easy to play with the aid of a mouse.")
4472 (license license:gpl3+)))
4473
4474 (define-public amtk
4475 (package
4476 (name "amtk")
4477 (version "5.0.2")
4478 (source (origin
4479 (method url-fetch)
4480 (uri (string-append "mirror://gnome/sources/amtk/"
4481 (version-major+minor version) "/"
4482 "amtk-" version ".tar.xz"))
4483 (sha256
4484 (base32
4485 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
4486 (build-system gnu-build-system)
4487 (arguments
4488 '(#:configure-flags '("--enable-gtk-doc")))
4489 (native-inputs
4490 `(("gobject-introspection" ,gobject-introspection)
4491 ("glib:bin" ,glib "bin") ; for glib-mkenums
4492 ("gtk-doc" ,gtk-doc)
4493 ("pkg-config" ,pkg-config)))
4494 (inputs
4495 `(("glib" ,glib)
4496 ("gtk+" ,gtk+)))
4497 (home-page "https://wiki.gnome.org/Projects/Amtk")
4498 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4499 (description
4500 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4501 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4502 both a traditional UI or a modern UI with a GtkHeaderBar.")
4503 (license license:lgpl2.1+)))
4504
4505 (define-public devhelp
4506 (package
4507 (name "devhelp")
4508 (version "3.34.0")
4509 (source (origin
4510 (method url-fetch)
4511 (uri (string-append "mirror://gnome/sources/" name "/"
4512 (version-major+minor version) "/"
4513 name "-" version ".tar.xz"))
4514 (sha256
4515 (base32
4516 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
4517 (build-system meson-build-system)
4518 (arguments
4519 '(#:glib-or-gtk? #t
4520 #:phases
4521 (modify-phases %standard-phases
4522 (add-after 'unpack 'skip-gtk-update-icon-cache
4523 ;; Don't create 'icon-theme.cache'.
4524 (lambda _
4525 (substitute* "meson_post_install.py"
4526 (("gtk-update-icon-cache") "true"))
4527 #t)))))
4528 (native-inputs
4529 `(("intltool" ,intltool)
4530 ("itstool" ,itstool)
4531 ("gobject-introspection" ,gobject-introspection)
4532 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4533 ("pkg-config" ,pkg-config)))
4534 (inputs
4535 `(("amtk" ,amtk)
4536 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4537 ("webkitgtk" ,webkitgtk)))
4538 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4539 (synopsis "API documentation browser for GNOME")
4540 (description
4541 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4542 natively with GTK-Doc (the API reference system developed for GTK+ and used
4543 throughout GNOME for API documentation).")
4544 (license license:gpl2+)))
4545
4546 (define-public cogl
4547 (package
4548 (name "cogl")
4549 (version "1.22.6")
4550 (source
4551 (origin
4552 (method url-fetch)
4553 (uri (string-append "mirror://gnome/sources/cogl/"
4554 (version-major+minor version) "/"
4555 "cogl-" version ".tar.xz"))
4556 (sha256
4557 (base32 "0x8v4n61q89qy27v824bqswpz6bmn801403w2q3pa1lcwk9ln4vd"))))
4558 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4559 ;; cogl, corresponding changes may be appropriate in mutter as well.
4560 (build-system gnu-build-system)
4561 (native-inputs
4562 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4563 ("gobject-introspection" ,gobject-introspection)
4564 ("xorg-server" ,xorg-server-for-tests)
4565 ("pkg-config" ,pkg-config)))
4566 (propagated-inputs
4567 `(("glib" ,glib)
4568 ("gdk-pixbuf" ,gdk-pixbuf)
4569 ("libx11" ,libx11)
4570 ("libxext" ,libxext)
4571 ("libxfixes" ,libxfixes)
4572 ("libxdamage" ,libxdamage)
4573 ("libxcomposite" ,libxcomposite)
4574 ("libxrandr" ,libxrandr)))
4575 (inputs
4576 `(("mesa" ,mesa)
4577 ("cairo" ,cairo)
4578 ("pango" ,pango)
4579 ("gstreamer" ,gstreamer)
4580 ("gst-plugins-base" ,gst-plugins-base)
4581 ("wayland" ,wayland)))
4582 (arguments
4583 `(#:disallowed-references (,xorg-server-for-tests)
4584 #:configure-flags (list "--enable-cogl-gst"
4585 "--enable-wayland-egl-platform"
4586 "--enable-wayland-egl-server"
4587
4588 ;; Arrange to pass an absolute file name to
4589 ;; dlopen for libGL.so.
4590 (string-append "--with-gl-libname="
4591 (assoc-ref %build-inputs "mesa")
4592 "/lib/libGL.so"))
4593 #:phases
4594 (modify-phases %standard-phases
4595 (add-before 'check 'start-xorg-server
4596 (lambda* (#:key tests? inputs #:allow-other-keys)
4597 (if tests?
4598 (begin
4599 ;; The test suite requires a running X server.
4600 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4601 (assoc-ref inputs "xorg-server")))
4602 (setenv "DISPLAY" ":1")
4603 #t)
4604 (format #t "test suite not run~%"))
4605 #t)))))
4606 (home-page "https://www.cogl3d.org")
4607 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4608 (description
4609 "Cogl is a small library for using 3D graphics hardware to draw pretty
4610 pictures. The API departs from the flat state machine style of OpenGL and is
4611 designed to make it easy to write orthogonal components that can render
4612 without stepping on each others toes.")
4613 (license (list license:expat ; most of the code
4614 license:bsd-3 ; cogl/cogl-point-in-poly.c
4615 license:sgifreeb2.0 ; cogl-path/tesselator/
4616 license:asl2.0)))) ; examples/android/
4617
4618 (define-public clutter
4619 (package
4620 (name "clutter")
4621 (version "1.26.2")
4622 (source
4623 (origin
4624 (method url-fetch)
4625 (uri (string-append "mirror://gnome/sources/" name "/"
4626 (version-major+minor version) "/"
4627 name "-" version ".tar.xz"))
4628 (sha256
4629 (base32
4630 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4631 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4632 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4633 (build-system gnu-build-system)
4634 (outputs '("out"
4635 "doc")) ;9 MiB of gtk-doc HTML pages
4636 (native-inputs
4637 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4638 ("gobject-introspection" ,gobject-introspection)
4639 ("pkg-config" ,pkg-config)
4640 ("xsltproc" ,libxslt)))
4641 (propagated-inputs
4642 `(("cogl" ,cogl)
4643 ("cairo" ,cairo)
4644 ("atk" ,atk)
4645 ("gtk+" ,gtk+)
4646 ("json-glib" ,json-glib)
4647 ("glib" ,glib)
4648 ("libxcomposite" ,libxcomposite)
4649 ("libxdamage" ,libxdamage)
4650 ("libxext" ,libxext)
4651 ("xinput" ,xinput)))
4652 (inputs
4653 `(("libxkbcommon" ,libxkbcommon)
4654 ("udev" ,eudev)))
4655 (arguments
4656 `(#:configure-flags (list "--enable-x11-backend=yes"
4657
4658 ;; This produces share/doc/{clutter,cally}.
4659 (string-append "--with-html-dir="
4660 (assoc-ref %outputs "doc")
4661 "/share/doc"))
4662 ;; XXX FIXME: Get test suite working. It would probably fail in the
4663 ;; same way the cogl tests fail, since clutter is based on cogl.
4664 #:tests? #f))
4665 (home-page "http://www.clutter-project.org")
4666 (synopsis "OpenGL-based interactive canvas library")
4667 (description
4668 "Clutter is an OpenGL-based interactive canvas library, designed for
4669 creating fast, mainly 2D single window applications such as media box UIs,
4670 presentations, kiosk style applications and so on.")
4671 (license license:lgpl2.0+)))
4672
4673 (define-public clutter-gtk
4674 (package
4675 (name "clutter-gtk")
4676 (version "1.8.4")
4677 (source
4678 (origin
4679 (method url-fetch)
4680 (uri (string-append "mirror://gnome/sources/" name "/"
4681 (version-major+minor version) "/"
4682 name "-" version ".tar.xz"))
4683 (sha256
4684 (base32
4685 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4686 (build-system gnu-build-system)
4687 (native-inputs
4688 `(("pkg-config" ,pkg-config)
4689 ("gobject-introspection" ,gobject-introspection)))
4690 (propagated-inputs
4691 ;; clutter-gtk.pc refers to all these.
4692 `(("clutter" ,clutter)
4693 ("gtk+" ,gtk+)))
4694 (home-page "http://www.clutter-project.org")
4695 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4696 (description
4697 "Clutter is an OpenGL-based interactive canvas library, designed for
4698 creating fast, mainly 2D single window applications such as media box UIs,
4699 presentations, kiosk style applications and so on.")
4700 (license license:lgpl2.0+)))
4701
4702 (define-public clutter-gst
4703 (package
4704 (name "clutter-gst")
4705 (version "3.0.27")
4706 (source
4707 (origin
4708 (method url-fetch)
4709 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4710 (version-major+minor version) "/"
4711 "clutter-gst-" version ".tar.xz"))
4712 (sha256
4713 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4714 (build-system gnu-build-system)
4715 (native-inputs
4716 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4717 ("pkg-config" ,pkg-config)
4718 ("gobject-introspection" ,gobject-introspection)))
4719 (inputs
4720 `(("clutter" ,clutter)
4721 ("gstreamer" ,gstreamer)
4722 ("gst-plugins-base" ,gst-plugins-base)))
4723 (home-page "http://www.clutter-project.org")
4724 (synopsis "Integration library for using GStreamer with Clutter")
4725 (description
4726 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4727 It provides a GStreamer sink to upload frames to GL and an actor that
4728 implements the ClutterGstPlayer interface using playbin. Clutter is an
4729 OpenGL-based interactive canvas library.")
4730 (license license:lgpl2.0+)))
4731
4732 (define-public libchamplain
4733 (package
4734 (name "libchamplain")
4735 (version "0.12.16")
4736 (source (origin
4737 (method url-fetch)
4738 (uri (string-append
4739 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4740 version ".tar.xz"))
4741 (sha256
4742 (base32
4743 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4744 (build-system gnu-build-system)
4745 (arguments '(#:configure-flags '("--enable-vala")))
4746 (native-inputs
4747 `(("gobject-introspection" ,gobject-introspection)
4748 ("pkg-config" ,pkg-config)
4749 ("vala" ,vala)))
4750 (propagated-inputs
4751 `(("libsoup" ,libsoup)
4752 ("sqlite" ,sqlite)
4753 ("clutter" ,clutter)
4754 ("clutter-gtk" ,clutter-gtk)
4755 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4756 ("cairo" ,cairo)
4757 ("gtk+3" ,gtk+)
4758 ("glib" ,glib)))
4759 (home-page "https://projects.gnome.org/libchamplain/")
4760 (synopsis "C library providing a ClutterActor to display maps")
4761 (description
4762 "libchamplain is a C library providing a ClutterActor to display maps.
4763 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4764 and Perl bindings are also available. It supports numerous free map sources
4765 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4766 (license license:lgpl2.1+)))
4767
4768 (define-public gom
4769 (package
4770 (name "gom")
4771 (version "0.3.2")
4772 (source
4773 (origin
4774 (method url-fetch)
4775 (uri (string-append "mirror://gnome/sources/gom/"
4776 (version-major+minor version) "/"
4777 "gom-" version ".tar.xz"))
4778 (sha256
4779 (base32
4780 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4781 (build-system gnu-build-system)
4782 (native-inputs
4783 `(("intltool" ,intltool)
4784 ("pkg-config" ,pkg-config)
4785 ("gobject-introspection" ,gobject-introspection)))
4786 (inputs
4787 `(("glib" ,glib)
4788 ("gdk-pixbuf" ,gdk-pixbuf)
4789 ("sqlite" ,sqlite)))
4790 ;; XXX TODO: Figure out how to run the test suite.
4791 (arguments `(#:tests? #f))
4792 (home-page "https://wiki.gnome.org/Projects/Gom")
4793 (synopsis "Object mapper from GObjects to SQLite")
4794 (description
4795 "Gom provides an object mapper from GObjects to SQLite. It helps you
4796 write applications that need to store structured data as well as make complex
4797 queries upon that data.")
4798 (license license:lgpl2.1+)))
4799
4800 (define-public libgnome-games-support
4801 (package
4802 (name "libgnome-games-support")
4803 (version "1.4.4")
4804 (source (origin
4805 (method url-fetch)
4806 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4807 (version-major+minor version) "/"
4808 "libgnome-games-support-" version ".tar.xz"))
4809 (sha256
4810 (base32
4811 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4812 (build-system gnu-build-system)
4813 (arguments
4814 '(#:phases
4815 (modify-phases %standard-phases
4816 (add-before 'check 'pre-check
4817 (lambda _
4818 ;; Tests require a writable HOME.
4819 (setenv "HOME" (getcwd))
4820 #t)))))
4821 (native-inputs
4822 `(("intltool" ,intltool)
4823 ("pkg-config" ,pkg-config)
4824 ("vala" ,vala)))
4825 (propagated-inputs
4826 ;; Required by libgnome-games-support-1.0.pc
4827 `(("gtk+" ,gtk+)
4828 ("libgee" ,libgee)))
4829 (home-page "https://www.gnome.org/")
4830 (synopsis "Useful functionality shared among GNOME games")
4831 (description
4832 "libgnome-games-support is a small library intended for internal use by
4833 GNOME Games, but it may be used by others.")
4834 (license license:lgpl3+)))
4835
4836 (define-public gnome-klotski
4837 (package
4838 (name "gnome-klotski")
4839 (version "3.34.0")
4840 (source (origin
4841 (method url-fetch)
4842 (uri (string-append "mirror://gnome/sources/" name "/"
4843 (version-major+minor version) "/"
4844 name "-" version ".tar.xz"))
4845 (sha256
4846 (base32
4847 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
4848 (build-system meson-build-system)
4849 (arguments
4850 '(#:glib-or-gtk? #t
4851 #:phases
4852 (modify-phases %standard-phases
4853 (add-after 'unpack 'skip-gtk-update-icon-cache
4854 ;; Don't create 'icon-theme.cache'.
4855 (lambda _
4856 (substitute* "build-aux/meson_post_install.py"
4857 (("gtk-update-icon-cache") (which "true")))
4858 #t)))))
4859 (native-inputs
4860 `(("desktop-file-utils" ,desktop-file-utils)
4861 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4862 ("intltool" ,intltool)
4863 ("itstool" ,itstool)
4864 ("pkg-config" ,pkg-config)
4865 ("vala" ,vala)
4866 ("xmllint" ,libxml2)))
4867 (inputs
4868 `(("gtk+" ,gtk+)
4869 ("libgnome-games-support" ,libgnome-games-support)
4870 ("librsvg" ,librsvg)))
4871 (home-page "https://wiki.gnome.org/Apps/Klotski")
4872 (synopsis "Sliding block puzzles")
4873 (description
4874 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4875 the patterned block to the area bordered by green markers. To do so, you will
4876 need to slide other blocks out of the way. Complete each puzzle in as few moves
4877 as possible!")
4878 (license license:gpl2+)))
4879
4880 (define-public grilo
4881 (package
4882 (name "grilo")
4883 (version "0.3.10")
4884 (source
4885 (origin
4886 (method url-fetch)
4887 (uri (string-append "mirror://gnome/sources/" name "/"
4888 (version-major+minor version) "/"
4889 name "-" version ".tar.xz"))
4890 (sha256
4891 (base32
4892 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4893 (build-system meson-build-system)
4894 (native-inputs
4895 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4896 ("intltool" ,intltool)
4897 ("pkg-config" ,pkg-config)
4898 ("gobject-introspection" ,gobject-introspection)
4899 ("gtk-doc" ,gtk-doc)
4900 ("vala" ,vala)))
4901 (inputs
4902 `(("cyrus-sasl" ,cyrus-sasl)
4903 ("glib" ,glib)
4904 ("gtk+" ,gtk+)
4905 ("libxml2" ,libxml2)
4906 ("liboauth" ,liboauth)
4907 ("libsoup" ,libsoup)
4908 ("totem-pl-parser" ,totem-pl-parser)))
4909 (native-search-paths
4910 (list (search-path-specification
4911 (variable "GRL_PLUGIN_PATH")
4912 (files (list (string-append "lib/grilo-"
4913 (version-major+minor version)))))))
4914 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4915 (synopsis "Framework for discovering and browsing media")
4916 (description
4917 "Grilo is a framework focused on making media discovery and browsing easy
4918 for application developers.")
4919 (license license:lgpl2.1+)))
4920
4921 (define-public grilo-plugins
4922 (package
4923 (name "grilo-plugins")
4924 (version "0.3.10")
4925 (source
4926 (origin
4927 (method url-fetch)
4928 (uri (string-append "mirror://gnome/sources/" name "/"
4929 (version-major+minor version) "/"
4930 name "-" version ".tar.xz"))
4931 (sha256
4932 (base32
4933 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4934 (build-system meson-build-system)
4935 (native-inputs
4936 `(("gettext" ,gettext-minimal)
4937 ("glib:bin" ,glib "bin")
4938 ("gtk+:bin" ,gtk+ "bin")
4939 ("itstool" ,itstool)
4940 ("pkg-config" ,pkg-config)))
4941 ;; TODO: ahavi, gstreamer
4942 (inputs
4943 `(("grilo" ,grilo)
4944 ;("gmime" ,gmime) ; unused
4945 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4946 ("gom" ,gom)
4947 ;("gssdp" ,gssdp) ; unused
4948 ;("gupnp" ,gupnp) ; unused
4949 ;("gupnp-av" ,gupnp-av) ; unused
4950 ("json-glib" ,json-glib)
4951 ("avahi" ,avahi)
4952 ("libgdata" ,libgdata)
4953 ("libmediaart" ,libmediaart)
4954 ;("librest" ,rest) ; unused
4955 ("libsoup" ,libsoup)
4956 ("totam-pl-parser" ,totem-pl-parser)
4957 ("tracker" ,tracker))) ; unused because it's too old
4958 (arguments
4959 `(#:glib-or-gtk? #t
4960 ;;Disable lua-factory as it needs missing dependencies
4961 #:configure-flags '("-Denable-lua-factory=no")))
4962 (home-page "https://live.gnome.org/Grilo")
4963 (synopsis "Plugins for the Grilo media discovery library")
4964 (description
4965 "Grilo is a framework focused on making media discovery and browsing easy
4966 for application developers. This package provides plugins for common media
4967 discovery protocols.")
4968 (license license:lgpl2.1+)))
4969
4970 (define-public totem
4971 (package
4972 (name "totem")
4973 (version "3.34.1")
4974 (source
4975 (origin
4976 (method url-fetch)
4977 (uri (string-append "mirror://gnome/sources/totem/"
4978 (version-major+minor version) "/"
4979 "totem-" version ".tar.xz"))
4980 (sha256
4981 (base32
4982 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
4983 (build-system meson-build-system)
4984 (native-inputs
4985 `(("pkg-config" ,pkg-config)
4986 ("desktop-file-utils" ,desktop-file-utils)
4987 ("gobject-introspection" ,gobject-introspection)
4988 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4989 ("intltool" ,intltool)
4990 ("itstool" ,itstool)
4991 ("xmllint" ,libxml2)
4992 ("xorg-server" ,xorg-server-for-tests)))
4993 (propagated-inputs
4994 `(("dconf" ,dconf)))
4995 (inputs
4996 `(("gtk+" ,gtk+)
4997 ("gdk-pixbuf" ,gdk-pixbuf)
4998 ("atk" ,atk)
4999 ("cairo" ,cairo)
5000 ("dbus-glib" ,dbus-glib)
5001 ("clutter" ,clutter)
5002 ("clutter-gtk" ,clutter-gtk)
5003 ("clutter-gst" ,clutter-gst)
5004 ("xorgproto" ,xorgproto)
5005 ("libxxf86vm" ,libxxf86vm)
5006 ("libxtst" ,libxtst)
5007 ("libxrandr" ,libxrandr)
5008 ("libxml2" ,libxml2)
5009 ("libsoup" ,libsoup)
5010 ("libpeas" ,libpeas)
5011 ("librsvg" ,librsvg)
5012 ("lirc" ,lirc)
5013 ("gnome-desktop" ,gnome-desktop)
5014 ("gstreamer" ,gstreamer)
5015 ("gst-plugins-base" ,gst-plugins-base)
5016 ("gst-plugins-good" ,gst-plugins-good)
5017 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5018 ("adwaita-icon-theme" ,adwaita-icon-theme)
5019 ("python" ,python)
5020 ("python-pygobject" ,python-pygobject)
5021 ("totem-pl-parser" ,totem-pl-parser)
5022 ("grilo" ,grilo)
5023 ("grilo-plugins" ,grilo-plugins)
5024 ("vala" ,vala)))
5025 (arguments
5026 `(#:glib-or-gtk? #t
5027
5028 ;; Disable automatic GStreamer plugin installation via PackageKit and
5029 ;; all that.
5030 #:configure-flags '("-D" "enable-easy-codec-installation=no"
5031
5032 ;; Do not build .a files for the plugins, it's
5033 ;; completely useless. This saves 2 MiB.
5034 "--default-library" "shared")
5035 #:phases
5036 (modify-phases %standard-phases
5037 (add-after 'unpack 'skip-gtk-update-icon-cache
5038 ;; Don't create 'icon-theme.cache'.
5039 (lambda _
5040 (substitute* "meson_post_install.py"
5041 (("gtk-update-icon-cache") "true"))
5042 #t))
5043 (add-before
5044 'install 'disable-cache-generation
5045 (lambda _
5046 (setenv "DESTDIR" "/")
5047 #t))
5048 (add-before
5049 'check 'pre-check
5050 (lambda _
5051 ;; Tests require a running X server.
5052 (system "Xvfb :1 &")
5053 (setenv "DISPLAY" ":1")
5054 #t))
5055 (add-after
5056 'install 'wrap-totem
5057 (lambda* (#:key inputs outputs #:allow-other-keys)
5058 (let ((out (assoc-ref outputs "out"))
5059 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5060 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5061 (wrap-program (string-append out "/bin/totem")
5062 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5063 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5064 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5065 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
5066 #t)))))
5067 (home-page "https://wiki.gnome.org/Apps/Videos")
5068 (synopsis "Simple media player for GNOME based on GStreamer")
5069 (description "Totem is a simple yet featureful media player for GNOME
5070 which can read a large number of file formats.")
5071 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5072 ;; to be used and distributed together with GStreamer and Totem. See
5073 ;; file://COPYING in the source distribution for details.
5074 (license license:gpl2+)))
5075
5076 (define-public rhythmbox
5077 (package
5078 (name "rhythmbox")
5079 (version "3.4.4")
5080 (source (origin
5081 (method url-fetch)
5082 (uri (string-append "mirror://gnome/sources/rhythmbox/"
5083 (version-major+minor version) "/"
5084 "rhythmbox-" version ".tar.xz"))
5085 (sha256
5086 (base32
5087 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
5088 (build-system glib-or-gtk-build-system)
5089 (arguments
5090 `(#:configure-flags
5091 (list "--enable-lirc"
5092 "--enable-python"
5093 "--enable-vala"
5094 "--with-brasero"
5095 "--with-gudev"
5096 "--with-libsecret")
5097 #:phases
5098 (modify-phases %standard-phases
5099 (add-after
5100 'install 'wrap-rhythmbox
5101 (lambda* (#:key inputs outputs #:allow-other-keys)
5102 (let ((out (assoc-ref outputs "out"))
5103 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5104 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5105 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5106 (python-path (getenv "PYTHONPATH")))
5107 (wrap-program (string-append out "/bin/rhythmbox")
5108 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5109 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5110 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5111 `("PYTHONPATH" ":" prefix (,python-path))))
5112 #t)))))
5113 (propagated-inputs
5114 `(("dconf" ,dconf)))
5115 (native-inputs
5116 `(("itstool" ,itstool)
5117 ("intltool" ,intltool)
5118 ("glib" ,glib "bin")
5119 ("gobject-introspection" ,gobject-introspection)
5120 ("desktop-file-utils" ,desktop-file-utils)
5121 ("pkg-config" ,pkg-config)
5122 ("xmllint" ,libxml2)))
5123 (inputs
5124 `(("json-glib" ,json-glib)
5125 ("tdb" ,tdb)
5126 ("gnome-desktop" ,gnome-desktop)
5127 ("python" ,python)
5128 ("python-pygobject" ,python2-pygobject)
5129 ("vala" ,vala)
5130 ("gmime" ,gmime)
5131 ("adwaita-icon-theme" ,adwaita-icon-theme)
5132 ("grilo" ,grilo)
5133 ("grilo-plugins" ,grilo-plugins)
5134 ("gstreamer" ,gstreamer)
5135 ("gst-plugins-base" ,gst-plugins-base)
5136 ("gst-plugins-good" ,gst-plugins-good)
5137 ("totem-pl-parser" ,totem-pl-parser)
5138 ("libgudev" ,libgudev)
5139 ;;("libmtp" ,libmtp) FIXME: Not detected
5140 ("libsecret" ,libsecret)
5141 ("libsoup" ,libsoup)
5142 ("libnotify" ,libnotify)
5143 ("libpeas" ,libpeas)
5144 ("lirc" ,lirc)
5145 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5146 ;;("clutter" ,clutter)
5147 ;;("clutter-gtk" ,clutter-gtk)
5148 ;;("clutter-gst" ,clutter-gst)
5149 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5150 ("atk" ,atk)
5151 ("pango" ,pango)
5152 ("gtk+" ,gtk+)
5153 ;; TODO:
5154 ;; * libgpod
5155 ;; * mx
5156 ("brasero" ,brasero)))
5157 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5158 (synopsis "Music player for GNOME")
5159 (description "Rhythmbox is a music playing application for GNOME. It
5160 supports playlists, song ratings, and any codecs installed through gstreamer.")
5161 (license license:gpl2+)))
5162
5163 (define-public eog
5164 (package
5165 (name "eog")
5166 (version "3.34.1")
5167 (source (origin
5168 (method url-fetch)
5169 (uri (string-append "mirror://gnome/sources/" name "/"
5170 (version-major+minor version) "/"
5171 name "-" version ".tar.xz"))
5172 (sha256
5173 (base32
5174 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5175 (build-system meson-build-system)
5176 (arguments
5177 `(#:configure-flags
5178 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5179 (list (string-append "-Dc_link_args=-Wl,-rpath="
5180 (assoc-ref %outputs "out") "/lib/eog"))
5181 #:phases
5182 (modify-phases %standard-phases
5183 (add-after 'unpack 'skip-gtk-update-icon-cache
5184 ;; Don't create 'icon-theme.cache'.
5185 (lambda _
5186 (substitute* "meson_post_install.py"
5187 (("gtk-update-icon-cache") "true"))
5188 #t))
5189 (add-after 'install 'wrap-eog
5190 (lambda* (#:key outputs #:allow-other-keys)
5191 (let ((out (assoc-ref outputs "out"))
5192 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5193 (wrap-program (string-append out "/bin/eog")
5194 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5195 #t)))))
5196 (propagated-inputs
5197 `(("dconf" ,dconf)))
5198 (native-inputs
5199 `(("intltool" ,intltool)
5200 ("itstool" ,itstool)
5201 ("glib" ,glib "bin")
5202 ("gobject-introspection" ,gobject-introspection)
5203 ("pkg-config" ,pkg-config)
5204 ("xmllint" ,libxml2)))
5205 (inputs
5206 `(("gnome-desktop" ,gnome-desktop)
5207 ("shared-mime-info" ,shared-mime-info)
5208 ("adwaita-icon-theme" ,adwaita-icon-theme)
5209 ("exempi" ,exempi)
5210 ("lcms" ,lcms)
5211 ("libexif" ,libexif)
5212 ("libpeas" ,libpeas)
5213 ("libjpeg" ,libjpeg-turbo)
5214 ("librsvg" ,librsvg-next)
5215 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5216 ("gtk+" ,gtk+)))
5217 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5218 (synopsis "GNOME image viewer")
5219 (description "Eye of GNOME is the GNOME image viewer. It
5220 supports image conversion, rotation, and slideshows.")
5221 (license license:gpl2+)))
5222
5223 (define-public eog-plugins
5224 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5225 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5226 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5227 ;; 'XDG_DATA_DIRS' appropriately set.
5228 (package
5229 (name "eog-plugins")
5230 (version "3.26.4")
5231 (source (origin
5232 (method url-fetch)
5233 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5234 (version-major+minor version) "/"
5235 "eog-plugins-" version ".tar.xz"))
5236 (sha256
5237 (base32
5238 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5239 (build-system gnu-build-system)
5240 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5241 (synopsis "Extensions for the Eye of GNOME image viewer")
5242 (native-inputs
5243 `(("pkg-config" ,pkg-config)
5244 ("gettext" ,gettext-minimal)))
5245 (inputs
5246 `(("eog" ,eog)
5247 ("glib" ,glib)
5248 ("gtk+" ,gtk+)
5249 ("libpeas" ,libpeas)
5250 ("libexif" ,libexif)
5251 ("libchamplain" ,libchamplain)))
5252 (description
5253 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5254 notably:
5255
5256 @itemize
5257 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5258 @item @dfn{Map}, which displays a map of where the picture was taken on the
5259 side panel;
5260 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5261 @end itemize\n")
5262
5263 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5264 ;; long suspicious byte stream that goes to a
5265 ;; ".gresource.eog_postasa_plugin" ELF section.
5266 (license license:gpl2+)))
5267
5268 (define-public libgudev
5269 (package
5270 (name "libgudev")
5271 (version "232")
5272 (source (origin
5273 (method url-fetch)
5274 (uri (string-append "mirror://gnome/sources/" name "/"
5275 version "/" name "-" version ".tar.xz"))
5276 (sha256
5277 (base32
5278 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5279 (build-system gnu-build-system)
5280 (arguments
5281 '(#:configure-flags
5282 ;; umockdev depends on libgudev.
5283 (list "--disable-umockdev")))
5284 (native-inputs
5285 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5286 ("gobject-introspection" ,gobject-introspection)
5287 ("pkg-config" ,pkg-config)))
5288 (propagated-inputs
5289 `(("glib" ,glib))) ; required by gudev-1.0.pc
5290 (inputs
5291 `(("udev" ,eudev)))
5292 (home-page "https://wiki.gnome.org/Projects/libgudev")
5293 (synopsis "GObject bindings for libudev")
5294 (description
5295 "This library provides GObject bindings for libudev. It was originally
5296 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5297 (license license:lgpl2.1+)))
5298
5299 (define-public gvfs
5300 (package
5301 (name "gvfs")
5302 (version "1.40.1")
5303 (source (origin
5304 (method url-fetch)
5305 (uri (string-append "mirror://gnome/sources/gvfs/"
5306 (version-major+minor version) "/"
5307 "gvfs-" version ".tar.xz"))
5308 (sha256
5309 (base32
5310 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5311 (build-system meson-build-system)
5312 (arguments
5313 '(#:glib-or-gtk? #t
5314 #:configure-flags
5315 (list "-Dsystemduserunitdir=no"
5316 "-Dtmpfilesdir=no"
5317 ;; Otherwise, the RUNPATH will lack the final path component.
5318 (string-append "-Dc_link_args=-Wl,-rpath="
5319 (assoc-ref %outputs "out") "/lib/gvfs"))))
5320 (native-inputs
5321 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5322 ("gettext" ,gettext-minimal)
5323 ("gtk-doc" ,gtk-doc)
5324 ("pkg-config" ,pkg-config)
5325 ("xsltproc" ,libxslt)))
5326 (inputs
5327 `(("avahi" ,avahi)
5328 ("docbook-xml" ,docbook-xml-4.2)
5329 ("docbook-xsl" ,docbook-xsl)
5330 ("dbus" ,dbus)
5331 ("elogind" ,elogind)
5332 ("fuse" ,fuse)
5333 ("gcr" ,gcr)
5334 ("glib" ,glib)
5335 ("gnome-online-accounts" ,gnome-online-accounts)
5336 ("libarchive" ,libarchive)
5337 ("libbluray" ,libbluray)
5338 ("libcap" ,libcap)
5339 ("libcdio-paranoia" ,libcdio-paranoia)
5340 ("libgcrypt" ,libgcrypt)
5341 ("libgdata" ,libgdata)
5342 ("libgphoto2" ,libgphoto2)
5343 ("libgudev" ,libgudev)
5344 ("libimobiledevice" ,libimobiledevice)
5345 ("libmtp" ,libmtp)
5346 ("libnfs" ,libnfs)
5347 ("libsecret" ,libsecret)
5348 ("libsmbclient" ,samba)
5349 ("libsoup" ,libsoup)
5350 ("libxml2" ,libxml2)
5351 ("openssh" ,openssh)
5352 ("polkit" ,polkit)
5353 ("udisks" ,udisks)))
5354 (home-page "https://wiki.gnome.org/gvfs/")
5355 (synopsis "Userspace virtual file system for GIO")
5356 (description
5357 "GVFS is a userspace virtual file system designed to work with the I/O
5358 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5359 to all applications using the GIO API. It also supports exposing the GVFS
5360 mounts to non-GIO applications using FUSE.
5361
5362 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5363 DAV, and others.")
5364 (license license:lgpl2.0+)))
5365
5366 (define-public gusb
5367 (package
5368 (name "gusb")
5369 (version "0.3.0")
5370 (source (origin
5371 (method git-fetch)
5372 (uri (git-reference
5373 (url "https://github.com/hughsie/libgusb.git")
5374 (commit version)))
5375 (file-name (git-file-name name version))
5376 (sha256
5377 (base32
5378 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5379 (build-system meson-build-system)
5380 (native-inputs
5381 `(("gobject-introspection" ,gobject-introspection)
5382 ("pkg-config" ,pkg-config)
5383 ("vala" ,vala)
5384 ("gtk-doc" ,gtk-doc)))
5385 (propagated-inputs
5386 ;; Both of these are required by gusb.pc.
5387 `(("glib" ,glib)
5388 ("libusb" ,libusb)))
5389 (arguments
5390 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5391 (home-page "https://github.com/hughsie/libgusb")
5392 (synopsis "GLib binding for libusb1")
5393 (description
5394 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5395 asynchronous control, bulk and interrupt transfers with proper cancellation
5396 and integration into a mainloop. This makes it easy to integrate low level
5397 USB transfers with your high-level application or system daemon.")
5398 (license license:lgpl2.1+)))
5399
5400 (define-public simple-scan
5401 (package
5402 (name "simple-scan")
5403 (version "3.36.2.1")
5404 (source
5405 (origin
5406 (method url-fetch)
5407 (uri (string-append "mirror://gnome/sources/simple-scan/"
5408 (version-major+minor version) "/"
5409 "simple-scan-" version ".tar.xz"))
5410 (sha256
5411 (base32 "0aq1pf0wk536b91as54684xgmhl7lps0k2xcwha5wh6h1isyb35v"))))
5412 (build-system meson-build-system)
5413 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5414 (arguments
5415 '(#:glib-or-gtk? #t))
5416 (inputs
5417 `(("gtk" ,gtk+)
5418 ("zlib" ,zlib)
5419 ("cairo" ,cairo)
5420 ("colord" ,colord)
5421 ("gdk-pixbuf" ,gdk-pixbuf)
5422 ("gusb" ,gusb)
5423 ("libsane" ,sane-backends)))
5424 (native-inputs
5425 `(("gettext" ,gettext-minimal)
5426 ("itstool" ,itstool)
5427 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5428 ("pkg-config" ,pkg-config)
5429 ("vala" ,vala)
5430 ("xmllint" ,libxml2)))
5431 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5432 (synopsis "Document and image scanner")
5433 (description
5434 "Document Scanner is an easy-to-use application that lets you connect your
5435 scanner and quickly capture images and documents in an appropriate format. It
5436 supports any scanner for which a suitable SANE driver is available, which is
5437 almost all of them.")
5438 (license license:gpl3+)))
5439
5440 (define-public eolie
5441 (package
5442 (name "eolie")
5443 (version "0.9.98.1")
5444 (source (origin
5445 (method url-fetch)
5446 (uri (string-append "https://adishatz.org/eolie/eolie-"
5447 version ".tar.xz"))
5448 (sha256
5449 (base32
5450 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
5451 (build-system meson-build-system)
5452 (arguments
5453 `(#:glib-or-gtk? #t
5454 #:phases
5455 (modify-phases %standard-phases
5456 (add-after 'unpack 'skip-gtk-update-icon-cache
5457 ;; Don't create 'icon-theme.cache'.
5458 (lambda _
5459 (substitute* "meson_post_install.py"
5460 (("gtk-update-icon-cache") "true"))
5461 #t))
5462 (add-after 'wrap 'wrap-more
5463 (lambda* (#:key inputs outputs #:allow-other-keys)
5464 (let* ((out (assoc-ref outputs "out"))
5465 ;; These libraries must be on LD_LIBRARY_PATH.
5466 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5467 "atk" "gtk+" "gsettings-desktop-schemas"
5468 "gobject-introspection"))
5469 (path (string-join
5470 (map (lambda (lib)
5471 (string-append (assoc-ref inputs lib) "/lib"))
5472 libs)
5473 ":")))
5474 (wrap-program (string-append out "/bin/eolie")
5475 `("LD_LIBRARY_PATH" ":" prefix (,path))
5476 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5477 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5478 #t)))))
5479 (native-inputs
5480 `(("intltool" ,intltool)
5481 ("itstool" ,itstool)
5482 ("pkg-config" ,pkg-config)
5483 ("python" ,python)
5484 ("glib:bin" ,glib "bin")))
5485 (inputs
5486 `(("gobject-introspection" ,gobject-introspection)
5487 ("glib-networking" ,glib-networking)
5488 ("cairo" ,cairo)
5489 ("gtk+" ,gtk+)
5490 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5491 ("python" ,python-wrapper)
5492 ("python-dateutil" ,python-dateutil)
5493 ("python-pyfxa" ,python-pyfxa)
5494 ("python-pygobject" ,python-pygobject)
5495 ("python-pycairo" ,python-pycairo)
5496 ("python-pycrypto" ,python-pycrypto)
5497 ("libsecret" ,libsecret)
5498 ("gtkspell3" ,gtkspell3)
5499 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5500 ("webkitgtk" ,webkitgtk)))
5501 (home-page "https://wiki.gnome.org/Apps/Eolie")
5502 (synopsis "Web browser for GNOME")
5503 (description
5504 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5505 a secret password store, an adblocker, and a modern UI.")
5506 (license license:gpl3+)))
5507
5508 (define-public epiphany
5509 (package
5510 (name "epiphany")
5511 (version "3.34.4")
5512 (source (origin
5513 (method url-fetch)
5514 (uri (string-append "mirror://gnome/sources/epiphany/"
5515 (version-major+minor version) "/"
5516 "epiphany-" version ".tar.xz"))
5517 (sha256
5518 (base32
5519 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
5520
5521 (build-system meson-build-system)
5522 (arguments
5523 '(#:glib-or-gtk? #t
5524 #:phases
5525 (modify-phases %standard-phases
5526 (add-after 'unpack 'skip-gtk-update-icon-cache
5527 ;; Don't create 'icon-theme.cache'.
5528 (lambda _
5529 (substitute* "post_install.py"
5530 (("gtk-update-icon-cache") "true"))
5531 #t))
5532 (add-after 'unpack 'disable-failing-tests
5533 (lambda _
5534 (substitute* "tests/meson.build"
5535 ;; embed_shell fails, because webkitgtk apparently no longer supports
5536 ;; overriding the ftp schema
5537 ;; web_app_utils fails due to missing network access
5538 (("(embed_shell|web_app_utils)_test,")
5539 "find_program('sh'), args: ['-c', 'exit 77'],"))
5540 #t))
5541 (add-before 'check 'pre-check
5542 (lambda _
5543 ;; Tests require a running X server.
5544 (system "Xvfb :1 &")
5545 (setenv "DISPLAY" ":1")
5546 #t)))
5547 #:configure-flags
5548 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5549 (list (string-append "-Dc_link_args=-Wl,-rpath="
5550 (assoc-ref %outputs "out") "/lib/epiphany"))))
5551 (propagated-inputs
5552 `(("dconf" ,dconf)))
5553 (native-inputs
5554 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5555 ("glib:bin" ,glib "bin") ; for glib-mkenums
5556 ("intltool" ,intltool)
5557 ("itstool" ,itstool)
5558 ("pkg-config" ,pkg-config)
5559 ("xmllint" ,libxml2)
5560 ("xorg-server" ,xorg-server-for-tests)))
5561 (inputs
5562 `(("avahi" ,avahi)
5563 ("gcr" ,gcr)
5564 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5565 ("glib-networking" ,glib-networking)
5566 ("gnome-desktop" ,gnome-desktop)
5567 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5568 ("json-glib" ,json-glib)
5569 ("iso-codes" ,iso-codes)
5570 ("libdazzle" ,libdazzle)
5571 ("libnotify" ,libnotify)
5572 ("libsecret" ,libsecret)
5573 ("libxslt" ,libxslt)
5574 ("nettle" ,nettle) ; for hogweed
5575 ("sqlite" ,sqlite)
5576 ("webkitgtk" ,webkitgtk)))
5577 (home-page "https://wiki.gnome.org/Apps/Web")
5578 (synopsis "GNOME web browser")
5579 (description
5580 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5581 principles are simplicity and standards compliance.")
5582 (license license:gpl2+)))
5583
5584 (define-public d-feet
5585 (package
5586 (name "d-feet")
5587 (version "0.3.14")
5588 (source (origin
5589 (method url-fetch)
5590 (uri (string-append "mirror://gnome/sources/" name "/"
5591 (version-major+minor version) "/"
5592 name "-" version ".tar.xz"))
5593 (sha256
5594 (base32
5595 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5596 (build-system glib-or-gtk-build-system)
5597 (arguments
5598 '(#:out-of-source? #f ; tests need to run in the source directory.
5599 #:phases
5600 (modify-phases %standard-phases
5601 (add-before
5602 'check 'pre-check
5603 (lambda _
5604 ;; The test suite requires a running X server.
5605 (system "Xvfb :1 &")
5606 (setenv "DISPLAY" ":1")
5607 ;; Don't fail on missing '/etc/machine-id'.
5608 (setenv "DBUS_FATAL_WARNINGS" "0")
5609 ;; tests.py and window.py don't meet E402:
5610 ;; E402 module level import not at top of file
5611 (substitute* "src/tests/Makefile"
5612 (("--ignore=E123") "--ignore=E123,E402"))
5613 #t))
5614 (add-after
5615 'install 'wrap-program
5616 (lambda* (#:key outputs #:allow-other-keys)
5617 (let ((prog (string-append (assoc-ref outputs "out")
5618 "/bin/d-feet")))
5619 (wrap-program prog
5620 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5621 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5622 #t))))))
5623 (native-inputs
5624 `(("intltool" ,intltool)
5625 ("itstool" ,itstool)
5626 ("pkg-config" ,pkg-config)
5627 ("python-pep8" ,python-pep8)
5628 ("xmllint" ,libxml2)
5629 ("xorg-server" ,xorg-server-for-tests)))
5630 (inputs
5631 `(("gobject-introspection" ,gobject-introspection)
5632 ("gtk+" ,gtk+)
5633 ("python" ,python-wrapper)
5634 ("hicolor-icon-theme" ,hicolor-icon-theme)
5635 ("python-pygobject" ,python-pygobject)))
5636 (home-page "https://wiki.gnome.org/Apps/DFeet")
5637 (synopsis "D-Bus debugger")
5638 (description
5639 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5640 of running programs and invoke methods on those interfaces.")
5641 (license license:gpl2+)))
5642
5643 (define-public yelp-xsl
5644 (package
5645 (name "yelp-xsl")
5646 (version "3.34.2")
5647 (source (origin
5648 (method url-fetch)
5649 (uri (string-append "mirror://gnome/sources/" name "/"
5650 (version-major+minor version) "/"
5651 name "-" version ".tar.xz"))
5652 (sha256
5653 (base32
5654 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
5655 (build-system gnu-build-system)
5656 (native-inputs
5657 `(("gettext-minimal" ,gettext-minimal)
5658 ("itstool" ,itstool)
5659 ("xmllint" ,libxml2)))
5660 (home-page "https://wiki.gnome.org/Apps/Yelp")
5661 (synopsis "XSL stylesheets for Yelp")
5662 (description
5663 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5664 to format Docbook and Mallard documents.")
5665 (license license:gpl2+)))
5666
5667 (define-public yelp
5668 (package
5669 (name "yelp")
5670 (version "3.32.2")
5671 (source (origin
5672 (method url-fetch)
5673 (uri (string-append "mirror://gnome/sources/" name "/"
5674 (version-major+minor version) "/"
5675 name "-" version ".tar.xz"))
5676 (sha256
5677 (base32
5678 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5679 (build-system glib-or-gtk-build-system)
5680 (native-inputs
5681 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5682 ("intltool" ,intltool)
5683 ("itstool" ,itstool)
5684 ("pkg-config" ,pkg-config)))
5685 (propagated-inputs
5686 `(("dconf" ,dconf)))
5687 (inputs
5688 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5689 ("libxslt" ,libxslt)
5690 ("sqlite" ,sqlite)
5691 ("webkitgtk" ,webkitgtk)
5692 ("yelp-xsl" ,yelp-xsl)))
5693 (home-page "https://wiki.gnome.org/Apps/Yelp")
5694 (synopsis "GNOME help browser")
5695 (description
5696 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5697 man, info, and HTML documents. It can locate documents according to the
5698 freedesktop.org help system specification.")
5699 (license license:gpl2+)))
5700
5701 (define-public yelp-tools
5702 (package
5703 (name "yelp-tools")
5704 (version "3.32.2")
5705 (source (origin
5706 (method url-fetch)
5707 (uri (string-append "mirror://gnome/sources/" name "/"
5708 (version-major+minor version) "/"
5709 name "-" version ".tar.xz"))
5710 (sha256
5711 (base32
5712 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
5713 (build-system gnu-build-system)
5714 (native-inputs
5715 `(("pkg-config" ,pkg-config)))
5716 (propagated-inputs
5717 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5718 `(("itstool" ,itstool)
5719 ("xmllint" ,libxml2)
5720 ("xsltproc" ,libxslt)))
5721 (inputs
5722 `(("yelp-xsl" ,yelp-xsl)))
5723 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5724 (synopsis "Yelp documentation tools")
5725 (description
5726 "Yelp-tools is a collection of scripts and build utilities to help create,
5727 manage, and publish documentation for Yelp and the web. Most of the heavy
5728 lifting is done by packages like yelp-xsl and itstool. This package just
5729 wraps things up in a developer-friendly way.")
5730 (license license:gpl2+)))
5731
5732 (define-public libgee
5733 (package
5734 (name "libgee")
5735 (version "0.20.3")
5736 (source (origin
5737 (method url-fetch)
5738 (uri (string-append "mirror://gnome/sources/libgee/"
5739 (version-major+minor version) "/"
5740 "libgee-" version ".tar.xz"))
5741 (sha256
5742 (base32
5743 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
5744 (build-system gnu-build-system)
5745 (arguments
5746 `(#:phases
5747 (modify-phases %standard-phases
5748 (add-after 'unpack 'fix-introspection-install-dir
5749 (lambda* (#:key outputs #:allow-other-keys)
5750 (let ((out (assoc-ref outputs "out")))
5751 (substitute* "gee/Makefile.in"
5752 (("@INTROSPECTION_GIRDIR@")
5753 (string-append out "/share/gir-1.0/"))
5754 (("@INTROSPECTION_TYPELIBDIR@")
5755 (string-append out "/lib/girepository-1.0/")))))))))
5756 (native-inputs
5757 `(("glib" ,glib "bin")
5758 ("pkg-config" ,pkg-config)))
5759 (inputs
5760 `(("glib" ,glib)
5761 ("gobject-introspection" ,gobject-introspection)))
5762 (home-page "https://wiki.gnome.org/Projects/Libgee")
5763 (synopsis "GObject collection library")
5764 (description
5765 "Libgee is a utility library providing GObject-based interfaces and
5766 classes for commonly used data structures.")
5767 (license license:lgpl2.1+)))
5768
5769 (define-public gexiv2
5770 (package
5771 (name "gexiv2")
5772 (version "0.12.0")
5773 (source (origin
5774 (method url-fetch)
5775 (uri (string-append "mirror://gnome/sources/" name "/"
5776 (version-major+minor version) "/"
5777 name "-" version ".tar.xz"))
5778 (sha256
5779 (base32
5780 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5781 (build-system meson-build-system)
5782 (native-inputs
5783 `(("gcr" ,gcr)
5784 ("glib" ,glib "bin")
5785 ("pkg-config" ,pkg-config)
5786 ("vala" ,vala)))
5787 (propagated-inputs
5788 ;; Listed in "Requires" section of gexiv2.pc
5789 `(("exiv2" ,exiv2)))
5790 (inputs
5791 `(("glib" ,glib)
5792 ("gobject-introspection" ,gobject-introspection)))
5793 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5794 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5795 (description
5796 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5797 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5798 metadata in photo and video files of various formats.")
5799 (license license:gpl2+)))
5800
5801 (define-public shotwell
5802 (package
5803 (name "shotwell")
5804 (version "0.30.9")
5805 (source (origin
5806 (method url-fetch)
5807 (uri (string-append "mirror://gnome/sources/shotwell/"
5808 (version-major+minor version) "/"
5809 "shotwell-" version ".tar.xz"))
5810 (sha256
5811 (base32
5812 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
5813 (build-system meson-build-system)
5814 (arguments
5815 '(#:glib-or-gtk? #t
5816 #:phases
5817 (modify-phases %standard-phases
5818 (add-after 'unpack 'skip-gtk-update-icon-cache
5819 (lambda _
5820 (substitute* "build-aux/meson/postinstall.py"
5821 (("gtk-update-icon-cache") (which "true"))
5822 (("update-desktop-database") (which "true")))
5823 #t)))))
5824 (propagated-inputs
5825 `(("dconf" ,dconf)))
5826 (native-inputs
5827 `(("gettext" ,gettext-minimal)
5828 ("glib:bin" ,glib "bin")
5829 ("itstool" ,itstool)
5830 ("pkg-config" ,pkg-config)
5831 ("vala" ,vala)))
5832 (inputs
5833 `(("gcr" ,gcr)
5834 ("gexiv2" ,gexiv2)
5835 ("gst-plugins-base" ,gst-plugins-base)
5836 ("gstreamer" ,gstreamer)
5837 ("json-glib" ,json-glib)
5838 ("libgdata" ,libgdata)
5839 ("libgee" ,libgee)
5840 ("libgphoto2" ,libgphoto2)
5841 ("libgudev" ,libgudev)
5842 ("libraw" ,libraw)
5843 ("libsoup" ,libsoup)
5844 ("libxml2" ,libxml2)
5845 ("sqlite" ,sqlite)
5846 ("webkitgtk" ,webkitgtk)))
5847 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5848 (synopsis "Photo manager for GNOME 3")
5849 (description
5850 "Shotwell is a digital photo manager designed for the GNOME desktop
5851 environment. It allows you to import photos from disk or camera, organize
5852 them by keywords and events, view them in full-window or fullscreen mode, and
5853 share them with others via social networking and more.")
5854 (license license:lgpl2.1+)))
5855
5856 (define-public file-roller
5857 (package
5858 (name "file-roller")
5859 (version "3.32.3")
5860 (source (origin
5861 (method url-fetch)
5862 (uri (string-append "mirror://gnome/sources/file-roller/"
5863 (version-major+minor version) "/"
5864 "file-roller-" version ".tar.xz"))
5865 (sha256
5866 (base32
5867 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5868 (build-system meson-build-system)
5869 (native-inputs
5870 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5871 ("intltool" ,intltool)
5872 ("itstool" ,itstool)
5873 ("pkg-config" ,pkg-config)
5874 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5875 ("glib:bin" ,glib "bin")))
5876 ;; TODO: Add libnautilus.
5877 (inputs
5878 `(("gtk+" ,gtk+)
5879 ("gdk-pixbuf" ,gdk-pixbuf)
5880 ("json-glib" ,json-glib)
5881 ("libarchive" ,libarchive)
5882 ("libnotify" ,libnotify)
5883 ("nettle" ,nettle)
5884 ("libxml2" ,libxml2)))
5885 (synopsis "Graphical archive manager for GNOME")
5886 (description "File Roller is an archive manager for the GNOME desktop
5887 environment that allows users to view, unpack, and create compressed archives
5888 such as gzip tarballs.")
5889 (home-page "http://fileroller.sourceforge.net/")
5890 (license license:gpl2+)))
5891
5892 (define-public gnome-session
5893 (package
5894 (name "gnome-session")
5895 (version "3.34.2")
5896 (source (origin
5897 (method url-fetch)
5898 (uri (string-append "mirror://gnome/sources/" name "/"
5899 (version-major+minor version) "/"
5900 name "-" version ".tar.xz"))
5901 (sha256
5902 (base32
5903 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
5904 (arguments
5905 '(#:glib-or-gtk? #t
5906 #:phases
5907 (modify-phases %standard-phases
5908 (add-before 'configure 'pre-configure
5909 (lambda* (#:key outputs #:allow-other-keys)
5910 ;; Use elogind instead of systemd.
5911 (substitute* "meson.build"
5912 (("libsystemd-login") "libelogind")
5913 (("and libsystemd_daemon_dep.found.*") ","))
5914 (substitute* "gnome-session/gsm-systemd.c"
5915 (("#include <systemd/sd-login.h>")
5916 "#include <elogind/sd-login.h>"))
5917 ;; Remove uses of the systemd daemon.
5918 (substitute* "gnome-session/gsm-autostart-app.c"
5919 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5920 #t))
5921 (add-after 'install 'wrap-gnome-session
5922 (lambda* (#:key inputs outputs #:allow-other-keys)
5923 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5924 (let ((glib (assoc-ref inputs "glib:bin"))
5925 (out (assoc-ref outputs "out")))
5926 (wrap-program (string-append out "/bin/gnome-session")
5927 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5928 #t))))
5929
5930 #:configure-flags
5931 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5932 "-Dman=false" ; FIXME: disabled because of docbook validation error
5933 "-Dsystemd_journal=false")))
5934 (build-system meson-build-system)
5935 (native-inputs
5936 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5937 ("pkg-config" ,pkg-config)
5938 ("intltool" ,intltool)
5939 ("xsltproc" ,libxslt)
5940 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5941 ("docbook-xsl" ,docbook-xsl)
5942 ("docbook-xml" ,docbook-xml)
5943 ("xmlto" ,xmlto)))
5944 (inputs
5945 `(("elogind" ,elogind)
5946 ("gnome-desktop" ,gnome-desktop)
5947 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5948 ("gtk+" ,gtk+)
5949 ("json-glib" ,json-glib)
5950 ("libsm" ,libsm)
5951 ("libxcomposite" ,libxcomposite)
5952 ("libxtst" ,libxtst)
5953 ("mesa" ,mesa)
5954 ("upower" ,upower)
5955 ("xtrans" ,xtrans)))
5956 (synopsis "Session manager for GNOME")
5957 (description
5958 "This package contains the GNOME session manager, as well as a
5959 configuration program to choose applications starting on login.")
5960 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5961 (license license:gpl2+)))
5962
5963 (define-public gjs
5964 (package
5965 (name "gjs")
5966 (version "1.58.3")
5967 (source (origin
5968 (method url-fetch)
5969 (uri (string-append "mirror://gnome/sources/" name "/"
5970 (version-major+minor version) "/"
5971 name "-" version ".tar.xz"))
5972 (sha256
5973 (base32
5974 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
5975 (build-system gnu-build-system)
5976 (arguments
5977 '(#:phases
5978 (modify-phases %standard-phases
5979 (add-before
5980 'check 'pre-check
5981 (lambda _
5982 ;; The test suite requires a running X server.
5983 (system "Xvfb :1 &")
5984 (setenv "DISPLAY" ":1")
5985
5986 ;; For the missing /etc/machine-id.
5987 (setenv "DBUS_FATAL_WARNINGS" "0")
5988
5989 ;; Our mozjs-38 package does not compile the required Intl API
5990 ;; support for these failing tests.
5991 (substitute* "installed-tests/js/testLocale.js"
5992 ((".*toBeDefined.*") "")
5993 ((".*expect\\(datestr\\).*") ""))
5994 (substitute* "installed-tests/scripts/testCommandLine.sh"
5995 (("Valentín") "")
5996 (("☭") ""))
5997 #t)))))
5998 (native-inputs
5999 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
6000 ("pkg-config" ,pkg-config)
6001 ("xmllint" ,libxml2)
6002 ;; For testing
6003 ("dbus-launch" ,dbus)
6004 ("dconf" ,dconf) ; required to properly store settings
6005 ("uuidgen" ,util-linux)
6006 ("xvfb" ,xorg-server-for-tests)))
6007 (propagated-inputs
6008 ;; These are all in the Requires.private field of gjs-1.0.pc.
6009 `(("cairo" ,cairo)
6010 ("gobject-introspection" ,gobject-introspection)
6011 ("mozjs" ,mozjs-60)))
6012 (inputs
6013 `(("gtk+" ,gtk+)
6014 ("readline" ,readline)))
6015 (synopsis "Javascript bindings for GNOME")
6016 (home-page "https://live.gnome.org/Gjs")
6017 (description
6018 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6019 javascript engine and the GObject introspection framework.")
6020 (license license:gpl2+)))
6021
6022 (define-public gedit
6023 (package
6024 (name "gedit")
6025 (version "3.34.1")
6026 (source (origin
6027 (method url-fetch)
6028 (uri (string-append "mirror://gnome/sources/" name "/"
6029 (version-major+minor version) "/"
6030 name "-" version ".tar.xz"))
6031 (sha256
6032 (base32
6033 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
6034 (build-system meson-build-system)
6035 (arguments
6036 `(#:glib-or-gtk? #t
6037 #:configure-flags
6038 ;; Otherwise, the RUNPATH will lack the final path component.
6039 (list (string-append "-Dc_link_args=-Wl,-rpath="
6040 (assoc-ref %outputs "out") "/lib/gedit"))
6041
6042 ;; XXX: Generated .h files are sometimes used before being built.
6043 #:parallel-build? #f
6044
6045 #:phases
6046 (modify-phases %standard-phases
6047 (add-after 'unpack 'skip-gtk-update-icon-cache
6048 ;; Don't create 'icon-theme.cache'.
6049 (lambda _
6050 (substitute* "build-aux/meson/post_install.py"
6051 (("gtk-update-icon-cache") (which "true")))
6052 #t))
6053 (add-after 'unpack 'patch-libgd-fetch
6054 (lambda* (#:key inputs #:allow-other-keys)
6055 (let ((libgd (assoc-ref inputs "libgd")))
6056 ;; Calling git is unnecessary because libgd is fetched as a
6057 ;; native input to this package.
6058 (substitute* "meson.build"
6059 ((".*git.*") ""))
6060 (copy-recursively libgd "subprojects/libgd")
6061 #t)))
6062 (add-after 'install 'wrap-gedit
6063 (lambda* (#:key inputs outputs #:allow-other-keys)
6064 (let ((out (assoc-ref outputs "out"))
6065 (gtksourceview (assoc-ref inputs "gtksourceview"))
6066 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6067 (python-path (getenv "PYTHONPATH")))
6068 (wrap-program (string-append out "/bin/gedit")
6069 ;; For plugins.
6070 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6071 `("PYTHONPATH" ":" prefix (,python-path))
6072 ;; For language-specs.
6073 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6074 "/share")))))
6075 #t)))))
6076 (propagated-inputs
6077 `(("dconf" ,dconf)))
6078 (native-inputs
6079 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6080 ("intltool" ,intltool)
6081 ("itstool" ,itstool)
6082 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6083 ("gobject-introspection" ,gobject-introspection)
6084 ("libgd"
6085 ,(origin
6086 (method git-fetch)
6087 (uri (git-reference
6088 (url "https://gitlab.gnome.org/GNOME/libgd")
6089 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6090 (file-name (git-file-name "libgd" version))
6091 (sha256
6092 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6093 ("pkg-config" ,pkg-config)))
6094 (inputs
6095 `(("glib" ,glib)
6096 ("gspell" ,gspell)
6097 ("gtk+" ,gtk+)
6098 ("gtksourceview" ,gtksourceview)
6099 ("libpeas" ,libpeas)
6100 ("libxml2" ,libxml2)
6101 ("iso-codes" ,iso-codes)
6102 ("python-pygobject" ,python-pygobject)
6103 ("python" ,python)
6104 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6105 ("libx11" ,libx11)
6106 ("vala" ,vala)
6107 ("adwaita-icon-theme" ,adwaita-icon-theme)
6108 ("libsoup" ,libsoup)
6109 ("gnome-desktop" ,gnome-desktop)))
6110 (home-page "https://wiki.gnome.org/Apps/Gedit")
6111 (synopsis "GNOME text editor")
6112 (description "While aiming at simplicity and ease of use, gedit is a
6113 powerful general purpose text editor.")
6114 (license license:gpl2+)))
6115
6116 (define-public zenity
6117 (package
6118 (name "zenity")
6119 (version "3.32.0")
6120 (source (origin
6121 (method url-fetch)
6122 (uri (string-append "mirror://gnome/sources/zenity/"
6123 (version-major+minor version) "/"
6124 "zenity-" version ".tar.xz"))
6125 (sha256
6126 (base32
6127 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6128 (build-system gnu-build-system)
6129 (native-inputs
6130 `(("gettext" ,gettext-minimal)
6131 ("itstool" ,itstool)
6132 ("pkg-config" ,pkg-config)))
6133 (inputs
6134 `(("libnotify" ,libnotify)
6135 ("webkitgtk" ,webkitgtk)))
6136 (synopsis "Display graphical dialog boxes from shell scripts")
6137 (home-page "https://www.gnome.org")
6138 (description
6139 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6140 to display dialog boxes from the commandline and shell scripts.")
6141 (license license:lgpl2.0+)))
6142
6143 (define-public mutter
6144 (package
6145 (name "mutter")
6146 (version "3.34.2")
6147 (source (origin
6148 (method url-fetch)
6149 (uri (string-append "mirror://gnome/sources/" name "/"
6150 (version-major+minor version) "/"
6151 name "-" version ".tar.xz"))
6152 (sha256
6153 (base32
6154 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
6155 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6156 ;; versions of cogl and clutter. As a result, many of the inputs,
6157 ;; propagated-inputs, and configure flags used in cogl and clutter are
6158 ;; needed here as well.
6159 (build-system meson-build-system)
6160 (arguments
6161 '(;; XXX: All mutter tests fail with the following error:
6162 ;; Settings schema 'org.gnome.mutter' is not installed
6163 #:tests? #f
6164 #:glib-or-gtk? #t
6165 #:configure-flags
6166 ;; TODO: Enable profiler when Sysprof is packaged.
6167 (list "-Dprofiler=false"
6168 ;; Otherwise, the RUNPATH will lack the final path component.
6169 (string-append "-Dc_link_args=-Wl,-rpath="
6170 (assoc-ref %outputs "out") "/lib:"
6171 (assoc-ref %outputs "out") "/lib/mutter-5")
6172
6173 ;; The following flags are needed for the bundled clutter
6174 (string-append "-Dxwayland_path="
6175 (assoc-ref %build-inputs "xorg-server-xwayland")
6176 "/bin/Xwayland")
6177
6178 ;; the remaining flags are needed for the bundled cogl
6179 (string-append "-Dopengl_libname="
6180 (assoc-ref %build-inputs "mesa")
6181 "/lib/libGL.so"))))
6182 (native-inputs
6183 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6184 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6185 ("gobject-introspection" ,gobject-introspection)
6186 ("intltool" ,intltool)
6187 ("pkg-config" ,pkg-config)
6188 ("xorg-server" ,xorg-server-for-tests)
6189 ;; For git build
6190 ("autoconf" ,autoconf)
6191 ("automake" ,automake)
6192 ("libtool" ,libtool)))
6193 (propagated-inputs
6194 `(;; libmutter.pc refers to these:
6195 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6196 ("gtk+" ,gtk+)
6197 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6198 ("atk" ,atk)
6199 ("cairo" ,cairo)
6200 ("gdk-pixbuf" ,gdk-pixbuf)
6201 ("glib" ,glib)
6202 ("json-glib" ,json-glib)
6203 ("libinput" ,libinput)
6204 ("libx11" ,libx11)
6205 ("libxcomposite" ,libxcomposite)
6206 ("libxdamage" ,libxdamage)
6207 ("libxext" ,libxext)
6208 ("libxfixes" ,libxfixes)
6209 ("libxkbcommon" ,libxkbcommon)
6210 ("libxrandr" ,libxrandr)
6211 ("mesa" ,mesa)
6212 ("pango" ,pango)
6213 ("udev" ,eudev)
6214 ("xinput" ,xinput)))
6215 (inputs
6216 `(("elogind" ,elogind)
6217 ("gnome-desktop" ,gnome-desktop)
6218 ("gnome-settings-daemon" ,gnome-settings-daemon)
6219 ("libcanberra-gtk" ,libcanberra)
6220 ("libgudev" ,libgudev)
6221 ("libice" ,libice)
6222 ("libsm" ,libsm)
6223 ("libwacom" ,libwacom)
6224 ("libxkbfile" ,libxkbfile)
6225 ("libxrandr" ,libxrandr)
6226 ("libxtst" ,libxtst)
6227 ("pipewire" ,pipewire)
6228 ("startup-notification" ,startup-notification)
6229 ("upower-glib" ,upower)
6230 ("xkeyboard-config" ,xkeyboard-config)
6231 ("xorg-server-xwayland" ,xorg-server-xwayland)
6232 ("zenity" ,zenity)))
6233 (synopsis "Window and compositing manager")
6234 (home-page "https://www.gnome.org")
6235 (description
6236 "Mutter is a window and compositing manager that displays and manages your
6237 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6238 Clutter toolkit with solid window-management logic inherited from the Metacity
6239 window manager.")
6240 (license license:gpl2+)))
6241
6242 (define-public gnome-online-accounts
6243 (package
6244 (name "gnome-online-accounts")
6245 (version "3.36.0")
6246 (source (origin
6247 (method url-fetch)
6248 (uri (string-append "mirror://gnome/sources/" name "/"
6249 (version-major+minor version) "/"
6250 name "-" version ".tar.xz"))
6251 (sha256
6252 (base32
6253 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
6254 (outputs '("out" "lib"))
6255 (build-system glib-or-gtk-build-system)
6256 (arguments
6257 `(#:configure-flags
6258 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6259 #:phases
6260 (modify-phases %standard-phases
6261 (add-before 'configure 'patch-libgoa-output
6262 (lambda* (#:key outputs #:allow-other-keys)
6263 (let ((lib (assoc-ref outputs "lib")))
6264 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6265 (("@prefix@") lib)
6266 (("@exec_prefix@") lib)
6267 (("@libdir@") (string-append lib "/lib"))
6268 (("@includedir@") (string-append lib "/include"))
6269 (("@datadir@") (string-append lib "/share")))
6270 ;; Make sure gobject-introspection knows about the output
6271 ;; too (see <https://bugs.gnu.org/36535>).
6272 (setenv "outputs" "out lib")
6273 #t))))))
6274 (native-inputs
6275 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6276 ("gobject-introspection" ,gobject-introspection)
6277 ("intltool" ,intltool)
6278 ("pkg-config" ,pkg-config)
6279 ("vala" ,vala)
6280 ("xsltproc" ,libxslt)))
6281 (propagated-inputs
6282 `(("glib" ,glib) ; required by goa-1.0.pc
6283 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6284 (inputs
6285 `(("docbook-xsl" ,docbook-xsl)
6286 ("json-glib" ,json-glib)
6287 ("libsecret" ,libsecret)
6288 ("rest" ,rest)
6289 ("webkitgtk" ,webkitgtk)))
6290 (synopsis "Single sign-on framework for GNOME")
6291 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6292 (description
6293 "GNOME Online Accounts provides interfaces so that applications and
6294 libraries in GNOME can access the user's online accounts. It has providers for
6295 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6296 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6297 (license license:lgpl2.0+)))
6298
6299 (define-public evolution-data-server
6300 (package
6301 (name "evolution-data-server")
6302 (version "3.34.2")
6303 (source (origin
6304 (method url-fetch)
6305 (uri (string-append "mirror://gnome/sources/" name "/"
6306 (version-major+minor version) "/"
6307 name "-" version ".tar.xz"))
6308 (patches (search-patches "evolution-data-server-locales.patch"
6309 "evolution-data-server-libical-compat.patch"))
6310 (sha256
6311 (base32
6312 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
6313 (build-system cmake-build-system)
6314 (arguments
6315 '(#:configure-flags
6316 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6317 (runpaths (map (lambda (s)
6318 (string-append lib "/evolution-data-server/" s))
6319 '("addressbook-backends" "calendar-backends"
6320 "camel-providers" "credential-modules"
6321 "registry-modules"))))
6322 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6323 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6324 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6325 "-DENABLE_VALA_BINDINGS=ON"
6326 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6327 (string-append lib "/evolution-data-server;")
6328 (string-join runpaths ";"))
6329 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6330 #:phases
6331 (modify-phases %standard-phases
6332 (add-after 'unpack 'disable-failing-tests
6333 (lambda _
6334 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6335 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6336 (delete-file-recursively "tests/book-migration")
6337 (substitute* "tests/CMakeLists.txt"
6338 (("add_subdirectory\\(book-migration\\)") ""))
6339 #t))
6340 (add-after 'unpack 'patch-paths
6341 (lambda _
6342 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6343 "tests/libedata-book/data-test-utils.c"
6344 "tests/libedata-book/test-book-cache-utils.c"
6345 "tests/libedata-cal/test-cal-cache-utils.c")
6346 (("/bin/rm") (which "rm")))
6347 #t))
6348 (add-before 'configure 'dont-override-rpath
6349 (lambda _
6350 (substitute* "CMakeLists.txt"
6351 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6352 ;; Remove it so the configure flag is respected.
6353 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6354 #t)))))
6355 (native-inputs
6356 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6357 ("gobject-introspection" ,gobject-introspection)
6358 ("gperf" ,gperf)
6359 ("intltool" ,intltool)
6360 ("pkg-config" ,pkg-config)
6361 ("vala" ,vala)
6362 ("python" ,python-wrapper)))
6363 (propagated-inputs
6364 ;; These are all in the Requires field of .pc files.
6365 `(("gtk+" ,gtk+)
6366 ("libical" ,libical)
6367 ("libsecret" ,libsecret)
6368 ("libsoup" ,libsoup)
6369 ("nss" ,nss)
6370 ("sqlite" ,sqlite)))
6371 (inputs
6372 `(("bdb" ,bdb)
6373 ("gcr" ,gcr)
6374 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6375 ("json-glib" ,json-glib)
6376 ("libcanberra" ,libcanberra)
6377 ("libgweather" ,libgweather)
6378 ("mit-krb5" ,mit-krb5)
6379 ("openldap" ,openldap)
6380 ("webkitgtk" ,webkitgtk)))
6381 (synopsis "Store address books and calendars")
6382 (home-page "https://wiki.gnome.org/Apps/Evolution")
6383 (description
6384 "This package provides a unified backend for programs that work with
6385 contacts, tasks, and calendar information. It was originally developed for
6386 Evolution (hence the name), but is now used by other packages as well.")
6387 (license license:lgpl2.0)))
6388
6389 (define-public caribou
6390 (package
6391 (name "caribou")
6392 (version "0.4.21")
6393 (source (origin
6394 (method url-fetch)
6395 (uri (string-append "mirror://gnome/sources/" name "/"
6396 (version-major+minor version) "/"
6397 name "-" version ".tar.xz"))
6398 (sha256
6399 (base32
6400 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6401 (build-system glib-or-gtk-build-system)
6402 (arguments
6403 '(#:phases
6404 (modify-phases %standard-phases
6405 (add-before
6406 'build 'pre-build
6407 (lambda* (#:key outputs #:allow-other-keys)
6408 (let ((out (assoc-ref outputs "out")))
6409 ;; Use absolute shared library path in Caribou-1.0.typelib.
6410 (substitute* "libcaribou/Makefile"
6411 (("--shared-library=libcaribou.so")
6412 (string-append "--shared-library="
6413 out "/lib/libcaribou.so")))
6414 #t)))
6415 (add-after 'install 'wrap-programs
6416 (lambda* (#:key outputs #:allow-other-keys)
6417 (let* ((out (assoc-ref outputs "out"))
6418 (python-path (getenv "PYTHONPATH"))
6419 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6420 (for-each
6421 (lambda (prog)
6422 (wrap-program prog
6423 `("PYTHONPATH" ":" prefix (,python-path))
6424 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6425 (list (string-append out "/bin/caribou-preferences")
6426 (string-append out "/libexec/antler-keyboard"))))
6427 #t)))))
6428 (native-inputs
6429 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6430 ("gobject-introspection" ,gobject-introspection)
6431 ("intltool" ,intltool)
6432 ("pkg-config" ,pkg-config)
6433 ("python" ,python)
6434 ("vala" ,vala)
6435 ("xsltproc" ,libxslt)))
6436 (propagated-inputs
6437 ;; caribou-1.0.pc refers to all these.
6438 `(("libgee" ,libgee)
6439 ("libxklavier" ,libxklavier)
6440 ("libxtst" ,libxtst)
6441 ("gtk+" ,gtk+)))
6442 (inputs
6443 `(("clutter" ,clutter)
6444 ("dconf" ,dconf)
6445 ("gtk+-2" ,gtk+-2)
6446 ("python-pygobject" ,python-pygobject)))
6447 (synopsis "Text entry and UI navigation application")
6448 (home-page "https://wiki.gnome.org/Projects/Caribou")
6449 (description
6450 "Caribou is an input assistive technology intended for switch and pointer
6451 users.")
6452 (license license:lgpl2.1)))
6453
6454 (define-public network-manager
6455 (package
6456 (name "network-manager")
6457 (version "1.24.0")
6458 (source (origin
6459 (method url-fetch)
6460 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6461 (version-major+minor version) "/"
6462 "NetworkManager-" version ".tar.xz"))
6463 (patches (search-patches "network-manager-plugin-path.patch"))
6464 (sha256
6465 (base32
6466 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
6467 (modules '((guix build utils)))
6468 (snippet
6469 '(begin
6470 (substitute* "src/devices/wwan/nm-modem-manager.c"
6471 (("systemd") "elogind"))
6472 #t))))
6473 (build-system meson-build-system)
6474 (outputs '("out"
6475 "doc")) ; 8 MiB of gtk-doc HTML
6476 (arguments
6477 `(#:configure-flags
6478 (let ((out (assoc-ref %outputs "out"))
6479 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6480 "/sbin/dhclient")))
6481 (list
6482 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6483 ;; component.
6484 (string-append "-Dc_link_args=-Wl,-rpath="
6485 out "/lib:"
6486 out "/lib/NetworkManager/" ,version)
6487 "-Dsystemd_journal=false"
6488 "-Dsession_tracking=elogind"
6489 "-Dsuspend_resume=elogind"
6490 "-Dsystemdsystemunitdir=no"
6491 "-Dsession_tracking_consolekit=false"
6492 "-Ddhcpcd=no"
6493 "-Ddhcpcanon=no"
6494 "-Dcrypto=gnutls"
6495 "-Diwd=true"
6496 "-Dlibaudit=yes"
6497 "-Dqt=false"
6498 "-Ddocs=true"
6499 "--sysconfdir=/etc"
6500 "--localstatedir=/var"
6501 (string-append "-Dudev_dir="
6502 out "/lib/udev")
6503 (string-append "-Ddbus_conf_dir="
6504 out "/etc/dbus-1/system.d")
6505
6506 (string-append "-Ddhclient=" dhclient)))
6507 #:phases
6508 (modify-phases %standard-phases
6509 (add-before 'configure 'pre-configure
6510 (lambda _
6511 ;; These tests try to test aspects of network-manager's
6512 ;; functionality within restricted containers, but they don't
6513 ;; cope with being already in the Guix build jail as that jail
6514 ;; lacks some features that they would like to proxy over (like
6515 ;; a /sys mount).
6516 (substitute* "src/platform/tests/meson.build"
6517 ((".*test-address-linux.*") "")
6518 ((".*test-cleanup-linux.*") "")
6519 ((".*test-link-linux.*") "")
6520 ((".*test-route-linux.*") ""))
6521 (substitute* "src/devices/tests/meson.build"
6522 ((".*test-acd.*") "")
6523 ((".*test-lldp.*") ""))
6524 #t))
6525 (add-after 'unpack 'patch-docbook-xml
6526 (lambda* (#:key inputs #:allow-other-keys)
6527 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6528 "/xml/dtd/docbook")))
6529 (substitute* (find-files "." ".*\\.(xsl|xml)")
6530 (("http://.*/docbookx\\.dtd")
6531 (string-append xmldoc "/docbookx.dtd")))
6532 #t)))
6533 (add-before 'check 'pre-check
6534 (lambda _
6535 ;; For the missing /etc/machine-id.
6536 (setenv "DBUS_FATAL_WARNINGS" "0")
6537 #t))
6538 (add-before 'install 'no-polkit-magic
6539 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
6540 (lambda _
6541 (setenv "PKEXEC_UID" "something")
6542 #t))
6543 (add-after 'install 'move-doc
6544 (lambda* (#:key outputs #:allow-other-keys)
6545 (let ((out (assoc-ref outputs "out"))
6546 (doc (assoc-ref outputs "doc")))
6547 (mkdir-p (string-append doc "/share"))
6548 (for-each (lambda (directory)
6549 (copy-recursively (string-append out directory)
6550 (string-append doc directory))
6551 (delete-file-recursively
6552 (string-append out directory)))
6553 '("/share/doc" "/share/gtk-doc"))
6554 #t))))))
6555 (propagated-inputs
6556 `(("glib" ,glib)))
6557 (native-inputs
6558 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6559 ("gtk-doc" ,gtk-doc)
6560 ("gobject-introspection" ,gobject-introspection)
6561 ("docbook-xml" ,docbook-xml)
6562 ("docbook-xsl" ,docbook-xsl)
6563 ("intltool" ,intltool)
6564 ("libxslt" ,libxslt)
6565 ("libxml2" ,libxml2)
6566 ("pkg-config" ,pkg-config)
6567 ("vala" ,vala)
6568 ;; For testing.
6569 ("python" ,python-wrapper)
6570 ("python-dbus" ,python-dbus)
6571 ("python-pygobject" ,python-pygobject)))
6572 (inputs
6573 `(("curl" ,curl)
6574 ("cyrus-sasl" ,cyrus-sasl)
6575 ("dbus-glib" ,dbus-glib)
6576 ("dnsmasq" ,dnsmasq)
6577 ("eudev" ,eudev)
6578 ("gnutls" ,gnutls)
6579 ("iptables" ,iptables)
6580 ("isc-dhcp" ,isc-dhcp)
6581 ("iwd" ,iwd) ; wpa_supplicant alternative
6582 ("jansson" ,jansson)
6583 ("libaudit" ,audit)
6584 ("libgcrypt" ,libgcrypt)
6585 ("libgudev" ,libgudev)
6586 ("libndp" ,libndp)
6587 ("libnl" ,libnl)
6588 ("libsoup" ,libsoup)
6589 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
6590 ("modem-manager" ,modem-manager)
6591 ("newt" ,newt) ;for the 'nmtui' console interface
6592 ("openresolv" ,openresolv) ; alternative resolv.conf manager
6593 ("polkit" ,polkit)
6594 ("ppp" ,ppp)
6595 ("readline" ,readline)
6596 ("util-linux" ,util-linux)
6597 ("elogind" ,elogind)))
6598 (synopsis "Network connection manager")
6599 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6600 (description
6601 "NetworkManager is a system network service that manages your network
6602 devices and connections, attempting to keep active network connectivity when
6603 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6604 devices, and provides VPN integration with a variety of different VPN
6605 services.")
6606 ;; “This NetworkManager project consists of the daemon, client tools, and
6607 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6608 ;; GPL-2.0+.”
6609 (license (list license:gpl2+
6610 license:lgpl2.1+))
6611 (properties '((upstream-name . "NetworkManager")))))
6612
6613 (define-public network-manager-openvpn
6614 (package
6615 (name "network-manager-openvpn")
6616 (version "1.8.12")
6617 (source (origin
6618 (method url-fetch)
6619 (uri (string-append
6620 "mirror://gnome/sources/NetworkManager-openvpn/"
6621 (version-major+minor version)
6622 "/NetworkManager-openvpn-" version ".tar.xz"))
6623 (sha256
6624 (base32
6625 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
6626 (build-system gnu-build-system)
6627 (arguments
6628 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6629 #:phases
6630 (modify-phases %standard-phases
6631 (add-after 'configure 'patch-path
6632 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6633 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6634 "/sbin/openvpn"))
6635 (modprobe (string-append (assoc-ref inputs "kmod")
6636 "/bin/modprobe"))
6637 (pretty-ovpn (string-append "\"" ovpn "\"")))
6638 (for-each
6639 (lambda (file)
6640 (substitute* file
6641 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6642 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6643 (("\"/sbin/openvpn\"") pretty-ovpn)
6644 (("/sbin/modprobe") modprobe)))
6645 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6646 #t)))))
6647 (native-inputs
6648 `(("pkg-config" ,pkg-config)
6649 ("intltool" ,intltool)))
6650 (inputs
6651 `(("gtk+" ,gtk+)
6652 ("kmod" ,kmod)
6653 ("openvpn" ,openvpn)
6654 ("network-manager" ,network-manager)
6655 ("libnma" ,libnma)
6656 ("libsecret" ,libsecret)))
6657 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6658 (synopsis "OpenVPN plug-in for NetworkManager")
6659 (description
6660 "This extension of NetworkManager allows it to take care of connections
6661 to virtual private networks (VPNs) via OpenVPN.")
6662 (license license:gpl2+)
6663 (properties `((upstream-name . "NetworkManager-openvpn")))))
6664
6665 (define-public network-manager-vpnc
6666 (package
6667 (name "network-manager-vpnc")
6668 (version "1.2.6")
6669 (source (origin
6670 (method url-fetch)
6671 (uri (string-append
6672 "mirror://gnome/sources/NetworkManager-vpnc/"
6673 (version-major+minor version)
6674 "/NetworkManager-vpnc-" version ".tar.xz"))
6675 (sha256
6676 (base32
6677 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6678 (build-system gnu-build-system)
6679 (arguments
6680 `(#:configure-flags '("--enable-absolute-paths"
6681 "--localstatedir=/var"
6682 ;; libnm-glib has been removed from network-manager
6683 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
6684 "--with-libnm-glib=no")
6685 #:phases
6686 (modify-phases %standard-phases
6687 (add-after 'configure 'patch-path
6688 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6689 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6690 "/sbin/vpnc"))
6691 (modprobe (string-append (assoc-ref inputs "kmod")
6692 "/bin/modprobe"))
6693 (pretty-ovpn (string-append "\"" vpnc "\"")))
6694 (substitute* "src/nm-vpnc-service.c"
6695 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6696 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6697 (("\"/sbin/vpnc\"") pretty-ovpn)
6698 (("/sbin/modprobe") modprobe)))
6699 #t)))))
6700 (native-inputs
6701 `(("pkg-config" ,pkg-config)
6702 ("intltool" ,intltool)))
6703 (inputs
6704 `(("gtk+" ,gtk+)
6705 ("kmod" ,kmod)
6706 ("vpnc" ,vpnc)
6707 ("network-manager" ,network-manager)
6708 ("libnma" ,libnma)
6709 ("libsecret" ,libsecret)))
6710 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6711 (synopsis "VPNC plug-in for NetworkManager")
6712 (description
6713 "Support for configuring virtual private networks based on VPNC.
6714 Compatible with Cisco VPN concentrators configured to use IPsec.")
6715 (license license:gpl2+)
6716 (properties `((upstream-name . "NetworkManager-vpnc")))))
6717
6718 (define-public network-manager-openconnect
6719 (package
6720 (name "network-manager-openconnect")
6721 (version "1.2.6")
6722 (source (origin
6723 (method url-fetch)
6724 (uri (string-append
6725 "mirror://gnome/sources/NetworkManager-openconnect/"
6726 (version-major+minor version)
6727 "/NetworkManager-openconnect-" version ".tar.xz"))
6728 (sha256
6729 (base32
6730 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6731 (build-system gnu-build-system)
6732 (arguments
6733 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6734 #:phases
6735 (modify-phases %standard-phases
6736 (add-after 'configure 'patch-path
6737 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6738 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6739 "/sbin/openconnect"))
6740 (modprobe (string-append (assoc-ref inputs "kmod")
6741 "/bin/modprobe"))
6742 (pretty-ovpn (string-append "\"" openconnect "\"")))
6743 (substitute* "src/nm-openconnect-service.c"
6744 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6745 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6746 (("/sbin/modprobe") modprobe)))
6747 #t)))))
6748 (native-inputs
6749 `(("intltool" ,intltool)
6750 ("libnma" ,libnma)
6751 ("pkg-config" ,pkg-config)))
6752 (inputs
6753 `(("gcr" ,gcr)
6754 ("gtk+" ,gtk+)
6755 ("kmod" ,kmod)
6756 ("libsecret" ,libsecret)
6757 ("libxml2" ,libxml2)
6758 ("lz4" ,lz4)
6759 ("network-manager" ,network-manager)
6760 ("openconnect" ,openconnect)))
6761 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6762 (synopsis "OpenConnect plug-in for NetworkManager")
6763 (description
6764 "This extension of NetworkManager allows it to take care of connections
6765 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6766 Cisco's AnyConnect SSL VPN.")
6767 (license license:gpl2+)
6768 (properties `((upstream-name . "NetworkManager-openconnect")
6769
6770 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6771 ;; file refers to account "nm-openconnect". Specify it here
6772 ;; so that 'network-manager-service-type' creates it.
6773 (user-accounts . ("nm-openconnect"))))))
6774
6775 (define-public mobile-broadband-provider-info
6776 (package
6777 (name "mobile-broadband-provider-info")
6778 (version "20190116")
6779 (source (origin
6780 (method url-fetch)
6781 (uri (string-append
6782 "mirror://gnome/sources/"
6783 "mobile-broadband-provider-info/" version "/"
6784 "mobile-broadband-provider-info-" version ".tar.xz"))
6785 (sha256
6786 (base32
6787 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6788 (build-system gnu-build-system)
6789 (arguments
6790 `(#:tests? #f)) ; no tests
6791 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6792 (synopsis "Database of broadband connection configuration")
6793 (description "Database of broadband connection configuration.")
6794 (license license:public-domain)))
6795
6796 (define-public network-manager-applet
6797 (package
6798 (name "network-manager-applet")
6799 (version "1.16.0")
6800 (source (origin
6801 (method url-fetch)
6802 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6803 (version-major+minor version) "/"
6804 "network-manager-applet-" version ".tar.xz"))
6805 (sha256
6806 (base32
6807 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
6808 (build-system meson-build-system)
6809 (arguments
6810 '(#:glib-or-gtk? #t))
6811 (native-inputs
6812 `(("intltool" ,intltool)
6813 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6814 ("gobject-introspection" ,gobject-introspection)
6815 ("gtk-doc" ,gtk-doc)
6816 ("pkg-config" ,pkg-config)))
6817 (propagated-inputs
6818 ;; libnm-gtk.pc refers to all these.
6819 `(("dbus-glib" ,dbus-glib)
6820 ("gtk+" ,gtk+)
6821 ("network-manager" ,network-manager)
6822 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
6823 ("libnma" ,libnma)))
6824 (inputs
6825 `(("gcr" ,gcr)
6826 ("libgudev" ,libgudev)
6827 ("libnotify" ,libnotify)
6828 ("libsecret" ,libsecret)
6829 ("libselinux" ,libselinux)
6830 ("jansson" ,jansson) ; for team support
6831 ("modem-manager" ,modem-manager)))
6832 (synopsis "Applet for managing network connections")
6833 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6834 (description
6835 "This package contains a systray applet for NetworkManager. It displays
6836 the available networks and allows users to easily switch between them.")
6837 (license license:gpl2+)))
6838
6839 (define-public libxml++
6840 (package
6841 (name "libxml++")
6842 (version "3.0.1")
6843 (source (origin
6844 (method url-fetch)
6845 (uri (string-append "mirror://gnome/sources/" name "/"
6846 (version-major+minor version) "/"
6847 name "-" version ".tar.xz"))
6848 (sha256
6849 (base32
6850 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6851 (build-system gnu-build-system)
6852 ;; libxml++-3.0.pc refers to all these.
6853 (propagated-inputs
6854 `(("libxml2" ,libxml2)
6855 ("glibmm" ,glibmm)))
6856 (native-inputs
6857 `(("perl" ,perl)
6858 ("pkg-config" ,pkg-config)))
6859 (home-page "http://libxmlplusplus.sourceforge.net/")
6860 (synopsis "C++ wrapper for XML parser library libxml2")
6861 (description
6862 "This package provides a C++ wrapper for the XML parser library
6863 libxml2.")
6864 (license license:lgpl2.1+)))
6865
6866 (define-public libxml++-2
6867 (package
6868 (inherit libxml++)
6869 (name "libxml++")
6870 (version "2.40.1")
6871 (source (origin
6872 (method url-fetch)
6873 (uri (string-append "mirror://gnome/sources/" name "/"
6874 (version-major+minor version) "/"
6875 name "-" version ".tar.xz"))
6876 (sha256
6877 (base32
6878 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6879
6880 (define-public gdm
6881 (package
6882 (name "gdm")
6883 (version "3.34.1")
6884 (source (origin
6885 (method url-fetch)
6886 (uri (string-append "mirror://gnome/sources/" name "/"
6887 (version-major+minor version) "/"
6888 name "-" version ".tar.xz"))
6889 (sha256
6890 (base32
6891 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
6892 (patches (search-patches "gdm-default-session.patch"))))
6893 (build-system glib-or-gtk-build-system)
6894 (arguments
6895 '(#:configure-flags
6896 `("--without-plymouth"
6897 "--disable-systemd-journal"
6898
6899 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6900 ;; instead of having to replace it (i.e., stopping the mingetty
6901 ;; service for TTY 1 before starting GDM).
6902 "--with-initial-vt=7"
6903
6904 ;; Use '/etc/environment' for locale settings instead of the
6905 ;; systemd-specific '/etc/locale.conf'.
6906 "--with-lang-file=/etc/environment"
6907
6908 ,(string-append "--with-udevdir="
6909 (assoc-ref %outputs "out") "/lib/udev")
6910
6911 "--localstatedir=/var"
6912 ,(string-append "--with-default-path="
6913 (string-join '("/run/setuid-programs"
6914 "/run/current-system/profile/bin"
6915 "/run/current-system/profile/sbin")
6916 ":"))
6917 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6918 ;; XDG_DATA_DIRS so that it finds its schemas.
6919 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6920 #:phases
6921 (modify-phases %standard-phases
6922 (add-before
6923 'configure 'pre-configure
6924 (lambda* (#:key inputs outputs #:allow-other-keys)
6925 ;; We don't have <systemd/sd-daemon.h>.
6926 (substitute* '("common/gdm-log.c"
6927 "daemon/gdm-server.c"
6928 "daemon/gdm-session-worker.c"
6929 "daemon/gdm-session-worker-job.c")
6930 (("#include <systemd/sd-daemon\\.h>") ""))
6931 ;; Use elogind for sd-login.
6932 (substitute* '("common/gdm-common.c"
6933 "daemon/gdm-local-display-factory.c"
6934 "daemon/gdm-manager.c"
6935 "libgdm/gdm-user-switching.c")
6936 (("#include <systemd/sd-login\\.h>")
6937 "#include <elogind/sd-login.h>"))
6938 ;; Check for elogind.
6939 (substitute* '("configure")
6940 (("libsystemd")
6941 "libelogind"))
6942 ;; Look for system-installed sessions in
6943 ;; /run/current-system/profile/share.
6944 (substitute* '("libgdm/gdm-sessions.c"
6945 "daemon/gdm-session.c"
6946 "daemon/gdm-display.c"
6947 "daemon/gdm-launch-environment.c")
6948 (("DATADIR \"/x")
6949 "\"/run/current-system/profile/share/x")
6950 (("DATADIR \"/wayland")
6951 "\"/run/current-system/profile/share/wayland")
6952 (("DATADIR \"/gnome")
6953 "\"/run/current-system/profile/share/gnome"))
6954 (let ((propagate '("GDM_CUSTOM_CONF"
6955 "GDM_DBUS_DAEMON"
6956 "GDM_X_SERVER"
6957 "GDM_X_SESSION"
6958 ;; XXX: Remove this once GNOME Shell is
6959 ;; a dependency of GDM.
6960 "XDG_DATA_DIRS")))
6961 (substitute* "daemon/gdm-session.c"
6962 (("set_up_session_environment \\(self\\);")
6963 (apply string-append
6964 "set_up_session_environment (self);\n"
6965 (map (lambda (name)
6966 (string-append
6967 "gdm_session_set_environment_variable "
6968 "(self, \"" name "\","
6969 "g_getenv (\"" name "\"));\n"))
6970 propagate)))))
6971 ;; Find the configuration file using an environment variable.
6972 (substitute* '("common/gdm-settings.c")
6973 (("GDM_CUSTOM_CONF")
6974 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6975 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6976 " : GDM_CUSTOM_CONF)")))
6977 ;; Use service-supplied path to X.
6978 (substitute* '("daemon/gdm-server.c")
6979 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6980 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6981 (substitute* '("daemon/gdm-wayland-session.c"
6982 "daemon/gdm-x-session.c")
6983 (("\"dbus-daemon\"")
6984 "g_getenv (\"GDM_DBUS_DAEMON\")")
6985 (("X_SERVER")
6986 "g_getenv (\"GDM_X_SERVER\")")
6987 (("GDMCONFDIR \"/Xsession\"")
6988 "g_getenv (\"GDM_X_SESSION\")"))
6989 ;; Use an absolute path for GNOME Session.
6990 (substitute* "daemon/gdm-launch-environment.c"
6991 (("\"gnome-session\"")
6992 (string-append "\"" (assoc-ref inputs "gnome-session")
6993 "/bin/gnome-session\"")))
6994 ;; Do not automatically select the placeholder session.
6995 (substitute* "daemon/gdm-session.c"
6996 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6997 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6998 "(g_strcmp0(search_dirs[i], \""
6999 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7000 "\") == 0 && "
7001 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7002 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
7003 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
7004 #t))
7005 ;; GDM requires that there be at least one desktop entry
7006 ;; file. This phase installs a hidden one that simply
7007 ;; fails. This enables users to use GDM with a
7008 ;; '~/.xsession' script with no other desktop entry files.
7009 ;; See <https://bugs.gnu.org/35068>.
7010 (add-after 'install 'install-placeholder-desktop-entry
7011 (lambda* (#:key inputs outputs #:allow-other-keys)
7012 (let* ((out (assoc-ref outputs "out"))
7013 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7014 (fail (string-append sessions "/fail.desktop")))
7015 (mkdir-p sessions)
7016 (with-output-to-file fail
7017 (lambda ()
7018 (for-each
7019 display
7020 '("[Desktop Entry]\n"
7021 "Encoding=UTF-8\n"
7022 "Type=Application\n"
7023 "Name=Fail\n"
7024 "Comment=This session fails immediately.\n"
7025 "NoDisplay=true\n"
7026 "Exec=false\n"))))
7027 #t)))
7028 ;; GDM needs GNOME Session to run these applications. We link
7029 ;; their autostart files in `share/gdm/greeter/autostart'
7030 ;; because GDM explicitly tells GNOME Session to look there.
7031 ;;
7032 ;; XXX: GNOME Shell should be linked here too, but currently
7033 ;; GNOME Shell depends on GDM.
7034 (add-after 'install 'link-autostart-files
7035 (lambda* (#:key inputs outputs #:allow-other-keys)
7036 (let* ((out (assoc-ref outputs "out"))
7037 (autostart (string-append out "/share/gdm/"
7038 "greeter/autostart"))
7039 (settings (assoc-ref inputs "gnome-settings-daemon")))
7040 (mkdir-p autostart)
7041 (with-directory-excursion autostart
7042 (for-each (lambda (desktop)
7043 (symlink desktop (basename desktop)))
7044 (find-files (string-append settings "/etc/xdg"))))
7045 #t))))))
7046 (native-inputs
7047 `(("dconf" ,dconf)
7048 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7049 ("gobject-introspection" ,gobject-introspection)
7050 ("intltool" ,intltool)
7051 ("itstool" ,itstool)
7052 ("pkg-config" ,pkg-config)
7053 ("xmllint" ,libxml2)))
7054 (inputs
7055 `(("accountsservice" ,accountsservice)
7056 ("check" ,check) ; for testing
7057 ("elogind" ,elogind)
7058 ("gnome-session" ,gnome-session)
7059 ("gnome-settings-daemon" ,gnome-settings-daemon)
7060 ("gtk+" ,gtk+)
7061 ("iso-codes" ,iso-codes)
7062 ("libcanberra" ,libcanberra)
7063 ("linux-pam" ,linux-pam)))
7064 (synopsis "Display manager for GNOME")
7065 (home-page "https://wiki.gnome.org/Projects/GDM/")
7066 (description
7067 "GNOME Display Manager is a system service that is responsible for
7068 providing graphical log-ins and managing local and remote displays.")
7069 (license license:gpl2+)))
7070
7071 (define-public libgtop
7072 (package
7073 (name "libgtop")
7074 (version "2.40.0")
7075 (source (origin
7076 (method url-fetch)
7077 (uri (string-append "mirror://gnome/sources/libgtop/"
7078 (version-major+minor version) "/"
7079 "libgtop-" version ".tar.xz"))
7080 (sha256
7081 (base32
7082 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7083 (build-system gnu-build-system)
7084 (native-inputs
7085 `(("gobject-introspection" ,gobject-introspection)
7086 ("intltool" ,intltool)
7087 ("perl" ,perl)
7088 ("pkg-config" ,pkg-config)))
7089 (propagated-inputs
7090 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7091 (synopsis "Portable system access library")
7092 (home-page "https://www.gnome.org/")
7093 (description
7094 "LibGTop is a library to get system specific data such as CPU and memory
7095 usage and information about running processes.")
7096 (license license:gpl2+)))
7097
7098 (define-public gnome-bluetooth
7099 (package
7100 (name "gnome-bluetooth")
7101 (version "3.34.0")
7102 (source (origin
7103 (method url-fetch)
7104 (uri (string-append "mirror://gnome/sources/" name "/"
7105 (version-major+minor version) "/"
7106 name "-" version ".tar.xz"))
7107 (sha256
7108 (base32
7109 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
7110 (build-system meson-build-system)
7111 (native-inputs
7112 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7113 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7114 ("gobject-introspection" ,gobject-introspection)
7115 ("intltool" ,intltool)
7116 ("pkg-config" ,pkg-config)
7117 ("xmllint" ,libxml2)))
7118 (propagated-inputs
7119 ;; gnome-bluetooth-1.0.pc refers to all these.
7120 `(("glib" ,glib)
7121 ("gtk+" ,gtk+)))
7122 (inputs
7123 `(("eudev" ,eudev)
7124 ("libcanberra" ,libcanberra)
7125 ("libnotify" ,libnotify)))
7126 (synopsis "GNOME Bluetooth subsystem")
7127 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7128 (description
7129 "This package contains tools for managing and manipulating Bluetooth
7130 devices using the GNOME desktop.")
7131 (license license:lgpl2.1+)))
7132
7133 (define-public gnome-control-center
7134 (package
7135 (name "gnome-control-center")
7136 (version "3.34.2")
7137 (source (origin
7138 (method url-fetch)
7139 (uri (string-append "mirror://gnome/sources/" name "/"
7140 (version-major+minor version) "/"
7141 name "-" version ".tar.xz"))
7142 (sha256
7143 (base32
7144 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7145 (build-system meson-build-system)
7146 (arguments
7147 '(#:glib-or-gtk? #t
7148 #:configure-flags
7149 (list "-Dcheese=false"
7150 (string-append "-Dgnome_session_libexecdir="
7151 (assoc-ref %build-inputs "gnome-session")
7152 "/libexec"))
7153 #:phases
7154 (modify-phases %standard-phases
7155 (add-before 'configure 'patch-paths
7156 (lambda* (#:key inputs #:allow-other-keys)
7157 (let ((libc (assoc-ref inputs "libc"))
7158 (tzdata (assoc-ref inputs "tzdata"))
7159 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7160 (nm-applet (assoc-ref inputs "network-manager-applet"))
7161 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7162 (substitute* "panels/datetime/tz.h"
7163 (("/usr/share/zoneinfo/zone.tab")
7164 (string-append tzdata "/share/zoneinfo/zone.tab")))
7165 (substitute* "tests/datetime/test-endianess.c"
7166 (("/usr/share/locale")
7167 (string-append libc "/share/locale")))
7168 (substitute* "panels/region/cc-region-panel.c"
7169 (("\"gkbd-keyboard-display")
7170 (string-append "\"" libgnomekbd
7171 "/bin/gkbd-keyboard-display")))
7172 (substitute* '("panels/network/net-device-wifi.c"
7173 "panels/network/net-device.c"
7174 "panels/network/connection-editor/net-connection-editor.c")
7175 (("\"nm-connection-editor")
7176 (string-append "\"" nm-applet
7177 "/bin/nm-connection-editor")))
7178 (substitute* '("panels/user-accounts/run-passwd.c")
7179 (("/usr/bin/passwd")
7180 "/run/setuid-programs/passwd"))
7181 (substitute* "panels/info/cc-info-overview-panel.c"
7182 (("DATADIR \"/gnome/gnome-version.xml\"")
7183 (string-append "\"" gnome-desktop
7184 "/share/gnome/gnome-version.xml\"")))
7185 #t)))
7186 (add-after 'unpack 'skip-gtk-update-icon-cache
7187 ;; Don't create 'icon-theme.cache'.
7188 (lambda _
7189 (substitute* "build-aux/meson/meson_post_install.py"
7190 (("gtk-update-icon-cache") (which "true")))
7191 #t)))))
7192 (native-inputs
7193 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7194 ("intltool" ,intltool)
7195 ("pkg-config" ,pkg-config)
7196 ("xsltproc" ,libxslt)
7197 ;; For tests
7198 ("hicolor-icon-theme" ,hicolor-icon-theme)
7199 ("python-dbusmock" ,python-dbusmock)
7200 ("xorg-server" ,xorg-server-for-tests)))
7201 (inputs
7202 `(("accountsservice" ,accountsservice)
7203 ("clutter-gtk" ,clutter-gtk)
7204 ("colord-gtk" ,colord-gtk)
7205 ("cups" ,cups)
7206 ("dconf" ,dconf)
7207 ("docbook-xsl" ,docbook-xsl)
7208 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7209 ("gnome-bluetooth" ,gnome-bluetooth)
7210 ("gnome-desktop" ,gnome-desktop)
7211 ("gnome-online-accounts" ,gnome-online-accounts)
7212 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7213 ("gnome-session" ,gnome-session)
7214 ("gnome-settings-daemon" ,gnome-settings-daemon)
7215 ("grilo" ,grilo)
7216 ("gsound" ,gsound)
7217 ("ibus" ,ibus)
7218 ("libcanberra" ,libcanberra)
7219 ("libgnomekbd" ,libgnomekbd)
7220 ("libgudev" ,libgudev)
7221 ("libgtop" ,libgtop)
7222 ("libnma" ,libnma)
7223 ("libpwquality" ,libpwquality)
7224 ("libsecret" ,libsecret)
7225 ("libsoup" ,libsoup)
7226 ("libxml2" ,libxml2)
7227 ("libwacom" ,libwacom)
7228 ("mesa" ,mesa)
7229 ("mit-krb5" ,mit-krb5)
7230 ("modem-manager" ,modem-manager)
7231 ("network-manager-applet" ,network-manager-applet)
7232 ("polkit" ,polkit)
7233 ("pulseaudio" ,pulseaudio)
7234 ("smbclient" ,samba)
7235 ("tzdata" ,tzdata)
7236 ("udisks" ,udisks)
7237 ("upower" ,upower)))
7238 (synopsis "Utilities to configure the GNOME desktop")
7239 (home-page "https://www.gnome.org/")
7240 (description
7241 "This package contains configuration applets for the GNOME desktop,
7242 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7243 properties, sound setup, desktop theme and background, user interface
7244 properties, screen resolution, and other GNOME parameters.")
7245 (license license:gpl2+)))
7246
7247 (define-public gnome-shell
7248 (package
7249 (name "gnome-shell")
7250 (version "3.34.2")
7251 (source (origin
7252 (method url-fetch)
7253 (uri (string-append "mirror://gnome/sources/" name "/"
7254 (version-major+minor version) "/"
7255 name "-" version ".tar.xz"))
7256 (sha256
7257 (base32
7258 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7259 (patches (search-patches "gnome-shell-theme.patch"
7260 "gnome-shell-disable-test.patch"))
7261 (modules '((guix build utils)))
7262 (snippet
7263 #~(begin
7264 ;; Copy images for use on the GDM log-in screen.
7265 (copy-file #$(file-append %artwork-repository
7266 "/slim/0.x/background.png")
7267 "data/theme/guix-background.png")
7268 (copy-file #$(file-append %artwork-repository
7269 "/logo/Guix-horizontal-white.svg")
7270 "data/theme/guix-logo.svg")
7271 #t))))
7272 (build-system meson-build-system)
7273 (arguments
7274 `(#:glib-or-gtk? #t
7275 #:disallowed-references ((,glib "bin")
7276 ,inkscape ,libxslt
7277 ,ruby-sass)
7278 #:configure-flags
7279 (list "-Dsystemd=false"
7280 ;; Otherwise, the RUNPATH will lack the final path component.
7281 (string-append "-Dc_link_args=-Wl,-rpath="
7282 (assoc-ref %outputs "out")
7283 "/lib/gnome-shell"))
7284
7285 #:modules ((guix build meson-build-system)
7286 (guix build utils)
7287 (srfi srfi-1))
7288
7289 #:phases
7290 (modify-phases %standard-phases
7291 (add-after 'unpack 'fix-keysdir
7292 (lambda* (#:key outputs #:allow-other-keys)
7293 (let* ((out (assoc-ref outputs "out"))
7294 (keysdir (string-append
7295 out "/share/gnome-control-center/keybindings")))
7296 (substitute* "meson.build"
7297 (("keysdir =.*")
7298 (string-append "keysdir = '" keysdir "'\n")))
7299 #t)))
7300 (add-before 'configure 'convert-logo-to-png
7301 (lambda* (#:key inputs #:allow-other-keys)
7302 ;; Convert the logo from SVG to PNG.
7303 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7304 "data/theme/guix-logo.svg")))
7305 (add-before 'configure 'record-absolute-file-names
7306 (lambda* (#:key inputs #:allow-other-keys)
7307 (substitute* "js/misc/ibusManager.js"
7308 (("'ibus-daemon'")
7309 (string-append "'" (assoc-ref inputs "ibus")
7310 "/bin/ibus-daemon'")))
7311 (substitute* "js/ui/status/keyboard.js"
7312 (("'gkbd-keyboard-display'")
7313 (string-append "'" (assoc-ref inputs "libgnomekbd")
7314 "/bin/gkbd-keyboard-display'")))
7315 #t))
7316 (add-before 'check 'pre-check
7317 (lambda* (#:key inputs #:allow-other-keys)
7318 ;; Tests require a running X server.
7319 (system "Xvfb :1 &")
7320 (setenv "DISPLAY" ":1")
7321 #t))
7322 (add-after 'install 'wrap-programs
7323 (lambda* (#:key inputs outputs #:allow-other-keys)
7324 (let ((out (assoc-ref outputs "out"))
7325 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7326 (python-path (getenv "PYTHONPATH")))
7327 (wrap-program (string-append out "/bin/gnome-shell")
7328 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7329 ;; FIXME: gnome-shell loads these libraries with unqualified
7330 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7331 ;; alternative might be to patch gnome-shell.
7332 `("LD_LIBRARY_PATH" ":" prefix
7333 ,(map (lambda (pkg)
7334 (string-append (assoc-ref inputs pkg) "/lib"))
7335 '("gdk-pixbuf"
7336 "gnome-bluetooth" "librsvg" "libgweather"))))
7337 (for-each
7338 (lambda (prog)
7339 (wrap-program (string-append out "/bin/" prog)
7340 `("PYTHONPATH" ":" prefix (,python-path))
7341 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7342 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7343 #t)))
7344 (replace 'glib-or-gtk-wrap
7345 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7346 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7347 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7348 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7349 ;; phase. Fix that since we don't need these.
7350 (wrap #:inputs (fold alist-delete inputs
7351 '("inkscape" "intltool" "glib:bin"))
7352 #:outputs outputs)))))))
7353 (native-inputs
7354 `(("asciidoc" ,asciidoc)
7355 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7356 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7357 ("gobject-introspection" ,gobject-introspection)
7358 ("inkscape" ,inkscape)
7359 ("intltool" ,intltool)
7360 ("pkg-config" ,pkg-config)
7361 ("python" ,python)
7362 ("ruby-sass" ,ruby-sass)
7363 ("sassc" ,sassc)
7364 ("xsltproc" ,libxslt)
7365 ;; For tests
7366 ("xorg-server" ,xorg-server-for-tests)))
7367 (inputs
7368 `(("accountsservice" ,accountsservice)
7369 ("caribou" ,caribou)
7370 ("docbook-xsl" ,docbook-xsl)
7371 ("evolution-data-server" ,evolution-data-server)
7372 ("gcr" ,gcr)
7373 ("gdm" ,gdm)
7374 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7375 ("gjs" ,gjs)
7376 ("gnome-autoar" ,gnome-autoar)
7377 ("gnome-bluetooth" ,gnome-bluetooth)
7378 ("gnome-desktop" ,gnome-desktop)
7379 ("gnome-settings-daemon" ,gnome-settings-daemon)
7380 ("gst-plugins-base" ,gst-plugins-base)
7381 ("ibus" ,ibus)
7382 ("libcanberra" ,libcanberra)
7383 ("libcroco" ,libcroco)
7384 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7385 ("libgweather" ,libgweather)
7386 ("libnma" ,libnma)
7387 ("libsoup" ,libsoup)
7388 ("mesa-headers" ,mesa-headers)
7389 ("mutter" ,mutter)
7390 ("network-manager-applet" ,network-manager-applet)
7391 ("polkit" ,polkit)
7392 ("pulseaudio" ,pulseaudio)
7393 ("python-pygobject" ,python-pygobject)
7394 ("startup-notification" ,startup-notification)
7395 ("telepathy-logger" ,telepathy-logger)
7396 ("upower" ,upower)
7397 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7398 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7399 ("librsvg" ,librsvg)
7400 ("geoclue" ,geoclue)))
7401 (synopsis "Desktop shell for GNOME")
7402 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7403 (description
7404 "GNOME Shell provides core user interface functions for the GNOME desktop,
7405 like switching to windows and launching applications.")
7406 (license license:gpl2+)))
7407
7408 (define-public gtk-vnc
7409 (package
7410 (name "gtk-vnc")
7411 (version "0.9.0")
7412 (source
7413 (origin
7414 (method url-fetch)
7415 (uri (string-append "mirror://gnome/sources/" name "/"
7416 (version-major+minor version) "/"
7417 name "-" version ".tar.xz"))
7418 (sha256
7419 (base32
7420 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7421 (build-system gnu-build-system)
7422 (arguments
7423 '(#:configure-flags '("--with-gtk=3.0")))
7424 (propagated-inputs
7425 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7426 (inputs
7427 `(("cyrus-sasl" ,cyrus-sasl)
7428 ("gnutls" ,gnutls)
7429 ("libgcrypt" ,libgcrypt)
7430 ("pulseaudio" ,pulseaudio)))
7431 (native-inputs
7432 `(("glib:bin" ,glib "bin")
7433 ("gobject-introspection" ,gobject-introspection)
7434 ("intltool" ,intltool)
7435 ("pkg-config" ,pkg-config)
7436 ("python-wrapper" ,python-wrapper)
7437 ("vala" ,vala)))
7438 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7439 (synopsis "VNC viewer widget for GTK+")
7440 (description
7441 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7442 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7443 GTK-VNC implements client side RFB protocol and authentication extensions such
7444 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7445 (license license:lgpl2.1+)))
7446
7447 (define-public gnome-autoar
7448 (package
7449 (name "gnome-autoar")
7450 (version "0.2.4")
7451 (source (origin
7452 (method url-fetch)
7453 (uri (string-append "mirror://gnome/sources/" name "/"
7454 (version-major+minor version) "/"
7455 name "-" version ".tar.xz"))
7456 (sha256
7457 (base32
7458 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
7459 (build-system glib-or-gtk-build-system)
7460 (native-inputs
7461 `(("gobject-introspection" ,gobject-introspection)
7462 ("pkg-config" ,pkg-config)))
7463 (propagated-inputs
7464 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
7465 (inputs
7466 `(("gtk+" ,gtk+)))
7467 (synopsis "Archives integration support for GNOME")
7468 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7469 (description
7470 "GNOME Autoar is a library which makes creating and extracting archives
7471 easy, safe, and automatic.")
7472 (license license:lgpl2.1+)))
7473
7474 (define-public tracker
7475 (package
7476 (name "tracker")
7477 (version "2.3.4")
7478 (source (origin
7479 (method url-fetch)
7480 (uri (string-append "mirror://gnome/sources/tracker/"
7481 (version-major+minor version) "/"
7482 "tracker-" version ".tar.xz"))
7483 (sha256
7484 (base32
7485 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7486 (build-system meson-build-system)
7487 (arguments
7488 `(#:glib-or-gtk? #t
7489 #:configure-flags
7490 ;; Otherwise, the RUNPATH will lack the final path component.
7491 (list (string-append "-Dc_link_args=-Wl,-rpath="
7492 (assoc-ref %outputs "out") "/lib:"
7493 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7494 #:phases
7495 (modify-phases %standard-phases
7496 (add-before 'check 'pre-check
7497 (lambda _
7498 ;; Some tests expect to write to $HOME.
7499 (setenv "HOME" "/tmp")
7500 #t)))))
7501 (native-inputs
7502 `(("glib:bin" ,glib "bin")
7503 ("gobject-introspection" ,gobject-introspection)
7504 ("python-pygobject" ,python-pygobject)
7505 ("intltool" ,intltool)
7506 ("pkg-config" ,pkg-config)
7507 ("vala" ,vala)))
7508 (inputs
7509 `(("dbus" ,dbus)
7510 ("sqlite" ,sqlite)
7511 ("libxml2" ,libxml2)
7512 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
7513 ("json-glib" ,json-glib)
7514 ("libsoup" ,libsoup)))
7515 (synopsis "Metadata database, indexer and search tool")
7516 (home-page "https://wiki.gnome.org/Projects/Tracker")
7517 (description
7518 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7519
7520 It is a middleware component aimed at desktop application developers who want
7521 their apps to browse and search user content. It's not designed to be used
7522 directly by desktop users, but it provides a commandline tool named
7523 @command{tracker} for the adventurous.
7524
7525 Tracker allows your application to instantly perform full-text searches across
7526 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7527 example. This is achieved by indexing the user's home directory in the
7528 background.
7529
7530 Tracker also allows your application to query and list content that the user
7531 has stored. For example, GNOME Music displays all the music files that are
7532 found by Tracker. This means that GNOME Music doesn't need to maintain a
7533 database of its own.
7534
7535 If you need to go beyond simple searches, Tracker is also a linked data
7536 endpoint and it understands SPARQL. ")
7537 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
7538 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7539 ;; libstemmer is bsd-3 and the rest is gpl2+.
7540 (license (list license:gpl2+
7541 license:bsd-3
7542 license:lgpl2.1+))))
7543
7544 (define-public tracker-miners
7545 (package
7546 (name "tracker-miners")
7547 (version "2.3.3")
7548 (source (origin
7549 (method url-fetch)
7550 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7551 (version-major+minor version)
7552 "/tracker-miners-" version ".tar.xz"))
7553 (sha256
7554 (base32
7555 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
7556 (build-system meson-build-system)
7557 (arguments
7558 `(#:glib-or-gtk? #t
7559 #:configure-flags
7560 (list "-Dminer_rss=false" ; libgrss is required.
7561 ;; Ensure the RUNPATH contains all installed library locations.
7562 (string-append "-Dc_link_args=-Wl,-rpath="
7563 (assoc-ref %outputs "out")
7564 "/lib/tracker-miners-2.0")
7565 ;; TODO: Enable functional tests. Currently, the following error
7566 ;; appears:
7567 ;; Exception: The functional tests require DConf to be the default
7568 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7569 "-Dfunctional_tests=false")))
7570 (native-inputs
7571 `(("dbus" ,dbus)
7572 ("intltool" ,intltool)
7573 ("glib:bin" ,glib "bin")
7574 ("gobject-introspection" ,gobject-introspection)
7575 ("pkg-config" ,pkg-config)
7576 ("python-pygobject" ,python-pygobject)))
7577 (inputs
7578 `(("exempi" ,exempi)
7579 ("ffmpeg" ,ffmpeg)
7580 ("flac" ,flac)
7581 ("giflib" ,giflib)
7582 ("glib" ,glib)
7583 ("gstreamer" ,gstreamer)
7584 ("icu4c" ,icu4c)
7585 ("libcue" ,libcue)
7586 ("libexif" ,libexif)
7587 ("libgsf" ,libgsf)
7588 ("libgxps" ,libgxps)
7589 ("libiptcdata" ,libiptcdata)
7590 ("libjpeg" ,libjpeg-turbo)
7591 ("libosinfo" ,libosinfo)
7592 ("libpng" ,libpng)
7593 ("libseccomp" ,libseccomp)
7594 ("libtiff" ,libtiff)
7595 ("libvorbis" ,libvorbis)
7596 ("libxml2" ,libxml2)
7597 ("poppler" ,poppler)
7598 ("taglib" ,taglib)
7599 ("totem-pl-parser" ,totem-pl-parser)
7600 ("tracker" ,tracker)
7601 ("upower" ,upower)
7602 ("zlib" ,zlib)))
7603 (synopsis "Metadata database, indexer and search tool")
7604 (home-page "https://wiki.gnome.org/Projects/Tracker")
7605 (description
7606 "Tracker is an advanced framework for first class objects with associated
7607 metadata and tags. It provides a one stop solution for all metadata, tags,
7608 shared object databases, search tools and indexing.")
7609 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7610 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7611 (license (list license:gpl2+
7612 license:lgpl2.1+
7613 license:lgpl2.0+))))
7614
7615 (define-public nautilus
7616 (package
7617 (name "nautilus")
7618 (version "3.34.2")
7619 (source (origin
7620 (method url-fetch)
7621 (uri (string-append "mirror://gnome/sources/" name "/"
7622 (version-major+minor version) "/"
7623 name "-" version ".tar.xz"))
7624 (sha256
7625 (base32
7626 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
7627 (build-system meson-build-system)
7628 (arguments
7629 '(#:glib-or-gtk? #t
7630 #:phases
7631 (modify-phases %standard-phases
7632 (add-after 'unpack 'skip-gtk-update-icon-cache
7633 ;; Don't create 'icon-theme.cache'.
7634 (lambda _
7635 (substitute* "build-aux/meson/postinstall.py"
7636 (("gtk-update-icon-cache") "true"))
7637 #t)))
7638 ;; XXX: FAIL: check-nautilus
7639 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7640 #:tests? #f))
7641 (native-inputs
7642 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7643 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7644 ("gobject-introspection" ,gobject-introspection)
7645 ("intltool" ,intltool)
7646 ("pkg-config" ,pkg-config)))
7647 (inputs
7648 `(("dconf" ,dconf)
7649 ("gexiv2" ,gexiv2)
7650 ("gvfs" ,gvfs)
7651 ("exempi" ,exempi)
7652 ("gnome-desktop" ,gnome-desktop)
7653 ("gnome-autoar" ,gnome-autoar)
7654 ("gst-plugins-base" ,gst-plugins-base)
7655 ("libseccomp" ,libseccomp)
7656 ("libselinux" ,libselinux)
7657 ("tracker" ,tracker)
7658 ("tracker-miners" ,tracker-miners)
7659 ;; XXX: gtk+ is required by libnautilus-extension.pc
7660 ;;
7661 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7662 ;; package. See:
7663 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7664 ("gtk+" ,gtk+)
7665 ("libexif" ,libexif)
7666 ("libxml2" ,libxml2)))
7667 (synopsis "File manager for GNOME")
7668 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7669 (description
7670 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7671 design and behaviour, giving the user a simple way to navigate and manage its
7672 files.")
7673 (license license:gpl2+)))
7674
7675 (define-public baobab
7676 (package
7677 (name "baobab")
7678 (version "3.32.0")
7679 (source (origin
7680 (method url-fetch)
7681 (uri (string-append
7682 "mirror://gnome/sources/" name "/"
7683 (version-major+minor version) "/"
7684 name "-" version ".tar.xz"))
7685 (sha256
7686 (base32
7687 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7688 (build-system meson-build-system)
7689 (arguments
7690 '(#:glib-or-gtk? #t))
7691 (native-inputs
7692 `(("intltool" ,intltool)
7693 ("pkg-config" ,pkg-config)
7694 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7695 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7696 ("itstool" ,itstool)
7697 ("xmllint" ,libxml2)
7698 ("glib" ,glib "bin")
7699 ("vala" ,vala)))
7700 (inputs
7701 `(("gtk+" ,gtk+)))
7702 (synopsis "Disk usage analyzer for GNOME")
7703 (description
7704 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7705 usage in the GNOME desktop environment. It can easily scan device volumes or
7706 a specific user-requested directory branch (local or remote). Once the scan
7707 is complete it provides a graphical representation of each selected folder.")
7708 (home-page "https://wiki.gnome.org/Apps/Baobab")
7709 (license license:gpl2+)))
7710
7711 (define-public gnome-backgrounds
7712 (package
7713 (name "gnome-backgrounds")
7714 (version "3.34.0")
7715 (source
7716 (origin
7717 (method url-fetch)
7718 (uri (string-append "mirror://gnome/sources/" name "/"
7719 (version-major+minor version) "/"
7720 name "-" version ".tar.xz"))
7721 (sha256
7722 (base32
7723 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
7724 (build-system meson-build-system)
7725 (native-inputs
7726 `(("intltool" ,intltool)))
7727 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7728 (synopsis "Background images for the GNOME desktop")
7729 (description
7730 "GNOME backgrounds package contains a collection of graphics files which
7731 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7732 the package creates the proper framework and directory structure so that you
7733 can add your own files to the collection.")
7734 (license (list license:gpl2+
7735 license:cc-by2.0
7736 license:cc-by-sa2.0
7737 license:cc-by-sa3.0))))
7738
7739 (define-public gnome-screenshot
7740 (package
7741 (name "gnome-screenshot")
7742 (version "3.34.0")
7743 (source
7744 (origin
7745 (method url-fetch)
7746 (uri (string-append "mirror://gnome/sources/" name "/"
7747 (version-major+minor version) "/"
7748 name "-" version ".tar.xz"))
7749 (sha256
7750 (base32
7751 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
7752 (build-system meson-build-system)
7753 (arguments
7754 '(#:phases
7755 (modify-phases %standard-phases
7756 (add-after 'unpack 'skip-gtk-update-icon-cache
7757 ;; Don't create 'icon-theme.cache'.
7758 (lambda _
7759 (substitute* "build-aux/postinstall.py"
7760 (("gtk-update-icon-cache") "true"))
7761 #t)))))
7762 (native-inputs
7763 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7764 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7765 ("intltool" ,intltool)
7766 ("appstream-glib" ,appstream-glib)
7767 ("pkg-config" ,pkg-config)))
7768 (inputs
7769 `(("gtk+" ,gtk+)
7770 ("libcanberra" ,libcanberra)
7771 ("libx11" ,libx11)
7772 ("libxext" ,libxext)))
7773 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7774 (synopsis "Take pictures of your screen")
7775 (description
7776 "GNOME Screenshot is a utility used for taking screenshots of the entire
7777 screen, a window or a user defined area of the screen, with optional
7778 beautifying border effects.")
7779 (license license:gpl2+)))
7780
7781 (define-public dconf-editor
7782 (package
7783 (name "dconf-editor")
7784 (version "3.34.2")
7785 (source
7786 (origin
7787 (method url-fetch)
7788 (uri (string-append "mirror://gnome/sources/" name "/"
7789 (version-major+minor version) "/"
7790 name "-" version ".tar.xz"))
7791 (sha256
7792 (base32
7793 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
7794 (build-system meson-build-system)
7795 (native-inputs
7796 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7797 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7798 ("intltool" ,intltool)
7799 ("pkg-config" ,pkg-config)
7800 ("vala" ,vala)))
7801 (inputs
7802 `(("dconf" ,dconf)
7803 ("gtk+" ,gtk+)
7804 ("libxml2" ,libxml2)))
7805 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
7806 (synopsis "Graphical editor for GNOME's dconf configuration system")
7807 (description
7808 "Dconf-editor is a graphical tool for browsing and editing the dconf
7809 configuration system for GNOME. It allows users to configure desktop
7810 software that do not provide their own configuration interface.")
7811 (license license:lgpl2.1+)))
7812
7813 (define-public gnome-default-applications
7814 (package
7815 (name "gnome-default-applications")
7816 (version "0")
7817 (build-system trivial-build-system)
7818 (source #f)
7819 (propagated-inputs
7820 `(("nautilus" ,nautilus)
7821 ("evince" ,evince)))
7822 (arguments
7823 `(#:modules ((guix build utils))
7824 #:builder
7825 (begin
7826 (use-modules (guix build utils))
7827 (let* ((out (assoc-ref %outputs "out"))
7828 (apps (string-append out "/share/applications")))
7829 (mkdir-p apps)
7830 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
7831 (lambda (port)
7832 (format port "[Default Applications]\n")
7833 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7834 (format port "application/pdf=evince.desktop\n")
7835 (format port "application/postscript=evince.desktop\n")))
7836 #t))))
7837 (synopsis "Default MIME type associations for the GNOME desktop")
7838 (description
7839 "Given many installed packages which might handle a given MIME type, a
7840 user running the GNOME desktop probably has some preferences: for example,
7841 that folders be opened by default by the Nautilus file manager, not the Baobab
7842 disk usage analyzer. This package establishes that set of default MIME type
7843 associations for GNOME.")
7844 (license license:gpl3+)
7845 (home-page #f)))
7846
7847 (define-public libgovirt
7848 (package
7849 (name "libgovirt")
7850 (version "0.3.6")
7851 (source (origin
7852 (method url-fetch)
7853 (uri (string-append "mirror://gnome/sources/" name "/"
7854 (version-major+minor version) "/"
7855 name "-" version ".tar.xz"))
7856 (sha256
7857 (base32
7858 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7859 (build-system glib-or-gtk-build-system)
7860 (native-inputs
7861 `(("gettext" ,gettext-minimal)
7862 ("glib:bin" ,glib "bin")
7863 ("gobject-introspection" ,gobject-introspection)
7864 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7865 ("gtk+:bin" ,gtk+ "bin")
7866 ("pkg-config" ,pkg-config)))
7867 (inputs
7868 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7869 ("librest" ,rest)))
7870 (synopsis "GoVirt Library")
7871 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7872 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7873 (license license:gpl2+)))
7874
7875 (define-public gnome-weather
7876 (package
7877 (name "gnome-weather")
7878 (version "3.34.0")
7879 (source (origin
7880 (method url-fetch)
7881 (uri (string-append "mirror://gnome/sources/" name "/"
7882 (version-major+minor version) "/"
7883 name "-" version ".tar.xz"))
7884 (sha256
7885 (base32
7886 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7887 (build-system meson-build-system)
7888 (native-inputs
7889 `(("gettext" ,gettext-minimal)
7890 ("glib:bin" ,glib "bin")
7891 ("gobject-introspection" ,gobject-introspection)
7892 ("gtk+:bin" ,gtk+ "bin")
7893 ("pkg-config" ,pkg-config)))
7894 (inputs
7895 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7896 ("appstream-glib" ,appstream-glib)
7897 ("geoclue" ,geoclue)
7898 ("gdk-pixbuf" ,gdk-pixbuf)
7899 ("gjs" ,gjs)
7900 ("gnome-desktop" ,gnome-desktop)
7901 ("libgweather" ,libgweather)))
7902 (arguments
7903 `(#:glib-or-gtk? #t
7904 #:phases
7905 (modify-phases %standard-phases
7906 (add-after 'install 'fix-desktop-file
7907 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7908 ;; See https://issues.guix.gnu.org/issue/39324.
7909 (lambda* (#:key outputs #:allow-other-keys)
7910 (let* ((out (assoc-ref outputs "out"))
7911 (applications (string-append out "/share/applications")))
7912 (substitute* (string-append applications "/org.gnome.Weather.desktop")
7913 (("Exec=.*") "Exec=gnome-weather\n"))
7914 #t)))
7915 (add-after 'install 'wrap
7916 (lambda* (#:key inputs outputs #:allow-other-keys)
7917 (let ((out (assoc-ref outputs "out"))
7918 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7919 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7920 (wrap-program (string-append out "/bin/gnome-weather")
7921 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7922 #t))))))
7923 (synopsis "Weather monitoring for GNOME desktop")
7924 (description "GNOME Weather is a small application that allows you to
7925 monitor the current weather conditions for your city, or anywhere in the
7926 world.")
7927 (home-page "https://wiki.gnome.org/Apps/Weather")
7928 (license license:gpl2+)))
7929
7930 (define-public gnome
7931 (package
7932 (name "gnome")
7933 (version (package-version gnome-shell))
7934 (source #f)
7935 (build-system trivial-build-system)
7936 (arguments '(#:builder (begin (mkdir %output) #t)))
7937 (propagated-inputs
7938 ;; TODO: Add or remove packages according to:
7939 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7940 `(
7941 ;; GNOME-Core-OS-Services
7942 ("accountsservice" ,accountsservice)
7943 ("network-manager" ,network-manager)
7944 ("packagekit" ,packagekit)
7945 ("upower" ,upower)
7946 ;; GNOME-Core-Shell
7947 ("adwaita-icon-theme" ,adwaita-icon-theme)
7948 ("gdm" ,gdm)
7949 ("glib-networking" ,glib-networking)
7950 ("gnome-backgrounds" ,gnome-backgrounds)
7951 ("gnome-bluetooth" ,gnome-bluetooth)
7952 ("gnome-color-manager" ,gnome-color-manager)
7953 ("gnome-control-center" ,gnome-control-center)
7954 ("gnome-desktop" ,gnome-desktop)
7955 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7956 ("gnome-initial-setup" ,gnome-initial-setup)
7957 ("gnome-keyring" ,gnome-keyring)
7958 ("gnome-menus" ,gnome-menus)
7959 ("gnome-session" ,gnome-session)
7960 ("gnome-settings-daemon" ,gnome-settings-daemon)
7961 ("gnome-shell-extensions" ,gnome-shell-extensions)
7962 ("gnome-shell" ,gnome-shell)
7963 ("gnome-themes-extra" ,gnome-themes-extra)
7964 ("gnome-user-docs" ,gnome-user-docs)
7965 ("gnome-user-share" ,gnome-user-share)
7966 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7967 ("gvfs" ,gvfs)
7968 ("mutter" ,mutter)
7969 ("orca" ,orca)
7970 ("rygel" ,rygel)
7971 ("sushi" ,sushi)
7972 ;; GNOME-Core-Utilities
7973 ("baobab" ,baobab)
7974 ("cheese" ,cheese)
7975 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
7976 ;; only works on x86_64, so exclude it on other architectures.
7977 ,@(if (string-prefix? "x86_64" (%current-system))
7978 `(("eog" ,eog))
7979 '())
7980 ("epiphany" ,epiphany)
7981 ("evince" ,evince)
7982 ("file-roller" ,file-roller)
7983 ("gedit" ,gedit)
7984 ("gnome-boxes" ,gnome-boxes)
7985 ("gnome-calculator" ,gnome-calculator)
7986 ("gnome-calendar" ,gnome-calendar)
7987 ("gnome-characters" ,gnome-characters)
7988 ("gnome-clocks" ,gnome-clocks)
7989 ("gnome-contacts" ,gnome-contacts)
7990 ("gnome-disk-utility" ,gnome-disk-utility)
7991 ("gnome-font-viewer" ,gnome-font-viewer)
7992 ("gnome-maps" ,gnome-maps)
7993 ; TODO: ("gnome-music" ,gnome-music)
7994 ; TODO: ("gnome-photos" ,gnome-photos)
7995 ("gnome-screenshot" ,gnome-screenshot)
7996 ("gnome-system-monitor" ,gnome-system-monitor)
7997 ("gnome-terminal" ,gnome-terminal)
7998 ("gnome-weather" ,gnome-weather)
7999 ("nautilus" ,nautilus)
8000 ("simple-scan" ,simple-scan)
8001 ("totem" ,totem)
8002 ("yelp" ,yelp)
8003 ;; Others
8004 ("hicolor-icon-theme" ,hicolor-icon-theme)
8005 ("gnome-online-accounts" ,gnome-online-accounts)
8006
8007 ;; Packages not part of GNOME proper but that are needed for a good
8008 ;; experience. See <https://bugs.gnu.org/39646>.
8009 ;; XXX: Find out exactly which ones are needed and why.
8010 ("font-cantarell" ,font-cantarell)
8011 ("font-dejavu" ,font-dejavu)
8012 ("at-spi2-core" ,at-spi2-core)
8013 ("dbus" ,dbus)
8014 ("dconf" ,dconf)
8015 ("desktop-file-utils" ,desktop-file-utils)
8016 ("gnome-default-applications" ,gnome-default-applications)
8017 ("gnome-themes-standard" ,gnome-themes-standard)
8018 ("gst-plugins-base" ,gst-plugins-base)
8019 ("gst-plugins-good" ,gst-plugins-good)
8020 ("gucharmap" ,gucharmap)
8021 ("pinentry-gnome3" ,pinentry-gnome3)
8022 ("pulseaudio" ,pulseaudio)
8023 ("shared-mime-info" ,shared-mime-info)
8024 ("system-config-printer" ,system-config-printer)
8025 ("xdg-user-dirs" ,xdg-user-dirs)
8026 ("yelp" ,yelp)
8027 ("zenity" ,zenity)))
8028 (synopsis "The GNU desktop environment")
8029 (home-page "https://www.gnome.org/")
8030 (description
8031 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8032 applications for browsing the web, editing text and images, creating
8033 documents and diagrams, playing media, scanning, and much more.")
8034 (license license:gpl2+)))
8035
8036 (define-public byzanz
8037 ;; The last stable release of Byzanz was in 2011, but there have been many
8038 ;; useful commits made to the Byzanz repository since then that it would be
8039 ;; silly to use such an old release.
8040 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8041 (package
8042 (name "byzanz")
8043 (version (string-append "0.2-1." (string-take commit 7)))
8044 (source (origin
8045 (method git-fetch)
8046 (uri (git-reference
8047 (url "https://git.gnome.org/browse/byzanz")
8048 (commit commit)))
8049 (file-name (string-append name "-" version "-checkout"))
8050 (sha256
8051 (base32
8052 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8053 (build-system glib-or-gtk-build-system)
8054 (arguments
8055 '(#:phases
8056 (modify-phases %standard-phases
8057 (add-before 'bootstrap 'build-without-Werror
8058 (lambda _
8059 ;; The build system cleverly detects that we're not building from
8060 ;; a release tarball and turns on -Werror for GCC.
8061 ;; Unsurprisingly, there is a warning during compilation that
8062 ;; causes the build to fail unnecessarily, so we remove the flag.
8063 (substitute* '("configure.ac")
8064 (("-Werror") ""))
8065 #t)))))
8066 (native-inputs
8067 `(("autoconf" ,autoconf)
8068 ("automake" ,automake)
8069 ("gnome-common" ,gnome-common)
8070 ("intltool" ,intltool)
8071 ("libtool" ,libtool)
8072 ("pkg-config" ,pkg-config)
8073 ("which" ,which)))
8074 (inputs
8075 `(("glib" ,glib)
8076 ("gstreamer" ,gstreamer)
8077 ("gst-plugins-base" ,gst-plugins-base)
8078 ("gtk+" ,gtk+)))
8079 (synopsis "Desktop recording program")
8080 (description "Byzanz is a simple desktop recording program with a
8081 command-line interface. It can record part or all of an X display for a
8082 specified duration and save it as a GIF encoded animated image file.")
8083 (home-page "https://git.gnome.org/browse/byzanz")
8084 (license license:gpl2+))))
8085
8086 (define-public gsound
8087 (package
8088 (name "gsound")
8089 (version "1.0.2")
8090 (source (origin
8091 (method url-fetch)
8092 (uri (string-append "mirror://gnome/sources/" name "/"
8093 (version-major+minor version) "/"
8094 name "-" version ".tar.xz"))
8095 (sha256
8096 (base32
8097 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8098 (build-system glib-or-gtk-build-system)
8099 (native-inputs
8100 `(("pkg-config" ,pkg-config)
8101 ("gobject-introspection" ,gobject-introspection)
8102 ("vala" ,vala)))
8103 (inputs
8104 `(("glib" ,glib)
8105 ("libcanberra" ,libcanberra)))
8106 (home-page "https://wiki.gnome.org/Projects/GSound")
8107 (synopsis "GObject wrapper for libcanberra")
8108 (description
8109 "GSound is a small library for playing system sounds. It's designed to be
8110 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8111 library.")
8112 (license license:lgpl2.1+)))
8113
8114 (define-public libzapojit
8115 (package
8116 (name "libzapojit")
8117 (version "0.0.3")
8118 (source (origin
8119 (method url-fetch)
8120 (uri (string-append "mirror://gnome/sources/" name "/"
8121 (version-major+minor version) "/"
8122 name "-" version ".tar.xz"))
8123 (sha256
8124 (base32
8125 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8126 (build-system gnu-build-system)
8127 (native-inputs
8128 `(("gobject-introspection" ,gobject-introspection)
8129 ("intltool" ,intltool)
8130 ("pkg-config" ,pkg-config)))
8131 (inputs
8132 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8133 ("json-glib" ,json-glib)
8134 ("rest" ,rest)))
8135 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8136 (synopsis "Library for accessing SkyDrive and Hotmail")
8137 (description
8138 "Libzapojit is a GLib-based library for accessing online service APIs of
8139 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8140 (license license:lgpl2.1+)))
8141
8142 (define-public gnome-clocks
8143 (package
8144 (name "gnome-clocks")
8145 (version "3.34.0")
8146 (source (origin
8147 (method url-fetch)
8148 (uri (string-append "mirror://gnome/sources/" name "/"
8149 (version-major+minor version) "/"
8150 name "-" version ".tar.xz"))
8151 (sha256
8152 (base32
8153 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8154 (build-system meson-build-system)
8155 (arguments
8156 '(#:glib-or-gtk? #t
8157 #:phases
8158 (modify-phases %standard-phases
8159 (add-after 'unpack 'skip-gtk-update-icon-cache
8160 ;; Don't create 'icon-theme.cache'.
8161 (lambda _
8162 (substitute* "build-aux/post-install.py"
8163 (("gtk-update-icon-cache") "true"))
8164 #t)))))
8165 (native-inputs
8166 `(("vala" ,vala)
8167 ("pkg-config" ,pkg-config)
8168 ("glib" ,glib "bin") ; for glib-compile-resources
8169 ("desktop-file-utils" ,desktop-file-utils)
8170 ("gettext" ,gettext-minimal)
8171 ("itstool" ,itstool)))
8172 (inputs
8173 `(("glib" ,glib)
8174 ("gtk+" ,gtk+)
8175 ("gsound" ,gsound)
8176 ("geoclue" ,geoclue)
8177 ("geocode-glib" ,geocode-glib)
8178 ("libgweather" ,libgweather)
8179 ("gnome-desktop" ,gnome-desktop)))
8180 (home-page "https://wiki.gnome.org/Apps/Clocks")
8181 (synopsis "GNOME's clock application")
8182 (description
8183 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8184 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8185 (license license:gpl3+)))
8186
8187 (define-public gnome-calendar
8188 (package
8189 (name "gnome-calendar")
8190 (version "3.34.2")
8191 (source (origin
8192 (method url-fetch)
8193 (uri (string-append "mirror://gnome/sources/" name "/"
8194 (version-major+minor version) "/"
8195 name "-" version ".tar.xz"))
8196 (sha256
8197 (base32
8198 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
8199 (build-system meson-build-system)
8200 (arguments
8201 '(#:glib-or-gtk? #t
8202 ;; gnome-calendar has to be installed before the tests can be run
8203 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8204 #:tests? #f
8205 #:phases
8206 (modify-phases %standard-phases
8207 (add-after 'unpack 'skip-gtk-update-icon-cache
8208 ;; Don't create 'icon-theme.cache'.
8209 (lambda _
8210 (substitute* "build-aux/meson/meson_post_install.py"
8211 (("gtk-update-icon-cache") "true"))
8212 #t)))))
8213 (native-inputs
8214 `(("gettext" ,gettext-minimal)
8215 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8216 ("pkg-config" ,pkg-config)))
8217 (inputs
8218 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8219 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8220 ("libdazzle" ,libdazzle)
8221 ("libedataserverui" ,evolution-data-server)
8222 ("libgweather" ,libgweather)
8223 ("geoclue" ,geoclue)))
8224 (propagated-inputs
8225 `(("evolution-data-server" ,evolution-data-server)))
8226 (home-page "https://wiki.gnome.org/Apps/Calendar")
8227 (synopsis "GNOME's calendar application")
8228 (description
8229 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8230 desktop. It supports multiple calendars, month, week and year view.")
8231 (license license:gpl3+)))
8232
8233 (define-public gnome-todo
8234 (package
8235 (name "gnome-todo")
8236 (version "3.28.1")
8237 (source (origin
8238 (method url-fetch)
8239 (uri (string-append "mirror://gnome/sources/" name "/"
8240 (version-major+minor version) "/"
8241 name "-" version ".tar.xz"))
8242 (sha256
8243 (base32
8244 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8245 (patches
8246 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
8247 (build-system meson-build-system)
8248 (arguments
8249 '(#:glib-or-gtk? #t
8250 #:phases (modify-phases %standard-phases
8251 (add-after
8252 'install 'wrap-gnome-todo
8253 (lambda* (#:key inputs outputs #:allow-other-keys)
8254 (let ((out (assoc-ref outputs "out"))
8255 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8256 (python-path (getenv "PYTHONPATH")))
8257 (wrap-program (string-append out "/bin/gnome-todo")
8258 ;; XXX: gi plugins are broken.
8259 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8260 ;; For plugins.
8261 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8262 `("PYTHONPATH" ":" prefix (,python-path))))
8263 #t)))))
8264 (native-inputs
8265 `(("gettext" ,gettext-minimal)
8266 ("gobject-introspection" ,gobject-introspection)
8267 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8268 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8269 ("pkg-config" ,pkg-config)))
8270 (inputs
8271 `(("rest" ,rest) ; For Todoist plugin
8272 ("json-glib" ,json-glib) ; For Todoist plugin
8273 ("libedataserverui" ,evolution-data-server)
8274 ("libical" ,libical)
8275 ("libpeas" ,libpeas)
8276 ("python-pygobject" ,python-pygobject)
8277 ("evolution-data-server" ,evolution-data-server)
8278 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8279 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8280 (home-page "https://wiki.gnome.org/Apps/Todo")
8281 (synopsis "GNOME's ToDo Application")
8282 (description
8283 "GNOME To Do is a simplistic personal task manager designed to perfectly
8284 fit the GNOME desktop.")
8285 (license license:gpl3+)))
8286
8287 (define-public gnome-dictionary
8288 (package
8289 (name "gnome-dictionary")
8290 (version "3.26.1")
8291 (source (origin
8292 (method url-fetch)
8293 (uri (string-append "mirror://gnome/sources/" name "/"
8294 (version-major+minor version) "/"
8295 name "-" version ".tar.xz"))
8296 (sha256
8297 (base32
8298 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8299 (build-system meson-build-system)
8300 (arguments '(#:glib-or-gtk? #t
8301 #:phases (modify-phases %standard-phases
8302 (add-after 'unpack 'patch-install-script
8303 (lambda _
8304 ;; This script attempts to compile glib schemas
8305 ;; and create an empty MIME database. We do
8306 ;; that elsewhere, so prevent it from running.
8307 (substitute* "build-aux/post-install.sh"
8308 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8309 #t)))))
8310 (native-inputs
8311 `(("glib:bin" ,glib "bin")
8312 ("gobject-introspection" ,gobject-introspection)
8313 ("intltool" ,intltool)
8314 ("itstool" ,itstool)
8315 ("pkg-config" ,pkg-config)
8316 ("xmllint" ,libxml2)))
8317 (inputs
8318 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8319 ("gtk+" ,gtk+)))
8320 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8321 (synopsis "Look up words in dictionary sources")
8322 (description
8323 "GNOME Dictionary can look for the definition or translation of a word in
8324 existing databases over the internet.")
8325 (license license:gpl3+)))
8326
8327 (define-public gnome-tweaks
8328 (package
8329 (name "gnome-tweaks")
8330 (version "3.34.0")
8331 (source (origin
8332 (method url-fetch)
8333 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8334 (version-major+minor version) "/"
8335 "gnome-tweaks-" version ".tar.xz"))
8336 (patches
8337 (list (search-patch "gnome-tweaks-search-paths.patch")))
8338 (sha256
8339 (base32
8340 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
8341 (build-system meson-build-system)
8342 (arguments
8343 `(#:glib-or-gtk? #t
8344 #:configure-flags '("-Dlocalstatedir=/tmp"
8345 "-Dsysconfdir=/tmp")
8346 #:imported-modules ((guix build python-build-system)
8347 ,@%meson-build-system-modules)
8348 #:phases
8349 (modify-phases %standard-phases
8350 (add-after 'unpack 'skip-gtk-update-icon-cache
8351 ;; Don't create 'icon-theme.cache'.
8352 (lambda _
8353 (substitute* "meson-postinstall.py"
8354 (("gtk-update-icon-cache") "true"))
8355 #t))
8356 (add-after 'install 'wrap
8357 (@@ (guix build python-build-system) wrap))
8358 (add-after 'wrap 'wrap-gi-typelib
8359 (lambda* (#:key inputs outputs #:allow-other-keys)
8360 (let ((out (assoc-ref outputs "out"))
8361 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8362 (wrap-program (string-append out "/bin/gnome-tweaks")
8363 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8364 #t)))))
8365 (native-inputs
8366 `(("intltool" ,intltool)
8367 ("pkg-config" ,pkg-config)))
8368 (inputs
8369 `(("gnome-desktop" ,gnome-desktop)
8370 ("gtk+" ,gtk+)
8371 ("gobject-introspection" ,gobject-introspection)
8372 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8373 ("libhandy" ,libhandy)
8374 ("libnotify" ,libnotify)
8375 ("libsoup" ,libsoup)
8376 ("nautilus" ,nautilus)
8377 ("python" ,python)
8378 ("python-pygobject" ,python-pygobject)))
8379 (synopsis "Customize advanced GNOME 3 options")
8380 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8381 (description
8382 "GNOME Tweaks allows adjusting advanced configuration settings in
8383 GNOME 3. This includes things like the fonts used in user interface elements,
8384 alternative user interface themes, changes in window management behavior,
8385 GNOME Shell appearance and extension, etc.")
8386 (license license:gpl3+)))
8387
8388 (define-public gnome-shell-extensions
8389 (package
8390 (name "gnome-shell-extensions")
8391 (version "3.34.2")
8392 (source (origin
8393 (method url-fetch)
8394 (uri (string-append "mirror://gnome/sources/" name "/"
8395 (version-major+minor version) "/"
8396 name "-" version ".tar.xz"))
8397 (sha256
8398 (base32
8399 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
8400 (build-system meson-build-system)
8401 (arguments
8402 '(#:configure-flags '("-Dextension_set=all")))
8403 (native-inputs
8404 `(("glib:bin" ,glib "bin")
8405 ("intltool" ,intltool)
8406 ("pkg-config" ,pkg-config)))
8407 (propagated-inputs
8408 `(("glib" ,glib)))
8409 (synopsis "Extensions for GNOME Shell")
8410 (description "GNOME Shell extensions modify and extend GNOME Shell
8411 functionality and behavior.")
8412 (home-page "https://extensions.gnome.org/")
8413 (license license:gpl3+)))
8414
8415 (define-public arc-theme
8416 (package
8417 (name "arc-theme")
8418 (version "20190917")
8419 (source (origin
8420 (method git-fetch)
8421 (uri (git-reference
8422 (url "https://github.com/NicoHood/arc-theme.git")
8423 (commit version)))
8424 (file-name (git-file-name name version))
8425 (sha256
8426 (base32
8427 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8428 (build-system gnu-build-system)
8429 (arguments
8430 '(#:phases
8431 (modify-phases %standard-phases
8432 ;; autogen.sh calls configure at the end of the script.
8433 (replace 'bootstrap
8434 (lambda _ (invoke "autoreconf" "-vfi")))
8435 (add-before 'build 'set-home ;placate Inkscape
8436 (lambda _
8437 (setenv "HOME" (getcwd))
8438 #t)))))
8439 (native-inputs
8440 `(("autoconf" ,autoconf)
8441 ("automake" ,automake)
8442 ("glib" ,glib "bin") ; for glib-compile-resources
8443 ("gnome-shell" ,gnome-shell)
8444 ("gtk+" ,gtk+)
8445 ("inkscape" ,inkscape)
8446 ("optipng" ,optipng)
8447 ("pkg-config" ,pkg-config)
8448 ("sassc" ,sassc/libsass-3.5)))
8449 (synopsis "A flat GTK+ theme with transparent elements")
8450 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8451 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8452 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8453 (home-page "https://github.com/horst3180/arc-theme")
8454 ;; No "or later" language found.
8455 (license license:gpl3+)))
8456
8457 (define-public faba-icon-theme
8458 (package
8459 (name "faba-icon-theme")
8460 (version "4.3")
8461 (source
8462 (origin
8463 (method git-fetch)
8464 (uri (git-reference
8465 (url "https://github.com/snwh/faba-icon-theme.git")
8466 (commit (string-append "v" version))))
8467 (file-name (git-file-name name version))
8468 (sha256
8469 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8470 (build-system meson-build-system)
8471 (arguments
8472 `(#:phases
8473 (modify-phases %standard-phases
8474 (add-before 'configure 'disable-post-install
8475 (lambda _
8476 (substitute* "meson.build"
8477 (("meson.add_install_script.*") "")))))))
8478 (native-inputs
8479 `(("autoconf" ,autoconf)
8480 ("automake" ,automake)))
8481 (synopsis "Faba icon theme")
8482 (description
8483 "Faba is a minimal icon set used as a basis for other themes such as
8484 Moka")
8485 (home-page "https://snwh.org/moka")
8486 (license (list license:lgpl3+
8487 license:cc-by-sa4.0))))
8488
8489 (define-public moka-icon-theme
8490 (package
8491 (inherit faba-icon-theme)
8492 (name "moka-icon-theme")
8493 (version "5.4.0")
8494 (source
8495 (origin
8496 (method git-fetch)
8497 (uri (git-reference
8498 (url "https://github.com/snwh/moka-icon-theme.git")
8499 (commit (string-append "v" version))))
8500 (file-name (git-file-name name version))
8501 (sha256
8502 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8503 (propagated-inputs
8504 ;; Moka is based on Faba by using it as a fallback icon set instead of
8505 ;; bundling it, so we need to add it as a propagated input.
8506 `(("faba-icon-theme" ,faba-icon-theme)))
8507 (synopsis "Moka icon theme")
8508 (description "Moka is a stylized desktop icon set, designed to be clear,
8509 simple and consistent.")
8510 (license (list license:gpl3+
8511 license:cc-by-sa4.0))))
8512
8513 (define-public arc-icon-theme
8514 (package
8515 (name "arc-icon-theme")
8516 (version "20161122")
8517 (source
8518 (origin
8519 (method git-fetch)
8520 (uri (git-reference
8521 (url "https://github.com/horst3180/arc-icon-theme.git")
8522 (commit version)))
8523 (file-name (git-file-name name version))
8524 (sha256
8525 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8526 (build-system gnu-build-system)
8527 (arguments
8528 `(#:phases
8529 (modify-phases %standard-phases
8530 (add-after 'unpack 'disable-configure-during-bootstrap
8531 (lambda _
8532 (substitute* "autogen.sh"
8533 (("^\"\\$srcdir/configure\".*") ""))
8534 #t)))))
8535 (native-inputs
8536 `(("autoconf" ,autoconf)
8537 ("automake" ,automake)))
8538 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8539 (propagated-inputs
8540 `(("moka-icon-theme" ,moka-icon-theme)))
8541 (synopsis "Arc icon theme")
8542 (description "The Arc icon theme provides a set of icons matching the
8543 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8544 the Moka icon theme.")
8545 (home-page "https://github.com/horst3180/arc-icon-theme")
8546 (license license:gpl3+)))
8547
8548 (define-public folks
8549 (package
8550 (name "folks")
8551 (version "0.13.1")
8552 (source (origin
8553 (method url-fetch)
8554 (uri (string-append
8555 "mirror://gnome/sources/folks/"
8556 (version-major+minor version) "/"
8557 "folks-" version ".tar.xz"))
8558 (sha256
8559 (base32
8560 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8561 (build-system meson-build-system)
8562 (arguments
8563 '(#:phases
8564 (modify-phases %standard-phases
8565 (add-after 'unpack 'skip-gtk-update-icon-cache
8566 ;; Don't create 'icon-theme.cache'.
8567 (lambda _
8568 (substitute* "meson_post_install.py"
8569 (("gtk-update-icon-cache") "true"))
8570 #t)))))
8571 (inputs
8572 `(("bdb" ,bdb)
8573 ("dbus-glib" ,dbus-glib)
8574 ("evolution-data-server" ,evolution-data-server)
8575 ("glib" ,glib)
8576 ("libgee" ,libgee)
8577 ("readline" ,readline)
8578 ("telepathy-glib" ,telepathy-glib)))
8579 (native-inputs
8580 `(("glib:bin" ,glib "bin")
8581 ("gobject-introspection" ,gobject-introspection)
8582 ("intltool" ,intltool)
8583 ("pkg-config" ,pkg-config)
8584 ("vala" ,vala)))
8585 (synopsis "Library to aggregate data about people")
8586 (description "Libfolks is a library that aggregates information about people
8587 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8588 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8589 etc.) to create metacontacts. It's written in Vala, which generates C code when
8590 compiled.")
8591 (home-page "https://wiki.gnome.org/Projects/Folks")
8592 (license license:lgpl2.1+)))
8593
8594 (define-public gfbgraph
8595 (package
8596 (name "gfbgraph")
8597 (version "0.2.3")
8598 (source (origin
8599 (method url-fetch)
8600 (uri (string-append
8601 "mirror://gnome/sources/gfbgraph/"
8602 (version-major+minor version) "/"
8603 "gfbgraph-" version ".tar.xz"))
8604 (sha256
8605 (base32
8606 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8607 (build-system glib-or-gtk-build-system)
8608 (arguments
8609 `(#:tests? #f ; Tests appear to require the network.
8610 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8611 #:configure-flags '("--disable-gtk-doc"
8612 "--disable-static"
8613 "--enable-introspection")))
8614 (native-inputs
8615 `(("pkg-config" ,pkg-config)
8616 ("gobject-introspection" ,gobject-introspection)))
8617 (inputs
8618 `(("json-glib" ,json-glib)
8619 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8620 ("rest" ,rest)))
8621 (synopsis "GLib/GObject wrapper for the Facebook API")
8622 (description "This library allows you to use the Facebook API from
8623 GLib/GObject code.")
8624 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8625 (license license:lgpl2.1+)))
8626
8627 (define-public libgnomekbd
8628 (package
8629 (name "libgnomekbd")
8630 (version "3.26.1")
8631 (source (origin
8632 (method url-fetch)
8633 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8634 (version-major+minor version) "/"
8635 "libgnomekbd-" version ".tar.xz"))
8636 (sha256
8637 (base32
8638 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8639 (build-system gnu-build-system)
8640 (native-inputs
8641 `(("pkg-config" ,pkg-config)
8642 ("glib" ,glib "bin")
8643 ("intltool" ,intltool)))
8644 (propagated-inputs
8645 ;; Referred to in .h files and .pc.
8646 `(("glib" ,glib)
8647 ("gtk+" ,gtk+)
8648 ("libxklavier" ,libxklavier)))
8649 (home-page "https://www.gnome.org")
8650 (synopsis "GNOME keyboard configuration library")
8651 (description
8652 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8653 environment, which can notably display keyboard layouts.")
8654 (license license:lgpl2.0+)))
8655
8656 ;;; This package is no longer maintained:
8657 ;;; https://wiki.gnome.org/Attic/LibUnique
8658 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8659 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8660 (define-public libunique
8661 (package
8662 (name "libunique")
8663 (version "3.0.2")
8664 (source (origin
8665 (method url-fetch)
8666 (uri (string-append "mirror://gnome/sources/" name "/"
8667 (version-major+minor version) "/"
8668 name "-" version ".tar.xz"))
8669 (sha256
8670 (base32
8671 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8672 (build-system glib-or-gtk-build-system)
8673 (arguments
8674 `(#:configure-flags '("--disable-static"
8675 "--disable-dbus" ; use gdbus
8676 "--enable-introspection")))
8677 (native-inputs
8678 `(("pkg-config" ,pkg-config)
8679 ("gobject-introspection" ,gobject-introspection)
8680 ("glib:bin" ,glib "bin")
8681 ("gtk-doc" ,gtk-doc)))
8682 (propagated-inputs
8683 ;; Referred to in .h files and .pc.
8684 `(("gtk+" ,gtk+)))
8685 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8686 (synopsis "Library for writing single instance applications")
8687 (description
8688 "Libunique is a library for writing single instance applications. If you
8689 launch a single instance application twice, the second instance will either just
8690 quit or will send a message to the running instance. Libunique makes it easy to
8691 write this kind of application, by providing a base class, taking care of all
8692 the IPC machinery needed to send messages to a running instance, and also
8693 handling the startup notification side.")
8694 (license license:lgpl2.1+)))
8695
8696 (define-public gnome-calculator
8697 (package
8698 (name "gnome-calculator")
8699 (version "3.34.1")
8700 (source
8701 (origin
8702 (method url-fetch)
8703 (uri (string-append "mirror://gnome/sources/" name "/"
8704 (version-major+minor version) "/"
8705 name "-" version ".tar.xz"))
8706 (sha256
8707 (base32
8708 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
8709 (build-system meson-build-system)
8710 (arguments '(#:glib-or-gtk? #t))
8711 (native-inputs
8712 `(("gettext" ,gettext-minimal)
8713 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8714 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8715 ("itstool" ,itstool)
8716 ("vala" ,vala)
8717 ("pkg-config" ,pkg-config)))
8718 (inputs
8719 `(("glib" ,glib)
8720 ("gtksourceview" ,gtksourceview)
8721 ("libgee" ,libgee)
8722 ("libsoup" ,libsoup)
8723 ("libxml2" ,libxml2)
8724 ("mpc" ,mpc)
8725 ("mpfr" ,mpfr)))
8726 (home-page "https://wiki.gnome.org/Apps/Calculator")
8727 (synopsis "Desktop calculator")
8728 (description
8729 "Calculator is an application that solves mathematical equations and
8730 is suitable as a default application in a Desktop environment.")
8731 (license license:gpl3)))
8732
8733 (define-public xpad
8734 (package
8735 (name "xpad")
8736 (version "5.1.0")
8737 (source
8738 (origin
8739 (method url-fetch)
8740 (uri (string-append "https://launchpad.net/xpad/trunk/"
8741 version "/+download/"
8742 name "-" version ".tar.bz2"))
8743 (sha256
8744 (base32
8745 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8746 (build-system gnu-build-system)
8747 (native-inputs
8748 `(("autoconf" ,autoconf)
8749 ("automake" ,automake)
8750 ("gtk+:bin" ,gtk+ "bin")
8751 ("intltool" ,intltool)
8752 ("pkg-config" ,pkg-config)))
8753 (inputs
8754 `(("gtksourceview" ,gtksourceview-3)
8755 ("libsm" ,libsm)))
8756 (home-page "https://wiki.gnome.org/Apps/Xpad")
8757 (synopsis "Virtual sticky note")
8758 (description
8759 "Xpad is a sticky note that strives to be simple, fault tolerant,
8760 and customizable. Xpad consists of independent pad windows, each is
8761 basically a text box in which notes can be written.")
8762 (license license:gpl3+)))
8763
8764 (define-public gucharmap
8765 (let ((unicode-files
8766 '(("Blocks.txt"
8767 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8768 ("DerivedAge.txt"
8769 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8770 ("NamesList.txt"
8771 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8772 ("Scripts.txt"
8773 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8774 ("UnicodeData.txt"
8775 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8776 ("Unihan.zip"
8777 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8778 (package
8779 (name "gucharmap")
8780 (version "12.0.1")
8781 (source
8782 (origin
8783 (method url-fetch)
8784 (uri (string-append "mirror://gnome/sources/" name "/"
8785 (version-major+minor version) "/"
8786 name "-" version ".tar.xz"))
8787 (sha256
8788 (base32
8789 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8790 (build-system glib-or-gtk-build-system)
8791 (arguments
8792 `(#:modules ((ice-9 match)
8793 (guix build glib-or-gtk-build-system)
8794 (guix build utils))
8795 #:configure-flags
8796 (list "--with-unicode-data=../unicode-data")
8797 #:phases
8798 (modify-phases %standard-phases
8799 (add-after 'unpack 'prepare-unicode-data
8800 (lambda* (#:key inputs #:allow-other-keys)
8801 (mkdir-p "../unicode-data")
8802 (with-directory-excursion "../unicode-data"
8803 (for-each (match-lambda
8804 ((file _)
8805 (install-file (assoc-ref inputs file) ".")))
8806 ',unicode-files))
8807 #t)))))
8808 (native-inputs
8809 `(("desktop-file-utils" ,desktop-file-utils)
8810 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8811 ("gobject-introspection" ,gobject-introspection)
8812 ("intltool" ,intltool)
8813 ("itstool" ,itstool)
8814 ("pkg-config" ,pkg-config)
8815 ,@(map (match-lambda
8816 ((file hash)
8817 `(,file
8818 ,(origin
8819 (method url-fetch)
8820 (uri (string-append
8821 "http://www.unicode.org/Public/12.0.0/ucd/"
8822 file))
8823 (sha256 (base32 hash))))))
8824 unicode-files)
8825 ("unzip" ,unzip)))
8826 (inputs
8827 `(("gtk+" ,gtk+)
8828 ("xmllint" ,libxml2)))
8829 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8830 (synopsis "Unicode character picker and font browser")
8831 (description
8832 "This program allows you to browse through all the available Unicode
8833 characters and categories for the installed fonts, and to examine their
8834 detailed properties. It is an easy way to find the character you might
8835 only know by its Unicode name or code point.")
8836 (license license:gpl3+))))
8837
8838 (define-public bluefish
8839 (package
8840 (name "bluefish")
8841 (version "2.2.11")
8842 (source
8843 (origin
8844 (method url-fetch)
8845 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8846 "bluefish-" version ".tar.gz"))
8847 (sha256
8848 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
8849 (build-system gnu-build-system)
8850 (native-inputs
8851 `(("desktop-file-utils" ,desktop-file-utils)
8852 ("intltool" ,intltool)
8853 ("pkg-config" ,pkg-config)))
8854 (inputs
8855 `(("enchant" ,enchant)
8856 ("gtk+" ,gtk+)
8857 ("python" ,python-wrapper)
8858 ("xmllint" ,libxml2)
8859 ("gucharmap" ,gucharmap)))
8860 (home-page "http://bluefish.openoffice.nl")
8861 (synopsis "Web development studio")
8862 (description
8863 "Bluefish is an editor targeted towards programmers and web developers,
8864 with many options to write web sites, scripts and other code.
8865 Bluefish supports many programming and markup languages.")
8866 (license license:gpl3+)))
8867
8868 (define-public gnome-system-monitor
8869 (package
8870 (name "gnome-system-monitor")
8871 (version "3.32.1")
8872 (source
8873 (origin
8874 (method url-fetch)
8875 (uri (string-append "mirror://gnome/sources/" name "/"
8876 (version-major+minor version) "/"
8877 name "-" version ".tar.xz"))
8878 (sha256
8879 (base32
8880 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8881 (build-system meson-build-system)
8882 (arguments
8883 '(#:glib-or-gtk? #t
8884 #:configure-flags '("-Dsystemd=false")))
8885 (native-inputs
8886 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8887 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8888 ("intltool" ,intltool)
8889 ("itstool" ,itstool)
8890 ("libgtop" ,libgtop)
8891 ("polkit" ,polkit)
8892 ("pkg-config" ,pkg-config)))
8893 (inputs
8894 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8895 ("gtk+" ,gtk+)
8896 ("gtkmm" ,gtkmm)
8897 ("librsvg" ,librsvg)
8898 ("libxml2" ,libxml2)
8899 ("libwnck" ,libwnck)))
8900 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8901 (synopsis "Process viewer and system resource monitor for GNOME")
8902 (description
8903 "GNOME System Monitor is a GNOME process viewer and system monitor with
8904 an attractive, easy-to-use interface. It has features, such as a tree view
8905 for process dependencies, icons for processes, the ability to hide processes,
8906 graphical time histories of CPU/memory/swap usage and the ability to
8907 kill/reinice processes.")
8908 (license license:gpl2+)))
8909
8910 (define-public python-pyatspi
8911 (package
8912 (name "python-pyatspi")
8913 (version "2.34.0")
8914 (source (origin
8915 (method url-fetch)
8916 (uri (string-append
8917 "mirror://gnome/sources/pyatspi/"
8918 (version-major+minor version)
8919 "/pyatspi-" version ".tar.xz"))
8920 (sha256
8921 (base32
8922 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8923 (build-system gnu-build-system)
8924 (arguments
8925 `(#:phases
8926 (modify-phases %standard-phases
8927 (add-before 'build 'fix-atk-load
8928 (lambda _
8929 (substitute* "pyatspi/__init__.py"
8930 (("from gi.repository import Atspi")
8931 "gi.require_version('Gtk', '3.0')
8932 from gi.repository import Gtk
8933 from gi.repository import Atspi"))
8934 #t)))))
8935 (native-inputs
8936 `(("pkg-config" ,pkg-config)))
8937 (inputs
8938 `(("python" ,python)))
8939 (propagated-inputs
8940 `(("python-pygobject" ,python-pygobject)))
8941 (synopsis "Python client bindings for D-Bus AT-SPI")
8942 (home-page "https://wiki.linuxfoundation.org/accessibility\
8943 /atk/at-spi/at-spi_on_d-bus")
8944 (description
8945 "This package includes a python client library for the AT-SPI D-Bus
8946 accessibility infrastructure.")
8947 (license license:lgpl2.0)
8948 (properties '((upstream-name . "pyatspi")))))
8949
8950 (define-public python2-pyatspi
8951 (package
8952 (inherit python-pyatspi)
8953 (name "python2-pyatspi")
8954 (inputs
8955 `(("python" ,python-2)))
8956 (propagated-inputs
8957 `(("python-pygobject" ,python2-pygobject)))))
8958
8959 (define-public orca
8960 (package
8961 (name "orca")
8962 (version "3.34.1")
8963 (source (origin
8964 (method url-fetch)
8965 (uri (string-append
8966 "mirror://gnome/sources/" name "/"
8967 (version-major+minor version) "/"
8968 name "-" version ".tar.xz"))
8969 (sha256
8970 (base32
8971 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
8972 (build-system glib-or-gtk-build-system)
8973 (arguments
8974 '(#:phases
8975 (modify-phases %standard-phases
8976 (add-before 'configure 'qualify-xkbcomp
8977 (lambda* (#:key inputs #:allow-other-keys)
8978 (let ((xkbcomp (string-append
8979 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8980 (substitute* "src/orca/orca.py"
8981 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8982 #t))
8983 (add-after 'install 'wrap-orca
8984 (lambda* (#:key outputs #:allow-other-keys)
8985 (let* ((out (assoc-ref outputs "out"))
8986 (prog (string-append out "/bin/orca")))
8987 (wrap-program prog
8988 `("GI_TYPELIB_PATH" ":" prefix
8989 (,(getenv "GI_TYPELIB_PATH")))
8990 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8991 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8992 `("PYTHONPATH" ":" prefix
8993 (,(getenv "PYTHONPATH")))))
8994 #t)))))
8995 (native-inputs
8996 `(("intltool" ,intltool)
8997 ("itstool" ,itstool)
8998 ("pkg-config" ,pkg-config)
8999 ("xmllint" ,libxml2)))
9000 (inputs
9001 `(("at-spi2-atk" ,at-spi2-atk)
9002 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9003 ("gstreamer" ,gstreamer)
9004 ("gst-plugins-base" ,gst-plugins-base)
9005 ("gst-plugins-good" ,gst-plugins-good)
9006 ("gtk+" ,gtk+)
9007 ("python" ,python)
9008 ("python-pygobject" ,python-pygobject)
9009 ("python-pyatspi" ,python-pyatspi)
9010 ("python-speechd" ,speech-dispatcher)
9011 ("xkbcomp" ,xkbcomp)))
9012 (synopsis
9013 "Screen reader for individuals who are blind or visually impaired")
9014 (home-page "https://wiki.gnome.org/Projects/Orca")
9015 (description
9016 "Orca is a screen reader that provides access to the graphical desktop
9017 via speech and refreshable braille. Orca works with applications and toolkits
9018 that support the Assistive Technology Service Provider Interface (AT-SPI).")
9019 (license license:lgpl2.1+)))
9020
9021 (define-public gspell
9022 (package
9023 (name "gspell")
9024 (version "1.8.2")
9025 (source (origin
9026 (method url-fetch)
9027 (uri (string-append "mirror://gnome/sources/" name "/"
9028 (version-major+minor version) "/"
9029 name "-" version ".tar.xz"))
9030 (sha256
9031 (base32
9032 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
9033 (patches (search-patches "gspell-dash-test.patch"))))
9034 (build-system glib-or-gtk-build-system)
9035 (arguments
9036 '(#:configure-flags (list "--enable-vala")
9037 #:phases
9038 (modify-phases %standard-phases
9039 (add-before 'check 'pre-check
9040 (lambda* (#:key inputs #:allow-other-keys)
9041 ;; Tests require a running X server.
9042 (system "Xvfb :1 &")
9043 (setenv "DISPLAY" ":1")
9044
9045 ;; For the missing /etc/machine-id.
9046 (setenv "DBUS_FATAL_WARNINGS" "0")
9047
9048 ;; Allow Enchant and its Aspell backend to find the en_US
9049 ;; dictionary.
9050 (setenv "ASPELL_DICT_DIR"
9051 (string-append (assoc-ref inputs "aspell-dict-en")
9052 "/lib/aspell"))
9053 #t)))))
9054 (inputs
9055 `(("gtk+" ,gtk+)
9056 ("glib" ,glib)
9057 ("iso-codes" ,iso-codes)))
9058 (native-inputs
9059 `(("glib" ,glib "bin")
9060 ("gobject-introspection" ,gobject-introspection)
9061 ("pkg-config" ,pkg-config)
9062 ("vala" ,vala) ;for VAPI, needed by Geary
9063 ("xmllint" ,libxml2)
9064
9065 ;; For tests.
9066 ("aspell-dict-en" ,aspell-dict-en)
9067 ("xorg-server" ,xorg-server-for-tests)))
9068 (propagated-inputs
9069 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
9070 (home-page "https://wiki.gnome.org/Projects/gspell")
9071 (synopsis "GNOME's alternative spell checker")
9072 (description
9073 "gspell provides a flexible API to add spell-checking to a GTK+
9074 application. It provides a GObject API, spell-checking to text entries and
9075 text views, and buttons to choose the language.")
9076 (license license:gpl2+)))
9077
9078 (define-public gnome-planner
9079 (package
9080 (name "gnome-planner")
9081 (version "0.14.6")
9082 (source (origin
9083 (method url-fetch)
9084 (uri (string-append "mirror://gnome/sources/planner/"
9085 (version-major+minor version) "/planner-"
9086 version ".tar.xz"))
9087 (sha256
9088 (base32
9089 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9090 (build-system glib-or-gtk-build-system)
9091 (arguments
9092 ;; Disable the Python bindings because the Planner program functions
9093 ;; without them, and (as of 2017-06-13) we have not packaged all of
9094 ;; packages that are necessary for building the Python bindings.
9095 `(#:configure-flags
9096 (list "--disable-python"
9097 ,@(if (string=? "aarch64-linux" (%current-system))
9098 '("--build=aarch64-unknown-linux-gnu")
9099 '()))))
9100 (inputs
9101 `(("libgnomecanvas" ,libgnomecanvas)
9102 ("libgnomeui" ,libgnomeui)
9103 ("libglade" ,libglade)
9104 ("gnome-vfs" ,gnome-vfs)
9105 ("gconf" ,gconf)
9106 ("libxml2" ,libxml2)
9107 ("libxslt" ,libxslt)
9108 ("gtk+" ,gtk+)
9109 ("glib" ,glib)))
9110 (native-inputs
9111 `(("intltool" ,intltool)
9112 ("scrollkeeper" ,scrollkeeper)
9113 ("pkg-config" ,pkg-config)))
9114 (home-page "https://wiki.gnome.org/Apps/Planner")
9115 (synopsis "Project management software for the GNOME desktop")
9116 (description
9117 "GNOME Planner is a project management tool based on the Work Breakdown
9118 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9119 the resources, tasks, and constraints that you define, Planner generates
9120 various views into a project. For example, Planner can show a Gantt chart of
9121 the project. It can show a detailed summary of tasks including their
9122 duration, cost, and current progress. It can also show a report of resource
9123 utilization that highlights under-utilized and over-utilized resources. These
9124 views can be printed as PDF or PostScript files, or exported to HTML.")
9125 (license license:gpl2+)))
9126
9127 (define-public lollypop
9128 (package
9129 (name "lollypop")
9130 (version "1.2.32")
9131 (source
9132 (origin
9133 (method url-fetch)
9134 (uri (string-append "https://adishatz.org/lollypop/"
9135 "lollypop-" version ".tar.xz"))
9136 (sha256
9137 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
9138 (build-system meson-build-system)
9139 (arguments
9140 `(#:imported-modules
9141 (,@%meson-build-system-modules
9142 (guix build python-build-system))
9143 #:modules
9144 ((guix build meson-build-system)
9145 ((guix build python-build-system) #:prefix python:)
9146 (guix build utils))
9147 #:glib-or-gtk? #t
9148 #:tests? #f ; no test suite
9149 #:phases
9150 (modify-phases %standard-phases
9151 (add-after 'install 'wrap-program
9152 (lambda* (#:key outputs #:allow-other-keys)
9153 (let ((out (assoc-ref outputs "out"))
9154 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9155 (wrap-program (string-append out "/bin/lollypop")
9156 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9157 #t))
9158 (add-after 'install 'wrap-python
9159 (assoc-ref python:%standard-phases 'wrap)))))
9160 (native-inputs
9161 `(("intltool" ,intltool)
9162 ("itstool" ,itstool)
9163 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9164 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9165 ("pkg-config" ,pkg-config)))
9166 (inputs
9167 `(("gobject-introspection" ,gobject-introspection)
9168 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9169 ("gst-plugins-base" ,gst-plugins-base)
9170 ("libnotify" ,libnotify)
9171 ("libsecret" ,libsecret)
9172 ("libsoup" ,libsoup)
9173 ("python" ,python)
9174 ("python-beautifulsoup4" ,python-beautifulsoup4)
9175 ("python-gst" ,python-gst)
9176 ("python-pil" ,python-pillow)
9177 ("python-pycairo" ,python-pycairo)
9178 ("python-pygobject" ,python-pygobject)
9179 ("python-pylast" ,python-pylast)
9180 ("totem-pl-parser" ,totem-pl-parser)
9181 ("webkitgtk" ,webkitgtk)))
9182 (propagated-inputs
9183 `(;; gst-plugins-base is required to start Lollypop,
9184 ;; the others are required to play streaming.
9185 ("gst-plugins-good" ,gst-plugins-good)
9186 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9187 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9188 (synopsis "GNOME music playing application")
9189 (description
9190 "Lollypop is a music player designed to play well with GNOME desktop.
9191 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9192 from artists and tracks from the web. It also fetches cover artworks
9193 automatically and it can stream songs from online music services and charts.")
9194 (license license:gpl3+)))
9195
9196 (define-public gnome-video-effects
9197 (package
9198 (name "gnome-video-effects")
9199 (version "0.4.3")
9200 (source (origin
9201 (method url-fetch)
9202 (uri (string-append "mirror://gnome/sources/" name "/"
9203 (version-major+minor version) "/" name "-"
9204 version ".tar.xz"))
9205 (sha256
9206 (base32
9207 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9208 (build-system glib-or-gtk-build-system)
9209 (arguments
9210 `(#:out-of-source? #f))
9211 (native-inputs
9212 `(("glib:bin" ,glib "bin")
9213 ("intltool" ,intltool)
9214 ("gettext" ,gettext-minimal)
9215 ("pkg-config" ,pkg-config)))
9216 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9217 (synopsis "Video effects for Cheese and other GNOME applications")
9218 (description
9219 "A collection of GStreamer video filters and effects to be used in
9220 photo-booth-like software, such as Cheese.")
9221 (license license:gpl2+)))
9222
9223 (define-public cheese
9224 (package
9225 (name "cheese")
9226 (version "3.34.0")
9227 (source (origin
9228 (method url-fetch)
9229 (uri (string-append "mirror://gnome/sources/" name "/"
9230 (version-major+minor version) "/" name "-"
9231 version ".tar.xz"))
9232 (sha256
9233 (base32
9234 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
9235 (arguments
9236 `(#:glib-or-gtk? #t
9237 ;; Tests require GDK.
9238 #:tests? #f
9239 #:phases
9240 (modify-phases %standard-phases
9241 (add-after 'unpack 'skip-gtk-update-icon-cache
9242 (lambda _
9243 ;; Don't create 'icon-theme.cache'
9244 (substitute* "meson_post_install.py"
9245 (("gtk-update-icon-cache") (which "true")))
9246 #t))
9247 (add-after 'install 'wrap-cheese
9248 (lambda* (#:key inputs outputs #:allow-other-keys)
9249 (let ((out (assoc-ref outputs "out"))
9250 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9251 (wrap-program (string-append out "/bin/cheese")
9252 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9253 #t)))))
9254 (build-system meson-build-system)
9255 (native-inputs
9256 `(("docbook-xsl" ,docbook-xsl)
9257 ("glib:bin" ,glib "bin")
9258 ("gtk-doc" ,gtk-doc)
9259 ("intltool" ,intltool)
9260 ("itstool" ,itstool)
9261 ("libxml2" ,libxml2)
9262 ("libxslt" ,libxslt)
9263 ("pkg-config" ,pkg-config)
9264 ("vala" ,vala)))
9265 (propagated-inputs
9266 `(("gnome-video-effects" ,gnome-video-effects)
9267 ("clutter" ,clutter)
9268 ("clutter-gst" ,clutter-gst)
9269 ("clutter-gtk" ,clutter-gtk)
9270 ("libcanberra" ,libcanberra)
9271 ("gdk-pixbuf" ,gdk-pixbuf)
9272 ("glib" ,glib)
9273 ("gstreamer" ,gstreamer)))
9274 (inputs
9275 `(("gnome-desktop" ,gnome-desktop)
9276 ("gobject-introspection" ,gobject-introspection)
9277 ("gst-plugins-base" ,gst-plugins-base)
9278 ("gst-plugins-bad" ,gst-plugins-bad)
9279 ("gtk+" ,gtk+)
9280 ("libx11" ,libx11)
9281 ("libxtst" ,libxtst)))
9282 (home-page "https://wiki.gnome.org/Apps/Cheese")
9283 (synopsis "Webcam photo booth software for GNOME")
9284 (description
9285 "Cheese uses your webcam to take photos and videos. Cheese can also
9286 apply fancy special effects and lets you share the fun with others.")
9287 (license license:gpl2+)))
9288
9289 (define-public sound-juicer
9290 (package
9291 (name "sound-juicer")
9292 (version "3.24.0")
9293 (source
9294 (origin
9295 (method url-fetch)
9296 (uri (string-append "mirror://gnome/sources/" name "/"
9297 (version-major+minor version) "/"
9298 name "-" version ".tar.xz"))
9299 (sha256
9300 (base32
9301 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9302 (build-system glib-or-gtk-build-system)
9303 (native-inputs
9304 `(("desktop-file-utils" ,desktop-file-utils)
9305 ("intltool" ,intltool)
9306 ("itstool" ,itstool)
9307 ("pkg-config" ,pkg-config)
9308 ("xmllint" ,libxml2)))
9309 (inputs
9310 `(("gtk+" ,gtk+)
9311 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9312 ("gstreamer" ,gstreamer)
9313 ("gst-plugins-base" ,gst-plugins-base)
9314 ("gst-plugins-good" ,gst-plugins-good)
9315 ("iso-codes" ,iso-codes)
9316 ("libbrasero-media3" ,brasero)
9317 ("libcanberra" ,libcanberra)
9318 ("libdiscid" ,libdiscid)
9319 ("libmusicbrainz" ,libmusicbrainz)
9320 ("neon" ,neon)))
9321 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9322 (synopsis "Audio music cd ripper")
9323 (description "Sound Juicer extracts audio from compact discs and convert it
9324 into audio files that a personal computer or digital audio player can play.
9325 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9326 mp3, Ogg Vorbis and FLAC")
9327 (license license:gpl2+)))
9328
9329 (define-public soundconverter
9330 (package
9331 (name "soundconverter")
9332 (version "3.0.2")
9333 (source
9334 (origin
9335 (method url-fetch)
9336 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9337 version "/+download/"
9338 "soundconverter-" version ".tar.xz"))
9339
9340 (sha256
9341 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
9342 (build-system glib-or-gtk-build-system)
9343 (arguments
9344 `(#:imported-modules ((guix build python-build-system)
9345 (guix build glib-or-gtk-build-system)
9346 ,@%gnu-build-system-modules)
9347
9348 #:modules ((guix build glib-or-gtk-build-system)
9349 (guix build utils)
9350 ((guix build gnu-build-system) #:prefix gnu:)
9351 ((guix build python-build-system) #:prefix python:))
9352
9353 #:phases
9354 (modify-phases %standard-phases
9355 (add-after 'install 'wrap-soundconverter-for-python
9356 (assoc-ref python:%standard-phases 'wrap))
9357 (add-after 'install 'wrap-soundconverter
9358 (lambda* (#:key inputs outputs #:allow-other-keys)
9359 (let ((out (assoc-ref outputs "out"))
9360 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9361 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9362 (wrap-program (string-append out "/bin/soundconverter")
9363 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9364 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9365 #t)))))
9366 (native-inputs
9367 `(("intltool" ,intltool)
9368 ("pkg-config" ,pkg-config)
9369 ("glib:bin" ,glib "bin")))
9370 (inputs
9371 `(("gtk+" ,gtk+)
9372 ("python" ,python)
9373 ("python-pygobject" ,python-pygobject)
9374 ("gstreamer" ,gstreamer)
9375 ("gst-plugins-base" ,gst-plugins-base)))
9376 (home-page "https://soundconverter.org/")
9377 (synopsis "Convert between audio formats with a graphical interface")
9378 (description
9379 "SoundConverter supports converting between many audio formats including
9380 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9381 configurable file renaming. ")
9382 (license license:gpl3)))
9383
9384 (define-public workrave
9385 (package
9386 (name "workrave")
9387 (version "1.10.42")
9388 (source
9389 (origin
9390 (method git-fetch)
9391 (uri (git-reference
9392 (url "https://github.com/rcaelers/workrave.git")
9393 (commit (string-append "v" (string-map
9394 (match-lambda (#\. #\_) (chr chr))
9395 version)))))
9396 (file-name (git-file-name name version))
9397 (sha256
9398 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
9399 (build-system glib-or-gtk-build-system)
9400 (arguments
9401 ;; The only tests are maintainer tests (in po/), which fail.
9402 `(#:tests? #f))
9403 (inputs `(("glib" ,glib)
9404 ("gtk+" ,gtk+)
9405 ("gdk-pixbuf" ,gdk-pixbuf)
9406 ("gtkmm" ,gtkmm)
9407 ("glibmm" ,glibmm)
9408 ("libx11" ,libx11)
9409 ("libxtst" ,libxtst)
9410 ("dconf" ,dconf)
9411 ("libice" ,libice)
9412 ("libsm" ,libsm)
9413 ("libxscrnsaver" ,libxscrnsaver)))
9414 (native-inputs `(("boost" ,boost)
9415 ("pkg-config" ,pkg-config)
9416 ("gettext" ,gettext-minimal)
9417 ("autoconf" ,autoconf)
9418 ("autoconf-archive" , autoconf-archive)
9419 ("automake" ,automake)
9420 ("libtool" ,libtool)
9421 ("intltool" ,intltool)
9422 ("gobject-introspection" ,gobject-introspection)
9423 ("python3" ,python-3)
9424 ("python-jinja2" ,python-jinja2)))
9425 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9426 (description
9427 "Workrave is a program that assists in the recovery and prevention of
9428 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9429 micro-pauses and rest breaks, and restricts you to your daily limit.")
9430 (home-page "http://www.workrave.org")
9431 (license license:gpl3+)))
9432
9433 (define-public ghex
9434 (package
9435 (name "ghex")
9436 (version "3.18.4")
9437 (source (origin
9438 (method url-fetch)
9439 (uri (string-append "mirror://gnome/sources/ghex/"
9440 (version-major+minor version) "/"
9441 "ghex-" version ".tar.xz"))
9442 (sha256
9443 (base32
9444 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9445 (build-system meson-build-system)
9446 (arguments
9447 '(#:glib-or-gtk? #t
9448 #:phases
9449 (modify-phases %standard-phases
9450 (add-after 'unpack 'skip-gtk-update-icon-cache
9451 ;; Don't create 'icon-theme.cache'.
9452 (lambda _
9453 (substitute* "meson_post_install.py"
9454 (("gtk-update-icon-cache") (which "true")))
9455 #t)))))
9456 (native-inputs
9457 `(("pkg-config" ,pkg-config)
9458 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9459 ("gnome-common" ,gnome-common)
9460 ("which" ,which)
9461 ("intltool" ,intltool)
9462 ("yelp-tools" ,yelp-tools)
9463 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9464 (inputs
9465 `(("atk" ,atk)
9466 ("gtk" ,gtk+)))
9467 (synopsis "GNOME hexadecimal editor")
9468 (description "The GHex program can view and edit files in two ways:
9469 hexadecimal or ASCII. It is useful for editing binary files in general.")
9470 (home-page "https://wiki.gnome.org/Apps/Ghex")
9471 (license license:gpl2)))
9472
9473 (define-public libdazzle
9474 (package
9475 (name "libdazzle")
9476 (version "3.34.1")
9477 (source (origin
9478 (method url-fetch)
9479 (uri (string-append "mirror://gnome/sources/libdazzle/"
9480 (version-major+minor version) "/"
9481 "libdazzle-" version ".tar.xz"))
9482 (sha256
9483 (base32
9484 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
9485 (build-system meson-build-system)
9486 (arguments
9487 `(#:phases
9488 (modify-phases %standard-phases
9489 (add-before 'check 'pre-check
9490 (lambda _
9491 ;; Tests require a running X server.
9492 (system "Xvfb :1 &")
9493 (setenv "DISPLAY" ":1")
9494 #t)))))
9495 (native-inputs
9496 `(("glib" ,glib "bin") ; glib-compile-resources
9497 ("pkg-config" ,pkg-config)
9498 ;; For tests.
9499 ("xorg-server" ,xorg-server-for-tests)))
9500 (inputs
9501 `(("glib" ,glib)
9502 ("gobject-introspection" ,gobject-introspection)
9503 ("gtk+" ,gtk+)
9504 ("vala" ,vala)))
9505 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9506 (synopsis "Companion library to GObject and Gtk+")
9507 (description "The libdazzle library is a companion library to GObject and
9508 Gtk+. It provides various features that the authors wish were in the
9509 underlying library but cannot for various reasons. In most cases, they are
9510 wildly out of scope for those libraries. In other cases, they are not quite
9511 generic enough to work for everyone.")
9512 (license license:gpl3+)))
9513
9514 (define-public evolution
9515 (package
9516 (name "evolution")
9517 (version "3.34.2")
9518 (source (origin
9519 (method url-fetch)
9520 (uri (string-append "mirror://gnome/sources/evolution/"
9521 (version-major+minor version) "/"
9522 "evolution-" version ".tar.xz"))
9523 (sha256
9524 (base32
9525 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
9526 (build-system cmake-build-system)
9527 (arguments
9528 `(#:imported-modules (,@%cmake-build-system-modules
9529 (guix build glib-or-gtk-build-system))
9530 #:modules ((guix build cmake-build-system)
9531 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9532 (guix build utils))
9533 #:configure-flags
9534 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9535 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9536 ; in four years and cannot be built.
9537 #:phases
9538 (modify-phases %standard-phases
9539 ;; The build system attempts to install user interface modules to the
9540 ;; output directory of the "evolution-data-server" package. This
9541 ;; change redirects that change.
9542 (add-after 'unpack 'patch-ui-module-dir
9543 (lambda* (#:key outputs #:allow-other-keys)
9544 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9545 (("\\$\\{edsuimoduledir\\}")
9546 (string-append (assoc-ref outputs "out")
9547 "/lib/evolution-data-server/ui-modules")))
9548 #t))
9549 (add-after 'install 'glib-or-gtk-compile-schemas
9550 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9551 (add-after 'install 'glib-or-gtk-wrap
9552 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9553 (native-inputs
9554 `(("glib" ,glib "bin") ; glib-mkenums
9555 ("pkg-config" ,pkg-config)
9556 ("intltool" ,intltool)
9557 ("itstool" ,itstool)))
9558 (inputs
9559 `(("enchant" ,enchant)
9560 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9561 ("gcr" ,gcr)
9562 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9563 ("gnome-autoar" ,gnome-autoar)
9564 ("gnome-desktop" ,gnome-desktop)
9565 ("gspell" ,gspell)
9566 ("highlight" ,highlight)
9567 ("libcanberra" ,libcanberra)
9568 ("libgweather" ,libgweather)
9569 ("libnotify" ,libnotify)
9570 ("libsoup" ,libsoup)
9571 ("nss" ,nss)
9572 ("openldap" ,openldap)
9573 ("webkitgtk" ,webkitgtk)
9574 ("ytnef" ,ytnef)))
9575 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9576 (synopsis "Manage your email, contacts and schedule")
9577 (description "Evolution is a personal information management application
9578 that provides integrated mail, calendaring and address book
9579 functionality.")
9580 ;; See COPYING for details.
9581 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9582 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9583 license:lgpl2.1+)))) ; smime/lib/*
9584
9585 (define-public gthumb
9586 (package
9587 (name "gthumb")
9588 (version "3.8.2")
9589 (source (origin
9590 (method url-fetch)
9591 (uri (string-append "mirror://gnome/sources/gthumb/"
9592 (version-major+minor version) "/"
9593 "gthumb-" version ".tar.xz"))
9594 (sha256
9595 (base32
9596 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9597 (build-system meson-build-system)
9598 (arguments
9599 `(#:glib-or-gtk? #t
9600 #:configure-flags
9601 ;; Ensure the RUNPATH contains all installed library locations.
9602 (list (string-append "-Dc_link_args=-Wl,-rpath="
9603 (assoc-ref %outputs "out")
9604 "/lib/gthumb/extensions")
9605 (string-append "-Dcpp_link_args=-Wl,-rpath="
9606 (assoc-ref %outputs "out")
9607 "/lib/gthumb/extensions"))))
9608 (native-inputs
9609 `(("pkg-config" ,pkg-config)
9610 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9611 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9612 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9613 ("intltool" ,intltool)
9614 ("itstool" ,itstool)))
9615 (inputs
9616 `(("exiv2" ,exiv2)
9617 ("gtk" ,gtk+)
9618 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9619 ("gstreamer" ,gstreamer)
9620 ("clutter" ,clutter)
9621 ("clutter-gst" ,clutter-gst)
9622 ("clutter-gtk" ,clutter-gtk)
9623 ("libjpeg" ,libjpeg-turbo)
9624 ("libtiff" ,libtiff)
9625 ("libraw" ,libraw)))
9626 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9627 (synopsis "GNOME image viewer and browser")
9628 (description "GThumb is an image viewer, browser, organizer, editor and
9629 advanced image management tool")
9630 (license license:gpl2+)))
9631
9632 (define-public terminator
9633 (package
9634 (name "terminator")
9635 (version "1.91")
9636 (source (origin
9637 (method url-fetch)
9638 (uri (string-append "https://launchpad.net/" name "/"
9639 "gtk3/" version "/" "+download/"
9640 name "-" version ".tar.gz"))
9641 (sha256
9642 (base32
9643 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9644 (build-system python-build-system)
9645 (native-inputs
9646 `(("intltool" ,intltool)
9647 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9648 ("gettext" ,gettext-minimal)
9649 ("pkg-config" ,pkg-config)))
9650 (inputs
9651 `(("cairo" ,cairo)
9652 ("gobject-introspection" ,gobject-introspection)
9653 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9654 ("python2-pycairo" ,python2-pycairo)
9655 ("python2-pygobject" ,python2-pygobject)
9656 ("python2-psutil" ,python2-psutil)
9657 ("vte" ,vte)))
9658 (arguments
9659 `(#:python ,python-2 ; Python 3 isn't supported
9660 #:imported-modules ((guix build glib-or-gtk-build-system)
9661 ,@%python-build-system-modules)
9662 #:modules ((guix build python-build-system)
9663 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9664 (guix build utils))
9665 #:phases
9666 (modify-phases %standard-phases
9667 (add-after
9668 'install 'wrap-program
9669 (lambda* (#:key outputs #:allow-other-keys)
9670 (let ((prog (string-append (assoc-ref outputs "out")
9671 "/bin/terminator")))
9672 (wrap-program prog
9673 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9674 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9675 #t)))
9676 (add-after 'wrap-program 'glib-or-gtk-wrap
9677 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9678 (home-page "https://gnometerminator.blogspot.com/")
9679 (synopsis "Store and run multiple GNOME terminals in one window")
9680 (description
9681 "Terminator allows you to run multiple GNOME terminals in a grid and
9682 +tabs, and it supports drag and drop re-ordering of terminals.")
9683 (license license:gpl2)))
9684
9685 (define-public libhandy
9686 (package
9687 (name "libhandy")
9688 (version "0.0.12")
9689 (source
9690 (origin
9691 (method git-fetch)
9692 (uri (git-reference
9693 (url "https://source.puri.sm/Librem5/libhandy")
9694 (commit (string-append "v" version))))
9695 (file-name (git-file-name name version))
9696 (sha256
9697 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9698 (build-system meson-build-system)
9699 (arguments
9700 `(#:configure-flags
9701 '("-Dglade_catalog=disabled"
9702 "-Dgtk_doc=true")
9703 #:phases
9704 (modify-phases %standard-phases
9705 (add-before 'check 'pre-check
9706 (lambda _
9707 ;; Tests require a running X server.
9708 (system "Xvfb :1 &")
9709 (setenv "DISPLAY" ":1")
9710 #t)))))
9711 (inputs
9712 `(("gtk+" ,gtk+)))
9713 (native-inputs
9714 `(("glib:bin" ,glib "bin")
9715 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9716 ("vala" ,vala)
9717 ("gtk-doc" ,gtk-doc)
9718 ("pkg-config" ,pkg-config)
9719 ("gettext" ,gettext-minimal)
9720
9721 ;; Test suite dependencies.
9722 ("xorg-server" ,xorg-server-for-tests)
9723 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9724 (home-page "https://source.puri.sm/Librem5/libhandy")
9725 (synopsis "Library full of GTK+ widgets for mobile phones")
9726 (description "The aim of the handy library is to help with developing user
9727 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9728 for usage on small and big screens.")
9729 (license license:lgpl2.1+)))
9730
9731 (define-public libgit2-glib
9732 (package
9733 (name "libgit2-glib")
9734 (version "0.99.0.1")
9735 (source (origin
9736 (method url-fetch)
9737 (uri (string-append "mirror://gnome/sources/" name "/"
9738 (version-major+minor version) "/"
9739 name "-" version ".tar.xz"))
9740 (sha256
9741 (base32
9742 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
9743 (build-system meson-build-system)
9744 (native-inputs
9745 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9746 ("gobject-introspection" ,gobject-introspection)
9747 ("pkg-config" ,pkg-config)
9748 ("python-pygobject" ,python-pygobject)
9749 ("python-wrapper" ,python-wrapper)
9750 ("vala" ,vala)))
9751 (inputs
9752 `(("glib" ,glib)
9753 ("libssh2" ,libssh2)))
9754 (propagated-inputs
9755 `(;; In Requires of libgit2-glib.pc.
9756 ("libgit2" ,libgit2)))
9757 (synopsis "GLib wrapper around the libgit2 Git access library")
9758 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9759 access library. It only implements the core plumbing functions, not really the
9760 higher level porcelain stuff.")
9761 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9762 (license license:gpl2+)))
9763
9764 (define-public gitg
9765 (package
9766 (name "gitg")
9767 (version "3.32.1")
9768 (source (origin
9769 (method url-fetch)
9770 (uri (string-append "mirror://gnome/sources/" name "/"
9771 (version-major+minor version) "/"
9772 name "-" version ".tar.xz"))
9773 (sha256
9774 (base32
9775 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9776 (build-system meson-build-system)
9777 (arguments
9778 `(#:glib-or-gtk? #t
9779 #:phases
9780 (modify-phases %standard-phases
9781 (add-after 'unpack 'disable-post-install-partially
9782 (lambda _
9783 (substitute* "meson_post_install.py"
9784 (("'python'") ; there are no python sources to compile
9785 (string-append "'" (which "true") "'"))
9786 (("gtk-update-icon-cache") (which "true")))
9787 #t))
9788 (add-after 'unpack 'fix-test-sources
9789 (lambda _
9790 (substitute* "tests/libgitg/test-commit.vala"
9791 (("/bin/bash") (which "bash")))
9792 #t))
9793 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9794 (lambda* (#:key outputs #:allow-other-keys)
9795 (let ((prog (string-append (assoc-ref outputs "out")
9796 "/bin/gitg")))
9797 (wrap-program prog
9798 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9799 #t))))))
9800 (inputs
9801 `(("glib" ,glib)
9802 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9803 ("gtk+" ,gtk+)
9804 ("gtkspell3" ,gtkspell3)
9805 ("gtksourceview" ,gtksourceview-3)
9806 ("json-glib" ,json-glib)
9807 ("libdazzle" ,libdazzle)
9808 ("libgee" ,libgee)
9809 ("libgit2-glib" ,libgit2-glib)
9810 ("libpeas" ,libpeas)
9811 ("libsecret" ,libsecret)
9812 ("libsoup" ,libsoup)
9813 ("libxml2" ,libxml2)))
9814 (native-inputs
9815 `(("glib:bin" ,glib "bin")
9816 ("gtk+:bin" ,gtk+ "bin")
9817 ("gobject-introspection" ,gobject-introspection)
9818 ("intltool" ,intltool)
9819 ("pkg-config" ,pkg-config)
9820 ("vala" ,vala)))
9821 (synopsis "Graphical user interface for git")
9822 (description
9823 "gitg is a graphical user interface for git. It aims at being a small,
9824 fast and convenient tool to visualize the history of git repositories.
9825 Besides visualization, gitg also provides several utilities to manage your
9826 repository and commit your work.")
9827 (home-page "https://wiki.gnome.org/Apps/Gitg")
9828 (license license:gpl2+)))
9829
9830 (define-public gamin
9831 (package
9832 (name "gamin")
9833 (version "0.1.10")
9834 (source (origin
9835 (method url-fetch)
9836 (uri (string-append "mirror://gnome/sources/" name "/"
9837 (version-major+minor version) "/"
9838 name "-" version ".tar.bz2"))
9839 (sha256
9840 (base32
9841 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9842 (build-system gnu-build-system)
9843 (arguments
9844 `(#:phases
9845 (modify-phases %standard-phases
9846 (add-after 'unpack 'remove-deprecated-macro
9847 (lambda _
9848 (substitute* '("server/gam_node.c"
9849 "server/gam_subscription.h"
9850 "server/gam_node.h"
9851 "server/gam_subscription.c")
9852 (("G_CONST_RETURN") "const"))
9853 #t)))))
9854 (inputs
9855 `(("glib" ,glib)))
9856 (native-inputs
9857 `(("intltool" ,intltool)
9858 ("pkg-config" ,pkg-config)))
9859 (home-page "https://people.gnome.org/~veillard/gamin/")
9860 (synopsis "File alteration monitor")
9861 (description
9862 "Gamin is a file and directory monitoring system defined to be a subset
9863 of the FAM (File Alteration Monitor) system. This is a service provided by a
9864 library which detects when a file or a directory has been modified.")
9865 (license license:gpl2+)))
9866
9867 (define-public gnome-mahjongg
9868 (package
9869 (name "gnome-mahjongg")
9870 (version "3.35.1")
9871 (source (origin
9872 (method git-fetch)
9873 (uri (git-reference
9874 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9875 (commit version)))
9876 (file-name (git-file-name name version))
9877 (sha256
9878 (base32
9879 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9880 (build-system meson-build-system)
9881 (arguments
9882 `(#:glib-or-gtk? #t))
9883 (native-inputs
9884 `(("appstream-glib" ,appstream-glib)
9885 ("gettext" ,gettext-minimal)
9886 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9887 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9888 ("itstool" ,itstool)
9889 ("pkg-config" ,pkg-config)
9890 ("vala" ,vala)))
9891 (propagated-inputs
9892 `(("dconf" ,dconf)))
9893 (inputs
9894 `(("glib" ,glib)
9895 ("gtk+" ,gtk+)
9896 ("librsvg" ,librsvg)))
9897 (synopsis "Mahjongg tile-matching game")
9898 (description "GNOME Mahjongg is a game based on the classic Chinese
9899 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9900 and a high score table.")
9901 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9902 (license license:gpl2+)))
9903
9904 (define-public gnome-themes-extra
9905 (package
9906 (name "gnome-themes-extra")
9907 (version "3.28")
9908 (source
9909 (origin
9910 (method url-fetch)
9911 (uri (string-append "mirror://gnome/sources/" name "/"
9912 (version-major+minor version) "/" name "-"
9913 version ".tar.xz"))
9914 (sha256
9915 (base32
9916 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9917 (build-system gnu-build-system)
9918 (arguments
9919 '(#:configure-flags
9920 ;; Don't create 'icon-theme.cache'.
9921 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9922 (true (string-append coreutils "/bin/true")))
9923 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9924 (native-inputs
9925 `(("glib:bin" ,glib "bin")
9926 ("intltool" ,intltool)
9927 ("pkg-config" ,pkg-config)))
9928 (inputs
9929 `(("glib" ,glib)
9930 ("gtk+" ,gtk+)
9931 ("gtk+-2" ,gtk+-2)
9932 ("librsvg" ,librsvg)
9933 ("libxml2" ,libxml2)))
9934 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9935 (synopsis "GNOME Extra Themes")
9936 (description "This package provides themes and related elements that don't
9937 really fit in other upstream packages. It offers legacy support for GTK+ 2
9938 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9939 index files needed for Adwaita to be used outside of GNOME.")
9940 (license license:lgpl2.1+)))
9941
9942 (define-public polari
9943 (package
9944 (name "polari")
9945 (version "3.32.2")
9946 (source (origin
9947 (method url-fetch)
9948 (uri (string-append "mirror://gnome/sources/polari/"
9949 (version-major+minor version)
9950 "/polari-" version ".tar.xz"))
9951 (sha256
9952 (base32
9953 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9954 (build-system meson-build-system)
9955 (arguments
9956 `(#:glib-or-gtk? #t
9957 #:phases
9958 (modify-phases %standard-phases
9959 (add-after 'unpack 'skip-gtk-update-icon-cache
9960 (lambda _
9961 (substitute* "meson/meson-postinstall.sh"
9962 (("gtk-update-icon-cache") (which "true")))
9963 #t))
9964 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9965 (lambda* (#:key outputs #:allow-other-keys)
9966 (let ((prog (string-append (assoc-ref outputs "out")
9967 "/bin/polari")))
9968 (wrap-program prog
9969 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9970 #t))))))
9971 (inputs
9972 `(("glib" ,glib)
9973 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9974 ("gspell" ,gspell)
9975 ("gtk+" ,gtk+)
9976 ("gjs" ,gjs)
9977 ("libsecret" ,libsecret)
9978 ("libsoup" ,libsoup)
9979 ("telepathy-glib" ,telepathy-glib)
9980 ("telepathy-logger" ,telepathy-logger)))
9981 (native-inputs
9982 `(("glib:bin" ,glib "bin")
9983 ("gobject-introspection" ,gobject-introspection)
9984 ("intltool" ,intltool)
9985 ("pkg-config" ,pkg-config)
9986 ("yelp-tools" ,yelp-tools)))
9987 (propagated-inputs
9988 `(("telepathy-idle" ,telepathy-idle)
9989 ("telepathy-mission-control" ,telepathy-mission-control)))
9990 (synopsis "Simple IRC Client")
9991 (description
9992 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9993 integrate seamlessly with the GNOME desktop.")
9994 (home-page "https://wiki.gnome.org/Apps/Polari")
9995 (license license:gpl2+)))
9996
9997 (define-public gnome-boxes
9998 (package
9999 (name "gnome-boxes")
10000 (version "3.36.4")
10001 (source
10002 (origin
10003 (method url-fetch)
10004 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10005 (version-major+minor version) "/"
10006 "gnome-boxes-" version ".tar.xz"))
10007 (sha256
10008 (base32 "16l0mq2ydmywcdya1795mcy8syg4zkmz9ws3pzjcqv5y4m7cjj03"))))
10009 (build-system meson-build-system)
10010 (arguments
10011 '(#:glib-or-gtk? #t
10012 #:configure-flags (list "-Drdp=false"
10013 (string-append "-Dc_link_args=-Wl,-rpath="
10014 (assoc-ref %outputs "out")
10015 "/lib/gnome-boxes"))))
10016 (native-inputs
10017 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10018 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10019 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10020 ("itstool" ,itstool)
10021 ("intltool" ,intltool)
10022 ("vala" ,vala)
10023 ("pkg-config" ,pkg-config)))
10024 (inputs
10025 `(("libarchive" ,libarchive)
10026 ("gtk" ,gtk+)
10027 ("gtk-vnc" ,gtk-vnc)
10028 ("libosinfo" ,libosinfo)
10029 ("libsecret" ,libsecret)
10030 ("libsoup" ,libsoup)
10031 ("libusb" ,libusb)
10032 ("libvirt" ,libvirt)
10033 ("libvirt-glib" ,libvirt-glib)
10034 ("libxml" ,libxml2)
10035 ("spice-gtk" ,spice-gtk)
10036 ("sparql-query" ,sparql-query)
10037 ("vte" ,vte)
10038 ("webkitgtk" ,webkitgtk)
10039 ("tracker" ,tracker)
10040 ("libgudev" ,libgudev)))
10041 (home-page "https://wiki.gnome.org/Apps/Boxes")
10042 (synopsis "View, access, and manage remote and virtual systems")
10043 (description "GNOME Boxes is a simple application to view, access, and
10044 manage remote and virtual systems.")
10045 (license (list
10046 ;; For data/icons/empty-boxes.png.
10047 license:cc-by2.0
10048 ;; For all others.
10049 license:lgpl2.0+))))
10050
10051 (define-public geary
10052 (package
10053 (name "geary")
10054 (version "3.34.1")
10055 (source (origin
10056 (method git-fetch)
10057 (uri (git-reference
10058 (url "https://gitlab.gnome.org/GNOME/geary")
10059 (commit version)))
10060 (file-name (git-file-name name version))
10061 (sha256
10062 (base32
10063 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10064 (build-system meson-build-system)
10065 (arguments
10066 `(#:glib-or-gtk? #t
10067 #:phases (modify-phases %standard-phases
10068 (add-after 'unpack 'disable-failing-tests
10069 (lambda _
10070 (substitute* "test/meson.build"
10071 (("test\\('client-tests', geary_test_client_bin\\)")
10072 ""))
10073 #t))
10074 (add-after 'unpack 'disable-postinstall-script
10075 (lambda _
10076 (substitute* "meson.build"
10077 (("meson.add_install_script\\(\
10078 join_paths\\('build-aux', 'post_install.py'\\)\\)")
10079 ""))
10080 #t))
10081 (add-before 'check 'setup-xvfb
10082 (lambda _
10083 (system "Xvfb :1 &")
10084 (setenv "DISPLAY" ":1")
10085 #t)))))
10086 (inputs
10087 `(("enchant" ,enchant)
10088 ("folks" ,folks)
10089 ("gcr" ,gcr)
10090 ("glib" ,glib)
10091 ("gmime" ,gmime-2.6)
10092 ("gnome-online-accounts:lib"
10093 ,gnome-online-accounts "lib")
10094 ("gspell" ,gspell)
10095 ("gtk+" ,gtk+)
10096 ("iso-codes" ,iso-codes)
10097 ("json-glib" ,json-glib)
10098 ("libcanberra" ,libcanberra)
10099 ("libgee" ,libgee)
10100 ("libhandy" ,libhandy)
10101 ("libpeas" ,libpeas)
10102 ("libsecret" ,libsecret)
10103 ("libunwind" ,libunwind)
10104 ("sqlite" ,sqlite)
10105 ("webkitgtk" ,webkitgtk)
10106 ("ytnef" ,ytnef)))
10107 (native-inputs
10108 `(("appstream-glib" ,appstream-glib)
10109 ("cmake-minimal" ,cmake-minimal)
10110 ("desktop-file-utils" ,desktop-file-utils)
10111 ("gettext" ,gettext-minimal)
10112 ("glib:bin" ,glib "bin")
10113 ("gobject-introspection" ,gobject-introspection)
10114 ("itstool" ,itstool)
10115 ("libarchive" ,libarchive)
10116 ("libxml2" ,libxml2)
10117 ("pkg-config" ,pkg-config)
10118 ("vala" ,vala)
10119 ("xvfb" ,xorg-server-for-tests)))
10120 (synopsis "GNOME email application built around conversations")
10121 (description
10122 "Geary collects related messages together into conversations,
10123 making it easy to find and follow your discussions. Full-text and keyword
10124 search makes it easy to find the email you are looking for. Geary's
10125 full-featured composer lets you send rich, styled text with images, links, and
10126 lists, but also send lightweight, easy to read text messages. Geary
10127 automatically picks up your existing GNOME Online Accounts, and adding more is
10128 easy. Geary has a clean, fast, modern interface that works like you want it
10129 to.")
10130 (home-page "https://wiki.gnome.org/Apps/Geary")
10131 (license (list
10132 ;; geary
10133 license:lgpl2.1+
10134 ;; icons
10135 license:cc-by3.0
10136 license:cc-by-sa3.0
10137 license:public-domain
10138 ;; snowball
10139 license:bsd-2))))
10140
10141 (define-public glabels
10142 (package
10143 (name "glabels")
10144 (version "3.4.1")
10145 (source
10146 (origin
10147 (method url-fetch)
10148 (uri (string-append "mirror://gnome/sources/" name "/"
10149 (version-major+minor version) "/"
10150 "glabels-" version ".tar.xz"))
10151 (sha256
10152 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10153 (build-system glib-or-gtk-build-system)
10154 (native-inputs
10155 `(("gettext" ,gettext-minimal)
10156 ("glib:bin" ,glib "bin")
10157 ("intltool" ,intltool)
10158 ("itstool" ,itstool)
10159 ("pkg-config" ,pkg-config)))
10160 (inputs
10161 `(("gtk+" ,gtk+)
10162 ("librsvg" ,librsvg)
10163 ("libxml2" ,libxml2)))
10164 (home-page "https://glabels.org/")
10165 (synopsis "Program for creating labels and business cards")
10166 (description
10167 "gLabels is a program for creating labels and business cards. It is
10168 designed to work with various laser/ink-jet peel-off label and business
10169 card sheets that you’ll find at most office supply stores.")
10170 (license license:gpl3+)))
10171
10172 (define-public libratbag
10173 (package
10174 (name "libratbag")
10175 (version "0.13")
10176 (source
10177 (origin
10178 (method git-fetch)
10179 (uri (git-reference
10180 (url "https://github.com/libratbag/libratbag.git")
10181 (commit (string-append "v" version))))
10182 (file-name (git-file-name name version))
10183 (sha256
10184 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10185 (build-system meson-build-system)
10186 (arguments
10187 `(#:configure-flags
10188 (list "-Dsystemd=false"
10189 "-Dlogind-provider=elogind")
10190 #:phases
10191 (modify-phases %standard-phases
10192 (add-after 'install 'wrap
10193 (lambda* (#:key inputs outputs #:allow-other-keys)
10194 (let* ((out (assoc-ref outputs "out"))
10195 (site (string-append
10196 "/lib/python"
10197 ,(version-major+minor (package-version python))
10198 "/site-packages"))
10199 (evdev (string-append
10200 (assoc-ref inputs "python-evdev") site))
10201 (pygo (string-append
10202 (assoc-ref inputs "python-pygobject") site))
10203 (python-wrap
10204 `("PYTHONPATH" = (,evdev ,pygo))))
10205 (wrap-program (string-append out "/bin/" "ratbagctl")
10206 python-wrap)
10207 #t))))))
10208 (native-inputs
10209 `(("check" ,check)
10210 ("pkg-config" ,pkg-config)
10211 ("swig" ,swig)
10212 ("valgrind" ,valgrind)))
10213 (inputs
10214 `(("glib" ,glib)
10215 ("json-glib" ,json-glib)
10216 ("libevdev" ,libevdev)
10217 ("libsystemd" ,elogind)
10218 ("libunistring" ,libunistring)
10219 ("python-evdev" ,python-evdev)
10220 ("python-pygobject" ,python-pygobject)
10221 ("udev" ,eudev)))
10222 (home-page "https://github.com/libratbag/libratbag")
10223 (synopsis "DBus daemon and utility for configuring gaming mice")
10224 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10225 configure input devices, mainly gaming mice. The daemon provides a generic
10226 way to access the various features exposed by these mice and abstracts away
10227 hardware-specific and kernel-specific quirks. There is also the
10228 @command{ratbagctl} command line interface for configuring devices.
10229
10230 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10231 Steelseries.
10232
10233 The ratbagd DBus service can be enabled by adding the following service to
10234 your operating-system definition:
10235
10236 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10237 (license license:expat)))
10238
10239 (define-public piper
10240 (package
10241 (name "piper")
10242 (version "0.5")
10243 (source
10244 (origin
10245 (method git-fetch)
10246 (uri (git-reference
10247 (url "https://github.com/libratbag/piper.git")
10248 (commit version)))
10249 (sha256
10250 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10251 (file-name (git-file-name name version))))
10252 (build-system meson-build-system)
10253 (native-inputs
10254 `(("gettext" ,gettext-minimal)
10255 ("glib:bin" ,glib "bin")
10256 ("gobject-introspection" ,gobject-introspection)
10257 ("pkg-config" ,pkg-config)
10258 ("python-flake8" ,python-flake8)))
10259 (inputs
10260 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10261 ("gtk" ,gtk+)
10262 ("gtk:bin" ,gtk+ "bin")
10263 ("librsvg" ,librsvg)
10264 ("python-evdev" ,python-evdev)
10265 ("python-lxml" ,python-lxml)
10266 ("python-pycairo" ,python-pycairo)
10267 ("python-pygobject" ,python-pygobject)))
10268 (arguments
10269 `(#:imported-modules ((guix build python-build-system)
10270 ,@%meson-build-system-modules)
10271 #:modules (((guix build python-build-system) #:prefix python:)
10272 (guix build meson-build-system)
10273 (guix build utils))
10274 #:phases
10275 (modify-phases %standard-phases
10276 (add-after 'unpack 'dont-update-gtk-icon-cache
10277 (lambda _
10278 (substitute* "meson.build"
10279 (("meson.add_install_script('meson_install.sh')") ""))
10280 #t))
10281 ;; TODO: Switch to wrap-script when it is fixed.
10282 (add-after 'install 'wrap-python
10283 (assoc-ref python:%standard-phases 'wrap))
10284 (add-after 'wrap-python 'wrap
10285 (lambda* (#:key outputs #:allow-other-keys)
10286 (wrap-program
10287 (string-append (assoc-ref outputs "out" )"/bin/piper")
10288 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10289 #t)))))
10290 (home-page "https://github.com/libratbag/piper/")
10291 (synopsis "Configure bindings and LEDs on gaming mice")
10292 (description "Piper is a GTK+ application for configuring gaming mice with
10293 onboard configuration for key bindings via libratbag. Piper requires
10294 a @command{ratbagd} daemon running with root privileges. It can be run
10295 manually as root, but is preferably configured as a DBus service that can
10296 launch on demand. This can be configured by enabling the following service,
10297 provided there is a DBus service present:
10298
10299 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10300 (license license:gpl2)))
10301
10302 (define-public parlatype
10303 ;; This is one commit away from 2.0, because the latter introduced
10304 ;; a regression in ASR.
10305 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10306 (revision "0"))
10307 (package
10308 (name "parlatype")
10309 (version (git-version "2.0" revision commit))
10310 (source
10311 (origin
10312 (method git-fetch)
10313 (uri (git-reference
10314 (url "https://github.com/gkarsay/parlatype.git")
10315 (commit commit)))
10316 (file-name (git-file-name name version))
10317 (sha256
10318 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10319 (build-system meson-build-system)
10320 (arguments
10321 `(#:glib-or-gtk? #t
10322 #:tests? #f ;require internet access
10323 #:phases
10324 (modify-phases %standard-phases
10325 (add-after 'install 'wrap-parlatype
10326 ;; Add gstreamer plugin provided in this package to system's
10327 ;; plugins.
10328 (lambda* (#:key outputs #:allow-other-keys)
10329 (let* ((out (assoc-ref outputs "out"))
10330 (gst-plugin-path (string-append
10331 out "/lib/gstreamer-1.0/"
10332 ":"
10333 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10334 (wrap-program (string-append out "/bin/parlatype")
10335 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10336 #t)))))
10337 (native-inputs
10338 `(("appstream-glib" ,appstream-glib)
10339 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10340 ("gettext" ,gettext-minimal)
10341 ("glib" ,glib "bin") ;for glib-compile-resources
10342 ("pkg-config" ,pkg-config)
10343 ("yelp-tools" ,yelp-tools)))
10344 (inputs
10345 `(("gst-plugins-base" ,gst-plugins-base)
10346 ("gst-plugins-good" ,gst-plugins-good)
10347 ("gstreamer" ,gstreamer)
10348 ("gtk+" ,gtk+)
10349 ("pocketsphinx" ,pocketsphinx)
10350 ("pulseaudio" ,pulseaudio)
10351 ("sphinxbase" ,sphinxbase)))
10352 (home-page "http://gkarsay.github.io/parlatype/")
10353 (synopsis "GNOME audio player for transcription")
10354 (description "Parlatype is an audio player for the GNOME desktop
10355 environment. Its main purpose is the manual transcription of spoken
10356 audio files.")
10357 (license license:gpl3+))))
10358
10359 (define-public jsonrpc-glib
10360 (package
10361 (name "jsonrpc-glib")
10362 (version "3.34.0")
10363 (source (origin
10364 (method url-fetch)
10365 (uri (string-append "mirror://gnome/sources/" name "/"
10366 (version-major+minor version) "/"
10367 name "-" version ".tar.xz"))
10368 (sha256
10369 (base32
10370 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10371 (build-system meson-build-system)
10372 (inputs
10373 `(("json-glib" ,json-glib)
10374 ("glib" ,glib)))
10375 (native-inputs
10376 `(("pkg-config" ,pkg-config)
10377 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10378 ("gobject-introspection" ,gobject-introspection)
10379 ("vala" ,vala)))
10380 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10381 (synopsis "JSON-RPC library for GLib")
10382 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10383 peers in either a synchronous or asynchronous fashion. It also allows
10384 communicating using the GVariant serialization format instead of JSON when
10385 both peers support it. You might want that when communicating on a single
10386 host to avoid parser overhead and memory-allocator fragmentation.")
10387 (license license:lgpl2.1+)))