gnu: network-manager-openconnect: Patch all the 'openconnect' file names.
[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, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
54 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;;
58 ;;; This file is part of GNU Guix.
59 ;;;
60 ;;; GNU Guix is free software; you can redistribute it and/or modify it
61 ;;; under the terms of the GNU General Public License as published by
62 ;;; the Free Software Foundation; either version 3 of the License, or (at
63 ;;; your option) any later version.
64 ;;;
65 ;;; GNU Guix is distributed in the hope that it will be useful, but
66 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
67 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
68 ;;; GNU General Public License for more details.
69 ;;;
70 ;;; You should have received a copy of the GNU General Public License
71 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
72
73 (define-module (gnu packages gnome)
74 #:use-module (gnu packages)
75 #:use-module (gnu packages admin)
76 #:use-module (gnu packages aspell)
77 #:use-module (gnu packages autotools)
78 #:use-module (gnu packages avahi)
79 #:use-module (gnu packages backup)
80 #:use-module (gnu packages base)
81 #:use-module (gnu packages bash)
82 #:use-module (gnu packages bison)
83 #:use-module (gnu packages boost)
84 #:use-module (gnu packages build-tools)
85 #:use-module (gnu packages calendar)
86 #:use-module (gnu packages cdrom)
87 #:use-module (gnu packages check)
88 #:use-module (gnu packages cmake)
89 #:use-module (gnu packages compression)
90 #:use-module (gnu packages crates-io)
91 #:use-module (gnu packages cups)
92 #:use-module (gnu packages curl)
93 #:use-module (gnu packages cyrus-sasl)
94 #:use-module (gnu packages databases)
95 #:use-module (gnu packages dbm)
96 #:use-module (gnu packages djvu)
97 #:use-module (gnu packages dns)
98 #:use-module (gnu packages docbook)
99 #:use-module (gnu packages documentation)
100 #:use-module (gnu packages enchant)
101 #:use-module (gnu packages flex)
102 #:use-module (gnu packages fonts)
103 #:use-module (gnu packages file-systems)
104 #:use-module (gnu packages fontutils)
105 #:use-module (gnu packages freedesktop)
106 #:use-module (gnu packages game-development)
107 #:use-module (gnu packages gettext)
108 #:use-module (gnu packages ghostscript)
109 #:use-module (gnu packages gl)
110 #:use-module (gnu packages glib)
111 #:use-module (gnu packages gnupg)
112 #:use-module (gnu packages gnuzilla)
113 #:use-module (gnu packages geo)
114 #:use-module (gnu packages gperf)
115 #:use-module (gnu packages graphviz)
116 #:use-module (gnu packages gstreamer)
117 #:use-module (gnu packages gtk)
118 #:use-module (gnu packages guile)
119 #:use-module (gnu packages ibus)
120 #:use-module (gnu packages icu4c)
121 #:use-module (gnu packages image)
122 #:use-module (gnu packages imagemagick)
123 #:use-module (gnu packages inkscape)
124 #:use-module (gnu packages iso-codes)
125 #:use-module (gnu packages kerberos)
126 #:use-module (gnu packages libcanberra)
127 #:use-module (gnu packages libunistring)
128 #:use-module (gnu packages libunwind)
129 #:use-module (gnu packages libusb)
130 #:use-module (gnu packages linux)
131 #:use-module (gnu packages lirc)
132 #:use-module (gnu packages lua)
133 #:use-module (gnu packages mail)
134 #:use-module (gnu packages mp3)
135 #:use-module (gnu packages multiprecision)
136 #:use-module (gnu packages music)
137 #:use-module (gnu packages ncurses)
138 #:use-module (gnu packages nettle)
139 #:use-module (gnu packages networking)
140 #:use-module (gnu packages ninja)
141 #:use-module (gnu packages nss)
142 #:use-module (gnu packages openldap)
143 #:use-module (gnu packages password-utils)
144 #:use-module (gnu packages pcre)
145 #:use-module (gnu packages pdf)
146 #:use-module (gnu packages perl)
147 #:use-module (gnu packages photo)
148 #:use-module (gnu packages php)
149 #:use-module (gnu packages pkg-config)
150 #:use-module (gnu packages polkit)
151 #:use-module (gnu packages popt)
152 #:use-module (gnu packages pretty-print)
153 #:use-module (gnu packages pulseaudio)
154 #:use-module (gnu packages python)
155 #:use-module (gnu packages python-crypto)
156 #:use-module (gnu packages python-web)
157 #:use-module (gnu packages python-xyz)
158 #:use-module (gnu packages rdesktop)
159 #:use-module (gnu packages readline)
160 #:use-module (gnu packages ruby)
161 #:use-module (gnu packages rust)
162 #:use-module (gnu packages samba)
163 #:use-module (gnu packages scanner)
164 #:use-module (gnu packages selinux)
165 #:use-module (gnu packages slang)
166 #:use-module (gnu packages speech)
167 #:use-module (gnu packages spice)
168 #:use-module (gnu packages sqlite)
169 #:use-module (gnu packages ssh)
170 #:use-module (gnu packages swig)
171 #:use-module (gnu packages tex)
172 #:use-module (gnu packages time)
173 #:use-module (gnu packages tls)
174 #:use-module (gnu packages valgrind)
175 #:use-module (gnu packages version-control)
176 #:use-module (gnu packages video)
177 #:use-module (gnu packages virtualization)
178 #:use-module (gnu packages vpn)
179 #:use-module (gnu packages web)
180 #:use-module (gnu packages webkit)
181 #:use-module (gnu packages xdisorg)
182 #:use-module (gnu packages xiph)
183 #:use-module (gnu packages xml)
184 #:use-module (gnu packages xorg)
185 #:use-module (gnu artwork)
186 #:use-module ((guix build utils) #:select (modify-phases))
187 #:use-module (guix build-system cargo)
188 #:use-module (guix build-system cmake)
189 #:use-module (guix build-system glib-or-gtk)
190 #:use-module (guix build-system gnu)
191 #:use-module (guix build-system meson)
192 #:use-module (guix build-system python)
193 #:use-module (guix build-system trivial)
194 #:use-module (guix download)
195 #:use-module (guix git-download)
196 #:use-module ((guix licenses) #:prefix license:)
197 #:use-module (guix packages)
198 #:use-module (guix utils)
199 #:use-module (guix gexp)
200 #:use-module (guix monads)
201 #:use-module (guix store)
202 #:use-module (ice-9 match)
203 #:use-module (srfi srfi-1))
204
205 (define-public brasero
206 (package
207 (name "brasero")
208 (version "3.12.2")
209 (source (origin
210 (method url-fetch)
211 (uri (string-append "mirror://gnome/sources/brasero/"
212 (version-major+minor version) "/"
213 "brasero-" version ".tar.xz"))
214 (sha256
215 (base32
216 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
217 (build-system glib-or-gtk-build-system)
218 (arguments
219 `(#:configure-flags (list
220 (string-append "--with-girdir="
221 (assoc-ref %outputs "out")
222 "/share/gir-1.0")
223 (string-append "--with-typelibdir="
224 (assoc-ref %outputs "out")
225 "/lib/girepository-1.0"))
226 #:phases
227 (modify-phases %standard-phases
228 (add-before 'configure 'embed-growisofs
229 (lambda* (#:key inputs #:allow-other-keys)
230 (substitute* "plugins/growisofs/burn-growisofs.c"
231 (("\"growisofs") (string-append "\"" (which "growisofs"))))
232 #t)))))
233 (propagated-inputs
234 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
235 (native-inputs
236 `(("intltool" ,intltool)
237 ("itstool" ,itstool)
238 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
239 ("gobject-introspection" ,gobject-introspection)
240 ("pkg-config" ,pkg-config)))
241 (inputs
242 `(("dvd+rw-tools" ,dvd+rw-tools)
243 ("glib" ,glib)
244 ("gnome-doc-utils" ,gnome-doc-utils)
245 ("gstreamer" ,gstreamer)
246 ("gst-plugins-base" ,gst-plugins-base)
247 ("gtk+" ,gtk+)
248 ("libcanberra" ,libcanberra)
249 ("libice" ,libice)
250 ("libnotify" ,libnotify)
251 ("libsm" ,libsm)
252 ("libxml2" ,libxml2)
253 ("totem-pl-parser" ,totem-pl-parser)))
254 (home-page "https://wiki.gnome.org/Apps/Brasero")
255 (synopsis "CD/DVD burning tool for Gnome")
256 (description "Brasero is an application to burn CD/DVD for the Gnome
257 Desktop. It is designed to be as simple as possible and has some unique
258 features to enable users to create their discs easily and quickly.")
259 (license license:gpl2+)))
260
261 (define-public notification-daemon
262 (package
263 (name "notification-daemon")
264 (version "3.20.0")
265 (source
266 (origin
267 (method url-fetch)
268 (uri
269 (string-append "mirror://gnome/sources/" name "/"
270 (version-major+minor version) "/"
271 name "-" version ".tar.xz"))
272 (sha256
273 (base32
274 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
275 (build-system glib-or-gtk-build-system)
276 (native-inputs
277 `(("intltool" ,intltool)
278 ("pkg-config" ,pkg-config)))
279 (inputs
280 `(("glib" ,glib)
281 ("gtk+" ,gtk+)
282 ("x11" ,libx11)))
283 (synopsis "Notification Daemon for GNOME Desktop")
284 (description "Notification-Daemon is the server implementation of the
285 freedesktop.org desktop notification specification.")
286 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
287 (license license:gpl2+)))
288
289 (define-public mm-common
290 (package
291 (name "mm-common")
292 (version "1.0.1")
293 (source (origin
294 (method url-fetch)
295 (uri (string-append "mirror://gnome/sources/mm-common/"
296 (version-major+minor version) "/"
297 "mm-common-" version ".tar.xz"))
298 (sha256
299 (base32
300 "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
301 (build-system meson-build-system)
302 (arguments
303 `(#:phases
304 (modify-phases %standard-phases
305 (add-after 'unpack 'patch
306 (lambda* (#:key inputs #:allow-other-keys)
307 (substitute* "util/mm-common-prepare.in"
308 (("ln") (string-append (assoc-ref inputs "coreutils")
309 "/bin/ln"))
310 (("cp") (string-append (assoc-ref inputs "coreutils")
311 "/bin/cp"))
312 (("sed") (string-append (assoc-ref inputs "sed")
313 "/bin/sed"))
314 (("cat") (string-append (assoc-ref inputs "coreutils")
315 "/bin/cat")))
316 #t)))))
317 (native-inputs
318 `(("coreutils" ,coreutils)
319 ("gettext" ,gettext-minimal)
320 ("pkg-config" ,pkg-config)
321 ("sed" ,sed)))
322 (inputs
323 `(("python" ,python)))
324 (synopsis "Module of GNOME C++ bindings")
325 (description "The mm-common module provides the build infrastructure
326 and utilities shared among the GNOME C++ binding libraries. Release
327 archives of mm-common include the Doxygen tag file for the GNU C++
328 Library reference documentation.")
329 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
330 (license license:gpl2+)))
331
332 (define-public phodav
333 (package
334 (name "phodav")
335 (version "2.4")
336 (source (origin
337 (method url-fetch)
338 (uri (string-append "mirror://gnome/sources/" name "/"
339 (version-major+minor version) "/"
340 name "-" version ".tar.xz"))
341 (sha256
342 (base32
343 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
344 (build-system meson-build-system)
345 (native-inputs
346 `(("gettext" ,gettext-minimal)
347 ("glib:bin" ,glib "bin")
348 ("gtk-doc" ,gtk-doc)
349 ("pkg-config" ,pkg-config)))
350 (inputs
351 `(("avahi" ,avahi)
352 ("libgudev" ,libgudev)
353 ("libsoup" ,libsoup)))
354 (synopsis "WebDav server implementation using libsoup")
355 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
356 but it is generic enough to be reused in other projects,
357 in particular in the GNOME desktop.")
358 (home-page "https://wiki.gnome.org/phodav")
359 (license license:lgpl2.1+)))
360
361 (define-public gnome-color-manager
362 (package
363 (name "gnome-color-manager")
364 (version "3.32.0")
365 (source (origin
366 (method url-fetch)
367 (uri (string-append "mirror://gnome/sources/" name "/"
368 (version-major+minor version) "/"
369 name "-" version ".tar.xz"))
370 (sha256
371 (base32
372 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
373 (build-system meson-build-system)
374 (arguments
375 `(#:glib-or-gtk? #t
376 #:phases
377 (modify-phases %standard-phases
378 (add-before
379 'check 'pre-check
380 (lambda _
381 ;; Tests require a running X server.
382 (system "Xvfb :1 &")
383 (setenv "DISPLAY" ":1")
384 #t)))))
385 (native-inputs
386 `(("desktop-file-utils" ,desktop-file-utils)
387 ("gettext" ,gettext-minimal)
388 ("glib:bin" ,glib "bin")
389 ("gtk+:bin" ,gtk+ "bin")
390 ("itstool" ,itstool)
391 ("pkg-config" ,pkg-config)
392 ("xorg-server" ,xorg-server-for-tests)))
393 (inputs
394 `(("adwaita-icon-theme" ,adwaita-icon-theme)
395 ("appstream-glib" ,appstream-glib)
396 ("colord-gtk" ,colord-gtk)
397 ("exiv2" ,exiv2)
398 ("gnome-desktop" ,gnome-desktop)
399 ("libcanberra" ,libcanberra)
400 ("libexif" ,libexif)
401 ("libtiff" ,libtiff)
402 ("libxrandr" ,libxrandr)
403 ("libxtst" ,libxtst)
404 ("libxxf86vm" ,libxxf86vm)
405 ("vte" ,vte)
406 ("xorgproto" ,xorgproto)))
407 (synopsis "Color profile manager for the GNOME desktop")
408 (description "GNOME Color Manager is a session framework that makes
409 it easy to manage, install and generate color profiles
410 in the GNOME desktop.")
411 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
412 (license license:gpl2+)))
413
414 (define-public gnome-online-miners
415 (package
416 (name "gnome-online-miners")
417 (version "3.34.0")
418 (source (origin
419 (method url-fetch)
420 (uri (string-append "mirror://gnome/sources/" name "/"
421 (version-major+minor version) "/"
422 name "-" version ".tar.xz"))
423 (sha256
424 (base32
425 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
426 (build-system glib-or-gtk-build-system)
427 (native-inputs
428 `(("gettext" ,gettext-minimal)
429 ("glib:bin" ,glib "bin")
430 ("gobject-introspection" ,gobject-introspection)
431 ("gtk+:bin" ,gtk+ "bin")
432 ("pkg-config" ,pkg-config)))
433 (inputs
434 `(("gnome-online-accounts" ,gnome-online-accounts)
435 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
436 ("grilo" ,grilo)
437 ("libgdata" ,libgdata)
438 ("libgfbgraph" ,gfbgraph)
439 ("libzapojit" ,libzapojit)
440 ("rest" ,rest)
441 ("tracker" ,tracker)))
442 (synopsis "Web Crawlers for GNOME")
443 (description "GNOME Online Miners provides a set of crawlers that
444 go through your online content and index them locally in Tracker.
445 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
446 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
447 (license license:gpl2+)))
448
449 (define-public gssdp
450 (package
451 (name "gssdp")
452 (version "1.2.2")
453 (source (origin
454 (method url-fetch)
455 (uri (string-append "mirror://gnome/sources/" name "/"
456 (version-major+minor version) "/"
457 name "-" version ".tar.xz"))
458 (sha256
459 (base32
460 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
461 (build-system meson-build-system)
462 (native-inputs
463 `(("gettext" ,gettext-minimal)
464 ("glib:bin" ,glib "bin")
465 ("gobject-introspection" ,gobject-introspection)
466 ("gtk-doc" ,gtk-doc)
467 ("pkg-config" ,pkg-config)
468 ("vala" ,vala)))
469 (inputs
470 `(("gtk+" ,gtk+)
471 ("libsoup" ,libsoup)))
472 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
473 Protocol} for GNOME")
474 (description "This package provides a library to handle resource discovery
475 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
476 a debugging tool, @command{gssdp-device-sniffer}.")
477 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
478 (license license:lgpl2.0+)))
479
480 (define-public gupnp
481 (package
482 (name "gupnp")
483 (version "1.2.2")
484 (source (origin
485 (method url-fetch)
486 (uri (string-append "mirror://gnome/sources/" name "/"
487 (version-major+minor version) "/"
488 name "-" version ".tar.xz"))
489 (sha256
490 (base32
491 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
492 (build-system meson-build-system)
493 (native-inputs
494 `(("gettext" ,gettext-minimal)
495 ("glib:bin" ,glib "bin")
496 ("gobject-introspection" ,gobject-introspection)
497 ("gtk-doc" ,gtk-doc)
498 ("pkg-config" ,pkg-config)
499 ("vala" ,vala)))
500 (inputs
501 `(("gssdp" ,gssdp)
502 ("gtk+" ,gtk+)
503 ("libsoup" ,libsoup)))
504 (synopsis "PnP API for GNOME")
505 (description "This package provides GUPnP, an object-oriented framework
506 for creating UPnP devices and control points, written in C using
507 @code{GObject} and @code{libsoup}.")
508 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
509 (license license:lgpl2.0+)))
510
511 (define-public gupnp-dlna
512 (package
513 (name "gupnp-dlna")
514 (version "0.10.5")
515 (source (origin
516 (method url-fetch)
517 (uri (string-append "mirror://gnome/sources/" name "/"
518 (version-major+minor version) "/"
519 name "-" version ".tar.xz"))
520 (sha256
521 (base32
522 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
523 (build-system gnu-build-system)
524 (native-inputs
525 `(("gettext" ,gettext-minimal)
526 ("glib:bin" ,glib "bin")
527 ("gobject-introspection" ,gobject-introspection)
528 ("gtk-doc" ,gtk-doc)
529 ("libxml" ,libxml2)
530 ("pkg-config" ,pkg-config)
531 ("vala" ,vala)))
532 (inputs
533 `(("gstreamer" ,gstreamer)
534 ("gupnp" ,gupnp)))
535 (propagated-inputs
536 `(("gst-plugins-base" ,gst-plugins-base)
537 ("gst-plugins-good" ,gst-plugins-good)))
538 (synopsis "GUPnP DLNA for GNOME")
539 (description "This package provides a small utility library to
540 support DLNA-related tasks such as media profile guessing, transcoding to a
541 given profile, etc. DLNA is a subset of UPnP A/V.")
542 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
543 (license license:lgpl2.0+)))
544
545 (define-public gupnp-av
546 (package
547 (name "gupnp-av")
548 (version "0.12.11")
549 (source (origin
550 (method url-fetch)
551 (uri (string-append "mirror://gnome/sources/" name "/"
552 (version-major+minor version) "/"
553 name "-" version ".tar.xz"))
554 (sha256
555 (base32
556 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
557 (build-system gnu-build-system)
558 (native-inputs
559 `(("gettext" ,gettext-minimal)
560 ("glib:bin" ,glib "bin")
561 ("gobject-introspection" ,gobject-introspection)
562 ("gtk-doc" ,gtk-doc)
563 ("libxml" ,libxml2)
564 ("pkg-config" ,pkg-config)))
565 (inputs
566 `(("gtk+" ,gtk+)
567 ("gupnp" ,gupnp)))
568 (synopsis "GUPnP A/V for GNOME")
569 (description "This package provides a small library for handling
570 and implementation of UPnP A/V profiles.")
571 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
572 (license license:lgpl2.0+)))
573
574 (define-public libmediaart
575 (package
576 (name "libmediaart")
577 (version "1.9.4")
578 (source (origin
579 (method url-fetch)
580 (uri (string-append "mirror://gnome/sources/" name "/"
581 (version-major+minor version) "/"
582 name "-" version ".tar.xz"))
583 (sha256
584 (base32
585 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
586 (build-system gnu-build-system)
587 (native-inputs
588 `(("glib:bin" ,glib "bin")
589 ("pkg-config" ,pkg-config)))
590 (inputs
591 `(("gdk-pixbuf" ,gdk-pixbuf)
592 ("gettext" ,gettext-minimal)
593 ("gobject-introspection" ,gobject-introspection)
594 ("gtk+:doc", gtk+ "doc")
595 ("vala" ,vala)))
596 (synopsis "Media art library for the GNOME desktop")
597 (description
598 "The libmediaart library is the foundation for media art caching,
599 extraction, and lookup for applications on the desktop.")
600 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
601 (license license:lgpl2.1+)))
602
603 (define-public gnome-initial-setup
604 (package
605 (name "gnome-initial-setup")
606 (version "3.32.1")
607 (source (origin
608 (method url-fetch)
609 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
610 (version-major+minor version)
611 "/gnome-initial-setup-" version ".tar.xz"))
612 (sha256
613 (base32
614 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
615 (build-system meson-build-system)
616 (arguments
617 '(#:configure-flags '(;; Enable camera support for user selfie.
618 "-Dcheese=auto"
619 "-Dsystemd=false")
620 #:phases (modify-phases %standard-phases
621 (add-after 'unpack 'set-gkbd-file-name
622 (lambda* (#:key inputs #:allow-other-keys)
623 ;; Allow the "Preview" button in the keyboard layout
624 ;; selection dialog to display the layout.
625 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
626 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
627 (("\"gkbd-keyboard-display")
628 (string-append "\"" libgnomekbd
629 "/bin/gkbd-keyboard-display")))
630 #t))))))
631 (native-inputs
632 `(("gettext" ,gettext-minimal)
633 ("glib:bin" ,glib "bin")
634 ("gobject-introspection" ,gobject-introspection)
635 ("gtk+:bin" ,gtk+ "bin")
636 ("pkg-config" ,pkg-config)))
637 (inputs
638 `(("accountsservice" ,accountsservice)
639 ;("adwaita-icon-theme" ,adwaita-icon-theme)
640 ("gdm" ,gdm)
641 ("geoclue" ,geoclue)
642 ("gnome-desktop" ,gnome-desktop)
643 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
644 ("gnome-online-accounts" ,gnome-online-accounts)
645 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
646 ("gstreamer" ,gstreamer)
647 ("ibus" ,ibus)
648 ("json-glib" ,json-glib)
649 ("krb5" ,mit-krb5)
650 ("libgweather" ,libgweather)
651 ("libnma" ,libnma)
652 ("libsecret" ,libsecret)
653 ("network-manager" ,network-manager)
654 ("packagekit" ,packagekit)
655 ("polkit" ,polkit)
656 ("pwquality" ,libpwquality)
657 ("rest" ,rest)
658 ("upower" ,upower)
659 ("webkitgtk" ,webkitgtk)
660 ("libgnomekbd" ,libgnomekbd)))
661 (synopsis "Initial setup wizard for GNOME desktop")
662 (description "This package provides a set-up wizard when a
663 user logs into GNOME for the first time. It typically provides a
664 tour of all gnome components and allows the user to set them up.")
665 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
666 (license license:gpl2)))
667
668 (define-public gnome-user-share
669 (package
670 (name "gnome-user-share")
671 (version "3.33.1")
672 (source (origin
673 (method url-fetch)
674 (uri (string-append "mirror://gnome/sources/" name "/"
675 (version-major+minor version) "/"
676 name "-" version ".tar.xz"))
677 (sha256
678 (base32
679 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
680 (build-system meson-build-system)
681 (arguments
682 `(#:glib-or-gtk? #t
683 #:configure-flags
684 `("-Dsystemd=false"
685 ;; Enable nautilus extension for file sharing.
686 "-Dnautilus_extension=true")))
687 (native-inputs
688 `(("gettext" ,gettext-minimal)
689 ("glib:bin" ,glib "bin")
690 ("gobject-introspection" ,gobject-introspection)
691 ("gtk+:bin" ,gtk+ "bin")
692 ("pkg-config" ,pkg-config)
693 ("yelp-tools" ,yelp-tools)))
694 (inputs
695 `(("glib" ,glib)
696 ("gnome-bluetooth" ,gnome-bluetooth)
697 ("gtk+" ,gtk+)
698 ("libcanberra" ,libcanberra)
699 ("libnotify" ,libnotify)
700 ("nautilus" ,nautilus))) ; For nautilus extension.
701 (synopsis "File sharing for GNOME desktop")
702 (description "GNOME User Share is a small package that binds together
703 various free software projects to bring easy to use user-level file
704 sharing to the masses.")
705 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
706 (license license:gpl2+)))
707
708 (define-public sushi
709 (package
710 (name "sushi")
711 (version "3.32.1")
712 (source (origin
713 (method url-fetch)
714 (uri (string-append "mirror://gnome/sources/" name "/"
715 (version-major+minor version) "/"
716 name "-" version ".tar.xz"))
717 (sha256
718 (base32
719 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
720 (build-system meson-build-system)
721 (arguments
722 `(#:glib-or-gtk? #t
723 #:phases
724 (modify-phases %standard-phases
725 (add-after 'glib-or-gtk-wrap 'wrap-typelib
726 (lambda* (#:key outputs #:allow-other-keys)
727 (let ((prog (string-append (assoc-ref outputs "out")
728 "/bin/sushi")))
729 ;; Put existing typelibs before sushi's deps, so as to correctly
730 ;; infer gdk-pixbuf
731 (wrap-program prog
732 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
733 #t))))))
734 (native-inputs
735 `(("glib:bin" ,glib "bin")
736 ("gettext" ,gettext-minimal)
737 ("gobject-introspection" ,gobject-introspection)
738 ("pkg-config" ,pkg-config)))
739 (inputs
740 `(("clutter" ,clutter)
741 ("clutter-gst" ,clutter-gst)
742 ("clutter-gtk" ,clutter-gtk)
743 ("evince" ,evince) ; For file previewing.
744 ("freetype" ,freetype)
745 ("gdk-pixbuf" ,gdk-pixbuf)
746 ("gjs" ,gjs)
747 ("gst-plugins-base" ,gst-plugins-base)
748 ("gstreamer" ,gstreamer)
749 ("gtksourceview" ,gtksourceview-3)
750 ("harfbuzz" ,harfbuzz)
751 ("libepoxy" ,libepoxy)
752 ("libmusicbrainz" ,libmusicbrainz)
753 ("libxml2" ,libxml2)
754 ("neon" ,neon)
755 ("webkitgtk" ,webkitgtk)))
756 (synopsis "File previewer for the GNOME desktop")
757 (description "Sushi is a DBus-activated service that allows applications to
758 preview files on the GNOME desktop.")
759 (home-page "https://gitlab.gnome.org/GNOME/sushi")
760 (license license:gpl2+)))
761
762 (define-public rygel
763 (package
764 (name "rygel")
765 (version "0.38.3")
766 (source (origin
767 (method url-fetch)
768 (uri (string-append "mirror://gnome/sources/" name "/"
769 (version-major+minor version) "/"
770 name "-" version ".tar.xz"))
771 (sha256
772 (base32
773 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
774 (build-system gnu-build-system)
775 (native-inputs
776 `(("gettext" ,gettext-minimal)
777 ("gobject-introspection" ,gobject-introspection)
778 ("gtk-doc" ,gtk-doc)
779 ("pkg-config" ,pkg-config)
780 ("vala" ,vala)))
781 (inputs
782 `(("gdk-pixbuf" ,gdk-pixbuf)
783 ("gssdp" ,gssdp)
784 ("gstreamer" ,gstreamer)
785 ("gst-plugins-base" ,gst-plugins-base)
786 ("gtk+" ,gtk+)
787 ("gupnp" ,gupnp)
788 ("gupnp-av" ,gupnp-av)
789 ("gupnp-dlna" ,gupnp-dlna)
790 ("libgee" ,libgee)
791 ("libmediaart" ,libmediaart)
792 ("libsoup" ,libsoup)
793 ("libxslt" ,libxslt)
794 ("libunistring" ,libunistring)
795 ("tracker" ,tracker)))
796 (synopsis "Share audio, video, and pictures with other devices")
797 (description
798 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
799 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
800 pictures, and to control a media player on your home network.
801
802 Rygel achieves interoperability with other devices by trying to conform to the
803 strict requirements of DLNA and by converting media on-the-fly to formats that
804 client devices can handle.")
805 (home-page "https://wiki.gnome.org/Projects/Rygel")
806 (license (list
807 ;; For logo (data/icons/*).
808 license:cc-by-sa3.0
809 ;; For all others.
810 license:lgpl2.1+))))
811
812 (define-public libnma
813 (package
814 (name "libnma")
815 (version "1.8.28")
816 (source (origin
817 (method url-fetch)
818 (uri (string-append "mirror://gnome/sources/" name "/"
819 (version-major+minor version) "/"
820 name "-" version ".tar.xz"))
821 (sha256
822 (base32
823 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
824 (build-system meson-build-system)
825 (arguments
826 `(#:phases
827 (modify-phases %standard-phases
828 (add-after 'unpack 'patch-docbook-xml
829 (lambda* (#:key inputs #:allow-other-keys)
830 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
831 "/xml/dtd/docbook")))
832 (substitute* "libnma-docs.xml"
833 (("http://.*/docbookx\\.dtd")
834 (string-append xmldoc "/docbookx.dtd")))
835 #t))))))
836 (native-inputs
837 `(("docbook-xml" ,docbook-xml-4.3)
838 ("gettext" ,gettext-minimal)
839 ("glib:bin" ,glib "bin")
840 ("gtk-doc" ,gtk-doc)
841 ("gobject-introspection" ,gobject-introspection)
842 ("pkg-config" ,pkg-config)
843 ("vala" ,vala)))
844 (inputs
845 `(("gcr" ,gcr)
846 ("gtk+" ,gtk+)
847 ("iso-codes" ,iso-codes)
848 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
849 ("network-manager" ,network-manager)))
850 (synopsis "Network Manager's applet library")
851 (description "Libnma is an applet library for Network Manager. It was
852 initially part of network-manager-applet and has now become a separate
853 project.")
854 (home-page "https://gitlab.gnome.org/GNOME/libnma")
855 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
856 ;; "LGPL-2.1+".
857 (license license:gpl2+)))
858
859 (define-public gnome-menus
860 (package
861 (name "gnome-menus")
862 (version "3.32.0")
863 (source (origin
864 (method url-fetch)
865 (uri (string-append "mirror://gnome/sources/gnome-menus/"
866 (version-major+minor version) "/"
867 name "-" version ".tar.xz"))
868 (sha256
869 (base32
870 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
871 (build-system gnu-build-system)
872 (native-inputs
873 `(("gettext" ,gettext-minimal)
874 ("glib" ,glib)
875 ("pkg-config" ,pkg-config)))
876 (synopsis "Menu support for GNOME desktop")
877 (description "GNOME Menus contains the libgnome-menu library, the layout
878 configuration files for the GNOME menu, as well as a simple menu editor.")
879 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
880 (license license:lgpl2.0+)))
881
882 (define-public deja-dup
883 (package
884 (name "deja-dup")
885 (version "40.6")
886 (source (origin
887 (method url-fetch)
888 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
889 version "/deja-dup-" version ".tar.bz2"))
890 (sha256
891 (base32
892 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
893 (build-system meson-build-system)
894 (arguments
895 `(#:glib-or-gtk? #t
896 #:configure-flags
897 (list
898 ;; Otherwise, the RUNPATH will lack the final path component.
899 (string-append "-Dc_link_args=-Wl,-rpath="
900 (assoc-ref %outputs "out") "/lib/deja-dup"))
901 #:phases
902 (modify-phases %standard-phases
903 (add-after 'unpack 'patch-paths
904 (lambda* (#:key inputs #:allow-other-keys)
905 (let ((python (assoc-ref inputs "python")))
906 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
907 "libdeja/tests/scripts/instance-error.test")
908 (("/bin/rm")
909 (which "rm")))
910 (substitute* "libdeja/tests/runner.vala"
911 (("/bin/sh")
912 (which "sh")))
913 (substitute* "libdeja/tests/scripts/instance-error.test"
914 (("`which python3`")
915 (string-append python "/bin/python3"))))))
916 (add-after 'unpack 'patch-libgpg-error
917 (lambda* (#:key inputs #:allow-other-keys)
918 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
919 (substitute* "meson.build"
920 (("(gpgerror_libs = ).*" _ var)
921 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
922 #t))
923 (add-after 'unpack 'skip-gtk-update-icon-cache
924 ;; Don't create 'icon-theme.cache'.
925 (lambda _
926 (substitute* "data/post-install.sh"
927 (("gtk-update-icon-cache") "true"))
928 #t)))))
929 (inputs
930 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
931 ("duplicity" ,duplicity)
932 ("python" ,python)
933 ("python-pygobject" ,python-pygobject)
934 ("gtk+" ,gtk+)
935 ("json-glib" ,json-glib)
936 ("libnotify" ,libnotify)
937 ("libgpg-error" ,libgpg-error)
938 ("libsecret" ,libsecret)
939 ("libsoup" ,libsoup)
940 ("packagekit" ,packagekit)))
941 (native-inputs
942 `(("appstream-glib" ,appstream-glib)
943 ("desktop-file-utils" ,desktop-file-utils)
944 ("gettext" ,gettext-minimal)
945 ("glib" ,glib "bin") ; for glib-compile-schemas.
946 ("gobject-introspection" ,gobject-introspection)
947 ("itstool" ,itstool)
948 ("pkg-config" ,pkg-config)
949 ("vala" ,vala)))
950 (home-page "https://wiki.gnome.org/Apps/DejaDup")
951 (synopsis "Simple backup tool, for regular encrypted backups")
952 (description
953 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
954 uses duplicity as the backend, which supports incremental backups and storage
955 either on a local, or remote machine via a number of methods.")
956 (license license:gpl3+)))
957
958 (define-public gnome-user-docs
959 (package
960 (name "gnome-user-docs")
961 (version "3.32.3")
962 (source
963 (origin
964 (method url-fetch)
965 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
966 (version-major+minor version)
967 "/gnome-user-docs-" version ".tar.xz"))
968 (sha256
969 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
970 (build-system gnu-build-system)
971 (native-inputs
972 `(("gettext" ,gettext-minimal)
973 ("itstool" ,itstool)
974 ("pkg-config" ,pkg-config)
975 ("xmllint" ,libxml2)))
976 (synopsis "User documentation for the GNOME desktop")
977 (description
978 "The GNOME User Documentation explains how to use the GNOME desktop and its
979 components. It covers usage and setup of the core GNOME programs by end-users
980 and system administrators.")
981 (home-page "https://live.gnome.org/DocumentationProject")
982 (license license:cc-by3.0)))
983
984 (define-public gnome-getting-started-docs
985 (package
986 (name "gnome-getting-started-docs")
987 (version "3.32.2")
988 (source
989 (origin
990 (method url-fetch)
991 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
992 (version-major+minor version)
993 "/gnome-getting-started-docs-" version ".tar.xz"))
994 (sha256
995 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
996 (build-system gnu-build-system)
997 (native-inputs
998 `(("gettext" ,gettext-minimal)
999 ("itstool" ,itstool)
1000 ("pkg-config" ,pkg-config)
1001 ("xmllint" ,libxml2)))
1002 (synopsis "Help to get new users started with the GNOME desktop")
1003 (description
1004 "The GNOME Getting Started Documentation contains GNOME's intuitive
1005 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1006
1007 It is normally used together with @command{gnome-initial-setup}, but is also
1008 useful as a tutorial and users' guide for new or less experienced users.")
1009 (home-page "https://live.gnome.org/DocumentationProject")
1010 (license license:cc-by-sa3.0)))
1011
1012 (define-public dia
1013 ;; This version from GNOME's repository includes fixes for compiling with
1014 ;; recent versions of the build tools. The latest activity on the
1015 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1016 ;; fixes since.
1017 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1018 (revision "2"))
1019 (package
1020 (name "dia")
1021 (version (git-version "0.97.3" revision commit))
1022 (source (origin
1023 (method git-fetch)
1024 (uri (git-reference
1025 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1026 (commit commit)))
1027 (file-name (git-file-name name version))
1028 (sha256
1029 (base32
1030 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1031 (build-system meson-build-system)
1032 (inputs
1033 `(("graphene" ,graphene)
1034 ("gtk+" ,gtk+-2)
1035 ("libxml2" ,libxml2)
1036 ("libxslt" ,libxslt)
1037 ("poppler" ,poppler)
1038 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1039 ;; ERROR: Unknown method "dependency" in object.
1040 ("python-2" ,python-2)))
1041 (native-inputs
1042 `(("appstream-glib" ,appstream-glib)
1043 ("docbook-xsl" ,docbook-xsl)
1044 ("glib" ,glib "bin")
1045 ("intltool" ,intltool)
1046 ("pkg-config" ,pkg-config)))
1047 (home-page "https://wiki.gnome.org/Apps/Dia")
1048 (synopsis "Diagram creation for GNOME")
1049 (description "Dia can be used to draw different types of diagrams, and
1050 includes support for UML static structure diagrams (class diagrams), entity
1051 relationship modeling, and network diagrams. The program supports various file
1052 formats like PNG, SVG, PDF and EPS.")
1053 (license license:gpl2+))))
1054
1055 ;; This is the unstable release, but it is required for the current stable
1056 ;; release of gvfs (1.38.1).
1057 (define-public libgdata
1058 (package
1059 (name "libgdata")
1060 (version "0.17.9")
1061 (source (origin
1062 (method url-fetch)
1063 (uri (string-append "mirror://gnome/sources/" name "/"
1064 (version-major+minor version) "/"
1065 name "-" version ".tar.xz"))
1066 (sha256
1067 (base32
1068 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1069 (build-system gnu-build-system)
1070 (arguments
1071 '(#:phases
1072 (modify-phases %standard-phases
1073 (add-before 'check 'disable-failing-tests
1074 (lambda _
1075 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1076 ;; They have been removed in libgdata 0.17.6, so just do the same.
1077 (substitute* "gdata/tests/Makefile"
1078 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1079 #t)))))
1080 (native-inputs
1081 `(("glib:bin" ,glib "bin")
1082 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1083 ("intltool" ,intltool)
1084 ("pkg-config" ,pkg-config)
1085 ("uhttpmock" ,uhttpmock)))
1086 (inputs
1087 `(("cyrus-sasl" ,cyrus-sasl)
1088 ("glib-networking" ,glib-networking)))
1089 (propagated-inputs
1090 `(("gcr" ,gcr)
1091 ("glib" ,glib)
1092 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1093 ("json-glib" ,json-glib)
1094 ("liboauth" ,liboauth)
1095 ("libsoup" ,libsoup)
1096 ("libxml2" ,libxml2)))
1097 (home-page "https://wiki.gnome.org/Projects/libgdata")
1098 (synopsis "Library for accessing online service APIs")
1099 (description
1100 "libgdata is a GLib-based library for accessing online service APIs using
1101 the GData protocol — most notably, Google's services. It provides APIs to
1102 access the common Google services, and has full asynchronous support.")
1103 (license license:lgpl2.1+)))
1104
1105 (define-public libgxps
1106 (package
1107 (name "libgxps")
1108 (version "0.3.1")
1109 (source (origin
1110 (method url-fetch)
1111 (uri (string-append "mirror://gnome/sources/" name "/"
1112 (version-major+minor version) "/"
1113 name "-" version ".tar.xz"))
1114 (sha256
1115 (base32
1116 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1117 (build-system meson-build-system)
1118 (native-inputs
1119 `(("gobject-introspection" ,gobject-introspection)
1120 ("pkg-config" ,pkg-config)))
1121 (inputs
1122 `(("gtk+" ,gtk+)
1123 ("libjpeg" ,libjpeg-turbo)
1124 ("lcms" ,lcms)
1125 ("libtiff" ,libtiff)))
1126 (propagated-inputs
1127 ;; In Requires of libgxps.pc.
1128 `(("cairo" ,cairo)
1129 ("glib" ,glib)
1130 ("libarchive" ,libarchive)))
1131 (home-page "https://wiki.gnome.org/Projects/libgxps")
1132 (synopsis "GObject-based library for handling and rendering XPS documents")
1133 (description
1134 "libgxps is a GObject-based library for handling and rendering XPS
1135 documents. This package also contains binaries that can convert XPS documents
1136 to other formats.")
1137 (license license:lgpl2.1+)))
1138
1139 (define-public gnome-characters
1140 (package
1141 (name "gnome-characters")
1142 (version "3.30.0")
1143 (source
1144 (origin
1145 (method url-fetch)
1146 (uri (string-append "mirror://gnome/sources/"
1147 "gnome-characters/" (version-major+minor version)
1148 "/gnome-characters-" version ".tar.xz"))
1149 (sha256
1150 (base32
1151 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1152 (build-system meson-build-system)
1153 (arguments
1154 `(#:glib-or-gtk? #t
1155 #:phases (modify-phases %standard-phases
1156 (add-after 'install 'wrap
1157 (lambda* (#:key outputs #:allow-other-keys)
1158 ;; GNOME Characters needs Typelib files from GTK and
1159 ;; gnome-desktop.
1160 (wrap-program (string-append (assoc-ref outputs "out")
1161 "/bin/gnome-characters")
1162 `("GI_TYPELIB_PATH" ":" prefix
1163 (,(getenv "GI_TYPELIB_PATH"))))
1164 #t)))))
1165 (native-inputs
1166 `(("gettext" ,gettext-minimal)
1167 ("glib:bin" ,glib "bin")
1168 ("gtk+:bin" ,gtk+ "bin")
1169 ("pkg-config" ,pkg-config)
1170 ("python" ,python-minimal)))
1171 (inputs
1172 `(("gjs" ,gjs)
1173 ("gtk+" ,gtk+)
1174 ("libunistring" ,libunistring)
1175 ("gnome-desktop" ,gnome-desktop)))
1176 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1177 (synopsis "Find and insert unusual characters")
1178 (description "Characters is a simple utility application to find
1179 and insert unusual characters. It allows you to quickly find the
1180 character you are looking for by searching for keywords.")
1181 (license license:bsd-3)))
1182
1183 (define-public gnome-common
1184 (package
1185 (name "gnome-common")
1186 (version "3.18.0")
1187 (source
1188 (origin
1189 (method url-fetch)
1190 (uri (string-append "mirror://gnome/sources/" name "/"
1191 (version-major+minor version) "/"
1192 name "-" version ".tar.xz"))
1193 (sha256
1194 (base32
1195 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1196 (build-system gnu-build-system)
1197 (home-page "https://www.gnome.org/")
1198 (synopsis "Bootstrap GNOME modules built from Git")
1199 (description "gnome-common contains various files needed to bootstrap
1200 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1201 can be used to configure a source directory checked out from Git and some
1202 commonly used macros.")
1203 (license license:gpl2+)))
1204
1205 (define-public gnome-contacts
1206 (package
1207 (name "gnome-contacts")
1208 (version "3.34")
1209 (source (origin
1210 (method url-fetch)
1211 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1212 (version-major+minor version) "/"
1213 name "-" version ".tar.xz"))
1214 (sha256
1215 (base32
1216 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1217 (build-system meson-build-system)
1218 (arguments
1219 `(#:configure-flags '("-Dcheese=false")
1220 #:phases
1221 (modify-phases %standard-phases
1222 (add-after 'unpack 'generate-vapis
1223 (lambda* (#:key inputs #:allow-other-keys)
1224 ;; To generate goa's missing .vapi file
1225 (define goa
1226 (assoc-ref inputs "gnome-online-accounts:lib"))
1227
1228 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1229 "--library=goa-1.0"
1230 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1231 #t))
1232 (add-after 'unpack 'skip-gtk-update-icon-cache
1233 ;; Don't create 'icon-theme.cache'.
1234 (lambda _
1235 (substitute* "build-aux/meson_post_install.py"
1236 (("gtk-update-icon-cache") "true"))
1237 #t)))))
1238 (native-inputs
1239 `(("glib:bin" ,glib "bin")
1240 ("pkg-config" ,pkg-config)))
1241 (inputs
1242 `(("docbook-xml" ,docbook-xml)
1243 ("dockbook-xsl" ,docbook-xsl)
1244 ("evolution-data-server" ,evolution-data-server)
1245 ("gettext" ,gettext-minimal)
1246 ("gnome-desktop" ,gnome-desktop)
1247 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1248 ("gobject-introspection" ,gobject-introspection)
1249 ("gst-plugins-base" ,gst-plugins-base)
1250 ("gtk+" ,gtk+)
1251 ("libgee" ,libgee)
1252 ("libxslt" ,libxslt)
1253 ("telepathy-glib" ,telepathy-glib)
1254 ("vala" ,vala)))
1255 (propagated-inputs
1256 `(("folks", folks)
1257 ("telepathy-mission-control" ,telepathy-mission-control)))
1258 (synopsis "GNOME's integrated address book")
1259 (description
1260 "GNOME Contacts organizes your contact information from online and
1261 offline sources, providing a centralized place for managing your contacts.")
1262 (home-page "https://wiki.gnome.org/Apps/Contacts")
1263 (license license:gpl2+)))
1264
1265 (define-public gnome-desktop
1266 (package
1267 (name "gnome-desktop")
1268 (version "3.34.2")
1269 (source
1270 (origin
1271 (method url-fetch)
1272 (uri (string-append "mirror://gnome/sources/" name "/"
1273 (version-major+minor version) "/"
1274 name "-" version ".tar.xz"))
1275 (sha256
1276 (base32
1277 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
1278 (build-system meson-build-system)
1279 (arguments
1280 '(#:phases
1281 (modify-phases %standard-phases
1282 (add-before 'configure 'patch-path
1283 (lambda* (#:key inputs #:allow-other-keys)
1284 (let ((libc (assoc-ref inputs "libc")))
1285 (substitute* "libgnome-desktop/gnome-languages.c"
1286 (("\"locale\"")
1287 (string-append "\"" libc "/bin/locale\"")))
1288 #t)))
1289 (add-before 'configure 'patch-bubblewrap
1290 (lambda* (#:key inputs #:allow-other-keys)
1291 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
1292 (("\"bwrap\",")
1293 (string-append "\"" (which "bwrap") "\","))
1294 (("\"--ro-bind\", \"/usr\", \"/usr\",")
1295 (string-append "\"--ro-bind\", \""
1296 (%store-directory)
1297 "\", \""
1298 (%store-directory)
1299 "\","))
1300 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
1301 #t))
1302 (add-before 'check 'pre-check
1303 (lambda* (#:key inputs #:allow-other-keys)
1304 ;; Tests require a running X server and locales.
1305 (system "Xvfb :1 &")
1306 (setenv "DISPLAY" ":1")
1307 (setenv "GUIX_LOCPATH"
1308 (string-append (assoc-ref inputs "glibc-locales")
1309 "/lib/locale"))
1310 #t)))))
1311 (native-inputs
1312 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1313 ("glibc-locales" ,glibc-locales) ; for tests
1314 ("gobject-introspection" ,gobject-introspection)
1315 ("itstool" ,itstool)
1316 ("intltool" ,intltool)
1317 ("pkg-config" ,pkg-config)
1318 ("xmllint" ,libxml2)
1319 ("xorg-server" ,xorg-server-for-tests)))
1320 (propagated-inputs
1321 ;; Required by gnome-desktop-3.0.pc.
1322 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1323 ("gtk+" ,gtk+)
1324 ("iso-codes" ,iso-codes)
1325 ("libseccomp" ,libseccomp)
1326 ("libx11" ,libx11)
1327 ("xkeyboard-config" ,xkeyboard-config)))
1328 (inputs
1329 `(("gdk-pixbuf" ,gdk-pixbuf)
1330 ("glib" ,glib)
1331 ("bubblewrap" ,bubblewrap)
1332 ("libxext" ,libxext)
1333 ("libxkbfile" ,libxkbfile)
1334 ("libxrandr" ,libxrandr)))
1335 (home-page "https://www.gnome.org/")
1336 (synopsis
1337 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1338 (description
1339 "The libgnome-desktop library provides API shared by several applications
1340 on the desktop, but that cannot live in the platform for various reasons.
1341 There is no API or ABI guarantee, although we are doing our best to provide
1342 stability. Documentation for the API is available with gtk-doc.
1343
1344 The gnome-about program helps find which version of GNOME is installed.")
1345 ; Some bits under the LGPL.
1346 (license license:gpl2+)))
1347
1348 (define-public gnome-doc-utils
1349 (package
1350 (name "gnome-doc-utils")
1351 (version "0.20.10")
1352 (source
1353 (origin
1354 (method url-fetch)
1355 (uri (string-append "mirror://gnome/sources/" name "/"
1356 (version-major+minor version) "/"
1357 name "-" version ".tar.xz"))
1358 (sha256
1359 (base32
1360 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1361 (build-system gnu-build-system)
1362 (native-inputs
1363 `(("intltool" ,intltool)
1364 ("docbook-xml" ,docbook-xml-4.4)
1365 ("python2-libxml2" ,python2-libxml2)
1366 ("libxml2" ,libxml2)
1367 ("libxslt" ,libxslt)
1368 ("pkg-config" ,pkg-config)
1369 ("python-2" ,python-2)))
1370 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1371 (synopsis
1372 "Documentation utilities for the Gnome project")
1373 (description
1374 "Gnome-doc-utils is a collection of documentation utilities for the
1375 Gnome project. It includes xml2po tool which makes it easier to translate
1376 and keep up to date translations of documentation.")
1377 (license license:gpl2+))) ; xslt under lgpl
1378
1379 (define-public gnome-disk-utility
1380 (package
1381 (name "gnome-disk-utility")
1382 (version "3.34.0")
1383 (source (origin
1384 (method url-fetch)
1385 (uri (string-append "mirror://gnome/sources/" name "/"
1386 (version-major+minor version) "/"
1387 name "-" version ".tar.xz"))
1388 (sha256
1389 (base32
1390 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
1391 (build-system meson-build-system)
1392 (arguments
1393 '(#:configure-flags '("-Dlogind=libelogind")
1394 #:phases
1395 (modify-phases %standard-phases
1396 (add-after 'unpack 'skip-gtk-update-icon-cache
1397 ;; Don't create 'icon-theme.cache'.
1398 (lambda _
1399 (substitute* "meson_post_install.py"
1400 (("gtk-update-icon-cache") "true"))
1401 #t)))))
1402 (native-inputs
1403 `(("glib:bin" ,glib "bin")
1404 ("intltool" ,intltool)
1405 ("pkg-config" ,pkg-config)
1406 ("docbook-xml" ,docbook-xml)
1407 ("docbook-xsl" ,docbook-xsl)
1408 ("libxml2" ,libxml2)
1409 ("libxslt" ,libxslt)))
1410 (inputs
1411 `(("elogind" ,elogind)
1412 ("glib" ,glib)
1413 ("appstream-glib" ,appstream-glib)
1414 ("gnome-settings-daemon" ,gnome-settings-daemon)
1415 ("gtk+" ,gtk+)
1416 ("libcanberra" ,libcanberra)
1417 ("libdvdread" ,libdvdread)
1418 ("libnotify" ,libnotify)
1419 ("libpwquality" ,libpwquality)
1420 ("libsecret" ,libsecret)
1421 ("udisks" ,udisks)))
1422 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1423 (synopsis "Disk management utility for GNOME")
1424 (description "Disk management utility for GNOME.")
1425 (license license:gpl2+)))
1426
1427 (define-public gnome-font-viewer
1428 (package
1429 (name "gnome-font-viewer")
1430 (version "3.30.0")
1431 (source (origin
1432 (method url-fetch)
1433 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1434 (version-major+minor version)
1435 "/gnome-font-viewer-" version ".tar.xz"))
1436 (sha256
1437 (base32
1438 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1439 (build-system meson-build-system)
1440 (arguments
1441 '(#:phases
1442 (modify-phases %standard-phases
1443 (add-after 'unpack 'patch-post-install-script
1444 (lambda _
1445 (substitute* "meson-postinstall.sh"
1446 (("update-desktop-database") (which "true")))
1447 #t)))))
1448 (native-inputs
1449 `(("gettext" ,gettext-minimal)
1450 ("glib:bin" ,glib "bin")
1451 ("pkg-config" ,pkg-config)))
1452 (inputs
1453 `(("glib" ,glib)
1454 ("gnome-desktop" ,gnome-desktop)
1455 ("gtk+" ,gtk+)))
1456 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1457 (synopsis "GNOME Fonts")
1458 (description "Application to show you the fonts installed on your computer
1459 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1460 the font would look under various sizes.")
1461 (license license:gpl2+)))
1462
1463 (define-public gcr
1464 (package
1465 (name "gcr")
1466 (version "3.34.0")
1467 (source (origin
1468 (method url-fetch)
1469 (uri (string-append "mirror://gnome/sources/" name "/"
1470 (version-major+minor version) "/"
1471 name "-" version ".tar.xz"))
1472 (sha256
1473 (base32
1474 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
1475 (build-system gnu-build-system)
1476 (arguments
1477 '(#:phases
1478 (modify-phases %standard-phases
1479 ;; These fail because /var/lib/dbus/machine-id is not present in the
1480 ;; build environment.
1481 (add-after 'unpack 'disable-failing-tests
1482 (lambda _
1483 (substitute* "Makefile.in"
1484 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1485 ""))
1486 #t))
1487 (add-before 'check 'pre-check
1488 (lambda _
1489 ;; Some tests expect to write to $HOME.
1490 (setenv "HOME" "/tmp")
1491 #t)))))
1492 (inputs
1493 `(("dbus" ,dbus)
1494 ("gnupg" ,gnupg) ;called as a child process during tests
1495 ("libgcrypt" ,libgcrypt)))
1496 (native-inputs
1497 `(("python" ,python-wrapper) ;for tests
1498 ("pkg-config" ,pkg-config)
1499 ("gettext" ,gettext-minimal)
1500 ("glib" ,glib "bin")
1501 ("gobject-introspection" ,gobject-introspection)
1502 ("libxml2" ,libxml2)
1503 ("vala" ,vala)
1504 ("xsltproc" ,libxslt)))
1505 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1506 (propagated-inputs
1507 `(("p11-kit" ,p11-kit)
1508 ("glib" ,glib)
1509 ("gtk+" ,gtk+)))
1510 (home-page "https://www.gnome.org")
1511 (synopsis "Libraries for displaying certificates and accessing key stores")
1512 (description
1513 "The GCR package contains libraries used for displaying certificates and
1514 accessing key stores. It also provides the viewer for crypto files on the
1515 GNOME Desktop.")
1516 (license license:lgpl2.1+)))
1517
1518 (define-public gdl
1519 (package
1520 (name "gdl")
1521 (version "3.34.0")
1522 (source (origin
1523 (method git-fetch)
1524 (uri (git-reference
1525 (url "https://gitlab.gnome.org/GNOME/gdl.git")
1526 (commit (string-append "GDL_" (string-map (match-lambda
1527 (#\. #\_)
1528 (c c))
1529 version)))))
1530 (file-name (git-file-name name version))
1531 (sha256
1532 (base32
1533 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
1534 (build-system gnu-build-system)
1535 (native-inputs
1536 `(("autoconf" ,autoconf)
1537 ("automake" ,automake)
1538 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1539 ("gnome-common" ,gnome-common)
1540 ("gtk-doc" ,gtk-doc)
1541 ("intltool" ,intltool)
1542 ("pkg-config" ,pkg-config)
1543 ("libtool" ,libtool)
1544 ("which" ,which)))
1545 (inputs
1546 `(("libxml2" ,libxml2)))
1547 (propagated-inputs
1548 ;; The gdl-3.0.pc file 'Requires' GTK+.
1549 `(("gtk+" ,gtk+)))
1550 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
1551 (synopsis "GNOME docking library")
1552 (description "This library provides docking features for gtk+.")
1553 (license license:lgpl2.1+)))
1554
1555 ;;; A minimal variant used to break a cycle with Inkscape.
1556 (define-public gdl-minimal
1557 (package
1558 (inherit gdl)
1559 (name "gdl-minimal")
1560 (arguments
1561 '(#:phases
1562 (modify-phases %standard-phases
1563 (add-after 'unpack 'disable-doc-generation
1564 ;; XXX: There is no easy way to disable generating the
1565 ;; documentation.
1566 (lambda _
1567 (substitute* "configure.in"
1568 (("GTK_DOC_CHECK.*") "")
1569 (("docs/.*") ""))
1570 (substitute* "Makefile.am"
1571 (("gdl docs po") "gdl po"))
1572 #t)))))
1573 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
1574
1575 (define-public libgnome-keyring
1576 (package
1577 (name "libgnome-keyring")
1578 (version "3.12.0")
1579 (source (origin
1580 (method url-fetch)
1581 (uri (string-append "mirror://gnome/sources/" name "/"
1582 (version-major+minor version) "/"
1583 name "-" version ".tar.xz"))
1584 (sha256
1585 (base32
1586 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1587 (build-system gnu-build-system)
1588 (inputs
1589 `(("libgcrypt" ,libgcrypt)
1590 ("dbus" ,dbus)))
1591 (native-inputs
1592 `(("pkg-config" ,pkg-config)
1593 ("glib" ,glib "bin")
1594 ("intltool" ,intltool)))
1595 (propagated-inputs
1596 ;; Referred to in .h files and .pc.
1597 `(("glib" ,glib)))
1598 (home-page "https://www.gnome.org")
1599 (synopsis "Accessing passwords from the GNOME keyring")
1600 (description
1601 "Client library to access passwords from the GNOME keyring.")
1602
1603 ;; Though a couple of files are LGPLv2.1+.
1604 (license license:lgpl2.0+)))
1605
1606 (define-public gnome-keyring
1607 (package
1608 (name "gnome-keyring")
1609 (version "3.34.0")
1610 (source (origin
1611 (method url-fetch)
1612 (uri (string-append "mirror://gnome/sources/" name "/"
1613 (version-major+minor version) "/"
1614 name "-" version ".tar.xz"))
1615 (sha256
1616 (base32
1617 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
1618 (build-system gnu-build-system)
1619 (arguments
1620 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1621 ;not exist
1622 #:configure-flags
1623 (list
1624 (string-append "--with-pkcs11-config="
1625 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1626 (string-append "--with-pkcs11-modules="
1627 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1628 #:phases
1629 (modify-phases %standard-phases
1630 (add-after 'unpack 'fix-/bin/sh-reference
1631 (lambda _
1632 (substitute* "po/Makefile.in.in"
1633 (("/bin/sh") (which "sh")))
1634 #t))
1635 (add-after 'unpack 'fix-docbook
1636 (lambda* (#:key inputs #:allow-other-keys)
1637 (substitute* "docs/Makefile.am"
1638 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1639 (string-append (assoc-ref inputs "docbook-xsl")
1640 "/xml/xsl/docbook-xsl-"
1641 ,(package-version docbook-xsl)
1642 "/manpages/docbook.xsl")))
1643 (setenv "XML_CATALOG_FILES"
1644 (string-append (assoc-ref inputs "docbook-xml")
1645 "/xml/dtd/docbook/catalog.xml"))
1646 ;; Rerun the whole thing to avoid version mismatch ("This is
1647 ;; Automake 1.15.1, but the definition used by this
1648 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1649 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1650 (invoke "autoconf")
1651 (invoke "aclocal")
1652 (invoke "automake" "-ac"))))))
1653 (inputs
1654 `(("libgcrypt" ,libgcrypt)
1655 ("linux-pam" ,linux-pam)
1656 ("openssh" ,openssh)
1657 ("dbus" ,dbus)
1658 ("gcr" ,gcr)))
1659 (native-inputs
1660 `(("pkg-config" ,pkg-config)
1661 ("glib" ,glib "bin")
1662 ("glib" ,glib) ; for m4 macros
1663 ("python" ,python-2) ;for tests
1664 ("intltool" ,intltool)
1665 ("autoconf" ,autoconf)
1666 ("automake" ,automake)
1667 ("libxslt" ,libxslt) ;for documentation
1668 ("docbook-xml" ,docbook-xml-4.2)
1669 ("docbook-xsl" ,docbook-xsl)))
1670 (home-page "https://www.gnome.org")
1671 (synopsis "Daemon to store passwords and encryption keys")
1672 (description
1673 "gnome-keyring is a program that keeps passwords and other secrets for
1674 users. It is run as a daemon in the session, similar to ssh-agent, and other
1675 applications locate it via an environment variable or D-Bus.
1676
1677 The program can manage several keyrings, each with its own master password,
1678 and there is also a session keyring which is never stored to disk, but
1679 forgotten when the session ends.")
1680 (license license:lgpl2.1+)))
1681
1682 (define-public evince
1683 (package
1684 (name "evince")
1685 (version "3.36.5")
1686 (source (origin
1687 (method url-fetch)
1688 (uri (string-append "mirror://gnome/sources/evince/"
1689 (version-major+minor version) "/"
1690 "evince-" version ".tar.xz"))
1691 (sha256
1692 (base32
1693 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
1694 (build-system glib-or-gtk-build-system)
1695 (arguments
1696 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1697 #:phases
1698 (modify-phases %standard-phases
1699 (add-before 'install 'skip-gtk-update-icon-cache
1700 ;; Don't create 'icon-theme.cache'.
1701 (lambda _
1702 (substitute* "data/Makefile"
1703 (("gtk-update-icon-cache") "true"))
1704 #t)))))
1705 (inputs
1706 `(("libarchive" ,libarchive)
1707 ("libgxps" ,libgxps)
1708 ("libspectre" ,libspectre)
1709 ("djvulibre" ,djvulibre)
1710 ("ghostscript" ,ghostscript)
1711 ("poppler" ,poppler)
1712 ("libtiff" ,libtiff)
1713 ;; TODO:
1714 ;; Build libkpathsea as a shared library for DVI support.
1715 ;; ("libkpathsea" ,texlive-bin)
1716 ("gnome-desktop" ,gnome-desktop)
1717 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1718 ("gspell" ,gspell)
1719 ("libgnome-keyring" ,libgnome-keyring)
1720 ("adwaita-icon-theme" ,adwaita-icon-theme)
1721 ("gdk-pixbuf" ,gdk-pixbuf)
1722 ("atk" ,atk)
1723 ("pango" ,pango)
1724 ("gtk+" ,gtk+)
1725 ("glib" ,glib)
1726 ("libxml2" ,libxml2)
1727 ("libsm" ,libsm)
1728 ("libice" ,libice)
1729 ("shared-mime-info" ,shared-mime-info)
1730 ("dconf" ,dconf)
1731 ("libcanberra" ,libcanberra)
1732 ("libsecret" ,libsecret)
1733
1734 ;; For tests.
1735 ("dogtail" ,python2-dogtail)))
1736 (native-inputs
1737 `(("itstool" ,itstool)
1738 ("intltool" ,intltool)
1739 ("glib" ,glib "bin")
1740 ("gobject-introspection" ,gobject-introspection)
1741 ("pkg-config" ,pkg-config)
1742 ("xmllint" ,libxml2)))
1743 (home-page "https://www.gnome.org/projects/evince/")
1744 (synopsis "GNOME's document viewer")
1745 (description
1746 "Evince is a document viewer for multiple document formats. It
1747 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1748 of Evince is to replace the multiple document viewers that exist
1749 on the GNOME Desktop with a single simple application.")
1750 (license license:gpl2+)))
1751
1752 (define-public gsettings-desktop-schemas
1753 (package
1754 (name "gsettings-desktop-schemas")
1755 (version "3.34.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 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
1765 (build-system meson-build-system)
1766 (arguments
1767 '(#:phases (modify-phases %standard-phases
1768 (add-after 'unpack 'patch-schemas
1769 (lambda* (#:key inputs #:allow-other-keys)
1770 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1771 (substitute* (find-files "schemas"
1772 "\\.gschema\\.xml\\.in$")
1773 ;; Provide the correct file name of the default GNOME
1774 ;; background, 'adwaita-timed.xml'.
1775 (("@datadir@/backgrounds/gnome")
1776 (string-append theme "/share/backgrounds/gnome"))
1777 ;; Do not reference fonts, that may not exist.
1778 (("'Source Code Pro 10'") "'Monospace 11'"))
1779 #t))))))
1780 (inputs
1781 `(("glib" ,glib)
1782 ("gnome-backgrounds" ,gnome-backgrounds)))
1783 (native-inputs
1784 `(("intltool" ,intltool)
1785 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1786 ("gobject-introspection" ,gobject-introspection)
1787 ("pkg-config" ,pkg-config)))
1788 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1789 (synopsis
1790 "GNOME settings for various desktop components")
1791 (description
1792 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1793 for settings shared by various components of the GNOME desktop.")
1794 (license license:lgpl2.1+)))
1795
1796 (define-public icon-naming-utils
1797 (package
1798 (name "icon-naming-utils")
1799 (version "0.8.90")
1800 (source
1801 (origin
1802 (method url-fetch)
1803 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1804 version ".tar.bz2"))
1805 (sha256
1806 (base32
1807 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1808 (build-system gnu-build-system)
1809 (inputs
1810 `(("perl" ,perl)
1811 ("perl-xml-simple" ,perl-xml-simple)))
1812 (arguments
1813 '(#:phases
1814 (modify-phases %standard-phases
1815 (add-after 'install 'set-load-paths
1816 ;; Tell 'icon-name-mapping' where XML::Simple is.
1817 (lambda* (#:key outputs #:allow-other-keys)
1818 (let* ((out (assoc-ref outputs "out"))
1819 (prog (string-append out "/libexec/icon-name-mapping")))
1820 (wrap-program
1821 prog
1822 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1823 #t)))))
1824 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1825 (synopsis
1826 "Utility to implement the Freedesktop Icon Naming Specification")
1827 (description
1828 "To help with the transition to the Freedesktop Icon Naming
1829 Specification, the icon naming utility maps the icon names used by the
1830 GNOME and KDE desktops to the icon names proposed in the specification.")
1831 (license license:lgpl2.1+)))
1832
1833 (define-public gnome-icon-theme
1834 (package
1835 (name "gnome-icon-theme")
1836 (version "3.12.0")
1837 (source
1838 (origin
1839 (method url-fetch)
1840 (uri (string-append "mirror://gnome/sources/" name "/"
1841 (version-major+minor version) "/"
1842 name "-" version ".tar.xz"))
1843 (sha256
1844 (base32
1845 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1846 (build-system gnu-build-system)
1847 (arguments
1848 '(#:configure-flags
1849 ;; Don't create 'icon-theme.cache'.
1850 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1851 (true (string-append coreutils "/bin/true")))
1852 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1853 (native-inputs
1854 `(("icon-naming-utils" ,icon-naming-utils)
1855 ("intltool" ,intltool)
1856 ("pkg-config" ,pkg-config)))
1857 (home-page "https://wiki.gnome.org/Personalization")
1858 (synopsis "GNOME icon theme")
1859 (description "Icons for the GNOME desktop.")
1860 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1861
1862 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1863 (define-public adwaita-icon-theme
1864 (package (inherit gnome-icon-theme)
1865 (name "adwaita-icon-theme")
1866 (version "3.34.3")
1867 (source (origin
1868 (method url-fetch)
1869 (uri (string-append "mirror://gnome/sources/" name "/"
1870 (version-major+minor version) "/"
1871 name "-" version ".tar.xz"))
1872 (sha256
1873 (base32
1874 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
1875 (native-inputs
1876 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1877
1878 (define-public tango-icon-theme
1879 (package
1880 (name "tango-icon-theme")
1881 (version "0.8.90")
1882 (source (origin
1883 (method url-fetch)
1884 (uri (string-append "http://tango.freedesktop.org/releases/"
1885 "tango-icon-theme-" version ".tar.bz2"))
1886 (sha256
1887 (base32
1888 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1889 (build-system gnu-build-system)
1890 (native-inputs
1891 `(("icon-naming-utils" ,icon-naming-utils)
1892 ("intltool" ,intltool)
1893 ("imagemagick" ,imagemagick)
1894 ("pkg-config" ,pkg-config)))
1895 (home-page "http://tango-project.org/")
1896 (synopsis "Tango icon theme")
1897 (description "This is an icon theme that follows the Tango visual
1898 guidelines.")
1899 (license license:public-domain)))
1900
1901 (define-public shared-mime-info
1902 (package
1903 (name "shared-mime-info")
1904 (version "1.15")
1905 (source (origin
1906 (method url-fetch)
1907 (uri (string-append
1908 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1909 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1910 ".tar.xz"))
1911 (sha256
1912 (base32
1913 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
1914 (build-system gnu-build-system)
1915 (arguments
1916 ;; The build system appears not to be parallel-safe.
1917 '(#:parallel-build? #f))
1918 (inputs
1919 `(("glib" ,glib)
1920 ("libxml2" ,libxml2)))
1921 (native-inputs
1922 `(("gettext" ,gettext-minimal)
1923 ("itstool" ,itstool)
1924 ("pkg-config" ,pkg-config)))
1925 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1926 (synopsis "Database of common MIME types")
1927 (description
1928 "The shared-mime-info package contains the core database of common types
1929 and the update-mime-database command used to extend it. It requires glib2 to
1930 be installed for building the update command. Additionally, it uses intltool
1931 for translations, though this is only a dependency for the maintainers. This
1932 database is translated at Transifex.")
1933 (license license:gpl2+)))
1934
1935 (define-public system-config-printer
1936 (package
1937 (name "system-config-printer")
1938 (version "1.5.12")
1939 (source
1940 (origin
1941 (method url-fetch)
1942 (uri (string-append
1943 "https://github.com/OpenPrinting/system-config-printer/releases/"
1944 "download/" version
1945 "/system-config-printer-" version ".tar.xz"))
1946 (sha256
1947 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1948 (build-system glib-or-gtk-build-system)
1949 (arguments
1950 `(#:imported-modules ((guix build python-build-system)
1951 ,@%glib-or-gtk-build-system-modules)
1952 #:phases
1953 (modify-phases %standard-phases
1954 (add-after 'unpack 'patch-Makefile.am
1955 (lambda _
1956 ;; The Makefile generates some scripts, so set a valid shebang
1957 (substitute* "Makefile.am"
1958 (("/bin/bash") (which "bash")))
1959 (delete-file "configure")
1960 #t))
1961 (add-after 'unpack 'patch-docbook-xml
1962 (lambda* (#:key inputs #:allow-other-keys)
1963 ;; Modify the man XML otherwise xmlto tries to access the network
1964 (substitute* "man/system-config-printer.xml"
1965 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1966 (string-append (assoc-ref inputs "docbook-xml")
1967 "/xml/dtd/docbook/")))
1968 #t))
1969 (add-after 'install 'wrap-for-python
1970 (@@ (guix build python-build-system) wrap))
1971 (add-after 'install 'wrap
1972 (lambda* (#:key outputs #:allow-other-keys)
1973 (let ((out (assoc-ref outputs "out"))
1974 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1975 (for-each
1976 (lambda (program)
1977 (wrap-program program
1978 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1979 (map (lambda (name)
1980 (string-append out "/bin/" name))
1981 '("system-config-printer"
1982 "system-config-printer-applet"
1983 "install-printerdriver"
1984 "scp-dbus-service"))))
1985 #t)))))
1986 (inputs
1987 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1988 ("gobject-introspection" ,gobject-introspection)
1989 ("python" ,python)
1990 ("cups" ,cups)
1991 ("python-dbus" ,python-dbus)
1992 ("python-pygobject" ,python-pygobject)
1993 ("python-pycups" ,python-pycups)
1994 ("python-requests" ,python-requests)
1995 ("python-pycairo" ,python-pycairo)
1996 ("libnotify" ,libnotify)
1997 ("packagekit" ,packagekit)))
1998 (native-inputs
1999 `(("pkg-config" ,pkg-config)
2000 ("desktop-file-utils" ,desktop-file-utils)
2001 ("glib" ,glib)
2002 ("autoconf" ,autoconf)
2003 ("automake" ,automake)
2004 ("intltool" ,intltool)
2005 ("xmlto" ,xmlto)
2006 ("docbook-xml" ,docbook-xml-4.1.2)
2007 ("docbook-xsl" ,docbook-xsl)
2008 ("libxml2" ,libxml2)))
2009 (home-page "https://github.com/zdohnal/system-config-printer")
2010 (synopsis "CUPS administration tool")
2011 (description
2012 "system-config-printer is a CUPS administration tool. It's written in
2013 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2014 configuring CUPS.")
2015 (license license:gpl2+)))
2016
2017 (define-public hicolor-icon-theme
2018 (package
2019 (name "hicolor-icon-theme")
2020 (version "0.17")
2021 (source
2022 (origin
2023 (method url-fetch)
2024 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2025 "hicolor-icon-theme-" version ".tar.xz"))
2026 (sha256
2027 (base32
2028 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2029 (build-system gnu-build-system)
2030 (arguments
2031 `(#:tests? #f)) ; no check target
2032 (home-page "https://icon-theme.freedesktop.org/releases/")
2033 (synopsis
2034 "Freedesktop icon theme")
2035 (description
2036 "Freedesktop icon theme.")
2037 (license license:gpl2)))
2038
2039 (define-public libnotify
2040 (package
2041 (name "libnotify")
2042 (version "0.7.7")
2043 (source
2044 (origin
2045 (method url-fetch)
2046 (uri (string-append "mirror://gnome/sources/" name "/"
2047 (version-major+minor version) "/"
2048 name "-" version ".tar.xz"))
2049 (sha256
2050 (base32
2051 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2052 (build-system gnu-build-system)
2053 (arguments
2054 `(#:configure-flags '("--disable-static")))
2055 (propagated-inputs
2056 `(;; In Requires of libnotify.pc.
2057 ("gdk-pixbuf" ,gdk-pixbuf)
2058 ("glib" ,glib)))
2059 (inputs
2060 `(("gtk+" ,gtk+)
2061 ("libpng" ,libpng)))
2062 (native-inputs
2063 `(("pkg-config" ,pkg-config)
2064 ("glib" ,glib "bin")
2065 ("gobject-introspection" ,gobject-introspection)))
2066 (home-page "https://developer-next.gnome.org/libnotify/")
2067 (synopsis
2068 "GNOME desktop notification library")
2069 (description
2070 "Libnotify is a library that sends desktop notifications to a
2071 notification daemon, as defined in the Desktop Notifications spec. These
2072 notifications can be used to inform the user about an event or display
2073 some form of information without getting in the user's way.")
2074 (license license:lgpl2.1+)))
2075
2076 (define-public libpeas
2077 (package
2078 (name "libpeas")
2079 (version "1.24.1")
2080 (source
2081 (origin
2082 (method url-fetch)
2083 (uri (string-append "mirror://gnome/sources/" name "/"
2084 (version-major+minor version) "/"
2085 name "-" version ".tar.xz"))
2086 (sha256
2087 (base32
2088 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2089 (build-system meson-build-system)
2090 (arguments
2091 '(#:phases
2092 (modify-phases %standard-phases
2093 (add-before 'check 'start-xserver
2094 (lambda* (#:key inputs #:allow-other-keys)
2095 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2096 (disp ":1"))
2097 (setenv "DISPLAY" disp)
2098 ;; Tests require a running X server.
2099 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2100 #t))))))
2101 (inputs
2102 `(("gtk+" ,gtk+)
2103 ("glade" ,glade3)
2104 ("python" ,python)
2105 ("python-pygobject" ,python-pygobject)))
2106 (native-inputs
2107 `(("pkg-config" ,pkg-config)
2108 ("gettext" ,gettext-minimal)
2109 ("glib:bin" ,glib "bin")
2110 ("gobject-introspection" ,gobject-introspection)
2111 ("xorg-server" ,xorg-server-for-tests)))
2112 (propagated-inputs
2113 ;; The .pc file "Requires" gobject-introspection.
2114 `(("gobject-introspection" ,gobject-introspection)))
2115 (home-page "https://wiki.gnome.org/Libpeas")
2116 (synopsis "GObject plugin system")
2117 (description
2118 "Libpeas is a gobject-based plugin engine, targeted at giving every
2119 application the chance to assume its own extensibility. It also has a set of
2120 features including, but not limited to: multiple extension points; on-demand
2121 (lazy) programming language support for C, Python and JS; simplicity of the
2122 API.")
2123 (license license:lgpl2.0+)))
2124
2125 (define-public gtkglext
2126 (package
2127 (name "gtkglext")
2128 (version "1.2.0")
2129 (source (origin
2130 (method url-fetch)
2131 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2132 version "/gtkglext-" version ".tar.gz"))
2133 (sha256
2134 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2135 (patches (search-patches
2136 "gtkglext-disable-disable-deprecated.patch"))))
2137 (build-system gnu-build-system)
2138 (arguments
2139 `(#:phases
2140 (modify-phases %standard-phases
2141 ;; Fix a collision between a local variable and a definition from
2142 ;; glibc's string.h.
2143 (add-after 'unpack 'fix-collision
2144 (lambda _
2145 (substitute* "gdk/gdkglshapes.c"
2146 ((" index") " triangle_index"))
2147 #t)))))
2148 (inputs `(("gtk+" ,gtk+-2)
2149 ("mesa" ,mesa)
2150 ("glu" ,glu)
2151 ("libx11" ,libx11)
2152 ("libxt" ,libxt)))
2153 (native-inputs `(("pkg-config" ,pkg-config)
2154 ("glib" ,glib "bin")))
2155 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2156 (home-page "https://projects.gnome.org/gtkglext")
2157 (synopsis "OpenGL extension to GTK+")
2158 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2159 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2160 API add-ons to make GTK+ widgets OpenGL-capable.")
2161 (license license:lgpl2.1+)))
2162
2163 (define-public glade3
2164 (package
2165 (name "glade")
2166 (version "3.36.0")
2167 (source (origin
2168 (method url-fetch)
2169 (uri (string-append "mirror://gnome/sources/" name "/"
2170 (version-major+minor version) "/"
2171 name "-" version ".tar.xz"))
2172 (sha256
2173 (base32
2174 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
2175 (build-system glib-or-gtk-build-system)
2176 (arguments
2177 `(#:phases
2178 (modify-phases %standard-phases
2179 (add-before 'configure 'fix-docbook
2180 (lambda* (#:key inputs #:allow-other-keys)
2181 (substitute* "man/Makefile.in"
2182 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2183 (string-append (assoc-ref inputs "docbook-xsl")
2184 "/xml/xsl/docbook-xsl-"
2185 ,(package-version docbook-xsl)
2186 "/manpages/docbook.xsl")))
2187 #t))
2188 (add-before 'check 'pre-check
2189 (lambda _
2190 (setenv "HOME" "/tmp")
2191 ;; Tests require a running X server.
2192 (system "Xvfb :1 &")
2193 (setenv "DISPLAY" ":1")
2194 #t)))))
2195 (inputs
2196 `(("gtk+" ,gtk+)
2197 ("libxml2" ,libxml2)))
2198 (native-inputs
2199 `(("hicolor-icon-theme" ,hicolor-icon-theme)
2200 ("intltool" ,intltool)
2201 ("itstool" ,itstool)
2202 ("libxslt" ,libxslt) ;for xsltproc
2203 ("docbook-xml" ,docbook-xml-4.2)
2204 ("docbook-xsl" ,docbook-xsl)
2205 ("python" ,python-2)
2206 ("pkg-config" ,pkg-config)
2207 ("xorg-server" ,xorg-server-for-tests)))
2208 (home-page "https://glade.gnome.org")
2209 (synopsis "GTK+ rapid application development tool")
2210 (description "Glade is a rapid application development (RAD) tool to
2211 enable quick & easy development of user interfaces for the GTK+ toolkit and
2212 the GNOME desktop environment.")
2213 (license license:lgpl2.0+)))
2214
2215 (define-public libcroco
2216 (package
2217 (name "libcroco")
2218 (version "0.6.13")
2219 (source (origin
2220 (method url-fetch)
2221 (uri (string-append "mirror://gnome/sources/" name "/"
2222 (version-major+minor version) "/"
2223 name "-" version ".tar.xz"))
2224 (sha256
2225 (base32
2226 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2227 (build-system gnu-build-system)
2228 (native-inputs
2229 `(("pkg-config" ,pkg-config)))
2230 (inputs
2231 `(("glib" ,glib)
2232 ("libxml2" ,libxml2)
2233 ("zlib" ,zlib)))
2234 (home-page "https://github.com/GNOME/libcroco")
2235 (synopsis "CSS2 parsing and manipulation library")
2236 (description
2237 "Libcroco is a standalone CSS2 parsing and manipulation library.
2238 The parser provides a low level event driven SAC-like API and a CSS object
2239 model like API. Libcroco provides a CSS2 selection engine and an experimental
2240 XML/CSS rendering engine.")
2241
2242 ;; LGPLv2.1-only.
2243 (license license:lgpl2.1)))
2244
2245 (define-public libgsf
2246 (package
2247 (name "libgsf")
2248 (version "1.14.47")
2249 (source (origin
2250 (method url-fetch)
2251 (uri (string-append "mirror://gnome/sources/" name "/"
2252 (version-major+minor version) "/"
2253 name "-" version ".tar.xz"))
2254 (sha256
2255 (base32
2256 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
2257 (build-system gnu-build-system)
2258 (arguments
2259 '(#:configure-flags '("--disable-static")))
2260 (native-inputs
2261 `(("pkg-config" ,pkg-config)
2262 ("gettext" ,gettext-minimal)
2263
2264 ;; For tests.
2265 ("perl" ,perl)
2266 ("perl-xml-parser" ,perl-xml-parser)))
2267 (inputs
2268 `(("zlib" ,zlib)
2269 ("bzip2" ,bzip2)))
2270 (propagated-inputs
2271 `(("gdk-pixbuf" ,gdk-pixbuf)
2272 ("glib" ,glib)
2273 ("libxml2" ,libxml2)))
2274 (home-page "https://www.gnome.org/projects/libgsf")
2275 (synopsis "GNOME's Structured File Library")
2276 (description
2277 "Libgsf aims to provide an efficient extensible I/O abstraction for
2278 dealing with different structured file formats.")
2279
2280 ;; LGPLv2.1-only.
2281 (license license:lgpl2.1)))
2282
2283 (define-public librsvg
2284 (package
2285 (name "librsvg")
2286 (version "2.40.21")
2287 (source (origin
2288 (method url-fetch)
2289 (uri (string-append "mirror://gnome/sources/" name "/"
2290 (version-major+minor version) "/"
2291 name "-" version ".tar.xz"))
2292 (sha256
2293 (base32
2294 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
2295 (build-system gnu-build-system)
2296 (arguments
2297 `(#:configure-flags
2298 (list "--disable-static"
2299 "--enable-vala") ; needed for e.g. gnome-mines
2300 #:phases
2301 (modify-phases %standard-phases
2302 (add-before 'configure 'pre-configure
2303 (lambda* (#:key inputs #:allow-other-keys)
2304 (substitute* "gdk-pixbuf-loader/Makefile.in"
2305 ;; By default the gdk-pixbuf loader is installed under
2306 ;; gdk-pixbuf's prefix. Work around that.
2307 (("gdk_pixbuf_moduledir = .*$")
2308 (string-append "gdk_pixbuf_moduledir = "
2309 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2310 "loaders\n"))
2311 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2312 (("gdk_pixbuf_cache_file = .*$")
2313 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2314 #t))
2315 (add-before 'check 'remove-failing-tests
2316 (lambda _
2317 (with-directory-excursion "tests/fixtures/reftests"
2318 (for-each delete-file
2319 '(;; This test fails on i686:
2320 "svg1.1/masking-path-04-b.svg"
2321 ;; This test fails on armhf:
2322 "svg1.1/masking-mask-01-b.svg"
2323 ;; This test fails on aarch64:
2324 "bugs/777834-empty-text-children.svg")))
2325 #t)))))
2326 (native-inputs
2327 `(("pkg-config" ,pkg-config)
2328 ("vala" ,vala)
2329 ("glib" ,glib "bin") ; glib-mkenums, etc.
2330 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2331 (inputs
2332 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2333 ;; this ancient version of librsvg.
2334 ("pango" ,pango-1.42)
2335 ("libcroco" ,libcroco)
2336 ("bzip2" ,bzip2)
2337 ("libgsf" ,libgsf)
2338 ("libxml2" ,libxml2)))
2339 (propagated-inputs
2340 ;; librsvg-2.0.pc refers to all of that.
2341 `(("cairo" ,cairo)
2342 ("gdk-pixbuf" ,gdk-pixbuf)
2343 ("glib" ,glib)))
2344 (home-page "https://wiki.gnome.org/LibRsvg")
2345 (synopsis "Render SVG files using Cairo")
2346 (description
2347 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2348 library.")
2349 (license license:lgpl2.0+)))
2350
2351 (define-public librsvg-next
2352 (package
2353 (inherit librsvg)
2354 (name "librsvg")
2355 (version "2.46.4")
2356 (source (origin
2357 (method url-fetch)
2358 (uri (string-append "mirror://gnome/sources/librsvg/"
2359 (version-major+minor version) "/"
2360 "librsvg-" version ".tar.xz"))
2361 (sha256
2362 (base32
2363 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2364 (modules '((guix build utils)))
2365 (snippet
2366 '(begin (delete-file-recursively "vendor")
2367 ;; Don't demand an exact version for string_cache
2368 (substitute* "rsvg_internals/Cargo.toml"
2369 (("\"=") "\""))
2370 #t))))
2371 (build-system cargo-build-system)
2372 (arguments
2373 `(#:modules ((guix build cargo-build-system)
2374 (guix build utils)
2375 ((guix build gnu-build-system) #:prefix gnu:))
2376 #:vendor-dir "vendor"
2377 #:cargo-inputs
2378 (("rust-bitflags" ,rust-bitflags-1)
2379 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2380 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2381 ("rust-cssparser" ,rust-cssparser-0.25)
2382 ("rust-data-url" ,rust-data-url-0.1)
2383 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2384 ("rust-encoding" ,rust-encoding-0.2)
2385 ("rust-float-cmp" ,rust-float-cmp-0.5)
2386 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2387 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2388 ("rust-gio" ,rust-gio-0.7)
2389 ("rust-gio-sys" ,rust-gio-sys-0.9)
2390 ("rust-glib" ,rust-glib-0.8)
2391 ("rust-glib-sys" ,rust-glib-sys-0.9)
2392 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2393 ("rust-itertools" ,rust-itertools-0.8)
2394 ("rust-language-tags" ,rust-language-tags-0.2)
2395 ("rust-lazy-static" ,rust-lazy-static-1)
2396 ("rust-libc" ,rust-libc-0.2)
2397 ("rust-locale-config" ,rust-locale-config-0.3)
2398 ("rust-markup5ever" ,rust-markup5ever-0.9)
2399 ("rust-nalgebra" ,rust-nalgebra-0.18)
2400 ("rust-num-traits" ,rust-num-traits-0.2)
2401 ("rust-pkg-config" ,rust-pkg-config-0.3)
2402 ("rust-pango" ,rust-pango-0.7)
2403 ("rust-pango-sys" ,rust-pango-sys-0.9)
2404 ("rust-pangocairo" ,rust-pangocairo-0.8)
2405 ("rust-phf" ,rust-phf-0.7)
2406 ("rust-rayon" ,rust-rayon-1)
2407 ("rust-rctree" ,rust-rctree-0.3)
2408 ("rust-string-cache" ,rust-string-cache-0.7)
2409 ("rust-regex" ,rust-regex-1)
2410 ("rust-url" ,rust-url-2.1)
2411 ("rust-xml-rs" ,rust-xml-rs-0.8))
2412 #:cargo-development-inputs
2413 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2414 ("rust-criterion" ,rust-criterion-0.2))
2415 #:phases
2416 (modify-phases %standard-phases
2417 (add-after 'unpack 'prepare-for-build
2418 (lambda _
2419 ;; In lieu of #:make-flags
2420 (setenv "CC" "gcc")
2421 ;; Something about the build environment resists building
2422 ;; successfully with the '--locked' flag.
2423 (substitute* '("Makefile.am"
2424 "Makefile.in")
2425 (("--locked") ""))
2426 #t))
2427 (add-before 'configure 'pre-configure
2428 (lambda _
2429 (substitute* "gdk-pixbuf-loader/Makefile.in"
2430 ;; By default the gdk-pixbuf loader is installed under
2431 ;; gdk-pixbuf's prefix. Work around that.
2432 (("gdk_pixbuf_moduledir = .*$")
2433 (string-append "gdk_pixbuf_moduledir = "
2434 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2435 "loaders\n"))
2436 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2437 (("gdk_pixbuf_cache_file = .*$")
2438 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2439 #t))
2440 (add-after 'configure 'gnu-configure
2441 (assoc-ref gnu:%standard-phases 'configure))
2442 ;(lambda* (#:key outputs #:allow-other-keys)
2443 ; ((assoc-ref gnu:%standard-phases 'configure)
2444 ; #:outputs outputs
2445 ; #:configure-flags ("--disable-static"
2446 ; "--enable-vala"))))
2447 (add-after 'configure 'dont-vendor-self
2448 (lambda* (#:key vendor-dir #:allow-other-keys)
2449 ;; Don't keep the whole tarball in the vendor directory
2450 (delete-file-recursively
2451 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2452 #t))
2453 (replace 'build
2454 (assoc-ref gnu:%standard-phases 'build))
2455 (replace 'check
2456 (lambda* args
2457 ((assoc-ref gnu:%standard-phases 'check)
2458 #:test-target "check")))
2459 (replace 'install
2460 (assoc-ref gnu:%standard-phases 'install))
2461 (add-before 'check 'remove-failing-tests
2462 (lambda _
2463 (with-directory-excursion "tests/fixtures/reftests"
2464 (for-each delete-file
2465 '(;; The images produced by these tests differ slightly
2466 ;; from their reference counterparts due to differences
2467 ;; in the build environment (missing fonts, etc). See
2468 ;; <tests/README.md> for details.
2469 ;; These fail on x86_64.
2470 "svg1.1/coords-viewattr-02-b.svg"
2471 "svg1.1/filters-composite-04-f.svg"
2472 "svg1.1/filters-image-01-b.svg"
2473 "svg1.1/filters-conv-02-f.svg"
2474 "svg1.1/filters-conv-04-f.svg"
2475 ;; This test fails on i686:
2476 "svg1.1/masking-path-04-b.svg"
2477 ;; This test fails on armhf:
2478 "svg1.1/masking-mask-01-b.svg"
2479 ;; This test fails on aarch64:
2480 "bugs/777834-empty-text-children.svg")))
2481 #t)))))
2482 (license license:lgpl2.1+)))
2483
2484 (define-public libidl
2485 (package
2486 (name "libidl")
2487 (version "0.8.14")
2488 (source (origin
2489 (method url-fetch)
2490 (uri (string-append "mirror://gnome/sources/libIDL/"
2491 (version-major+minor version) "/"
2492 "libIDL-" version ".tar.bz2"))
2493 (sha256
2494 (base32
2495 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2496 (build-system gnu-build-system)
2497 (inputs `(("glib" ,glib)))
2498 (native-inputs
2499 `(("pkg-config" ,pkg-config)
2500 ("flex" ,flex)
2501 ("bison" ,bison)))
2502 (home-page "http://freecode.com/projects/libidl")
2503 (synopsis "Create trees of CORBA Interface Definition Language files")
2504 (description "Libidl is a library for creating trees of CORBA Interface
2505 Definition Language (idl) files, which is a specification for defining
2506 portable interfaces. libidl was initially written for orbit (the orb from the
2507 GNOME project, and the primary means of libidl distribution). However, the
2508 functionality was designed to be as reusable and portable as possible.")
2509 (properties `((upstream-name . "libIDL")))
2510 (license license:lgpl2.0+)))
2511
2512
2513 (define-public orbit2
2514 (package
2515 (name "orbit2")
2516 (version "2.14.19")
2517 (source (origin
2518 (method url-fetch)
2519 (uri (let ((upstream-name "ORBit2"))
2520 (string-append "mirror://gnome/sources/" upstream-name "/"
2521 (version-major+minor version) "/"
2522 upstream-name "-" version ".tar.bz2")))
2523 (sha256
2524 (base32
2525 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2526 (build-system gnu-build-system)
2527 (arguments
2528 `(;; The "timeout-server" test hangs when run in parallel.
2529 #:parallel-tests? #f
2530 #:configure-flags
2531 '(;; We don't need static libraries, plus they don't build reproducibly
2532 ;; (non-deterministic ordering of .o files in the archive.)
2533 "--disable-static"
2534
2535 ;; The programmer kindly gives us a hook to turn off deprecation
2536 ;; warnings ...
2537 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2538 ;; ... which they then completly ignore !!
2539 #:phases
2540 (modify-phases %standard-phases
2541 (add-before 'configure 'ignore-deprecations
2542 (lambda _
2543 (substitute* "linc2/src/Makefile.in"
2544 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2545 #t)))))
2546 (inputs `(("glib" ,glib)
2547 ("libidl" ,libidl)))
2548 (native-inputs
2549 `(("pkg-config" ,pkg-config)))
2550 (home-page "https://projects.gnome.org/orbit2/")
2551 (synopsis "CORBA 2.4-compliant Object Request Broker")
2552 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2553 featuring mature C, C++ and Python bindings.")
2554 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2555 ;; a version. SOME of the code files have licence notices for GPLv2+.
2556 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2557 (license license:gpl2+)
2558 (properties `((upstream-name . "ORBit2")))))
2559
2560
2561 (define-public libbonobo
2562 (package
2563 (name "libbonobo")
2564 (version "2.32.1")
2565 (source (origin
2566 (method url-fetch)
2567 (uri (string-append "mirror://gnome/sources/" name "/"
2568 (version-major+minor version)
2569 "/" name "-" version ".tar.bz2"))
2570 (sha256
2571 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2572 (patches (search-patches
2573 "libbonobo-activation-test-race.patch"))))
2574 (build-system gnu-build-system)
2575 (arguments
2576 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2577 `(#:configure-flags
2578 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2579 ;; ... which they then completly ignore !!
2580 #:phases
2581 (modify-phases %standard-phases
2582 (add-before 'configure 'ignore-deprecations
2583 (lambda _
2584 (substitute* "activation-server/Makefile.in"
2585 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2586 #t)))
2587
2588 ;; There's apparently a race condition between the server stub
2589 ;; generation and linking of the example under 'samples/echo' that can
2590 ;; lead do undefined references when building in parallel, as reported
2591 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2592 ;; Thus, disable parallel builds.
2593 #:parallel-build? #f))
2594 (inputs `(("popt" ,popt)
2595 ("libxml2" ,libxml2)))
2596 ;; The following are Required by the .pc file
2597 (propagated-inputs
2598 `(("glib" ,glib)
2599 ("orbit2" ,orbit2)))
2600 (native-inputs
2601 `(("intltool" ,intltool)
2602 ("pkg-config" ,pkg-config)
2603 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2604 ("flex" ,flex)
2605 ("bison" ,bison)))
2606 (home-page "https://developer.gnome.org/libbonobo/")
2607 (synopsis "Framework for creating reusable components for use in GNOME applications")
2608 (description "Bonobo is a framework for creating reusable components for
2609 use in GNOME applications, built on top of CORBA.")
2610 ;; Licence not explicitly stated. Source files contain no licence notices.
2611 ;; Tarball contains text of both GPLv2 and LGPLv2
2612 ;; GPLv2 covers both conditions
2613 (license license:gpl2+)))
2614
2615
2616 (define-public gconf
2617 (package
2618 (name "gconf")
2619 (version "3.2.6")
2620 (source (origin
2621 (method url-fetch)
2622 (uri
2623 (let ((upstream-name "GConf"))
2624 (string-append "mirror://gnome/sources/" upstream-name "/"
2625 (version-major+minor version) "/"
2626 upstream-name "-" version ".tar.xz")))
2627 (sha256
2628 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2629 (build-system gnu-build-system)
2630 (inputs `(("dbus-glib" ,dbus-glib)
2631 ("libxml2" ,libxml2)))
2632 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2633 ("orbit2" ,orbit2)))
2634 (native-inputs
2635 `(("intltool" ,intltool)
2636 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2637 ("pkg-config" ,pkg-config)))
2638 (home-page "https://projects.gnome.org/gconf/")
2639 (synopsis "Store application preferences")
2640 (description "Gconf is a system for storing application preferences. It
2641 is intended for user preferences; not arbitrary data storage.")
2642 (license license:lgpl2.0+)
2643 (properties '((upstream-name . "GConf")))))
2644
2645
2646 (define-public gnome-mime-data
2647 (package
2648 (name "gnome-mime-data")
2649 (version "2.18.0")
2650 (source (origin
2651 (method url-fetch)
2652 (uri (string-append "mirror://gnome/sources/" name "/"
2653 (version-major+minor version) "/"
2654 name "-" version ".tar.bz2"))
2655 (sha256
2656 (base32
2657 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2658 (build-system gnu-build-system)
2659 (native-inputs
2660 `(("perl" ,perl)
2661 ("intltool" ,intltool)))
2662 (arguments
2663 '(#:phases (modify-phases %standard-phases
2664 (add-after 'configure 'use-our-intltool
2665 (lambda _
2666 ;; Do not use the bundled intltool commands, which lack
2667 ;; the "dotless @INC" fixes of our 'intltool' package.
2668 (substitute* (find-files "." "^Makefile$")
2669 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2670 (string-append "INTLTOOL_" tool " = intltool-"
2671 (string-downcase tool) "\n")))
2672 #t)))))
2673 (home-page "https://www.gnome.org")
2674 (synopsis "Base MIME and Application database for GNOME")
2675 (description "GNOME Mime Data is a module which contains the base MIME
2676 and Application database for GNOME. The data stored by this module is
2677 designed to be accessed through the MIME functions in GnomeVFS.")
2678 (license license:gpl2+)))
2679
2680
2681 (define-public gnome-vfs
2682 (package
2683 (name "gnome-vfs")
2684 (version "2.24.4")
2685 (source (origin
2686 (method url-fetch)
2687 (uri (string-append "mirror://gnome/sources/" name "/"
2688 (version-major+minor version) "/"
2689 name "-" version ".tar.bz2"))
2690 (sha256
2691 (base32
2692 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2693 (build-system gnu-build-system)
2694 (arguments
2695 `(#:phases
2696 (modify-phases %standard-phases
2697 (add-before 'configure 'ignore-deprecations
2698 (lambda _
2699 (substitute* '("libgnomevfs/Makefile.in"
2700 "daemon/Makefile.in")
2701 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2702 #t))
2703 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2704 (lambda _
2705 (substitute* "test/test-async-cancel.c"
2706 (("EXIT_FAILURE") "77"))
2707 #t)))))
2708 (inputs `(("libxml2" ,libxml2)
2709 ("dbus-glib" ,dbus-glib)
2710 ("gconf" ,gconf)
2711 ("gnome-mime-data" ,gnome-mime-data)
2712 ("zlib" ,zlib)))
2713 (native-inputs
2714 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2715 ("intltool" ,intltool)
2716 ("pkg-config" ,pkg-config)))
2717 (home-page "https://developer.gnome.org/gnome-vfs/")
2718 (synopsis "Access files and folders in GNOME applications")
2719 (description
2720 "GnomeVFS is the core library used to access files and folders in GNOME
2721 applications. It provides a file system abstraction which allows applications
2722 to access local and remote files with a single consistent API.")
2723 (license license:lgpl2.0+)))
2724
2725
2726
2727 (define-public libgnome
2728 (package
2729 (name "libgnome")
2730 (version "2.32.1")
2731 (source (origin
2732 (method url-fetch)
2733 (uri (string-append "mirror://gnome/sources/" name "/"
2734 (version-major+minor version) "/"
2735 name "-" version ".tar.bz2"))
2736 (sha256
2737 (base32
2738 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2739 (patches (search-patches "libgnome-encoding.patch"))))
2740 (build-system gnu-build-system)
2741 (arguments
2742 `(#:phases
2743 (modify-phases %standard-phases
2744 (add-before 'configure 'enable-deprecated
2745 (lambda _
2746 (substitute* "libgnome/Makefile.in"
2747 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2748 #t)))))
2749 (inputs `(("libxml2" ,libxml2)))
2750 (native-inputs
2751 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2752 ("intltool" ,intltool)
2753 ("pkg-config" ,pkg-config)))
2754 ;; The following are listed as Required in the .pc file
2755 ;; (except for libcanberra -- which seems to be oversight on the part
2756 ;; of the upstream developers -- anything that links against libgnome,
2757 ;; must also link against libcanberra
2758 (propagated-inputs
2759 `(("libcanberra" ,libcanberra)
2760 ("libbonobo" ,libbonobo)
2761 ("gconf" ,gconf)
2762 ("gnome-vfs" ,gnome-vfs)
2763 ("popt" ,popt))) ;gnome-program.h includes popt.h
2764 (home-page "https://developer.gnome.org/libgnome/")
2765 (synopsis "Useful routines for building applications")
2766 (description "The libgnome library provides a number of useful routines
2767 for building modern applications, including session management, activation of
2768 files and URIs, and displaying help.")
2769 (license license:lgpl2.0+)))
2770
2771
2772 (define-public libart-lgpl
2773 (package
2774 (name "libart-lgpl")
2775 (version "2.3.21")
2776 (source (origin
2777 (method url-fetch)
2778 (uri (let ((upstream-name "libart_lgpl"))
2779 (string-append "mirror://gnome/sources/" upstream-name "/"
2780 (version-major+minor version) "/"
2781 upstream-name "-" version ".tar.bz2")))
2782 (sha256
2783 (base32
2784 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2785 (build-system gnu-build-system)
2786 (native-inputs
2787 `(("pkg-config" ,pkg-config)))
2788 (home-page "https://people.gnome.org/~mathieu/libart")
2789 (synopsis "2D drawing library")
2790 (description "Libart is a 2D drawing library intended as a
2791 high-quality vector-based 2D library with antialiasing and alpha composition.")
2792 (license license:lgpl2.0+)))
2793
2794
2795
2796 (define-public libgnomecanvas
2797 (package
2798 (name "libgnomecanvas")
2799 (version "2.30.3")
2800 (source (origin
2801 (method url-fetch)
2802 (uri (string-append "mirror://gnome/sources/" name "/"
2803 (version-major+minor version) "/"
2804 name "-" version ".tar.gz"))
2805 (sha256
2806 (base32
2807 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2808 (build-system gnu-build-system)
2809 ;; Mentioned as Required in the .pc file
2810 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2811 ("gtk+" ,gtk+-2)))
2812 (native-inputs
2813 `(("intltool" ,intltool)
2814 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2815 ("pkg-config" ,pkg-config)))
2816 (home-page "https://developer.gnome.org/libgnomecanvas/")
2817 (synopsis "Flexible widget for creating interactive structured graphics")
2818 (description "The GnomeCanvas widget provides a flexible widget for
2819 creating interactive structured graphics.")
2820 (license license:lgpl2.0+)))
2821
2822 (define-public libgnomecanvasmm
2823 (package
2824 (name "libgnomecanvasmm")
2825 (version "2.26.0")
2826 (source (origin
2827 (method url-fetch)
2828 (uri (string-append "mirror://gnome/sources/" name "/"
2829 (version-major+minor version) "/"
2830 name "-" version ".tar.bz2"))
2831 (sha256
2832 (base32
2833 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2834 (build-system gnu-build-system)
2835 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2836 (native-inputs
2837 `(("gtkmm-2" ,gtkmm-2)
2838 ("pkg-config" ,pkg-config)))
2839 (home-page "https://gtkmm.org")
2840 (synopsis "C++ bindings to the GNOME Canvas library")
2841 (description "C++ bindings to the GNOME Canvas library.")
2842 (license license:lgpl2.0+)))
2843
2844 (define-public libgnomeui
2845 (package
2846 (name "libgnomeui")
2847 (version "2.24.5")
2848 (source (origin
2849 (method url-fetch)
2850 (uri (string-append "mirror://gnome/sources/" name "/"
2851 (version-major+minor version) "/"
2852 name "-" version ".tar.bz2"))
2853 (patches (search-patches "libgnomeui-utf8.patch"))
2854 (sha256
2855 (base32
2856 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2857 (build-system gnu-build-system)
2858 ;; Mentioned as Required in the .pc file
2859 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2860 ("libgnome" ,libgnome)
2861 ("libgnomecanvas" ,libgnomecanvas)
2862 ("libgnome-keyring" ,libgnome-keyring)))
2863 (inputs `(("libjpeg" ,libjpeg-turbo)
2864 ("popt" ,popt)
2865 ("libbonobo" ,libbonobo)
2866 ("libxml2" ,libxml2)
2867 ("libglade" ,libglade)))
2868 (native-inputs
2869 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2870 ("intltool" ,intltool)
2871 ("pkg-config" ,pkg-config)))
2872 (home-page "https://developer.gnome.org/libgnomeui/")
2873 (synopsis "Additional widgets for applications")
2874 (description "The libgnomeui library provides additional widgets for
2875 applications. Many of the widgets from libgnomeui have already been
2876 ported to GTK+.")
2877 (license license:lgpl2.0+)))
2878
2879 (define-public libglade
2880 (package
2881 (name "libglade")
2882 (version "2.6.4")
2883 (source (origin
2884 (method url-fetch)
2885 (uri (string-append "mirror://gnome/sources/" name "/"
2886 (version-major+minor version) "/"
2887 name "-" version ".tar.bz2"))
2888 (sha256
2889 (base32
2890 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2891 (build-system gnu-build-system)
2892 (inputs
2893 `(("python" ,python))) ;; needed for the optional libglade-convert program
2894 (propagated-inputs
2895 `(("gtk+-2" ,gtk+-2)
2896 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2897 (native-inputs
2898 `(("pkg-config" ,pkg-config)))
2899 (home-page "https://developer.gnome.org/libglade")
2900 (synopsis "Load glade interfaces and access the glade built widgets")
2901 (description "Libglade is a library that provides interfaces for loading
2902 graphical interfaces described in glade files and for accessing the
2903 widgets built in the loading process.")
2904 (license license:gpl2+))) ; This is correct. GPL not LGPL
2905
2906 (define-public libgnomeprint
2907 ;; This library has been deprecated since 2006; see
2908 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2909 (package
2910 (name "libgnomeprint")
2911 (version "2.18.8")
2912 (source (origin
2913 (method url-fetch)
2914 (uri (string-append "mirror://gnome/sources/" name "/"
2915 (version-major+minor version) "/"
2916 name "-" version ".tar.bz2"))
2917 (sha256
2918 (base32
2919 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2920 (build-system gnu-build-system)
2921 (inputs
2922 `(("popt" ,popt)
2923 ("libart-lgpl" ,libart-lgpl)
2924 ("gtk+" ,gtk+-2)
2925 ("libxml2" ,libxml2)))
2926 (native-inputs
2927 `(("intltool" ,intltool)
2928 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2929 ("pkg-config" ,pkg-config)))
2930 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2931 (synopsis "Printing framework for GNOME")
2932 (description
2933 "GNOME-print was a printing framework for GNOME. It has been deprecated
2934 since ca. 2006, when GTK+ itself incorporated printing support.")
2935 (license license:lgpl2.0+)))
2936
2937
2938 (define-public libgnomeprintui
2939 ;; Deprecated; see libgnomeprint.
2940 (package
2941 (name "libgnomeprintui")
2942 (version "2.18.6")
2943 (source (origin
2944 (method url-fetch)
2945 (uri (string-append "mirror://gnome/sources/" name "/"
2946 (version-major+minor version) "/"
2947 name "-" version ".tar.bz2"))
2948 (sha256
2949 (base32
2950 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2951 (build-system gnu-build-system)
2952 ;; Mentioned as Required in the .pc file
2953 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2954 (inputs `(("gtk+" ,gtk+-2)
2955 ("glib" ,glib)
2956 ("gnome-icon-theme" ,gnome-icon-theme)
2957 ("libgnomecanvas" ,libgnomecanvas)
2958 ("libxml2" ,libxml2)))
2959 (native-inputs
2960 `(("intltool" ,intltool)
2961 ("pkg-config" ,pkg-config)))
2962 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2963 (synopsis "Printing framework for GNOME")
2964 (description (package-description libgnomeprint))
2965 (license license:lgpl2.0+)))
2966
2967 (define-public libbonoboui
2968 (package
2969 (name "libbonoboui")
2970 (version "2.24.5")
2971 (source (origin
2972 (method url-fetch)
2973 (uri (string-append "mirror://gnome/sources/" name "/"
2974 (version-major+minor version) "/"
2975 name "-" version ".tar.bz2"))
2976 (sha256
2977 (base32
2978 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2979 (build-system gnu-build-system)
2980 (arguments
2981 `(#:phases
2982 (modify-phases %standard-phases
2983 (add-before 'check 'start-xserver
2984 (lambda* (#:key inputs #:allow-other-keys)
2985 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2986 (disp ":1"))
2987
2988 (setenv "HOME" (getcwd))
2989 (setenv "DISPLAY" disp)
2990 ;; There must be a running X server and make check doesn't start one.
2991 ;; Therefore we must do it.
2992 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2993 ;; Mentioned as Required by the .pc file
2994 (propagated-inputs `(("libxml2" ,libxml2)))
2995 (inputs
2996 `(("popt" ,popt)
2997 ("pangox-compat" ,pangox-compat)
2998 ("libgnome" ,libgnome)
2999 ("libgnomecanvas" ,libgnomecanvas)
3000 ("libglade" ,libglade)))
3001 (native-inputs
3002 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3003 ("intltool" ,intltool)
3004 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
3005 ("pkg-config" ,pkg-config)))
3006 (home-page "https://developer.gnome.org/libbonoboui/")
3007 (synopsis "Some user interface controls using Bonobo")
3008 (description "The Bonobo UI library provides a number of user interface
3009 controls using the Bonobo component framework.")
3010 (license license:lgpl2.0+)))
3011
3012 (define-public libwnck
3013 (package
3014 (name "libwnck")
3015 (version "3.32.0")
3016 (source (origin
3017 (method url-fetch)
3018 (uri (string-append "mirror://gnome/sources/" name "/"
3019 (version-major+minor version) "/"
3020 name "-" version ".tar.xz"))
3021 (sha256
3022 (base32
3023 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3024 (build-system meson-build-system)
3025 (native-inputs
3026 `(("pkg-config" ,pkg-config)
3027 ("glib" ,glib "bin") ; for glib-mkenums
3028 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3029 ("intltool" ,intltool)))
3030 (propagated-inputs
3031 `(("gtk+" ,gtk+)
3032 ("libxres" ,libxres)
3033 ("startup-notification" ,startup-notification)))
3034 (home-page "https://developer.gnome.org/libwnck/")
3035 (synopsis "Window Navigator Construction Kit")
3036 (description
3037 "Libwnck is the Window Navigator Construction Kit, a library for use in
3038 writing pagers, tasklists, and more generally applications that are dealing
3039 with window management. It tries hard to respect the Extended Window Manager
3040 Hints specification (EWMH).")
3041 (license license:lgpl2.0+)))
3042
3043 ;; stable version for gtk2, required by xfwm4.
3044 (define-public libwnck-2
3045 (package (inherit libwnck)
3046 (name "libwnck")
3047 (version "2.30.7")
3048 (source (origin
3049 (method url-fetch)
3050 (uri (string-append "mirror://gnome/sources/" name "/"
3051 (version-major+minor version) "/"
3052 name "-" version ".tar.xz"))
3053 (sha256
3054 (base32
3055 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
3056 (build-system gnu-build-system)
3057 (native-inputs
3058 `(("pkg-config" ,pkg-config)
3059 ("intltool" ,intltool)))
3060 (propagated-inputs
3061 `(("gtk+" ,gtk+-2)
3062 ("libxres" ,libxres)
3063 ("startup-notification" ,startup-notification)))))
3064
3065 (define-public goffice
3066 (package
3067 (name "goffice")
3068 (version "0.10.46")
3069 (source (origin
3070 (method url-fetch)
3071 (uri (string-append "mirror://gnome/sources/goffice/"
3072 (version-major+minor version) "/"
3073 "goffice-" version ".tar.xz"))
3074 (sha256
3075 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
3076 (build-system gnu-build-system)
3077 (outputs '("out"
3078 "doc")) ; 4.0 MiB of gtk-doc
3079 (arguments
3080 '(#:configure-flags (list (string-append "--with-html-dir="
3081 (assoc-ref %outputs "doc")
3082 "/share/gtk-doc/html"))))
3083 (inputs
3084 `(("gtk+" ,gtk+)
3085 ("libgsf" ,libgsf)
3086 ("librsvg" ,librsvg)
3087 ("libxslt" ,libxslt)
3088 ("libxml2" ,libxml2)))
3089 (native-inputs
3090 `(("intltool" ,intltool)
3091 ("glib" ,glib "bin")
3092 ("pkg-config" ,pkg-config)))
3093 (home-page "https://developer.gnome.org/goffice/")
3094 (synopsis "Document-centric objects and utilities")
3095 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3096 (license
3097 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3098 ;; Note: NOT LGPL
3099 (list license:gpl2 license:gpl3))))
3100
3101 (define-public goffice-0.8
3102 (package (inherit goffice)
3103 (version "0.8.17")
3104 (source (origin
3105 (method url-fetch)
3106 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3107 (version-major+minor version) "/"
3108 (package-name goffice) "-" version ".tar.xz"))
3109 (sha256
3110 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3111 (arguments
3112 `(#:phases
3113 (modify-phases %standard-phases
3114 (add-after 'unpack 'fix-pcre-check
3115 (lambda _
3116 ;; Only glib.h can be included directly. See
3117 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3118 (substitute* "configure"
3119 (("glib/gregex\\.h") "glib.h")) #t)))
3120
3121 ,@(package-arguments goffice)))
3122 (propagated-inputs
3123 ;; libgoffice-0.8.pc mentions libgsf-1
3124 `(("libgsf" ,libgsf)))
3125 (inputs
3126 `(("gtk" ,gtk+-2)
3127 ,@(alist-delete "gtk" (package-inputs goffice))))))
3128
3129 (define-public gnumeric
3130 (package
3131 (name "gnumeric")
3132 (version "1.12.46")
3133 (source (origin
3134 (method url-fetch)
3135 (uri (string-append "mirror://gnome/sources/gnumeric/"
3136 (version-major+minor version) "/"
3137 "gnumeric-" version ".tar.xz"))
3138 (sha256
3139 (base32
3140 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3141 (build-system glib-or-gtk-build-system)
3142 (arguments
3143 `(;; The gnumeric developers don't worry much about failing tests.
3144 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3145 #:tests? #f
3146 #:phases
3147 (modify-phases %standard-phases
3148 (add-before
3149 'configure 'pre-conf
3150 (lambda* (#:key outputs #:allow-other-keys)
3151 ;; Make install tries to write into the directory of goffice
3152 ;; I am informed that this only affects the possibility to embed a
3153 ;; spreadsheet inside an Abiword document. So presumably when we
3154 ;; package Abiword we'll have to refer it to this directory.
3155 (substitute* "configure"
3156 (("^GOFFICE_PLUGINS_DIR=.*")
3157 (string-append "GOFFICE_PLUGINS_DIR="
3158 (assoc-ref outputs "out")
3159 "/goffice/plugins"))))))))
3160 (inputs
3161 `(("glib" ,glib)
3162 ("gtk+" ,gtk+)
3163 ("goffice" ,goffice)
3164 ("libgsf" ,libgsf)
3165 ("librsvg" ,librsvg)
3166 ("libxml2" ,libxml2)
3167 ("libxslt" ,libxslt)
3168 ("python" ,python-2)
3169 ("python2-pygobject" ,python2-pygobject)
3170 ("zlib" ,zlib)))
3171 (native-inputs
3172 `(("bison" ,bison)
3173 ("docbook-xml" ,docbook-xml)
3174 ("intltool" ,intltool)
3175 ("itstool" ,itstool)
3176 ("glib:bin" ,glib "bin")
3177 ("pkg-config" ,pkg-config)))
3178 (home-page "http://www.gnumeric.org")
3179 (synopsis "Spreadsheet application")
3180 (description
3181 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3182 interoperable with other spreadsheet applications. It has a vast array of
3183 features beyond typical spreadsheet functionality, such as support for linear
3184 and non-linear solvers, statistical analysis, and telecommunication
3185 engineering.")
3186 (license
3187 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3188 (list license:gpl2 license:gpl3))))
3189
3190 (define-public gnome-themes-standard
3191 (package
3192 (name "gnome-themes-standard")
3193 (version "3.22.3")
3194 (source
3195 (origin
3196 (method url-fetch)
3197 (uri (string-append "mirror://gnome/sources/" name "/"
3198 (version-major+minor version) "/" name "-"
3199 version ".tar.xz"))
3200 (sha256
3201 (base32
3202 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3203 (build-system gnu-build-system)
3204 (arguments
3205 '(#:configure-flags
3206 ;; Don't create 'icon-theme.cache'.
3207 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3208 (true (string-append coreutils "/bin/true")))
3209 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3210 (inputs
3211 `(("gtk+" ,gtk+)
3212 ("gtk+-2" ,gtk+-2)
3213 ("librsvg" ,librsvg)
3214 ("libxml2" ,libxml2)
3215 ("glib" ,glib)))
3216 (native-inputs
3217 `(("intltool" ,intltool)
3218 ("glib:bin" ,glib "bin")
3219 ("pkg-config" ,pkg-config)))
3220 (home-page "https://launchpad.net/gnome-themes-standard")
3221 (synopsis "Default GNOME 3 themes")
3222 (description
3223 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3224 (license license:lgpl2.1+)))
3225
3226 (define-public seahorse
3227 (package
3228 (name "seahorse")
3229 (version "3.34")
3230 (source
3231 (origin
3232 (method url-fetch)
3233 (uri (string-append "mirror://gnome/sources/" name "/"
3234 (version-major+minor version) "/" name "-"
3235 version ".tar.xz"))
3236 (sha256
3237 (base32
3238 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
3239 (build-system meson-build-system)
3240 (arguments
3241 '(#:glib-or-gtk? #t
3242 #:phases
3243 (modify-phases %standard-phases
3244 (add-after 'unpack 'skip-gtk-update-icon-cache
3245 ;; Don't create 'icon-theme.cache'.
3246 (lambda _
3247 (substitute* "build-aux/meson_post_install.py"
3248 (("gtk-update-icon-cache") "true"))
3249 #t)))))
3250 (inputs
3251 `(("gtk+" ,gtk+)
3252 ("gcr" ,gcr)
3253 ("gnupg" ,gnupg)
3254 ("gpgme" ,gpgme)
3255 ("openldap" ,openldap)
3256 ("openssh" ,openssh)
3257 ("avahi" ,avahi)
3258 ("libpwquality" ,libpwquality)
3259 ("libsecret" ,libsecret)
3260 ("libsoup" ,libsoup)))
3261 (native-inputs
3262 `(("gettext" ,gettext-minimal)
3263 ("glib:bin" ,glib "bin")
3264 ("itstool" ,itstool)
3265 ("pkg-config" ,pkg-config)
3266 ("vala" ,vala)
3267 ("xmllint" ,libxml2)))
3268 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3269 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3270 (description
3271 "Seahorse is a GNOME application for managing encryption keys and
3272 passwords in the GNOME keyring.")
3273 (license license:gpl2+)))
3274
3275 (define-public vala
3276 (package
3277 (name "vala")
3278 (version "0.46.5")
3279 (source (origin
3280 (method url-fetch)
3281 (uri (string-append "mirror://gnome/sources/" name "/"
3282 (version-major+minor version) "/"
3283 name "-" version ".tar.xz"))
3284 (sha256
3285 (base32
3286 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
3287 (build-system gnu-build-system)
3288 (arguments
3289 '(#:phases
3290 (modify-phases %standard-phases
3291 (add-before 'check 'pre-check
3292 (lambda _
3293 (setenv "CC" "gcc")
3294 (substitute* "valadoc/tests/testrunner.sh"
3295 (("export PKG_CONFIG_PATH=" m)
3296 (string-append m "$PKG_CONFIG_PATH:")))
3297 ;; For missing '/etc/machine-id'.
3298 (setenv "DBUS_FATAL_WARNINGS" "0")
3299 #t)))))
3300 (native-inputs
3301 `(("pkg-config" ,pkg-config)
3302 ("flex" ,flex)
3303 ("bison" ,bison)
3304 ("xsltproc" ,libxslt)
3305 ("dbus" ,dbus) ; for dbus tests
3306 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3307 (inputs
3308 `(("graphviz" ,graphviz)))
3309 (propagated-inputs
3310 `(("glib" ,glib))) ; required by libvala-0.40.pc
3311 (home-page "https://live.gnome.org/Vala/")
3312 (synopsis "Compiler for the GObject type system")
3313 (description
3314 "Vala is a programming language that aims to bring modern programming
3315 language features to GNOME developers without imposing any additional runtime
3316 requirements and without using a different ABI compared to applications and
3317 libraries written in C.")
3318 (license license:lgpl2.1+)))
3319
3320 (define-public vala-0.48
3321 (package
3322 (inherit vala)
3323 (version "0.48.6")
3324 (source (origin
3325 (method url-fetch)
3326 (uri (string-append "mirror://gnome/sources/vala/"
3327 (version-major+minor version) "/"
3328 "vala-" version ".tar.xz"))
3329 (sha256
3330 (base32
3331 "01wppzgacdmp8dgf8047myz1any2yffmrhgl8kqf1q0c0gnhi3fi"))))))
3332
3333 (define-public vte
3334 (package
3335 (name "vte")
3336 (version "0.60.2")
3337 (source (origin
3338 (method url-fetch)
3339 (uri (string-append "mirror://gnome/sources/vte/"
3340 (version-major+minor version) "/"
3341 "vte-" version ".tar.xz"))
3342 (sha256
3343 (base32
3344 "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
3345 (build-system meson-build-system)
3346 (arguments
3347 `(#:configure-flags
3348 '("-Dvapi=true"
3349 "-D_systemd=false")))
3350 (native-inputs
3351 `(("pkg-config" ,pkg-config)
3352 ("gettext" ,gettext-minimal)
3353 ("vala" ,vala)
3354 ("gobject-introspection" ,gobject-introspection)
3355 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3356 ("gperf" ,gperf)
3357 ("xmllint" ,libxml2)))
3358 (propagated-inputs
3359 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3360 ("gnutls" ,gnutls) ; ditto
3361 ("pcre2" ,pcre2))) ; ditto
3362 (home-page "https://www.gnome.org/")
3363 (synopsis "Virtual Terminal Emulator")
3364 (description
3365 "VTE is a library (libvte) implementing a terminal emulator widget for
3366 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3367 gnome-terminal, but can also be used to embed a console/terminal in games,
3368 editors, IDEs, etc.")
3369 (license license:lgpl2.1+)))
3370
3371 (define-public vte-ng
3372 (package
3373 (inherit vte)
3374 (name "vte-ng")
3375 (version "0.58.2.a")
3376 (home-page "https://github.com/thestinger/vte-ng")
3377 (source (origin
3378 (method git-fetch)
3379 (uri (git-reference (url home-page) (commit version)))
3380 (file-name (git-file-name name version))
3381 (sha256
3382 (base32
3383 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3384 (build-system meson-build-system)
3385 (native-inputs
3386 `(("gtk-doc" ,gtk-doc)
3387 ,@(package-native-inputs vte)))
3388 (arguments
3389 `(#:configure-flags '("-Ddocs=true")))
3390 (synopsis "Enhanced VTE terminal widget")
3391 (description
3392 "VTE is a library (libvte) implementing a terminal emulator widget for
3393 GTK+, this fork provides additional functions exposed for keyboard text
3394 selection and URL hints.")))
3395
3396 ;; provides vte 2.90, required for some terminal emulators
3397 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3398 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3399 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3400 ;; pantheon-terminal, roxterm are not currently packaged
3401 (define-public vte-0.36
3402 (package (inherit vte)
3403 (name "vte")
3404 (version "0.36.5")
3405 (source (origin
3406 (method url-fetch)
3407 (uri (string-append "mirror://gnome/sources/" name "/"
3408 (version-major+minor version) "/"
3409 name "-" version ".tar.xz"))
3410 (sha256
3411 (base32
3412 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3413 (propagated-inputs
3414 `(("gtk" ,gtk+)
3415 ("ncurses" ,ncurses)))))
3416
3417 ;; stable version for gtk2, required by xfce4-terminal.
3418 (define-public vte/gtk+-2
3419 (package (inherit vte)
3420 (name "vte")
3421 (version "0.28.2")
3422 (source (origin
3423 (method url-fetch)
3424 (uri (string-append "mirror://gnome/sources/" name "/"
3425 (version-major+minor version) "/"
3426 name "-" version ".tar.xz"))
3427 (sha256
3428 (base32
3429 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3430 (patches (search-patches
3431 "vte-CVE-2012-2738-pt1.patch"
3432 "vte-CVE-2012-2738-pt2.patch"))))
3433 (build-system gnu-build-system)
3434 (arguments
3435 '(#:configure-flags '("--disable-python")))
3436 (native-inputs
3437 `(("pkg-config" ,pkg-config)
3438 ("intltool" ,intltool)
3439 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3440 (propagated-inputs
3441 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3442 ("ncurses" ,ncurses))))) ; required by libvte.la
3443
3444 (define-public vinagre
3445 (package
3446 (name "vinagre")
3447 (version "3.22.0")
3448 (source (origin
3449 (method url-fetch)
3450 (uri (string-append "mirror://gnome/sources/" name "/"
3451 (version-major+minor version) "/"
3452 name "-" version ".tar.xz"))
3453 (patches (search-patches "vinagre-newer-freerdp.patch"
3454 "vinagre-newer-rdp-parameters.patch"))
3455 (sha256
3456 (base32
3457 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3458 (build-system glib-or-gtk-build-system)
3459 (arguments
3460 ;; Disable -Werror and such, to avoid build failures on compilation
3461 ;; warnings.
3462 '(#:configure-flags '("--enable-compile-warnings=minimum")
3463 #:phases
3464 (modify-phases %standard-phases
3465 (add-before 'install 'skip-gtk-update-icon-cache
3466 (lambda _
3467 ;; Don't create 'icon-theme.cache'
3468 (substitute* (find-files "." "^Makefile$")
3469 (("gtk-update-icon-cache") (which "true")))
3470 #t))
3471 (add-after 'unpack 'patch-configure
3472 (lambda _
3473 (substitute* "configure"
3474 (("freerdp") "freerdp2"))
3475 #t)))))
3476 (native-inputs
3477 `(("pkg-config" ,pkg-config)
3478 ("intltool" ,intltool)
3479 ("itstool" ,itstool)
3480 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3481 (inputs
3482 `(("libxml2" ,libxml2)
3483 ("gtk-vnc" ,gtk-vnc)
3484 ("gnome-keyring" ,gnome-keyring)
3485 ("libsecret" ,libsecret)
3486 ("freerdp" ,freerdp)
3487 ("spice" ,spice)
3488 ("spice-gtk" ,spice-gtk)
3489 ("telepathy-glib" ,telepathy-glib)
3490 ("vte" ,vte)))
3491 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3492 (synopsis "Remote desktop viewer for GNOME")
3493 (description "Vinagre is a remote display client supporting the VNC, SPICE
3494 and RDP protocols.")
3495 (license license:gpl3+)))
3496
3497 (define-public dconf
3498 (package
3499 (name "dconf")
3500 (version "0.34.0")
3501 (source (origin
3502 (method url-fetch)
3503 (uri (string-append
3504 "mirror://gnome/sources/" name "/"
3505 (version-major+minor version) "/"
3506 name "-" version ".tar.xz"))
3507 (patches (search-patches "dconf-meson-0.52.patch"))
3508 (sha256
3509 (base32
3510 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
3511 (build-system meson-build-system)
3512 (propagated-inputs
3513 ;; In Requires of dconf.pc.
3514 `(("glib" ,glib)))
3515 (inputs
3516 `(("gtk+" ,gtk+)
3517 ("dbus" ,dbus)))
3518 (native-inputs
3519 `(("bash-completion" ,bash-completion)
3520 ("libxslt" ,libxslt) ;for xsltproc
3521 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3522 ("docbook-xml" ,docbook-xml-4.2)
3523 ("docbook-xsl" ,docbook-xsl)
3524 ("glib:bin" ,glib "bin")
3525 ("gtk-doc" ,gtk-doc)
3526 ("pkg-config" ,pkg-config)
3527 ("vala" ,vala)))
3528 (arguments
3529 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3530 ; or /etc/machine-id.
3531 #:glib-or-gtk? #t
3532 #:configure-flags '("-Denable-gtk-doc=true")))
3533 (home-page "https://developer.gnome.org/dconf/")
3534 (synopsis "Low-level GNOME configuration system")
3535 (description "Dconf is a low-level configuration system. Its main purpose
3536 is to provide a backend to GSettings on platforms that don't already have
3537 configuration storage systems.")
3538 (license license:lgpl2.1+)))
3539
3540 (define-public json-glib
3541 (package
3542 (name "json-glib")
3543 (version "1.4.4")
3544 (source (origin
3545 (method url-fetch)
3546 (uri (string-append "mirror://gnome/sources/" name "/"
3547 (version-major+minor version) "/"
3548 name "-" version ".tar.xz"))
3549 (sha256
3550 (base32
3551 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3552 (build-system meson-build-system)
3553 (native-inputs
3554 `(("gettext" ,gettext-minimal)
3555 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3556 ("gobject-introspection" ,gobject-introspection)
3557 ("pkg-config" ,pkg-config)))
3558 (propagated-inputs
3559 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3560 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3561 (synopsis "Compiler for the GObject type system")
3562 (description
3563 "JSON-GLib is a C library based on GLib providing serialization and
3564 deserialization support for the JavaScript Object Notation (JSON) format
3565 described by RFC 4627. It provides parser and generator GObject classes and
3566 various wrappers for the complex data types employed by JSON, such as arrays
3567 and objects.")
3568 (license license:lgpl2.1+)))
3569
3570 (define-public libxklavier
3571 (package
3572 (name "libxklavier")
3573 (version "5.4")
3574 (source (origin
3575 ;; Note: There's no tarball at ftp.gnome.org for this version.
3576 (method git-fetch)
3577 (uri (git-reference
3578 (url "https://anongit.freedesktop.org/git/libxklavier")
3579 (commit (string-append "libxklavier-" version))))
3580 (sha256
3581 (base32
3582 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3583 (file-name (git-file-name name version))))
3584 (build-system gnu-build-system)
3585 (arguments
3586 '(#:configure-flags
3587 (list (string-append "--with-xkb-base="
3588 (assoc-ref %build-inputs "xkeyboard-config")
3589 "/share/X11/xkb")
3590 "--disable-xmodmap-support")))
3591 (native-inputs
3592 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3593 ("gobject-introspection" ,gobject-introspection)
3594 ("pkg-config" ,pkg-config)
3595 ("gtk-doc" ,gtk-doc)
3596 ("intltool" ,intltool)
3597 ("which" ,which)
3598 ("autoconf" ,autoconf)
3599 ("automake" ,automake)
3600 ("libtool" ,libtool)))
3601 (propagated-inputs
3602 ;; Required by libxklavier.pc.
3603 `(("glib" ,glib)
3604 ("libxml2" ,libxml2)))
3605 (inputs
3606 `(("iso-codes" ,iso-codes)
3607 ("libxi" ,libxi)
3608 ("libxkbfile" ,libxkbfile)
3609 ("xkbcomp" ,xkbcomp)
3610 ("xkeyboard-config" ,xkeyboard-config)))
3611 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3612 (synopsis "High-level API for X Keyboard Extension")
3613 (description
3614 "LibXklavier is a library providing high-level API for X Keyboard
3615 Extension known as XKB. This library is intended to support XFree86 and other
3616 commercial X servers. It is useful for creating XKB-related software (layout
3617 indicators etc).")
3618 (license license:lgpl2.0+)))
3619
3620 (define-public python2-rsvg
3621 ;; XXX: This is actually a subset of gnome-python-desktop.
3622 (package
3623 (name "python2-rsvg")
3624 (version "2.32.0")
3625 (source
3626 (origin
3627 (method url-fetch)
3628 (uri (string-append
3629 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3630 version ".tar.bz2"))
3631 (sha256
3632 (base32
3633 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3634 (build-system gnu-build-system)
3635 (native-inputs
3636 `(("pkg-config" ,pkg-config)))
3637 (inputs
3638 `(("python" ,python-2)
3639 ("python2-pygtk" ,python2-pygtk)
3640 ("librsvg" ,librsvg)))
3641 (home-page "https://www.gnome.org")
3642 (synopsis "Python bindings to librsvg")
3643 (description
3644 "This package provides Python bindings to librsvg, the SVG rendering
3645 library.")
3646
3647 ;; This is the license of the rsvg bindings. The license of each module
3648 ;; of gnome-python-desktop is given in 'COPYING'.
3649 (license license:lgpl2.1+)))
3650
3651 (define-public glib-networking
3652 (package
3653 (name "glib-networking")
3654 (version "2.62.2")
3655 (source (origin
3656 (method url-fetch)
3657 (uri (string-append "mirror://gnome/sources/glib-networking/"
3658 (version-major+minor version) "/"
3659 "glib-networking-" version ".tar.xz"))
3660 (sha256
3661 (base32
3662 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
3663 (build-system meson-build-system)
3664 (arguments
3665 `(#:configure-flags '("-Dlibproxy_support=false")))
3666 (native-inputs
3667 `(("pkg-config" ,pkg-config)
3668 ("intltool" ,intltool)))
3669 (inputs
3670 `(("glib" ,glib)
3671 ("gnutls" ,gnutls)
3672 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3673 (home-page "https://www.gnome.org")
3674 (synopsis "Network-related GIO modules")
3675 (description
3676 "This package contains various network related extensions for the GIO
3677 library.")
3678 (license license:lgpl2.0+)))
3679
3680 (define-public rest
3681 (package
3682 (name "rest")
3683 (version "0.8.1")
3684 (source (origin
3685 (method url-fetch)
3686 (uri (string-append "mirror://gnome/sources/rest/"
3687 (version-major+minor version) "/"
3688 name "-" version ".tar.xz"))
3689 (sha256
3690 (base32
3691 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3692 (build-system gnu-build-system)
3693 (arguments
3694 '(#:tests? #f ; tests require internet connection
3695 #:configure-flags
3696 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3697 (native-inputs
3698 `(("glib-mkenums" ,glib "bin")
3699 ("gobject-introspection" ,gobject-introspection)
3700 ("pkg-config" ,pkg-config)))
3701 (propagated-inputs
3702 ;; rest-0.7.pc refers to all these.
3703 `(("glib" ,glib)
3704 ("libsoup" ,libsoup)
3705 ("libxml2" ,libxml2)))
3706 (home-page "https://www.gtk.org/")
3707 (synopsis "RESTful web api query library")
3708 (description
3709 "This library was designed to make it easier to access web services that
3710 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3711 libxml to ease remote use of the RESTful API.")
3712 (license license:lgpl2.1+)))
3713
3714 (define-public libsoup
3715 (package
3716 (name "libsoup")
3717 (version "2.70.0")
3718 (source (origin
3719 (method url-fetch)
3720 (uri (string-append "mirror://gnome/sources/libsoup/"
3721 (version-major+minor version) "/"
3722 "libsoup-" version ".tar.xz"))
3723 (sha256
3724 (base32
3725 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
3726 (build-system meson-build-system)
3727 (outputs '("out" "doc"))
3728 (arguments
3729 `(#:modules ((guix build utils)
3730 (guix build meson-build-system)
3731 (ice-9 popen))
3732
3733 #:configure-flags '("-Dgtk_doc=true")
3734 #:phases
3735 (modify-phases %standard-phases
3736 (add-after 'unpack 'adjust-tests
3737 (lambda _
3738 ;; This test fails due to missing /etc/nsswitch.conf
3739 ;; in the build environment.
3740 (substitute* "tests/socket-test.c"
3741 ((".*/sockets/unconnected.*") ""))
3742
3743 ;; These fail because "subdomain.localhost" does not resolve in
3744 ;; the build environment.
3745 (substitute* "tests/hsts-test.c"
3746 ((".*/hsts/basic.*") "")
3747 ((".*/hsts/subdomains.*") "")
3748 ((".*/hsts/superdomain.*") "")
3749 ((".*/hsts/utf8-address.*") ""))
3750 (substitute* "tests/hsts-db-test.c"
3751 ((".*/hsts-db/subdomains.*") ""))
3752
3753 ;; Generate a self-signed certificate that has "localhost" as its
3754 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3755 ;; 3.5.12, tests such as "ssl-tests" fail:
3756 ;;
3757 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3758 ;;
3759 ;; 'certtool' is interactive so we have to pipe it the answers.
3760 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3761 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3762 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3763 (for-each (lambda (line)
3764 (display line pipe)
3765 (newline pipe))
3766 '("" ;Common name
3767 "" ;UID
3768 "Guix" ;Organizational unit name
3769 "GNU" ;Organization name
3770 "" ;Locality name
3771 "" ;State or province
3772 "" ;Country
3773 "" ;subject's domain component (DC)
3774 "" ;E-mail
3775 "" ;serial number
3776 "-1" ;expiration time
3777 "N" ;belong to authority?
3778 "N" ;web client certificate?
3779 "N" ;IPsec IKE?
3780 "Y" ;web server certificate?
3781 "localhost" ;dnsName of subject
3782 "" ;dnsName of subject (end)
3783 "" ;URI of subject
3784 "127.0.0.1" ;IP address of subject
3785 "" ;signing?
3786 "" ;encryption (RSA)?
3787 "" ;data encryption?
3788 "" ;sign OCSP requests?
3789 "" ;sign code?
3790 "" ;time stamping?
3791 "" ;email protection?
3792 "" ;URI of the CRL distribution point
3793 "y" ;above info OK?
3794 ))
3795 (close-pipe pipe))
3796 #t))
3797 (add-after 'install 'move-doc
3798 (lambda* (#:key outputs #:allow-other-keys)
3799 (let ((out (assoc-ref outputs "out"))
3800 (doc (assoc-ref outputs "doc")))
3801 (mkdir-p (string-append doc "/share"))
3802 (copy-recursively (string-append out "/share/gtk-doc")
3803 (string-append doc "/share/gtk-doc"))
3804 (delete-file-recursively (string-append out "/share/gtk-doc"))
3805 #t))))))
3806 (native-inputs
3807 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3808 ("gobject-introspection" ,gobject-introspection)
3809 ("gtk-doc" ,gtk-doc)
3810 ("intltool" ,intltool)
3811 ("pkg-config" ,pkg-config)
3812 ("python" ,python-wrapper)
3813 ("vala" ,vala)
3814 ("php" ,php)
3815 ("curl" ,curl)
3816 ("gnutls" ,gnutls) ;for 'certtool'
3817 ("httpd" ,httpd)))
3818 (propagated-inputs
3819 ;; libsoup-2.4.pc refers to all these.
3820 `(("brotli" ,google-brotli)
3821 ("glib" ,glib)
3822 ("libpsl" ,libpsl)
3823 ("libxml2" ,libxml2)
3824 ("sqlite" ,sqlite)
3825 ("zlib" ,zlib)))
3826 (inputs
3827 `(("glib-networking" ,glib-networking)
3828 ("mit-krb5" ,mit-krb5)))
3829 (home-page "https://live.gnome.org/LibSoup/")
3830 (synopsis "GLib-based HTTP Library")
3831 (description
3832 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3833 and the GLib main loop, to integrate well with GNOME applications.")
3834 (license license:lgpl2.0+)))
3835
3836
3837 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
3838 (define-public libsoup-minimal
3839 (package
3840 (inherit libsoup)
3841 (name "libsoup-minimal")
3842 (outputs (delete "doc" (package-outputs libsoup)))
3843 (arguments
3844 (substitute-keyword-arguments (package-arguments libsoup)
3845 ((#:configure-flags configure-flags)
3846 `(delete "-Dgtk_doc=true" ,configure-flags))
3847 ((#:phases phases)
3848 `(modify-phases ,phases
3849 (delete 'move-doc)))))
3850 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
3851
3852 (define-public libsecret
3853 (package
3854 (name "libsecret")
3855 (version "0.20.3")
3856 (source (origin
3857 (method url-fetch)
3858 (uri (string-append
3859 "mirror://gnome/sources/libsecret/"
3860 (version-major+minor version) "/"
3861 "libsecret-" version ".tar.xz"))
3862 (sha256
3863 (base32
3864 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
3865 (build-system gnu-build-system)
3866 (outputs '("out" "doc"))
3867 (arguments
3868 `(#:tests? #f ; FIXME: Testing hangs.
3869 #:configure-flags
3870 (list (string-append "--with-html-dir="
3871 (assoc-ref %outputs "doc")
3872 "/share/gtk-doc/html"))))
3873 (native-inputs
3874 `(("gettext" ,gettext-minimal)
3875 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3876 ("gobject-introspection" ,gobject-introspection)
3877 ("pkg-config" ,pkg-config)
3878 ("vala" ,vala)
3879 ("xsltproc" ,libxslt)))
3880 ;; These are needed for the tests.
3881 ;; FIXME: Add gjs once available.
3882 ;("dbus" ,dbus)
3883 ;("python2" ,python-2)
3884 ;("python2-dbus" ,python2-dbus)
3885 ;("python2-pygobject" ,python2-pygobject)
3886 ;("python2-pygobject-2" ,python2-pygobject-2)))
3887 (propagated-inputs
3888 `(("glib" ,glib))) ; required by libsecret-1.pc
3889 (inputs
3890 `(("docbook-xsl" ,docbook-xsl)
3891 ("libgcrypt" ,libgcrypt)
3892 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3893 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3894 (synopsis "GObject bindings for \"Secret Service\" API")
3895 (description
3896 "Libsecret is a GObject based library for storing and retrieving passwords
3897 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3898 (license license:lgpl2.1+)))
3899
3900 (define-public five-or-more
3901 (package
3902 (name "five-or-more")
3903 (version "3.32.2")
3904 (source
3905 (origin
3906 (method url-fetch)
3907 (uri (string-append "mirror://gnome/sources/five-or-more/"
3908 (version-major+minor version) "/"
3909 "five-or-more-" version ".tar.xz"))
3910 (sha256
3911 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
3912 (build-system meson-build-system)
3913 (arguments
3914 '(#:glib-or-gtk? #t
3915 #:phases
3916 (modify-phases %standard-phases
3917 (add-after 'unpack 'skip-gtk-update-icon-cache
3918 (lambda _
3919 (substitute* "meson_post_install.py"
3920 (("gtk-update-icon-cache") (which "true")))
3921 #t)))))
3922 (native-inputs
3923 `(("pkg-config" ,pkg-config)
3924 ("appstream-glib" ,appstream-glib)
3925 ("desktop-file-utils" ,desktop-file-utils)
3926 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3927 ("intltool" ,intltool)
3928 ("itstool" ,itstool)
3929 ("vala" ,vala)
3930 ("xmllint" ,libxml2)))
3931 (inputs
3932 `(("gtk+" ,gtk+)
3933 ("libgnome-games-support" ,libgnome-games-support)
3934 ("librsvg" ,librsvg)))
3935 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3936 (synopsis "Logic puzzle game")
3937 (description "Five or More is a game where you try to align
3938 five or more objects of the same color and shape causing them to disappear.
3939 On every turn more objects will appear, until the board is full.
3940 Try to last as long as possible.")
3941 (license license:gpl2+)))
3942
3943 (define-public gnome-mines
3944 (package
3945 (name "gnome-mines")
3946 (version "3.34.0")
3947 (source
3948 (origin
3949 (method url-fetch)
3950 (uri (string-append "mirror://gnome/sources/" name "/"
3951 (version-major+minor version) "/"
3952 name "-" version ".tar.xz"))
3953 (sha256
3954 (base32
3955 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
3956 (build-system meson-build-system)
3957 (arguments
3958 '(#:glib-or-gtk? #t
3959 #:phases
3960 (modify-phases %standard-phases
3961 (add-after 'unpack 'skip-gtk-update-icon-cache
3962 (lambda _
3963 (substitute* "build-aux/meson_post_install.py"
3964 (("gtk-update-icon-cache") (which "true")))
3965 #t)))))
3966 (native-inputs
3967 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3968 ("pkg-config" ,pkg-config)
3969 ("desktop-file-utils" ,desktop-file-utils)
3970 ("intltool" ,intltool)
3971 ("itstool" ,itstool)
3972 ("vala" ,vala)
3973 ("yelp" ,yelp)
3974 ("appstream-glib" ,appstream-glib)))
3975 (inputs
3976 `(("gtk+" ,gtk+)
3977 ("libgnome-games-support" ,libgnome-games-support)
3978 ("librsvg" ,librsvg)))
3979 (home-page "https://wiki.gnome.org/Apps/Mines")
3980 (synopsis "Minesweeper game")
3981 (description
3982 "Mines (previously gnomine) is a puzzle game where you locate mines
3983 floating in an ocean using only your brain and a little bit of luck.")
3984 (license license:gpl2+)))
3985
3986 (define-public gnome-sudoku
3987 (package
3988 (name "gnome-sudoku")
3989 (version "3.34.1")
3990 (source
3991 (origin
3992 (method url-fetch)
3993 (uri (string-append "mirror://gnome/sources/" name "/"
3994 (version-major+minor version) "/"
3995 name "-" version ".tar.xz"))
3996 (sha256
3997 (base32
3998 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
3999 (build-system meson-build-system)
4000 (arguments
4001 '(#:glib-or-gtk? #t
4002 #:phases
4003 (modify-phases %standard-phases
4004 (add-after 'unpack 'skip-gtk-update-icon-cache
4005 (lambda _
4006 (substitute* "build-aux/post_install.py"
4007 (("gtk-update-icon-cache") (which "true")))
4008 #t)))))
4009 (native-inputs
4010 `(("pkg-config" ,pkg-config)
4011 ("desktop-file-utils" ,desktop-file-utils)
4012 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4013 ("intltool" ,intltool)
4014 ("itstool" ,itstool)
4015 ("vala" ,vala)
4016 ("xmllint" ,libxml2)))
4017 (inputs
4018 `(("gtk+" ,gtk+)
4019 ("json-glib" ,json-glib)
4020 ("libgee" ,libgee)
4021 ("librsvg" ,librsvg)
4022 ("qqwing" ,qqwing)))
4023 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4024 (synopsis "Japanese logic game")
4025 (description
4026 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4027 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4028 possible while still providing features that make playing difficult Sudoku
4029 more fun.")
4030 (license license:gpl2+)))
4031
4032 (define-public gnome-terminal
4033 (package
4034 (name "gnome-terminal")
4035 (version "3.34.2")
4036 (source
4037 (origin
4038 (method url-fetch)
4039 (uri (string-append "mirror://gnome/sources/" name "/"
4040 (version-major+minor version) "/"
4041 name "-" version ".tar.xz"))
4042 (sha256
4043 (base32
4044 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
4045 (build-system glib-or-gtk-build-system)
4046 (arguments
4047 '(#:configure-flags
4048 (list "--disable-migration" "--disable-search-provider"
4049 "--without-nautilus-extension")
4050 #:phases
4051 (modify-phases %standard-phases
4052 (add-before 'configure 'patch-/bin/true
4053 (lambda _
4054 (substitute* "configure"
4055 (("/bin/true") (which "true"))))))))
4056 (native-inputs
4057 `(("pkg-config" ,pkg-config)
4058 ("desktop-file-utils" ,desktop-file-utils)
4059 ("intltool" ,intltool)
4060 ("itstool" ,itstool)
4061 ("xmllint" ,libxml2)))
4062 (propagated-inputs
4063 `(("dconf" ,dconf)))
4064 (inputs
4065 `(("gtk+" ,gtk+)
4066 ("vte" ,vte)
4067 ("gnutls" ,gnutls)
4068 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4069 ("util-linux" ,util-linux "lib")
4070 ("vala" ,vala)))
4071 (home-page "https://wiki.gnome.org/Apps/Terminal")
4072 (synopsis "Terminal emulator")
4073 (description
4074 "GNOME Terminal is a terminal emulator application for accessing a
4075 UNIX shell environment which can be used to run programs available on
4076 your system.
4077
4078 It supports several profiles, multiple tabs and implements several
4079 keyboard shortcuts.")
4080 (license license:gpl3+)))
4081
4082 (define-public colord
4083 (package
4084 (name "colord")
4085 (version "1.4.4")
4086 (source
4087 (origin
4088 (method url-fetch)
4089 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
4090 "colord-" version ".tar.xz"))
4091 (sha256
4092 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
4093 (build-system meson-build-system)
4094 (arguments
4095 '(;; FIXME: One test fails:
4096 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4097 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4098 ;; application/x-zerosize
4099 #:tests? #f
4100 #:glib-or-gtk? #t
4101 #:configure-flags (list "-Dlocalstatedir=/var"
4102 ;; No dep on systemd.
4103 "-Dsystemd=false"
4104 ;; Wants to install to global completion dir;
4105 ;; punt.
4106 "-Dbash_completion=false"
4107 "-Ddaemon_user=colord"
4108 "-Dsane=true"
4109 "-Dvapi=true"
4110 ;; Requires spotread.
4111 "-Dargyllcms_sensor=false"
4112 ;; TODO: Requires docbook2x.
4113 "-Dman=false")
4114 #:phases
4115 (modify-phases %standard-phases
4116 (add-before 'configure 'patch-build-system
4117 (lambda* (#:key outputs #:allow-other-keys)
4118 (substitute* "rules/meson.build"
4119 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4120 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4121 #t))
4122 (add-before 'configure 'set-sqlite3-file-name
4123 (lambda* (#:key inputs #:allow-other-keys)
4124 ;; "colormgr dump" works by invoking the "sqlite3" command.
4125 ;; Record its absolute file name.
4126 (let ((sqlite (assoc-ref inputs "sqlite")))
4127 (substitute* "client/cd-util.c"
4128 (("\"sqlite3\"")
4129 (string-append "\"" sqlite "/bin/sqlite3\"")))
4130 #t))))))
4131 (native-inputs
4132 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4133 ("gettext" ,gettext-minimal)
4134 ("gobject-introspection" ,gobject-introspection)
4135 ("gtk-doc" ,gtk-doc)
4136 ("pkg-config" ,pkg-config)
4137 ("vala" ,vala)))
4138 (propagated-inputs
4139 ;; colord.pc refers to all these.
4140 `(("glib" ,glib)
4141 ("lcms" ,lcms)
4142 ("udev" ,eudev)))
4143 (inputs
4144 `(("dbus-glib" ,dbus-glib)
4145 ("gusb" ,gusb)
4146 ("libgudev" ,libgudev)
4147 ("libusb" ,libusb)
4148 ("polkit" ,polkit)
4149 ("python" ,python-wrapper)
4150 ("sqlite" ,sqlite)
4151 ("sane-backends" ,sane-backends)))
4152 (home-page "https://www.freedesktop.org/software/colord/")
4153 (synopsis "Color management service")
4154 (description "Colord is a system service that makes it easy to manage,
4155 install and generate color profiles to accurately color manage input and
4156 output devices.")
4157 (license license:gpl2+)))
4158
4159 (define-public geoclue
4160 (package
4161 (name "geoclue")
4162 (version "2.5.6")
4163 (source
4164 (origin
4165 (method url-fetch)
4166 (uri
4167 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4168 version "/geoclue-" version ".tar.bz2"))
4169 (sha256
4170 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
4171 (patches (search-patches "geoclue-config.patch"))))
4172 (build-system meson-build-system)
4173 (arguments
4174 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4175 (native-inputs
4176 `(("pkg-config" ,pkg-config)
4177 ("gobject-introspection" ,gobject-introspection)
4178 ("modem-manager" ,modem-manager)
4179 ("libnotify" ,libnotify)
4180 ("gtk-doc", gtk-doc)
4181 ("intltool" ,intltool)))
4182 (inputs
4183 `(("avahi" ,avahi)
4184 ("glib:bin" ,glib "bin")
4185 ("glib-networking" ,glib-networking)
4186 ("json-glib" ,json-glib)
4187 ("libsoup" ,libsoup)))
4188 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4189 (synopsis "Geolocation service")
4190 (description "Geoclue is a D-Bus service that provides location
4191 information. The primary goal of the Geoclue project is to make creating
4192 location-aware applications as simple as possible, while the secondary goal is
4193 to ensure that no application can access location information without explicit
4194 permission from user.")
4195 (license license:gpl2+)))
4196
4197 (define-public geocode-glib
4198 (package
4199 (name "geocode-glib")
4200 (version "3.26.1")
4201 (source (origin
4202 (method url-fetch)
4203 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4204 (version-major+minor version) "/"
4205 "geocode-glib-" version ".tar.xz"))
4206 (sha256
4207 (base32
4208 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4209 (build-system meson-build-system)
4210 (arguments
4211 `(#:phases
4212 (modify-phases %standard-phases
4213 ;; The tests require a bunch of locales.
4214 (add-before 'check 'set-locales
4215 (lambda* (#:key inputs #:allow-other-keys)
4216 (setenv "GUIX_LOCPATH"
4217 (string-append (assoc-ref inputs "glibc-locales")
4218 "/lib/locale"))
4219 #t)))))
4220 (native-inputs
4221 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4222 ("glibc-locales" ,glibc-locales) ; for tests
4223 ("gettext" ,gettext-minimal)
4224 ("gobject-introspection" ,gobject-introspection)
4225 ("gtk-doc" ,gtk-doc)
4226 ("pkg-config" ,pkg-config)
4227 ("json-glib" ,json-glib)))
4228 (propagated-inputs
4229 ;; geocode-glib-1.0.pc refers to GIO.
4230 `(("glib" ,glib)))
4231 (inputs
4232 `(("libsoup" ,libsoup)))
4233 (home-page "https://github.com/GNOME/geocode-glib/")
4234 (synopsis "Geocoding and reverse-geocoding library")
4235 (description
4236 "geocode-glib is a convenience library for geocoding (finding longitude,
4237 and latitude from an address) and reverse geocoding (finding an address from
4238 coordinates) using the Nominatim service. geocode-glib caches requests for
4239 faster results and to avoid unnecessary server load.")
4240 (license license:lgpl2.0+)))
4241
4242 (define-public upower
4243 (package
4244 (name "upower")
4245 (version "0.99.11")
4246 (source (origin
4247 (method url-fetch)
4248 (uri (string-append "https://upower.freedesktop.org/releases/"
4249 "upower-" version ".tar.xz"))
4250 (sha256
4251 (base32
4252 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4253 (patches (search-patches "upower-builddir.patch"))
4254 (modules '((guix build utils)))
4255 (snippet
4256 '(begin
4257 ;; Upstream commit
4258 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4259 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4260 ;; 'dbus-configuration-directory' in (gnu services dbus)
4261 ;; expects it in etc/. Thus, move it back to its previous
4262 ;; location.
4263 (substitute* "src/Makefile.in"
4264 (("^dbusconfdir =.*$")
4265 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4266 #t))))
4267 (build-system glib-or-gtk-build-system)
4268 (arguments
4269 '(#:phases
4270 (modify-phases %standard-phases
4271 (add-before 'check 'pre-check
4272 (lambda* (#:key inputs #:allow-other-keys)
4273 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4274 "/lib")))
4275 (setenv "LD_LIBRARY_PATH" umockdev))
4276 #t)))
4277 #:configure-flags (list "--localstatedir=/var"
4278 (string-append "--with-udevrulesdir="
4279 (assoc-ref %outputs "out")
4280 "/lib/udev/rules.d"))))
4281 (native-inputs
4282 `(("gobject-introspection" ,gobject-introspection)
4283 ("pkg-config" ,pkg-config)
4284 ("intltool" ,intltool)
4285 ("python" ,python)
4286
4287 ;; For tests.
4288 ("python-dbus" ,python-dbus)
4289 ("python-dbusmock" ,python-dbusmock)
4290 ("python-pygobject" ,python-pygobject)
4291 ("umockdev" ,umockdev)
4292
4293 ;; For man pages.
4294 ("libxslt" ,libxslt) ;for 'xsltproc'
4295 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4296 ("docbook-xsl" ,docbook-xsl)))
4297 (inputs
4298 `(("dbus-glib" ,dbus-glib)
4299 ("libgudev" ,libgudev)
4300 ("libusb" ,libusb)))
4301 (propagated-inputs
4302 ;; In Requires of upower-glib.pc.
4303 `(("glib" ,glib)))
4304 (home-page "https://upower.freedesktop.org/")
4305 (synopsis "System daemon for managing power devices")
4306 (description
4307 "UPower is an abstraction for enumerating power devices,
4308 listening to device events and querying history and statistics. Any
4309 application or service on the system can access the org.freedesktop.UPower
4310 service via the system message bus.")
4311 (license license:gpl2+)))
4312
4313 (define-public libgweather
4314 (package
4315 (name "libgweather")
4316 (version "3.34.0")
4317 (source (origin
4318 (method url-fetch)
4319 (uri (string-append "mirror://gnome/sources/" name "/"
4320 (version-major+minor version) "/"
4321 name "-" version ".tar.xz"))
4322 (sha256
4323 (base32
4324 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
4325 (build-system meson-build-system)
4326 (arguments
4327 `(#:tests? #f ; one of two tests requires network access
4328 #:configure-flags
4329 `(,(string-append "-Dzoneinfo_dir="
4330 (assoc-ref %build-inputs "tzdata")
4331 "/share/zoneinfo"))))
4332 (native-inputs
4333 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4334 ("gobject-introspection" ,gobject-introspection)
4335 ("pkg-config" ,pkg-config)
4336 ("vala" ,vala)
4337 ("intltool" ,intltool)))
4338 (propagated-inputs
4339 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4340 ;; libsoup.
4341 `(("gtk+" ,gtk+)
4342 ("gdk-pixbuf" ,gdk-pixbuf)
4343 ("libxml2" ,libxml2)
4344 ("libsoup" ,libsoup)
4345 ("geocode-glib" ,geocode-glib)))
4346 (inputs
4347 `(("tzdata" ,tzdata)))
4348 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4349 (synopsis "Location, time zone, and weather library for GNOME")
4350 (description
4351 "libgweather is a library to access weather information from online
4352 services for numerous locations.")
4353 (license license:gpl2+)))
4354
4355 (define-public gnome-settings-daemon
4356 (package
4357 (name "gnome-settings-daemon")
4358 (version "3.34.1")
4359 (source
4360 (origin
4361 (method url-fetch)
4362 (uri (string-append "mirror://gnome/sources/" name "/"
4363 (version-major+minor version) "/"
4364 name "-" version ".tar.xz"))
4365 (sha256
4366 (base32
4367 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
4368 (build-system meson-build-system)
4369 (arguments
4370 `(#:glib-or-gtk? #t
4371 #:configure-flags
4372 (list (string-append "-Dudev_dir="
4373 (assoc-ref %outputs "out")
4374 "/lib/udev/rules.d/")
4375 "-Dsystemd=false"
4376 ;; Otherwise, the RUNPATH will lack the final path component.
4377 (string-append "-Dc_link_args=-Wl,-rpath="
4378 (assoc-ref %outputs "out")
4379 "/lib/gnome-settings-daemon-3.0"))
4380 ;; Color management test can't reach the colord system service.
4381 #:tests? #f))
4382 (native-inputs
4383 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4384 ("pkg-config" ,pkg-config)
4385 ("intltool" ,intltool)
4386 ("xsltproc" ,libxslt)
4387 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4388 ("docbook-xml" ,docbook-xml-4.2)
4389 ("docbook-xsl" ,docbook-xsl)))
4390 (inputs
4391 `(("alsa-lib" ,alsa-lib)
4392 ("colord" ,colord)
4393 ("libgudev" ,libgudev)
4394 ("upower" ,upower)
4395 ("polkit" ,polkit)
4396 ("pulseaudio" ,pulseaudio)
4397 ("libcanberra" ,libcanberra)
4398 ("libx11" ,libx11)
4399 ("libxtst" ,libxtst)
4400 ("lcms" ,lcms)
4401 ("libnotify" ,libnotify)
4402 ("geoclue" ,geoclue)
4403 ("geocode-glib" ,geocode-glib)
4404 ("libgweather" ,libgweather)
4405 ("gnome-desktop" ,gnome-desktop)
4406 ("nss" ,nss)
4407 ("cups" ,cups)
4408 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4409 ("libwacom" ,libwacom)
4410 ("librsvg" ,librsvg)
4411 ("xf86-input-wacom" ,xf86-input-wacom)
4412 ("wayland" ,wayland)
4413 ("network-manager" ,network-manager)
4414 ("gcr" ,gcr)
4415 ("modem-manager" ,modem-manager)))
4416 (home-page "https://www.gnome.org")
4417 (synopsis "GNOME settings daemon")
4418 (description
4419 "This package contains the daemon responsible for setting the various
4420 parameters of a GNOME session and the applications that run under it. It
4421 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4422 settings, themes, mouse settings, and startup of other daemons.")
4423 (license license:gpl2+)))
4424
4425 (define-public totem-pl-parser
4426 (package
4427 (name "totem-pl-parser")
4428 (version "3.26.3")
4429 (source (origin
4430 (method url-fetch)
4431 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4432 (version-major+minor version) "/"
4433 "totem-pl-parser-" version ".tar.xz"))
4434 (sha256
4435 (base32
4436 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4437 (build-system meson-build-system)
4438 (arguments
4439 ;; FIXME: Tests require gvfs.
4440 `(#:tests? #f))
4441 (native-inputs
4442 `(("intltool" ,intltool)
4443 ("glib" ,glib "bin")
4444 ("gobject-introspection" ,gobject-introspection)
4445 ("pkg-config" ,pkg-config)))
4446 (propagated-inputs
4447 `(("glib" ,glib)
4448 ("gmime" ,gmime)
4449 ("libarchive" ,libarchive)
4450 ("libgcrypt" ,libgcrypt)
4451 ("libxml2" ,libxml2)))
4452 (inputs
4453 `(("libsoup" ,libsoup)))
4454 (home-page "https://projects.gnome.org/totem")
4455 (synopsis "Library to parse and save media playlists for GNOME")
4456 (description "Totem-pl-parser is a GObjects-based library to parse and save
4457 playlists in a variety of formats.")
4458 (license license:lgpl2.0+)))
4459
4460 (define-public aisleriot
4461 (package
4462 (name "aisleriot")
4463 (version "3.22.9")
4464 (source (origin
4465 (method url-fetch)
4466 (uri (string-append "mirror://gnome/sources/aisleriot/"
4467 (version-major+minor version) "/"
4468 "aisleriot-" version ".tar.xz"))
4469 (sha256
4470 (base32
4471 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4472 (build-system glib-or-gtk-build-system)
4473 (arguments
4474 '(#:configure-flags
4475 '("--with-platform=gtk-only"
4476 "--with-card-theme-formats=svg")))
4477 (native-inputs
4478 `(("desktop-file-utils" ,desktop-file-utils)
4479 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4480 ("intltool" ,intltool)
4481 ("itstool" ,itstool)
4482 ("pkg-config" ,pkg-config)
4483 ("xmllint" ,libxml2)))
4484 (inputs
4485 `(("gtk+" ,gtk+)
4486 ("guile" ,guile-2.2)
4487 ("libcanberra" ,libcanberra)
4488 ("librsvg" ,librsvg)))
4489 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4490 (synopsis "Solitaire card games")
4491 (description
4492 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4493 which are easy to play with the aid of a mouse.")
4494 (license license:gpl3+)))
4495
4496 (define-public amtk
4497 (package
4498 (name "amtk")
4499 (version "5.0.2")
4500 (source (origin
4501 (method url-fetch)
4502 (uri (string-append "mirror://gnome/sources/amtk/"
4503 (version-major+minor version) "/"
4504 "amtk-" version ".tar.xz"))
4505 (sha256
4506 (base32
4507 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
4508 (build-system gnu-build-system)
4509 (arguments
4510 '(#:configure-flags '("--enable-gtk-doc")))
4511 (native-inputs
4512 `(("gobject-introspection" ,gobject-introspection)
4513 ("glib:bin" ,glib "bin") ; for glib-mkenums
4514 ("gtk-doc" ,gtk-doc)
4515 ("pkg-config" ,pkg-config)))
4516 (inputs
4517 `(("glib" ,glib)
4518 ("gtk+" ,gtk+)))
4519 (home-page "https://wiki.gnome.org/Projects/Amtk")
4520 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4521 (description
4522 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4523 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4524 both a traditional UI or a modern UI with a GtkHeaderBar.")
4525 (license license:lgpl2.1+)))
4526
4527 (define-public devhelp
4528 (package
4529 (name "devhelp")
4530 (version "3.34.0")
4531 (source (origin
4532 (method url-fetch)
4533 (uri (string-append "mirror://gnome/sources/" name "/"
4534 (version-major+minor version) "/"
4535 name "-" version ".tar.xz"))
4536 (sha256
4537 (base32
4538 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
4539 (build-system meson-build-system)
4540 (arguments
4541 '(#:glib-or-gtk? #t
4542 #:phases
4543 (modify-phases %standard-phases
4544 (add-after 'unpack 'skip-gtk-update-icon-cache
4545 ;; Don't create 'icon-theme.cache'.
4546 (lambda _
4547 (substitute* "meson_post_install.py"
4548 (("gtk-update-icon-cache") "true"))
4549 #t)))))
4550 (native-inputs
4551 `(("intltool" ,intltool)
4552 ("itstool" ,itstool)
4553 ("gobject-introspection" ,gobject-introspection)
4554 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4555 ("pkg-config" ,pkg-config)))
4556 (inputs
4557 `(("amtk" ,amtk)
4558 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4559 ("webkitgtk" ,webkitgtk)))
4560 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4561 (synopsis "API documentation browser for GNOME")
4562 (description
4563 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4564 natively with GTK-Doc (the API reference system developed for GTK+ and used
4565 throughout GNOME for API documentation).")
4566 (license license:gpl2+)))
4567
4568 (define-public cogl
4569 (package
4570 (name "cogl")
4571 (version "1.22.8")
4572 (source
4573 (origin
4574 (method url-fetch)
4575 (uri (string-append "mirror://gnome/sources/cogl/"
4576 (version-major+minor version) "/"
4577 "cogl-" version ".tar.xz"))
4578 (sha256
4579 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
4580 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4581 ;; cogl, corresponding changes may be appropriate in mutter as well.
4582 (build-system gnu-build-system)
4583 (native-inputs
4584 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4585 ("gobject-introspection" ,gobject-introspection)
4586 ("xorg-server" ,xorg-server-for-tests)
4587 ("pkg-config" ,pkg-config)))
4588 (propagated-inputs
4589 `(("glib" ,glib)
4590 ("gdk-pixbuf" ,gdk-pixbuf)
4591 ("libx11" ,libx11)
4592 ("libxext" ,libxext)
4593 ("libxfixes" ,libxfixes)
4594 ("libxdamage" ,libxdamage)
4595 ("libxcomposite" ,libxcomposite)
4596 ("libxrandr" ,libxrandr)))
4597 (inputs
4598 `(("mesa" ,mesa)
4599 ("cairo" ,cairo)
4600 ("pango" ,pango)
4601 ("gstreamer" ,gstreamer)
4602 ("gst-plugins-base" ,gst-plugins-base)
4603 ("wayland" ,wayland)))
4604 (arguments
4605 `(#:disallowed-references (,xorg-server-for-tests)
4606 #:configure-flags (list "--enable-cogl-gst"
4607 "--enable-wayland-egl-platform"
4608 "--enable-wayland-egl-server"
4609
4610 ;; Arrange to pass an absolute file name to
4611 ;; dlopen for libGL.so.
4612 (string-append "--with-gl-libname="
4613 (assoc-ref %build-inputs "mesa")
4614 "/lib/libGL.so"))
4615 #:phases
4616 (modify-phases %standard-phases
4617 (add-after 'unpack 'fix-build-with-mesa-20
4618 (lambda _
4619 ;; Work around a problem with Mesa 20 where some macros used by
4620 ;; Cogl went missing from eglext.h. This can likely be removed
4621 ;; for newer versions of Cogl or Mesa.
4622 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
4623 (substitute* '("configure"
4624 "cogl/winsys/cogl-winsys-egl-kms.c")
4625 (("#include <EGL/eglext.h>" all)
4626 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
4627 #t))
4628 (add-before 'check 'start-xorg-server
4629 (lambda* (#:key tests? inputs #:allow-other-keys)
4630 (if tests?
4631 (begin
4632 ;; The test suite requires a running X server.
4633 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4634 (assoc-ref inputs "xorg-server")))
4635 (setenv "DISPLAY" ":1")
4636 #t)
4637 (format #t "test suite not run~%"))
4638 #t)))))
4639 (home-page "https://www.cogl3d.org")
4640 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4641 (description
4642 "Cogl is a small library for using 3D graphics hardware to draw pretty
4643 pictures. The API departs from the flat state machine style of OpenGL and is
4644 designed to make it easy to write orthogonal components that can render
4645 without stepping on each others toes.")
4646 (license (list license:expat ; most of the code
4647 license:bsd-3 ; cogl/cogl-point-in-poly.c
4648 license:sgifreeb2.0 ; cogl-path/tesselator/
4649 license:asl2.0)))) ; examples/android/
4650
4651 (define-public clutter
4652 (package
4653 (name "clutter")
4654 (version "1.26.2")
4655 (source
4656 (origin
4657 (method url-fetch)
4658 (uri (string-append "mirror://gnome/sources/" name "/"
4659 (version-major+minor version) "/"
4660 name "-" version ".tar.xz"))
4661 (sha256
4662 (base32
4663 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4664 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4665 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4666 (build-system gnu-build-system)
4667 (outputs '("out"
4668 "doc")) ;9 MiB of gtk-doc HTML pages
4669 (native-inputs
4670 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4671 ("gobject-introspection" ,gobject-introspection)
4672 ("pkg-config" ,pkg-config)
4673 ("xsltproc" ,libxslt)))
4674 (propagated-inputs
4675 `(("cogl" ,cogl)
4676 ("cairo" ,cairo)
4677 ("atk" ,atk)
4678 ("gtk+" ,gtk+)
4679 ("json-glib" ,json-glib)
4680 ("glib" ,glib)
4681 ("libxcomposite" ,libxcomposite)
4682 ("libxdamage" ,libxdamage)
4683 ("libxext" ,libxext)
4684 ("xinput" ,xinput)))
4685 (inputs
4686 `(("libxkbcommon" ,libxkbcommon)
4687 ("udev" ,eudev)))
4688 (arguments
4689 `(#:configure-flags (list "--enable-x11-backend=yes"
4690
4691 ;; This produces share/doc/{clutter,cally}.
4692 (string-append "--with-html-dir="
4693 (assoc-ref %outputs "doc")
4694 "/share/doc"))
4695 ;; XXX FIXME: Get test suite working. It would probably fail in the
4696 ;; same way the cogl tests fail, since clutter is based on cogl.
4697 #:tests? #f))
4698 (home-page "http://www.clutter-project.org")
4699 (synopsis "OpenGL-based interactive canvas library")
4700 (description
4701 "Clutter is an OpenGL-based interactive canvas library, designed for
4702 creating fast, mainly 2D single window applications such as media box UIs,
4703 presentations, kiosk style applications and so on.")
4704 (license license:lgpl2.0+)))
4705
4706 (define-public clutter-gtk
4707 (package
4708 (name "clutter-gtk")
4709 (version "1.8.4")
4710 (source
4711 (origin
4712 (method url-fetch)
4713 (uri (string-append "mirror://gnome/sources/" name "/"
4714 (version-major+minor version) "/"
4715 name "-" version ".tar.xz"))
4716 (sha256
4717 (base32
4718 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4719 (build-system gnu-build-system)
4720 (native-inputs
4721 `(("pkg-config" ,pkg-config)
4722 ("gobject-introspection" ,gobject-introspection)))
4723 (propagated-inputs
4724 ;; clutter-gtk.pc refers to all these.
4725 `(("clutter" ,clutter)
4726 ("gtk+" ,gtk+)))
4727 (home-page "http://www.clutter-project.org")
4728 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4729 (description
4730 "Clutter is an OpenGL-based interactive canvas library, designed for
4731 creating fast, mainly 2D single window applications such as media box UIs,
4732 presentations, kiosk style applications and so on.")
4733 (license license:lgpl2.0+)))
4734
4735 (define-public clutter-gst
4736 (package
4737 (name "clutter-gst")
4738 (version "3.0.27")
4739 (source
4740 (origin
4741 (method url-fetch)
4742 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4743 (version-major+minor version) "/"
4744 "clutter-gst-" version ".tar.xz"))
4745 (sha256
4746 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4747 (build-system gnu-build-system)
4748 (native-inputs
4749 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4750 ("pkg-config" ,pkg-config)
4751 ("gobject-introspection" ,gobject-introspection)))
4752 (inputs
4753 `(("clutter" ,clutter)
4754 ("gstreamer" ,gstreamer)
4755 ("gst-plugins-base" ,gst-plugins-base)))
4756 (home-page "http://www.clutter-project.org")
4757 (synopsis "Integration library for using GStreamer with Clutter")
4758 (description
4759 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4760 It provides a GStreamer sink to upload frames to GL and an actor that
4761 implements the ClutterGstPlayer interface using playbin. Clutter is an
4762 OpenGL-based interactive canvas library.")
4763 (license license:lgpl2.0+)))
4764
4765 (define-public libchamplain
4766 (package
4767 (name "libchamplain")
4768 (version "0.12.16")
4769 (source (origin
4770 (method url-fetch)
4771 (uri (string-append
4772 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4773 version ".tar.xz"))
4774 (sha256
4775 (base32
4776 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4777 (build-system gnu-build-system)
4778 (arguments '(#:configure-flags '("--enable-vala")))
4779 (native-inputs
4780 `(("gobject-introspection" ,gobject-introspection)
4781 ("pkg-config" ,pkg-config)
4782 ("vala" ,vala)))
4783 (propagated-inputs
4784 `(("libsoup" ,libsoup)
4785 ("sqlite" ,sqlite)
4786 ("clutter" ,clutter)
4787 ("clutter-gtk" ,clutter-gtk)
4788 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4789 ("cairo" ,cairo)
4790 ("gtk+3" ,gtk+)
4791 ("glib" ,glib)))
4792 (home-page "https://projects.gnome.org/libchamplain/")
4793 (synopsis "C library providing a ClutterActor to display maps")
4794 (description
4795 "libchamplain is a C library providing a ClutterActor to display maps.
4796 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4797 and Perl bindings are also available. It supports numerous free map sources
4798 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4799 (license license:lgpl2.1+)))
4800
4801 (define-public gom
4802 (package
4803 (name "gom")
4804 (version "0.3.2")
4805 (source
4806 (origin
4807 (method url-fetch)
4808 (uri (string-append "mirror://gnome/sources/gom/"
4809 (version-major+minor version) "/"
4810 "gom-" version ".tar.xz"))
4811 (sha256
4812 (base32
4813 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4814 (build-system gnu-build-system)
4815 (native-inputs
4816 `(("intltool" ,intltool)
4817 ("pkg-config" ,pkg-config)
4818 ("gobject-introspection" ,gobject-introspection)))
4819 (inputs
4820 `(("glib" ,glib)
4821 ("gdk-pixbuf" ,gdk-pixbuf)
4822 ("sqlite" ,sqlite)))
4823 ;; XXX TODO: Figure out how to run the test suite.
4824 (arguments `(#:tests? #f))
4825 (home-page "https://wiki.gnome.org/Projects/Gom")
4826 (synopsis "Object mapper from GObjects to SQLite")
4827 (description
4828 "Gom provides an object mapper from GObjects to SQLite. It helps you
4829 write applications that need to store structured data as well as make complex
4830 queries upon that data.")
4831 (license license:lgpl2.1+)))
4832
4833 (define-public libgnome-games-support
4834 (package
4835 (name "libgnome-games-support")
4836 (version "1.4.4")
4837 (source (origin
4838 (method url-fetch)
4839 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4840 (version-major+minor version) "/"
4841 "libgnome-games-support-" version ".tar.xz"))
4842 (sha256
4843 (base32
4844 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4845 (build-system gnu-build-system)
4846 (arguments
4847 '(#:phases
4848 (modify-phases %standard-phases
4849 (add-before 'check 'pre-check
4850 (lambda _
4851 ;; Tests require a writable HOME.
4852 (setenv "HOME" (getcwd))
4853 #t)))))
4854 (native-inputs
4855 `(("intltool" ,intltool)
4856 ("pkg-config" ,pkg-config)
4857 ("vala" ,vala)))
4858 (propagated-inputs
4859 ;; Required by libgnome-games-support-1.0.pc
4860 `(("gtk+" ,gtk+)
4861 ("libgee" ,libgee)))
4862 (home-page "https://www.gnome.org/")
4863 (synopsis "Useful functionality shared among GNOME games")
4864 (description
4865 "libgnome-games-support is a small library intended for internal use by
4866 GNOME Games, but it may be used by others.")
4867 (license license:lgpl3+)))
4868
4869 (define-public gnome-klotski
4870 (package
4871 (name "gnome-klotski")
4872 (version "3.34.0")
4873 (source (origin
4874 (method url-fetch)
4875 (uri (string-append "mirror://gnome/sources/" name "/"
4876 (version-major+minor version) "/"
4877 name "-" version ".tar.xz"))
4878 (sha256
4879 (base32
4880 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
4881 (build-system meson-build-system)
4882 (arguments
4883 '(#:glib-or-gtk? #t
4884 #:phases
4885 (modify-phases %standard-phases
4886 (add-after 'unpack 'skip-gtk-update-icon-cache
4887 ;; Don't create 'icon-theme.cache'.
4888 (lambda _
4889 (substitute* "build-aux/meson_post_install.py"
4890 (("gtk-update-icon-cache") (which "true")))
4891 #t)))))
4892 (native-inputs
4893 `(("desktop-file-utils" ,desktop-file-utils)
4894 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4895 ("intltool" ,intltool)
4896 ("itstool" ,itstool)
4897 ("pkg-config" ,pkg-config)
4898 ("vala" ,vala)
4899 ("xmllint" ,libxml2)))
4900 (inputs
4901 `(("gtk+" ,gtk+)
4902 ("libgnome-games-support" ,libgnome-games-support)
4903 ("librsvg" ,librsvg)))
4904 (home-page "https://wiki.gnome.org/Apps/Klotski")
4905 (synopsis "Sliding block puzzles")
4906 (description
4907 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4908 the patterned block to the area bordered by green markers. To do so, you will
4909 need to slide other blocks out of the way. Complete each puzzle in as few moves
4910 as possible!")
4911 (license license:gpl2+)))
4912
4913 (define-public grilo
4914 (package
4915 (name "grilo")
4916 (version "0.3.10")
4917 (source
4918 (origin
4919 (method url-fetch)
4920 (uri (string-append "mirror://gnome/sources/" name "/"
4921 (version-major+minor version) "/"
4922 name "-" version ".tar.xz"))
4923 (sha256
4924 (base32
4925 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4926 (build-system meson-build-system)
4927 (native-inputs
4928 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4929 ("intltool" ,intltool)
4930 ("pkg-config" ,pkg-config)
4931 ("gobject-introspection" ,gobject-introspection)
4932 ("gtk-doc" ,gtk-doc)
4933 ("vala" ,vala)))
4934 (inputs
4935 `(("cyrus-sasl" ,cyrus-sasl)
4936 ("glib" ,glib)
4937 ("gtk+" ,gtk+)
4938 ("libxml2" ,libxml2)
4939 ("liboauth" ,liboauth)
4940 ("libsoup" ,libsoup)
4941 ("totem-pl-parser" ,totem-pl-parser)))
4942 (native-search-paths
4943 (list (search-path-specification
4944 (variable "GRL_PLUGIN_PATH")
4945 (files (list (string-append "lib/grilo-"
4946 (version-major+minor version)))))))
4947 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4948 (synopsis "Framework for discovering and browsing media")
4949 (description
4950 "Grilo is a framework focused on making media discovery and browsing easy
4951 for application developers.")
4952 (license license:lgpl2.1+)))
4953
4954 (define-public grilo-plugins
4955 (package
4956 (name "grilo-plugins")
4957 (version "0.3.10")
4958 (source
4959 (origin
4960 (method url-fetch)
4961 (uri (string-append "mirror://gnome/sources/" name "/"
4962 (version-major+minor version) "/"
4963 name "-" version ".tar.xz"))
4964 (sha256
4965 (base32
4966 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4967 (build-system meson-build-system)
4968 (native-inputs
4969 `(("gettext" ,gettext-minimal)
4970 ("glib:bin" ,glib "bin")
4971 ("gtk+:bin" ,gtk+ "bin")
4972 ("itstool" ,itstool)
4973 ("pkg-config" ,pkg-config)))
4974 ;; TODO: ahavi, gstreamer
4975 (inputs
4976 `(("grilo" ,grilo)
4977 ;("gmime" ,gmime) ; unused
4978 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4979 ("gom" ,gom)
4980 ;("gssdp" ,gssdp) ; unused
4981 ;("gupnp" ,gupnp) ; unused
4982 ;("gupnp-av" ,gupnp-av) ; unused
4983 ("json-glib" ,json-glib)
4984 ("avahi" ,avahi)
4985 ("libgdata" ,libgdata)
4986 ("libmediaart" ,libmediaart)
4987 ;("librest" ,rest) ; unused
4988 ("libsoup" ,libsoup)
4989 ("totam-pl-parser" ,totem-pl-parser)
4990 ("tracker" ,tracker))) ; unused because it's too old
4991 (arguments
4992 `(#:glib-or-gtk? #t
4993 ;;Disable lua-factory as it needs missing dependencies
4994 #:configure-flags '("-Denable-lua-factory=no")))
4995 (home-page "https://live.gnome.org/Grilo")
4996 (synopsis "Plugins for the Grilo media discovery library")
4997 (description
4998 "Grilo is a framework focused on making media discovery and browsing easy
4999 for application developers. This package provides plugins for common media
5000 discovery protocols.")
5001 (license license:lgpl2.1+)))
5002
5003 (define-public totem
5004 (package
5005 (name "totem")
5006 (version "3.34.1")
5007 (source
5008 (origin
5009 (method url-fetch)
5010 (uri (string-append "mirror://gnome/sources/totem/"
5011 (version-major+minor version) "/"
5012 "totem-" version ".tar.xz"))
5013 (sha256
5014 (base32
5015 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
5016 (build-system meson-build-system)
5017 (native-inputs
5018 `(("pkg-config" ,pkg-config)
5019 ("desktop-file-utils" ,desktop-file-utils)
5020 ("gobject-introspection" ,gobject-introspection)
5021 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
5022 ("intltool" ,intltool)
5023 ("itstool" ,itstool)
5024 ("xmllint" ,libxml2)
5025 ("xorg-server" ,xorg-server-for-tests)))
5026 (propagated-inputs
5027 `(("dconf" ,dconf)))
5028 (inputs
5029 `(("gtk+" ,gtk+)
5030 ("gdk-pixbuf" ,gdk-pixbuf)
5031 ("atk" ,atk)
5032 ("cairo" ,cairo)
5033 ("dbus-glib" ,dbus-glib)
5034 ("clutter" ,clutter)
5035 ("clutter-gtk" ,clutter-gtk)
5036 ("clutter-gst" ,clutter-gst)
5037 ("xorgproto" ,xorgproto)
5038 ("libxxf86vm" ,libxxf86vm)
5039 ("libxtst" ,libxtst)
5040 ("libxrandr" ,libxrandr)
5041 ("libxml2" ,libxml2)
5042 ("libsoup" ,libsoup)
5043 ("libpeas" ,libpeas)
5044 ("librsvg" ,librsvg)
5045 ("lirc" ,lirc)
5046 ("gnome-desktop" ,gnome-desktop)
5047 ("gstreamer" ,gstreamer)
5048 ("gst-plugins-base" ,gst-plugins-base)
5049 ("gst-plugins-good" ,gst-plugins-good)
5050 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5051 ("adwaita-icon-theme" ,adwaita-icon-theme)
5052 ("python" ,python)
5053 ("python-pygobject" ,python-pygobject)
5054 ("totem-pl-parser" ,totem-pl-parser)
5055 ("grilo" ,grilo)
5056 ("grilo-plugins" ,grilo-plugins)
5057 ("vala" ,vala)))
5058 (arguments
5059 `(#:glib-or-gtk? #t
5060
5061 ;; Disable automatic GStreamer plugin installation via PackageKit and
5062 ;; all that.
5063 #:configure-flags '("-D" "enable-easy-codec-installation=no"
5064
5065 ;; Do not build .a files for the plugins, it's
5066 ;; completely useless. This saves 2 MiB.
5067 "--default-library" "shared")
5068 #:phases
5069 (modify-phases %standard-phases
5070 (add-after 'unpack 'skip-gtk-update-icon-cache
5071 ;; Don't create 'icon-theme.cache'.
5072 (lambda _
5073 (substitute* "meson_post_install.py"
5074 (("gtk-update-icon-cache") "true"))
5075 #t))
5076 (add-before
5077 'install 'disable-cache-generation
5078 (lambda _
5079 (setenv "DESTDIR" "/")
5080 #t))
5081 (add-before
5082 'check 'pre-check
5083 (lambda _
5084 ;; Tests require a running X server.
5085 (system "Xvfb :1 &")
5086 (setenv "DISPLAY" ":1")
5087 #t))
5088 (add-after
5089 'install 'wrap-totem
5090 (lambda* (#:key inputs outputs #:allow-other-keys)
5091 (let ((out (assoc-ref outputs "out"))
5092 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5093 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5094 (wrap-program (string-append out "/bin/totem")
5095 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5096 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5097 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5098 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
5099 #t)))))
5100 (home-page "https://wiki.gnome.org/Apps/Videos")
5101 (synopsis "Simple media player for GNOME based on GStreamer")
5102 (description "Totem is a simple yet featureful media player for GNOME
5103 which can read a large number of file formats.")
5104 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5105 ;; to be used and distributed together with GStreamer and Totem. See
5106 ;; file://COPYING in the source distribution for details.
5107 (license license:gpl2+)))
5108
5109 (define-public rhythmbox
5110 (package
5111 (name "rhythmbox")
5112 (version "3.4.4")
5113 (source (origin
5114 (method url-fetch)
5115 (uri (string-append "mirror://gnome/sources/rhythmbox/"
5116 (version-major+minor version) "/"
5117 "rhythmbox-" version ".tar.xz"))
5118 (sha256
5119 (base32
5120 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
5121 (build-system glib-or-gtk-build-system)
5122 (arguments
5123 `(#:configure-flags
5124 (list "--enable-lirc"
5125 "--enable-python"
5126 "--enable-vala"
5127 "--with-brasero"
5128 "--with-gudev"
5129 "--with-libsecret")
5130 #:phases
5131 (modify-phases %standard-phases
5132 (add-after
5133 'install 'wrap-rhythmbox
5134 (lambda* (#:key inputs outputs #:allow-other-keys)
5135 (let ((out (assoc-ref outputs "out"))
5136 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5137 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5138 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5139 (python-path (getenv "PYTHONPATH")))
5140 (wrap-program (string-append out "/bin/rhythmbox")
5141 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5142 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5143 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5144 `("PYTHONPATH" ":" prefix (,python-path))))
5145 #t)))))
5146 (propagated-inputs
5147 `(("dconf" ,dconf)))
5148 (native-inputs
5149 `(("itstool" ,itstool)
5150 ("intltool" ,intltool)
5151 ("glib" ,glib "bin")
5152 ("gobject-introspection" ,gobject-introspection)
5153 ("desktop-file-utils" ,desktop-file-utils)
5154 ("pkg-config" ,pkg-config)
5155 ("xmllint" ,libxml2)))
5156 (inputs
5157 `(("json-glib" ,json-glib)
5158 ("tdb" ,tdb)
5159 ("gnome-desktop" ,gnome-desktop)
5160 ("python" ,python)
5161 ("python-pygobject" ,python2-pygobject)
5162 ("vala" ,vala)
5163 ("gmime" ,gmime)
5164 ("adwaita-icon-theme" ,adwaita-icon-theme)
5165 ("grilo" ,grilo)
5166 ("grilo-plugins" ,grilo-plugins)
5167 ("gstreamer" ,gstreamer)
5168 ("gst-plugins-base" ,gst-plugins-base)
5169 ("gst-plugins-good" ,gst-plugins-good)
5170 ("totem-pl-parser" ,totem-pl-parser)
5171 ("libgudev" ,libgudev)
5172 ;;("libmtp" ,libmtp) FIXME: Not detected
5173 ("libsecret" ,libsecret)
5174 ("libsoup" ,libsoup)
5175 ("libnotify" ,libnotify)
5176 ("libpeas" ,libpeas)
5177 ("lirc" ,lirc)
5178 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5179 ;;("clutter" ,clutter)
5180 ;;("clutter-gtk" ,clutter-gtk)
5181 ;;("clutter-gst" ,clutter-gst)
5182 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5183 ("atk" ,atk)
5184 ("pango" ,pango)
5185 ("gtk+" ,gtk+)
5186 ;; TODO:
5187 ;; * libgpod
5188 ;; * mx
5189 ("brasero" ,brasero)))
5190 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5191 (synopsis "Music player for GNOME")
5192 (description "Rhythmbox is a music playing application for GNOME. It
5193 supports playlists, song ratings, and any codecs installed through gstreamer.")
5194 (license license:gpl2+)))
5195
5196 (define-public eog
5197 (package
5198 (name "eog")
5199 (version "3.34.1")
5200 (source (origin
5201 (method url-fetch)
5202 (uri (string-append "mirror://gnome/sources/" name "/"
5203 (version-major+minor version) "/"
5204 name "-" version ".tar.xz"))
5205 (sha256
5206 (base32
5207 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5208 (build-system meson-build-system)
5209 (arguments
5210 `(#:configure-flags
5211 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5212 (list (string-append "-Dc_link_args=-Wl,-rpath="
5213 (assoc-ref %outputs "out") "/lib/eog"))
5214 #:phases
5215 (modify-phases %standard-phases
5216 (add-after 'unpack 'skip-gtk-update-icon-cache
5217 ;; Don't create 'icon-theme.cache'.
5218 (lambda _
5219 (substitute* "meson_post_install.py"
5220 (("gtk-update-icon-cache") "true"))
5221 #t))
5222 (add-after 'install 'wrap-eog
5223 (lambda* (#:key outputs #:allow-other-keys)
5224 (let ((out (assoc-ref outputs "out"))
5225 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5226 (wrap-program (string-append out "/bin/eog")
5227 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5228 #t)))))
5229 (propagated-inputs
5230 `(("dconf" ,dconf)))
5231 (native-inputs
5232 `(("intltool" ,intltool)
5233 ("itstool" ,itstool)
5234 ("glib" ,glib "bin")
5235 ("gobject-introspection" ,gobject-introspection)
5236 ("pkg-config" ,pkg-config)
5237 ("xmllint" ,libxml2)))
5238 (inputs
5239 `(("gnome-desktop" ,gnome-desktop)
5240 ("shared-mime-info" ,shared-mime-info)
5241 ("adwaita-icon-theme" ,adwaita-icon-theme)
5242 ("exempi" ,exempi)
5243 ("lcms" ,lcms)
5244 ("libexif" ,libexif)
5245 ("libpeas" ,libpeas)
5246 ("libjpeg" ,libjpeg-turbo)
5247 ("librsvg" ,librsvg-next)
5248 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5249 ("gtk+" ,gtk+)))
5250 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5251 (synopsis "GNOME image viewer")
5252 (description "Eye of GNOME is the GNOME image viewer. It
5253 supports image conversion, rotation, and slideshows.")
5254 (license license:gpl2+)))
5255
5256 (define-public eog-plugins
5257 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5258 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5259 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5260 ;; 'XDG_DATA_DIRS' appropriately set.
5261 (package
5262 (name "eog-plugins")
5263 (version "3.26.4")
5264 (source (origin
5265 (method url-fetch)
5266 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5267 (version-major+minor version) "/"
5268 "eog-plugins-" version ".tar.xz"))
5269 (sha256
5270 (base32
5271 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5272 (build-system gnu-build-system)
5273 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5274 (synopsis "Extensions for the Eye of GNOME image viewer")
5275 (native-inputs
5276 `(("pkg-config" ,pkg-config)
5277 ("gettext" ,gettext-minimal)))
5278 (inputs
5279 `(("eog" ,eog)
5280 ("glib" ,glib)
5281 ("gtk+" ,gtk+)
5282 ("libpeas" ,libpeas)
5283 ("libexif" ,libexif)
5284 ("libchamplain" ,libchamplain)))
5285 (description
5286 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5287 notably:
5288
5289 @itemize
5290 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5291 @item @dfn{Map}, which displays a map of where the picture was taken on the
5292 side panel;
5293 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5294 @end itemize\n")
5295
5296 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5297 ;; long suspicious byte stream that goes to a
5298 ;; ".gresource.eog_postasa_plugin" ELF section.
5299 (license license:gpl2+)))
5300
5301 (define-public libgudev
5302 (package
5303 (name "libgudev")
5304 (version "232")
5305 (source (origin
5306 (method url-fetch)
5307 (uri (string-append "mirror://gnome/sources/" name "/"
5308 version "/" name "-" version ".tar.xz"))
5309 (sha256
5310 (base32
5311 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5312 (build-system gnu-build-system)
5313 (arguments
5314 '(#:configure-flags
5315 ;; umockdev depends on libgudev.
5316 (list "--disable-umockdev")))
5317 (native-inputs
5318 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5319 ("gobject-introspection" ,gobject-introspection)
5320 ("pkg-config" ,pkg-config)))
5321 (propagated-inputs
5322 `(("glib" ,glib))) ; required by gudev-1.0.pc
5323 (inputs
5324 `(("udev" ,eudev)))
5325 (home-page "https://wiki.gnome.org/Projects/libgudev")
5326 (synopsis "GObject bindings for libudev")
5327 (description
5328 "This library provides GObject bindings for libudev. It was originally
5329 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5330 (license license:lgpl2.1+)))
5331
5332 (define-public gvfs
5333 (package
5334 (name "gvfs")
5335 (version "1.40.1")
5336 (source (origin
5337 (method url-fetch)
5338 (uri (string-append "mirror://gnome/sources/gvfs/"
5339 (version-major+minor version) "/"
5340 "gvfs-" version ".tar.xz"))
5341 (sha256
5342 (base32
5343 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5344 (build-system meson-build-system)
5345 (arguments
5346 '(#:glib-or-gtk? #t
5347 #:configure-flags
5348 (list "-Dsystemduserunitdir=no"
5349 "-Dtmpfilesdir=no"
5350 ;; Otherwise, the RUNPATH will lack the final path component.
5351 (string-append "-Dc_link_args=-Wl,-rpath="
5352 (assoc-ref %outputs "out") "/lib/gvfs"))))
5353 (native-inputs
5354 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5355 ("gettext" ,gettext-minimal)
5356 ("gtk-doc" ,gtk-doc)
5357 ("pkg-config" ,pkg-config)
5358 ("xsltproc" ,libxslt)))
5359 (inputs
5360 `(("avahi" ,avahi)
5361 ("docbook-xml" ,docbook-xml-4.2)
5362 ("docbook-xsl" ,docbook-xsl)
5363 ("dbus" ,dbus)
5364 ("elogind" ,elogind)
5365 ("fuse" ,fuse)
5366 ("gcr" ,gcr)
5367 ("glib" ,glib)
5368 ("gnome-online-accounts" ,gnome-online-accounts)
5369 ("libarchive" ,libarchive)
5370 ("libbluray" ,libbluray)
5371 ("libcap" ,libcap)
5372 ("libcdio-paranoia" ,libcdio-paranoia)
5373 ("libgcrypt" ,libgcrypt)
5374 ("libgdata" ,libgdata)
5375 ("libgphoto2" ,libgphoto2)
5376 ("libgudev" ,libgudev)
5377 ("libimobiledevice" ,libimobiledevice)
5378 ("libmtp" ,libmtp)
5379 ("libnfs" ,libnfs)
5380 ("libsecret" ,libsecret)
5381 ("libsmbclient" ,samba)
5382 ("libsoup" ,libsoup)
5383 ("libxml2" ,libxml2)
5384 ("openssh" ,openssh)
5385 ("polkit" ,polkit)
5386 ("udisks" ,udisks)))
5387 (home-page "https://wiki.gnome.org/gvfs/")
5388 (synopsis "Userspace virtual file system for GIO")
5389 (description
5390 "GVFS is a userspace virtual file system designed to work with the I/O
5391 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5392 to all applications using the GIO API. It also supports exposing the GVFS
5393 mounts to non-GIO applications using FUSE.
5394
5395 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5396 DAV, and others.")
5397 (license license:lgpl2.0+)))
5398
5399 (define-public gusb
5400 (package
5401 (name "gusb")
5402 (version "0.3.0")
5403 (source (origin
5404 (method git-fetch)
5405 (uri (git-reference
5406 (url "https://github.com/hughsie/libgusb.git")
5407 (commit version)))
5408 (file-name (git-file-name name version))
5409 (sha256
5410 (base32
5411 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5412 (build-system meson-build-system)
5413 (native-inputs
5414 `(("gobject-introspection" ,gobject-introspection)
5415 ("pkg-config" ,pkg-config)
5416 ("vala" ,vala)
5417 ("gtk-doc" ,gtk-doc)))
5418 (propagated-inputs
5419 ;; Both of these are required by gusb.pc.
5420 `(("glib" ,glib)
5421 ("libusb" ,libusb)))
5422 (arguments
5423 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5424 (home-page "https://github.com/hughsie/libgusb")
5425 (synopsis "GLib binding for libusb1")
5426 (description
5427 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5428 asynchronous control, bulk and interrupt transfers with proper cancellation
5429 and integration into a mainloop. This makes it easy to integrate low level
5430 USB transfers with your high-level application or system daemon.")
5431 (license license:lgpl2.1+)))
5432
5433 (define-public simple-scan
5434 (package
5435 (name "simple-scan")
5436 (version "3.36.3")
5437 (source
5438 (origin
5439 (method url-fetch)
5440 (uri (string-append "mirror://gnome/sources/simple-scan/"
5441 (version-major+minor version) "/"
5442 "simple-scan-" version ".tar.xz"))
5443 (sha256
5444 (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
5445 (build-system meson-build-system)
5446 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5447 (arguments
5448 '(#:glib-or-gtk? #t))
5449 (inputs
5450 `(("gtk" ,gtk+)
5451 ("zlib" ,zlib)
5452 ("cairo" ,cairo)
5453 ("colord" ,colord)
5454 ("gdk-pixbuf" ,gdk-pixbuf)
5455 ("gusb" ,gusb)
5456 ("libsane" ,sane-backends)))
5457 (native-inputs
5458 `(("gettext" ,gettext-minimal)
5459 ("itstool" ,itstool)
5460 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5461 ("pkg-config" ,pkg-config)
5462 ("vala" ,vala)
5463 ("xmllint" ,libxml2)))
5464 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5465 (synopsis "Document and image scanner")
5466 (description
5467 "Document Scanner is an easy-to-use application that lets you connect your
5468 scanner and quickly capture images and documents in an appropriate format. It
5469 supports any scanner for which a suitable SANE driver is available, which is
5470 almost all of them.")
5471 (license license:gpl3+)))
5472
5473 (define-public eolie
5474 (package
5475 (name "eolie")
5476 (version "0.9.98.1")
5477 (source (origin
5478 (method url-fetch)
5479 (uri (string-append "https://adishatz.org/eolie/eolie-"
5480 version ".tar.xz"))
5481 (sha256
5482 (base32
5483 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
5484 (build-system meson-build-system)
5485 (arguments
5486 `(#:glib-or-gtk? #t
5487 #:phases
5488 (modify-phases %standard-phases
5489 (add-after 'unpack 'skip-gtk-update-icon-cache
5490 ;; Don't create 'icon-theme.cache'.
5491 (lambda _
5492 (substitute* "meson_post_install.py"
5493 (("gtk-update-icon-cache") "true"))
5494 #t))
5495 (add-after 'wrap 'wrap-more
5496 (lambda* (#:key inputs outputs #:allow-other-keys)
5497 (let* ((out (assoc-ref outputs "out"))
5498 ;; These libraries must be on LD_LIBRARY_PATH.
5499 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5500 "atk" "gtk+" "gsettings-desktop-schemas"
5501 "gobject-introspection"))
5502 (path (string-join
5503 (map (lambda (lib)
5504 (string-append (assoc-ref inputs lib) "/lib"))
5505 libs)
5506 ":")))
5507 (wrap-program (string-append out "/bin/eolie")
5508 `("LD_LIBRARY_PATH" ":" prefix (,path))
5509 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5510 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5511 #t)))))
5512 (native-inputs
5513 `(("intltool" ,intltool)
5514 ("itstool" ,itstool)
5515 ("pkg-config" ,pkg-config)
5516 ("python" ,python)
5517 ("glib:bin" ,glib "bin")))
5518 (inputs
5519 `(("gobject-introspection" ,gobject-introspection)
5520 ("glib-networking" ,glib-networking)
5521 ("cairo" ,cairo)
5522 ("gtk+" ,gtk+)
5523 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5524 ("python" ,python-wrapper)
5525 ("python-dateutil" ,python-dateutil)
5526 ("python-pyfxa" ,python-pyfxa)
5527 ("python-pygobject" ,python-pygobject)
5528 ("python-pycairo" ,python-pycairo)
5529 ("python-pycrypto" ,python-pycrypto)
5530 ("libsecret" ,libsecret)
5531 ("gtkspell3" ,gtkspell3)
5532 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5533 ("webkitgtk" ,webkitgtk)))
5534 (home-page "https://wiki.gnome.org/Apps/Eolie")
5535 (synopsis "Web browser for GNOME")
5536 (description
5537 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5538 a secret password store, an adblocker, and a modern UI.")
5539 (license license:gpl3+)))
5540
5541 (define-public epiphany
5542 (package
5543 (name "epiphany")
5544 (version "3.34.4")
5545 (source (origin
5546 (method url-fetch)
5547 (uri (string-append "mirror://gnome/sources/epiphany/"
5548 (version-major+minor version) "/"
5549 "epiphany-" version ".tar.xz"))
5550 (sha256
5551 (base32
5552 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
5553
5554 (build-system meson-build-system)
5555 (arguments
5556 '(#:glib-or-gtk? #t
5557 #:phases
5558 (modify-phases %standard-phases
5559 (add-after 'unpack 'skip-gtk-update-icon-cache
5560 ;; Don't create 'icon-theme.cache'.
5561 (lambda _
5562 (substitute* "post_install.py"
5563 (("gtk-update-icon-cache") "true"))
5564 #t))
5565 (add-after 'unpack 'disable-failing-tests
5566 (lambda _
5567 (substitute* "tests/meson.build"
5568 ;; embed_shell fails, because webkitgtk apparently no longer supports
5569 ;; overriding the ftp schema
5570 ;; web_app_utils fails due to missing network access
5571 (("(embed_shell|web_app_utils)_test,")
5572 "find_program('sh'), args: ['-c', 'exit 77'],"))
5573 #t))
5574 (add-before 'check 'pre-check
5575 (lambda _
5576 ;; Tests require a running X server.
5577 (system "Xvfb :1 &")
5578 (setenv "DISPLAY" ":1")
5579 #t)))
5580 #:configure-flags
5581 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5582 (list (string-append "-Dc_link_args=-Wl,-rpath="
5583 (assoc-ref %outputs "out") "/lib/epiphany"))))
5584 (propagated-inputs
5585 `(("dconf" ,dconf)))
5586 (native-inputs
5587 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5588 ("glib:bin" ,glib "bin") ; for glib-mkenums
5589 ("intltool" ,intltool)
5590 ("itstool" ,itstool)
5591 ("pkg-config" ,pkg-config)
5592 ("xmllint" ,libxml2)
5593 ("xorg-server" ,xorg-server-for-tests)))
5594 (inputs
5595 `(("avahi" ,avahi)
5596 ("gcr" ,gcr)
5597 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5598 ("glib-networking" ,glib-networking)
5599 ("gnome-desktop" ,gnome-desktop)
5600 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5601 ("json-glib" ,json-glib)
5602 ("iso-codes" ,iso-codes)
5603 ("libdazzle" ,libdazzle)
5604 ("libnotify" ,libnotify)
5605 ("libsecret" ,libsecret)
5606 ("libxslt" ,libxslt)
5607 ("nettle" ,nettle) ; for hogweed
5608 ("sqlite" ,sqlite)
5609 ("webkitgtk" ,webkitgtk)))
5610 (home-page "https://wiki.gnome.org/Apps/Web")
5611 (synopsis "GNOME web browser")
5612 (description
5613 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5614 principles are simplicity and standards compliance.")
5615 (license license:gpl2+)))
5616
5617 (define-public d-feet
5618 (package
5619 (name "d-feet")
5620 (version "0.3.14")
5621 (source (origin
5622 (method url-fetch)
5623 (uri (string-append "mirror://gnome/sources/" name "/"
5624 (version-major+minor version) "/"
5625 name "-" version ".tar.xz"))
5626 (sha256
5627 (base32
5628 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5629 (build-system glib-or-gtk-build-system)
5630 (arguments
5631 '(#:out-of-source? #f ; tests need to run in the source directory.
5632 #:phases
5633 (modify-phases %standard-phases
5634 (add-before
5635 'check 'pre-check
5636 (lambda _
5637 ;; The test suite requires a running X server.
5638 (system "Xvfb :1 &")
5639 (setenv "DISPLAY" ":1")
5640 ;; Don't fail on missing '/etc/machine-id'.
5641 (setenv "DBUS_FATAL_WARNINGS" "0")
5642 ;; tests.py and window.py don't meet E402:
5643 ;; E402 module level import not at top of file
5644 (substitute* "src/tests/Makefile"
5645 (("--ignore=E123") "--ignore=E123,E402"))
5646 #t))
5647 (add-after
5648 'install 'wrap-program
5649 (lambda* (#:key outputs #:allow-other-keys)
5650 (let ((prog (string-append (assoc-ref outputs "out")
5651 "/bin/d-feet")))
5652 (wrap-program prog
5653 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5654 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5655 #t))))))
5656 (native-inputs
5657 `(("intltool" ,intltool)
5658 ("itstool" ,itstool)
5659 ("pkg-config" ,pkg-config)
5660 ("python-pep8" ,python-pep8)
5661 ("xmllint" ,libxml2)
5662 ("xorg-server" ,xorg-server-for-tests)))
5663 (inputs
5664 `(("gobject-introspection" ,gobject-introspection)
5665 ("gtk+" ,gtk+)
5666 ("python" ,python-wrapper)
5667 ("hicolor-icon-theme" ,hicolor-icon-theme)
5668 ("python-pygobject" ,python-pygobject)))
5669 (home-page "https://wiki.gnome.org/Apps/DFeet")
5670 (synopsis "D-Bus debugger")
5671 (description
5672 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5673 of running programs and invoke methods on those interfaces.")
5674 (license license:gpl2+)))
5675
5676 (define-public yelp-xsl
5677 (package
5678 (name "yelp-xsl")
5679 (version "3.34.2")
5680 (source (origin
5681 (method url-fetch)
5682 (uri (string-append "mirror://gnome/sources/" name "/"
5683 (version-major+minor version) "/"
5684 name "-" version ".tar.xz"))
5685 (sha256
5686 (base32
5687 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
5688 (build-system gnu-build-system)
5689 (native-inputs
5690 `(("gettext-minimal" ,gettext-minimal)
5691 ("itstool" ,itstool)
5692 ("xmllint" ,libxml2)))
5693 (home-page "https://wiki.gnome.org/Apps/Yelp")
5694 (synopsis "XSL stylesheets for Yelp")
5695 (description
5696 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5697 to format Docbook and Mallard documents.")
5698 (license license:gpl2+)))
5699
5700 (define-public yelp
5701 (package
5702 (name "yelp")
5703 (version "3.32.2")
5704 (source (origin
5705 (method url-fetch)
5706 (uri (string-append "mirror://gnome/sources/" name "/"
5707 (version-major+minor version) "/"
5708 name "-" version ".tar.xz"))
5709 (sha256
5710 (base32
5711 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5712 (build-system glib-or-gtk-build-system)
5713 (native-inputs
5714 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5715 ("intltool" ,intltool)
5716 ("itstool" ,itstool)
5717 ("pkg-config" ,pkg-config)))
5718 (propagated-inputs
5719 `(("dconf" ,dconf)))
5720 (inputs
5721 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5722 ("libxslt" ,libxslt)
5723 ("sqlite" ,sqlite)
5724 ("webkitgtk" ,webkitgtk)
5725 ("yelp-xsl" ,yelp-xsl)))
5726 (home-page "https://wiki.gnome.org/Apps/Yelp")
5727 (synopsis "GNOME help browser")
5728 (description
5729 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5730 man, info, and HTML documents. It can locate documents according to the
5731 freedesktop.org help system specification.")
5732 (license license:gpl2+)))
5733
5734 (define-public yelp-tools
5735 (package
5736 (name "yelp-tools")
5737 (version "3.32.2")
5738 (source (origin
5739 (method url-fetch)
5740 (uri (string-append "mirror://gnome/sources/" name "/"
5741 (version-major+minor version) "/"
5742 name "-" version ".tar.xz"))
5743 (sha256
5744 (base32
5745 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
5746 (build-system gnu-build-system)
5747 (native-inputs
5748 `(("pkg-config" ,pkg-config)))
5749 (propagated-inputs
5750 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5751 `(("itstool" ,itstool)
5752 ("xmllint" ,libxml2)
5753 ("xsltproc" ,libxslt)))
5754 (inputs
5755 `(("yelp-xsl" ,yelp-xsl)))
5756 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5757 (synopsis "Yelp documentation tools")
5758 (description
5759 "Yelp-tools is a collection of scripts and build utilities to help create,
5760 manage, and publish documentation for Yelp and the web. Most of the heavy
5761 lifting is done by packages like yelp-xsl and itstool. This package just
5762 wraps things up in a developer-friendly way.")
5763 (license license:gpl2+)))
5764
5765 (define-public libgee
5766 (package
5767 (name "libgee")
5768 (version "0.20.3")
5769 (source (origin
5770 (method url-fetch)
5771 (uri (string-append "mirror://gnome/sources/libgee/"
5772 (version-major+minor version) "/"
5773 "libgee-" version ".tar.xz"))
5774 (sha256
5775 (base32
5776 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
5777 (build-system gnu-build-system)
5778 (arguments
5779 `(#:phases
5780 (modify-phases %standard-phases
5781 (add-after 'unpack 'fix-introspection-install-dir
5782 (lambda* (#:key outputs #:allow-other-keys)
5783 (let ((out (assoc-ref outputs "out")))
5784 (substitute* "gee/Makefile.in"
5785 (("@INTROSPECTION_GIRDIR@")
5786 (string-append out "/share/gir-1.0/"))
5787 (("@INTROSPECTION_TYPELIBDIR@")
5788 (string-append out "/lib/girepository-1.0/")))))))))
5789 (native-inputs
5790 `(("glib" ,glib "bin")
5791 ("pkg-config" ,pkg-config)))
5792 (inputs
5793 `(("glib" ,glib)
5794 ("gobject-introspection" ,gobject-introspection)))
5795 (home-page "https://wiki.gnome.org/Projects/Libgee")
5796 (synopsis "GObject collection library")
5797 (description
5798 "Libgee is a utility library providing GObject-based interfaces and
5799 classes for commonly used data structures.")
5800 (license license:lgpl2.1+)))
5801
5802 (define-public gexiv2
5803 (package
5804 (name "gexiv2")
5805 (version "0.12.1")
5806 (source (origin
5807 (method url-fetch)
5808 (uri (string-append "mirror://gnome/sources/" name "/"
5809 (version-major+minor version) "/"
5810 name "-" version ".tar.xz"))
5811 (sha256
5812 (base32
5813 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
5814 (build-system meson-build-system)
5815 (native-inputs
5816 `(("gcr" ,gcr)
5817 ("glib" ,glib "bin")
5818 ("pkg-config" ,pkg-config)
5819 ("vala" ,vala)))
5820 (propagated-inputs
5821 ;; Listed in "Requires" section of gexiv2.pc
5822 `(("exiv2" ,exiv2)))
5823 (inputs
5824 `(("glib" ,glib)
5825 ("gobject-introspection" ,gobject-introspection)))
5826 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5827 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5828 (description
5829 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5830 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5831 metadata in photo and video files of various formats.")
5832 (license license:gpl2+)))
5833
5834 (define-public shotwell
5835 (package
5836 (name "shotwell")
5837 (version "0.30.9")
5838 (source (origin
5839 (method url-fetch)
5840 (uri (string-append "mirror://gnome/sources/shotwell/"
5841 (version-major+minor version) "/"
5842 "shotwell-" version ".tar.xz"))
5843 (sha256
5844 (base32
5845 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
5846 (build-system meson-build-system)
5847 (arguments
5848 '(#:glib-or-gtk? #t
5849 #:phases
5850 (modify-phases %standard-phases
5851 (add-after 'unpack 'skip-gtk-update-icon-cache
5852 (lambda _
5853 (substitute* "build-aux/meson/postinstall.py"
5854 (("gtk-update-icon-cache") (which "true"))
5855 (("update-desktop-database") (which "true")))
5856 #t)))))
5857 (propagated-inputs
5858 `(("dconf" ,dconf)))
5859 (native-inputs
5860 `(("gettext" ,gettext-minimal)
5861 ("glib:bin" ,glib "bin")
5862 ("itstool" ,itstool)
5863 ("pkg-config" ,pkg-config)
5864 ("vala" ,vala)))
5865 (inputs
5866 `(("gcr" ,gcr)
5867 ("gexiv2" ,gexiv2)
5868 ("gst-plugins-base" ,gst-plugins-base)
5869 ("gstreamer" ,gstreamer)
5870 ("json-glib" ,json-glib)
5871 ("libgdata" ,libgdata)
5872 ("libgee" ,libgee)
5873 ("libgphoto2" ,libgphoto2)
5874 ("libgudev" ,libgudev)
5875 ("libraw" ,libraw)
5876 ("libsoup" ,libsoup)
5877 ("libxml2" ,libxml2)
5878 ("sqlite" ,sqlite)
5879 ("webkitgtk" ,webkitgtk)))
5880 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5881 (synopsis "Photo manager for GNOME 3")
5882 (description
5883 "Shotwell is a digital photo manager designed for the GNOME desktop
5884 environment. It allows you to import photos from disk or camera, organize
5885 them by keywords and events, view them in full-window or fullscreen mode, and
5886 share them with others via social networking and more.")
5887 (license license:lgpl2.1+)))
5888
5889 (define-public file-roller
5890 (package
5891 (name "file-roller")
5892 (version "3.32.3")
5893 (source (origin
5894 (method url-fetch)
5895 (uri (string-append "mirror://gnome/sources/file-roller/"
5896 (version-major+minor version) "/"
5897 "file-roller-" version ".tar.xz"))
5898 (sha256
5899 (base32
5900 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5901 (build-system meson-build-system)
5902 (native-inputs
5903 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5904 ("intltool" ,intltool)
5905 ("itstool" ,itstool)
5906 ("pkg-config" ,pkg-config)
5907 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5908 ("glib:bin" ,glib "bin")))
5909 ;; TODO: Add libnautilus.
5910 (inputs
5911 `(("gtk+" ,gtk+)
5912 ("gdk-pixbuf" ,gdk-pixbuf)
5913 ("json-glib" ,json-glib)
5914 ("libarchive" ,libarchive)
5915 ("libnotify" ,libnotify)
5916 ("nettle" ,nettle)
5917 ("libxml2" ,libxml2)))
5918 (synopsis "Graphical archive manager for GNOME")
5919 (description "File Roller is an archive manager for the GNOME desktop
5920 environment that allows users to view, unpack, and create compressed archives
5921 such as gzip tarballs.")
5922 (home-page "http://fileroller.sourceforge.net/")
5923 (license license:gpl2+)))
5924
5925 (define-public gnome-session
5926 (package
5927 (name "gnome-session")
5928 (version "3.34.2")
5929 (source (origin
5930 (method url-fetch)
5931 (uri (string-append "mirror://gnome/sources/" name "/"
5932 (version-major+minor version) "/"
5933 name "-" version ".tar.xz"))
5934 (sha256
5935 (base32
5936 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
5937 (arguments
5938 '(#:glib-or-gtk? #t
5939 #:phases
5940 (modify-phases %standard-phases
5941 (add-before 'configure 'pre-configure
5942 (lambda* (#:key outputs #:allow-other-keys)
5943 ;; Use elogind instead of systemd.
5944 (substitute* "meson.build"
5945 (("libsystemd-login") "libelogind")
5946 (("and libsystemd_daemon_dep.found.*") ","))
5947 (substitute* "gnome-session/gsm-systemd.c"
5948 (("#include <systemd/sd-login.h>")
5949 "#include <elogind/sd-login.h>"))
5950 ;; Remove uses of the systemd daemon.
5951 (substitute* "gnome-session/gsm-autostart-app.c"
5952 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5953 #t))
5954 (add-after 'install 'wrap-gnome-session
5955 (lambda* (#:key inputs outputs #:allow-other-keys)
5956 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5957 (let ((glib (assoc-ref inputs "glib:bin"))
5958 (out (assoc-ref outputs "out")))
5959 (wrap-program (string-append out "/bin/gnome-session")
5960 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5961 #t))))
5962
5963 #:configure-flags
5964 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5965 "-Dman=false" ; FIXME: disabled because of docbook validation error
5966 "-Dsystemd_journal=false")))
5967 (build-system meson-build-system)
5968 (native-inputs
5969 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5970 ("pkg-config" ,pkg-config)
5971 ("intltool" ,intltool)
5972 ("xsltproc" ,libxslt)
5973 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5974 ("docbook-xsl" ,docbook-xsl)
5975 ("docbook-xml" ,docbook-xml)
5976 ("xmlto" ,xmlto)))
5977 (inputs
5978 `(("elogind" ,elogind)
5979 ("gnome-desktop" ,gnome-desktop)
5980 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5981 ("gtk+" ,gtk+)
5982 ("json-glib" ,json-glib)
5983 ("libsm" ,libsm)
5984 ("libxcomposite" ,libxcomposite)
5985 ("libxtst" ,libxtst)
5986 ("mesa" ,mesa)
5987 ("upower" ,upower)
5988 ("xtrans" ,xtrans)))
5989 (synopsis "Session manager for GNOME")
5990 (description
5991 "This package contains the GNOME session manager, as well as a
5992 configuration program to choose applications starting on login.")
5993 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5994 (license license:gpl2+)))
5995
5996 (define-public gjs
5997 (package
5998 (name "gjs")
5999 (version "1.58.3")
6000 (source (origin
6001 (method url-fetch)
6002 (uri (string-append "mirror://gnome/sources/" name "/"
6003 (version-major+minor version) "/"
6004 name "-" version ".tar.xz"))
6005 (sha256
6006 (base32
6007 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
6008 (build-system gnu-build-system)
6009 (arguments
6010 '(#:phases
6011 (modify-phases %standard-phases
6012 (add-before
6013 'check 'pre-check
6014 (lambda _
6015 ;; The test suite requires a running X server.
6016 (system "Xvfb :1 &")
6017 (setenv "DISPLAY" ":1")
6018
6019 ;; For the missing /etc/machine-id.
6020 (setenv "DBUS_FATAL_WARNINGS" "0")
6021
6022 ;; Our mozjs-38 package does not compile the required Intl API
6023 ;; support for these failing tests.
6024 (substitute* "installed-tests/js/testLocale.js"
6025 ((".*toBeDefined.*") "")
6026 ((".*expect\\(datestr\\).*") ""))
6027 (substitute* "installed-tests/scripts/testCommandLine.sh"
6028 (("Valentín") "")
6029 (("☭") ""))
6030 #t)))))
6031 (native-inputs
6032 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
6033 ("pkg-config" ,pkg-config)
6034 ("xmllint" ,libxml2)
6035 ;; For testing
6036 ("dbus-launch" ,dbus)
6037 ("dconf" ,dconf) ; required to properly store settings
6038 ("uuidgen" ,util-linux)
6039 ("xvfb" ,xorg-server-for-tests)))
6040 (propagated-inputs
6041 ;; These are all in the Requires.private field of gjs-1.0.pc.
6042 `(("cairo" ,cairo)
6043 ("gobject-introspection" ,gobject-introspection)
6044 ("mozjs" ,mozjs-60)))
6045 (inputs
6046 `(("gtk+" ,gtk+)
6047 ("readline" ,readline)))
6048 (synopsis "Javascript bindings for GNOME")
6049 (home-page "https://live.gnome.org/Gjs")
6050 (description
6051 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6052 javascript engine and the GObject introspection framework.")
6053 (license license:gpl2+)))
6054
6055 (define-public gedit
6056 (package
6057 (name "gedit")
6058 (version "3.34.1")
6059 (source (origin
6060 (method url-fetch)
6061 (uri (string-append "mirror://gnome/sources/" name "/"
6062 (version-major+minor version) "/"
6063 name "-" version ".tar.xz"))
6064 (sha256
6065 (base32
6066 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
6067 (build-system meson-build-system)
6068 (arguments
6069 `(#:glib-or-gtk? #t
6070 #:configure-flags
6071 ;; Otherwise, the RUNPATH will lack the final path component.
6072 (list (string-append "-Dc_link_args=-Wl,-rpath="
6073 (assoc-ref %outputs "out") "/lib/gedit"))
6074
6075 ;; XXX: Generated .h files are sometimes used before being built.
6076 #:parallel-build? #f
6077
6078 #:phases
6079 (modify-phases %standard-phases
6080 (add-after 'unpack 'skip-gtk-update-icon-cache
6081 ;; Don't create 'icon-theme.cache'.
6082 (lambda _
6083 (substitute* "build-aux/meson/post_install.py"
6084 (("gtk-update-icon-cache") (which "true")))
6085 #t))
6086 (add-after 'unpack 'patch-libgd-fetch
6087 (lambda* (#:key inputs #:allow-other-keys)
6088 (let ((libgd (assoc-ref inputs "libgd")))
6089 ;; Calling git is unnecessary because libgd is fetched as a
6090 ;; native input to this package.
6091 (substitute* "meson.build"
6092 ((".*git.*") ""))
6093 (copy-recursively libgd "subprojects/libgd")
6094 #t)))
6095 (add-after 'install 'wrap-gedit
6096 (lambda* (#:key inputs outputs #:allow-other-keys)
6097 (let ((out (assoc-ref outputs "out"))
6098 (gtksourceview (assoc-ref inputs "gtksourceview"))
6099 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6100 (python-path (getenv "PYTHONPATH")))
6101 (wrap-program (string-append out "/bin/gedit")
6102 ;; For plugins.
6103 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6104 `("PYTHONPATH" ":" prefix (,python-path))
6105 ;; For language-specs.
6106 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6107 "/share")))))
6108 #t)))))
6109 (propagated-inputs
6110 `(("dconf" ,dconf)))
6111 (native-inputs
6112 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6113 ("intltool" ,intltool)
6114 ("itstool" ,itstool)
6115 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6116 ("gobject-introspection" ,gobject-introspection)
6117 ("libgd"
6118 ,(origin
6119 (method git-fetch)
6120 (uri (git-reference
6121 (url "https://gitlab.gnome.org/GNOME/libgd")
6122 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6123 (file-name (git-file-name "libgd" version))
6124 (sha256
6125 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6126 ("pkg-config" ,pkg-config)))
6127 (inputs
6128 `(("glib" ,glib)
6129 ("gspell" ,gspell)
6130 ("gtk+" ,gtk+)
6131 ("gtksourceview" ,gtksourceview)
6132 ("libpeas" ,libpeas)
6133 ("libxml2" ,libxml2)
6134 ("iso-codes" ,iso-codes)
6135 ("python-pygobject" ,python-pygobject)
6136 ("python" ,python)
6137 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6138 ("libx11" ,libx11)
6139 ("vala" ,vala)
6140 ("adwaita-icon-theme" ,adwaita-icon-theme)
6141 ("libsoup" ,libsoup)
6142 ("gnome-desktop" ,gnome-desktop)))
6143 (home-page "https://wiki.gnome.org/Apps/Gedit")
6144 (synopsis "GNOME text editor")
6145 (description "While aiming at simplicity and ease of use, gedit is a
6146 powerful general purpose text editor.")
6147 (license license:gpl2+)))
6148
6149 (define-public zenity
6150 (package
6151 (name "zenity")
6152 (version "3.32.0")
6153 (source (origin
6154 (method url-fetch)
6155 (uri (string-append "mirror://gnome/sources/zenity/"
6156 (version-major+minor version) "/"
6157 "zenity-" version ".tar.xz"))
6158 (sha256
6159 (base32
6160 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6161 (build-system gnu-build-system)
6162 (native-inputs
6163 `(("gettext" ,gettext-minimal)
6164 ("itstool" ,itstool)
6165 ("pkg-config" ,pkg-config)))
6166 (inputs
6167 `(("libnotify" ,libnotify)
6168 ("webkitgtk" ,webkitgtk)))
6169 (synopsis "Display graphical dialog boxes from shell scripts")
6170 (home-page "https://www.gnome.org")
6171 (description
6172 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6173 to display dialog boxes from the commandline and shell scripts.")
6174 (license license:lgpl2.0+)))
6175
6176 (define-public mutter
6177 (package
6178 (name "mutter")
6179 (version "3.34.2")
6180 (source (origin
6181 (method url-fetch)
6182 (uri (string-append "mirror://gnome/sources/" name "/"
6183 (version-major+minor version) "/"
6184 name "-" version ".tar.xz"))
6185 (sha256
6186 (base32
6187 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
6188 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6189 ;; versions of cogl and clutter. As a result, many of the inputs,
6190 ;; propagated-inputs, and configure flags used in cogl and clutter are
6191 ;; needed here as well.
6192 (build-system meson-build-system)
6193 (arguments
6194 '(;; XXX: All mutter tests fail with the following error:
6195 ;; Settings schema 'org.gnome.mutter' is not installed
6196 #:tests? #f
6197 #:glib-or-gtk? #t
6198 #:configure-flags
6199 ;; TODO: Enable profiler when Sysprof is packaged.
6200 (list "-Dprofiler=false"
6201 ;; Otherwise, the RUNPATH will lack the final path component.
6202 (string-append "-Dc_link_args=-Wl,-rpath="
6203 (assoc-ref %outputs "out") "/lib:"
6204 (assoc-ref %outputs "out") "/lib/mutter-5")
6205
6206 ;; The following flags are needed for the bundled clutter
6207 (string-append "-Dxwayland_path="
6208 (assoc-ref %build-inputs "xorg-server-xwayland")
6209 "/bin/Xwayland")
6210
6211 ;; the remaining flags are needed for the bundled cogl
6212 (string-append "-Dopengl_libname="
6213 (assoc-ref %build-inputs "mesa")
6214 "/lib/libGL.so"))
6215 #:phases (modify-phases %standard-phases
6216 (add-after 'unpack 'fix-build-with-mesa-20
6217 (lambda _
6218 ;; Mimic upstream commit a444a4c5f58ea516ad for
6219 ;; compatibility with Mesa 20. Remove for 3.36.
6220 (substitute* '("src/backends/meta-egl-ext.h"
6221 "src/backends/meta-egl.c"
6222 "src/backends/meta-egl.h")
6223 (("#include <EGL/eglext\\.h>" all)
6224 (string-append all "\n#include <EGL/eglmesaext.h>")))
6225 (substitute* "cogl/cogl/meson.build"
6226 (("#include <EGL/eglext\\.h>" all)
6227 (string-append all "\\n#include <EGL/eglmesaext.h>")))
6228 #t)))))
6229 (native-inputs
6230 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6231 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6232 ("gobject-introspection" ,gobject-introspection)
6233 ("intltool" ,intltool)
6234 ("pkg-config" ,pkg-config)
6235 ("xorg-server" ,xorg-server-for-tests)
6236 ;; For git build
6237 ("autoconf" ,autoconf)
6238 ("automake" ,automake)
6239 ("libtool" ,libtool)))
6240 (propagated-inputs
6241 `(;; libmutter.pc refers to these:
6242 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6243 ("gtk+" ,gtk+)
6244 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6245 ("atk" ,atk)
6246 ("cairo" ,cairo)
6247 ("gdk-pixbuf" ,gdk-pixbuf)
6248 ("glib" ,glib)
6249 ("json-glib" ,json-glib)
6250 ("libinput" ,libinput)
6251 ("libx11" ,libx11)
6252 ("libxcomposite" ,libxcomposite)
6253 ("libxdamage" ,libxdamage)
6254 ("libxext" ,libxext)
6255 ("libxfixes" ,libxfixes)
6256 ("libxkbcommon" ,libxkbcommon)
6257 ("libxrandr" ,libxrandr)
6258 ("mesa" ,mesa)
6259 ("pango" ,pango)
6260 ("udev" ,eudev)
6261 ("xinput" ,xinput)))
6262 (inputs
6263 `(("elogind" ,elogind)
6264 ("gnome-desktop" ,gnome-desktop)
6265 ("gnome-settings-daemon" ,gnome-settings-daemon)
6266 ("libcanberra-gtk" ,libcanberra)
6267 ("libgudev" ,libgudev)
6268 ("libice" ,libice)
6269 ("libsm" ,libsm)
6270 ("libwacom" ,libwacom)
6271 ("libxkbfile" ,libxkbfile)
6272 ("libxrandr" ,libxrandr)
6273 ("libxtst" ,libxtst)
6274 ("pipewire" ,pipewire)
6275 ("startup-notification" ,startup-notification)
6276 ("upower-glib" ,upower)
6277 ("xkeyboard-config" ,xkeyboard-config)
6278 ("xorg-server-xwayland" ,xorg-server-xwayland)
6279 ("zenity" ,zenity)))
6280 (synopsis "Window and compositing manager")
6281 (home-page "https://www.gnome.org")
6282 (description
6283 "Mutter is a window and compositing manager that displays and manages your
6284 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6285 Clutter toolkit with solid window-management logic inherited from the Metacity
6286 window manager.")
6287 (license license:gpl2+)))
6288
6289 (define-public gnome-online-accounts
6290 (package
6291 (name "gnome-online-accounts")
6292 (version "3.36.0")
6293 (source (origin
6294 (method url-fetch)
6295 (uri (string-append "mirror://gnome/sources/" name "/"
6296 (version-major+minor version) "/"
6297 name "-" version ".tar.xz"))
6298 (sha256
6299 (base32
6300 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
6301 (outputs '("out" "lib"))
6302 (build-system glib-or-gtk-build-system)
6303 (arguments
6304 `(#:configure-flags
6305 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6306 #:phases
6307 (modify-phases %standard-phases
6308 (add-before 'configure 'patch-libgoa-output
6309 (lambda* (#:key outputs #:allow-other-keys)
6310 (let ((lib (assoc-ref outputs "lib")))
6311 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6312 (("@prefix@") lib)
6313 (("@exec_prefix@") lib)
6314 (("@libdir@") (string-append lib "/lib"))
6315 (("@includedir@") (string-append lib "/include"))
6316 (("@datadir@") (string-append lib "/share")))
6317 ;; Make sure gobject-introspection knows about the output
6318 ;; too (see <https://bugs.gnu.org/36535>).
6319 (setenv "outputs" "out lib")
6320 #t))))))
6321 (native-inputs
6322 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6323 ("gobject-introspection" ,gobject-introspection)
6324 ("intltool" ,intltool)
6325 ("pkg-config" ,pkg-config)
6326 ("vala" ,vala)
6327 ("xsltproc" ,libxslt)))
6328 (propagated-inputs
6329 `(("glib" ,glib) ; required by goa-1.0.pc
6330 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6331 (inputs
6332 `(("docbook-xsl" ,docbook-xsl)
6333 ("json-glib" ,json-glib)
6334 ("libsecret" ,libsecret)
6335 ("rest" ,rest)
6336 ("webkitgtk" ,webkitgtk)))
6337 (synopsis "Single sign-on framework for GNOME")
6338 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6339 (description
6340 "GNOME Online Accounts provides interfaces so that applications and
6341 libraries in GNOME can access the user's online accounts. It has providers for
6342 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6343 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6344 (license license:lgpl2.0+)))
6345
6346 (define-public evolution-data-server
6347 (package
6348 (name "evolution-data-server")
6349 (version "3.34.2")
6350 (source (origin
6351 (method url-fetch)
6352 (uri (string-append "mirror://gnome/sources/" name "/"
6353 (version-major+minor version) "/"
6354 name "-" version ".tar.xz"))
6355 (patches (search-patches "evolution-data-server-locales.patch"
6356 "evolution-data-server-libical-compat.patch"))
6357 (sha256
6358 (base32
6359 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
6360 (build-system cmake-build-system)
6361 (arguments
6362 '(#:configure-flags
6363 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6364 (runpaths (map (lambda (s)
6365 (string-append lib "/evolution-data-server/" s))
6366 '("addressbook-backends" "calendar-backends"
6367 "camel-providers" "credential-modules"
6368 "registry-modules"))))
6369 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6370 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6371 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6372 "-DENABLE_VALA_BINDINGS=ON"
6373 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6374 (string-append lib "/evolution-data-server;")
6375 (string-join runpaths ";"))
6376 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6377 #:phases
6378 (modify-phases %standard-phases
6379 (add-after 'unpack 'disable-failing-tests
6380 (lambda _
6381 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6382 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6383 (delete-file-recursively "tests/book-migration")
6384 (substitute* "tests/CMakeLists.txt"
6385 (("add_subdirectory\\(book-migration\\)") ""))
6386 #t))
6387 (add-after 'unpack 'patch-paths
6388 (lambda _
6389 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6390 "tests/libedata-book/data-test-utils.c"
6391 "tests/libedata-book/test-book-cache-utils.c"
6392 "tests/libedata-cal/test-cal-cache-utils.c")
6393 (("/bin/rm") (which "rm")))
6394 #t))
6395 (add-before 'configure 'dont-override-rpath
6396 (lambda _
6397 (substitute* "CMakeLists.txt"
6398 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6399 ;; Remove it so the configure flag is respected.
6400 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6401 #t)))))
6402 (native-inputs
6403 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6404 ("gobject-introspection" ,gobject-introspection)
6405 ("gperf" ,gperf)
6406 ("intltool" ,intltool)
6407 ("pkg-config" ,pkg-config)
6408 ("vala" ,vala)
6409 ("python" ,python-wrapper)))
6410 (propagated-inputs
6411 ;; These are all in the Requires field of .pc files.
6412 `(("gtk+" ,gtk+)
6413 ("libical" ,libical)
6414 ("libsecret" ,libsecret)
6415 ("libsoup" ,libsoup)
6416 ("nss" ,nss)
6417 ("sqlite" ,sqlite)))
6418 (inputs
6419 `(("bdb" ,bdb)
6420 ("gcr" ,gcr)
6421 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6422 ("json-glib" ,json-glib)
6423 ("libcanberra" ,libcanberra)
6424 ("libgweather" ,libgweather)
6425 ("mit-krb5" ,mit-krb5)
6426 ("openldap" ,openldap)
6427 ("webkitgtk" ,webkitgtk)))
6428 (synopsis "Store address books and calendars")
6429 (home-page "https://wiki.gnome.org/Apps/Evolution")
6430 (description
6431 "This package provides a unified backend for programs that work with
6432 contacts, tasks, and calendar information. It was originally developed for
6433 Evolution (hence the name), but is now used by other packages as well.")
6434 (license license:lgpl2.0)))
6435
6436 (define-public caribou
6437 (package
6438 (name "caribou")
6439 (version "0.4.21")
6440 (source (origin
6441 (method url-fetch)
6442 (uri (string-append "mirror://gnome/sources/" name "/"
6443 (version-major+minor version) "/"
6444 name "-" version ".tar.xz"))
6445 (sha256
6446 (base32
6447 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6448 (build-system glib-or-gtk-build-system)
6449 (arguments
6450 '(#:phases
6451 (modify-phases %standard-phases
6452 (add-before
6453 'build 'pre-build
6454 (lambda* (#:key outputs #:allow-other-keys)
6455 (let ((out (assoc-ref outputs "out")))
6456 ;; Use absolute shared library path in Caribou-1.0.typelib.
6457 (substitute* "libcaribou/Makefile"
6458 (("--shared-library=libcaribou.so")
6459 (string-append "--shared-library="
6460 out "/lib/libcaribou.so")))
6461 #t)))
6462 (add-after 'install 'wrap-programs
6463 (lambda* (#:key outputs #:allow-other-keys)
6464 (let* ((out (assoc-ref outputs "out"))
6465 (python-path (getenv "PYTHONPATH"))
6466 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6467 (for-each
6468 (lambda (prog)
6469 (wrap-program prog
6470 `("PYTHONPATH" ":" prefix (,python-path))
6471 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6472 (list (string-append out "/bin/caribou-preferences")
6473 (string-append out "/libexec/antler-keyboard"))))
6474 #t)))))
6475 (native-inputs
6476 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6477 ("gobject-introspection" ,gobject-introspection)
6478 ("intltool" ,intltool)
6479 ("pkg-config" ,pkg-config)
6480 ("python" ,python)
6481 ("vala" ,vala)
6482 ("xsltproc" ,libxslt)))
6483 (propagated-inputs
6484 ;; caribou-1.0.pc refers to all these.
6485 `(("libgee" ,libgee)
6486 ("libxklavier" ,libxklavier)
6487 ("libxtst" ,libxtst)
6488 ("gtk+" ,gtk+)))
6489 (inputs
6490 `(("clutter" ,clutter)
6491 ("dconf" ,dconf)
6492 ("gtk+-2" ,gtk+-2)
6493 ("python-pygobject" ,python-pygobject)))
6494 (synopsis "Text entry and UI navigation application")
6495 (home-page "https://wiki.gnome.org/Projects/Caribou")
6496 (description
6497 "Caribou is an input assistive technology intended for switch and pointer
6498 users.")
6499 (license license:lgpl2.1)))
6500
6501 (define-public network-manager
6502 (package
6503 (name "network-manager")
6504 (version "1.24.0")
6505 (source (origin
6506 (method url-fetch)
6507 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6508 (version-major+minor version) "/"
6509 "NetworkManager-" version ".tar.xz"))
6510 (patches (search-patches "network-manager-plugin-path.patch"))
6511 (sha256
6512 (base32
6513 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
6514 (modules '((guix build utils)))
6515 (snippet
6516 '(begin
6517 (substitute* "src/devices/wwan/nm-modem-manager.c"
6518 (("systemd") "elogind"))
6519 #t))))
6520 (build-system meson-build-system)
6521 (outputs '("out"
6522 "doc")) ; 8 MiB of gtk-doc HTML
6523 (arguments
6524 `(#:configure-flags
6525 (let ((out (assoc-ref %outputs "out"))
6526 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6527 "/sbin/dhclient")))
6528 (list
6529 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6530 ;; component.
6531 (string-append "-Dc_link_args=-Wl,-rpath="
6532 out "/lib:"
6533 out "/lib/NetworkManager/" ,version)
6534 "-Dsystemd_journal=false"
6535 "-Dsession_tracking=elogind"
6536 "-Dsuspend_resume=elogind"
6537 "-Dsystemdsystemunitdir=no"
6538 "-Dsession_tracking_consolekit=false"
6539 "-Ddhcpcd=no"
6540 "-Ddhcpcanon=no"
6541 "-Dcrypto=gnutls"
6542 "-Diwd=true"
6543 "-Dlibaudit=yes"
6544 "-Dqt=false"
6545 "-Ddocs=true"
6546 "--sysconfdir=/etc"
6547 "--localstatedir=/var"
6548 (string-append "-Dudev_dir="
6549 out "/lib/udev")
6550 (string-append "-Ddbus_conf_dir="
6551 out "/etc/dbus-1/system.d")
6552
6553 (string-append "-Ddhclient=" dhclient)))
6554 #:phases
6555 (modify-phases %standard-phases
6556 (add-before 'configure 'pre-configure
6557 (lambda _
6558 ;; These tests try to test aspects of network-manager's
6559 ;; functionality within restricted containers, but they don't
6560 ;; cope with being already in the Guix build jail as that jail
6561 ;; lacks some features that they would like to proxy over (like
6562 ;; a /sys mount).
6563 (substitute* "src/platform/tests/meson.build"
6564 ((".*test-address-linux.*") "")
6565 ((".*test-cleanup-linux.*") "")
6566 ((".*test-link-linux.*") "")
6567 ((".*test-route-linux.*") ""))
6568 (substitute* "src/devices/tests/meson.build"
6569 ((".*test-acd.*") "")
6570 ((".*test-lldp.*") ""))
6571 #t))
6572 (add-after 'unpack 'patch-docbook-xml
6573 (lambda* (#:key inputs #:allow-other-keys)
6574 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6575 "/xml/dtd/docbook")))
6576 (substitute* (find-files "." ".*\\.(xsl|xml)")
6577 (("http://.*/docbookx\\.dtd")
6578 (string-append xmldoc "/docbookx.dtd")))
6579 #t)))
6580 (add-before 'check 'pre-check
6581 (lambda _
6582 ;; For the missing /etc/machine-id.
6583 (setenv "DBUS_FATAL_WARNINGS" "0")
6584 #t))
6585 (add-before 'install 'no-polkit-magic
6586 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
6587 (lambda _
6588 (setenv "PKEXEC_UID" "something")
6589 #t))
6590 (add-after 'install 'move-doc
6591 (lambda* (#:key outputs #:allow-other-keys)
6592 (let ((out (assoc-ref outputs "out"))
6593 (doc (assoc-ref outputs "doc")))
6594 (mkdir-p (string-append doc "/share"))
6595 (for-each (lambda (directory)
6596 (copy-recursively (string-append out directory)
6597 (string-append doc directory))
6598 (delete-file-recursively
6599 (string-append out directory)))
6600 '("/share/doc" "/share/gtk-doc"))
6601 #t))))))
6602 (propagated-inputs
6603 `(("glib" ,glib)))
6604 (native-inputs
6605 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6606 ("gtk-doc" ,gtk-doc)
6607 ("gobject-introspection" ,gobject-introspection)
6608 ("docbook-xml" ,docbook-xml)
6609 ("docbook-xsl" ,docbook-xsl)
6610 ("intltool" ,intltool)
6611 ("libxslt" ,libxslt)
6612 ("libxml2" ,libxml2)
6613 ("pkg-config" ,pkg-config)
6614 ("vala" ,vala)
6615 ;; For testing.
6616 ("python" ,python-wrapper)
6617 ("python-dbus" ,python-dbus)
6618 ("python-pygobject" ,python-pygobject)))
6619 (inputs
6620 `(("curl" ,curl)
6621 ("cyrus-sasl" ,cyrus-sasl)
6622 ("dbus-glib" ,dbus-glib)
6623 ("dnsmasq" ,dnsmasq)
6624 ("eudev" ,eudev)
6625 ("gnutls" ,gnutls)
6626 ("iptables" ,iptables)
6627 ("isc-dhcp" ,isc-dhcp)
6628 ("iwd" ,iwd) ; wpa_supplicant alternative
6629 ("jansson" ,jansson)
6630 ("libaudit" ,audit)
6631 ("libgcrypt" ,libgcrypt)
6632 ("libgudev" ,libgudev)
6633 ("libndp" ,libndp)
6634 ("libnl" ,libnl)
6635 ("libsoup" ,libsoup)
6636 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
6637 ("modem-manager" ,modem-manager)
6638 ("newt" ,newt) ;for the 'nmtui' console interface
6639 ("openresolv" ,openresolv) ; alternative resolv.conf manager
6640 ("polkit" ,polkit)
6641 ("ppp" ,ppp)
6642 ("readline" ,readline)
6643 ("util-linux" ,util-linux)
6644 ("elogind" ,elogind)))
6645 (synopsis "Network connection manager")
6646 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6647 (description
6648 "NetworkManager is a system network service that manages your network
6649 devices and connections, attempting to keep active network connectivity when
6650 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6651 devices, and provides VPN integration with a variety of different VPN
6652 services.")
6653 ;; “This NetworkManager project consists of the daemon, client tools, and
6654 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6655 ;; GPL-2.0+.”
6656 (license (list license:gpl2+
6657 license:lgpl2.1+))
6658 (properties '((upstream-name . "NetworkManager")))))
6659
6660 (define-public network-manager-openvpn
6661 (package
6662 (name "network-manager-openvpn")
6663 (version "1.8.12")
6664 (source (origin
6665 (method url-fetch)
6666 (uri (string-append
6667 "mirror://gnome/sources/NetworkManager-openvpn/"
6668 (version-major+minor version)
6669 "/NetworkManager-openvpn-" version ".tar.xz"))
6670 (sha256
6671 (base32
6672 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
6673 (build-system gnu-build-system)
6674 (arguments
6675 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6676 #:phases
6677 (modify-phases %standard-phases
6678 (add-after 'configure 'patch-path
6679 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6680 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6681 "/sbin/openvpn"))
6682 (modprobe (string-append (assoc-ref inputs "kmod")
6683 "/bin/modprobe"))
6684 (pretty-ovpn (string-append "\"" ovpn "\"")))
6685 (for-each
6686 (lambda (file)
6687 (substitute* file
6688 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6689 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6690 (("\"/sbin/openvpn\"") pretty-ovpn)
6691 (("/sbin/modprobe") modprobe)))
6692 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6693 #t)))))
6694 (native-inputs
6695 `(("pkg-config" ,pkg-config)
6696 ("intltool" ,intltool)))
6697 (inputs
6698 `(("gtk+" ,gtk+)
6699 ("kmod" ,kmod)
6700 ("openvpn" ,openvpn)
6701 ("network-manager" ,network-manager)
6702 ("libnma" ,libnma)
6703 ("libsecret" ,libsecret)))
6704 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6705 (synopsis "OpenVPN plug-in for NetworkManager")
6706 (description
6707 "This extension of NetworkManager allows it to take care of connections
6708 to virtual private networks (VPNs) via OpenVPN.")
6709 (license license:gpl2+)
6710 (properties `((upstream-name . "NetworkManager-openvpn")))))
6711
6712 (define-public network-manager-vpnc
6713 (package
6714 (name "network-manager-vpnc")
6715 (version "1.2.6")
6716 (source (origin
6717 (method url-fetch)
6718 (uri (string-append
6719 "mirror://gnome/sources/NetworkManager-vpnc/"
6720 (version-major+minor version)
6721 "/NetworkManager-vpnc-" version ".tar.xz"))
6722 (sha256
6723 (base32
6724 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6725 (build-system gnu-build-system)
6726 (arguments
6727 `(#:configure-flags '("--enable-absolute-paths"
6728 "--localstatedir=/var"
6729 ;; libnm-glib has been removed from network-manager
6730 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
6731 "--with-libnm-glib=no")
6732 #:phases
6733 (modify-phases %standard-phases
6734 (add-after 'configure 'patch-path
6735 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6736 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6737 "/sbin/vpnc"))
6738 (modprobe (string-append (assoc-ref inputs "kmod")
6739 "/bin/modprobe"))
6740 (pretty-ovpn (string-append "\"" vpnc "\"")))
6741 (substitute* "src/nm-vpnc-service.c"
6742 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6743 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6744 (("\"/sbin/vpnc\"") pretty-ovpn)
6745 (("/sbin/modprobe") modprobe)))
6746 #t)))))
6747 (native-inputs
6748 `(("pkg-config" ,pkg-config)
6749 ("intltool" ,intltool)))
6750 (inputs
6751 `(("gtk+" ,gtk+)
6752 ("kmod" ,kmod)
6753 ("vpnc" ,vpnc)
6754 ("network-manager" ,network-manager)
6755 ("libnma" ,libnma)
6756 ("libsecret" ,libsecret)))
6757 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6758 (synopsis "VPNC plug-in for NetworkManager")
6759 (description
6760 "Support for configuring virtual private networks based on VPNC.
6761 Compatible with Cisco VPN concentrators configured to use IPsec.")
6762 (license license:gpl2+)
6763 (properties `((upstream-name . "NetworkManager-vpnc")))))
6764
6765 (define-public network-manager-openconnect
6766 (package
6767 (name "network-manager-openconnect")
6768 (version "1.2.6")
6769 (source (origin
6770 (method url-fetch)
6771 (uri (string-append
6772 "mirror://gnome/sources/NetworkManager-openconnect/"
6773 (version-major+minor version)
6774 "/NetworkManager-openconnect-" version ".tar.xz"))
6775 (sha256
6776 (base32
6777 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6778 (build-system gnu-build-system)
6779 (arguments
6780 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6781 #:phases
6782 (modify-phases %standard-phases
6783 (add-after 'configure 'patch-path
6784 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6785 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6786 "/sbin/openconnect"))
6787 (modprobe (string-append (assoc-ref inputs "kmod")
6788 "/bin/modprobe"))
6789 (pretty-ovpn (string-append "\"" openconnect "\"")))
6790 (substitute* "src/nm-openconnect-service.c"
6791 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
6792 (("/sbin/modprobe") modprobe)))
6793 #t)))))
6794 (native-inputs
6795 `(("intltool" ,intltool)
6796 ("libnma" ,libnma)
6797 ("pkg-config" ,pkg-config)))
6798 (inputs
6799 `(("gcr" ,gcr)
6800 ("gtk+" ,gtk+)
6801 ("kmod" ,kmod)
6802 ("libsecret" ,libsecret)
6803 ("libxml2" ,libxml2)
6804 ("lz4" ,lz4)
6805 ("network-manager" ,network-manager)
6806 ("openconnect" ,openconnect)))
6807 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6808 (synopsis "OpenConnect plug-in for NetworkManager")
6809 (description
6810 "This extension of NetworkManager allows it to take care of connections
6811 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6812 Cisco's AnyConnect SSL VPN.")
6813 (license license:gpl2+)
6814 (properties `((upstream-name . "NetworkManager-openconnect")
6815
6816 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6817 ;; file refers to account "nm-openconnect". Specify it here
6818 ;; so that 'network-manager-service-type' creates it.
6819 (user-accounts . ("nm-openconnect"))))))
6820
6821 (define-public mobile-broadband-provider-info
6822 (package
6823 (name "mobile-broadband-provider-info")
6824 (version "20190116")
6825 (source (origin
6826 (method url-fetch)
6827 (uri (string-append
6828 "mirror://gnome/sources/"
6829 "mobile-broadband-provider-info/" version "/"
6830 "mobile-broadband-provider-info-" version ".tar.xz"))
6831 (sha256
6832 (base32
6833 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6834 (build-system gnu-build-system)
6835 (arguments
6836 `(#:tests? #f)) ; no tests
6837 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6838 (synopsis "Database of broadband connection configuration")
6839 (description "Database of broadband connection configuration.")
6840 (license license:public-domain)))
6841
6842 (define-public network-manager-applet
6843 (package
6844 (name "network-manager-applet")
6845 (version "1.16.0")
6846 (source (origin
6847 (method url-fetch)
6848 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6849 (version-major+minor version) "/"
6850 "network-manager-applet-" version ".tar.xz"))
6851 (sha256
6852 (base32
6853 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
6854 (build-system meson-build-system)
6855 (arguments
6856 '(#:glib-or-gtk? #t))
6857 (native-inputs
6858 `(("intltool" ,intltool)
6859 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6860 ("gobject-introspection" ,gobject-introspection)
6861 ("gtk-doc" ,gtk-doc)
6862 ("pkg-config" ,pkg-config)))
6863 (propagated-inputs
6864 ;; libnm-gtk.pc refers to all these.
6865 `(("dbus-glib" ,dbus-glib)
6866 ("gtk+" ,gtk+)
6867 ("network-manager" ,network-manager)
6868 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
6869 ("libnma" ,libnma)))
6870 (inputs
6871 `(("gcr" ,gcr)
6872 ("libgudev" ,libgudev)
6873 ("libnotify" ,libnotify)
6874 ("libsecret" ,libsecret)
6875 ("libselinux" ,libselinux)
6876 ("jansson" ,jansson) ; for team support
6877 ("modem-manager" ,modem-manager)))
6878 (synopsis "Applet for managing network connections")
6879 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6880 (description
6881 "This package contains a systray applet for NetworkManager. It displays
6882 the available networks and allows users to easily switch between them.")
6883 (license license:gpl2+)))
6884
6885 (define-public libxml++
6886 (package
6887 (name "libxml++")
6888 (version "3.0.1")
6889 (source (origin
6890 (method url-fetch)
6891 (uri (string-append "mirror://gnome/sources/" name "/"
6892 (version-major+minor version) "/"
6893 name "-" version ".tar.xz"))
6894 (sha256
6895 (base32
6896 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6897 (build-system gnu-build-system)
6898 ;; libxml++-3.0.pc refers to all these.
6899 (propagated-inputs
6900 `(("libxml2" ,libxml2)
6901 ("glibmm" ,glibmm)))
6902 (native-inputs
6903 `(("perl" ,perl)
6904 ("pkg-config" ,pkg-config)))
6905 (home-page "http://libxmlplusplus.sourceforge.net/")
6906 (synopsis "C++ wrapper for XML parser library libxml2")
6907 (description
6908 "This package provides a C++ wrapper for the XML parser library
6909 libxml2.")
6910 (license license:lgpl2.1+)))
6911
6912 (define-public libxml++-2
6913 (package
6914 (inherit libxml++)
6915 (name "libxml++")
6916 (version "2.40.1")
6917 (source (origin
6918 (method url-fetch)
6919 (uri (string-append "mirror://gnome/sources/" name "/"
6920 (version-major+minor version) "/"
6921 name "-" version ".tar.xz"))
6922 (sha256
6923 (base32
6924 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6925
6926 (define-public gdm
6927 (package
6928 (name "gdm")
6929 (version "3.34.1")
6930 (source (origin
6931 (method url-fetch)
6932 (uri (string-append "mirror://gnome/sources/" name "/"
6933 (version-major+minor version) "/"
6934 name "-" version ".tar.xz"))
6935 (sha256
6936 (base32
6937 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
6938 (patches (search-patches "gdm-default-session.patch"))))
6939 (build-system glib-or-gtk-build-system)
6940 (arguments
6941 '(#:configure-flags
6942 `("--without-plymouth"
6943 "--disable-systemd-journal"
6944
6945 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6946 ;; instead of having to replace it (i.e., stopping the mingetty
6947 ;; service for TTY 1 before starting GDM).
6948 "--with-initial-vt=7"
6949
6950 ;; Use '/etc/environment' for locale settings instead of the
6951 ;; systemd-specific '/etc/locale.conf'.
6952 "--with-lang-file=/etc/environment"
6953
6954 ,(string-append "--with-udevdir="
6955 (assoc-ref %outputs "out") "/lib/udev")
6956
6957 "--localstatedir=/var"
6958 ,(string-append "--with-default-path="
6959 (string-join '("/run/setuid-programs"
6960 "/run/current-system/profile/bin"
6961 "/run/current-system/profile/sbin")
6962 ":"))
6963 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6964 ;; XDG_DATA_DIRS so that it finds its schemas.
6965 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6966 #:phases
6967 (modify-phases %standard-phases
6968 (add-before
6969 'configure 'pre-configure
6970 (lambda* (#:key inputs outputs #:allow-other-keys)
6971 ;; We don't have <systemd/sd-daemon.h>.
6972 (substitute* '("common/gdm-log.c"
6973 "daemon/gdm-server.c"
6974 "daemon/gdm-session-worker.c"
6975 "daemon/gdm-session-worker-job.c")
6976 (("#include <systemd/sd-daemon\\.h>") ""))
6977 ;; Use elogind for sd-login.
6978 (substitute* '("common/gdm-common.c"
6979 "daemon/gdm-local-display-factory.c"
6980 "daemon/gdm-manager.c"
6981 "libgdm/gdm-user-switching.c")
6982 (("#include <systemd/sd-login\\.h>")
6983 "#include <elogind/sd-login.h>"))
6984 ;; Check for elogind.
6985 (substitute* '("configure")
6986 (("libsystemd")
6987 "libelogind"))
6988 ;; Look for system-installed sessions in
6989 ;; /run/current-system/profile/share.
6990 (substitute* '("libgdm/gdm-sessions.c"
6991 "daemon/gdm-session.c"
6992 "daemon/gdm-display.c"
6993 "daemon/gdm-launch-environment.c")
6994 (("DATADIR \"/x")
6995 "\"/run/current-system/profile/share/x")
6996 (("DATADIR \"/wayland")
6997 "\"/run/current-system/profile/share/wayland")
6998 (("DATADIR \"/gnome")
6999 "\"/run/current-system/profile/share/gnome"))
7000 (let ((propagate '("GDM_CUSTOM_CONF"
7001 "GDM_DBUS_DAEMON"
7002 "GDM_X_SERVER"
7003 "GDM_X_SESSION"
7004 ;; XXX: Remove this once GNOME Shell is
7005 ;; a dependency of GDM.
7006 "XDG_DATA_DIRS")))
7007 (substitute* "daemon/gdm-session.c"
7008 (("set_up_session_environment \\(self\\);")
7009 (apply string-append
7010 "set_up_session_environment (self);\n"
7011 (map (lambda (name)
7012 (string-append
7013 "gdm_session_set_environment_variable "
7014 "(self, \"" name "\","
7015 "g_getenv (\"" name "\"));\n"))
7016 propagate)))))
7017 ;; Find the configuration file using an environment variable.
7018 (substitute* '("common/gdm-settings.c")
7019 (("GDM_CUSTOM_CONF")
7020 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7021 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7022 " : GDM_CUSTOM_CONF)")))
7023 ;; Use service-supplied path to X.
7024 (substitute* '("daemon/gdm-server.c")
7025 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7026 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
7027 (substitute* '("daemon/gdm-wayland-session.c"
7028 "daemon/gdm-x-session.c")
7029 (("\"dbus-daemon\"")
7030 "g_getenv (\"GDM_DBUS_DAEMON\")")
7031 (("X_SERVER")
7032 "g_getenv (\"GDM_X_SERVER\")")
7033 (("GDMCONFDIR \"/Xsession\"")
7034 "g_getenv (\"GDM_X_SESSION\")"))
7035 ;; Use an absolute path for GNOME Session.
7036 (substitute* "daemon/gdm-launch-environment.c"
7037 (("\"gnome-session\"")
7038 (string-append "\"" (assoc-ref inputs "gnome-session")
7039 "/bin/gnome-session\"")))
7040 ;; Do not automatically select the placeholder session.
7041 (substitute* "daemon/gdm-session.c"
7042 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7043 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7044 "(g_strcmp0(search_dirs[i], \""
7045 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7046 "\") == 0 && "
7047 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7048 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
7049 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
7050 #t))
7051 ;; GDM requires that there be at least one desktop entry
7052 ;; file. This phase installs a hidden one that simply
7053 ;; fails. This enables users to use GDM with a
7054 ;; '~/.xsession' script with no other desktop entry files.
7055 ;; See <https://bugs.gnu.org/35068>.
7056 (add-after 'install 'install-placeholder-desktop-entry
7057 (lambda* (#:key inputs outputs #:allow-other-keys)
7058 (let* ((out (assoc-ref outputs "out"))
7059 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7060 (fail (string-append sessions "/fail.desktop")))
7061 (mkdir-p sessions)
7062 (with-output-to-file fail
7063 (lambda ()
7064 (for-each
7065 display
7066 '("[Desktop Entry]\n"
7067 "Encoding=UTF-8\n"
7068 "Type=Application\n"
7069 "Name=Fail\n"
7070 "Comment=This session fails immediately.\n"
7071 "NoDisplay=true\n"
7072 "Exec=false\n"))))
7073 #t)))
7074 ;; GDM needs GNOME Session to run these applications. We link
7075 ;; their autostart files in `share/gdm/greeter/autostart'
7076 ;; because GDM explicitly tells GNOME Session to look there.
7077 ;;
7078 ;; XXX: GNOME Shell should be linked here too, but currently
7079 ;; GNOME Shell depends on GDM.
7080 (add-after 'install 'link-autostart-files
7081 (lambda* (#:key inputs outputs #:allow-other-keys)
7082 (let* ((out (assoc-ref outputs "out"))
7083 (autostart (string-append out "/share/gdm/"
7084 "greeter/autostart"))
7085 (settings (assoc-ref inputs "gnome-settings-daemon")))
7086 (mkdir-p autostart)
7087 (with-directory-excursion autostart
7088 (for-each (lambda (desktop)
7089 (symlink desktop (basename desktop)))
7090 (find-files (string-append settings "/etc/xdg"))))
7091 #t))))))
7092 (native-inputs
7093 `(("dconf" ,dconf)
7094 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7095 ("gobject-introspection" ,gobject-introspection)
7096 ("intltool" ,intltool)
7097 ("itstool" ,itstool)
7098 ("pkg-config" ,pkg-config)
7099 ("xmllint" ,libxml2)))
7100 (inputs
7101 `(("accountsservice" ,accountsservice)
7102 ("check" ,check) ; for testing
7103 ("elogind" ,elogind)
7104 ("gnome-session" ,gnome-session)
7105 ("gnome-settings-daemon" ,gnome-settings-daemon)
7106 ("gtk+" ,gtk+)
7107 ("iso-codes" ,iso-codes)
7108 ("libcanberra" ,libcanberra)
7109 ("linux-pam" ,linux-pam)))
7110 (synopsis "Display manager for GNOME")
7111 (home-page "https://wiki.gnome.org/Projects/GDM/")
7112 (description
7113 "GNOME Display Manager is a system service that is responsible for
7114 providing graphical log-ins and managing local and remote displays.")
7115 (license license:gpl2+)))
7116
7117 (define-public libgtop
7118 (package
7119 (name "libgtop")
7120 (version "2.40.0")
7121 (source (origin
7122 (method url-fetch)
7123 (uri (string-append "mirror://gnome/sources/libgtop/"
7124 (version-major+minor version) "/"
7125 "libgtop-" version ".tar.xz"))
7126 (sha256
7127 (base32
7128 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7129 (build-system gnu-build-system)
7130 (native-inputs
7131 `(("gobject-introspection" ,gobject-introspection)
7132 ("intltool" ,intltool)
7133 ("perl" ,perl)
7134 ("pkg-config" ,pkg-config)))
7135 (propagated-inputs
7136 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7137 (synopsis "Portable system access library")
7138 (home-page "https://www.gnome.org/")
7139 (description
7140 "LibGTop is a library to get system specific data such as CPU and memory
7141 usage and information about running processes.")
7142 (license license:gpl2+)))
7143
7144 (define-public gnome-bluetooth
7145 (package
7146 (name "gnome-bluetooth")
7147 (version "3.34.0")
7148 (source (origin
7149 (method url-fetch)
7150 (uri (string-append "mirror://gnome/sources/" name "/"
7151 (version-major+minor version) "/"
7152 name "-" version ".tar.xz"))
7153 (sha256
7154 (base32
7155 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
7156 (build-system meson-build-system)
7157 (native-inputs
7158 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7159 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7160 ("gobject-introspection" ,gobject-introspection)
7161 ("intltool" ,intltool)
7162 ("pkg-config" ,pkg-config)
7163 ("xmllint" ,libxml2)))
7164 (propagated-inputs
7165 ;; gnome-bluetooth-1.0.pc refers to all these.
7166 `(("glib" ,glib)
7167 ("gtk+" ,gtk+)))
7168 (inputs
7169 `(("eudev" ,eudev)
7170 ("libcanberra" ,libcanberra)
7171 ("libnotify" ,libnotify)))
7172 (synopsis "GNOME Bluetooth subsystem")
7173 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7174 (description
7175 "This package contains tools for managing and manipulating Bluetooth
7176 devices using the GNOME desktop.")
7177 (license license:lgpl2.1+)))
7178
7179 (define-public gnome-control-center
7180 (package
7181 (name "gnome-control-center")
7182 (version "3.34.2")
7183 (source (origin
7184 (method url-fetch)
7185 (uri (string-append "mirror://gnome/sources/" name "/"
7186 (version-major+minor version) "/"
7187 name "-" version ".tar.xz"))
7188 (sha256
7189 (base32
7190 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7191 (build-system meson-build-system)
7192 (arguments
7193 '(#:glib-or-gtk? #t
7194 #:configure-flags
7195 (list "-Dcheese=false"
7196 (string-append "-Dgnome_session_libexecdir="
7197 (assoc-ref %build-inputs "gnome-session")
7198 "/libexec"))
7199 #:phases
7200 (modify-phases %standard-phases
7201 (add-before 'configure 'patch-paths
7202 (lambda* (#:key inputs #:allow-other-keys)
7203 (let ((libc (assoc-ref inputs "libc"))
7204 (tzdata (assoc-ref inputs "tzdata"))
7205 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7206 (nm-applet (assoc-ref inputs "network-manager-applet"))
7207 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7208 (substitute* "panels/datetime/tz.h"
7209 (("/usr/share/zoneinfo/zone.tab")
7210 (string-append tzdata "/share/zoneinfo/zone.tab")))
7211 (substitute* "tests/datetime/test-endianess.c"
7212 (("/usr/share/locale")
7213 (string-append libc "/share/locale")))
7214 (substitute* "panels/region/cc-region-panel.c"
7215 (("\"gkbd-keyboard-display")
7216 (string-append "\"" libgnomekbd
7217 "/bin/gkbd-keyboard-display")))
7218 (substitute* '("panels/network/net-device-wifi.c"
7219 "panels/network/net-device.c"
7220 "panels/network/connection-editor/net-connection-editor.c")
7221 (("\"nm-connection-editor")
7222 (string-append "\"" nm-applet
7223 "/bin/nm-connection-editor")))
7224 (substitute* '("panels/user-accounts/run-passwd.c")
7225 (("/usr/bin/passwd")
7226 "/run/setuid-programs/passwd"))
7227 (substitute* "panels/info/cc-info-overview-panel.c"
7228 (("DATADIR \"/gnome/gnome-version.xml\"")
7229 (string-append "\"" gnome-desktop
7230 "/share/gnome/gnome-version.xml\"")))
7231 #t)))
7232 (add-after 'unpack 'skip-gtk-update-icon-cache
7233 ;; Don't create 'icon-theme.cache'.
7234 (lambda _
7235 (substitute* "build-aux/meson/meson_post_install.py"
7236 (("gtk-update-icon-cache") (which "true")))
7237 #t)))))
7238 (native-inputs
7239 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7240 ("intltool" ,intltool)
7241 ("pkg-config" ,pkg-config)
7242 ("xsltproc" ,libxslt)
7243 ;; For tests
7244 ("hicolor-icon-theme" ,hicolor-icon-theme)
7245 ("python-dbusmock" ,python-dbusmock)
7246 ("xorg-server" ,xorg-server-for-tests)))
7247 (inputs
7248 `(("accountsservice" ,accountsservice)
7249 ("clutter-gtk" ,clutter-gtk)
7250 ("colord-gtk" ,colord-gtk)
7251 ("cups" ,cups)
7252 ("dconf" ,dconf)
7253 ("docbook-xsl" ,docbook-xsl)
7254 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7255 ("gnome-bluetooth" ,gnome-bluetooth)
7256 ("gnome-desktop" ,gnome-desktop)
7257 ("gnome-online-accounts" ,gnome-online-accounts)
7258 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7259 ("gnome-session" ,gnome-session)
7260 ("gnome-settings-daemon" ,gnome-settings-daemon)
7261 ("grilo" ,grilo)
7262 ("gsound" ,gsound)
7263 ("ibus" ,ibus)
7264 ("libcanberra" ,libcanberra)
7265 ("libgnomekbd" ,libgnomekbd)
7266 ("libgudev" ,libgudev)
7267 ("libgtop" ,libgtop)
7268 ("libnma" ,libnma)
7269 ("libpwquality" ,libpwquality)
7270 ("libsecret" ,libsecret)
7271 ("libsoup" ,libsoup)
7272 ("libxml2" ,libxml2)
7273 ("libwacom" ,libwacom)
7274 ("mesa" ,mesa)
7275 ("mit-krb5" ,mit-krb5)
7276 ("modem-manager" ,modem-manager)
7277 ("network-manager-applet" ,network-manager-applet)
7278 ("polkit" ,polkit)
7279 ("pulseaudio" ,pulseaudio)
7280 ("smbclient" ,samba)
7281 ("tzdata" ,tzdata)
7282 ("udisks" ,udisks)
7283 ("upower" ,upower)))
7284 (synopsis "Utilities to configure the GNOME desktop")
7285 (home-page "https://www.gnome.org/")
7286 (description
7287 "This package contains configuration applets for the GNOME desktop,
7288 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7289 properties, sound setup, desktop theme and background, user interface
7290 properties, screen resolution, and other GNOME parameters.")
7291 (license license:gpl2+)))
7292
7293 (define-public gnome-shell
7294 (package
7295 (name "gnome-shell")
7296 (version "3.34.2")
7297 (source (origin
7298 (method url-fetch)
7299 (uri (string-append "mirror://gnome/sources/" name "/"
7300 (version-major+minor version) "/"
7301 name "-" version ".tar.xz"))
7302 (sha256
7303 (base32
7304 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7305 (patches (search-patches "gnome-shell-theme.patch"
7306 "gnome-shell-disable-test.patch"))
7307 (modules '((guix build utils)))
7308 (snippet
7309 #~(begin
7310 ;; Copy images for use on the GDM log-in screen.
7311 (copy-file #$(file-append %artwork-repository
7312 "/slim/0.x/background.png")
7313 "data/theme/guix-background.png")
7314 (copy-file #$(file-append %artwork-repository
7315 "/logo/Guix-horizontal-white.svg")
7316 "data/theme/guix-logo.svg")
7317 #t))))
7318 (build-system meson-build-system)
7319 (arguments
7320 `(#:glib-or-gtk? #t
7321 #:disallowed-references ((,glib "bin")
7322 ,inkscape ,libxslt
7323 ,ruby-sass)
7324 #:configure-flags
7325 (list "-Dsystemd=false"
7326 ;; Otherwise, the RUNPATH will lack the final path component.
7327 (string-append "-Dc_link_args=-Wl,-rpath="
7328 (assoc-ref %outputs "out")
7329 "/lib/gnome-shell"))
7330
7331 #:modules ((guix build meson-build-system)
7332 (guix build utils)
7333 (srfi srfi-1))
7334
7335 #:phases
7336 (modify-phases %standard-phases
7337 (add-after 'unpack 'fix-keysdir
7338 (lambda* (#:key outputs #:allow-other-keys)
7339 (let* ((out (assoc-ref outputs "out"))
7340 (keysdir (string-append
7341 out "/share/gnome-control-center/keybindings")))
7342 (substitute* "meson.build"
7343 (("keysdir =.*")
7344 (string-append "keysdir = '" keysdir "'\n")))
7345 #t)))
7346 (add-before 'configure 'convert-logo-to-png
7347 (lambda* (#:key inputs #:allow-other-keys)
7348 ;; Convert the logo from SVG to PNG.
7349 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7350 "data/theme/guix-logo.svg")))
7351 (add-before 'configure 'record-absolute-file-names
7352 (lambda* (#:key inputs #:allow-other-keys)
7353 (substitute* "js/misc/ibusManager.js"
7354 (("'ibus-daemon'")
7355 (string-append "'" (assoc-ref inputs "ibus")
7356 "/bin/ibus-daemon'")))
7357 (substitute* "js/ui/status/keyboard.js"
7358 (("'gkbd-keyboard-display'")
7359 (string-append "'" (assoc-ref inputs "libgnomekbd")
7360 "/bin/gkbd-keyboard-display'")))
7361 #t))
7362 (add-before 'check 'pre-check
7363 (lambda* (#:key inputs #:allow-other-keys)
7364 ;; Tests require a running X server.
7365 (system "Xvfb :1 &")
7366 (setenv "DISPLAY" ":1")
7367 #t))
7368 (add-after 'install 'wrap-programs
7369 (lambda* (#:key inputs outputs #:allow-other-keys)
7370 (let ((out (assoc-ref outputs "out"))
7371 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7372 (python-path (getenv "PYTHONPATH")))
7373 (wrap-program (string-append out "/bin/gnome-shell")
7374 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7375 ;; FIXME: gnome-shell loads these libraries with unqualified
7376 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7377 ;; alternative might be to patch gnome-shell.
7378 `("LD_LIBRARY_PATH" ":" prefix
7379 ,(map (lambda (pkg)
7380 (string-append (assoc-ref inputs pkg) "/lib"))
7381 '("gdk-pixbuf"
7382 "gnome-bluetooth" "librsvg" "libgweather"))))
7383 (for-each
7384 (lambda (prog)
7385 (wrap-program (string-append out "/bin/" prog)
7386 `("PYTHONPATH" ":" prefix (,python-path))
7387 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7388 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7389 #t)))
7390 (replace 'glib-or-gtk-wrap
7391 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7392 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7393 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7394 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7395 ;; phase. Fix that since we don't need these.
7396 (wrap #:inputs (fold alist-delete inputs
7397 '("inkscape" "intltool" "glib:bin"))
7398 #:outputs outputs)))))))
7399 (native-inputs
7400 `(("asciidoc" ,asciidoc)
7401 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7402 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7403 ("gobject-introspection" ,gobject-introspection)
7404 ("inkscape" ,inkscape)
7405 ("intltool" ,intltool)
7406 ("pkg-config" ,pkg-config)
7407 ("python" ,python)
7408 ("ruby-sass" ,ruby-sass)
7409 ("sassc" ,sassc)
7410 ("xsltproc" ,libxslt)
7411 ;; For tests
7412 ("xorg-server" ,xorg-server-for-tests)))
7413 (inputs
7414 `(("accountsservice" ,accountsservice)
7415 ("caribou" ,caribou)
7416 ("docbook-xsl" ,docbook-xsl)
7417 ("evolution-data-server" ,evolution-data-server)
7418 ("gcr" ,gcr)
7419 ("gdm" ,gdm)
7420 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7421 ("gjs" ,gjs)
7422 ("gnome-autoar" ,gnome-autoar)
7423 ("gnome-bluetooth" ,gnome-bluetooth)
7424 ("gnome-desktop" ,gnome-desktop)
7425 ("gnome-settings-daemon" ,gnome-settings-daemon)
7426 ("gst-plugins-base" ,gst-plugins-base)
7427 ("ibus" ,ibus)
7428 ("libcanberra" ,libcanberra)
7429 ("libcroco" ,libcroco)
7430 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7431 ("libgweather" ,libgweather)
7432 ("libnma" ,libnma)
7433 ("libsoup" ,libsoup)
7434 ("mesa-headers" ,mesa-headers)
7435 ("mutter" ,mutter)
7436 ("network-manager-applet" ,network-manager-applet)
7437 ("polkit" ,polkit)
7438 ("pulseaudio" ,pulseaudio)
7439 ("python-pygobject" ,python-pygobject)
7440 ("startup-notification" ,startup-notification)
7441 ("telepathy-logger" ,telepathy-logger)
7442 ("upower" ,upower)
7443 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7444 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7445 ("librsvg" ,librsvg)
7446 ("geoclue" ,geoclue)))
7447 (synopsis "Desktop shell for GNOME")
7448 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7449 (description
7450 "GNOME Shell provides core user interface functions for the GNOME desktop,
7451 like switching to windows and launching applications.")
7452 (license license:gpl2+)))
7453
7454 (define-public gtk-vnc
7455 (package
7456 (name "gtk-vnc")
7457 (version "0.9.0")
7458 (source
7459 (origin
7460 (method url-fetch)
7461 (uri (string-append "mirror://gnome/sources/" name "/"
7462 (version-major+minor version) "/"
7463 name "-" version ".tar.xz"))
7464 (sha256
7465 (base32
7466 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7467 (build-system gnu-build-system)
7468 (arguments
7469 '(#:configure-flags '("--with-gtk=3.0")))
7470 (propagated-inputs
7471 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7472 (inputs
7473 `(("cyrus-sasl" ,cyrus-sasl)
7474 ("gnutls" ,gnutls)
7475 ("libgcrypt" ,libgcrypt)
7476 ("pulseaudio" ,pulseaudio)))
7477 (native-inputs
7478 `(("glib:bin" ,glib "bin")
7479 ("gobject-introspection" ,gobject-introspection)
7480 ("intltool" ,intltool)
7481 ("pkg-config" ,pkg-config)
7482 ("python-wrapper" ,python-wrapper)
7483 ("vala" ,vala)))
7484 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7485 (synopsis "VNC viewer widget for GTK+")
7486 (description
7487 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7488 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7489 GTK-VNC implements client side RFB protocol and authentication extensions such
7490 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7491 (license license:lgpl2.1+)))
7492
7493 (define-public gnome-autoar
7494 (package
7495 (name "gnome-autoar")
7496 (version "0.2.4")
7497 (source (origin
7498 (method url-fetch)
7499 (uri (string-append "mirror://gnome/sources/" name "/"
7500 (version-major+minor version) "/"
7501 name "-" version ".tar.xz"))
7502 (sha256
7503 (base32
7504 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
7505 (build-system glib-or-gtk-build-system)
7506 (native-inputs
7507 `(("gobject-introspection" ,gobject-introspection)
7508 ("pkg-config" ,pkg-config)))
7509 (propagated-inputs
7510 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
7511 (inputs
7512 `(("gtk+" ,gtk+)))
7513 (synopsis "Archives integration support for GNOME")
7514 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7515 (description
7516 "GNOME Autoar is a library which makes creating and extracting archives
7517 easy, safe, and automatic.")
7518 (license license:lgpl2.1+)))
7519
7520 (define-public tracker
7521 (package
7522 (name "tracker")
7523 (version "2.3.4")
7524 (source (origin
7525 (method url-fetch)
7526 (uri (string-append "mirror://gnome/sources/tracker/"
7527 (version-major+minor version) "/"
7528 "tracker-" version ".tar.xz"))
7529 (sha256
7530 (base32
7531 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7532 (build-system meson-build-system)
7533 (arguments
7534 `(#:glib-or-gtk? #t
7535 #:configure-flags
7536 ;; Otherwise, the RUNPATH will lack the final path component.
7537 (list (string-append "-Dc_link_args=-Wl,-rpath="
7538 (assoc-ref %outputs "out") "/lib:"
7539 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7540 #:phases
7541 (modify-phases %standard-phases
7542 (add-before 'check 'pre-check
7543 (lambda _
7544 ;; Some tests expect to write to $HOME.
7545 (setenv "HOME" "/tmp")
7546 #t)))))
7547 (native-inputs
7548 `(("glib:bin" ,glib "bin")
7549 ("gobject-introspection" ,gobject-introspection)
7550 ("python-pygobject" ,python-pygobject)
7551 ("intltool" ,intltool)
7552 ("pkg-config" ,pkg-config)
7553 ("vala" ,vala)))
7554 (inputs
7555 `(("dbus" ,dbus)
7556 ("sqlite" ,sqlite)
7557 ("libxml2" ,libxml2)
7558 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
7559 ("json-glib" ,json-glib)
7560 ("libsoup" ,libsoup)))
7561 (synopsis "Metadata database, indexer and search tool")
7562 (home-page "https://wiki.gnome.org/Projects/Tracker")
7563 (description
7564 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7565
7566 It is a middleware component aimed at desktop application developers who want
7567 their apps to browse and search user content. It's not designed to be used
7568 directly by desktop users, but it provides a commandline tool named
7569 @command{tracker} for the adventurous.
7570
7571 Tracker allows your application to instantly perform full-text searches across
7572 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7573 example. This is achieved by indexing the user's home directory in the
7574 background.
7575
7576 Tracker also allows your application to query and list content that the user
7577 has stored. For example, GNOME Music displays all the music files that are
7578 found by Tracker. This means that GNOME Music doesn't need to maintain a
7579 database of its own.
7580
7581 If you need to go beyond simple searches, Tracker is also a linked data
7582 endpoint and it understands SPARQL. ")
7583 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
7584 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7585 ;; libstemmer is bsd-3 and the rest is gpl2+.
7586 (license (list license:gpl2+
7587 license:bsd-3
7588 license:lgpl2.1+))))
7589
7590 (define-public tracker-miners
7591 (package
7592 (name "tracker-miners")
7593 (version "2.3.3")
7594 (source (origin
7595 (method url-fetch)
7596 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7597 (version-major+minor version)
7598 "/tracker-miners-" version ".tar.xz"))
7599 (sha256
7600 (base32
7601 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
7602 (build-system meson-build-system)
7603 (arguments
7604 `(#:glib-or-gtk? #t
7605 #:configure-flags
7606 (list "-Dminer_rss=false" ; libgrss is required.
7607 ;; Ensure the RUNPATH contains all installed library locations.
7608 (string-append "-Dc_link_args=-Wl,-rpath="
7609 (assoc-ref %outputs "out")
7610 "/lib/tracker-miners-2.0")
7611 ;; TODO: Enable functional tests. Currently, the following error
7612 ;; appears:
7613 ;; Exception: The functional tests require DConf to be the default
7614 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7615 "-Dfunctional_tests=false")))
7616 (native-inputs
7617 `(("dbus" ,dbus)
7618 ("intltool" ,intltool)
7619 ("glib:bin" ,glib "bin")
7620 ("gobject-introspection" ,gobject-introspection)
7621 ("pkg-config" ,pkg-config)
7622 ("python-pygobject" ,python-pygobject)))
7623 (inputs
7624 `(("exempi" ,exempi)
7625 ("ffmpeg" ,ffmpeg)
7626 ("flac" ,flac)
7627 ("giflib" ,giflib)
7628 ("glib" ,glib)
7629 ("gstreamer" ,gstreamer)
7630 ("icu4c" ,icu4c)
7631 ("libcue" ,libcue)
7632 ("libexif" ,libexif)
7633 ("libgsf" ,libgsf)
7634 ("libgxps" ,libgxps)
7635 ("libiptcdata" ,libiptcdata)
7636 ("libjpeg" ,libjpeg-turbo)
7637 ("libosinfo" ,libosinfo)
7638 ("libpng" ,libpng)
7639 ("libseccomp" ,libseccomp)
7640 ("libtiff" ,libtiff)
7641 ("libvorbis" ,libvorbis)
7642 ("libxml2" ,libxml2)
7643 ("poppler" ,poppler)
7644 ("taglib" ,taglib)
7645 ("totem-pl-parser" ,totem-pl-parser)
7646 ("tracker" ,tracker)
7647 ("upower" ,upower)
7648 ("zlib" ,zlib)))
7649 (synopsis "Metadata database, indexer and search tool")
7650 (home-page "https://wiki.gnome.org/Projects/Tracker")
7651 (description
7652 "Tracker is an advanced framework for first class objects with associated
7653 metadata and tags. It provides a one stop solution for all metadata, tags,
7654 shared object databases, search tools and indexing.")
7655 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7656 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7657 (license (list license:gpl2+
7658 license:lgpl2.1+
7659 license:lgpl2.0+))))
7660
7661 (define-public nautilus
7662 (package
7663 (name "nautilus")
7664 (version "3.34.2")
7665 (source (origin
7666 (method url-fetch)
7667 (uri (string-append "mirror://gnome/sources/" name "/"
7668 (version-major+minor version) "/"
7669 name "-" version ".tar.xz"))
7670 (sha256
7671 (base32
7672 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
7673 (build-system meson-build-system)
7674 (arguments
7675 '(#:glib-or-gtk? #t
7676 #:phases
7677 (modify-phases %standard-phases
7678 (add-after 'unpack 'skip-gtk-update-icon-cache
7679 ;; Don't create 'icon-theme.cache'.
7680 (lambda _
7681 (substitute* "build-aux/meson/postinstall.py"
7682 (("gtk-update-icon-cache") "true"))
7683 #t)))
7684 ;; XXX: FAIL: check-nautilus
7685 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7686 #:tests? #f))
7687 (native-inputs
7688 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7689 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7690 ("gobject-introspection" ,gobject-introspection)
7691 ("intltool" ,intltool)
7692 ("pkg-config" ,pkg-config)))
7693 (inputs
7694 `(("dconf" ,dconf)
7695 ("gexiv2" ,gexiv2)
7696 ("gvfs" ,gvfs)
7697 ("exempi" ,exempi)
7698 ("gnome-desktop" ,gnome-desktop)
7699 ("gnome-autoar" ,gnome-autoar)
7700 ("gst-plugins-base" ,gst-plugins-base)
7701 ("libseccomp" ,libseccomp)
7702 ("libselinux" ,libselinux)
7703 ("tracker" ,tracker)
7704 ("tracker-miners" ,tracker-miners)
7705 ;; XXX: gtk+ is required by libnautilus-extension.pc
7706 ;;
7707 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7708 ;; package. See:
7709 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7710 ("gtk+" ,gtk+)
7711 ("libexif" ,libexif)
7712 ("libxml2" ,libxml2)))
7713 (synopsis "File manager for GNOME")
7714 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7715 (description
7716 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7717 design and behaviour, giving the user a simple way to navigate and manage its
7718 files.")
7719 (license license:gpl2+)))
7720
7721 (define-public baobab
7722 (package
7723 (name "baobab")
7724 (version "3.32.0")
7725 (source (origin
7726 (method url-fetch)
7727 (uri (string-append
7728 "mirror://gnome/sources/" name "/"
7729 (version-major+minor version) "/"
7730 name "-" version ".tar.xz"))
7731 (sha256
7732 (base32
7733 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7734 (build-system meson-build-system)
7735 (arguments
7736 '(#:glib-or-gtk? #t))
7737 (native-inputs
7738 `(("intltool" ,intltool)
7739 ("pkg-config" ,pkg-config)
7740 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7741 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7742 ("itstool" ,itstool)
7743 ("xmllint" ,libxml2)
7744 ("glib" ,glib "bin")
7745 ("vala" ,vala)))
7746 (inputs
7747 `(("gtk+" ,gtk+)))
7748 (synopsis "Disk usage analyzer for GNOME")
7749 (description
7750 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7751 usage in the GNOME desktop environment. It can easily scan device volumes or
7752 a specific user-requested directory branch (local or remote). Once the scan
7753 is complete it provides a graphical representation of each selected folder.")
7754 (home-page "https://wiki.gnome.org/Apps/Baobab")
7755 (license license:gpl2+)))
7756
7757 (define-public gnome-backgrounds
7758 (package
7759 (name "gnome-backgrounds")
7760 (version "3.34.0")
7761 (source
7762 (origin
7763 (method url-fetch)
7764 (uri (string-append "mirror://gnome/sources/" name "/"
7765 (version-major+minor version) "/"
7766 name "-" version ".tar.xz"))
7767 (sha256
7768 (base32
7769 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
7770 (build-system meson-build-system)
7771 (native-inputs
7772 `(("intltool" ,intltool)))
7773 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7774 (synopsis "Background images for the GNOME desktop")
7775 (description
7776 "GNOME backgrounds package contains a collection of graphics files which
7777 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7778 the package creates the proper framework and directory structure so that you
7779 can add your own files to the collection.")
7780 (license (list license:gpl2+
7781 license:cc-by2.0
7782 license:cc-by-sa2.0
7783 license:cc-by-sa3.0))))
7784
7785 (define-public gnome-screenshot
7786 (package
7787 (name "gnome-screenshot")
7788 (version "3.34.0")
7789 (source
7790 (origin
7791 (method url-fetch)
7792 (uri (string-append "mirror://gnome/sources/" name "/"
7793 (version-major+minor version) "/"
7794 name "-" version ".tar.xz"))
7795 (sha256
7796 (base32
7797 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
7798 (build-system meson-build-system)
7799 (arguments
7800 '(#:phases
7801 (modify-phases %standard-phases
7802 (add-after 'unpack 'skip-gtk-update-icon-cache
7803 ;; Don't create 'icon-theme.cache'.
7804 (lambda _
7805 (substitute* "build-aux/postinstall.py"
7806 (("gtk-update-icon-cache") "true"))
7807 #t)))))
7808 (native-inputs
7809 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7810 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7811 ("intltool" ,intltool)
7812 ("appstream-glib" ,appstream-glib)
7813 ("pkg-config" ,pkg-config)))
7814 (inputs
7815 `(("gtk+" ,gtk+)
7816 ("libcanberra" ,libcanberra)
7817 ("libx11" ,libx11)
7818 ("libxext" ,libxext)))
7819 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7820 (synopsis "Take pictures of your screen")
7821 (description
7822 "GNOME Screenshot is a utility used for taking screenshots of the entire
7823 screen, a window or a user defined area of the screen, with optional
7824 beautifying border effects.")
7825 (license license:gpl2+)))
7826
7827 (define-public dconf-editor
7828 (package
7829 (name "dconf-editor")
7830 (version "3.34.2")
7831 (source
7832 (origin
7833 (method url-fetch)
7834 (uri (string-append "mirror://gnome/sources/" name "/"
7835 (version-major+minor version) "/"
7836 name "-" version ".tar.xz"))
7837 (sha256
7838 (base32
7839 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
7840 (build-system meson-build-system)
7841 (native-inputs
7842 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7843 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7844 ("intltool" ,intltool)
7845 ("pkg-config" ,pkg-config)
7846 ("vala" ,vala)))
7847 (inputs
7848 `(("dconf" ,dconf)
7849 ("gtk+" ,gtk+)
7850 ("libxml2" ,libxml2)))
7851 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
7852 (synopsis "Graphical editor for GNOME's dconf configuration system")
7853 (description
7854 "Dconf-editor is a graphical tool for browsing and editing the dconf
7855 configuration system for GNOME. It allows users to configure desktop
7856 software that do not provide their own configuration interface.")
7857 (license license:lgpl2.1+)))
7858
7859 (define-public gnome-default-applications
7860 (package
7861 (name "gnome-default-applications")
7862 (version "0")
7863 (build-system trivial-build-system)
7864 (source #f)
7865 (propagated-inputs
7866 `(("nautilus" ,nautilus)
7867 ("evince" ,evince)))
7868 (arguments
7869 `(#:modules ((guix build utils))
7870 #:builder
7871 (begin
7872 (use-modules (guix build utils))
7873 (let* ((out (assoc-ref %outputs "out"))
7874 (apps (string-append out "/share/applications")))
7875 (mkdir-p apps)
7876 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
7877 (lambda (port)
7878 (format port "[Default Applications]\n")
7879 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7880 (format port "application/pdf=evince.desktop\n")
7881 (format port "application/postscript=evince.desktop\n")))
7882 #t))))
7883 (synopsis "Default MIME type associations for the GNOME desktop")
7884 (description
7885 "Given many installed packages which might handle a given MIME type, a
7886 user running the GNOME desktop probably has some preferences: for example,
7887 that folders be opened by default by the Nautilus file manager, not the Baobab
7888 disk usage analyzer. This package establishes that set of default MIME type
7889 associations for GNOME.")
7890 (license license:gpl3+)
7891 (home-page #f)))
7892
7893 (define-public libgovirt
7894 (package
7895 (name "libgovirt")
7896 (version "0.3.6")
7897 (source (origin
7898 (method url-fetch)
7899 (uri (string-append "mirror://gnome/sources/" name "/"
7900 (version-major+minor version) "/"
7901 name "-" version ".tar.xz"))
7902 (sha256
7903 (base32
7904 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7905 (build-system glib-or-gtk-build-system)
7906 (native-inputs
7907 `(("gettext" ,gettext-minimal)
7908 ("glib:bin" ,glib "bin")
7909 ("gobject-introspection" ,gobject-introspection)
7910 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7911 ("gtk+:bin" ,gtk+ "bin")
7912 ("pkg-config" ,pkg-config)))
7913 (inputs
7914 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7915 ("librest" ,rest)))
7916 (synopsis "GoVirt Library")
7917 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7918 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7919 (license license:gpl2+)))
7920
7921 (define-public gnome-weather
7922 (package
7923 (name "gnome-weather")
7924 (version "3.34.0")
7925 (source (origin
7926 (method url-fetch)
7927 (uri (string-append "mirror://gnome/sources/" name "/"
7928 (version-major+minor version) "/"
7929 name "-" version ".tar.xz"))
7930 (sha256
7931 (base32
7932 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7933 (build-system meson-build-system)
7934 (native-inputs
7935 `(("gettext" ,gettext-minimal)
7936 ("glib:bin" ,glib "bin")
7937 ("gobject-introspection" ,gobject-introspection)
7938 ("gtk+:bin" ,gtk+ "bin")
7939 ("pkg-config" ,pkg-config)))
7940 (inputs
7941 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7942 ("appstream-glib" ,appstream-glib)
7943 ("geoclue" ,geoclue)
7944 ("gdk-pixbuf" ,gdk-pixbuf)
7945 ("gjs" ,gjs)
7946 ("gnome-desktop" ,gnome-desktop)
7947 ("libgweather" ,libgweather)))
7948 (arguments
7949 `(#:glib-or-gtk? #t
7950 #:phases
7951 (modify-phases %standard-phases
7952 (add-after 'install 'fix-desktop-file
7953 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7954 ;; See https://issues.guix.gnu.org/issue/39324.
7955 (lambda* (#:key outputs #:allow-other-keys)
7956 (let* ((out (assoc-ref outputs "out"))
7957 (applications (string-append out "/share/applications")))
7958 (substitute* (string-append applications "/org.gnome.Weather.desktop")
7959 (("Exec=.*") "Exec=gnome-weather\n"))
7960 #t)))
7961 (add-after 'install 'wrap
7962 (lambda* (#:key inputs outputs #:allow-other-keys)
7963 (let ((out (assoc-ref outputs "out"))
7964 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7965 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7966 (wrap-program (string-append out "/bin/gnome-weather")
7967 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7968 #t))))))
7969 (synopsis "Weather monitoring for GNOME desktop")
7970 (description "GNOME Weather is a small application that allows you to
7971 monitor the current weather conditions for your city, or anywhere in the
7972 world.")
7973 (home-page "https://wiki.gnome.org/Apps/Weather")
7974 (license license:gpl2+)))
7975
7976 (define-public gnome
7977 (package
7978 (name "gnome")
7979 (version (package-version gnome-shell))
7980 (source #f)
7981 (build-system trivial-build-system)
7982 (arguments '(#:builder (begin (mkdir %output) #t)))
7983 (propagated-inputs
7984 ;; TODO: Add or remove packages according to:
7985 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7986 `(
7987 ;; GNOME-Core-OS-Services
7988 ("accountsservice" ,accountsservice)
7989 ("network-manager" ,network-manager)
7990 ("packagekit" ,packagekit)
7991 ("upower" ,upower)
7992 ;; GNOME-Core-Shell
7993 ("adwaita-icon-theme" ,adwaita-icon-theme)
7994 ("gdm" ,gdm)
7995 ("glib-networking" ,glib-networking)
7996 ("gnome-backgrounds" ,gnome-backgrounds)
7997 ("gnome-bluetooth" ,gnome-bluetooth)
7998 ("gnome-color-manager" ,gnome-color-manager)
7999 ("gnome-control-center" ,gnome-control-center)
8000 ("gnome-desktop" ,gnome-desktop)
8001 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8002 ("gnome-initial-setup" ,gnome-initial-setup)
8003 ("gnome-keyring" ,gnome-keyring)
8004 ("gnome-menus" ,gnome-menus)
8005 ("gnome-session" ,gnome-session)
8006 ("gnome-settings-daemon" ,gnome-settings-daemon)
8007 ("gnome-shell-extensions" ,gnome-shell-extensions)
8008 ("gnome-shell" ,gnome-shell)
8009 ("gnome-themes-extra" ,gnome-themes-extra)
8010 ("gnome-user-docs" ,gnome-user-docs)
8011 ("gnome-user-share" ,gnome-user-share)
8012 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8013 ("gvfs" ,gvfs)
8014 ("mutter" ,mutter)
8015 ("orca" ,orca)
8016 ("rygel" ,rygel)
8017 ("sushi" ,sushi)
8018 ;; GNOME-Core-Utilities
8019 ("baobab" ,baobab)
8020 ("cheese" ,cheese)
8021 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8022 ;; only works on x86_64, so exclude it on other architectures.
8023 ,@(if (string-prefix? "x86_64" (%current-system))
8024 `(("eog" ,eog))
8025 '())
8026 ("epiphany" ,epiphany)
8027 ("evince" ,evince)
8028 ("file-roller" ,file-roller)
8029 ("gedit" ,gedit)
8030 ("gnome-boxes" ,gnome-boxes)
8031 ("gnome-calculator" ,gnome-calculator)
8032 ("gnome-calendar" ,gnome-calendar)
8033 ("gnome-characters" ,gnome-characters)
8034 ("gnome-clocks" ,gnome-clocks)
8035 ("gnome-contacts" ,gnome-contacts)
8036 ("gnome-disk-utility" ,gnome-disk-utility)
8037 ("gnome-font-viewer" ,gnome-font-viewer)
8038 ("gnome-maps" ,gnome-maps)
8039 ; TODO: ("gnome-music" ,gnome-music)
8040 ; TODO: ("gnome-photos" ,gnome-photos)
8041 ("gnome-screenshot" ,gnome-screenshot)
8042 ("gnome-system-monitor" ,gnome-system-monitor)
8043 ("gnome-terminal" ,gnome-terminal)
8044 ("gnome-weather" ,gnome-weather)
8045 ("nautilus" ,nautilus)
8046 ("simple-scan" ,simple-scan)
8047 ("totem" ,totem)
8048 ("yelp" ,yelp)
8049 ;; Others
8050 ("hicolor-icon-theme" ,hicolor-icon-theme)
8051 ("gnome-online-accounts" ,gnome-online-accounts)
8052
8053 ;; Packages not part of GNOME proper but that are needed for a good
8054 ;; experience. See <https://bugs.gnu.org/39646>.
8055 ;; XXX: Find out exactly which ones are needed and why.
8056 ("font-cantarell" ,font-cantarell)
8057 ("font-dejavu" ,font-dejavu)
8058 ("at-spi2-core" ,at-spi2-core)
8059 ("dbus" ,dbus)
8060 ("dconf" ,dconf)
8061 ("desktop-file-utils" ,desktop-file-utils)
8062 ("gnome-default-applications" ,gnome-default-applications)
8063 ("gnome-themes-standard" ,gnome-themes-standard)
8064 ("gst-plugins-base" ,gst-plugins-base)
8065 ("gst-plugins-good" ,gst-plugins-good)
8066 ("gucharmap" ,gucharmap)
8067 ("pinentry-gnome3" ,pinentry-gnome3)
8068 ("pulseaudio" ,pulseaudio)
8069 ("shared-mime-info" ,shared-mime-info)
8070 ("system-config-printer" ,system-config-printer)
8071 ("xdg-user-dirs" ,xdg-user-dirs)
8072 ("yelp" ,yelp)
8073 ("zenity" ,zenity)))
8074 (synopsis "The GNU desktop environment")
8075 (home-page "https://www.gnome.org/")
8076 (description
8077 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8078 applications for browsing the web, editing text and images, creating
8079 documents and diagrams, playing media, scanning, and much more.")
8080 (license license:gpl2+)))
8081
8082 (define-public byzanz
8083 ;; The last stable release of Byzanz was in 2011, but there have been many
8084 ;; useful commits made to the Byzanz repository since then that it would be
8085 ;; silly to use such an old release.
8086 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8087 (package
8088 (name "byzanz")
8089 (version (string-append "0.2-1." (string-take commit 7)))
8090 (source (origin
8091 (method git-fetch)
8092 (uri (git-reference
8093 (url "https://git.gnome.org/browse/byzanz")
8094 (commit commit)))
8095 (file-name (string-append name "-" version "-checkout"))
8096 (sha256
8097 (base32
8098 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8099 (build-system glib-or-gtk-build-system)
8100 (arguments
8101 '(#:phases
8102 (modify-phases %standard-phases
8103 (add-before 'bootstrap 'build-without-Werror
8104 (lambda _
8105 ;; The build system cleverly detects that we're not building from
8106 ;; a release tarball and turns on -Werror for GCC.
8107 ;; Unsurprisingly, there is a warning during compilation that
8108 ;; causes the build to fail unnecessarily, so we remove the flag.
8109 (substitute* '("configure.ac")
8110 (("-Werror") ""))
8111 #t)))))
8112 (native-inputs
8113 `(("autoconf" ,autoconf)
8114 ("automake" ,automake)
8115 ("gnome-common" ,gnome-common)
8116 ("intltool" ,intltool)
8117 ("libtool" ,libtool)
8118 ("pkg-config" ,pkg-config)
8119 ("which" ,which)))
8120 (inputs
8121 `(("glib" ,glib)
8122 ("gstreamer" ,gstreamer)
8123 ("gst-plugins-base" ,gst-plugins-base)
8124 ("gtk+" ,gtk+)))
8125 (synopsis "Desktop recording program")
8126 (description "Byzanz is a simple desktop recording program with a
8127 command-line interface. It can record part or all of an X display for a
8128 specified duration and save it as a GIF encoded animated image file.")
8129 (home-page "https://git.gnome.org/browse/byzanz")
8130 (license license:gpl2+))))
8131
8132 (define-public gsound
8133 (package
8134 (name "gsound")
8135 (version "1.0.2")
8136 (source (origin
8137 (method url-fetch)
8138 (uri (string-append "mirror://gnome/sources/" name "/"
8139 (version-major+minor version) "/"
8140 name "-" version ".tar.xz"))
8141 (sha256
8142 (base32
8143 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8144 (build-system glib-or-gtk-build-system)
8145 (native-inputs
8146 `(("pkg-config" ,pkg-config)
8147 ("gobject-introspection" ,gobject-introspection)
8148 ("vala" ,vala)))
8149 (inputs
8150 `(("glib" ,glib)
8151 ("libcanberra" ,libcanberra)))
8152 (home-page "https://wiki.gnome.org/Projects/GSound")
8153 (synopsis "GObject wrapper for libcanberra")
8154 (description
8155 "GSound is a small library for playing system sounds. It's designed to be
8156 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8157 library.")
8158 (license license:lgpl2.1+)))
8159
8160 (define-public libzapojit
8161 (package
8162 (name "libzapojit")
8163 (version "0.0.3")
8164 (source (origin
8165 (method url-fetch)
8166 (uri (string-append "mirror://gnome/sources/" name "/"
8167 (version-major+minor version) "/"
8168 name "-" version ".tar.xz"))
8169 (sha256
8170 (base32
8171 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8172 (build-system gnu-build-system)
8173 (native-inputs
8174 `(("gobject-introspection" ,gobject-introspection)
8175 ("intltool" ,intltool)
8176 ("pkg-config" ,pkg-config)))
8177 (inputs
8178 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8179 ("json-glib" ,json-glib)
8180 ("rest" ,rest)))
8181 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8182 (synopsis "Library for accessing SkyDrive and Hotmail")
8183 (description
8184 "Libzapojit is a GLib-based library for accessing online service APIs of
8185 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8186 (license license:lgpl2.1+)))
8187
8188 (define-public gnome-clocks
8189 (package
8190 (name "gnome-clocks")
8191 (version "3.34.0")
8192 (source (origin
8193 (method url-fetch)
8194 (uri (string-append "mirror://gnome/sources/" name "/"
8195 (version-major+minor version) "/"
8196 name "-" version ".tar.xz"))
8197 (sha256
8198 (base32
8199 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8200 (build-system meson-build-system)
8201 (arguments
8202 '(#:glib-or-gtk? #t
8203 #:phases
8204 (modify-phases %standard-phases
8205 (add-after 'unpack 'skip-gtk-update-icon-cache
8206 ;; Don't create 'icon-theme.cache'.
8207 (lambda _
8208 (substitute* "build-aux/post-install.py"
8209 (("gtk-update-icon-cache") "true"))
8210 #t)))))
8211 (native-inputs
8212 `(("vala" ,vala)
8213 ("pkg-config" ,pkg-config)
8214 ("glib" ,glib "bin") ; for glib-compile-resources
8215 ("desktop-file-utils" ,desktop-file-utils)
8216 ("gettext" ,gettext-minimal)
8217 ("itstool" ,itstool)))
8218 (inputs
8219 `(("glib" ,glib)
8220 ("gtk+" ,gtk+)
8221 ("gsound" ,gsound)
8222 ("geoclue" ,geoclue)
8223 ("geocode-glib" ,geocode-glib)
8224 ("libgweather" ,libgweather)
8225 ("gnome-desktop" ,gnome-desktop)))
8226 (home-page "https://wiki.gnome.org/Apps/Clocks")
8227 (synopsis "GNOME's clock application")
8228 (description
8229 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8230 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8231 (license license:gpl3+)))
8232
8233 (define-public gnome-calendar
8234 (package
8235 (name "gnome-calendar")
8236 (version "3.34.2")
8237 (source (origin
8238 (method url-fetch)
8239 (uri (string-append "mirror://gnome/sources/" name "/"
8240 (version-major+minor version) "/"
8241 name "-" version ".tar.xz"))
8242 (sha256
8243 (base32
8244 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
8245 (build-system meson-build-system)
8246 (arguments
8247 '(#:glib-or-gtk? #t
8248 ;; gnome-calendar has to be installed before the tests can be run
8249 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8250 #:tests? #f
8251 #:phases
8252 (modify-phases %standard-phases
8253 (add-after 'unpack 'skip-gtk-update-icon-cache
8254 ;; Don't create 'icon-theme.cache'.
8255 (lambda _
8256 (substitute* "build-aux/meson/meson_post_install.py"
8257 (("gtk-update-icon-cache") "true"))
8258 #t)))))
8259 (native-inputs
8260 `(("gettext" ,gettext-minimal)
8261 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8262 ("pkg-config" ,pkg-config)))
8263 (inputs
8264 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8265 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8266 ("libdazzle" ,libdazzle)
8267 ("libedataserverui" ,evolution-data-server)
8268 ("libgweather" ,libgweather)
8269 ("geoclue" ,geoclue)))
8270 (propagated-inputs
8271 `(("evolution-data-server" ,evolution-data-server)))
8272 (home-page "https://wiki.gnome.org/Apps/Calendar")
8273 (synopsis "GNOME's calendar application")
8274 (description
8275 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8276 desktop. It supports multiple calendars, month, week and year view.")
8277 (license license:gpl3+)))
8278
8279 (define-public gnome-todo
8280 (package
8281 (name "gnome-todo")
8282 (version "3.28.1")
8283 (source (origin
8284 (method url-fetch)
8285 (uri (string-append "mirror://gnome/sources/" name "/"
8286 (version-major+minor version) "/"
8287 name "-" version ".tar.xz"))
8288 (sha256
8289 (base32
8290 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8291 (patches
8292 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
8293 (build-system meson-build-system)
8294 (arguments
8295 '(#:glib-or-gtk? #t
8296 #:phases (modify-phases %standard-phases
8297 (add-after
8298 'install 'wrap-gnome-todo
8299 (lambda* (#:key inputs outputs #:allow-other-keys)
8300 (let ((out (assoc-ref outputs "out"))
8301 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8302 (python-path (getenv "PYTHONPATH")))
8303 (wrap-program (string-append out "/bin/gnome-todo")
8304 ;; XXX: gi plugins are broken.
8305 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8306 ;; For plugins.
8307 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8308 `("PYTHONPATH" ":" prefix (,python-path))))
8309 #t)))))
8310 (native-inputs
8311 `(("gettext" ,gettext-minimal)
8312 ("gobject-introspection" ,gobject-introspection)
8313 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8314 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8315 ("pkg-config" ,pkg-config)))
8316 (inputs
8317 `(("rest" ,rest) ; For Todoist plugin
8318 ("json-glib" ,json-glib) ; For Todoist plugin
8319 ("libedataserverui" ,evolution-data-server)
8320 ("libical" ,libical)
8321 ("libpeas" ,libpeas)
8322 ("python-pygobject" ,python-pygobject)
8323 ("evolution-data-server" ,evolution-data-server)
8324 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8325 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8326 (home-page "https://wiki.gnome.org/Apps/Todo")
8327 (synopsis "GNOME's ToDo Application")
8328 (description
8329 "GNOME To Do is a simplistic personal task manager designed to perfectly
8330 fit the GNOME desktop.")
8331 (license license:gpl3+)))
8332
8333 (define-public gnome-dictionary
8334 (package
8335 (name "gnome-dictionary")
8336 (version "3.26.1")
8337 (source (origin
8338 (method url-fetch)
8339 (uri (string-append "mirror://gnome/sources/" name "/"
8340 (version-major+minor version) "/"
8341 name "-" version ".tar.xz"))
8342 (sha256
8343 (base32
8344 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8345 (build-system meson-build-system)
8346 (arguments '(#:glib-or-gtk? #t
8347 #:phases (modify-phases %standard-phases
8348 (add-after 'unpack 'patch-install-script
8349 (lambda _
8350 ;; This script attempts to compile glib schemas
8351 ;; and create an empty MIME database. We do
8352 ;; that elsewhere, so prevent it from running.
8353 (substitute* "build-aux/post-install.sh"
8354 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8355 #t)))))
8356 (native-inputs
8357 `(("glib:bin" ,glib "bin")
8358 ("gobject-introspection" ,gobject-introspection)
8359 ("intltool" ,intltool)
8360 ("itstool" ,itstool)
8361 ("pkg-config" ,pkg-config)
8362 ("xmllint" ,libxml2)))
8363 (inputs
8364 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8365 ("gtk+" ,gtk+)))
8366 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8367 (synopsis "Look up words in dictionary sources")
8368 (description
8369 "GNOME Dictionary can look for the definition or translation of a word in
8370 existing databases over the internet.")
8371 (license license:gpl3+)))
8372
8373 (define-public gnome-tweaks
8374 (package
8375 (name "gnome-tweaks")
8376 (version "3.34.0")
8377 (source (origin
8378 (method url-fetch)
8379 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8380 (version-major+minor version) "/"
8381 "gnome-tweaks-" version ".tar.xz"))
8382 (patches
8383 (list (search-patch "gnome-tweaks-search-paths.patch")))
8384 (sha256
8385 (base32
8386 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
8387 (build-system meson-build-system)
8388 (arguments
8389 `(#:glib-or-gtk? #t
8390 #:configure-flags '("-Dlocalstatedir=/tmp"
8391 "-Dsysconfdir=/tmp")
8392 #:imported-modules ((guix build python-build-system)
8393 ,@%meson-build-system-modules)
8394 #:phases
8395 (modify-phases %standard-phases
8396 (add-after 'unpack 'skip-gtk-update-icon-cache
8397 ;; Don't create 'icon-theme.cache'.
8398 (lambda _
8399 (substitute* "meson-postinstall.py"
8400 (("gtk-update-icon-cache") "true"))
8401 #t))
8402 (add-after 'install 'wrap
8403 (@@ (guix build python-build-system) wrap))
8404 (add-after 'wrap 'wrap-gi-typelib
8405 (lambda* (#:key inputs outputs #:allow-other-keys)
8406 (let ((out (assoc-ref outputs "out"))
8407 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8408 (wrap-program (string-append out "/bin/gnome-tweaks")
8409 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8410 #t)))))
8411 (native-inputs
8412 `(("intltool" ,intltool)
8413 ("pkg-config" ,pkg-config)))
8414 (inputs
8415 `(("gnome-desktop" ,gnome-desktop)
8416 ("gtk+" ,gtk+)
8417 ("gobject-introspection" ,gobject-introspection)
8418 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8419 ("libhandy" ,libhandy)
8420 ("libnotify" ,libnotify)
8421 ("libsoup" ,libsoup)
8422 ("nautilus" ,nautilus)
8423 ("python" ,python)
8424 ("python-pygobject" ,python-pygobject)))
8425 (synopsis "Customize advanced GNOME 3 options")
8426 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8427 (description
8428 "GNOME Tweaks allows adjusting advanced configuration settings in
8429 GNOME 3. This includes things like the fonts used in user interface elements,
8430 alternative user interface themes, changes in window management behavior,
8431 GNOME Shell appearance and extension, etc.")
8432 (license license:gpl3+)))
8433
8434 (define-public gnome-shell-extensions
8435 (package
8436 (name "gnome-shell-extensions")
8437 (version "3.34.2")
8438 (source (origin
8439 (method url-fetch)
8440 (uri (string-append "mirror://gnome/sources/" name "/"
8441 (version-major+minor version) "/"
8442 name "-" version ".tar.xz"))
8443 (sha256
8444 (base32
8445 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
8446 (build-system meson-build-system)
8447 (arguments
8448 '(#:configure-flags '("-Dextension_set=all")))
8449 (native-inputs
8450 `(("glib:bin" ,glib "bin")
8451 ("intltool" ,intltool)
8452 ("pkg-config" ,pkg-config)))
8453 (propagated-inputs
8454 `(("glib" ,glib)))
8455 (synopsis "Extensions for GNOME Shell")
8456 (description "GNOME Shell extensions modify and extend GNOME Shell
8457 functionality and behavior.")
8458 (home-page "https://extensions.gnome.org/")
8459 (license license:gpl3+)))
8460
8461 (define-public arc-theme
8462 (package
8463 (name "arc-theme")
8464 (version "20190917")
8465 (source (origin
8466 (method git-fetch)
8467 (uri (git-reference
8468 (url "https://github.com/NicoHood/arc-theme.git")
8469 (commit version)))
8470 (file-name (git-file-name name version))
8471 (sha256
8472 (base32
8473 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8474 (build-system gnu-build-system)
8475 (arguments
8476 '(#:phases
8477 (modify-phases %standard-phases
8478 ;; autogen.sh calls configure at the end of the script.
8479 (replace 'bootstrap
8480 (lambda _ (invoke "autoreconf" "-vfi")))
8481 (add-before 'build 'set-home ;placate Inkscape
8482 (lambda _
8483 (setenv "HOME" (getcwd))
8484 #t)))))
8485 (native-inputs
8486 `(("autoconf" ,autoconf)
8487 ("automake" ,automake)
8488 ("glib" ,glib "bin") ; for glib-compile-resources
8489 ("gnome-shell" ,gnome-shell)
8490 ("gtk+" ,gtk+)
8491 ("inkscape" ,inkscape)
8492 ("optipng" ,optipng)
8493 ("pkg-config" ,pkg-config)
8494 ("sassc" ,sassc/libsass-3.5)))
8495 (synopsis "A flat GTK+ theme with transparent elements")
8496 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8497 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8498 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8499 (home-page "https://github.com/horst3180/arc-theme")
8500 ;; No "or later" language found.
8501 (license license:gpl3+)))
8502
8503 (define-public faba-icon-theme
8504 (package
8505 (name "faba-icon-theme")
8506 (version "4.3")
8507 (source
8508 (origin
8509 (method git-fetch)
8510 (uri (git-reference
8511 (url "https://github.com/snwh/faba-icon-theme.git")
8512 (commit (string-append "v" version))))
8513 (file-name (git-file-name name version))
8514 (sha256
8515 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8516 (build-system meson-build-system)
8517 (arguments
8518 `(#:phases
8519 (modify-phases %standard-phases
8520 (add-before 'configure 'disable-post-install
8521 (lambda _
8522 (substitute* "meson.build"
8523 (("meson.add_install_script.*") "")))))))
8524 (native-inputs
8525 `(("autoconf" ,autoconf)
8526 ("automake" ,automake)))
8527 (synopsis "Faba icon theme")
8528 (description
8529 "Faba is a minimal icon set used as a basis for other themes such as
8530 Moka")
8531 (home-page "https://snwh.org/moka")
8532 (license (list license:lgpl3+
8533 license:cc-by-sa4.0))))
8534
8535 (define-public moka-icon-theme
8536 (package
8537 (inherit faba-icon-theme)
8538 (name "moka-icon-theme")
8539 (version "5.4.0")
8540 (source
8541 (origin
8542 (method git-fetch)
8543 (uri (git-reference
8544 (url "https://github.com/snwh/moka-icon-theme.git")
8545 (commit (string-append "v" version))))
8546 (file-name (git-file-name name version))
8547 (sha256
8548 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8549 (propagated-inputs
8550 ;; Moka is based on Faba by using it as a fallback icon set instead of
8551 ;; bundling it, so we need to add it as a propagated input.
8552 `(("faba-icon-theme" ,faba-icon-theme)))
8553 (synopsis "Moka icon theme")
8554 (description "Moka is a stylized desktop icon set, designed to be clear,
8555 simple and consistent.")
8556 (license (list license:gpl3+
8557 license:cc-by-sa4.0))))
8558
8559 (define-public arc-icon-theme
8560 (package
8561 (name "arc-icon-theme")
8562 (version "20161122")
8563 (source
8564 (origin
8565 (method git-fetch)
8566 (uri (git-reference
8567 (url "https://github.com/horst3180/arc-icon-theme.git")
8568 (commit version)))
8569 (file-name (git-file-name name version))
8570 (sha256
8571 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8572 (build-system gnu-build-system)
8573 (arguments
8574 `(#:phases
8575 (modify-phases %standard-phases
8576 (add-after 'unpack 'disable-configure-during-bootstrap
8577 (lambda _
8578 (substitute* "autogen.sh"
8579 (("^\"\\$srcdir/configure\".*") ""))
8580 #t)))))
8581 (native-inputs
8582 `(("autoconf" ,autoconf)
8583 ("automake" ,automake)))
8584 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8585 (propagated-inputs
8586 `(("moka-icon-theme" ,moka-icon-theme)))
8587 (synopsis "Arc icon theme")
8588 (description "The Arc icon theme provides a set of icons matching the
8589 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8590 the Moka icon theme.")
8591 (home-page "https://github.com/horst3180/arc-icon-theme")
8592 (license license:gpl3+)))
8593
8594 (define-public folks
8595 (package
8596 (name "folks")
8597 (version "0.13.1")
8598 (source (origin
8599 (method url-fetch)
8600 (uri (string-append
8601 "mirror://gnome/sources/folks/"
8602 (version-major+minor version) "/"
8603 "folks-" version ".tar.xz"))
8604 (sha256
8605 (base32
8606 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8607 (build-system meson-build-system)
8608 (arguments
8609 '(#:phases
8610 (modify-phases %standard-phases
8611 (add-after 'unpack 'skip-gtk-update-icon-cache
8612 ;; Don't create 'icon-theme.cache'.
8613 (lambda _
8614 (substitute* "meson_post_install.py"
8615 (("gtk-update-icon-cache") "true"))
8616 #t)))))
8617 (inputs
8618 `(("bdb" ,bdb)
8619 ("dbus-glib" ,dbus-glib)
8620 ("evolution-data-server" ,evolution-data-server)
8621 ("glib" ,glib)
8622 ("libgee" ,libgee)
8623 ("readline" ,readline)
8624 ("telepathy-glib" ,telepathy-glib)))
8625 (native-inputs
8626 `(("glib:bin" ,glib "bin")
8627 ("gobject-introspection" ,gobject-introspection)
8628 ("intltool" ,intltool)
8629 ("pkg-config" ,pkg-config)
8630 ("vala" ,vala)))
8631 (synopsis "Library to aggregate data about people")
8632 (description "Libfolks is a library that aggregates information about people
8633 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8634 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8635 etc.) to create metacontacts. It's written in Vala, which generates C code when
8636 compiled.")
8637 (home-page "https://wiki.gnome.org/Projects/Folks")
8638 (license license:lgpl2.1+)))
8639
8640 (define-public gfbgraph
8641 (package
8642 (name "gfbgraph")
8643 (version "0.2.3")
8644 (source (origin
8645 (method url-fetch)
8646 (uri (string-append
8647 "mirror://gnome/sources/gfbgraph/"
8648 (version-major+minor version) "/"
8649 "gfbgraph-" version ".tar.xz"))
8650 (sha256
8651 (base32
8652 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8653 (build-system glib-or-gtk-build-system)
8654 (arguments
8655 `(#:tests? #f ; Tests appear to require the network.
8656 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8657 #:configure-flags '("--disable-gtk-doc"
8658 "--disable-static"
8659 "--enable-introspection")))
8660 (native-inputs
8661 `(("pkg-config" ,pkg-config)
8662 ("gobject-introspection" ,gobject-introspection)))
8663 (inputs
8664 `(("json-glib" ,json-glib)
8665 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8666 ("rest" ,rest)))
8667 (synopsis "GLib/GObject wrapper for the Facebook API")
8668 (description "This library allows you to use the Facebook API from
8669 GLib/GObject code.")
8670 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8671 (license license:lgpl2.1+)))
8672
8673 (define-public libgnomekbd
8674 (package
8675 (name "libgnomekbd")
8676 (version "3.26.1")
8677 (source (origin
8678 (method url-fetch)
8679 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8680 (version-major+minor version) "/"
8681 "libgnomekbd-" version ".tar.xz"))
8682 (sha256
8683 (base32
8684 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8685 (build-system gnu-build-system)
8686 (native-inputs
8687 `(("pkg-config" ,pkg-config)
8688 ("glib" ,glib "bin")
8689 ("intltool" ,intltool)))
8690 (propagated-inputs
8691 ;; Referred to in .h files and .pc.
8692 `(("glib" ,glib)
8693 ("gtk+" ,gtk+)
8694 ("libxklavier" ,libxklavier)))
8695 (home-page "https://www.gnome.org")
8696 (synopsis "GNOME keyboard configuration library")
8697 (description
8698 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8699 environment, which can notably display keyboard layouts.")
8700 (license license:lgpl2.0+)))
8701
8702 ;;; This package is no longer maintained:
8703 ;;; https://wiki.gnome.org/Attic/LibUnique
8704 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8705 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8706 (define-public libunique
8707 (package
8708 (name "libunique")
8709 (version "3.0.2")
8710 (source (origin
8711 (method url-fetch)
8712 (uri (string-append "mirror://gnome/sources/" name "/"
8713 (version-major+minor version) "/"
8714 name "-" version ".tar.xz"))
8715 (sha256
8716 (base32
8717 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8718 (build-system glib-or-gtk-build-system)
8719 (arguments
8720 `(#:configure-flags '("--disable-static"
8721 "--disable-dbus" ; use gdbus
8722 "--enable-introspection")))
8723 (native-inputs
8724 `(("pkg-config" ,pkg-config)
8725 ("gobject-introspection" ,gobject-introspection)
8726 ("glib:bin" ,glib "bin")
8727 ("gtk-doc" ,gtk-doc)))
8728 (propagated-inputs
8729 ;; Referred to in .h files and .pc.
8730 `(("gtk+" ,gtk+)))
8731 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8732 (synopsis "Library for writing single instance applications")
8733 (description
8734 "Libunique is a library for writing single instance applications. If you
8735 launch a single instance application twice, the second instance will either just
8736 quit or will send a message to the running instance. Libunique makes it easy to
8737 write this kind of application, by providing a base class, taking care of all
8738 the IPC machinery needed to send messages to a running instance, and also
8739 handling the startup notification side.")
8740 (license license:lgpl2.1+)))
8741
8742 (define-public gnome-calculator
8743 (package
8744 (name "gnome-calculator")
8745 (version "3.34.1")
8746 (source
8747 (origin
8748 (method url-fetch)
8749 (uri (string-append "mirror://gnome/sources/" name "/"
8750 (version-major+minor version) "/"
8751 name "-" version ".tar.xz"))
8752 (sha256
8753 (base32
8754 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
8755 (build-system meson-build-system)
8756 (arguments '(#:glib-or-gtk? #t))
8757 (native-inputs
8758 `(("gettext" ,gettext-minimal)
8759 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8760 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8761 ("itstool" ,itstool)
8762 ("vala" ,vala)
8763 ("pkg-config" ,pkg-config)))
8764 (inputs
8765 `(("glib" ,glib)
8766 ("gtksourceview" ,gtksourceview)
8767 ("libgee" ,libgee)
8768 ("libsoup" ,libsoup)
8769 ("libxml2" ,libxml2)
8770 ("mpc" ,mpc)
8771 ("mpfr" ,mpfr)))
8772 (home-page "https://wiki.gnome.org/Apps/Calculator")
8773 (synopsis "Desktop calculator")
8774 (description
8775 "Calculator is an application that solves mathematical equations and
8776 is suitable as a default application in a Desktop environment.")
8777 (license license:gpl3)))
8778
8779 (define-public xpad
8780 (package
8781 (name "xpad")
8782 (version "5.1.0")
8783 (source
8784 (origin
8785 (method url-fetch)
8786 (uri (string-append "https://launchpad.net/xpad/trunk/"
8787 version "/+download/"
8788 name "-" version ".tar.bz2"))
8789 (sha256
8790 (base32
8791 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8792 (build-system gnu-build-system)
8793 (native-inputs
8794 `(("autoconf" ,autoconf)
8795 ("automake" ,automake)
8796 ("gtk+:bin" ,gtk+ "bin")
8797 ("intltool" ,intltool)
8798 ("pkg-config" ,pkg-config)))
8799 (inputs
8800 `(("gtksourceview" ,gtksourceview-3)
8801 ("libsm" ,libsm)))
8802 (home-page "https://wiki.gnome.org/Apps/Xpad")
8803 (synopsis "Virtual sticky note")
8804 (description
8805 "Xpad is a sticky note that strives to be simple, fault tolerant,
8806 and customizable. Xpad consists of independent pad windows, each is
8807 basically a text box in which notes can be written.")
8808 (license license:gpl3+)))
8809
8810 (define-public gucharmap
8811 (let ((unicode-files
8812 '(("Blocks.txt"
8813 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8814 ("DerivedAge.txt"
8815 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8816 ("NamesList.txt"
8817 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8818 ("Scripts.txt"
8819 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8820 ("UnicodeData.txt"
8821 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8822 ("Unihan.zip"
8823 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8824 (package
8825 (name "gucharmap")
8826 (version "12.0.1")
8827 (source
8828 (origin
8829 (method url-fetch)
8830 (uri (string-append "mirror://gnome/sources/" name "/"
8831 (version-major+minor version) "/"
8832 name "-" version ".tar.xz"))
8833 (sha256
8834 (base32
8835 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8836 (build-system glib-or-gtk-build-system)
8837 (arguments
8838 `(#:modules ((ice-9 match)
8839 (guix build glib-or-gtk-build-system)
8840 (guix build utils))
8841 #:configure-flags
8842 (list "--with-unicode-data=../unicode-data")
8843 #:phases
8844 (modify-phases %standard-phases
8845 (add-after 'unpack 'prepare-unicode-data
8846 (lambda* (#:key inputs #:allow-other-keys)
8847 (mkdir-p "../unicode-data")
8848 (with-directory-excursion "../unicode-data"
8849 (for-each (match-lambda
8850 ((file _)
8851 (install-file (assoc-ref inputs file) ".")))
8852 ',unicode-files))
8853 #t)))))
8854 (native-inputs
8855 `(("desktop-file-utils" ,desktop-file-utils)
8856 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8857 ("gobject-introspection" ,gobject-introspection)
8858 ("intltool" ,intltool)
8859 ("itstool" ,itstool)
8860 ("pkg-config" ,pkg-config)
8861 ,@(map (match-lambda
8862 ((file hash)
8863 `(,file
8864 ,(origin
8865 (method url-fetch)
8866 (uri (string-append
8867 "http://www.unicode.org/Public/12.0.0/ucd/"
8868 file))
8869 (sha256 (base32 hash))))))
8870 unicode-files)
8871 ("unzip" ,unzip)))
8872 (inputs
8873 `(("gtk+" ,gtk+)
8874 ("xmllint" ,libxml2)))
8875 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8876 (synopsis "Unicode character picker and font browser")
8877 (description
8878 "This program allows you to browse through all the available Unicode
8879 characters and categories for the installed fonts, and to examine their
8880 detailed properties. It is an easy way to find the character you might
8881 only know by its Unicode name or code point.")
8882 (license license:gpl3+))))
8883
8884 (define-public bluefish
8885 (package
8886 (name "bluefish")
8887 (version "2.2.11")
8888 (source
8889 (origin
8890 (method url-fetch)
8891 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8892 "bluefish-" version ".tar.gz"))
8893 (sha256
8894 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
8895 (build-system gnu-build-system)
8896 (native-inputs
8897 `(("desktop-file-utils" ,desktop-file-utils)
8898 ("intltool" ,intltool)
8899 ("pkg-config" ,pkg-config)))
8900 (inputs
8901 `(("enchant" ,enchant)
8902 ("gtk+" ,gtk+)
8903 ("python" ,python-wrapper)
8904 ("xmllint" ,libxml2)
8905 ("gucharmap" ,gucharmap)))
8906 (home-page "http://bluefish.openoffice.nl")
8907 (synopsis "Web development studio")
8908 (description
8909 "Bluefish is an editor targeted towards programmers and web developers,
8910 with many options to write web sites, scripts and other code.
8911 Bluefish supports many programming and markup languages.")
8912 (license license:gpl3+)))
8913
8914 (define-public gnome-system-monitor
8915 (package
8916 (name "gnome-system-monitor")
8917 (version "3.32.1")
8918 (source
8919 (origin
8920 (method url-fetch)
8921 (uri (string-append "mirror://gnome/sources/" name "/"
8922 (version-major+minor version) "/"
8923 name "-" version ".tar.xz"))
8924 (sha256
8925 (base32
8926 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8927 (build-system meson-build-system)
8928 (arguments
8929 '(#:glib-or-gtk? #t
8930 #:configure-flags '("-Dsystemd=false")))
8931 (native-inputs
8932 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8933 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8934 ("intltool" ,intltool)
8935 ("itstool" ,itstool)
8936 ("libgtop" ,libgtop)
8937 ("polkit" ,polkit)
8938 ("pkg-config" ,pkg-config)))
8939 (inputs
8940 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8941 ("gtk+" ,gtk+)
8942 ("gtkmm" ,gtkmm)
8943 ("librsvg" ,librsvg)
8944 ("libxml2" ,libxml2)
8945 ("libwnck" ,libwnck)))
8946 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8947 (synopsis "Process viewer and system resource monitor for GNOME")
8948 (description
8949 "GNOME System Monitor is a GNOME process viewer and system monitor with
8950 an attractive, easy-to-use interface. It has features, such as a tree view
8951 for process dependencies, icons for processes, the ability to hide processes,
8952 graphical time histories of CPU/memory/swap usage and the ability to
8953 kill/reinice processes.")
8954 (license license:gpl2+)))
8955
8956 (define-public python-pyatspi
8957 (package
8958 (name "python-pyatspi")
8959 (version "2.34.0")
8960 (source (origin
8961 (method url-fetch)
8962 (uri (string-append
8963 "mirror://gnome/sources/pyatspi/"
8964 (version-major+minor version)
8965 "/pyatspi-" version ".tar.xz"))
8966 (sha256
8967 (base32
8968 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8969 (build-system gnu-build-system)
8970 (arguments
8971 `(#:phases
8972 (modify-phases %standard-phases
8973 (add-before 'build 'fix-atk-load
8974 (lambda _
8975 (substitute* "pyatspi/__init__.py"
8976 (("from gi.repository import Atspi")
8977 "gi.require_version('Gtk', '3.0')
8978 from gi.repository import Gtk
8979 from gi.repository import Atspi"))
8980 #t)))))
8981 (native-inputs
8982 `(("pkg-config" ,pkg-config)))
8983 (inputs
8984 `(("python" ,python)))
8985 (propagated-inputs
8986 `(("python-pygobject" ,python-pygobject)))
8987 (synopsis "Python client bindings for D-Bus AT-SPI")
8988 (home-page "https://wiki.linuxfoundation.org/accessibility\
8989 /atk/at-spi/at-spi_on_d-bus")
8990 (description
8991 "This package includes a python client library for the AT-SPI D-Bus
8992 accessibility infrastructure.")
8993 (license license:lgpl2.0)
8994 (properties '((upstream-name . "pyatspi")))))
8995
8996 (define-public python2-pyatspi
8997 (package
8998 (inherit python-pyatspi)
8999 (name "python2-pyatspi")
9000 (inputs
9001 `(("python" ,python-2)))
9002 (propagated-inputs
9003 `(("python-pygobject" ,python2-pygobject)))))
9004
9005 (define-public orca
9006 (package
9007 (name "orca")
9008 (version "3.34.1")
9009 (source (origin
9010 (method url-fetch)
9011 (uri (string-append
9012 "mirror://gnome/sources/" name "/"
9013 (version-major+minor version) "/"
9014 name "-" version ".tar.xz"))
9015 (sha256
9016 (base32
9017 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
9018 (build-system glib-or-gtk-build-system)
9019 (arguments
9020 '(#:phases
9021 (modify-phases %standard-phases
9022 (add-before 'configure 'qualify-xkbcomp
9023 (lambda* (#:key inputs #:allow-other-keys)
9024 (let ((xkbcomp (string-append
9025 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9026 (substitute* "src/orca/orca.py"
9027 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9028 #t))
9029 (add-after 'install 'wrap-orca
9030 (lambda* (#:key outputs #:allow-other-keys)
9031 (let* ((out (assoc-ref outputs "out"))
9032 (prog (string-append out "/bin/orca")))
9033 (wrap-program prog
9034 `("GI_TYPELIB_PATH" ":" prefix
9035 (,(getenv "GI_TYPELIB_PATH")))
9036 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9037 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9038 `("PYTHONPATH" ":" prefix
9039 (,(getenv "PYTHONPATH")))))
9040 #t)))))
9041 (native-inputs
9042 `(("intltool" ,intltool)
9043 ("itstool" ,itstool)
9044 ("pkg-config" ,pkg-config)
9045 ("xmllint" ,libxml2)))
9046 (inputs
9047 `(("at-spi2-atk" ,at-spi2-atk)
9048 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9049 ("gstreamer" ,gstreamer)
9050 ("gst-plugins-base" ,gst-plugins-base)
9051 ("gst-plugins-good" ,gst-plugins-good)
9052 ("gtk+" ,gtk+)
9053 ("python" ,python)
9054 ("python-pygobject" ,python-pygobject)
9055 ("python-pyatspi" ,python-pyatspi)
9056 ("python-speechd" ,speech-dispatcher)
9057 ("xkbcomp" ,xkbcomp)))
9058 (synopsis
9059 "Screen reader for individuals who are blind or visually impaired")
9060 (home-page "https://wiki.gnome.org/Projects/Orca")
9061 (description
9062 "Orca is a screen reader that provides access to the graphical desktop
9063 via speech and refreshable braille. Orca works with applications and toolkits
9064 that support the Assistive Technology Service Provider Interface (AT-SPI).")
9065 (license license:lgpl2.1+)))
9066
9067 (define-public gspell
9068 (package
9069 (name "gspell")
9070 (version "1.8.2")
9071 (source (origin
9072 (method url-fetch)
9073 (uri (string-append "mirror://gnome/sources/" name "/"
9074 (version-major+minor version) "/"
9075 name "-" version ".tar.xz"))
9076 (sha256
9077 (base32
9078 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
9079 (patches (search-patches "gspell-dash-test.patch"))))
9080 (build-system glib-or-gtk-build-system)
9081 (arguments
9082 '(#:configure-flags (list "--enable-vala")
9083 #:phases
9084 (modify-phases %standard-phases
9085 (add-before 'check 'pre-check
9086 (lambda* (#:key inputs #:allow-other-keys)
9087 ;; Tests require a running X server.
9088 (system "Xvfb :1 &")
9089 (setenv "DISPLAY" ":1")
9090
9091 ;; For the missing /etc/machine-id.
9092 (setenv "DBUS_FATAL_WARNINGS" "0")
9093
9094 ;; Allow Enchant and its Aspell backend to find the en_US
9095 ;; dictionary.
9096 (setenv "ASPELL_DICT_DIR"
9097 (string-append (assoc-ref inputs "aspell-dict-en")
9098 "/lib/aspell"))
9099 #t)))))
9100 (inputs
9101 `(("gtk+" ,gtk+)
9102 ("glib" ,glib)
9103 ("iso-codes" ,iso-codes)))
9104 (native-inputs
9105 `(("glib" ,glib "bin")
9106 ("gobject-introspection" ,gobject-introspection)
9107 ("pkg-config" ,pkg-config)
9108 ("vala" ,vala) ;for VAPI, needed by Geary
9109 ("xmllint" ,libxml2)
9110
9111 ;; For tests.
9112 ("aspell-dict-en" ,aspell-dict-en)
9113 ("xorg-server" ,xorg-server-for-tests)))
9114 (propagated-inputs
9115 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
9116 (home-page "https://wiki.gnome.org/Projects/gspell")
9117 (synopsis "GNOME's alternative spell checker")
9118 (description
9119 "gspell provides a flexible API to add spell-checking to a GTK+
9120 application. It provides a GObject API, spell-checking to text entries and
9121 text views, and buttons to choose the language.")
9122 (license license:gpl2+)))
9123
9124 (define-public gnome-planner
9125 (package
9126 (name "gnome-planner")
9127 (version "0.14.6")
9128 (source (origin
9129 (method url-fetch)
9130 (uri (string-append "mirror://gnome/sources/planner/"
9131 (version-major+minor version) "/planner-"
9132 version ".tar.xz"))
9133 (sha256
9134 (base32
9135 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9136 (build-system glib-or-gtk-build-system)
9137 (arguments
9138 ;; Disable the Python bindings because the Planner program functions
9139 ;; without them, and (as of 2017-06-13) we have not packaged all of
9140 ;; packages that are necessary for building the Python bindings.
9141 `(#:configure-flags
9142 (list "--disable-python"
9143 ,@(if (string=? "aarch64-linux" (%current-system))
9144 '("--build=aarch64-unknown-linux-gnu")
9145 '()))))
9146 (inputs
9147 `(("libgnomecanvas" ,libgnomecanvas)
9148 ("libgnomeui" ,libgnomeui)
9149 ("libglade" ,libglade)
9150 ("gnome-vfs" ,gnome-vfs)
9151 ("gconf" ,gconf)
9152 ("libxml2" ,libxml2)
9153 ("libxslt" ,libxslt)
9154 ("gtk+" ,gtk+)
9155 ("glib" ,glib)))
9156 (native-inputs
9157 `(("intltool" ,intltool)
9158 ("scrollkeeper" ,scrollkeeper)
9159 ("pkg-config" ,pkg-config)))
9160 (home-page "https://wiki.gnome.org/Apps/Planner")
9161 (synopsis "Project management software for the GNOME desktop")
9162 (description
9163 "GNOME Planner is a project management tool based on the Work Breakdown
9164 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9165 the resources, tasks, and constraints that you define, Planner generates
9166 various views into a project. For example, Planner can show a Gantt chart of
9167 the project. It can show a detailed summary of tasks including their
9168 duration, cost, and current progress. It can also show a report of resource
9169 utilization that highlights under-utilized and over-utilized resources. These
9170 views can be printed as PDF or PostScript files, or exported to HTML.")
9171 (license license:gpl2+)))
9172
9173 (define-public lollypop
9174 (package
9175 (name "lollypop")
9176 (version "1.2.32")
9177 (source
9178 (origin
9179 (method url-fetch)
9180 (uri (string-append "https://adishatz.org/lollypop/"
9181 "lollypop-" version ".tar.xz"))
9182 (sha256
9183 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
9184 (build-system meson-build-system)
9185 (arguments
9186 `(#:imported-modules
9187 (,@%meson-build-system-modules
9188 (guix build python-build-system))
9189 #:modules
9190 ((guix build meson-build-system)
9191 ((guix build python-build-system) #:prefix python:)
9192 (guix build utils))
9193 #:glib-or-gtk? #t
9194 #:tests? #f ; no test suite
9195 #:phases
9196 (modify-phases %standard-phases
9197 (add-after 'install 'wrap-program
9198 (lambda* (#:key outputs #:allow-other-keys)
9199 (let ((out (assoc-ref outputs "out"))
9200 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9201 (wrap-program (string-append out "/bin/lollypop")
9202 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9203 #t))
9204 (add-after 'install 'wrap-python
9205 (assoc-ref python:%standard-phases 'wrap)))))
9206 (native-inputs
9207 `(("intltool" ,intltool)
9208 ("itstool" ,itstool)
9209 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9210 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9211 ("pkg-config" ,pkg-config)))
9212 (inputs
9213 `(("gobject-introspection" ,gobject-introspection)
9214 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9215 ("gst-plugins-base" ,gst-plugins-base)
9216 ("libnotify" ,libnotify)
9217 ("libsecret" ,libsecret)
9218 ("libsoup" ,libsoup)
9219 ("python" ,python)
9220 ("python-beautifulsoup4" ,python-beautifulsoup4)
9221 ("python-gst" ,python-gst)
9222 ("python-pil" ,python-pillow)
9223 ("python-pycairo" ,python-pycairo)
9224 ("python-pygobject" ,python-pygobject)
9225 ("python-pylast" ,python-pylast)
9226 ("totem-pl-parser" ,totem-pl-parser)
9227 ("webkitgtk" ,webkitgtk)))
9228 (propagated-inputs
9229 `(;; gst-plugins-base is required to start Lollypop,
9230 ;; the others are required to play streaming.
9231 ("gst-plugins-good" ,gst-plugins-good)
9232 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9233 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9234 (synopsis "GNOME music playing application")
9235 (description
9236 "Lollypop is a music player designed to play well with GNOME desktop.
9237 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9238 from artists and tracks from the web. It also fetches cover artworks
9239 automatically and it can stream songs from online music services and charts.")
9240 (license license:gpl3+)))
9241
9242 (define-public gnome-video-effects
9243 (package
9244 (name "gnome-video-effects")
9245 (version "0.4.3")
9246 (source (origin
9247 (method url-fetch)
9248 (uri (string-append "mirror://gnome/sources/" name "/"
9249 (version-major+minor version) "/" name "-"
9250 version ".tar.xz"))
9251 (sha256
9252 (base32
9253 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9254 (build-system glib-or-gtk-build-system)
9255 (arguments
9256 `(#:out-of-source? #f))
9257 (native-inputs
9258 `(("glib:bin" ,glib "bin")
9259 ("intltool" ,intltool)
9260 ("gettext" ,gettext-minimal)
9261 ("pkg-config" ,pkg-config)))
9262 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9263 (synopsis "Video effects for Cheese and other GNOME applications")
9264 (description
9265 "A collection of GStreamer video filters and effects to be used in
9266 photo-booth-like software, such as Cheese.")
9267 (license license:gpl2+)))
9268
9269 (define-public cheese
9270 (package
9271 (name "cheese")
9272 (version "3.34.0")
9273 (source (origin
9274 (method url-fetch)
9275 (uri (string-append "mirror://gnome/sources/" name "/"
9276 (version-major+minor version) "/" name "-"
9277 version ".tar.xz"))
9278 (sha256
9279 (base32
9280 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
9281 (arguments
9282 `(#:glib-or-gtk? #t
9283 ;; Tests require GDK.
9284 #:tests? #f
9285 #:phases
9286 (modify-phases %standard-phases
9287 (add-after 'unpack 'skip-gtk-update-icon-cache
9288 (lambda _
9289 ;; Don't create 'icon-theme.cache'
9290 (substitute* "meson_post_install.py"
9291 (("gtk-update-icon-cache") (which "true")))
9292 #t))
9293 (add-after 'install 'wrap-cheese
9294 (lambda* (#:key inputs outputs #:allow-other-keys)
9295 (let ((out (assoc-ref outputs "out"))
9296 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9297 (wrap-program (string-append out "/bin/cheese")
9298 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9299 #t)))))
9300 (build-system meson-build-system)
9301 (native-inputs
9302 `(("docbook-xsl" ,docbook-xsl)
9303 ("glib:bin" ,glib "bin")
9304 ("gtk-doc" ,gtk-doc)
9305 ("intltool" ,intltool)
9306 ("itstool" ,itstool)
9307 ("libxml2" ,libxml2)
9308 ("libxslt" ,libxslt)
9309 ("pkg-config" ,pkg-config)
9310 ("vala" ,vala)))
9311 (propagated-inputs
9312 `(("gnome-video-effects" ,gnome-video-effects)
9313 ("clutter" ,clutter)
9314 ("clutter-gst" ,clutter-gst)
9315 ("clutter-gtk" ,clutter-gtk)
9316 ("libcanberra" ,libcanberra)
9317 ("gdk-pixbuf" ,gdk-pixbuf)
9318 ("glib" ,glib)
9319 ("gstreamer" ,gstreamer)))
9320 (inputs
9321 `(("gnome-desktop" ,gnome-desktop)
9322 ("gobject-introspection" ,gobject-introspection)
9323 ("gst-plugins-base" ,gst-plugins-base)
9324 ("gst-plugins-bad" ,gst-plugins-bad)
9325 ("gtk+" ,gtk+)
9326 ("libx11" ,libx11)
9327 ("libxtst" ,libxtst)))
9328 (home-page "https://wiki.gnome.org/Apps/Cheese")
9329 (synopsis "Webcam photo booth software for GNOME")
9330 (description
9331 "Cheese uses your webcam to take photos and videos. Cheese can also
9332 apply fancy special effects and lets you share the fun with others.")
9333 (license license:gpl2+)))
9334
9335 (define-public sound-juicer
9336 (package
9337 (name "sound-juicer")
9338 (version "3.24.0")
9339 (source
9340 (origin
9341 (method url-fetch)
9342 (uri (string-append "mirror://gnome/sources/" name "/"
9343 (version-major+minor version) "/"
9344 name "-" version ".tar.xz"))
9345 (sha256
9346 (base32
9347 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9348 (build-system glib-or-gtk-build-system)
9349 (native-inputs
9350 `(("desktop-file-utils" ,desktop-file-utils)
9351 ("intltool" ,intltool)
9352 ("itstool" ,itstool)
9353 ("pkg-config" ,pkg-config)
9354 ("xmllint" ,libxml2)))
9355 (inputs
9356 `(("gtk+" ,gtk+)
9357 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9358 ("gstreamer" ,gstreamer)
9359 ("gst-plugins-base" ,gst-plugins-base)
9360 ("gst-plugins-good" ,gst-plugins-good)
9361 ("iso-codes" ,iso-codes)
9362 ("libbrasero-media3" ,brasero)
9363 ("libcanberra" ,libcanberra)
9364 ("libdiscid" ,libdiscid)
9365 ("libmusicbrainz" ,libmusicbrainz)
9366 ("neon" ,neon)))
9367 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9368 (synopsis "Audio music cd ripper")
9369 (description "Sound Juicer extracts audio from compact discs and convert it
9370 into audio files that a personal computer or digital audio player can play.
9371 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9372 mp3, Ogg Vorbis and FLAC")
9373 (license license:gpl2+)))
9374
9375 (define-public soundconverter
9376 (package
9377 (name "soundconverter")
9378 (version "3.0.2")
9379 (source
9380 (origin
9381 (method url-fetch)
9382 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9383 version "/+download/"
9384 "soundconverter-" version ".tar.xz"))
9385
9386 (sha256
9387 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
9388 (build-system glib-or-gtk-build-system)
9389 (arguments
9390 `(#:imported-modules ((guix build python-build-system)
9391 (guix build glib-or-gtk-build-system)
9392 ,@%gnu-build-system-modules)
9393
9394 #:modules ((guix build glib-or-gtk-build-system)
9395 (guix build utils)
9396 ((guix build gnu-build-system) #:prefix gnu:)
9397 ((guix build python-build-system) #:prefix python:))
9398
9399 #:phases
9400 (modify-phases %standard-phases
9401 (add-after 'install 'wrap-soundconverter-for-python
9402 (assoc-ref python:%standard-phases 'wrap))
9403 (add-after 'install 'wrap-soundconverter
9404 (lambda* (#:key inputs outputs #:allow-other-keys)
9405 (let ((out (assoc-ref outputs "out"))
9406 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9407 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9408 (wrap-program (string-append out "/bin/soundconverter")
9409 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9410 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9411 #t)))))
9412 (native-inputs
9413 `(("intltool" ,intltool)
9414 ("pkg-config" ,pkg-config)
9415 ("glib:bin" ,glib "bin")))
9416 (inputs
9417 `(("gtk+" ,gtk+)
9418 ("python" ,python)
9419 ("python-pygobject" ,python-pygobject)
9420 ("gstreamer" ,gstreamer)
9421 ("gst-plugins-base" ,gst-plugins-base)))
9422 (home-page "https://soundconverter.org/")
9423 (synopsis "Convert between audio formats with a graphical interface")
9424 (description
9425 "SoundConverter supports converting between many audio formats including
9426 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9427 configurable file renaming. ")
9428 (license license:gpl3)))
9429
9430 (define-public workrave
9431 (package
9432 (name "workrave")
9433 (version "1.10.42")
9434 (source
9435 (origin
9436 (method git-fetch)
9437 (uri (git-reference
9438 (url "https://github.com/rcaelers/workrave.git")
9439 (commit (string-append "v" (string-map
9440 (match-lambda (#\. #\_) (chr chr))
9441 version)))))
9442 (file-name (git-file-name name version))
9443 (sha256
9444 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
9445 (build-system glib-or-gtk-build-system)
9446 (arguments
9447 ;; The only tests are maintainer tests (in po/), which fail.
9448 `(#:tests? #f))
9449 (inputs `(("glib" ,glib)
9450 ("gtk+" ,gtk+)
9451 ("gdk-pixbuf" ,gdk-pixbuf)
9452 ("gtkmm" ,gtkmm)
9453 ("glibmm" ,glibmm)
9454 ("libx11" ,libx11)
9455 ("libxtst" ,libxtst)
9456 ("dconf" ,dconf)
9457 ("libice" ,libice)
9458 ("libsm" ,libsm)
9459 ("libxscrnsaver" ,libxscrnsaver)))
9460 (native-inputs `(("boost" ,boost)
9461 ("pkg-config" ,pkg-config)
9462 ("gettext" ,gettext-minimal)
9463 ("autoconf" ,autoconf)
9464 ("autoconf-archive" , autoconf-archive)
9465 ("automake" ,automake)
9466 ("libtool" ,libtool)
9467 ("intltool" ,intltool)
9468 ("gobject-introspection" ,gobject-introspection)
9469 ("python3" ,python-3)
9470 ("python-jinja2" ,python-jinja2)))
9471 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9472 (description
9473 "Workrave is a program that assists in the recovery and prevention of
9474 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9475 micro-pauses and rest breaks, and restricts you to your daily limit.")
9476 (home-page "http://www.workrave.org")
9477 (license license:gpl3+)))
9478
9479 (define-public ghex
9480 (package
9481 (name "ghex")
9482 (version "3.18.4")
9483 (source (origin
9484 (method url-fetch)
9485 (uri (string-append "mirror://gnome/sources/ghex/"
9486 (version-major+minor version) "/"
9487 "ghex-" version ".tar.xz"))
9488 (sha256
9489 (base32
9490 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9491 (build-system meson-build-system)
9492 (arguments
9493 '(#:glib-or-gtk? #t
9494 #:phases
9495 (modify-phases %standard-phases
9496 (add-after 'unpack 'skip-gtk-update-icon-cache
9497 ;; Don't create 'icon-theme.cache'.
9498 (lambda _
9499 (substitute* "meson_post_install.py"
9500 (("gtk-update-icon-cache") (which "true")))
9501 #t)))))
9502 (native-inputs
9503 `(("pkg-config" ,pkg-config)
9504 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9505 ("gnome-common" ,gnome-common)
9506 ("which" ,which)
9507 ("intltool" ,intltool)
9508 ("yelp-tools" ,yelp-tools)
9509 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9510 (inputs
9511 `(("atk" ,atk)
9512 ("gtk" ,gtk+)))
9513 (synopsis "GNOME hexadecimal editor")
9514 (description "The GHex program can view and edit files in two ways:
9515 hexadecimal or ASCII. It is useful for editing binary files in general.")
9516 (home-page "https://wiki.gnome.org/Apps/Ghex")
9517 (license license:gpl2)))
9518
9519 (define-public libdazzle
9520 (package
9521 (name "libdazzle")
9522 (version "3.34.1")
9523 (source (origin
9524 (method url-fetch)
9525 (uri (string-append "mirror://gnome/sources/libdazzle/"
9526 (version-major+minor version) "/"
9527 "libdazzle-" version ".tar.xz"))
9528 (sha256
9529 (base32
9530 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
9531 (build-system meson-build-system)
9532 (arguments
9533 `(#:phases
9534 (modify-phases %standard-phases
9535 (add-before 'check 'pre-check
9536 (lambda _
9537 ;; Tests require a running X server.
9538 (system "Xvfb :1 &")
9539 (setenv "DISPLAY" ":1")
9540 #t)))))
9541 (native-inputs
9542 `(("glib" ,glib "bin") ; glib-compile-resources
9543 ("pkg-config" ,pkg-config)
9544 ;; For tests.
9545 ("xorg-server" ,xorg-server-for-tests)))
9546 (inputs
9547 `(("glib" ,glib)
9548 ("gobject-introspection" ,gobject-introspection)
9549 ("gtk+" ,gtk+)
9550 ("vala" ,vala)))
9551 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9552 (synopsis "Companion library to GObject and Gtk+")
9553 (description "The libdazzle library is a companion library to GObject and
9554 Gtk+. It provides various features that the authors wish were in the
9555 underlying library but cannot for various reasons. In most cases, they are
9556 wildly out of scope for those libraries. In other cases, they are not quite
9557 generic enough to work for everyone.")
9558 (license license:gpl3+)))
9559
9560 (define-public evolution
9561 (package
9562 (name "evolution")
9563 (version "3.34.2")
9564 (source (origin
9565 (method url-fetch)
9566 (uri (string-append "mirror://gnome/sources/evolution/"
9567 (version-major+minor version) "/"
9568 "evolution-" version ".tar.xz"))
9569 (sha256
9570 (base32
9571 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
9572 (build-system cmake-build-system)
9573 (arguments
9574 `(#:imported-modules (,@%cmake-build-system-modules
9575 (guix build glib-or-gtk-build-system))
9576 #:modules ((guix build cmake-build-system)
9577 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9578 (guix build utils))
9579 #:configure-flags
9580 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9581 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9582 ; in four years and cannot be built.
9583 #:phases
9584 (modify-phases %standard-phases
9585 ;; The build system attempts to install user interface modules to the
9586 ;; output directory of the "evolution-data-server" package. This
9587 ;; change redirects that change.
9588 (add-after 'unpack 'patch-ui-module-dir
9589 (lambda* (#:key outputs #:allow-other-keys)
9590 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9591 (("\\$\\{edsuimoduledir\\}")
9592 (string-append (assoc-ref outputs "out")
9593 "/lib/evolution-data-server/ui-modules")))
9594 #t))
9595 (add-after 'install 'glib-or-gtk-compile-schemas
9596 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9597 (add-after 'install 'glib-or-gtk-wrap
9598 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9599 (native-inputs
9600 `(("glib" ,glib "bin") ; glib-mkenums
9601 ("pkg-config" ,pkg-config)
9602 ("intltool" ,intltool)
9603 ("itstool" ,itstool)))
9604 (inputs
9605 `(("enchant" ,enchant)
9606 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9607 ("gcr" ,gcr)
9608 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9609 ("gnome-autoar" ,gnome-autoar)
9610 ("gnome-desktop" ,gnome-desktop)
9611 ("gspell" ,gspell)
9612 ("highlight" ,highlight)
9613 ("libcanberra" ,libcanberra)
9614 ("libgweather" ,libgweather)
9615 ("libnotify" ,libnotify)
9616 ("libsoup" ,libsoup)
9617 ("nss" ,nss)
9618 ("openldap" ,openldap)
9619 ("webkitgtk" ,webkitgtk)
9620 ("ytnef" ,ytnef)))
9621 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9622 (synopsis "Manage your email, contacts and schedule")
9623 (description "Evolution is a personal information management application
9624 that provides integrated mail, calendaring and address book
9625 functionality.")
9626 ;; See COPYING for details.
9627 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9628 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9629 license:lgpl2.1+)))) ; smime/lib/*
9630
9631 (define-public gthumb
9632 (package
9633 (name "gthumb")
9634 (version "3.8.2")
9635 (source (origin
9636 (method url-fetch)
9637 (uri (string-append "mirror://gnome/sources/gthumb/"
9638 (version-major+minor version) "/"
9639 "gthumb-" version ".tar.xz"))
9640 (sha256
9641 (base32
9642 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9643 (build-system meson-build-system)
9644 (arguments
9645 `(#:glib-or-gtk? #t
9646 #:configure-flags
9647 ;; Ensure the RUNPATH contains all installed library locations.
9648 (list (string-append "-Dc_link_args=-Wl,-rpath="
9649 (assoc-ref %outputs "out")
9650 "/lib/gthumb/extensions")
9651 (string-append "-Dcpp_link_args=-Wl,-rpath="
9652 (assoc-ref %outputs "out")
9653 "/lib/gthumb/extensions"))))
9654 (native-inputs
9655 `(("pkg-config" ,pkg-config)
9656 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9657 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9658 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9659 ("intltool" ,intltool)
9660 ("itstool" ,itstool)))
9661 (inputs
9662 `(("exiv2" ,exiv2)
9663 ("gtk" ,gtk+)
9664 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9665 ("gstreamer" ,gstreamer)
9666 ("clutter" ,clutter)
9667 ("clutter-gst" ,clutter-gst)
9668 ("clutter-gtk" ,clutter-gtk)
9669 ("libjpeg" ,libjpeg-turbo)
9670 ("libtiff" ,libtiff)
9671 ("libraw" ,libraw)))
9672 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9673 (synopsis "GNOME image viewer and browser")
9674 (description "GThumb is an image viewer, browser, organizer, editor and
9675 advanced image management tool")
9676 (license license:gpl2+)))
9677
9678 (define-public terminator
9679 (package
9680 (name "terminator")
9681 (version "1.91")
9682 (source (origin
9683 (method url-fetch)
9684 (uri (string-append "https://launchpad.net/" name "/"
9685 "gtk3/" version "/" "+download/"
9686 name "-" version ".tar.gz"))
9687 (sha256
9688 (base32
9689 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9690 (build-system python-build-system)
9691 (native-inputs
9692 `(("intltool" ,intltool)
9693 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9694 ("gettext" ,gettext-minimal)
9695 ("pkg-config" ,pkg-config)))
9696 (inputs
9697 `(("cairo" ,cairo)
9698 ("gobject-introspection" ,gobject-introspection)
9699 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9700 ("python2-pycairo" ,python2-pycairo)
9701 ("python2-pygobject" ,python2-pygobject)
9702 ("python2-psutil" ,python2-psutil)
9703 ("vte" ,vte)))
9704 (arguments
9705 `(#:python ,python-2 ; Python 3 isn't supported
9706 #:imported-modules ((guix build glib-or-gtk-build-system)
9707 ,@%python-build-system-modules)
9708 #:modules ((guix build python-build-system)
9709 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9710 (guix build utils))
9711 #:phases
9712 (modify-phases %standard-phases
9713 (add-after
9714 'install 'wrap-program
9715 (lambda* (#:key outputs #:allow-other-keys)
9716 (let ((prog (string-append (assoc-ref outputs "out")
9717 "/bin/terminator")))
9718 (wrap-program prog
9719 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9720 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9721 #t)))
9722 (add-after 'wrap-program 'glib-or-gtk-wrap
9723 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9724 (home-page "https://gnometerminator.blogspot.com/")
9725 (synopsis "Store and run multiple GNOME terminals in one window")
9726 (description
9727 "Terminator allows you to run multiple GNOME terminals in a grid and
9728 +tabs, and it supports drag and drop re-ordering of terminals.")
9729 (license license:gpl2)))
9730
9731 (define-public libhandy
9732 (package
9733 (name "libhandy")
9734 (version "0.0.12")
9735 (source
9736 (origin
9737 (method git-fetch)
9738 (uri (git-reference
9739 (url "https://source.puri.sm/Librem5/libhandy")
9740 (commit (string-append "v" version))))
9741 (file-name (git-file-name name version))
9742 (sha256
9743 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9744 (build-system meson-build-system)
9745 (arguments
9746 `(#:configure-flags
9747 '("-Dglade_catalog=disabled"
9748 "-Dgtk_doc=true")
9749 #:phases
9750 (modify-phases %standard-phases
9751 (add-before 'check 'pre-check
9752 (lambda _
9753 ;; Tests require a running X server.
9754 (system "Xvfb :1 &")
9755 (setenv "DISPLAY" ":1")
9756 #t)))))
9757 (inputs
9758 `(("gtk+" ,gtk+)))
9759 (native-inputs
9760 `(("glib:bin" ,glib "bin")
9761 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9762 ("vala" ,vala)
9763 ("gtk-doc" ,gtk-doc)
9764 ("pkg-config" ,pkg-config)
9765 ("gettext" ,gettext-minimal)
9766
9767 ;; Test suite dependencies.
9768 ("xorg-server" ,xorg-server-for-tests)
9769 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9770 (home-page "https://source.puri.sm/Librem5/libhandy")
9771 (synopsis "Library full of GTK+ widgets for mobile phones")
9772 (description "The aim of the handy library is to help with developing user
9773 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9774 for usage on small and big screens.")
9775 (license license:lgpl2.1+)))
9776
9777 (define-public libgit2-glib
9778 (package
9779 (name "libgit2-glib")
9780 (version "0.99.0.1")
9781 (source (origin
9782 (method url-fetch)
9783 (uri (string-append "mirror://gnome/sources/" name "/"
9784 (version-major+minor version) "/"
9785 name "-" version ".tar.xz"))
9786 (sha256
9787 (base32
9788 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
9789 (build-system meson-build-system)
9790 (native-inputs
9791 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9792 ("gobject-introspection" ,gobject-introspection)
9793 ("pkg-config" ,pkg-config)
9794 ("python-pygobject" ,python-pygobject)
9795 ("python-wrapper" ,python-wrapper)
9796 ("vala" ,vala)))
9797 (inputs
9798 `(("glib" ,glib)
9799 ("libssh2" ,libssh2)))
9800 (propagated-inputs
9801 `(;; In Requires of libgit2-glib.pc.
9802 ("libgit2" ,libgit2)))
9803 (synopsis "GLib wrapper around the libgit2 Git access library")
9804 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9805 access library. It only implements the core plumbing functions, not really the
9806 higher level porcelain stuff.")
9807 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9808 (license license:gpl2+)))
9809
9810 (define-public gitg
9811 (package
9812 (name "gitg")
9813 (version "3.32.1")
9814 (source (origin
9815 (method url-fetch)
9816 (uri (string-append "mirror://gnome/sources/" name "/"
9817 (version-major+minor version) "/"
9818 name "-" version ".tar.xz"))
9819 (sha256
9820 (base32
9821 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9822 (build-system meson-build-system)
9823 (arguments
9824 `(#:glib-or-gtk? #t
9825 #:phases
9826 (modify-phases %standard-phases
9827 (add-after 'unpack 'disable-post-install-partially
9828 (lambda _
9829 (substitute* "meson_post_install.py"
9830 (("'python'") ; there are no python sources to compile
9831 (string-append "'" (which "true") "'"))
9832 (("gtk-update-icon-cache") (which "true")))
9833 #t))
9834 (add-after 'unpack 'fix-test-sources
9835 (lambda _
9836 (substitute* "tests/libgitg/test-commit.vala"
9837 (("/bin/bash") (which "bash")))
9838 #t))
9839 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9840 (lambda* (#:key outputs #:allow-other-keys)
9841 (let ((prog (string-append (assoc-ref outputs "out")
9842 "/bin/gitg")))
9843 (wrap-program prog
9844 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9845 #t))))))
9846 (inputs
9847 `(("glib" ,glib)
9848 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9849 ("gtk+" ,gtk+)
9850 ("gtkspell3" ,gtkspell3)
9851 ("gtksourceview" ,gtksourceview-3)
9852 ("json-glib" ,json-glib)
9853 ("libdazzle" ,libdazzle)
9854 ("libgee" ,libgee)
9855 ("libgit2-glib" ,libgit2-glib)
9856 ("libpeas" ,libpeas)
9857 ("libsecret" ,libsecret)
9858 ("libsoup" ,libsoup)
9859 ("libxml2" ,libxml2)))
9860 (native-inputs
9861 `(("glib:bin" ,glib "bin")
9862 ("gtk+:bin" ,gtk+ "bin")
9863 ("gobject-introspection" ,gobject-introspection)
9864 ("intltool" ,intltool)
9865 ("pkg-config" ,pkg-config)
9866 ("vala" ,vala)))
9867 (synopsis "Graphical user interface for git")
9868 (description
9869 "gitg is a graphical user interface for git. It aims at being a small,
9870 fast and convenient tool to visualize the history of git repositories.
9871 Besides visualization, gitg also provides several utilities to manage your
9872 repository and commit your work.")
9873 (home-page "https://wiki.gnome.org/Apps/Gitg")
9874 (license license:gpl2+)))
9875
9876 (define-public gamin
9877 (package
9878 (name "gamin")
9879 (version "0.1.10")
9880 (source (origin
9881 (method url-fetch)
9882 (uri (string-append "mirror://gnome/sources/" name "/"
9883 (version-major+minor version) "/"
9884 name "-" version ".tar.bz2"))
9885 (sha256
9886 (base32
9887 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9888 (build-system gnu-build-system)
9889 (arguments
9890 `(#:phases
9891 (modify-phases %standard-phases
9892 (add-after 'unpack 'remove-deprecated-macro
9893 (lambda _
9894 (substitute* '("server/gam_node.c"
9895 "server/gam_subscription.h"
9896 "server/gam_node.h"
9897 "server/gam_subscription.c")
9898 (("G_CONST_RETURN") "const"))
9899 #t)))))
9900 (inputs
9901 `(("glib" ,glib)))
9902 (native-inputs
9903 `(("intltool" ,intltool)
9904 ("pkg-config" ,pkg-config)))
9905 (home-page "https://people.gnome.org/~veillard/gamin/")
9906 (synopsis "File alteration monitor")
9907 (description
9908 "Gamin is a file and directory monitoring system defined to be a subset
9909 of the FAM (File Alteration Monitor) system. This is a service provided by a
9910 library which detects when a file or a directory has been modified.")
9911 (license license:gpl2+)))
9912
9913 (define-public gnome-mahjongg
9914 (package
9915 (name "gnome-mahjongg")
9916 (version "3.35.1")
9917 (source (origin
9918 (method git-fetch)
9919 (uri (git-reference
9920 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9921 (commit version)))
9922 (file-name (git-file-name name version))
9923 (sha256
9924 (base32
9925 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9926 (build-system meson-build-system)
9927 (arguments
9928 `(#:glib-or-gtk? #t))
9929 (native-inputs
9930 `(("appstream-glib" ,appstream-glib)
9931 ("gettext" ,gettext-minimal)
9932 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9933 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9934 ("itstool" ,itstool)
9935 ("pkg-config" ,pkg-config)
9936 ("vala" ,vala)))
9937 (propagated-inputs
9938 `(("dconf" ,dconf)))
9939 (inputs
9940 `(("glib" ,glib)
9941 ("gtk+" ,gtk+)
9942 ("librsvg" ,librsvg)))
9943 (synopsis "Mahjongg tile-matching game")
9944 (description "GNOME Mahjongg is a game based on the classic Chinese
9945 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9946 and a high score table.")
9947 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9948 (license license:gpl2+)))
9949
9950 (define-public gnome-themes-extra
9951 (package
9952 (name "gnome-themes-extra")
9953 (version "3.28")
9954 (source
9955 (origin
9956 (method url-fetch)
9957 (uri (string-append "mirror://gnome/sources/" name "/"
9958 (version-major+minor version) "/" name "-"
9959 version ".tar.xz"))
9960 (sha256
9961 (base32
9962 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9963 (build-system gnu-build-system)
9964 (arguments
9965 '(#:configure-flags
9966 ;; Don't create 'icon-theme.cache'.
9967 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9968 (true (string-append coreutils "/bin/true")))
9969 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9970 (native-inputs
9971 `(("glib:bin" ,glib "bin")
9972 ("intltool" ,intltool)
9973 ("pkg-config" ,pkg-config)))
9974 (inputs
9975 `(("glib" ,glib)
9976 ("gtk+" ,gtk+)
9977 ("gtk+-2" ,gtk+-2)
9978 ("librsvg" ,librsvg)
9979 ("libxml2" ,libxml2)))
9980 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9981 (synopsis "GNOME Extra Themes")
9982 (description "This package provides themes and related elements that don't
9983 really fit in other upstream packages. It offers legacy support for GTK+ 2
9984 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9985 index files needed for Adwaita to be used outside of GNOME.")
9986 (license license:lgpl2.1+)))
9987
9988 (define-public polari
9989 (package
9990 (name "polari")
9991 (version "3.32.2")
9992 (source (origin
9993 (method url-fetch)
9994 (uri (string-append "mirror://gnome/sources/polari/"
9995 (version-major+minor version)
9996 "/polari-" version ".tar.xz"))
9997 (sha256
9998 (base32
9999 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
10000 (build-system meson-build-system)
10001 (arguments
10002 `(#:glib-or-gtk? #t
10003 #:phases
10004 (modify-phases %standard-phases
10005 (add-after 'unpack 'skip-gtk-update-icon-cache
10006 (lambda _
10007 (substitute* "meson/meson-postinstall.sh"
10008 (("gtk-update-icon-cache") (which "true")))
10009 #t))
10010 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10011 (lambda* (#:key outputs #:allow-other-keys)
10012 (let ((prog (string-append (assoc-ref outputs "out")
10013 "/bin/polari")))
10014 (wrap-program prog
10015 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10016 #t))))))
10017 (inputs
10018 `(("glib" ,glib)
10019 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10020 ("gspell" ,gspell)
10021 ("gtk+" ,gtk+)
10022 ("gjs" ,gjs)
10023 ("libsecret" ,libsecret)
10024 ("libsoup" ,libsoup)
10025 ("telepathy-glib" ,telepathy-glib)
10026 ("telepathy-logger" ,telepathy-logger)))
10027 (native-inputs
10028 `(("glib:bin" ,glib "bin")
10029 ("gobject-introspection" ,gobject-introspection)
10030 ("intltool" ,intltool)
10031 ("pkg-config" ,pkg-config)
10032 ("yelp-tools" ,yelp-tools)))
10033 (propagated-inputs
10034 `(("telepathy-idle" ,telepathy-idle)
10035 ("telepathy-mission-control" ,telepathy-mission-control)))
10036 (synopsis "Simple IRC Client")
10037 (description
10038 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10039 integrate seamlessly with the GNOME desktop.")
10040 (home-page "https://wiki.gnome.org/Apps/Polari")
10041 (license license:gpl2+)))
10042
10043 (define-public gnome-boxes
10044 (package
10045 (name "gnome-boxes")
10046 (version "3.36.5")
10047 (source
10048 (origin
10049 (method url-fetch)
10050 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10051 (version-major+minor version) "/"
10052 "gnome-boxes-" version ".tar.xz"))
10053 (sha256
10054 (base32 "1khvyhgd3p41fvvknga1hdl0p1ks4kj4cwsiaw28v1sy6nzclm2c"))))
10055 (build-system meson-build-system)
10056 (arguments
10057 '(#:glib-or-gtk? #t
10058 #:configure-flags (list "-Drdp=false"
10059 (string-append "-Dc_link_args=-Wl,-rpath="
10060 (assoc-ref %outputs "out")
10061 "/lib/gnome-boxes"))))
10062 (native-inputs
10063 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10064 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10065 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10066 ("itstool" ,itstool)
10067 ("intltool" ,intltool)
10068 ("vala" ,vala)
10069 ("pkg-config" ,pkg-config)))
10070 (inputs
10071 `(("libarchive" ,libarchive)
10072 ("gtk" ,gtk+)
10073 ("gtk-vnc" ,gtk-vnc)
10074 ("libosinfo" ,libosinfo)
10075 ("libsecret" ,libsecret)
10076 ("libsoup" ,libsoup)
10077 ("libusb" ,libusb)
10078 ("libvirt" ,libvirt)
10079 ("libvirt-glib" ,libvirt-glib)
10080 ("libxml" ,libxml2)
10081 ("spice-gtk" ,spice-gtk)
10082 ("sparql-query" ,sparql-query)
10083 ("vte" ,vte)
10084 ("webkitgtk" ,webkitgtk)
10085 ("tracker" ,tracker)
10086 ("libgudev" ,libgudev)))
10087 (home-page "https://wiki.gnome.org/Apps/Boxes")
10088 (synopsis "View, access, and manage remote and virtual systems")
10089 (description "GNOME Boxes is a simple application to view, access, and
10090 manage remote and virtual systems.")
10091 (license (list
10092 ;; For data/icons/empty-boxes.png.
10093 license:cc-by2.0
10094 ;; For all others.
10095 license:lgpl2.0+))))
10096
10097 (define-public geary
10098 (package
10099 (name "geary")
10100 (version "3.34.1")
10101 (source (origin
10102 (method git-fetch)
10103 (uri (git-reference
10104 (url "https://gitlab.gnome.org/GNOME/geary")
10105 (commit version)))
10106 (file-name (git-file-name name version))
10107 (sha256
10108 (base32
10109 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10110 (build-system meson-build-system)
10111 (arguments
10112 `(#:glib-or-gtk? #t
10113 #:phases (modify-phases %standard-phases
10114 (add-after 'unpack 'disable-failing-tests
10115 (lambda _
10116 (substitute* "test/meson.build"
10117 (("test\\('client-tests', geary_test_client_bin\\)")
10118 ""))
10119 #t))
10120 (add-after 'unpack 'disable-postinstall-script
10121 (lambda _
10122 (substitute* "meson.build"
10123 (("meson.add_install_script\\(\
10124 join_paths\\('build-aux', 'post_install.py'\\)\\)")
10125 ""))
10126 #t))
10127 (add-before 'check 'setup-xvfb
10128 (lambda _
10129 (system "Xvfb :1 &")
10130 (setenv "DISPLAY" ":1")
10131 #t)))))
10132 (inputs
10133 `(("enchant" ,enchant)
10134 ("folks" ,folks)
10135 ("gcr" ,gcr)
10136 ("glib" ,glib)
10137 ("gmime" ,gmime-2.6)
10138 ("gnome-online-accounts:lib"
10139 ,gnome-online-accounts "lib")
10140 ("gspell" ,gspell)
10141 ("gtk+" ,gtk+)
10142 ("iso-codes" ,iso-codes)
10143 ("json-glib" ,json-glib)
10144 ("libcanberra" ,libcanberra)
10145 ("libgee" ,libgee)
10146 ("libhandy" ,libhandy)
10147 ("libpeas" ,libpeas)
10148 ("libsecret" ,libsecret)
10149 ("libunwind" ,libunwind)
10150 ("sqlite" ,sqlite)
10151 ("webkitgtk" ,webkitgtk)
10152 ("ytnef" ,ytnef)))
10153 (native-inputs
10154 `(("appstream-glib" ,appstream-glib)
10155 ("cmake-minimal" ,cmake-minimal)
10156 ("desktop-file-utils" ,desktop-file-utils)
10157 ("gettext" ,gettext-minimal)
10158 ("glib:bin" ,glib "bin")
10159 ("gobject-introspection" ,gobject-introspection)
10160 ("itstool" ,itstool)
10161 ("libarchive" ,libarchive)
10162 ("libxml2" ,libxml2)
10163 ("pkg-config" ,pkg-config)
10164 ("vala" ,vala)
10165 ("xvfb" ,xorg-server-for-tests)))
10166 (synopsis "GNOME email application built around conversations")
10167 (description
10168 "Geary collects related messages together into conversations,
10169 making it easy to find and follow your discussions. Full-text and keyword
10170 search makes it easy to find the email you are looking for. Geary's
10171 full-featured composer lets you send rich, styled text with images, links, and
10172 lists, but also send lightweight, easy to read text messages. Geary
10173 automatically picks up your existing GNOME Online Accounts, and adding more is
10174 easy. Geary has a clean, fast, modern interface that works like you want it
10175 to.")
10176 (home-page "https://wiki.gnome.org/Apps/Geary")
10177 (license (list
10178 ;; geary
10179 license:lgpl2.1+
10180 ;; icons
10181 license:cc-by3.0
10182 license:cc-by-sa3.0
10183 license:public-domain
10184 ;; snowball
10185 license:bsd-2))))
10186
10187 (define-public glabels
10188 (package
10189 (name "glabels")
10190 (version "3.4.1")
10191 (source
10192 (origin
10193 (method url-fetch)
10194 (uri (string-append "mirror://gnome/sources/" name "/"
10195 (version-major+minor version) "/"
10196 "glabels-" version ".tar.xz"))
10197 (sha256
10198 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10199 (build-system glib-or-gtk-build-system)
10200 (native-inputs
10201 `(("gettext" ,gettext-minimal)
10202 ("glib:bin" ,glib "bin")
10203 ("intltool" ,intltool)
10204 ("itstool" ,itstool)
10205 ("pkg-config" ,pkg-config)))
10206 (inputs
10207 `(("gtk+" ,gtk+)
10208 ("librsvg" ,librsvg)
10209 ("libxml2" ,libxml2)))
10210 (home-page "https://glabels.org/")
10211 (synopsis "Program for creating labels and business cards")
10212 (description
10213 "gLabels is a program for creating labels and business cards. It is
10214 designed to work with various laser/ink-jet peel-off label and business
10215 card sheets that you’ll find at most office supply stores.")
10216 (license license:gpl3+)))
10217
10218 (define-public libratbag
10219 (package
10220 (name "libratbag")
10221 (version "0.13")
10222 (source
10223 (origin
10224 (method git-fetch)
10225 (uri (git-reference
10226 (url "https://github.com/libratbag/libratbag.git")
10227 (commit (string-append "v" version))))
10228 (file-name (git-file-name name version))
10229 (sha256
10230 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10231 (build-system meson-build-system)
10232 (arguments
10233 `(#:configure-flags
10234 (list "-Dsystemd=false"
10235 "-Dlogind-provider=elogind")
10236 #:phases
10237 (modify-phases %standard-phases
10238 (add-after 'install 'wrap
10239 (lambda* (#:key inputs outputs #:allow-other-keys)
10240 (let* ((out (assoc-ref outputs "out"))
10241 (site (string-append
10242 "/lib/python"
10243 ,(version-major+minor (package-version python))
10244 "/site-packages"))
10245 (evdev (string-append
10246 (assoc-ref inputs "python-evdev") site))
10247 (pygo (string-append
10248 (assoc-ref inputs "python-pygobject") site))
10249 (python-wrap
10250 `("PYTHONPATH" = (,evdev ,pygo))))
10251 (wrap-program (string-append out "/bin/" "ratbagctl")
10252 python-wrap)
10253 #t))))))
10254 (native-inputs
10255 `(("check" ,check)
10256 ("pkg-config" ,pkg-config)
10257 ("swig" ,swig)
10258 ("valgrind" ,valgrind)))
10259 (inputs
10260 `(("glib" ,glib)
10261 ("json-glib" ,json-glib)
10262 ("libevdev" ,libevdev)
10263 ("libsystemd" ,elogind)
10264 ("libunistring" ,libunistring)
10265 ("python-evdev" ,python-evdev)
10266 ("python-pygobject" ,python-pygobject)
10267 ("udev" ,eudev)))
10268 (home-page "https://github.com/libratbag/libratbag")
10269 (synopsis "DBus daemon and utility for configuring gaming mice")
10270 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10271 configure input devices, mainly gaming mice. The daemon provides a generic
10272 way to access the various features exposed by these mice and abstracts away
10273 hardware-specific and kernel-specific quirks. There is also the
10274 @command{ratbagctl} command line interface for configuring devices.
10275
10276 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10277 Steelseries.
10278
10279 The ratbagd DBus service can be enabled by adding the following service to
10280 your operating-system definition:
10281
10282 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10283 (license license:expat)))
10284
10285 (define-public piper
10286 (package
10287 (name "piper")
10288 (version "0.5")
10289 (source
10290 (origin
10291 (method git-fetch)
10292 (uri (git-reference
10293 (url "https://github.com/libratbag/piper.git")
10294 (commit version)))
10295 (sha256
10296 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10297 (file-name (git-file-name name version))))
10298 (build-system meson-build-system)
10299 (native-inputs
10300 `(("gettext" ,gettext-minimal)
10301 ("glib:bin" ,glib "bin")
10302 ("gobject-introspection" ,gobject-introspection)
10303 ("pkg-config" ,pkg-config)
10304 ("python-flake8" ,python-flake8)))
10305 (inputs
10306 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10307 ("gtk" ,gtk+)
10308 ("gtk:bin" ,gtk+ "bin")
10309 ("librsvg" ,librsvg)
10310 ("python-evdev" ,python-evdev)
10311 ("python-lxml" ,python-lxml)
10312 ("python-pycairo" ,python-pycairo)
10313 ("python-pygobject" ,python-pygobject)))
10314 (arguments
10315 `(#:imported-modules ((guix build python-build-system)
10316 ,@%meson-build-system-modules)
10317 #:modules (((guix build python-build-system) #:prefix python:)
10318 (guix build meson-build-system)
10319 (guix build utils))
10320 #:phases
10321 (modify-phases %standard-phases
10322 (add-after 'unpack 'dont-update-gtk-icon-cache
10323 (lambda _
10324 (substitute* "meson.build"
10325 (("meson.add_install_script('meson_install.sh')") ""))
10326 #t))
10327 ;; TODO: Switch to wrap-script when it is fixed.
10328 (add-after 'install 'wrap-python
10329 (assoc-ref python:%standard-phases 'wrap))
10330 (add-after 'wrap-python 'wrap
10331 (lambda* (#:key outputs #:allow-other-keys)
10332 (wrap-program
10333 (string-append (assoc-ref outputs "out" )"/bin/piper")
10334 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10335 #t)))))
10336 (home-page "https://github.com/libratbag/piper/")
10337 (synopsis "Configure bindings and LEDs on gaming mice")
10338 (description "Piper is a GTK+ application for configuring gaming mice with
10339 onboard configuration for key bindings via libratbag. Piper requires
10340 a @command{ratbagd} daemon running with root privileges. It can be run
10341 manually as root, but is preferably configured as a DBus service that can
10342 launch on demand. This can be configured by enabling the following service,
10343 provided there is a DBus service present:
10344
10345 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10346 (license license:gpl2)))
10347
10348 (define-public parlatype
10349 ;; This is one commit away from 2.0, because the latter introduced
10350 ;; a regression in ASR.
10351 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10352 (revision "0"))
10353 (package
10354 (name "parlatype")
10355 (version (git-version "2.0" revision commit))
10356 (source
10357 (origin
10358 (method git-fetch)
10359 (uri (git-reference
10360 (url "https://github.com/gkarsay/parlatype.git")
10361 (commit commit)))
10362 (file-name (git-file-name name version))
10363 (sha256
10364 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10365 (build-system meson-build-system)
10366 (arguments
10367 `(#:glib-or-gtk? #t
10368 #:tests? #f ;require internet access
10369 #:phases
10370 (modify-phases %standard-phases
10371 (add-after 'install 'wrap-parlatype
10372 ;; Add gstreamer plugin provided in this package to system's
10373 ;; plugins.
10374 (lambda* (#:key outputs #:allow-other-keys)
10375 (let* ((out (assoc-ref outputs "out"))
10376 (gst-plugin-path (string-append
10377 out "/lib/gstreamer-1.0/"
10378 ":"
10379 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10380 (wrap-program (string-append out "/bin/parlatype")
10381 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10382 #t)))))
10383 (native-inputs
10384 `(("appstream-glib" ,appstream-glib)
10385 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10386 ("gettext" ,gettext-minimal)
10387 ("glib" ,glib "bin") ;for glib-compile-resources
10388 ("pkg-config" ,pkg-config)
10389 ("yelp-tools" ,yelp-tools)))
10390 (inputs
10391 `(("gst-plugins-base" ,gst-plugins-base)
10392 ("gst-plugins-good" ,gst-plugins-good)
10393 ("gstreamer" ,gstreamer)
10394 ("gtk+" ,gtk+)
10395 ("pocketsphinx" ,pocketsphinx)
10396 ("pulseaudio" ,pulseaudio)
10397 ("sphinxbase" ,sphinxbase)))
10398 (home-page "http://gkarsay.github.io/parlatype/")
10399 (synopsis "GNOME audio player for transcription")
10400 (description "Parlatype is an audio player for the GNOME desktop
10401 environment. Its main purpose is the manual transcription of spoken
10402 audio files.")
10403 (license license:gpl3+))))
10404
10405 (define-public jsonrpc-glib
10406 (package
10407 (name "jsonrpc-glib")
10408 (version "3.34.0")
10409 (source (origin
10410 (method url-fetch)
10411 (uri (string-append "mirror://gnome/sources/" name "/"
10412 (version-major+minor version) "/"
10413 name "-" version ".tar.xz"))
10414 (sha256
10415 (base32
10416 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10417 (build-system meson-build-system)
10418 (inputs
10419 `(("json-glib" ,json-glib)
10420 ("glib" ,glib)))
10421 (native-inputs
10422 `(("pkg-config" ,pkg-config)
10423 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10424 ("gobject-introspection" ,gobject-introspection)
10425 ("vala" ,vala)))
10426 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10427 (synopsis "JSON-RPC library for GLib")
10428 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10429 peers in either a synchronous or asynchronous fashion. It also allows
10430 communicating using the GVariant serialization format instead of JSON when
10431 both peers support it. You might want that when communicating on a single
10432 host to avoid parser overhead and memory-allocator fragmentation.")
10433 (license license:lgpl2.1+)))
10434
10435 (define-public feedbackd
10436 (package
10437 (name "feedbackd")
10438 (version "0.0.0+git20200527")
10439 (source (origin
10440 (method git-fetch)
10441 (uri (git-reference
10442 (url "https://source.puri.sm/Librem5/feedbackd.git")
10443 (commit (string-append "v" version))))
10444 (file-name (git-file-name name version))
10445 (sha256
10446 (base32
10447 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
10448 (build-system meson-build-system)
10449 (native-inputs
10450 `(("glib:bin" ,glib "bin")
10451 ("gobject-introspection" ,gobject-introspection)
10452 ("pkg-config" ,pkg-config)
10453 ("vala" ,vala)))
10454 (inputs
10455 `(("dbus" ,dbus)
10456 ("gsound" ,gsound)
10457 ("json-glib" ,json-glib)
10458 ("libgudev" ,libgudev)))
10459 (propagated-inputs
10460 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
10461 (synopsis "Haptic/visual/audio feedback via DBus")
10462 (description "Feedbackd provides a DBus daemon to act on events to provide
10463 haptic, visual and audio feedback. It offers the libfeedbackd library and
10464 GObject introspection bindings.")
10465 (home-page "https://source.puri.sm/Librem5/feedbackd")
10466 (license (list license:lgpl2.1+ ; libfeedbackd
10467 license:lgpl3+)))) ; the rest