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