gnu: glade3: Enable tests.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017, 2020 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
54 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;;
58 ;;; This file is part of GNU Guix.
59 ;;;
60 ;;; GNU Guix is free software; you can redistribute it and/or modify it
61 ;;; under the terms of the GNU General Public License as published by
62 ;;; the Free Software Foundation; either version 3 of the License, or (at
63 ;;; your option) any later version.
64 ;;;
65 ;;; GNU Guix is distributed in the hope that it will be useful, but
66 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
67 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
68 ;;; GNU General Public License for more details.
69 ;;;
70 ;;; You should have received a copy of the GNU General Public License
71 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
72
73 (define-module (gnu packages gnome)
74 #:use-module (gnu packages)
75 #:use-module (gnu packages admin)
76 #:use-module (gnu packages aspell)
77 #:use-module (gnu packages autotools)
78 #:use-module (gnu packages avahi)
79 #:use-module (gnu packages backup)
80 #:use-module (gnu packages base)
81 #:use-module (gnu packages bash)
82 #:use-module (gnu packages bison)
83 #:use-module (gnu packages boost)
84 #:use-module (gnu packages build-tools)
85 #:use-module (gnu packages calendar)
86 #:use-module (gnu packages cdrom)
87 #:use-module (gnu packages check)
88 #:use-module (gnu packages cmake)
89 #:use-module (gnu packages compression)
90 #:use-module (gnu packages crates-io)
91 #:use-module (gnu packages cups)
92 #:use-module (gnu packages curl)
93 #:use-module (gnu packages cyrus-sasl)
94 #:use-module (gnu packages databases)
95 #:use-module (gnu packages dbm)
96 #:use-module (gnu packages djvu)
97 #:use-module (gnu packages dns)
98 #:use-module (gnu packages docbook)
99 #:use-module (gnu packages documentation)
100 #:use-module (gnu packages enchant)
101 #:use-module (gnu packages flex)
102 #:use-module (gnu packages fonts)
103 #:use-module (gnu packages file-systems)
104 #:use-module (gnu packages fontutils)
105 #:use-module (gnu packages freedesktop)
106 #:use-module (gnu packages game-development)
107 #:use-module (gnu packages gettext)
108 #:use-module (gnu packages ghostscript)
109 #:use-module (gnu packages gl)
110 #:use-module (gnu packages glib)
111 #:use-module (gnu packages gnupg)
112 #:use-module (gnu packages gnuzilla)
113 #:use-module (gnu packages geo)
114 #:use-module (gnu packages gperf)
115 #:use-module (gnu packages graphviz)
116 #:use-module (gnu packages gstreamer)
117 #:use-module (gnu packages gtk)
118 #:use-module (gnu packages guile)
119 #:use-module (gnu packages ibus)
120 #:use-module (gnu packages icu4c)
121 #:use-module (gnu packages image)
122 #:use-module (gnu packages imagemagick)
123 #:use-module (gnu packages inkscape)
124 #:use-module (gnu packages iso-codes)
125 #:use-module (gnu packages kerberos)
126 #:use-module (gnu packages libcanberra)
127 #:use-module (gnu packages libunistring)
128 #:use-module (gnu packages libunwind)
129 #:use-module (gnu packages libusb)
130 #:use-module (gnu packages linux)
131 #:use-module (gnu packages lirc)
132 #:use-module (gnu packages lua)
133 #:use-module (gnu packages mail)
134 #:use-module (gnu packages mp3)
135 #:use-module (gnu packages multiprecision)
136 #:use-module (gnu packages music)
137 #:use-module (gnu packages ncurses)
138 #:use-module (gnu packages nettle)
139 #:use-module (gnu packages networking)
140 #:use-module (gnu packages ninja)
141 #:use-module (gnu packages nss)
142 #:use-module (gnu packages openldap)
143 #:use-module (gnu packages password-utils)
144 #:use-module (gnu packages pcre)
145 #:use-module (gnu packages pdf)
146 #:use-module (gnu packages perl)
147 #:use-module (gnu packages photo)
148 #:use-module (gnu packages php)
149 #:use-module (gnu packages pkg-config)
150 #:use-module (gnu packages polkit)
151 #:use-module (gnu packages popt)
152 #:use-module (gnu packages pretty-print)
153 #:use-module (gnu packages pulseaudio)
154 #:use-module (gnu packages python)
155 #:use-module (gnu packages python-crypto)
156 #:use-module (gnu packages python-web)
157 #:use-module (gnu packages python-xyz)
158 #:use-module (gnu packages rdesktop)
159 #:use-module (gnu packages readline)
160 #:use-module (gnu packages ruby)
161 #:use-module (gnu packages rust)
162 #:use-module (gnu packages samba)
163 #:use-module (gnu packages scanner)
164 #:use-module (gnu packages selinux)
165 #:use-module (gnu packages slang)
166 #:use-module (gnu packages speech)
167 #:use-module (gnu packages spice)
168 #:use-module (gnu packages sqlite)
169 #:use-module (gnu packages ssh)
170 #:use-module (gnu packages swig)
171 #:use-module (gnu packages tex)
172 #:use-module (gnu packages time)
173 #:use-module (gnu packages tls)
174 #:use-module (gnu packages valgrind)
175 #:use-module (gnu packages version-control)
176 #:use-module (gnu packages video)
177 #:use-module (gnu packages virtualization)
178 #:use-module (gnu packages vpn)
179 #:use-module (gnu packages web)
180 #:use-module (gnu packages webkit)
181 #:use-module (gnu packages xdisorg)
182 #:use-module (gnu packages xiph)
183 #:use-module (gnu packages xml)
184 #:use-module (gnu packages xorg)
185 #:use-module (gnu artwork)
186 #:use-module ((guix build utils) #:select (modify-phases))
187 #:use-module (guix build-system cargo)
188 #:use-module (guix build-system cmake)
189 #:use-module (guix build-system glib-or-gtk)
190 #:use-module (guix build-system gnu)
191 #:use-module (guix build-system meson)
192 #:use-module (guix build-system python)
193 #:use-module (guix build-system trivial)
194 #:use-module (guix download)
195 #:use-module (guix git-download)
196 #:use-module ((guix licenses) #:prefix license:)
197 #:use-module (guix packages)
198 #:use-module (guix utils)
199 #:use-module (guix gexp)
200 #:use-module (guix monads)
201 #:use-module (guix store)
202 #:use-module (ice-9 match)
203 #:use-module (srfi srfi-1))
204
205 (define-public brasero
206 (package
207 (name "brasero")
208 (version "3.12.2")
209 (source (origin
210 (method url-fetch)
211 (uri (string-append "mirror://gnome/sources/brasero/"
212 (version-major+minor version) "/"
213 "brasero-" version ".tar.xz"))
214 (sha256
215 (base32
216 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
217 (build-system glib-or-gtk-build-system)
218 (arguments
219 `(#:configure-flags (list
220 (string-append "--with-girdir="
221 (assoc-ref %outputs "out")
222 "/share/gir-1.0")
223 (string-append "--with-typelibdir="
224 (assoc-ref %outputs "out")
225 "/lib/girepository-1.0"))
226 #:phases
227 (modify-phases %standard-phases
228 (add-before 'configure 'embed-growisofs
229 (lambda* (#:key inputs #:allow-other-keys)
230 (substitute* "plugins/growisofs/burn-growisofs.c"
231 (("\"growisofs") (string-append "\"" (which "growisofs"))))
232 #t)))))
233 (propagated-inputs
234 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
235 (native-inputs
236 `(("intltool" ,intltool)
237 ("itstool" ,itstool)
238 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
239 ("gobject-introspection" ,gobject-introspection)
240 ("pkg-config" ,pkg-config)))
241 (inputs
242 `(("dvd+rw-tools" ,dvd+rw-tools)
243 ("glib" ,glib)
244 ("gnome-doc-utils" ,gnome-doc-utils)
245 ("gstreamer" ,gstreamer)
246 ("gst-plugins-base" ,gst-plugins-base)
247 ("gtk+" ,gtk+)
248 ("libcanberra" ,libcanberra)
249 ("libice" ,libice)
250 ("libnotify" ,libnotify)
251 ("libsm" ,libsm)
252 ("libxml2" ,libxml2)
253 ("totem-pl-parser" ,totem-pl-parser)))
254 (home-page "https://wiki.gnome.org/Apps/Brasero")
255 (synopsis "CD/DVD burning tool for Gnome")
256 (description "Brasero is an application to burn CD/DVD for the Gnome
257 Desktop. It is designed to be as simple as possible and has some unique
258 features to enable users to create their discs easily and quickly.")
259 (license license:gpl2+)))
260
261 (define-public notification-daemon
262 (package
263 (name "notification-daemon")
264 (version "3.20.0")
265 (source
266 (origin
267 (method url-fetch)
268 (uri
269 (string-append "mirror://gnome/sources/" name "/"
270 (version-major+minor version) "/"
271 name "-" version ".tar.xz"))
272 (sha256
273 (base32
274 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
275 (build-system glib-or-gtk-build-system)
276 (native-inputs
277 `(("intltool" ,intltool)
278 ("pkg-config" ,pkg-config)))
279 (inputs
280 `(("glib" ,glib)
281 ("gtk+" ,gtk+)
282 ("x11" ,libx11)))
283 (synopsis "Notification Daemon for GNOME Desktop")
284 (description "Notification-Daemon is the server implementation of the
285 freedesktop.org desktop notification specification.")
286 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
287 (license license:gpl2+)))
288
289 (define-public mm-common
290 (package
291 (name "mm-common")
292 (version "1.0.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.3)
2407 ("rust-rctree" ,rust-rctree-0.3)
2408 ("rust-string-cache" ,rust-string-cache-0.7)
2409 ("rust-regex" ,rust-regex-1.3)
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.0")
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 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
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/sbin/openconnect\"") pretty-ovpn)
6792 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6793 (("/sbin/modprobe") modprobe)))
6794 #t)))))
6795 (native-inputs
6796 `(("intltool" ,intltool)
6797 ("libnma" ,libnma)
6798 ("pkg-config" ,pkg-config)))
6799 (inputs
6800 `(("gcr" ,gcr)
6801 ("gtk+" ,gtk+)
6802 ("kmod" ,kmod)
6803 ("libsecret" ,libsecret)
6804 ("libxml2" ,libxml2)
6805 ("lz4" ,lz4)
6806 ("network-manager" ,network-manager)
6807 ("openconnect" ,openconnect)))
6808 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6809 (synopsis "OpenConnect plug-in for NetworkManager")
6810 (description
6811 "This extension of NetworkManager allows it to take care of connections
6812 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6813 Cisco's AnyConnect SSL VPN.")
6814 (license license:gpl2+)
6815 (properties `((upstream-name . "NetworkManager-openconnect")
6816
6817 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6818 ;; file refers to account "nm-openconnect". Specify it here
6819 ;; so that 'network-manager-service-type' creates it.
6820 (user-accounts . ("nm-openconnect"))))))
6821
6822 (define-public mobile-broadband-provider-info
6823 (package
6824 (name "mobile-broadband-provider-info")
6825 (version "20190116")
6826 (source (origin
6827 (method url-fetch)
6828 (uri (string-append
6829 "mirror://gnome/sources/"
6830 "mobile-broadband-provider-info/" version "/"
6831 "mobile-broadband-provider-info-" version ".tar.xz"))
6832 (sha256
6833 (base32
6834 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6835 (build-system gnu-build-system)
6836 (arguments
6837 `(#:tests? #f)) ; no tests
6838 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6839 (synopsis "Database of broadband connection configuration")
6840 (description "Database of broadband connection configuration.")
6841 (license license:public-domain)))
6842
6843 (define-public network-manager-applet
6844 (package
6845 (name "network-manager-applet")
6846 (version "1.16.0")
6847 (source (origin
6848 (method url-fetch)
6849 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6850 (version-major+minor version) "/"
6851 "network-manager-applet-" version ".tar.xz"))
6852 (sha256
6853 (base32
6854 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
6855 (build-system meson-build-system)
6856 (arguments
6857 '(#:glib-or-gtk? #t))
6858 (native-inputs
6859 `(("intltool" ,intltool)
6860 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6861 ("gobject-introspection" ,gobject-introspection)
6862 ("gtk-doc" ,gtk-doc)
6863 ("pkg-config" ,pkg-config)))
6864 (propagated-inputs
6865 ;; libnm-gtk.pc refers to all these.
6866 `(("dbus-glib" ,dbus-glib)
6867 ("gtk+" ,gtk+)
6868 ("network-manager" ,network-manager)
6869 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
6870 ("libnma" ,libnma)))
6871 (inputs
6872 `(("gcr" ,gcr)
6873 ("libgudev" ,libgudev)
6874 ("libnotify" ,libnotify)
6875 ("libsecret" ,libsecret)
6876 ("libselinux" ,libselinux)
6877 ("jansson" ,jansson) ; for team support
6878 ("modem-manager" ,modem-manager)))
6879 (synopsis "Applet for managing network connections")
6880 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6881 (description
6882 "This package contains a systray applet for NetworkManager. It displays
6883 the available networks and allows users to easily switch between them.")
6884 (license license:gpl2+)))
6885
6886 (define-public libxml++
6887 (package
6888 (name "libxml++")
6889 (version "3.0.1")
6890 (source (origin
6891 (method url-fetch)
6892 (uri (string-append "mirror://gnome/sources/" name "/"
6893 (version-major+minor version) "/"
6894 name "-" version ".tar.xz"))
6895 (sha256
6896 (base32
6897 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6898 (build-system gnu-build-system)
6899 ;; libxml++-3.0.pc refers to all these.
6900 (propagated-inputs
6901 `(("libxml2" ,libxml2)
6902 ("glibmm" ,glibmm)))
6903 (native-inputs
6904 `(("perl" ,perl)
6905 ("pkg-config" ,pkg-config)))
6906 (home-page "http://libxmlplusplus.sourceforge.net/")
6907 (synopsis "C++ wrapper for XML parser library libxml2")
6908 (description
6909 "This package provides a C++ wrapper for the XML parser library
6910 libxml2.")
6911 (license license:lgpl2.1+)))
6912
6913 (define-public libxml++-2
6914 (package
6915 (inherit libxml++)
6916 (name "libxml++")
6917 (version "2.40.1")
6918 (source (origin
6919 (method url-fetch)
6920 (uri (string-append "mirror://gnome/sources/" name "/"
6921 (version-major+minor version) "/"
6922 name "-" version ".tar.xz"))
6923 (sha256
6924 (base32
6925 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6926
6927 (define-public gdm
6928 (package
6929 (name "gdm")
6930 (version "3.34.1")
6931 (source (origin
6932 (method url-fetch)
6933 (uri (string-append "mirror://gnome/sources/" name "/"
6934 (version-major+minor version) "/"
6935 name "-" version ".tar.xz"))
6936 (sha256
6937 (base32
6938 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
6939 (patches (search-patches "gdm-default-session.patch"))))
6940 (build-system glib-or-gtk-build-system)
6941 (arguments
6942 '(#:configure-flags
6943 `("--without-plymouth"
6944 "--disable-systemd-journal"
6945
6946 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6947 ;; instead of having to replace it (i.e., stopping the mingetty
6948 ;; service for TTY 1 before starting GDM).
6949 "--with-initial-vt=7"
6950
6951 ;; Use '/etc/environment' for locale settings instead of the
6952 ;; systemd-specific '/etc/locale.conf'.
6953 "--with-lang-file=/etc/environment"
6954
6955 ,(string-append "--with-udevdir="
6956 (assoc-ref %outputs "out") "/lib/udev")
6957
6958 "--localstatedir=/var"
6959 ,(string-append "--with-default-path="
6960 (string-join '("/run/setuid-programs"
6961 "/run/current-system/profile/bin"
6962 "/run/current-system/profile/sbin")
6963 ":"))
6964 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6965 ;; XDG_DATA_DIRS so that it finds its schemas.
6966 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6967 #:phases
6968 (modify-phases %standard-phases
6969 (add-before
6970 'configure 'pre-configure
6971 (lambda* (#:key inputs outputs #:allow-other-keys)
6972 ;; We don't have <systemd/sd-daemon.h>.
6973 (substitute* '("common/gdm-log.c"
6974 "daemon/gdm-server.c"
6975 "daemon/gdm-session-worker.c"
6976 "daemon/gdm-session-worker-job.c")
6977 (("#include <systemd/sd-daemon\\.h>") ""))
6978 ;; Use elogind for sd-login.
6979 (substitute* '("common/gdm-common.c"
6980 "daemon/gdm-local-display-factory.c"
6981 "daemon/gdm-manager.c"
6982 "libgdm/gdm-user-switching.c")
6983 (("#include <systemd/sd-login\\.h>")
6984 "#include <elogind/sd-login.h>"))
6985 ;; Check for elogind.
6986 (substitute* '("configure")
6987 (("libsystemd")
6988 "libelogind"))
6989 ;; Look for system-installed sessions in
6990 ;; /run/current-system/profile/share.
6991 (substitute* '("libgdm/gdm-sessions.c"
6992 "daemon/gdm-session.c"
6993 "daemon/gdm-display.c"
6994 "daemon/gdm-launch-environment.c")
6995 (("DATADIR \"/x")
6996 "\"/run/current-system/profile/share/x")
6997 (("DATADIR \"/wayland")
6998 "\"/run/current-system/profile/share/wayland")
6999 (("DATADIR \"/gnome")
7000 "\"/run/current-system/profile/share/gnome"))
7001 (let ((propagate '("GDM_CUSTOM_CONF"
7002 "GDM_DBUS_DAEMON"
7003 "GDM_X_SERVER"
7004 "GDM_X_SESSION"
7005 ;; XXX: Remove this once GNOME Shell is
7006 ;; a dependency of GDM.
7007 "XDG_DATA_DIRS")))
7008 (substitute* "daemon/gdm-session.c"
7009 (("set_up_session_environment \\(self\\);")
7010 (apply string-append
7011 "set_up_session_environment (self);\n"
7012 (map (lambda (name)
7013 (string-append
7014 "gdm_session_set_environment_variable "
7015 "(self, \"" name "\","
7016 "g_getenv (\"" name "\"));\n"))
7017 propagate)))))
7018 ;; Find the configuration file using an environment variable.
7019 (substitute* '("common/gdm-settings.c")
7020 (("GDM_CUSTOM_CONF")
7021 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7022 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7023 " : GDM_CUSTOM_CONF)")))
7024 ;; Use service-supplied path to X.
7025 (substitute* '("daemon/gdm-server.c")
7026 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7027 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
7028 (substitute* '("daemon/gdm-wayland-session.c"
7029 "daemon/gdm-x-session.c")
7030 (("\"dbus-daemon\"")
7031 "g_getenv (\"GDM_DBUS_DAEMON\")")
7032 (("X_SERVER")
7033 "g_getenv (\"GDM_X_SERVER\")")
7034 (("GDMCONFDIR \"/Xsession\"")
7035 "g_getenv (\"GDM_X_SESSION\")"))
7036 ;; Use an absolute path for GNOME Session.
7037 (substitute* "daemon/gdm-launch-environment.c"
7038 (("\"gnome-session\"")
7039 (string-append "\"" (assoc-ref inputs "gnome-session")
7040 "/bin/gnome-session\"")))
7041 ;; Do not automatically select the placeholder session.
7042 (substitute* "daemon/gdm-session.c"
7043 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7044 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7045 "(g_strcmp0(search_dirs[i], \""
7046 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7047 "\") == 0 && "
7048 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7049 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
7050 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
7051 #t))
7052 ;; GDM requires that there be at least one desktop entry
7053 ;; file. This phase installs a hidden one that simply
7054 ;; fails. This enables users to use GDM with a
7055 ;; '~/.xsession' script with no other desktop entry files.
7056 ;; See <https://bugs.gnu.org/35068>.
7057 (add-after 'install 'install-placeholder-desktop-entry
7058 (lambda* (#:key inputs outputs #:allow-other-keys)
7059 (let* ((out (assoc-ref outputs "out"))
7060 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7061 (fail (string-append sessions "/fail.desktop")))
7062 (mkdir-p sessions)
7063 (with-output-to-file fail
7064 (lambda ()
7065 (for-each
7066 display
7067 '("[Desktop Entry]\n"
7068 "Encoding=UTF-8\n"
7069 "Type=Application\n"
7070 "Name=Fail\n"
7071 "Comment=This session fails immediately.\n"
7072 "NoDisplay=true\n"
7073 "Exec=false\n"))))
7074 #t)))
7075 ;; GDM needs GNOME Session to run these applications. We link
7076 ;; their autostart files in `share/gdm/greeter/autostart'
7077 ;; because GDM explicitly tells GNOME Session to look there.
7078 ;;
7079 ;; XXX: GNOME Shell should be linked here too, but currently
7080 ;; GNOME Shell depends on GDM.
7081 (add-after 'install 'link-autostart-files
7082 (lambda* (#:key inputs outputs #:allow-other-keys)
7083 (let* ((out (assoc-ref outputs "out"))
7084 (autostart (string-append out "/share/gdm/"
7085 "greeter/autostart"))
7086 (settings (assoc-ref inputs "gnome-settings-daemon")))
7087 (mkdir-p autostart)
7088 (with-directory-excursion autostart
7089 (for-each (lambda (desktop)
7090 (symlink desktop (basename desktop)))
7091 (find-files (string-append settings "/etc/xdg"))))
7092 #t))))))
7093 (native-inputs
7094 `(("dconf" ,dconf)
7095 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7096 ("gobject-introspection" ,gobject-introspection)
7097 ("intltool" ,intltool)
7098 ("itstool" ,itstool)
7099 ("pkg-config" ,pkg-config)
7100 ("xmllint" ,libxml2)))
7101 (inputs
7102 `(("accountsservice" ,accountsservice)
7103 ("check" ,check) ; for testing
7104 ("elogind" ,elogind)
7105 ("gnome-session" ,gnome-session)
7106 ("gnome-settings-daemon" ,gnome-settings-daemon)
7107 ("gtk+" ,gtk+)
7108 ("iso-codes" ,iso-codes)
7109 ("libcanberra" ,libcanberra)
7110 ("linux-pam" ,linux-pam)))
7111 (synopsis "Display manager for GNOME")
7112 (home-page "https://wiki.gnome.org/Projects/GDM/")
7113 (description
7114 "GNOME Display Manager is a system service that is responsible for
7115 providing graphical log-ins and managing local and remote displays.")
7116 (license license:gpl2+)))
7117
7118 (define-public libgtop
7119 (package
7120 (name "libgtop")
7121 (version "2.40.0")
7122 (source (origin
7123 (method url-fetch)
7124 (uri (string-append "mirror://gnome/sources/libgtop/"
7125 (version-major+minor version) "/"
7126 "libgtop-" version ".tar.xz"))
7127 (sha256
7128 (base32
7129 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7130 (build-system gnu-build-system)
7131 (native-inputs
7132 `(("gobject-introspection" ,gobject-introspection)
7133 ("intltool" ,intltool)
7134 ("perl" ,perl)
7135 ("pkg-config" ,pkg-config)))
7136 (propagated-inputs
7137 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7138 (synopsis "Portable system access library")
7139 (home-page "https://www.gnome.org/")
7140 (description
7141 "LibGTop is a library to get system specific data such as CPU and memory
7142 usage and information about running processes.")
7143 (license license:gpl2+)))
7144
7145 (define-public gnome-bluetooth
7146 (package
7147 (name "gnome-bluetooth")
7148 (version "3.34.0")
7149 (source (origin
7150 (method url-fetch)
7151 (uri (string-append "mirror://gnome/sources/" name "/"
7152 (version-major+minor version) "/"
7153 name "-" version ".tar.xz"))
7154 (sha256
7155 (base32
7156 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
7157 (build-system meson-build-system)
7158 (native-inputs
7159 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7160 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7161 ("gobject-introspection" ,gobject-introspection)
7162 ("intltool" ,intltool)
7163 ("pkg-config" ,pkg-config)
7164 ("xmllint" ,libxml2)))
7165 (propagated-inputs
7166 ;; gnome-bluetooth-1.0.pc refers to all these.
7167 `(("glib" ,glib)
7168 ("gtk+" ,gtk+)))
7169 (inputs
7170 `(("eudev" ,eudev)
7171 ("libcanberra" ,libcanberra)
7172 ("libnotify" ,libnotify)))
7173 (synopsis "GNOME Bluetooth subsystem")
7174 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7175 (description
7176 "This package contains tools for managing and manipulating Bluetooth
7177 devices using the GNOME desktop.")
7178 (license license:lgpl2.1+)))
7179
7180 (define-public gnome-control-center
7181 (package
7182 (name "gnome-control-center")
7183 (version "3.34.2")
7184 (source (origin
7185 (method url-fetch)
7186 (uri (string-append "mirror://gnome/sources/" name "/"
7187 (version-major+minor version) "/"
7188 name "-" version ".tar.xz"))
7189 (sha256
7190 (base32
7191 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7192 (build-system meson-build-system)
7193 (arguments
7194 '(#:glib-or-gtk? #t
7195 #:configure-flags
7196 (list "-Dcheese=false"
7197 (string-append "-Dgnome_session_libexecdir="
7198 (assoc-ref %build-inputs "gnome-session")
7199 "/libexec"))
7200 #:phases
7201 (modify-phases %standard-phases
7202 (add-before 'configure 'patch-paths
7203 (lambda* (#:key inputs #:allow-other-keys)
7204 (let ((libc (assoc-ref inputs "libc"))
7205 (tzdata (assoc-ref inputs "tzdata"))
7206 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7207 (nm-applet (assoc-ref inputs "network-manager-applet"))
7208 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7209 (substitute* "panels/datetime/tz.h"
7210 (("/usr/share/zoneinfo/zone.tab")
7211 (string-append tzdata "/share/zoneinfo/zone.tab")))
7212 (substitute* "tests/datetime/test-endianess.c"
7213 (("/usr/share/locale")
7214 (string-append libc "/share/locale")))
7215 (substitute* "panels/region/cc-region-panel.c"
7216 (("\"gkbd-keyboard-display")
7217 (string-append "\"" libgnomekbd
7218 "/bin/gkbd-keyboard-display")))
7219 (substitute* '("panels/network/net-device-wifi.c"
7220 "panels/network/net-device.c"
7221 "panels/network/connection-editor/net-connection-editor.c")
7222 (("\"nm-connection-editor")
7223 (string-append "\"" nm-applet
7224 "/bin/nm-connection-editor")))
7225 (substitute* '("panels/user-accounts/run-passwd.c")
7226 (("/usr/bin/passwd")
7227 "/run/setuid-programs/passwd"))
7228 (substitute* "panels/info/cc-info-overview-panel.c"
7229 (("DATADIR \"/gnome/gnome-version.xml\"")
7230 (string-append "\"" gnome-desktop
7231 "/share/gnome/gnome-version.xml\"")))
7232 #t)))
7233 (add-after 'unpack 'skip-gtk-update-icon-cache
7234 ;; Don't create 'icon-theme.cache'.
7235 (lambda _
7236 (substitute* "build-aux/meson/meson_post_install.py"
7237 (("gtk-update-icon-cache") (which "true")))
7238 #t)))))
7239 (native-inputs
7240 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7241 ("intltool" ,intltool)
7242 ("pkg-config" ,pkg-config)
7243 ("xsltproc" ,libxslt)
7244 ;; For tests
7245 ("hicolor-icon-theme" ,hicolor-icon-theme)
7246 ("python-dbusmock" ,python-dbusmock)
7247 ("xorg-server" ,xorg-server-for-tests)))
7248 (inputs
7249 `(("accountsservice" ,accountsservice)
7250 ("clutter-gtk" ,clutter-gtk)
7251 ("colord-gtk" ,colord-gtk)
7252 ("cups" ,cups)
7253 ("dconf" ,dconf)
7254 ("docbook-xsl" ,docbook-xsl)
7255 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7256 ("gnome-bluetooth" ,gnome-bluetooth)
7257 ("gnome-desktop" ,gnome-desktop)
7258 ("gnome-online-accounts" ,gnome-online-accounts)
7259 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7260 ("gnome-session" ,gnome-session)
7261 ("gnome-settings-daemon" ,gnome-settings-daemon)
7262 ("grilo" ,grilo)
7263 ("gsound" ,gsound)
7264 ("ibus" ,ibus)
7265 ("libcanberra" ,libcanberra)
7266 ("libgnomekbd" ,libgnomekbd)
7267 ("libgudev" ,libgudev)
7268 ("libgtop" ,libgtop)
7269 ("libnma" ,libnma)
7270 ("libpwquality" ,libpwquality)
7271 ("libsecret" ,libsecret)
7272 ("libsoup" ,libsoup)
7273 ("libxml2" ,libxml2)
7274 ("libwacom" ,libwacom)
7275 ("mesa" ,mesa)
7276 ("mit-krb5" ,mit-krb5)
7277 ("modem-manager" ,modem-manager)
7278 ("network-manager-applet" ,network-manager-applet)
7279 ("polkit" ,polkit)
7280 ("pulseaudio" ,pulseaudio)
7281 ("smbclient" ,samba)
7282 ("tzdata" ,tzdata)
7283 ("udisks" ,udisks)
7284 ("upower" ,upower)))
7285 (synopsis "Utilities to configure the GNOME desktop")
7286 (home-page "https://www.gnome.org/")
7287 (description
7288 "This package contains configuration applets for the GNOME desktop,
7289 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7290 properties, sound setup, desktop theme and background, user interface
7291 properties, screen resolution, and other GNOME parameters.")
7292 (license license:gpl2+)))
7293
7294 (define-public gnome-shell
7295 (package
7296 (name "gnome-shell")
7297 (version "3.34.2")
7298 (source (origin
7299 (method url-fetch)
7300 (uri (string-append "mirror://gnome/sources/" name "/"
7301 (version-major+minor version) "/"
7302 name "-" version ".tar.xz"))
7303 (sha256
7304 (base32
7305 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7306 (patches (search-patches "gnome-shell-theme.patch"
7307 "gnome-shell-disable-test.patch"))
7308 (modules '((guix build utils)))
7309 (snippet
7310 #~(begin
7311 ;; Copy images for use on the GDM log-in screen.
7312 (copy-file #$(file-append %artwork-repository
7313 "/slim/0.x/background.png")
7314 "data/theme/guix-background.png")
7315 (copy-file #$(file-append %artwork-repository
7316 "/logo/Guix-horizontal-white.svg")
7317 "data/theme/guix-logo.svg")
7318 #t))))
7319 (build-system meson-build-system)
7320 (arguments
7321 `(#:glib-or-gtk? #t
7322 #:disallowed-references ((,glib "bin")
7323 ,inkscape ,libxslt
7324 ,ruby-sass)
7325 #:configure-flags
7326 (list "-Dsystemd=false"
7327 ;; Otherwise, the RUNPATH will lack the final path component.
7328 (string-append "-Dc_link_args=-Wl,-rpath="
7329 (assoc-ref %outputs "out")
7330 "/lib/gnome-shell"))
7331
7332 #:modules ((guix build meson-build-system)
7333 (guix build utils)
7334 (srfi srfi-1))
7335
7336 #:phases
7337 (modify-phases %standard-phases
7338 (add-after 'unpack 'fix-keysdir
7339 (lambda* (#:key outputs #:allow-other-keys)
7340 (let* ((out (assoc-ref outputs "out"))
7341 (keysdir (string-append
7342 out "/share/gnome-control-center/keybindings")))
7343 (substitute* "meson.build"
7344 (("keysdir =.*")
7345 (string-append "keysdir = '" keysdir "'\n")))
7346 #t)))
7347 (add-before 'configure 'convert-logo-to-png
7348 (lambda* (#:key inputs #:allow-other-keys)
7349 ;; Convert the logo from SVG to PNG.
7350 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7351 "data/theme/guix-logo.svg")))
7352 (add-before 'configure 'record-absolute-file-names
7353 (lambda* (#:key inputs #:allow-other-keys)
7354 (substitute* "js/misc/ibusManager.js"
7355 (("'ibus-daemon'")
7356 (string-append "'" (assoc-ref inputs "ibus")
7357 "/bin/ibus-daemon'")))
7358 (substitute* "js/ui/status/keyboard.js"
7359 (("'gkbd-keyboard-display'")
7360 (string-append "'" (assoc-ref inputs "libgnomekbd")
7361 "/bin/gkbd-keyboard-display'")))
7362 #t))
7363 (add-before 'check 'pre-check
7364 (lambda* (#:key inputs #:allow-other-keys)
7365 ;; Tests require a running X server.
7366 (system "Xvfb :1 &")
7367 (setenv "DISPLAY" ":1")
7368 #t))
7369 (add-after 'install 'wrap-programs
7370 (lambda* (#:key inputs outputs #:allow-other-keys)
7371 (let ((out (assoc-ref outputs "out"))
7372 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7373 (python-path (getenv "PYTHONPATH")))
7374 (wrap-program (string-append out "/bin/gnome-shell")
7375 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7376 ;; FIXME: gnome-shell loads these libraries with unqualified
7377 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7378 ;; alternative might be to patch gnome-shell.
7379 `("LD_LIBRARY_PATH" ":" prefix
7380 ,(map (lambda (pkg)
7381 (string-append (assoc-ref inputs pkg) "/lib"))
7382 '("gdk-pixbuf"
7383 "gnome-bluetooth" "librsvg" "libgweather"))))
7384 (for-each
7385 (lambda (prog)
7386 (wrap-program (string-append out "/bin/" prog)
7387 `("PYTHONPATH" ":" prefix (,python-path))
7388 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7389 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7390 #t)))
7391 (replace 'glib-or-gtk-wrap
7392 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7393 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7394 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7395 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7396 ;; phase. Fix that since we don't need these.
7397 (wrap #:inputs (fold alist-delete inputs
7398 '("inkscape" "intltool" "glib:bin"))
7399 #:outputs outputs)))))))
7400 (native-inputs
7401 `(("asciidoc" ,asciidoc)
7402 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7403 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7404 ("gobject-introspection" ,gobject-introspection)
7405 ("inkscape" ,inkscape)
7406 ("intltool" ,intltool)
7407 ("pkg-config" ,pkg-config)
7408 ("python" ,python)
7409 ("ruby-sass" ,ruby-sass)
7410 ("sassc" ,sassc)
7411 ("xsltproc" ,libxslt)
7412 ;; For tests
7413 ("xorg-server" ,xorg-server-for-tests)))
7414 (inputs
7415 `(("accountsservice" ,accountsservice)
7416 ("caribou" ,caribou)
7417 ("docbook-xsl" ,docbook-xsl)
7418 ("evolution-data-server" ,evolution-data-server)
7419 ("gcr" ,gcr)
7420 ("gdm" ,gdm)
7421 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7422 ("gjs" ,gjs)
7423 ("gnome-autoar" ,gnome-autoar)
7424 ("gnome-bluetooth" ,gnome-bluetooth)
7425 ("gnome-desktop" ,gnome-desktop)
7426 ("gnome-settings-daemon" ,gnome-settings-daemon)
7427 ("gst-plugins-base" ,gst-plugins-base)
7428 ("ibus" ,ibus)
7429 ("libcanberra" ,libcanberra)
7430 ("libcroco" ,libcroco)
7431 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7432 ("libgweather" ,libgweather)
7433 ("libnma" ,libnma)
7434 ("libsoup" ,libsoup)
7435 ("mesa-headers" ,mesa-headers)
7436 ("mutter" ,mutter)
7437 ("network-manager-applet" ,network-manager-applet)
7438 ("polkit" ,polkit)
7439 ("pulseaudio" ,pulseaudio)
7440 ("python-pygobject" ,python-pygobject)
7441 ("startup-notification" ,startup-notification)
7442 ("telepathy-logger" ,telepathy-logger)
7443 ("upower" ,upower)
7444 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7445 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7446 ("librsvg" ,librsvg)
7447 ("geoclue" ,geoclue)))
7448 (synopsis "Desktop shell for GNOME")
7449 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7450 (description
7451 "GNOME Shell provides core user interface functions for the GNOME desktop,
7452 like switching to windows and launching applications.")
7453 (license license:gpl2+)))
7454
7455 (define-public gtk-vnc
7456 (package
7457 (name "gtk-vnc")
7458 (version "0.9.0")
7459 (source
7460 (origin
7461 (method url-fetch)
7462 (uri (string-append "mirror://gnome/sources/" name "/"
7463 (version-major+minor version) "/"
7464 name "-" version ".tar.xz"))
7465 (sha256
7466 (base32
7467 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7468 (build-system gnu-build-system)
7469 (arguments
7470 '(#:configure-flags '("--with-gtk=3.0")))
7471 (propagated-inputs
7472 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7473 (inputs
7474 `(("cyrus-sasl" ,cyrus-sasl)
7475 ("gnutls" ,gnutls)
7476 ("libgcrypt" ,libgcrypt)
7477 ("pulseaudio" ,pulseaudio)))
7478 (native-inputs
7479 `(("glib:bin" ,glib "bin")
7480 ("gobject-introspection" ,gobject-introspection)
7481 ("intltool" ,intltool)
7482 ("pkg-config" ,pkg-config)
7483 ("python-wrapper" ,python-wrapper)
7484 ("vala" ,vala)))
7485 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7486 (synopsis "VNC viewer widget for GTK+")
7487 (description
7488 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7489 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7490 GTK-VNC implements client side RFB protocol and authentication extensions such
7491 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7492 (license license:lgpl2.1+)))
7493
7494 (define-public gnome-autoar
7495 (package
7496 (name "gnome-autoar")
7497 (version "0.2.4")
7498 (source (origin
7499 (method url-fetch)
7500 (uri (string-append "mirror://gnome/sources/" name "/"
7501 (version-major+minor version) "/"
7502 name "-" version ".tar.xz"))
7503 (sha256
7504 (base32
7505 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
7506 (build-system glib-or-gtk-build-system)
7507 (native-inputs
7508 `(("gobject-introspection" ,gobject-introspection)
7509 ("pkg-config" ,pkg-config)))
7510 (propagated-inputs
7511 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
7512 (inputs
7513 `(("gtk+" ,gtk+)))
7514 (synopsis "Archives integration support for GNOME")
7515 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7516 (description
7517 "GNOME Autoar is a library which makes creating and extracting archives
7518 easy, safe, and automatic.")
7519 (license license:lgpl2.1+)))
7520
7521 (define-public tracker
7522 (package
7523 (name "tracker")
7524 (version "2.3.4")
7525 (source (origin
7526 (method url-fetch)
7527 (uri (string-append "mirror://gnome/sources/tracker/"
7528 (version-major+minor version) "/"
7529 "tracker-" version ".tar.xz"))
7530 (sha256
7531 (base32
7532 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7533 (build-system meson-build-system)
7534 (arguments
7535 `(#:glib-or-gtk? #t
7536 #:configure-flags
7537 ;; Otherwise, the RUNPATH will lack the final path component.
7538 (list (string-append "-Dc_link_args=-Wl,-rpath="
7539 (assoc-ref %outputs "out") "/lib:"
7540 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7541 #:phases
7542 (modify-phases %standard-phases
7543 (add-before 'check 'pre-check
7544 (lambda _
7545 ;; Some tests expect to write to $HOME.
7546 (setenv "HOME" "/tmp")
7547 #t)))))
7548 (native-inputs
7549 `(("glib:bin" ,glib "bin")
7550 ("gobject-introspection" ,gobject-introspection)
7551 ("python-pygobject" ,python-pygobject)
7552 ("intltool" ,intltool)
7553 ("pkg-config" ,pkg-config)
7554 ("vala" ,vala)))
7555 (inputs
7556 `(("dbus" ,dbus)
7557 ("sqlite" ,sqlite)
7558 ("libxml2" ,libxml2)
7559 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
7560 ("json-glib" ,json-glib)
7561 ("libsoup" ,libsoup)))
7562 (synopsis "Metadata database, indexer and search tool")
7563 (home-page "https://wiki.gnome.org/Projects/Tracker")
7564 (description
7565 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7566
7567 It is a middleware component aimed at desktop application developers who want
7568 their apps to browse and search user content. It's not designed to be used
7569 directly by desktop users, but it provides a commandline tool named
7570 @command{tracker} for the adventurous.
7571
7572 Tracker allows your application to instantly perform full-text searches across
7573 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7574 example. This is achieved by indexing the user's home directory in the
7575 background.
7576
7577 Tracker also allows your application to query and list content that the user
7578 has stored. For example, GNOME Music displays all the music files that are
7579 found by Tracker. This means that GNOME Music doesn't need to maintain a
7580 database of its own.
7581
7582 If you need to go beyond simple searches, Tracker is also a linked data
7583 endpoint and it understands SPARQL. ")
7584 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
7585 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7586 ;; libstemmer is bsd-3 and the rest is gpl2+.
7587 (license (list license:gpl2+
7588 license:bsd-3
7589 license:lgpl2.1+))))
7590
7591 (define-public tracker-miners
7592 (package
7593 (name "tracker-miners")
7594 (version "2.3.3")
7595 (source (origin
7596 (method url-fetch)
7597 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7598 (version-major+minor version)
7599 "/tracker-miners-" version ".tar.xz"))
7600 (sha256
7601 (base32
7602 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
7603 (build-system meson-build-system)
7604 (arguments
7605 `(#:glib-or-gtk? #t
7606 #:configure-flags
7607 (list "-Dminer_rss=false" ; libgrss is required.
7608 ;; Ensure the RUNPATH contains all installed library locations.
7609 (string-append "-Dc_link_args=-Wl,-rpath="
7610 (assoc-ref %outputs "out")
7611 "/lib/tracker-miners-2.0")
7612 ;; TODO: Enable functional tests. Currently, the following error
7613 ;; appears:
7614 ;; Exception: The functional tests require DConf to be the default
7615 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7616 "-Dfunctional_tests=false")))
7617 (native-inputs
7618 `(("dbus" ,dbus)
7619 ("intltool" ,intltool)
7620 ("glib:bin" ,glib "bin")
7621 ("gobject-introspection" ,gobject-introspection)
7622 ("pkg-config" ,pkg-config)
7623 ("python-pygobject" ,python-pygobject)))
7624 (inputs
7625 `(("exempi" ,exempi)
7626 ("ffmpeg" ,ffmpeg)
7627 ("flac" ,flac)
7628 ("giflib" ,giflib)
7629 ("glib" ,glib)
7630 ("gstreamer" ,gstreamer)
7631 ("icu4c" ,icu4c)
7632 ("libcue" ,libcue)
7633 ("libexif" ,libexif)
7634 ("libgsf" ,libgsf)
7635 ("libgxps" ,libgxps)
7636 ("libiptcdata" ,libiptcdata)
7637 ("libjpeg" ,libjpeg-turbo)
7638 ("libosinfo" ,libosinfo)
7639 ("libpng" ,libpng)
7640 ("libseccomp" ,libseccomp)
7641 ("libtiff" ,libtiff)
7642 ("libvorbis" ,libvorbis)
7643 ("libxml2" ,libxml2)
7644 ("poppler" ,poppler)
7645 ("taglib" ,taglib)
7646 ("totem-pl-parser" ,totem-pl-parser)
7647 ("tracker" ,tracker)
7648 ("upower" ,upower)
7649 ("zlib" ,zlib)))
7650 (synopsis "Metadata database, indexer and search tool")
7651 (home-page "https://wiki.gnome.org/Projects/Tracker")
7652 (description
7653 "Tracker is an advanced framework for first class objects with associated
7654 metadata and tags. It provides a one stop solution for all metadata, tags,
7655 shared object databases, search tools and indexing.")
7656 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7657 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7658 (license (list license:gpl2+
7659 license:lgpl2.1+
7660 license:lgpl2.0+))))
7661
7662 (define-public nautilus
7663 (package
7664 (name "nautilus")
7665 (version "3.34.2")
7666 (source (origin
7667 (method url-fetch)
7668 (uri (string-append "mirror://gnome/sources/" name "/"
7669 (version-major+minor version) "/"
7670 name "-" version ".tar.xz"))
7671 (sha256
7672 (base32
7673 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
7674 (build-system meson-build-system)
7675 (arguments
7676 '(#:glib-or-gtk? #t
7677 #:phases
7678 (modify-phases %standard-phases
7679 (add-after 'unpack 'skip-gtk-update-icon-cache
7680 ;; Don't create 'icon-theme.cache'.
7681 (lambda _
7682 (substitute* "build-aux/meson/postinstall.py"
7683 (("gtk-update-icon-cache") "true"))
7684 #t)))
7685 ;; XXX: FAIL: check-nautilus
7686 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7687 #:tests? #f))
7688 (native-inputs
7689 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7690 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7691 ("gobject-introspection" ,gobject-introspection)
7692 ("intltool" ,intltool)
7693 ("pkg-config" ,pkg-config)))
7694 (inputs
7695 `(("dconf" ,dconf)
7696 ("gexiv2" ,gexiv2)
7697 ("gvfs" ,gvfs)
7698 ("exempi" ,exempi)
7699 ("gnome-desktop" ,gnome-desktop)
7700 ("gnome-autoar" ,gnome-autoar)
7701 ("gst-plugins-base" ,gst-plugins-base)
7702 ("libseccomp" ,libseccomp)
7703 ("libselinux" ,libselinux)
7704 ("tracker" ,tracker)
7705 ("tracker-miners" ,tracker-miners)
7706 ;; XXX: gtk+ is required by libnautilus-extension.pc
7707 ;;
7708 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7709 ;; package. See:
7710 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7711 ("gtk+" ,gtk+)
7712 ("libexif" ,libexif)
7713 ("libxml2" ,libxml2)))
7714 (synopsis "File manager for GNOME")
7715 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7716 (description
7717 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7718 design and behaviour, giving the user a simple way to navigate and manage its
7719 files.")
7720 (license license:gpl2+)))
7721
7722 (define-public baobab
7723 (package
7724 (name "baobab")
7725 (version "3.32.0")
7726 (source (origin
7727 (method url-fetch)
7728 (uri (string-append
7729 "mirror://gnome/sources/" name "/"
7730 (version-major+minor version) "/"
7731 name "-" version ".tar.xz"))
7732 (sha256
7733 (base32
7734 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7735 (build-system meson-build-system)
7736 (arguments
7737 '(#:glib-or-gtk? #t))
7738 (native-inputs
7739 `(("intltool" ,intltool)
7740 ("pkg-config" ,pkg-config)
7741 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7742 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7743 ("itstool" ,itstool)
7744 ("xmllint" ,libxml2)
7745 ("glib" ,glib "bin")
7746 ("vala" ,vala)))
7747 (inputs
7748 `(("gtk+" ,gtk+)))
7749 (synopsis "Disk usage analyzer for GNOME")
7750 (description
7751 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7752 usage in the GNOME desktop environment. It can easily scan device volumes or
7753 a specific user-requested directory branch (local or remote). Once the scan
7754 is complete it provides a graphical representation of each selected folder.")
7755 (home-page "https://wiki.gnome.org/Apps/Baobab")
7756 (license license:gpl2+)))
7757
7758 (define-public gnome-backgrounds
7759 (package
7760 (name "gnome-backgrounds")
7761 (version "3.34.0")
7762 (source
7763 (origin
7764 (method url-fetch)
7765 (uri (string-append "mirror://gnome/sources/" name "/"
7766 (version-major+minor version) "/"
7767 name "-" version ".tar.xz"))
7768 (sha256
7769 (base32
7770 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
7771 (build-system meson-build-system)
7772 (native-inputs
7773 `(("intltool" ,intltool)))
7774 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7775 (synopsis "Background images for the GNOME desktop")
7776 (description
7777 "GNOME backgrounds package contains a collection of graphics files which
7778 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7779 the package creates the proper framework and directory structure so that you
7780 can add your own files to the collection.")
7781 (license (list license:gpl2+
7782 license:cc-by2.0
7783 license:cc-by-sa2.0
7784 license:cc-by-sa3.0))))
7785
7786 (define-public gnome-screenshot
7787 (package
7788 (name "gnome-screenshot")
7789 (version "3.34.0")
7790 (source
7791 (origin
7792 (method url-fetch)
7793 (uri (string-append "mirror://gnome/sources/" name "/"
7794 (version-major+minor version) "/"
7795 name "-" version ".tar.xz"))
7796 (sha256
7797 (base32
7798 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
7799 (build-system meson-build-system)
7800 (arguments
7801 '(#:phases
7802 (modify-phases %standard-phases
7803 (add-after 'unpack 'skip-gtk-update-icon-cache
7804 ;; Don't create 'icon-theme.cache'.
7805 (lambda _
7806 (substitute* "build-aux/postinstall.py"
7807 (("gtk-update-icon-cache") "true"))
7808 #t)))))
7809 (native-inputs
7810 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7811 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7812 ("intltool" ,intltool)
7813 ("appstream-glib" ,appstream-glib)
7814 ("pkg-config" ,pkg-config)))
7815 (inputs
7816 `(("gtk+" ,gtk+)
7817 ("libcanberra" ,libcanberra)
7818 ("libx11" ,libx11)
7819 ("libxext" ,libxext)))
7820 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7821 (synopsis "Take pictures of your screen")
7822 (description
7823 "GNOME Screenshot is a utility used for taking screenshots of the entire
7824 screen, a window or a user defined area of the screen, with optional
7825 beautifying border effects.")
7826 (license license:gpl2+)))
7827
7828 (define-public dconf-editor
7829 (package
7830 (name "dconf-editor")
7831 (version "3.34.2")
7832 (source
7833 (origin
7834 (method url-fetch)
7835 (uri (string-append "mirror://gnome/sources/" name "/"
7836 (version-major+minor version) "/"
7837 name "-" version ".tar.xz"))
7838 (sha256
7839 (base32
7840 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
7841 (build-system meson-build-system)
7842 (native-inputs
7843 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7844 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7845 ("intltool" ,intltool)
7846 ("pkg-config" ,pkg-config)
7847 ("vala" ,vala)))
7848 (inputs
7849 `(("dconf" ,dconf)
7850 ("gtk+" ,gtk+)
7851 ("libxml2" ,libxml2)))
7852 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
7853 (synopsis "Graphical editor for GNOME's dconf configuration system")
7854 (description
7855 "Dconf-editor is a graphical tool for browsing and editing the dconf
7856 configuration system for GNOME. It allows users to configure desktop
7857 software that do not provide their own configuration interface.")
7858 (license license:lgpl2.1+)))
7859
7860 (define-public gnome-default-applications
7861 (package
7862 (name "gnome-default-applications")
7863 (version "0")
7864 (build-system trivial-build-system)
7865 (source #f)
7866 (propagated-inputs
7867 `(("nautilus" ,nautilus)
7868 ("evince" ,evince)))
7869 (arguments
7870 `(#:modules ((guix build utils))
7871 #:builder
7872 (begin
7873 (use-modules (guix build utils))
7874 (let* ((out (assoc-ref %outputs "out"))
7875 (apps (string-append out "/share/applications")))
7876 (mkdir-p apps)
7877 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
7878 (lambda (port)
7879 (format port "[Default Applications]\n")
7880 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7881 (format port "application/pdf=evince.desktop\n")
7882 (format port "application/postscript=evince.desktop\n")))
7883 #t))))
7884 (synopsis "Default MIME type associations for the GNOME desktop")
7885 (description
7886 "Given many installed packages which might handle a given MIME type, a
7887 user running the GNOME desktop probably has some preferences: for example,
7888 that folders be opened by default by the Nautilus file manager, not the Baobab
7889 disk usage analyzer. This package establishes that set of default MIME type
7890 associations for GNOME.")
7891 (license license:gpl3+)
7892 (home-page #f)))
7893
7894 (define-public libgovirt
7895 (package
7896 (name "libgovirt")
7897 (version "0.3.6")
7898 (source (origin
7899 (method url-fetch)
7900 (uri (string-append "mirror://gnome/sources/" name "/"
7901 (version-major+minor version) "/"
7902 name "-" version ".tar.xz"))
7903 (sha256
7904 (base32
7905 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7906 (build-system glib-or-gtk-build-system)
7907 (native-inputs
7908 `(("gettext" ,gettext-minimal)
7909 ("glib:bin" ,glib "bin")
7910 ("gobject-introspection" ,gobject-introspection)
7911 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7912 ("gtk+:bin" ,gtk+ "bin")
7913 ("pkg-config" ,pkg-config)))
7914 (inputs
7915 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7916 ("librest" ,rest)))
7917 (synopsis "GoVirt Library")
7918 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7919 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7920 (license license:gpl2+)))
7921
7922 (define-public gnome-weather
7923 (package
7924 (name "gnome-weather")
7925 (version "3.34.0")
7926 (source (origin
7927 (method url-fetch)
7928 (uri (string-append "mirror://gnome/sources/" name "/"
7929 (version-major+minor version) "/"
7930 name "-" version ".tar.xz"))
7931 (sha256
7932 (base32
7933 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7934 (build-system meson-build-system)
7935 (native-inputs
7936 `(("gettext" ,gettext-minimal)
7937 ("glib:bin" ,glib "bin")
7938 ("gobject-introspection" ,gobject-introspection)
7939 ("gtk+:bin" ,gtk+ "bin")
7940 ("pkg-config" ,pkg-config)))
7941 (inputs
7942 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7943 ("appstream-glib" ,appstream-glib)
7944 ("geoclue" ,geoclue)
7945 ("gdk-pixbuf" ,gdk-pixbuf)
7946 ("gjs" ,gjs)
7947 ("gnome-desktop" ,gnome-desktop)
7948 ("libgweather" ,libgweather)))
7949 (arguments
7950 `(#:glib-or-gtk? #t
7951 #:phases
7952 (modify-phases %standard-phases
7953 (add-after 'install 'fix-desktop-file
7954 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7955 ;; See https://issues.guix.gnu.org/issue/39324.
7956 (lambda* (#:key outputs #:allow-other-keys)
7957 (let* ((out (assoc-ref outputs "out"))
7958 (applications (string-append out "/share/applications")))
7959 (substitute* (string-append applications "/org.gnome.Weather.desktop")
7960 (("Exec=.*") "Exec=gnome-weather\n"))
7961 #t)))
7962 (add-after 'install 'wrap
7963 (lambda* (#:key inputs outputs #:allow-other-keys)
7964 (let ((out (assoc-ref outputs "out"))
7965 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7966 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7967 (wrap-program (string-append out "/bin/gnome-weather")
7968 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7969 #t))))))
7970 (synopsis "Weather monitoring for GNOME desktop")
7971 (description "GNOME Weather is a small application that allows you to
7972 monitor the current weather conditions for your city, or anywhere in the
7973 world.")
7974 (home-page "https://wiki.gnome.org/Apps/Weather")
7975 (license license:gpl2+)))
7976
7977 (define-public gnome
7978 (package
7979 (name "gnome")
7980 (version (package-version gnome-shell))
7981 (source #f)
7982 (build-system trivial-build-system)
7983 (arguments '(#:builder (begin (mkdir %output) #t)))
7984 (propagated-inputs
7985 ;; TODO: Add or remove packages according to:
7986 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7987 `(
7988 ;; GNOME-Core-OS-Services
7989 ("accountsservice" ,accountsservice)
7990 ("network-manager" ,network-manager)
7991 ("packagekit" ,packagekit)
7992 ("upower" ,upower)
7993 ;; GNOME-Core-Shell
7994 ("adwaita-icon-theme" ,adwaita-icon-theme)
7995 ("gdm" ,gdm)
7996 ("glib-networking" ,glib-networking)
7997 ("gnome-backgrounds" ,gnome-backgrounds)
7998 ("gnome-bluetooth" ,gnome-bluetooth)
7999 ("gnome-color-manager" ,gnome-color-manager)
8000 ("gnome-control-center" ,gnome-control-center)
8001 ("gnome-desktop" ,gnome-desktop)
8002 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8003 ("gnome-initial-setup" ,gnome-initial-setup)
8004 ("gnome-keyring" ,gnome-keyring)
8005 ("gnome-menus" ,gnome-menus)
8006 ("gnome-session" ,gnome-session)
8007 ("gnome-settings-daemon" ,gnome-settings-daemon)
8008 ("gnome-shell-extensions" ,gnome-shell-extensions)
8009 ("gnome-shell" ,gnome-shell)
8010 ("gnome-themes-extra" ,gnome-themes-extra)
8011 ("gnome-user-docs" ,gnome-user-docs)
8012 ("gnome-user-share" ,gnome-user-share)
8013 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8014 ("gvfs" ,gvfs)
8015 ("mutter" ,mutter)
8016 ("orca" ,orca)
8017 ("rygel" ,rygel)
8018 ("sushi" ,sushi)
8019 ;; GNOME-Core-Utilities
8020 ("baobab" ,baobab)
8021 ("cheese" ,cheese)
8022 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8023 ;; only works on x86_64, so exclude it on other architectures.
8024 ,@(if (string-prefix? "x86_64" (%current-system))
8025 `(("eog" ,eog))
8026 '())
8027 ("epiphany" ,epiphany)
8028 ("evince" ,evince)
8029 ("file-roller" ,file-roller)
8030 ("gedit" ,gedit)
8031 ("gnome-boxes" ,gnome-boxes)
8032 ("gnome-calculator" ,gnome-calculator)
8033 ("gnome-calendar" ,gnome-calendar)
8034 ("gnome-characters" ,gnome-characters)
8035 ("gnome-clocks" ,gnome-clocks)
8036 ("gnome-contacts" ,gnome-contacts)
8037 ("gnome-disk-utility" ,gnome-disk-utility)
8038 ("gnome-font-viewer" ,gnome-font-viewer)
8039 ("gnome-maps" ,gnome-maps)
8040 ; TODO: ("gnome-music" ,gnome-music)
8041 ; TODO: ("gnome-photos" ,gnome-photos)
8042 ("gnome-screenshot" ,gnome-screenshot)
8043 ("gnome-system-monitor" ,gnome-system-monitor)
8044 ("gnome-terminal" ,gnome-terminal)
8045 ("gnome-weather" ,gnome-weather)
8046 ("nautilus" ,nautilus)
8047 ("simple-scan" ,simple-scan)
8048 ("totem" ,totem)
8049 ("yelp" ,yelp)
8050 ;; Others
8051 ("hicolor-icon-theme" ,hicolor-icon-theme)
8052 ("gnome-online-accounts" ,gnome-online-accounts)
8053
8054 ;; Packages not part of GNOME proper but that are needed for a good
8055 ;; experience. See <https://bugs.gnu.org/39646>.
8056 ;; XXX: Find out exactly which ones are needed and why.
8057 ("font-cantarell" ,font-cantarell)
8058 ("font-dejavu" ,font-dejavu)
8059 ("at-spi2-core" ,at-spi2-core)
8060 ("dbus" ,dbus)
8061 ("dconf" ,dconf)
8062 ("desktop-file-utils" ,desktop-file-utils)
8063 ("gnome-default-applications" ,gnome-default-applications)
8064 ("gnome-themes-standard" ,gnome-themes-standard)
8065 ("gst-plugins-base" ,gst-plugins-base)
8066 ("gst-plugins-good" ,gst-plugins-good)
8067 ("gucharmap" ,gucharmap)
8068 ("pinentry-gnome3" ,pinentry-gnome3)
8069 ("pulseaudio" ,pulseaudio)
8070 ("shared-mime-info" ,shared-mime-info)
8071 ("system-config-printer" ,system-config-printer)
8072 ("xdg-user-dirs" ,xdg-user-dirs)
8073 ("yelp" ,yelp)
8074 ("zenity" ,zenity)))
8075 (synopsis "The GNU desktop environment")
8076 (home-page "https://www.gnome.org/")
8077 (description
8078 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8079 applications for browsing the web, editing text and images, creating
8080 documents and diagrams, playing media, scanning, and much more.")
8081 (license license:gpl2+)))
8082
8083 (define-public byzanz
8084 ;; The last stable release of Byzanz was in 2011, but there have been many
8085 ;; useful commits made to the Byzanz repository since then that it would be
8086 ;; silly to use such an old release.
8087 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8088 (package
8089 (name "byzanz")
8090 (version (string-append "0.2-1." (string-take commit 7)))
8091 (source (origin
8092 (method git-fetch)
8093 (uri (git-reference
8094 (url "https://git.gnome.org/browse/byzanz")
8095 (commit commit)))
8096 (file-name (string-append name "-" version "-checkout"))
8097 (sha256
8098 (base32
8099 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8100 (build-system glib-or-gtk-build-system)
8101 (arguments
8102 '(#:phases
8103 (modify-phases %standard-phases
8104 (add-before 'bootstrap 'build-without-Werror
8105 (lambda _
8106 ;; The build system cleverly detects that we're not building from
8107 ;; a release tarball and turns on -Werror for GCC.
8108 ;; Unsurprisingly, there is a warning during compilation that
8109 ;; causes the build to fail unnecessarily, so we remove the flag.
8110 (substitute* '("configure.ac")
8111 (("-Werror") ""))
8112 #t)))))
8113 (native-inputs
8114 `(("autoconf" ,autoconf)
8115 ("automake" ,automake)
8116 ("gnome-common" ,gnome-common)
8117 ("intltool" ,intltool)
8118 ("libtool" ,libtool)
8119 ("pkg-config" ,pkg-config)
8120 ("which" ,which)))
8121 (inputs
8122 `(("glib" ,glib)
8123 ("gstreamer" ,gstreamer)
8124 ("gst-plugins-base" ,gst-plugins-base)
8125 ("gtk+" ,gtk+)))
8126 (synopsis "Desktop recording program")
8127 (description "Byzanz is a simple desktop recording program with a
8128 command-line interface. It can record part or all of an X display for a
8129 specified duration and save it as a GIF encoded animated image file.")
8130 (home-page "https://git.gnome.org/browse/byzanz")
8131 (license license:gpl2+))))
8132
8133 (define-public gsound
8134 (package
8135 (name "gsound")
8136 (version "1.0.2")
8137 (source (origin
8138 (method url-fetch)
8139 (uri (string-append "mirror://gnome/sources/" name "/"
8140 (version-major+minor version) "/"
8141 name "-" version ".tar.xz"))
8142 (sha256
8143 (base32
8144 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8145 (build-system glib-or-gtk-build-system)
8146 (native-inputs
8147 `(("pkg-config" ,pkg-config)
8148 ("gobject-introspection" ,gobject-introspection)
8149 ("vala" ,vala)))
8150 (inputs
8151 `(("glib" ,glib)
8152 ("libcanberra" ,libcanberra)))
8153 (home-page "https://wiki.gnome.org/Projects/GSound")
8154 (synopsis "GObject wrapper for libcanberra")
8155 (description
8156 "GSound is a small library for playing system sounds. It's designed to be
8157 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8158 library.")
8159 (license license:lgpl2.1+)))
8160
8161 (define-public libzapojit
8162 (package
8163 (name "libzapojit")
8164 (version "0.0.3")
8165 (source (origin
8166 (method url-fetch)
8167 (uri (string-append "mirror://gnome/sources/" name "/"
8168 (version-major+minor version) "/"
8169 name "-" version ".tar.xz"))
8170 (sha256
8171 (base32
8172 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8173 (build-system gnu-build-system)
8174 (native-inputs
8175 `(("gobject-introspection" ,gobject-introspection)
8176 ("intltool" ,intltool)
8177 ("pkg-config" ,pkg-config)))
8178 (inputs
8179 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8180 ("json-glib" ,json-glib)
8181 ("rest" ,rest)))
8182 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8183 (synopsis "Library for accessing SkyDrive and Hotmail")
8184 (description
8185 "Libzapojit is a GLib-based library for accessing online service APIs of
8186 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8187 (license license:lgpl2.1+)))
8188
8189 (define-public gnome-clocks
8190 (package
8191 (name "gnome-clocks")
8192 (version "3.34.0")
8193 (source (origin
8194 (method url-fetch)
8195 (uri (string-append "mirror://gnome/sources/" name "/"
8196 (version-major+minor version) "/"
8197 name "-" version ".tar.xz"))
8198 (sha256
8199 (base32
8200 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8201 (build-system meson-build-system)
8202 (arguments
8203 '(#:glib-or-gtk? #t
8204 #:phases
8205 (modify-phases %standard-phases
8206 (add-after 'unpack 'skip-gtk-update-icon-cache
8207 ;; Don't create 'icon-theme.cache'.
8208 (lambda _
8209 (substitute* "build-aux/post-install.py"
8210 (("gtk-update-icon-cache") "true"))
8211 #t)))))
8212 (native-inputs
8213 `(("vala" ,vala)
8214 ("pkg-config" ,pkg-config)
8215 ("glib" ,glib "bin") ; for glib-compile-resources
8216 ("desktop-file-utils" ,desktop-file-utils)
8217 ("gettext" ,gettext-minimal)
8218 ("itstool" ,itstool)))
8219 (inputs
8220 `(("glib" ,glib)
8221 ("gtk+" ,gtk+)
8222 ("gsound" ,gsound)
8223 ("geoclue" ,geoclue)
8224 ("geocode-glib" ,geocode-glib)
8225 ("libgweather" ,libgweather)
8226 ("gnome-desktop" ,gnome-desktop)))
8227 (home-page "https://wiki.gnome.org/Apps/Clocks")
8228 (synopsis "GNOME's clock application")
8229 (description
8230 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8231 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8232 (license license:gpl3+)))
8233
8234 (define-public gnome-calendar
8235 (package
8236 (name "gnome-calendar")
8237 (version "3.34.2")
8238 (source (origin
8239 (method url-fetch)
8240 (uri (string-append "mirror://gnome/sources/" name "/"
8241 (version-major+minor version) "/"
8242 name "-" version ".tar.xz"))
8243 (sha256
8244 (base32
8245 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
8246 (build-system meson-build-system)
8247 (arguments
8248 '(#:glib-or-gtk? #t
8249 ;; gnome-calendar has to be installed before the tests can be run
8250 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8251 #:tests? #f
8252 #:phases
8253 (modify-phases %standard-phases
8254 (add-after 'unpack 'skip-gtk-update-icon-cache
8255 ;; Don't create 'icon-theme.cache'.
8256 (lambda _
8257 (substitute* "build-aux/meson/meson_post_install.py"
8258 (("gtk-update-icon-cache") "true"))
8259 #t)))))
8260 (native-inputs
8261 `(("gettext" ,gettext-minimal)
8262 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8263 ("pkg-config" ,pkg-config)))
8264 (inputs
8265 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8266 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8267 ("libdazzle" ,libdazzle)
8268 ("libedataserverui" ,evolution-data-server)
8269 ("libgweather" ,libgweather)
8270 ("geoclue" ,geoclue)))
8271 (propagated-inputs
8272 `(("evolution-data-server" ,evolution-data-server)))
8273 (home-page "https://wiki.gnome.org/Apps/Calendar")
8274 (synopsis "GNOME's calendar application")
8275 (description
8276 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8277 desktop. It supports multiple calendars, month, week and year view.")
8278 (license license:gpl3+)))
8279
8280 (define-public gnome-todo
8281 (package
8282 (name "gnome-todo")
8283 (version "3.28.1")
8284 (source (origin
8285 (method url-fetch)
8286 (uri (string-append "mirror://gnome/sources/" name "/"
8287 (version-major+minor version) "/"
8288 name "-" version ".tar.xz"))
8289 (sha256
8290 (base32
8291 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8292 (patches
8293 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
8294 (build-system meson-build-system)
8295 (arguments
8296 '(#:glib-or-gtk? #t
8297 #:phases (modify-phases %standard-phases
8298 (add-after
8299 'install 'wrap-gnome-todo
8300 (lambda* (#:key inputs outputs #:allow-other-keys)
8301 (let ((out (assoc-ref outputs "out"))
8302 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8303 (python-path (getenv "PYTHONPATH")))
8304 (wrap-program (string-append out "/bin/gnome-todo")
8305 ;; XXX: gi plugins are broken.
8306 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8307 ;; For plugins.
8308 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8309 `("PYTHONPATH" ":" prefix (,python-path))))
8310 #t)))))
8311 (native-inputs
8312 `(("gettext" ,gettext-minimal)
8313 ("gobject-introspection" ,gobject-introspection)
8314 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8315 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8316 ("pkg-config" ,pkg-config)))
8317 (inputs
8318 `(("rest" ,rest) ; For Todoist plugin
8319 ("json-glib" ,json-glib) ; For Todoist plugin
8320 ("libedataserverui" ,evolution-data-server)
8321 ("libical" ,libical)
8322 ("libpeas" ,libpeas)
8323 ("python-pygobject" ,python-pygobject)
8324 ("evolution-data-server" ,evolution-data-server)
8325 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8326 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8327 (home-page "https://wiki.gnome.org/Apps/Todo")
8328 (synopsis "GNOME's ToDo Application")
8329 (description
8330 "GNOME To Do is a simplistic personal task manager designed to perfectly
8331 fit the GNOME desktop.")
8332 (license license:gpl3+)))
8333
8334 (define-public gnome-dictionary
8335 (package
8336 (name "gnome-dictionary")
8337 (version "3.26.1")
8338 (source (origin
8339 (method url-fetch)
8340 (uri (string-append "mirror://gnome/sources/" name "/"
8341 (version-major+minor version) "/"
8342 name "-" version ".tar.xz"))
8343 (sha256
8344 (base32
8345 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8346 (build-system meson-build-system)
8347 (arguments '(#:glib-or-gtk? #t
8348 #:phases (modify-phases %standard-phases
8349 (add-after 'unpack 'patch-install-script
8350 (lambda _
8351 ;; This script attempts to compile glib schemas
8352 ;; and create an empty MIME database. We do
8353 ;; that elsewhere, so prevent it from running.
8354 (substitute* "build-aux/post-install.sh"
8355 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8356 #t)))))
8357 (native-inputs
8358 `(("glib:bin" ,glib "bin")
8359 ("gobject-introspection" ,gobject-introspection)
8360 ("intltool" ,intltool)
8361 ("itstool" ,itstool)
8362 ("pkg-config" ,pkg-config)
8363 ("xmllint" ,libxml2)))
8364 (inputs
8365 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8366 ("gtk+" ,gtk+)))
8367 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8368 (synopsis "Look up words in dictionary sources")
8369 (description
8370 "GNOME Dictionary can look for the definition or translation of a word in
8371 existing databases over the internet.")
8372 (license license:gpl3+)))
8373
8374 (define-public gnome-tweaks
8375 (package
8376 (name "gnome-tweaks")
8377 (version "3.34.0")
8378 (source (origin
8379 (method url-fetch)
8380 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8381 (version-major+minor version) "/"
8382 "gnome-tweaks-" version ".tar.xz"))
8383 (patches
8384 (list (search-patch "gnome-tweaks-search-paths.patch")))
8385 (sha256
8386 (base32
8387 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
8388 (build-system meson-build-system)
8389 (arguments
8390 `(#:glib-or-gtk? #t
8391 #:configure-flags '("-Dlocalstatedir=/tmp"
8392 "-Dsysconfdir=/tmp")
8393 #:imported-modules ((guix build python-build-system)
8394 ,@%meson-build-system-modules)
8395 #:phases
8396 (modify-phases %standard-phases
8397 (add-after 'unpack 'skip-gtk-update-icon-cache
8398 ;; Don't create 'icon-theme.cache'.
8399 (lambda _
8400 (substitute* "meson-postinstall.py"
8401 (("gtk-update-icon-cache") "true"))
8402 #t))
8403 (add-after 'install 'wrap
8404 (@@ (guix build python-build-system) wrap))
8405 (add-after 'wrap 'wrap-gi-typelib
8406 (lambda* (#:key inputs outputs #:allow-other-keys)
8407 (let ((out (assoc-ref outputs "out"))
8408 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8409 (wrap-program (string-append out "/bin/gnome-tweaks")
8410 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8411 #t)))))
8412 (native-inputs
8413 `(("intltool" ,intltool)
8414 ("pkg-config" ,pkg-config)))
8415 (inputs
8416 `(("gnome-desktop" ,gnome-desktop)
8417 ("gtk+" ,gtk+)
8418 ("gobject-introspection" ,gobject-introspection)
8419 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8420 ("libhandy" ,libhandy)
8421 ("libnotify" ,libnotify)
8422 ("libsoup" ,libsoup)
8423 ("nautilus" ,nautilus)
8424 ("python" ,python)
8425 ("python-pygobject" ,python-pygobject)))
8426 (synopsis "Customize advanced GNOME 3 options")
8427 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8428 (description
8429 "GNOME Tweaks allows adjusting advanced configuration settings in
8430 GNOME 3. This includes things like the fonts used in user interface elements,
8431 alternative user interface themes, changes in window management behavior,
8432 GNOME Shell appearance and extension, etc.")
8433 (license license:gpl3+)))
8434
8435 (define-public gnome-shell-extensions
8436 (package
8437 (name "gnome-shell-extensions")
8438 (version "3.34.2")
8439 (source (origin
8440 (method url-fetch)
8441 (uri (string-append "mirror://gnome/sources/" name "/"
8442 (version-major+minor version) "/"
8443 name "-" version ".tar.xz"))
8444 (sha256
8445 (base32
8446 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
8447 (build-system meson-build-system)
8448 (arguments
8449 '(#:configure-flags '("-Dextension_set=all")))
8450 (native-inputs
8451 `(("glib:bin" ,glib "bin")
8452 ("intltool" ,intltool)
8453 ("pkg-config" ,pkg-config)))
8454 (propagated-inputs
8455 `(("glib" ,glib)))
8456 (synopsis "Extensions for GNOME Shell")
8457 (description "GNOME Shell extensions modify and extend GNOME Shell
8458 functionality and behavior.")
8459 (home-page "https://extensions.gnome.org/")
8460 (license license:gpl3+)))
8461
8462 (define-public arc-theme
8463 (package
8464 (name "arc-theme")
8465 (version "20190917")
8466 (source (origin
8467 (method git-fetch)
8468 (uri (git-reference
8469 (url "https://github.com/NicoHood/arc-theme.git")
8470 (commit version)))
8471 (file-name (git-file-name name version))
8472 (sha256
8473 (base32
8474 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8475 (build-system gnu-build-system)
8476 (arguments
8477 '(#:phases
8478 (modify-phases %standard-phases
8479 ;; autogen.sh calls configure at the end of the script.
8480 (replace 'bootstrap
8481 (lambda _ (invoke "autoreconf" "-vfi")))
8482 (add-before 'build 'set-home ;placate Inkscape
8483 (lambda _
8484 (setenv "HOME" (getcwd))
8485 #t)))))
8486 (native-inputs
8487 `(("autoconf" ,autoconf)
8488 ("automake" ,automake)
8489 ("glib" ,glib "bin") ; for glib-compile-resources
8490 ("gnome-shell" ,gnome-shell)
8491 ("gtk+" ,gtk+)
8492 ("inkscape" ,inkscape)
8493 ("optipng" ,optipng)
8494 ("pkg-config" ,pkg-config)
8495 ("sassc" ,sassc/libsass-3.5)))
8496 (synopsis "A flat GTK+ theme with transparent elements")
8497 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8498 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8499 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8500 (home-page "https://github.com/horst3180/arc-theme")
8501 ;; No "or later" language found.
8502 (license license:gpl3+)))
8503
8504 (define-public faba-icon-theme
8505 (package
8506 (name "faba-icon-theme")
8507 (version "4.3")
8508 (source
8509 (origin
8510 (method git-fetch)
8511 (uri (git-reference
8512 (url "https://github.com/snwh/faba-icon-theme.git")
8513 (commit (string-append "v" version))))
8514 (file-name (git-file-name name version))
8515 (sha256
8516 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8517 (build-system meson-build-system)
8518 (arguments
8519 `(#:phases
8520 (modify-phases %standard-phases
8521 (add-before 'configure 'disable-post-install
8522 (lambda _
8523 (substitute* "meson.build"
8524 (("meson.add_install_script.*") "")))))))
8525 (native-inputs
8526 `(("autoconf" ,autoconf)
8527 ("automake" ,automake)))
8528 (synopsis "Faba icon theme")
8529 (description
8530 "Faba is a minimal icon set used as a basis for other themes such as
8531 Moka")
8532 (home-page "https://snwh.org/moka")
8533 (license (list license:lgpl3+
8534 license:cc-by-sa4.0))))
8535
8536 (define-public moka-icon-theme
8537 (package
8538 (inherit faba-icon-theme)
8539 (name "moka-icon-theme")
8540 (version "5.4.0")
8541 (source
8542 (origin
8543 (method git-fetch)
8544 (uri (git-reference
8545 (url "https://github.com/snwh/moka-icon-theme.git")
8546 (commit (string-append "v" version))))
8547 (file-name (git-file-name name version))
8548 (sha256
8549 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8550 (propagated-inputs
8551 ;; Moka is based on Faba by using it as a fallback icon set instead of
8552 ;; bundling it, so we need to add it as a propagated input.
8553 `(("faba-icon-theme" ,faba-icon-theme)))
8554 (synopsis "Moka icon theme")
8555 (description "Moka is a stylized desktop icon set, designed to be clear,
8556 simple and consistent.")
8557 (license (list license:gpl3+
8558 license:cc-by-sa4.0))))
8559
8560 (define-public arc-icon-theme
8561 (package
8562 (name "arc-icon-theme")
8563 (version "20161122")
8564 (source
8565 (origin
8566 (method git-fetch)
8567 (uri (git-reference
8568 (url "https://github.com/horst3180/arc-icon-theme.git")
8569 (commit version)))
8570 (file-name (git-file-name name version))
8571 (sha256
8572 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8573 (build-system gnu-build-system)
8574 (arguments
8575 `(#:phases
8576 (modify-phases %standard-phases
8577 (add-after 'unpack 'disable-configure-during-bootstrap
8578 (lambda _
8579 (substitute* "autogen.sh"
8580 (("^\"\\$srcdir/configure\".*") ""))
8581 #t)))))
8582 (native-inputs
8583 `(("autoconf" ,autoconf)
8584 ("automake" ,automake)))
8585 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8586 (propagated-inputs
8587 `(("moka-icon-theme" ,moka-icon-theme)))
8588 (synopsis "Arc icon theme")
8589 (description "The Arc icon theme provides a set of icons matching the
8590 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8591 the Moka icon theme.")
8592 (home-page "https://github.com/horst3180/arc-icon-theme")
8593 (license license:gpl3+)))
8594
8595 (define-public folks
8596 (package
8597 (name "folks")
8598 (version "0.13.1")
8599 (source (origin
8600 (method url-fetch)
8601 (uri (string-append
8602 "mirror://gnome/sources/folks/"
8603 (version-major+minor version) "/"
8604 "folks-" version ".tar.xz"))
8605 (sha256
8606 (base32
8607 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8608 (build-system meson-build-system)
8609 (arguments
8610 '(#:phases
8611 (modify-phases %standard-phases
8612 (add-after 'unpack 'skip-gtk-update-icon-cache
8613 ;; Don't create 'icon-theme.cache'.
8614 (lambda _
8615 (substitute* "meson_post_install.py"
8616 (("gtk-update-icon-cache") "true"))
8617 #t)))))
8618 (inputs
8619 `(("bdb" ,bdb)
8620 ("dbus-glib" ,dbus-glib)
8621 ("evolution-data-server" ,evolution-data-server)
8622 ("glib" ,glib)
8623 ("libgee" ,libgee)
8624 ("readline" ,readline)
8625 ("telepathy-glib" ,telepathy-glib)))
8626 (native-inputs
8627 `(("glib:bin" ,glib "bin")
8628 ("gobject-introspection" ,gobject-introspection)
8629 ("intltool" ,intltool)
8630 ("pkg-config" ,pkg-config)
8631 ("vala" ,vala)))
8632 (synopsis "Library to aggregate data about people")
8633 (description "Libfolks is a library that aggregates information about people
8634 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8635 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8636 etc.) to create metacontacts. It's written in Vala, which generates C code when
8637 compiled.")
8638 (home-page "https://wiki.gnome.org/Projects/Folks")
8639 (license license:lgpl2.1+)))
8640
8641 (define-public gfbgraph
8642 (package
8643 (name "gfbgraph")
8644 (version "0.2.3")
8645 (source (origin
8646 (method url-fetch)
8647 (uri (string-append
8648 "mirror://gnome/sources/gfbgraph/"
8649 (version-major+minor version) "/"
8650 "gfbgraph-" version ".tar.xz"))
8651 (sha256
8652 (base32
8653 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8654 (build-system glib-or-gtk-build-system)
8655 (arguments
8656 `(#:tests? #f ; Tests appear to require the network.
8657 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8658 #:configure-flags '("--disable-gtk-doc"
8659 "--disable-static"
8660 "--enable-introspection")))
8661 (native-inputs
8662 `(("pkg-config" ,pkg-config)
8663 ("gobject-introspection" ,gobject-introspection)))
8664 (inputs
8665 `(("json-glib" ,json-glib)
8666 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8667 ("rest" ,rest)))
8668 (synopsis "GLib/GObject wrapper for the Facebook API")
8669 (description "This library allows you to use the Facebook API from
8670 GLib/GObject code.")
8671 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8672 (license license:lgpl2.1+)))
8673
8674 (define-public libgnomekbd
8675 (package
8676 (name "libgnomekbd")
8677 (version "3.26.1")
8678 (source (origin
8679 (method url-fetch)
8680 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8681 (version-major+minor version) "/"
8682 "libgnomekbd-" version ".tar.xz"))
8683 (sha256
8684 (base32
8685 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8686 (build-system gnu-build-system)
8687 (native-inputs
8688 `(("pkg-config" ,pkg-config)
8689 ("glib" ,glib "bin")
8690 ("intltool" ,intltool)))
8691 (propagated-inputs
8692 ;; Referred to in .h files and .pc.
8693 `(("glib" ,glib)
8694 ("gtk+" ,gtk+)
8695 ("libxklavier" ,libxklavier)))
8696 (home-page "https://www.gnome.org")
8697 (synopsis "GNOME keyboard configuration library")
8698 (description
8699 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8700 environment, which can notably display keyboard layouts.")
8701 (license license:lgpl2.0+)))
8702
8703 ;;; This package is no longer maintained:
8704 ;;; https://wiki.gnome.org/Attic/LibUnique
8705 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8706 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8707 (define-public libunique
8708 (package
8709 (name "libunique")
8710 (version "3.0.2")
8711 (source (origin
8712 (method url-fetch)
8713 (uri (string-append "mirror://gnome/sources/" name "/"
8714 (version-major+minor version) "/"
8715 name "-" version ".tar.xz"))
8716 (sha256
8717 (base32
8718 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8719 (build-system glib-or-gtk-build-system)
8720 (arguments
8721 `(#:configure-flags '("--disable-static"
8722 "--disable-dbus" ; use gdbus
8723 "--enable-introspection")))
8724 (native-inputs
8725 `(("pkg-config" ,pkg-config)
8726 ("gobject-introspection" ,gobject-introspection)
8727 ("glib:bin" ,glib "bin")
8728 ("gtk-doc" ,gtk-doc)))
8729 (propagated-inputs
8730 ;; Referred to in .h files and .pc.
8731 `(("gtk+" ,gtk+)))
8732 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8733 (synopsis "Library for writing single instance applications")
8734 (description
8735 "Libunique is a library for writing single instance applications. If you
8736 launch a single instance application twice, the second instance will either just
8737 quit or will send a message to the running instance. Libunique makes it easy to
8738 write this kind of application, by providing a base class, taking care of all
8739 the IPC machinery needed to send messages to a running instance, and also
8740 handling the startup notification side.")
8741 (license license:lgpl2.1+)))
8742
8743 (define-public gnome-calculator
8744 (package
8745 (name "gnome-calculator")
8746 (version "3.34.1")
8747 (source
8748 (origin
8749 (method url-fetch)
8750 (uri (string-append "mirror://gnome/sources/" name "/"
8751 (version-major+minor version) "/"
8752 name "-" version ".tar.xz"))
8753 (sha256
8754 (base32
8755 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
8756 (build-system meson-build-system)
8757 (arguments '(#:glib-or-gtk? #t))
8758 (native-inputs
8759 `(("gettext" ,gettext-minimal)
8760 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8761 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8762 ("itstool" ,itstool)
8763 ("vala" ,vala)
8764 ("pkg-config" ,pkg-config)))
8765 (inputs
8766 `(("glib" ,glib)
8767 ("gtksourceview" ,gtksourceview)
8768 ("libgee" ,libgee)
8769 ("libsoup" ,libsoup)
8770 ("libxml2" ,libxml2)
8771 ("mpc" ,mpc)
8772 ("mpfr" ,mpfr)))
8773 (home-page "https://wiki.gnome.org/Apps/Calculator")
8774 (synopsis "Desktop calculator")
8775 (description
8776 "Calculator is an application that solves mathematical equations and
8777 is suitable as a default application in a Desktop environment.")
8778 (license license:gpl3)))
8779
8780 (define-public xpad
8781 (package
8782 (name "xpad")
8783 (version "5.1.0")
8784 (source
8785 (origin
8786 (method url-fetch)
8787 (uri (string-append "https://launchpad.net/xpad/trunk/"
8788 version "/+download/"
8789 name "-" version ".tar.bz2"))
8790 (sha256
8791 (base32
8792 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8793 (build-system gnu-build-system)
8794 (native-inputs
8795 `(("autoconf" ,autoconf)
8796 ("automake" ,automake)
8797 ("gtk+:bin" ,gtk+ "bin")
8798 ("intltool" ,intltool)
8799 ("pkg-config" ,pkg-config)))
8800 (inputs
8801 `(("gtksourceview" ,gtksourceview-3)
8802 ("libsm" ,libsm)))
8803 (home-page "https://wiki.gnome.org/Apps/Xpad")
8804 (synopsis "Virtual sticky note")
8805 (description
8806 "Xpad is a sticky note that strives to be simple, fault tolerant,
8807 and customizable. Xpad consists of independent pad windows, each is
8808 basically a text box in which notes can be written.")
8809 (license license:gpl3+)))
8810
8811 (define-public gucharmap
8812 (let ((unicode-files
8813 '(("Blocks.txt"
8814 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8815 ("DerivedAge.txt"
8816 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8817 ("NamesList.txt"
8818 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8819 ("Scripts.txt"
8820 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8821 ("UnicodeData.txt"
8822 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8823 ("Unihan.zip"
8824 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8825 (package
8826 (name "gucharmap")
8827 (version "12.0.1")
8828 (source
8829 (origin
8830 (method url-fetch)
8831 (uri (string-append "mirror://gnome/sources/" name "/"
8832 (version-major+minor version) "/"
8833 name "-" version ".tar.xz"))
8834 (sha256
8835 (base32
8836 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8837 (build-system glib-or-gtk-build-system)
8838 (arguments
8839 `(#:modules ((ice-9 match)
8840 (guix build glib-or-gtk-build-system)
8841 (guix build utils))
8842 #:configure-flags
8843 (list "--with-unicode-data=../unicode-data")
8844 #:phases
8845 (modify-phases %standard-phases
8846 (add-after 'unpack 'prepare-unicode-data
8847 (lambda* (#:key inputs #:allow-other-keys)
8848 (mkdir-p "../unicode-data")
8849 (with-directory-excursion "../unicode-data"
8850 (for-each (match-lambda
8851 ((file _)
8852 (install-file (assoc-ref inputs file) ".")))
8853 ',unicode-files))
8854 #t)))))
8855 (native-inputs
8856 `(("desktop-file-utils" ,desktop-file-utils)
8857 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8858 ("gobject-introspection" ,gobject-introspection)
8859 ("intltool" ,intltool)
8860 ("itstool" ,itstool)
8861 ("pkg-config" ,pkg-config)
8862 ,@(map (match-lambda
8863 ((file hash)
8864 `(,file
8865 ,(origin
8866 (method url-fetch)
8867 (uri (string-append
8868 "http://www.unicode.org/Public/12.0.0/ucd/"
8869 file))
8870 (sha256 (base32 hash))))))
8871 unicode-files)
8872 ("unzip" ,unzip)))
8873 (inputs
8874 `(("gtk+" ,gtk+)
8875 ("xmllint" ,libxml2)))
8876 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8877 (synopsis "Unicode character picker and font browser")
8878 (description
8879 "This program allows you to browse through all the available Unicode
8880 characters and categories for the installed fonts, and to examine their
8881 detailed properties. It is an easy way to find the character you might
8882 only know by its Unicode name or code point.")
8883 (license license:gpl3+))))
8884
8885 (define-public bluefish
8886 (package
8887 (name "bluefish")
8888 (version "2.2.11")
8889 (source
8890 (origin
8891 (method url-fetch)
8892 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8893 "bluefish-" version ".tar.gz"))
8894 (sha256
8895 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
8896 (build-system gnu-build-system)
8897 (native-inputs
8898 `(("desktop-file-utils" ,desktop-file-utils)
8899 ("intltool" ,intltool)
8900 ("pkg-config" ,pkg-config)))
8901 (inputs
8902 `(("enchant" ,enchant)
8903 ("gtk+" ,gtk+)
8904 ("python" ,python-wrapper)
8905 ("xmllint" ,libxml2)
8906 ("gucharmap" ,gucharmap)))
8907 (home-page "http://bluefish.openoffice.nl")
8908 (synopsis "Web development studio")
8909 (description
8910 "Bluefish is an editor targeted towards programmers and web developers,
8911 with many options to write web sites, scripts and other code.
8912 Bluefish supports many programming and markup languages.")
8913 (license license:gpl3+)))
8914
8915 (define-public gnome-system-monitor
8916 (package
8917 (name "gnome-system-monitor")
8918 (version "3.32.1")
8919 (source
8920 (origin
8921 (method url-fetch)
8922 (uri (string-append "mirror://gnome/sources/" name "/"
8923 (version-major+minor version) "/"
8924 name "-" version ".tar.xz"))
8925 (sha256
8926 (base32
8927 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8928 (build-system meson-build-system)
8929 (arguments
8930 '(#:glib-or-gtk? #t
8931 #:configure-flags '("-Dsystemd=false")))
8932 (native-inputs
8933 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8934 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8935 ("intltool" ,intltool)
8936 ("itstool" ,itstool)
8937 ("libgtop" ,libgtop)
8938 ("polkit" ,polkit)
8939 ("pkg-config" ,pkg-config)))
8940 (inputs
8941 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8942 ("gtk+" ,gtk+)
8943 ("gtkmm" ,gtkmm)
8944 ("librsvg" ,librsvg)
8945 ("libxml2" ,libxml2)
8946 ("libwnck" ,libwnck)))
8947 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8948 (synopsis "Process viewer and system resource monitor for GNOME")
8949 (description
8950 "GNOME System Monitor is a GNOME process viewer and system monitor with
8951 an attractive, easy-to-use interface. It has features, such as a tree view
8952 for process dependencies, icons for processes, the ability to hide processes,
8953 graphical time histories of CPU/memory/swap usage and the ability to
8954 kill/reinice processes.")
8955 (license license:gpl2+)))
8956
8957 (define-public python-pyatspi
8958 (package
8959 (name "python-pyatspi")
8960 (version "2.34.0")
8961 (source (origin
8962 (method url-fetch)
8963 (uri (string-append
8964 "mirror://gnome/sources/pyatspi/"
8965 (version-major+minor version)
8966 "/pyatspi-" version ".tar.xz"))
8967 (sha256
8968 (base32
8969 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8970 (build-system gnu-build-system)
8971 (arguments
8972 `(#:phases
8973 (modify-phases %standard-phases
8974 (add-before 'build 'fix-atk-load
8975 (lambda _
8976 (substitute* "pyatspi/__init__.py"
8977 (("from gi.repository import Atspi")
8978 "gi.require_version('Gtk', '3.0')
8979 from gi.repository import Gtk
8980 from gi.repository import Atspi"))
8981 #t)))))
8982 (native-inputs
8983 `(("pkg-config" ,pkg-config)))
8984 (inputs
8985 `(("python" ,python)))
8986 (propagated-inputs
8987 `(("python-pygobject" ,python-pygobject)))
8988 (synopsis "Python client bindings for D-Bus AT-SPI")
8989 (home-page "https://wiki.linuxfoundation.org/accessibility\
8990 /atk/at-spi/at-spi_on_d-bus")
8991 (description
8992 "This package includes a python client library for the AT-SPI D-Bus
8993 accessibility infrastructure.")
8994 (license license:lgpl2.0)
8995 (properties '((upstream-name . "pyatspi")))))
8996
8997 (define-public python2-pyatspi
8998 (package
8999 (inherit python-pyatspi)
9000 (name "python2-pyatspi")
9001 (inputs
9002 `(("python" ,python-2)))
9003 (propagated-inputs
9004 `(("python-pygobject" ,python2-pygobject)))))
9005
9006 (define-public orca
9007 (package
9008 (name "orca")
9009 (version "3.34.1")
9010 (source (origin
9011 (method url-fetch)
9012 (uri (string-append
9013 "mirror://gnome/sources/" name "/"
9014 (version-major+minor version) "/"
9015 name "-" version ".tar.xz"))
9016 (sha256
9017 (base32
9018 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
9019 (build-system glib-or-gtk-build-system)
9020 (arguments
9021 '(#:phases
9022 (modify-phases %standard-phases
9023 (add-before 'configure 'qualify-xkbcomp
9024 (lambda* (#:key inputs #:allow-other-keys)
9025 (let ((xkbcomp (string-append
9026 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9027 (substitute* "src/orca/orca.py"
9028 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9029 #t))
9030 (add-after 'install 'wrap-orca
9031 (lambda* (#:key outputs #:allow-other-keys)
9032 (let* ((out (assoc-ref outputs "out"))
9033 (prog (string-append out "/bin/orca")))
9034 (wrap-program prog
9035 `("GI_TYPELIB_PATH" ":" prefix
9036 (,(getenv "GI_TYPELIB_PATH")))
9037 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9038 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9039 `("PYTHONPATH" ":" prefix
9040 (,(getenv "PYTHONPATH")))))
9041 #t)))))
9042 (native-inputs
9043 `(("intltool" ,intltool)
9044 ("itstool" ,itstool)
9045 ("pkg-config" ,pkg-config)
9046 ("xmllint" ,libxml2)))
9047 (inputs
9048 `(("at-spi2-atk" ,at-spi2-atk)
9049 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9050 ("gstreamer" ,gstreamer)
9051 ("gst-plugins-base" ,gst-plugins-base)
9052 ("gst-plugins-good" ,gst-plugins-good)
9053 ("gtk+" ,gtk+)
9054 ("python" ,python)
9055 ("python-pygobject" ,python-pygobject)
9056 ("python-pyatspi" ,python-pyatspi)
9057 ("python-speechd" ,speech-dispatcher)
9058 ("xkbcomp" ,xkbcomp)))
9059 (synopsis
9060 "Screen reader for individuals who are blind or visually impaired")
9061 (home-page "https://wiki.gnome.org/Projects/Orca")
9062 (description
9063 "Orca is a screen reader that provides access to the graphical desktop
9064 via speech and refreshable braille. Orca works with applications and toolkits
9065 that support the Assistive Technology Service Provider Interface (AT-SPI).")
9066 (license license:lgpl2.1+)))
9067
9068 (define-public gspell
9069 (package
9070 (name "gspell")
9071 (version "1.8.2")
9072 (source (origin
9073 (method url-fetch)
9074 (uri (string-append "mirror://gnome/sources/" name "/"
9075 (version-major+minor version) "/"
9076 name "-" version ".tar.xz"))
9077 (sha256
9078 (base32
9079 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
9080 (patches (search-patches "gspell-dash-test.patch"))))
9081 (build-system glib-or-gtk-build-system)
9082 (arguments
9083 '(#:configure-flags (list "--enable-vala")
9084 #:phases
9085 (modify-phases %standard-phases
9086 (add-before 'check 'pre-check
9087 (lambda* (#:key inputs #:allow-other-keys)
9088 ;; Tests require a running X server.
9089 (system "Xvfb :1 &")
9090 (setenv "DISPLAY" ":1")
9091
9092 ;; For the missing /etc/machine-id.
9093 (setenv "DBUS_FATAL_WARNINGS" "0")
9094
9095 ;; Allow Enchant and its Aspell backend to find the en_US
9096 ;; dictionary.
9097 (setenv "ASPELL_DICT_DIR"
9098 (string-append (assoc-ref inputs "aspell-dict-en")
9099 "/lib/aspell"))
9100 #t)))))
9101 (inputs
9102 `(("gtk+" ,gtk+)
9103 ("glib" ,glib)
9104 ("iso-codes" ,iso-codes)))
9105 (native-inputs
9106 `(("glib" ,glib "bin")
9107 ("gobject-introspection" ,gobject-introspection)
9108 ("pkg-config" ,pkg-config)
9109 ("vala" ,vala) ;for VAPI, needed by Geary
9110 ("xmllint" ,libxml2)
9111
9112 ;; For tests.
9113 ("aspell-dict-en" ,aspell-dict-en)
9114 ("xorg-server" ,xorg-server-for-tests)))
9115 (propagated-inputs
9116 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
9117 (home-page "https://wiki.gnome.org/Projects/gspell")
9118 (synopsis "GNOME's alternative spell checker")
9119 (description
9120 "gspell provides a flexible API to add spell-checking to a GTK+
9121 application. It provides a GObject API, spell-checking to text entries and
9122 text views, and buttons to choose the language.")
9123 (license license:gpl2+)))
9124
9125 (define-public gnome-planner
9126 (package
9127 (name "gnome-planner")
9128 (version "0.14.6")
9129 (source (origin
9130 (method url-fetch)
9131 (uri (string-append "mirror://gnome/sources/planner/"
9132 (version-major+minor version) "/planner-"
9133 version ".tar.xz"))
9134 (sha256
9135 (base32
9136 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9137 (build-system glib-or-gtk-build-system)
9138 (arguments
9139 ;; Disable the Python bindings because the Planner program functions
9140 ;; without them, and (as of 2017-06-13) we have not packaged all of
9141 ;; packages that are necessary for building the Python bindings.
9142 `(#:configure-flags
9143 (list "--disable-python"
9144 ,@(if (string=? "aarch64-linux" (%current-system))
9145 '("--build=aarch64-unknown-linux-gnu")
9146 '()))))
9147 (inputs
9148 `(("libgnomecanvas" ,libgnomecanvas)
9149 ("libgnomeui" ,libgnomeui)
9150 ("libglade" ,libglade)
9151 ("gnome-vfs" ,gnome-vfs)
9152 ("gconf" ,gconf)
9153 ("libxml2" ,libxml2)
9154 ("libxslt" ,libxslt)
9155 ("gtk+" ,gtk+)
9156 ("glib" ,glib)))
9157 (native-inputs
9158 `(("intltool" ,intltool)
9159 ("scrollkeeper" ,scrollkeeper)
9160 ("pkg-config" ,pkg-config)))
9161 (home-page "https://wiki.gnome.org/Apps/Planner")
9162 (synopsis "Project management software for the GNOME desktop")
9163 (description
9164 "GNOME Planner is a project management tool based on the Work Breakdown
9165 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9166 the resources, tasks, and constraints that you define, Planner generates
9167 various views into a project. For example, Planner can show a Gantt chart of
9168 the project. It can show a detailed summary of tasks including their
9169 duration, cost, and current progress. It can also show a report of resource
9170 utilization that highlights under-utilized and over-utilized resources. These
9171 views can be printed as PDF or PostScript files, or exported to HTML.")
9172 (license license:gpl2+)))
9173
9174 (define-public lollypop
9175 (package
9176 (name "lollypop")
9177 (version "1.2.32")
9178 (source
9179 (origin
9180 (method url-fetch)
9181 (uri (string-append "https://adishatz.org/lollypop/"
9182 "lollypop-" version ".tar.xz"))
9183 (sha256
9184 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
9185 (build-system meson-build-system)
9186 (arguments
9187 `(#:imported-modules
9188 (,@%meson-build-system-modules
9189 (guix build python-build-system))
9190 #:modules
9191 ((guix build meson-build-system)
9192 ((guix build python-build-system) #:prefix python:)
9193 (guix build utils))
9194 #:glib-or-gtk? #t
9195 #:tests? #f ; no test suite
9196 #:phases
9197 (modify-phases %standard-phases
9198 (add-after 'install 'wrap-program
9199 (lambda* (#:key outputs #:allow-other-keys)
9200 (let ((out (assoc-ref outputs "out"))
9201 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9202 (wrap-program (string-append out "/bin/lollypop")
9203 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9204 #t))
9205 (add-after 'install 'wrap-python
9206 (assoc-ref python:%standard-phases 'wrap)))))
9207 (native-inputs
9208 `(("intltool" ,intltool)
9209 ("itstool" ,itstool)
9210 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9211 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9212 ("pkg-config" ,pkg-config)))
9213 (inputs
9214 `(("gobject-introspection" ,gobject-introspection)
9215 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9216 ("gst-plugins-base" ,gst-plugins-base)
9217 ("libnotify" ,libnotify)
9218 ("libsecret" ,libsecret)
9219 ("libsoup" ,libsoup)
9220 ("python" ,python)
9221 ("python-beautifulsoup4" ,python-beautifulsoup4)
9222 ("python-gst" ,python-gst)
9223 ("python-pil" ,python-pillow)
9224 ("python-pycairo" ,python-pycairo)
9225 ("python-pygobject" ,python-pygobject)
9226 ("python-pylast" ,python-pylast)
9227 ("totem-pl-parser" ,totem-pl-parser)
9228 ("webkitgtk" ,webkitgtk)))
9229 (propagated-inputs
9230 `(;; gst-plugins-base is required to start Lollypop,
9231 ;; the others are required to play streaming.
9232 ("gst-plugins-good" ,gst-plugins-good)
9233 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9234 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9235 (synopsis "GNOME music playing application")
9236 (description
9237 "Lollypop is a music player designed to play well with GNOME desktop.
9238 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9239 from artists and tracks from the web. It also fetches cover artworks
9240 automatically and it can stream songs from online music services and charts.")
9241 (license license:gpl3+)))
9242
9243 (define-public gnome-video-effects
9244 (package
9245 (name "gnome-video-effects")
9246 (version "0.4.3")
9247 (source (origin
9248 (method url-fetch)
9249 (uri (string-append "mirror://gnome/sources/" name "/"
9250 (version-major+minor version) "/" name "-"
9251 version ".tar.xz"))
9252 (sha256
9253 (base32
9254 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9255 (build-system glib-or-gtk-build-system)
9256 (arguments
9257 `(#:out-of-source? #f))
9258 (native-inputs
9259 `(("glib:bin" ,glib "bin")
9260 ("intltool" ,intltool)
9261 ("gettext" ,gettext-minimal)
9262 ("pkg-config" ,pkg-config)))
9263 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9264 (synopsis "Video effects for Cheese and other GNOME applications")
9265 (description
9266 "A collection of GStreamer video filters and effects to be used in
9267 photo-booth-like software, such as Cheese.")
9268 (license license:gpl2+)))
9269
9270 (define-public cheese
9271 (package
9272 (name "cheese")
9273 (version "3.34.0")
9274 (source (origin
9275 (method url-fetch)
9276 (uri (string-append "mirror://gnome/sources/" name "/"
9277 (version-major+minor version) "/" name "-"
9278 version ".tar.xz"))
9279 (sha256
9280 (base32
9281 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
9282 (arguments
9283 `(#:glib-or-gtk? #t
9284 ;; Tests require GDK.
9285 #:tests? #f
9286 #:phases
9287 (modify-phases %standard-phases
9288 (add-after 'unpack 'skip-gtk-update-icon-cache
9289 (lambda _
9290 ;; Don't create 'icon-theme.cache'
9291 (substitute* "meson_post_install.py"
9292 (("gtk-update-icon-cache") (which "true")))
9293 #t))
9294 (add-after 'install 'wrap-cheese
9295 (lambda* (#:key inputs outputs #:allow-other-keys)
9296 (let ((out (assoc-ref outputs "out"))
9297 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9298 (wrap-program (string-append out "/bin/cheese")
9299 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9300 #t)))))
9301 (build-system meson-build-system)
9302 (native-inputs
9303 `(("docbook-xsl" ,docbook-xsl)
9304 ("glib:bin" ,glib "bin")
9305 ("gtk-doc" ,gtk-doc)
9306 ("intltool" ,intltool)
9307 ("itstool" ,itstool)
9308 ("libxml2" ,libxml2)
9309 ("libxslt" ,libxslt)
9310 ("pkg-config" ,pkg-config)
9311 ("vala" ,vala)))
9312 (propagated-inputs
9313 `(("gnome-video-effects" ,gnome-video-effects)
9314 ("clutter" ,clutter)
9315 ("clutter-gst" ,clutter-gst)
9316 ("clutter-gtk" ,clutter-gtk)
9317 ("libcanberra" ,libcanberra)
9318 ("gdk-pixbuf" ,gdk-pixbuf)
9319 ("glib" ,glib)
9320 ("gstreamer" ,gstreamer)))
9321 (inputs
9322 `(("gnome-desktop" ,gnome-desktop)
9323 ("gobject-introspection" ,gobject-introspection)
9324 ("gst-plugins-base" ,gst-plugins-base)
9325 ("gst-plugins-bad" ,gst-plugins-bad)
9326 ("gtk+" ,gtk+)
9327 ("libx11" ,libx11)
9328 ("libxtst" ,libxtst)))
9329 (home-page "https://wiki.gnome.org/Apps/Cheese")
9330 (synopsis "Webcam photo booth software for GNOME")
9331 (description
9332 "Cheese uses your webcam to take photos and videos. Cheese can also
9333 apply fancy special effects and lets you share the fun with others.")
9334 (license license:gpl2+)))
9335
9336 (define-public sound-juicer
9337 (package
9338 (name "sound-juicer")
9339 (version "3.24.0")
9340 (source
9341 (origin
9342 (method url-fetch)
9343 (uri (string-append "mirror://gnome/sources/" name "/"
9344 (version-major+minor version) "/"
9345 name "-" version ".tar.xz"))
9346 (sha256
9347 (base32
9348 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9349 (build-system glib-or-gtk-build-system)
9350 (native-inputs
9351 `(("desktop-file-utils" ,desktop-file-utils)
9352 ("intltool" ,intltool)
9353 ("itstool" ,itstool)
9354 ("pkg-config" ,pkg-config)
9355 ("xmllint" ,libxml2)))
9356 (inputs
9357 `(("gtk+" ,gtk+)
9358 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9359 ("gstreamer" ,gstreamer)
9360 ("gst-plugins-base" ,gst-plugins-base)
9361 ("gst-plugins-good" ,gst-plugins-good)
9362 ("iso-codes" ,iso-codes)
9363 ("libbrasero-media3" ,brasero)
9364 ("libcanberra" ,libcanberra)
9365 ("libdiscid" ,libdiscid)
9366 ("libmusicbrainz" ,libmusicbrainz)
9367 ("neon" ,neon)))
9368 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9369 (synopsis "Audio music cd ripper")
9370 (description "Sound Juicer extracts audio from compact discs and convert it
9371 into audio files that a personal computer or digital audio player can play.
9372 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9373 mp3, Ogg Vorbis and FLAC")
9374 (license license:gpl2+)))
9375
9376 (define-public soundconverter
9377 (package
9378 (name "soundconverter")
9379 (version "3.0.2")
9380 (source
9381 (origin
9382 (method url-fetch)
9383 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9384 version "/+download/"
9385 "soundconverter-" version ".tar.xz"))
9386
9387 (sha256
9388 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
9389 (build-system glib-or-gtk-build-system)
9390 (arguments
9391 `(#:imported-modules ((guix build python-build-system)
9392 (guix build glib-or-gtk-build-system)
9393 ,@%gnu-build-system-modules)
9394
9395 #:modules ((guix build glib-or-gtk-build-system)
9396 (guix build utils)
9397 ((guix build gnu-build-system) #:prefix gnu:)
9398 ((guix build python-build-system) #:prefix python:))
9399
9400 #:phases
9401 (modify-phases %standard-phases
9402 (add-after 'install 'wrap-soundconverter-for-python
9403 (assoc-ref python:%standard-phases 'wrap))
9404 (add-after 'install 'wrap-soundconverter
9405 (lambda* (#:key inputs outputs #:allow-other-keys)
9406 (let ((out (assoc-ref outputs "out"))
9407 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9408 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9409 (wrap-program (string-append out "/bin/soundconverter")
9410 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9411 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9412 #t)))))
9413 (native-inputs
9414 `(("intltool" ,intltool)
9415 ("pkg-config" ,pkg-config)
9416 ("glib:bin" ,glib "bin")))
9417 (inputs
9418 `(("gtk+" ,gtk+)
9419 ("python" ,python)
9420 ("python-pygobject" ,python-pygobject)
9421 ("gstreamer" ,gstreamer)
9422 ("gst-plugins-base" ,gst-plugins-base)))
9423 (home-page "https://soundconverter.org/")
9424 (synopsis "Convert between audio formats with a graphical interface")
9425 (description
9426 "SoundConverter supports converting between many audio formats including
9427 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9428 configurable file renaming. ")
9429 (license license:gpl3)))
9430
9431 (define-public workrave
9432 (package
9433 (name "workrave")
9434 (version "1.10.42")
9435 (source
9436 (origin
9437 (method git-fetch)
9438 (uri (git-reference
9439 (url "https://github.com/rcaelers/workrave.git")
9440 (commit (string-append "v" (string-map
9441 (match-lambda (#\. #\_) (chr chr))
9442 version)))))
9443 (file-name (git-file-name name version))
9444 (sha256
9445 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
9446 (build-system glib-or-gtk-build-system)
9447 (arguments
9448 ;; The only tests are maintainer tests (in po/), which fail.
9449 `(#:tests? #f))
9450 (inputs `(("glib" ,glib)
9451 ("gtk+" ,gtk+)
9452 ("gdk-pixbuf" ,gdk-pixbuf)
9453 ("gtkmm" ,gtkmm)
9454 ("glibmm" ,glibmm)
9455 ("libx11" ,libx11)
9456 ("libxtst" ,libxtst)
9457 ("dconf" ,dconf)
9458 ("libice" ,libice)
9459 ("libsm" ,libsm)
9460 ("libxscrnsaver" ,libxscrnsaver)))
9461 (native-inputs `(("boost" ,boost)
9462 ("pkg-config" ,pkg-config)
9463 ("gettext" ,gettext-minimal)
9464 ("autoconf" ,autoconf)
9465 ("autoconf-archive" , autoconf-archive)
9466 ("automake" ,automake)
9467 ("libtool" ,libtool)
9468 ("intltool" ,intltool)
9469 ("gobject-introspection" ,gobject-introspection)
9470 ("python3" ,python-3)
9471 ("python-jinja2" ,python-jinja2)))
9472 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9473 (description
9474 "Workrave is a program that assists in the recovery and prevention of
9475 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9476 micro-pauses and rest breaks, and restricts you to your daily limit.")
9477 (home-page "http://www.workrave.org")
9478 (license license:gpl3+)))
9479
9480 (define-public ghex
9481 (package
9482 (name "ghex")
9483 (version "3.18.4")
9484 (source (origin
9485 (method url-fetch)
9486 (uri (string-append "mirror://gnome/sources/ghex/"
9487 (version-major+minor version) "/"
9488 "ghex-" version ".tar.xz"))
9489 (sha256
9490 (base32
9491 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9492 (build-system meson-build-system)
9493 (arguments
9494 '(#:glib-or-gtk? #t
9495 #:phases
9496 (modify-phases %standard-phases
9497 (add-after 'unpack 'skip-gtk-update-icon-cache
9498 ;; Don't create 'icon-theme.cache'.
9499 (lambda _
9500 (substitute* "meson_post_install.py"
9501 (("gtk-update-icon-cache") (which "true")))
9502 #t)))))
9503 (native-inputs
9504 `(("pkg-config" ,pkg-config)
9505 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9506 ("gnome-common" ,gnome-common)
9507 ("which" ,which)
9508 ("intltool" ,intltool)
9509 ("yelp-tools" ,yelp-tools)
9510 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9511 (inputs
9512 `(("atk" ,atk)
9513 ("gtk" ,gtk+)))
9514 (synopsis "GNOME hexadecimal editor")
9515 (description "The GHex program can view and edit files in two ways:
9516 hexadecimal or ASCII. It is useful for editing binary files in general.")
9517 (home-page "https://wiki.gnome.org/Apps/Ghex")
9518 (license license:gpl2)))
9519
9520 (define-public libdazzle
9521 (package
9522 (name "libdazzle")
9523 (version "3.34.1")
9524 (source (origin
9525 (method url-fetch)
9526 (uri (string-append "mirror://gnome/sources/libdazzle/"
9527 (version-major+minor version) "/"
9528 "libdazzle-" version ".tar.xz"))
9529 (sha256
9530 (base32
9531 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
9532 (build-system meson-build-system)
9533 (arguments
9534 `(#:phases
9535 (modify-phases %standard-phases
9536 (add-before 'check 'pre-check
9537 (lambda _
9538 ;; Tests require a running X server.
9539 (system "Xvfb :1 &")
9540 (setenv "DISPLAY" ":1")
9541 #t)))))
9542 (native-inputs
9543 `(("glib" ,glib "bin") ; glib-compile-resources
9544 ("pkg-config" ,pkg-config)
9545 ;; For tests.
9546 ("xorg-server" ,xorg-server-for-tests)))
9547 (inputs
9548 `(("glib" ,glib)
9549 ("gobject-introspection" ,gobject-introspection)
9550 ("gtk+" ,gtk+)
9551 ("vala" ,vala)))
9552 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9553 (synopsis "Companion library to GObject and Gtk+")
9554 (description "The libdazzle library is a companion library to GObject and
9555 Gtk+. It provides various features that the authors wish were in the
9556 underlying library but cannot for various reasons. In most cases, they are
9557 wildly out of scope for those libraries. In other cases, they are not quite
9558 generic enough to work for everyone.")
9559 (license license:gpl3+)))
9560
9561 (define-public evolution
9562 (package
9563 (name "evolution")
9564 (version "3.34.2")
9565 (source (origin
9566 (method url-fetch)
9567 (uri (string-append "mirror://gnome/sources/evolution/"
9568 (version-major+minor version) "/"
9569 "evolution-" version ".tar.xz"))
9570 (sha256
9571 (base32
9572 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
9573 (build-system cmake-build-system)
9574 (arguments
9575 `(#:imported-modules (,@%cmake-build-system-modules
9576 (guix build glib-or-gtk-build-system))
9577 #:modules ((guix build cmake-build-system)
9578 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9579 (guix build utils))
9580 #:configure-flags
9581 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9582 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9583 ; in four years and cannot be built.
9584 #:phases
9585 (modify-phases %standard-phases
9586 ;; The build system attempts to install user interface modules to the
9587 ;; output directory of the "evolution-data-server" package. This
9588 ;; change redirects that change.
9589 (add-after 'unpack 'patch-ui-module-dir
9590 (lambda* (#:key outputs #:allow-other-keys)
9591 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9592 (("\\$\\{edsuimoduledir\\}")
9593 (string-append (assoc-ref outputs "out")
9594 "/lib/evolution-data-server/ui-modules")))
9595 #t))
9596 (add-after 'install 'glib-or-gtk-compile-schemas
9597 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9598 (add-after 'install 'glib-or-gtk-wrap
9599 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9600 (native-inputs
9601 `(("glib" ,glib "bin") ; glib-mkenums
9602 ("pkg-config" ,pkg-config)
9603 ("intltool" ,intltool)
9604 ("itstool" ,itstool)))
9605 (inputs
9606 `(("enchant" ,enchant)
9607 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9608 ("gcr" ,gcr)
9609 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9610 ("gnome-autoar" ,gnome-autoar)
9611 ("gnome-desktop" ,gnome-desktop)
9612 ("gspell" ,gspell)
9613 ("highlight" ,highlight)
9614 ("libcanberra" ,libcanberra)
9615 ("libgweather" ,libgweather)
9616 ("libnotify" ,libnotify)
9617 ("libsoup" ,libsoup)
9618 ("nss" ,nss)
9619 ("openldap" ,openldap)
9620 ("webkitgtk" ,webkitgtk)
9621 ("ytnef" ,ytnef)))
9622 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9623 (synopsis "Manage your email, contacts and schedule")
9624 (description "Evolution is a personal information management application
9625 that provides integrated mail, calendaring and address book
9626 functionality.")
9627 ;; See COPYING for details.
9628 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9629 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9630 license:lgpl2.1+)))) ; smime/lib/*
9631
9632 (define-public gthumb
9633 (package
9634 (name "gthumb")
9635 (version "3.8.2")
9636 (source (origin
9637 (method url-fetch)
9638 (uri (string-append "mirror://gnome/sources/gthumb/"
9639 (version-major+minor version) "/"
9640 "gthumb-" version ".tar.xz"))
9641 (sha256
9642 (base32
9643 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9644 (build-system meson-build-system)
9645 (arguments
9646 `(#:glib-or-gtk? #t
9647 #:configure-flags
9648 ;; Ensure the RUNPATH contains all installed library locations.
9649 (list (string-append "-Dc_link_args=-Wl,-rpath="
9650 (assoc-ref %outputs "out")
9651 "/lib/gthumb/extensions")
9652 (string-append "-Dcpp_link_args=-Wl,-rpath="
9653 (assoc-ref %outputs "out")
9654 "/lib/gthumb/extensions"))))
9655 (native-inputs
9656 `(("pkg-config" ,pkg-config)
9657 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9658 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9659 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9660 ("intltool" ,intltool)
9661 ("itstool" ,itstool)))
9662 (inputs
9663 `(("exiv2" ,exiv2)
9664 ("gtk" ,gtk+)
9665 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9666 ("gstreamer" ,gstreamer)
9667 ("clutter" ,clutter)
9668 ("clutter-gst" ,clutter-gst)
9669 ("clutter-gtk" ,clutter-gtk)
9670 ("libjpeg" ,libjpeg-turbo)
9671 ("libtiff" ,libtiff)
9672 ("libraw" ,libraw)))
9673 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9674 (synopsis "GNOME image viewer and browser")
9675 (description "GThumb is an image viewer, browser, organizer, editor and
9676 advanced image management tool")
9677 (license license:gpl2+)))
9678
9679 (define-public terminator
9680 (package
9681 (name "terminator")
9682 (version "1.91")
9683 (source (origin
9684 (method url-fetch)
9685 (uri (string-append "https://launchpad.net/" name "/"
9686 "gtk3/" version "/" "+download/"
9687 name "-" version ".tar.gz"))
9688 (sha256
9689 (base32
9690 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9691 (build-system python-build-system)
9692 (native-inputs
9693 `(("intltool" ,intltool)
9694 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9695 ("gettext" ,gettext-minimal)
9696 ("pkg-config" ,pkg-config)))
9697 (inputs
9698 `(("cairo" ,cairo)
9699 ("gobject-introspection" ,gobject-introspection)
9700 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9701 ("python2-pycairo" ,python2-pycairo)
9702 ("python2-pygobject" ,python2-pygobject)
9703 ("python2-psutil" ,python2-psutil)
9704 ("vte" ,vte)))
9705 (arguments
9706 `(#:python ,python-2 ; Python 3 isn't supported
9707 #:imported-modules ((guix build glib-or-gtk-build-system)
9708 ,@%python-build-system-modules)
9709 #:modules ((guix build python-build-system)
9710 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9711 (guix build utils))
9712 #:phases
9713 (modify-phases %standard-phases
9714 (add-after
9715 'install 'wrap-program
9716 (lambda* (#:key outputs #:allow-other-keys)
9717 (let ((prog (string-append (assoc-ref outputs "out")
9718 "/bin/terminator")))
9719 (wrap-program prog
9720 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9721 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9722 #t)))
9723 (add-after 'wrap-program 'glib-or-gtk-wrap
9724 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9725 (home-page "https://gnometerminator.blogspot.com/")
9726 (synopsis "Store and run multiple GNOME terminals in one window")
9727 (description
9728 "Terminator allows you to run multiple GNOME terminals in a grid and
9729 +tabs, and it supports drag and drop re-ordering of terminals.")
9730 (license license:gpl2)))
9731
9732 (define-public libhandy
9733 (package
9734 (name "libhandy")
9735 (version "0.0.12")
9736 (source
9737 (origin
9738 (method git-fetch)
9739 (uri (git-reference
9740 (url "https://source.puri.sm/Librem5/libhandy")
9741 (commit (string-append "v" version))))
9742 (file-name (git-file-name name version))
9743 (sha256
9744 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9745 (build-system meson-build-system)
9746 (arguments
9747 `(#:configure-flags
9748 '("-Dglade_catalog=disabled"
9749 "-Dgtk_doc=true")
9750 #:phases
9751 (modify-phases %standard-phases
9752 (add-before 'check 'pre-check
9753 (lambda _
9754 ;; Tests require a running X server.
9755 (system "Xvfb :1 &")
9756 (setenv "DISPLAY" ":1")
9757 #t)))))
9758 (inputs
9759 `(("gtk+" ,gtk+)))
9760 (native-inputs
9761 `(("glib:bin" ,glib "bin")
9762 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9763 ("vala" ,vala)
9764 ("gtk-doc" ,gtk-doc)
9765 ("pkg-config" ,pkg-config)
9766 ("gettext" ,gettext-minimal)
9767
9768 ;; Test suite dependencies.
9769 ("xorg-server" ,xorg-server-for-tests)
9770 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9771 (home-page "https://source.puri.sm/Librem5/libhandy")
9772 (synopsis "Library full of GTK+ widgets for mobile phones")
9773 (description "The aim of the handy library is to help with developing user
9774 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9775 for usage on small and big screens.")
9776 (license license:lgpl2.1+)))
9777
9778 (define-public libgit2-glib
9779 (package
9780 (name "libgit2-glib")
9781 (version "0.99.0.1")
9782 (source (origin
9783 (method url-fetch)
9784 (uri (string-append "mirror://gnome/sources/" name "/"
9785 (version-major+minor version) "/"
9786 name "-" version ".tar.xz"))
9787 (sha256
9788 (base32
9789 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
9790 (build-system meson-build-system)
9791 (native-inputs
9792 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9793 ("gobject-introspection" ,gobject-introspection)
9794 ("pkg-config" ,pkg-config)
9795 ("python-pygobject" ,python-pygobject)
9796 ("python-wrapper" ,python-wrapper)
9797 ("vala" ,vala)))
9798 (inputs
9799 `(("glib" ,glib)
9800 ("libssh2" ,libssh2)))
9801 (propagated-inputs
9802 `(;; In Requires of libgit2-glib.pc.
9803 ("libgit2" ,libgit2)))
9804 (synopsis "GLib wrapper around the libgit2 Git access library")
9805 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9806 access library. It only implements the core plumbing functions, not really the
9807 higher level porcelain stuff.")
9808 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9809 (license license:gpl2+)))
9810
9811 (define-public gitg
9812 (package
9813 (name "gitg")
9814 (version "3.32.1")
9815 (source (origin
9816 (method url-fetch)
9817 (uri (string-append "mirror://gnome/sources/" name "/"
9818 (version-major+minor version) "/"
9819 name "-" version ".tar.xz"))
9820 (sha256
9821 (base32
9822 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9823 (build-system meson-build-system)
9824 (arguments
9825 `(#:glib-or-gtk? #t
9826 #:phases
9827 (modify-phases %standard-phases
9828 (add-after 'unpack 'disable-post-install-partially
9829 (lambda _
9830 (substitute* "meson_post_install.py"
9831 (("'python'") ; there are no python sources to compile
9832 (string-append "'" (which "true") "'"))
9833 (("gtk-update-icon-cache") (which "true")))
9834 #t))
9835 (add-after 'unpack 'fix-test-sources
9836 (lambda _
9837 (substitute* "tests/libgitg/test-commit.vala"
9838 (("/bin/bash") (which "bash")))
9839 #t))
9840 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9841 (lambda* (#:key outputs #:allow-other-keys)
9842 (let ((prog (string-append (assoc-ref outputs "out")
9843 "/bin/gitg")))
9844 (wrap-program prog
9845 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9846 #t))))))
9847 (inputs
9848 `(("glib" ,glib)
9849 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9850 ("gtk+" ,gtk+)
9851 ("gtkspell3" ,gtkspell3)
9852 ("gtksourceview" ,gtksourceview-3)
9853 ("json-glib" ,json-glib)
9854 ("libdazzle" ,libdazzle)
9855 ("libgee" ,libgee)
9856 ("libgit2-glib" ,libgit2-glib)
9857 ("libpeas" ,libpeas)
9858 ("libsecret" ,libsecret)
9859 ("libsoup" ,libsoup)
9860 ("libxml2" ,libxml2)))
9861 (native-inputs
9862 `(("glib:bin" ,glib "bin")
9863 ("gtk+:bin" ,gtk+ "bin")
9864 ("gobject-introspection" ,gobject-introspection)
9865 ("intltool" ,intltool)
9866 ("pkg-config" ,pkg-config)
9867 ("vala" ,vala)))
9868 (synopsis "Graphical user interface for git")
9869 (description
9870 "gitg is a graphical user interface for git. It aims at being a small,
9871 fast and convenient tool to visualize the history of git repositories.
9872 Besides visualization, gitg also provides several utilities to manage your
9873 repository and commit your work.")
9874 (home-page "https://wiki.gnome.org/Apps/Gitg")
9875 (license license:gpl2+)))
9876
9877 (define-public gamin
9878 (package
9879 (name "gamin")
9880 (version "0.1.10")
9881 (source (origin
9882 (method url-fetch)
9883 (uri (string-append "mirror://gnome/sources/" name "/"
9884 (version-major+minor version) "/"
9885 name "-" version ".tar.bz2"))
9886 (sha256
9887 (base32
9888 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9889 (build-system gnu-build-system)
9890 (arguments
9891 `(#:phases
9892 (modify-phases %standard-phases
9893 (add-after 'unpack 'remove-deprecated-macro
9894 (lambda _
9895 (substitute* '("server/gam_node.c"
9896 "server/gam_subscription.h"
9897 "server/gam_node.h"
9898 "server/gam_subscription.c")
9899 (("G_CONST_RETURN") "const"))
9900 #t)))))
9901 (inputs
9902 `(("glib" ,glib)))
9903 (native-inputs
9904 `(("intltool" ,intltool)
9905 ("pkg-config" ,pkg-config)))
9906 (home-page "https://people.gnome.org/~veillard/gamin/")
9907 (synopsis "File alteration monitor")
9908 (description
9909 "Gamin is a file and directory monitoring system defined to be a subset
9910 of the FAM (File Alteration Monitor) system. This is a service provided by a
9911 library which detects when a file or a directory has been modified.")
9912 (license license:gpl2+)))
9913
9914 (define-public gnome-mahjongg
9915 (package
9916 (name "gnome-mahjongg")
9917 (version "3.35.1")
9918 (source (origin
9919 (method git-fetch)
9920 (uri (git-reference
9921 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9922 (commit version)))
9923 (file-name (git-file-name name version))
9924 (sha256
9925 (base32
9926 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9927 (build-system meson-build-system)
9928 (arguments
9929 `(#:glib-or-gtk? #t))
9930 (native-inputs
9931 `(("appstream-glib" ,appstream-glib)
9932 ("gettext" ,gettext-minimal)
9933 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9934 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9935 ("itstool" ,itstool)
9936 ("pkg-config" ,pkg-config)
9937 ("vala" ,vala)))
9938 (propagated-inputs
9939 `(("dconf" ,dconf)))
9940 (inputs
9941 `(("glib" ,glib)
9942 ("gtk+" ,gtk+)
9943 ("librsvg" ,librsvg)))
9944 (synopsis "Mahjongg tile-matching game")
9945 (description "GNOME Mahjongg is a game based on the classic Chinese
9946 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9947 and a high score table.")
9948 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9949 (license license:gpl2+)))
9950
9951 (define-public gnome-themes-extra
9952 (package
9953 (name "gnome-themes-extra")
9954 (version "3.28")
9955 (source
9956 (origin
9957 (method url-fetch)
9958 (uri (string-append "mirror://gnome/sources/" name "/"
9959 (version-major+minor version) "/" name "-"
9960 version ".tar.xz"))
9961 (sha256
9962 (base32
9963 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9964 (build-system gnu-build-system)
9965 (arguments
9966 '(#:configure-flags
9967 ;; Don't create 'icon-theme.cache'.
9968 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9969 (true (string-append coreutils "/bin/true")))
9970 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9971 (native-inputs
9972 `(("glib:bin" ,glib "bin")
9973 ("intltool" ,intltool)
9974 ("pkg-config" ,pkg-config)))
9975 (inputs
9976 `(("glib" ,glib)
9977 ("gtk+" ,gtk+)
9978 ("gtk+-2" ,gtk+-2)
9979 ("librsvg" ,librsvg)
9980 ("libxml2" ,libxml2)))
9981 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9982 (synopsis "GNOME Extra Themes")
9983 (description "This package provides themes and related elements that don't
9984 really fit in other upstream packages. It offers legacy support for GTK+ 2
9985 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9986 index files needed for Adwaita to be used outside of GNOME.")
9987 (license license:lgpl2.1+)))
9988
9989 (define-public polari
9990 (package
9991 (name "polari")
9992 (version "3.32.2")
9993 (source (origin
9994 (method url-fetch)
9995 (uri (string-append "mirror://gnome/sources/polari/"
9996 (version-major+minor version)
9997 "/polari-" version ".tar.xz"))
9998 (sha256
9999 (base32
10000 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
10001 (build-system meson-build-system)
10002 (arguments
10003 `(#:glib-or-gtk? #t
10004 #:phases
10005 (modify-phases %standard-phases
10006 (add-after 'unpack 'skip-gtk-update-icon-cache
10007 (lambda _
10008 (substitute* "meson/meson-postinstall.sh"
10009 (("gtk-update-icon-cache") (which "true")))
10010 #t))
10011 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10012 (lambda* (#:key outputs #:allow-other-keys)
10013 (let ((prog (string-append (assoc-ref outputs "out")
10014 "/bin/polari")))
10015 (wrap-program prog
10016 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10017 #t))))))
10018 (inputs
10019 `(("glib" ,glib)
10020 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10021 ("gspell" ,gspell)
10022 ("gtk+" ,gtk+)
10023 ("gjs" ,gjs)
10024 ("libsecret" ,libsecret)
10025 ("libsoup" ,libsoup)
10026 ("telepathy-glib" ,telepathy-glib)
10027 ("telepathy-logger" ,telepathy-logger)))
10028 (native-inputs
10029 `(("glib:bin" ,glib "bin")
10030 ("gobject-introspection" ,gobject-introspection)
10031 ("intltool" ,intltool)
10032 ("pkg-config" ,pkg-config)
10033 ("yelp-tools" ,yelp-tools)))
10034 (propagated-inputs
10035 `(("telepathy-idle" ,telepathy-idle)
10036 ("telepathy-mission-control" ,telepathy-mission-control)))
10037 (synopsis "Simple IRC Client")
10038 (description
10039 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10040 integrate seamlessly with the GNOME desktop.")
10041 (home-page "https://wiki.gnome.org/Apps/Polari")
10042 (license license:gpl2+)))
10043
10044 (define-public gnome-boxes
10045 (package
10046 (name "gnome-boxes")
10047 (version "3.36.5")
10048 (source
10049 (origin
10050 (method url-fetch)
10051 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10052 (version-major+minor version) "/"
10053 "gnome-boxes-" version ".tar.xz"))
10054 (sha256
10055 (base32 "1khvyhgd3p41fvvknga1hdl0p1ks4kj4cwsiaw28v1sy6nzclm2c"))))
10056 (build-system meson-build-system)
10057 (arguments
10058 '(#:glib-or-gtk? #t
10059 #:configure-flags (list "-Drdp=false"
10060 (string-append "-Dc_link_args=-Wl,-rpath="
10061 (assoc-ref %outputs "out")
10062 "/lib/gnome-boxes"))))
10063 (native-inputs
10064 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10065 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10066 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10067 ("itstool" ,itstool)
10068 ("intltool" ,intltool)
10069 ("vala" ,vala)
10070 ("pkg-config" ,pkg-config)))
10071 (inputs
10072 `(("libarchive" ,libarchive)
10073 ("gtk" ,gtk+)
10074 ("gtk-vnc" ,gtk-vnc)
10075 ("libosinfo" ,libosinfo)
10076 ("libsecret" ,libsecret)
10077 ("libsoup" ,libsoup)
10078 ("libusb" ,libusb)
10079 ("libvirt" ,libvirt)
10080 ("libvirt-glib" ,libvirt-glib)
10081 ("libxml" ,libxml2)
10082 ("spice-gtk" ,spice-gtk)
10083 ("sparql-query" ,sparql-query)
10084 ("vte" ,vte)
10085 ("webkitgtk" ,webkitgtk)
10086 ("tracker" ,tracker)
10087 ("libgudev" ,libgudev)))
10088 (home-page "https://wiki.gnome.org/Apps/Boxes")
10089 (synopsis "View, access, and manage remote and virtual systems")
10090 (description "GNOME Boxes is a simple application to view, access, and
10091 manage remote and virtual systems.")
10092 (license (list
10093 ;; For data/icons/empty-boxes.png.
10094 license:cc-by2.0
10095 ;; For all others.
10096 license:lgpl2.0+))))
10097
10098 (define-public geary
10099 (package
10100 (name "geary")
10101 (version "3.34.1")
10102 (source (origin
10103 (method git-fetch)
10104 (uri (git-reference
10105 (url "https://gitlab.gnome.org/GNOME/geary")
10106 (commit version)))
10107 (file-name (git-file-name name version))
10108 (sha256
10109 (base32
10110 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10111 (build-system meson-build-system)
10112 (arguments
10113 `(#:glib-or-gtk? #t
10114 #:phases (modify-phases %standard-phases
10115 (add-after 'unpack 'disable-failing-tests
10116 (lambda _
10117 (substitute* "test/meson.build"
10118 (("test\\('client-tests', geary_test_client_bin\\)")
10119 ""))
10120 #t))
10121 (add-after 'unpack 'disable-postinstall-script
10122 (lambda _
10123 (substitute* "meson.build"
10124 (("meson.add_install_script\\(\
10125 join_paths\\('build-aux', 'post_install.py'\\)\\)")
10126 ""))
10127 #t))
10128 (add-before 'check 'setup-xvfb
10129 (lambda _
10130 (system "Xvfb :1 &")
10131 (setenv "DISPLAY" ":1")
10132 #t)))))
10133 (inputs
10134 `(("enchant" ,enchant)
10135 ("folks" ,folks)
10136 ("gcr" ,gcr)
10137 ("glib" ,glib)
10138 ("gmime" ,gmime-2.6)
10139 ("gnome-online-accounts:lib"
10140 ,gnome-online-accounts "lib")
10141 ("gspell" ,gspell)
10142 ("gtk+" ,gtk+)
10143 ("iso-codes" ,iso-codes)
10144 ("json-glib" ,json-glib)
10145 ("libcanberra" ,libcanberra)
10146 ("libgee" ,libgee)
10147 ("libhandy" ,libhandy)
10148 ("libpeas" ,libpeas)
10149 ("libsecret" ,libsecret)
10150 ("libunwind" ,libunwind)
10151 ("sqlite" ,sqlite)
10152 ("webkitgtk" ,webkitgtk)
10153 ("ytnef" ,ytnef)))
10154 (native-inputs
10155 `(("appstream-glib" ,appstream-glib)
10156 ("cmake-minimal" ,cmake-minimal)
10157 ("desktop-file-utils" ,desktop-file-utils)
10158 ("gettext" ,gettext-minimal)
10159 ("glib:bin" ,glib "bin")
10160 ("gobject-introspection" ,gobject-introspection)
10161 ("itstool" ,itstool)
10162 ("libarchive" ,libarchive)
10163 ("libxml2" ,libxml2)
10164 ("pkg-config" ,pkg-config)
10165 ("vala" ,vala)
10166 ("xvfb" ,xorg-server-for-tests)))
10167 (synopsis "GNOME email application built around conversations")
10168 (description
10169 "Geary collects related messages together into conversations,
10170 making it easy to find and follow your discussions. Full-text and keyword
10171 search makes it easy to find the email you are looking for. Geary's
10172 full-featured composer lets you send rich, styled text with images, links, and
10173 lists, but also send lightweight, easy to read text messages. Geary
10174 automatically picks up your existing GNOME Online Accounts, and adding more is
10175 easy. Geary has a clean, fast, modern interface that works like you want it
10176 to.")
10177 (home-page "https://wiki.gnome.org/Apps/Geary")
10178 (license (list
10179 ;; geary
10180 license:lgpl2.1+
10181 ;; icons
10182 license:cc-by3.0
10183 license:cc-by-sa3.0
10184 license:public-domain
10185 ;; snowball
10186 license:bsd-2))))
10187
10188 (define-public glabels
10189 (package
10190 (name "glabels")
10191 (version "3.4.1")
10192 (source
10193 (origin
10194 (method url-fetch)
10195 (uri (string-append "mirror://gnome/sources/" name "/"
10196 (version-major+minor version) "/"
10197 "glabels-" version ".tar.xz"))
10198 (sha256
10199 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10200 (build-system glib-or-gtk-build-system)
10201 (native-inputs
10202 `(("gettext" ,gettext-minimal)
10203 ("glib:bin" ,glib "bin")
10204 ("intltool" ,intltool)
10205 ("itstool" ,itstool)
10206 ("pkg-config" ,pkg-config)))
10207 (inputs
10208 `(("gtk+" ,gtk+)
10209 ("librsvg" ,librsvg)
10210 ("libxml2" ,libxml2)))
10211 (home-page "https://glabels.org/")
10212 (synopsis "Program for creating labels and business cards")
10213 (description
10214 "gLabels is a program for creating labels and business cards. It is
10215 designed to work with various laser/ink-jet peel-off label and business
10216 card sheets that you’ll find at most office supply stores.")
10217 (license license:gpl3+)))
10218
10219 (define-public libratbag
10220 (package
10221 (name "libratbag")
10222 (version "0.13")
10223 (source
10224 (origin
10225 (method git-fetch)
10226 (uri (git-reference
10227 (url "https://github.com/libratbag/libratbag.git")
10228 (commit (string-append "v" version))))
10229 (file-name (git-file-name name version))
10230 (sha256
10231 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10232 (build-system meson-build-system)
10233 (arguments
10234 `(#:configure-flags
10235 (list "-Dsystemd=false"
10236 "-Dlogind-provider=elogind")
10237 #:phases
10238 (modify-phases %standard-phases
10239 (add-after 'install 'wrap
10240 (lambda* (#:key inputs outputs #:allow-other-keys)
10241 (let* ((out (assoc-ref outputs "out"))
10242 (site (string-append
10243 "/lib/python"
10244 ,(version-major+minor (package-version python))
10245 "/site-packages"))
10246 (evdev (string-append
10247 (assoc-ref inputs "python-evdev") site))
10248 (pygo (string-append
10249 (assoc-ref inputs "python-pygobject") site))
10250 (python-wrap
10251 `("PYTHONPATH" = (,evdev ,pygo))))
10252 (wrap-program (string-append out "/bin/" "ratbagctl")
10253 python-wrap)
10254 #t))))))
10255 (native-inputs
10256 `(("check" ,check)
10257 ("pkg-config" ,pkg-config)
10258 ("swig" ,swig)
10259 ("valgrind" ,valgrind)))
10260 (inputs
10261 `(("glib" ,glib)
10262 ("json-glib" ,json-glib)
10263 ("libevdev" ,libevdev)
10264 ("libsystemd" ,elogind)
10265 ("libunistring" ,libunistring)
10266 ("python-evdev" ,python-evdev)
10267 ("python-pygobject" ,python-pygobject)
10268 ("udev" ,eudev)))
10269 (home-page "https://github.com/libratbag/libratbag")
10270 (synopsis "DBus daemon and utility for configuring gaming mice")
10271 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10272 configure input devices, mainly gaming mice. The daemon provides a generic
10273 way to access the various features exposed by these mice and abstracts away
10274 hardware-specific and kernel-specific quirks. There is also the
10275 @command{ratbagctl} command line interface for configuring devices.
10276
10277 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10278 Steelseries.
10279
10280 The ratbagd DBus service can be enabled by adding the following service to
10281 your operating-system definition:
10282
10283 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10284 (license license:expat)))
10285
10286 (define-public piper
10287 (package
10288 (name "piper")
10289 (version "0.5")
10290 (source
10291 (origin
10292 (method git-fetch)
10293 (uri (git-reference
10294 (url "https://github.com/libratbag/piper.git")
10295 (commit version)))
10296 (sha256
10297 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10298 (file-name (git-file-name name version))))
10299 (build-system meson-build-system)
10300 (native-inputs
10301 `(("gettext" ,gettext-minimal)
10302 ("glib:bin" ,glib "bin")
10303 ("gobject-introspection" ,gobject-introspection)
10304 ("pkg-config" ,pkg-config)
10305 ("python-flake8" ,python-flake8)))
10306 (inputs
10307 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10308 ("gtk" ,gtk+)
10309 ("gtk:bin" ,gtk+ "bin")
10310 ("librsvg" ,librsvg)
10311 ("python-evdev" ,python-evdev)
10312 ("python-lxml" ,python-lxml)
10313 ("python-pycairo" ,python-pycairo)
10314 ("python-pygobject" ,python-pygobject)))
10315 (arguments
10316 `(#:imported-modules ((guix build python-build-system)
10317 ,@%meson-build-system-modules)
10318 #:modules (((guix build python-build-system) #:prefix python:)
10319 (guix build meson-build-system)
10320 (guix build utils))
10321 #:phases
10322 (modify-phases %standard-phases
10323 (add-after 'unpack 'dont-update-gtk-icon-cache
10324 (lambda _
10325 (substitute* "meson.build"
10326 (("meson.add_install_script('meson_install.sh')") ""))
10327 #t))
10328 ;; TODO: Switch to wrap-script when it is fixed.
10329 (add-after 'install 'wrap-python
10330 (assoc-ref python:%standard-phases 'wrap))
10331 (add-after 'wrap-python 'wrap
10332 (lambda* (#:key outputs #:allow-other-keys)
10333 (wrap-program
10334 (string-append (assoc-ref outputs "out" )"/bin/piper")
10335 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10336 #t)))))
10337 (home-page "https://github.com/libratbag/piper/")
10338 (synopsis "Configure bindings and LEDs on gaming mice")
10339 (description "Piper is a GTK+ application for configuring gaming mice with
10340 onboard configuration for key bindings via libratbag. Piper requires
10341 a @command{ratbagd} daemon running with root privileges. It can be run
10342 manually as root, but is preferably configured as a DBus service that can
10343 launch on demand. This can be configured by enabling the following service,
10344 provided there is a DBus service present:
10345
10346 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10347 (license license:gpl2)))
10348
10349 (define-public parlatype
10350 ;; This is one commit away from 2.0, because the latter introduced
10351 ;; a regression in ASR.
10352 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10353 (revision "0"))
10354 (package
10355 (name "parlatype")
10356 (version (git-version "2.0" revision commit))
10357 (source
10358 (origin
10359 (method git-fetch)
10360 (uri (git-reference
10361 (url "https://github.com/gkarsay/parlatype.git")
10362 (commit commit)))
10363 (file-name (git-file-name name version))
10364 (sha256
10365 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10366 (build-system meson-build-system)
10367 (arguments
10368 `(#:glib-or-gtk? #t
10369 #:tests? #f ;require internet access
10370 #:phases
10371 (modify-phases %standard-phases
10372 (add-after 'install 'wrap-parlatype
10373 ;; Add gstreamer plugin provided in this package to system's
10374 ;; plugins.
10375 (lambda* (#:key outputs #:allow-other-keys)
10376 (let* ((out (assoc-ref outputs "out"))
10377 (gst-plugin-path (string-append
10378 out "/lib/gstreamer-1.0/"
10379 ":"
10380 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10381 (wrap-program (string-append out "/bin/parlatype")
10382 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10383 #t)))))
10384 (native-inputs
10385 `(("appstream-glib" ,appstream-glib)
10386 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10387 ("gettext" ,gettext-minimal)
10388 ("glib" ,glib "bin") ;for glib-compile-resources
10389 ("pkg-config" ,pkg-config)
10390 ("yelp-tools" ,yelp-tools)))
10391 (inputs
10392 `(("gst-plugins-base" ,gst-plugins-base)
10393 ("gst-plugins-good" ,gst-plugins-good)
10394 ("gstreamer" ,gstreamer)
10395 ("gtk+" ,gtk+)
10396 ("pocketsphinx" ,pocketsphinx)
10397 ("pulseaudio" ,pulseaudio)
10398 ("sphinxbase" ,sphinxbase)))
10399 (home-page "http://gkarsay.github.io/parlatype/")
10400 (synopsis "GNOME audio player for transcription")
10401 (description "Parlatype is an audio player for the GNOME desktop
10402 environment. Its main purpose is the manual transcription of spoken
10403 audio files.")
10404 (license license:gpl3+))))
10405
10406 (define-public jsonrpc-glib
10407 (package
10408 (name "jsonrpc-glib")
10409 (version "3.34.0")
10410 (source (origin
10411 (method url-fetch)
10412 (uri (string-append "mirror://gnome/sources/" name "/"
10413 (version-major+minor version) "/"
10414 name "-" version ".tar.xz"))
10415 (sha256
10416 (base32
10417 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10418 (build-system meson-build-system)
10419 (inputs
10420 `(("json-glib" ,json-glib)
10421 ("glib" ,glib)))
10422 (native-inputs
10423 `(("pkg-config" ,pkg-config)
10424 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10425 ("gobject-introspection" ,gobject-introspection)
10426 ("vala" ,vala)))
10427 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10428 (synopsis "JSON-RPC library for GLib")
10429 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10430 peers in either a synchronous or asynchronous fashion. It also allows
10431 communicating using the GVariant serialization format instead of JSON when
10432 both peers support it. You might want that when communicating on a single
10433 host to avoid parser overhead and memory-allocator fragmentation.")
10434 (license license:lgpl2.1+)))