gnu: network-manager: Switch to meson-build-system.
[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 ;;;
57 ;;; This file is part of GNU Guix.
58 ;;;
59 ;;; GNU Guix is free software; you can redistribute it and/or modify it
60 ;;; under the terms of the GNU General Public License as published by
61 ;;; the Free Software Foundation; either version 3 of the License, or (at
62 ;;; your option) any later version.
63 ;;;
64 ;;; GNU Guix is distributed in the hope that it will be useful, but
65 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
66 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
67 ;;; GNU General Public License for more details.
68 ;;;
69 ;;; You should have received a copy of the GNU General Public License
70 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
71
72 (define-module (gnu packages gnome)
73 #:use-module (gnu packages)
74 #:use-module (gnu packages admin)
75 #:use-module (gnu packages aspell)
76 #:use-module (gnu packages autotools)
77 #:use-module (gnu packages avahi)
78 #:use-module (gnu packages backup)
79 #:use-module (gnu packages base)
80 #:use-module (gnu packages bash)
81 #:use-module (gnu packages bison)
82 #:use-module (gnu packages boost)
83 #:use-module (gnu packages build-tools)
84 #:use-module (gnu packages calendar)
85 #:use-module (gnu packages cdrom)
86 #:use-module (gnu packages check)
87 #:use-module (gnu packages cmake)
88 #:use-module (gnu packages compression)
89 #:use-module (gnu packages crates-io)
90 #:use-module (gnu packages cups)
91 #:use-module (gnu packages curl)
92 #:use-module (gnu packages cyrus-sasl)
93 #:use-module (gnu packages databases)
94 #:use-module (gnu packages dbm)
95 #:use-module (gnu packages djvu)
96 #:use-module (gnu packages dns)
97 #:use-module (gnu packages docbook)
98 #:use-module (gnu packages documentation)
99 #:use-module (gnu packages enchant)
100 #:use-module (gnu packages flex)
101 #:use-module (gnu packages fonts)
102 #:use-module (gnu packages file-systems)
103 #:use-module (gnu packages fontutils)
104 #:use-module (gnu packages freedesktop)
105 #:use-module (gnu packages game-development)
106 #:use-module (gnu packages gettext)
107 #:use-module (gnu packages ghostscript)
108 #:use-module (gnu packages gl)
109 #:use-module (gnu packages glib)
110 #:use-module (gnu packages gnupg)
111 #:use-module (gnu packages gnuzilla)
112 #:use-module (gnu packages geo)
113 #:use-module (gnu packages gperf)
114 #:use-module (gnu packages graphviz)
115 #:use-module (gnu packages gstreamer)
116 #:use-module (gnu packages gtk)
117 #:use-module (gnu packages guile)
118 #:use-module (gnu packages ibus)
119 #:use-module (gnu packages icu4c)
120 #:use-module (gnu packages image)
121 #:use-module (gnu packages imagemagick)
122 #:use-module (gnu packages inkscape)
123 #:use-module (gnu packages iso-codes)
124 #:use-module (gnu packages kerberos)
125 #:use-module (gnu packages libcanberra)
126 #:use-module (gnu packages libunistring)
127 #:use-module (gnu packages libunwind)
128 #:use-module (gnu packages libusb)
129 #:use-module (gnu packages linux)
130 #:use-module (gnu packages lirc)
131 #:use-module (gnu packages lua)
132 #:use-module (gnu packages mail)
133 #:use-module (gnu packages mp3)
134 #:use-module (gnu packages multiprecision)
135 #:use-module (gnu packages music)
136 #:use-module (gnu packages ncurses)
137 #:use-module (gnu packages nettle)
138 #:use-module (gnu packages networking)
139 #:use-module (gnu packages ninja)
140 #:use-module (gnu packages nss)
141 #:use-module (gnu packages openldap)
142 #:use-module (gnu packages password-utils)
143 #:use-module (gnu packages pcre)
144 #:use-module (gnu packages pdf)
145 #:use-module (gnu packages perl)
146 #:use-module (gnu packages photo)
147 #:use-module (gnu packages pkg-config)
148 #:use-module (gnu packages polkit)
149 #:use-module (gnu packages popt)
150 #:use-module (gnu packages pretty-print)
151 #:use-module (gnu packages pulseaudio)
152 #:use-module (gnu packages python)
153 #:use-module (gnu packages python-crypto)
154 #:use-module (gnu packages python-web)
155 #:use-module (gnu packages python-xyz)
156 #:use-module (gnu packages rdesktop)
157 #:use-module (gnu packages readline)
158 #:use-module (gnu packages ruby)
159 #:use-module (gnu packages rust)
160 #:use-module (gnu packages samba)
161 #:use-module (gnu packages scanner)
162 #:use-module (gnu packages selinux)
163 #:use-module (gnu packages slang)
164 #:use-module (gnu packages speech)
165 #:use-module (gnu packages spice)
166 #:use-module (gnu packages sqlite)
167 #:use-module (gnu packages ssh)
168 #:use-module (gnu packages swig)
169 #:use-module (gnu packages tex)
170 #:use-module (gnu packages time)
171 #:use-module (gnu packages tls)
172 #:use-module (gnu packages valgrind)
173 #:use-module (gnu packages version-control)
174 #:use-module (gnu packages video)
175 #:use-module (gnu packages virtualization)
176 #:use-module (gnu packages vpn)
177 #:use-module (gnu packages web)
178 #:use-module (gnu packages webkit)
179 #:use-module (gnu packages xdisorg)
180 #:use-module (gnu packages xiph)
181 #:use-module (gnu packages xml)
182 #:use-module (gnu packages xorg)
183 #:use-module (gnu artwork)
184 #:use-module (guix build-system cargo)
185 #:use-module (guix build-system cmake)
186 #:use-module (guix build-system glib-or-gtk)
187 #:use-module (guix build-system gnu)
188 #:use-module (guix build-system meson)
189 #:use-module (guix build-system python)
190 #:use-module (guix build-system trivial)
191 #:use-module (guix download)
192 #:use-module (guix git-download)
193 #:use-module ((guix licenses) #:prefix license:)
194 #:use-module (guix packages)
195 #:use-module (guix utils)
196 #:use-module (guix gexp)
197 #:use-module (guix monads)
198 #:use-module (guix store)
199 #:use-module (ice-9 match)
200 #:use-module (srfi srfi-1))
201
202 (define-public brasero
203 (package
204 (name "brasero")
205 (version "3.12.2")
206 (source (origin
207 (method url-fetch)
208 (uri (string-append "mirror://gnome/sources/brasero/"
209 (version-major+minor version) "/"
210 "brasero-" version ".tar.xz"))
211 (sha256
212 (base32
213 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
214 (build-system glib-or-gtk-build-system)
215 (arguments
216 `(#:configure-flags (list
217 (string-append "--with-girdir="
218 (assoc-ref %outputs "out")
219 "/share/gir-1.0")
220 (string-append "--with-typelibdir="
221 (assoc-ref %outputs "out")
222 "/lib/girepository-1.0"))
223 #:phases
224 (modify-phases %standard-phases
225 (add-before 'configure 'embed-growisofs
226 (lambda* (#:key inputs #:allow-other-keys)
227 (substitute* "plugins/growisofs/burn-growisofs.c"
228 (("\"growisofs") (string-append "\"" (which "growisofs"))))
229 #t)))))
230 (propagated-inputs
231 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
232 (native-inputs
233 `(("intltool" ,intltool)
234 ("itstool" ,itstool)
235 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
236 ("gobject-introspection" ,gobject-introspection)
237 ("pkg-config" ,pkg-config)))
238 (inputs
239 `(("dvd+rw-tools" ,dvd+rw-tools)
240 ("glib" ,glib)
241 ("gnome-doc-utils" ,gnome-doc-utils)
242 ("gstreamer" ,gstreamer)
243 ("gst-plugins-base" ,gst-plugins-base)
244 ("gtk+" ,gtk+)
245 ("libcanberra" ,libcanberra)
246 ("libice" ,libice)
247 ("libnotify" ,libnotify)
248 ("libsm" ,libsm)
249 ("libxml2" ,libxml2)
250 ("totem-pl-parser" ,totem-pl-parser)))
251 (home-page "https://wiki.gnome.org/Apps/Brasero")
252 (synopsis "CD/DVD burning tool for Gnome")
253 (description "Brasero is an application to burn CD/DVD for the Gnome
254 Desktop. It is designed to be as simple as possible and has some unique
255 features to enable users to create their discs easily and quickly.")
256 (license license:gpl2+)))
257
258 (define-public notification-daemon
259 (package
260 (name "notification-daemon")
261 (version "3.20.0")
262 (source
263 (origin
264 (method url-fetch)
265 (uri
266 (string-append "mirror://gnome/sources/" name "/"
267 (version-major+minor version) "/"
268 name "-" version ".tar.xz"))
269 (sha256
270 (base32
271 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
272 (build-system glib-or-gtk-build-system)
273 (native-inputs
274 `(("intltool" ,intltool)
275 ("pkg-config" ,pkg-config)))
276 (inputs
277 `(("glib" ,glib)
278 ("gtk+" ,gtk+)
279 ("x11" ,libx11)))
280 (synopsis "Notification Daemon for GNOME Desktop")
281 (description "Notification-Daemon is the server implementation of the
282 freedesktop.org desktop notification specification.")
283 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
284 (license license:gpl2+)))
285
286 (define-public mm-common
287 (package
288 (name "mm-common")
289 (version "1.0.0")
290 (source (origin
291 (method url-fetch)
292 (uri (string-append "mirror://gnome/sources/" name "/"
293 (version-major+minor version) "/"
294 name "-" version ".tar.xz"))
295 (sha256
296 (base32
297 "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr"))))
298 (build-system meson-build-system)
299 (arguments
300 `(#:phases
301 (modify-phases %standard-phases
302 (add-after 'unpack 'patch
303 (lambda* (#:key inputs #:allow-other-keys)
304 (substitute* "util/mm-common-prepare.in"
305 (("ln") (string-append (assoc-ref inputs "coreutils")
306 "/bin/ln"))
307 (("cp") (string-append (assoc-ref inputs "coreutils")
308 "/bin/cp"))
309 (("sed") (string-append (assoc-ref inputs "sed")
310 "/bin/sed"))
311 (("cat") (string-append (assoc-ref inputs "coreutils")
312 "/bin/cat")))
313 #t)))))
314 (native-inputs
315 `(("coreutils" ,coreutils)
316 ("gettext" ,gettext-minimal)
317 ("pkg-config" ,pkg-config)
318 ("sed" ,sed)))
319 (inputs
320 `(("python" ,python)))
321 (synopsis "Module of GNOME C++ bindings")
322 (description "The mm-common module provides the build infrastructure
323 and utilities shared among the GNOME C++ binding libraries. Release
324 archives of mm-common include the Doxygen tag file for the GNU C++
325 Library reference documentation.")
326 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
327 (license license:gpl2+)))
328
329 (define-public phodav
330 (package
331 (name "phodav")
332 (version "2.4")
333 (source (origin
334 (method url-fetch)
335 (uri (string-append "mirror://gnome/sources/" name "/"
336 (version-major+minor version) "/"
337 name "-" version ".tar.xz"))
338 (sha256
339 (base32
340 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
341 (build-system meson-build-system)
342 (native-inputs
343 `(("gettext" ,gettext-minimal)
344 ("glib:bin" ,glib "bin")
345 ("gtk-doc" ,gtk-doc)
346 ("pkg-config" ,pkg-config)))
347 (inputs
348 `(("avahi" ,avahi)
349 ("libgudev" ,libgudev)
350 ("libsoup" ,libsoup)))
351 (synopsis "WebDav server implementation using libsoup")
352 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
353 but it is generic enough to be reused in other projects,
354 in particular in the GNOME desktop.")
355 (home-page "https://wiki.gnome.org/phodav")
356 (license license:lgpl2.1+)))
357
358 (define-public gnome-color-manager
359 (package
360 (name "gnome-color-manager")
361 (version "3.32.0")
362 (source (origin
363 (method url-fetch)
364 (uri (string-append "mirror://gnome/sources/" name "/"
365 (version-major+minor version) "/"
366 name "-" version ".tar.xz"))
367 (sha256
368 (base32
369 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
370 (build-system meson-build-system)
371 (arguments
372 `(#:glib-or-gtk? #t
373 #:phases
374 (modify-phases %standard-phases
375 (add-before
376 'check 'pre-check
377 (lambda _
378 ;; Tests require a running X server.
379 (system "Xvfb :1 &")
380 (setenv "DISPLAY" ":1")
381 #t)))))
382 (native-inputs
383 `(("desktop-file-utils" ,desktop-file-utils)
384 ("gettext" ,gettext-minimal)
385 ("glib:bin" ,glib "bin")
386 ("gtk+:bin" ,gtk+ "bin")
387 ("itstool" ,itstool)
388 ("pkg-config" ,pkg-config)
389 ("xorg-server" ,xorg-server-for-tests)))
390 (inputs
391 `(("adwaita-icon-theme" ,adwaita-icon-theme)
392 ("appstream-glib" ,appstream-glib)
393 ("colord-gtk" ,colord-gtk)
394 ("exiv2" ,exiv2)
395 ("gnome-desktop" ,gnome-desktop)
396 ("libcanberra" ,libcanberra)
397 ("libexif" ,libexif)
398 ("libtiff" ,libtiff)
399 ("libxrandr" ,libxrandr)
400 ("libxtst" ,libxtst)
401 ("libxxf86vm" ,libxxf86vm)
402 ("vte" ,vte)
403 ("xorgproto" ,xorgproto)))
404 (synopsis "Color profile manager for the GNOME desktop")
405 (description "GNOME Color Manager is a session framework that makes
406 it easy to manage, install and generate color profiles
407 in the GNOME desktop.")
408 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
409 (license license:gpl2+)))
410
411 (define-public gnome-online-miners
412 (package
413 (name "gnome-online-miners")
414 (version "3.34.0")
415 (source (origin
416 (method url-fetch)
417 (uri (string-append "mirror://gnome/sources/" name "/"
418 (version-major+minor version) "/"
419 name "-" version ".tar.xz"))
420 (sha256
421 (base32
422 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
423 (build-system glib-or-gtk-build-system)
424 (native-inputs
425 `(("gettext" ,gettext-minimal)
426 ("glib:bin" ,glib "bin")
427 ("gobject-introspection" ,gobject-introspection)
428 ("gtk+:bin" ,gtk+ "bin")
429 ("pkg-config" ,pkg-config)))
430 (inputs
431 `(("gnome-online-accounts" ,gnome-online-accounts)
432 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
433 ("grilo" ,grilo)
434 ("libgdata" ,libgdata)
435 ("libgfbgraph" ,gfbgraph)
436 ("libzapojit" ,libzapojit)
437 ("rest" ,rest)
438 ("tracker" ,tracker)))
439 (synopsis "Web Crawlers for GNOME")
440 (description "GNOME Online Miners provides a set of crawlers that
441 go through your online content and index them locally in Tracker.
442 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
443 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
444 (license license:gpl2+)))
445
446 (define-public gssdp
447 (package
448 (name "gssdp")
449 (version "1.2.2")
450 (source (origin
451 (method url-fetch)
452 (uri (string-append "mirror://gnome/sources/" name "/"
453 (version-major+minor version) "/"
454 name "-" version ".tar.xz"))
455 (sha256
456 (base32
457 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
458 (build-system meson-build-system)
459 (native-inputs
460 `(("gettext" ,gettext-minimal)
461 ("glib:bin" ,glib "bin")
462 ("gobject-introspection" ,gobject-introspection)
463 ("gtk-doc" ,gtk-doc)
464 ("pkg-config" ,pkg-config)
465 ("vala" ,vala)))
466 (inputs
467 `(("gtk+" ,gtk+)
468 ("libsoup" ,libsoup)))
469 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
470 Protocol} for GNOME")
471 (description "This package provides a library to handle resource discovery
472 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
473 a debugging tool, @command{gssdp-device-sniffer}.")
474 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
475 (license license:lgpl2.0+)))
476
477 (define-public gupnp
478 (package
479 (name "gupnp")
480 (version "1.2.2")
481 (source (origin
482 (method url-fetch)
483 (uri (string-append "mirror://gnome/sources/" name "/"
484 (version-major+minor version) "/"
485 name "-" version ".tar.xz"))
486 (sha256
487 (base32
488 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
489 (build-system meson-build-system)
490 (native-inputs
491 `(("gettext" ,gettext-minimal)
492 ("glib:bin" ,glib "bin")
493 ("gobject-introspection" ,gobject-introspection)
494 ("gtk-doc" ,gtk-doc)
495 ("pkg-config" ,pkg-config)
496 ("vala" ,vala)))
497 (inputs
498 `(("gssdp" ,gssdp)
499 ("gtk+" ,gtk+)
500 ("libsoup" ,libsoup)))
501 (synopsis "PnP API for GNOME")
502 (description "This package provides GUPnP, an object-oriented framework
503 for creating UPnP devices and control points, written in C using
504 @code{GObject} and @code{libsoup}.")
505 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
506 (license license:lgpl2.0+)))
507
508 (define-public gupnp-dlna
509 (package
510 (name "gupnp-dlna")
511 (version "0.10.5")
512 (source (origin
513 (method url-fetch)
514 (uri (string-append "mirror://gnome/sources/" name "/"
515 (version-major+minor version) "/"
516 name "-" version ".tar.xz"))
517 (sha256
518 (base32
519 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
520 (build-system gnu-build-system)
521 (native-inputs
522 `(("gettext" ,gettext-minimal)
523 ("glib:bin" ,glib "bin")
524 ("gobject-introspection" ,gobject-introspection)
525 ("gtk-doc" ,gtk-doc)
526 ("libxml" ,libxml2)
527 ("pkg-config" ,pkg-config)
528 ("vala" ,vala)))
529 (inputs
530 `(("gstreamer" ,gstreamer)
531 ("gupnp" ,gupnp)))
532 (propagated-inputs
533 `(("gst-plugins-base" ,gst-plugins-base)
534 ("gst-plugins-good" ,gst-plugins-good)))
535 (synopsis "GUPnP DLNA for GNOME")
536 (description "This package provides a small utility library to
537 support DLNA-related tasks such as media profile guessing, transcoding to a
538 given profile, etc. DLNA is a subset of UPnP A/V.")
539 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
540 (license license:lgpl2.0+)))
541
542 (define-public gupnp-av
543 (package
544 (name "gupnp-av")
545 (version "0.12.11")
546 (source (origin
547 (method url-fetch)
548 (uri (string-append "mirror://gnome/sources/" name "/"
549 (version-major+minor version) "/"
550 name "-" version ".tar.xz"))
551 (sha256
552 (base32
553 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
554 (build-system gnu-build-system)
555 (native-inputs
556 `(("gettext" ,gettext-minimal)
557 ("glib:bin" ,glib "bin")
558 ("gobject-introspection" ,gobject-introspection)
559 ("gtk-doc" ,gtk-doc)
560 ("libxml" ,libxml2)
561 ("pkg-config" ,pkg-config)))
562 (inputs
563 `(("gtk+" ,gtk+)
564 ("gupnp" ,gupnp)))
565 (synopsis "GUPnP A/V for GNOME")
566 (description "This package provides a small library for handling
567 and implementation of UPnP A/V profiles.")
568 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
569 (license license:lgpl2.0+)))
570
571 (define-public libmediaart
572 (package
573 (name "libmediaart")
574 (version "1.9.4")
575 (source (origin
576 (method url-fetch)
577 (uri (string-append "mirror://gnome/sources/" name "/"
578 (version-major+minor version) "/"
579 name "-" version ".tar.xz"))
580 (sha256
581 (base32
582 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
583 (build-system gnu-build-system)
584 (native-inputs
585 `(("glib:bin" ,glib "bin")
586 ("pkg-config" ,pkg-config)))
587 (inputs
588 `(("gdk-pixbuf" ,gdk-pixbuf)
589 ("gettext" ,gettext-minimal)
590 ("gobject-introspection" ,gobject-introspection)
591 ("gtk+:doc", gtk+ "doc")
592 ("vala" ,vala)))
593 (synopsis "Media art library for the GNOME desktop")
594 (description
595 "The libmediaart library is the foundation for media art caching,
596 extraction, and lookup for applications on the desktop.")
597 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
598 (license license:lgpl2.1+)))
599
600 (define-public gnome-initial-setup
601 (package
602 (name "gnome-initial-setup")
603 (version "3.32.1")
604 (source (origin
605 (method url-fetch)
606 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
607 (version-major+minor version)
608 "/gnome-initial-setup-" version ".tar.xz"))
609 (sha256
610 (base32
611 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
612 (build-system meson-build-system)
613 (arguments
614 '(#:configure-flags '(;; Enable camera support for user selfie.
615 "-Dcheese=auto"
616 "-Dsystemd=false")
617 #:phases (modify-phases %standard-phases
618 (add-after 'unpack 'set-gkbd-file-name
619 (lambda* (#:key inputs #:allow-other-keys)
620 ;; Allow the "Preview" button in the keyboard layout
621 ;; selection dialog to display the layout.
622 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
623 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
624 (("\"gkbd-keyboard-display")
625 (string-append "\"" libgnomekbd
626 "/bin/gkbd-keyboard-display")))
627 #t))))))
628 (native-inputs
629 `(("gettext" ,gettext-minimal)
630 ("glib:bin" ,glib "bin")
631 ("gobject-introspection" ,gobject-introspection)
632 ("gtk+:bin" ,gtk+ "bin")
633 ("pkg-config" ,pkg-config)))
634 (inputs
635 `(("accountsservice" ,accountsservice)
636 ;("adwaita-icon-theme" ,adwaita-icon-theme)
637 ("gdm" ,gdm)
638 ("geoclue" ,geoclue)
639 ("gnome-desktop" ,gnome-desktop)
640 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
641 ("gnome-online-accounts" ,gnome-online-accounts)
642 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
643 ("gstreamer" ,gstreamer)
644 ("ibus" ,ibus)
645 ("json-glib" ,json-glib)
646 ("krb5" ,mit-krb5)
647 ("libgweather" ,libgweather)
648 ("libsecret" ,libsecret)
649 ("network-manager" ,network-manager)
650 ("network-manager-applet" ,network-manager-applet)
651 ("packagekit" ,packagekit)
652 ("polkit" ,polkit)
653 ("pwquality" ,libpwquality)
654 ("rest" ,rest)
655 ("upower" ,upower)
656 ("webkitgtk" ,webkitgtk)
657 ("libgnomekbd" ,libgnomekbd)))
658 (synopsis "Initial setup wizard for GNOME desktop")
659 (description "This package provides a set-up wizard when a
660 user logs into GNOME for the first time. It typically provides a
661 tour of all gnome components and allows the user to set them up.")
662 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
663 (license license:gpl2)))
664
665 (define-public gnome-user-share
666 (package
667 (name "gnome-user-share")
668 (version "3.33.1")
669 (source (origin
670 (method url-fetch)
671 (uri (string-append "mirror://gnome/sources/" name "/"
672 (version-major+minor version) "/"
673 name "-" version ".tar.xz"))
674 (sha256
675 (base32
676 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
677 (build-system meson-build-system)
678 (arguments
679 `(#:glib-or-gtk? #t
680 #:configure-flags
681 `("-Dsystemd=false"
682 ;; Enable nautilus extension for file sharing.
683 "-Dnautilus_extension=true")))
684 (native-inputs
685 `(("gettext" ,gettext-minimal)
686 ("glib:bin" ,glib "bin")
687 ("gobject-introspection" ,gobject-introspection)
688 ("gtk+:bin" ,gtk+ "bin")
689 ("pkg-config" ,pkg-config)
690 ("yelp-tools" ,yelp-tools)))
691 (inputs
692 `(("glib" ,glib)
693 ("gnome-bluetooth" ,gnome-bluetooth)
694 ("gtk+" ,gtk+)
695 ("libcanberra" ,libcanberra)
696 ("libnotify" ,libnotify)
697 ("nautilus" ,nautilus))) ; For nautilus extension.
698 (synopsis "File sharing for GNOME desktop")
699 (description "GNOME User Share is a small package that binds together
700 various free software projects to bring easy to use user-level file
701 sharing to the masses.")
702 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
703 (license license:gpl2+)))
704
705 (define-public sushi
706 (package
707 (name "sushi")
708 (version "3.32.1")
709 (source (origin
710 (method url-fetch)
711 (uri (string-append "mirror://gnome/sources/" name "/"
712 (version-major+minor version) "/"
713 name "-" version ".tar.xz"))
714 (sha256
715 (base32
716 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
717 (build-system meson-build-system)
718 (arguments
719 `(#:glib-or-gtk? #t
720 #:phases
721 (modify-phases %standard-phases
722 (add-after 'glib-or-gtk-wrap 'wrap-typelib
723 (lambda* (#:key outputs #:allow-other-keys)
724 (let ((prog (string-append (assoc-ref outputs "out")
725 "/bin/sushi")))
726 ;; Put existing typelibs before sushi's deps, so as to correctly
727 ;; infer gdk-pixbuf
728 (wrap-program prog
729 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
730 #t))))))
731 (native-inputs
732 `(("glib:bin" ,glib "bin")
733 ("gettext" ,gettext-minimal)
734 ("gobject-introspection" ,gobject-introspection)
735 ("pkg-config" ,pkg-config)))
736 (inputs
737 `(("clutter" ,clutter)
738 ("clutter-gst" ,clutter-gst)
739 ("clutter-gtk" ,clutter-gtk)
740 ("evince" ,evince) ; For file previewing.
741 ("freetype" ,freetype)
742 ("gdk-pixbuf" ,gdk-pixbuf)
743 ("gjs" ,gjs)
744 ("gst-plugins-base" ,gst-plugins-base)
745 ("gstreamer" ,gstreamer)
746 ("gtksourceview" ,gtksourceview-3)
747 ("harfbuzz" ,harfbuzz)
748 ("libepoxy" ,libepoxy)
749 ("libmusicbrainz" ,libmusicbrainz)
750 ("libxml2" ,libxml2)
751 ("neon" ,neon)
752 ("webkitgtk" ,webkitgtk)))
753 (synopsis "File previewer for the GNOME desktop")
754 (description "Sushi is a DBus-activated service that allows applications to
755 preview files on the GNOME desktop.")
756 (home-page "https://gitlab.gnome.org/GNOME/sushi")
757 (license license:gpl2+)))
758
759 (define-public rygel
760 (package
761 (name "rygel")
762 (version "0.38.3")
763 (source (origin
764 (method url-fetch)
765 (uri (string-append "mirror://gnome/sources/" name "/"
766 (version-major+minor version) "/"
767 name "-" version ".tar.xz"))
768 (sha256
769 (base32
770 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
771 (build-system gnu-build-system)
772 (native-inputs
773 `(("gettext" ,gettext-minimal)
774 ("gobject-introspection" ,gobject-introspection)
775 ("gtk-doc" ,gtk-doc)
776 ("pkg-config" ,pkg-config)
777 ("vala" ,vala)))
778 (inputs
779 `(("gdk-pixbuf" ,gdk-pixbuf)
780 ("gssdp" ,gssdp)
781 ("gstreamer" ,gstreamer)
782 ("gst-plugins-base" ,gst-plugins-base)
783 ("gtk+" ,gtk+)
784 ("gupnp" ,gupnp)
785 ("gupnp-av" ,gupnp-av)
786 ("gupnp-dlna" ,gupnp-dlna)
787 ("libgee" ,libgee)
788 ("libmediaart" ,libmediaart)
789 ("libsoup" ,libsoup)
790 ("libxslt" ,libxslt)
791 ("libunistring" ,libunistring)
792 ("tracker" ,tracker)))
793 (synopsis "Share audio, video, and pictures with other devices")
794 (description
795 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
796 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
797 pictures, and to control a media player on your home network.
798
799 Rygel achieves interoperability with other devices by trying to conform to the
800 strict requirements of DLNA and by converting media on-the-fly to formats that
801 client devices can handle.")
802 (home-page "https://wiki.gnome.org/Projects/Rygel")
803 (license (list
804 ;; For logo (data/icons/*).
805 license:cc-by-sa3.0
806 ;; For all others.
807 license:lgpl2.1+))))
808
809 (define-public libnma
810 (package
811 (name "libnma")
812 (version "1.8.26")
813 (source (origin
814 (method url-fetch)
815 (uri (string-append "mirror://gnome/sources/" name "/"
816 (version-major+minor version) "/"
817 name "-" version ".tar.xz"))
818 (sha256
819 (base32
820 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
821 (build-system meson-build-system)
822 (arguments
823 `(#:glib-or-gtk? #t))
824 (native-inputs
825 `(("gettext" ,gettext-minimal)
826 ("glib:bin" ,glib "bin")
827 ("gtk-doc" ,gtk-doc)
828 ("gobject-introspection" ,gobject-introspection)
829 ("pkg-config" ,pkg-config)))
830 (inputs
831 `(("adwaita-icon-theme" ,adwaita-icon-theme)
832 ("gcr" ,gcr)
833 ("gtk+" ,gtk+)
834 ("iso-codes" ,iso-codes)
835 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
836 ("network-manager" ,network-manager)))
837 (synopsis "Network Manager's applet library")
838 (description "Libnma is an applet library for Network Manager. It was
839 initially part of network-manager-applet and has now become a separate
840 project.")
841 (home-page "https://gitlab.gnome.org/GNOME/libnma")
842
843 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
844 ;; "LGPL-2.1+".
845 (license license:gpl2+)))
846
847 (define-public gnome-menus
848 (package
849 (name "gnome-menus")
850 (version "3.32.0")
851 (source (origin
852 (method url-fetch)
853 (uri (string-append "mirror://gnome/sources/gnome-menus/"
854 (version-major+minor version) "/"
855 name "-" version ".tar.xz"))
856 (sha256
857 (base32
858 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
859 (build-system gnu-build-system)
860 (native-inputs
861 `(("gettext" ,gettext-minimal)
862 ("glib" ,glib)
863 ("pkg-config" ,pkg-config)))
864 (synopsis "Menu support for GNOME desktop")
865 (description "GNOME Menus contains the libgnome-menu library, the layout
866 configuration files for the GNOME menu, as well as a simple menu editor.")
867 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
868 (license license:lgpl2.0+)))
869
870 (define-public deja-dup
871 (package
872 (name "deja-dup")
873 (version "34.3")
874 (source (origin
875 (method url-fetch)
876 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
877 (sha256
878 (base32
879 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
880 (patches
881 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
882 (build-system glib-or-gtk-build-system)
883 (arguments
884 `(#:modules ((guix build gnu-build-system)
885 ((guix build cmake-build-system) #:prefix cmake:)
886 (guix build glib-or-gtk-build-system)
887 (guix build utils))
888 #:imported-modules (,@%glib-or-gtk-build-system-modules
889 (guix build cmake-build-system))
890 #:test-target "test"
891 #:configure-flags (list (string-append
892 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
893 (string-append
894 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
895 #:phases
896 (modify-phases %standard-phases
897 (add-after 'unpack 'patch-lockfile-deletion
898 (lambda rest
899 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
900 (("/bin/rm")
901 (which "rm")))))
902 (replace 'configure
903 (assoc-ref cmake:%standard-phases 'configure))
904 (delete 'check) ;; Fails due to issues with DBus
905 (add-after 'install 'wrap-deja-dup
906 (lambda* (#:key inputs outputs #:allow-other-keys)
907 (let ((python (assoc-ref inputs "python"))
908 (python-path (getenv "PYTHONPATH"))
909 (duplicity (assoc-ref inputs "duplicity"))
910 (out (assoc-ref outputs "out")))
911 (for-each
912 (lambda (program)
913 (wrap-program program
914 `("PATH" ":" prefix (,(string-append python "/bin")
915 ,(string-append duplicity "/bin"))))
916 (wrap-program program
917 `("PYTHONPATH" ":" prefix (,python-path))))
918
919 (find-files (string-append out "/bin")))
920 #t))))))
921 (inputs
922 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
923 ("gobject-introspection" ,gobject-introspection)
924 ("duplicity" ,duplicity)
925 ("python" ,python-2)
926 ("python-pygobject" ,python2-pygobject)
927 ("gtk+" ,gtk+)
928 ("libnotify" ,libnotify)
929 ("libpeas" ,libpeas)
930 ("libsecret" ,libsecret)
931 ("packagekit" ,packagekit)))
932 (native-inputs
933 `(("pkg-config" ,pkg-config)
934 ("vala" ,vala)
935 ("gettext" ,gettext-minimal)
936 ("itstool" ,itstool)
937 ("intltool" ,intltool)
938 ("cmake" ,cmake-minimal)))
939 (home-page "https://launchpad.net/deja-dup")
940 (synopsis "Simple backup tool, for regular encrypted backups")
941 (description
942 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
943 uses duplicity as the backend, which supports incremental backups and storage
944 either on a local, or remote machine via a number of methods.")
945 (license license:gpl3+)))
946
947 (define-public gnome-user-docs
948 (package
949 (name "gnome-user-docs")
950 (version "3.32.3")
951 (source
952 (origin
953 (method url-fetch)
954 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
955 (version-major+minor version)
956 "/gnome-user-docs-" version ".tar.xz"))
957 (sha256
958 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
959 (build-system gnu-build-system)
960 (native-inputs
961 `(("gettext" ,gettext-minimal)
962 ("itstool" ,itstool)
963 ("pkg-config" ,pkg-config)
964 ("xmllint" ,libxml2)))
965 (synopsis "User documentation for the GNOME desktop")
966 (description
967 "The GNOME User Documentation explains how to use the GNOME desktop and its
968 components. It covers usage and setup of the core GNOME programs by end-users
969 and system administrators.")
970 (home-page "https://live.gnome.org/DocumentationProject")
971 (license license:cc-by3.0)))
972
973 (define-public gnome-getting-started-docs
974 (package
975 (name "gnome-getting-started-docs")
976 (version "3.32.2")
977 (source
978 (origin
979 (method url-fetch)
980 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
981 (version-major+minor version)
982 "/gnome-getting-started-docs-" version ".tar.xz"))
983 (sha256
984 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
985 (build-system gnu-build-system)
986 (native-inputs
987 `(("gettext" ,gettext-minimal)
988 ("itstool" ,itstool)
989 ("pkg-config" ,pkg-config)
990 ("xmllint" ,libxml2)))
991 (synopsis "Help to get new users started with the GNOME desktop")
992 (description
993 "The GNOME Getting Started Documentation contains GNOME's intuitive
994 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
995
996 It is normally used together with @command{gnome-initial-setup}, but is also
997 useful as a tutorial and users' guide for new or less experienced users.")
998 (home-page "https://live.gnome.org/DocumentationProject")
999 (license license:cc-by-sa3.0)))
1000
1001 (define-public dia
1002 ;; This version from GNOME's repository includes fixes for compiling with
1003 ;; recent versions of the build tools. The latest activity on the
1004 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1005 ;; fixes in 2016.
1006 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
1007 (package
1008 (name "dia")
1009 (version (git-version "0.97.3" "1" commit))
1010 (source (origin
1011 (method git-fetch)
1012 (uri (git-reference
1013 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1014 (commit commit)))
1015 (file-name (git-file-name name version))
1016 (sha256
1017 (base32
1018 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
1019 (build-system gnu-build-system)
1020 (inputs
1021 `(("freetype" ,freetype)
1022 ("gdk-pixbuf" ,gdk-pixbuf)
1023 ("gtk+" ,gtk+-2)
1024 ("libart-lgpl" ,libart-lgpl)
1025 ("libxml2" ,libxml2)
1026 ("pango" ,pango)))
1027 (native-inputs
1028 `(("autoconf" ,autoconf)
1029 ("automake" ,automake)
1030 ("intltool" ,intltool)
1031 ("glib" ,glib "bin")
1032 ("libtool" ,libtool)
1033 ("perl" ,perl)
1034 ("pkg-config" ,pkg-config)
1035 ("python-wrapper" ,python-wrapper)))
1036 (home-page "https://wiki.gnome.org/Apps/Dia")
1037 (synopsis "Diagram creation for GNOME")
1038 (description "Dia can be used to draw different types of diagrams, and
1039 includes support for UML static structure diagrams (class diagrams), entity
1040 relationship modeling, and network diagrams. The program supports various file
1041 formats like PNG, SVG, PDF and EPS.")
1042 (license license:gpl2+))))
1043
1044 ;; This is the unstable release, but it is required for the current stable
1045 ;; release of gvfs (1.38.1).
1046 (define-public libgdata
1047 (package
1048 (name "libgdata")
1049 (version "0.17.9")
1050 (source (origin
1051 (method url-fetch)
1052 (uri (string-append "mirror://gnome/sources/" name "/"
1053 (version-major+minor version) "/"
1054 name "-" version ".tar.xz"))
1055 (sha256
1056 (base32
1057 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1058 (build-system gnu-build-system)
1059 (arguments
1060 '(#:phases
1061 (modify-phases %standard-phases
1062 (add-before 'check 'disable-failing-tests
1063 (lambda _
1064 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1065 ;; They have been removed in libgdata 0.17.6, so just do the same.
1066 (substitute* "gdata/tests/Makefile"
1067 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1068 #t)))))
1069 (native-inputs
1070 `(("glib:bin" ,glib "bin")
1071 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1072 ("intltool" ,intltool)
1073 ("pkg-config" ,pkg-config)
1074 ("uhttpmock" ,uhttpmock)))
1075 (inputs
1076 `(("cyrus-sasl" ,cyrus-sasl)
1077 ("glib-networking" ,glib-networking)))
1078 (propagated-inputs
1079 `(("gcr" ,gcr)
1080 ("glib" ,glib)
1081 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1082 ("json-glib" ,json-glib)
1083 ("liboauth" ,liboauth)
1084 ("libsoup" ,libsoup)
1085 ("libxml2" ,libxml2)))
1086 (home-page "https://wiki.gnome.org/Projects/libgdata")
1087 (synopsis "Library for accessing online service APIs")
1088 (description
1089 "libgdata is a GLib-based library for accessing online service APIs using
1090 the GData protocol — most notably, Google's services. It provides APIs to
1091 access the common Google services, and has full asynchronous support.")
1092 (license license:lgpl2.1+)))
1093
1094 (define-public libgxps
1095 (package
1096 (name "libgxps")
1097 (version "0.3.1")
1098 (source (origin
1099 (method url-fetch)
1100 (uri (string-append "mirror://gnome/sources/" name "/"
1101 (version-major+minor version) "/"
1102 name "-" version ".tar.xz"))
1103 (sha256
1104 (base32
1105 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1106 (build-system meson-build-system)
1107 (native-inputs
1108 `(("gobject-introspection" ,gobject-introspection)
1109 ("pkg-config" ,pkg-config)))
1110 (inputs
1111 `(("gtk+" ,gtk+)
1112 ("libjpeg" ,libjpeg-turbo)
1113 ("lcms" ,lcms)
1114 ("libtiff" ,libtiff)))
1115 (propagated-inputs
1116 ;; In Requires of libgxps.pc.
1117 `(("cairo" ,cairo)
1118 ("glib" ,glib)
1119 ("libarchive" ,libarchive)))
1120 (home-page "https://wiki.gnome.org/Projects/libgxps")
1121 (synopsis "GObject-based library for handling and rendering XPS documents")
1122 (description
1123 "libgxps is a GObject-based library for handling and rendering XPS
1124 documents. This package also contains binaries that can convert XPS documents
1125 to other formats.")
1126 (license license:lgpl2.1+)))
1127
1128 (define-public gnome-characters
1129 (package
1130 (name "gnome-characters")
1131 (version "3.30.0")
1132 (source
1133 (origin
1134 (method url-fetch)
1135 (uri (string-append "mirror://gnome/sources/"
1136 "gnome-characters/" (version-major+minor version)
1137 "/gnome-characters-" version ".tar.xz"))
1138 (sha256
1139 (base32
1140 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1141 (build-system meson-build-system)
1142 (arguments
1143 `(#:glib-or-gtk? #t
1144 #:phases (modify-phases %standard-phases
1145 (add-after 'install 'wrap
1146 (lambda* (#:key outputs #:allow-other-keys)
1147 ;; GNOME Characters needs Typelib files from GTK and
1148 ;; gnome-desktop.
1149 (wrap-program (string-append (assoc-ref outputs "out")
1150 "/bin/gnome-characters")
1151 `("GI_TYPELIB_PATH" ":" prefix
1152 (,(getenv "GI_TYPELIB_PATH"))))
1153 #t)))))
1154 (native-inputs
1155 `(("gettext" ,gettext-minimal)
1156 ("glib:bin" ,glib "bin")
1157 ("gtk+:bin" ,gtk+ "bin")
1158 ("pkg-config" ,pkg-config)
1159 ("python" ,python-minimal)))
1160 (inputs
1161 `(("gjs" ,gjs)
1162 ("gtk+" ,gtk+)
1163 ("libunistring" ,libunistring)
1164 ("gnome-desktop" ,gnome-desktop)))
1165 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1166 (synopsis "Find and insert unusual characters")
1167 (description "Characters is a simple utility application to find
1168 and insert unusual characters. It allows you to quickly find the
1169 character you are looking for by searching for keywords.")
1170 (license license:bsd-3)))
1171
1172 (define-public gnome-common
1173 (package
1174 (name "gnome-common")
1175 (version "3.18.0")
1176 (source
1177 (origin
1178 (method url-fetch)
1179 (uri (string-append "mirror://gnome/sources/" name "/"
1180 (version-major+minor version) "/"
1181 name "-" version ".tar.xz"))
1182 (sha256
1183 (base32
1184 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1185 (build-system gnu-build-system)
1186 (home-page "https://www.gnome.org/")
1187 (synopsis "Bootstrap GNOME modules built from Git")
1188 (description "gnome-common contains various files needed to bootstrap
1189 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1190 can be used to configure a source directory checked out from Git and some
1191 commonly used macros.")
1192 (license license:gpl2+)))
1193
1194 (define-public gnome-contacts
1195 (package
1196 (name "gnome-contacts")
1197 (version "3.34")
1198 (source (origin
1199 (method url-fetch)
1200 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1201 (version-major+minor version) "/"
1202 name "-" version ".tar.xz"))
1203 (sha256
1204 (base32
1205 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1206 (build-system meson-build-system)
1207 (arguments
1208 `(#:configure-flags '("-Dcheese=false")
1209 #:phases
1210 (modify-phases %standard-phases
1211 (add-after 'unpack 'generate-vapis
1212 (lambda* (#:key inputs #:allow-other-keys)
1213 ;; To generate goa's missing .vapi file
1214 (define goa
1215 (assoc-ref inputs "gnome-online-accounts:lib"))
1216
1217 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1218 "--library=goa-1.0"
1219 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1220 #t))
1221 (add-after 'unpack 'skip-gtk-update-icon-cache
1222 ;; Don't create 'icon-theme.cache'.
1223 (lambda _
1224 (substitute* "build-aux/meson_post_install.py"
1225 (("gtk-update-icon-cache") "true"))
1226 #t)))))
1227 (native-inputs
1228 `(("glib:bin" ,glib "bin")
1229 ("pkg-config" ,pkg-config)))
1230 (inputs
1231 `(("docbook-xml" ,docbook-xml)
1232 ("dockbook-xsl" ,docbook-xsl)
1233 ("evolution-data-server" ,evolution-data-server)
1234 ("gettext" ,gettext-minimal)
1235 ("gnome-desktop" ,gnome-desktop)
1236 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1237 ("gobject-introspection" ,gobject-introspection)
1238 ("gst-plugins-base" ,gst-plugins-base)
1239 ("gtk+" ,gtk+)
1240 ("libgee" ,libgee)
1241 ("libxslt" ,libxslt)
1242 ("telepathy-glib" ,telepathy-glib)
1243 ("vala" ,vala)))
1244 (propagated-inputs
1245 `(("folks", folks)
1246 ("telepathy-mission-control" ,telepathy-mission-control)))
1247 (synopsis "GNOME's integrated address book")
1248 (description
1249 "GNOME Contacts organizes your contact information from online and
1250 offline sources, providing a centralized place for managing your contacts.")
1251 (home-page "https://wiki.gnome.org/Apps/Contacts")
1252 (license license:gpl2+)))
1253
1254 (define-public gnome-desktop
1255 (package
1256 (name "gnome-desktop")
1257 (version "3.34.2")
1258 (source
1259 (origin
1260 (method url-fetch)
1261 (uri (string-append "mirror://gnome/sources/" name "/"
1262 (version-major+minor version) "/"
1263 name "-" version ".tar.xz"))
1264 (sha256
1265 (base32
1266 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
1267 (build-system meson-build-system)
1268 (arguments
1269 '(#:phases
1270 (modify-phases %standard-phases
1271 (add-before 'configure 'patch-path
1272 (lambda* (#:key inputs #:allow-other-keys)
1273 (let ((libc (assoc-ref inputs "libc")))
1274 (substitute* "libgnome-desktop/gnome-languages.c"
1275 (("\"locale\"")
1276 (string-append "\"" libc "/bin/locale\"")))
1277 #t)))
1278 (add-before 'check 'pre-check
1279 (lambda* (#:key inputs #:allow-other-keys)
1280 ;; Tests require a running X server and locales.
1281 (system "Xvfb :1 &")
1282 (setenv "DISPLAY" ":1")
1283 (setenv "GUIX_LOCPATH"
1284 (string-append (assoc-ref inputs "glibc-locales")
1285 "/lib/locale"))
1286 #t)))))
1287 (native-inputs
1288 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1289 ("glibc-locales" ,glibc-locales) ; for tests
1290 ("gobject-introspection" ,gobject-introspection)
1291 ("itstool" ,itstool)
1292 ("intltool" ,intltool)
1293 ("pkg-config" ,pkg-config)
1294 ("xmllint" ,libxml2)
1295 ("xorg-server" ,xorg-server-for-tests)))
1296 (propagated-inputs
1297 ;; Required by gnome-desktop-3.0.pc.
1298 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1299 ("gtk+" ,gtk+)
1300 ("iso-codes" ,iso-codes)
1301 ("libseccomp" ,libseccomp)
1302 ("libx11" ,libx11)
1303 ("xkeyboard-config" ,xkeyboard-config)))
1304 (inputs
1305 `(("gdk-pixbuf" ,gdk-pixbuf)
1306 ("glib" ,glib)
1307 ("libxext" ,libxext)
1308 ("libxkbfile" ,libxkbfile)
1309 ("libxrandr" ,libxrandr)))
1310 (home-page "https://www.gnome.org/")
1311 (synopsis
1312 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1313 (description
1314 "The libgnome-desktop library provides API shared by several applications
1315 on the desktop, but that cannot live in the platform for various reasons.
1316 There is no API or ABI guarantee, although we are doing our best to provide
1317 stability. Documentation for the API is available with gtk-doc.
1318
1319 The gnome-about program helps find which version of GNOME is installed.")
1320 ; Some bits under the LGPL.
1321 (license license:gpl2+)))
1322
1323 (define-public gnome-doc-utils
1324 (package
1325 (name "gnome-doc-utils")
1326 (version "0.20.10")
1327 (source
1328 (origin
1329 (method url-fetch)
1330 (uri (string-append "mirror://gnome/sources/" name "/"
1331 (version-major+minor version) "/"
1332 name "-" version ".tar.xz"))
1333 (sha256
1334 (base32
1335 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1336 (build-system gnu-build-system)
1337 (native-inputs
1338 `(("intltool" ,intltool)
1339 ("docbook-xml" ,docbook-xml-4.4)
1340 ("python2-libxml2" ,python2-libxml2)
1341 ("libxml2" ,libxml2)
1342 ("libxslt" ,libxslt)
1343 ("pkg-config" ,pkg-config)
1344 ("python-2" ,python-2)))
1345 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1346 (synopsis
1347 "Documentation utilities for the Gnome project")
1348 (description
1349 "Gnome-doc-utils is a collection of documentation utilities for the
1350 Gnome project. It includes xml2po tool which makes it easier to translate
1351 and keep up to date translations of documentation.")
1352 (license license:gpl2+))) ; xslt under lgpl
1353
1354 (define-public gnome-disk-utility
1355 (package
1356 (name "gnome-disk-utility")
1357 (version "3.34.0")
1358 (source (origin
1359 (method url-fetch)
1360 (uri (string-append "mirror://gnome/sources/" name "/"
1361 (version-major+minor version) "/"
1362 name "-" version ".tar.xz"))
1363 (sha256
1364 (base32
1365 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
1366 (build-system meson-build-system)
1367 (arguments
1368 '(#:configure-flags '("-Dlogind=libelogind")
1369 #:phases
1370 (modify-phases %standard-phases
1371 (add-after 'unpack 'skip-gtk-update-icon-cache
1372 ;; Don't create 'icon-theme.cache'.
1373 (lambda _
1374 (substitute* "meson_post_install.py"
1375 (("gtk-update-icon-cache") "true"))
1376 #t)))))
1377 (native-inputs
1378 `(("glib:bin" ,glib "bin")
1379 ("intltool" ,intltool)
1380 ("pkg-config" ,pkg-config)
1381 ("docbook-xml" ,docbook-xml)
1382 ("docbook-xsl" ,docbook-xsl)
1383 ("libxml2" ,libxml2)
1384 ("libxslt" ,libxslt)))
1385 (inputs
1386 `(("elogind" ,elogind)
1387 ("glib" ,glib)
1388 ("appstream-glib" ,appstream-glib)
1389 ("gnome-settings-daemon" ,gnome-settings-daemon)
1390 ("gtk+" ,gtk+)
1391 ("libcanberra" ,libcanberra)
1392 ("libdvdread" ,libdvdread)
1393 ("libnotify" ,libnotify)
1394 ("libpwquality" ,libpwquality)
1395 ("libsecret" ,libsecret)
1396 ("udisks" ,udisks)))
1397 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1398 (synopsis "Disk management utility for GNOME")
1399 (description "Disk management utility for GNOME.")
1400 (license license:gpl2+)))
1401
1402 (define-public gnome-font-viewer
1403 (package
1404 (name "gnome-font-viewer")
1405 (version "3.30.0")
1406 (source (origin
1407 (method url-fetch)
1408 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1409 (version-major+minor version)
1410 "/gnome-font-viewer-" version ".tar.xz"))
1411 (sha256
1412 (base32
1413 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1414 (build-system meson-build-system)
1415 (arguments
1416 '(#:phases
1417 (modify-phases %standard-phases
1418 (add-after 'unpack 'patch-post-install-script
1419 (lambda _
1420 (substitute* "meson-postinstall.sh"
1421 (("update-desktop-database") (which "true")))
1422 #t)))))
1423 (native-inputs
1424 `(("gettext" ,gettext-minimal)
1425 ("glib:bin" ,glib "bin")
1426 ("pkg-config" ,pkg-config)))
1427 (inputs
1428 `(("glib" ,glib)
1429 ("gnome-desktop" ,gnome-desktop)
1430 ("gtk+" ,gtk+)))
1431 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1432 (synopsis "GNOME Fonts")
1433 (description "Application to show you the fonts installed on your computer
1434 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1435 the font would look under various sizes.")
1436 (license license:gpl2+)))
1437
1438 (define-public gcr
1439 (package
1440 (name "gcr")
1441 (version "3.34.0")
1442 (source (origin
1443 (method url-fetch)
1444 (uri (string-append "mirror://gnome/sources/" name "/"
1445 (version-major+minor version) "/"
1446 name "-" version ".tar.xz"))
1447 (sha256
1448 (base32
1449 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
1450 (build-system gnu-build-system)
1451 (arguments
1452 '(#:phases
1453 (modify-phases %standard-phases
1454 ;; These fail because /var/lib/dbus/machine-id is not present in the
1455 ;; build environment.
1456 (add-after 'unpack 'disable-failing-tests
1457 (lambda _
1458 (substitute* "Makefile.in"
1459 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1460 ""))
1461 #t))
1462 (add-before 'check 'pre-check
1463 (lambda _
1464 ;; Some tests expect to write to $HOME.
1465 (setenv "HOME" "/tmp")
1466 #t)))))
1467 (inputs
1468 `(("dbus" ,dbus)
1469 ("gnupg" ,gnupg) ;called as a child process during tests
1470 ("libgcrypt" ,libgcrypt)))
1471 (native-inputs
1472 `(("python" ,python-wrapper) ;for tests
1473 ("pkg-config" ,pkg-config)
1474 ("gettext" ,gettext-minimal)
1475 ("glib" ,glib "bin")
1476 ("gobject-introspection" ,gobject-introspection)
1477 ("libxml2" ,libxml2)
1478 ("vala" ,vala)
1479 ("xsltproc" ,libxslt)))
1480 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1481 (propagated-inputs
1482 `(("p11-kit" ,p11-kit)
1483 ("glib" ,glib)
1484 ("gtk+" ,gtk+)))
1485 (home-page "https://www.gnome.org")
1486 (synopsis "Libraries for displaying certificates and accessing key stores")
1487 (description
1488 "The GCR package contains libraries used for displaying certificates and
1489 accessing key stores. It also provides the viewer for crypto files on the
1490 GNOME Desktop.")
1491 (license license:lgpl2.1+)))
1492
1493 (define-public libgnome-keyring
1494 (package
1495 (name "libgnome-keyring")
1496 (version "3.12.0")
1497 (source (origin
1498 (method url-fetch)
1499 (uri (string-append "mirror://gnome/sources/" name "/"
1500 (version-major+minor version) "/"
1501 name "-" version ".tar.xz"))
1502 (sha256
1503 (base32
1504 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1505 (build-system gnu-build-system)
1506 (inputs
1507 `(("libgcrypt" ,libgcrypt)
1508 ("dbus" ,dbus)))
1509 (native-inputs
1510 `(("pkg-config" ,pkg-config)
1511 ("glib" ,glib "bin")
1512 ("intltool" ,intltool)))
1513 (propagated-inputs
1514 ;; Referred to in .h files and .pc.
1515 `(("glib" ,glib)))
1516 (home-page "https://www.gnome.org")
1517 (synopsis "Accessing passwords from the GNOME keyring")
1518 (description
1519 "Client library to access passwords from the GNOME keyring.")
1520
1521 ;; Though a couple of files are LGPLv2.1+.
1522 (license license:lgpl2.0+)))
1523
1524 (define-public gnome-keyring
1525 (package
1526 (name "gnome-keyring")
1527 (version "3.34.0")
1528 (source (origin
1529 (method url-fetch)
1530 (uri (string-append "mirror://gnome/sources/" name "/"
1531 (version-major+minor version) "/"
1532 name "-" version ".tar.xz"))
1533 (sha256
1534 (base32
1535 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
1536 (build-system gnu-build-system)
1537 (arguments
1538 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1539 ;not exist
1540 #:configure-flags
1541 (list
1542 (string-append "--with-pkcs11-config="
1543 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1544 (string-append "--with-pkcs11-modules="
1545 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1546 #:phases
1547 (modify-phases %standard-phases
1548 (add-after 'unpack 'fix-/bin/sh-reference
1549 (lambda _
1550 (substitute* "po/Makefile.in.in"
1551 (("/bin/sh") (which "sh")))
1552 #t))
1553 (add-after 'unpack 'fix-docbook
1554 (lambda* (#:key inputs #:allow-other-keys)
1555 (substitute* "docs/Makefile.am"
1556 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1557 (string-append (assoc-ref inputs "docbook-xsl")
1558 "/xml/xsl/docbook-xsl-"
1559 ,(package-version docbook-xsl)
1560 "/manpages/docbook.xsl")))
1561 (setenv "XML_CATALOG_FILES"
1562 (string-append (assoc-ref inputs "docbook-xml")
1563 "/xml/dtd/docbook/catalog.xml"))
1564 ;; Rerun the whole thing to avoid version mismatch ("This is
1565 ;; Automake 1.15.1, but the definition used by this
1566 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1567 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1568 (invoke "autoconf")
1569 (invoke "aclocal")
1570 (invoke "automake" "-ac"))))))
1571 (inputs
1572 `(("libgcrypt" ,libgcrypt)
1573 ("linux-pam" ,linux-pam)
1574 ("openssh" ,openssh)
1575 ("dbus" ,dbus)
1576 ("gcr" ,gcr)))
1577 (native-inputs
1578 `(("pkg-config" ,pkg-config)
1579 ("glib" ,glib "bin")
1580 ("glib" ,glib) ; for m4 macros
1581 ("python" ,python-2) ;for tests
1582 ("intltool" ,intltool)
1583 ("autoconf" ,autoconf)
1584 ("automake" ,automake)
1585 ("libxslt" ,libxslt) ;for documentation
1586 ("docbook-xml" ,docbook-xml-4.2)
1587 ("docbook-xsl" ,docbook-xsl)))
1588 (home-page "https://www.gnome.org")
1589 (synopsis "Daemon to store passwords and encryption keys")
1590 (description
1591 "gnome-keyring is a program that keeps passwords and other secrets for
1592 users. It is run as a daemon in the session, similar to ssh-agent, and other
1593 applications locate it via an environment variable or D-Bus.
1594
1595 The program can manage several keyrings, each with its own master password,
1596 and there is also a session keyring which is never stored to disk, but
1597 forgotten when the session ends.")
1598 (license license:lgpl2.1+)))
1599
1600 (define-public evince
1601 (package
1602 (name "evince")
1603 (version "3.34.2")
1604 (source (origin
1605 (method url-fetch)
1606 (uri (string-append "mirror://gnome/sources/evince/"
1607 (version-major+minor version) "/"
1608 "evince-" version ".tar.xz"))
1609 (sha256
1610 (base32
1611 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
1612 (build-system glib-or-gtk-build-system)
1613 (arguments
1614 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1615 #:phases
1616 (modify-phases %standard-phases
1617 (add-before 'install 'skip-gtk-update-icon-cache
1618 ;; Don't create 'icon-theme.cache'.
1619 (lambda _
1620 (substitute* "data/Makefile"
1621 (("gtk-update-icon-cache") "true"))
1622 #t)))))
1623 (inputs
1624 `(("libarchive" ,libarchive)
1625 ("libgxps" ,libgxps)
1626 ("libspectre" ,libspectre)
1627 ("djvulibre" ,djvulibre)
1628 ("ghostscript" ,ghostscript)
1629 ("poppler" ,poppler)
1630 ("libtiff" ,libtiff)
1631 ;; TODO:
1632 ;; Build libkpathsea as a shared library for DVI support.
1633 ;; ("libkpathsea" ,texlive-bin)
1634 ("gnome-desktop" ,gnome-desktop)
1635 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1636 ("gspell" ,gspell)
1637 ("libgnome-keyring" ,libgnome-keyring)
1638 ("adwaita-icon-theme" ,adwaita-icon-theme)
1639 ("gdk-pixbuf" ,gdk-pixbuf)
1640 ("atk" ,atk)
1641 ("pango" ,pango)
1642 ("gtk+" ,gtk+)
1643 ("glib" ,glib)
1644 ("libxml2" ,libxml2)
1645 ("libsm" ,libsm)
1646 ("libice" ,libice)
1647 ("shared-mime-info" ,shared-mime-info)
1648 ("dconf" ,dconf)
1649 ("libcanberra" ,libcanberra)
1650 ("libsecret" ,libsecret)
1651
1652 ;; For tests.
1653 ("dogtail" ,python2-dogtail)))
1654 (native-inputs
1655 `(("itstool" ,itstool)
1656 ("intltool" ,intltool)
1657 ("glib" ,glib "bin")
1658 ("gobject-introspection" ,gobject-introspection)
1659 ("pkg-config" ,pkg-config)
1660 ("xmllint" ,libxml2)))
1661 (home-page
1662 "https://www.gnome.org/projects/evince/")
1663 (synopsis "GNOME's document viewer")
1664 (description
1665 "Evince is a document viewer for multiple document formats. It
1666 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1667 of Evince is to replace the multiple document viewers that exist
1668 on the GNOME Desktop with a single simple application.")
1669 (license license:gpl2+)))
1670
1671 (define-public gsettings-desktop-schemas
1672 (package
1673 (name "gsettings-desktop-schemas")
1674 (version "3.34.0")
1675 (source
1676 (origin
1677 (method url-fetch)
1678 (uri (string-append "mirror://gnome/sources/" name "/"
1679 (version-major+minor version) "/"
1680 name "-" version ".tar.xz"))
1681 (sha256
1682 (base32
1683 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
1684 (build-system meson-build-system)
1685 (arguments
1686 '(#:phases (modify-phases %standard-phases
1687 (add-after 'unpack 'patch-schemas
1688 (lambda* (#:key inputs #:allow-other-keys)
1689 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1690 (substitute* (find-files "schemas"
1691 "\\.gschema\\.xml\\.in$")
1692 ;; Provide the correct file name of the default GNOME
1693 ;; background, 'adwaita-timed.xml'.
1694 (("@datadir@/backgrounds/gnome")
1695 (string-append theme "/share/backgrounds/gnome"))
1696 ;; Do not reference fonts, that may not exist.
1697 (("'Source Code Pro 10'") "'Monospace 11'"))
1698 #t))))))
1699 (inputs
1700 `(("glib" ,glib)
1701 ("gnome-backgrounds" ,gnome-backgrounds)))
1702 (native-inputs
1703 `(("intltool" ,intltool)
1704 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1705 ("gobject-introspection" ,gobject-introspection)
1706 ("pkg-config" ,pkg-config)))
1707 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1708 (synopsis
1709 "GNOME settings for various desktop components")
1710 (description
1711 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1712 for settings shared by various components of the GNOME desktop.")
1713 (license license:lgpl2.1+)))
1714
1715 (define-public icon-naming-utils
1716 (package
1717 (name "icon-naming-utils")
1718 (version "0.8.90")
1719 (source
1720 (origin
1721 (method url-fetch)
1722 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1723 version ".tar.bz2"))
1724 (sha256
1725 (base32
1726 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1727 (build-system gnu-build-system)
1728 (inputs
1729 `(("perl" ,perl)
1730 ("perl-xml-simple" ,perl-xml-simple)))
1731 (arguments
1732 '(#:phases
1733 (modify-phases %standard-phases
1734 (add-after 'install 'set-load-paths
1735 ;; Tell 'icon-name-mapping' where XML::Simple is.
1736 (lambda* (#:key outputs #:allow-other-keys)
1737 (let* ((out (assoc-ref outputs "out"))
1738 (prog (string-append out "/libexec/icon-name-mapping")))
1739 (wrap-program
1740 prog
1741 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1742 #t)))))
1743 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1744 (synopsis
1745 "Utility to implement the Freedesktop Icon Naming Specification")
1746 (description
1747 "To help with the transition to the Freedesktop Icon Naming
1748 Specification, the icon naming utility maps the icon names used by the
1749 GNOME and KDE desktops to the icon names proposed in the specification.")
1750 (license license:lgpl2.1+)))
1751
1752 (define-public gnome-icon-theme
1753 (package
1754 (name "gnome-icon-theme")
1755 (version "3.12.0")
1756 (source
1757 (origin
1758 (method url-fetch)
1759 (uri (string-append "mirror://gnome/sources/" name "/"
1760 (version-major+minor version) "/"
1761 name "-" version ".tar.xz"))
1762 (sha256
1763 (base32
1764 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1765 (build-system gnu-build-system)
1766 (arguments
1767 '(#:configure-flags
1768 ;; Don't create 'icon-theme.cache'.
1769 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1770 (true (string-append coreutils "/bin/true")))
1771 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1772 (native-inputs
1773 `(("icon-naming-utils" ,icon-naming-utils)
1774 ("intltool" ,intltool)
1775 ("pkg-config" ,pkg-config)))
1776 (home-page "https://wiki.gnome.org/Personalization")
1777 (synopsis "GNOME icon theme")
1778 (description "Icons for the GNOME desktop.")
1779 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1780
1781 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1782 (define-public adwaita-icon-theme
1783 (package (inherit gnome-icon-theme)
1784 (name "adwaita-icon-theme")
1785 (version "3.34.3")
1786 (source (origin
1787 (method url-fetch)
1788 (uri (string-append "mirror://gnome/sources/" name "/"
1789 (version-major+minor version) "/"
1790 name "-" version ".tar.xz"))
1791 (sha256
1792 (base32
1793 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
1794 (native-inputs
1795 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1796
1797 (define-public tango-icon-theme
1798 (package
1799 (name "tango-icon-theme")
1800 (version "0.8.90")
1801 (source (origin
1802 (method url-fetch)
1803 (uri (string-append "http://tango.freedesktop.org/releases/"
1804 "tango-icon-theme-" version ".tar.bz2"))
1805 (sha256
1806 (base32
1807 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1808 (build-system gnu-build-system)
1809 (native-inputs
1810 `(("icon-naming-utils" ,icon-naming-utils)
1811 ("intltool" ,intltool)
1812 ("imagemagick" ,imagemagick)
1813 ("pkg-config" ,pkg-config)))
1814 (home-page "http://tango-project.org/")
1815 (synopsis "Tango icon theme")
1816 (description "This is an icon theme that follows the Tango visual
1817 guidelines.")
1818 (license license:public-domain)))
1819
1820 (define-public shared-mime-info
1821 (package
1822 (name "shared-mime-info")
1823 (version "1.15")
1824 (source (origin
1825 (method url-fetch)
1826 (uri (string-append
1827 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1828 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1829 ".tar.xz"))
1830 (sha256
1831 (base32
1832 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
1833 (build-system gnu-build-system)
1834 (arguments
1835 ;; The build system appears not to be parallel-safe.
1836 '(#:parallel-build? #f))
1837 (inputs
1838 `(("glib" ,glib)
1839 ("libxml2" ,libxml2)))
1840 (native-inputs
1841 `(("gettext" ,gettext-minimal)
1842 ("itstool" ,itstool)
1843 ("pkg-config" ,pkg-config)))
1844 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1845 (synopsis "Database of common MIME types")
1846 (description
1847 "The shared-mime-info package contains the core database of common types
1848 and the update-mime-database command used to extend it. It requires glib2 to
1849 be installed for building the update command. Additionally, it uses intltool
1850 for translations, though this is only a dependency for the maintainers. This
1851 database is translated at Transifex.")
1852 (license license:gpl2+)))
1853
1854 (define-public system-config-printer
1855 (package
1856 (name "system-config-printer")
1857 (version "1.5.12")
1858 (source
1859 (origin
1860 (method url-fetch)
1861 (uri (string-append
1862 "https://github.com/OpenPrinting/system-config-printer/releases/"
1863 "download/" version
1864 "/system-config-printer-" version ".tar.xz"))
1865 (sha256
1866 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1867 (build-system glib-or-gtk-build-system)
1868 (arguments
1869 `(#:imported-modules ((guix build python-build-system)
1870 ,@%glib-or-gtk-build-system-modules)
1871 #:phases
1872 (modify-phases %standard-phases
1873 (add-after 'unpack 'patch-Makefile.am
1874 (lambda _
1875 ;; The Makefile generates some scripts, so set a valid shebang
1876 (substitute* "Makefile.am"
1877 (("/bin/bash") (which "bash")))
1878 (delete-file "configure")
1879 #t))
1880 (add-after 'unpack 'patch-docbook-xml
1881 (lambda* (#:key inputs #:allow-other-keys)
1882 ;; Modify the man XML otherwise xmlto tries to access the network
1883 (substitute* "man/system-config-printer.xml"
1884 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1885 (string-append (assoc-ref inputs "docbook-xml")
1886 "/xml/dtd/docbook/")))
1887 #t))
1888 (add-after 'install 'wrap-for-python
1889 (@@ (guix build python-build-system) wrap))
1890 (add-after 'install 'wrap
1891 (lambda* (#:key outputs #:allow-other-keys)
1892 (let ((out (assoc-ref outputs "out"))
1893 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1894 (for-each
1895 (lambda (program)
1896 (wrap-program program
1897 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1898 (map (lambda (name)
1899 (string-append out "/bin/" name))
1900 '("system-config-printer"
1901 "system-config-printer-applet"
1902 "install-printerdriver"
1903 "scp-dbus-service"))))
1904 #t)))))
1905 (inputs
1906 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1907 ("gobject-introspection" ,gobject-introspection)
1908 ("python" ,python)
1909 ("cups" ,cups)
1910 ("python-dbus" ,python-dbus)
1911 ("python-pygobject" ,python-pygobject)
1912 ("python-pycups" ,python-pycups)
1913 ("python-requests" ,python-requests)
1914 ("python-pycairo" ,python-pycairo)
1915 ("libnotify" ,libnotify)
1916 ("packagekit" ,packagekit)))
1917 (native-inputs
1918 `(("pkg-config" ,pkg-config)
1919 ("desktop-file-utils" ,desktop-file-utils)
1920 ("glib" ,glib)
1921 ("autoconf" ,autoconf)
1922 ("automake" ,automake)
1923 ("intltool" ,intltool)
1924 ("xmlto" ,xmlto)
1925 ("docbook-xml" ,docbook-xml-4.1.2)
1926 ("docbook-xsl" ,docbook-xsl)
1927 ("libxml2" ,libxml2)))
1928 (home-page "https://github.com/zdohnal/system-config-printer")
1929 (synopsis "CUPS administration tool")
1930 (description
1931 "system-config-printer is a CUPS administration tool. It's written in
1932 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1933 configuring CUPS.")
1934 (license license:gpl2+)))
1935
1936 (define-public hicolor-icon-theme
1937 (package
1938 (name "hicolor-icon-theme")
1939 (version "0.17")
1940 (source
1941 (origin
1942 (method url-fetch)
1943 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
1944 "hicolor-icon-theme-" version ".tar.xz"))
1945 (sha256
1946 (base32
1947 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
1948 (build-system gnu-build-system)
1949 (arguments
1950 `(#:tests? #f)) ; no check target
1951 (home-page "https://icon-theme.freedesktop.org/releases/")
1952 (synopsis
1953 "Freedesktop icon theme")
1954 (description
1955 "Freedesktop icon theme.")
1956 (license license:gpl2)))
1957
1958 (define-public libnotify
1959 (package
1960 (name "libnotify")
1961 (version "0.7.7")
1962 (source
1963 (origin
1964 (method url-fetch)
1965 (uri (string-append "mirror://gnome/sources/" name "/"
1966 (version-major+minor version) "/"
1967 name "-" version ".tar.xz"))
1968 (sha256
1969 (base32
1970 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
1971 (build-system gnu-build-system)
1972 (arguments
1973 `(#:configure-flags '("--disable-static")))
1974 (propagated-inputs
1975 `(;; In Requires of libnotify.pc.
1976 ("gdk-pixbuf" ,gdk-pixbuf)
1977 ("glib" ,glib)))
1978 (inputs
1979 `(("gtk+" ,gtk+)
1980 ("libpng" ,libpng)))
1981 (native-inputs
1982 `(("pkg-config" ,pkg-config)
1983 ("glib" ,glib "bin")
1984 ("gobject-introspection" ,gobject-introspection)))
1985 (home-page "https://developer-next.gnome.org/libnotify/")
1986 (synopsis
1987 "GNOME desktop notification library")
1988 (description
1989 "Libnotify is a library that sends desktop notifications to a
1990 notification daemon, as defined in the Desktop Notifications spec. These
1991 notifications can be used to inform the user about an event or display
1992 some form of information without getting in the user's way.")
1993 (license license:lgpl2.1+)))
1994
1995 (define-public libpeas
1996 (package
1997 (name "libpeas")
1998 (version "1.24.1")
1999 (source
2000 (origin
2001 (method url-fetch)
2002 (uri (string-append "mirror://gnome/sources/" name "/"
2003 (version-major+minor version) "/"
2004 name "-" version ".tar.xz"))
2005 (sha256
2006 (base32
2007 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2008 (build-system meson-build-system)
2009 (arguments
2010 '(#:phases
2011 (modify-phases %standard-phases
2012 (add-before 'check 'start-xserver
2013 (lambda* (#:key inputs #:allow-other-keys)
2014 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2015 (disp ":1"))
2016 (setenv "DISPLAY" disp)
2017 ;; Tests require a running X server.
2018 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2019 #t))))))
2020 (inputs
2021 `(("gtk+" ,gtk+)
2022 ("glade" ,glade3)
2023 ("python" ,python)
2024 ("python-pygobject" ,python-pygobject)))
2025 (native-inputs
2026 `(("pkg-config" ,pkg-config)
2027 ("gettext" ,gettext-minimal)
2028 ("glib:bin" ,glib "bin")
2029 ("gobject-introspection" ,gobject-introspection)
2030 ("xorg-server" ,xorg-server-for-tests)))
2031 (propagated-inputs
2032 ;; The .pc file "Requires" gobject-introspection.
2033 `(("gobject-introspection" ,gobject-introspection)))
2034 (home-page "https://wiki.gnome.org/Libpeas")
2035 (synopsis "GObject plugin system")
2036 (description
2037 "Libpeas is a gobject-based plugin engine, targeted at giving every
2038 application the chance to assume its own extensibility. It also has a set of
2039 features including, but not limited to: multiple extension points; on-demand
2040 (lazy) programming language support for C, Python and JS; simplicity of the
2041 API.")
2042 (license license:lgpl2.0+)))
2043
2044 (define-public gtkglext
2045 (package
2046 (name "gtkglext")
2047 (version "1.2.0")
2048 (source (origin
2049 (method url-fetch)
2050 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2051 version "/gtkglext-" version ".tar.gz"))
2052 (sha256
2053 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2054 (patches (search-patches
2055 "gtkglext-disable-disable-deprecated.patch"))))
2056 (build-system gnu-build-system)
2057 (arguments
2058 `(#:phases
2059 (modify-phases %standard-phases
2060 ;; Fix a collision between a local variable and a definition from
2061 ;; glibc's string.h.
2062 (add-after 'unpack 'fix-collision
2063 (lambda _
2064 (substitute* "gdk/gdkglshapes.c"
2065 ((" index") " triangle_index"))
2066 #t)))))
2067 (inputs `(("gtk+" ,gtk+-2)
2068 ("mesa" ,mesa)
2069 ("glu" ,glu)
2070 ("libx11" ,libx11)
2071 ("libxt" ,libxt)))
2072 (native-inputs `(("pkg-config" ,pkg-config)
2073 ("glib" ,glib "bin")))
2074 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2075 (home-page "https://projects.gnome.org/gtkglext")
2076 (synopsis "OpenGL extension to GTK+")
2077 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2078 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2079 API add-ons to make GTK+ widgets OpenGL-capable.")
2080 (license license:lgpl2.1+)))
2081
2082 (define-public glade3
2083 (package
2084 (name "glade")
2085 (version "3.22.1")
2086 (source (origin
2087 (method url-fetch)
2088 (uri (string-append "mirror://gnome/sources/" name "/"
2089 (version-major+minor version) "/"
2090 name "-" version ".tar.xz"))
2091 (sha256
2092 (base32
2093 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
2094 (build-system glib-or-gtk-build-system)
2095 (arguments
2096 `(#:tests? #f ; needs X, GL, and software rendering
2097 #:phases
2098 (modify-phases %standard-phases
2099 (add-before 'configure 'fix-docbook
2100 (lambda* (#:key inputs #:allow-other-keys)
2101 (substitute* "man/Makefile.in"
2102 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2103 (string-append (assoc-ref inputs "docbook-xsl")
2104 "/xml/xsl/docbook-xsl-"
2105 ,(package-version docbook-xsl)
2106 "/manpages/docbook.xsl")))
2107 #t)))))
2108 (inputs
2109 `(("gtk+" ,gtk+)
2110 ("libxml2" ,libxml2)))
2111 (native-inputs
2112 `(("intltool" ,intltool)
2113 ("itstool" ,itstool)
2114 ("libxslt" ,libxslt) ;for xsltproc
2115 ("docbook-xml" ,docbook-xml-4.2)
2116 ("docbook-xsl" ,docbook-xsl)
2117 ("python" ,python-2)
2118 ("pkg-config" ,pkg-config)))
2119 (home-page "https://glade.gnome.org")
2120 (synopsis "GTK+ rapid application development tool")
2121 (description "Glade is a rapid application development (RAD) tool to
2122 enable quick & easy development of user interfaces for the GTK+ toolkit and
2123 the GNOME desktop environment.")
2124 (license license:lgpl2.0+)))
2125
2126 (define-public libcroco
2127 (package
2128 (name "libcroco")
2129 (version "0.6.13")
2130 (source (origin
2131 (method url-fetch)
2132 (uri (string-append "mirror://gnome/sources/" name "/"
2133 (version-major+minor version) "/"
2134 name "-" version ".tar.xz"))
2135 (sha256
2136 (base32
2137 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2138 (build-system gnu-build-system)
2139 (native-inputs
2140 `(("pkg-config" ,pkg-config)))
2141 (inputs
2142 `(("glib" ,glib)
2143 ("libxml2" ,libxml2)
2144 ("zlib" ,zlib)))
2145 (home-page "https://github.com/GNOME/libcroco")
2146 (synopsis "CSS2 parsing and manipulation library")
2147 (description
2148 "Libcroco is a standalone CSS2 parsing and manipulation library.
2149 The parser provides a low level event driven SAC-like API and a CSS object
2150 model like API. Libcroco provides a CSS2 selection engine and an experimental
2151 XML/CSS rendering engine.")
2152
2153 ;; LGPLv2.1-only.
2154 (license license:lgpl2.1)))
2155
2156 (define-public libgsf
2157 (package
2158 (name "libgsf")
2159 (version "1.14.47")
2160 (source (origin
2161 (method url-fetch)
2162 (uri (string-append "mirror://gnome/sources/" name "/"
2163 (version-major+minor version) "/"
2164 name "-" version ".tar.xz"))
2165 (sha256
2166 (base32
2167 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
2168 (build-system gnu-build-system)
2169 (arguments
2170 '(#:configure-flags '("--disable-static")))
2171 (native-inputs
2172 `(("pkg-config" ,pkg-config)
2173 ("gettext" ,gettext-minimal)
2174
2175 ;; For tests.
2176 ("perl" ,perl)
2177 ("perl-xml-parser" ,perl-xml-parser)))
2178 (inputs
2179 `(("zlib" ,zlib)
2180 ("bzip2" ,bzip2)))
2181 (propagated-inputs
2182 `(("gdk-pixbuf" ,gdk-pixbuf)
2183 ("glib" ,glib)
2184 ("libxml2" ,libxml2)))
2185 (home-page "https://www.gnome.org/projects/libgsf")
2186 (synopsis "GNOME's Structured File Library")
2187 (description
2188 "Libgsf aims to provide an efficient extensible I/O abstraction for
2189 dealing with different structured file formats.")
2190
2191 ;; LGPLv2.1-only.
2192 (license license:lgpl2.1)))
2193
2194 (define-public librsvg
2195 (package
2196 (name "librsvg")
2197 (version "2.40.21")
2198 (source (origin
2199 (method url-fetch)
2200 (uri (string-append "mirror://gnome/sources/" name "/"
2201 (version-major+minor version) "/"
2202 name "-" version ".tar.xz"))
2203 (sha256
2204 (base32
2205 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
2206 (build-system gnu-build-system)
2207 (arguments
2208 `(#:configure-flags
2209 (list "--disable-static"
2210 "--enable-vala") ; needed for e.g. gnome-mines
2211 #:phases
2212 (modify-phases %standard-phases
2213 (add-before 'configure 'pre-configure
2214 (lambda* (#:key inputs #:allow-other-keys)
2215 (substitute* "gdk-pixbuf-loader/Makefile.in"
2216 ;; By default the gdk-pixbuf loader is installed under
2217 ;; gdk-pixbuf's prefix. Work around that.
2218 (("gdk_pixbuf_moduledir = .*$")
2219 (string-append "gdk_pixbuf_moduledir = "
2220 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2221 "loaders\n"))
2222 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2223 (("gdk_pixbuf_cache_file = .*$")
2224 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2225 #t))
2226 (add-before 'check 'remove-failing-tests
2227 (lambda _
2228 (with-directory-excursion "tests/fixtures/reftests"
2229 (for-each delete-file
2230 '(;; This test fails on i686:
2231 "svg1.1/masking-path-04-b.svg"
2232 ;; This test fails on armhf:
2233 "svg1.1/masking-mask-01-b.svg"
2234 ;; This test fails on aarch64:
2235 "bugs/777834-empty-text-children.svg")))
2236 #t)))))
2237 (native-inputs
2238 `(("pkg-config" ,pkg-config)
2239 ("vala" ,vala)
2240 ("glib" ,glib "bin") ; glib-mkenums, etc.
2241 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2242 (inputs
2243 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2244 ;; this ancient version of librsvg.
2245 ("pango" ,pango-1.42)
2246 ("libcroco" ,libcroco)
2247 ("bzip2" ,bzip2)
2248 ("libgsf" ,libgsf)
2249 ("libxml2" ,libxml2)))
2250 (propagated-inputs
2251 ;; librsvg-2.0.pc refers to all of that.
2252 `(("cairo" ,cairo)
2253 ("gdk-pixbuf" ,gdk-pixbuf)
2254 ("glib" ,glib)))
2255 (home-page "https://wiki.gnome.org/LibRsvg")
2256 (synopsis "Render SVG files using Cairo")
2257 (description
2258 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2259 library.")
2260 (license license:lgpl2.0+)))
2261
2262 (define-public librsvg-next
2263 (package
2264 (inherit librsvg)
2265 (name "librsvg")
2266 (version "2.46.4")
2267 (source (origin
2268 (method url-fetch)
2269 (uri (string-append "mirror://gnome/sources/librsvg/"
2270 (version-major+minor version) "/"
2271 "librsvg-" version ".tar.xz"))
2272 (sha256
2273 (base32
2274 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2275 (modules '((guix build utils)))
2276 (snippet
2277 '(begin (delete-file-recursively "vendor")
2278 ;; Don't demand an exact version for string_cache
2279 (substitute* "rsvg_internals/Cargo.toml"
2280 (("\"=") "\""))
2281 #t))))
2282 (build-system cargo-build-system)
2283 (arguments
2284 `(#:modules ((guix build cargo-build-system)
2285 (guix build utils)
2286 ((guix build gnu-build-system) #:prefix gnu:))
2287 #:vendor-dir "vendor"
2288 #:cargo-inputs
2289 (("rust-bitflags" ,rust-bitflags-1)
2290 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2291 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2292 ("rust-cssparser" ,rust-cssparser-0.25)
2293 ("rust-data-url" ,rust-data-url-0.1)
2294 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2295 ("rust-encoding" ,rust-encoding-0.2)
2296 ("rust-float-cmp" ,rust-float-cmp-0.5)
2297 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2298 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2299 ("rust-gio" ,rust-gio-0.7)
2300 ("rust-gio-sys" ,rust-gio-sys-0.9)
2301 ("rust-glib" ,rust-glib-0.8)
2302 ("rust-glib-sys" ,rust-glib-sys-0.9)
2303 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2304 ("rust-itertools" ,rust-itertools-0.8)
2305 ("rust-language-tags" ,rust-language-tags-0.2)
2306 ("rust-lazy-static" ,rust-lazy-static-1)
2307 ("rust-libc" ,rust-libc-0.2)
2308 ("rust-locale-config" ,rust-locale-config-0.3)
2309 ("rust-markup5ever" ,rust-markup5ever-0.9)
2310 ("rust-nalgebra" ,rust-nalgebra-0.18)
2311 ("rust-num-traits" ,rust-num-traits-0.2)
2312 ("rust-pkg-config" ,rust-pkg-config-0.3)
2313 ("rust-pango" ,rust-pango-0.7)
2314 ("rust-pango-sys" ,rust-pango-sys-0.9)
2315 ("rust-pangocairo" ,rust-pangocairo-0.8)
2316 ("rust-phf" ,rust-phf-0.7)
2317 ("rust-rayon" ,rust-rayon-1.3)
2318 ("rust-rctree" ,rust-rctree-0.3)
2319 ("rust-string-cache" ,rust-string-cache-0.7)
2320 ("rust-regex" ,rust-regex-1.3)
2321 ("rust-url" ,rust-url-2.1)
2322 ("rust-xml-rs" ,rust-xml-rs-0.8))
2323 #:cargo-development-inputs
2324 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2325 ("rust-criterion" ,rust-criterion-0.2))
2326 #:phases
2327 (modify-phases %standard-phases
2328 (add-after 'unpack 'prepare-for-build
2329 (lambda _
2330 ;; In lieu of #:make-flags
2331 (setenv "CC" "gcc")
2332 ;; Something about the build environment resists building
2333 ;; successfully with the '--locked' flag.
2334 (substitute* '("Makefile.am"
2335 "Makefile.in")
2336 (("--locked") ""))
2337 #t))
2338 (add-before 'configure 'pre-configure
2339 (lambda _
2340 (substitute* "gdk-pixbuf-loader/Makefile.in"
2341 ;; By default the gdk-pixbuf loader is installed under
2342 ;; gdk-pixbuf's prefix. Work around that.
2343 (("gdk_pixbuf_moduledir = .*$")
2344 (string-append "gdk_pixbuf_moduledir = "
2345 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2346 "loaders\n"))
2347 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2348 (("gdk_pixbuf_cache_file = .*$")
2349 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2350 #t))
2351 (add-after 'configure 'gnu-configure
2352 (assoc-ref gnu:%standard-phases 'configure))
2353 ;(lambda* (#:key outputs #:allow-other-keys)
2354 ; ((assoc-ref gnu:%standard-phases 'configure)
2355 ; #:outputs outputs
2356 ; #:configure-flags ("--disable-static"
2357 ; "--enable-vala"))))
2358 (add-after 'configure 'dont-vendor-self
2359 (lambda* (#:key vendor-dir #:allow-other-keys)
2360 ;; Don't keep the whole tarball in the vendor directory
2361 (delete-file-recursively
2362 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2363 #t))
2364 (replace 'build
2365 (assoc-ref gnu:%standard-phases 'build))
2366 (replace 'check
2367 (lambda* args
2368 ((assoc-ref gnu:%standard-phases 'check)
2369 #:test-target "check")))
2370 (replace 'install
2371 (assoc-ref gnu:%standard-phases 'install))
2372 (add-before 'check 'remove-failing-tests
2373 (lambda _
2374 (with-directory-excursion "tests/fixtures/reftests"
2375 (for-each delete-file
2376 '(;; The images produced by these tests differ slightly
2377 ;; from their reference counterparts due to differences
2378 ;; in the build environment (missing fonts, etc). See
2379 ;; <tests/README.md> for details.
2380 ;; These fail on x86_64.
2381 "svg1.1/coords-viewattr-02-b.svg"
2382 "svg1.1/filters-composite-04-f.svg"
2383 "svg1.1/filters-image-01-b.svg"
2384 "svg1.1/filters-conv-02-f.svg"
2385 "svg1.1/filters-conv-04-f.svg"
2386 ;; This test fails on i686:
2387 "svg1.1/masking-path-04-b.svg"
2388 ;; This test fails on armhf:
2389 "svg1.1/masking-mask-01-b.svg"
2390 ;; This test fails on aarch64:
2391 "bugs/777834-empty-text-children.svg")))
2392 #t)))))
2393 (license license:lgpl2.1+)))
2394
2395 (define-public libidl
2396 (package
2397 (name "libidl")
2398 (version "0.8.14")
2399 (source (origin
2400 (method url-fetch)
2401 (uri (string-append "mirror://gnome/sources/libIDL/"
2402 (version-major+minor version) "/"
2403 "libIDL-" version ".tar.bz2"))
2404 (sha256
2405 (base32
2406 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2407 (build-system gnu-build-system)
2408 (inputs `(("glib" ,glib)))
2409 (native-inputs
2410 `(("pkg-config" ,pkg-config)
2411 ("flex" ,flex)
2412 ("bison" ,bison)))
2413 (home-page "http://freecode.com/projects/libidl")
2414 (synopsis "Create trees of CORBA Interface Definition Language files")
2415 (description "Libidl is a library for creating trees of CORBA Interface
2416 Definition Language (idl) files, which is a specification for defining
2417 portable interfaces. libidl was initially written for orbit (the orb from the
2418 GNOME project, and the primary means of libidl distribution). However, the
2419 functionality was designed to be as reusable and portable as possible.")
2420 (properties `((upstream-name . "libIDL")))
2421 (license license:lgpl2.0+)))
2422
2423
2424 (define-public orbit2
2425 (package
2426 (name "orbit2")
2427 (version "2.14.19")
2428 (source (origin
2429 (method url-fetch)
2430 (uri (let ((upstream-name "ORBit2"))
2431 (string-append "mirror://gnome/sources/" upstream-name "/"
2432 (version-major+minor version) "/"
2433 upstream-name "-" version ".tar.bz2")))
2434 (sha256
2435 (base32
2436 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2437 (build-system gnu-build-system)
2438 (arguments
2439 `(;; The "timeout-server" test hangs when run in parallel.
2440 #:parallel-tests? #f
2441 #:configure-flags
2442 '(;; We don't need static libraries, plus they don't build reproducibly
2443 ;; (non-deterministic ordering of .o files in the archive.)
2444 "--disable-static"
2445
2446 ;; The programmer kindly gives us a hook to turn off deprecation
2447 ;; warnings ...
2448 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2449 ;; ... which they then completly ignore !!
2450 #:phases
2451 (modify-phases %standard-phases
2452 (add-before 'configure 'ignore-deprecations
2453 (lambda _
2454 (substitute* "linc2/src/Makefile.in"
2455 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2456 #t)))))
2457 (inputs `(("glib" ,glib)
2458 ("libidl" ,libidl)))
2459 (native-inputs
2460 `(("pkg-config" ,pkg-config)))
2461 (home-page "https://projects.gnome.org/orbit2/")
2462 (synopsis "CORBA 2.4-compliant Object Request Broker")
2463 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2464 featuring mature C, C++ and Python bindings.")
2465 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2466 ;; a version. SOME of the code files have licence notices for GPLv2+.
2467 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2468 (license license:gpl2+)
2469 (properties `((upstream-name . "ORBit2")))))
2470
2471
2472 (define-public libbonobo
2473 (package
2474 (name "libbonobo")
2475 (version "2.32.1")
2476 (source (origin
2477 (method url-fetch)
2478 (uri (string-append "mirror://gnome/sources/" name "/"
2479 (version-major+minor version)
2480 "/" name "-" version ".tar.bz2"))
2481 (sha256
2482 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2483 (patches (search-patches
2484 "libbonobo-activation-test-race.patch"))))
2485 (build-system gnu-build-system)
2486 (arguments
2487 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2488 `(#:configure-flags
2489 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2490 ;; ... which they then completly ignore !!
2491 #:phases
2492 (modify-phases %standard-phases
2493 (add-before 'configure 'ignore-deprecations
2494 (lambda _
2495 (substitute* "activation-server/Makefile.in"
2496 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2497 #t)))
2498
2499 ;; There's apparently a race condition between the server stub
2500 ;; generation and linking of the example under 'samples/echo' that can
2501 ;; lead do undefined references when building in parallel, as reported
2502 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2503 ;; Thus, disable parallel builds.
2504 #:parallel-build? #f))
2505 (inputs `(("popt" ,popt)
2506 ("libxml2" ,libxml2)))
2507 ;; The following are Required by the .pc file
2508 (propagated-inputs
2509 `(("glib" ,glib)
2510 ("orbit2" ,orbit2)))
2511 (native-inputs
2512 `(("intltool" ,intltool)
2513 ("pkg-config" ,pkg-config)
2514 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2515 ("flex" ,flex)
2516 ("bison" ,bison)))
2517 (home-page "https://developer.gnome.org/libbonobo/")
2518 (synopsis "Framework for creating reusable components for use in GNOME applications")
2519 (description "Bonobo is a framework for creating reusable components for
2520 use in GNOME applications, built on top of CORBA.")
2521 ;; Licence not explicitly stated. Source files contain no licence notices.
2522 ;; Tarball contains text of both GPLv2 and LGPLv2
2523 ;; GPLv2 covers both conditions
2524 (license license:gpl2+)))
2525
2526
2527 (define-public gconf
2528 (package
2529 (name "gconf")
2530 (version "3.2.6")
2531 (source (origin
2532 (method url-fetch)
2533 (uri
2534 (let ((upstream-name "GConf"))
2535 (string-append "mirror://gnome/sources/" upstream-name "/"
2536 (version-major+minor version) "/"
2537 upstream-name "-" version ".tar.xz")))
2538 (sha256
2539 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2540 (build-system gnu-build-system)
2541 (inputs `(("dbus-glib" ,dbus-glib)
2542 ("libxml2" ,libxml2)))
2543 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2544 ("orbit2" ,orbit2)))
2545 (native-inputs
2546 `(("intltool" ,intltool)
2547 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2548 ("pkg-config" ,pkg-config)))
2549 (home-page "https://projects.gnome.org/gconf/")
2550 (synopsis "Store application preferences")
2551 (description "Gconf is a system for storing application preferences. It
2552 is intended for user preferences; not arbitrary data storage.")
2553 (license license:lgpl2.0+)
2554 (properties '((upstream-name . "GConf")))))
2555
2556
2557 (define-public gnome-mime-data
2558 (package
2559 (name "gnome-mime-data")
2560 (version "2.18.0")
2561 (source (origin
2562 (method url-fetch)
2563 (uri (string-append "mirror://gnome/sources/" name "/"
2564 (version-major+minor version) "/"
2565 name "-" version ".tar.bz2"))
2566 (sha256
2567 (base32
2568 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2569 (build-system gnu-build-system)
2570 (native-inputs
2571 `(("perl" ,perl)
2572 ("intltool" ,intltool)))
2573 (arguments
2574 '(#:phases (modify-phases %standard-phases
2575 (add-after 'configure 'use-our-intltool
2576 (lambda _
2577 ;; Do not use the bundled intltool commands, which lack
2578 ;; the "dotless @INC" fixes of our 'intltool' package.
2579 (substitute* (find-files "." "^Makefile$")
2580 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2581 (string-append "INTLTOOL_" tool " = intltool-"
2582 (string-downcase tool) "\n")))
2583 #t)))))
2584 (home-page "https://www.gnome.org")
2585 (synopsis "Base MIME and Application database for GNOME")
2586 (description "GNOME Mime Data is a module which contains the base MIME
2587 and Application database for GNOME. The data stored by this module is
2588 designed to be accessed through the MIME functions in GnomeVFS.")
2589 (license license:gpl2+)))
2590
2591
2592 (define-public gnome-vfs
2593 (package
2594 (name "gnome-vfs")
2595 (version "2.24.4")
2596 (source (origin
2597 (method url-fetch)
2598 (uri (string-append "mirror://gnome/sources/" name "/"
2599 (version-major+minor version) "/"
2600 name "-" version ".tar.bz2"))
2601 (sha256
2602 (base32
2603 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2604 (build-system gnu-build-system)
2605 (arguments
2606 `(#:phases
2607 (modify-phases %standard-phases
2608 (add-before 'configure 'ignore-deprecations
2609 (lambda _
2610 (substitute* '("libgnomevfs/Makefile.in"
2611 "daemon/Makefile.in")
2612 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2613 #t))
2614 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2615 (lambda _
2616 (substitute* "test/test-async-cancel.c"
2617 (("EXIT_FAILURE") "77"))
2618 #t)))))
2619 (inputs `(("libxml2" ,libxml2)
2620 ("dbus-glib" ,dbus-glib)
2621 ("gconf" ,gconf)
2622 ("gnome-mime-data" ,gnome-mime-data)
2623 ("zlib" ,zlib)))
2624 (native-inputs
2625 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2626 ("intltool" ,intltool)
2627 ("pkg-config" ,pkg-config)))
2628 (home-page "https://developer.gnome.org/gnome-vfs/")
2629 (synopsis "Access files and folders in GNOME applications")
2630 (description
2631 "GnomeVFS is the core library used to access files and folders in GNOME
2632 applications. It provides a file system abstraction which allows applications
2633 to access local and remote files with a single consistent API.")
2634 (license license:lgpl2.0+)))
2635
2636
2637
2638 (define-public libgnome
2639 (package
2640 (name "libgnome")
2641 (version "2.32.1")
2642 (source (origin
2643 (method url-fetch)
2644 (uri (string-append "mirror://gnome/sources/" name "/"
2645 (version-major+minor version) "/"
2646 name "-" version ".tar.bz2"))
2647 (sha256
2648 (base32
2649 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2650 (patches (search-patches "libgnome-encoding.patch"))))
2651 (build-system gnu-build-system)
2652 (arguments
2653 `(#:phases
2654 (modify-phases %standard-phases
2655 (add-before 'configure 'enable-deprecated
2656 (lambda _
2657 (substitute* "libgnome/Makefile.in"
2658 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2659 #t)))))
2660 (inputs `(("libxml2" ,libxml2)))
2661 (native-inputs
2662 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2663 ("intltool" ,intltool)
2664 ("pkg-config" ,pkg-config)))
2665 ;; The following are listed as Required in the .pc file
2666 ;; (except for libcanberra -- which seems to be oversight on the part
2667 ;; of the upstream developers -- anything that links against libgnome,
2668 ;; must also link against libcanberra
2669 (propagated-inputs
2670 `(("libcanberra" ,libcanberra)
2671 ("libbonobo" ,libbonobo)
2672 ("gconf" ,gconf)
2673 ("gnome-vfs" ,gnome-vfs)
2674 ("popt" ,popt))) ;gnome-program.h includes popt.h
2675 (home-page "https://developer.gnome.org/libgnome/")
2676 (synopsis "Useful routines for building applications")
2677 (description "The libgnome library provides a number of useful routines
2678 for building modern applications, including session management, activation of
2679 files and URIs, and displaying help.")
2680 (license license:lgpl2.0+)))
2681
2682
2683 (define-public libart-lgpl
2684 (package
2685 (name "libart-lgpl")
2686 (version "2.3.21")
2687 (source (origin
2688 (method url-fetch)
2689 (uri (let ((upstream-name "libart_lgpl"))
2690 (string-append "mirror://gnome/sources/" upstream-name "/"
2691 (version-major+minor version) "/"
2692 upstream-name "-" version ".tar.bz2")))
2693 (sha256
2694 (base32
2695 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2696 (build-system gnu-build-system)
2697 (native-inputs
2698 `(("pkg-config" ,pkg-config)))
2699 (home-page "https://people.gnome.org/~mathieu/libart")
2700 (synopsis "2D drawing library")
2701 (description "Libart is a 2D drawing library intended as a
2702 high-quality vector-based 2D library with antialiasing and alpha composition.")
2703 (license license:lgpl2.0+)))
2704
2705
2706
2707 (define-public libgnomecanvas
2708 (package
2709 (name "libgnomecanvas")
2710 (version "2.30.3")
2711 (source (origin
2712 (method url-fetch)
2713 (uri (string-append "mirror://gnome/sources/" name "/"
2714 (version-major+minor version) "/"
2715 name "-" version ".tar.gz"))
2716 (sha256
2717 (base32
2718 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2719 (build-system gnu-build-system)
2720 ;; Mentioned as Required in the .pc file
2721 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2722 ("gtk+" ,gtk+-2)))
2723 (native-inputs
2724 `(("intltool" ,intltool)
2725 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2726 ("pkg-config" ,pkg-config)))
2727 (home-page "https://developer.gnome.org/libgnomecanvas/")
2728 (synopsis "Flexible widget for creating interactive structured graphics")
2729 (description "The GnomeCanvas widget provides a flexible widget for
2730 creating interactive structured graphics.")
2731 (license license:lgpl2.0+)))
2732
2733 (define-public libgnomecanvasmm
2734 (package
2735 (name "libgnomecanvasmm")
2736 (version "2.26.0")
2737 (source (origin
2738 (method url-fetch)
2739 (uri (string-append "mirror://gnome/sources/" name "/"
2740 (version-major+minor version) "/"
2741 name "-" version ".tar.bz2"))
2742 (sha256
2743 (base32
2744 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2745 (build-system gnu-build-system)
2746 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2747 (native-inputs
2748 `(("gtkmm-2" ,gtkmm-2)
2749 ("pkg-config" ,pkg-config)))
2750 (home-page "https://gtkmm.org")
2751 (synopsis "C++ bindings to the GNOME Canvas library")
2752 (description "C++ bindings to the GNOME Canvas library.")
2753 (license license:lgpl2.0+)))
2754
2755 (define-public libgnomeui
2756 (package
2757 (name "libgnomeui")
2758 (version "2.24.5")
2759 (source (origin
2760 (method url-fetch)
2761 (uri (string-append "mirror://gnome/sources/" name "/"
2762 (version-major+minor version) "/"
2763 name "-" version ".tar.bz2"))
2764 (patches (search-patches "libgnomeui-utf8.patch"))
2765 (sha256
2766 (base32
2767 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2768 (build-system gnu-build-system)
2769 ;; Mentioned as Required in the .pc file
2770 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2771 ("libgnome" ,libgnome)
2772 ("libgnomecanvas" ,libgnomecanvas)
2773 ("libgnome-keyring" ,libgnome-keyring)))
2774 (inputs `(("libjpeg" ,libjpeg-turbo)
2775 ("popt" ,popt)
2776 ("libbonobo" ,libbonobo)
2777 ("libxml2" ,libxml2)
2778 ("libglade" ,libglade)))
2779 (native-inputs
2780 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2781 ("intltool" ,intltool)
2782 ("pkg-config" ,pkg-config)))
2783 (home-page "https://developer.gnome.org/libgnomeui/")
2784 (synopsis "Additional widgets for applications")
2785 (description "The libgnomeui library provides additional widgets for
2786 applications. Many of the widgets from libgnomeui have already been
2787 ported to GTK+.")
2788 (license license:lgpl2.0+)))
2789
2790 (define-public libglade
2791 (package
2792 (name "libglade")
2793 (version "2.6.4")
2794 (source (origin
2795 (method url-fetch)
2796 (uri (string-append "mirror://gnome/sources/" name "/"
2797 (version-major+minor version) "/"
2798 name "-" version ".tar.bz2"))
2799 (sha256
2800 (base32
2801 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2802 (build-system gnu-build-system)
2803 (inputs
2804 `(("python" ,python))) ;; needed for the optional libglade-convert program
2805 (propagated-inputs
2806 `(("gtk+-2" ,gtk+-2)
2807 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2808 (native-inputs
2809 `(("pkg-config" ,pkg-config)))
2810 (home-page "https://developer.gnome.org/libglade")
2811 (synopsis "Load glade interfaces and access the glade built widgets")
2812 (description "Libglade is a library that provides interfaces for loading
2813 graphical interfaces described in glade files and for accessing the
2814 widgets built in the loading process.")
2815 (license license:gpl2+))) ; This is correct. GPL not LGPL
2816
2817 (define-public libgnomeprint
2818 ;; This library has been deprecated since 2006; see
2819 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2820 (package
2821 (name "libgnomeprint")
2822 (version "2.18.8")
2823 (source (origin
2824 (method url-fetch)
2825 (uri (string-append "mirror://gnome/sources/" name "/"
2826 (version-major+minor version) "/"
2827 name "-" version ".tar.bz2"))
2828 (sha256
2829 (base32
2830 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2831 (build-system gnu-build-system)
2832 (inputs
2833 `(("popt" ,popt)
2834 ("libart-lgpl" ,libart-lgpl)
2835 ("gtk+" ,gtk+-2)
2836 ("libxml2" ,libxml2)))
2837 (native-inputs
2838 `(("intltool" ,intltool)
2839 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2840 ("pkg-config" ,pkg-config)))
2841 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2842 (synopsis "Printing framework for GNOME")
2843 (description
2844 "GNOME-print was a printing framework for GNOME. It has been deprecated
2845 since ca. 2006, when GTK+ itself incorporated printing support.")
2846 (license license:lgpl2.0+)))
2847
2848
2849 (define-public libgnomeprintui
2850 ;; Deprecated; see libgnomeprint.
2851 (package
2852 (name "libgnomeprintui")
2853 (version "2.18.6")
2854 (source (origin
2855 (method url-fetch)
2856 (uri (string-append "mirror://gnome/sources/" name "/"
2857 (version-major+minor version) "/"
2858 name "-" version ".tar.bz2"))
2859 (sha256
2860 (base32
2861 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2862 (build-system gnu-build-system)
2863 ;; Mentioned as Required in the .pc file
2864 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2865 (inputs `(("gtk+" ,gtk+-2)
2866 ("glib" ,glib)
2867 ("gnome-icon-theme" ,gnome-icon-theme)
2868 ("libgnomecanvas" ,libgnomecanvas)
2869 ("libxml2" ,libxml2)))
2870 (native-inputs
2871 `(("intltool" ,intltool)
2872 ("pkg-config" ,pkg-config)))
2873 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2874 (synopsis "Printing framework for GNOME")
2875 (description (package-description libgnomeprint))
2876 (license license:lgpl2.0+)))
2877
2878 (define-public libbonoboui
2879 (package
2880 (name "libbonoboui")
2881 (version "2.24.5")
2882 (source (origin
2883 (method url-fetch)
2884 (uri (string-append "mirror://gnome/sources/" name "/"
2885 (version-major+minor version) "/"
2886 name "-" version ".tar.bz2"))
2887 (sha256
2888 (base32
2889 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2890 (build-system gnu-build-system)
2891 (arguments
2892 `(#:phases
2893 (modify-phases %standard-phases
2894 (add-before 'check 'start-xserver
2895 (lambda* (#:key inputs #:allow-other-keys)
2896 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2897 (disp ":1"))
2898
2899 (setenv "HOME" (getcwd))
2900 (setenv "DISPLAY" disp)
2901 ;; There must be a running X server and make check doesn't start one.
2902 ;; Therefore we must do it.
2903 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2904 ;; Mentioned as Required by the .pc file
2905 (propagated-inputs `(("libxml2" ,libxml2)))
2906 (inputs
2907 `(("popt" ,popt)
2908 ("pangox-compat" ,pangox-compat)
2909 ("libgnome" ,libgnome)
2910 ("libgnomecanvas" ,libgnomecanvas)
2911 ("libglade" ,libglade)))
2912 (native-inputs
2913 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2914 ("intltool" ,intltool)
2915 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2916 ("pkg-config" ,pkg-config)))
2917 (home-page "https://developer.gnome.org/libbonoboui/")
2918 (synopsis "Some user interface controls using Bonobo")
2919 (description "The Bonobo UI library provides a number of user interface
2920 controls using the Bonobo component framework.")
2921 (license license:lgpl2.0+)))
2922
2923 (define-public libwnck
2924 (package
2925 (name "libwnck")
2926 (version "3.32.0")
2927 (source (origin
2928 (method url-fetch)
2929 (uri (string-append "mirror://gnome/sources/" name "/"
2930 (version-major+minor version) "/"
2931 name "-" version ".tar.xz"))
2932 (sha256
2933 (base32
2934 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2935 (build-system meson-build-system)
2936 (native-inputs
2937 `(("pkg-config" ,pkg-config)
2938 ("glib" ,glib "bin") ; for glib-mkenums
2939 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
2940 ("intltool" ,intltool)))
2941 (propagated-inputs
2942 `(("gtk+" ,gtk+)
2943 ("libxres" ,libxres)
2944 ("startup-notification" ,startup-notification)))
2945 (home-page "https://developer.gnome.org/libwnck/")
2946 (synopsis "Window Navigator Construction Kit")
2947 (description
2948 "Libwnck is the Window Navigator Construction Kit, a library for use in
2949 writing pagers, tasklists, and more generally applications that are dealing
2950 with window management. It tries hard to respect the Extended Window Manager
2951 Hints specification (EWMH).")
2952 (license license:lgpl2.0+)))
2953
2954 ;; stable version for gtk2, required by xfwm4.
2955 (define-public libwnck-2
2956 (package (inherit libwnck)
2957 (name "libwnck")
2958 (version "2.30.7")
2959 (source (origin
2960 (method url-fetch)
2961 (uri (string-append "mirror://gnome/sources/" name "/"
2962 (version-major+minor version) "/"
2963 name "-" version ".tar.xz"))
2964 (sha256
2965 (base32
2966 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
2967 (build-system gnu-build-system)
2968 (native-inputs
2969 `(("pkg-config" ,pkg-config)
2970 ("intltool" ,intltool)))
2971 (propagated-inputs
2972 `(("gtk+" ,gtk+-2)
2973 ("libxres" ,libxres)
2974 ("startup-notification" ,startup-notification)))))
2975
2976 (define-public goffice
2977 (package
2978 (name "goffice")
2979 (version "0.10.46")
2980 (source (origin
2981 (method url-fetch)
2982 (uri (string-append "mirror://gnome/sources/goffice/"
2983 (version-major+minor version) "/"
2984 "goffice-" version ".tar.xz"))
2985 (sha256
2986 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
2987 (build-system gnu-build-system)
2988 (outputs '("out"
2989 "doc")) ; 4.0 MiB of gtk-doc
2990 (arguments
2991 '(#:configure-flags (list (string-append "--with-html-dir="
2992 (assoc-ref %outputs "doc")
2993 "/share/gtk-doc/html"))))
2994 (inputs
2995 `(("gtk+" ,gtk+)
2996 ("libgsf" ,libgsf)
2997 ("librsvg" ,librsvg)
2998 ("libxslt" ,libxslt)
2999 ("libxml2" ,libxml2)))
3000 (native-inputs
3001 `(("intltool" ,intltool)
3002 ("glib" ,glib "bin")
3003 ("pkg-config" ,pkg-config)))
3004 (home-page "https://developer.gnome.org/goffice/")
3005 (synopsis "Document-centric objects and utilities")
3006 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3007 (license
3008 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3009 ;; Note: NOT LGPL
3010 (list license:gpl2 license:gpl3))))
3011
3012 (define-public goffice-0.8
3013 (package (inherit goffice)
3014 (version "0.8.17")
3015 (source (origin
3016 (method url-fetch)
3017 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3018 (version-major+minor version) "/"
3019 (package-name goffice) "-" version ".tar.xz"))
3020 (sha256
3021 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3022 (arguments
3023 `(#:phases
3024 (modify-phases %standard-phases
3025 (add-after 'unpack 'fix-pcre-check
3026 (lambda _
3027 ;; Only glib.h can be included directly. See
3028 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3029 (substitute* "configure"
3030 (("glib/gregex\\.h") "glib.h")) #t)))
3031
3032 ,@(package-arguments goffice)))
3033 (propagated-inputs
3034 ;; libgoffice-0.8.pc mentions libgsf-1
3035 `(("libgsf" ,libgsf)))
3036 (inputs
3037 `(("gtk" ,gtk+-2)
3038 ,@(alist-delete "gtk" (package-inputs goffice))))))
3039
3040 (define-public gnumeric
3041 (package
3042 (name "gnumeric")
3043 (version "1.12.46")
3044 (source (origin
3045 (method url-fetch)
3046 (uri (string-append "mirror://gnome/sources/gnumeric/"
3047 (version-major+minor version) "/"
3048 "gnumeric-" version ".tar.xz"))
3049 (sha256
3050 (base32
3051 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3052 (build-system glib-or-gtk-build-system)
3053 (arguments
3054 `(;; The gnumeric developers don't worry much about failing tests.
3055 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3056 #:tests? #f
3057 #:phases
3058 (modify-phases %standard-phases
3059 (add-before
3060 'configure 'pre-conf
3061 (lambda* (#:key outputs #:allow-other-keys)
3062 ;; Make install tries to write into the directory of goffice
3063 ;; I am informed that this only affects the possibility to embed a
3064 ;; spreadsheet inside an Abiword document. So presumably when we
3065 ;; package Abiword we'll have to refer it to this directory.
3066 (substitute* "configure"
3067 (("^GOFFICE_PLUGINS_DIR=.*")
3068 (string-append "GOFFICE_PLUGINS_DIR="
3069 (assoc-ref outputs "out")
3070 "/goffice/plugins"))))))))
3071 (inputs
3072 `(("glib" ,glib)
3073 ("gtk+" ,gtk+)
3074 ("goffice" ,goffice)
3075 ("libgsf" ,libgsf)
3076 ("librsvg" ,librsvg)
3077 ("libxml2" ,libxml2)
3078 ("libxslt" ,libxslt)
3079 ("python" ,python-2)
3080 ("python2-pygobject" ,python2-pygobject)
3081 ("zlib" ,zlib)))
3082 (native-inputs
3083 `(("bison" ,bison)
3084 ("docbook-xml" ,docbook-xml)
3085 ("intltool" ,intltool)
3086 ("itstool" ,itstool)
3087 ("glib:bin" ,glib "bin")
3088 ("pkg-config" ,pkg-config)))
3089 (home-page "http://www.gnumeric.org")
3090 (synopsis "Spreadsheet application")
3091 (description
3092 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3093 interoperable with other spreadsheet applications. It has a vast array of
3094 features beyond typical spreadsheet functionality, such as support for linear
3095 and non-linear solvers, statistical analysis, and telecommunication
3096 engineering.")
3097 (license
3098 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3099 (list license:gpl2 license:gpl3))))
3100
3101 (define-public gnome-themes-standard
3102 (package
3103 (name "gnome-themes-standard")
3104 (version "3.22.3")
3105 (source
3106 (origin
3107 (method url-fetch)
3108 (uri (string-append "mirror://gnome/sources/" name "/"
3109 (version-major+minor version) "/" name "-"
3110 version ".tar.xz"))
3111 (sha256
3112 (base32
3113 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3114 (build-system gnu-build-system)
3115 (arguments
3116 '(#:configure-flags
3117 ;; Don't create 'icon-theme.cache'.
3118 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3119 (true (string-append coreutils "/bin/true")))
3120 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3121 (inputs
3122 `(("gtk+" ,gtk+)
3123 ("gtk+-2" ,gtk+-2)
3124 ("librsvg" ,librsvg)
3125 ("libxml2" ,libxml2)
3126 ("glib" ,glib)))
3127 (native-inputs
3128 `(("intltool" ,intltool)
3129 ("glib:bin" ,glib "bin")
3130 ("pkg-config" ,pkg-config)))
3131 (home-page "https://launchpad.net/gnome-themes-standard")
3132 (synopsis "Default GNOME 3 themes")
3133 (description
3134 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3135 (license license:lgpl2.1+)))
3136
3137 (define-public seahorse
3138 (package
3139 (name "seahorse")
3140 (version "3.34")
3141 (source
3142 (origin
3143 (method url-fetch)
3144 (uri (string-append "mirror://gnome/sources/" name "/"
3145 (version-major+minor version) "/" name "-"
3146 version ".tar.xz"))
3147 (sha256
3148 (base32
3149 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
3150 (build-system meson-build-system)
3151 (arguments
3152 '(#:glib-or-gtk? #t
3153 #:phases
3154 (modify-phases %standard-phases
3155 (add-after 'unpack 'skip-gtk-update-icon-cache
3156 ;; Don't create 'icon-theme.cache'.
3157 (lambda _
3158 (substitute* "build-aux/meson_post_install.py"
3159 (("gtk-update-icon-cache") "true"))
3160 #t)))))
3161 (inputs
3162 `(("gtk+" ,gtk+)
3163 ("gcr" ,gcr)
3164 ("gnupg" ,gnupg)
3165 ("gpgme" ,gpgme)
3166 ("openldap" ,openldap)
3167 ("openssh" ,openssh)
3168 ("avahi" ,avahi)
3169 ("libpwquality" ,libpwquality)
3170 ("libsecret" ,libsecret)
3171 ("libsoup" ,libsoup)))
3172 (native-inputs
3173 `(("gettext" ,gettext-minimal)
3174 ("glib:bin" ,glib "bin")
3175 ("itstool" ,itstool)
3176 ("pkg-config" ,pkg-config)
3177 ("vala" ,vala)
3178 ("xmllint" ,libxml2)))
3179 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3180 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3181 (description
3182 "Seahorse is a GNOME application for managing encryption keys and
3183 passwords in the GNOME keyring.")
3184 (license license:gpl2+)))
3185
3186 (define-public vala
3187 (package
3188 (name "vala")
3189 (version "0.46.5")
3190 (source (origin
3191 (method url-fetch)
3192 (uri (string-append "mirror://gnome/sources/" name "/"
3193 (version-major+minor version) "/"
3194 name "-" version ".tar.xz"))
3195 (sha256
3196 (base32
3197 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
3198 (build-system gnu-build-system)
3199 (arguments
3200 '(#:phases
3201 (modify-phases %standard-phases
3202 (add-before 'check 'pre-check
3203 (lambda _
3204 (setenv "CC" "gcc")
3205 (substitute* "valadoc/tests/testrunner.sh"
3206 (("export PKG_CONFIG_PATH=" m)
3207 (string-append m "$PKG_CONFIG_PATH:")))
3208 ;; For missing '/etc/machine-id'.
3209 (setenv "DBUS_FATAL_WARNINGS" "0")
3210 #t)))))
3211 (native-inputs
3212 `(("pkg-config" ,pkg-config)
3213 ("flex" ,flex)
3214 ("bison" ,bison)
3215 ("xsltproc" ,libxslt)
3216 ("dbus" ,dbus) ; for dbus tests
3217 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3218 (inputs
3219 `(("graphviz" ,graphviz)))
3220 (propagated-inputs
3221 `(("glib" ,glib))) ; required by libvala-0.40.pc
3222 (home-page "https://live.gnome.org/Vala/")
3223 (synopsis "Compiler for the GObject type system")
3224 (description
3225 "Vala is a programming language that aims to bring modern programming
3226 language features to GNOME developers without imposing any additional runtime
3227 requirements and without using a different ABI compared to applications and
3228 libraries written in C.")
3229 (license license:lgpl2.1+)))
3230
3231 (define-public vte
3232 (package
3233 (name "vte")
3234 (version "0.60.2")
3235 (source (origin
3236 (method url-fetch)
3237 (uri (string-append "mirror://gnome/sources/vte/"
3238 (version-major+minor version) "/"
3239 "vte-" version ".tar.xz"))
3240 (sha256
3241 (base32
3242 "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
3243 (build-system meson-build-system)
3244 (arguments
3245 `(#:configure-flags
3246 '("-Dvapi=true"
3247 "-D_systemd=false")))
3248 (native-inputs
3249 `(("pkg-config" ,pkg-config)
3250 ("gettext" ,gettext-minimal)
3251 ("vala" ,vala)
3252 ("gobject-introspection" ,gobject-introspection)
3253 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3254 ("gperf" ,gperf)
3255 ("xmllint" ,libxml2)))
3256 (propagated-inputs
3257 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3258 ("gnutls" ,gnutls) ; ditto
3259 ("pcre2" ,pcre2))) ; ditto
3260 (home-page "https://www.gnome.org/")
3261 (synopsis "Virtual Terminal Emulator")
3262 (description
3263 "VTE is a library (libvte) implementing a terminal emulator widget for
3264 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3265 gnome-terminal, but can also be used to embed a console/terminal in games,
3266 editors, IDEs, etc.")
3267 (license license:lgpl2.1+)))
3268
3269 (define-public vte-ng
3270 (package
3271 (inherit vte)
3272 (name "vte-ng")
3273 (version "0.58.2.a")
3274 (home-page "https://github.com/thestinger/vte-ng")
3275 (source (origin
3276 (method git-fetch)
3277 (uri (git-reference (url home-page) (commit version)))
3278 (file-name (git-file-name name version))
3279 (sha256
3280 (base32
3281 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3282 (build-system meson-build-system)
3283 (native-inputs
3284 `(("gtk-doc" ,gtk-doc)
3285 ,@(package-native-inputs vte)))
3286 (arguments
3287 `(#:configure-flags '("-Ddocs=true")))
3288 (synopsis "Enhanced VTE terminal widget")
3289 (description
3290 "VTE is a library (libvte) implementing a terminal emulator widget for
3291 GTK+, this fork provides additional functions exposed for keyboard text
3292 selection and URL hints.")))
3293
3294 ;; provides vte 2.90, required for some terminal emulators
3295 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3296 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3297 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3298 ;; pantheon-terminal, roxterm are not currently packaged
3299 (define-public vte-0.36
3300 (package (inherit vte)
3301 (name "vte")
3302 (version "0.36.5")
3303 (source (origin
3304 (method url-fetch)
3305 (uri (string-append "mirror://gnome/sources/" name "/"
3306 (version-major+minor version) "/"
3307 name "-" version ".tar.xz"))
3308 (sha256
3309 (base32
3310 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3311 (propagated-inputs
3312 `(("gtk" ,gtk+)
3313 ("ncurses" ,ncurses)))))
3314
3315 ;; stable version for gtk2, required by xfce4-terminal.
3316 (define-public vte/gtk+-2
3317 (package (inherit vte)
3318 (name "vte")
3319 (version "0.28.2")
3320 (source (origin
3321 (method url-fetch)
3322 (uri (string-append "mirror://gnome/sources/" name "/"
3323 (version-major+minor version) "/"
3324 name "-" version ".tar.xz"))
3325 (sha256
3326 (base32
3327 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3328 (patches (search-patches
3329 "vte-CVE-2012-2738-pt1.patch"
3330 "vte-CVE-2012-2738-pt2.patch"))))
3331 (build-system gnu-build-system)
3332 (arguments
3333 '(#:configure-flags '("--disable-python")))
3334 (native-inputs
3335 `(("pkg-config" ,pkg-config)
3336 ("intltool" ,intltool)
3337 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3338 (propagated-inputs
3339 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3340 ("ncurses" ,ncurses))))) ; required by libvte.la
3341
3342 (define-public vinagre
3343 (package
3344 (name "vinagre")
3345 (version "3.22.0")
3346 (source (origin
3347 (method url-fetch)
3348 (uri (string-append "mirror://gnome/sources/" name "/"
3349 (version-major+minor version) "/"
3350 name "-" version ".tar.xz"))
3351 (patches (search-patches "vinagre-newer-freerdp.patch"
3352 "vinagre-newer-rdp-parameters.patch"))
3353 (sha256
3354 (base32
3355 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3356 (build-system glib-or-gtk-build-system)
3357 (arguments
3358 ;; Disable -Werror and such, to avoid build failures on compilation
3359 ;; warnings.
3360 '(#:configure-flags '("--enable-compile-warnings=minimum")
3361 #:phases
3362 (modify-phases %standard-phases
3363 (add-before 'install 'skip-gtk-update-icon-cache
3364 (lambda _
3365 ;; Don't create 'icon-theme.cache'
3366 (substitute* (find-files "." "^Makefile$")
3367 (("gtk-update-icon-cache") (which "true")))
3368 #t))
3369 (add-after 'unpack 'patch-configure
3370 (lambda _
3371 (substitute* "configure"
3372 (("freerdp") "freerdp2"))
3373 #t)))))
3374 (native-inputs
3375 `(("pkg-config" ,pkg-config)
3376 ("intltool" ,intltool)
3377 ("itstool" ,itstool)
3378 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3379 (inputs
3380 `(("libxml2" ,libxml2)
3381 ("gtk-vnc" ,gtk-vnc)
3382 ("gnome-keyring" ,gnome-keyring)
3383 ("libsecret" ,libsecret)
3384 ("freerdp" ,freerdp)
3385 ("spice" ,spice)
3386 ("spice-gtk" ,spice-gtk)
3387 ("telepathy-glib" ,telepathy-glib)
3388 ("vte" ,vte)))
3389 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3390 (synopsis "Remote desktop viewer for GNOME")
3391 (description "Vinagre is a remote display client supporting the VNC, SPICE
3392 and RDP protocols.")
3393 (license license:gpl3+)))
3394
3395 (define-public dconf
3396 (package
3397 (name "dconf")
3398 (version "0.34.0")
3399 (source (origin
3400 (method url-fetch)
3401 (uri (string-append
3402 "mirror://gnome/sources/" name "/"
3403 (version-major+minor version) "/"
3404 name "-" version ".tar.xz"))
3405 (patches (search-patches "dconf-meson-0.52.patch"))
3406 (sha256
3407 (base32
3408 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
3409 (build-system meson-build-system)
3410 (propagated-inputs
3411 ;; In Requires of dconf.pc.
3412 `(("glib" ,glib)))
3413 (inputs
3414 `(("gtk+" ,gtk+)
3415 ("dbus" ,dbus)))
3416 (native-inputs
3417 `(("bash-completion" ,bash-completion)
3418 ("libxslt" ,libxslt) ;for xsltproc
3419 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3420 ("docbook-xml" ,docbook-xml-4.2)
3421 ("docbook-xsl" ,docbook-xsl)
3422 ("glib:bin" ,glib "bin")
3423 ("gtk-doc" ,gtk-doc)
3424 ("pkg-config" ,pkg-config)
3425 ("vala" ,vala)))
3426 (arguments
3427 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3428 ; or /etc/machine-id.
3429 #:glib-or-gtk? #t
3430 #:configure-flags '("-Denable-gtk-doc=true")))
3431 (home-page "https://developer.gnome.org/dconf")
3432 (synopsis "Low-level GNOME configuration system")
3433 (description "Dconf is a low-level configuration system. Its main purpose
3434 is to provide a backend to GSettings on platforms that don't already have
3435 configuration storage systems.")
3436 (license license:lgpl2.1+)))
3437
3438 (define-public json-glib
3439 (package
3440 (name "json-glib")
3441 (version "1.4.4")
3442 (source (origin
3443 (method url-fetch)
3444 (uri (string-append "mirror://gnome/sources/" name "/"
3445 (version-major+minor version) "/"
3446 name "-" version ".tar.xz"))
3447 (sha256
3448 (base32
3449 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3450 (build-system meson-build-system)
3451 (native-inputs
3452 `(("gettext" ,gettext-minimal)
3453 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3454 ("gobject-introspection" ,gobject-introspection)
3455 ("pkg-config" ,pkg-config)))
3456 (propagated-inputs
3457 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3458 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3459 (synopsis "Compiler for the GObject type system")
3460 (description
3461 "JSON-GLib is a C library based on GLib providing serialization and
3462 deserialization support for the JavaScript Object Notation (JSON) format
3463 described by RFC 4627. It provides parser and generator GObject classes and
3464 various wrappers for the complex data types employed by JSON, such as arrays
3465 and objects.")
3466 (license license:lgpl2.1+)))
3467
3468 (define-public libxklavier
3469 (package
3470 (name "libxklavier")
3471 (version "5.4")
3472 (source (origin
3473 ;; Note: There's no tarball at ftp.gnome.org for this version.
3474 (method git-fetch)
3475 (uri (git-reference
3476 (url "https://anongit.freedesktop.org/git/libxklavier")
3477 (commit (string-append "libxklavier-" version))))
3478 (sha256
3479 (base32
3480 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3481 (file-name (git-file-name name version))))
3482 (build-system gnu-build-system)
3483 (arguments
3484 '(#:configure-flags
3485 (list (string-append "--with-xkb-base="
3486 (assoc-ref %build-inputs "xkeyboard-config")
3487 "/share/X11/xkb")
3488 "--disable-xmodmap-support")))
3489 (native-inputs
3490 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3491 ("gobject-introspection" ,gobject-introspection)
3492 ("pkg-config" ,pkg-config)
3493 ("gtk-doc" ,gtk-doc)
3494 ("intltool" ,intltool)
3495 ("which" ,which)
3496 ("autoconf" ,autoconf)
3497 ("automake" ,automake)
3498 ("libtool" ,libtool)))
3499 (propagated-inputs
3500 ;; Required by libxklavier.pc.
3501 `(("glib" ,glib)
3502 ("libxml2" ,libxml2)))
3503 (inputs
3504 `(("iso-codes" ,iso-codes)
3505 ("libxi" ,libxi)
3506 ("libxkbfile" ,libxkbfile)
3507 ("xkbcomp" ,xkbcomp)
3508 ("xkeyboard-config" ,xkeyboard-config)))
3509 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3510 (synopsis "High-level API for X Keyboard Extension")
3511 (description
3512 "LibXklavier is a library providing high-level API for X Keyboard
3513 Extension known as XKB. This library is intended to support XFree86 and other
3514 commercial X servers. It is useful for creating XKB-related software (layout
3515 indicators etc).")
3516 (license license:lgpl2.0+)))
3517
3518 (define-public python2-rsvg
3519 ;; XXX: This is actually a subset of gnome-python-desktop.
3520 (package
3521 (name "python2-rsvg")
3522 (version "2.32.0")
3523 (source
3524 (origin
3525 (method url-fetch)
3526 (uri (string-append
3527 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3528 version ".tar.bz2"))
3529 (sha256
3530 (base32
3531 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3532 (build-system gnu-build-system)
3533 (native-inputs
3534 `(("pkg-config" ,pkg-config)))
3535 (inputs
3536 `(("python" ,python-2)
3537 ("python2-pygtk" ,python2-pygtk)
3538 ("librsvg" ,librsvg)))
3539 (home-page "https://www.gnome.org")
3540 (synopsis "Python bindings to librsvg")
3541 (description
3542 "This package provides Python bindings to librsvg, the SVG rendering
3543 library.")
3544
3545 ;; This is the license of the rsvg bindings. The license of each module
3546 ;; of gnome-python-desktop is given in 'COPYING'.
3547 (license license:lgpl2.1+)))
3548
3549 (define-public glib-networking
3550 (package
3551 (name "glib-networking")
3552 (version "2.62.2")
3553 (source (origin
3554 (method url-fetch)
3555 (uri (string-append "mirror://gnome/sources/glib-networking/"
3556 (version-major+minor version) "/"
3557 "glib-networking-" version ".tar.xz"))
3558 (sha256
3559 (base32
3560 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
3561 (build-system meson-build-system)
3562 (arguments
3563 `(#:configure-flags '("-Dlibproxy_support=false")))
3564 (native-inputs
3565 `(("pkg-config" ,pkg-config)
3566 ("intltool" ,intltool)))
3567 (inputs
3568 `(("glib" ,glib)
3569 ("gnutls" ,gnutls)
3570 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3571 (home-page "https://www.gnome.org")
3572 (synopsis "Network-related GIO modules")
3573 (description
3574 "This package contains various network related extensions for the GIO
3575 library.")
3576 (license license:lgpl2.0+)))
3577
3578 (define-public rest
3579 (package
3580 (name "rest")
3581 (version "0.8.1")
3582 (source (origin
3583 (method url-fetch)
3584 (uri (string-append "mirror://gnome/sources/rest/"
3585 (version-major+minor version) "/"
3586 name "-" version ".tar.xz"))
3587 (sha256
3588 (base32
3589 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3590 (build-system gnu-build-system)
3591 (arguments
3592 '(#:tests? #f ; tests require internet connection
3593 #:configure-flags
3594 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3595 (native-inputs
3596 `(("glib-mkenums" ,glib "bin")
3597 ("gobject-introspection" ,gobject-introspection)
3598 ("pkg-config" ,pkg-config)))
3599 (propagated-inputs
3600 ;; rest-0.7.pc refers to all these.
3601 `(("glib" ,glib)
3602 ("libsoup" ,libsoup)
3603 ("libxml2" ,libxml2)))
3604 (home-page "https://www.gtk.org/")
3605 (synopsis "RESTful web api query library")
3606 (description
3607 "This library was designed to make it easier to access web services that
3608 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3609 libxml to ease remote use of the RESTful API.")
3610 (license license:lgpl2.1+)))
3611
3612 (define-public libsoup
3613 (package
3614 (name "libsoup")
3615 (version "2.70.0")
3616 (source (origin
3617 (method url-fetch)
3618 (uri (string-append "mirror://gnome/sources/libsoup/"
3619 (version-major+minor version) "/"
3620 "libsoup-" version ".tar.xz"))
3621 (sha256
3622 (base32
3623 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
3624 (build-system meson-build-system)
3625 (outputs '("out" "doc"))
3626 (arguments
3627 `(#:modules ((guix build utils)
3628 (guix build meson-build-system)
3629 (ice-9 popen))
3630
3631 #:configure-flags '("-Dgtk_doc=true")
3632 #:phases
3633 (modify-phases %standard-phases
3634 (add-after 'unpack 'adjust-tests
3635 (lambda _
3636 ;; This test fails due to missing /etc/nsswitch.conf
3637 ;; in the build environment.
3638 (substitute* "tests/socket-test.c"
3639 ((".*/sockets/unconnected.*") ""))
3640
3641 ;; These fail because "subdomain.localhost" does not resolve in
3642 ;; the build environment.
3643 (substitute* "tests/hsts-test.c"
3644 ((".*/hsts/basic.*") "")
3645 ((".*/hsts/subdomains.*") "")
3646 ((".*/hsts/superdomain.*") "")
3647 ((".*/hsts/utf8-address.*") ""))
3648 (substitute* "tests/hsts-db-test.c"
3649 ((".*/hsts-db/subdomains.*") ""))
3650
3651 ;; Generate a self-signed certificate that has "localhost" as its
3652 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3653 ;; 3.5.12, tests such as "ssl-tests" fail:
3654 ;;
3655 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3656 ;;
3657 ;; 'certtool' is interactive so we have to pipe it the answers.
3658 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3659 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3660 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3661 (for-each (lambda (line)
3662 (display line pipe)
3663 (newline pipe))
3664 '("" ;Common name
3665 "" ;UID
3666 "Guix" ;Organizational unit name
3667 "GNU" ;Organization name
3668 "" ;Locality name
3669 "" ;State or province
3670 "" ;Country
3671 "" ;subject's domain component (DC)
3672 "" ;E-mail
3673 "" ;serial number
3674 "-1" ;expiration time
3675 "N" ;belong to authority?
3676 "N" ;web client certificate?
3677 "N" ;IPsec IKE?
3678 "Y" ;web server certificate?
3679 "localhost" ;dnsName of subject
3680 "" ;dnsName of subject (end)
3681 "" ;URI of subject
3682 "127.0.0.1" ;IP address of subject
3683 "" ;signing?
3684 "" ;encryption (RSA)?
3685 "" ;data encryption?
3686 "" ;sign OCSP requests?
3687 "" ;sign code?
3688 "" ;time stamping?
3689 "" ;email protection?
3690 "" ;URI of the CRL distribution point
3691 "y" ;above info OK?
3692 ))
3693 (close-pipe pipe))
3694 #t))
3695 (add-after 'install 'move-doc
3696 (lambda* (#:key outputs #:allow-other-keys)
3697 (let ((out (assoc-ref outputs "out"))
3698 (doc (assoc-ref outputs "doc")))
3699 (mkdir-p (string-append doc "/share"))
3700 (copy-recursively (string-append out "/share/gtk-doc")
3701 (string-append doc "/share/gtk-doc"))
3702 (delete-file-recursively (string-append out "/share/gtk-doc"))
3703 #t))))))
3704 (native-inputs
3705 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3706 ("gobject-introspection" ,gobject-introspection)
3707 ("gtk-doc" ,gtk-doc)
3708 ("intltool" ,intltool)
3709 ("pkg-config" ,pkg-config)
3710 ("python" ,python-wrapper)
3711 ("vala" ,vala)
3712 ;; These are needed for the tests.
3713 ;; FIXME: Add PHP once available.
3714 ("curl" ,curl)
3715 ("gnutls" ,gnutls) ;for 'certtool'
3716 ("httpd" ,httpd)))
3717 (propagated-inputs
3718 ;; libsoup-2.4.pc refers to all these.
3719 `(("brotli" ,google-brotli)
3720 ("glib" ,glib)
3721 ("libpsl" ,libpsl)
3722 ("libxml2" ,libxml2)
3723 ("sqlite" ,sqlite)
3724 ("zlib" ,zlib)))
3725 (inputs
3726 `(("glib-networking" ,glib-networking)
3727 ("mit-krb5" ,mit-krb5)))
3728 (home-page "https://live.gnome.org/LibSoup/")
3729 (synopsis "GLib-based HTTP Library")
3730 (description
3731 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3732 and the GLib main loop, to integrate well with GNOME applications.")
3733 (license license:lgpl2.0+)))
3734
3735 (define-public libsecret
3736 (package
3737 (name "libsecret")
3738 (version "0.20.3")
3739 (source (origin
3740 (method url-fetch)
3741 (uri (string-append
3742 "mirror://gnome/sources/libsecret/"
3743 (version-major+minor version) "/"
3744 "libsecret-" version ".tar.xz"))
3745 (sha256
3746 (base32
3747 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
3748 (build-system gnu-build-system)
3749 (outputs '("out" "doc"))
3750 (arguments
3751 `(#:tests? #f ; FIXME: Testing hangs.
3752 #:configure-flags
3753 (list (string-append "--with-html-dir="
3754 (assoc-ref %outputs "doc")
3755 "/share/gtk-doc/html"))))
3756 (native-inputs
3757 `(("gettext" ,gettext-minimal)
3758 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3759 ("gobject-introspection" ,gobject-introspection)
3760 ("pkg-config" ,pkg-config)
3761 ("vala" ,vala)
3762 ("xsltproc" ,libxslt)))
3763 ;; These are needed for the tests.
3764 ;; FIXME: Add gjs once available.
3765 ;("dbus" ,dbus)
3766 ;("python2" ,python-2)
3767 ;("python2-dbus" ,python2-dbus)
3768 ;("python2-pygobject" ,python2-pygobject)
3769 ;("python2-pygobject-2" ,python2-pygobject-2)))
3770 (propagated-inputs
3771 `(("glib" ,glib))) ; required by libsecret-1.pc
3772 (inputs
3773 `(("docbook-xsl" ,docbook-xsl)
3774 ("libgcrypt" ,libgcrypt)
3775 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3776 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3777 (synopsis "GObject bindings for \"Secret Service\" API")
3778 (description
3779 "Libsecret is a GObject based library for storing and retrieving passwords
3780 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3781 (license license:lgpl2.1+)))
3782
3783 (define-public five-or-more
3784 (package
3785 (name "five-or-more")
3786 (version "3.32.2")
3787 (source
3788 (origin
3789 (method url-fetch)
3790 (uri (string-append "mirror://gnome/sources/five-or-more/"
3791 (version-major+minor version) "/"
3792 "five-or-more-" version ".tar.xz"))
3793 (sha256
3794 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
3795 (build-system meson-build-system)
3796 (arguments
3797 '(#:glib-or-gtk? #t
3798 #:phases
3799 (modify-phases %standard-phases
3800 (add-after 'unpack 'skip-gtk-update-icon-cache
3801 (lambda _
3802 (substitute* "meson_post_install.py"
3803 (("gtk-update-icon-cache") (which "true")))
3804 #t)))))
3805 (native-inputs
3806 `(("pkg-config" ,pkg-config)
3807 ("appstream-glib" ,appstream-glib)
3808 ("desktop-file-utils" ,desktop-file-utils)
3809 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3810 ("intltool" ,intltool)
3811 ("itstool" ,itstool)
3812 ("vala" ,vala)
3813 ("xmllint" ,libxml2)))
3814 (inputs
3815 `(("gtk+" ,gtk+)
3816 ("libgnome-games-support" ,libgnome-games-support)
3817 ("librsvg" ,librsvg)))
3818 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3819 (synopsis "Logic puzzle game")
3820 (description "Five or More is a game where you try to align
3821 five or more objects of the same color and shape causing them to disappear.
3822 On every turn more objects will appear, until the board is full.
3823 Try to last as long as possible.")
3824 (license license:gpl2+)))
3825
3826 (define-public gnome-mines
3827 (package
3828 (name "gnome-mines")
3829 (version "3.34.0")
3830 (source
3831 (origin
3832 (method url-fetch)
3833 (uri (string-append "mirror://gnome/sources/" name "/"
3834 (version-major+minor version) "/"
3835 name "-" version ".tar.xz"))
3836 (sha256
3837 (base32
3838 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
3839 (build-system meson-build-system)
3840 (arguments
3841 '(#:glib-or-gtk? #t
3842 #:phases
3843 (modify-phases %standard-phases
3844 (add-after 'unpack 'skip-gtk-update-icon-cache
3845 (lambda _
3846 (substitute* "build-aux/meson_post_install.py"
3847 (("gtk-update-icon-cache") (which "true")))
3848 #t)))))
3849 (native-inputs
3850 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3851 ("pkg-config" ,pkg-config)
3852 ("desktop-file-utils" ,desktop-file-utils)
3853 ("intltool" ,intltool)
3854 ("itstool" ,itstool)
3855 ("vala" ,vala)
3856 ("yelp" ,yelp)
3857 ("appstream-glib" ,appstream-glib)))
3858 (inputs
3859 `(("gtk+" ,gtk+)
3860 ("libgnome-games-support" ,libgnome-games-support)
3861 ("librsvg" ,librsvg)))
3862 (home-page "https://wiki.gnome.org/Apps/Mines")
3863 (synopsis "Minesweeper game")
3864 (description
3865 "Mines (previously gnomine) is a puzzle game where you locate mines
3866 floating in an ocean using only your brain and a little bit of luck.")
3867 (license license:gpl2+)))
3868
3869 (define-public gnome-sudoku
3870 (package
3871 (name "gnome-sudoku")
3872 (version "3.34.1")
3873 (source
3874 (origin
3875 (method url-fetch)
3876 (uri (string-append "mirror://gnome/sources/" name "/"
3877 (version-major+minor version) "/"
3878 name "-" version ".tar.xz"))
3879 (sha256
3880 (base32
3881 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
3882 (build-system meson-build-system)
3883 (arguments
3884 '(#:glib-or-gtk? #t
3885 #:phases
3886 (modify-phases %standard-phases
3887 (add-after 'unpack 'skip-gtk-update-icon-cache
3888 (lambda _
3889 (substitute* "build-aux/post_install.py"
3890 (("gtk-update-icon-cache") (which "true")))
3891 #t)))))
3892 (native-inputs
3893 `(("pkg-config" ,pkg-config)
3894 ("desktop-file-utils" ,desktop-file-utils)
3895 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3896 ("intltool" ,intltool)
3897 ("itstool" ,itstool)
3898 ("vala" ,vala)
3899 ("xmllint" ,libxml2)))
3900 (inputs
3901 `(("gtk+" ,gtk+)
3902 ("json-glib" ,json-glib)
3903 ("libgee" ,libgee)
3904 ("librsvg" ,librsvg)
3905 ("qqwing" ,qqwing)))
3906 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3907 (synopsis "Japanese logic game")
3908 (description
3909 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3910 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3911 possible while still providing features that make playing difficult Sudoku
3912 more fun.")
3913 (license license:gpl2+)))
3914
3915 (define-public gnome-terminal
3916 (package
3917 (name "gnome-terminal")
3918 (version "3.34.2")
3919 (source
3920 (origin
3921 (method url-fetch)
3922 (uri (string-append "mirror://gnome/sources/" name "/"
3923 (version-major+minor version) "/"
3924 name "-" version ".tar.xz"))
3925 (sha256
3926 (base32
3927 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
3928 (build-system glib-or-gtk-build-system)
3929 (arguments
3930 '(#:configure-flags
3931 (list "--disable-migration" "--disable-search-provider"
3932 "--without-nautilus-extension")
3933 #:phases
3934 (modify-phases %standard-phases
3935 (add-before 'configure 'patch-/bin/true
3936 (lambda _
3937 (substitute* "configure"
3938 (("/bin/true") (which "true"))))))))
3939 (native-inputs
3940 `(("pkg-config" ,pkg-config)
3941 ("desktop-file-utils" ,desktop-file-utils)
3942 ("intltool" ,intltool)
3943 ("itstool" ,itstool)
3944 ("xmllint" ,libxml2)))
3945 (propagated-inputs
3946 `(("dconf" ,dconf)))
3947 (inputs
3948 `(("gtk+" ,gtk+)
3949 ("vte" ,vte)
3950 ("gnutls" ,gnutls)
3951 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3952 ("util-linux" ,util-linux "lib")
3953 ("vala" ,vala)))
3954 (home-page "https://wiki.gnome.org/Apps/Terminal")
3955 (synopsis "Terminal emulator")
3956 (description
3957 "GNOME Terminal is a terminal emulator application for accessing a
3958 UNIX shell environment which can be used to run programs available on
3959 your system.
3960
3961 It supports several profiles, multiple tabs and implements several
3962 keyboard shortcuts.")
3963 (license license:gpl3+)))
3964
3965 (define-public colord
3966 (package
3967 (name "colord")
3968 (version "1.4.4")
3969 (source
3970 (origin
3971 (method url-fetch)
3972 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
3973 "colord-" version ".tar.xz"))
3974 (sha256
3975 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
3976 (build-system meson-build-system)
3977 (arguments
3978 '(;; FIXME: One test fails:
3979 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3980 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3981 ;; application/x-zerosize
3982 #:tests? #f
3983 #:glib-or-gtk? #t
3984 #:configure-flags (list "-Dlocalstatedir=/var"
3985 ;; No dep on systemd.
3986 "-Dsystemd=false"
3987 ;; Wants to install to global completion dir;
3988 ;; punt.
3989 "-Dbash_completion=false"
3990 "-Ddaemon_user=colord"
3991 "-Dsane=true"
3992 "-Dvapi=true"
3993 ;; Requires spotread.
3994 "-Dargyllcms_sensor=false"
3995 ;; TODO: Requires docbook2x.
3996 "-Dman=false")
3997 #:phases
3998 (modify-phases %standard-phases
3999 (add-before 'configure 'patch-build-system
4000 (lambda* (#:key outputs #:allow-other-keys)
4001 (substitute* "rules/meson.build"
4002 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4003 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4004 #t))
4005 (add-before 'configure 'set-sqlite3-file-name
4006 (lambda* (#:key inputs #:allow-other-keys)
4007 ;; "colormgr dump" works by invoking the "sqlite3" command.
4008 ;; Record its absolute file name.
4009 (let ((sqlite (assoc-ref inputs "sqlite")))
4010 (substitute* "client/cd-util.c"
4011 (("\"sqlite3\"")
4012 (string-append "\"" sqlite "/bin/sqlite3\"")))
4013 #t))))))
4014 (native-inputs
4015 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4016 ("gettext" ,gettext-minimal)
4017 ("gobject-introspection" ,gobject-introspection)
4018 ("gtk-doc" ,gtk-doc)
4019 ("pkg-config" ,pkg-config)
4020 ("vala" ,vala)))
4021 (propagated-inputs
4022 ;; colord.pc refers to all these.
4023 `(("glib" ,glib)
4024 ("lcms" ,lcms)
4025 ("udev" ,eudev)))
4026 (inputs
4027 `(("dbus-glib" ,dbus-glib)
4028 ("gusb" ,gusb)
4029 ("libgudev" ,libgudev)
4030 ("libusb" ,libusb)
4031 ("polkit" ,polkit)
4032 ("python" ,python-wrapper)
4033 ("sqlite" ,sqlite)
4034 ("sane-backends" ,sane-backends)))
4035 (home-page "https://www.freedesktop.org/software/colord/")
4036 (synopsis "Color management service")
4037 (description "Colord is a system service that makes it easy to manage,
4038 install and generate color profiles to accurately color manage input and
4039 output devices.")
4040 (license license:gpl2+)))
4041
4042 (define-public geoclue
4043 (package
4044 (name "geoclue")
4045 (version "2.5.5")
4046 (source
4047 (origin
4048 (method url-fetch)
4049 (uri
4050 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4051 version "/geoclue-" version ".tar.bz2"))
4052 (sha256
4053 (base32
4054 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
4055 (patches (search-patches "geoclue-config.patch"))))
4056 (build-system meson-build-system)
4057 (arguments
4058 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4059 (native-inputs
4060 `(("pkg-config" ,pkg-config)
4061 ("gobject-introspection" ,gobject-introspection)
4062 ("modem-manager" ,modem-manager)
4063 ("libnotify" ,libnotify)
4064 ("gtk-doc", gtk-doc)
4065 ("intltool" ,intltool)))
4066 (inputs
4067 `(("avahi" ,avahi)
4068 ("glib:bin" ,glib "bin")
4069 ("glib-networking" ,glib-networking)
4070 ("json-glib" ,json-glib)
4071 ("libsoup" ,libsoup)))
4072 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4073 (synopsis "Geolocation service")
4074 (description "Geoclue is a D-Bus service that provides location
4075 information. The primary goal of the Geoclue project is to make creating
4076 location-aware applications as simple as possible, while the secondary goal is
4077 to ensure that no application can access location information without explicit
4078 permission from user.")
4079 (license license:gpl2+)))
4080
4081 (define-public geocode-glib
4082 (package
4083 (name "geocode-glib")
4084 (version "3.26.1")
4085 (source (origin
4086 (method url-fetch)
4087 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4088 (version-major+minor version) "/"
4089 "geocode-glib-" version ".tar.xz"))
4090 (sha256
4091 (base32
4092 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4093 (build-system meson-build-system)
4094 (arguments
4095 `(#:phases
4096 (modify-phases %standard-phases
4097 ;; The tests require a bunch of locales.
4098 (add-before 'check 'set-locales
4099 (lambda* (#:key inputs #:allow-other-keys)
4100 (setenv "GUIX_LOCPATH"
4101 (string-append (assoc-ref inputs "glibc-locales")
4102 "/lib/locale"))
4103 #t)))))
4104 (native-inputs
4105 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4106 ("glibc-locales" ,glibc-locales) ; for tests
4107 ("gettext" ,gettext-minimal)
4108 ("gobject-introspection" ,gobject-introspection)
4109 ("gtk-doc" ,gtk-doc)
4110 ("pkg-config" ,pkg-config)
4111 ("json-glib" ,json-glib)))
4112 (propagated-inputs
4113 ;; geocode-glib-1.0.pc refers to GIO.
4114 `(("glib" ,glib)))
4115 (inputs
4116 `(("libsoup" ,libsoup)))
4117 (home-page "https://github.com/GNOME/geocode-glib/")
4118 (synopsis "Geocoding and reverse-geocoding library")
4119 (description
4120 "geocode-glib is a convenience library for geocoding (finding longitude,
4121 and latitude from an address) and reverse geocoding (finding an address from
4122 coordinates) using the Nominatim service. geocode-glib caches requests for
4123 faster results and to avoid unnecessary server load.")
4124 (license license:lgpl2.0+)))
4125
4126 (define-public upower
4127 (package
4128 (name "upower")
4129 (version "0.99.11")
4130 (source (origin
4131 (method url-fetch)
4132 (uri (string-append "https://upower.freedesktop.org/releases/"
4133 "upower-" version ".tar.xz"))
4134 (sha256
4135 (base32
4136 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4137 (patches (search-patches "upower-builddir.patch"))
4138 (modules '((guix build utils)))
4139 (snippet
4140 '(begin
4141 ;; Upstream commit
4142 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4143 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4144 ;; 'dbus-configuration-directory' in (gnu services dbus)
4145 ;; expects it in etc/. Thus, move it back to its previous
4146 ;; location.
4147 (substitute* "src/Makefile.in"
4148 (("^dbusconfdir =.*$")
4149 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4150 #t))))
4151 (build-system glib-or-gtk-build-system)
4152 (arguments
4153 '( ;; The tests want to contact the system bus, which can't be done in the
4154 ;; build environment. The integration test can run, but the last of
4155 ;; the up-self-tests doesn't. Disable tests for now.
4156 #:tests? #f
4157 #:configure-flags (list "--localstatedir=/var"
4158 (string-append "--with-udevrulesdir="
4159 (assoc-ref %outputs "out")
4160 "/lib/udev/rules.d"))))
4161 (native-inputs
4162 `(("gobject-introspection" ,gobject-introspection)
4163 ("pkg-config" ,pkg-config)
4164 ("intltool" ,intltool)
4165 ("python" ,python)
4166
4167 ;; For man pages.
4168 ("libxslt" ,libxslt) ;for 'xsltproc'
4169 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4170 ("docbook-xsl" ,docbook-xsl)))
4171 (inputs
4172 `(("dbus-glib" ,dbus-glib)
4173 ("libgudev" ,libgudev)
4174 ("libusb" ,libusb)))
4175 (propagated-inputs
4176 ;; In Requires of upower-glib.pc.
4177 `(("glib" ,glib)))
4178 (home-page "https://upower.freedesktop.org/")
4179 (synopsis "System daemon for managing power devices")
4180 (description
4181 "UPower is an abstraction for enumerating power devices,
4182 listening to device events and querying history and statistics. Any
4183 application or service on the system can access the org.freedesktop.UPower
4184 service via the system message bus.")
4185 (license license:gpl2+)))
4186
4187 (define-public libgweather
4188 (package
4189 (name "libgweather")
4190 (version "3.34.0")
4191 (source (origin
4192 (method url-fetch)
4193 (uri (string-append "mirror://gnome/sources/" name "/"
4194 (version-major+minor version) "/"
4195 name "-" version ".tar.xz"))
4196 (sha256
4197 (base32
4198 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
4199 (build-system meson-build-system)
4200 (arguments
4201 `(#:tests? #f ; one of two tests requires network access
4202 #:configure-flags
4203 `(,(string-append "-Dzoneinfo_dir="
4204 (assoc-ref %build-inputs "tzdata")
4205 "/share/zoneinfo"))))
4206 (native-inputs
4207 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4208 ("gobject-introspection" ,gobject-introspection)
4209 ("pkg-config" ,pkg-config)
4210 ("vala" ,vala)
4211 ("intltool" ,intltool)))
4212 (propagated-inputs
4213 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4214 ;; libsoup.
4215 `(("gtk+" ,gtk+)
4216 ("gdk-pixbuf" ,gdk-pixbuf)
4217 ("libxml2" ,libxml2)
4218 ("libsoup" ,libsoup)
4219 ("geocode-glib" ,geocode-glib)))
4220 (inputs
4221 `(("tzdata" ,tzdata)))
4222 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4223 (synopsis "Location, time zone, and weather library for GNOME")
4224 (description
4225 "libgweather is a library to access weather information from online
4226 services for numerous locations.")
4227 (license license:gpl2+)))
4228
4229 (define-public gnome-settings-daemon
4230 (package
4231 (name "gnome-settings-daemon")
4232 (version "3.34.1")
4233 (source
4234 (origin
4235 (method url-fetch)
4236 (uri (string-append "mirror://gnome/sources/" name "/"
4237 (version-major+minor version) "/"
4238 name "-" version ".tar.xz"))
4239 (sha256
4240 (base32
4241 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
4242 (build-system meson-build-system)
4243 (arguments
4244 `(#:glib-or-gtk? #t
4245 #:configure-flags
4246 (list (string-append "-Dudev_dir="
4247 (assoc-ref %outputs "out")
4248 "/lib/udev/rules.d/")
4249 "-Dsystemd=false"
4250 ;; Otherwise, the RUNPATH will lack the final path component.
4251 (string-append "-Dc_link_args=-Wl,-rpath="
4252 (assoc-ref %outputs "out")
4253 "/lib/gnome-settings-daemon-3.0"))
4254 ;; Color management test can't reach the colord system service.
4255 #:tests? #f))
4256 (native-inputs
4257 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4258 ("pkg-config" ,pkg-config)
4259 ("intltool" ,intltool)
4260 ("xsltproc" ,libxslt)
4261 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4262 ("docbook-xml" ,docbook-xml-4.2)
4263 ("docbook-xsl" ,docbook-xsl)))
4264 (inputs
4265 `(("alsa-lib" ,alsa-lib)
4266 ("colord" ,colord)
4267 ("libgudev" ,libgudev)
4268 ("upower" ,upower)
4269 ("polkit" ,polkit)
4270 ("pulseaudio" ,pulseaudio)
4271 ("libcanberra" ,libcanberra)
4272 ("libx11" ,libx11)
4273 ("libxtst" ,libxtst)
4274 ("lcms" ,lcms)
4275 ("libnotify" ,libnotify)
4276 ("geoclue" ,geoclue)
4277 ("geocode-glib" ,geocode-glib)
4278 ("libgweather" ,libgweather)
4279 ("gnome-desktop" ,gnome-desktop)
4280 ("nss" ,nss)
4281 ("cups" ,cups)
4282 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4283 ("libwacom" ,libwacom)
4284 ("librsvg" ,librsvg)
4285 ("xf86-input-wacom" ,xf86-input-wacom)
4286 ("wayland" ,wayland)
4287 ("network-manager" ,network-manager)
4288 ("gcr" ,gcr)
4289 ("modem-manager" ,modem-manager)))
4290 (home-page "https://www.gnome.org")
4291 (synopsis "GNOME settings daemon")
4292 (description
4293 "This package contains the daemon responsible for setting the various
4294 parameters of a GNOME session and the applications that run under it. It
4295 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4296 settings, themes, mouse settings, and startup of other daemons.")
4297 (license license:gpl2+)))
4298
4299 (define-public totem-pl-parser
4300 (package
4301 (name "totem-pl-parser")
4302 (version "3.26.3")
4303 (source (origin
4304 (method url-fetch)
4305 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4306 (version-major+minor version) "/"
4307 "totem-pl-parser-" version ".tar.xz"))
4308 (sha256
4309 (base32
4310 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4311 (build-system meson-build-system)
4312 (arguments
4313 ;; FIXME: Tests require gvfs.
4314 `(#:tests? #f))
4315 (native-inputs
4316 `(("intltool" ,intltool)
4317 ("glib" ,glib "bin")
4318 ("gobject-introspection" ,gobject-introspection)
4319 ("pkg-config" ,pkg-config)))
4320 (propagated-inputs
4321 `(("glib" ,glib)
4322 ("gmime" ,gmime)
4323 ("libarchive" ,libarchive)
4324 ("libgcrypt" ,libgcrypt)
4325 ("libxml2" ,libxml2)))
4326 (inputs
4327 `(("libsoup" ,libsoup)))
4328 (home-page "https://projects.gnome.org/totem")
4329 (synopsis "Library to parse and save media playlists for GNOME")
4330 (description "Totem-pl-parser is a GObjects-based library to parse and save
4331 playlists in a variety of formats.")
4332 (license license:lgpl2.0+)))
4333
4334 (define-public aisleriot
4335 (package
4336 (name "aisleriot")
4337 (version "3.22.9")
4338 (source (origin
4339 (method url-fetch)
4340 (uri (string-append "mirror://gnome/sources/aisleriot/"
4341 (version-major+minor version) "/"
4342 "aisleriot-" version ".tar.xz"))
4343 (sha256
4344 (base32
4345 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4346 (build-system glib-or-gtk-build-system)
4347 (arguments
4348 '(#:configure-flags
4349 '("--with-platform=gtk-only"
4350 "--with-card-theme-formats=svg")))
4351 (native-inputs
4352 `(("desktop-file-utils" ,desktop-file-utils)
4353 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4354 ("intltool" ,intltool)
4355 ("itstool" ,itstool)
4356 ("pkg-config" ,pkg-config)
4357 ("xmllint" ,libxml2)))
4358 (inputs
4359 `(("gtk+" ,gtk+)
4360 ("guile" ,guile-2.2)
4361 ("libcanberra" ,libcanberra)
4362 ("librsvg" ,librsvg)))
4363 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4364 (synopsis "Solitaire card games")
4365 (description
4366 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4367 which are easy to play with the aid of a mouse.")
4368 (license license:gpl3+)))
4369
4370 (define-public amtk
4371 (package
4372 (name "amtk")
4373 (version "5.0.2")
4374 (source (origin
4375 (method url-fetch)
4376 (uri (string-append "mirror://gnome/sources/amtk/"
4377 (version-major+minor version) "/"
4378 "amtk-" version ".tar.xz"))
4379 (sha256
4380 (base32
4381 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
4382 (build-system gnu-build-system)
4383 (arguments
4384 '(#:configure-flags '("--enable-gtk-doc")))
4385 (native-inputs
4386 `(("gobject-introspection" ,gobject-introspection)
4387 ("glib:bin" ,glib "bin") ; for glib-mkenums
4388 ("gtk-doc" ,gtk-doc)
4389 ("pkg-config" ,pkg-config)))
4390 (inputs
4391 `(("glib" ,glib)
4392 ("gtk+" ,gtk+)))
4393 (home-page "https://wiki.gnome.org/Projects/Amtk")
4394 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4395 (description
4396 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4397 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4398 both a traditional UI or a modern UI with a GtkHeaderBar.")
4399 (license license:lgpl2.1+)))
4400
4401 (define-public devhelp
4402 (package
4403 (name "devhelp")
4404 (version "3.34.0")
4405 (source (origin
4406 (method url-fetch)
4407 (uri (string-append "mirror://gnome/sources/" name "/"
4408 (version-major+minor version) "/"
4409 name "-" version ".tar.xz"))
4410 (sha256
4411 (base32
4412 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
4413 (build-system meson-build-system)
4414 (arguments
4415 '(#:glib-or-gtk? #t
4416 #:phases
4417 (modify-phases %standard-phases
4418 (add-after 'unpack 'skip-gtk-update-icon-cache
4419 ;; Don't create 'icon-theme.cache'.
4420 (lambda _
4421 (substitute* "meson_post_install.py"
4422 (("gtk-update-icon-cache") "true"))
4423 #t)))))
4424 (native-inputs
4425 `(("intltool" ,intltool)
4426 ("itstool" ,itstool)
4427 ("gobject-introspection" ,gobject-introspection)
4428 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4429 ("pkg-config" ,pkg-config)))
4430 (inputs
4431 `(("amtk" ,amtk)
4432 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4433 ("webkitgtk" ,webkitgtk)))
4434 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4435 (synopsis "API documentation browser for GNOME")
4436 (description
4437 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4438 natively with GTK-Doc (the API reference system developed for GTK+ and used
4439 throughout GNOME for API documentation).")
4440 (license license:gpl2+)))
4441
4442 (define-public cogl
4443 (package
4444 (name "cogl")
4445 (version "1.22.6")
4446 (source
4447 (origin
4448 (method url-fetch)
4449 (uri (string-append "mirror://gnome/sources/cogl/"
4450 (version-major+minor version) "/"
4451 "cogl-" version ".tar.xz"))
4452 (sha256
4453 (base32 "0x8v4n61q89qy27v824bqswpz6bmn801403w2q3pa1lcwk9ln4vd"))))
4454 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4455 ;; cogl, corresponding changes may be appropriate in mutter as well.
4456 (build-system gnu-build-system)
4457 (native-inputs
4458 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4459 ("gobject-introspection" ,gobject-introspection)
4460 ("xorg-server" ,xorg-server-for-tests)
4461 ("pkg-config" ,pkg-config)))
4462 (propagated-inputs
4463 `(("glib" ,glib)
4464 ("gdk-pixbuf" ,gdk-pixbuf)
4465 ("libx11" ,libx11)
4466 ("libxext" ,libxext)
4467 ("libxfixes" ,libxfixes)
4468 ("libxdamage" ,libxdamage)
4469 ("libxcomposite" ,libxcomposite)
4470 ("libxrandr" ,libxrandr)))
4471 (inputs
4472 `(("mesa" ,mesa)
4473 ("cairo" ,cairo)
4474 ("pango" ,pango)
4475 ("gstreamer" ,gstreamer)
4476 ("gst-plugins-base" ,gst-plugins-base)
4477 ("wayland" ,wayland)))
4478 (arguments
4479 `(#:disallowed-references (,xorg-server-for-tests)
4480 #:configure-flags (list "--enable-cogl-gst"
4481 "--enable-wayland-egl-platform"
4482 "--enable-wayland-egl-server"
4483
4484 ;; Arrange to pass an absolute file name to
4485 ;; dlopen for libGL.so.
4486 (string-append "--with-gl-libname="
4487 (assoc-ref %build-inputs "mesa")
4488 "/lib/libGL.so"))
4489 #:phases
4490 (modify-phases %standard-phases
4491 (add-before 'check 'start-xorg-server
4492 (lambda* (#:key tests? inputs #:allow-other-keys)
4493 (if tests?
4494 (begin
4495 ;; The test suite requires a running X server.
4496 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4497 (assoc-ref inputs "xorg-server")))
4498 (setenv "DISPLAY" ":1")
4499 #t)
4500 (format #t "test suite not run~%"))
4501 #t)))))
4502 (home-page "https://www.cogl3d.org")
4503 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4504 (description
4505 "Cogl is a small library for using 3D graphics hardware to draw pretty
4506 pictures. The API departs from the flat state machine style of OpenGL and is
4507 designed to make it easy to write orthogonal components that can render
4508 without stepping on each others toes.")
4509 (license (list license:expat ; most of the code
4510 license:bsd-3 ; cogl/cogl-point-in-poly.c
4511 license:sgifreeb2.0 ; cogl-path/tesselator/
4512 license:asl2.0)))) ; examples/android/
4513
4514 (define-public clutter
4515 (package
4516 (name "clutter")
4517 (version "1.26.2")
4518 (source
4519 (origin
4520 (method url-fetch)
4521 (uri (string-append "mirror://gnome/sources/" name "/"
4522 (version-major+minor version) "/"
4523 name "-" version ".tar.xz"))
4524 (sha256
4525 (base32
4526 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4527 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4528 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4529 (build-system gnu-build-system)
4530 (outputs '("out"
4531 "doc")) ;9 MiB of gtk-doc HTML pages
4532 (native-inputs
4533 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4534 ("gobject-introspection" ,gobject-introspection)
4535 ("pkg-config" ,pkg-config)
4536 ("xsltproc" ,libxslt)))
4537 (propagated-inputs
4538 `(("cogl" ,cogl)
4539 ("cairo" ,cairo)
4540 ("atk" ,atk)
4541 ("gtk+" ,gtk+)
4542 ("json-glib" ,json-glib)
4543 ("glib" ,glib)
4544 ("libxcomposite" ,libxcomposite)
4545 ("libxdamage" ,libxdamage)
4546 ("libxext" ,libxext)
4547 ("xinput" ,xinput)))
4548 (inputs
4549 `(("libxkbcommon" ,libxkbcommon)
4550 ("udev" ,eudev)))
4551 (arguments
4552 `(#:configure-flags (list "--enable-x11-backend=yes"
4553
4554 ;; This produces share/doc/{clutter,cally}.
4555 (string-append "--with-html-dir="
4556 (assoc-ref %outputs "doc")
4557 "/share/doc"))
4558 ;; XXX FIXME: Get test suite working. It would probably fail in the
4559 ;; same way the cogl tests fail, since clutter is based on cogl.
4560 #:tests? #f))
4561 (home-page "http://www.clutter-project.org")
4562 (synopsis "OpenGL-based interactive canvas library")
4563 (description
4564 "Clutter is an OpenGL-based interactive canvas library, designed for
4565 creating fast, mainly 2D single window applications such as media box UIs,
4566 presentations, kiosk style applications and so on.")
4567 (license license:lgpl2.0+)))
4568
4569 (define-public clutter-gtk
4570 (package
4571 (name "clutter-gtk")
4572 (version "1.8.4")
4573 (source
4574 (origin
4575 (method url-fetch)
4576 (uri (string-append "mirror://gnome/sources/" name "/"
4577 (version-major+minor version) "/"
4578 name "-" version ".tar.xz"))
4579 (sha256
4580 (base32
4581 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4582 (build-system gnu-build-system)
4583 (native-inputs
4584 `(("pkg-config" ,pkg-config)
4585 ("gobject-introspection" ,gobject-introspection)))
4586 (propagated-inputs
4587 ;; clutter-gtk.pc refers to all these.
4588 `(("clutter" ,clutter)
4589 ("gtk+" ,gtk+)))
4590 (home-page "http://www.clutter-project.org")
4591 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4592 (description
4593 "Clutter is an OpenGL-based interactive canvas library, designed for
4594 creating fast, mainly 2D single window applications such as media box UIs,
4595 presentations, kiosk style applications and so on.")
4596 (license license:lgpl2.0+)))
4597
4598 (define-public clutter-gst
4599 (package
4600 (name "clutter-gst")
4601 (version "3.0.27")
4602 (source
4603 (origin
4604 (method url-fetch)
4605 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4606 (version-major+minor version) "/"
4607 "clutter-gst-" version ".tar.xz"))
4608 (sha256
4609 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4610 (build-system gnu-build-system)
4611 (native-inputs
4612 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4613 ("pkg-config" ,pkg-config)
4614 ("gobject-introspection" ,gobject-introspection)))
4615 (inputs
4616 `(("clutter" ,clutter)
4617 ("gstreamer" ,gstreamer)
4618 ("gst-plugins-base" ,gst-plugins-base)))
4619 (home-page "http://www.clutter-project.org")
4620 (synopsis "Integration library for using GStreamer with Clutter")
4621 (description
4622 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4623 It provides a GStreamer sink to upload frames to GL and an actor that
4624 implements the ClutterGstPlayer interface using playbin. Clutter is an
4625 OpenGL-based interactive canvas library.")
4626 (license license:lgpl2.0+)))
4627
4628 (define-public libchamplain
4629 (package
4630 (name "libchamplain")
4631 (version "0.12.16")
4632 (source (origin
4633 (method url-fetch)
4634 (uri (string-append
4635 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4636 version ".tar.xz"))
4637 (sha256
4638 (base32
4639 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4640 (build-system gnu-build-system)
4641 (arguments '(#:configure-flags '("--enable-vala")))
4642 (native-inputs
4643 `(("gobject-introspection" ,gobject-introspection)
4644 ("pkg-config" ,pkg-config)
4645 ("vala" ,vala)))
4646 (propagated-inputs
4647 `(("libsoup" ,libsoup)
4648 ("sqlite" ,sqlite)
4649 ("clutter" ,clutter)
4650 ("clutter-gtk" ,clutter-gtk)
4651 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4652 ("cairo" ,cairo)
4653 ("gtk+3" ,gtk+)
4654 ("glib" ,glib)))
4655 (home-page "https://projects.gnome.org/libchamplain/")
4656 (synopsis "C library providing a ClutterActor to display maps")
4657 (description
4658 "libchamplain is a C library providing a ClutterActor to display maps.
4659 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4660 and Perl bindings are also available. It supports numerous free map sources
4661 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4662 (license license:lgpl2.1+)))
4663
4664 (define-public gom
4665 (package
4666 (name "gom")
4667 (version "0.3.2")
4668 (source
4669 (origin
4670 (method url-fetch)
4671 (uri (string-append "mirror://gnome/sources/gom/"
4672 (version-major+minor version) "/"
4673 "gom-" version ".tar.xz"))
4674 (sha256
4675 (base32
4676 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4677 (build-system gnu-build-system)
4678 (native-inputs
4679 `(("intltool" ,intltool)
4680 ("pkg-config" ,pkg-config)
4681 ("gobject-introspection" ,gobject-introspection)))
4682 (inputs
4683 `(("glib" ,glib)
4684 ("gdk-pixbuf" ,gdk-pixbuf)
4685 ("sqlite" ,sqlite)))
4686 ;; XXX TODO: Figure out how to run the test suite.
4687 (arguments `(#:tests? #f))
4688 (home-page "https://wiki.gnome.org/Projects/Gom")
4689 (synopsis "Object mapper from GObjects to SQLite")
4690 (description
4691 "Gom provides an object mapper from GObjects to SQLite. It helps you
4692 write applications that need to store structured data as well as make complex
4693 queries upon that data.")
4694 (license license:lgpl2.1+)))
4695
4696 (define-public libgnome-games-support
4697 (package
4698 (name "libgnome-games-support")
4699 (version "1.4.4")
4700 (source (origin
4701 (method url-fetch)
4702 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4703 (version-major+minor version) "/"
4704 "libgnome-games-support-" version ".tar.xz"))
4705 (sha256
4706 (base32
4707 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4708 (build-system gnu-build-system)
4709 (arguments
4710 '(#:phases
4711 (modify-phases %standard-phases
4712 (add-before 'check 'pre-check
4713 (lambda _
4714 ;; Tests require a writable HOME.
4715 (setenv "HOME" (getcwd))
4716 #t)))))
4717 (native-inputs
4718 `(("intltool" ,intltool)
4719 ("pkg-config" ,pkg-config)
4720 ("vala" ,vala)))
4721 (propagated-inputs
4722 ;; Required by libgnome-games-support-1.0.pc
4723 `(("gtk+" ,gtk+)
4724 ("libgee" ,libgee)))
4725 (home-page "https://www.gnome.org/")
4726 (synopsis "Useful functionality shared among GNOME games")
4727 (description
4728 "libgnome-games-support is a small library intended for internal use by
4729 GNOME Games, but it may be used by others.")
4730 (license license:lgpl3+)))
4731
4732 (define-public gnome-klotski
4733 (package
4734 (name "gnome-klotski")
4735 (version "3.34.0")
4736 (source (origin
4737 (method url-fetch)
4738 (uri (string-append "mirror://gnome/sources/" name "/"
4739 (version-major+minor version) "/"
4740 name "-" version ".tar.xz"))
4741 (sha256
4742 (base32
4743 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
4744 (build-system meson-build-system)
4745 (arguments
4746 '(#:glib-or-gtk? #t
4747 #:phases
4748 (modify-phases %standard-phases
4749 (add-after 'unpack 'skip-gtk-update-icon-cache
4750 ;; Don't create 'icon-theme.cache'.
4751 (lambda _
4752 (substitute* "build-aux/meson_post_install.py"
4753 (("gtk-update-icon-cache") (which "true")))
4754 #t)))))
4755 (native-inputs
4756 `(("desktop-file-utils" ,desktop-file-utils)
4757 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4758 ("intltool" ,intltool)
4759 ("itstool" ,itstool)
4760 ("pkg-config" ,pkg-config)
4761 ("vala" ,vala)
4762 ("xmllint" ,libxml2)))
4763 (inputs
4764 `(("gtk+" ,gtk+)
4765 ("libgnome-games-support" ,libgnome-games-support)
4766 ("librsvg" ,librsvg)))
4767 (home-page "https://wiki.gnome.org/Apps/Klotski")
4768 (synopsis "Sliding block puzzles")
4769 (description
4770 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4771 the patterned block to the area bordered by green markers. To do so, you will
4772 need to slide other blocks out of the way. Complete each puzzle in as few moves
4773 as possible!")
4774 (license license:gpl2+)))
4775
4776 (define-public grilo
4777 (package
4778 (name "grilo")
4779 (version "0.3.10")
4780 (source
4781 (origin
4782 (method url-fetch)
4783 (uri (string-append "mirror://gnome/sources/" name "/"
4784 (version-major+minor version) "/"
4785 name "-" version ".tar.xz"))
4786 (sha256
4787 (base32
4788 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4789 (build-system meson-build-system)
4790 (native-inputs
4791 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4792 ("intltool" ,intltool)
4793 ("pkg-config" ,pkg-config)
4794 ("gobject-introspection" ,gobject-introspection)
4795 ("gtk-doc" ,gtk-doc)
4796 ("vala" ,vala)))
4797 (inputs
4798 `(("cyrus-sasl" ,cyrus-sasl)
4799 ("glib" ,glib)
4800 ("gtk+" ,gtk+)
4801 ("libxml2" ,libxml2)
4802 ("liboauth" ,liboauth)
4803 ("libsoup" ,libsoup)
4804 ("totem-pl-parser" ,totem-pl-parser)))
4805 (native-search-paths
4806 (list (search-path-specification
4807 (variable "GRL_PLUGIN_PATH")
4808 (files (list (string-append "lib/grilo-"
4809 (version-major+minor version)))))))
4810 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4811 (synopsis "Framework for discovering and browsing media")
4812 (description
4813 "Grilo is a framework focused on making media discovery and browsing easy
4814 for application developers.")
4815 (license license:lgpl2.1+)))
4816
4817 (define-public grilo-plugins
4818 (package
4819 (name "grilo-plugins")
4820 (version "0.3.10")
4821 (source
4822 (origin
4823 (method url-fetch)
4824 (uri (string-append "mirror://gnome/sources/" name "/"
4825 (version-major+minor version) "/"
4826 name "-" version ".tar.xz"))
4827 (sha256
4828 (base32
4829 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4830 (build-system meson-build-system)
4831 (native-inputs
4832 `(("gettext" ,gettext-minimal)
4833 ("glib:bin" ,glib "bin")
4834 ("gtk+:bin" ,gtk+ "bin")
4835 ("itstool" ,itstool)
4836 ("pkg-config" ,pkg-config)))
4837 ;; TODO: ahavi, gstreamer
4838 (inputs
4839 `(("grilo" ,grilo)
4840 ;("gmime" ,gmime) ; unused
4841 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4842 ("gom" ,gom)
4843 ;("gssdp" ,gssdp) ; unused
4844 ;("gupnp" ,gupnp) ; unused
4845 ;("gupnp-av" ,gupnp-av) ; unused
4846 ("json-glib" ,json-glib)
4847 ("avahi" ,avahi)
4848 ("libgdata" ,libgdata)
4849 ("libmediaart" ,libmediaart)
4850 ;("librest" ,rest) ; unused
4851 ("libsoup" ,libsoup)
4852 ("totam-pl-parser" ,totem-pl-parser)
4853 ("tracker" ,tracker))) ; unused because it's too old
4854 (arguments
4855 `(#:glib-or-gtk? #t
4856 ;;Disable lua-factory as it needs missing dependencies
4857 #:configure-flags '("-Denable-lua-factory=no")))
4858 (home-page "https://live.gnome.org/Grilo")
4859 (synopsis "Plugins for the Grilo media discovery library")
4860 (description
4861 "Grilo is a framework focused on making media discovery and browsing easy
4862 for application developers. This package provides plugins for common media
4863 discovery protocols.")
4864 (license license:lgpl2.1+)))
4865
4866 (define-public totem
4867 (package
4868 (name "totem")
4869 (version "3.34.1")
4870 (source
4871 (origin
4872 (method url-fetch)
4873 (uri (string-append "mirror://gnome/sources/" name "/"
4874 (version-major+minor version) "/"
4875 name "-" version ".tar.xz"))
4876 (sha256
4877 (base32
4878 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
4879 (build-system meson-build-system)
4880 (native-inputs
4881 `(("pkg-config" ,pkg-config)
4882 ("desktop-file-utils" ,desktop-file-utils)
4883 ("gobject-introspection" ,gobject-introspection)
4884 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4885 ("intltool" ,intltool)
4886 ("itstool" ,itstool)
4887 ("xmllint" ,libxml2)
4888 ("python-pylint" ,python-pylint)
4889 ("xorg-server" ,xorg-server-for-tests)))
4890 (propagated-inputs
4891 `(("dconf" ,dconf)))
4892 (inputs
4893 `(("gtk+" ,gtk+)
4894 ("gdk-pixbuf" ,gdk-pixbuf)
4895 ("atk" ,atk)
4896 ("cairo" ,cairo)
4897 ("dbus-glib" ,dbus-glib)
4898 ("clutter" ,clutter)
4899 ("clutter-gtk" ,clutter-gtk)
4900 ("clutter-gst" ,clutter-gst)
4901 ("xorgproto" ,xorgproto)
4902 ("libxxf86vm" ,libxxf86vm)
4903 ("libxtst" ,libxtst)
4904 ("libxrandr" ,libxrandr)
4905 ("libxml2" ,libxml2)
4906 ("libsoup" ,libsoup)
4907 ("libpeas" ,libpeas)
4908 ("librsvg" ,librsvg)
4909 ("lirc" ,lirc)
4910 ("gnome-desktop" ,gnome-desktop)
4911 ("gstreamer" ,gstreamer)
4912 ("gst-plugins-base" ,gst-plugins-base)
4913 ("gst-plugins-good" ,gst-plugins-good)
4914 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4915 ("adwaita-icon-theme" ,adwaita-icon-theme)
4916 ("python" ,python)
4917 ("python-pygobject" ,python-pygobject)
4918 ("totem-pl-parser" ,totem-pl-parser)
4919 ("grilo" ,grilo)
4920 ("grilo-plugins" ,grilo-plugins)
4921 ("vala" ,vala)))
4922 (arguments
4923 `(#:glib-or-gtk? #t
4924
4925 ;; Disable automatic GStreamer plugin installation via PackageKit and
4926 ;; all that.
4927 #:configure-flags '("-D" "enable-easy-codec-installation=no"
4928
4929 ;; Do not build .a files for the plugins, it's
4930 ;; completely useless. This saves 2 MiB.
4931 "--default-library" "shared")
4932 #:phases
4933 (modify-phases %standard-phases
4934 (add-after 'unpack 'skip-gtk-update-icon-cache
4935 ;; Don't create 'icon-theme.cache'.
4936 (lambda _
4937 (substitute* "meson_post_install.py"
4938 (("gtk-update-icon-cache") "true"))
4939 #t))
4940 (add-before
4941 'install 'disable-cache-generation
4942 (lambda _
4943 (setenv "DESTDIR" "/")
4944 #t))
4945 (add-before
4946 'check 'pre-check
4947 (lambda _
4948 ;; Tests require a running X server.
4949 (system "Xvfb :1 &")
4950 (setenv "DISPLAY" ":1")
4951 #t))
4952 (add-after
4953 'install 'wrap-totem
4954 (lambda* (#:key inputs outputs #:allow-other-keys)
4955 (let ((out (assoc-ref outputs "out"))
4956 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4957 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4958 (wrap-program (string-append out "/bin/totem")
4959 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4960 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4961 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4962 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4963 #t)))))
4964 (home-page "https://wiki.gnome.org/Apps/Videos")
4965 (synopsis "Simple media player for GNOME based on GStreamer")
4966 (description "Totem is a simple yet featureful media player for GNOME
4967 which can read a large number of file formats.")
4968 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4969 ;; to be used and distributed together with GStreamer and Totem. See
4970 ;; file://COPYING in the source distribution for details.
4971 (license license:gpl2+)))
4972
4973 (define-public rhythmbox
4974 (package
4975 (name "rhythmbox")
4976 (version "3.4.4")
4977 (source (origin
4978 (method url-fetch)
4979 (uri (string-append "mirror://gnome/sources/rhythmbox/"
4980 (version-major+minor version) "/"
4981 "rhythmbox-" version ".tar.xz"))
4982 (sha256
4983 (base32
4984 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
4985 (build-system glib-or-gtk-build-system)
4986 (arguments
4987 `(#:configure-flags
4988 (list "--enable-lirc"
4989 "--enable-python"
4990 "--enable-vala"
4991 "--with-brasero"
4992 "--with-gudev"
4993 "--with-libsecret")
4994 #:phases
4995 (modify-phases %standard-phases
4996 (add-after
4997 'install 'wrap-rhythmbox
4998 (lambda* (#:key inputs outputs #:allow-other-keys)
4999 (let ((out (assoc-ref outputs "out"))
5000 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5001 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5002 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5003 (python-path (getenv "PYTHONPATH")))
5004 (wrap-program (string-append out "/bin/rhythmbox")
5005 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5006 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5007 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5008 `("PYTHONPATH" ":" prefix (,python-path))))
5009 #t)))))
5010 (propagated-inputs
5011 `(("dconf" ,dconf)))
5012 (native-inputs
5013 `(("itstool" ,itstool)
5014 ("intltool" ,intltool)
5015 ("glib" ,glib "bin")
5016 ("gobject-introspection" ,gobject-introspection)
5017 ("desktop-file-utils" ,desktop-file-utils)
5018 ("pkg-config" ,pkg-config)
5019 ("xmllint" ,libxml2)))
5020 (inputs
5021 `(("json-glib" ,json-glib)
5022 ("tdb" ,tdb)
5023 ("gnome-desktop" ,gnome-desktop)
5024 ("python" ,python)
5025 ("python-pygobject" ,python2-pygobject)
5026 ("vala" ,vala)
5027 ("gmime" ,gmime)
5028 ("adwaita-icon-theme" ,adwaita-icon-theme)
5029 ("grilo" ,grilo)
5030 ("grilo-plugins" ,grilo-plugins)
5031 ("gstreamer" ,gstreamer)
5032 ("gst-plugins-base" ,gst-plugins-base)
5033 ("gst-plugins-good" ,gst-plugins-good)
5034 ("totem-pl-parser" ,totem-pl-parser)
5035 ("libgudev" ,libgudev)
5036 ;;("libmtp" ,libmtp) FIXME: Not detected
5037 ("libsecret" ,libsecret)
5038 ("libsoup" ,libsoup)
5039 ("libnotify" ,libnotify)
5040 ("libpeas" ,libpeas)
5041 ("lirc" ,lirc)
5042 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5043 ;;("clutter" ,clutter)
5044 ;;("clutter-gtk" ,clutter-gtk)
5045 ;;("clutter-gst" ,clutter-gst)
5046 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5047 ("atk" ,atk)
5048 ("pango" ,pango)
5049 ("gtk+" ,gtk+)
5050 ;; TODO:
5051 ;; * libgpod
5052 ;; * mx
5053 ("brasero" ,brasero)))
5054 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5055 (synopsis "Music player for GNOME")
5056 (description "Rhythmbox is a music playing application for GNOME. It
5057 supports playlists, song ratings, and any codecs installed through gstreamer.")
5058 (license license:gpl2+)))
5059
5060 (define-public eog
5061 (package
5062 (name "eog")
5063 (version "3.34.1")
5064 (source (origin
5065 (method url-fetch)
5066 (uri (string-append "mirror://gnome/sources/" name "/"
5067 (version-major+minor version) "/"
5068 name "-" version ".tar.xz"))
5069 (sha256
5070 (base32
5071 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5072 (build-system meson-build-system)
5073 (arguments
5074 `(#:configure-flags
5075 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5076 (list (string-append "-Dc_link_args=-Wl,-rpath="
5077 (assoc-ref %outputs "out") "/lib/eog"))
5078 #:phases
5079 (modify-phases %standard-phases
5080 (add-after 'unpack 'skip-gtk-update-icon-cache
5081 ;; Don't create 'icon-theme.cache'.
5082 (lambda _
5083 (substitute* "meson_post_install.py"
5084 (("gtk-update-icon-cache") "true"))
5085 #t))
5086 (add-after 'install 'wrap-eog
5087 (lambda* (#:key outputs #:allow-other-keys)
5088 (let ((out (assoc-ref outputs "out"))
5089 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5090 (wrap-program (string-append out "/bin/eog")
5091 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5092 #t)))))
5093 (propagated-inputs
5094 `(("dconf" ,dconf)))
5095 (native-inputs
5096 `(("intltool" ,intltool)
5097 ("itstool" ,itstool)
5098 ("glib" ,glib "bin")
5099 ("gobject-introspection" ,gobject-introspection)
5100 ("pkg-config" ,pkg-config)
5101 ("xmllint" ,libxml2)))
5102 (inputs
5103 `(("gnome-desktop" ,gnome-desktop)
5104 ("shared-mime-info" ,shared-mime-info)
5105 ("adwaita-icon-theme" ,adwaita-icon-theme)
5106 ("exempi" ,exempi)
5107 ("lcms" ,lcms)
5108 ("libexif" ,libexif)
5109 ("libpeas" ,libpeas)
5110 ("libjpeg" ,libjpeg-turbo)
5111 ("librsvg" ,librsvg-next)
5112 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5113 ("gtk+" ,gtk+)))
5114 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5115 (synopsis "GNOME image viewer")
5116 (description "Eye of GNOME is the GNOME image viewer. It
5117 supports image conversion, rotation, and slideshows.")
5118 (license license:gpl2+)))
5119
5120 (define-public eog-plugins
5121 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5122 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5123 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5124 ;; 'XDG_DATA_DIRS' appropriately set.
5125 (package
5126 (name "eog-plugins")
5127 (version "3.26.4")
5128 (source (origin
5129 (method url-fetch)
5130 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5131 (version-major+minor version) "/"
5132 "eog-plugins-" version ".tar.xz"))
5133 (sha256
5134 (base32
5135 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5136 (build-system gnu-build-system)
5137 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5138 (synopsis "Extensions for the Eye of GNOME image viewer")
5139 (native-inputs
5140 `(("pkg-config" ,pkg-config)
5141 ("gettext" ,gettext-minimal)))
5142 (inputs
5143 `(("eog" ,eog)
5144 ("glib" ,glib)
5145 ("gtk+" ,gtk+)
5146 ("libpeas" ,libpeas)
5147 ("libexif" ,libexif)
5148 ("libchamplain" ,libchamplain)))
5149 (description
5150 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5151 notably:
5152
5153 @itemize
5154 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5155 @item @dfn{Map}, which displays a map of where the picture was taken on the
5156 side panel;
5157 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5158 @end itemize\n")
5159
5160 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5161 ;; long suspicious byte stream that goes to a
5162 ;; ".gresource.eog_postasa_plugin" ELF section.
5163 (license license:gpl2+)))
5164
5165 (define-public libgudev
5166 (package
5167 (name "libgudev")
5168 (version "232")
5169 (source (origin
5170 (method url-fetch)
5171 (uri (string-append "mirror://gnome/sources/" name "/"
5172 version "/" name "-" version ".tar.xz"))
5173 (sha256
5174 (base32
5175 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5176 (build-system gnu-build-system)
5177 (arguments
5178 '(#:configure-flags
5179 ;; umockdev depends on libgudev.
5180 (list "--disable-umockdev")))
5181 (native-inputs
5182 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5183 ("gobject-introspection" ,gobject-introspection)
5184 ("pkg-config" ,pkg-config)))
5185 (propagated-inputs
5186 `(("glib" ,glib))) ; required by gudev-1.0.pc
5187 (inputs
5188 `(("udev" ,eudev)))
5189 (home-page "https://wiki.gnome.org/Projects/libgudev")
5190 (synopsis "GObject bindings for libudev")
5191 (description
5192 "This library provides GObject bindings for libudev. It was originally
5193 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5194 (license license:lgpl2.1+)))
5195
5196 (define-public gvfs
5197 (package
5198 (name "gvfs")
5199 (version "1.40.1")
5200 (source (origin
5201 (method url-fetch)
5202 (uri (string-append "mirror://gnome/sources/gvfs/"
5203 (version-major+minor version) "/"
5204 "gvfs-" version ".tar.xz"))
5205 (sha256
5206 (base32
5207 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5208 (build-system meson-build-system)
5209 (arguments
5210 '(#:glib-or-gtk? #t
5211 #:configure-flags
5212 (list "-Dsystemduserunitdir=no"
5213 "-Dtmpfilesdir=no"
5214 ;; Otherwise, the RUNPATH will lack the final path component.
5215 (string-append "-Dc_link_args=-Wl,-rpath="
5216 (assoc-ref %outputs "out") "/lib/gvfs"))))
5217 (native-inputs
5218 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5219 ("gettext" ,gettext-minimal)
5220 ("gtk-doc" ,gtk-doc)
5221 ("pkg-config" ,pkg-config)
5222 ("xsltproc" ,libxslt)))
5223 (inputs
5224 `(("avahi" ,avahi)
5225 ("docbook-xml" ,docbook-xml-4.2)
5226 ("docbook-xsl" ,docbook-xsl)
5227 ("dbus" ,dbus)
5228 ("elogind" ,elogind)
5229 ("fuse" ,fuse)
5230 ("gcr" ,gcr)
5231 ("glib" ,glib)
5232 ("gnome-online-accounts" ,gnome-online-accounts)
5233 ("libarchive" ,libarchive)
5234 ("libbluray" ,libbluray)
5235 ("libcap" ,libcap)
5236 ("libcdio-paranoia" ,libcdio-paranoia)
5237 ("libgcrypt" ,libgcrypt)
5238 ("libgdata" ,libgdata)
5239 ("libgphoto2" ,libgphoto2)
5240 ("libgudev" ,libgudev)
5241 ("libimobiledevice" ,libimobiledevice)
5242 ("libmtp" ,libmtp)
5243 ("libnfs" ,libnfs)
5244 ("libsecret" ,libsecret)
5245 ("libsmbclient" ,samba)
5246 ("libsoup" ,libsoup)
5247 ("libxml2" ,libxml2)
5248 ("openssh" ,openssh)
5249 ("polkit" ,polkit)
5250 ("udisks" ,udisks)))
5251 (home-page "https://wiki.gnome.org/gvfs/")
5252 (synopsis "Userspace virtual file system for GIO")
5253 (description
5254 "GVFS is a userspace virtual file system designed to work with the I/O
5255 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5256 to all applications using the GIO API. It also supports exposing the GVFS
5257 mounts to non-GIO applications using FUSE.
5258
5259 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5260 DAV, and others.")
5261 (license license:lgpl2.0+)))
5262
5263 (define-public gusb
5264 (package
5265 (name "gusb")
5266 (version "0.3.0")
5267 (source (origin
5268 (method git-fetch)
5269 (uri (git-reference
5270 (url "https://github.com/hughsie/libgusb.git")
5271 (commit version)))
5272 (file-name (git-file-name name version))
5273 (sha256
5274 (base32
5275 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5276 (build-system meson-build-system)
5277 (native-inputs
5278 `(("gobject-introspection" ,gobject-introspection)
5279 ("pkg-config" ,pkg-config)
5280 ("vala" ,vala)
5281 ("gtk-doc" ,gtk-doc)))
5282 (propagated-inputs
5283 ;; Both of these are required by gusb.pc.
5284 `(("glib" ,glib)
5285 ("libusb" ,libusb)))
5286 (arguments
5287 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5288 (home-page "https://github.com/hughsie/libgusb")
5289 (synopsis "GLib binding for libusb1")
5290 (description
5291 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5292 asynchronous control, bulk and interrupt transfers with proper cancellation
5293 and integration into a mainloop. This makes it easy to integrate low level
5294 USB transfers with your high-level application or system daemon.")
5295 (license license:lgpl2.1+)))
5296
5297 (define-public simple-scan
5298 (package
5299 (name "simple-scan")
5300 (version "3.36.2.1")
5301 (source
5302 (origin
5303 (method url-fetch)
5304 (uri (string-append "mirror://gnome/sources/simple-scan/"
5305 (version-major+minor version) "/"
5306 "simple-scan-" version ".tar.xz"))
5307 (sha256
5308 (base32 "0aq1pf0wk536b91as54684xgmhl7lps0k2xcwha5wh6h1isyb35v"))))
5309 (build-system meson-build-system)
5310 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5311 (arguments
5312 '(#:glib-or-gtk? #t))
5313 (inputs
5314 `(("gtk" ,gtk+)
5315 ("zlib" ,zlib)
5316 ("cairo" ,cairo)
5317 ("colord" ,colord)
5318 ("gdk-pixbuf" ,gdk-pixbuf)
5319 ("gusb" ,gusb)
5320 ("libsane" ,sane-backends)))
5321 (native-inputs
5322 `(("gettext" ,gettext-minimal)
5323 ("itstool" ,itstool)
5324 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5325 ("pkg-config" ,pkg-config)
5326 ("vala" ,vala)
5327 ("xmllint" ,libxml2)))
5328 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5329 (synopsis "Document and image scanner")
5330 (description
5331 "Document Scanner is an easy-to-use application that lets you connect your
5332 scanner and quickly capture images and documents in an appropriate format. It
5333 supports any scanner for which a suitable SANE driver is available, which is
5334 almost all of them.")
5335 (license license:gpl3+)))
5336
5337 (define-public eolie
5338 (package
5339 (name "eolie")
5340 (version "0.9.98.1")
5341 (source (origin
5342 (method url-fetch)
5343 (uri (string-append "https://adishatz.org/eolie/eolie-"
5344 version ".tar.xz"))
5345 (sha256
5346 (base32
5347 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
5348 (build-system meson-build-system)
5349 (arguments
5350 `(#:glib-or-gtk? #t
5351 #:phases
5352 (modify-phases %standard-phases
5353 (add-after 'unpack 'skip-gtk-update-icon-cache
5354 ;; Don't create 'icon-theme.cache'.
5355 (lambda _
5356 (substitute* "meson_post_install.py"
5357 (("gtk-update-icon-cache") "true"))
5358 #t))
5359 (add-after 'wrap 'wrap-more
5360 (lambda* (#:key inputs outputs #:allow-other-keys)
5361 (let* ((out (assoc-ref outputs "out"))
5362 ;; These libraries must be on LD_LIBRARY_PATH.
5363 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5364 "atk" "gtk+" "gsettings-desktop-schemas"
5365 "gobject-introspection"))
5366 (path (string-join
5367 (map (lambda (lib)
5368 (string-append (assoc-ref inputs lib) "/lib"))
5369 libs)
5370 ":")))
5371 (wrap-program (string-append out "/bin/eolie")
5372 `("LD_LIBRARY_PATH" ":" prefix (,path))
5373 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5374 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5375 #t)))))
5376 (native-inputs
5377 `(("intltool" ,intltool)
5378 ("itstool" ,itstool)
5379 ("pkg-config" ,pkg-config)
5380 ("python" ,python)
5381 ("glib:bin" ,glib "bin")))
5382 (inputs
5383 `(("gobject-introspection" ,gobject-introspection)
5384 ("glib-networking" ,glib-networking)
5385 ("cairo" ,cairo)
5386 ("gtk+" ,gtk+)
5387 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5388 ("python" ,python-wrapper)
5389 ("python-dateutil" ,python-dateutil)
5390 ("python-pyfxa" ,python-pyfxa)
5391 ("python-pygobject" ,python-pygobject)
5392 ("python-pycairo" ,python-pycairo)
5393 ("python-pycrypto" ,python-pycrypto)
5394 ("libsecret" ,libsecret)
5395 ("gtkspell3" ,gtkspell3)
5396 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5397 ("webkitgtk" ,webkitgtk)))
5398 (home-page "https://wiki.gnome.org/Apps/Eolie")
5399 (synopsis "Web browser for GNOME")
5400 (description
5401 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5402 a secret password store, an adblocker, and a modern UI.")
5403 (license license:gpl3+)))
5404
5405 (define-public epiphany
5406 (package
5407 (name "epiphany")
5408 (version "3.34.4")
5409 (source (origin
5410 (method url-fetch)
5411 (uri (string-append "mirror://gnome/sources/epiphany/"
5412 (version-major+minor version) "/"
5413 "epiphany-" version ".tar.xz"))
5414 (sha256
5415 (base32
5416 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
5417
5418 (build-system meson-build-system)
5419 (arguments
5420 '(#:glib-or-gtk? #t
5421 #:phases
5422 (modify-phases %standard-phases
5423 (add-after 'unpack 'skip-gtk-update-icon-cache
5424 ;; Don't create 'icon-theme.cache'.
5425 (lambda _
5426 (substitute* "post_install.py"
5427 (("gtk-update-icon-cache") "true"))
5428 #t))
5429 (add-after 'unpack 'disable-failing-tests
5430 (lambda _
5431 (substitute* "tests/meson.build"
5432 ;; embed_shell fails, because webkitgtk apparently no longer supports
5433 ;; overriding the ftp schema
5434 ;; web_app_utils fails due to missing network access
5435 (("(embed_shell|web_app_utils)_test,")
5436 "find_program('sh'), args: ['-c', 'exit 77'],"))
5437 #t))
5438 (add-before 'check 'pre-check
5439 (lambda _
5440 ;; Tests require a running X server.
5441 (system "Xvfb :1 &")
5442 (setenv "DISPLAY" ":1")
5443 #t)))
5444 #:configure-flags
5445 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5446 (list (string-append "-Dc_link_args=-Wl,-rpath="
5447 (assoc-ref %outputs "out") "/lib/epiphany"))))
5448 (propagated-inputs
5449 `(("dconf" ,dconf)))
5450 (native-inputs
5451 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5452 ("glib:bin" ,glib "bin") ; for glib-mkenums
5453 ("intltool" ,intltool)
5454 ("itstool" ,itstool)
5455 ("pkg-config" ,pkg-config)
5456 ("xmllint" ,libxml2)
5457 ("xorg-server" ,xorg-server-for-tests)))
5458 (inputs
5459 `(("avahi" ,avahi)
5460 ("gcr" ,gcr)
5461 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5462 ("glib-networking" ,glib-networking)
5463 ("gnome-desktop" ,gnome-desktop)
5464 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5465 ("json-glib" ,json-glib)
5466 ("iso-codes" ,iso-codes)
5467 ("libdazzle" ,libdazzle)
5468 ("libnotify" ,libnotify)
5469 ("libsecret" ,libsecret)
5470 ("libxslt" ,libxslt)
5471 ("nettle" ,nettle) ; for hogweed
5472 ("sqlite" ,sqlite)
5473 ("webkitgtk" ,webkitgtk)))
5474 (home-page "https://wiki.gnome.org/Apps/Web")
5475 (synopsis "GNOME web browser")
5476 (description
5477 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5478 principles are simplicity and standards compliance.")
5479 (license license:gpl2+)))
5480
5481 (define-public d-feet
5482 (package
5483 (name "d-feet")
5484 (version "0.3.14")
5485 (source (origin
5486 (method url-fetch)
5487 (uri (string-append "mirror://gnome/sources/" name "/"
5488 (version-major+minor version) "/"
5489 name "-" version ".tar.xz"))
5490 (sha256
5491 (base32
5492 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5493 (build-system glib-or-gtk-build-system)
5494 (arguments
5495 '(#:out-of-source? #f ; tests need to run in the source directory.
5496 #:phases
5497 (modify-phases %standard-phases
5498 (add-before
5499 'check 'pre-check
5500 (lambda _
5501 ;; The test suite requires a running X server.
5502 (system "Xvfb :1 &")
5503 (setenv "DISPLAY" ":1")
5504 ;; Don't fail on missing '/etc/machine-id'.
5505 (setenv "DBUS_FATAL_WARNINGS" "0")
5506 ;; tests.py and window.py don't meet E402:
5507 ;; E402 module level import not at top of file
5508 (substitute* "src/tests/Makefile"
5509 (("--ignore=E123") "--ignore=E123,E402"))
5510 #t))
5511 (add-after
5512 'install 'wrap-program
5513 (lambda* (#:key outputs #:allow-other-keys)
5514 (let ((prog (string-append (assoc-ref outputs "out")
5515 "/bin/d-feet")))
5516 (wrap-program prog
5517 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5518 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5519 #t))))))
5520 (native-inputs
5521 `(("intltool" ,intltool)
5522 ("itstool" ,itstool)
5523 ("pkg-config" ,pkg-config)
5524 ("python-pep8" ,python-pep8)
5525 ("xmllint" ,libxml2)
5526 ("xorg-server" ,xorg-server-for-tests)))
5527 (inputs
5528 `(("gobject-introspection" ,gobject-introspection)
5529 ("gtk+" ,gtk+)
5530 ("python" ,python-wrapper)
5531 ("hicolor-icon-theme" ,hicolor-icon-theme)
5532 ("python-pygobject" ,python-pygobject)))
5533 (home-page "https://wiki.gnome.org/Apps/DFeet")
5534 (synopsis "D-Bus debugger")
5535 (description
5536 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5537 of running programs and invoke methods on those interfaces.")
5538 (license license:gpl2+)))
5539
5540 (define-public yelp-xsl
5541 (package
5542 (name "yelp-xsl")
5543 (version "3.34.2")
5544 (source (origin
5545 (method url-fetch)
5546 (uri (string-append "mirror://gnome/sources/" name "/"
5547 (version-major+minor version) "/"
5548 name "-" version ".tar.xz"))
5549 (sha256
5550 (base32
5551 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
5552 (build-system gnu-build-system)
5553 (native-inputs
5554 `(("gettext-minimal" ,gettext-minimal)
5555 ("itstool" ,itstool)
5556 ("xmllint" ,libxml2)))
5557 (home-page "https://wiki.gnome.org/Apps/Yelp")
5558 (synopsis "XSL stylesheets for Yelp")
5559 (description
5560 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5561 to format Docbook and Mallard documents.")
5562 (license license:gpl2+)))
5563
5564 (define-public yelp
5565 (package
5566 (name "yelp")
5567 (version "3.32.2")
5568 (source (origin
5569 (method url-fetch)
5570 (uri (string-append "mirror://gnome/sources/" name "/"
5571 (version-major+minor version) "/"
5572 name "-" version ".tar.xz"))
5573 (sha256
5574 (base32
5575 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5576 (build-system glib-or-gtk-build-system)
5577 (native-inputs
5578 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5579 ("intltool" ,intltool)
5580 ("itstool" ,itstool)
5581 ("pkg-config" ,pkg-config)))
5582 (propagated-inputs
5583 `(("dconf" ,dconf)))
5584 (inputs
5585 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5586 ("libxslt" ,libxslt)
5587 ("sqlite" ,sqlite)
5588 ("webkitgtk" ,webkitgtk)
5589 ("yelp-xsl" ,yelp-xsl)))
5590 (home-page "https://wiki.gnome.org/Apps/Yelp")
5591 (synopsis "GNOME help browser")
5592 (description
5593 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5594 man, info, and HTML documents. It can locate documents according to the
5595 freedesktop.org help system specification.")
5596 (license license:gpl2+)))
5597
5598 (define-public yelp-tools
5599 (package
5600 (name "yelp-tools")
5601 (version "3.32.2")
5602 (source (origin
5603 (method url-fetch)
5604 (uri (string-append "mirror://gnome/sources/" name "/"
5605 (version-major+minor version) "/"
5606 name "-" version ".tar.xz"))
5607 (sha256
5608 (base32
5609 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
5610 (build-system gnu-build-system)
5611 (native-inputs
5612 `(("pkg-config" ,pkg-config)))
5613 (propagated-inputs
5614 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5615 `(("itstool" ,itstool)
5616 ("xmllint" ,libxml2)
5617 ("xsltproc" ,libxslt)))
5618 (inputs
5619 `(("yelp-xsl" ,yelp-xsl)))
5620 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5621 (synopsis "Yelp documentation tools")
5622 (description
5623 "Yelp-tools is a collection of scripts and build utilities to help create,
5624 manage, and publish documentation for Yelp and the web. Most of the heavy
5625 lifting is done by packages like yelp-xsl and itstool. This package just
5626 wraps things up in a developer-friendly way.")
5627 (license license:gpl2+)))
5628
5629 (define-public libgee
5630 (package
5631 (name "libgee")
5632 (version "0.20.3")
5633 (source (origin
5634 (method url-fetch)
5635 (uri (string-append "mirror://gnome/sources/libgee/"
5636 (version-major+minor version) "/"
5637 "libgee-" version ".tar.xz"))
5638 (sha256
5639 (base32
5640 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
5641 (build-system gnu-build-system)
5642 (arguments
5643 `(#:phases
5644 (modify-phases %standard-phases
5645 (add-after 'unpack 'fix-introspection-install-dir
5646 (lambda* (#:key outputs #:allow-other-keys)
5647 (let ((out (assoc-ref outputs "out")))
5648 (substitute* "gee/Makefile.in"
5649 (("@INTROSPECTION_GIRDIR@")
5650 (string-append out "/share/gir-1.0/"))
5651 (("@INTROSPECTION_TYPELIBDIR@")
5652 (string-append out "/lib/girepository-1.0/")))))))))
5653 (native-inputs
5654 `(("glib" ,glib "bin")
5655 ("pkg-config" ,pkg-config)))
5656 (inputs
5657 `(("glib" ,glib)
5658 ("gobject-introspection" ,gobject-introspection)))
5659 (home-page "https://wiki.gnome.org/Projects/Libgee")
5660 (synopsis "GObject collection library")
5661 (description
5662 "Libgee is a utility library providing GObject-based interfaces and
5663 classes for commonly used data structures.")
5664 (license license:lgpl2.1+)))
5665
5666 (define-public gexiv2
5667 (package
5668 (name "gexiv2")
5669 (version "0.12.0")
5670 (source (origin
5671 (method url-fetch)
5672 (uri (string-append "mirror://gnome/sources/" name "/"
5673 (version-major+minor version) "/"
5674 name "-" version ".tar.xz"))
5675 (sha256
5676 (base32
5677 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5678 (build-system meson-build-system)
5679 (native-inputs
5680 `(("gcr" ,gcr)
5681 ("glib" ,glib "bin")
5682 ("pkg-config" ,pkg-config)
5683 ("vala" ,vala)))
5684 (propagated-inputs
5685 ;; Listed in "Requires" section of gexiv2.pc
5686 `(("exiv2" ,exiv2)))
5687 (inputs
5688 `(("glib" ,glib)
5689 ("gobject-introspection" ,gobject-introspection)))
5690 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5691 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5692 (description
5693 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5694 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5695 metadata in photo and video files of various formats.")
5696 (license license:gpl2+)))
5697
5698 (define-public shotwell
5699 (package
5700 (name "shotwell")
5701 (version "0.30.9")
5702 (source (origin
5703 (method url-fetch)
5704 (uri (string-append "mirror://gnome/sources/shotwell/"
5705 (version-major+minor version) "/"
5706 "shotwell-" version ".tar.xz"))
5707 (sha256
5708 (base32
5709 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
5710 (build-system meson-build-system)
5711 (arguments
5712 '(#:glib-or-gtk? #t
5713 #:phases
5714 (modify-phases %standard-phases
5715 (add-after 'unpack 'skip-gtk-update-icon-cache
5716 (lambda _
5717 (substitute* "build-aux/meson/postinstall.py"
5718 (("gtk-update-icon-cache") (which "true"))
5719 (("update-desktop-database") (which "true")))
5720 #t)))))
5721 (propagated-inputs
5722 `(("dconf" ,dconf)))
5723 (native-inputs
5724 `(("gettext" ,gettext-minimal)
5725 ("glib:bin" ,glib "bin")
5726 ("itstool" ,itstool)
5727 ("pkg-config" ,pkg-config)
5728 ("vala" ,vala)))
5729 (inputs
5730 `(("gcr" ,gcr)
5731 ("gexiv2" ,gexiv2)
5732 ("gst-plugins-base" ,gst-plugins-base)
5733 ("gstreamer" ,gstreamer)
5734 ("json-glib" ,json-glib)
5735 ("libgdata" ,libgdata)
5736 ("libgee" ,libgee)
5737 ("libgphoto2" ,libgphoto2)
5738 ("libgudev" ,libgudev)
5739 ("libraw" ,libraw)
5740 ("libsoup" ,libsoup)
5741 ("libxml2" ,libxml2)
5742 ("sqlite" ,sqlite)
5743 ("webkitgtk" ,webkitgtk)))
5744 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5745 (synopsis "Photo manager for GNOME 3")
5746 (description
5747 "Shotwell is a digital photo manager designed for the GNOME desktop
5748 environment. It allows you to import photos from disk or camera, organize
5749 them by keywords and events, view them in full-window or fullscreen mode, and
5750 share them with others via social networking and more.")
5751 (license license:lgpl2.1+)))
5752
5753 (define-public file-roller
5754 (package
5755 (name "file-roller")
5756 (version "3.32.3")
5757 (source (origin
5758 (method url-fetch)
5759 (uri (string-append "mirror://gnome/sources/file-roller/"
5760 (version-major+minor version) "/"
5761 "file-roller-" version ".tar.xz"))
5762 (sha256
5763 (base32
5764 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5765 (build-system meson-build-system)
5766 (native-inputs
5767 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5768 ("intltool" ,intltool)
5769 ("itstool" ,itstool)
5770 ("pkg-config" ,pkg-config)
5771 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5772 ("glib:bin" ,glib "bin")))
5773 ;; TODO: Add libnautilus.
5774 (inputs
5775 `(("gtk+" ,gtk+)
5776 ("gdk-pixbuf" ,gdk-pixbuf)
5777 ("json-glib" ,json-glib)
5778 ("libarchive" ,libarchive)
5779 ("libnotify" ,libnotify)
5780 ("nettle" ,nettle)
5781 ("libxml2" ,libxml2)))
5782 (synopsis "Graphical archive manager for GNOME")
5783 (description "File Roller is an archive manager for the GNOME desktop
5784 environment that allows users to view, unpack, and create compressed archives
5785 such as gzip tarballs.")
5786 (home-page "http://fileroller.sourceforge.net/")
5787 (license license:gpl2+)))
5788
5789 (define-public gnome-session
5790 (package
5791 (name "gnome-session")
5792 (version "3.34.2")
5793 (source (origin
5794 (method url-fetch)
5795 (uri (string-append "mirror://gnome/sources/" name "/"
5796 (version-major+minor version) "/"
5797 name "-" version ".tar.xz"))
5798 (sha256
5799 (base32
5800 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
5801 (arguments
5802 '(#:glib-or-gtk? #t
5803 #:phases
5804 (modify-phases %standard-phases
5805 (add-before 'configure 'pre-configure
5806 (lambda* (#:key outputs #:allow-other-keys)
5807 ;; Use elogind instead of systemd.
5808 (substitute* "meson.build"
5809 (("libsystemd-login") "libelogind")
5810 (("and libsystemd_daemon_dep.found.*") ","))
5811 (substitute* "gnome-session/gsm-systemd.c"
5812 (("#include <systemd/sd-login.h>")
5813 "#include <elogind/sd-login.h>"))
5814 ;; Remove uses of the systemd daemon.
5815 (substitute* "gnome-session/gsm-autostart-app.c"
5816 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5817 #t))
5818 (add-after 'install 'wrap-gnome-session
5819 (lambda* (#:key inputs outputs #:allow-other-keys)
5820 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5821 (let ((glib (assoc-ref inputs "glib:bin"))
5822 (out (assoc-ref outputs "out")))
5823 (wrap-program (string-append out "/bin/gnome-session")
5824 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5825 #t))))
5826
5827 #:configure-flags
5828 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5829 "-Dman=false" ; FIXME: disabled because of docbook validation error
5830 "-Dsystemd_journal=false")))
5831 (build-system meson-build-system)
5832 (native-inputs
5833 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5834 ("pkg-config" ,pkg-config)
5835 ("intltool" ,intltool)
5836 ("xsltproc" ,libxslt)
5837 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5838 ("docbook-xsl" ,docbook-xsl)
5839 ("docbook-xml" ,docbook-xml)
5840 ("xmlto" ,xmlto)))
5841 (inputs
5842 `(("elogind" ,elogind)
5843 ("gnome-desktop" ,gnome-desktop)
5844 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5845 ("gtk+" ,gtk+)
5846 ("json-glib" ,json-glib)
5847 ("libsm" ,libsm)
5848 ("libxcomposite" ,libxcomposite)
5849 ("libxtst" ,libxtst)
5850 ("mesa" ,mesa)
5851 ("upower" ,upower)
5852 ("xtrans" ,xtrans)))
5853 (synopsis "Session manager for GNOME")
5854 (description
5855 "This package contains the GNOME session manager, as well as a
5856 configuration program to choose applications starting on login.")
5857 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5858 (license license:gpl2+)))
5859
5860 (define-public gjs
5861 (package
5862 (name "gjs")
5863 (version "1.58.3")
5864 (source (origin
5865 (method url-fetch)
5866 (uri (string-append "mirror://gnome/sources/" name "/"
5867 (version-major+minor version) "/"
5868 name "-" version ".tar.xz"))
5869 (sha256
5870 (base32
5871 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
5872 (build-system gnu-build-system)
5873 (arguments
5874 '(#:phases
5875 (modify-phases %standard-phases
5876 (add-before
5877 'check 'pre-check
5878 (lambda _
5879 ;; The test suite requires a running X server.
5880 (system "Xvfb :1 &")
5881 (setenv "DISPLAY" ":1")
5882
5883 ;; For the missing /etc/machine-id.
5884 (setenv "DBUS_FATAL_WARNINGS" "0")
5885
5886 ;; Our mozjs-38 package does not compile the required Intl API
5887 ;; support for these failing tests.
5888 (substitute* "installed-tests/js/testLocale.js"
5889 ((".*toBeDefined.*") "")
5890 ((".*expect\\(datestr\\).*") ""))
5891 (substitute* "installed-tests/scripts/testCommandLine.sh"
5892 (("Valentín") "")
5893 (("☭") ""))
5894 #t)))))
5895 (native-inputs
5896 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5897 ("pkg-config" ,pkg-config)
5898 ("xmllint" ,libxml2)
5899 ;; For testing
5900 ("dbus-launch" ,dbus)
5901 ("dconf" ,dconf) ; required to properly store settings
5902 ("uuidgen" ,util-linux)
5903 ("xvfb" ,xorg-server-for-tests)))
5904 (propagated-inputs
5905 ;; These are all in the Requires.private field of gjs-1.0.pc.
5906 `(("cairo" ,cairo)
5907 ("gobject-introspection" ,gobject-introspection)
5908 ("mozjs" ,mozjs-60)))
5909 (inputs
5910 `(("gtk+" ,gtk+)
5911 ("readline" ,readline)))
5912 (synopsis "Javascript bindings for GNOME")
5913 (home-page "https://live.gnome.org/Gjs")
5914 (description
5915 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5916 javascript engine and the GObject introspection framework.")
5917 (license license:gpl2+)))
5918
5919 (define-public gedit
5920 (package
5921 (name "gedit")
5922 (version "3.34.1")
5923 (source (origin
5924 (method url-fetch)
5925 (uri (string-append "mirror://gnome/sources/" name "/"
5926 (version-major+minor version) "/"
5927 name "-" version ".tar.xz"))
5928 (sha256
5929 (base32
5930 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
5931 (build-system meson-build-system)
5932 (arguments
5933 `(#:glib-or-gtk? #t
5934 #:configure-flags
5935 ;; Otherwise, the RUNPATH will lack the final path component.
5936 (list (string-append "-Dc_link_args=-Wl,-rpath="
5937 (assoc-ref %outputs "out") "/lib/gedit"))
5938
5939 ;; XXX: Generated .h files are sometimes used before being built.
5940 #:parallel-build? #f
5941
5942 #:phases
5943 (modify-phases %standard-phases
5944 (add-after 'unpack 'skip-gtk-update-icon-cache
5945 ;; Don't create 'icon-theme.cache'.
5946 (lambda _
5947 (substitute* "build-aux/meson/post_install.py"
5948 (("gtk-update-icon-cache") (which "true")))
5949 #t))
5950 (add-after 'unpack 'patch-libgd-fetch
5951 (lambda* (#:key inputs #:allow-other-keys)
5952 (let ((libgd (assoc-ref inputs "libgd")))
5953 ;; Calling git is unnecessary because libgd is fetched as a
5954 ;; native input to this package.
5955 (substitute* "meson.build"
5956 ((".*git.*") ""))
5957 (copy-recursively libgd "subprojects/libgd")
5958 #t)))
5959 (add-after 'install 'wrap-gedit
5960 (lambda* (#:key inputs outputs #:allow-other-keys)
5961 (let ((out (assoc-ref outputs "out"))
5962 (gtksourceview (assoc-ref inputs "gtksourceview"))
5963 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5964 (python-path (getenv "PYTHONPATH")))
5965 (wrap-program (string-append out "/bin/gedit")
5966 ;; For plugins.
5967 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5968 `("PYTHONPATH" ":" prefix (,python-path))
5969 ;; For language-specs.
5970 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5971 "/share")))))
5972 #t)))))
5973 (propagated-inputs
5974 `(("dconf" ,dconf)))
5975 (native-inputs
5976 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5977 ("intltool" ,intltool)
5978 ("itstool" ,itstool)
5979 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5980 ("gobject-introspection" ,gobject-introspection)
5981 ("libgd"
5982 ,(origin
5983 (method git-fetch)
5984 (uri (git-reference
5985 (url "https://gitlab.gnome.org/GNOME/libgd")
5986 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5987 (file-name (git-file-name "libgd" version))
5988 (sha256
5989 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
5990 ("pkg-config" ,pkg-config)))
5991 (inputs
5992 `(("glib" ,glib)
5993 ("gspell" ,gspell)
5994 ("gtk+" ,gtk+)
5995 ("gtksourceview" ,gtksourceview)
5996 ("libpeas" ,libpeas)
5997 ("libxml2" ,libxml2)
5998 ("iso-codes" ,iso-codes)
5999 ("python-pygobject" ,python-pygobject)
6000 ("python" ,python)
6001 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6002 ("libx11" ,libx11)
6003 ("vala" ,vala)
6004 ("adwaita-icon-theme" ,adwaita-icon-theme)
6005 ("libsoup" ,libsoup)
6006 ("gnome-desktop" ,gnome-desktop)))
6007 (home-page "https://wiki.gnome.org/Apps/Gedit")
6008 (synopsis "GNOME text editor")
6009 (description "While aiming at simplicity and ease of use, gedit is a
6010 powerful general purpose text editor.")
6011 (license license:gpl2+)))
6012
6013 (define-public zenity
6014 (package
6015 (name "zenity")
6016 (version "3.32.0")
6017 (source (origin
6018 (method url-fetch)
6019 (uri (string-append "mirror://gnome/sources/zenity/"
6020 (version-major+minor version) "/"
6021 "zenity-" version ".tar.xz"))
6022 (sha256
6023 (base32
6024 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6025 (build-system gnu-build-system)
6026 (native-inputs
6027 `(("gettext" ,gettext-minimal)
6028 ("itstool" ,itstool)
6029 ("pkg-config" ,pkg-config)))
6030 (inputs
6031 `(("libnotify" ,libnotify)
6032 ("webkitgtk" ,webkitgtk)))
6033 (synopsis "Display graphical dialog boxes from shell scripts")
6034 (home-page "https://www.gnome.org")
6035 (description
6036 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6037 to display dialog boxes from the commandline and shell scripts.")
6038 (license license:lgpl2.0+)))
6039
6040 (define-public mutter
6041 (package
6042 (name "mutter")
6043 (version "3.34.2")
6044 (source (origin
6045 (method url-fetch)
6046 (uri (string-append "mirror://gnome/sources/" name "/"
6047 (version-major+minor version) "/"
6048 name "-" version ".tar.xz"))
6049 (sha256
6050 (base32
6051 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
6052 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6053 ;; versions of cogl and clutter. As a result, many of the inputs,
6054 ;; propagated-inputs, and configure flags used in cogl and clutter are
6055 ;; needed here as well.
6056 (build-system meson-build-system)
6057 (arguments
6058 '(;; XXX: All mutter tests fail with the following error:
6059 ;; Settings schema 'org.gnome.mutter' is not installed
6060 #:tests? #f
6061 #:glib-or-gtk? #t
6062 #:configure-flags
6063 ;; TODO: Enable profiler when Sysprof is packaged.
6064 (list "-Dprofiler=false"
6065 ;; Otherwise, the RUNPATH will lack the final path component.
6066 (string-append "-Dc_link_args=-Wl,-rpath="
6067 (assoc-ref %outputs "out") "/lib:"
6068 (assoc-ref %outputs "out") "/lib/mutter-5")
6069
6070 ;; The following flags are needed for the bundled clutter
6071 (string-append "-Dxwayland_path="
6072 (assoc-ref %build-inputs "xorg-server-xwayland")
6073 "/bin/Xwayland")
6074
6075 ;; the remaining flags are needed for the bundled cogl
6076 (string-append "-Dopengl_libname="
6077 (assoc-ref %build-inputs "mesa")
6078 "/lib/libGL.so"))))
6079 (native-inputs
6080 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6081 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6082 ("gobject-introspection" ,gobject-introspection)
6083 ("intltool" ,intltool)
6084 ("pkg-config" ,pkg-config)
6085 ("xorg-server" ,xorg-server-for-tests)
6086 ;; For git build
6087 ("autoconf" ,autoconf)
6088 ("automake" ,automake)
6089 ("libtool" ,libtool)))
6090 (propagated-inputs
6091 `(;; libmutter.pc refers to these:
6092 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6093 ("gtk+" ,gtk+)
6094 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6095 ("atk" ,atk)
6096 ("cairo" ,cairo)
6097 ("gdk-pixbuf" ,gdk-pixbuf)
6098 ("glib" ,glib)
6099 ("json-glib" ,json-glib)
6100 ("libinput" ,libinput)
6101 ("libx11" ,libx11)
6102 ("libxcomposite" ,libxcomposite)
6103 ("libxdamage" ,libxdamage)
6104 ("libxext" ,libxext)
6105 ("libxfixes" ,libxfixes)
6106 ("libxkbcommon" ,libxkbcommon)
6107 ("libxrandr" ,libxrandr)
6108 ("mesa" ,mesa)
6109 ("pango" ,pango)
6110 ("udev" ,eudev)
6111 ("xinput" ,xinput)))
6112 (inputs
6113 `(("elogind" ,elogind)
6114 ("gnome-desktop" ,gnome-desktop)
6115 ("gnome-settings-daemon" ,gnome-settings-daemon)
6116 ("libcanberra-gtk" ,libcanberra)
6117 ("libgudev" ,libgudev)
6118 ("libice" ,libice)
6119 ("libsm" ,libsm)
6120 ("libwacom" ,libwacom)
6121 ("libxkbfile" ,libxkbfile)
6122 ("libxrandr" ,libxrandr)
6123 ("libxtst" ,libxtst)
6124 ("pipewire" ,pipewire)
6125 ("startup-notification" ,startup-notification)
6126 ("upower-glib" ,upower)
6127 ("xkeyboard-config" ,xkeyboard-config)
6128 ("xorg-server-xwayland" ,xorg-server-xwayland)
6129 ("zenity" ,zenity)))
6130 (synopsis "Window and compositing manager")
6131 (home-page "https://www.gnome.org")
6132 (description
6133 "Mutter is a window and compositing manager that displays and manages your
6134 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6135 Clutter toolkit with solid window-management logic inherited from the Metacity
6136 window manager.")
6137 (license license:gpl2+)))
6138
6139 (define-public gnome-online-accounts
6140 (package
6141 (name "gnome-online-accounts")
6142 (version "3.36.0")
6143 (source (origin
6144 (method url-fetch)
6145 (uri (string-append "mirror://gnome/sources/" name "/"
6146 (version-major+minor version) "/"
6147 name "-" version ".tar.xz"))
6148 (sha256
6149 (base32
6150 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
6151 (outputs '("out" "lib"))
6152 (build-system glib-or-gtk-build-system)
6153 (arguments
6154 `(#:configure-flags
6155 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6156 #:phases
6157 (modify-phases %standard-phases
6158 (add-before 'configure 'patch-libgoa-output
6159 (lambda* (#:key outputs #:allow-other-keys)
6160 (let ((lib (assoc-ref outputs "lib")))
6161 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6162 (("@prefix@") lib)
6163 (("@exec_prefix@") lib)
6164 (("@libdir@") (string-append lib "/lib"))
6165 (("@includedir@") (string-append lib "/include"))
6166 (("@datadir@") (string-append lib "/share")))
6167 ;; Make sure gobject-introspection knows about the output
6168 ;; too (see <https://bugs.gnu.org/36535>).
6169 (setenv "outputs" "out lib")
6170 #t))))))
6171 (native-inputs
6172 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6173 ("gobject-introspection" ,gobject-introspection)
6174 ("intltool" ,intltool)
6175 ("pkg-config" ,pkg-config)
6176 ("vala" ,vala)
6177 ("xsltproc" ,libxslt)))
6178 (propagated-inputs
6179 `(("glib" ,glib) ; required by goa-1.0.pc
6180 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6181 (inputs
6182 `(("docbook-xsl" ,docbook-xsl)
6183 ("json-glib" ,json-glib)
6184 ("libsecret" ,libsecret)
6185 ("rest" ,rest)
6186 ("webkitgtk" ,webkitgtk)))
6187 (synopsis "Single sign-on framework for GNOME")
6188 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6189 (description
6190 "GNOME Online Accounts provides interfaces so that applications and
6191 libraries in GNOME can access the user's online accounts. It has providers for
6192 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6193 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6194 (license license:lgpl2.0+)))
6195
6196 (define-public evolution-data-server
6197 (package
6198 (name "evolution-data-server")
6199 (version "3.34.2")
6200 (source (origin
6201 (method url-fetch)
6202 (uri (string-append "mirror://gnome/sources/" name "/"
6203 (version-major+minor version) "/"
6204 name "-" version ".tar.xz"))
6205 (patches (search-patches "evolution-data-server-locales.patch"
6206 "evolution-data-server-libical-compat.patch"))
6207 (sha256
6208 (base32
6209 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
6210 (build-system cmake-build-system)
6211 (arguments
6212 '(#:configure-flags
6213 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6214 (runpaths (map (lambda (s)
6215 (string-append lib "/evolution-data-server/" s))
6216 '("addressbook-backends" "calendar-backends"
6217 "camel-providers" "credential-modules"
6218 "registry-modules"))))
6219 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6220 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6221 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6222 "-DENABLE_VALA_BINDINGS=ON"
6223 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6224 (string-append lib "/evolution-data-server;")
6225 (string-join runpaths ";"))
6226 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6227 #:phases
6228 (modify-phases %standard-phases
6229 (add-after 'unpack 'disable-failing-tests
6230 (lambda _
6231 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6232 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6233 (delete-file-recursively "tests/book-migration")
6234 (substitute* "tests/CMakeLists.txt"
6235 (("add_subdirectory\\(book-migration\\)") ""))
6236 #t))
6237 (add-after 'unpack 'patch-paths
6238 (lambda _
6239 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6240 "tests/libedata-book/data-test-utils.c"
6241 "tests/libedata-book/test-book-cache-utils.c"
6242 "tests/libedata-cal/test-cal-cache-utils.c")
6243 (("/bin/rm") (which "rm")))
6244 #t))
6245 (add-before 'configure 'dont-override-rpath
6246 (lambda _
6247 (substitute* "CMakeLists.txt"
6248 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6249 ;; Remove it so the configure flag is respected.
6250 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6251 #t)))))
6252 (native-inputs
6253 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6254 ("gobject-introspection" ,gobject-introspection)
6255 ("gperf" ,gperf)
6256 ("intltool" ,intltool)
6257 ("pkg-config" ,pkg-config)
6258 ("vala" ,vala)
6259 ("python" ,python-wrapper)))
6260 (propagated-inputs
6261 ;; These are all in the Requires field of .pc files.
6262 `(("gtk+" ,gtk+)
6263 ("libical" ,libical)
6264 ("libsecret" ,libsecret)
6265 ("libsoup" ,libsoup)
6266 ("nss" ,nss)
6267 ("sqlite" ,sqlite)))
6268 (inputs
6269 `(("bdb" ,bdb)
6270 ("gcr" ,gcr)
6271 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6272 ("json-glib" ,json-glib)
6273 ("libcanberra" ,libcanberra)
6274 ("libgweather" ,libgweather)
6275 ("mit-krb5" ,mit-krb5)
6276 ("openldap" ,openldap)
6277 ("webkitgtk" ,webkitgtk)))
6278 (synopsis "Store address books and calendars")
6279 (home-page "https://wiki.gnome.org/Apps/Evolution")
6280 (description
6281 "This package provides a unified backend for programs that work with
6282 contacts, tasks, and calendar information. It was originally developed for
6283 Evolution (hence the name), but is now used by other packages as well.")
6284 (license license:lgpl2.0)))
6285
6286 (define-public caribou
6287 (package
6288 (name "caribou")
6289 (version "0.4.21")
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 (sha256
6296 (base32
6297 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6298 (build-system glib-or-gtk-build-system)
6299 (arguments
6300 '(#:phases
6301 (modify-phases %standard-phases
6302 (add-before
6303 'build 'pre-build
6304 (lambda* (#:key outputs #:allow-other-keys)
6305 (let ((out (assoc-ref outputs "out")))
6306 ;; Use absolute shared library path in Caribou-1.0.typelib.
6307 (substitute* "libcaribou/Makefile"
6308 (("--shared-library=libcaribou.so")
6309 (string-append "--shared-library="
6310 out "/lib/libcaribou.so")))
6311 #t)))
6312 (add-after 'install 'wrap-programs
6313 (lambda* (#:key outputs #:allow-other-keys)
6314 (let* ((out (assoc-ref outputs "out"))
6315 (python-path (getenv "PYTHONPATH"))
6316 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6317 (for-each
6318 (lambda (prog)
6319 (wrap-program prog
6320 `("PYTHONPATH" ":" prefix (,python-path))
6321 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6322 (list (string-append out "/bin/caribou-preferences")
6323 (string-append out "/libexec/antler-keyboard"))))
6324 #t)))))
6325 (native-inputs
6326 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6327 ("gobject-introspection" ,gobject-introspection)
6328 ("intltool" ,intltool)
6329 ("pkg-config" ,pkg-config)
6330 ("python" ,python)
6331 ("vala" ,vala)
6332 ("xsltproc" ,libxslt)))
6333 (propagated-inputs
6334 ;; caribou-1.0.pc refers to all these.
6335 `(("libgee" ,libgee)
6336 ("libxklavier" ,libxklavier)
6337 ("libxtst" ,libxtst)
6338 ("gtk+" ,gtk+)))
6339 (inputs
6340 `(("clutter" ,clutter)
6341 ("dconf" ,dconf)
6342 ("gtk+-2" ,gtk+-2)
6343 ("python-pygobject" ,python-pygobject)))
6344 (synopsis "Text entry and UI navigation application")
6345 (home-page "https://wiki.gnome.org/Projects/Caribou")
6346 (description
6347 "Caribou is an input assistive technology intended for switch and pointer
6348 users.")
6349 (license license:lgpl2.1)))
6350
6351 (define-public network-manager
6352 (package
6353 (name "network-manager")
6354 (version "1.24.0")
6355 (source (origin
6356 (method url-fetch)
6357 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6358 (version-major+minor version) "/"
6359 "NetworkManager-" version ".tar.xz"))
6360 (patches (search-patches "nm-plugin-path.patch"))
6361 (sha256
6362 (base32
6363 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
6364 (modules '((guix build utils)))
6365 (snippet
6366 '(begin
6367 (substitute* "src/devices/wwan/nm-modem-manager.c"
6368 (("systemd") "elogind"))
6369 #t))))
6370 (build-system meson-build-system)
6371 (outputs '("out"
6372 "doc")) ; 8 MiB of gtk-doc HTML
6373 (arguments
6374 `(#:configure-flags
6375 (let ((out (assoc-ref %outputs "out"))
6376 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6377 "/sbin/dhclient")))
6378 (list
6379 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6380 ;; component.
6381 (string-append "-Dc_link_args=-Wl,-rpath="
6382 out "/lib:"
6383 out "/lib/NetworkManager/" ,version)
6384 "-Dsystemd_journal=false"
6385 "-Dsession_tracking=elogind"
6386 "-Dsuspend_resume=elogind"
6387 "-Dsystemdsystemunitdir=no"
6388 "-Dsession_tracking_consolekit=false"
6389 "-Ddhcpcd=no"
6390 "-Ddhcpcanon=no"
6391 "-Dcrypto=gnutls"
6392 "-Diwd=true"
6393 "-Dlibaudit=yes"
6394 "-Dqt=false"
6395 "-Ddocs=true"
6396 "--sysconfdir=/etc"
6397 "--localstatedir=/var"
6398 (string-append "-Dudev_dir="
6399 out "/lib/udev")
6400 (string-append "-Ddbus_conf_dir="
6401 out "/etc/dbus-1/system.d")
6402
6403 (string-append "-Ddhclient=" dhclient)))
6404 #:phases
6405 (modify-phases %standard-phases
6406 (add-before 'configure 'pre-configure
6407 (lambda _
6408 ;; These tests try to test aspects of network-manager's
6409 ;; functionality within restricted containers, but they don't
6410 ;; cope with being already in the Guix build jail as that jail
6411 ;; lacks some features that they would like to proxy over (like
6412 ;; a /sys mount).
6413 (substitute* "src/platform/tests/meson.build"
6414 ((".*test-address-linux.*") "")
6415 ((".*test-cleanup-linux.*") "")
6416 ((".*test-link-linux.*") "")
6417 ((".*test-route-linux.*") ""))
6418 (substitute* "src/devices/tests/meson.build"
6419 ((".*test-acd.*") "")
6420 ((".*test-lldp.*") ""))
6421 #t))
6422 (add-after 'unpack 'patch-docbook-xml
6423 (lambda* (#:key inputs #:allow-other-keys)
6424 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6425 "/xml/dtd/docbook")))
6426 (substitute* (find-files "." ".*\\.(xsl|xml)")
6427 (("http://.*/docbookx\\.dtd")
6428 (string-append xmldoc "/docbookx.dtd")))
6429 #t)))
6430 (add-before 'check 'pre-check
6431 (lambda _
6432 ;; For the missing /etc/machine-id.
6433 (setenv "DBUS_FATAL_WARNINGS" "0")
6434 #t))
6435 (add-before 'install 'no-polkit-magic
6436 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
6437 (lambda _
6438 (setenv "PKEXEC_UID" "something")
6439 #t))
6440 (add-after 'install 'move-doc
6441 (lambda* (#:key outputs #:allow-other-keys)
6442 (let ((out (assoc-ref outputs "out"))
6443 (doc (assoc-ref outputs "doc")))
6444 (mkdir-p (string-append doc "/share"))
6445 (for-each (lambda (directory)
6446 (copy-recursively (string-append out directory)
6447 (string-append doc directory))
6448 (delete-file-recursively
6449 (string-append out directory)))
6450 '("/share/doc" "/share/gtk-doc"))
6451 #t))))))
6452 (propagated-inputs
6453 `(("glib" ,glib)))
6454 (native-inputs
6455 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6456 ("gtk-doc" ,gtk-doc)
6457 ("gobject-introspection" ,gobject-introspection)
6458 ("docbook-xml" ,docbook-xml)
6459 ("docbook-xsl" ,docbook-xsl)
6460 ("intltool" ,intltool)
6461 ("libxslt" ,libxslt)
6462 ("libxml2" ,libxml2)
6463 ("pkg-config" ,pkg-config)
6464 ("vala" ,vala)
6465 ;; For testing.
6466 ("python" ,python-wrapper)
6467 ("python-dbus" ,python-dbus)
6468 ("python-pygobject" ,python-pygobject)))
6469 (inputs
6470 `(("curl" ,curl)
6471 ("cyrus-sasl" ,cyrus-sasl)
6472 ("dbus-glib" ,dbus-glib)
6473 ("dnsmasq" ,dnsmasq)
6474 ("eudev" ,eudev)
6475 ("gnutls" ,gnutls)
6476 ("iptables" ,iptables)
6477 ("isc-dhcp" ,isc-dhcp)
6478 ("iwd" ,iwd) ; wpa_supplicant alternative
6479 ("jansson" ,jansson)
6480 ("libaudit" ,audit)
6481 ("libgcrypt" ,libgcrypt)
6482 ("libgudev" ,libgudev)
6483 ("libndp" ,libndp)
6484 ("libnl" ,libnl)
6485 ("libsoup" ,libsoup)
6486 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
6487 ("modem-manager" ,modem-manager)
6488 ("newt" ,newt) ;for the 'nmtui' console interface
6489 ("openresolv" ,openresolv) ; alternative resolv.conf manager
6490 ("polkit" ,polkit)
6491 ("ppp" ,ppp)
6492 ("readline" ,readline)
6493 ("util-linux" ,util-linux)
6494 ("elogind" ,elogind)))
6495 (synopsis "Network connection manager")
6496 (home-page "https://www.gnome.org/projects/NetworkManager/")
6497 (description
6498 "NetworkManager is a system network service that manages your network
6499 devices and connections, attempting to keep active network connectivity when
6500 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6501 devices, and provides VPN integration with a variety of different VPN
6502 services.")
6503 ;; “This NetworkManager project consists of the daemon, client tools, and
6504 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6505 ;; GPL-2.0+.”
6506 (license (list license:gpl2+
6507 license:lgpl2.1+))
6508 (properties '((upstream-name . "NetworkManager")))))
6509
6510 (define-public network-manager-openvpn
6511 (package
6512 (name "network-manager-openvpn")
6513 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
6514 (version "1.8.10")
6515 (source (origin
6516 (method url-fetch)
6517 (uri (string-append
6518 "mirror://gnome/sources/NetworkManager-openvpn/"
6519 (version-major+minor version)
6520 "/NetworkManager-openvpn-" version ".tar.xz"))
6521 (sha256
6522 (base32
6523 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
6524 (build-system gnu-build-system)
6525 (arguments
6526 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6527 #:phases
6528 (modify-phases %standard-phases
6529 (add-after 'configure 'patch-path
6530 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6531 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6532 "/sbin/openvpn"))
6533 (modprobe (string-append (assoc-ref inputs "kmod")
6534 "/bin/modprobe"))
6535 (pretty-ovpn (string-append "\"" ovpn "\"")))
6536 (for-each
6537 (lambda (file)
6538 (substitute* file
6539 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6540 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6541 (("\"/sbin/openvpn\"") pretty-ovpn)
6542 (("/sbin/modprobe") modprobe)))
6543 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6544 #t)))))
6545 (native-inputs
6546 `(("pkg-config" ,pkg-config)
6547 ("intltool" ,intltool)))
6548 (inputs
6549 `(("gtk+" ,gtk+)
6550 ("kmod" ,kmod)
6551 ("openvpn" ,openvpn)
6552 ("network-manager" ,network-manager)
6553 ("network-manager-applet" ,network-manager-applet) ;for libnma
6554 ("libsecret" ,libsecret)))
6555 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6556 (synopsis "OpenVPN plug-in for NetworkManager")
6557 (description
6558 "This extension of NetworkManager allows it to take care of connections
6559 to virtual private networks (VPNs) via OpenVPN.")
6560 (license license:gpl2+)
6561 (properties `((upstream-name . "NetworkManager-openvpn")))))
6562
6563 (define-public network-manager-vpnc
6564 (package
6565 (name "network-manager-vpnc")
6566 (version "1.2.6")
6567 (source (origin
6568 (method url-fetch)
6569 (uri (string-append
6570 "mirror://gnome/sources/NetworkManager-vpnc/"
6571 (version-major+minor version)
6572 "/NetworkManager-vpnc-" version ".tar.xz"))
6573 (sha256
6574 (base32
6575 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6576 (build-system gnu-build-system)
6577 (arguments
6578 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6579 #:phases
6580 (modify-phases %standard-phases
6581 (add-after 'configure 'patch-path
6582 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6583 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6584 "/sbin/vpnc"))
6585 (modprobe (string-append (assoc-ref inputs "kmod")
6586 "/bin/modprobe"))
6587 (pretty-ovpn (string-append "\"" vpnc "\"")))
6588 (substitute* "src/nm-vpnc-service.c"
6589 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6590 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6591 (("\"/sbin/vpnc\"") pretty-ovpn)
6592 (("/sbin/modprobe") modprobe)))
6593 #t)))))
6594 (native-inputs
6595 `(("pkg-config" ,pkg-config)
6596 ("intltool" ,intltool)))
6597 (inputs
6598 `(("gtk+" ,gtk+)
6599 ("kmod" ,kmod)
6600 ("vpnc" ,vpnc)
6601 ("network-manager" ,network-manager)
6602 ("network-manager-applet" ,network-manager-applet) ;for libnma
6603 ("libsecret" ,libsecret)))
6604 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6605 (synopsis "VPNC plug-in for NetworkManager")
6606 (description
6607 "Support for configuring virtual private networks based on VPNC.
6608 Compatible with Cisco VPN concentrators configured to use IPsec.")
6609 (license license:gpl2+)
6610 (properties `((upstream-name . "NetworkManager-vpnc")))))
6611
6612 (define-public network-manager-openconnect
6613 (package
6614 (name "network-manager-openconnect")
6615 (version "1.2.6")
6616 (source (origin
6617 (method url-fetch)
6618 (uri (string-append
6619 "mirror://gnome/sources/NetworkManager-openconnect/"
6620 (version-major+minor version)
6621 "/NetworkManager-openconnect-" version ".tar.xz"))
6622 (sha256
6623 (base32
6624 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6625 (build-system gnu-build-system)
6626 (arguments
6627 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6628 #:phases
6629 (modify-phases %standard-phases
6630 (add-after 'configure 'patch-path
6631 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6632 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6633 "/sbin/openconnect"))
6634 (modprobe (string-append (assoc-ref inputs "kmod")
6635 "/bin/modprobe"))
6636 (pretty-ovpn (string-append "\"" openconnect "\"")))
6637 (substitute* "src/nm-openconnect-service.c"
6638 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6639 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6640 (("/sbin/modprobe") modprobe)))
6641 #t)))))
6642 (native-inputs
6643 `(("intltool" ,intltool)
6644 ("network-manager-applet" ,network-manager-applet) ;for libnma
6645 ("pkg-config" ,pkg-config)))
6646 (inputs
6647 `(("gcr" ,gcr)
6648 ("gtk+" ,gtk+)
6649 ("kmod" ,kmod)
6650 ("libsecret" ,libsecret)
6651 ("libxml2" ,libxml2)
6652 ("lz4" ,lz4)
6653 ("network-manager" ,network-manager)
6654 ("openconnect" ,openconnect)))
6655 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6656 (synopsis "OpenConnect plug-in for NetworkManager")
6657 (description
6658 "This extension of NetworkManager allows it to take care of connections
6659 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6660 Cisco's AnyConnect SSL VPN.")
6661 (license license:gpl2+)
6662 (properties `((upstream-name . "NetworkManager-openconnect")
6663
6664 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6665 ;; file refers to account "nm-openconnect". Specify it here
6666 ;; so that 'network-manager-service-type' creates it.
6667 (user-accounts . ("nm-openconnect"))))))
6668
6669 (define-public mobile-broadband-provider-info
6670 (package
6671 (name "mobile-broadband-provider-info")
6672 (version "20190116")
6673 (source (origin
6674 (method url-fetch)
6675 (uri (string-append
6676 "mirror://gnome/sources/"
6677 "mobile-broadband-provider-info/" version "/"
6678 "mobile-broadband-provider-info-" version ".tar.xz"))
6679 (sha256
6680 (base32
6681 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6682 (build-system gnu-build-system)
6683 (arguments
6684 `(#:tests? #f)) ; no tests
6685 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6686 (synopsis "Database of broadband connection configuration")
6687 (description "Database of broadband connection configuration.")
6688 (license license:public-domain)))
6689
6690 (define-public network-manager-applet
6691 (package
6692 (name "network-manager-applet")
6693 (version "1.8.24")
6694 (source (origin
6695 (method url-fetch)
6696 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6697 (version-major+minor version) "/"
6698 "network-manager-applet-" version ".tar.xz"))
6699 (sha256
6700 (base32
6701 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
6702 (build-system meson-build-system)
6703 (arguments
6704 '(#:configure-flags
6705 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6706 (list "-Dlibnm_gtk=true")
6707 #:glib-or-gtk? #t))
6708 (native-inputs
6709 `(("intltool" ,intltool)
6710 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6711 ("gobject-introspection" ,gobject-introspection)
6712 ("gtk-doc" ,gtk-doc)
6713 ("pkg-config" ,pkg-config)))
6714 (propagated-inputs
6715 ;; libnm-gtk.pc refers to all these.
6716 `(("dbus-glib" ,dbus-glib)
6717 ("gtk+" ,gtk+)
6718 ("network-manager" ,network-manager)))
6719 (inputs
6720 `(("gcr" ,gcr)
6721 ("iso-codes" ,iso-codes)
6722 ("libgudev" ,libgudev)
6723 ("libnotify" ,libnotify)
6724 ("libsecret" ,libsecret)
6725 ("libselinux" ,libselinux)
6726 ("jansson" ,jansson) ; for team support
6727 ("modem-manager" ,modem-manager)
6728 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
6729 (synopsis "Applet for managing network connections")
6730 (home-page "https://www.gnome.org/projects/NetworkManager/")
6731 (description
6732 "This package contains a systray applet for NetworkManager. It displays
6733 the available networks and allows users to easily switch between them.")
6734 (license license:gpl2+)))
6735
6736 (define-public libxml++
6737 (package
6738 (name "libxml++")
6739 (version "3.0.1")
6740 (source (origin
6741 (method url-fetch)
6742 (uri (string-append "mirror://gnome/sources/" name "/"
6743 (version-major+minor version) "/"
6744 name "-" version ".tar.xz"))
6745 (sha256
6746 (base32
6747 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6748 (build-system gnu-build-system)
6749 ;; libxml++-3.0.pc refers to all these.
6750 (propagated-inputs
6751 `(("libxml2" ,libxml2)
6752 ("glibmm" ,glibmm)))
6753 (native-inputs
6754 `(("perl" ,perl)
6755 ("pkg-config" ,pkg-config)))
6756 (home-page "http://libxmlplusplus.sourceforge.net/")
6757 (synopsis "C++ wrapper for XML parser library libxml2")
6758 (description
6759 "This package provides a C++ wrapper for the XML parser library
6760 libxml2.")
6761 (license license:lgpl2.1+)))
6762
6763 (define-public libxml++-2
6764 (package
6765 (inherit libxml++)
6766 (name "libxml++")
6767 (version "2.40.1")
6768 (source (origin
6769 (method url-fetch)
6770 (uri (string-append "mirror://gnome/sources/" name "/"
6771 (version-major+minor version) "/"
6772 name "-" version ".tar.xz"))
6773 (sha256
6774 (base32
6775 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6776
6777 (define-public gdm
6778 (package
6779 (name "gdm")
6780 (version "3.34.1")
6781 (source (origin
6782 (method url-fetch)
6783 (uri (string-append "mirror://gnome/sources/" name "/"
6784 (version-major+minor version) "/"
6785 name "-" version ".tar.xz"))
6786 (sha256
6787 (base32
6788 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
6789 (patches (search-patches "gdm-default-session.patch"))))
6790 (build-system glib-or-gtk-build-system)
6791 (arguments
6792 '(#:configure-flags
6793 `("--without-plymouth"
6794 "--disable-systemd-journal"
6795
6796 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6797 ;; instead of having to replace it (i.e., stopping the mingetty
6798 ;; service for TTY 1 before starting GDM).
6799 "--with-initial-vt=7"
6800
6801 ;; Use '/etc/environment' for locale settings instead of the
6802 ;; systemd-specific '/etc/locale.conf'.
6803 "--with-lang-file=/etc/environment"
6804
6805 ,(string-append "--with-udevdir="
6806 (assoc-ref %outputs "out") "/lib/udev")
6807
6808 "--localstatedir=/var"
6809 ,(string-append "--with-default-path="
6810 (string-join '("/run/setuid-programs"
6811 "/run/current-system/profile/bin"
6812 "/run/current-system/profile/sbin")
6813 ":"))
6814 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6815 ;; XDG_DATA_DIRS so that it finds its schemas.
6816 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6817 #:phases
6818 (modify-phases %standard-phases
6819 (add-before
6820 'configure 'pre-configure
6821 (lambda* (#:key inputs outputs #:allow-other-keys)
6822 ;; We don't have <systemd/sd-daemon.h>.
6823 (substitute* '("common/gdm-log.c"
6824 "daemon/gdm-server.c"
6825 "daemon/gdm-session-worker.c"
6826 "daemon/gdm-session-worker-job.c")
6827 (("#include <systemd/sd-daemon\\.h>") ""))
6828 ;; Use elogind for sd-login.
6829 (substitute* '("common/gdm-common.c"
6830 "daemon/gdm-local-display-factory.c"
6831 "daemon/gdm-manager.c"
6832 "libgdm/gdm-user-switching.c")
6833 (("#include <systemd/sd-login\\.h>")
6834 "#include <elogind/sd-login.h>"))
6835 ;; Check for elogind.
6836 (substitute* '("configure")
6837 (("libsystemd")
6838 "libelogind"))
6839 ;; Look for system-installed sessions in
6840 ;; /run/current-system/profile/share.
6841 (substitute* '("libgdm/gdm-sessions.c"
6842 "daemon/gdm-session.c"
6843 "daemon/gdm-display.c"
6844 "daemon/gdm-launch-environment.c")
6845 (("DATADIR \"/x")
6846 "\"/run/current-system/profile/share/x")
6847 (("DATADIR \"/wayland")
6848 "\"/run/current-system/profile/share/wayland")
6849 (("DATADIR \"/gnome")
6850 "\"/run/current-system/profile/share/gnome"))
6851 (let ((propagate '("GDM_CUSTOM_CONF"
6852 "GDM_DBUS_DAEMON"
6853 "GDM_X_SERVER"
6854 "GDM_X_SESSION"
6855 ;; XXX: Remove this once GNOME Shell is
6856 ;; a dependency of GDM.
6857 "XDG_DATA_DIRS")))
6858 (substitute* "daemon/gdm-session.c"
6859 (("set_up_session_environment \\(self\\);")
6860 (apply string-append
6861 "set_up_session_environment (self);\n"
6862 (map (lambda (name)
6863 (string-append
6864 "gdm_session_set_environment_variable "
6865 "(self, \"" name "\","
6866 "g_getenv (\"" name "\"));\n"))
6867 propagate)))))
6868 ;; Find the configuration file using an environment variable.
6869 (substitute* '("common/gdm-settings.c")
6870 (("GDM_CUSTOM_CONF")
6871 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6872 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6873 " : GDM_CUSTOM_CONF)")))
6874 ;; Use service-supplied path to X.
6875 (substitute* '("daemon/gdm-server.c")
6876 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6877 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6878 (substitute* '("daemon/gdm-wayland-session.c"
6879 "daemon/gdm-x-session.c")
6880 (("\"dbus-daemon\"")
6881 "g_getenv (\"GDM_DBUS_DAEMON\")")
6882 (("X_SERVER")
6883 "g_getenv (\"GDM_X_SERVER\")")
6884 (("GDMCONFDIR \"/Xsession\"")
6885 "g_getenv (\"GDM_X_SESSION\")"))
6886 ;; Use an absolute path for GNOME Session.
6887 (substitute* "daemon/gdm-launch-environment.c"
6888 (("\"gnome-session\"")
6889 (string-append "\"" (assoc-ref inputs "gnome-session")
6890 "/bin/gnome-session\"")))
6891 ;; Do not automatically select the placeholder session.
6892 (substitute* "daemon/gdm-session.c"
6893 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6894 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6895 "(g_strcmp0(search_dirs[i], \""
6896 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6897 "\") == 0 && "
6898 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6899 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
6900 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
6901 #t))
6902 ;; GDM requires that there be at least one desktop entry
6903 ;; file. This phase installs a hidden one that simply
6904 ;; fails. This enables users to use GDM with a
6905 ;; '~/.xsession' script with no other desktop entry files.
6906 ;; See <https://bugs.gnu.org/35068>.
6907 (add-after 'install 'install-placeholder-desktop-entry
6908 (lambda* (#:key inputs outputs #:allow-other-keys)
6909 (let* ((out (assoc-ref outputs "out"))
6910 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6911 (fail (string-append sessions "/fail.desktop")))
6912 (mkdir-p sessions)
6913 (with-output-to-file fail
6914 (lambda ()
6915 (for-each
6916 display
6917 '("[Desktop Entry]\n"
6918 "Encoding=UTF-8\n"
6919 "Type=Application\n"
6920 "Name=Fail\n"
6921 "Comment=This session fails immediately.\n"
6922 "NoDisplay=true\n"
6923 "Exec=false\n"))))
6924 #t)))
6925 ;; GDM needs GNOME Session to run these applications. We link
6926 ;; their autostart files in `share/gdm/greeter/autostart'
6927 ;; because GDM explicitly tells GNOME Session to look there.
6928 ;;
6929 ;; XXX: GNOME Shell should be linked here too, but currently
6930 ;; GNOME Shell depends on GDM.
6931 (add-after 'install 'link-autostart-files
6932 (lambda* (#:key inputs outputs #:allow-other-keys)
6933 (let* ((out (assoc-ref outputs "out"))
6934 (autostart (string-append out "/share/gdm/"
6935 "greeter/autostart"))
6936 (settings (assoc-ref inputs "gnome-settings-daemon")))
6937 (mkdir-p autostart)
6938 (with-directory-excursion autostart
6939 (for-each (lambda (desktop)
6940 (symlink desktop (basename desktop)))
6941 (find-files (string-append settings "/etc/xdg"))))
6942 #t))))))
6943 (native-inputs
6944 `(("dconf" ,dconf)
6945 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6946 ("gobject-introspection" ,gobject-introspection)
6947 ("intltool" ,intltool)
6948 ("itstool" ,itstool)
6949 ("pkg-config" ,pkg-config)
6950 ("xmllint" ,libxml2)))
6951 (inputs
6952 `(("accountsservice" ,accountsservice)
6953 ("check" ,check) ; for testing
6954 ("elogind" ,elogind)
6955 ("gnome-session" ,gnome-session)
6956 ("gnome-settings-daemon" ,gnome-settings-daemon)
6957 ("gtk+" ,gtk+)
6958 ("iso-codes" ,iso-codes)
6959 ("libcanberra" ,libcanberra)
6960 ("linux-pam" ,linux-pam)))
6961 (synopsis "Display manager for GNOME")
6962 (home-page "https://wiki.gnome.org/Projects/GDM/")
6963 (description
6964 "GNOME Display Manager is a system service that is responsible for
6965 providing graphical log-ins and managing local and remote displays.")
6966 (license license:gpl2+)))
6967
6968 (define-public libgtop
6969 (package
6970 (name "libgtop")
6971 (version "2.40.0")
6972 (source (origin
6973 (method url-fetch)
6974 (uri (string-append "mirror://gnome/sources/libgtop/"
6975 (version-major+minor version) "/"
6976 "libgtop-" version ".tar.xz"))
6977 (sha256
6978 (base32
6979 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
6980 (build-system gnu-build-system)
6981 (native-inputs
6982 `(("gobject-introspection" ,gobject-introspection)
6983 ("intltool" ,intltool)
6984 ("perl" ,perl)
6985 ("pkg-config" ,pkg-config)))
6986 (propagated-inputs
6987 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6988 (synopsis "Portable system access library")
6989 (home-page "https://www.gnome.org/")
6990 (description
6991 "LibGTop is a library to get system specific data such as CPU and memory
6992 usage and information about running processes.")
6993 (license license:gpl2+)))
6994
6995 (define-public gnome-bluetooth
6996 (package
6997 (name "gnome-bluetooth")
6998 (version "3.34.0")
6999 (source (origin
7000 (method url-fetch)
7001 (uri (string-append "mirror://gnome/sources/" name "/"
7002 (version-major+minor version) "/"
7003 name "-" version ".tar.xz"))
7004 (sha256
7005 (base32
7006 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
7007 (build-system meson-build-system)
7008 (native-inputs
7009 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7010 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7011 ("gobject-introspection" ,gobject-introspection)
7012 ("intltool" ,intltool)
7013 ("pkg-config" ,pkg-config)
7014 ("xmllint" ,libxml2)))
7015 (propagated-inputs
7016 ;; gnome-bluetooth-1.0.pc refers to all these.
7017 `(("glib" ,glib)
7018 ("gtk+" ,gtk+)))
7019 (inputs
7020 `(("eudev" ,eudev)
7021 ("libcanberra" ,libcanberra)
7022 ("libnotify" ,libnotify)))
7023 (synopsis "GNOME Bluetooth subsystem")
7024 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7025 (description
7026 "This package contains tools for managing and manipulating Bluetooth
7027 devices using the GNOME desktop.")
7028 (license license:lgpl2.1+)))
7029
7030 (define-public gnome-control-center
7031 (package
7032 (name "gnome-control-center")
7033 (version "3.34.2")
7034 (source (origin
7035 (method url-fetch)
7036 (uri (string-append "mirror://gnome/sources/" name "/"
7037 (version-major+minor version) "/"
7038 name "-" version ".tar.xz"))
7039 (sha256
7040 (base32
7041 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7042 (build-system meson-build-system)
7043 (arguments
7044 '(#:glib-or-gtk? #t
7045 #:configure-flags
7046 (list "-Dcheese=false"
7047 (string-append "-Dgnome_session_libexecdir="
7048 (assoc-ref %build-inputs "gnome-session")
7049 "/libexec"))
7050 #:phases
7051 (modify-phases %standard-phases
7052 (add-before 'configure 'patch-paths
7053 (lambda* (#:key inputs #:allow-other-keys)
7054 (let ((libc (assoc-ref inputs "libc"))
7055 (tzdata (assoc-ref inputs "tzdata"))
7056 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7057 (nm-applet (assoc-ref inputs "network-manager-applet"))
7058 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7059 (substitute* "panels/datetime/tz.h"
7060 (("/usr/share/zoneinfo/zone.tab")
7061 (string-append tzdata "/share/zoneinfo/zone.tab")))
7062 (substitute* "tests/datetime/test-endianess.c"
7063 (("/usr/share/locale")
7064 (string-append libc "/share/locale")))
7065 (substitute* "panels/region/cc-region-panel.c"
7066 (("\"gkbd-keyboard-display")
7067 (string-append "\"" libgnomekbd
7068 "/bin/gkbd-keyboard-display")))
7069 (substitute* '("panels/network/net-device-wifi.c"
7070 "panels/network/net-device.c"
7071 "panels/network/connection-editor/net-connection-editor.c")
7072 (("\"nm-connection-editor")
7073 (string-append "\"" nm-applet
7074 "/bin/nm-connection-editor")))
7075 (substitute* '("panels/user-accounts/run-passwd.c")
7076 (("/usr/bin/passwd")
7077 "/run/setuid-programs/passwd"))
7078 (substitute* "panels/info/cc-info-overview-panel.c"
7079 (("DATADIR \"/gnome/gnome-version.xml\"")
7080 (string-append "\"" gnome-desktop
7081 "/share/gnome/gnome-version.xml\"")))
7082 #t)))
7083 (add-after 'unpack 'skip-gtk-update-icon-cache
7084 ;; Don't create 'icon-theme.cache'.
7085 (lambda _
7086 (substitute* "build-aux/meson/meson_post_install.py"
7087 (("gtk-update-icon-cache") (which "true")))
7088 #t)))))
7089 (native-inputs
7090 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7091 ("intltool" ,intltool)
7092 ("pkg-config" ,pkg-config)
7093 ("xsltproc" ,libxslt)
7094 ;; For tests
7095 ("hicolor-icon-theme" ,hicolor-icon-theme)
7096 ("python-dbusmock" ,python-dbusmock)
7097 ("xorg-server" ,xorg-server-for-tests)))
7098 (inputs
7099 `(("accountsservice" ,accountsservice)
7100 ("clutter-gtk" ,clutter-gtk)
7101 ("colord-gtk" ,colord-gtk)
7102 ("cups" ,cups)
7103 ("dconf" ,dconf)
7104 ("docbook-xsl" ,docbook-xsl)
7105 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7106 ("gnome-bluetooth" ,gnome-bluetooth)
7107 ("gnome-desktop" ,gnome-desktop)
7108 ("gnome-online-accounts" ,gnome-online-accounts)
7109 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7110 ("gnome-session" ,gnome-session)
7111 ("gnome-settings-daemon" ,gnome-settings-daemon)
7112 ("grilo" ,grilo)
7113 ("gsound" ,gsound)
7114 ("ibus" ,ibus)
7115 ("libcanberra" ,libcanberra)
7116 ("libgnomekbd" ,libgnomekbd)
7117 ("libgudev" ,libgudev)
7118 ("libgtop" ,libgtop)
7119 ("libpwquality" ,libpwquality)
7120 ("libsecret" ,libsecret)
7121 ("libsoup" ,libsoup)
7122 ("libxml2" ,libxml2)
7123 ("libwacom" ,libwacom)
7124 ("mesa" ,mesa)
7125 ("mit-krb5" ,mit-krb5)
7126 ("modem-manager" ,modem-manager)
7127 ("network-manager-applet" ,network-manager-applet)
7128 ("polkit" ,polkit)
7129 ("pulseaudio" ,pulseaudio)
7130 ("smbclient" ,samba)
7131 ("tzdata" ,tzdata)
7132 ("udisks" ,udisks)
7133 ("upower" ,upower)))
7134 (synopsis "Utilities to configure the GNOME desktop")
7135 (home-page "https://www.gnome.org/")
7136 (description
7137 "This package contains configuration applets for the GNOME desktop,
7138 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7139 properties, sound setup, desktop theme and background, user interface
7140 properties, screen resolution, and other GNOME parameters.")
7141 (license license:gpl2+)))
7142
7143 (define-public gnome-shell
7144 (package
7145 (name "gnome-shell")
7146 (version "3.34.2")
7147 (source (origin
7148 (method url-fetch)
7149 (uri (string-append "mirror://gnome/sources/" name "/"
7150 (version-major+minor version) "/"
7151 name "-" version ".tar.xz"))
7152 (sha256
7153 (base32
7154 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7155 (patches (search-patches "gnome-shell-theme.patch"
7156 "gnome-shell-disable-test.patch"))
7157 (modules '((guix build utils)))
7158 (snippet
7159 #~(begin
7160 ;; Copy images for use on the GDM log-in screen.
7161 (copy-file #$(file-append %artwork-repository
7162 "/slim/0.x/background.png")
7163 "data/theme/guix-background.png")
7164 (copy-file #$(file-append %artwork-repository
7165 "/logo/Guix-horizontal-white.svg")
7166 "data/theme/guix-logo.svg")
7167 #t))))
7168 (build-system meson-build-system)
7169 (arguments
7170 `(#:glib-or-gtk? #t
7171 #:disallowed-references ((,glib "bin")
7172 ,inkscape ,libxslt
7173 ,ruby-sass)
7174 #:configure-flags
7175 (list "-Dsystemd=false"
7176 ;; Otherwise, the RUNPATH will lack the final path component.
7177 (string-append "-Dc_link_args=-Wl,-rpath="
7178 (assoc-ref %outputs "out")
7179 "/lib/gnome-shell"))
7180
7181 #:modules ((guix build meson-build-system)
7182 (guix build utils)
7183 (srfi srfi-1))
7184
7185 #:phases
7186 (modify-phases %standard-phases
7187 (add-after 'unpack 'fix-keysdir
7188 (lambda* (#:key outputs #:allow-other-keys)
7189 (let* ((out (assoc-ref outputs "out"))
7190 (keysdir (string-append
7191 out "/share/gnome-control-center/keybindings")))
7192 (substitute* "meson.build"
7193 (("keysdir =.*")
7194 (string-append "keysdir = '" keysdir "'\n")))
7195 #t)))
7196 (add-before 'configure 'convert-logo-to-png
7197 (lambda* (#:key inputs #:allow-other-keys)
7198 ;; Convert the logo from SVG to PNG.
7199 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7200 "data/theme/guix-logo.svg")))
7201 (add-before 'configure 'record-absolute-file-names
7202 (lambda* (#:key inputs #:allow-other-keys)
7203 (substitute* "js/misc/ibusManager.js"
7204 (("'ibus-daemon'")
7205 (string-append "'" (assoc-ref inputs "ibus")
7206 "/bin/ibus-daemon'")))
7207 (substitute* "js/ui/status/keyboard.js"
7208 (("'gkbd-keyboard-display'")
7209 (string-append "'" (assoc-ref inputs "libgnomekbd")
7210 "/bin/gkbd-keyboard-display'")))
7211 #t))
7212 (add-before 'check 'pre-check
7213 (lambda* (#:key inputs #:allow-other-keys)
7214 ;; Tests require a running X server.
7215 (system "Xvfb :1 &")
7216 (setenv "DISPLAY" ":1")
7217 #t))
7218 (add-after 'install 'wrap-programs
7219 (lambda* (#:key inputs outputs #:allow-other-keys)
7220 (let ((out (assoc-ref outputs "out"))
7221 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7222 (python-path (getenv "PYTHONPATH")))
7223 (wrap-program (string-append out "/bin/gnome-shell")
7224 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7225 ;; FIXME: gnome-shell loads these libraries with unqualified
7226 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7227 ;; alternative might be to patch gnome-shell.
7228 `("LD_LIBRARY_PATH" ":" prefix
7229 ,(map (lambda (pkg)
7230 (string-append (assoc-ref inputs pkg) "/lib"))
7231 '("gdk-pixbuf"
7232 "gnome-bluetooth" "librsvg" "libgweather"))))
7233 (for-each
7234 (lambda (prog)
7235 (wrap-program (string-append out "/bin/" prog)
7236 `("PYTHONPATH" ":" prefix (,python-path))
7237 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7238 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7239 #t)))
7240 (replace 'glib-or-gtk-wrap
7241 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7242 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7243 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7244 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7245 ;; phase. Fix that since we don't need these.
7246 (wrap #:inputs (fold alist-delete inputs
7247 '("inkscape" "intltool" "glib:bin"))
7248 #:outputs outputs)))))))
7249 (native-inputs
7250 `(("asciidoc" ,asciidoc)
7251 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7252 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7253 ("gobject-introspection" ,gobject-introspection)
7254 ("inkscape" ,inkscape)
7255 ("intltool" ,intltool)
7256 ("pkg-config" ,pkg-config)
7257 ("python" ,python)
7258 ("ruby-sass" ,ruby-sass)
7259 ("sassc" ,sassc)
7260 ("xsltproc" ,libxslt)
7261 ;; For tests
7262 ("xorg-server" ,xorg-server-for-tests)))
7263 (inputs
7264 `(("accountsservice" ,accountsservice)
7265 ("caribou" ,caribou)
7266 ("docbook-xsl" ,docbook-xsl)
7267 ("evolution-data-server" ,evolution-data-server)
7268 ("gcr" ,gcr)
7269 ("gdm" ,gdm)
7270 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7271 ("gjs" ,gjs)
7272 ("gnome-autoar" ,gnome-autoar)
7273 ("gnome-bluetooth" ,gnome-bluetooth)
7274 ("gnome-desktop" ,gnome-desktop)
7275 ("gnome-settings-daemon" ,gnome-settings-daemon)
7276 ("gst-plugins-base" ,gst-plugins-base)
7277 ("ibus" ,ibus)
7278 ("libcanberra" ,libcanberra)
7279 ("libcroco" ,libcroco)
7280 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7281 ("libgweather" ,libgweather)
7282 ("libsoup" ,libsoup)
7283 ("mesa-headers" ,mesa-headers)
7284 ("mutter" ,mutter)
7285 ("network-manager-applet" ,network-manager-applet)
7286 ("polkit" ,polkit)
7287 ("pulseaudio" ,pulseaudio)
7288 ("python-pygobject" ,python-pygobject)
7289 ("startup-notification" ,startup-notification)
7290 ("telepathy-logger" ,telepathy-logger)
7291 ("upower" ,upower)
7292 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7293 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7294 ("librsvg" ,librsvg)
7295 ("geoclue" ,geoclue)))
7296 (synopsis "Desktop shell for GNOME")
7297 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7298 (description
7299 "GNOME Shell provides core user interface functions for the GNOME desktop,
7300 like switching to windows and launching applications.")
7301 (license license:gpl2+)))
7302
7303 (define-public gtk-vnc
7304 (package
7305 (name "gtk-vnc")
7306 (version "0.9.0")
7307 (source
7308 (origin
7309 (method url-fetch)
7310 (uri (string-append "mirror://gnome/sources/" name "/"
7311 (version-major+minor version) "/"
7312 name "-" version ".tar.xz"))
7313 (sha256
7314 (base32
7315 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7316 (build-system gnu-build-system)
7317 (arguments
7318 '(#:configure-flags '("--with-gtk=3.0")))
7319 (propagated-inputs
7320 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7321 (inputs
7322 `(("cyrus-sasl" ,cyrus-sasl)
7323 ("gnutls" ,gnutls)
7324 ("libgcrypt" ,libgcrypt)
7325 ("pulseaudio" ,pulseaudio)))
7326 (native-inputs
7327 `(("glib:bin" ,glib "bin")
7328 ("gobject-introspection" ,gobject-introspection)
7329 ("intltool" ,intltool)
7330 ("pkg-config" ,pkg-config)
7331 ("python-wrapper" ,python-wrapper)
7332 ("vala" ,vala)))
7333 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7334 (synopsis "VNC viewer widget for GTK+")
7335 (description
7336 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7337 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7338 GTK-VNC implements client side RFB protocol and authentication extensions such
7339 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7340 (license license:lgpl2.1+)))
7341
7342 (define-public gnome-autoar
7343 (package
7344 (name "gnome-autoar")
7345 (version "0.2.4")
7346 (source (origin
7347 (method url-fetch)
7348 (uri (string-append "mirror://gnome/sources/" name "/"
7349 (version-major+minor version) "/"
7350 name "-" version ".tar.xz"))
7351 (sha256
7352 (base32
7353 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
7354 (build-system glib-or-gtk-build-system)
7355 (native-inputs
7356 `(("gobject-introspection" ,gobject-introspection)
7357 ("pkg-config" ,pkg-config)))
7358 (propagated-inputs
7359 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
7360 (inputs
7361 `(("gtk+" ,gtk+)))
7362 (synopsis "Archives integration support for GNOME")
7363 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7364 (description
7365 "GNOME Autoar is a library which makes creating and extracting archives
7366 easy, safe, and automatic.")
7367 (license license:lgpl2.1+)))
7368
7369 (define-public tracker
7370 (package
7371 (name "tracker")
7372 (version "2.3.4")
7373 (source (origin
7374 (method url-fetch)
7375 (uri (string-append "mirror://gnome/sources/tracker/"
7376 (version-major+minor version) "/"
7377 "tracker-" version ".tar.xz"))
7378 (sha256
7379 (base32
7380 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7381 (build-system meson-build-system)
7382 (arguments
7383 `(#:glib-or-gtk? #t
7384 #:configure-flags
7385 ;; Otherwise, the RUNPATH will lack the final path component.
7386 (list (string-append "-Dc_link_args=-Wl,-rpath="
7387 (assoc-ref %outputs "out") "/lib:"
7388 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7389 #:phases
7390 (modify-phases %standard-phases
7391 (add-before 'check 'pre-check
7392 (lambda _
7393 ;; Some tests expect to write to $HOME.
7394 (setenv "HOME" "/tmp")
7395 #t)))))
7396 (native-inputs
7397 `(("glib:bin" ,glib "bin")
7398 ("gobject-introspection" ,gobject-introspection)
7399 ("python-pygobject" ,python-pygobject)
7400 ("intltool" ,intltool)
7401 ("pkg-config" ,pkg-config)
7402 ("vala" ,vala)))
7403 (inputs
7404 `(("dbus" ,dbus)
7405 ("sqlite" ,sqlite)
7406 ("libxml2" ,libxml2)
7407 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
7408 ("json-glib" ,json-glib)
7409 ("libsoup" ,libsoup)))
7410 (synopsis "Metadata database, indexer and search tool")
7411 (home-page "https://wiki.gnome.org/Projects/Tracker")
7412 (description
7413 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7414
7415 It is a middleware component aimed at desktop application developers who want
7416 their apps to browse and search user content. It's not designed to be used
7417 directly by desktop users, but it provides a commandline tool named
7418 @command{tracker} for the adventurous.
7419
7420 Tracker allows your application to instantly perform full-text searches across
7421 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7422 example. This is achieved by indexing the user's home directory in the
7423 background.
7424
7425 Tracker also allows your application to query and list content that the user
7426 has stored. For example, GNOME Music displays all the music files that are
7427 found by Tracker. This means that GNOME Music doesn't need to maintain a
7428 database of its own.
7429
7430 If you need to go beyond simple searches, Tracker is also a linked data
7431 endpoint and it understands SPARQL. ")
7432 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
7433 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7434 ;; libstemmer is bsd-3 and the rest is gpl2+.
7435 (license (list license:gpl2+
7436 license:bsd-3
7437 license:lgpl2.1+))))
7438
7439 (define-public tracker-miners
7440 (package
7441 (name "tracker-miners")
7442 (version "2.3.3")
7443 (source (origin
7444 (method url-fetch)
7445 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7446 (version-major+minor version)
7447 "/tracker-miners-" version ".tar.xz"))
7448 (sha256
7449 (base32
7450 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
7451 (build-system meson-build-system)
7452 (arguments
7453 `(#:glib-or-gtk? #t
7454 #:configure-flags
7455 (list "-Dminer_rss=false" ; libgrss is required.
7456 ;; Ensure the RUNPATH contains all installed library locations.
7457 (string-append "-Dc_link_args=-Wl,-rpath="
7458 (assoc-ref %outputs "out")
7459 "/lib/tracker-miners-2.0")
7460 ;; TODO: Enable functional tests. Currently, the following error
7461 ;; appears:
7462 ;; Exception: The functional tests require DConf to be the default
7463 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7464 "-Dfunctional_tests=false")))
7465 (native-inputs
7466 `(("dbus" ,dbus)
7467 ("intltool" ,intltool)
7468 ("glib:bin" ,glib "bin")
7469 ("gobject-introspection" ,gobject-introspection)
7470 ("pkg-config" ,pkg-config)
7471 ("python-pygobject" ,python-pygobject)))
7472 (inputs
7473 `(("exempi" ,exempi)
7474 ("ffmpeg" ,ffmpeg)
7475 ("flac" ,flac)
7476 ("giflib" ,giflib)
7477 ("glib" ,glib)
7478 ("gstreamer" ,gstreamer)
7479 ("icu4c" ,icu4c)
7480 ("libcue" ,libcue)
7481 ("libexif" ,libexif)
7482 ("libgsf" ,libgsf)
7483 ("libgxps" ,libgxps)
7484 ("libiptcdata" ,libiptcdata)
7485 ("libjpeg" ,libjpeg-turbo)
7486 ("libosinfo" ,libosinfo)
7487 ("libpng" ,libpng)
7488 ("libseccomp" ,libseccomp)
7489 ("libtiff" ,libtiff)
7490 ("libvorbis" ,libvorbis)
7491 ("libxml2" ,libxml2)
7492 ("poppler" ,poppler)
7493 ("taglib" ,taglib)
7494 ("totem-pl-parser" ,totem-pl-parser)
7495 ("tracker" ,tracker)
7496 ("upower" ,upower)
7497 ("zlib" ,zlib)))
7498 (synopsis "Metadata database, indexer and search tool")
7499 (home-page "https://wiki.gnome.org/Projects/Tracker")
7500 (description
7501 "Tracker is an advanced framework for first class objects with associated
7502 metadata and tags. It provides a one stop solution for all metadata, tags,
7503 shared object databases, search tools and indexing.")
7504 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7505 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7506 (license (list license:gpl2+
7507 license:lgpl2.1+
7508 license:lgpl2.0+))))
7509
7510 (define-public nautilus
7511 (package
7512 (name "nautilus")
7513 (version "3.34.2")
7514 (source (origin
7515 (method url-fetch)
7516 (uri (string-append "mirror://gnome/sources/" name "/"
7517 (version-major+minor version) "/"
7518 name "-" version ".tar.xz"))
7519 (sha256
7520 (base32
7521 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
7522 (build-system meson-build-system)
7523 (arguments
7524 '(#:glib-or-gtk? #t
7525 #:phases
7526 (modify-phases %standard-phases
7527 (add-after 'unpack 'skip-gtk-update-icon-cache
7528 ;; Don't create 'icon-theme.cache'.
7529 (lambda _
7530 (substitute* "build-aux/meson/postinstall.py"
7531 (("gtk-update-icon-cache") "true"))
7532 #t)))
7533 ;; XXX: FAIL: check-nautilus
7534 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7535 #:tests? #f))
7536 (native-inputs
7537 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7538 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7539 ("gobject-introspection" ,gobject-introspection)
7540 ("intltool" ,intltool)
7541 ("pkg-config" ,pkg-config)))
7542 (inputs
7543 `(("dconf" ,dconf)
7544 ("gexiv2" ,gexiv2)
7545 ("gvfs" ,gvfs)
7546 ("exempi" ,exempi)
7547 ("gnome-desktop" ,gnome-desktop)
7548 ("gnome-autoar" ,gnome-autoar)
7549 ("gst-plugins-base" ,gst-plugins-base)
7550 ("libseccomp" ,libseccomp)
7551 ("libselinux" ,libselinux)
7552 ("tracker" ,tracker)
7553 ("tracker-miners" ,tracker-miners)
7554 ;; XXX: gtk+ is required by libnautilus-extension.pc
7555 ;;
7556 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7557 ;; package. See:
7558 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7559 ("gtk+" ,gtk+)
7560 ("libexif" ,libexif)
7561 ("libxml2" ,libxml2)))
7562 (synopsis "File manager for GNOME")
7563 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7564 (description
7565 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7566 design and behaviour, giving the user a simple way to navigate and manage its
7567 files.")
7568 (license license:gpl2+)))
7569
7570 (define-public baobab
7571 (package
7572 (name "baobab")
7573 (version "3.32.0")
7574 (source (origin
7575 (method url-fetch)
7576 (uri (string-append
7577 "mirror://gnome/sources/" name "/"
7578 (version-major+minor version) "/"
7579 name "-" version ".tar.xz"))
7580 (sha256
7581 (base32
7582 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7583 (build-system meson-build-system)
7584 (arguments
7585 '(#:glib-or-gtk? #t))
7586 (native-inputs
7587 `(("intltool" ,intltool)
7588 ("pkg-config" ,pkg-config)
7589 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7590 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7591 ("itstool" ,itstool)
7592 ("xmllint" ,libxml2)
7593 ("glib" ,glib "bin")
7594 ("vala" ,vala)))
7595 (inputs
7596 `(("gtk+" ,gtk+)))
7597 (synopsis "Disk usage analyzer for GNOME")
7598 (description
7599 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7600 usage in the GNOME desktop environment. It can easily scan device volumes or
7601 a specific user-requested directory branch (local or remote). Once the scan
7602 is complete it provides a graphical representation of each selected folder.")
7603 (home-page "https://wiki.gnome.org/Apps/Baobab")
7604 (license license:gpl2+)))
7605
7606 (define-public gnome-backgrounds
7607 (package
7608 (name "gnome-backgrounds")
7609 (version "3.34.0")
7610 (source
7611 (origin
7612 (method url-fetch)
7613 (uri (string-append "mirror://gnome/sources/" name "/"
7614 (version-major+minor version) "/"
7615 name "-" version ".tar.xz"))
7616 (sha256
7617 (base32
7618 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
7619 (build-system meson-build-system)
7620 (native-inputs
7621 `(("intltool" ,intltool)))
7622 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7623 (synopsis "Background images for the GNOME desktop")
7624 (description
7625 "GNOME backgrounds package contains a collection of graphics files which
7626 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7627 the package creates the proper framework and directory structure so that you
7628 can add your own files to the collection.")
7629 (license (list license:gpl2+
7630 license:cc-by2.0
7631 license:cc-by-sa2.0
7632 license:cc-by-sa3.0))))
7633
7634 (define-public gnome-screenshot
7635 (package
7636 (name "gnome-screenshot")
7637 (version "3.34.0")
7638 (source
7639 (origin
7640 (method url-fetch)
7641 (uri (string-append "mirror://gnome/sources/" name "/"
7642 (version-major+minor version) "/"
7643 name "-" version ".tar.xz"))
7644 (sha256
7645 (base32
7646 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
7647 (build-system meson-build-system)
7648 (arguments
7649 '(#:phases
7650 (modify-phases %standard-phases
7651 (add-after 'unpack 'skip-gtk-update-icon-cache
7652 ;; Don't create 'icon-theme.cache'.
7653 (lambda _
7654 (substitute* "build-aux/postinstall.py"
7655 (("gtk-update-icon-cache") "true"))
7656 #t)))))
7657 (native-inputs
7658 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7659 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7660 ("intltool" ,intltool)
7661 ("appstream-glib" ,appstream-glib)
7662 ("pkg-config" ,pkg-config)))
7663 (inputs
7664 `(("gtk+" ,gtk+)
7665 ("libcanberra" ,libcanberra)
7666 ("libx11" ,libx11)
7667 ("libxext" ,libxext)))
7668 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7669 (synopsis "Take pictures of your screen")
7670 (description
7671 "GNOME Screenshot is a utility used for taking screenshots of the entire
7672 screen, a window or a user defined area of the screen, with optional
7673 beautifying border effects.")
7674 (license license:gpl2+)))
7675
7676 (define-public dconf-editor
7677 (package
7678 (name "dconf-editor")
7679 (version "3.34.2")
7680 (source
7681 (origin
7682 (method url-fetch)
7683 (uri (string-append "mirror://gnome/sources/" name "/"
7684 (version-major+minor version) "/"
7685 name "-" version ".tar.xz"))
7686 (sha256
7687 (base32
7688 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
7689 (build-system meson-build-system)
7690 (native-inputs
7691 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7692 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7693 ("intltool" ,intltool)
7694 ("pkg-config" ,pkg-config)
7695 ("vala" ,vala)))
7696 (inputs
7697 `(("dconf" ,dconf)
7698 ("gtk+" ,gtk+)
7699 ("libxml2" ,libxml2)))
7700 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
7701 (synopsis "Graphical editor for GNOME's dconf configuration system")
7702 (description
7703 "Dconf-editor is a graphical tool for browsing and editing the dconf
7704 configuration system for GNOME. It allows users to configure desktop
7705 software that do not provide their own configuration interface.")
7706 (license license:lgpl2.1+)))
7707
7708 (define-public gnome-default-applications
7709 (package
7710 (name "gnome-default-applications")
7711 (version "0")
7712 (build-system trivial-build-system)
7713 (source #f)
7714 (propagated-inputs
7715 `(("nautilus" ,nautilus)
7716 ("evince" ,evince)))
7717 (arguments
7718 `(#:modules ((guix build utils))
7719 #:builder
7720 (begin
7721 (use-modules (guix build utils))
7722 (let* ((out (assoc-ref %outputs "out"))
7723 (apps (string-append out "/share/applications")))
7724 (mkdir-p apps)
7725 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
7726 (lambda (port)
7727 (format port "[Default Applications]\n")
7728 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7729 (format port "application/pdf=evince.desktop\n")
7730 (format port "application/postscript=evince.desktop\n")))
7731 #t))))
7732 (synopsis "Default MIME type associations for the GNOME desktop")
7733 (description
7734 "Given many installed packages which might handle a given MIME type, a
7735 user running the GNOME desktop probably has some preferences: for example,
7736 that folders be opened by default by the Nautilus file manager, not the Baobab
7737 disk usage analyzer. This package establishes that set of default MIME type
7738 associations for GNOME.")
7739 (license license:gpl3+)
7740 (home-page #f)))
7741
7742 (define-public libgovirt
7743 (package
7744 (name "libgovirt")
7745 (version "0.3.6")
7746 (source (origin
7747 (method url-fetch)
7748 (uri (string-append "mirror://gnome/sources/" name "/"
7749 (version-major+minor version) "/"
7750 name "-" version ".tar.xz"))
7751 (sha256
7752 (base32
7753 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7754 (build-system glib-or-gtk-build-system)
7755 (native-inputs
7756 `(("gettext" ,gettext-minimal)
7757 ("glib:bin" ,glib "bin")
7758 ("gobject-introspection" ,gobject-introspection)
7759 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7760 ("gtk+:bin" ,gtk+ "bin")
7761 ("pkg-config" ,pkg-config)))
7762 (inputs
7763 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7764 ("librest" ,rest)))
7765 (synopsis "GoVirt Library")
7766 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7767 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7768 (license license:gpl2+)))
7769
7770 (define-public gnome-weather
7771 (package
7772 (name "gnome-weather")
7773 (version "3.34.0")
7774 (source (origin
7775 (method url-fetch)
7776 (uri (string-append "mirror://gnome/sources/" name "/"
7777 (version-major+minor version) "/"
7778 name "-" version ".tar.xz"))
7779 (sha256
7780 (base32
7781 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7782 (build-system meson-build-system)
7783 (native-inputs
7784 `(("gettext" ,gettext-minimal)
7785 ("glib:bin" ,glib "bin")
7786 ("gobject-introspection" ,gobject-introspection)
7787 ("gtk+:bin" ,gtk+ "bin")
7788 ("pkg-config" ,pkg-config)))
7789 (inputs
7790 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7791 ("appstream-glib" ,appstream-glib)
7792 ("geoclue" ,geoclue)
7793 ("gdk-pixbuf" ,gdk-pixbuf)
7794 ("gjs" ,gjs)
7795 ("gnome-desktop" ,gnome-desktop)
7796 ("libgweather" ,libgweather)))
7797 (arguments
7798 `(#:glib-or-gtk? #t
7799 #:phases
7800 (modify-phases %standard-phases
7801 (add-after 'install 'fix-desktop-file
7802 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7803 ;; See https://issues.guix.gnu.org/issue/39324.
7804 (lambda* (#:key outputs #:allow-other-keys)
7805 (let* ((out (assoc-ref outputs "out"))
7806 (applications (string-append out "/share/applications")))
7807 (substitute* (string-append applications "/org.gnome.Weather.desktop")
7808 (("Exec=.*") "Exec=gnome-weather\n"))
7809 #t)))
7810 (add-after 'install 'wrap
7811 (lambda* (#:key inputs outputs #:allow-other-keys)
7812 (let ((out (assoc-ref outputs "out"))
7813 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7814 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7815 (wrap-program (string-append out "/bin/gnome-weather")
7816 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7817 #t))))))
7818 (synopsis "Weather monitoring for GNOME desktop")
7819 (description "GNOME Weather is a small application that allows you to
7820 monitor the current weather conditions for your city, or anywhere in the
7821 world.")
7822 (home-page "https://wiki.gnome.org/Apps/Weather")
7823 (license license:gpl2+)))
7824
7825 (define-public gnome
7826 (package
7827 (name "gnome")
7828 (version (package-version gnome-shell))
7829 (source #f)
7830 (build-system trivial-build-system)
7831 (arguments '(#:builder (begin (mkdir %output) #t)))
7832 (propagated-inputs
7833 ;; TODO: Add or remove packages according to:
7834 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7835 `(
7836 ;; GNOME-Core-OS-Services
7837 ("accountsservice" ,accountsservice)
7838 ("network-manager" ,network-manager)
7839 ("packagekit" ,packagekit)
7840 ("upower" ,upower)
7841 ;; GNOME-Core-Shell
7842 ("adwaita-icon-theme" ,adwaita-icon-theme)
7843 ("gdm" ,gdm)
7844 ("glib-networking" ,glib-networking)
7845 ("gnome-backgrounds" ,gnome-backgrounds)
7846 ("gnome-bluetooth" ,gnome-bluetooth)
7847 ("gnome-color-manager" ,gnome-color-manager)
7848 ("gnome-control-center" ,gnome-control-center)
7849 ("gnome-desktop" ,gnome-desktop)
7850 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7851 ("gnome-initial-setup" ,gnome-initial-setup)
7852 ("gnome-keyring" ,gnome-keyring)
7853 ("gnome-menus" ,gnome-menus)
7854 ("gnome-session" ,gnome-session)
7855 ("gnome-settings-daemon" ,gnome-settings-daemon)
7856 ("gnome-shell-extensions" ,gnome-shell-extensions)
7857 ("gnome-shell" ,gnome-shell)
7858 ("gnome-themes-extra" ,gnome-themes-extra)
7859 ("gnome-user-docs" ,gnome-user-docs)
7860 ("gnome-user-share" ,gnome-user-share)
7861 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7862 ("gvfs" ,gvfs)
7863 ("mutter" ,mutter)
7864 ("orca" ,orca)
7865 ("rygel" ,rygel)
7866 ("sushi" ,sushi)
7867 ;; GNOME-Core-Utilities
7868 ("baobab" ,baobab)
7869 ("cheese" ,cheese)
7870 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
7871 ;; only works on x86_64, so exclude it on other architectures.
7872 ,@(if (string-prefix? "x86_64" (%current-system))
7873 `(("eog" ,eog))
7874 '())
7875 ("epiphany" ,epiphany)
7876 ("evince" ,evince)
7877 ("file-roller" ,file-roller)
7878 ("gedit" ,gedit)
7879 ; TODO: ("gnome-boxes" ,gnome-boxes)
7880 ("gnome-calculator" ,gnome-calculator)
7881 ("gnome-calendar" ,gnome-calendar)
7882 ("gnome-characters" ,gnome-characters)
7883 ("gnome-clocks" ,gnome-clocks)
7884 ("gnome-contacts" ,gnome-contacts)
7885 ("gnome-disk-utility" ,gnome-disk-utility)
7886 ("gnome-font-viewer" ,gnome-font-viewer)
7887 ("gnome-maps" ,gnome-maps)
7888 ; TODO: ("gnome-music" ,gnome-music)
7889 ; TODO: ("gnome-photos" ,gnome-photos)
7890 ("gnome-screenshot" ,gnome-screenshot)
7891 ("gnome-system-monitor" ,gnome-system-monitor)
7892 ("gnome-terminal" ,gnome-terminal)
7893 ("gnome-weather" ,gnome-weather)
7894 ("nautilus" ,nautilus)
7895 ("simple-scan" ,simple-scan)
7896 ("totem" ,totem)
7897 ("yelp" ,yelp)
7898 ;; Others
7899 ("hicolor-icon-theme" ,hicolor-icon-theme)
7900 ("gnome-online-accounts" ,gnome-online-accounts)
7901
7902 ;; Packages not part of GNOME proper but that are needed for a good
7903 ;; experience. See <https://bugs.gnu.org/39646>.
7904 ;; XXX: Find out exactly which ones are needed and why.
7905 ("font-cantarell" ,font-cantarell)
7906 ("font-dejavu" ,font-dejavu)
7907 ("at-spi2-core" ,at-spi2-core)
7908 ("dbus" ,dbus)
7909 ("dconf" ,dconf)
7910 ("desktop-file-utils" ,desktop-file-utils)
7911 ("gnome-default-applications" ,gnome-default-applications)
7912 ("gnome-themes-standard" ,gnome-themes-standard)
7913 ("gst-plugins-base" ,gst-plugins-base)
7914 ("gst-plugins-good" ,gst-plugins-good)
7915 ("gucharmap" ,gucharmap)
7916 ("pinentry-gnome3" ,pinentry-gnome3)
7917 ("pulseaudio" ,pulseaudio)
7918 ("shared-mime-info" ,shared-mime-info)
7919 ("system-config-printer" ,system-config-printer)
7920 ("xdg-user-dirs" ,xdg-user-dirs)
7921 ("yelp" ,yelp)
7922 ("zenity" ,zenity)))
7923 (synopsis "The GNU desktop environment")
7924 (home-page "https://www.gnome.org/")
7925 (description
7926 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7927 applications for browsing the web, editing text and images, creating
7928 documents and diagrams, playing media, scanning, and much more.")
7929 (license license:gpl2+)))
7930
7931 (define-public byzanz
7932 ;; The last stable release of Byzanz was in 2011, but there have been many
7933 ;; useful commits made to the Byzanz repository since then that it would be
7934 ;; silly to use such an old release.
7935 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7936 (package
7937 (name "byzanz")
7938 (version (string-append "0.2-1." (string-take commit 7)))
7939 (source (origin
7940 (method git-fetch)
7941 (uri (git-reference
7942 (url "https://git.gnome.org/browse/byzanz")
7943 (commit commit)))
7944 (file-name (string-append name "-" version "-checkout"))
7945 (sha256
7946 (base32
7947 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7948 (build-system glib-or-gtk-build-system)
7949 (arguments
7950 '(#:phases
7951 (modify-phases %standard-phases
7952 (add-before 'bootstrap 'build-without-Werror
7953 (lambda _
7954 ;; The build system cleverly detects that we're not building from
7955 ;; a release tarball and turns on -Werror for GCC.
7956 ;; Unsurprisingly, there is a warning during compilation that
7957 ;; causes the build to fail unnecessarily, so we remove the flag.
7958 (substitute* '("configure.ac")
7959 (("-Werror") ""))
7960 #t)))))
7961 (native-inputs
7962 `(("autoconf" ,autoconf)
7963 ("automake" ,automake)
7964 ("gnome-common" ,gnome-common)
7965 ("intltool" ,intltool)
7966 ("libtool" ,libtool)
7967 ("pkg-config" ,pkg-config)
7968 ("which" ,which)))
7969 (inputs
7970 `(("glib" ,glib)
7971 ("gstreamer" ,gstreamer)
7972 ("gst-plugins-base" ,gst-plugins-base)
7973 ("gtk+" ,gtk+)))
7974 (synopsis "Desktop recording program")
7975 (description "Byzanz is a simple desktop recording program with a
7976 command-line interface. It can record part or all of an X display for a
7977 specified duration and save it as a GIF encoded animated image file.")
7978 (home-page "https://git.gnome.org/browse/byzanz")
7979 (license license:gpl2+))))
7980
7981 (define-public gsound
7982 (package
7983 (name "gsound")
7984 (version "1.0.2")
7985 (source (origin
7986 (method url-fetch)
7987 (uri (string-append "mirror://gnome/sources/" name "/"
7988 (version-major+minor version) "/"
7989 name "-" version ".tar.xz"))
7990 (sha256
7991 (base32
7992 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7993 (build-system glib-or-gtk-build-system)
7994 (native-inputs
7995 `(("pkg-config" ,pkg-config)
7996 ("gobject-introspection" ,gobject-introspection)
7997 ("vala" ,vala)))
7998 (inputs
7999 `(("glib" ,glib)
8000 ("libcanberra" ,libcanberra)))
8001 (home-page "https://wiki.gnome.org/Projects/GSound")
8002 (synopsis "GObject wrapper for libcanberra")
8003 (description
8004 "GSound is a small library for playing system sounds. It's designed to be
8005 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8006 library.")
8007 (license license:lgpl2.1+)))
8008
8009 (define-public libzapojit
8010 (package
8011 (name "libzapojit")
8012 (version "0.0.3")
8013 (source (origin
8014 (method url-fetch)
8015 (uri (string-append "mirror://gnome/sources/" name "/"
8016 (version-major+minor version) "/"
8017 name "-" version ".tar.xz"))
8018 (sha256
8019 (base32
8020 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8021 (build-system gnu-build-system)
8022 (native-inputs
8023 `(("gobject-introspection" ,gobject-introspection)
8024 ("intltool" ,intltool)
8025 ("pkg-config" ,pkg-config)))
8026 (inputs
8027 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8028 ("json-glib" ,json-glib)
8029 ("rest" ,rest)))
8030 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8031 (synopsis "Library for accessing SkyDrive and Hotmail")
8032 (description
8033 "Libzapojit is a GLib-based library for accessing online service APIs of
8034 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8035 (license license:lgpl2.1+)))
8036
8037 (define-public gnome-clocks
8038 (package
8039 (name "gnome-clocks")
8040 (version "3.34.0")
8041 (source (origin
8042 (method url-fetch)
8043 (uri (string-append "mirror://gnome/sources/" name "/"
8044 (version-major+minor version) "/"
8045 name "-" version ".tar.xz"))
8046 (sha256
8047 (base32
8048 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8049 (build-system meson-build-system)
8050 (arguments
8051 '(#:glib-or-gtk? #t
8052 #:phases
8053 (modify-phases %standard-phases
8054 (add-after 'unpack 'skip-gtk-update-icon-cache
8055 ;; Don't create 'icon-theme.cache'.
8056 (lambda _
8057 (substitute* "build-aux/post-install.py"
8058 (("gtk-update-icon-cache") "true"))
8059 #t)))))
8060 (native-inputs
8061 `(("vala" ,vala)
8062 ("pkg-config" ,pkg-config)
8063 ("glib" ,glib "bin") ; for glib-compile-resources
8064 ("desktop-file-utils" ,desktop-file-utils)
8065 ("gettext" ,gettext-minimal)
8066 ("itstool" ,itstool)))
8067 (inputs
8068 `(("glib" ,glib)
8069 ("gtk+" ,gtk+)
8070 ("gsound" ,gsound)
8071 ("geoclue" ,geoclue)
8072 ("geocode-glib" ,geocode-glib)
8073 ("libgweather" ,libgweather)
8074 ("gnome-desktop" ,gnome-desktop)))
8075 (home-page "https://wiki.gnome.org/Apps/Clocks")
8076 (synopsis "GNOME's clock application")
8077 (description
8078 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8079 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8080 (license license:gpl3+)))
8081
8082 (define-public gnome-calendar
8083 (package
8084 (name "gnome-calendar")
8085 (version "3.34.2")
8086 (source (origin
8087 (method url-fetch)
8088 (uri (string-append "mirror://gnome/sources/" name "/"
8089 (version-major+minor version) "/"
8090 name "-" version ".tar.xz"))
8091 (sha256
8092 (base32
8093 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
8094 (build-system meson-build-system)
8095 (arguments
8096 '(#:glib-or-gtk? #t
8097 ;; gnome-calendar has to be installed before the tests can be run
8098 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8099 #:tests? #f
8100 #:phases
8101 (modify-phases %standard-phases
8102 (add-after 'unpack 'skip-gtk-update-icon-cache
8103 ;; Don't create 'icon-theme.cache'.
8104 (lambda _
8105 (substitute* "build-aux/meson/meson_post_install.py"
8106 (("gtk-update-icon-cache") "true"))
8107 #t)))))
8108 (native-inputs
8109 `(("gettext" ,gettext-minimal)
8110 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8111 ("pkg-config" ,pkg-config)))
8112 (inputs
8113 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8114 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8115 ("libdazzle" ,libdazzle)
8116 ("libedataserverui" ,evolution-data-server)
8117 ("libgweather" ,libgweather)
8118 ("geoclue" ,geoclue)))
8119 (propagated-inputs
8120 `(("evolution-data-server" ,evolution-data-server)))
8121 (home-page "https://wiki.gnome.org/Apps/Calendar")
8122 (synopsis "GNOME's calendar application")
8123 (description
8124 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8125 desktop. It supports multiple calendars, month, week and year view.")
8126 (license license:gpl3+)))
8127
8128 (define-public gnome-todo
8129 (package
8130 (name "gnome-todo")
8131 (version "3.28.1")
8132 (source (origin
8133 (method url-fetch)
8134 (uri (string-append "mirror://gnome/sources/" name "/"
8135 (version-major+minor version) "/"
8136 name "-" version ".tar.xz"))
8137 (sha256
8138 (base32
8139 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8140 (patches
8141 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
8142 (build-system meson-build-system)
8143 (arguments
8144 '(#:glib-or-gtk? #t
8145 #:phases (modify-phases %standard-phases
8146 (add-after
8147 'install 'wrap-gnome-todo
8148 (lambda* (#:key inputs outputs #:allow-other-keys)
8149 (let ((out (assoc-ref outputs "out"))
8150 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8151 (python-path (getenv "PYTHONPATH")))
8152 (wrap-program (string-append out "/bin/gnome-todo")
8153 ;; XXX: gi plugins are broken.
8154 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8155 ;; For plugins.
8156 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8157 `("PYTHONPATH" ":" prefix (,python-path))))
8158 #t)))))
8159 (native-inputs
8160 `(("gettext" ,gettext-minimal)
8161 ("gobject-introspection" ,gobject-introspection)
8162 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8163 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8164 ("pkg-config" ,pkg-config)))
8165 (inputs
8166 `(("rest" ,rest) ; For Todoist plugin
8167 ("json-glib" ,json-glib) ; For Todoist plugin
8168 ("libedataserverui" ,evolution-data-server)
8169 ("libical" ,libical)
8170 ("libpeas" ,libpeas)
8171 ("python-pygobject" ,python-pygobject)
8172 ("evolution-data-server" ,evolution-data-server)
8173 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8174 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8175 (home-page "https://wiki.gnome.org/Apps/Todo")
8176 (synopsis "GNOME's ToDo Application")
8177 (description
8178 "GNOME To Do is a simplistic personal task manager designed to perfectly
8179 fit the GNOME desktop.")
8180 (license license:gpl3+)))
8181
8182 (define-public gnome-dictionary
8183 (package
8184 (name "gnome-dictionary")
8185 (version "3.26.1")
8186 (source (origin
8187 (method url-fetch)
8188 (uri (string-append "mirror://gnome/sources/" name "/"
8189 (version-major+minor version) "/"
8190 name "-" version ".tar.xz"))
8191 (sha256
8192 (base32
8193 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8194 (build-system meson-build-system)
8195 (arguments '(#:glib-or-gtk? #t
8196 #:phases (modify-phases %standard-phases
8197 (add-after 'unpack 'patch-install-script
8198 (lambda _
8199 ;; This script attempts to compile glib schemas
8200 ;; and create an empty MIME database. We do
8201 ;; that elsewhere, so prevent it from running.
8202 (substitute* "build-aux/post-install.sh"
8203 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8204 #t)))))
8205 (native-inputs
8206 `(("glib:bin" ,glib "bin")
8207 ("gobject-introspection" ,gobject-introspection)
8208 ("intltool" ,intltool)
8209 ("itstool" ,itstool)
8210 ("pkg-config" ,pkg-config)
8211 ("xmllint" ,libxml2)))
8212 (inputs
8213 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8214 ("gtk+" ,gtk+)))
8215 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8216 (synopsis "Look up words in dictionary sources")
8217 (description
8218 "GNOME Dictionary can look for the definition or translation of a word in
8219 existing databases over the internet.")
8220 (license license:gpl3+)))
8221
8222 (define-public gnome-tweaks
8223 (package
8224 (name "gnome-tweaks")
8225 (version "3.34.0")
8226 (source (origin
8227 (method url-fetch)
8228 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8229 (version-major+minor version) "/"
8230 "gnome-tweaks-" version ".tar.xz"))
8231 (patches
8232 (list (search-patch "gnome-tweaks-search-paths.patch")))
8233 (sha256
8234 (base32
8235 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
8236 (build-system meson-build-system)
8237 (arguments
8238 `(#:glib-or-gtk? #t
8239 #:configure-flags '("-Dlocalstatedir=/tmp"
8240 "-Dsysconfdir=/tmp")
8241 #:imported-modules ((guix build python-build-system)
8242 ,@%meson-build-system-modules)
8243 #:phases
8244 (modify-phases %standard-phases
8245 (add-after 'unpack 'skip-gtk-update-icon-cache
8246 ;; Don't create 'icon-theme.cache'.
8247 (lambda _
8248 (substitute* "meson-postinstall.py"
8249 (("gtk-update-icon-cache") "true"))
8250 #t))
8251 (add-after 'install 'wrap
8252 (@@ (guix build python-build-system) wrap))
8253 (add-after 'wrap 'wrap-gi-typelib
8254 (lambda* (#:key inputs outputs #:allow-other-keys)
8255 (let ((out (assoc-ref outputs "out"))
8256 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8257 (wrap-program (string-append out "/bin/gnome-tweaks")
8258 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8259 #t)))))
8260 (native-inputs
8261 `(("intltool" ,intltool)
8262 ("pkg-config" ,pkg-config)))
8263 (inputs
8264 `(("gnome-desktop" ,gnome-desktop)
8265 ("gtk+" ,gtk+)
8266 ("gobject-introspection" ,gobject-introspection)
8267 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8268 ("libhandy" ,libhandy)
8269 ("libnotify" ,libnotify)
8270 ("libsoup" ,libsoup)
8271 ("nautilus" ,nautilus)
8272 ("python" ,python)
8273 ("python-pygobject" ,python-pygobject)))
8274 (synopsis "Customize advanced GNOME 3 options")
8275 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8276 (description
8277 "GNOME Tweaks allows adjusting advanced configuration settings in
8278 GNOME 3. This includes things like the fonts used in user interface elements,
8279 alternative user interface themes, changes in window management behavior,
8280 GNOME Shell appearance and extension, etc.")
8281 (license license:gpl3+)))
8282
8283 (define-public gnome-shell-extensions
8284 (package
8285 (name "gnome-shell-extensions")
8286 (version "3.34.2")
8287 (source (origin
8288 (method url-fetch)
8289 (uri (string-append "mirror://gnome/sources/" name "/"
8290 (version-major+minor version) "/"
8291 name "-" version ".tar.xz"))
8292 (sha256
8293 (base32
8294 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
8295 (build-system meson-build-system)
8296 (arguments
8297 '(#:configure-flags '("-Dextension_set=all")))
8298 (native-inputs
8299 `(("glib:bin" ,glib "bin")
8300 ("intltool" ,intltool)
8301 ("pkg-config" ,pkg-config)))
8302 (propagated-inputs
8303 `(("glib" ,glib)))
8304 (synopsis "Extensions for GNOME Shell")
8305 (description "GNOME Shell extensions modify and extend GNOME Shell
8306 functionality and behavior.")
8307 (home-page "https://extensions.gnome.org/")
8308 (license license:gpl3+)))
8309
8310 (define-public arc-theme
8311 (package
8312 (name "arc-theme")
8313 (version "20190917")
8314 (source (origin
8315 (method git-fetch)
8316 (uri (git-reference
8317 (url "https://github.com/NicoHood/arc-theme.git")
8318 (commit version)))
8319 (file-name (git-file-name name version))
8320 (sha256
8321 (base32
8322 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8323 (build-system gnu-build-system)
8324 (arguments
8325 '(#:phases
8326 (modify-phases %standard-phases
8327 ;; autogen.sh calls configure at the end of the script.
8328 (replace 'bootstrap
8329 (lambda _ (invoke "autoreconf" "-vfi")))
8330 (add-before 'build 'set-home ;placate Inkscape
8331 (lambda _
8332 (setenv "HOME" (getcwd))
8333 #t)))))
8334 (native-inputs
8335 `(("autoconf" ,autoconf)
8336 ("automake" ,automake)
8337 ("glib" ,glib "bin") ; for glib-compile-resources
8338 ("gnome-shell" ,gnome-shell)
8339 ("gtk+" ,gtk+)
8340 ("inkscape" ,inkscape)
8341 ("optipng" ,optipng)
8342 ("pkg-config" ,pkg-config)
8343 ("sassc" ,sassc/libsass-3.5)))
8344 (synopsis "A flat GTK+ theme with transparent elements")
8345 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8346 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8347 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8348 (home-page "https://github.com/horst3180/arc-theme")
8349 ;; No "or later" language found.
8350 (license license:gpl3+)))
8351
8352 (define-public faba-icon-theme
8353 (package
8354 (name "faba-icon-theme")
8355 (version "4.3")
8356 (source
8357 (origin
8358 (method git-fetch)
8359 (uri (git-reference
8360 (url "https://github.com/snwh/faba-icon-theme.git")
8361 (commit (string-append "v" version))))
8362 (file-name (git-file-name name version))
8363 (sha256
8364 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8365 (build-system meson-build-system)
8366 (arguments
8367 `(#:phases
8368 (modify-phases %standard-phases
8369 (add-before 'configure 'disable-post-install
8370 (lambda _
8371 (substitute* "meson.build"
8372 (("meson.add_install_script.*") "")))))))
8373 (native-inputs
8374 `(("autoconf" ,autoconf)
8375 ("automake" ,automake)))
8376 (synopsis "Faba icon theme")
8377 (description
8378 "Faba is a minimal icon set used as a basis for other themes such as
8379 Moka")
8380 (home-page "https://snwh.org/moka")
8381 (license (list license:lgpl3+
8382 license:cc-by-sa4.0))))
8383
8384 (define-public moka-icon-theme
8385 (package
8386 (inherit faba-icon-theme)
8387 (name "moka-icon-theme")
8388 (version "5.4.0")
8389 (source
8390 (origin
8391 (method git-fetch)
8392 (uri (git-reference
8393 (url "https://github.com/snwh/moka-icon-theme.git")
8394 (commit (string-append "v" version))))
8395 (file-name (git-file-name name version))
8396 (sha256
8397 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8398 (propagated-inputs
8399 ;; Moka is based on Faba by using it as a fallback icon set instead of
8400 ;; bundling it, so we need to add it as a propagated input.
8401 `(("faba-icon-theme" ,faba-icon-theme)))
8402 (synopsis "Moka icon theme")
8403 (description "Moka is a stylized desktop icon set, designed to be clear,
8404 simple and consistent.")
8405 (license (list license:gpl3+
8406 license:cc-by-sa4.0))))
8407
8408 (define-public arc-icon-theme
8409 (package
8410 (name "arc-icon-theme")
8411 (version "20161122")
8412 (source
8413 (origin
8414 (method git-fetch)
8415 (uri (git-reference
8416 (url "https://github.com/horst3180/arc-icon-theme.git")
8417 (commit version)))
8418 (file-name (git-file-name name version))
8419 (sha256
8420 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8421 (build-system gnu-build-system)
8422 (arguments
8423 `(#:phases
8424 (modify-phases %standard-phases
8425 (add-after 'unpack 'disable-configure-during-bootstrap
8426 (lambda _
8427 (substitute* "autogen.sh"
8428 (("^\"\\$srcdir/configure\".*") ""))
8429 #t)))))
8430 (native-inputs
8431 `(("autoconf" ,autoconf)
8432 ("automake" ,automake)))
8433 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8434 (propagated-inputs
8435 `(("moka-icon-theme" ,moka-icon-theme)))
8436 (synopsis "Arc icon theme")
8437 (description "The Arc icon theme provides a set of icons matching the
8438 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8439 the Moka icon theme.")
8440 (home-page "https://github.com/horst3180/arc-icon-theme")
8441 (license license:gpl3+)))
8442
8443 (define-public folks
8444 (package
8445 (name "folks")
8446 (version "0.13.1")
8447 (source (origin
8448 (method url-fetch)
8449 (uri (string-append
8450 "mirror://gnome/sources/folks/"
8451 (version-major+minor version) "/"
8452 "folks-" version ".tar.xz"))
8453 (sha256
8454 (base32
8455 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8456 (build-system meson-build-system)
8457 (arguments
8458 '(#:phases
8459 (modify-phases %standard-phases
8460 (add-after 'unpack 'skip-gtk-update-icon-cache
8461 ;; Don't create 'icon-theme.cache'.
8462 (lambda _
8463 (substitute* "meson_post_install.py"
8464 (("gtk-update-icon-cache") "true"))
8465 #t)))))
8466 (inputs
8467 `(("bdb" ,bdb)
8468 ("dbus-glib" ,dbus-glib)
8469 ("evolution-data-server" ,evolution-data-server)
8470 ("glib" ,glib)
8471 ("libgee" ,libgee)
8472 ("readline" ,readline)
8473 ("telepathy-glib" ,telepathy-glib)))
8474 (native-inputs
8475 `(("glib:bin" ,glib "bin")
8476 ("gobject-introspection" ,gobject-introspection)
8477 ("intltool" ,intltool)
8478 ("pkg-config" ,pkg-config)
8479 ("vala" ,vala)))
8480 (synopsis "Library to aggregate data about people")
8481 (description "Libfolks is a library that aggregates information about people
8482 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8483 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8484 etc.) to create metacontacts. It's written in Vala, which generates C code when
8485 compiled.")
8486 (home-page "https://wiki.gnome.org/Projects/Folks")
8487 (license license:lgpl2.1+)))
8488
8489 (define-public gfbgraph
8490 (package
8491 (name "gfbgraph")
8492 (version "0.2.3")
8493 (source (origin
8494 (method url-fetch)
8495 (uri (string-append
8496 "mirror://gnome/sources/gfbgraph/"
8497 (version-major+minor version) "/"
8498 "gfbgraph-" version ".tar.xz"))
8499 (sha256
8500 (base32
8501 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8502 (build-system glib-or-gtk-build-system)
8503 (arguments
8504 `(#:tests? #f ; Tests appear to require the network.
8505 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8506 #:configure-flags '("--disable-gtk-doc"
8507 "--disable-static"
8508 "--enable-introspection")))
8509 (native-inputs
8510 `(("pkg-config" ,pkg-config)
8511 ("gobject-introspection" ,gobject-introspection)))
8512 (inputs
8513 `(("json-glib" ,json-glib)
8514 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8515 ("rest" ,rest)))
8516 (synopsis "GLib/GObject wrapper for the Facebook API")
8517 (description "This library allows you to use the Facebook API from
8518 GLib/GObject code.")
8519 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8520 (license license:lgpl2.1+)))
8521
8522 (define-public libgnomekbd
8523 (package
8524 (name "libgnomekbd")
8525 (version "3.26.1")
8526 (source (origin
8527 (method url-fetch)
8528 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8529 (version-major+minor version) "/"
8530 "libgnomekbd-" version ".tar.xz"))
8531 (sha256
8532 (base32
8533 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8534 (build-system gnu-build-system)
8535 (native-inputs
8536 `(("pkg-config" ,pkg-config)
8537 ("glib" ,glib "bin")
8538 ("intltool" ,intltool)))
8539 (propagated-inputs
8540 ;; Referred to in .h files and .pc.
8541 `(("glib" ,glib)
8542 ("gtk+" ,gtk+)
8543 ("libxklavier" ,libxklavier)))
8544 (home-page "https://www.gnome.org")
8545 (synopsis "GNOME keyboard configuration library")
8546 (description
8547 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8548 environment, which can notably display keyboard layouts.")
8549 (license license:lgpl2.0+)))
8550
8551 ;;; This package is no longer maintained:
8552 ;;; https://wiki.gnome.org/Attic/LibUnique
8553 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8554 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8555 (define-public libunique
8556 (package
8557 (name "libunique")
8558 (version "3.0.2")
8559 (source (origin
8560 (method url-fetch)
8561 (uri (string-append "mirror://gnome/sources/" name "/"
8562 (version-major+minor version) "/"
8563 name "-" version ".tar.xz"))
8564 (sha256
8565 (base32
8566 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8567 (build-system glib-or-gtk-build-system)
8568 (arguments
8569 `(#:configure-flags '("--disable-static"
8570 "--disable-dbus" ; use gdbus
8571 "--enable-introspection")))
8572 (native-inputs
8573 `(("pkg-config" ,pkg-config)
8574 ("gobject-introspection" ,gobject-introspection)
8575 ("glib:bin" ,glib "bin")
8576 ("gtk-doc" ,gtk-doc)))
8577 (propagated-inputs
8578 ;; Referred to in .h files and .pc.
8579 `(("gtk+" ,gtk+)))
8580 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8581 (synopsis "Library for writing single instance applications")
8582 (description
8583 "Libunique is a library for writing single instance applications. If you
8584 launch a single instance application twice, the second instance will either just
8585 quit or will send a message to the running instance. Libunique makes it easy to
8586 write this kind of application, by providing a base class, taking care of all
8587 the IPC machinery needed to send messages to a running instance, and also
8588 handling the startup notification side.")
8589 (license license:lgpl2.1+)))
8590
8591 (define-public gnome-calculator
8592 (package
8593 (name "gnome-calculator")
8594 (version "3.34.1")
8595 (source
8596 (origin
8597 (method url-fetch)
8598 (uri (string-append "mirror://gnome/sources/" name "/"
8599 (version-major+minor version) "/"
8600 name "-" version ".tar.xz"))
8601 (sha256
8602 (base32
8603 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
8604 (build-system meson-build-system)
8605 (arguments '(#:glib-or-gtk? #t))
8606 (native-inputs
8607 `(("gettext" ,gettext-minimal)
8608 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8609 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8610 ("itstool" ,itstool)
8611 ("vala" ,vala)
8612 ("pkg-config" ,pkg-config)))
8613 (inputs
8614 `(("glib" ,glib)
8615 ("gtksourceview" ,gtksourceview)
8616 ("libgee" ,libgee)
8617 ("libsoup" ,libsoup)
8618 ("libxml2" ,libxml2)
8619 ("mpc" ,mpc)
8620 ("mpfr" ,mpfr)))
8621 (home-page "https://wiki.gnome.org/Apps/Calculator")
8622 (synopsis "Desktop calculator")
8623 (description
8624 "Calculator is an application that solves mathematical equations and
8625 is suitable as a default application in a Desktop environment.")
8626 (license license:gpl3)))
8627
8628 (define-public xpad
8629 (package
8630 (name "xpad")
8631 (version "5.1.0")
8632 (source
8633 (origin
8634 (method url-fetch)
8635 (uri (string-append "https://launchpad.net/xpad/trunk/"
8636 version "/+download/"
8637 name "-" version ".tar.bz2"))
8638 (sha256
8639 (base32
8640 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8641 (build-system gnu-build-system)
8642 (native-inputs
8643 `(("autoconf" ,autoconf)
8644 ("automake" ,automake)
8645 ("gtk+:bin" ,gtk+ "bin")
8646 ("intltool" ,intltool)
8647 ("pkg-config" ,pkg-config)))
8648 (inputs
8649 `(("gtksourceview" ,gtksourceview-3)
8650 ("libsm" ,libsm)))
8651 (home-page "https://wiki.gnome.org/Apps/Xpad")
8652 (synopsis "Virtual sticky note")
8653 (description
8654 "Xpad is a sticky note that strives to be simple, fault tolerant,
8655 and customizable. Xpad consists of independent pad windows, each is
8656 basically a text box in which notes can be written.")
8657 (license license:gpl3+)))
8658
8659 (define-public gucharmap
8660 (let ((unicode-files
8661 '(("Blocks.txt"
8662 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8663 ("DerivedAge.txt"
8664 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8665 ("NamesList.txt"
8666 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8667 ("Scripts.txt"
8668 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8669 ("UnicodeData.txt"
8670 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8671 ("Unihan.zip"
8672 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8673 (package
8674 (name "gucharmap")
8675 (version "12.0.1")
8676 (source
8677 (origin
8678 (method url-fetch)
8679 (uri (string-append "mirror://gnome/sources/" name "/"
8680 (version-major+minor version) "/"
8681 name "-" version ".tar.xz"))
8682 (sha256
8683 (base32
8684 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8685 (build-system glib-or-gtk-build-system)
8686 (arguments
8687 `(#:modules ((ice-9 match)
8688 (guix build glib-or-gtk-build-system)
8689 (guix build utils))
8690 #:configure-flags
8691 (list "--with-unicode-data=../unicode-data")
8692 #:phases
8693 (modify-phases %standard-phases
8694 (add-after 'unpack 'prepare-unicode-data
8695 (lambda* (#:key inputs #:allow-other-keys)
8696 (mkdir-p "../unicode-data")
8697 (with-directory-excursion "../unicode-data"
8698 (for-each (match-lambda
8699 ((file _)
8700 (install-file (assoc-ref inputs file) ".")))
8701 ',unicode-files))
8702 #t)))))
8703 (native-inputs
8704 `(("desktop-file-utils" ,desktop-file-utils)
8705 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8706 ("gobject-introspection" ,gobject-introspection)
8707 ("intltool" ,intltool)
8708 ("itstool" ,itstool)
8709 ("pkg-config" ,pkg-config)
8710 ,@(map (match-lambda
8711 ((file hash)
8712 `(,file
8713 ,(origin
8714 (method url-fetch)
8715 (uri (string-append
8716 "http://www.unicode.org/Public/12.0.0/ucd/"
8717 file))
8718 (sha256 (base32 hash))))))
8719 unicode-files)
8720 ("unzip" ,unzip)))
8721 (inputs
8722 `(("gtk+" ,gtk+)
8723 ("xmllint" ,libxml2)))
8724 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8725 (synopsis "Unicode character picker and font browser")
8726 (description
8727 "This program allows you to browse through all the available Unicode
8728 characters and categories for the installed fonts, and to examine their
8729 detailed properties. It is an easy way to find the character you might
8730 only know by its Unicode name or code point.")
8731 (license license:gpl3+))))
8732
8733 (define-public bluefish
8734 (package
8735 (name "bluefish")
8736 (version "2.2.11")
8737 (source
8738 (origin
8739 (method url-fetch)
8740 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8741 "bluefish-" version ".tar.gz"))
8742 (sha256
8743 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
8744 (build-system gnu-build-system)
8745 (native-inputs
8746 `(("desktop-file-utils" ,desktop-file-utils)
8747 ("intltool" ,intltool)
8748 ("pkg-config" ,pkg-config)))
8749 (inputs
8750 `(("enchant" ,enchant)
8751 ("gtk+" ,gtk+)
8752 ("python" ,python-wrapper)
8753 ("xmllint" ,libxml2)
8754 ("gucharmap" ,gucharmap)))
8755 (home-page "http://bluefish.openoffice.nl")
8756 (synopsis "Web development studio")
8757 (description
8758 "Bluefish is an editor targeted towards programmers and web developers,
8759 with many options to write web sites, scripts and other code.
8760 Bluefish supports many programming and markup languages.")
8761 (license license:gpl3+)))
8762
8763 (define-public gnome-system-monitor
8764 (package
8765 (name "gnome-system-monitor")
8766 (version "3.32.1")
8767 (source
8768 (origin
8769 (method url-fetch)
8770 (uri (string-append "mirror://gnome/sources/" name "/"
8771 (version-major+minor version) "/"
8772 name "-" version ".tar.xz"))
8773 (sha256
8774 (base32
8775 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8776 (build-system meson-build-system)
8777 (arguments
8778 '(#:glib-or-gtk? #t
8779 #:configure-flags '("-Dsystemd=false")))
8780 (native-inputs
8781 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8782 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8783 ("intltool" ,intltool)
8784 ("itstool" ,itstool)
8785 ("libgtop" ,libgtop)
8786 ("polkit" ,polkit)
8787 ("pkg-config" ,pkg-config)))
8788 (inputs
8789 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8790 ("gtk+" ,gtk+)
8791 ("gtkmm" ,gtkmm)
8792 ("librsvg" ,librsvg)
8793 ("libxml2" ,libxml2)
8794 ("libwnck" ,libwnck)))
8795 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8796 (synopsis "Process viewer and system resource monitor for GNOME")
8797 (description
8798 "GNOME System Monitor is a GNOME process viewer and system monitor with
8799 an attractive, easy-to-use interface. It has features, such as a tree view
8800 for process dependencies, icons for processes, the ability to hide processes,
8801 graphical time histories of CPU/memory/swap usage and the ability to
8802 kill/reinice processes.")
8803 (license license:gpl2+)))
8804
8805 (define-public python-pyatspi
8806 (package
8807 (name "python-pyatspi")
8808 (version "2.34.0")
8809 (source (origin
8810 (method url-fetch)
8811 (uri (string-append
8812 "mirror://gnome/sources/pyatspi/"
8813 (version-major+minor version)
8814 "/pyatspi-" version ".tar.xz"))
8815 (sha256
8816 (base32
8817 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8818 (build-system gnu-build-system)
8819 (arguments
8820 `(#:phases
8821 (modify-phases %standard-phases
8822 (add-before 'build 'fix-atk-load
8823 (lambda _
8824 (substitute* "pyatspi/__init__.py"
8825 (("from gi.repository import Atspi")
8826 "gi.require_version('Gtk', '3.0')
8827 from gi.repository import Gtk
8828 from gi.repository import Atspi"))
8829 #t)))))
8830 (native-inputs
8831 `(("pkg-config" ,pkg-config)))
8832 (inputs
8833 `(("python" ,python)
8834 ("python-pygobject" ,python-pygobject)))
8835 (synopsis "Python client bindings for D-Bus AT-SPI")
8836 (home-page "https://wiki.linuxfoundation.org/accessibility\
8837 /atk/at-spi/at-spi_on_d-bus")
8838 (description
8839 "This package includes a python client library for the AT-SPI D-Bus
8840 accessibility infrastructure.")
8841 (license license:lgpl2.0)
8842 (properties '((upstream-name . "pyatspi")))))
8843
8844 (define-public orca
8845 (package
8846 (name "orca")
8847 (version "3.34.1")
8848 (source (origin
8849 (method url-fetch)
8850 (uri (string-append
8851 "mirror://gnome/sources/" name "/"
8852 (version-major+minor version) "/"
8853 name "-" version ".tar.xz"))
8854 (sha256
8855 (base32
8856 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
8857 (build-system glib-or-gtk-build-system)
8858 (arguments
8859 '(#:phases
8860 (modify-phases %standard-phases
8861 (add-before 'configure 'qualify-xkbcomp
8862 (lambda* (#:key inputs #:allow-other-keys)
8863 (let ((xkbcomp (string-append
8864 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8865 (substitute* "src/orca/orca.py"
8866 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8867 #t))
8868 (add-after 'install 'wrap-orca
8869 (lambda* (#:key outputs #:allow-other-keys)
8870 (let* ((out (assoc-ref outputs "out"))
8871 (prog (string-append out "/bin/orca")))
8872 (wrap-program prog
8873 `("GI_TYPELIB_PATH" ":" prefix
8874 (,(getenv "GI_TYPELIB_PATH")))
8875 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8876 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8877 `("PYTHONPATH" ":" prefix
8878 (,(getenv "PYTHONPATH")))))
8879 #t)))))
8880 (native-inputs
8881 `(("intltool" ,intltool)
8882 ("itstool" ,itstool)
8883 ("pkg-config" ,pkg-config)
8884 ("xmllint" ,libxml2)))
8885 (inputs
8886 `(("at-spi2-atk" ,at-spi2-atk)
8887 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8888 ("gstreamer" ,gstreamer)
8889 ("gst-plugins-base" ,gst-plugins-base)
8890 ("gst-plugins-good" ,gst-plugins-good)
8891 ("gtk+" ,gtk+)
8892 ("python" ,python)
8893 ("python-pygobject" ,python-pygobject)
8894 ("python-pyatspi" ,python-pyatspi)
8895 ("python-speechd" ,speech-dispatcher)
8896 ("xkbcomp" ,xkbcomp)))
8897 (synopsis
8898 "Screen reader for individuals who are blind or visually impaired")
8899 (home-page "https://wiki.gnome.org/Projects/Orca")
8900 (description
8901 "Orca is a screen reader that provides access to the graphical desktop
8902 via speech and refreshable braille. Orca works with applications and toolkits
8903 that support the Assistive Technology Service Provider Interface (AT-SPI).")
8904 (license license:lgpl2.1+)))
8905
8906 (define-public gspell
8907 (package
8908 (name "gspell")
8909 (version "1.8.2")
8910 (source (origin
8911 (method url-fetch)
8912 (uri (string-append "mirror://gnome/sources/" name "/"
8913 (version-major+minor version) "/"
8914 name "-" version ".tar.xz"))
8915 (sha256
8916 (base32
8917 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
8918 (patches (search-patches "gspell-dash-test.patch"))))
8919 (build-system glib-or-gtk-build-system)
8920 (arguments
8921 '(#:configure-flags (list "--enable-vala")
8922 #:phases
8923 (modify-phases %standard-phases
8924 (add-before 'check 'pre-check
8925 (lambda* (#:key inputs #:allow-other-keys)
8926 ;; Tests require a running X server.
8927 (system "Xvfb :1 &")
8928 (setenv "DISPLAY" ":1")
8929
8930 ;; For the missing /etc/machine-id.
8931 (setenv "DBUS_FATAL_WARNINGS" "0")
8932
8933 ;; Allow Enchant and its Aspell backend to find the en_US
8934 ;; dictionary.
8935 (setenv "ASPELL_DICT_DIR"
8936 (string-append (assoc-ref inputs "aspell-dict-en")
8937 "/lib/aspell"))
8938 #t)))))
8939 (inputs
8940 `(("gtk+" ,gtk+)
8941 ("glib" ,glib)
8942 ("iso-codes" ,iso-codes)))
8943 (native-inputs
8944 `(("glib" ,glib "bin")
8945 ("gobject-introspection" ,gobject-introspection)
8946 ("pkg-config" ,pkg-config)
8947 ("vala" ,vala) ;for VAPI, needed by Geary
8948 ("xmllint" ,libxml2)
8949
8950 ;; For tests.
8951 ("aspell-dict-en" ,aspell-dict-en)
8952 ("xorg-server" ,xorg-server-for-tests)))
8953 (propagated-inputs
8954 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
8955 (home-page "https://wiki.gnome.org/Projects/gspell")
8956 (synopsis "GNOME's alternative spell checker")
8957 (description
8958 "gspell provides a flexible API to add spell-checking to a GTK+
8959 application. It provides a GObject API, spell-checking to text entries and
8960 text views, and buttons to choose the language.")
8961 (license license:gpl2+)))
8962
8963 (define-public gnome-planner
8964 (package
8965 (name "gnome-planner")
8966 (version "0.14.6")
8967 (source (origin
8968 (method url-fetch)
8969 (uri (string-append "mirror://gnome/sources/planner/"
8970 (version-major+minor version) "/planner-"
8971 version ".tar.xz"))
8972 (sha256
8973 (base32
8974 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8975 (build-system glib-or-gtk-build-system)
8976 (arguments
8977 ;; Disable the Python bindings because the Planner program functions
8978 ;; without them, and (as of 2017-06-13) we have not packaged all of
8979 ;; packages that are necessary for building the Python bindings.
8980 `(#:configure-flags
8981 (list "--disable-python"
8982 ,@(if (string=? "aarch64-linux" (%current-system))
8983 '("--build=aarch64-unknown-linux-gnu")
8984 '()))))
8985 (inputs
8986 `(("libgnomecanvas" ,libgnomecanvas)
8987 ("libgnomeui" ,libgnomeui)
8988 ("libglade" ,libglade)
8989 ("gnome-vfs" ,gnome-vfs)
8990 ("gconf" ,gconf)
8991 ("libxml2" ,libxml2)
8992 ("libxslt" ,libxslt)
8993 ("gtk+" ,gtk+)
8994 ("glib" ,glib)))
8995 (native-inputs
8996 `(("intltool" ,intltool)
8997 ("scrollkeeper" ,scrollkeeper)
8998 ("pkg-config" ,pkg-config)))
8999 (home-page "https://wiki.gnome.org/Apps/Planner")
9000 (synopsis "Project management software for the GNOME desktop")
9001 (description
9002 "GNOME Planner is a project management tool based on the Work Breakdown
9003 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9004 the resources, tasks, and constraints that you define, Planner generates
9005 various views into a project. For example, Planner can show a Gantt chart of
9006 the project. It can show a detailed summary of tasks including their
9007 duration, cost, and current progress. It can also show a report of resource
9008 utilization that highlights under-utilized and over-utilized resources. These
9009 views can be printed as PDF or PostScript files, or exported to HTML.")
9010 (license license:gpl2+)))
9011
9012 (define-public lollypop
9013 (package
9014 (name "lollypop")
9015 (version "1.2.32")
9016 (source
9017 (origin
9018 (method url-fetch)
9019 (uri (string-append "https://adishatz.org/lollypop/"
9020 "lollypop-" version ".tar.xz"))
9021 (sha256
9022 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
9023 (build-system meson-build-system)
9024 (arguments
9025 `(#:imported-modules
9026 (,@%meson-build-system-modules
9027 (guix build python-build-system))
9028 #:modules
9029 ((guix build meson-build-system)
9030 ((guix build python-build-system) #:prefix python:)
9031 (guix build utils))
9032 #:glib-or-gtk? #t
9033 #:tests? #f ; no test suite
9034 #:phases
9035 (modify-phases %standard-phases
9036 (add-after 'install 'wrap-program
9037 (lambda* (#:key outputs #:allow-other-keys)
9038 (let ((out (assoc-ref outputs "out"))
9039 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9040 (wrap-program (string-append out "/bin/lollypop")
9041 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9042 #t))
9043 (add-after 'install 'wrap-python
9044 (assoc-ref python:%standard-phases 'wrap)))))
9045 (native-inputs
9046 `(("intltool" ,intltool)
9047 ("itstool" ,itstool)
9048 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9049 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9050 ("pkg-config" ,pkg-config)))
9051 (inputs
9052 `(("gobject-introspection" ,gobject-introspection)
9053 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9054 ("gst-plugins-base" ,gst-plugins-base)
9055 ("libnotify" ,libnotify)
9056 ("libsecret" ,libsecret)
9057 ("libsoup" ,libsoup)
9058 ("python" ,python)
9059 ("python-beautifulsoup4" ,python-beautifulsoup4)
9060 ("python-gst" ,python-gst)
9061 ("python-pil" ,python-pillow)
9062 ("python-pycairo" ,python-pycairo)
9063 ("python-pygobject" ,python-pygobject)
9064 ("python-pylast" ,python-pylast)
9065 ("totem-pl-parser" ,totem-pl-parser)
9066 ("webkitgtk" ,webkitgtk)))
9067 (propagated-inputs
9068 `(;; gst-plugins-base is required to start Lollypop,
9069 ;; the others are required to play streaming.
9070 ("gst-plugins-good" ,gst-plugins-good)
9071 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9072 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9073 (synopsis "GNOME music playing application")
9074 (description
9075 "Lollypop is a music player designed to play well with GNOME desktop.
9076 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9077 from artists and tracks from the web. It also fetches cover artworks
9078 automatically and it can stream songs from online music services and charts.")
9079 (license license:gpl3+)))
9080
9081 (define-public gnome-video-effects
9082 (package
9083 (name "gnome-video-effects")
9084 (version "0.4.3")
9085 (source (origin
9086 (method url-fetch)
9087 (uri (string-append "mirror://gnome/sources/" name "/"
9088 (version-major+minor version) "/" name "-"
9089 version ".tar.xz"))
9090 (sha256
9091 (base32
9092 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9093 (build-system glib-or-gtk-build-system)
9094 (arguments
9095 `(#:out-of-source? #f))
9096 (native-inputs
9097 `(("glib:bin" ,glib "bin")
9098 ("intltool" ,intltool)
9099 ("gettext" ,gettext-minimal)
9100 ("pkg-config" ,pkg-config)))
9101 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9102 (synopsis "Video effects for Cheese and other GNOME applications")
9103 (description
9104 "A collection of GStreamer video filters and effects to be used in
9105 photo-booth-like software, such as Cheese.")
9106 (license license:gpl2+)))
9107
9108 (define-public cheese
9109 (package
9110 (name "cheese")
9111 (version "3.34.0")
9112 (source (origin
9113 (method url-fetch)
9114 (uri (string-append "mirror://gnome/sources/" name "/"
9115 (version-major+minor version) "/" name "-"
9116 version ".tar.xz"))
9117 (sha256
9118 (base32
9119 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
9120 (arguments
9121 `(#:glib-or-gtk? #t
9122 ;; Tests require GDK.
9123 #:tests? #f
9124 #:phases
9125 (modify-phases %standard-phases
9126 (add-after 'unpack 'skip-gtk-update-icon-cache
9127 (lambda _
9128 ;; Don't create 'icon-theme.cache'
9129 (substitute* "meson_post_install.py"
9130 (("gtk-update-icon-cache") (which "true")))
9131 #t))
9132 (add-after 'install 'wrap-cheese
9133 (lambda* (#:key inputs outputs #:allow-other-keys)
9134 (let ((out (assoc-ref outputs "out"))
9135 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9136 (wrap-program (string-append out "/bin/cheese")
9137 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9138 #t)))))
9139 (build-system meson-build-system)
9140 (native-inputs
9141 `(("docbook-xsl" ,docbook-xsl)
9142 ("glib:bin" ,glib "bin")
9143 ("gtk-doc" ,gtk-doc)
9144 ("intltool" ,intltool)
9145 ("itstool" ,itstool)
9146 ("libxml2" ,libxml2)
9147 ("libxslt" ,libxslt)
9148 ("pkg-config" ,pkg-config)
9149 ("vala" ,vala)))
9150 (propagated-inputs
9151 `(("gnome-video-effects" ,gnome-video-effects)
9152 ("clutter" ,clutter)
9153 ("clutter-gst" ,clutter-gst)
9154 ("clutter-gtk" ,clutter-gtk)
9155 ("libcanberra" ,libcanberra)
9156 ("gdk-pixbuf" ,gdk-pixbuf)
9157 ("glib" ,glib)
9158 ("gstreamer" ,gstreamer)))
9159 (inputs
9160 `(("gnome-desktop" ,gnome-desktop)
9161 ("gobject-introspection" ,gobject-introspection)
9162 ("gst-plugins-base" ,gst-plugins-base)
9163 ("gst-plugins-bad" ,gst-plugins-bad)
9164 ("gtk+" ,gtk+)
9165 ("libx11" ,libx11)
9166 ("libxtst" ,libxtst)))
9167 (home-page "https://wiki.gnome.org/Apps/Cheese")
9168 (synopsis "Webcam photo booth software for GNOME")
9169 (description
9170 "Cheese uses your webcam to take photos and videos. Cheese can also
9171 apply fancy special effects and lets you share the fun with others.")
9172 (license license:gpl2+)))
9173
9174 (define-public sound-juicer
9175 (package
9176 (name "sound-juicer")
9177 (version "3.24.0")
9178 (source
9179 (origin
9180 (method url-fetch)
9181 (uri (string-append "mirror://gnome/sources/" name "/"
9182 (version-major+minor version) "/"
9183 name "-" version ".tar.xz"))
9184 (sha256
9185 (base32
9186 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9187 (build-system glib-or-gtk-build-system)
9188 (native-inputs
9189 `(("desktop-file-utils" ,desktop-file-utils)
9190 ("intltool" ,intltool)
9191 ("itstool" ,itstool)
9192 ("pkg-config" ,pkg-config)
9193 ("xmllint" ,libxml2)))
9194 (inputs
9195 `(("gtk+" ,gtk+)
9196 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9197 ("gstreamer" ,gstreamer)
9198 ("gst-plugins-base" ,gst-plugins-base)
9199 ("gst-plugins-good" ,gst-plugins-good)
9200 ("iso-codes" ,iso-codes)
9201 ("libbrasero-media3" ,brasero)
9202 ("libcanberra" ,libcanberra)
9203 ("libdiscid" ,libdiscid)
9204 ("libmusicbrainz" ,libmusicbrainz)
9205 ("neon" ,neon)))
9206 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9207 (synopsis "Audio music cd ripper")
9208 (description "Sound Juicer extracts audio from compact discs and convert it
9209 into audio files that a personal computer or digital audio player can play.
9210 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9211 mp3, Ogg Vorbis and FLAC")
9212 (license license:gpl2+)))
9213
9214 (define-public soundconverter
9215 (package
9216 (name "soundconverter")
9217 (version "3.0.2")
9218 (source
9219 (origin
9220 (method url-fetch)
9221 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9222 version "/+download/"
9223 "soundconverter-" version ".tar.xz"))
9224
9225 (sha256
9226 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
9227 (build-system glib-or-gtk-build-system)
9228 (arguments
9229 `(#:imported-modules ((guix build python-build-system)
9230 (guix build glib-or-gtk-build-system)
9231 ,@%gnu-build-system-modules)
9232
9233 #:modules ((guix build glib-or-gtk-build-system)
9234 (guix build utils)
9235 ((guix build gnu-build-system) #:prefix gnu:)
9236 ((guix build python-build-system) #:prefix python:))
9237
9238 #:phases
9239 (modify-phases %standard-phases
9240 (add-after 'install 'wrap-soundconverter-for-python
9241 (assoc-ref python:%standard-phases 'wrap))
9242 (add-after 'install 'wrap-soundconverter
9243 (lambda* (#:key inputs outputs #:allow-other-keys)
9244 (let ((out (assoc-ref outputs "out"))
9245 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9246 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9247 (wrap-program (string-append out "/bin/soundconverter")
9248 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9249 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9250 #t)))))
9251 (native-inputs
9252 `(("intltool" ,intltool)
9253 ("pkg-config" ,pkg-config)
9254 ("glib:bin" ,glib "bin")))
9255 (inputs
9256 `(("gtk+" ,gtk+)
9257 ("python" ,python)
9258 ("python-pygobject" ,python-pygobject)
9259 ("gstreamer" ,gstreamer)
9260 ("gst-plugins-base" ,gst-plugins-base)))
9261 (home-page "https://soundconverter.org/")
9262 (synopsis "Convert between audio formats with a graphical interface")
9263 (description
9264 "SoundConverter supports converting between many audio formats including
9265 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9266 configurable file renaming. ")
9267 (license license:gpl3)))
9268
9269 (define-public workrave
9270 (package
9271 (name "workrave")
9272 (version "1.10.42")
9273 (source
9274 (origin
9275 (method git-fetch)
9276 (uri (git-reference
9277 (url "https://github.com/rcaelers/workrave.git")
9278 (commit (string-append "v" (string-map
9279 (match-lambda (#\. #\_) (chr chr))
9280 version)))))
9281 (file-name (git-file-name name version))
9282 (sha256
9283 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
9284 (build-system glib-or-gtk-build-system)
9285 (arguments
9286 ;; The only tests are maintainer tests (in po/), which fail.
9287 `(#:tests? #f))
9288 (inputs `(("glib" ,glib)
9289 ("gtk+" ,gtk+)
9290 ("gdk-pixbuf" ,gdk-pixbuf)
9291 ("gtkmm" ,gtkmm)
9292 ("glibmm" ,glibmm)
9293 ("libx11" ,libx11)
9294 ("libxtst" ,libxtst)
9295 ("dconf" ,dconf)
9296 ("libice" ,libice)
9297 ("libsm" ,libsm)
9298 ("libxscrnsaver" ,libxscrnsaver)))
9299 (native-inputs `(("boost" ,boost)
9300 ("pkg-config" ,pkg-config)
9301 ("gettext" ,gettext-minimal)
9302 ("autoconf" ,autoconf)
9303 ("autoconf-archive" , autoconf-archive)
9304 ("automake" ,automake)
9305 ("libtool" ,libtool)
9306 ("intltool" ,intltool)
9307 ("gobject-introspection" ,gobject-introspection)
9308 ("python3" ,python-3)
9309 ("python-jinja2" ,python-jinja2)))
9310 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9311 (description
9312 "Workrave is a program that assists in the recovery and prevention of
9313 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9314 micro-pauses and rest breaks, and restricts you to your daily limit.")
9315 (home-page "http://www.workrave.org")
9316 (license license:gpl3+)))
9317
9318 (define-public ghex
9319 (package
9320 (name "ghex")
9321 (version "3.18.4")
9322 (source (origin
9323 (method url-fetch)
9324 (uri (string-append "mirror://gnome/sources/ghex/"
9325 (version-major+minor version) "/"
9326 "ghex-" version ".tar.xz"))
9327 (sha256
9328 (base32
9329 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9330 (build-system meson-build-system)
9331 (arguments
9332 '(#:glib-or-gtk? #t
9333 #:phases
9334 (modify-phases %standard-phases
9335 (add-after 'unpack 'skip-gtk-update-icon-cache
9336 ;; Don't create 'icon-theme.cache'.
9337 (lambda _
9338 (substitute* "meson_post_install.py"
9339 (("gtk-update-icon-cache") (which "true")))
9340 #t)))))
9341 (native-inputs
9342 `(("pkg-config" ,pkg-config)
9343 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9344 ("gnome-common" ,gnome-common)
9345 ("which" ,which)
9346 ("intltool" ,intltool)
9347 ("yelp-tools" ,yelp-tools)
9348 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9349 (inputs
9350 `(("atk" ,atk)
9351 ("gtk" ,gtk+)))
9352 (synopsis "GNOME hexadecimal editor")
9353 (description "The GHex program can view and edit files in two ways:
9354 hexadecimal or ASCII. It is useful for editing binary files in general.")
9355 (home-page "https://wiki.gnome.org/Apps/Ghex")
9356 (license license:gpl2)))
9357
9358 (define-public libdazzle
9359 (package
9360 (name "libdazzle")
9361 (version "3.34.1")
9362 (source (origin
9363 (method url-fetch)
9364 (uri (string-append "mirror://gnome/sources/libdazzle/"
9365 (version-major+minor version) "/"
9366 "libdazzle-" version ".tar.xz"))
9367 (sha256
9368 (base32
9369 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
9370 (build-system meson-build-system)
9371 (arguments
9372 `(#:phases
9373 (modify-phases %standard-phases
9374 (add-before 'check 'pre-check
9375 (lambda _
9376 ;; Tests require a running X server.
9377 (system "Xvfb :1 &")
9378 (setenv "DISPLAY" ":1")
9379 #t)))))
9380 (native-inputs
9381 `(("glib" ,glib "bin") ; glib-compile-resources
9382 ("pkg-config" ,pkg-config)
9383 ;; For tests.
9384 ("xorg-server" ,xorg-server-for-tests)))
9385 (inputs
9386 `(("glib" ,glib)
9387 ("gobject-introspection" ,gobject-introspection)
9388 ("gtk+" ,gtk+)
9389 ("vala" ,vala)))
9390 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9391 (synopsis "Companion library to GObject and Gtk+")
9392 (description "The libdazzle library is a companion library to GObject and
9393 Gtk+. It provides various features that the authors wish were in the
9394 underlying library but cannot for various reasons. In most cases, they are
9395 wildly out of scope for those libraries. In other cases, they are not quite
9396 generic enough to work for everyone.")
9397 (license license:gpl3+)))
9398
9399 (define-public evolution
9400 (package
9401 (name "evolution")
9402 (version "3.34.2")
9403 (source (origin
9404 (method url-fetch)
9405 (uri (string-append "mirror://gnome/sources/evolution/"
9406 (version-major+minor version) "/"
9407 "evolution-" version ".tar.xz"))
9408 (sha256
9409 (base32
9410 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
9411 (build-system cmake-build-system)
9412 (arguments
9413 `(#:imported-modules (,@%cmake-build-system-modules
9414 (guix build glib-or-gtk-build-system))
9415 #:modules ((guix build cmake-build-system)
9416 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9417 (guix build utils))
9418 #:configure-flags
9419 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9420 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9421 ; in four years and cannot be built.
9422 #:phases
9423 (modify-phases %standard-phases
9424 ;; The build system attempts to install user interface modules to the
9425 ;; output directory of the "evolution-data-server" package. This
9426 ;; change redirects that change.
9427 (add-after 'unpack 'patch-ui-module-dir
9428 (lambda* (#:key outputs #:allow-other-keys)
9429 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9430 (("\\$\\{edsuimoduledir\\}")
9431 (string-append (assoc-ref outputs "out")
9432 "/lib/evolution-data-server/ui-modules")))
9433 #t))
9434 (add-after 'install 'glib-or-gtk-compile-schemas
9435 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9436 (add-after 'install 'glib-or-gtk-wrap
9437 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9438 (native-inputs
9439 `(("glib" ,glib "bin") ; glib-mkenums
9440 ("pkg-config" ,pkg-config)
9441 ("intltool" ,intltool)
9442 ("itstool" ,itstool)))
9443 (inputs
9444 `(("enchant" ,enchant)
9445 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9446 ("gcr" ,gcr)
9447 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9448 ("gnome-autoar" ,gnome-autoar)
9449 ("gnome-desktop" ,gnome-desktop)
9450 ("gspell" ,gspell)
9451 ("highlight" ,highlight)
9452 ("libcanberra" ,libcanberra)
9453 ("libgweather" ,libgweather)
9454 ("libnotify" ,libnotify)
9455 ("libsoup" ,libsoup)
9456 ("nss" ,nss)
9457 ("openldap" ,openldap)
9458 ("webkitgtk" ,webkitgtk)
9459 ("ytnef" ,ytnef)))
9460 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9461 (synopsis "Manage your email, contacts and schedule")
9462 (description "Evolution is a personal information management application
9463 that provides integrated mail, calendaring and address book
9464 functionality.")
9465 ;; See COPYING for details.
9466 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9467 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9468 license:lgpl2.1+)))) ; smime/lib/*
9469
9470 (define-public gthumb
9471 (package
9472 (name "gthumb")
9473 (version "3.8.2")
9474 (source (origin
9475 (method url-fetch)
9476 (uri (string-append "mirror://gnome/sources/gthumb/"
9477 (version-major+minor version) "/"
9478 "gthumb-" version ".tar.xz"))
9479 (sha256
9480 (base32
9481 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9482 (build-system meson-build-system)
9483 (arguments
9484 `(#:glib-or-gtk? #t
9485 #:configure-flags
9486 ;; Ensure the RUNPATH contains all installed library locations.
9487 (list (string-append "-Dc_link_args=-Wl,-rpath="
9488 (assoc-ref %outputs "out")
9489 "/lib/gthumb/extensions")
9490 (string-append "-Dcpp_link_args=-Wl,-rpath="
9491 (assoc-ref %outputs "out")
9492 "/lib/gthumb/extensions"))))
9493 (native-inputs
9494 `(("pkg-config" ,pkg-config)
9495 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9496 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9497 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9498 ("intltool" ,intltool)
9499 ("itstool" ,itstool)))
9500 (inputs
9501 `(("exiv2" ,exiv2)
9502 ("gtk" ,gtk+)
9503 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9504 ("gstreamer" ,gstreamer)
9505 ("clutter" ,clutter)
9506 ("clutter-gst" ,clutter-gst)
9507 ("clutter-gtk" ,clutter-gtk)
9508 ("libjpeg" ,libjpeg-turbo)
9509 ("libtiff" ,libtiff)
9510 ("libraw" ,libraw)))
9511 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9512 (synopsis "GNOME image viewer and browser")
9513 (description "GThumb is an image viewer, browser, organizer, editor and
9514 advanced image management tool")
9515 (license license:gpl2+)))
9516
9517 (define-public terminator
9518 (package
9519 (name "terminator")
9520 (version "1.91")
9521 (source (origin
9522 (method url-fetch)
9523 (uri (string-append "https://launchpad.net/" name "/"
9524 "gtk3/" version "/" "+download/"
9525 name "-" version ".tar.gz"))
9526 (sha256
9527 (base32
9528 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9529 (build-system python-build-system)
9530 (native-inputs
9531 `(("intltool" ,intltool)
9532 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9533 ("gettext" ,gettext-minimal)
9534 ("pkg-config" ,pkg-config)))
9535 (inputs
9536 `(("cairo" ,cairo)
9537 ("gobject-introspection" ,gobject-introspection)
9538 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9539 ("python2-pycairo" ,python2-pycairo)
9540 ("python2-pygobject" ,python2-pygobject)
9541 ("python2-psutil" ,python2-psutil)
9542 ("vte" ,vte)))
9543 (arguments
9544 `(#:python ,python-2 ; Python 3 isn't supported
9545 #:imported-modules ((guix build glib-or-gtk-build-system)
9546 ,@%python-build-system-modules)
9547 #:modules ((guix build python-build-system)
9548 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9549 (guix build utils))
9550 #:phases
9551 (modify-phases %standard-phases
9552 (add-after
9553 'install 'wrap-program
9554 (lambda* (#:key outputs #:allow-other-keys)
9555 (let ((prog (string-append (assoc-ref outputs "out")
9556 "/bin/terminator")))
9557 (wrap-program prog
9558 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9559 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9560 #t)))
9561 (add-after 'wrap-program 'glib-or-gtk-wrap
9562 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9563 (home-page "https://gnometerminator.blogspot.com/")
9564 (synopsis "Store and run multiple GNOME terminals in one window")
9565 (description
9566 "Terminator allows you to run multiple GNOME terminals in a grid and
9567 +tabs, and it supports drag and drop re-ordering of terminals.")
9568 (license license:gpl2)))
9569
9570 (define-public libhandy
9571 (package
9572 (name "libhandy")
9573 (version "0.0.12")
9574 (source
9575 (origin
9576 (method git-fetch)
9577 (uri (git-reference
9578 (url "https://source.puri.sm/Librem5/libhandy")
9579 (commit (string-append "v" version))))
9580 (file-name (git-file-name name version))
9581 (sha256
9582 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9583 (build-system meson-build-system)
9584 (arguments
9585 `(#:configure-flags
9586 '("-Dglade_catalog=disabled"
9587 "-Dgtk_doc=true")
9588 #:phases
9589 (modify-phases %standard-phases
9590 (add-before 'check 'pre-check
9591 (lambda _
9592 ;; Tests require a running X server.
9593 (system "Xvfb :1 &")
9594 (setenv "DISPLAY" ":1")
9595 #t)))))
9596 (inputs
9597 `(("gtk+" ,gtk+)))
9598 (native-inputs
9599 `(("glib:bin" ,glib "bin")
9600 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9601 ("vala" ,vala)
9602 ("gtk-doc" ,gtk-doc)
9603 ("pkg-config" ,pkg-config)
9604 ("gettext" ,gettext-minimal)
9605
9606 ;; Test suite dependencies.
9607 ("xorg-server" ,xorg-server-for-tests)
9608 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9609 (home-page "https://source.puri.sm/Librem5/libhandy")
9610 (synopsis "Library full of GTK+ widgets for mobile phones")
9611 (description "The aim of the handy library is to help with developing user
9612 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9613 for usage on small and big screens.")
9614 (license license:lgpl2.1+)))
9615
9616 (define-public libgit2-glib
9617 (package
9618 (name "libgit2-glib")
9619 (version "0.99.0.1")
9620 (source (origin
9621 (method url-fetch)
9622 (uri (string-append "mirror://gnome/sources/" name "/"
9623 (version-major+minor version) "/"
9624 name "-" version ".tar.xz"))
9625 (sha256
9626 (base32
9627 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
9628 (build-system meson-build-system)
9629 (native-inputs
9630 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9631 ("gobject-introspection" ,gobject-introspection)
9632 ("pkg-config" ,pkg-config)
9633 ("python-pygobject" ,python-pygobject)
9634 ("python-wrapper" ,python-wrapper)
9635 ("vala" ,vala)))
9636 (inputs
9637 `(("glib" ,glib)
9638 ("libssh2" ,libssh2)))
9639 (propagated-inputs
9640 `(;; In Requires of libgit2-glib.pc.
9641 ("libgit2" ,libgit2)))
9642 (synopsis "GLib wrapper around the libgit2 Git access library")
9643 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9644 access library. It only implements the core plumbing functions, not really the
9645 higher level porcelain stuff.")
9646 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9647 (license license:gpl2+)))
9648
9649 (define-public gitg
9650 (package
9651 (name "gitg")
9652 (version "3.32.1")
9653 (source (origin
9654 (method url-fetch)
9655 (uri (string-append "mirror://gnome/sources/" name "/"
9656 (version-major+minor version) "/"
9657 name "-" version ".tar.xz"))
9658 (sha256
9659 (base32
9660 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9661 (build-system meson-build-system)
9662 (arguments
9663 `(#:glib-or-gtk? #t
9664 #:phases
9665 (modify-phases %standard-phases
9666 (add-after 'unpack 'disable-post-install-partially
9667 (lambda _
9668 (substitute* "meson_post_install.py"
9669 (("'python'") ; there are no python sources to compile
9670 (string-append "'" (which "true") "'"))
9671 (("gtk-update-icon-cache") (which "true")))
9672 #t))
9673 (add-after 'unpack 'fix-test-sources
9674 (lambda _
9675 (substitute* "tests/libgitg/test-commit.vala"
9676 (("/bin/bash") (which "bash")))
9677 #t))
9678 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9679 (lambda* (#:key outputs #:allow-other-keys)
9680 (let ((prog (string-append (assoc-ref outputs "out")
9681 "/bin/gitg")))
9682 (wrap-program prog
9683 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9684 #t))))))
9685 (inputs
9686 `(("glib" ,glib)
9687 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9688 ("gtk+" ,gtk+)
9689 ("gtkspell3" ,gtkspell3)
9690 ("gtksourceview" ,gtksourceview-3)
9691 ("json-glib" ,json-glib)
9692 ("libdazzle" ,libdazzle)
9693 ("libgee" ,libgee)
9694 ("libgit2-glib" ,libgit2-glib)
9695 ("libpeas" ,libpeas)
9696 ("libsecret" ,libsecret)
9697 ("libsoup" ,libsoup)
9698 ("libxml2" ,libxml2)))
9699 (native-inputs
9700 `(("glib:bin" ,glib "bin")
9701 ("gtk+:bin" ,gtk+ "bin")
9702 ("gobject-introspection" ,gobject-introspection)
9703 ("intltool" ,intltool)
9704 ("pkg-config" ,pkg-config)
9705 ("vala" ,vala)))
9706 (synopsis "Graphical user interface for git")
9707 (description
9708 "gitg is a graphical user interface for git. It aims at being a small,
9709 fast and convenient tool to visualize the history of git repositories.
9710 Besides visualization, gitg also provides several utilities to manage your
9711 repository and commit your work.")
9712 (home-page "https://wiki.gnome.org/Apps/Gitg")
9713 (license license:gpl2+)))
9714
9715 (define-public gamin
9716 (package
9717 (name "gamin")
9718 (version "0.1.10")
9719 (source (origin
9720 (method url-fetch)
9721 (uri (string-append "mirror://gnome/sources/" name "/"
9722 (version-major+minor version) "/"
9723 name "-" version ".tar.bz2"))
9724 (sha256
9725 (base32
9726 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9727 (build-system gnu-build-system)
9728 (arguments
9729 `(#:phases
9730 (modify-phases %standard-phases
9731 (add-after 'unpack 'remove-deprecated-macro
9732 (lambda _
9733 (substitute* '("server/gam_node.c"
9734 "server/gam_subscription.h"
9735 "server/gam_node.h"
9736 "server/gam_subscription.c")
9737 (("G_CONST_RETURN") "const"))
9738 #t)))))
9739 (inputs
9740 `(("glib" ,glib)))
9741 (native-inputs
9742 `(("intltool" ,intltool)
9743 ("pkg-config" ,pkg-config)))
9744 (home-page "https://people.gnome.org/~veillard/gamin/")
9745 (synopsis "File alteration monitor")
9746 (description
9747 "Gamin is a file and directory monitoring system defined to be a subset
9748 of the FAM (File Alteration Monitor) system. This is a service provided by a
9749 library which detects when a file or a directory has been modified.")
9750 (license license:gpl2+)))
9751
9752 (define-public gnome-mahjongg
9753 (package
9754 (name "gnome-mahjongg")
9755 (version "3.35.1")
9756 (source (origin
9757 (method git-fetch)
9758 (uri (git-reference
9759 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9760 (commit version)))
9761 (file-name (git-file-name name version))
9762 (sha256
9763 (base32
9764 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9765 (build-system meson-build-system)
9766 (arguments
9767 `(#:glib-or-gtk? #t))
9768 (native-inputs
9769 `(("appstream-glib" ,appstream-glib)
9770 ("gettext" ,gettext-minimal)
9771 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9772 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9773 ("itstool" ,itstool)
9774 ("pkg-config" ,pkg-config)
9775 ("vala" ,vala)))
9776 (propagated-inputs
9777 `(("dconf" ,dconf)))
9778 (inputs
9779 `(("glib" ,glib)
9780 ("gtk+" ,gtk+)
9781 ("librsvg" ,librsvg)))
9782 (synopsis "Mahjongg tile-matching game")
9783 (description "GNOME Mahjongg is a game based on the classic Chinese
9784 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9785 and a high score table.")
9786 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9787 (license license:gpl2+)))
9788
9789 (define-public gnome-themes-extra
9790 (package
9791 (name "gnome-themes-extra")
9792 (version "3.28")
9793 (source
9794 (origin
9795 (method url-fetch)
9796 (uri (string-append "mirror://gnome/sources/" name "/"
9797 (version-major+minor version) "/" name "-"
9798 version ".tar.xz"))
9799 (sha256
9800 (base32
9801 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9802 (build-system gnu-build-system)
9803 (arguments
9804 '(#:configure-flags
9805 ;; Don't create 'icon-theme.cache'.
9806 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9807 (true (string-append coreutils "/bin/true")))
9808 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9809 (native-inputs
9810 `(("glib:bin" ,glib "bin")
9811 ("intltool" ,intltool)
9812 ("pkg-config" ,pkg-config)))
9813 (inputs
9814 `(("glib" ,glib)
9815 ("gtk+" ,gtk+)
9816 ("gtk+-2" ,gtk+-2)
9817 ("librsvg" ,librsvg)
9818 ("libxml2" ,libxml2)))
9819 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9820 (synopsis "GNOME Extra Themes")
9821 (description "This package provides themes and related elements that don't
9822 really fit in other upstream packages. It offers legacy support for GTK+ 2
9823 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9824 index files needed for Adwaita to be used outside of GNOME.")
9825 (license license:lgpl2.1+)))
9826
9827 (define-public polari
9828 (package
9829 (name "polari")
9830 (version "3.32.2")
9831 (source (origin
9832 (method url-fetch)
9833 (uri (string-append "mirror://gnome/sources/polari/"
9834 (version-major+minor version)
9835 "/polari-" version ".tar.xz"))
9836 (sha256
9837 (base32
9838 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9839 (build-system meson-build-system)
9840 (arguments
9841 `(#:glib-or-gtk? #t
9842 #:phases
9843 (modify-phases %standard-phases
9844 (add-after 'unpack 'skip-gtk-update-icon-cache
9845 (lambda _
9846 (substitute* "meson/meson-postinstall.sh"
9847 (("gtk-update-icon-cache") (which "true")))
9848 #t))
9849 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9850 (lambda* (#:key outputs #:allow-other-keys)
9851 (let ((prog (string-append (assoc-ref outputs "out")
9852 "/bin/polari")))
9853 (wrap-program prog
9854 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9855 #t))))))
9856 (inputs
9857 `(("glib" ,glib)
9858 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9859 ("gspell" ,gspell)
9860 ("gtk+" ,gtk+)
9861 ("gjs" ,gjs)
9862 ("libsecret" ,libsecret)
9863 ("libsoup" ,libsoup)
9864 ("telepathy-glib" ,telepathy-glib)
9865 ("telepathy-logger" ,telepathy-logger)))
9866 (native-inputs
9867 `(("glib:bin" ,glib "bin")
9868 ("gobject-introspection" ,gobject-introspection)
9869 ("intltool" ,intltool)
9870 ("pkg-config" ,pkg-config)
9871 ("yelp-tools" ,yelp-tools)))
9872 (propagated-inputs
9873 `(("telepathy-idle" ,telepathy-idle)
9874 ("telepathy-mission-control" ,telepathy-mission-control)))
9875 (synopsis "Simple IRC Client")
9876 (description
9877 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9878 integrate seamlessly with the GNOME desktop.")
9879 (home-page "https://wiki.gnome.org/Apps/Polari")
9880 (license license:gpl2+)))
9881
9882 (define-public gnome-boxes
9883 (package
9884 (name "gnome-boxes")
9885 (version "3.35.91")
9886 (source
9887 (origin
9888 (method url-fetch)
9889 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9890 (version-major+minor version) "/"
9891 "gnome-boxes-" version ".tar.xz"))
9892 (sha256
9893 (base32
9894 "0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
9895 (build-system meson-build-system)
9896 (arguments
9897 '(#:glib-or-gtk? #t
9898 #:configure-flags (list "-Drdp=false"
9899 (string-append "-Dc_link_args=-Wl,-rpath="
9900 (assoc-ref %outputs "out")
9901 "/lib/gnome-boxes"))))
9902 (native-inputs
9903 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
9904 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9905 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9906 ("itstool" ,itstool)
9907 ("intltool" ,intltool)
9908 ("vala" ,vala)
9909 ("pkg-config" ,pkg-config)))
9910 (inputs
9911 `(("libarchive" ,libarchive)
9912 ("gtk" ,gtk+)
9913 ("gtk-vnc" ,gtk-vnc)
9914 ("libosinfo" ,libosinfo)
9915 ("libsecret" ,libsecret)
9916 ("libsoup" ,libsoup)
9917 ("libusb" ,libusb)
9918 ("libvirt" ,libvirt)
9919 ("libvirt-glib" ,libvirt-glib)
9920 ("libxml" ,libxml2)
9921 ("spice-gtk" ,spice-gtk)
9922 ("sparql-query" ,sparql-query)
9923 ("vte" ,vte)
9924 ("webkitgtk" ,webkitgtk)
9925 ("tracker" ,tracker)
9926 ("libgudev" ,libgudev)))
9927 (home-page "https://wiki.gnome.org/Apps/Boxes")
9928 (synopsis "View, access, and manage remote and virtual systems")
9929 (description "GNOME Boxes is a simple application to view, access, and
9930 manage remote and virtual systems.")
9931 (license (list
9932 ;; For data/icons/empty-boxes.png.
9933 license:cc-by2.0
9934 ;; For all others.
9935 license:lgpl2.0+))))
9936
9937 (define-public geary
9938 (package
9939 (name "geary")
9940 (version "3.34.1")
9941 (source (origin
9942 (method git-fetch)
9943 (uri (git-reference
9944 (url "https://gitlab.gnome.org/GNOME/geary")
9945 (commit version)))
9946 (file-name (git-file-name name version))
9947 (sha256
9948 (base32
9949 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
9950 (build-system meson-build-system)
9951 (arguments
9952 `(#:glib-or-gtk? #t
9953 #:phases (modify-phases %standard-phases
9954 (add-after 'unpack 'disable-failing-tests
9955 (lambda _
9956 (substitute* "test/meson.build"
9957 (("test\\('client-tests', geary_test_client_bin\\)")
9958 ""))
9959 #t))
9960 (add-after 'unpack 'disable-postinstall-script
9961 (lambda _
9962 (substitute* "meson.build"
9963 (("meson.add_install_script\\(\
9964 join_paths\\('build-aux', 'post_install.py'\\)\\)")
9965 ""))
9966 #t))
9967 (add-before 'check 'setup-xvfb
9968 (lambda _
9969 (system "Xvfb :1 &")
9970 (setenv "DISPLAY" ":1")
9971 #t)))))
9972 (inputs
9973 `(("enchant" ,enchant)
9974 ("folks" ,folks)
9975 ("gcr" ,gcr)
9976 ("glib" ,glib)
9977 ("gmime" ,gmime-2.6)
9978 ("gnome-online-accounts:lib"
9979 ,gnome-online-accounts "lib")
9980 ("gspell" ,gspell)
9981 ("gtk+" ,gtk+)
9982 ("iso-codes" ,iso-codes)
9983 ("json-glib" ,json-glib)
9984 ("libcanberra" ,libcanberra)
9985 ("libgee" ,libgee)
9986 ("libhandy" ,libhandy)
9987 ("libpeas" ,libpeas)
9988 ("libsecret" ,libsecret)
9989 ("libunwind" ,libunwind)
9990 ("sqlite" ,sqlite)
9991 ("webkitgtk" ,webkitgtk)
9992 ("ytnef" ,ytnef)))
9993 (native-inputs
9994 `(("appstream-glib" ,appstream-glib)
9995 ("cmake-minimal" ,cmake-minimal)
9996 ("desktop-file-utils" ,desktop-file-utils)
9997 ("gettext" ,gettext-minimal)
9998 ("glib:bin" ,glib "bin")
9999 ("gobject-introspection" ,gobject-introspection)
10000 ("itstool" ,itstool)
10001 ("libarchive" ,libarchive)
10002 ("libxml2" ,libxml2)
10003 ("pkg-config" ,pkg-config)
10004 ("vala" ,vala)
10005 ("xvfb" ,xorg-server-for-tests)))
10006 (synopsis "GNOME email application built around conversations")
10007 (description
10008 "Geary collects related messages together into conversations,
10009 making it easy to find and follow your discussions. Full-text and keyword
10010 search makes it easy to find the email you are looking for. Geary's
10011 full-featured composer lets you send rich, styled text with images, links, and
10012 lists, but also send lightweight, easy to read text messages. Geary
10013 automatically picks up your existing GNOME Online Accounts, and adding more is
10014 easy. Geary has a clean, fast, modern interface that works like you want it
10015 to.")
10016 (home-page "https://wiki.gnome.org/Apps/Geary")
10017 (license (list
10018 ;; geary
10019 license:lgpl2.1+
10020 ;; icons
10021 license:cc-by3.0
10022 license:cc-by-sa3.0
10023 license:public-domain
10024 ;; snowball
10025 license:bsd-2))))
10026
10027 (define-public glabels
10028 (package
10029 (name "glabels")
10030 (version "3.4.1")
10031 (source
10032 (origin
10033 (method url-fetch)
10034 (uri (string-append "mirror://gnome/sources/" name "/"
10035 (version-major+minor version) "/"
10036 "glabels-" version ".tar.xz"))
10037 (sha256
10038 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10039 (build-system glib-or-gtk-build-system)
10040 (native-inputs
10041 `(("gettext" ,gettext-minimal)
10042 ("glib:bin" ,glib "bin")
10043 ("intltool" ,intltool)
10044 ("itstool" ,itstool)
10045 ("pkg-config" ,pkg-config)))
10046 (inputs
10047 `(("gtk+" ,gtk+)
10048 ("librsvg" ,librsvg)
10049 ("libxml2" ,libxml2)))
10050 (home-page "https://glabels.org/")
10051 (synopsis "Program for creating labels and business cards")
10052 (description
10053 "gLabels is a program for creating labels and business cards. It is
10054 designed to work with various laser/ink-jet peel-off label and business
10055 card sheets that you’ll find at most office supply stores.")
10056 (license license:gpl3+)))
10057
10058 (define-public libratbag
10059 (package
10060 (name "libratbag")
10061 (version "0.13")
10062 (source
10063 (origin
10064 (method git-fetch)
10065 (uri (git-reference
10066 (url "https://github.com/libratbag/libratbag.git")
10067 (commit (string-append "v" version))))
10068 (file-name (git-file-name name version))
10069 (sha256
10070 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10071 (build-system meson-build-system)
10072 (arguments
10073 `(#:configure-flags
10074 (list "-Dsystemd=false"
10075 "-Dlogind-provider=elogind")
10076 #:phases
10077 (modify-phases %standard-phases
10078 (add-after 'install 'wrap
10079 (lambda* (#:key inputs outputs #:allow-other-keys)
10080 (let* ((out (assoc-ref outputs "out"))
10081 (site (string-append
10082 "/lib/python"
10083 ,(version-major+minor (package-version python))
10084 "/site-packages"))
10085 (evdev (string-append
10086 (assoc-ref inputs "python-evdev") site))
10087 (pygo (string-append
10088 (assoc-ref inputs "python-pygobject") site))
10089 (python-wrap
10090 `("PYTHONPATH" = (,evdev ,pygo))))
10091 (wrap-program (string-append out "/bin/" "ratbagctl")
10092 python-wrap)
10093 #t))))))
10094 (native-inputs
10095 `(("check" ,check)
10096 ("pkg-config" ,pkg-config)
10097 ("swig" ,swig)
10098 ("valgrind" ,valgrind)))
10099 (inputs
10100 `(("glib" ,glib)
10101 ("json-glib" ,json-glib)
10102 ("libevdev" ,libevdev)
10103 ("libsystemd" ,elogind)
10104 ("libunistring" ,libunistring)
10105 ("python-evdev" ,python-evdev)
10106 ("python-pygobject" ,python-pygobject)
10107 ("udev" ,eudev)))
10108 (home-page "https://github.com/libratbag/libratbag")
10109 (synopsis "DBus daemon and utility for configuring gaming mice")
10110 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10111 configure input devices, mainly gaming mice. The daemon provides a generic
10112 way to access the various features exposed by these mice and abstracts away
10113 hardware-specific and kernel-specific quirks. There is also the
10114 @command{ratbagctl} command line interface for configuring devices.
10115
10116 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10117 Steelseries.
10118
10119 The ratbagd DBus service can be enabled by adding the following service to
10120 your operating-system definition:
10121
10122 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10123 (license license:expat)))
10124
10125 (define-public piper
10126 (package
10127 (name "piper")
10128 (version "0.4")
10129 (source
10130 (origin
10131 (method git-fetch)
10132 (uri (git-reference
10133 (url "https://github.com/libratbag/piper.git")
10134 (commit version)))
10135 (sha256
10136 (base32 "17h06j8lxpbfygq8fzycl7lml4vv7r05bsyhh3gga2hp0zms4mvg"))))
10137 (build-system meson-build-system)
10138 (native-inputs
10139 `(("gettext" ,gettext-minimal)
10140 ("glib:bin" ,glib "bin")
10141 ("gobject-introspection" ,gobject-introspection)
10142 ("pkg-config" ,pkg-config)
10143 ("python-flake8" ,python-flake8)))
10144 (inputs
10145 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10146 ("gtk" ,gtk+)
10147 ("gtk:bin" ,gtk+ "bin")
10148 ("librsvg" ,librsvg)
10149 ("python-evdev" ,python-evdev)
10150 ("python-lxml" ,python-lxml)
10151 ("python-pycairo" ,python-pycairo)
10152 ("python-pygobject" ,python-pygobject)))
10153 (arguments
10154 `(#:imported-modules ((guix build python-build-system)
10155 ,@%meson-build-system-modules)
10156 #:modules (((guix build python-build-system) #:prefix python:)
10157 (guix build meson-build-system)
10158 (guix build utils))
10159 #:phases
10160 (modify-phases %standard-phases
10161 (add-after 'unpack 'dont-update-gtk-icon-cache
10162 (lambda _
10163 (substitute* "meson.build"
10164 (("meson.add_install_script('meson_install.sh')") ""))
10165 #t))
10166 ;; TODO: Switch to wrap-script when it is fixed.
10167 (add-after 'install 'wrap-python
10168 (assoc-ref python:%standard-phases 'wrap))
10169 (add-after 'wrap-python 'wrap
10170 (lambda* (#:key outputs #:allow-other-keys)
10171 (wrap-program
10172 (string-append (assoc-ref outputs "out" )"/bin/piper")
10173 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10174 #t)))))
10175 (home-page "https://github.com/libratbag/piper/")
10176 (synopsis "Configure bindings and LEDs on gaming mice")
10177 (description "Piper is a GTK+ application for configuring gaming mice with
10178 onboard configuration for key bindings via libratbag. Piper requires
10179 a @command{ratbagd} daemon running with root privileges. It can be run
10180 manually as root, but is preferably configured as a DBus service that can
10181 launch on demand. This can be configured by enabling the following service,
10182 provided there is a DBus service present:
10183
10184 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10185 (license license:gpl2)))
10186
10187 (define-public parlatype
10188 ;; This is one commit away from 2.0, because the latter introduced
10189 ;; a regression in ASR.
10190 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10191 (revision "0"))
10192 (package
10193 (name "parlatype")
10194 (version (git-version "2.0" revision commit))
10195 (source
10196 (origin
10197 (method git-fetch)
10198 (uri (git-reference
10199 (url "https://github.com/gkarsay/parlatype.git")
10200 (commit commit)))
10201 (file-name (git-file-name name version))
10202 (sha256
10203 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10204 (build-system meson-build-system)
10205 (arguments
10206 `(#:glib-or-gtk? #t
10207 #:tests? #f ;require internet access
10208 #:phases
10209 (modify-phases %standard-phases
10210 (add-after 'install 'wrap-parlatype
10211 ;; Add gstreamer plugin provided in this package to system's
10212 ;; plugins.
10213 (lambda* (#:key outputs #:allow-other-keys)
10214 (let* ((out (assoc-ref outputs "out"))
10215 (gst-plugin-path (string-append
10216 out "/lib/gstreamer-1.0/"
10217 ":"
10218 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10219 (wrap-program (string-append out "/bin/parlatype")
10220 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10221 #t)))))
10222 (native-inputs
10223 `(("appstream-glib" ,appstream-glib)
10224 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10225 ("gettext" ,gettext-minimal)
10226 ("glib" ,glib "bin") ;for glib-compile-resources
10227 ("pkg-config" ,pkg-config)
10228 ("yelp-tools" ,yelp-tools)))
10229 (inputs
10230 `(("gst-plugins-base" ,gst-plugins-base)
10231 ("gst-plugins-good" ,gst-plugins-good)
10232 ("gstreamer" ,gstreamer)
10233 ("gtk+" ,gtk+)
10234 ("pocketsphinx" ,pocketsphinx)
10235 ("pulseaudio" ,pulseaudio)
10236 ("sphinxbase" ,sphinxbase)))
10237 (home-page "http://gkarsay.github.io/parlatype/")
10238 (synopsis "GNOME audio player for transcription")
10239 (description "Parlatype is an audio player for the GNOME desktop
10240 environment. Its main purpose is the manual transcription of spoken
10241 audio files.")
10242 (license license:gpl3+))))
10243
10244 (define-public jsonrpc-glib
10245 (package
10246 (name "jsonrpc-glib")
10247 (version "3.34.0")
10248 (source (origin
10249 (method url-fetch)
10250 (uri (string-append "mirror://gnome/sources/" name "/"
10251 (version-major+minor version) "/"
10252 name "-" version ".tar.xz"))
10253 (sha256
10254 (base32
10255 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10256 (build-system meson-build-system)
10257 (inputs
10258 `(("json-glib" ,json-glib)
10259 ("glib" ,glib)))
10260 (native-inputs
10261 `(("pkg-config" ,pkg-config)
10262 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10263 ("gobject-introspection" ,gobject-introspection)
10264 ("vala" ,vala)))
10265 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10266 (synopsis "JSON-RPC library for GLib")
10267 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10268 peers in either a synchronous or asynchronous fashion. It also allows
10269 communicating using the GVariant serialization format instead of JSON when
10270 both peers support it. You might want that when communicating on a single
10271 host to avoid parser overhead and memory-allocator fragmentation.")
10272 (license license:lgpl2.1+)))