gnu: Add gnome-builder.
[jackhill/guix/guix.git] / gnu / packages / gnome.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
3 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
4 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
5 ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017, 2020 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
54 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;;
58 ;;; This file is part of GNU Guix.
59 ;;;
60 ;;; GNU Guix is free software; you can redistribute it and/or modify it
61 ;;; under the terms of the GNU General Public License as published by
62 ;;; the Free Software Foundation; either version 3 of the License, or (at
63 ;;; your option) any later version.
64 ;;;
65 ;;; GNU Guix is distributed in the hope that it will be useful, but
66 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
67 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
68 ;;; GNU General Public License for more details.
69 ;;;
70 ;;; You should have received a copy of the GNU General Public License
71 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
72
73 (define-module (gnu packages gnome)
74 #:use-module (gnu packages)
75 #:use-module (gnu packages admin)
76 #:use-module (gnu packages aspell)
77 #:use-module (gnu packages autotools)
78 #:use-module (gnu packages avahi)
79 #:use-module (gnu packages backup)
80 #:use-module (gnu packages base)
81 #:use-module (gnu packages bash)
82 #:use-module (gnu packages bison)
83 #:use-module (gnu packages boost)
84 #:use-module (gnu packages build-tools)
85 #:use-module (gnu packages calendar)
86 #:use-module (gnu packages cdrom)
87 #:use-module (gnu packages check)
88 #:use-module (gnu packages cmake)
89 #:use-module (gnu packages compression)
90 #:use-module (gnu packages crates-io)
91 #:use-module (gnu packages cups)
92 #:use-module (gnu packages curl)
93 #:use-module (gnu packages cyrus-sasl)
94 #:use-module (gnu packages databases)
95 #:use-module (gnu packages dbm)
96 #:use-module (gnu packages djvu)
97 #:use-module (gnu packages dns)
98 #:use-module (gnu packages docbook)
99 #:use-module (gnu packages documentation)
100 #:use-module (gnu packages enchant)
101 #:use-module (gnu packages flex)
102 #:use-module (gnu packages fonts)
103 #:use-module (gnu packages file-systems)
104 #:use-module (gnu packages fontutils)
105 #:use-module (gnu packages freedesktop)
106 #:use-module (gnu packages game-development)
107 #:use-module (gnu packages gettext)
108 #:use-module (gnu packages ghostscript)
109 #:use-module (gnu packages gl)
110 #:use-module (gnu packages glib)
111 #:use-module (gnu packages gnupg)
112 #:use-module (gnu packages gnuzilla)
113 #:use-module (gnu packages geo)
114 #:use-module (gnu packages gperf)
115 #:use-module (gnu packages graphviz)
116 #:use-module (gnu packages gstreamer)
117 #:use-module (gnu packages gtk)
118 #:use-module (gnu packages guile)
119 #:use-module (gnu packages ibus)
120 #:use-module (gnu packages icu4c)
121 #:use-module (gnu packages image)
122 #:use-module (gnu packages imagemagick)
123 #:use-module (gnu packages inkscape)
124 #:use-module (gnu packages iso-codes)
125 #:use-module (gnu packages kerberos)
126 #:use-module (gnu packages libcanberra)
127 #:use-module (gnu packages libunistring)
128 #:use-module (gnu packages libunwind)
129 #:use-module (gnu packages libusb)
130 #:use-module (gnu packages linux)
131 #:use-module (gnu packages lirc)
132 #:use-module (gnu packages lua)
133 #:use-module (gnu packages mail)
134 #:use-module (gnu packages mp3)
135 #:use-module (gnu packages multiprecision)
136 #:use-module (gnu packages music)
137 #:use-module (gnu packages ncurses)
138 #:use-module (gnu packages nettle)
139 #:use-module (gnu packages networking)
140 #:use-module (gnu packages ninja)
141 #:use-module (gnu packages nss)
142 #:use-module (gnu packages openldap)
143 #:use-module (gnu packages password-utils)
144 #:use-module (gnu packages pcre)
145 #:use-module (gnu packages pdf)
146 #:use-module (gnu packages perl)
147 #:use-module (gnu packages photo)
148 #:use-module (gnu packages php)
149 #:use-module (gnu packages pkg-config)
150 #:use-module (gnu packages polkit)
151 #:use-module (gnu packages popt)
152 #:use-module (gnu packages pretty-print)
153 #:use-module (gnu packages pulseaudio)
154 #:use-module (gnu packages python)
155 #:use-module (gnu packages python-crypto)
156 #:use-module (gnu packages python-web)
157 #:use-module (gnu packages python-xyz)
158 #:use-module (gnu packages rdesktop)
159 #:use-module (gnu packages readline)
160 #:use-module (gnu packages ruby)
161 #:use-module (gnu packages rust)
162 #:use-module (gnu packages samba)
163 #:use-module (gnu packages scanner)
164 #:use-module (gnu packages selinux)
165 #:use-module (gnu packages slang)
166 #:use-module (gnu packages speech)
167 #:use-module (gnu packages spice)
168 #:use-module (gnu packages sqlite)
169 #:use-module (gnu packages ssh)
170 #:use-module (gnu packages swig)
171 #:use-module (gnu packages tex)
172 #:use-module (gnu packages time)
173 #:use-module (gnu packages tls)
174 #:use-module (gnu packages valgrind)
175 #:use-module (gnu packages version-control)
176 #:use-module (gnu packages video)
177 #:use-module (gnu packages virtualization)
178 #:use-module (gnu packages vpn)
179 #:use-module (gnu packages web)
180 #:use-module (gnu packages webkit)
181 #:use-module (gnu packages xdisorg)
182 #:use-module (gnu packages xiph)
183 #:use-module (gnu packages xml)
184 #:use-module (gnu packages xorg)
185 #:use-module (gnu artwork)
186 #:use-module ((guix build utils) #:select (modify-phases))
187 #:use-module (guix build-system cargo)
188 #:use-module (guix build-system cmake)
189 #:use-module (guix build-system glib-or-gtk)
190 #:use-module (guix build-system gnu)
191 #:use-module (guix build-system meson)
192 #:use-module (guix build-system python)
193 #:use-module (guix build-system trivial)
194 #:use-module (guix download)
195 #:use-module (guix git-download)
196 #:use-module ((guix licenses) #:prefix license:)
197 #:use-module (guix packages)
198 #:use-module (guix utils)
199 #:use-module (guix gexp)
200 #:use-module (guix monads)
201 #:use-module (guix store)
202 #:use-module (ice-9 match)
203 #:use-module (srfi srfi-1))
204
205 (define-public brasero
206 (package
207 (name "brasero")
208 (version "3.12.2")
209 (source (origin
210 (method url-fetch)
211 (uri (string-append "mirror://gnome/sources/brasero/"
212 (version-major+minor version) "/"
213 "brasero-" version ".tar.xz"))
214 (sha256
215 (base32
216 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
217 (build-system glib-or-gtk-build-system)
218 (arguments
219 `(#:configure-flags (list
220 (string-append "--with-girdir="
221 (assoc-ref %outputs "out")
222 "/share/gir-1.0")
223 (string-append "--with-typelibdir="
224 (assoc-ref %outputs "out")
225 "/lib/girepository-1.0"))
226 #:phases
227 (modify-phases %standard-phases
228 (add-before 'configure 'embed-growisofs
229 (lambda* (#:key inputs #:allow-other-keys)
230 (substitute* "plugins/growisofs/burn-growisofs.c"
231 (("\"growisofs") (string-append "\"" (which "growisofs"))))
232 #t)))))
233 (propagated-inputs
234 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
235 (native-inputs
236 `(("intltool" ,intltool)
237 ("itstool" ,itstool)
238 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
239 ("gobject-introspection" ,gobject-introspection)
240 ("pkg-config" ,pkg-config)))
241 (inputs
242 `(("dvd+rw-tools" ,dvd+rw-tools)
243 ("glib" ,glib)
244 ("gnome-doc-utils" ,gnome-doc-utils)
245 ("gstreamer" ,gstreamer)
246 ("gst-plugins-base" ,gst-plugins-base)
247 ("gtk+" ,gtk+)
248 ("libcanberra" ,libcanberra)
249 ("libice" ,libice)
250 ("libnotify" ,libnotify)
251 ("libsm" ,libsm)
252 ("libxml2" ,libxml2)
253 ("totem-pl-parser" ,totem-pl-parser)))
254 (home-page "https://wiki.gnome.org/Apps/Brasero")
255 (synopsis "CD/DVD burning tool for Gnome")
256 (description "Brasero is an application to burn CD/DVD for the Gnome
257 Desktop. It is designed to be as simple as possible and has some unique
258 features to enable users to create their discs easily and quickly.")
259 (license license:gpl2+)))
260
261 (define-public notification-daemon
262 (package
263 (name "notification-daemon")
264 (version "3.20.0")
265 (source
266 (origin
267 (method url-fetch)
268 (uri
269 (string-append "mirror://gnome/sources/" name "/"
270 (version-major+minor version) "/"
271 name "-" version ".tar.xz"))
272 (sha256
273 (base32
274 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
275 (build-system glib-or-gtk-build-system)
276 (native-inputs
277 `(("intltool" ,intltool)
278 ("pkg-config" ,pkg-config)))
279 (inputs
280 `(("glib" ,glib)
281 ("gtk+" ,gtk+)
282 ("x11" ,libx11)))
283 (synopsis "Notification Daemon for GNOME Desktop")
284 (description "Notification-Daemon is the server implementation of the
285 freedesktop.org desktop notification specification.")
286 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
287 (license license:gpl2+)))
288
289 (define-public mm-common
290 (package
291 (name "mm-common")
292 (version "1.0.1")
293 (source (origin
294 (method url-fetch)
295 (uri (string-append "mirror://gnome/sources/mm-common/"
296 (version-major+minor version) "/"
297 "mm-common-" version ".tar.xz"))
298 (sha256
299 (base32
300 "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
301 (build-system meson-build-system)
302 (arguments
303 `(#:phases
304 (modify-phases %standard-phases
305 (add-after 'unpack 'patch
306 (lambda* (#:key inputs #:allow-other-keys)
307 (substitute* "util/mm-common-prepare.in"
308 (("ln") (string-append (assoc-ref inputs "coreutils")
309 "/bin/ln"))
310 (("cp") (string-append (assoc-ref inputs "coreutils")
311 "/bin/cp"))
312 (("sed") (string-append (assoc-ref inputs "sed")
313 "/bin/sed"))
314 (("cat") (string-append (assoc-ref inputs "coreutils")
315 "/bin/cat")))
316 #t)))))
317 (native-inputs
318 `(("coreutils" ,coreutils)
319 ("gettext" ,gettext-minimal)
320 ("pkg-config" ,pkg-config)
321 ("sed" ,sed)))
322 (inputs
323 `(("python" ,python)))
324 (synopsis "Module of GNOME C++ bindings")
325 (description "The mm-common module provides the build infrastructure
326 and utilities shared among the GNOME C++ binding libraries. Release
327 archives of mm-common include the Doxygen tag file for the GNU C++
328 Library reference documentation.")
329 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
330 (license license:gpl2+)))
331
332 (define-public phodav
333 (package
334 (name "phodav")
335 (version "2.4")
336 (source (origin
337 (method url-fetch)
338 (uri (string-append "mirror://gnome/sources/" name "/"
339 (version-major+minor version) "/"
340 name "-" version ".tar.xz"))
341 (sha256
342 (base32
343 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
344 (build-system meson-build-system)
345 (native-inputs
346 `(("gettext" ,gettext-minimal)
347 ("glib:bin" ,glib "bin")
348 ("gtk-doc" ,gtk-doc)
349 ("pkg-config" ,pkg-config)))
350 (inputs
351 `(("avahi" ,avahi)
352 ("libgudev" ,libgudev)
353 ("libsoup" ,libsoup)))
354 (synopsis "WebDav server implementation using libsoup")
355 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
356 but it is generic enough to be reused in other projects,
357 in particular in the GNOME desktop.")
358 (home-page "https://wiki.gnome.org/phodav")
359 (license license:lgpl2.1+)))
360
361 (define-public gnome-color-manager
362 (package
363 (name "gnome-color-manager")
364 (version "3.32.0")
365 (source (origin
366 (method url-fetch)
367 (uri (string-append "mirror://gnome/sources/" name "/"
368 (version-major+minor version) "/"
369 name "-" version ".tar.xz"))
370 (sha256
371 (base32
372 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
373 (build-system meson-build-system)
374 (arguments
375 `(#:glib-or-gtk? #t
376 #:phases
377 (modify-phases %standard-phases
378 (add-before
379 'check 'pre-check
380 (lambda _
381 ;; Tests require a running X server.
382 (system "Xvfb :1 &")
383 (setenv "DISPLAY" ":1")
384 #t)))))
385 (native-inputs
386 `(("desktop-file-utils" ,desktop-file-utils)
387 ("gettext" ,gettext-minimal)
388 ("glib:bin" ,glib "bin")
389 ("gtk+:bin" ,gtk+ "bin")
390 ("itstool" ,itstool)
391 ("pkg-config" ,pkg-config)
392 ("xorg-server" ,xorg-server-for-tests)))
393 (inputs
394 `(("adwaita-icon-theme" ,adwaita-icon-theme)
395 ("appstream-glib" ,appstream-glib)
396 ("colord-gtk" ,colord-gtk)
397 ("exiv2" ,exiv2)
398 ("gnome-desktop" ,gnome-desktop)
399 ("libcanberra" ,libcanberra)
400 ("libexif" ,libexif)
401 ("libtiff" ,libtiff)
402 ("libxrandr" ,libxrandr)
403 ("libxtst" ,libxtst)
404 ("libxxf86vm" ,libxxf86vm)
405 ("vte" ,vte)
406 ("xorgproto" ,xorgproto)))
407 (synopsis "Color profile manager for the GNOME desktop")
408 (description "GNOME Color Manager is a session framework that makes
409 it easy to manage, install and generate color profiles
410 in the GNOME desktop.")
411 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
412 (license license:gpl2+)))
413
414 (define-public gnome-online-miners
415 (package
416 (name "gnome-online-miners")
417 (version "3.34.0")
418 (source (origin
419 (method url-fetch)
420 (uri (string-append "mirror://gnome/sources/" name "/"
421 (version-major+minor version) "/"
422 name "-" version ".tar.xz"))
423 (sha256
424 (base32
425 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
426 (build-system glib-or-gtk-build-system)
427 (native-inputs
428 `(("gettext" ,gettext-minimal)
429 ("glib:bin" ,glib "bin")
430 ("gobject-introspection" ,gobject-introspection)
431 ("gtk+:bin" ,gtk+ "bin")
432 ("pkg-config" ,pkg-config)))
433 (inputs
434 `(("gnome-online-accounts" ,gnome-online-accounts)
435 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
436 ("grilo" ,grilo)
437 ("libgdata" ,libgdata)
438 ("libgfbgraph" ,gfbgraph)
439 ("libzapojit" ,libzapojit)
440 ("rest" ,rest)
441 ("tracker" ,tracker)))
442 (synopsis "Web Crawlers for GNOME")
443 (description "GNOME Online Miners provides a set of crawlers that
444 go through your online content and index them locally in Tracker.
445 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
446 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
447 (license license:gpl2+)))
448
449 (define-public gssdp
450 (package
451 (name "gssdp")
452 (version "1.2.2")
453 (source (origin
454 (method url-fetch)
455 (uri (string-append "mirror://gnome/sources/" name "/"
456 (version-major+minor version) "/"
457 name "-" version ".tar.xz"))
458 (sha256
459 (base32
460 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
461 (build-system meson-build-system)
462 (native-inputs
463 `(("gettext" ,gettext-minimal)
464 ("glib:bin" ,glib "bin")
465 ("gobject-introspection" ,gobject-introspection)
466 ("gtk-doc" ,gtk-doc)
467 ("pkg-config" ,pkg-config)
468 ("vala" ,vala)))
469 (inputs
470 `(("gtk+" ,gtk+)
471 ("libsoup" ,libsoup)))
472 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
473 Protocol} for GNOME")
474 (description "This package provides a library to handle resource discovery
475 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
476 a debugging tool, @command{gssdp-device-sniffer}.")
477 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
478 (license license:lgpl2.0+)))
479
480 (define-public gupnp
481 (package
482 (name "gupnp")
483 (version "1.2.2")
484 (source (origin
485 (method url-fetch)
486 (uri (string-append "mirror://gnome/sources/" name "/"
487 (version-major+minor version) "/"
488 name "-" version ".tar.xz"))
489 (sha256
490 (base32
491 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
492 (build-system meson-build-system)
493 (native-inputs
494 `(("gettext" ,gettext-minimal)
495 ("glib:bin" ,glib "bin")
496 ("gobject-introspection" ,gobject-introspection)
497 ("gtk-doc" ,gtk-doc)
498 ("pkg-config" ,pkg-config)
499 ("vala" ,vala)))
500 (inputs
501 `(("gssdp" ,gssdp)
502 ("gtk+" ,gtk+)
503 ("libsoup" ,libsoup)))
504 (synopsis "PnP API for GNOME")
505 (description "This package provides GUPnP, an object-oriented framework
506 for creating UPnP devices and control points, written in C using
507 @code{GObject} and @code{libsoup}.")
508 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
509 (license license:lgpl2.0+)))
510
511 (define-public gupnp-dlna
512 (package
513 (name "gupnp-dlna")
514 (version "0.10.5")
515 (source (origin
516 (method url-fetch)
517 (uri (string-append "mirror://gnome/sources/" name "/"
518 (version-major+minor version) "/"
519 name "-" version ".tar.xz"))
520 (sha256
521 (base32
522 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
523 (build-system gnu-build-system)
524 (native-inputs
525 `(("gettext" ,gettext-minimal)
526 ("glib:bin" ,glib "bin")
527 ("gobject-introspection" ,gobject-introspection)
528 ("gtk-doc" ,gtk-doc)
529 ("libxml" ,libxml2)
530 ("pkg-config" ,pkg-config)
531 ("vala" ,vala)))
532 (inputs
533 `(("gstreamer" ,gstreamer)
534 ("gupnp" ,gupnp)))
535 (propagated-inputs
536 `(("gst-plugins-base" ,gst-plugins-base)
537 ("gst-plugins-good" ,gst-plugins-good)))
538 (synopsis "GUPnP DLNA for GNOME")
539 (description "This package provides a small utility library to
540 support DLNA-related tasks such as media profile guessing, transcoding to a
541 given profile, etc. DLNA is a subset of UPnP A/V.")
542 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
543 (license license:lgpl2.0+)))
544
545 (define-public gupnp-av
546 (package
547 (name "gupnp-av")
548 (version "0.12.11")
549 (source (origin
550 (method url-fetch)
551 (uri (string-append "mirror://gnome/sources/" name "/"
552 (version-major+minor version) "/"
553 name "-" version ".tar.xz"))
554 (sha256
555 (base32
556 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
557 (build-system gnu-build-system)
558 (native-inputs
559 `(("gettext" ,gettext-minimal)
560 ("glib:bin" ,glib "bin")
561 ("gobject-introspection" ,gobject-introspection)
562 ("gtk-doc" ,gtk-doc)
563 ("libxml" ,libxml2)
564 ("pkg-config" ,pkg-config)))
565 (inputs
566 `(("gtk+" ,gtk+)
567 ("gupnp" ,gupnp)))
568 (synopsis "GUPnP A/V for GNOME")
569 (description "This package provides a small library for handling
570 and implementation of UPnP A/V profiles.")
571 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
572 (license license:lgpl2.0+)))
573
574 (define-public libmediaart
575 (package
576 (name "libmediaart")
577 (version "1.9.4")
578 (source (origin
579 (method url-fetch)
580 (uri (string-append "mirror://gnome/sources/" name "/"
581 (version-major+minor version) "/"
582 name "-" version ".tar.xz"))
583 (sha256
584 (base32
585 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
586 (build-system gnu-build-system)
587 (native-inputs
588 `(("glib:bin" ,glib "bin")
589 ("pkg-config" ,pkg-config)))
590 (inputs
591 `(("gdk-pixbuf" ,gdk-pixbuf)
592 ("gettext" ,gettext-minimal)
593 ("gobject-introspection" ,gobject-introspection)
594 ("gtk+:doc", gtk+ "doc")
595 ("vala" ,vala)))
596 (synopsis "Media art library for the GNOME desktop")
597 (description
598 "The libmediaart library is the foundation for media art caching,
599 extraction, and lookup for applications on the desktop.")
600 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
601 (license license:lgpl2.1+)))
602
603 (define-public gnome-initial-setup
604 (package
605 (name "gnome-initial-setup")
606 (version "3.32.1")
607 (source (origin
608 (method url-fetch)
609 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
610 (version-major+minor version)
611 "/gnome-initial-setup-" version ".tar.xz"))
612 (sha256
613 (base32
614 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
615 (build-system meson-build-system)
616 (arguments
617 '(#:configure-flags '(;; Enable camera support for user selfie.
618 "-Dcheese=auto"
619 "-Dsystemd=false")
620 #:phases (modify-phases %standard-phases
621 (add-after 'unpack 'set-gkbd-file-name
622 (lambda* (#:key inputs #:allow-other-keys)
623 ;; Allow the "Preview" button in the keyboard layout
624 ;; selection dialog to display the layout.
625 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
626 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
627 (("\"gkbd-keyboard-display")
628 (string-append "\"" libgnomekbd
629 "/bin/gkbd-keyboard-display")))
630 #t))))))
631 (native-inputs
632 `(("gettext" ,gettext-minimal)
633 ("glib:bin" ,glib "bin")
634 ("gobject-introspection" ,gobject-introspection)
635 ("gtk+:bin" ,gtk+ "bin")
636 ("pkg-config" ,pkg-config)))
637 (inputs
638 `(("accountsservice" ,accountsservice)
639 ;("adwaita-icon-theme" ,adwaita-icon-theme)
640 ("gdm" ,gdm)
641 ("geoclue" ,geoclue)
642 ("gnome-desktop" ,gnome-desktop)
643 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
644 ("gnome-online-accounts" ,gnome-online-accounts)
645 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
646 ("gstreamer" ,gstreamer)
647 ("ibus" ,ibus)
648 ("json-glib" ,json-glib)
649 ("krb5" ,mit-krb5)
650 ("libgweather" ,libgweather)
651 ("libnma" ,libnma)
652 ("libsecret" ,libsecret)
653 ("network-manager" ,network-manager)
654 ("packagekit" ,packagekit)
655 ("polkit" ,polkit)
656 ("pwquality" ,libpwquality)
657 ("rest" ,rest)
658 ("upower" ,upower)
659 ("webkitgtk" ,webkitgtk)
660 ("libgnomekbd" ,libgnomekbd)))
661 (synopsis "Initial setup wizard for GNOME desktop")
662 (description "This package provides a set-up wizard when a
663 user logs into GNOME for the first time. It typically provides a
664 tour of all gnome components and allows the user to set them up.")
665 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
666 (license license:gpl2)))
667
668 (define-public gnome-user-share
669 (package
670 (name "gnome-user-share")
671 (version "3.33.1")
672 (source (origin
673 (method url-fetch)
674 (uri (string-append "mirror://gnome/sources/" name "/"
675 (version-major+minor version) "/"
676 name "-" version ".tar.xz"))
677 (sha256
678 (base32
679 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
680 (build-system meson-build-system)
681 (arguments
682 `(#:glib-or-gtk? #t
683 #:configure-flags
684 `("-Dsystemd=false"
685 ;; Enable nautilus extension for file sharing.
686 "-Dnautilus_extension=true")))
687 (native-inputs
688 `(("gettext" ,gettext-minimal)
689 ("glib:bin" ,glib "bin")
690 ("gobject-introspection" ,gobject-introspection)
691 ("gtk+:bin" ,gtk+ "bin")
692 ("pkg-config" ,pkg-config)
693 ("yelp-tools" ,yelp-tools)))
694 (inputs
695 `(("glib" ,glib)
696 ("gnome-bluetooth" ,gnome-bluetooth)
697 ("gtk+" ,gtk+)
698 ("libcanberra" ,libcanberra)
699 ("libnotify" ,libnotify)
700 ("nautilus" ,nautilus))) ; For nautilus extension.
701 (synopsis "File sharing for GNOME desktop")
702 (description "GNOME User Share is a small package that binds together
703 various free software projects to bring easy to use user-level file
704 sharing to the masses.")
705 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
706 (license license:gpl2+)))
707
708 (define-public sushi
709 (package
710 (name "sushi")
711 (version "3.32.1")
712 (source (origin
713 (method url-fetch)
714 (uri (string-append "mirror://gnome/sources/" name "/"
715 (version-major+minor version) "/"
716 name "-" version ".tar.xz"))
717 (sha256
718 (base32
719 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
720 (build-system meson-build-system)
721 (arguments
722 `(#:glib-or-gtk? #t
723 #:phases
724 (modify-phases %standard-phases
725 (add-after 'glib-or-gtk-wrap 'wrap-typelib
726 (lambda* (#:key outputs #:allow-other-keys)
727 (let ((prog (string-append (assoc-ref outputs "out")
728 "/bin/sushi")))
729 ;; Put existing typelibs before sushi's deps, so as to correctly
730 ;; infer gdk-pixbuf
731 (wrap-program prog
732 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
733 #t))))))
734 (native-inputs
735 `(("glib:bin" ,glib "bin")
736 ("gettext" ,gettext-minimal)
737 ("gobject-introspection" ,gobject-introspection)
738 ("pkg-config" ,pkg-config)))
739 (inputs
740 `(("clutter" ,clutter)
741 ("clutter-gst" ,clutter-gst)
742 ("clutter-gtk" ,clutter-gtk)
743 ("evince" ,evince) ; For file previewing.
744 ("freetype" ,freetype)
745 ("gdk-pixbuf" ,gdk-pixbuf)
746 ("gjs" ,gjs)
747 ("gst-plugins-base" ,gst-plugins-base)
748 ("gstreamer" ,gstreamer)
749 ("gtksourceview" ,gtksourceview-3)
750 ("harfbuzz" ,harfbuzz)
751 ("libepoxy" ,libepoxy)
752 ("libmusicbrainz" ,libmusicbrainz)
753 ("libxml2" ,libxml2)
754 ("neon" ,neon)
755 ("webkitgtk" ,webkitgtk)))
756 (synopsis "File previewer for the GNOME desktop")
757 (description "Sushi is a DBus-activated service that allows applications to
758 preview files on the GNOME desktop.")
759 (home-page "https://gitlab.gnome.org/GNOME/sushi")
760 (license license:gpl2+)))
761
762 (define-public rygel
763 (package
764 (name "rygel")
765 (version "0.38.3")
766 (source (origin
767 (method url-fetch)
768 (uri (string-append "mirror://gnome/sources/" name "/"
769 (version-major+minor version) "/"
770 name "-" version ".tar.xz"))
771 (sha256
772 (base32
773 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
774 (build-system gnu-build-system)
775 (native-inputs
776 `(("gettext" ,gettext-minimal)
777 ("gobject-introspection" ,gobject-introspection)
778 ("gtk-doc" ,gtk-doc)
779 ("pkg-config" ,pkg-config)
780 ("vala" ,vala)))
781 (inputs
782 `(("gdk-pixbuf" ,gdk-pixbuf)
783 ("gssdp" ,gssdp)
784 ("gstreamer" ,gstreamer)
785 ("gst-plugins-base" ,gst-plugins-base)
786 ("gtk+" ,gtk+)
787 ("gupnp" ,gupnp)
788 ("gupnp-av" ,gupnp-av)
789 ("gupnp-dlna" ,gupnp-dlna)
790 ("libgee" ,libgee)
791 ("libmediaart" ,libmediaart)
792 ("libsoup" ,libsoup)
793 ("libxslt" ,libxslt)
794 ("libunistring" ,libunistring)
795 ("tracker" ,tracker)))
796 (synopsis "Share audio, video, and pictures with other devices")
797 (description
798 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
799 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
800 pictures, and to control a media player on your home network.
801
802 Rygel achieves interoperability with other devices by trying to conform to the
803 strict requirements of DLNA and by converting media on-the-fly to formats that
804 client devices can handle.")
805 (home-page "https://wiki.gnome.org/Projects/Rygel")
806 (license (list
807 ;; For logo (data/icons/*).
808 license:cc-by-sa3.0
809 ;; For all others.
810 license:lgpl2.1+))))
811
812 (define-public libnma
813 (package
814 (name "libnma")
815 (version "1.8.28")
816 (source (origin
817 (method url-fetch)
818 (uri (string-append "mirror://gnome/sources/" name "/"
819 (version-major+minor version) "/"
820 name "-" version ".tar.xz"))
821 (sha256
822 (base32
823 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
824 (build-system meson-build-system)
825 (arguments
826 `(#:phases
827 (modify-phases %standard-phases
828 (add-after 'unpack 'patch-docbook-xml
829 (lambda* (#:key inputs #:allow-other-keys)
830 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
831 "/xml/dtd/docbook")))
832 (substitute* "libnma-docs.xml"
833 (("http://.*/docbookx\\.dtd")
834 (string-append xmldoc "/docbookx.dtd")))
835 #t))))))
836 (native-inputs
837 `(("docbook-xml" ,docbook-xml-4.3)
838 ("gettext" ,gettext-minimal)
839 ("glib:bin" ,glib "bin")
840 ("gtk-doc" ,gtk-doc)
841 ("gobject-introspection" ,gobject-introspection)
842 ("pkg-config" ,pkg-config)
843 ("vala" ,vala)))
844 (inputs
845 `(("gcr" ,gcr)
846 ("gtk+" ,gtk+)
847 ("iso-codes" ,iso-codes)
848 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
849 ("network-manager" ,network-manager)))
850 (synopsis "Network Manager's applet library")
851 (description "Libnma is an applet library for Network Manager. It was
852 initially part of network-manager-applet and has now become a separate
853 project.")
854 (home-page "https://gitlab.gnome.org/GNOME/libnma")
855 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
856 ;; "LGPL-2.1+".
857 (license license:gpl2+)))
858
859 (define-public gnome-menus
860 (package
861 (name "gnome-menus")
862 (version "3.32.0")
863 (source (origin
864 (method url-fetch)
865 (uri (string-append "mirror://gnome/sources/gnome-menus/"
866 (version-major+minor version) "/"
867 name "-" version ".tar.xz"))
868 (sha256
869 (base32
870 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
871 (build-system gnu-build-system)
872 (native-inputs
873 `(("gettext" ,gettext-minimal)
874 ("glib" ,glib)
875 ("pkg-config" ,pkg-config)))
876 (synopsis "Menu support for GNOME desktop")
877 (description "GNOME Menus contains the libgnome-menu library, the layout
878 configuration files for the GNOME menu, as well as a simple menu editor.")
879 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
880 (license license:lgpl2.0+)))
881
882 (define-public deja-dup
883 (package
884 (name "deja-dup")
885 (version "40.6")
886 (source (origin
887 (method url-fetch)
888 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
889 version "/deja-dup-" version ".tar.bz2"))
890 (sha256
891 (base32
892 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
893 (build-system meson-build-system)
894 (arguments
895 `(#:glib-or-gtk? #t
896 #:configure-flags
897 (list
898 ;; Otherwise, the RUNPATH will lack the final path component.
899 (string-append "-Dc_link_args=-Wl,-rpath="
900 (assoc-ref %outputs "out") "/lib/deja-dup"))
901 #:phases
902 (modify-phases %standard-phases
903 (add-after 'unpack 'patch-paths
904 (lambda* (#:key inputs #:allow-other-keys)
905 (let ((python (assoc-ref inputs "python")))
906 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
907 "libdeja/tests/scripts/instance-error.test")
908 (("/bin/rm")
909 (which "rm")))
910 (substitute* "libdeja/tests/runner.vala"
911 (("/bin/sh")
912 (which "sh")))
913 (substitute* "libdeja/tests/scripts/instance-error.test"
914 (("`which python3`")
915 (string-append python "/bin/python3"))))))
916 (add-after 'unpack 'patch-libgpg-error
917 (lambda* (#:key inputs #:allow-other-keys)
918 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
919 (substitute* "meson.build"
920 (("(gpgerror_libs = ).*" _ var)
921 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
922 #t))
923 (add-after 'unpack 'skip-gtk-update-icon-cache
924 ;; Don't create 'icon-theme.cache'.
925 (lambda _
926 (substitute* "data/post-install.sh"
927 (("gtk-update-icon-cache") "true"))
928 #t)))))
929 (inputs
930 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
931 ("duplicity" ,duplicity)
932 ("python" ,python)
933 ("python-pygobject" ,python-pygobject)
934 ("gtk+" ,gtk+)
935 ("json-glib" ,json-glib)
936 ("libnotify" ,libnotify)
937 ("libgpg-error" ,libgpg-error)
938 ("libsecret" ,libsecret)
939 ("libsoup" ,libsoup)
940 ("packagekit" ,packagekit)))
941 (native-inputs
942 `(("appstream-glib" ,appstream-glib)
943 ("desktop-file-utils" ,desktop-file-utils)
944 ("gettext" ,gettext-minimal)
945 ("glib" ,glib "bin") ; for glib-compile-schemas.
946 ("gobject-introspection" ,gobject-introspection)
947 ("itstool" ,itstool)
948 ("pkg-config" ,pkg-config)
949 ("vala" ,vala)))
950 (home-page "https://wiki.gnome.org/Apps/DejaDup")
951 (synopsis "Simple backup tool, for regular encrypted backups")
952 (description
953 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
954 uses duplicity as the backend, which supports incremental backups and storage
955 either on a local, or remote machine via a number of methods.")
956 (license license:gpl3+)))
957
958 (define-public gnome-user-docs
959 (package
960 (name "gnome-user-docs")
961 (version "3.32.3")
962 (source
963 (origin
964 (method url-fetch)
965 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
966 (version-major+minor version)
967 "/gnome-user-docs-" version ".tar.xz"))
968 (sha256
969 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
970 (build-system gnu-build-system)
971 (native-inputs
972 `(("gettext" ,gettext-minimal)
973 ("itstool" ,itstool)
974 ("pkg-config" ,pkg-config)
975 ("xmllint" ,libxml2)))
976 (synopsis "User documentation for the GNOME desktop")
977 (description
978 "The GNOME User Documentation explains how to use the GNOME desktop and its
979 components. It covers usage and setup of the core GNOME programs by end-users
980 and system administrators.")
981 (home-page "https://live.gnome.org/DocumentationProject")
982 (license license:cc-by3.0)))
983
984 (define-public gnome-getting-started-docs
985 (package
986 (name "gnome-getting-started-docs")
987 (version "3.32.2")
988 (source
989 (origin
990 (method url-fetch)
991 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
992 (version-major+minor version)
993 "/gnome-getting-started-docs-" version ".tar.xz"))
994 (sha256
995 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
996 (build-system gnu-build-system)
997 (native-inputs
998 `(("gettext" ,gettext-minimal)
999 ("itstool" ,itstool)
1000 ("pkg-config" ,pkg-config)
1001 ("xmllint" ,libxml2)))
1002 (synopsis "Help to get new users started with the GNOME desktop")
1003 (description
1004 "The GNOME Getting Started Documentation contains GNOME's intuitive
1005 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1006
1007 It is normally used together with @command{gnome-initial-setup}, but is also
1008 useful as a tutorial and users' guide for new or less experienced users.")
1009 (home-page "https://live.gnome.org/DocumentationProject")
1010 (license license:cc-by-sa3.0)))
1011
1012 (define-public dia
1013 ;; This version from GNOME's repository includes fixes for compiling with
1014 ;; recent versions of the build tools. The latest activity on the
1015 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1016 ;; fixes since.
1017 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1018 (revision "2"))
1019 (package
1020 (name "dia")
1021 (version (git-version "0.97.3" revision commit))
1022 (source (origin
1023 (method git-fetch)
1024 (uri (git-reference
1025 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1026 (commit commit)))
1027 (file-name (git-file-name name version))
1028 (sha256
1029 (base32
1030 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1031 (build-system meson-build-system)
1032 (inputs
1033 `(("graphene" ,graphene)
1034 ("gtk+" ,gtk+-2)
1035 ("libxml2" ,libxml2)
1036 ("libxslt" ,libxslt)
1037 ("poppler" ,poppler)
1038 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1039 ;; ERROR: Unknown method "dependency" in object.
1040 ("python-2" ,python-2)))
1041 (native-inputs
1042 `(("appstream-glib" ,appstream-glib)
1043 ("docbook-xsl" ,docbook-xsl)
1044 ("glib" ,glib "bin")
1045 ("intltool" ,intltool)
1046 ("pkg-config" ,pkg-config)))
1047 (home-page "https://wiki.gnome.org/Apps/Dia")
1048 (synopsis "Diagram creation for GNOME")
1049 (description "Dia can be used to draw different types of diagrams, and
1050 includes support for UML static structure diagrams (class diagrams), entity
1051 relationship modeling, and network diagrams. The program supports various file
1052 formats like PNG, SVG, PDF and EPS.")
1053 (license license:gpl2+))))
1054
1055 ;; This is the unstable release, but it is required for the current stable
1056 ;; release of gvfs (1.38.1).
1057 (define-public libgdata
1058 (package
1059 (name "libgdata")
1060 (version "0.17.9")
1061 (source (origin
1062 (method url-fetch)
1063 (uri (string-append "mirror://gnome/sources/" name "/"
1064 (version-major+minor version) "/"
1065 name "-" version ".tar.xz"))
1066 (sha256
1067 (base32
1068 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1069 (build-system gnu-build-system)
1070 (arguments
1071 '(#:phases
1072 (modify-phases %standard-phases
1073 (add-before 'check 'disable-failing-tests
1074 (lambda _
1075 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1076 ;; They have been removed in libgdata 0.17.6, so just do the same.
1077 (substitute* "gdata/tests/Makefile"
1078 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1079 #t)))))
1080 (native-inputs
1081 `(("glib:bin" ,glib "bin")
1082 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1083 ("intltool" ,intltool)
1084 ("pkg-config" ,pkg-config)
1085 ("uhttpmock" ,uhttpmock)))
1086 (inputs
1087 `(("cyrus-sasl" ,cyrus-sasl)
1088 ("glib-networking" ,glib-networking)))
1089 (propagated-inputs
1090 `(("gcr" ,gcr)
1091 ("glib" ,glib)
1092 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1093 ("json-glib" ,json-glib)
1094 ("liboauth" ,liboauth)
1095 ("libsoup" ,libsoup)
1096 ("libxml2" ,libxml2)))
1097 (home-page "https://wiki.gnome.org/Projects/libgdata")
1098 (synopsis "Library for accessing online service APIs")
1099 (description
1100 "libgdata is a GLib-based library for accessing online service APIs using
1101 the GData protocol — most notably, Google's services. It provides APIs to
1102 access the common Google services, and has full asynchronous support.")
1103 (license license:lgpl2.1+)))
1104
1105 (define-public libgxps
1106 (package
1107 (name "libgxps")
1108 (version "0.3.1")
1109 (source (origin
1110 (method url-fetch)
1111 (uri (string-append "mirror://gnome/sources/" name "/"
1112 (version-major+minor version) "/"
1113 name "-" version ".tar.xz"))
1114 (sha256
1115 (base32
1116 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1117 (build-system meson-build-system)
1118 (native-inputs
1119 `(("gobject-introspection" ,gobject-introspection)
1120 ("pkg-config" ,pkg-config)))
1121 (inputs
1122 `(("gtk+" ,gtk+)
1123 ("libjpeg" ,libjpeg-turbo)
1124 ("lcms" ,lcms)
1125 ("libtiff" ,libtiff)))
1126 (propagated-inputs
1127 ;; In Requires of libgxps.pc.
1128 `(("cairo" ,cairo)
1129 ("glib" ,glib)
1130 ("libarchive" ,libarchive)))
1131 (home-page "https://wiki.gnome.org/Projects/libgxps")
1132 (synopsis "GObject-based library for handling and rendering XPS documents")
1133 (description
1134 "libgxps is a GObject-based library for handling and rendering XPS
1135 documents. This package also contains binaries that can convert XPS documents
1136 to other formats.")
1137 (license license:lgpl2.1+)))
1138
1139 (define-public gnome-characters
1140 (package
1141 (name "gnome-characters")
1142 (version "3.30.0")
1143 (source
1144 (origin
1145 (method url-fetch)
1146 (uri (string-append "mirror://gnome/sources/"
1147 "gnome-characters/" (version-major+minor version)
1148 "/gnome-characters-" version ".tar.xz"))
1149 (sha256
1150 (base32
1151 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1152 (build-system meson-build-system)
1153 (arguments
1154 `(#:glib-or-gtk? #t
1155 #:phases (modify-phases %standard-phases
1156 (add-after 'install 'wrap
1157 (lambda* (#:key outputs #:allow-other-keys)
1158 ;; GNOME Characters needs Typelib files from GTK and
1159 ;; gnome-desktop.
1160 (wrap-program (string-append (assoc-ref outputs "out")
1161 "/bin/gnome-characters")
1162 `("GI_TYPELIB_PATH" ":" prefix
1163 (,(getenv "GI_TYPELIB_PATH"))))
1164 #t)))))
1165 (native-inputs
1166 `(("gettext" ,gettext-minimal)
1167 ("glib:bin" ,glib "bin")
1168 ("gtk+:bin" ,gtk+ "bin")
1169 ("pkg-config" ,pkg-config)
1170 ("python" ,python-minimal)))
1171 (inputs
1172 `(("gjs" ,gjs)
1173 ("gtk+" ,gtk+)
1174 ("libunistring" ,libunistring)
1175 ("gnome-desktop" ,gnome-desktop)))
1176 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1177 (synopsis "Find and insert unusual characters")
1178 (description "Characters is a simple utility application to find
1179 and insert unusual characters. It allows you to quickly find the
1180 character you are looking for by searching for keywords.")
1181 (license license:bsd-3)))
1182
1183 (define-public gnome-common
1184 (package
1185 (name "gnome-common")
1186 (version "3.18.0")
1187 (source
1188 (origin
1189 (method url-fetch)
1190 (uri (string-append "mirror://gnome/sources/" name "/"
1191 (version-major+minor version) "/"
1192 name "-" version ".tar.xz"))
1193 (sha256
1194 (base32
1195 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1196 (build-system gnu-build-system)
1197 (home-page "https://www.gnome.org/")
1198 (synopsis "Bootstrap GNOME modules built from Git")
1199 (description "gnome-common contains various files needed to bootstrap
1200 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1201 can be used to configure a source directory checked out from Git and some
1202 commonly used macros.")
1203 (license license:gpl2+)))
1204
1205 (define-public gnome-contacts
1206 (package
1207 (name "gnome-contacts")
1208 (version "3.34")
1209 (source (origin
1210 (method url-fetch)
1211 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1212 (version-major+minor version) "/"
1213 name "-" version ".tar.xz"))
1214 (sha256
1215 (base32
1216 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1217 (build-system meson-build-system)
1218 (arguments
1219 `(#:configure-flags '("-Dcheese=false")
1220 #:phases
1221 (modify-phases %standard-phases
1222 (add-after 'unpack 'generate-vapis
1223 (lambda* (#:key inputs #:allow-other-keys)
1224 ;; To generate goa's missing .vapi file
1225 (define goa
1226 (assoc-ref inputs "gnome-online-accounts:lib"))
1227
1228 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1229 "--library=goa-1.0"
1230 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1231 #t))
1232 (add-after 'unpack 'skip-gtk-update-icon-cache
1233 ;; Don't create 'icon-theme.cache'.
1234 (lambda _
1235 (substitute* "build-aux/meson_post_install.py"
1236 (("gtk-update-icon-cache") "true"))
1237 #t)))))
1238 (native-inputs
1239 `(("glib:bin" ,glib "bin")
1240 ("pkg-config" ,pkg-config)))
1241 (inputs
1242 `(("docbook-xml" ,docbook-xml)
1243 ("dockbook-xsl" ,docbook-xsl)
1244 ("evolution-data-server" ,evolution-data-server)
1245 ("gettext" ,gettext-minimal)
1246 ("gnome-desktop" ,gnome-desktop)
1247 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1248 ("gobject-introspection" ,gobject-introspection)
1249 ("gst-plugins-base" ,gst-plugins-base)
1250 ("gtk+" ,gtk+)
1251 ("libgee" ,libgee)
1252 ("libxslt" ,libxslt)
1253 ("telepathy-glib" ,telepathy-glib)
1254 ("vala" ,vala)))
1255 (propagated-inputs
1256 `(("folks", folks)
1257 ("telepathy-mission-control" ,telepathy-mission-control)))
1258 (synopsis "GNOME's integrated address book")
1259 (description
1260 "GNOME Contacts organizes your contact information from online and
1261 offline sources, providing a centralized place for managing your contacts.")
1262 (home-page "https://wiki.gnome.org/Apps/Contacts")
1263 (license license:gpl2+)))
1264
1265 (define-public gnome-desktop
1266 (package
1267 (name "gnome-desktop")
1268 (version "3.34.2")
1269 (source
1270 (origin
1271 (method url-fetch)
1272 (uri (string-append "mirror://gnome/sources/" name "/"
1273 (version-major+minor version) "/"
1274 name "-" version ".tar.xz"))
1275 (sha256
1276 (base32
1277 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
1278 (build-system meson-build-system)
1279 (arguments
1280 '(#:phases
1281 (modify-phases %standard-phases
1282 (add-before 'configure 'patch-path
1283 (lambda* (#:key inputs #:allow-other-keys)
1284 (let ((libc (assoc-ref inputs "libc")))
1285 (substitute* "libgnome-desktop/gnome-languages.c"
1286 (("\"locale\"")
1287 (string-append "\"" libc "/bin/locale\"")))
1288 #t)))
1289 (add-before 'configure 'patch-bubblewrap
1290 (lambda* (#:key inputs #:allow-other-keys)
1291 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
1292 (("\"bwrap\",")
1293 (string-append "\"" (which "bwrap") "\","))
1294 (("\"--ro-bind\", \"/usr\", \"/usr\",")
1295 (string-append "\"--ro-bind\", \""
1296 (%store-directory)
1297 "\", \""
1298 (%store-directory)
1299 "\","))
1300 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
1301 #t))
1302 (add-before 'check 'pre-check
1303 (lambda* (#:key inputs #:allow-other-keys)
1304 ;; Tests require a running X server and locales.
1305 (system "Xvfb :1 &")
1306 (setenv "DISPLAY" ":1")
1307 (setenv "GUIX_LOCPATH"
1308 (string-append (assoc-ref inputs "glibc-locales")
1309 "/lib/locale"))
1310 #t)))))
1311 (native-inputs
1312 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1313 ("glibc-locales" ,glibc-locales) ; for tests
1314 ("gobject-introspection" ,gobject-introspection)
1315 ("itstool" ,itstool)
1316 ("intltool" ,intltool)
1317 ("pkg-config" ,pkg-config)
1318 ("xmllint" ,libxml2)
1319 ("xorg-server" ,xorg-server-for-tests)))
1320 (propagated-inputs
1321 ;; Required by gnome-desktop-3.0.pc.
1322 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1323 ("gtk+" ,gtk+)
1324 ("iso-codes" ,iso-codes)
1325 ("libseccomp" ,libseccomp)
1326 ("libx11" ,libx11)
1327 ("xkeyboard-config" ,xkeyboard-config)))
1328 (inputs
1329 `(("gdk-pixbuf" ,gdk-pixbuf)
1330 ("glib" ,glib)
1331 ("bubblewrap" ,bubblewrap)
1332 ("libxext" ,libxext)
1333 ("libxkbfile" ,libxkbfile)
1334 ("libxrandr" ,libxrandr)))
1335 (home-page "https://www.gnome.org/")
1336 (synopsis
1337 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1338 (description
1339 "The libgnome-desktop library provides API shared by several applications
1340 on the desktop, but that cannot live in the platform for various reasons.
1341 There is no API or ABI guarantee, although we are doing our best to provide
1342 stability. Documentation for the API is available with gtk-doc.
1343
1344 The gnome-about program helps find which version of GNOME is installed.")
1345 ; Some bits under the LGPL.
1346 (license license:gpl2+)))
1347
1348 (define-public gnome-doc-utils
1349 (package
1350 (name "gnome-doc-utils")
1351 (version "0.20.10")
1352 (source
1353 (origin
1354 (method url-fetch)
1355 (uri (string-append "mirror://gnome/sources/" name "/"
1356 (version-major+minor version) "/"
1357 name "-" version ".tar.xz"))
1358 (sha256
1359 (base32
1360 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1361 (build-system gnu-build-system)
1362 (native-inputs
1363 `(("intltool" ,intltool)
1364 ("docbook-xml" ,docbook-xml-4.4)
1365 ("python2-libxml2" ,python2-libxml2)
1366 ("libxml2" ,libxml2)
1367 ("libxslt" ,libxslt)
1368 ("pkg-config" ,pkg-config)
1369 ("python-2" ,python-2)))
1370 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1371 (synopsis
1372 "Documentation utilities for the Gnome project")
1373 (description
1374 "Gnome-doc-utils is a collection of documentation utilities for the
1375 Gnome project. It includes xml2po tool which makes it easier to translate
1376 and keep up to date translations of documentation.")
1377 (license license:gpl2+))) ; xslt under lgpl
1378
1379 (define-public gnome-disk-utility
1380 (package
1381 (name "gnome-disk-utility")
1382 (version "3.34.0")
1383 (source (origin
1384 (method url-fetch)
1385 (uri (string-append "mirror://gnome/sources/" name "/"
1386 (version-major+minor version) "/"
1387 name "-" version ".tar.xz"))
1388 (sha256
1389 (base32
1390 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
1391 (build-system meson-build-system)
1392 (arguments
1393 '(#:configure-flags '("-Dlogind=libelogind")
1394 #:phases
1395 (modify-phases %standard-phases
1396 (add-after 'unpack 'skip-gtk-update-icon-cache
1397 ;; Don't create 'icon-theme.cache'.
1398 (lambda _
1399 (substitute* "meson_post_install.py"
1400 (("gtk-update-icon-cache") "true"))
1401 #t)))))
1402 (native-inputs
1403 `(("glib:bin" ,glib "bin")
1404 ("intltool" ,intltool)
1405 ("pkg-config" ,pkg-config)
1406 ("docbook-xml" ,docbook-xml)
1407 ("docbook-xsl" ,docbook-xsl)
1408 ("libxml2" ,libxml2)
1409 ("libxslt" ,libxslt)))
1410 (inputs
1411 `(("elogind" ,elogind)
1412 ("glib" ,glib)
1413 ("appstream-glib" ,appstream-glib)
1414 ("gnome-settings-daemon" ,gnome-settings-daemon)
1415 ("gtk+" ,gtk+)
1416 ("libcanberra" ,libcanberra)
1417 ("libdvdread" ,libdvdread)
1418 ("libnotify" ,libnotify)
1419 ("libpwquality" ,libpwquality)
1420 ("libsecret" ,libsecret)
1421 ("udisks" ,udisks)))
1422 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1423 (synopsis "Disk management utility for GNOME")
1424 (description "Disk management utility for GNOME.")
1425 (license license:gpl2+)))
1426
1427 (define-public gnome-font-viewer
1428 (package
1429 (name "gnome-font-viewer")
1430 (version "3.30.0")
1431 (source (origin
1432 (method url-fetch)
1433 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1434 (version-major+minor version)
1435 "/gnome-font-viewer-" version ".tar.xz"))
1436 (sha256
1437 (base32
1438 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1439 (build-system meson-build-system)
1440 (arguments
1441 '(#:phases
1442 (modify-phases %standard-phases
1443 (add-after 'unpack 'patch-post-install-script
1444 (lambda _
1445 (substitute* "meson-postinstall.sh"
1446 (("update-desktop-database") (which "true")))
1447 #t)))))
1448 (native-inputs
1449 `(("gettext" ,gettext-minimal)
1450 ("glib:bin" ,glib "bin")
1451 ("pkg-config" ,pkg-config)))
1452 (inputs
1453 `(("glib" ,glib)
1454 ("gnome-desktop" ,gnome-desktop)
1455 ("gtk+" ,gtk+)))
1456 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1457 (synopsis "GNOME Fonts")
1458 (description "Application to show you the fonts installed on your computer
1459 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1460 the font would look under various sizes.")
1461 (license license:gpl2+)))
1462
1463 (define-public gcr
1464 (package
1465 (name "gcr")
1466 (version "3.34.0")
1467 (source (origin
1468 (method url-fetch)
1469 (uri (string-append "mirror://gnome/sources/" name "/"
1470 (version-major+minor version) "/"
1471 name "-" version ".tar.xz"))
1472 (sha256
1473 (base32
1474 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
1475 (build-system gnu-build-system)
1476 (arguments
1477 '(#:phases
1478 (modify-phases %standard-phases
1479 ;; These fail because /var/lib/dbus/machine-id is not present in the
1480 ;; build environment.
1481 (add-after 'unpack 'disable-failing-tests
1482 (lambda _
1483 (substitute* "Makefile.in"
1484 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1485 ""))
1486 #t))
1487 (add-before 'check 'pre-check
1488 (lambda _
1489 ;; Some tests expect to write to $HOME.
1490 (setenv "HOME" "/tmp")
1491 #t)))))
1492 (inputs
1493 `(("dbus" ,dbus)
1494 ("gnupg" ,gnupg) ;called as a child process during tests
1495 ("libgcrypt" ,libgcrypt)))
1496 (native-inputs
1497 `(("python" ,python-wrapper) ;for tests
1498 ("pkg-config" ,pkg-config)
1499 ("gettext" ,gettext-minimal)
1500 ("glib" ,glib "bin")
1501 ("gobject-introspection" ,gobject-introspection)
1502 ("libxml2" ,libxml2)
1503 ("vala" ,vala)
1504 ("xsltproc" ,libxslt)))
1505 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1506 (propagated-inputs
1507 `(("p11-kit" ,p11-kit)
1508 ("glib" ,glib)
1509 ("gtk+" ,gtk+)))
1510 (home-page "https://www.gnome.org")
1511 (synopsis "Libraries for displaying certificates and accessing key stores")
1512 (description
1513 "The GCR package contains libraries used for displaying certificates and
1514 accessing key stores. It also provides the viewer for crypto files on the
1515 GNOME Desktop.")
1516 (license license:lgpl2.1+)))
1517
1518 (define-public gdl
1519 (package
1520 (name "gdl")
1521 (version "3.34.0")
1522 (source (origin
1523 (method git-fetch)
1524 (uri (git-reference
1525 (url "https://gitlab.gnome.org/GNOME/gdl.git")
1526 (commit (string-append "GDL_" (string-map (match-lambda
1527 (#\. #\_)
1528 (c c))
1529 version)))))
1530 (file-name (git-file-name name version))
1531 (sha256
1532 (base32
1533 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
1534 (build-system gnu-build-system)
1535 (native-inputs
1536 `(("autoconf" ,autoconf)
1537 ("automake" ,automake)
1538 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1539 ("gnome-common" ,gnome-common)
1540 ("gtk-doc" ,gtk-doc)
1541 ("intltool" ,intltool)
1542 ("pkg-config" ,pkg-config)
1543 ("libtool" ,libtool)
1544 ("which" ,which)))
1545 (inputs
1546 `(("libxml2" ,libxml2)))
1547 (propagated-inputs
1548 ;; The gdl-3.0.pc file 'Requires' GTK+.
1549 `(("gtk+" ,gtk+)))
1550 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
1551 (synopsis "GNOME docking library")
1552 (description "This library provides docking features for gtk+.")
1553 (license license:lgpl2.1+)))
1554
1555 ;;; A minimal variant used to break a cycle with Inkscape.
1556 (define-public gdl-minimal
1557 (package
1558 (inherit gdl)
1559 (name "gdl-minimal")
1560 (arguments
1561 '(#:phases
1562 (modify-phases %standard-phases
1563 (add-after 'unpack 'disable-doc-generation
1564 ;; XXX: There is no easy way to disable generating the
1565 ;; documentation.
1566 (lambda _
1567 (substitute* "configure.in"
1568 (("GTK_DOC_CHECK.*") "")
1569 (("docs/.*") ""))
1570 (substitute* "Makefile.am"
1571 (("gdl docs po") "gdl po"))
1572 #t)))))
1573 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
1574
1575 (define-public libgnome-keyring
1576 (package
1577 (name "libgnome-keyring")
1578 (version "3.12.0")
1579 (source (origin
1580 (method url-fetch)
1581 (uri (string-append "mirror://gnome/sources/" name "/"
1582 (version-major+minor version) "/"
1583 name "-" version ".tar.xz"))
1584 (sha256
1585 (base32
1586 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1587 (build-system gnu-build-system)
1588 (inputs
1589 `(("libgcrypt" ,libgcrypt)
1590 ("dbus" ,dbus)))
1591 (native-inputs
1592 `(("pkg-config" ,pkg-config)
1593 ("glib" ,glib "bin")
1594 ("intltool" ,intltool)))
1595 (propagated-inputs
1596 ;; Referred to in .h files and .pc.
1597 `(("glib" ,glib)))
1598 (home-page "https://www.gnome.org")
1599 (synopsis "Accessing passwords from the GNOME keyring")
1600 (description
1601 "Client library to access passwords from the GNOME keyring.")
1602
1603 ;; Though a couple of files are LGPLv2.1+.
1604 (license license:lgpl2.0+)))
1605
1606 (define-public gnome-keyring
1607 (package
1608 (name "gnome-keyring")
1609 (version "3.34.0")
1610 (source (origin
1611 (method url-fetch)
1612 (uri (string-append "mirror://gnome/sources/" name "/"
1613 (version-major+minor version) "/"
1614 name "-" version ".tar.xz"))
1615 (sha256
1616 (base32
1617 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
1618 (build-system gnu-build-system)
1619 (arguments
1620 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1621 ;not exist
1622 #:configure-flags
1623 (list
1624 (string-append "--with-pkcs11-config="
1625 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1626 (string-append "--with-pkcs11-modules="
1627 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1628 #:phases
1629 (modify-phases %standard-phases
1630 (add-after 'unpack 'fix-/bin/sh-reference
1631 (lambda _
1632 (substitute* "po/Makefile.in.in"
1633 (("/bin/sh") (which "sh")))
1634 #t))
1635 (add-after 'unpack 'fix-docbook
1636 (lambda* (#:key inputs #:allow-other-keys)
1637 (substitute* "docs/Makefile.am"
1638 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1639 (string-append (assoc-ref inputs "docbook-xsl")
1640 "/xml/xsl/docbook-xsl-"
1641 ,(package-version docbook-xsl)
1642 "/manpages/docbook.xsl")))
1643 (setenv "XML_CATALOG_FILES"
1644 (string-append (assoc-ref inputs "docbook-xml")
1645 "/xml/dtd/docbook/catalog.xml"))
1646 ;; Rerun the whole thing to avoid version mismatch ("This is
1647 ;; Automake 1.15.1, but the definition used by this
1648 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1649 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1650 (invoke "autoconf")
1651 (invoke "aclocal")
1652 (invoke "automake" "-ac"))))))
1653 (inputs
1654 `(("libgcrypt" ,libgcrypt)
1655 ("linux-pam" ,linux-pam)
1656 ("openssh" ,openssh)
1657 ("dbus" ,dbus)
1658 ("gcr" ,gcr)))
1659 (native-inputs
1660 `(("pkg-config" ,pkg-config)
1661 ("glib" ,glib "bin")
1662 ("glib" ,glib) ; for m4 macros
1663 ("python" ,python-2) ;for tests
1664 ("intltool" ,intltool)
1665 ("autoconf" ,autoconf)
1666 ("automake" ,automake)
1667 ("libxslt" ,libxslt) ;for documentation
1668 ("docbook-xml" ,docbook-xml-4.2)
1669 ("docbook-xsl" ,docbook-xsl)))
1670 (home-page "https://www.gnome.org")
1671 (synopsis "Daemon to store passwords and encryption keys")
1672 (description
1673 "gnome-keyring is a program that keeps passwords and other secrets for
1674 users. It is run as a daemon in the session, similar to ssh-agent, and other
1675 applications locate it via an environment variable or D-Bus.
1676
1677 The program can manage several keyrings, each with its own master password,
1678 and there is also a session keyring which is never stored to disk, but
1679 forgotten when the session ends.")
1680 (license license:lgpl2.1+)))
1681
1682 (define-public evince
1683 (package
1684 (name "evince")
1685 (version "3.36.5")
1686 (source (origin
1687 (method url-fetch)
1688 (uri (string-append "mirror://gnome/sources/evince/"
1689 (version-major+minor version) "/"
1690 "evince-" version ".tar.xz"))
1691 (sha256
1692 (base32
1693 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
1694 (build-system glib-or-gtk-build-system)
1695 (arguments
1696 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1697 #:phases
1698 (modify-phases %standard-phases
1699 (add-before 'install 'skip-gtk-update-icon-cache
1700 ;; Don't create 'icon-theme.cache'.
1701 (lambda _
1702 (substitute* "data/Makefile"
1703 (("gtk-update-icon-cache") "true"))
1704 #t)))))
1705 (inputs
1706 `(("libarchive" ,libarchive)
1707 ("libgxps" ,libgxps)
1708 ("libspectre" ,libspectre)
1709 ("djvulibre" ,djvulibre)
1710 ("ghostscript" ,ghostscript)
1711 ("poppler" ,poppler)
1712 ("libtiff" ,libtiff)
1713 ;; TODO:
1714 ;; Build libkpathsea as a shared library for DVI support.
1715 ;; ("libkpathsea" ,texlive-bin)
1716 ("gnome-desktop" ,gnome-desktop)
1717 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1718 ("gspell" ,gspell)
1719 ("libgnome-keyring" ,libgnome-keyring)
1720 ("adwaita-icon-theme" ,adwaita-icon-theme)
1721 ("gdk-pixbuf" ,gdk-pixbuf)
1722 ("atk" ,atk)
1723 ("pango" ,pango)
1724 ("gtk+" ,gtk+)
1725 ("glib" ,glib)
1726 ("libxml2" ,libxml2)
1727 ("libsm" ,libsm)
1728 ("libice" ,libice)
1729 ("shared-mime-info" ,shared-mime-info)
1730 ("dconf" ,dconf)
1731 ("libcanberra" ,libcanberra)
1732 ("libsecret" ,libsecret)
1733
1734 ;; For tests.
1735 ("dogtail" ,python2-dogtail)))
1736 (native-inputs
1737 `(("itstool" ,itstool)
1738 ("intltool" ,intltool)
1739 ("glib" ,glib "bin")
1740 ("gobject-introspection" ,gobject-introspection)
1741 ("pkg-config" ,pkg-config)
1742 ("xmllint" ,libxml2)))
1743 (home-page "https://www.gnome.org/projects/evince/")
1744 (synopsis "GNOME's document viewer")
1745 (description
1746 "Evince is a document viewer for multiple document formats. It
1747 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1748 of Evince is to replace the multiple document viewers that exist
1749 on the GNOME Desktop with a single simple application.")
1750 (license license:gpl2+)))
1751
1752 (define-public gsettings-desktop-schemas
1753 (package
1754 (name "gsettings-desktop-schemas")
1755 (version "3.34.0")
1756 (source
1757 (origin
1758 (method url-fetch)
1759 (uri (string-append "mirror://gnome/sources/" name "/"
1760 (version-major+minor version) "/"
1761 name "-" version ".tar.xz"))
1762 (sha256
1763 (base32
1764 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
1765 (build-system meson-build-system)
1766 (arguments
1767 '(#:phases (modify-phases %standard-phases
1768 (add-after 'unpack 'patch-schemas
1769 (lambda* (#:key inputs #:allow-other-keys)
1770 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1771 (substitute* (find-files "schemas"
1772 "\\.gschema\\.xml\\.in$")
1773 ;; Provide the correct file name of the default GNOME
1774 ;; background, 'adwaita-timed.xml'.
1775 (("@datadir@/backgrounds/gnome")
1776 (string-append theme "/share/backgrounds/gnome"))
1777 ;; Do not reference fonts, that may not exist.
1778 (("'Source Code Pro 10'") "'Monospace 11'"))
1779 #t))))))
1780 (inputs
1781 `(("glib" ,glib)
1782 ("gnome-backgrounds" ,gnome-backgrounds)))
1783 (native-inputs
1784 `(("intltool" ,intltool)
1785 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1786 ("gobject-introspection" ,gobject-introspection)
1787 ("pkg-config" ,pkg-config)))
1788 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1789 (synopsis
1790 "GNOME settings for various desktop components")
1791 (description
1792 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1793 for settings shared by various components of the GNOME desktop.")
1794 (license license:lgpl2.1+)))
1795
1796 (define-public icon-naming-utils
1797 (package
1798 (name "icon-naming-utils")
1799 (version "0.8.90")
1800 (source
1801 (origin
1802 (method url-fetch)
1803 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1804 version ".tar.bz2"))
1805 (sha256
1806 (base32
1807 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1808 (build-system gnu-build-system)
1809 (inputs
1810 `(("perl" ,perl)
1811 ("perl-xml-simple" ,perl-xml-simple)))
1812 (arguments
1813 '(#:phases
1814 (modify-phases %standard-phases
1815 (add-after 'install 'set-load-paths
1816 ;; Tell 'icon-name-mapping' where XML::Simple is.
1817 (lambda* (#:key outputs #:allow-other-keys)
1818 (let* ((out (assoc-ref outputs "out"))
1819 (prog (string-append out "/libexec/icon-name-mapping")))
1820 (wrap-program
1821 prog
1822 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1823 #t)))))
1824 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1825 (synopsis
1826 "Utility to implement the Freedesktop Icon Naming Specification")
1827 (description
1828 "To help with the transition to the Freedesktop Icon Naming
1829 Specification, the icon naming utility maps the icon names used by the
1830 GNOME and KDE desktops to the icon names proposed in the specification.")
1831 (license license:lgpl2.1+)))
1832
1833 (define-public gnome-icon-theme
1834 (package
1835 (name "gnome-icon-theme")
1836 (version "3.12.0")
1837 (source
1838 (origin
1839 (method url-fetch)
1840 (uri (string-append "mirror://gnome/sources/" name "/"
1841 (version-major+minor version) "/"
1842 name "-" version ".tar.xz"))
1843 (sha256
1844 (base32
1845 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1846 (build-system gnu-build-system)
1847 (arguments
1848 '(#:configure-flags
1849 ;; Don't create 'icon-theme.cache'.
1850 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1851 (true (string-append coreutils "/bin/true")))
1852 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1853 (native-inputs
1854 `(("icon-naming-utils" ,icon-naming-utils)
1855 ("intltool" ,intltool)
1856 ("pkg-config" ,pkg-config)))
1857 (home-page "https://wiki.gnome.org/Personalization")
1858 (synopsis "GNOME icon theme")
1859 (description "Icons for the GNOME desktop.")
1860 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1861
1862 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1863 (define-public adwaita-icon-theme
1864 (package (inherit gnome-icon-theme)
1865 (name "adwaita-icon-theme")
1866 (version "3.34.3")
1867 (source (origin
1868 (method url-fetch)
1869 (uri (string-append "mirror://gnome/sources/" name "/"
1870 (version-major+minor version) "/"
1871 name "-" version ".tar.xz"))
1872 (sha256
1873 (base32
1874 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
1875 (native-inputs
1876 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1877
1878 (define-public tango-icon-theme
1879 (package
1880 (name "tango-icon-theme")
1881 (version "0.8.90")
1882 (source (origin
1883 (method url-fetch)
1884 (uri (string-append "http://tango.freedesktop.org/releases/"
1885 "tango-icon-theme-" version ".tar.bz2"))
1886 (sha256
1887 (base32
1888 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1889 (build-system gnu-build-system)
1890 (native-inputs
1891 `(("icon-naming-utils" ,icon-naming-utils)
1892 ("intltool" ,intltool)
1893 ("imagemagick" ,imagemagick)
1894 ("pkg-config" ,pkg-config)))
1895 (home-page "http://tango-project.org/")
1896 (synopsis "Tango icon theme")
1897 (description "This is an icon theme that follows the Tango visual
1898 guidelines.")
1899 (license license:public-domain)))
1900
1901 (define-public shared-mime-info
1902 (package
1903 (name "shared-mime-info")
1904 (version "1.15")
1905 (source (origin
1906 (method url-fetch)
1907 (uri (string-append
1908 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1909 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1910 ".tar.xz"))
1911 (sha256
1912 (base32
1913 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
1914 (build-system gnu-build-system)
1915 (arguments
1916 ;; The build system appears not to be parallel-safe.
1917 '(#:parallel-build? #f))
1918 (inputs
1919 `(("glib" ,glib)
1920 ("libxml2" ,libxml2)))
1921 (native-inputs
1922 `(("gettext" ,gettext-minimal)
1923 ("itstool" ,itstool)
1924 ("pkg-config" ,pkg-config)))
1925 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1926 (synopsis "Database of common MIME types")
1927 (description
1928 "The shared-mime-info package contains the core database of common types
1929 and the update-mime-database command used to extend it. It requires glib2 to
1930 be installed for building the update command. Additionally, it uses intltool
1931 for translations, though this is only a dependency for the maintainers. This
1932 database is translated at Transifex.")
1933 (license license:gpl2+)))
1934
1935 (define-public system-config-printer
1936 (package
1937 (name "system-config-printer")
1938 (version "1.5.12")
1939 (source
1940 (origin
1941 (method url-fetch)
1942 (uri (string-append
1943 "https://github.com/OpenPrinting/system-config-printer/releases/"
1944 "download/" version
1945 "/system-config-printer-" version ".tar.xz"))
1946 (sha256
1947 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1948 (build-system glib-or-gtk-build-system)
1949 (arguments
1950 `(#:imported-modules ((guix build python-build-system)
1951 ,@%glib-or-gtk-build-system-modules)
1952 #:phases
1953 (modify-phases %standard-phases
1954 (add-after 'unpack 'patch-Makefile.am
1955 (lambda _
1956 ;; The Makefile generates some scripts, so set a valid shebang
1957 (substitute* "Makefile.am"
1958 (("/bin/bash") (which "bash")))
1959 (delete-file "configure")
1960 #t))
1961 (add-after 'unpack 'patch-docbook-xml
1962 (lambda* (#:key inputs #:allow-other-keys)
1963 ;; Modify the man XML otherwise xmlto tries to access the network
1964 (substitute* "man/system-config-printer.xml"
1965 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1966 (string-append (assoc-ref inputs "docbook-xml")
1967 "/xml/dtd/docbook/")))
1968 #t))
1969 (add-after 'install 'wrap-for-python
1970 (@@ (guix build python-build-system) wrap))
1971 (add-after 'install 'wrap
1972 (lambda* (#:key outputs #:allow-other-keys)
1973 (let ((out (assoc-ref outputs "out"))
1974 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1975 (for-each
1976 (lambda (program)
1977 (wrap-program program
1978 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1979 (map (lambda (name)
1980 (string-append out "/bin/" name))
1981 '("system-config-printer"
1982 "system-config-printer-applet"
1983 "install-printerdriver"
1984 "scp-dbus-service"))))
1985 #t)))))
1986 (inputs
1987 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1988 ("gobject-introspection" ,gobject-introspection)
1989 ("python" ,python)
1990 ("cups" ,cups)
1991 ("python-dbus" ,python-dbus)
1992 ("python-pygobject" ,python-pygobject)
1993 ("python-pycups" ,python-pycups)
1994 ("python-requests" ,python-requests)
1995 ("python-pycairo" ,python-pycairo)
1996 ("libnotify" ,libnotify)
1997 ("packagekit" ,packagekit)))
1998 (native-inputs
1999 `(("pkg-config" ,pkg-config)
2000 ("desktop-file-utils" ,desktop-file-utils)
2001 ("glib" ,glib)
2002 ("autoconf" ,autoconf)
2003 ("automake" ,automake)
2004 ("intltool" ,intltool)
2005 ("xmlto" ,xmlto)
2006 ("docbook-xml" ,docbook-xml-4.1.2)
2007 ("docbook-xsl" ,docbook-xsl)
2008 ("libxml2" ,libxml2)))
2009 (home-page "https://github.com/zdohnal/system-config-printer")
2010 (synopsis "CUPS administration tool")
2011 (description
2012 "system-config-printer is a CUPS administration tool. It's written in
2013 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2014 configuring CUPS.")
2015 (license license:gpl2+)))
2016
2017 (define-public hicolor-icon-theme
2018 (package
2019 (name "hicolor-icon-theme")
2020 (version "0.17")
2021 (source
2022 (origin
2023 (method url-fetch)
2024 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2025 "hicolor-icon-theme-" version ".tar.xz"))
2026 (sha256
2027 (base32
2028 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2029 (build-system gnu-build-system)
2030 (arguments
2031 `(#:tests? #f)) ; no check target
2032 (home-page "https://icon-theme.freedesktop.org/releases/")
2033 (synopsis
2034 "Freedesktop icon theme")
2035 (description
2036 "Freedesktop icon theme.")
2037 (license license:gpl2)))
2038
2039 (define-public libnotify
2040 (package
2041 (name "libnotify")
2042 (version "0.7.7")
2043 (source
2044 (origin
2045 (method url-fetch)
2046 (uri (string-append "mirror://gnome/sources/" name "/"
2047 (version-major+minor version) "/"
2048 name "-" version ".tar.xz"))
2049 (sha256
2050 (base32
2051 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2052 (build-system gnu-build-system)
2053 (arguments
2054 `(#:configure-flags '("--disable-static")))
2055 (propagated-inputs
2056 `(;; In Requires of libnotify.pc.
2057 ("gdk-pixbuf" ,gdk-pixbuf)
2058 ("glib" ,glib)))
2059 (inputs
2060 `(("gtk+" ,gtk+)
2061 ("libpng" ,libpng)))
2062 (native-inputs
2063 `(("pkg-config" ,pkg-config)
2064 ("glib" ,glib "bin")
2065 ("gobject-introspection" ,gobject-introspection)))
2066 (home-page "https://developer-next.gnome.org/libnotify/")
2067 (synopsis
2068 "GNOME desktop notification library")
2069 (description
2070 "Libnotify is a library that sends desktop notifications to a
2071 notification daemon, as defined in the Desktop Notifications spec. These
2072 notifications can be used to inform the user about an event or display
2073 some form of information without getting in the user's way.")
2074 (license license:lgpl2.1+)))
2075
2076 (define-public libpeas
2077 (package
2078 (name "libpeas")
2079 (version "1.24.1")
2080 (source
2081 (origin
2082 (method url-fetch)
2083 (uri (string-append "mirror://gnome/sources/" name "/"
2084 (version-major+minor version) "/"
2085 name "-" version ".tar.xz"))
2086 (sha256
2087 (base32
2088 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2089 (build-system meson-build-system)
2090 (arguments
2091 '(#:phases
2092 (modify-phases %standard-phases
2093 (add-before 'check 'start-xserver
2094 (lambda* (#:key inputs #:allow-other-keys)
2095 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2096 (disp ":1"))
2097 (setenv "DISPLAY" disp)
2098 ;; Tests require a running X server.
2099 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2100 #t))))))
2101 (inputs
2102 `(("gtk+" ,gtk+)
2103 ("glade" ,glade3)
2104 ("python" ,python)
2105 ("python-pygobject" ,python-pygobject)))
2106 (native-inputs
2107 `(("pkg-config" ,pkg-config)
2108 ("gettext" ,gettext-minimal)
2109 ("glib:bin" ,glib "bin")
2110 ("gobject-introspection" ,gobject-introspection)
2111 ("xorg-server" ,xorg-server-for-tests)))
2112 (propagated-inputs
2113 ;; The .pc file "Requires" gobject-introspection.
2114 `(("gobject-introspection" ,gobject-introspection)))
2115 (home-page "https://wiki.gnome.org/Libpeas")
2116 (synopsis "GObject plugin system")
2117 (description
2118 "Libpeas is a gobject-based plugin engine, targeted at giving every
2119 application the chance to assume its own extensibility. It also has a set of
2120 features including, but not limited to: multiple extension points; on-demand
2121 (lazy) programming language support for C, Python and JS; simplicity of the
2122 API.")
2123 (license license:lgpl2.0+)))
2124
2125 (define-public gtkglext
2126 (package
2127 (name "gtkglext")
2128 (version "1.2.0")
2129 (source (origin
2130 (method url-fetch)
2131 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2132 version "/gtkglext-" version ".tar.gz"))
2133 (sha256
2134 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2135 (patches (search-patches
2136 "gtkglext-disable-disable-deprecated.patch"))))
2137 (build-system gnu-build-system)
2138 (arguments
2139 `(#:phases
2140 (modify-phases %standard-phases
2141 ;; Fix a collision between a local variable and a definition from
2142 ;; glibc's string.h.
2143 (add-after 'unpack 'fix-collision
2144 (lambda _
2145 (substitute* "gdk/gdkglshapes.c"
2146 ((" index") " triangle_index"))
2147 #t)))))
2148 (inputs `(("gtk+" ,gtk+-2)
2149 ("mesa" ,mesa)
2150 ("glu" ,glu)
2151 ("libx11" ,libx11)
2152 ("libxt" ,libxt)))
2153 (native-inputs `(("pkg-config" ,pkg-config)
2154 ("glib" ,glib "bin")))
2155 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2156 (home-page "https://projects.gnome.org/gtkglext")
2157 (synopsis "OpenGL extension to GTK+")
2158 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2159 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2160 API add-ons to make GTK+ widgets OpenGL-capable.")
2161 (license license:lgpl2.1+)))
2162
2163 (define-public glade3
2164 (package
2165 (name "glade")
2166 (version "3.36.0")
2167 (source (origin
2168 (method url-fetch)
2169 (uri (string-append "mirror://gnome/sources/" name "/"
2170 (version-major+minor version) "/"
2171 name "-" version ".tar.xz"))
2172 (sha256
2173 (base32
2174 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
2175 (build-system glib-or-gtk-build-system)
2176 (arguments
2177 `(#:phases
2178 (modify-phases %standard-phases
2179 (add-before 'configure 'fix-docbook
2180 (lambda* (#:key inputs #:allow-other-keys)
2181 (substitute* "man/Makefile.in"
2182 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2183 (string-append (assoc-ref inputs "docbook-xsl")
2184 "/xml/xsl/docbook-xsl-"
2185 ,(package-version docbook-xsl)
2186 "/manpages/docbook.xsl")))
2187 #t))
2188 (add-before 'check 'pre-check
2189 (lambda _
2190 (setenv "HOME" "/tmp")
2191 ;; Tests require a running X server.
2192 (system "Xvfb :1 &")
2193 (setenv "DISPLAY" ":1")
2194 #t)))))
2195 (inputs
2196 `(("gtk+" ,gtk+)
2197 ("libxml2" ,libxml2)))
2198 (native-inputs
2199 `(("hicolor-icon-theme" ,hicolor-icon-theme)
2200 ("intltool" ,intltool)
2201 ("itstool" ,itstool)
2202 ("libxslt" ,libxslt) ;for xsltproc
2203 ("docbook-xml" ,docbook-xml-4.2)
2204 ("docbook-xsl" ,docbook-xsl)
2205 ("python" ,python-2)
2206 ("pkg-config" ,pkg-config)
2207 ("xorg-server" ,xorg-server-for-tests)))
2208 (home-page "https://glade.gnome.org")
2209 (synopsis "GTK+ rapid application development tool")
2210 (description "Glade is a rapid application development (RAD) tool to
2211 enable quick & easy development of user interfaces for the GTK+ toolkit and
2212 the GNOME desktop environment.")
2213 (license license:lgpl2.0+)))
2214
2215 (define-public libcroco
2216 (package
2217 (name "libcroco")
2218 (version "0.6.13")
2219 (source (origin
2220 (method url-fetch)
2221 (uri (string-append "mirror://gnome/sources/" name "/"
2222 (version-major+minor version) "/"
2223 name "-" version ".tar.xz"))
2224 (sha256
2225 (base32
2226 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2227 (build-system gnu-build-system)
2228 (native-inputs
2229 `(("pkg-config" ,pkg-config)))
2230 (inputs
2231 `(("glib" ,glib)
2232 ("libxml2" ,libxml2)
2233 ("zlib" ,zlib)))
2234 (home-page "https://github.com/GNOME/libcroco")
2235 (synopsis "CSS2 parsing and manipulation library")
2236 (description
2237 "Libcroco is a standalone CSS2 parsing and manipulation library.
2238 The parser provides a low level event driven SAC-like API and a CSS object
2239 model like API. Libcroco provides a CSS2 selection engine and an experimental
2240 XML/CSS rendering engine.")
2241
2242 ;; LGPLv2.1-only.
2243 (license license:lgpl2.1)))
2244
2245 (define-public libgsf
2246 (package
2247 (name "libgsf")
2248 (version "1.14.47")
2249 (source (origin
2250 (method url-fetch)
2251 (uri (string-append "mirror://gnome/sources/" name "/"
2252 (version-major+minor version) "/"
2253 name "-" version ".tar.xz"))
2254 (sha256
2255 (base32
2256 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
2257 (build-system gnu-build-system)
2258 (arguments
2259 '(#:configure-flags '("--disable-static")))
2260 (native-inputs
2261 `(("pkg-config" ,pkg-config)
2262 ("gettext" ,gettext-minimal)
2263
2264 ;; For tests.
2265 ("perl" ,perl)
2266 ("perl-xml-parser" ,perl-xml-parser)))
2267 (inputs
2268 `(("zlib" ,zlib)
2269 ("bzip2" ,bzip2)))
2270 (propagated-inputs
2271 `(("gdk-pixbuf" ,gdk-pixbuf)
2272 ("glib" ,glib)
2273 ("libxml2" ,libxml2)))
2274 (home-page "https://www.gnome.org/projects/libgsf")
2275 (synopsis "GNOME's Structured File Library")
2276 (description
2277 "Libgsf aims to provide an efficient extensible I/O abstraction for
2278 dealing with different structured file formats.")
2279
2280 ;; LGPLv2.1-only.
2281 (license license:lgpl2.1)))
2282
2283 (define-public librsvg
2284 (package
2285 (name "librsvg")
2286 (version "2.40.21")
2287 (source (origin
2288 (method url-fetch)
2289 (uri (string-append "mirror://gnome/sources/" name "/"
2290 (version-major+minor version) "/"
2291 name "-" version ".tar.xz"))
2292 (sha256
2293 (base32
2294 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
2295 (build-system gnu-build-system)
2296 (arguments
2297 `(#:configure-flags
2298 (list "--disable-static"
2299 "--enable-vala") ; needed for e.g. gnome-mines
2300 #:phases
2301 (modify-phases %standard-phases
2302 (add-before 'configure 'pre-configure
2303 (lambda* (#:key inputs #:allow-other-keys)
2304 (substitute* "gdk-pixbuf-loader/Makefile.in"
2305 ;; By default the gdk-pixbuf loader is installed under
2306 ;; gdk-pixbuf's prefix. Work around that.
2307 (("gdk_pixbuf_moduledir = .*$")
2308 (string-append "gdk_pixbuf_moduledir = "
2309 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2310 "loaders\n"))
2311 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2312 (("gdk_pixbuf_cache_file = .*$")
2313 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2314 #t))
2315 (add-before 'check 'remove-failing-tests
2316 (lambda _
2317 (with-directory-excursion "tests/fixtures/reftests"
2318 (for-each delete-file
2319 '(;; This test fails on i686:
2320 "svg1.1/masking-path-04-b.svg"
2321 ;; This test fails on armhf:
2322 "svg1.1/masking-mask-01-b.svg"
2323 ;; This test fails on aarch64:
2324 "bugs/777834-empty-text-children.svg")))
2325 #t)))))
2326 (native-inputs
2327 `(("pkg-config" ,pkg-config)
2328 ("vala" ,vala)
2329 ("glib" ,glib "bin") ; glib-mkenums, etc.
2330 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2331 (inputs
2332 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2333 ;; this ancient version of librsvg.
2334 ("pango" ,pango-1.42)
2335 ("libcroco" ,libcroco)
2336 ("bzip2" ,bzip2)
2337 ("libgsf" ,libgsf)
2338 ("libxml2" ,libxml2)))
2339 (propagated-inputs
2340 ;; librsvg-2.0.pc refers to all of that.
2341 `(("cairo" ,cairo)
2342 ("gdk-pixbuf" ,gdk-pixbuf)
2343 ("glib" ,glib)))
2344 (home-page "https://wiki.gnome.org/LibRsvg")
2345 (synopsis "Render SVG files using Cairo")
2346 (description
2347 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2348 library.")
2349 (license license:lgpl2.0+)))
2350
2351 (define-public librsvg-next
2352 (package
2353 (inherit librsvg)
2354 (name "librsvg")
2355 (version "2.48.8")
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 "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l"))
2364 (modules '((guix build utils)))
2365 (snippet
2366 '(begin (delete-file-recursively "vendor")
2367 #t))))
2368 (build-system cargo-build-system)
2369 (arguments
2370 `(#:modules ((guix build cargo-build-system)
2371 (guix build utils)
2372 ((guix build gnu-build-system) #:prefix gnu:))
2373 #:vendor-dir "vendor"
2374 #:cargo-inputs
2375 (("rust-bitflags" ,rust-bitflags-1)
2376 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
2377 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2378 ("rust-cast" ,rust-cast-0.2)
2379 ("rust-cssparser" ,rust-cssparser-0.27)
2380 ("rust-data-url" ,rust-data-url-0.1)
2381 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2382 ("rust-encoding" ,rust-encoding-0.2)
2383 ("rust-float-cmp" ,rust-float-cmp-0.6)
2384 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
2385 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2386 ("rust-gio" ,rust-gio-0.8)
2387 ("rust-gio-sys" ,rust-gio-sys-0.9)
2388 ("rust-glib" ,rust-glib-0.9)
2389 ("rust-glib-sys" ,rust-glib-sys-0.9)
2390 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2391 ("rust-itertools" ,rust-itertools-0.8)
2392 ("rust-language-tags" ,rust-language-tags-0.2)
2393 ("rust-libc" ,rust-libc-0.2)
2394 ("rust-locale-config" ,rust-locale-config-0.3)
2395 ("rust-markup5ever" ,rust-markup5ever-0.10)
2396 ("rust-nalgebra" ,rust-nalgebra-0.19)
2397 ("rust-num-traits" ,rust-num-traits-0.2)
2398 ("rust-once-cell" ,rust-once-cell-1.2)
2399 ("rust-pkg-config" ,rust-pkg-config-0.3)
2400 ("rust-pango" ,rust-pango-0.8)
2401 ("rust-pango-sys" ,rust-pango-sys-0.9)
2402 ("rust-pangocairo" ,rust-pangocairo-0.9)
2403 ("rust-rayon" ,rust-rayon-1)
2404 ("rust-rctree" ,rust-rctree-0.3)
2405 ("rust-rgb" ,rust-rgb-0.8)
2406 ("rust-regex" ,rust-regex-1)
2407 ("rust-selectors" ,rust-selectors-0.22)
2408 ("rust-url" ,rust-url-2.1)
2409 ("rust-xml5ever" ,rust-xml5ever-0.16))
2410 #:cargo-development-inputs
2411 (("rust-cairo-rs" ,rust-cairo-rs-0.8)
2412 ("rust-criterion" ,rust-criterion-0.3))
2413 #:phases
2414 (modify-phases %standard-phases
2415 (add-after 'unpack 'prepare-for-build
2416 (lambda _
2417 ;; In lieu of #:make-flags
2418 (setenv "CC" ,(cc-for-target))
2419 ;; Something about the build environment resists building
2420 ;; successfully with the '--locked' flag.
2421 (substitute* '("Makefile.am"
2422 "Makefile.in")
2423 (("--locked") ""))
2424 #t))
2425 (add-before 'configure 'pre-configure
2426 (lambda _
2427 (substitute* "gdk-pixbuf-loader/Makefile.in"
2428 ;; By default the gdk-pixbuf loader is installed under
2429 ;; gdk-pixbuf's prefix. Work around that.
2430 (("gdk_pixbuf_moduledir = .*$")
2431 (string-append "gdk_pixbuf_moduledir = "
2432 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2433 "loaders\n"))
2434 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2435 (("gdk_pixbuf_cache_file = .*$")
2436 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2437 #t))
2438 (add-after 'configure 'gnu-configure
2439 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
2440 ((assoc-ref gnu:%standard-phases 'configure)
2441 #:native-inputs native-inputs
2442 #:inputs inputs
2443 #:outputs outputs
2444 #:configure-flags (list "--disable-static"
2445 "--enable-vala"))))
2446 (add-after 'configure 'dont-vendor-self
2447 (lambda* (#:key vendor-dir #:allow-other-keys)
2448 ;; Don't keep the whole tarball in the vendor directory
2449 (delete-file-recursively
2450 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2451 #t))
2452 (replace 'build
2453 (assoc-ref gnu:%standard-phases 'build))
2454 (replace 'check
2455 (lambda* args
2456 ((assoc-ref gnu:%standard-phases 'check)
2457 #:test-target "check")))
2458 (replace 'install
2459 (assoc-ref gnu:%standard-phases 'install)))))
2460 (inputs
2461 `(("pango" ,pango)
2462 ,@(alist-delete "pango" (package-inputs librsvg))))
2463 (license license:lgpl2.1+)))
2464
2465 (define-public libidl
2466 (package
2467 (name "libidl")
2468 (version "0.8.14")
2469 (source (origin
2470 (method url-fetch)
2471 (uri (string-append "mirror://gnome/sources/libIDL/"
2472 (version-major+minor version) "/"
2473 "libIDL-" version ".tar.bz2"))
2474 (sha256
2475 (base32
2476 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2477 (build-system gnu-build-system)
2478 (inputs `(("glib" ,glib)))
2479 (native-inputs
2480 `(("pkg-config" ,pkg-config)
2481 ("flex" ,flex)
2482 ("bison" ,bison)))
2483 (home-page "http://freecode.com/projects/libidl")
2484 (synopsis "Create trees of CORBA Interface Definition Language files")
2485 (description "Libidl is a library for creating trees of CORBA Interface
2486 Definition Language (idl) files, which is a specification for defining
2487 portable interfaces. libidl was initially written for orbit (the orb from the
2488 GNOME project, and the primary means of libidl distribution). However, the
2489 functionality was designed to be as reusable and portable as possible.")
2490 (properties `((upstream-name . "libIDL")))
2491 (license license:lgpl2.0+)))
2492
2493
2494 (define-public orbit2
2495 (package
2496 (name "orbit2")
2497 (version "2.14.19")
2498 (source (origin
2499 (method url-fetch)
2500 (uri (let ((upstream-name "ORBit2"))
2501 (string-append "mirror://gnome/sources/" upstream-name "/"
2502 (version-major+minor version) "/"
2503 upstream-name "-" version ".tar.bz2")))
2504 (sha256
2505 (base32
2506 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2507 (build-system gnu-build-system)
2508 (arguments
2509 `(;; The "timeout-server" test hangs when run in parallel.
2510 #:parallel-tests? #f
2511 #:configure-flags
2512 '(;; We don't need static libraries, plus they don't build reproducibly
2513 ;; (non-deterministic ordering of .o files in the archive.)
2514 "--disable-static"
2515
2516 ;; The programmer kindly gives us a hook to turn off deprecation
2517 ;; warnings ...
2518 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2519 ;; ... which they then completly ignore !!
2520 #:phases
2521 (modify-phases %standard-phases
2522 (add-before 'configure 'ignore-deprecations
2523 (lambda _
2524 (substitute* "linc2/src/Makefile.in"
2525 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2526 #t)))))
2527 (inputs `(("glib" ,glib)
2528 ("libidl" ,libidl)))
2529 (native-inputs
2530 `(("pkg-config" ,pkg-config)))
2531 (home-page "https://projects.gnome.org/orbit2/")
2532 (synopsis "CORBA 2.4-compliant Object Request Broker")
2533 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2534 featuring mature C, C++ and Python bindings.")
2535 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2536 ;; a version. SOME of the code files have licence notices for GPLv2+.
2537 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2538 (license license:gpl2+)
2539 (properties `((upstream-name . "ORBit2")))))
2540
2541
2542 (define-public libbonobo
2543 (package
2544 (name "libbonobo")
2545 (version "2.32.1")
2546 (source (origin
2547 (method url-fetch)
2548 (uri (string-append "mirror://gnome/sources/" name "/"
2549 (version-major+minor version)
2550 "/" name "-" version ".tar.bz2"))
2551 (sha256
2552 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2553 (patches (search-patches
2554 "libbonobo-activation-test-race.patch"))))
2555 (build-system gnu-build-system)
2556 (arguments
2557 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2558 `(#:configure-flags
2559 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2560 ;; ... which they then completly ignore !!
2561 #:phases
2562 (modify-phases %standard-phases
2563 (add-before 'configure 'ignore-deprecations
2564 (lambda _
2565 (substitute* "activation-server/Makefile.in"
2566 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2567 #t)))
2568
2569 ;; There's apparently a race condition between the server stub
2570 ;; generation and linking of the example under 'samples/echo' that can
2571 ;; lead do undefined references when building in parallel, as reported
2572 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2573 ;; Thus, disable parallel builds.
2574 #:parallel-build? #f))
2575 (inputs `(("popt" ,popt)
2576 ("libxml2" ,libxml2)))
2577 ;; The following are Required by the .pc file
2578 (propagated-inputs
2579 `(("glib" ,glib)
2580 ("orbit2" ,orbit2)))
2581 (native-inputs
2582 `(("intltool" ,intltool)
2583 ("pkg-config" ,pkg-config)
2584 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2585 ("flex" ,flex)
2586 ("bison" ,bison)))
2587 (home-page "https://developer.gnome.org/libbonobo/")
2588 (synopsis "Framework for creating reusable components for use in GNOME applications")
2589 (description "Bonobo is a framework for creating reusable components for
2590 use in GNOME applications, built on top of CORBA.")
2591 ;; Licence not explicitly stated. Source files contain no licence notices.
2592 ;; Tarball contains text of both GPLv2 and LGPLv2
2593 ;; GPLv2 covers both conditions
2594 (license license:gpl2+)))
2595
2596
2597 (define-public gconf
2598 (package
2599 (name "gconf")
2600 (version "3.2.6")
2601 (source (origin
2602 (method url-fetch)
2603 (uri
2604 (let ((upstream-name "GConf"))
2605 (string-append "mirror://gnome/sources/" upstream-name "/"
2606 (version-major+minor version) "/"
2607 upstream-name "-" version ".tar.xz")))
2608 (sha256
2609 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2610 (build-system gnu-build-system)
2611 (inputs `(("dbus-glib" ,dbus-glib)
2612 ("libxml2" ,libxml2)))
2613 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2614 ("orbit2" ,orbit2)))
2615 (native-inputs
2616 `(("intltool" ,intltool)
2617 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2618 ("pkg-config" ,pkg-config)))
2619 (home-page "https://projects.gnome.org/gconf/")
2620 (synopsis "Store application preferences")
2621 (description "Gconf is a system for storing application preferences. It
2622 is intended for user preferences; not arbitrary data storage.")
2623 (license license:lgpl2.0+)
2624 (properties '((upstream-name . "GConf")))))
2625
2626
2627 (define-public gnome-mime-data
2628 (package
2629 (name "gnome-mime-data")
2630 (version "2.18.0")
2631 (source (origin
2632 (method url-fetch)
2633 (uri (string-append "mirror://gnome/sources/" name "/"
2634 (version-major+minor version) "/"
2635 name "-" version ".tar.bz2"))
2636 (sha256
2637 (base32
2638 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2639 (build-system gnu-build-system)
2640 (native-inputs
2641 `(("perl" ,perl)
2642 ("intltool" ,intltool)))
2643 (arguments
2644 '(#:phases (modify-phases %standard-phases
2645 (add-after 'configure 'use-our-intltool
2646 (lambda _
2647 ;; Do not use the bundled intltool commands, which lack
2648 ;; the "dotless @INC" fixes of our 'intltool' package.
2649 (substitute* (find-files "." "^Makefile$")
2650 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2651 (string-append "INTLTOOL_" tool " = intltool-"
2652 (string-downcase tool) "\n")))
2653 #t)))))
2654 (home-page "https://www.gnome.org")
2655 (synopsis "Base MIME and Application database for GNOME")
2656 (description "GNOME Mime Data is a module which contains the base MIME
2657 and Application database for GNOME. The data stored by this module is
2658 designed to be accessed through the MIME functions in GnomeVFS.")
2659 (license license:gpl2+)))
2660
2661
2662 (define-public gnome-vfs
2663 (package
2664 (name "gnome-vfs")
2665 (version "2.24.4")
2666 (source (origin
2667 (method url-fetch)
2668 (uri (string-append "mirror://gnome/sources/" name "/"
2669 (version-major+minor version) "/"
2670 name "-" version ".tar.bz2"))
2671 (sha256
2672 (base32
2673 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2674 (build-system gnu-build-system)
2675 (arguments
2676 `(#:phases
2677 (modify-phases %standard-phases
2678 (add-before 'configure 'ignore-deprecations
2679 (lambda _
2680 (substitute* '("libgnomevfs/Makefile.in"
2681 "daemon/Makefile.in")
2682 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2683 #t))
2684 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2685 (lambda _
2686 (substitute* "test/test-async-cancel.c"
2687 (("EXIT_FAILURE") "77"))
2688 #t)))))
2689 (inputs `(("libxml2" ,libxml2)
2690 ("dbus-glib" ,dbus-glib)
2691 ("gconf" ,gconf)
2692 ("gnome-mime-data" ,gnome-mime-data)
2693 ("zlib" ,zlib)))
2694 (native-inputs
2695 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2696 ("intltool" ,intltool)
2697 ("pkg-config" ,pkg-config)))
2698 (home-page "https://developer.gnome.org/gnome-vfs/")
2699 (synopsis "Access files and folders in GNOME applications")
2700 (description
2701 "GnomeVFS is the core library used to access files and folders in GNOME
2702 applications. It provides a file system abstraction which allows applications
2703 to access local and remote files with a single consistent API.")
2704 (license license:lgpl2.0+)))
2705
2706
2707
2708 (define-public libgnome
2709 (package
2710 (name "libgnome")
2711 (version "2.32.1")
2712 (source (origin
2713 (method url-fetch)
2714 (uri (string-append "mirror://gnome/sources/" name "/"
2715 (version-major+minor version) "/"
2716 name "-" version ".tar.bz2"))
2717 (sha256
2718 (base32
2719 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2720 (patches (search-patches "libgnome-encoding.patch"))))
2721 (build-system gnu-build-system)
2722 (arguments
2723 `(#:phases
2724 (modify-phases %standard-phases
2725 (add-before 'configure 'enable-deprecated
2726 (lambda _
2727 (substitute* "libgnome/Makefile.in"
2728 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2729 #t)))))
2730 (inputs `(("libxml2" ,libxml2)))
2731 (native-inputs
2732 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2733 ("intltool" ,intltool)
2734 ("pkg-config" ,pkg-config)))
2735 ;; The following are listed as Required in the .pc file
2736 ;; (except for libcanberra -- which seems to be oversight on the part
2737 ;; of the upstream developers -- anything that links against libgnome,
2738 ;; must also link against libcanberra
2739 (propagated-inputs
2740 `(("libcanberra" ,libcanberra)
2741 ("libbonobo" ,libbonobo)
2742 ("gconf" ,gconf)
2743 ("gnome-vfs" ,gnome-vfs)
2744 ("popt" ,popt))) ;gnome-program.h includes popt.h
2745 (home-page "https://developer.gnome.org/libgnome/")
2746 (synopsis "Useful routines for building applications")
2747 (description "The libgnome library provides a number of useful routines
2748 for building modern applications, including session management, activation of
2749 files and URIs, and displaying help.")
2750 (license license:lgpl2.0+)))
2751
2752
2753 (define-public libart-lgpl
2754 (package
2755 (name "libart-lgpl")
2756 (version "2.3.21")
2757 (source (origin
2758 (method url-fetch)
2759 (uri (let ((upstream-name "libart_lgpl"))
2760 (string-append "mirror://gnome/sources/" upstream-name "/"
2761 (version-major+minor version) "/"
2762 upstream-name "-" version ".tar.bz2")))
2763 (sha256
2764 (base32
2765 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2766 (build-system gnu-build-system)
2767 (native-inputs
2768 `(("pkg-config" ,pkg-config)))
2769 (home-page "https://people.gnome.org/~mathieu/libart")
2770 (synopsis "2D drawing library")
2771 (description "Libart is a 2D drawing library intended as a
2772 high-quality vector-based 2D library with antialiasing and alpha composition.")
2773 (license license:lgpl2.0+)))
2774
2775
2776
2777 (define-public libgnomecanvas
2778 (package
2779 (name "libgnomecanvas")
2780 (version "2.30.3")
2781 (source (origin
2782 (method url-fetch)
2783 (uri (string-append "mirror://gnome/sources/" name "/"
2784 (version-major+minor version) "/"
2785 name "-" version ".tar.gz"))
2786 (sha256
2787 (base32
2788 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2789 (build-system gnu-build-system)
2790 ;; Mentioned as Required in the .pc file
2791 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2792 ("gtk+" ,gtk+-2)))
2793 (native-inputs
2794 `(("intltool" ,intltool)
2795 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2796 ("pkg-config" ,pkg-config)))
2797 (home-page "https://developer.gnome.org/libgnomecanvas/")
2798 (synopsis "Flexible widget for creating interactive structured graphics")
2799 (description "The GnomeCanvas widget provides a flexible widget for
2800 creating interactive structured graphics.")
2801 (license license:lgpl2.0+)))
2802
2803 (define-public libgnomecanvasmm
2804 (package
2805 (name "libgnomecanvasmm")
2806 (version "2.26.0")
2807 (source (origin
2808 (method url-fetch)
2809 (uri (string-append "mirror://gnome/sources/" name "/"
2810 (version-major+minor version) "/"
2811 name "-" version ".tar.bz2"))
2812 (sha256
2813 (base32
2814 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2815 (build-system gnu-build-system)
2816 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2817 (native-inputs
2818 `(("gtkmm-2" ,gtkmm-2)
2819 ("pkg-config" ,pkg-config)))
2820 (home-page "https://gtkmm.org")
2821 (synopsis "C++ bindings to the GNOME Canvas library")
2822 (description "C++ bindings to the GNOME Canvas library.")
2823 (license license:lgpl2.0+)))
2824
2825 (define-public libgnomeui
2826 (package
2827 (name "libgnomeui")
2828 (version "2.24.5")
2829 (source (origin
2830 (method url-fetch)
2831 (uri (string-append "mirror://gnome/sources/" name "/"
2832 (version-major+minor version) "/"
2833 name "-" version ".tar.bz2"))
2834 (patches (search-patches "libgnomeui-utf8.patch"))
2835 (sha256
2836 (base32
2837 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2838 (build-system gnu-build-system)
2839 ;; Mentioned as Required in the .pc file
2840 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2841 ("libgnome" ,libgnome)
2842 ("libgnomecanvas" ,libgnomecanvas)
2843 ("libgnome-keyring" ,libgnome-keyring)))
2844 (inputs `(("libjpeg" ,libjpeg-turbo)
2845 ("popt" ,popt)
2846 ("libbonobo" ,libbonobo)
2847 ("libxml2" ,libxml2)
2848 ("libglade" ,libglade)))
2849 (native-inputs
2850 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2851 ("intltool" ,intltool)
2852 ("pkg-config" ,pkg-config)))
2853 (home-page "https://developer.gnome.org/libgnomeui/")
2854 (synopsis "Additional widgets for applications")
2855 (description "The libgnomeui library provides additional widgets for
2856 applications. Many of the widgets from libgnomeui have already been
2857 ported to GTK+.")
2858 (license license:lgpl2.0+)))
2859
2860 (define-public libglade
2861 (package
2862 (name "libglade")
2863 (version "2.6.4")
2864 (source (origin
2865 (method url-fetch)
2866 (uri (string-append "mirror://gnome/sources/" name "/"
2867 (version-major+minor version) "/"
2868 name "-" version ".tar.bz2"))
2869 (sha256
2870 (base32
2871 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2872 (build-system gnu-build-system)
2873 (inputs
2874 `(("python" ,python))) ;; needed for the optional libglade-convert program
2875 (propagated-inputs
2876 `(("gtk+-2" ,gtk+-2)
2877 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2878 (native-inputs
2879 `(("pkg-config" ,pkg-config)))
2880 (home-page "https://developer.gnome.org/libglade")
2881 (synopsis "Load glade interfaces and access the glade built widgets")
2882 (description "Libglade is a library that provides interfaces for loading
2883 graphical interfaces described in glade files and for accessing the
2884 widgets built in the loading process.")
2885 (license license:gpl2+))) ; This is correct. GPL not LGPL
2886
2887 (define-public libgnomeprint
2888 ;; This library has been deprecated since 2006; see
2889 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2890 (package
2891 (name "libgnomeprint")
2892 (version "2.18.8")
2893 (source (origin
2894 (method url-fetch)
2895 (uri (string-append "mirror://gnome/sources/" name "/"
2896 (version-major+minor version) "/"
2897 name "-" version ".tar.bz2"))
2898 (sha256
2899 (base32
2900 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2901 (build-system gnu-build-system)
2902 (inputs
2903 `(("popt" ,popt)
2904 ("libart-lgpl" ,libart-lgpl)
2905 ("gtk+" ,gtk+-2)
2906 ("libxml2" ,libxml2)))
2907 (native-inputs
2908 `(("intltool" ,intltool)
2909 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2910 ("pkg-config" ,pkg-config)))
2911 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2912 (synopsis "Printing framework for GNOME")
2913 (description
2914 "GNOME-print was a printing framework for GNOME. It has been deprecated
2915 since ca. 2006, when GTK+ itself incorporated printing support.")
2916 (license license:lgpl2.0+)))
2917
2918
2919 (define-public libgnomeprintui
2920 ;; Deprecated; see libgnomeprint.
2921 (package
2922 (name "libgnomeprintui")
2923 (version "2.18.6")
2924 (source (origin
2925 (method url-fetch)
2926 (uri (string-append "mirror://gnome/sources/" name "/"
2927 (version-major+minor version) "/"
2928 name "-" version ".tar.bz2"))
2929 (sha256
2930 (base32
2931 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2932 (build-system gnu-build-system)
2933 ;; Mentioned as Required in the .pc file
2934 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2935 (inputs `(("gtk+" ,gtk+-2)
2936 ("glib" ,glib)
2937 ("gnome-icon-theme" ,gnome-icon-theme)
2938 ("libgnomecanvas" ,libgnomecanvas)
2939 ("libxml2" ,libxml2)))
2940 (native-inputs
2941 `(("intltool" ,intltool)
2942 ("pkg-config" ,pkg-config)))
2943 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2944 (synopsis "Printing framework for GNOME")
2945 (description (package-description libgnomeprint))
2946 (license license:lgpl2.0+)))
2947
2948 (define-public libbonoboui
2949 (package
2950 (name "libbonoboui")
2951 (version "2.24.5")
2952 (source (origin
2953 (method url-fetch)
2954 (uri (string-append "mirror://gnome/sources/" name "/"
2955 (version-major+minor version) "/"
2956 name "-" version ".tar.bz2"))
2957 (sha256
2958 (base32
2959 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2960 (build-system gnu-build-system)
2961 (arguments
2962 `(#:phases
2963 (modify-phases %standard-phases
2964 (add-before 'check 'start-xserver
2965 (lambda* (#:key inputs #:allow-other-keys)
2966 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2967 (disp ":1"))
2968
2969 (setenv "HOME" (getcwd))
2970 (setenv "DISPLAY" disp)
2971 ;; There must be a running X server and make check doesn't start one.
2972 ;; Therefore we must do it.
2973 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2974 ;; Mentioned as Required by the .pc file
2975 (propagated-inputs `(("libxml2" ,libxml2)))
2976 (inputs
2977 `(("popt" ,popt)
2978 ("pangox-compat" ,pangox-compat)
2979 ("libgnome" ,libgnome)
2980 ("libgnomecanvas" ,libgnomecanvas)
2981 ("libglade" ,libglade)))
2982 (native-inputs
2983 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2984 ("intltool" ,intltool)
2985 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2986 ("pkg-config" ,pkg-config)))
2987 (home-page "https://developer.gnome.org/libbonoboui/")
2988 (synopsis "Some user interface controls using Bonobo")
2989 (description "The Bonobo UI library provides a number of user interface
2990 controls using the Bonobo component framework.")
2991 (license license:lgpl2.0+)))
2992
2993 (define-public libwnck
2994 (package
2995 (name "libwnck")
2996 (version "3.32.0")
2997 (source (origin
2998 (method url-fetch)
2999 (uri (string-append "mirror://gnome/sources/" name "/"
3000 (version-major+minor version) "/"
3001 name "-" version ".tar.xz"))
3002 (sha256
3003 (base32
3004 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3005 (build-system meson-build-system)
3006 (native-inputs
3007 `(("pkg-config" ,pkg-config)
3008 ("glib" ,glib "bin") ; for glib-mkenums
3009 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3010 ("intltool" ,intltool)))
3011 (propagated-inputs
3012 `(("gtk+" ,gtk+)
3013 ("libxres" ,libxres)
3014 ("startup-notification" ,startup-notification)))
3015 (home-page "https://developer.gnome.org/libwnck/")
3016 (synopsis "Window Navigator Construction Kit")
3017 (description
3018 "Libwnck is the Window Navigator Construction Kit, a library for use in
3019 writing pagers, tasklists, and more generally applications that are dealing
3020 with window management. It tries hard to respect the Extended Window Manager
3021 Hints specification (EWMH).")
3022 (license license:lgpl2.0+)))
3023
3024 ;; stable version for gtk2, required by xfwm4.
3025 (define-public libwnck-2
3026 (package (inherit libwnck)
3027 (name "libwnck")
3028 (version "2.30.7")
3029 (source (origin
3030 (method url-fetch)
3031 (uri (string-append "mirror://gnome/sources/" name "/"
3032 (version-major+minor version) "/"
3033 name "-" version ".tar.xz"))
3034 (sha256
3035 (base32
3036 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
3037 (build-system gnu-build-system)
3038 (native-inputs
3039 `(("pkg-config" ,pkg-config)
3040 ("intltool" ,intltool)))
3041 (propagated-inputs
3042 `(("gtk+" ,gtk+-2)
3043 ("libxres" ,libxres)
3044 ("startup-notification" ,startup-notification)))))
3045
3046 (define-public goffice
3047 (package
3048 (name "goffice")
3049 (version "0.10.46")
3050 (source (origin
3051 (method url-fetch)
3052 (uri (string-append "mirror://gnome/sources/goffice/"
3053 (version-major+minor version) "/"
3054 "goffice-" version ".tar.xz"))
3055 (sha256
3056 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
3057 (build-system gnu-build-system)
3058 (outputs '("out"
3059 "doc")) ; 4.0 MiB of gtk-doc
3060 (arguments
3061 '(#:configure-flags (list (string-append "--with-html-dir="
3062 (assoc-ref %outputs "doc")
3063 "/share/gtk-doc/html"))))
3064 (inputs
3065 `(("gtk+" ,gtk+)
3066 ("libgsf" ,libgsf)
3067 ("librsvg" ,librsvg)
3068 ("libxslt" ,libxslt)
3069 ("libxml2" ,libxml2)))
3070 (native-inputs
3071 `(("intltool" ,intltool)
3072 ("glib" ,glib "bin")
3073 ("pkg-config" ,pkg-config)))
3074 (home-page "https://developer.gnome.org/goffice/")
3075 (synopsis "Document-centric objects and utilities")
3076 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3077 (license
3078 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3079 ;; Note: NOT LGPL
3080 (list license:gpl2 license:gpl3))))
3081
3082 (define-public goffice-0.8
3083 (package (inherit goffice)
3084 (version "0.8.17")
3085 (source (origin
3086 (method url-fetch)
3087 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3088 (version-major+minor version) "/"
3089 (package-name goffice) "-" version ".tar.xz"))
3090 (sha256
3091 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3092 (arguments
3093 `(#:phases
3094 (modify-phases %standard-phases
3095 (add-after 'unpack 'fix-pcre-check
3096 (lambda _
3097 ;; Only glib.h can be included directly. See
3098 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3099 (substitute* "configure"
3100 (("glib/gregex\\.h") "glib.h")) #t)))
3101
3102 ,@(package-arguments goffice)))
3103 (propagated-inputs
3104 ;; libgoffice-0.8.pc mentions libgsf-1
3105 `(("libgsf" ,libgsf)))
3106 (inputs
3107 `(("gtk" ,gtk+-2)
3108 ,@(alist-delete "gtk" (package-inputs goffice))))))
3109
3110 (define-public gnumeric
3111 (package
3112 (name "gnumeric")
3113 (version "1.12.46")
3114 (source (origin
3115 (method url-fetch)
3116 (uri (string-append "mirror://gnome/sources/gnumeric/"
3117 (version-major+minor version) "/"
3118 "gnumeric-" version ".tar.xz"))
3119 (sha256
3120 (base32
3121 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3122 (build-system glib-or-gtk-build-system)
3123 (arguments
3124 `(;; The gnumeric developers don't worry much about failing tests.
3125 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3126 #:tests? #f
3127 #:phases
3128 (modify-phases %standard-phases
3129 (add-before
3130 'configure 'pre-conf
3131 (lambda* (#:key outputs #:allow-other-keys)
3132 ;; Make install tries to write into the directory of goffice
3133 ;; I am informed that this only affects the possibility to embed a
3134 ;; spreadsheet inside an Abiword document. So presumably when we
3135 ;; package Abiword we'll have to refer it to this directory.
3136 (substitute* "configure"
3137 (("^GOFFICE_PLUGINS_DIR=.*")
3138 (string-append "GOFFICE_PLUGINS_DIR="
3139 (assoc-ref outputs "out")
3140 "/goffice/plugins"))))))))
3141 (inputs
3142 `(("glib" ,glib)
3143 ("gtk+" ,gtk+)
3144 ("goffice" ,goffice)
3145 ("libgsf" ,libgsf)
3146 ("librsvg" ,librsvg)
3147 ("libxml2" ,libxml2)
3148 ("libxslt" ,libxslt)
3149 ("python" ,python-2)
3150 ("python2-pygobject" ,python2-pygobject)
3151 ("zlib" ,zlib)))
3152 (native-inputs
3153 `(("bison" ,bison)
3154 ("docbook-xml" ,docbook-xml)
3155 ("intltool" ,intltool)
3156 ("itstool" ,itstool)
3157 ("glib:bin" ,glib "bin")
3158 ("pkg-config" ,pkg-config)))
3159 (home-page "http://www.gnumeric.org")
3160 (synopsis "Spreadsheet application")
3161 (description
3162 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3163 interoperable with other spreadsheet applications. It has a vast array of
3164 features beyond typical spreadsheet functionality, such as support for linear
3165 and non-linear solvers, statistical analysis, and telecommunication
3166 engineering.")
3167 (license
3168 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3169 (list license:gpl2 license:gpl3))))
3170
3171 (define-public gnome-themes-standard
3172 (package
3173 (name "gnome-themes-standard")
3174 (version "3.22.3")
3175 (source
3176 (origin
3177 (method url-fetch)
3178 (uri (string-append "mirror://gnome/sources/" name "/"
3179 (version-major+minor version) "/" name "-"
3180 version ".tar.xz"))
3181 (sha256
3182 (base32
3183 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3184 (build-system gnu-build-system)
3185 (arguments
3186 '(#:configure-flags
3187 ;; Don't create 'icon-theme.cache'.
3188 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3189 (true (string-append coreutils "/bin/true")))
3190 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3191 (inputs
3192 `(("gtk+" ,gtk+)
3193 ("gtk+-2" ,gtk+-2)
3194 ("librsvg" ,librsvg)
3195 ("libxml2" ,libxml2)
3196 ("glib" ,glib)))
3197 (native-inputs
3198 `(("intltool" ,intltool)
3199 ("glib:bin" ,glib "bin")
3200 ("pkg-config" ,pkg-config)))
3201 (home-page "https://launchpad.net/gnome-themes-standard")
3202 (synopsis "Default GNOME 3 themes")
3203 (description
3204 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3205 (license license:lgpl2.1+)))
3206
3207 (define-public seahorse
3208 (package
3209 (name "seahorse")
3210 (version "3.34")
3211 (source
3212 (origin
3213 (method url-fetch)
3214 (uri (string-append "mirror://gnome/sources/" name "/"
3215 (version-major+minor version) "/" name "-"
3216 version ".tar.xz"))
3217 (sha256
3218 (base32
3219 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
3220 (build-system meson-build-system)
3221 (arguments
3222 '(#:glib-or-gtk? #t
3223 #:phases
3224 (modify-phases %standard-phases
3225 (add-after 'unpack 'skip-gtk-update-icon-cache
3226 ;; Don't create 'icon-theme.cache'.
3227 (lambda _
3228 (substitute* "build-aux/meson_post_install.py"
3229 (("gtk-update-icon-cache") "true"))
3230 #t)))))
3231 (inputs
3232 `(("gtk+" ,gtk+)
3233 ("gcr" ,gcr)
3234 ("gnupg" ,gnupg)
3235 ("gpgme" ,gpgme)
3236 ("openldap" ,openldap)
3237 ("openssh" ,openssh)
3238 ("avahi" ,avahi)
3239 ("libpwquality" ,libpwquality)
3240 ("libsecret" ,libsecret)
3241 ("libsoup" ,libsoup)))
3242 (native-inputs
3243 `(("gettext" ,gettext-minimal)
3244 ("glib:bin" ,glib "bin")
3245 ("itstool" ,itstool)
3246 ("pkg-config" ,pkg-config)
3247 ("vala" ,vala)
3248 ("xmllint" ,libxml2)))
3249 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3250 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3251 (description
3252 "Seahorse is a GNOME application for managing encryption keys and
3253 passwords in the GNOME keyring.")
3254 (license license:gpl2+)))
3255
3256 (define-public vala
3257 (package
3258 (name "vala")
3259 (version "0.46.5")
3260 (source (origin
3261 (method url-fetch)
3262 (uri (string-append "mirror://gnome/sources/" name "/"
3263 (version-major+minor version) "/"
3264 name "-" version ".tar.xz"))
3265 (sha256
3266 (base32
3267 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
3268 (build-system gnu-build-system)
3269 (arguments
3270 '(#:phases
3271 (modify-phases %standard-phases
3272 (add-before 'check 'pre-check
3273 (lambda _
3274 (setenv "CC" "gcc")
3275 (substitute* "valadoc/tests/testrunner.sh"
3276 (("export PKG_CONFIG_PATH=" m)
3277 (string-append m "$PKG_CONFIG_PATH:")))
3278 ;; For missing '/etc/machine-id'.
3279 (setenv "DBUS_FATAL_WARNINGS" "0")
3280 #t)))))
3281 (native-inputs
3282 `(("pkg-config" ,pkg-config)
3283 ("flex" ,flex)
3284 ("bison" ,bison)
3285 ("xsltproc" ,libxslt)
3286 ("dbus" ,dbus) ; for dbus tests
3287 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3288 (inputs
3289 `(("graphviz" ,graphviz)))
3290 (propagated-inputs
3291 `(("glib" ,glib))) ; required by libvala-0.40.pc
3292 (home-page "https://live.gnome.org/Vala/")
3293 (synopsis "Compiler for the GObject type system")
3294 (description
3295 "Vala is a programming language that aims to bring modern programming
3296 language features to GNOME developers without imposing any additional runtime
3297 requirements and without using a different ABI compared to applications and
3298 libraries written in C.")
3299 (license license:lgpl2.1+)))
3300
3301 (define-public vala-0.48
3302 (package
3303 (inherit vala)
3304 (version "0.48.6")
3305 (source (origin
3306 (method url-fetch)
3307 (uri (string-append "mirror://gnome/sources/vala/"
3308 (version-major+minor version) "/"
3309 "vala-" version ".tar.xz"))
3310 (sha256
3311 (base32
3312 "01wppzgacdmp8dgf8047myz1any2yffmrhgl8kqf1q0c0gnhi3fi"))))))
3313
3314 (define-public vte
3315 (package
3316 (name "vte")
3317 (version "0.60.2")
3318 (source (origin
3319 (method url-fetch)
3320 (uri (string-append "mirror://gnome/sources/vte/"
3321 (version-major+minor version) "/"
3322 "vte-" version ".tar.xz"))
3323 (sha256
3324 (base32
3325 "19ccbw0yca78h5qcnm8claj4fg1pj68nj1fsjqqfpzhj7w72i81m"))))
3326 (build-system meson-build-system)
3327 (arguments
3328 `(#:configure-flags
3329 '("-Dvapi=true"
3330 "-D_systemd=false")))
3331 (native-inputs
3332 `(("pkg-config" ,pkg-config)
3333 ("gettext" ,gettext-minimal)
3334 ("vala" ,vala)
3335 ("gobject-introspection" ,gobject-introspection)
3336 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3337 ("gperf" ,gperf)
3338 ("xmllint" ,libxml2)))
3339 (propagated-inputs
3340 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3341 ("gnutls" ,gnutls) ; ditto
3342 ("pcre2" ,pcre2))) ; ditto
3343 (home-page "https://www.gnome.org/")
3344 (synopsis "Virtual Terminal Emulator")
3345 (description
3346 "VTE is a library (libvte) implementing a terminal emulator widget for
3347 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3348 gnome-terminal, but can also be used to embed a console/terminal in games,
3349 editors, IDEs, etc.")
3350 (license license:lgpl2.1+)))
3351
3352 (define-public vte-ng
3353 (package
3354 (inherit vte)
3355 (name "vte-ng")
3356 (version "0.58.2.a")
3357 (home-page "https://github.com/thestinger/vte-ng")
3358 (source (origin
3359 (method git-fetch)
3360 (uri (git-reference (url home-page) (commit version)))
3361 (file-name (git-file-name name version))
3362 (sha256
3363 (base32
3364 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3365 (build-system meson-build-system)
3366 (native-inputs
3367 `(("gtk-doc" ,gtk-doc)
3368 ,@(package-native-inputs vte)))
3369 (arguments
3370 `(#:configure-flags '("-Ddocs=true")))
3371 (synopsis "Enhanced VTE terminal widget")
3372 (description
3373 "VTE is a library (libvte) implementing a terminal emulator widget for
3374 GTK+, this fork provides additional functions exposed for keyboard text
3375 selection and URL hints.")))
3376
3377 ;; provides vte 2.90, required for some terminal emulators
3378 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3379 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3380 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3381 ;; pantheon-terminal, roxterm are not currently packaged
3382 (define-public vte-0.36
3383 (package (inherit vte)
3384 (name "vte")
3385 (version "0.36.5")
3386 (source (origin
3387 (method url-fetch)
3388 (uri (string-append "mirror://gnome/sources/" name "/"
3389 (version-major+minor version) "/"
3390 name "-" version ".tar.xz"))
3391 (sha256
3392 (base32
3393 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3394 (propagated-inputs
3395 `(("gtk" ,gtk+)
3396 ("ncurses" ,ncurses)))))
3397
3398 ;; stable version for gtk2, required by xfce4-terminal.
3399 (define-public vte/gtk+-2
3400 (package (inherit vte)
3401 (name "vte")
3402 (version "0.28.2")
3403 (source (origin
3404 (method url-fetch)
3405 (uri (string-append "mirror://gnome/sources/" name "/"
3406 (version-major+minor version) "/"
3407 name "-" version ".tar.xz"))
3408 (sha256
3409 (base32
3410 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3411 (patches (search-patches
3412 "vte-CVE-2012-2738-pt1.patch"
3413 "vte-CVE-2012-2738-pt2.patch"))))
3414 (build-system gnu-build-system)
3415 (arguments
3416 '(#:configure-flags '("--disable-python")))
3417 (native-inputs
3418 `(("pkg-config" ,pkg-config)
3419 ("intltool" ,intltool)
3420 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3421 (propagated-inputs
3422 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3423 ("ncurses" ,ncurses))))) ; required by libvte.la
3424
3425 (define-public vinagre
3426 (package
3427 (name "vinagre")
3428 (version "3.22.0")
3429 (source (origin
3430 (method url-fetch)
3431 (uri (string-append "mirror://gnome/sources/" name "/"
3432 (version-major+minor version) "/"
3433 name "-" version ".tar.xz"))
3434 (patches (search-patches "vinagre-newer-freerdp.patch"
3435 "vinagre-newer-rdp-parameters.patch"))
3436 (sha256
3437 (base32
3438 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3439 (build-system glib-or-gtk-build-system)
3440 (arguments
3441 ;; Disable -Werror and such, to avoid build failures on compilation
3442 ;; warnings.
3443 '(#:configure-flags '("--enable-compile-warnings=minimum")
3444 #:phases
3445 (modify-phases %standard-phases
3446 (add-before 'install 'skip-gtk-update-icon-cache
3447 (lambda _
3448 ;; Don't create 'icon-theme.cache'
3449 (substitute* (find-files "." "^Makefile$")
3450 (("gtk-update-icon-cache") (which "true")))
3451 #t))
3452 (add-after 'unpack 'patch-configure
3453 (lambda _
3454 (substitute* "configure"
3455 (("freerdp") "freerdp2"))
3456 #t)))))
3457 (native-inputs
3458 `(("pkg-config" ,pkg-config)
3459 ("intltool" ,intltool)
3460 ("itstool" ,itstool)
3461 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3462 (inputs
3463 `(("libxml2" ,libxml2)
3464 ("gtk-vnc" ,gtk-vnc)
3465 ("gnome-keyring" ,gnome-keyring)
3466 ("libsecret" ,libsecret)
3467 ("freerdp" ,freerdp)
3468 ("spice" ,spice)
3469 ("spice-gtk" ,spice-gtk)
3470 ("telepathy-glib" ,telepathy-glib)
3471 ("vte" ,vte)))
3472 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3473 (synopsis "Remote desktop viewer for GNOME")
3474 (description "Vinagre is a remote display client supporting the VNC, SPICE
3475 and RDP protocols.")
3476 (license license:gpl3+)))
3477
3478 (define-public dconf
3479 (package
3480 (name "dconf")
3481 (version "0.34.0")
3482 (source (origin
3483 (method url-fetch)
3484 (uri (string-append
3485 "mirror://gnome/sources/" name "/"
3486 (version-major+minor version) "/"
3487 name "-" version ".tar.xz"))
3488 (patches (search-patches "dconf-meson-0.52.patch"))
3489 (sha256
3490 (base32
3491 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
3492 (build-system meson-build-system)
3493 (propagated-inputs
3494 ;; In Requires of dconf.pc.
3495 `(("glib" ,glib)))
3496 (inputs
3497 `(("gtk+" ,gtk+)
3498 ("dbus" ,dbus)))
3499 (native-inputs
3500 `(("bash-completion" ,bash-completion)
3501 ("libxslt" ,libxslt) ;for xsltproc
3502 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3503 ("docbook-xml" ,docbook-xml-4.2)
3504 ("docbook-xsl" ,docbook-xsl)
3505 ("glib:bin" ,glib "bin")
3506 ("gtk-doc" ,gtk-doc)
3507 ("pkg-config" ,pkg-config)
3508 ("vala" ,vala)))
3509 (arguments
3510 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3511 ; or /etc/machine-id.
3512 #:glib-or-gtk? #t
3513 #:configure-flags '("-Denable-gtk-doc=true")))
3514 (home-page "https://developer.gnome.org/dconf/")
3515 (synopsis "Low-level GNOME configuration system")
3516 (description "Dconf is a low-level configuration system. Its main purpose
3517 is to provide a backend to GSettings on platforms that don't already have
3518 configuration storage systems.")
3519 (license license:lgpl2.1+)))
3520
3521 (define-public json-glib
3522 (package
3523 (name "json-glib")
3524 (version "1.4.4")
3525 (source (origin
3526 (method url-fetch)
3527 (uri (string-append "mirror://gnome/sources/" name "/"
3528 (version-major+minor version) "/"
3529 name "-" version ".tar.xz"))
3530 (sha256
3531 (base32
3532 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3533 (build-system meson-build-system)
3534 (native-inputs
3535 `(("gettext" ,gettext-minimal)
3536 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3537 ("gobject-introspection" ,gobject-introspection)
3538 ("pkg-config" ,pkg-config)))
3539 (propagated-inputs
3540 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3541 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3542 (synopsis "Compiler for the GObject type system")
3543 (description
3544 "JSON-GLib is a C library based on GLib providing serialization and
3545 deserialization support for the JavaScript Object Notation (JSON) format
3546 described by RFC 4627. It provides parser and generator GObject classes and
3547 various wrappers for the complex data types employed by JSON, such as arrays
3548 and objects.")
3549 (license license:lgpl2.1+)))
3550
3551 (define-public libxklavier
3552 (package
3553 (name "libxklavier")
3554 (version "5.4")
3555 (source (origin
3556 ;; Note: There's no tarball at ftp.gnome.org for this version.
3557 (method git-fetch)
3558 (uri (git-reference
3559 (url "https://anongit.freedesktop.org/git/libxklavier")
3560 (commit (string-append "libxklavier-" version))))
3561 (sha256
3562 (base32
3563 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3564 (file-name (git-file-name name version))))
3565 (build-system gnu-build-system)
3566 (arguments
3567 '(#:configure-flags
3568 (list (string-append "--with-xkb-base="
3569 (assoc-ref %build-inputs "xkeyboard-config")
3570 "/share/X11/xkb")
3571 "--disable-xmodmap-support")))
3572 (native-inputs
3573 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3574 ("gobject-introspection" ,gobject-introspection)
3575 ("pkg-config" ,pkg-config)
3576 ("gtk-doc" ,gtk-doc)
3577 ("intltool" ,intltool)
3578 ("which" ,which)
3579 ("autoconf" ,autoconf)
3580 ("automake" ,automake)
3581 ("libtool" ,libtool)))
3582 (propagated-inputs
3583 ;; Required by libxklavier.pc.
3584 `(("glib" ,glib)
3585 ("libxml2" ,libxml2)))
3586 (inputs
3587 `(("iso-codes" ,iso-codes)
3588 ("libxi" ,libxi)
3589 ("libxkbfile" ,libxkbfile)
3590 ("xkbcomp" ,xkbcomp)
3591 ("xkeyboard-config" ,xkeyboard-config)))
3592 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3593 (synopsis "High-level API for X Keyboard Extension")
3594 (description
3595 "LibXklavier is a library providing high-level API for X Keyboard
3596 Extension known as XKB. This library is intended to support XFree86 and other
3597 commercial X servers. It is useful for creating XKB-related software (layout
3598 indicators etc).")
3599 (license license:lgpl2.0+)))
3600
3601 (define-public python2-rsvg
3602 ;; XXX: This is actually a subset of gnome-python-desktop.
3603 (package
3604 (name "python2-rsvg")
3605 (version "2.32.0")
3606 (source
3607 (origin
3608 (method url-fetch)
3609 (uri (string-append
3610 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3611 version ".tar.bz2"))
3612 (sha256
3613 (base32
3614 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3615 (build-system gnu-build-system)
3616 (native-inputs
3617 `(("pkg-config" ,pkg-config)))
3618 (inputs
3619 `(("python" ,python-2)
3620 ("python2-pygtk" ,python2-pygtk)
3621 ("librsvg" ,librsvg)))
3622 (home-page "https://www.gnome.org")
3623 (synopsis "Python bindings to librsvg")
3624 (description
3625 "This package provides Python bindings to librsvg, the SVG rendering
3626 library.")
3627
3628 ;; This is the license of the rsvg bindings. The license of each module
3629 ;; of gnome-python-desktop is given in 'COPYING'.
3630 (license license:lgpl2.1+)))
3631
3632 (define-public glib-networking
3633 (package
3634 (name "glib-networking")
3635 (version "2.62.2")
3636 (source (origin
3637 (method url-fetch)
3638 (uri (string-append "mirror://gnome/sources/glib-networking/"
3639 (version-major+minor version) "/"
3640 "glib-networking-" version ".tar.xz"))
3641 (sha256
3642 (base32
3643 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
3644 (build-system meson-build-system)
3645 (arguments
3646 `(#:configure-flags '("-Dlibproxy_support=false")))
3647 (native-inputs
3648 `(("pkg-config" ,pkg-config)
3649 ("intltool" ,intltool)))
3650 (inputs
3651 `(("glib" ,glib)
3652 ("gnutls" ,gnutls)
3653 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3654 (home-page "https://www.gnome.org")
3655 (synopsis "Network-related GIO modules")
3656 (description
3657 "This package contains various network related extensions for the GIO
3658 library.")
3659 (license license:lgpl2.0+)))
3660
3661 (define-public rest
3662 (package
3663 (name "rest")
3664 (version "0.8.1")
3665 (source (origin
3666 (method url-fetch)
3667 (uri (string-append "mirror://gnome/sources/rest/"
3668 (version-major+minor version) "/"
3669 name "-" version ".tar.xz"))
3670 (sha256
3671 (base32
3672 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3673 (build-system gnu-build-system)
3674 (arguments
3675 '(#:tests? #f ; tests require internet connection
3676 #:configure-flags
3677 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3678 (native-inputs
3679 `(("glib-mkenums" ,glib "bin")
3680 ("gobject-introspection" ,gobject-introspection)
3681 ("pkg-config" ,pkg-config)))
3682 (propagated-inputs
3683 ;; rest-0.7.pc refers to all these.
3684 `(("glib" ,glib)
3685 ("libsoup" ,libsoup)
3686 ("libxml2" ,libxml2)))
3687 (home-page "https://www.gtk.org/")
3688 (synopsis "RESTful web api query library")
3689 (description
3690 "This library was designed to make it easier to access web services that
3691 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3692 libxml to ease remote use of the RESTful API.")
3693 (license license:lgpl2.1+)))
3694
3695 (define-public libsoup
3696 (package
3697 (name "libsoup")
3698 (version "2.70.0")
3699 (source (origin
3700 (method url-fetch)
3701 (uri (string-append "mirror://gnome/sources/libsoup/"
3702 (version-major+minor version) "/"
3703 "libsoup-" version ".tar.xz"))
3704 (sha256
3705 (base32
3706 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
3707 (build-system meson-build-system)
3708 (outputs '("out" "doc"))
3709 (arguments
3710 `(#:modules ((guix build utils)
3711 (guix build meson-build-system)
3712 (ice-9 popen))
3713
3714 #:configure-flags '("-Dgtk_doc=true")
3715 #:phases
3716 (modify-phases %standard-phases
3717 (add-after 'unpack 'adjust-tests
3718 (lambda _
3719 ;; This test fails due to missing /etc/nsswitch.conf
3720 ;; in the build environment.
3721 (substitute* "tests/socket-test.c"
3722 ((".*/sockets/unconnected.*") ""))
3723
3724 ;; These fail because "subdomain.localhost" does not resolve in
3725 ;; the build environment.
3726 (substitute* "tests/hsts-test.c"
3727 ((".*/hsts/basic.*") "")
3728 ((".*/hsts/subdomains.*") "")
3729 ((".*/hsts/superdomain.*") "")
3730 ((".*/hsts/utf8-address.*") ""))
3731 (substitute* "tests/hsts-db-test.c"
3732 ((".*/hsts-db/subdomains.*") ""))
3733
3734 ;; Generate a self-signed certificate that has "localhost" as its
3735 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3736 ;; 3.5.12, tests such as "ssl-tests" fail:
3737 ;;
3738 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3739 ;;
3740 ;; 'certtool' is interactive so we have to pipe it the answers.
3741 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3742 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3743 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3744 (for-each (lambda (line)
3745 (display line pipe)
3746 (newline pipe))
3747 '("" ;Common name
3748 "" ;UID
3749 "Guix" ;Organizational unit name
3750 "GNU" ;Organization name
3751 "" ;Locality name
3752 "" ;State or province
3753 "" ;Country
3754 "" ;subject's domain component (DC)
3755 "" ;E-mail
3756 "" ;serial number
3757 "-1" ;expiration time
3758 "N" ;belong to authority?
3759 "N" ;web client certificate?
3760 "N" ;IPsec IKE?
3761 "Y" ;web server certificate?
3762 "localhost" ;dnsName of subject
3763 "" ;dnsName of subject (end)
3764 "" ;URI of subject
3765 "127.0.0.1" ;IP address of subject
3766 "" ;signing?
3767 "" ;encryption (RSA)?
3768 "" ;data encryption?
3769 "" ;sign OCSP requests?
3770 "" ;sign code?
3771 "" ;time stamping?
3772 "" ;email protection?
3773 "" ;URI of the CRL distribution point
3774 "y" ;above info OK?
3775 ))
3776 (close-pipe pipe))
3777 #t))
3778 (add-after 'install 'move-doc
3779 (lambda* (#:key outputs #:allow-other-keys)
3780 (let ((out (assoc-ref outputs "out"))
3781 (doc (assoc-ref outputs "doc")))
3782 (mkdir-p (string-append doc "/share"))
3783 (copy-recursively (string-append out "/share/gtk-doc")
3784 (string-append doc "/share/gtk-doc"))
3785 (delete-file-recursively (string-append out "/share/gtk-doc"))
3786 #t))))))
3787 (native-inputs
3788 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3789 ("gobject-introspection" ,gobject-introspection)
3790 ("gtk-doc" ,gtk-doc)
3791 ("intltool" ,intltool)
3792 ("pkg-config" ,pkg-config)
3793 ("python" ,python-wrapper)
3794 ("vala" ,vala)
3795 ("php" ,php)
3796 ("curl" ,curl)
3797 ("gnutls" ,gnutls) ;for 'certtool'
3798 ("httpd" ,httpd)))
3799 (propagated-inputs
3800 ;; libsoup-2.4.pc refers to all these.
3801 `(("brotli" ,google-brotli)
3802 ("glib" ,glib)
3803 ("libpsl" ,libpsl)
3804 ("libxml2" ,libxml2)
3805 ("sqlite" ,sqlite)
3806 ("zlib" ,zlib)))
3807 (inputs
3808 `(("glib-networking" ,glib-networking)
3809 ("mit-krb5" ,mit-krb5)))
3810 (home-page "https://live.gnome.org/LibSoup/")
3811 (synopsis "GLib-based HTTP Library")
3812 (description
3813 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3814 and the GLib main loop, to integrate well with GNOME applications.")
3815 (license license:lgpl2.0+)))
3816
3817
3818 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
3819 (define-public libsoup-minimal
3820 (package
3821 (inherit libsoup)
3822 (name "libsoup-minimal")
3823 (outputs (delete "doc" (package-outputs libsoup)))
3824 (arguments
3825 (substitute-keyword-arguments (package-arguments libsoup)
3826 ((#:configure-flags configure-flags)
3827 `(delete "-Dgtk_doc=true" ,configure-flags))
3828 ((#:phases phases)
3829 `(modify-phases ,phases
3830 (delete 'move-doc)))))
3831 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
3832
3833 (define-public libsecret
3834 (package
3835 (name "libsecret")
3836 (version "0.20.3")
3837 (source (origin
3838 (method url-fetch)
3839 (uri (string-append
3840 "mirror://gnome/sources/libsecret/"
3841 (version-major+minor version) "/"
3842 "libsecret-" version ".tar.xz"))
3843 (sha256
3844 (base32
3845 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
3846 (build-system gnu-build-system)
3847 (outputs '("out" "doc"))
3848 (arguments
3849 `(#:tests? #f ; FIXME: Testing hangs.
3850 #:configure-flags
3851 (list (string-append "--with-html-dir="
3852 (assoc-ref %outputs "doc")
3853 "/share/gtk-doc/html"))))
3854 (native-inputs
3855 `(("gettext" ,gettext-minimal)
3856 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3857 ("gobject-introspection" ,gobject-introspection)
3858 ("pkg-config" ,pkg-config)
3859 ("vala" ,vala)
3860 ("xsltproc" ,libxslt)))
3861 ;; These are needed for the tests.
3862 ;; FIXME: Add gjs once available.
3863 ;("dbus" ,dbus)
3864 ;("python2" ,python-2)
3865 ;("python2-dbus" ,python2-dbus)
3866 ;("python2-pygobject" ,python2-pygobject)
3867 ;("python2-pygobject-2" ,python2-pygobject-2)))
3868 (propagated-inputs
3869 `(("glib" ,glib))) ; required by libsecret-1.pc
3870 (inputs
3871 `(("docbook-xsl" ,docbook-xsl)
3872 ("libgcrypt" ,libgcrypt)
3873 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3874 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3875 (synopsis "GObject bindings for \"Secret Service\" API")
3876 (description
3877 "Libsecret is a GObject based library for storing and retrieving passwords
3878 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3879 (license license:lgpl2.1+)))
3880
3881 (define-public five-or-more
3882 (package
3883 (name "five-or-more")
3884 (version "3.32.2")
3885 (source
3886 (origin
3887 (method url-fetch)
3888 (uri (string-append "mirror://gnome/sources/five-or-more/"
3889 (version-major+minor version) "/"
3890 "five-or-more-" version ".tar.xz"))
3891 (sha256
3892 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
3893 (build-system meson-build-system)
3894 (arguments
3895 '(#:glib-or-gtk? #t
3896 #:phases
3897 (modify-phases %standard-phases
3898 (add-after 'unpack 'skip-gtk-update-icon-cache
3899 (lambda _
3900 (substitute* "meson_post_install.py"
3901 (("gtk-update-icon-cache") (which "true")))
3902 #t)))))
3903 (native-inputs
3904 `(("pkg-config" ,pkg-config)
3905 ("appstream-glib" ,appstream-glib)
3906 ("desktop-file-utils" ,desktop-file-utils)
3907 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3908 ("intltool" ,intltool)
3909 ("itstool" ,itstool)
3910 ("vala" ,vala)
3911 ("xmllint" ,libxml2)))
3912 (inputs
3913 `(("gtk+" ,gtk+)
3914 ("libgnome-games-support" ,libgnome-games-support)
3915 ("librsvg" ,librsvg)))
3916 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3917 (synopsis "Logic puzzle game")
3918 (description "Five or More is a game where you try to align
3919 five or more objects of the same color and shape causing them to disappear.
3920 On every turn more objects will appear, until the board is full.
3921 Try to last as long as possible.")
3922 (license license:gpl2+)))
3923
3924 (define-public gnome-mines
3925 (package
3926 (name "gnome-mines")
3927 (version "3.34.0")
3928 (source
3929 (origin
3930 (method url-fetch)
3931 (uri (string-append "mirror://gnome/sources/" name "/"
3932 (version-major+minor version) "/"
3933 name "-" version ".tar.xz"))
3934 (sha256
3935 (base32
3936 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
3937 (build-system meson-build-system)
3938 (arguments
3939 '(#:glib-or-gtk? #t
3940 #:phases
3941 (modify-phases %standard-phases
3942 (add-after 'unpack 'skip-gtk-update-icon-cache
3943 (lambda _
3944 (substitute* "build-aux/meson_post_install.py"
3945 (("gtk-update-icon-cache") (which "true")))
3946 #t)))))
3947 (native-inputs
3948 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3949 ("pkg-config" ,pkg-config)
3950 ("desktop-file-utils" ,desktop-file-utils)
3951 ("intltool" ,intltool)
3952 ("itstool" ,itstool)
3953 ("vala" ,vala)
3954 ("yelp" ,yelp)
3955 ("appstream-glib" ,appstream-glib)))
3956 (inputs
3957 `(("gtk+" ,gtk+)
3958 ("libgnome-games-support" ,libgnome-games-support)
3959 ("librsvg" ,librsvg)))
3960 (home-page "https://wiki.gnome.org/Apps/Mines")
3961 (synopsis "Minesweeper game")
3962 (description
3963 "Mines (previously gnomine) is a puzzle game where you locate mines
3964 floating in an ocean using only your brain and a little bit of luck.")
3965 (license license:gpl2+)))
3966
3967 (define-public gnome-sudoku
3968 (package
3969 (name "gnome-sudoku")
3970 (version "3.34.1")
3971 (source
3972 (origin
3973 (method url-fetch)
3974 (uri (string-append "mirror://gnome/sources/" name "/"
3975 (version-major+minor version) "/"
3976 name "-" version ".tar.xz"))
3977 (sha256
3978 (base32
3979 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
3980 (build-system meson-build-system)
3981 (arguments
3982 '(#:glib-or-gtk? #t
3983 #:phases
3984 (modify-phases %standard-phases
3985 (add-after 'unpack 'skip-gtk-update-icon-cache
3986 (lambda _
3987 (substitute* "build-aux/post_install.py"
3988 (("gtk-update-icon-cache") (which "true")))
3989 #t)))))
3990 (native-inputs
3991 `(("pkg-config" ,pkg-config)
3992 ("desktop-file-utils" ,desktop-file-utils)
3993 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3994 ("intltool" ,intltool)
3995 ("itstool" ,itstool)
3996 ("vala" ,vala)
3997 ("xmllint" ,libxml2)))
3998 (inputs
3999 `(("gtk+" ,gtk+)
4000 ("json-glib" ,json-glib)
4001 ("libgee" ,libgee)
4002 ("librsvg" ,librsvg)
4003 ("qqwing" ,qqwing)))
4004 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4005 (synopsis "Japanese logic game")
4006 (description
4007 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4008 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4009 possible while still providing features that make playing difficult Sudoku
4010 more fun.")
4011 (license license:gpl2+)))
4012
4013 (define-public gnome-terminal
4014 (package
4015 (name "gnome-terminal")
4016 (version "3.34.2")
4017 (source
4018 (origin
4019 (method url-fetch)
4020 (uri (string-append "mirror://gnome/sources/" name "/"
4021 (version-major+minor version) "/"
4022 name "-" version ".tar.xz"))
4023 (sha256
4024 (base32
4025 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
4026 (build-system glib-or-gtk-build-system)
4027 (arguments
4028 '(#:configure-flags
4029 (list "--disable-migration" "--disable-search-provider"
4030 "--without-nautilus-extension")
4031 #:phases
4032 (modify-phases %standard-phases
4033 (add-before 'configure 'patch-/bin/true
4034 (lambda _
4035 (substitute* "configure"
4036 (("/bin/true") (which "true"))))))))
4037 (native-inputs
4038 `(("pkg-config" ,pkg-config)
4039 ("desktop-file-utils" ,desktop-file-utils)
4040 ("intltool" ,intltool)
4041 ("itstool" ,itstool)
4042 ("xmllint" ,libxml2)))
4043 (propagated-inputs
4044 `(("dconf" ,dconf)))
4045 (inputs
4046 `(("gtk+" ,gtk+)
4047 ("vte" ,vte)
4048 ("gnutls" ,gnutls)
4049 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4050 ("util-linux" ,util-linux "lib")
4051 ("vala" ,vala)))
4052 (home-page "https://wiki.gnome.org/Apps/Terminal")
4053 (synopsis "Terminal emulator")
4054 (description
4055 "GNOME Terminal is a terminal emulator application for accessing a
4056 UNIX shell environment which can be used to run programs available on
4057 your system.
4058
4059 It supports several profiles, multiple tabs and implements several
4060 keyboard shortcuts.")
4061 (license license:gpl3+)))
4062
4063 (define-public colord
4064 (package
4065 (name "colord")
4066 (version "1.4.4")
4067 (source
4068 (origin
4069 (method url-fetch)
4070 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
4071 "colord-" version ".tar.xz"))
4072 (sha256
4073 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
4074 (build-system meson-build-system)
4075 (arguments
4076 '(;; FIXME: One test fails:
4077 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4078 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4079 ;; application/x-zerosize
4080 #:tests? #f
4081 #:glib-or-gtk? #t
4082 #:configure-flags (list "-Dlocalstatedir=/var"
4083 ;; No dep on systemd.
4084 "-Dsystemd=false"
4085 ;; Wants to install to global completion dir;
4086 ;; punt.
4087 "-Dbash_completion=false"
4088 "-Ddaemon_user=colord"
4089 "-Dsane=true"
4090 "-Dvapi=true"
4091 ;; Requires spotread.
4092 "-Dargyllcms_sensor=false"
4093 ;; TODO: Requires docbook2x.
4094 "-Dman=false")
4095 #:phases
4096 (modify-phases %standard-phases
4097 (add-before 'configure 'patch-build-system
4098 (lambda* (#:key outputs #:allow-other-keys)
4099 (substitute* "rules/meson.build"
4100 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4101 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4102 #t))
4103 (add-before 'configure 'set-sqlite3-file-name
4104 (lambda* (#:key inputs #:allow-other-keys)
4105 ;; "colormgr dump" works by invoking the "sqlite3" command.
4106 ;; Record its absolute file name.
4107 (let ((sqlite (assoc-ref inputs "sqlite")))
4108 (substitute* "client/cd-util.c"
4109 (("\"sqlite3\"")
4110 (string-append "\"" sqlite "/bin/sqlite3\"")))
4111 #t))))))
4112 (native-inputs
4113 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4114 ("gettext" ,gettext-minimal)
4115 ("gobject-introspection" ,gobject-introspection)
4116 ("gtk-doc" ,gtk-doc)
4117 ("pkg-config" ,pkg-config)
4118 ("vala" ,vala)))
4119 (propagated-inputs
4120 ;; colord.pc refers to all these.
4121 `(("glib" ,glib)
4122 ("lcms" ,lcms)
4123 ("udev" ,eudev)))
4124 (inputs
4125 `(("dbus-glib" ,dbus-glib)
4126 ("gusb" ,gusb)
4127 ("libgudev" ,libgudev)
4128 ("libusb" ,libusb)
4129 ("polkit" ,polkit)
4130 ("python" ,python-wrapper)
4131 ("sqlite" ,sqlite)
4132 ("sane-backends" ,sane-backends)))
4133 (home-page "https://www.freedesktop.org/software/colord/")
4134 (synopsis "Color management service")
4135 (description "Colord is a system service that makes it easy to manage,
4136 install and generate color profiles to accurately color manage input and
4137 output devices.")
4138 (license license:gpl2+)))
4139
4140 (define-public geoclue
4141 (package
4142 (name "geoclue")
4143 (version "2.5.6")
4144 (source
4145 (origin
4146 (method url-fetch)
4147 (uri
4148 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4149 version "/geoclue-" version ".tar.bz2"))
4150 (sha256
4151 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
4152 (patches (search-patches "geoclue-config.patch"))))
4153 (build-system meson-build-system)
4154 (arguments
4155 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4156 (native-inputs
4157 `(("pkg-config" ,pkg-config)
4158 ("gobject-introspection" ,gobject-introspection)
4159 ("modem-manager" ,modem-manager)
4160 ("libnotify" ,libnotify)
4161 ("gtk-doc", gtk-doc)
4162 ("intltool" ,intltool)))
4163 (inputs
4164 `(("avahi" ,avahi)
4165 ("glib:bin" ,glib "bin")
4166 ("glib-networking" ,glib-networking)
4167 ("json-glib" ,json-glib)
4168 ("libsoup" ,libsoup)))
4169 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4170 (synopsis "Geolocation service")
4171 (description "Geoclue is a D-Bus service that provides location
4172 information. The primary goal of the Geoclue project is to make creating
4173 location-aware applications as simple as possible, while the secondary goal is
4174 to ensure that no application can access location information without explicit
4175 permission from user.")
4176 (license license:gpl2+)))
4177
4178 (define-public geocode-glib
4179 (package
4180 (name "geocode-glib")
4181 (version "3.26.1")
4182 (source (origin
4183 (method url-fetch)
4184 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4185 (version-major+minor version) "/"
4186 "geocode-glib-" version ".tar.xz"))
4187 (sha256
4188 (base32
4189 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4190 (build-system meson-build-system)
4191 (arguments
4192 `(#:phases
4193 (modify-phases %standard-phases
4194 ;; The tests require a bunch of locales.
4195 (add-before 'check 'set-locales
4196 (lambda* (#:key inputs #:allow-other-keys)
4197 (setenv "GUIX_LOCPATH"
4198 (string-append (assoc-ref inputs "glibc-locales")
4199 "/lib/locale"))
4200 #t)))))
4201 (native-inputs
4202 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4203 ("glibc-locales" ,glibc-locales) ; for tests
4204 ("gettext" ,gettext-minimal)
4205 ("gobject-introspection" ,gobject-introspection)
4206 ("gtk-doc" ,gtk-doc)
4207 ("pkg-config" ,pkg-config)
4208 ("json-glib" ,json-glib)))
4209 (propagated-inputs
4210 ;; geocode-glib-1.0.pc refers to GIO.
4211 `(("glib" ,glib)))
4212 (inputs
4213 `(("libsoup" ,libsoup)))
4214 (home-page "https://github.com/GNOME/geocode-glib/")
4215 (synopsis "Geocoding and reverse-geocoding library")
4216 (description
4217 "geocode-glib is a convenience library for geocoding (finding longitude,
4218 and latitude from an address) and reverse geocoding (finding an address from
4219 coordinates) using the Nominatim service. geocode-glib caches requests for
4220 faster results and to avoid unnecessary server load.")
4221 (license license:lgpl2.0+)))
4222
4223 (define-public upower
4224 (package
4225 (name "upower")
4226 (version "0.99.11")
4227 (source (origin
4228 (method url-fetch)
4229 (uri (string-append "https://upower.freedesktop.org/releases/"
4230 "upower-" version ".tar.xz"))
4231 (sha256
4232 (base32
4233 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4234 (patches (search-patches "upower-builddir.patch"))
4235 (modules '((guix build utils)))
4236 (snippet
4237 '(begin
4238 ;; Upstream commit
4239 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4240 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4241 ;; 'dbus-configuration-directory' in (gnu services dbus)
4242 ;; expects it in etc/. Thus, move it back to its previous
4243 ;; location.
4244 (substitute* "src/Makefile.in"
4245 (("^dbusconfdir =.*$")
4246 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4247 #t))))
4248 (build-system glib-or-gtk-build-system)
4249 (arguments
4250 '(#:phases
4251 (modify-phases %standard-phases
4252 (add-before 'check 'pre-check
4253 (lambda* (#:key inputs #:allow-other-keys)
4254 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4255 "/lib")))
4256 (setenv "LD_LIBRARY_PATH" umockdev))
4257 #t)))
4258 #:configure-flags (list "--localstatedir=/var"
4259 (string-append "--with-udevrulesdir="
4260 (assoc-ref %outputs "out")
4261 "/lib/udev/rules.d"))))
4262 (native-inputs
4263 `(("gobject-introspection" ,gobject-introspection)
4264 ("pkg-config" ,pkg-config)
4265 ("intltool" ,intltool)
4266 ("python" ,python)
4267
4268 ;; For tests.
4269 ("python-dbus" ,python-dbus)
4270 ("python-dbusmock" ,python-dbusmock)
4271 ("python-pygobject" ,python-pygobject)
4272 ("umockdev" ,umockdev)
4273
4274 ;; For man pages.
4275 ("libxslt" ,libxslt) ;for 'xsltproc'
4276 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4277 ("docbook-xsl" ,docbook-xsl)))
4278 (inputs
4279 `(("dbus-glib" ,dbus-glib)
4280 ("libgudev" ,libgudev)
4281 ("libusb" ,libusb)))
4282 (propagated-inputs
4283 ;; In Requires of upower-glib.pc.
4284 `(("glib" ,glib)))
4285 (home-page "https://upower.freedesktop.org/")
4286 (synopsis "System daemon for managing power devices")
4287 (description
4288 "UPower is an abstraction for enumerating power devices,
4289 listening to device events and querying history and statistics. Any
4290 application or service on the system can access the org.freedesktop.UPower
4291 service via the system message bus.")
4292 (license license:gpl2+)))
4293
4294 (define-public libgweather
4295 (package
4296 (name "libgweather")
4297 (version "3.34.0")
4298 (source (origin
4299 (method url-fetch)
4300 (uri (string-append "mirror://gnome/sources/" name "/"
4301 (version-major+minor version) "/"
4302 name "-" version ".tar.xz"))
4303 (sha256
4304 (base32
4305 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
4306 (build-system meson-build-system)
4307 (arguments
4308 `(#:tests? #f ; one of two tests requires network access
4309 #:configure-flags
4310 `(,(string-append "-Dzoneinfo_dir="
4311 (assoc-ref %build-inputs "tzdata")
4312 "/share/zoneinfo"))))
4313 (native-inputs
4314 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4315 ("gobject-introspection" ,gobject-introspection)
4316 ("pkg-config" ,pkg-config)
4317 ("vala" ,vala)
4318 ("intltool" ,intltool)))
4319 (propagated-inputs
4320 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4321 ;; libsoup.
4322 `(("gtk+" ,gtk+)
4323 ("gdk-pixbuf" ,gdk-pixbuf)
4324 ("libxml2" ,libxml2)
4325 ("libsoup" ,libsoup)
4326 ("geocode-glib" ,geocode-glib)))
4327 (inputs
4328 `(("tzdata" ,tzdata)))
4329 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4330 (synopsis "Location, time zone, and weather library for GNOME")
4331 (description
4332 "libgweather is a library to access weather information from online
4333 services for numerous locations.")
4334 (license license:gpl2+)))
4335
4336 (define-public gnome-settings-daemon
4337 (package
4338 (name "gnome-settings-daemon")
4339 (version "3.34.1")
4340 (source
4341 (origin
4342 (method url-fetch)
4343 (uri (string-append "mirror://gnome/sources/" name "/"
4344 (version-major+minor version) "/"
4345 name "-" version ".tar.xz"))
4346 (sha256
4347 (base32
4348 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
4349 (build-system meson-build-system)
4350 (arguments
4351 `(#:glib-or-gtk? #t
4352 #:configure-flags
4353 (list (string-append "-Dudev_dir="
4354 (assoc-ref %outputs "out")
4355 "/lib/udev/rules.d/")
4356 "-Dsystemd=false"
4357 ;; Otherwise, the RUNPATH will lack the final path component.
4358 (string-append "-Dc_link_args=-Wl,-rpath="
4359 (assoc-ref %outputs "out")
4360 "/lib/gnome-settings-daemon-3.0"))
4361 ;; Color management test can't reach the colord system service.
4362 #:tests? #f))
4363 (native-inputs
4364 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4365 ("pkg-config" ,pkg-config)
4366 ("intltool" ,intltool)
4367 ("xsltproc" ,libxslt)
4368 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4369 ("docbook-xml" ,docbook-xml-4.2)
4370 ("docbook-xsl" ,docbook-xsl)))
4371 (inputs
4372 `(("alsa-lib" ,alsa-lib)
4373 ("colord" ,colord)
4374 ("libgudev" ,libgudev)
4375 ("upower" ,upower)
4376 ("polkit" ,polkit)
4377 ("pulseaudio" ,pulseaudio)
4378 ("libcanberra" ,libcanberra)
4379 ("libx11" ,libx11)
4380 ("libxtst" ,libxtst)
4381 ("lcms" ,lcms)
4382 ("libnotify" ,libnotify)
4383 ("geoclue" ,geoclue)
4384 ("geocode-glib" ,geocode-glib)
4385 ("libgweather" ,libgweather)
4386 ("gnome-desktop" ,gnome-desktop)
4387 ("nss" ,nss)
4388 ("cups" ,cups)
4389 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4390 ("libwacom" ,libwacom)
4391 ("librsvg" ,librsvg)
4392 ("xf86-input-wacom" ,xf86-input-wacom)
4393 ("wayland" ,wayland)
4394 ("network-manager" ,network-manager)
4395 ("gcr" ,gcr)
4396 ("modem-manager" ,modem-manager)))
4397 (home-page "https://www.gnome.org")
4398 (synopsis "GNOME settings daemon")
4399 (description
4400 "This package contains the daemon responsible for setting the various
4401 parameters of a GNOME session and the applications that run under it. It
4402 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4403 settings, themes, mouse settings, and startup of other daemons.")
4404 (license license:gpl2+)))
4405
4406 (define-public totem-pl-parser
4407 (package
4408 (name "totem-pl-parser")
4409 (version "3.26.3")
4410 (source (origin
4411 (method url-fetch)
4412 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4413 (version-major+minor version) "/"
4414 "totem-pl-parser-" version ".tar.xz"))
4415 (sha256
4416 (base32
4417 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4418 (build-system meson-build-system)
4419 (arguments
4420 ;; FIXME: Tests require gvfs.
4421 `(#:tests? #f))
4422 (native-inputs
4423 `(("intltool" ,intltool)
4424 ("glib" ,glib "bin")
4425 ("gobject-introspection" ,gobject-introspection)
4426 ("pkg-config" ,pkg-config)))
4427 (propagated-inputs
4428 `(("glib" ,glib)
4429 ("gmime" ,gmime)
4430 ("libarchive" ,libarchive)
4431 ("libgcrypt" ,libgcrypt)
4432 ("libxml2" ,libxml2)))
4433 (inputs
4434 `(("libsoup" ,libsoup)))
4435 (home-page "https://projects.gnome.org/totem")
4436 (synopsis "Library to parse and save media playlists for GNOME")
4437 (description "Totem-pl-parser is a GObjects-based library to parse and save
4438 playlists in a variety of formats.")
4439 (license license:lgpl2.0+)))
4440
4441 (define-public aisleriot
4442 (package
4443 (name "aisleriot")
4444 (version "3.22.9")
4445 (source (origin
4446 (method url-fetch)
4447 (uri (string-append "mirror://gnome/sources/aisleriot/"
4448 (version-major+minor version) "/"
4449 "aisleriot-" version ".tar.xz"))
4450 (sha256
4451 (base32
4452 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4453 (build-system glib-or-gtk-build-system)
4454 (arguments
4455 '(#:configure-flags
4456 '("--with-platform=gtk-only"
4457 "--with-card-theme-formats=svg")))
4458 (native-inputs
4459 `(("desktop-file-utils" ,desktop-file-utils)
4460 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4461 ("intltool" ,intltool)
4462 ("itstool" ,itstool)
4463 ("pkg-config" ,pkg-config)
4464 ("xmllint" ,libxml2)))
4465 (inputs
4466 `(("gtk+" ,gtk+)
4467 ("guile" ,guile-2.2)
4468 ("libcanberra" ,libcanberra)
4469 ("librsvg" ,librsvg)))
4470 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4471 (synopsis "Solitaire card games")
4472 (description
4473 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4474 which are easy to play with the aid of a mouse.")
4475 (license license:gpl3+)))
4476
4477 (define-public amtk
4478 (package
4479 (name "amtk")
4480 (version "5.0.2")
4481 (source (origin
4482 (method url-fetch)
4483 (uri (string-append "mirror://gnome/sources/amtk/"
4484 (version-major+minor version) "/"
4485 "amtk-" version ".tar.xz"))
4486 (sha256
4487 (base32
4488 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
4489 (build-system gnu-build-system)
4490 (arguments
4491 '(#:configure-flags '("--enable-gtk-doc")))
4492 (native-inputs
4493 `(("gobject-introspection" ,gobject-introspection)
4494 ("glib:bin" ,glib "bin") ; for glib-mkenums
4495 ("gtk-doc" ,gtk-doc)
4496 ("pkg-config" ,pkg-config)))
4497 (inputs
4498 `(("glib" ,glib)
4499 ("gtk+" ,gtk+)))
4500 (home-page "https://wiki.gnome.org/Projects/Amtk")
4501 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4502 (description
4503 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4504 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4505 both a traditional UI or a modern UI with a GtkHeaderBar.")
4506 (license license:lgpl2.1+)))
4507
4508 (define-public devhelp
4509 (package
4510 (name "devhelp")
4511 (version "3.34.0")
4512 (source (origin
4513 (method url-fetch)
4514 (uri (string-append "mirror://gnome/sources/" name "/"
4515 (version-major+minor version) "/"
4516 name "-" version ".tar.xz"))
4517 (sha256
4518 (base32
4519 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
4520 (build-system meson-build-system)
4521 (arguments
4522 '(#:glib-or-gtk? #t
4523 #:phases
4524 (modify-phases %standard-phases
4525 (add-after 'unpack 'skip-gtk-update-icon-cache
4526 ;; Don't create 'icon-theme.cache'.
4527 (lambda _
4528 (substitute* "meson_post_install.py"
4529 (("gtk-update-icon-cache") "true"))
4530 #t)))))
4531 (native-inputs
4532 `(("intltool" ,intltool)
4533 ("itstool" ,itstool)
4534 ("gobject-introspection" ,gobject-introspection)
4535 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4536 ("pkg-config" ,pkg-config)))
4537 (inputs
4538 `(("amtk" ,amtk)
4539 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4540 ("webkitgtk" ,webkitgtk)))
4541 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4542 (synopsis "API documentation browser for GNOME")
4543 (description
4544 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4545 natively with GTK-Doc (the API reference system developed for GTK+ and used
4546 throughout GNOME for API documentation).")
4547 (license license:gpl2+)))
4548
4549 (define-public cogl
4550 (package
4551 (name "cogl")
4552 (version "1.22.8")
4553 (source
4554 (origin
4555 (method url-fetch)
4556 (uri (string-append "mirror://gnome/sources/cogl/"
4557 (version-major+minor version) "/"
4558 "cogl-" version ".tar.xz"))
4559 (sha256
4560 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
4561 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4562 ;; cogl, corresponding changes may be appropriate in mutter as well.
4563 (build-system gnu-build-system)
4564 (native-inputs
4565 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4566 ("gobject-introspection" ,gobject-introspection)
4567 ("xorg-server" ,xorg-server-for-tests)
4568 ("pkg-config" ,pkg-config)))
4569 (propagated-inputs
4570 `(("glib" ,glib)
4571 ("gdk-pixbuf" ,gdk-pixbuf)
4572 ("libx11" ,libx11)
4573 ("libxext" ,libxext)
4574 ("libxfixes" ,libxfixes)
4575 ("libxdamage" ,libxdamage)
4576 ("libxcomposite" ,libxcomposite)
4577 ("libxrandr" ,libxrandr)))
4578 (inputs
4579 `(("mesa" ,mesa)
4580 ("cairo" ,cairo)
4581 ("pango" ,pango)
4582 ("gstreamer" ,gstreamer)
4583 ("gst-plugins-base" ,gst-plugins-base)
4584 ("wayland" ,wayland)))
4585 (arguments
4586 `(#:disallowed-references (,xorg-server-for-tests)
4587 #:configure-flags (list "--enable-cogl-gst"
4588 "--enable-wayland-egl-platform"
4589 "--enable-wayland-egl-server"
4590
4591 ;; Arrange to pass an absolute file name to
4592 ;; dlopen for libGL.so.
4593 (string-append "--with-gl-libname="
4594 (assoc-ref %build-inputs "mesa")
4595 "/lib/libGL.so"))
4596 #:phases
4597 (modify-phases %standard-phases
4598 (add-after 'unpack 'fix-build-with-mesa-20
4599 (lambda _
4600 ;; Work around a problem with Mesa 20 where some macros used by
4601 ;; Cogl went missing from eglext.h. This can likely be removed
4602 ;; for newer versions of Cogl or Mesa.
4603 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
4604 (substitute* '("configure"
4605 "cogl/winsys/cogl-winsys-egl-kms.c")
4606 (("#include <EGL/eglext.h>" all)
4607 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
4608 #t))
4609 (add-before 'check 'start-xorg-server
4610 (lambda* (#:key tests? inputs #:allow-other-keys)
4611 (if tests?
4612 (begin
4613 ;; The test suite requires a running X server.
4614 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4615 (assoc-ref inputs "xorg-server")))
4616 (setenv "DISPLAY" ":1")
4617 #t)
4618 (format #t "test suite not run~%"))
4619 #t)))))
4620 (home-page "https://www.cogl3d.org")
4621 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4622 (description
4623 "Cogl is a small library for using 3D graphics hardware to draw pretty
4624 pictures. The API departs from the flat state machine style of OpenGL and is
4625 designed to make it easy to write orthogonal components that can render
4626 without stepping on each others toes.")
4627 (license (list license:expat ; most of the code
4628 license:bsd-3 ; cogl/cogl-point-in-poly.c
4629 license:sgifreeb2.0 ; cogl-path/tesselator/
4630 license:asl2.0)))) ; examples/android/
4631
4632 (define-public clutter
4633 (package
4634 (name "clutter")
4635 (version "1.26.2")
4636 (source
4637 (origin
4638 (method url-fetch)
4639 (uri (string-append "mirror://gnome/sources/" name "/"
4640 (version-major+minor version) "/"
4641 name "-" version ".tar.xz"))
4642 (sha256
4643 (base32
4644 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4645 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4646 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4647 (build-system gnu-build-system)
4648 (outputs '("out"
4649 "doc")) ;9 MiB of gtk-doc HTML pages
4650 (native-inputs
4651 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4652 ("gobject-introspection" ,gobject-introspection)
4653 ("pkg-config" ,pkg-config)
4654 ("xsltproc" ,libxslt)))
4655 (propagated-inputs
4656 `(("cogl" ,cogl)
4657 ("cairo" ,cairo)
4658 ("atk" ,atk)
4659 ("gtk+" ,gtk+)
4660 ("json-glib" ,json-glib)
4661 ("glib" ,glib)
4662 ("libxcomposite" ,libxcomposite)
4663 ("libxdamage" ,libxdamage)
4664 ("libxext" ,libxext)
4665 ("xinput" ,xinput)))
4666 (inputs
4667 `(("libxkbcommon" ,libxkbcommon)
4668 ("udev" ,eudev)))
4669 (arguments
4670 `(#:configure-flags (list "--enable-x11-backend=yes"
4671
4672 ;; This produces share/doc/{clutter,cally}.
4673 (string-append "--with-html-dir="
4674 (assoc-ref %outputs "doc")
4675 "/share/doc"))
4676 ;; XXX FIXME: Get test suite working. It would probably fail in the
4677 ;; same way the cogl tests fail, since clutter is based on cogl.
4678 #:tests? #f))
4679 (home-page "http://www.clutter-project.org")
4680 (synopsis "OpenGL-based interactive canvas library")
4681 (description
4682 "Clutter is an OpenGL-based interactive canvas library, designed for
4683 creating fast, mainly 2D single window applications such as media box UIs,
4684 presentations, kiosk style applications and so on.")
4685 (license license:lgpl2.0+)))
4686
4687 (define-public clutter-gtk
4688 (package
4689 (name "clutter-gtk")
4690 (version "1.8.4")
4691 (source
4692 (origin
4693 (method url-fetch)
4694 (uri (string-append "mirror://gnome/sources/" name "/"
4695 (version-major+minor version) "/"
4696 name "-" version ".tar.xz"))
4697 (sha256
4698 (base32
4699 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4700 (build-system gnu-build-system)
4701 (native-inputs
4702 `(("pkg-config" ,pkg-config)
4703 ("gobject-introspection" ,gobject-introspection)))
4704 (propagated-inputs
4705 ;; clutter-gtk.pc refers to all these.
4706 `(("clutter" ,clutter)
4707 ("gtk+" ,gtk+)))
4708 (home-page "http://www.clutter-project.org")
4709 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4710 (description
4711 "Clutter is an OpenGL-based interactive canvas library, designed for
4712 creating fast, mainly 2D single window applications such as media box UIs,
4713 presentations, kiosk style applications and so on.")
4714 (license license:lgpl2.0+)))
4715
4716 (define-public clutter-gst
4717 (package
4718 (name "clutter-gst")
4719 (version "3.0.27")
4720 (source
4721 (origin
4722 (method url-fetch)
4723 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4724 (version-major+minor version) "/"
4725 "clutter-gst-" version ".tar.xz"))
4726 (sha256
4727 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4728 (build-system gnu-build-system)
4729 (native-inputs
4730 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4731 ("pkg-config" ,pkg-config)
4732 ("gobject-introspection" ,gobject-introspection)))
4733 (inputs
4734 `(("clutter" ,clutter)
4735 ("gstreamer" ,gstreamer)
4736 ("gst-plugins-base" ,gst-plugins-base)))
4737 (home-page "http://www.clutter-project.org")
4738 (synopsis "Integration library for using GStreamer with Clutter")
4739 (description
4740 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4741 It provides a GStreamer sink to upload frames to GL and an actor that
4742 implements the ClutterGstPlayer interface using playbin. Clutter is an
4743 OpenGL-based interactive canvas library.")
4744 (license license:lgpl2.0+)))
4745
4746 (define-public libchamplain
4747 (package
4748 (name "libchamplain")
4749 (version "0.12.16")
4750 (source (origin
4751 (method url-fetch)
4752 (uri (string-append
4753 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4754 version ".tar.xz"))
4755 (sha256
4756 (base32
4757 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4758 (build-system gnu-build-system)
4759 (arguments '(#:configure-flags '("--enable-vala")))
4760 (native-inputs
4761 `(("gobject-introspection" ,gobject-introspection)
4762 ("pkg-config" ,pkg-config)
4763 ("vala" ,vala)))
4764 (propagated-inputs
4765 `(("libsoup" ,libsoup)
4766 ("sqlite" ,sqlite)
4767 ("clutter" ,clutter)
4768 ("clutter-gtk" ,clutter-gtk)
4769 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4770 ("cairo" ,cairo)
4771 ("gtk+3" ,gtk+)
4772 ("glib" ,glib)))
4773 (home-page "https://projects.gnome.org/libchamplain/")
4774 (synopsis "C library providing a ClutterActor to display maps")
4775 (description
4776 "libchamplain is a C library providing a ClutterActor to display maps.
4777 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4778 and Perl bindings are also available. It supports numerous free map sources
4779 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4780 (license license:lgpl2.1+)))
4781
4782 (define-public gom
4783 (package
4784 (name "gom")
4785 (version "0.3.2")
4786 (source
4787 (origin
4788 (method url-fetch)
4789 (uri (string-append "mirror://gnome/sources/gom/"
4790 (version-major+minor version) "/"
4791 "gom-" version ".tar.xz"))
4792 (sha256
4793 (base32
4794 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4795 (build-system gnu-build-system)
4796 (native-inputs
4797 `(("intltool" ,intltool)
4798 ("pkg-config" ,pkg-config)
4799 ("gobject-introspection" ,gobject-introspection)))
4800 (inputs
4801 `(("glib" ,glib)
4802 ("gdk-pixbuf" ,gdk-pixbuf)
4803 ("sqlite" ,sqlite)))
4804 ;; XXX TODO: Figure out how to run the test suite.
4805 (arguments `(#:tests? #f))
4806 (home-page "https://wiki.gnome.org/Projects/Gom")
4807 (synopsis "Object mapper from GObjects to SQLite")
4808 (description
4809 "Gom provides an object mapper from GObjects to SQLite. It helps you
4810 write applications that need to store structured data as well as make complex
4811 queries upon that data.")
4812 (license license:lgpl2.1+)))
4813
4814 (define-public libgnome-games-support
4815 (package
4816 (name "libgnome-games-support")
4817 (version "1.4.4")
4818 (source (origin
4819 (method url-fetch)
4820 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4821 (version-major+minor version) "/"
4822 "libgnome-games-support-" version ".tar.xz"))
4823 (sha256
4824 (base32
4825 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4826 (build-system gnu-build-system)
4827 (arguments
4828 '(#:phases
4829 (modify-phases %standard-phases
4830 (add-before 'check 'pre-check
4831 (lambda _
4832 ;; Tests require a writable HOME.
4833 (setenv "HOME" (getcwd))
4834 #t)))))
4835 (native-inputs
4836 `(("intltool" ,intltool)
4837 ("pkg-config" ,pkg-config)
4838 ("vala" ,vala)))
4839 (propagated-inputs
4840 ;; Required by libgnome-games-support-1.0.pc
4841 `(("gtk+" ,gtk+)
4842 ("libgee" ,libgee)))
4843 (home-page "https://www.gnome.org/")
4844 (synopsis "Useful functionality shared among GNOME games")
4845 (description
4846 "libgnome-games-support is a small library intended for internal use by
4847 GNOME Games, but it may be used by others.")
4848 (license license:lgpl3+)))
4849
4850 (define-public gnome-klotski
4851 (package
4852 (name "gnome-klotski")
4853 (version "3.34.0")
4854 (source (origin
4855 (method url-fetch)
4856 (uri (string-append "mirror://gnome/sources/" name "/"
4857 (version-major+minor version) "/"
4858 name "-" version ".tar.xz"))
4859 (sha256
4860 (base32
4861 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
4862 (build-system meson-build-system)
4863 (arguments
4864 '(#:glib-or-gtk? #t
4865 #:phases
4866 (modify-phases %standard-phases
4867 (add-after 'unpack 'skip-gtk-update-icon-cache
4868 ;; Don't create 'icon-theme.cache'.
4869 (lambda _
4870 (substitute* "build-aux/meson_post_install.py"
4871 (("gtk-update-icon-cache") (which "true")))
4872 #t)))))
4873 (native-inputs
4874 `(("desktop-file-utils" ,desktop-file-utils)
4875 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4876 ("intltool" ,intltool)
4877 ("itstool" ,itstool)
4878 ("pkg-config" ,pkg-config)
4879 ("vala" ,vala)
4880 ("xmllint" ,libxml2)))
4881 (inputs
4882 `(("gtk+" ,gtk+)
4883 ("libgnome-games-support" ,libgnome-games-support)
4884 ("librsvg" ,librsvg)))
4885 (home-page "https://wiki.gnome.org/Apps/Klotski")
4886 (synopsis "Sliding block puzzles")
4887 (description
4888 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4889 the patterned block to the area bordered by green markers. To do so, you will
4890 need to slide other blocks out of the way. Complete each puzzle in as few moves
4891 as possible!")
4892 (license license:gpl2+)))
4893
4894 (define-public grilo
4895 (package
4896 (name "grilo")
4897 (version "0.3.10")
4898 (source
4899 (origin
4900 (method url-fetch)
4901 (uri (string-append "mirror://gnome/sources/" name "/"
4902 (version-major+minor version) "/"
4903 name "-" version ".tar.xz"))
4904 (sha256
4905 (base32
4906 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4907 (build-system meson-build-system)
4908 (native-inputs
4909 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4910 ("intltool" ,intltool)
4911 ("pkg-config" ,pkg-config)
4912 ("gobject-introspection" ,gobject-introspection)
4913 ("gtk-doc" ,gtk-doc)
4914 ("vala" ,vala)))
4915 (inputs
4916 `(("cyrus-sasl" ,cyrus-sasl)
4917 ("glib" ,glib)
4918 ("gtk+" ,gtk+)
4919 ("libxml2" ,libxml2)
4920 ("liboauth" ,liboauth)
4921 ("libsoup" ,libsoup)
4922 ("totem-pl-parser" ,totem-pl-parser)))
4923 (native-search-paths
4924 (list (search-path-specification
4925 (variable "GRL_PLUGIN_PATH")
4926 (files (list (string-append "lib/grilo-"
4927 (version-major+minor version)))))))
4928 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4929 (synopsis "Framework for discovering and browsing media")
4930 (description
4931 "Grilo is a framework focused on making media discovery and browsing easy
4932 for application developers.")
4933 (license license:lgpl2.1+)))
4934
4935 (define-public grilo-plugins
4936 (package
4937 (name "grilo-plugins")
4938 (version "0.3.10")
4939 (source
4940 (origin
4941 (method url-fetch)
4942 (uri (string-append "mirror://gnome/sources/" name "/"
4943 (version-major+minor version) "/"
4944 name "-" version ".tar.xz"))
4945 (sha256
4946 (base32
4947 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4948 (build-system meson-build-system)
4949 (native-inputs
4950 `(("gettext" ,gettext-minimal)
4951 ("glib:bin" ,glib "bin")
4952 ("gtk+:bin" ,gtk+ "bin")
4953 ("itstool" ,itstool)
4954 ("pkg-config" ,pkg-config)))
4955 ;; TODO: ahavi, gstreamer
4956 (inputs
4957 `(("grilo" ,grilo)
4958 ;("gmime" ,gmime) ; unused
4959 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4960 ("gom" ,gom)
4961 ;("gssdp" ,gssdp) ; unused
4962 ;("gupnp" ,gupnp) ; unused
4963 ;("gupnp-av" ,gupnp-av) ; unused
4964 ("json-glib" ,json-glib)
4965 ("avahi" ,avahi)
4966 ("libgdata" ,libgdata)
4967 ("libmediaart" ,libmediaart)
4968 ;("librest" ,rest) ; unused
4969 ("libsoup" ,libsoup)
4970 ("totam-pl-parser" ,totem-pl-parser)
4971 ("tracker" ,tracker))) ; unused because it's too old
4972 (arguments
4973 `(#:glib-or-gtk? #t
4974 ;;Disable lua-factory as it needs missing dependencies
4975 #:configure-flags '("-Denable-lua-factory=no")))
4976 (home-page "https://live.gnome.org/Grilo")
4977 (synopsis "Plugins for the Grilo media discovery library")
4978 (description
4979 "Grilo is a framework focused on making media discovery and browsing easy
4980 for application developers. This package provides plugins for common media
4981 discovery protocols.")
4982 (license license:lgpl2.1+)))
4983
4984 (define-public totem
4985 (package
4986 (name "totem")
4987 (version "3.34.1")
4988 (source
4989 (origin
4990 (method url-fetch)
4991 (uri (string-append "mirror://gnome/sources/totem/"
4992 (version-major+minor version) "/"
4993 "totem-" version ".tar.xz"))
4994 (sha256
4995 (base32
4996 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
4997 (build-system meson-build-system)
4998 (native-inputs
4999 `(("pkg-config" ,pkg-config)
5000 ("desktop-file-utils" ,desktop-file-utils)
5001 ("gobject-introspection" ,gobject-introspection)
5002 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
5003 ("intltool" ,intltool)
5004 ("itstool" ,itstool)
5005 ("xmllint" ,libxml2)
5006 ("xorg-server" ,xorg-server-for-tests)))
5007 (propagated-inputs
5008 `(("dconf" ,dconf)))
5009 (inputs
5010 `(("gtk+" ,gtk+)
5011 ("gdk-pixbuf" ,gdk-pixbuf)
5012 ("atk" ,atk)
5013 ("cairo" ,cairo)
5014 ("dbus-glib" ,dbus-glib)
5015 ("clutter" ,clutter)
5016 ("clutter-gtk" ,clutter-gtk)
5017 ("clutter-gst" ,clutter-gst)
5018 ("xorgproto" ,xorgproto)
5019 ("libxxf86vm" ,libxxf86vm)
5020 ("libxtst" ,libxtst)
5021 ("libxrandr" ,libxrandr)
5022 ("libxml2" ,libxml2)
5023 ("libsoup" ,libsoup)
5024 ("libpeas" ,libpeas)
5025 ("librsvg" ,librsvg)
5026 ("lirc" ,lirc)
5027 ("gnome-desktop" ,gnome-desktop)
5028 ("gstreamer" ,gstreamer)
5029 ("gst-plugins-base" ,gst-plugins-base)
5030 ("gst-plugins-good" ,gst-plugins-good)
5031 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5032 ("adwaita-icon-theme" ,adwaita-icon-theme)
5033 ("python" ,python)
5034 ("python-pygobject" ,python-pygobject)
5035 ("totem-pl-parser" ,totem-pl-parser)
5036 ("grilo" ,grilo)
5037 ("grilo-plugins" ,grilo-plugins)
5038 ("vala" ,vala)))
5039 (arguments
5040 `(#:glib-or-gtk? #t
5041
5042 ;; Disable automatic GStreamer plugin installation via PackageKit and
5043 ;; all that.
5044 #:configure-flags '("-D" "enable-easy-codec-installation=no"
5045
5046 ;; Do not build .a files for the plugins, it's
5047 ;; completely useless. This saves 2 MiB.
5048 "--default-library" "shared")
5049 #:phases
5050 (modify-phases %standard-phases
5051 (add-after 'unpack 'skip-gtk-update-icon-cache
5052 ;; Don't create 'icon-theme.cache'.
5053 (lambda _
5054 (substitute* "meson_post_install.py"
5055 (("gtk-update-icon-cache") "true"))
5056 #t))
5057 (add-before
5058 'install 'disable-cache-generation
5059 (lambda _
5060 (setenv "DESTDIR" "/")
5061 #t))
5062 (add-before
5063 'check 'pre-check
5064 (lambda _
5065 ;; Tests require a running X server.
5066 (system "Xvfb :1 &")
5067 (setenv "DISPLAY" ":1")
5068 #t))
5069 (add-after
5070 'install 'wrap-totem
5071 (lambda* (#:key inputs outputs #:allow-other-keys)
5072 (let ((out (assoc-ref outputs "out"))
5073 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5074 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5075 (wrap-program (string-append out "/bin/totem")
5076 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5077 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5078 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5079 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
5080 #t)))))
5081 (home-page "https://wiki.gnome.org/Apps/Videos")
5082 (synopsis "Simple media player for GNOME based on GStreamer")
5083 (description "Totem is a simple yet featureful media player for GNOME
5084 which can read a large number of file formats.")
5085 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5086 ;; to be used and distributed together with GStreamer and Totem. See
5087 ;; file://COPYING in the source distribution for details.
5088 (license license:gpl2+)))
5089
5090 (define-public rhythmbox
5091 (package
5092 (name "rhythmbox")
5093 (version "3.4.4")
5094 (source (origin
5095 (method url-fetch)
5096 (uri (string-append "mirror://gnome/sources/rhythmbox/"
5097 (version-major+minor version) "/"
5098 "rhythmbox-" version ".tar.xz"))
5099 (sha256
5100 (base32
5101 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
5102 (build-system glib-or-gtk-build-system)
5103 (arguments
5104 `(#:configure-flags
5105 (list "--enable-lirc"
5106 "--enable-python"
5107 "--enable-vala"
5108 "--with-brasero"
5109 "--with-gudev"
5110 "--with-libsecret")
5111 #:phases
5112 (modify-phases %standard-phases
5113 (add-after
5114 'install 'wrap-rhythmbox
5115 (lambda* (#:key inputs outputs #:allow-other-keys)
5116 (let ((out (assoc-ref outputs "out"))
5117 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5118 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5119 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5120 (python-path (getenv "PYTHONPATH")))
5121 (wrap-program (string-append out "/bin/rhythmbox")
5122 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5123 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5124 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5125 `("PYTHONPATH" ":" prefix (,python-path))))
5126 #t)))))
5127 (propagated-inputs
5128 `(("dconf" ,dconf)))
5129 (native-inputs
5130 `(("itstool" ,itstool)
5131 ("intltool" ,intltool)
5132 ("glib" ,glib "bin")
5133 ("gobject-introspection" ,gobject-introspection)
5134 ("desktop-file-utils" ,desktop-file-utils)
5135 ("pkg-config" ,pkg-config)
5136 ("xmllint" ,libxml2)))
5137 (inputs
5138 `(("json-glib" ,json-glib)
5139 ("tdb" ,tdb)
5140 ("gnome-desktop" ,gnome-desktop)
5141 ("python" ,python)
5142 ("python-pygobject" ,python2-pygobject)
5143 ("vala" ,vala)
5144 ("gmime" ,gmime)
5145 ("adwaita-icon-theme" ,adwaita-icon-theme)
5146 ("grilo" ,grilo)
5147 ("grilo-plugins" ,grilo-plugins)
5148 ("gstreamer" ,gstreamer)
5149 ("gst-plugins-base" ,gst-plugins-base)
5150 ("gst-plugins-good" ,gst-plugins-good)
5151 ("totem-pl-parser" ,totem-pl-parser)
5152 ("libgudev" ,libgudev)
5153 ;;("libmtp" ,libmtp) FIXME: Not detected
5154 ("libsecret" ,libsecret)
5155 ("libsoup" ,libsoup)
5156 ("libnotify" ,libnotify)
5157 ("libpeas" ,libpeas)
5158 ("lirc" ,lirc)
5159 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5160 ;;("clutter" ,clutter)
5161 ;;("clutter-gtk" ,clutter-gtk)
5162 ;;("clutter-gst" ,clutter-gst)
5163 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5164 ("atk" ,atk)
5165 ("pango" ,pango)
5166 ("gtk+" ,gtk+)
5167 ;; TODO:
5168 ;; * libgpod
5169 ;; * mx
5170 ("brasero" ,brasero)))
5171 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5172 (synopsis "Music player for GNOME")
5173 (description "Rhythmbox is a music playing application for GNOME. It
5174 supports playlists, song ratings, and any codecs installed through gstreamer.")
5175 (license license:gpl2+)))
5176
5177 (define-public eog
5178 (package
5179 (name "eog")
5180 (version "3.34.1")
5181 (source (origin
5182 (method url-fetch)
5183 (uri (string-append "mirror://gnome/sources/" name "/"
5184 (version-major+minor version) "/"
5185 name "-" version ".tar.xz"))
5186 (sha256
5187 (base32
5188 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5189 (build-system meson-build-system)
5190 (arguments
5191 `(#:configure-flags
5192 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5193 (list (string-append "-Dc_link_args=-Wl,-rpath="
5194 (assoc-ref %outputs "out") "/lib/eog"))
5195 #:phases
5196 (modify-phases %standard-phases
5197 (add-after 'unpack 'skip-gtk-update-icon-cache
5198 ;; Don't create 'icon-theme.cache'.
5199 (lambda _
5200 (substitute* "meson_post_install.py"
5201 (("gtk-update-icon-cache") "true"))
5202 #t))
5203 (add-after 'install 'wrap-eog
5204 (lambda* (#:key outputs #:allow-other-keys)
5205 (let ((out (assoc-ref outputs "out"))
5206 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5207 (wrap-program (string-append out "/bin/eog")
5208 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5209 #t)))))
5210 (propagated-inputs
5211 `(("dconf" ,dconf)))
5212 (native-inputs
5213 `(("intltool" ,intltool)
5214 ("itstool" ,itstool)
5215 ("glib" ,glib "bin")
5216 ("gobject-introspection" ,gobject-introspection)
5217 ("pkg-config" ,pkg-config)
5218 ("xmllint" ,libxml2)))
5219 (inputs
5220 `(("gnome-desktop" ,gnome-desktop)
5221 ("shared-mime-info" ,shared-mime-info)
5222 ("adwaita-icon-theme" ,adwaita-icon-theme)
5223 ("exempi" ,exempi)
5224 ("lcms" ,lcms)
5225 ("libexif" ,libexif)
5226 ("libpeas" ,libpeas)
5227 ("libjpeg" ,libjpeg-turbo)
5228 ("librsvg" ,librsvg-next)
5229 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5230 ("gtk+" ,gtk+)))
5231 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5232 (synopsis "GNOME image viewer")
5233 (description "Eye of GNOME is the GNOME image viewer. It
5234 supports image conversion, rotation, and slideshows.")
5235 (license license:gpl2+)))
5236
5237 (define-public eog-plugins
5238 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5239 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5240 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5241 ;; 'XDG_DATA_DIRS' appropriately set.
5242 (package
5243 (name "eog-plugins")
5244 (version "3.26.4")
5245 (source (origin
5246 (method url-fetch)
5247 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5248 (version-major+minor version) "/"
5249 "eog-plugins-" version ".tar.xz"))
5250 (sha256
5251 (base32
5252 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5253 (build-system gnu-build-system)
5254 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5255 (synopsis "Extensions for the Eye of GNOME image viewer")
5256 (native-inputs
5257 `(("pkg-config" ,pkg-config)
5258 ("gettext" ,gettext-minimal)))
5259 (inputs
5260 `(("eog" ,eog)
5261 ("glib" ,glib)
5262 ("gtk+" ,gtk+)
5263 ("libpeas" ,libpeas)
5264 ("libexif" ,libexif)
5265 ("libchamplain" ,libchamplain)))
5266 (description
5267 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5268 notably:
5269
5270 @itemize
5271 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5272 @item @dfn{Map}, which displays a map of where the picture was taken on the
5273 side panel;
5274 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5275 @end itemize\n")
5276
5277 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5278 ;; long suspicious byte stream that goes to a
5279 ;; ".gresource.eog_postasa_plugin" ELF section.
5280 (license license:gpl2+)))
5281
5282 (define-public libgudev
5283 (package
5284 (name "libgudev")
5285 (version "232")
5286 (source (origin
5287 (method url-fetch)
5288 (uri (string-append "mirror://gnome/sources/" name "/"
5289 version "/" name "-" version ".tar.xz"))
5290 (sha256
5291 (base32
5292 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5293 (build-system gnu-build-system)
5294 (arguments
5295 '(#:configure-flags
5296 ;; umockdev depends on libgudev.
5297 (list "--disable-umockdev")))
5298 (native-inputs
5299 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5300 ("gobject-introspection" ,gobject-introspection)
5301 ("pkg-config" ,pkg-config)))
5302 (propagated-inputs
5303 `(("glib" ,glib))) ; required by gudev-1.0.pc
5304 (inputs
5305 `(("udev" ,eudev)))
5306 (home-page "https://wiki.gnome.org/Projects/libgudev")
5307 (synopsis "GObject bindings for libudev")
5308 (description
5309 "This library provides GObject bindings for libudev. It was originally
5310 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5311 (license license:lgpl2.1+)))
5312
5313 (define-public gvfs
5314 (package
5315 (name "gvfs")
5316 (version "1.40.1")
5317 (source (origin
5318 (method url-fetch)
5319 (uri (string-append "mirror://gnome/sources/gvfs/"
5320 (version-major+minor version) "/"
5321 "gvfs-" version ".tar.xz"))
5322 (sha256
5323 (base32
5324 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5325 (build-system meson-build-system)
5326 (arguments
5327 '(#:glib-or-gtk? #t
5328 #:configure-flags
5329 (list "-Dsystemduserunitdir=no"
5330 "-Dtmpfilesdir=no"
5331 ;; Otherwise, the RUNPATH will lack the final path component.
5332 (string-append "-Dc_link_args=-Wl,-rpath="
5333 (assoc-ref %outputs "out") "/lib/gvfs"))))
5334 (native-inputs
5335 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5336 ("gettext" ,gettext-minimal)
5337 ("gtk-doc" ,gtk-doc)
5338 ("pkg-config" ,pkg-config)
5339 ("xsltproc" ,libxslt)))
5340 (inputs
5341 `(("avahi" ,avahi)
5342 ("docbook-xml" ,docbook-xml-4.2)
5343 ("docbook-xsl" ,docbook-xsl)
5344 ("dbus" ,dbus)
5345 ("elogind" ,elogind)
5346 ("fuse" ,fuse)
5347 ("gcr" ,gcr)
5348 ("glib" ,glib)
5349 ("gnome-online-accounts" ,gnome-online-accounts)
5350 ("libarchive" ,libarchive)
5351 ("libbluray" ,libbluray)
5352 ("libcap" ,libcap)
5353 ("libcdio-paranoia" ,libcdio-paranoia)
5354 ("libgcrypt" ,libgcrypt)
5355 ("libgdata" ,libgdata)
5356 ("libgphoto2" ,libgphoto2)
5357 ("libgudev" ,libgudev)
5358 ("libimobiledevice" ,libimobiledevice)
5359 ("libmtp" ,libmtp)
5360 ("libnfs" ,libnfs)
5361 ("libsecret" ,libsecret)
5362 ("libsmbclient" ,samba)
5363 ("libsoup" ,libsoup)
5364 ("libxml2" ,libxml2)
5365 ("openssh" ,openssh)
5366 ("polkit" ,polkit)
5367 ("udisks" ,udisks)))
5368 (home-page "https://wiki.gnome.org/gvfs/")
5369 (synopsis "Userspace virtual file system for GIO")
5370 (description
5371 "GVFS is a userspace virtual file system designed to work with the I/O
5372 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5373 to all applications using the GIO API. It also supports exposing the GVFS
5374 mounts to non-GIO applications using FUSE.
5375
5376 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5377 DAV, and others.")
5378 (license license:lgpl2.0+)))
5379
5380 (define-public gusb
5381 (package
5382 (name "gusb")
5383 (version "0.3.0")
5384 (source (origin
5385 (method git-fetch)
5386 (uri (git-reference
5387 (url "https://github.com/hughsie/libgusb.git")
5388 (commit version)))
5389 (file-name (git-file-name name version))
5390 (sha256
5391 (base32
5392 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5393 (build-system meson-build-system)
5394 (native-inputs
5395 `(("gobject-introspection" ,gobject-introspection)
5396 ("pkg-config" ,pkg-config)
5397 ("vala" ,vala)
5398 ("gtk-doc" ,gtk-doc)))
5399 (propagated-inputs
5400 ;; Both of these are required by gusb.pc.
5401 `(("glib" ,glib)
5402 ("libusb" ,libusb)))
5403 (arguments
5404 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5405 (home-page "https://github.com/hughsie/libgusb")
5406 (synopsis "GLib binding for libusb1")
5407 (description
5408 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5409 asynchronous control, bulk and interrupt transfers with proper cancellation
5410 and integration into a mainloop. This makes it easy to integrate low level
5411 USB transfers with your high-level application or system daemon.")
5412 (license license:lgpl2.1+)))
5413
5414 (define-public simple-scan
5415 (package
5416 (name "simple-scan")
5417 (version "3.36.3")
5418 (source
5419 (origin
5420 (method url-fetch)
5421 (uri (string-append "mirror://gnome/sources/simple-scan/"
5422 (version-major+minor version) "/"
5423 "simple-scan-" version ".tar.xz"))
5424 (sha256
5425 (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
5426 (build-system meson-build-system)
5427 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5428 (arguments
5429 '(#:glib-or-gtk? #t))
5430 (inputs
5431 `(("gtk" ,gtk+)
5432 ("zlib" ,zlib)
5433 ("cairo" ,cairo)
5434 ("colord" ,colord)
5435 ("gdk-pixbuf" ,gdk-pixbuf)
5436 ("gusb" ,gusb)
5437 ("libsane" ,sane-backends)))
5438 (native-inputs
5439 `(("gettext" ,gettext-minimal)
5440 ("itstool" ,itstool)
5441 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5442 ("pkg-config" ,pkg-config)
5443 ("vala" ,vala)
5444 ("xmllint" ,libxml2)))
5445 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5446 (synopsis "Document and image scanner")
5447 (description
5448 "Document Scanner is an easy-to-use application that lets you connect your
5449 scanner and quickly capture images and documents in an appropriate format. It
5450 supports any scanner for which a suitable SANE driver is available, which is
5451 almost all of them.")
5452 (license license:gpl3+)))
5453
5454 (define-public eolie
5455 (package
5456 (name "eolie")
5457 (version "0.9.98.1")
5458 (source (origin
5459 (method url-fetch)
5460 (uri (string-append "https://adishatz.org/eolie/eolie-"
5461 version ".tar.xz"))
5462 (sha256
5463 (base32
5464 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
5465 (build-system meson-build-system)
5466 (arguments
5467 `(#:glib-or-gtk? #t
5468 #:phases
5469 (modify-phases %standard-phases
5470 (add-after 'unpack 'skip-gtk-update-icon-cache
5471 ;; Don't create 'icon-theme.cache'.
5472 (lambda _
5473 (substitute* "meson_post_install.py"
5474 (("gtk-update-icon-cache") "true"))
5475 #t))
5476 (add-after 'wrap 'wrap-more
5477 (lambda* (#:key inputs outputs #:allow-other-keys)
5478 (let* ((out (assoc-ref outputs "out"))
5479 ;; These libraries must be on LD_LIBRARY_PATH.
5480 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5481 "atk" "gtk+" "gsettings-desktop-schemas"
5482 "gobject-introspection"))
5483 (path (string-join
5484 (map (lambda (lib)
5485 (string-append (assoc-ref inputs lib) "/lib"))
5486 libs)
5487 ":")))
5488 (wrap-program (string-append out "/bin/eolie")
5489 `("LD_LIBRARY_PATH" ":" prefix (,path))
5490 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5491 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5492 #t)))))
5493 (native-inputs
5494 `(("intltool" ,intltool)
5495 ("itstool" ,itstool)
5496 ("pkg-config" ,pkg-config)
5497 ("python" ,python)
5498 ("glib:bin" ,glib "bin")))
5499 (inputs
5500 `(("gobject-introspection" ,gobject-introspection)
5501 ("glib-networking" ,glib-networking)
5502 ("cairo" ,cairo)
5503 ("gtk+" ,gtk+)
5504 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5505 ("python" ,python-wrapper)
5506 ("python-dateutil" ,python-dateutil)
5507 ("python-pyfxa" ,python-pyfxa)
5508 ("python-pygobject" ,python-pygobject)
5509 ("python-pycairo" ,python-pycairo)
5510 ("python-pycrypto" ,python-pycrypto)
5511 ("libsecret" ,libsecret)
5512 ("gtkspell3" ,gtkspell3)
5513 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5514 ("webkitgtk" ,webkitgtk)))
5515 (home-page "https://wiki.gnome.org/Apps/Eolie")
5516 (synopsis "Web browser for GNOME")
5517 (description
5518 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5519 a secret password store, an adblocker, and a modern UI.")
5520 (license license:gpl3+)))
5521
5522 (define-public epiphany
5523 (package
5524 (name "epiphany")
5525 (version "3.34.4")
5526 (source (origin
5527 (method url-fetch)
5528 (uri (string-append "mirror://gnome/sources/epiphany/"
5529 (version-major+minor version) "/"
5530 "epiphany-" version ".tar.xz"))
5531 (sha256
5532 (base32
5533 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
5534
5535 (build-system meson-build-system)
5536 (arguments
5537 '(#:glib-or-gtk? #t
5538 #:phases
5539 (modify-phases %standard-phases
5540 (add-after 'unpack 'skip-gtk-update-icon-cache
5541 ;; Don't create 'icon-theme.cache'.
5542 (lambda _
5543 (substitute* "post_install.py"
5544 (("gtk-update-icon-cache") "true"))
5545 #t))
5546 (add-after 'unpack 'disable-failing-tests
5547 (lambda _
5548 (substitute* "tests/meson.build"
5549 ;; embed_shell fails, because webkitgtk apparently no longer supports
5550 ;; overriding the ftp schema
5551 ;; web_app_utils fails due to missing network access
5552 (("(embed_shell|web_app_utils)_test,")
5553 "find_program('sh'), args: ['-c', 'exit 77'],"))
5554 #t))
5555 (add-before 'check 'pre-check
5556 (lambda _
5557 ;; Tests require a running X server.
5558 (system "Xvfb :1 &")
5559 (setenv "DISPLAY" ":1")
5560 #t)))
5561 #:configure-flags
5562 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5563 (list (string-append "-Dc_link_args=-Wl,-rpath="
5564 (assoc-ref %outputs "out") "/lib/epiphany"))))
5565 (propagated-inputs
5566 `(("dconf" ,dconf)))
5567 (native-inputs
5568 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5569 ("glib:bin" ,glib "bin") ; for glib-mkenums
5570 ("intltool" ,intltool)
5571 ("itstool" ,itstool)
5572 ("pkg-config" ,pkg-config)
5573 ("xmllint" ,libxml2)
5574 ("xorg-server" ,xorg-server-for-tests)))
5575 (inputs
5576 `(("avahi" ,avahi)
5577 ("gcr" ,gcr)
5578 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5579 ("glib-networking" ,glib-networking)
5580 ("gnome-desktop" ,gnome-desktop)
5581 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5582 ("json-glib" ,json-glib)
5583 ("iso-codes" ,iso-codes)
5584 ("libdazzle" ,libdazzle)
5585 ("libnotify" ,libnotify)
5586 ("libsecret" ,libsecret)
5587 ("libxslt" ,libxslt)
5588 ("nettle" ,nettle) ; for hogweed
5589 ("sqlite" ,sqlite)
5590 ("webkitgtk" ,webkitgtk)))
5591 (home-page "https://wiki.gnome.org/Apps/Web")
5592 (synopsis "GNOME web browser")
5593 (description
5594 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5595 principles are simplicity and standards compliance.")
5596 (license license:gpl2+)))
5597
5598 (define-public d-feet
5599 (package
5600 (name "d-feet")
5601 (version "0.3.14")
5602 (source (origin
5603 (method url-fetch)
5604 (uri (string-append "mirror://gnome/sources/" name "/"
5605 (version-major+minor version) "/"
5606 name "-" version ".tar.xz"))
5607 (sha256
5608 (base32
5609 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5610 (build-system glib-or-gtk-build-system)
5611 (arguments
5612 '(#:out-of-source? #f ; tests need to run in the source directory.
5613 #:phases
5614 (modify-phases %standard-phases
5615 (add-before
5616 'check 'pre-check
5617 (lambda _
5618 ;; The test suite requires a running X server.
5619 (system "Xvfb :1 &")
5620 (setenv "DISPLAY" ":1")
5621 ;; Don't fail on missing '/etc/machine-id'.
5622 (setenv "DBUS_FATAL_WARNINGS" "0")
5623 ;; tests.py and window.py don't meet E402:
5624 ;; E402 module level import not at top of file
5625 (substitute* "src/tests/Makefile"
5626 (("--ignore=E123") "--ignore=E123,E402"))
5627 #t))
5628 (add-after
5629 'install 'wrap-program
5630 (lambda* (#:key outputs #:allow-other-keys)
5631 (let ((prog (string-append (assoc-ref outputs "out")
5632 "/bin/d-feet")))
5633 (wrap-program prog
5634 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5635 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5636 #t))))))
5637 (native-inputs
5638 `(("intltool" ,intltool)
5639 ("itstool" ,itstool)
5640 ("pkg-config" ,pkg-config)
5641 ("python-pep8" ,python-pep8)
5642 ("xmllint" ,libxml2)
5643 ("xorg-server" ,xorg-server-for-tests)))
5644 (inputs
5645 `(("gobject-introspection" ,gobject-introspection)
5646 ("gtk+" ,gtk+)
5647 ("python" ,python-wrapper)
5648 ("hicolor-icon-theme" ,hicolor-icon-theme)
5649 ("python-pygobject" ,python-pygobject)))
5650 (home-page "https://wiki.gnome.org/Apps/DFeet")
5651 (synopsis "D-Bus debugger")
5652 (description
5653 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5654 of running programs and invoke methods on those interfaces.")
5655 (license license:gpl2+)))
5656
5657 (define-public yelp-xsl
5658 (package
5659 (name "yelp-xsl")
5660 (version "3.34.2")
5661 (source (origin
5662 (method url-fetch)
5663 (uri (string-append "mirror://gnome/sources/" name "/"
5664 (version-major+minor version) "/"
5665 name "-" version ".tar.xz"))
5666 (sha256
5667 (base32
5668 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
5669 (build-system gnu-build-system)
5670 (native-inputs
5671 `(("gettext-minimal" ,gettext-minimal)
5672 ("itstool" ,itstool)
5673 ("xmllint" ,libxml2)))
5674 (home-page "https://wiki.gnome.org/Apps/Yelp")
5675 (synopsis "XSL stylesheets for Yelp")
5676 (description
5677 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5678 to format Docbook and Mallard documents.")
5679 (license license:gpl2+)))
5680
5681 (define-public yelp
5682 (package
5683 (name "yelp")
5684 (version "3.32.2")
5685 (source (origin
5686 (method url-fetch)
5687 (uri (string-append "mirror://gnome/sources/" name "/"
5688 (version-major+minor version) "/"
5689 name "-" version ".tar.xz"))
5690 (sha256
5691 (base32
5692 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5693 (build-system glib-or-gtk-build-system)
5694 (native-inputs
5695 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5696 ("intltool" ,intltool)
5697 ("itstool" ,itstool)
5698 ("pkg-config" ,pkg-config)))
5699 (propagated-inputs
5700 `(("dconf" ,dconf)))
5701 (inputs
5702 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5703 ("libxslt" ,libxslt)
5704 ("sqlite" ,sqlite)
5705 ("webkitgtk" ,webkitgtk)
5706 ("yelp-xsl" ,yelp-xsl)))
5707 (home-page "https://wiki.gnome.org/Apps/Yelp")
5708 (synopsis "GNOME help browser")
5709 (description
5710 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5711 man, info, and HTML documents. It can locate documents according to the
5712 freedesktop.org help system specification.")
5713 (license license:gpl2+)))
5714
5715 (define-public yelp-tools
5716 (package
5717 (name "yelp-tools")
5718 (version "3.32.2")
5719 (source (origin
5720 (method url-fetch)
5721 (uri (string-append "mirror://gnome/sources/" name "/"
5722 (version-major+minor version) "/"
5723 name "-" version ".tar.xz"))
5724 (sha256
5725 (base32
5726 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
5727 (build-system gnu-build-system)
5728 (native-inputs
5729 `(("pkg-config" ,pkg-config)))
5730 (propagated-inputs
5731 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5732 `(("itstool" ,itstool)
5733 ("xmllint" ,libxml2)
5734 ("xsltproc" ,libxslt)))
5735 (inputs
5736 `(("yelp-xsl" ,yelp-xsl)))
5737 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5738 (synopsis "Yelp documentation tools")
5739 (description
5740 "Yelp-tools is a collection of scripts and build utilities to help create,
5741 manage, and publish documentation for Yelp and the web. Most of the heavy
5742 lifting is done by packages like yelp-xsl and itstool. This package just
5743 wraps things up in a developer-friendly way.")
5744 (license license:gpl2+)))
5745
5746 (define-public libgee
5747 (package
5748 (name "libgee")
5749 (version "0.20.3")
5750 (source (origin
5751 (method url-fetch)
5752 (uri (string-append "mirror://gnome/sources/libgee/"
5753 (version-major+minor version) "/"
5754 "libgee-" version ".tar.xz"))
5755 (sha256
5756 (base32
5757 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
5758 (build-system gnu-build-system)
5759 (arguments
5760 `(#:phases
5761 (modify-phases %standard-phases
5762 (add-after 'unpack 'fix-introspection-install-dir
5763 (lambda* (#:key outputs #:allow-other-keys)
5764 (let ((out (assoc-ref outputs "out")))
5765 (substitute* "gee/Makefile.in"
5766 (("@INTROSPECTION_GIRDIR@")
5767 (string-append out "/share/gir-1.0/"))
5768 (("@INTROSPECTION_TYPELIBDIR@")
5769 (string-append out "/lib/girepository-1.0/")))))))))
5770 (native-inputs
5771 `(("glib" ,glib "bin")
5772 ("pkg-config" ,pkg-config)))
5773 (inputs
5774 `(("glib" ,glib)
5775 ("gobject-introspection" ,gobject-introspection)))
5776 (home-page "https://wiki.gnome.org/Projects/Libgee")
5777 (synopsis "GObject collection library")
5778 (description
5779 "Libgee is a utility library providing GObject-based interfaces and
5780 classes for commonly used data structures.")
5781 (license license:lgpl2.1+)))
5782
5783 (define-public gexiv2
5784 (package
5785 (name "gexiv2")
5786 (version "0.12.1")
5787 (source (origin
5788 (method url-fetch)
5789 (uri (string-append "mirror://gnome/sources/" name "/"
5790 (version-major+minor version) "/"
5791 name "-" version ".tar.xz"))
5792 (sha256
5793 (base32
5794 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
5795 (build-system meson-build-system)
5796 (native-inputs
5797 `(("gcr" ,gcr)
5798 ("glib" ,glib "bin")
5799 ("pkg-config" ,pkg-config)
5800 ("vala" ,vala)))
5801 (propagated-inputs
5802 ;; Listed in "Requires" section of gexiv2.pc
5803 `(("exiv2" ,exiv2)))
5804 (inputs
5805 `(("glib" ,glib)
5806 ("gobject-introspection" ,gobject-introspection)))
5807 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5808 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5809 (description
5810 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5811 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5812 metadata in photo and video files of various formats.")
5813 (license license:gpl2+)))
5814
5815 (define-public shotwell
5816 (package
5817 (name "shotwell")
5818 (version "0.30.9")
5819 (source (origin
5820 (method url-fetch)
5821 (uri (string-append "mirror://gnome/sources/shotwell/"
5822 (version-major+minor version) "/"
5823 "shotwell-" version ".tar.xz"))
5824 (sha256
5825 (base32
5826 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
5827 (build-system meson-build-system)
5828 (arguments
5829 '(#:glib-or-gtk? #t
5830 #:phases
5831 (modify-phases %standard-phases
5832 (add-after 'unpack 'skip-gtk-update-icon-cache
5833 (lambda _
5834 (substitute* "build-aux/meson/postinstall.py"
5835 (("gtk-update-icon-cache") (which "true"))
5836 (("update-desktop-database") (which "true")))
5837 #t)))))
5838 (propagated-inputs
5839 `(("dconf" ,dconf)))
5840 (native-inputs
5841 `(("gettext" ,gettext-minimal)
5842 ("glib:bin" ,glib "bin")
5843 ("itstool" ,itstool)
5844 ("pkg-config" ,pkg-config)
5845 ("vala" ,vala)))
5846 (inputs
5847 `(("gcr" ,gcr)
5848 ("gexiv2" ,gexiv2)
5849 ("gst-plugins-base" ,gst-plugins-base)
5850 ("gstreamer" ,gstreamer)
5851 ("json-glib" ,json-glib)
5852 ("libgdata" ,libgdata)
5853 ("libgee" ,libgee)
5854 ("libgphoto2" ,libgphoto2)
5855 ("libgudev" ,libgudev)
5856 ("libraw" ,libraw)
5857 ("libsoup" ,libsoup)
5858 ("libxml2" ,libxml2)
5859 ("sqlite" ,sqlite)
5860 ("webkitgtk" ,webkitgtk)))
5861 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5862 (synopsis "Photo manager for GNOME 3")
5863 (description
5864 "Shotwell is a digital photo manager designed for the GNOME desktop
5865 environment. It allows you to import photos from disk or camera, organize
5866 them by keywords and events, view them in full-window or fullscreen mode, and
5867 share them with others via social networking and more.")
5868 (license license:lgpl2.1+)))
5869
5870 (define-public file-roller
5871 (package
5872 (name "file-roller")
5873 (version "3.32.3")
5874 (source (origin
5875 (method url-fetch)
5876 (uri (string-append "mirror://gnome/sources/file-roller/"
5877 (version-major+minor version) "/"
5878 "file-roller-" version ".tar.xz"))
5879 (sha256
5880 (base32
5881 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5882 (build-system meson-build-system)
5883 (native-inputs
5884 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5885 ("intltool" ,intltool)
5886 ("itstool" ,itstool)
5887 ("pkg-config" ,pkg-config)
5888 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5889 ("glib:bin" ,glib "bin")))
5890 ;; TODO: Add libnautilus.
5891 (inputs
5892 `(("gtk+" ,gtk+)
5893 ("gdk-pixbuf" ,gdk-pixbuf)
5894 ("json-glib" ,json-glib)
5895 ("libarchive" ,libarchive)
5896 ("libnotify" ,libnotify)
5897 ("nettle" ,nettle)
5898 ("libxml2" ,libxml2)))
5899 (synopsis "Graphical archive manager for GNOME")
5900 (description "File Roller is an archive manager for the GNOME desktop
5901 environment that allows users to view, unpack, and create compressed archives
5902 such as gzip tarballs.")
5903 (home-page "http://fileroller.sourceforge.net/")
5904 (license license:gpl2+)))
5905
5906 (define-public gnome-session
5907 (package
5908 (name "gnome-session")
5909 (version "3.34.2")
5910 (source (origin
5911 (method url-fetch)
5912 (uri (string-append "mirror://gnome/sources/" name "/"
5913 (version-major+minor version) "/"
5914 name "-" version ".tar.xz"))
5915 (sha256
5916 (base32
5917 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
5918 (arguments
5919 '(#:glib-or-gtk? #t
5920 #:phases
5921 (modify-phases %standard-phases
5922 (add-before 'configure 'pre-configure
5923 (lambda* (#:key outputs #:allow-other-keys)
5924 ;; Use elogind instead of systemd.
5925 (substitute* "meson.build"
5926 (("libsystemd-login") "libelogind")
5927 (("and libsystemd_daemon_dep.found.*") ","))
5928 (substitute* "gnome-session/gsm-systemd.c"
5929 (("#include <systemd/sd-login.h>")
5930 "#include <elogind/sd-login.h>"))
5931 ;; Remove uses of the systemd daemon.
5932 (substitute* "gnome-session/gsm-autostart-app.c"
5933 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5934 #t))
5935 (add-after 'install 'wrap-gnome-session
5936 (lambda* (#:key inputs outputs #:allow-other-keys)
5937 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5938 (let ((glib (assoc-ref inputs "glib:bin"))
5939 (out (assoc-ref outputs "out")))
5940 (wrap-program (string-append out "/bin/gnome-session")
5941 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5942 #t))))
5943
5944 #:configure-flags
5945 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5946 "-Dman=false" ; FIXME: disabled because of docbook validation error
5947 "-Dsystemd_journal=false")))
5948 (build-system meson-build-system)
5949 (native-inputs
5950 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5951 ("pkg-config" ,pkg-config)
5952 ("intltool" ,intltool)
5953 ("xsltproc" ,libxslt)
5954 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5955 ("docbook-xsl" ,docbook-xsl)
5956 ("docbook-xml" ,docbook-xml)
5957 ("xmlto" ,xmlto)))
5958 (inputs
5959 `(("elogind" ,elogind)
5960 ("gnome-desktop" ,gnome-desktop)
5961 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5962 ("gtk+" ,gtk+)
5963 ("json-glib" ,json-glib)
5964 ("libsm" ,libsm)
5965 ("libxcomposite" ,libxcomposite)
5966 ("libxtst" ,libxtst)
5967 ("mesa" ,mesa)
5968 ("upower" ,upower)
5969 ("xtrans" ,xtrans)))
5970 (synopsis "Session manager for GNOME")
5971 (description
5972 "This package contains the GNOME session manager, as well as a
5973 configuration program to choose applications starting on login.")
5974 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5975 (license license:gpl2+)))
5976
5977 (define-public gjs
5978 (package
5979 (name "gjs")
5980 (version "1.58.3")
5981 (source (origin
5982 (method url-fetch)
5983 (uri (string-append "mirror://gnome/sources/" name "/"
5984 (version-major+minor version) "/"
5985 name "-" version ".tar.xz"))
5986 (sha256
5987 (base32
5988 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
5989 (build-system gnu-build-system)
5990 (arguments
5991 '(#:phases
5992 (modify-phases %standard-phases
5993 (add-before
5994 'check 'pre-check
5995 (lambda _
5996 ;; The test suite requires a running X server.
5997 (system "Xvfb :1 &")
5998 (setenv "DISPLAY" ":1")
5999
6000 ;; For the missing /etc/machine-id.
6001 (setenv "DBUS_FATAL_WARNINGS" "0")
6002
6003 ;; Our mozjs-38 package does not compile the required Intl API
6004 ;; support for these failing tests.
6005 (substitute* "installed-tests/js/testLocale.js"
6006 ((".*toBeDefined.*") "")
6007 ((".*expect\\(datestr\\).*") ""))
6008 (substitute* "installed-tests/scripts/testCommandLine.sh"
6009 (("Valentín") "")
6010 (("☭") ""))
6011 #t)))))
6012 (native-inputs
6013 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
6014 ("pkg-config" ,pkg-config)
6015 ("xmllint" ,libxml2)
6016 ;; For testing
6017 ("dbus-launch" ,dbus)
6018 ("dconf" ,dconf) ; required to properly store settings
6019 ("uuidgen" ,util-linux)
6020 ("xvfb" ,xorg-server-for-tests)))
6021 (propagated-inputs
6022 ;; These are all in the Requires.private field of gjs-1.0.pc.
6023 `(("cairo" ,cairo)
6024 ("gobject-introspection" ,gobject-introspection)
6025 ("mozjs" ,mozjs-60)))
6026 (inputs
6027 `(("gtk+" ,gtk+)
6028 ("readline" ,readline)))
6029 (synopsis "Javascript bindings for GNOME")
6030 (home-page "https://live.gnome.org/Gjs")
6031 (description
6032 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6033 javascript engine and the GObject introspection framework.")
6034 (license license:gpl2+)))
6035
6036 (define-public gedit
6037 (package
6038 (name "gedit")
6039 (version "3.34.1")
6040 (source (origin
6041 (method url-fetch)
6042 (uri (string-append "mirror://gnome/sources/" name "/"
6043 (version-major+minor version) "/"
6044 name "-" version ".tar.xz"))
6045 (sha256
6046 (base32
6047 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
6048 (build-system meson-build-system)
6049 (arguments
6050 `(#:glib-or-gtk? #t
6051 #:configure-flags
6052 ;; Otherwise, the RUNPATH will lack the final path component.
6053 (list (string-append "-Dc_link_args=-Wl,-rpath="
6054 (assoc-ref %outputs "out") "/lib/gedit"))
6055
6056 ;; XXX: Generated .h files are sometimes used before being built.
6057 #:parallel-build? #f
6058
6059 #:phases
6060 (modify-phases %standard-phases
6061 (add-after 'unpack 'skip-gtk-update-icon-cache
6062 ;; Don't create 'icon-theme.cache'.
6063 (lambda _
6064 (substitute* "build-aux/meson/post_install.py"
6065 (("gtk-update-icon-cache") (which "true")))
6066 #t))
6067 (add-after 'unpack 'patch-libgd-fetch
6068 (lambda* (#:key inputs #:allow-other-keys)
6069 (let ((libgd (assoc-ref inputs "libgd")))
6070 ;; Calling git is unnecessary because libgd is fetched as a
6071 ;; native input to this package.
6072 (substitute* "meson.build"
6073 ((".*git.*") ""))
6074 (copy-recursively libgd "subprojects/libgd")
6075 #t)))
6076 (add-after 'install 'wrap-gedit
6077 (lambda* (#:key inputs outputs #:allow-other-keys)
6078 (let ((out (assoc-ref outputs "out"))
6079 (gtksourceview (assoc-ref inputs "gtksourceview"))
6080 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6081 (python-path (getenv "PYTHONPATH")))
6082 (wrap-program (string-append out "/bin/gedit")
6083 ;; For plugins.
6084 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6085 `("PYTHONPATH" ":" prefix (,python-path))
6086 ;; For language-specs.
6087 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6088 "/share")))))
6089 #t)))))
6090 (propagated-inputs
6091 `(("dconf" ,dconf)))
6092 (native-inputs
6093 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6094 ("intltool" ,intltool)
6095 ("itstool" ,itstool)
6096 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6097 ("gobject-introspection" ,gobject-introspection)
6098 ("libgd"
6099 ,(origin
6100 (method git-fetch)
6101 (uri (git-reference
6102 (url "https://gitlab.gnome.org/GNOME/libgd")
6103 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6104 (file-name (git-file-name "libgd" version))
6105 (sha256
6106 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6107 ("pkg-config" ,pkg-config)))
6108 (inputs
6109 `(("glib" ,glib)
6110 ("gspell" ,gspell)
6111 ("gtk+" ,gtk+)
6112 ("gtksourceview" ,gtksourceview)
6113 ("libpeas" ,libpeas)
6114 ("libxml2" ,libxml2)
6115 ("iso-codes" ,iso-codes)
6116 ("python-pygobject" ,python-pygobject)
6117 ("python" ,python)
6118 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6119 ("libx11" ,libx11)
6120 ("vala" ,vala)
6121 ("adwaita-icon-theme" ,adwaita-icon-theme)
6122 ("libsoup" ,libsoup)
6123 ("gnome-desktop" ,gnome-desktop)))
6124 (home-page "https://wiki.gnome.org/Apps/Gedit")
6125 (synopsis "GNOME text editor")
6126 (description "While aiming at simplicity and ease of use, gedit is a
6127 powerful general purpose text editor.")
6128 (license license:gpl2+)))
6129
6130 (define-public zenity
6131 (package
6132 (name "zenity")
6133 (version "3.32.0")
6134 (source (origin
6135 (method url-fetch)
6136 (uri (string-append "mirror://gnome/sources/zenity/"
6137 (version-major+minor version) "/"
6138 "zenity-" version ".tar.xz"))
6139 (sha256
6140 (base32
6141 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6142 (build-system gnu-build-system)
6143 (native-inputs
6144 `(("gettext" ,gettext-minimal)
6145 ("itstool" ,itstool)
6146 ("pkg-config" ,pkg-config)))
6147 (inputs
6148 `(("libnotify" ,libnotify)
6149 ("webkitgtk" ,webkitgtk)))
6150 (synopsis "Display graphical dialog boxes from shell scripts")
6151 (home-page "https://www.gnome.org")
6152 (description
6153 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6154 to display dialog boxes from the commandline and shell scripts.")
6155 (license license:lgpl2.0+)))
6156
6157 (define-public mutter
6158 (package
6159 (name "mutter")
6160 (version "3.34.2")
6161 (source (origin
6162 (method url-fetch)
6163 (uri (string-append "mirror://gnome/sources/" name "/"
6164 (version-major+minor version) "/"
6165 name "-" version ".tar.xz"))
6166 (sha256
6167 (base32
6168 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
6169 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6170 ;; versions of cogl and clutter. As a result, many of the inputs,
6171 ;; propagated-inputs, and configure flags used in cogl and clutter are
6172 ;; needed here as well.
6173 (build-system meson-build-system)
6174 (arguments
6175 '(;; XXX: All mutter tests fail with the following error:
6176 ;; Settings schema 'org.gnome.mutter' is not installed
6177 #:tests? #f
6178 #:glib-or-gtk? #t
6179 #:configure-flags
6180 ;; TODO: Enable profiler when Sysprof is packaged.
6181 (list "-Dprofiler=false"
6182 ;; Otherwise, the RUNPATH will lack the final path component.
6183 (string-append "-Dc_link_args=-Wl,-rpath="
6184 (assoc-ref %outputs "out") "/lib:"
6185 (assoc-ref %outputs "out") "/lib/mutter-5")
6186
6187 ;; The following flags are needed for the bundled clutter
6188 (string-append "-Dxwayland_path="
6189 (assoc-ref %build-inputs "xorg-server-xwayland")
6190 "/bin/Xwayland")
6191
6192 ;; the remaining flags are needed for the bundled cogl
6193 (string-append "-Dopengl_libname="
6194 (assoc-ref %build-inputs "mesa")
6195 "/lib/libGL.so"))
6196 #:phases (modify-phases %standard-phases
6197 (add-after 'unpack 'fix-build-with-mesa-20
6198 (lambda _
6199 ;; Mimic upstream commit a444a4c5f58ea516ad for
6200 ;; compatibility with Mesa 20. Remove for 3.36.
6201 (substitute* '("src/backends/meta-egl-ext.h"
6202 "src/backends/meta-egl.c"
6203 "src/backends/meta-egl.h")
6204 (("#include <EGL/eglext\\.h>" all)
6205 (string-append all "\n#include <EGL/eglmesaext.h>")))
6206 (substitute* "cogl/cogl/meson.build"
6207 (("#include <EGL/eglext\\.h>" all)
6208 (string-append all "\\n#include <EGL/eglmesaext.h>")))
6209 #t)))))
6210 (native-inputs
6211 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6212 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6213 ("gobject-introspection" ,gobject-introspection)
6214 ("intltool" ,intltool)
6215 ("pkg-config" ,pkg-config)
6216 ("xorg-server" ,xorg-server-for-tests)
6217 ;; For git build
6218 ("autoconf" ,autoconf)
6219 ("automake" ,automake)
6220 ("libtool" ,libtool)))
6221 (propagated-inputs
6222 `(;; libmutter.pc refers to these:
6223 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6224 ("gtk+" ,gtk+)
6225 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6226 ("atk" ,atk)
6227 ("cairo" ,cairo)
6228 ("gdk-pixbuf" ,gdk-pixbuf)
6229 ("glib" ,glib)
6230 ("json-glib" ,json-glib)
6231 ("libinput" ,libinput)
6232 ("libx11" ,libx11)
6233 ("libxcomposite" ,libxcomposite)
6234 ("libxdamage" ,libxdamage)
6235 ("libxext" ,libxext)
6236 ("libxfixes" ,libxfixes)
6237 ("libxkbcommon" ,libxkbcommon)
6238 ("libxrandr" ,libxrandr)
6239 ("mesa" ,mesa)
6240 ("pango" ,pango)
6241 ("udev" ,eudev)
6242 ("xinput" ,xinput)))
6243 (inputs
6244 `(("elogind" ,elogind)
6245 ("gnome-desktop" ,gnome-desktop)
6246 ("gnome-settings-daemon" ,gnome-settings-daemon)
6247 ("libcanberra-gtk" ,libcanberra)
6248 ("libgudev" ,libgudev)
6249 ("libice" ,libice)
6250 ("libsm" ,libsm)
6251 ("libwacom" ,libwacom)
6252 ("libxkbfile" ,libxkbfile)
6253 ("libxrandr" ,libxrandr)
6254 ("libxtst" ,libxtst)
6255 ("pipewire" ,pipewire)
6256 ("startup-notification" ,startup-notification)
6257 ("upower-glib" ,upower)
6258 ("xkeyboard-config" ,xkeyboard-config)
6259 ("xorg-server-xwayland" ,xorg-server-xwayland)
6260 ("zenity" ,zenity)))
6261 (synopsis "Window and compositing manager")
6262 (home-page "https://www.gnome.org")
6263 (description
6264 "Mutter is a window and compositing manager that displays and manages your
6265 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6266 Clutter toolkit with solid window-management logic inherited from the Metacity
6267 window manager.")
6268 (license license:gpl2+)))
6269
6270 (define-public gnome-online-accounts
6271 (package
6272 (name "gnome-online-accounts")
6273 (version "3.36.0")
6274 (source (origin
6275 (method url-fetch)
6276 (uri (string-append "mirror://gnome/sources/" name "/"
6277 (version-major+minor version) "/"
6278 name "-" version ".tar.xz"))
6279 (sha256
6280 (base32
6281 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
6282 (outputs '("out" "lib"))
6283 (build-system glib-or-gtk-build-system)
6284 (arguments
6285 `(#:configure-flags
6286 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6287 #:phases
6288 (modify-phases %standard-phases
6289 (add-before 'configure 'patch-libgoa-output
6290 (lambda* (#:key outputs #:allow-other-keys)
6291 (let ((lib (assoc-ref outputs "lib")))
6292 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6293 (("@prefix@") lib)
6294 (("@exec_prefix@") lib)
6295 (("@libdir@") (string-append lib "/lib"))
6296 (("@includedir@") (string-append lib "/include"))
6297 (("@datadir@") (string-append lib "/share")))
6298 ;; Make sure gobject-introspection knows about the output
6299 ;; too (see <https://bugs.gnu.org/36535>).
6300 (setenv "outputs" "out lib")
6301 #t))))))
6302 (native-inputs
6303 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6304 ("gobject-introspection" ,gobject-introspection)
6305 ("intltool" ,intltool)
6306 ("pkg-config" ,pkg-config)
6307 ("vala" ,vala)
6308 ("xsltproc" ,libxslt)))
6309 (propagated-inputs
6310 `(("glib" ,glib) ; required by goa-1.0.pc
6311 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6312 (inputs
6313 `(("docbook-xsl" ,docbook-xsl)
6314 ("json-glib" ,json-glib)
6315 ("libsecret" ,libsecret)
6316 ("rest" ,rest)
6317 ("webkitgtk" ,webkitgtk)))
6318 (synopsis "Single sign-on framework for GNOME")
6319 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6320 (description
6321 "GNOME Online Accounts provides interfaces so that applications and
6322 libraries in GNOME can access the user's online accounts. It has providers for
6323 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6324 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6325 (license license:lgpl2.0+)))
6326
6327 (define-public evolution-data-server
6328 (package
6329 (name "evolution-data-server")
6330 (version "3.34.2")
6331 (source (origin
6332 (method url-fetch)
6333 (uri (string-append "mirror://gnome/sources/" name "/"
6334 (version-major+minor version) "/"
6335 name "-" version ".tar.xz"))
6336 (patches (search-patches "evolution-data-server-locales.patch"
6337 "evolution-data-server-libical-compat.patch"))
6338 (sha256
6339 (base32
6340 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
6341 (build-system cmake-build-system)
6342 (arguments
6343 '(#:configure-flags
6344 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6345 (runpaths (map (lambda (s)
6346 (string-append lib "/evolution-data-server/" s))
6347 '("addressbook-backends" "calendar-backends"
6348 "camel-providers" "credential-modules"
6349 "registry-modules"))))
6350 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6351 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6352 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6353 "-DENABLE_VALA_BINDINGS=ON"
6354 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6355 (string-append lib "/evolution-data-server;")
6356 (string-join runpaths ";"))
6357 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6358 #:phases
6359 (modify-phases %standard-phases
6360 (add-after 'unpack 'disable-failing-tests
6361 (lambda _
6362 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6363 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6364 (delete-file-recursively "tests/book-migration")
6365 (substitute* "tests/CMakeLists.txt"
6366 (("add_subdirectory\\(book-migration\\)") ""))
6367 #t))
6368 (add-after 'unpack 'patch-paths
6369 (lambda _
6370 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6371 "tests/libedata-book/data-test-utils.c"
6372 "tests/libedata-book/test-book-cache-utils.c"
6373 "tests/libedata-cal/test-cal-cache-utils.c")
6374 (("/bin/rm") (which "rm")))
6375 #t))
6376 (add-before 'configure 'dont-override-rpath
6377 (lambda _
6378 (substitute* "CMakeLists.txt"
6379 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6380 ;; Remove it so the configure flag is respected.
6381 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6382 #t)))))
6383 (native-inputs
6384 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6385 ("gobject-introspection" ,gobject-introspection)
6386 ("gperf" ,gperf)
6387 ("intltool" ,intltool)
6388 ("pkg-config" ,pkg-config)
6389 ("vala" ,vala)
6390 ("python" ,python-wrapper)))
6391 (propagated-inputs
6392 ;; These are all in the Requires field of .pc files.
6393 `(("gtk+" ,gtk+)
6394 ("libical" ,libical)
6395 ("libsecret" ,libsecret)
6396 ("libsoup" ,libsoup)
6397 ("nss" ,nss)
6398 ("sqlite" ,sqlite)))
6399 (inputs
6400 `(("bdb" ,bdb)
6401 ("gcr" ,gcr)
6402 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6403 ("json-glib" ,json-glib)
6404 ("libcanberra" ,libcanberra)
6405 ("libgweather" ,libgweather)
6406 ("mit-krb5" ,mit-krb5)
6407 ("openldap" ,openldap)
6408 ("webkitgtk" ,webkitgtk)))
6409 (synopsis "Store address books and calendars")
6410 (home-page "https://wiki.gnome.org/Apps/Evolution")
6411 (description
6412 "This package provides a unified backend for programs that work with
6413 contacts, tasks, and calendar information. It was originally developed for
6414 Evolution (hence the name), but is now used by other packages as well.")
6415 (license license:lgpl2.0)))
6416
6417 (define-public caribou
6418 (package
6419 (name "caribou")
6420 (version "0.4.21")
6421 (source (origin
6422 (method url-fetch)
6423 (uri (string-append "mirror://gnome/sources/" name "/"
6424 (version-major+minor version) "/"
6425 name "-" version ".tar.xz"))
6426 (sha256
6427 (base32
6428 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6429 (build-system glib-or-gtk-build-system)
6430 (arguments
6431 '(#:phases
6432 (modify-phases %standard-phases
6433 (add-before
6434 'build 'pre-build
6435 (lambda* (#:key outputs #:allow-other-keys)
6436 (let ((out (assoc-ref outputs "out")))
6437 ;; Use absolute shared library path in Caribou-1.0.typelib.
6438 (substitute* "libcaribou/Makefile"
6439 (("--shared-library=libcaribou.so")
6440 (string-append "--shared-library="
6441 out "/lib/libcaribou.so")))
6442 #t)))
6443 (add-after 'install 'wrap-programs
6444 (lambda* (#:key outputs #:allow-other-keys)
6445 (let* ((out (assoc-ref outputs "out"))
6446 (python-path (getenv "PYTHONPATH"))
6447 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6448 (for-each
6449 (lambda (prog)
6450 (wrap-program prog
6451 `("PYTHONPATH" ":" prefix (,python-path))
6452 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6453 (list (string-append out "/bin/caribou-preferences")
6454 (string-append out "/libexec/antler-keyboard"))))
6455 #t)))))
6456 (native-inputs
6457 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6458 ("gobject-introspection" ,gobject-introspection)
6459 ("intltool" ,intltool)
6460 ("pkg-config" ,pkg-config)
6461 ("python" ,python)
6462 ("vala" ,vala)
6463 ("xsltproc" ,libxslt)))
6464 (propagated-inputs
6465 ;; caribou-1.0.pc refers to all these.
6466 `(("libgee" ,libgee)
6467 ("libxklavier" ,libxklavier)
6468 ("libxtst" ,libxtst)
6469 ("gtk+" ,gtk+)))
6470 (inputs
6471 `(("clutter" ,clutter)
6472 ("dconf" ,dconf)
6473 ("gtk+-2" ,gtk+-2)
6474 ("python-pygobject" ,python-pygobject)))
6475 (synopsis "Text entry and UI navigation application")
6476 (home-page "https://wiki.gnome.org/Projects/Caribou")
6477 (description
6478 "Caribou is an input assistive technology intended for switch and pointer
6479 users.")
6480 (license license:lgpl2.1)))
6481
6482 (define-public network-manager
6483 (package
6484 (name "network-manager")
6485 (version "1.24.0")
6486 (source (origin
6487 (method url-fetch)
6488 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6489 (version-major+minor version) "/"
6490 "NetworkManager-" version ".tar.xz"))
6491 (patches (search-patches "network-manager-plugin-path.patch"))
6492 (sha256
6493 (base32
6494 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
6495 (modules '((guix build utils)))
6496 (snippet
6497 '(begin
6498 (substitute* "src/devices/wwan/nm-modem-manager.c"
6499 (("systemd") "elogind"))
6500 #t))))
6501 (build-system meson-build-system)
6502 (outputs '("out"
6503 "doc")) ; 8 MiB of gtk-doc HTML
6504 (arguments
6505 `(#:configure-flags
6506 (let ((out (assoc-ref %outputs "out"))
6507 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6508 "/sbin/dhclient")))
6509 (list
6510 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6511 ;; component.
6512 (string-append "-Dc_link_args=-Wl,-rpath="
6513 out "/lib:"
6514 out "/lib/NetworkManager/" ,version)
6515 "-Dsystemd_journal=false"
6516 "-Dsession_tracking=elogind"
6517 "-Dsuspend_resume=elogind"
6518 "-Dsystemdsystemunitdir=no"
6519 "-Dsession_tracking_consolekit=false"
6520 "-Ddhcpcd=no"
6521 "-Ddhcpcanon=no"
6522 "-Dcrypto=gnutls"
6523 "-Diwd=true"
6524 "-Dlibaudit=yes"
6525 "-Dqt=false"
6526 "-Ddocs=true"
6527 "--sysconfdir=/etc"
6528 "--localstatedir=/var"
6529 (string-append "-Dudev_dir="
6530 out "/lib/udev")
6531 (string-append "-Ddbus_conf_dir="
6532 out "/etc/dbus-1/system.d")
6533
6534 (string-append "-Ddhclient=" dhclient)))
6535 #:phases
6536 (modify-phases %standard-phases
6537 (add-before 'configure 'pre-configure
6538 (lambda _
6539 ;; These tests try to test aspects of network-manager's
6540 ;; functionality within restricted containers, but they don't
6541 ;; cope with being already in the Guix build jail as that jail
6542 ;; lacks some features that they would like to proxy over (like
6543 ;; a /sys mount).
6544 (substitute* "src/platform/tests/meson.build"
6545 ((".*test-address-linux.*") "")
6546 ((".*test-cleanup-linux.*") "")
6547 ((".*test-link-linux.*") "")
6548 ((".*test-route-linux.*") ""))
6549 (substitute* "src/devices/tests/meson.build"
6550 ((".*test-acd.*") "")
6551 ((".*test-lldp.*") ""))
6552 #t))
6553 (add-after 'unpack 'patch-docbook-xml
6554 (lambda* (#:key inputs #:allow-other-keys)
6555 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6556 "/xml/dtd/docbook")))
6557 (substitute* (find-files "." ".*\\.(xsl|xml)")
6558 (("http://.*/docbookx\\.dtd")
6559 (string-append xmldoc "/docbookx.dtd")))
6560 #t)))
6561 (add-before 'check 'pre-check
6562 (lambda _
6563 ;; For the missing /etc/machine-id.
6564 (setenv "DBUS_FATAL_WARNINGS" "0")
6565 #t))
6566 (add-before 'install 'no-polkit-magic
6567 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
6568 (lambda _
6569 (setenv "PKEXEC_UID" "something")
6570 #t))
6571 (add-after 'install 'move-doc
6572 (lambda* (#:key outputs #:allow-other-keys)
6573 (let ((out (assoc-ref outputs "out"))
6574 (doc (assoc-ref outputs "doc")))
6575 (mkdir-p (string-append doc "/share"))
6576 (for-each (lambda (directory)
6577 (copy-recursively (string-append out directory)
6578 (string-append doc directory))
6579 (delete-file-recursively
6580 (string-append out directory)))
6581 '("/share/doc" "/share/gtk-doc"))
6582 #t))))))
6583 (propagated-inputs
6584 `(("glib" ,glib)))
6585 (native-inputs
6586 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6587 ("gtk-doc" ,gtk-doc)
6588 ("gobject-introspection" ,gobject-introspection)
6589 ("docbook-xml" ,docbook-xml)
6590 ("docbook-xsl" ,docbook-xsl)
6591 ("intltool" ,intltool)
6592 ("libxslt" ,libxslt)
6593 ("libxml2" ,libxml2)
6594 ("pkg-config" ,pkg-config)
6595 ("vala" ,vala)
6596 ;; For testing.
6597 ("python" ,python-wrapper)
6598 ("python-dbus" ,python-dbus)
6599 ("python-pygobject" ,python-pygobject)))
6600 (inputs
6601 `(("curl" ,curl)
6602 ("cyrus-sasl" ,cyrus-sasl)
6603 ("dbus-glib" ,dbus-glib)
6604 ("dnsmasq" ,dnsmasq)
6605 ("eudev" ,eudev)
6606 ("gnutls" ,gnutls)
6607 ("iptables" ,iptables)
6608 ("isc-dhcp" ,isc-dhcp)
6609 ("iwd" ,iwd) ; wpa_supplicant alternative
6610 ("jansson" ,jansson)
6611 ("libaudit" ,audit)
6612 ("libgcrypt" ,libgcrypt)
6613 ("libgudev" ,libgudev)
6614 ("libndp" ,libndp)
6615 ("libnl" ,libnl)
6616 ("libsoup" ,libsoup)
6617 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
6618 ("modem-manager" ,modem-manager)
6619 ("newt" ,newt) ;for the 'nmtui' console interface
6620 ("openresolv" ,openresolv) ; alternative resolv.conf manager
6621 ("polkit" ,polkit)
6622 ("ppp" ,ppp)
6623 ("readline" ,readline)
6624 ("util-linux" ,util-linux)
6625 ("elogind" ,elogind)))
6626 (synopsis "Network connection manager")
6627 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6628 (description
6629 "NetworkManager is a system network service that manages your network
6630 devices and connections, attempting to keep active network connectivity when
6631 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6632 devices, and provides VPN integration with a variety of different VPN
6633 services.")
6634 ;; “This NetworkManager project consists of the daemon, client tools, and
6635 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6636 ;; GPL-2.0+.”
6637 (license (list license:gpl2+
6638 license:lgpl2.1+))
6639 (properties '((upstream-name . "NetworkManager")))))
6640
6641 (define-public network-manager-openvpn
6642 (package
6643 (name "network-manager-openvpn")
6644 (version "1.8.12")
6645 (source (origin
6646 (method url-fetch)
6647 (uri (string-append
6648 "mirror://gnome/sources/NetworkManager-openvpn/"
6649 (version-major+minor version)
6650 "/NetworkManager-openvpn-" version ".tar.xz"))
6651 (sha256
6652 (base32
6653 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
6654 (build-system gnu-build-system)
6655 (arguments
6656 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6657 #:phases
6658 (modify-phases %standard-phases
6659 (add-after 'configure 'patch-path
6660 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6661 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6662 "/sbin/openvpn"))
6663 (modprobe (string-append (assoc-ref inputs "kmod")
6664 "/bin/modprobe"))
6665 (pretty-ovpn (string-append "\"" ovpn "\"")))
6666 (for-each
6667 (lambda (file)
6668 (substitute* file
6669 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6670 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6671 (("\"/sbin/openvpn\"") pretty-ovpn)
6672 (("/sbin/modprobe") modprobe)))
6673 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6674 #t)))))
6675 (native-inputs
6676 `(("pkg-config" ,pkg-config)
6677 ("intltool" ,intltool)))
6678 (inputs
6679 `(("gtk+" ,gtk+)
6680 ("kmod" ,kmod)
6681 ("openvpn" ,openvpn)
6682 ("network-manager" ,network-manager)
6683 ("libnma" ,libnma)
6684 ("libsecret" ,libsecret)))
6685 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6686 (synopsis "OpenVPN plug-in for NetworkManager")
6687 (description
6688 "This extension of NetworkManager allows it to take care of connections
6689 to virtual private networks (VPNs) via OpenVPN.")
6690 (license license:gpl2+)
6691 (properties `((upstream-name . "NetworkManager-openvpn")))))
6692
6693 (define-public network-manager-vpnc
6694 (package
6695 (name "network-manager-vpnc")
6696 (version "1.2.6")
6697 (source (origin
6698 (method url-fetch)
6699 (uri (string-append
6700 "mirror://gnome/sources/NetworkManager-vpnc/"
6701 (version-major+minor version)
6702 "/NetworkManager-vpnc-" version ".tar.xz"))
6703 (sha256
6704 (base32
6705 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6706 (build-system gnu-build-system)
6707 (arguments
6708 `(#:configure-flags '("--enable-absolute-paths"
6709 "--localstatedir=/var"
6710 ;; libnm-glib has been removed from network-manager
6711 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
6712 "--with-libnm-glib=no")
6713 #:phases
6714 (modify-phases %standard-phases
6715 (add-after 'configure 'patch-path
6716 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6717 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6718 "/sbin/vpnc"))
6719 (modprobe (string-append (assoc-ref inputs "kmod")
6720 "/bin/modprobe"))
6721 (pretty-ovpn (string-append "\"" vpnc "\"")))
6722 (substitute* "src/nm-vpnc-service.c"
6723 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6724 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6725 (("\"/sbin/vpnc\"") pretty-ovpn)
6726 (("/sbin/modprobe") modprobe)))
6727 #t)))))
6728 (native-inputs
6729 `(("pkg-config" ,pkg-config)
6730 ("intltool" ,intltool)))
6731 (inputs
6732 `(("gtk+" ,gtk+)
6733 ("kmod" ,kmod)
6734 ("vpnc" ,vpnc)
6735 ("network-manager" ,network-manager)
6736 ("libnma" ,libnma)
6737 ("libsecret" ,libsecret)))
6738 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6739 (synopsis "VPNC plug-in for NetworkManager")
6740 (description
6741 "Support for configuring virtual private networks based on VPNC.
6742 Compatible with Cisco VPN concentrators configured to use IPsec.")
6743 (license license:gpl2+)
6744 (properties `((upstream-name . "NetworkManager-vpnc")))))
6745
6746 (define-public network-manager-openconnect
6747 (package
6748 (name "network-manager-openconnect")
6749 (version "1.2.6")
6750 (source (origin
6751 (method url-fetch)
6752 (uri (string-append
6753 "mirror://gnome/sources/NetworkManager-openconnect/"
6754 (version-major+minor version)
6755 "/NetworkManager-openconnect-" version ".tar.xz"))
6756 (sha256
6757 (base32
6758 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6759 (build-system gnu-build-system)
6760 (arguments
6761 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6762 #:phases
6763 (modify-phases %standard-phases
6764 (add-after 'configure 'patch-path
6765 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6766 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6767 "/sbin/openconnect"))
6768 (modprobe (string-append (assoc-ref inputs "kmod")
6769 "/bin/modprobe"))
6770 (pretty-ovpn (string-append "\"" openconnect "\"")))
6771 (substitute* "src/nm-openconnect-service.c"
6772 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
6773 (("/sbin/modprobe") modprobe)))
6774 #t)))))
6775 (native-inputs
6776 `(("intltool" ,intltool)
6777 ("libnma" ,libnma)
6778 ("pkg-config" ,pkg-config)))
6779 (inputs
6780 `(("gcr" ,gcr)
6781 ("gtk+" ,gtk+)
6782 ("kmod" ,kmod)
6783 ("libsecret" ,libsecret)
6784 ("libxml2" ,libxml2)
6785 ("lz4" ,lz4)
6786 ("network-manager" ,network-manager)
6787 ("openconnect" ,openconnect)))
6788 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6789 (synopsis "OpenConnect plug-in for NetworkManager")
6790 (description
6791 "This extension of NetworkManager allows it to take care of connections
6792 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6793 Cisco's AnyConnect SSL VPN.")
6794 (license license:gpl2+)
6795 (properties `((upstream-name . "NetworkManager-openconnect")
6796
6797 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6798 ;; file refers to account "nm-openconnect". Specify it here
6799 ;; so that 'network-manager-service-type' creates it.
6800 (user-accounts . ("nm-openconnect"))))))
6801
6802 (define-public mobile-broadband-provider-info
6803 (package
6804 (name "mobile-broadband-provider-info")
6805 (version "20190116")
6806 (source (origin
6807 (method url-fetch)
6808 (uri (string-append
6809 "mirror://gnome/sources/"
6810 "mobile-broadband-provider-info/" version "/"
6811 "mobile-broadband-provider-info-" version ".tar.xz"))
6812 (sha256
6813 (base32
6814 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6815 (build-system gnu-build-system)
6816 (arguments
6817 `(#:tests? #f)) ; no tests
6818 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6819 (synopsis "Database of broadband connection configuration")
6820 (description "Database of broadband connection configuration.")
6821 (license license:public-domain)))
6822
6823 (define-public network-manager-applet
6824 (package
6825 (name "network-manager-applet")
6826 (version "1.16.0")
6827 (source (origin
6828 (method url-fetch)
6829 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6830 (version-major+minor version) "/"
6831 "network-manager-applet-" version ".tar.xz"))
6832 (sha256
6833 (base32
6834 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
6835 (build-system meson-build-system)
6836 (arguments
6837 '(#:glib-or-gtk? #t))
6838 (native-inputs
6839 `(("intltool" ,intltool)
6840 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6841 ("gobject-introspection" ,gobject-introspection)
6842 ("gtk-doc" ,gtk-doc)
6843 ("pkg-config" ,pkg-config)))
6844 (propagated-inputs
6845 ;; libnm-gtk.pc refers to all these.
6846 `(("dbus-glib" ,dbus-glib)
6847 ("gtk+" ,gtk+)
6848 ("network-manager" ,network-manager)
6849 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
6850 ("libnma" ,libnma)))
6851 (inputs
6852 `(("gcr" ,gcr)
6853 ("libgudev" ,libgudev)
6854 ("libnotify" ,libnotify)
6855 ("libsecret" ,libsecret)
6856 ("libselinux" ,libselinux)
6857 ("jansson" ,jansson) ; for team support
6858 ("modem-manager" ,modem-manager)))
6859 (synopsis "Applet for managing network connections")
6860 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6861 (description
6862 "This package contains a systray applet for NetworkManager. It displays
6863 the available networks and allows users to easily switch between them.")
6864 (license license:gpl2+)))
6865
6866 (define-public libxml++
6867 (package
6868 (name "libxml++")
6869 (version "3.0.1")
6870 (source (origin
6871 (method url-fetch)
6872 (uri (string-append "mirror://gnome/sources/" name "/"
6873 (version-major+minor version) "/"
6874 name "-" version ".tar.xz"))
6875 (sha256
6876 (base32
6877 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6878 (build-system gnu-build-system)
6879 ;; libxml++-3.0.pc refers to all these.
6880 (propagated-inputs
6881 `(("libxml2" ,libxml2)
6882 ("glibmm" ,glibmm)))
6883 (native-inputs
6884 `(("perl" ,perl)
6885 ("pkg-config" ,pkg-config)))
6886 (home-page "http://libxmlplusplus.sourceforge.net/")
6887 (synopsis "C++ wrapper for XML parser library libxml2")
6888 (description
6889 "This package provides a C++ wrapper for the XML parser library
6890 libxml2.")
6891 (license license:lgpl2.1+)))
6892
6893 (define-public libxml++-2
6894 (package
6895 (inherit libxml++)
6896 (name "libxml++")
6897 (version "2.40.1")
6898 (source (origin
6899 (method url-fetch)
6900 (uri (string-append "mirror://gnome/sources/" name "/"
6901 (version-major+minor version) "/"
6902 name "-" version ".tar.xz"))
6903 (sha256
6904 (base32
6905 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6906
6907 (define-public gdm
6908 (package
6909 (name "gdm")
6910 (version "3.34.1")
6911 (source (origin
6912 (method url-fetch)
6913 (uri (string-append "mirror://gnome/sources/" name "/"
6914 (version-major+minor version) "/"
6915 name "-" version ".tar.xz"))
6916 (sha256
6917 (base32
6918 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
6919 (patches (search-patches "gdm-default-session.patch"))))
6920 (build-system glib-or-gtk-build-system)
6921 (arguments
6922 '(#:configure-flags
6923 `("--without-plymouth"
6924 "--disable-systemd-journal"
6925
6926 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6927 ;; instead of having to replace it (i.e., stopping the mingetty
6928 ;; service for TTY 1 before starting GDM).
6929 "--with-initial-vt=7"
6930
6931 ;; Use '/etc/environment' for locale settings instead of the
6932 ;; systemd-specific '/etc/locale.conf'.
6933 "--with-lang-file=/etc/environment"
6934
6935 ,(string-append "--with-udevdir="
6936 (assoc-ref %outputs "out") "/lib/udev")
6937
6938 "--localstatedir=/var"
6939 ,(string-append "--with-default-path="
6940 (string-join '("/run/setuid-programs"
6941 "/run/current-system/profile/bin"
6942 "/run/current-system/profile/sbin")
6943 ":"))
6944 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6945 ;; XDG_DATA_DIRS so that it finds its schemas.
6946 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6947 #:phases
6948 (modify-phases %standard-phases
6949 (add-before
6950 'configure 'pre-configure
6951 (lambda* (#:key inputs outputs #:allow-other-keys)
6952 ;; We don't have <systemd/sd-daemon.h>.
6953 (substitute* '("common/gdm-log.c"
6954 "daemon/gdm-server.c"
6955 "daemon/gdm-session-worker.c"
6956 "daemon/gdm-session-worker-job.c")
6957 (("#include <systemd/sd-daemon\\.h>") ""))
6958 ;; Use elogind for sd-login.
6959 (substitute* '("common/gdm-common.c"
6960 "daemon/gdm-local-display-factory.c"
6961 "daemon/gdm-manager.c"
6962 "libgdm/gdm-user-switching.c")
6963 (("#include <systemd/sd-login\\.h>")
6964 "#include <elogind/sd-login.h>"))
6965 ;; Check for elogind.
6966 (substitute* '("configure")
6967 (("libsystemd")
6968 "libelogind"))
6969 ;; Look for system-installed sessions in
6970 ;; /run/current-system/profile/share.
6971 (substitute* '("libgdm/gdm-sessions.c"
6972 "daemon/gdm-session.c"
6973 "daemon/gdm-display.c"
6974 "daemon/gdm-launch-environment.c")
6975 (("DATADIR \"/x")
6976 "\"/run/current-system/profile/share/x")
6977 (("DATADIR \"/wayland")
6978 "\"/run/current-system/profile/share/wayland")
6979 (("DATADIR \"/gnome")
6980 "\"/run/current-system/profile/share/gnome"))
6981 (let ((propagate '("GDM_CUSTOM_CONF"
6982 "GDM_DBUS_DAEMON"
6983 "GDM_X_SERVER"
6984 "GDM_X_SESSION"
6985 ;; XXX: Remove this once GNOME Shell is
6986 ;; a dependency of GDM.
6987 "XDG_DATA_DIRS")))
6988 (substitute* "daemon/gdm-session.c"
6989 (("set_up_session_environment \\(self\\);")
6990 (apply string-append
6991 "set_up_session_environment (self);\n"
6992 (map (lambda (name)
6993 (string-append
6994 "gdm_session_set_environment_variable "
6995 "(self, \"" name "\","
6996 "g_getenv (\"" name "\"));\n"))
6997 propagate)))))
6998 ;; Find the configuration file using an environment variable.
6999 (substitute* '("common/gdm-settings.c")
7000 (("GDM_CUSTOM_CONF")
7001 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7002 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7003 " : GDM_CUSTOM_CONF)")))
7004 ;; Use service-supplied path to X.
7005 (substitute* '("daemon/gdm-server.c")
7006 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7007 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
7008 (substitute* '("daemon/gdm-wayland-session.c"
7009 "daemon/gdm-x-session.c")
7010 (("\"dbus-daemon\"")
7011 "g_getenv (\"GDM_DBUS_DAEMON\")")
7012 (("X_SERVER")
7013 "g_getenv (\"GDM_X_SERVER\")")
7014 (("GDMCONFDIR \"/Xsession\"")
7015 "g_getenv (\"GDM_X_SESSION\")"))
7016 ;; Use an absolute path for GNOME Session.
7017 (substitute* "daemon/gdm-launch-environment.c"
7018 (("\"gnome-session\"")
7019 (string-append "\"" (assoc-ref inputs "gnome-session")
7020 "/bin/gnome-session\"")))
7021 ;; Do not automatically select the placeholder session.
7022 (substitute* "daemon/gdm-session.c"
7023 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7024 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7025 "(g_strcmp0(search_dirs[i], \""
7026 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7027 "\") == 0 && "
7028 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7029 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
7030 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
7031 #t))
7032 ;; GDM requires that there be at least one desktop entry
7033 ;; file. This phase installs a hidden one that simply
7034 ;; fails. This enables users to use GDM with a
7035 ;; '~/.xsession' script with no other desktop entry files.
7036 ;; See <https://bugs.gnu.org/35068>.
7037 (add-after 'install 'install-placeholder-desktop-entry
7038 (lambda* (#:key inputs outputs #:allow-other-keys)
7039 (let* ((out (assoc-ref outputs "out"))
7040 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7041 (fail (string-append sessions "/fail.desktop")))
7042 (mkdir-p sessions)
7043 (with-output-to-file fail
7044 (lambda ()
7045 (for-each
7046 display
7047 '("[Desktop Entry]\n"
7048 "Encoding=UTF-8\n"
7049 "Type=Application\n"
7050 "Name=Fail\n"
7051 "Comment=This session fails immediately.\n"
7052 "NoDisplay=true\n"
7053 "Exec=false\n"))))
7054 #t)))
7055 ;; GDM needs GNOME Session to run these applications. We link
7056 ;; their autostart files in `share/gdm/greeter/autostart'
7057 ;; because GDM explicitly tells GNOME Session to look there.
7058 ;;
7059 ;; XXX: GNOME Shell should be linked here too, but currently
7060 ;; GNOME Shell depends on GDM.
7061 (add-after 'install 'link-autostart-files
7062 (lambda* (#:key inputs outputs #:allow-other-keys)
7063 (let* ((out (assoc-ref outputs "out"))
7064 (autostart (string-append out "/share/gdm/"
7065 "greeter/autostart"))
7066 (settings (assoc-ref inputs "gnome-settings-daemon")))
7067 (mkdir-p autostart)
7068 (with-directory-excursion autostart
7069 (for-each (lambda (desktop)
7070 (symlink desktop (basename desktop)))
7071 (find-files (string-append settings "/etc/xdg"))))
7072 #t))))))
7073 (native-inputs
7074 `(("dconf" ,dconf)
7075 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7076 ("gobject-introspection" ,gobject-introspection)
7077 ("intltool" ,intltool)
7078 ("itstool" ,itstool)
7079 ("pkg-config" ,pkg-config)
7080 ("xmllint" ,libxml2)))
7081 (inputs
7082 `(("accountsservice" ,accountsservice)
7083 ("check" ,check) ; for testing
7084 ("elogind" ,elogind)
7085 ("gnome-session" ,gnome-session)
7086 ("gnome-settings-daemon" ,gnome-settings-daemon)
7087 ("gtk+" ,gtk+)
7088 ("iso-codes" ,iso-codes)
7089 ("libcanberra" ,libcanberra)
7090 ("linux-pam" ,linux-pam)))
7091 (synopsis "Display manager for GNOME")
7092 (home-page "https://wiki.gnome.org/Projects/GDM/")
7093 (description
7094 "GNOME Display Manager is a system service that is responsible for
7095 providing graphical log-ins and managing local and remote displays.")
7096 (license license:gpl2+)))
7097
7098 (define-public libgtop
7099 (package
7100 (name "libgtop")
7101 (version "2.40.0")
7102 (source (origin
7103 (method url-fetch)
7104 (uri (string-append "mirror://gnome/sources/libgtop/"
7105 (version-major+minor version) "/"
7106 "libgtop-" version ".tar.xz"))
7107 (sha256
7108 (base32
7109 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7110 (build-system gnu-build-system)
7111 (native-inputs
7112 `(("gobject-introspection" ,gobject-introspection)
7113 ("intltool" ,intltool)
7114 ("perl" ,perl)
7115 ("pkg-config" ,pkg-config)))
7116 (propagated-inputs
7117 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7118 (synopsis "Portable system access library")
7119 (home-page "https://www.gnome.org/")
7120 (description
7121 "LibGTop is a library to get system specific data such as CPU and memory
7122 usage and information about running processes.")
7123 (license license:gpl2+)))
7124
7125 (define-public gnome-bluetooth
7126 (package
7127 (name "gnome-bluetooth")
7128 (version "3.34.0")
7129 (source (origin
7130 (method url-fetch)
7131 (uri (string-append "mirror://gnome/sources/" name "/"
7132 (version-major+minor version) "/"
7133 name "-" version ".tar.xz"))
7134 (sha256
7135 (base32
7136 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
7137 (build-system meson-build-system)
7138 (native-inputs
7139 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7140 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7141 ("gobject-introspection" ,gobject-introspection)
7142 ("intltool" ,intltool)
7143 ("pkg-config" ,pkg-config)
7144 ("xmllint" ,libxml2)))
7145 (propagated-inputs
7146 ;; gnome-bluetooth-1.0.pc refers to all these.
7147 `(("glib" ,glib)
7148 ("gtk+" ,gtk+)))
7149 (inputs
7150 `(("eudev" ,eudev)
7151 ("libcanberra" ,libcanberra)
7152 ("libnotify" ,libnotify)))
7153 (synopsis "GNOME Bluetooth subsystem")
7154 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7155 (description
7156 "This package contains tools for managing and manipulating Bluetooth
7157 devices using the GNOME desktop.")
7158 (license license:lgpl2.1+)))
7159
7160 (define-public gnome-control-center
7161 (package
7162 (name "gnome-control-center")
7163 (version "3.34.2")
7164 (source (origin
7165 (method url-fetch)
7166 (uri (string-append "mirror://gnome/sources/" name "/"
7167 (version-major+minor version) "/"
7168 name "-" version ".tar.xz"))
7169 (sha256
7170 (base32
7171 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7172 (build-system meson-build-system)
7173 (arguments
7174 '(#:glib-or-gtk? #t
7175 #:configure-flags
7176 (list "-Dcheese=false"
7177 (string-append "-Dgnome_session_libexecdir="
7178 (assoc-ref %build-inputs "gnome-session")
7179 "/libexec"))
7180 #:phases
7181 (modify-phases %standard-phases
7182 (add-before 'configure 'patch-paths
7183 (lambda* (#:key inputs #:allow-other-keys)
7184 (let ((libc (assoc-ref inputs "libc"))
7185 (tzdata (assoc-ref inputs "tzdata"))
7186 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7187 (nm-applet (assoc-ref inputs "network-manager-applet"))
7188 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7189 (substitute* "panels/datetime/tz.h"
7190 (("/usr/share/zoneinfo/zone.tab")
7191 (string-append tzdata "/share/zoneinfo/zone.tab")))
7192 (substitute* "tests/datetime/test-endianess.c"
7193 (("/usr/share/locale")
7194 (string-append libc "/share/locale")))
7195 (substitute* "panels/region/cc-region-panel.c"
7196 (("\"gkbd-keyboard-display")
7197 (string-append "\"" libgnomekbd
7198 "/bin/gkbd-keyboard-display")))
7199 (substitute* '("panels/network/net-device-wifi.c"
7200 "panels/network/net-device.c"
7201 "panels/network/connection-editor/net-connection-editor.c")
7202 (("\"nm-connection-editor")
7203 (string-append "\"" nm-applet
7204 "/bin/nm-connection-editor")))
7205 (substitute* '("panels/user-accounts/run-passwd.c")
7206 (("/usr/bin/passwd")
7207 "/run/setuid-programs/passwd"))
7208 (substitute* "panels/info/cc-info-overview-panel.c"
7209 (("DATADIR \"/gnome/gnome-version.xml\"")
7210 (string-append "\"" gnome-desktop
7211 "/share/gnome/gnome-version.xml\"")))
7212 #t)))
7213 (add-after 'unpack 'skip-gtk-update-icon-cache
7214 ;; Don't create 'icon-theme.cache'.
7215 (lambda _
7216 (substitute* "build-aux/meson/meson_post_install.py"
7217 (("gtk-update-icon-cache") (which "true")))
7218 #t)))))
7219 (native-inputs
7220 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7221 ("intltool" ,intltool)
7222 ("pkg-config" ,pkg-config)
7223 ("xsltproc" ,libxslt)
7224 ;; For tests
7225 ("hicolor-icon-theme" ,hicolor-icon-theme)
7226 ("python-dbusmock" ,python-dbusmock)
7227 ("xorg-server" ,xorg-server-for-tests)))
7228 (inputs
7229 `(("accountsservice" ,accountsservice)
7230 ("clutter-gtk" ,clutter-gtk)
7231 ("colord-gtk" ,colord-gtk)
7232 ("cups" ,cups)
7233 ("dconf" ,dconf)
7234 ("docbook-xsl" ,docbook-xsl)
7235 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7236 ("gnome-bluetooth" ,gnome-bluetooth)
7237 ("gnome-desktop" ,gnome-desktop)
7238 ("gnome-online-accounts" ,gnome-online-accounts)
7239 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7240 ("gnome-session" ,gnome-session)
7241 ("gnome-settings-daemon" ,gnome-settings-daemon)
7242 ("grilo" ,grilo)
7243 ("gsound" ,gsound)
7244 ("ibus" ,ibus)
7245 ("libcanberra" ,libcanberra)
7246 ("libgnomekbd" ,libgnomekbd)
7247 ("libgudev" ,libgudev)
7248 ("libgtop" ,libgtop)
7249 ("libnma" ,libnma)
7250 ("libpwquality" ,libpwquality)
7251 ("libsecret" ,libsecret)
7252 ("libsoup" ,libsoup)
7253 ("libxml2" ,libxml2)
7254 ("libwacom" ,libwacom)
7255 ("mesa" ,mesa)
7256 ("mit-krb5" ,mit-krb5)
7257 ("modem-manager" ,modem-manager)
7258 ("network-manager-applet" ,network-manager-applet)
7259 ("polkit" ,polkit)
7260 ("pulseaudio" ,pulseaudio)
7261 ("smbclient" ,samba)
7262 ("tzdata" ,tzdata)
7263 ("udisks" ,udisks)
7264 ("upower" ,upower)))
7265 (synopsis "Utilities to configure the GNOME desktop")
7266 (home-page "https://www.gnome.org/")
7267 (description
7268 "This package contains configuration applets for the GNOME desktop,
7269 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7270 properties, sound setup, desktop theme and background, user interface
7271 properties, screen resolution, and other GNOME parameters.")
7272 (license license:gpl2+)))
7273
7274 (define-public gnome-shell
7275 (package
7276 (name "gnome-shell")
7277 (version "3.34.2")
7278 (source (origin
7279 (method url-fetch)
7280 (uri (string-append "mirror://gnome/sources/" name "/"
7281 (version-major+minor version) "/"
7282 name "-" version ".tar.xz"))
7283 (sha256
7284 (base32
7285 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7286 (patches (search-patches "gnome-shell-theme.patch"
7287 "gnome-shell-disable-test.patch"))
7288 (modules '((guix build utils)))
7289 (snippet
7290 #~(begin
7291 ;; Copy images for use on the GDM log-in screen.
7292 (copy-file #$(file-append %artwork-repository
7293 "/slim/0.x/background.png")
7294 "data/theme/guix-background.png")
7295 (copy-file #$(file-append %artwork-repository
7296 "/logo/Guix-horizontal-white.svg")
7297 "data/theme/guix-logo.svg")
7298 #t))))
7299 (build-system meson-build-system)
7300 (arguments
7301 `(#:glib-or-gtk? #t
7302 #:disallowed-references ((,glib "bin")
7303 ,inkscape ,libxslt
7304 ,ruby-sass)
7305 #:configure-flags
7306 (list "-Dsystemd=false"
7307 ;; Otherwise, the RUNPATH will lack the final path component.
7308 (string-append "-Dc_link_args=-Wl,-rpath="
7309 (assoc-ref %outputs "out")
7310 "/lib/gnome-shell"))
7311
7312 #:modules ((guix build meson-build-system)
7313 (guix build utils)
7314 (srfi srfi-1))
7315
7316 #:phases
7317 (modify-phases %standard-phases
7318 (add-after 'unpack 'fix-keysdir
7319 (lambda* (#:key outputs #:allow-other-keys)
7320 (let* ((out (assoc-ref outputs "out"))
7321 (keysdir (string-append
7322 out "/share/gnome-control-center/keybindings")))
7323 (substitute* "meson.build"
7324 (("keysdir =.*")
7325 (string-append "keysdir = '" keysdir "'\n")))
7326 #t)))
7327 (add-before 'configure 'convert-logo-to-png
7328 (lambda* (#:key inputs #:allow-other-keys)
7329 ;; Convert the logo from SVG to PNG.
7330 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7331 "data/theme/guix-logo.svg")))
7332 (add-before 'configure 'record-absolute-file-names
7333 (lambda* (#:key inputs #:allow-other-keys)
7334 (substitute* "js/misc/ibusManager.js"
7335 (("'ibus-daemon'")
7336 (string-append "'" (assoc-ref inputs "ibus")
7337 "/bin/ibus-daemon'")))
7338 (substitute* "js/ui/status/keyboard.js"
7339 (("'gkbd-keyboard-display'")
7340 (string-append "'" (assoc-ref inputs "libgnomekbd")
7341 "/bin/gkbd-keyboard-display'")))
7342 #t))
7343 (add-before 'check 'pre-check
7344 (lambda* (#:key inputs #:allow-other-keys)
7345 ;; Tests require a running X server.
7346 (system "Xvfb :1 &")
7347 (setenv "DISPLAY" ":1")
7348 #t))
7349 (add-after 'install 'wrap-programs
7350 (lambda* (#:key inputs outputs #:allow-other-keys)
7351 (let ((out (assoc-ref outputs "out"))
7352 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7353 (python-path (getenv "PYTHONPATH")))
7354 (wrap-program (string-append out "/bin/gnome-shell")
7355 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7356 ;; FIXME: gnome-shell loads these libraries with unqualified
7357 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7358 ;; alternative might be to patch gnome-shell.
7359 `("LD_LIBRARY_PATH" ":" prefix
7360 ,(map (lambda (pkg)
7361 (string-append (assoc-ref inputs pkg) "/lib"))
7362 '("gdk-pixbuf"
7363 "gnome-bluetooth" "librsvg" "libgweather"))))
7364 (for-each
7365 (lambda (prog)
7366 (wrap-program (string-append out "/bin/" prog)
7367 `("PYTHONPATH" ":" prefix (,python-path))
7368 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7369 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7370 #t)))
7371 (replace 'glib-or-gtk-wrap
7372 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7373 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7374 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7375 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7376 ;; phase. Fix that since we don't need these.
7377 (wrap #:inputs (fold alist-delete inputs
7378 '("inkscape" "intltool" "glib:bin"))
7379 #:outputs outputs)))))))
7380 (native-inputs
7381 `(("asciidoc" ,asciidoc)
7382 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7383 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7384 ("gobject-introspection" ,gobject-introspection)
7385 ("inkscape" ,inkscape)
7386 ("intltool" ,intltool)
7387 ("pkg-config" ,pkg-config)
7388 ("python" ,python)
7389 ("ruby-sass" ,ruby-sass)
7390 ("sassc" ,sassc)
7391 ("xsltproc" ,libxslt)
7392 ;; For tests
7393 ("xorg-server" ,xorg-server-for-tests)))
7394 (inputs
7395 `(("accountsservice" ,accountsservice)
7396 ("caribou" ,caribou)
7397 ("docbook-xsl" ,docbook-xsl)
7398 ("evolution-data-server" ,evolution-data-server)
7399 ("gcr" ,gcr)
7400 ("gdm" ,gdm)
7401 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7402 ("gjs" ,gjs)
7403 ("gnome-autoar" ,gnome-autoar)
7404 ("gnome-bluetooth" ,gnome-bluetooth)
7405 ("gnome-desktop" ,gnome-desktop)
7406 ("gnome-settings-daemon" ,gnome-settings-daemon)
7407 ("gst-plugins-base" ,gst-plugins-base)
7408 ("ibus" ,ibus)
7409 ("libcanberra" ,libcanberra)
7410 ("libcroco" ,libcroco)
7411 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7412 ("libgweather" ,libgweather)
7413 ("libnma" ,libnma)
7414 ("libsoup" ,libsoup)
7415 ("mesa-headers" ,mesa-headers)
7416 ("mutter" ,mutter)
7417 ("network-manager-applet" ,network-manager-applet)
7418 ("polkit" ,polkit)
7419 ("pulseaudio" ,pulseaudio)
7420 ("python-pygobject" ,python-pygobject)
7421 ("startup-notification" ,startup-notification)
7422 ("telepathy-logger" ,telepathy-logger)
7423 ("upower" ,upower)
7424 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7425 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7426 ("librsvg" ,librsvg)
7427 ("geoclue" ,geoclue)))
7428 (synopsis "Desktop shell for GNOME")
7429 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7430 (description
7431 "GNOME Shell provides core user interface functions for the GNOME desktop,
7432 like switching to windows and launching applications.")
7433 (license license:gpl2+)))
7434
7435 (define-public gtk-vnc
7436 (package
7437 (name "gtk-vnc")
7438 (version "0.9.0")
7439 (source
7440 (origin
7441 (method url-fetch)
7442 (uri (string-append "mirror://gnome/sources/" name "/"
7443 (version-major+minor version) "/"
7444 name "-" version ".tar.xz"))
7445 (sha256
7446 (base32
7447 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7448 (build-system gnu-build-system)
7449 (arguments
7450 '(#:configure-flags '("--with-gtk=3.0")))
7451 (propagated-inputs
7452 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7453 (inputs
7454 `(("cyrus-sasl" ,cyrus-sasl)
7455 ("gnutls" ,gnutls)
7456 ("libgcrypt" ,libgcrypt)
7457 ("pulseaudio" ,pulseaudio)))
7458 (native-inputs
7459 `(("glib:bin" ,glib "bin")
7460 ("gobject-introspection" ,gobject-introspection)
7461 ("intltool" ,intltool)
7462 ("pkg-config" ,pkg-config)
7463 ("python-wrapper" ,python-wrapper)
7464 ("vala" ,vala)))
7465 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7466 (synopsis "VNC viewer widget for GTK+")
7467 (description
7468 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7469 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7470 GTK-VNC implements client side RFB protocol and authentication extensions such
7471 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7472 (license license:lgpl2.1+)))
7473
7474 (define-public gnome-autoar
7475 (package
7476 (name "gnome-autoar")
7477 (version "0.2.4")
7478 (source (origin
7479 (method url-fetch)
7480 (uri (string-append "mirror://gnome/sources/" name "/"
7481 (version-major+minor version) "/"
7482 name "-" version ".tar.xz"))
7483 (sha256
7484 (base32
7485 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
7486 (build-system glib-or-gtk-build-system)
7487 (native-inputs
7488 `(("gobject-introspection" ,gobject-introspection)
7489 ("pkg-config" ,pkg-config)))
7490 (propagated-inputs
7491 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
7492 (inputs
7493 `(("gtk+" ,gtk+)))
7494 (synopsis "Archives integration support for GNOME")
7495 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7496 (description
7497 "GNOME Autoar is a library which makes creating and extracting archives
7498 easy, safe, and automatic.")
7499 (license license:lgpl2.1+)))
7500
7501 (define-public tracker
7502 (package
7503 (name "tracker")
7504 (version "2.3.4")
7505 (source (origin
7506 (method url-fetch)
7507 (uri (string-append "mirror://gnome/sources/tracker/"
7508 (version-major+minor version) "/"
7509 "tracker-" version ".tar.xz"))
7510 (sha256
7511 (base32
7512 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7513 (build-system meson-build-system)
7514 (arguments
7515 `(#:glib-or-gtk? #t
7516 #:configure-flags
7517 ;; Otherwise, the RUNPATH will lack the final path component.
7518 (list (string-append "-Dc_link_args=-Wl,-rpath="
7519 (assoc-ref %outputs "out") "/lib:"
7520 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7521 #:phases
7522 (modify-phases %standard-phases
7523 (add-before 'check 'pre-check
7524 (lambda _
7525 ;; Some tests expect to write to $HOME.
7526 (setenv "HOME" "/tmp")
7527 #t)))))
7528 (native-inputs
7529 `(("glib:bin" ,glib "bin")
7530 ("gobject-introspection" ,gobject-introspection)
7531 ("python-pygobject" ,python-pygobject)
7532 ("intltool" ,intltool)
7533 ("pkg-config" ,pkg-config)
7534 ("vala" ,vala)))
7535 (inputs
7536 `(("dbus" ,dbus)
7537 ("sqlite" ,sqlite)
7538 ("libxml2" ,libxml2)
7539 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
7540 ("json-glib" ,json-glib)
7541 ("libsoup" ,libsoup)))
7542 (synopsis "Metadata database, indexer and search tool")
7543 (home-page "https://wiki.gnome.org/Projects/Tracker")
7544 (description
7545 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7546
7547 It is a middleware component aimed at desktop application developers who want
7548 their apps to browse and search user content. It's not designed to be used
7549 directly by desktop users, but it provides a commandline tool named
7550 @command{tracker} for the adventurous.
7551
7552 Tracker allows your application to instantly perform full-text searches across
7553 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7554 example. This is achieved by indexing the user's home directory in the
7555 background.
7556
7557 Tracker also allows your application to query and list content that the user
7558 has stored. For example, GNOME Music displays all the music files that are
7559 found by Tracker. This means that GNOME Music doesn't need to maintain a
7560 database of its own.
7561
7562 If you need to go beyond simple searches, Tracker is also a linked data
7563 endpoint and it understands SPARQL. ")
7564 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
7565 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7566 ;; libstemmer is bsd-3 and the rest is gpl2+.
7567 (license (list license:gpl2+
7568 license:bsd-3
7569 license:lgpl2.1+))))
7570
7571 (define-public tracker-miners
7572 (package
7573 (name "tracker-miners")
7574 (version "2.3.3")
7575 (source (origin
7576 (method url-fetch)
7577 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7578 (version-major+minor version)
7579 "/tracker-miners-" version ".tar.xz"))
7580 (sha256
7581 (base32
7582 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
7583 (build-system meson-build-system)
7584 (arguments
7585 `(#:glib-or-gtk? #t
7586 #:configure-flags
7587 (list "-Dminer_rss=false" ; libgrss is required.
7588 ;; Ensure the RUNPATH contains all installed library locations.
7589 (string-append "-Dc_link_args=-Wl,-rpath="
7590 (assoc-ref %outputs "out")
7591 "/lib/tracker-miners-2.0")
7592 ;; TODO: Enable functional tests. Currently, the following error
7593 ;; appears:
7594 ;; Exception: The functional tests require DConf to be the default
7595 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7596 "-Dfunctional_tests=false")))
7597 (native-inputs
7598 `(("dbus" ,dbus)
7599 ("intltool" ,intltool)
7600 ("glib:bin" ,glib "bin")
7601 ("gobject-introspection" ,gobject-introspection)
7602 ("pkg-config" ,pkg-config)
7603 ("python-pygobject" ,python-pygobject)))
7604 (inputs
7605 `(("exempi" ,exempi)
7606 ("ffmpeg" ,ffmpeg)
7607 ("flac" ,flac)
7608 ("giflib" ,giflib)
7609 ("glib" ,glib)
7610 ("gstreamer" ,gstreamer)
7611 ("icu4c" ,icu4c)
7612 ("libcue" ,libcue)
7613 ("libexif" ,libexif)
7614 ("libgsf" ,libgsf)
7615 ("libgxps" ,libgxps)
7616 ("libiptcdata" ,libiptcdata)
7617 ("libjpeg" ,libjpeg-turbo)
7618 ("libosinfo" ,libosinfo)
7619 ("libpng" ,libpng)
7620 ("libseccomp" ,libseccomp)
7621 ("libtiff" ,libtiff)
7622 ("libvorbis" ,libvorbis)
7623 ("libxml2" ,libxml2)
7624 ("poppler" ,poppler)
7625 ("taglib" ,taglib)
7626 ("totem-pl-parser" ,totem-pl-parser)
7627 ("tracker" ,tracker)
7628 ("upower" ,upower)
7629 ("zlib" ,zlib)))
7630 (synopsis "Metadata database, indexer and search tool")
7631 (home-page "https://wiki.gnome.org/Projects/Tracker")
7632 (description
7633 "Tracker is an advanced framework for first class objects with associated
7634 metadata and tags. It provides a one stop solution for all metadata, tags,
7635 shared object databases, search tools and indexing.")
7636 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7637 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7638 (license (list license:gpl2+
7639 license:lgpl2.1+
7640 license:lgpl2.0+))))
7641
7642 (define-public nautilus
7643 (package
7644 (name "nautilus")
7645 (version "3.34.2")
7646 (source (origin
7647 (method url-fetch)
7648 (uri (string-append "mirror://gnome/sources/" name "/"
7649 (version-major+minor version) "/"
7650 name "-" version ".tar.xz"))
7651 (sha256
7652 (base32
7653 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
7654 (build-system meson-build-system)
7655 (arguments
7656 '(#:glib-or-gtk? #t
7657 #:phases
7658 (modify-phases %standard-phases
7659 (add-after 'unpack 'skip-gtk-update-icon-cache
7660 ;; Don't create 'icon-theme.cache'.
7661 (lambda _
7662 (substitute* "build-aux/meson/postinstall.py"
7663 (("gtk-update-icon-cache") "true"))
7664 #t)))
7665 ;; XXX: FAIL: check-nautilus
7666 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7667 #:tests? #f))
7668 (native-inputs
7669 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7670 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7671 ("gobject-introspection" ,gobject-introspection)
7672 ("intltool" ,intltool)
7673 ("pkg-config" ,pkg-config)))
7674 (inputs
7675 `(("dconf" ,dconf)
7676 ("gexiv2" ,gexiv2)
7677 ("gvfs" ,gvfs)
7678 ("exempi" ,exempi)
7679 ("gnome-desktop" ,gnome-desktop)
7680 ("gnome-autoar" ,gnome-autoar)
7681 ("gst-plugins-base" ,gst-plugins-base)
7682 ("libseccomp" ,libseccomp)
7683 ("libselinux" ,libselinux)
7684 ("tracker" ,tracker)
7685 ("tracker-miners" ,tracker-miners)
7686 ;; XXX: gtk+ is required by libnautilus-extension.pc
7687 ;;
7688 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7689 ;; package. See:
7690 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7691 ("gtk+" ,gtk+)
7692 ("libexif" ,libexif)
7693 ("libxml2" ,libxml2)))
7694 (synopsis "File manager for GNOME")
7695 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7696 (description
7697 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7698 design and behaviour, giving the user a simple way to navigate and manage its
7699 files.")
7700 (license license:gpl2+)))
7701
7702 (define-public baobab
7703 (package
7704 (name "baobab")
7705 (version "3.32.0")
7706 (source (origin
7707 (method url-fetch)
7708 (uri (string-append
7709 "mirror://gnome/sources/" name "/"
7710 (version-major+minor version) "/"
7711 name "-" version ".tar.xz"))
7712 (sha256
7713 (base32
7714 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7715 (build-system meson-build-system)
7716 (arguments
7717 '(#:glib-or-gtk? #t))
7718 (native-inputs
7719 `(("intltool" ,intltool)
7720 ("pkg-config" ,pkg-config)
7721 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7722 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7723 ("itstool" ,itstool)
7724 ("xmllint" ,libxml2)
7725 ("glib" ,glib "bin")
7726 ("vala" ,vala)))
7727 (inputs
7728 `(("gtk+" ,gtk+)))
7729 (synopsis "Disk usage analyzer for GNOME")
7730 (description
7731 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7732 usage in the GNOME desktop environment. It can easily scan device volumes or
7733 a specific user-requested directory branch (local or remote). Once the scan
7734 is complete it provides a graphical representation of each selected folder.")
7735 (home-page "https://wiki.gnome.org/Apps/Baobab")
7736 (license license:gpl2+)))
7737
7738 (define-public gnome-backgrounds
7739 (package
7740 (name "gnome-backgrounds")
7741 (version "3.34.0")
7742 (source
7743 (origin
7744 (method url-fetch)
7745 (uri (string-append "mirror://gnome/sources/" name "/"
7746 (version-major+minor version) "/"
7747 name "-" version ".tar.xz"))
7748 (sha256
7749 (base32
7750 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
7751 (build-system meson-build-system)
7752 (native-inputs
7753 `(("intltool" ,intltool)))
7754 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7755 (synopsis "Background images for the GNOME desktop")
7756 (description
7757 "GNOME backgrounds package contains a collection of graphics files which
7758 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7759 the package creates the proper framework and directory structure so that you
7760 can add your own files to the collection.")
7761 (license (list license:gpl2+
7762 license:cc-by2.0
7763 license:cc-by-sa2.0
7764 license:cc-by-sa3.0))))
7765
7766 (define-public gnome-screenshot
7767 (package
7768 (name "gnome-screenshot")
7769 (version "3.34.0")
7770 (source
7771 (origin
7772 (method url-fetch)
7773 (uri (string-append "mirror://gnome/sources/" name "/"
7774 (version-major+minor version) "/"
7775 name "-" version ".tar.xz"))
7776 (sha256
7777 (base32
7778 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
7779 (build-system meson-build-system)
7780 (arguments
7781 '(#:phases
7782 (modify-phases %standard-phases
7783 (add-after 'unpack 'skip-gtk-update-icon-cache
7784 ;; Don't create 'icon-theme.cache'.
7785 (lambda _
7786 (substitute* "build-aux/postinstall.py"
7787 (("gtk-update-icon-cache") "true"))
7788 #t)))))
7789 (native-inputs
7790 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7791 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7792 ("intltool" ,intltool)
7793 ("appstream-glib" ,appstream-glib)
7794 ("pkg-config" ,pkg-config)))
7795 (inputs
7796 `(("gtk+" ,gtk+)
7797 ("libcanberra" ,libcanberra)
7798 ("libx11" ,libx11)
7799 ("libxext" ,libxext)))
7800 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7801 (synopsis "Take pictures of your screen")
7802 (description
7803 "GNOME Screenshot is a utility used for taking screenshots of the entire
7804 screen, a window or a user defined area of the screen, with optional
7805 beautifying border effects.")
7806 (license license:gpl2+)))
7807
7808 (define-public dconf-editor
7809 (package
7810 (name "dconf-editor")
7811 (version "3.34.2")
7812 (source
7813 (origin
7814 (method url-fetch)
7815 (uri (string-append "mirror://gnome/sources/" name "/"
7816 (version-major+minor version) "/"
7817 name "-" version ".tar.xz"))
7818 (sha256
7819 (base32
7820 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
7821 (build-system meson-build-system)
7822 (native-inputs
7823 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7824 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7825 ("intltool" ,intltool)
7826 ("pkg-config" ,pkg-config)
7827 ("vala" ,vala)))
7828 (inputs
7829 `(("dconf" ,dconf)
7830 ("gtk+" ,gtk+)
7831 ("libxml2" ,libxml2)))
7832 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
7833 (synopsis "Graphical editor for GNOME's dconf configuration system")
7834 (description
7835 "Dconf-editor is a graphical tool for browsing and editing the dconf
7836 configuration system for GNOME. It allows users to configure desktop
7837 software that do not provide their own configuration interface.")
7838 (license license:lgpl2.1+)))
7839
7840 (define-public gnome-default-applications
7841 (package
7842 (name "gnome-default-applications")
7843 (version "0")
7844 (build-system trivial-build-system)
7845 (source #f)
7846 (propagated-inputs
7847 `(("nautilus" ,nautilus)
7848 ("evince" ,evince)))
7849 (arguments
7850 `(#:modules ((guix build utils))
7851 #:builder
7852 (begin
7853 (use-modules (guix build utils))
7854 (let* ((out (assoc-ref %outputs "out"))
7855 (apps (string-append out "/share/applications")))
7856 (mkdir-p apps)
7857 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
7858 (lambda (port)
7859 (format port "[Default Applications]\n")
7860 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7861 (format port "application/pdf=evince.desktop\n")
7862 (format port "application/postscript=evince.desktop\n")))
7863 #t))))
7864 (synopsis "Default MIME type associations for the GNOME desktop")
7865 (description
7866 "Given many installed packages which might handle a given MIME type, a
7867 user running the GNOME desktop probably has some preferences: for example,
7868 that folders be opened by default by the Nautilus file manager, not the Baobab
7869 disk usage analyzer. This package establishes that set of default MIME type
7870 associations for GNOME.")
7871 (license license:gpl3+)
7872 (home-page #f)))
7873
7874 (define-public libgovirt
7875 (package
7876 (name "libgovirt")
7877 (version "0.3.6")
7878 (source (origin
7879 (method url-fetch)
7880 (uri (string-append "mirror://gnome/sources/" name "/"
7881 (version-major+minor version) "/"
7882 name "-" version ".tar.xz"))
7883 (sha256
7884 (base32
7885 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7886 (build-system glib-or-gtk-build-system)
7887 (native-inputs
7888 `(("gettext" ,gettext-minimal)
7889 ("glib:bin" ,glib "bin")
7890 ("gobject-introspection" ,gobject-introspection)
7891 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7892 ("gtk+:bin" ,gtk+ "bin")
7893 ("pkg-config" ,pkg-config)))
7894 (inputs
7895 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7896 ("librest" ,rest)))
7897 (synopsis "GoVirt Library")
7898 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7899 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7900 (license license:gpl2+)))
7901
7902 (define-public gnome-weather
7903 (package
7904 (name "gnome-weather")
7905 (version "3.34.0")
7906 (source (origin
7907 (method url-fetch)
7908 (uri (string-append "mirror://gnome/sources/" name "/"
7909 (version-major+minor version) "/"
7910 name "-" version ".tar.xz"))
7911 (sha256
7912 (base32
7913 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7914 (build-system meson-build-system)
7915 (native-inputs
7916 `(("gettext" ,gettext-minimal)
7917 ("glib:bin" ,glib "bin")
7918 ("gobject-introspection" ,gobject-introspection)
7919 ("gtk+:bin" ,gtk+ "bin")
7920 ("pkg-config" ,pkg-config)))
7921 (inputs
7922 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7923 ("appstream-glib" ,appstream-glib)
7924 ("geoclue" ,geoclue)
7925 ("gdk-pixbuf" ,gdk-pixbuf)
7926 ("gjs" ,gjs)
7927 ("gnome-desktop" ,gnome-desktop)
7928 ("libgweather" ,libgweather)))
7929 (arguments
7930 `(#:glib-or-gtk? #t
7931 #:phases
7932 (modify-phases %standard-phases
7933 (add-after 'install 'fix-desktop-file
7934 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7935 ;; See https://issues.guix.gnu.org/issue/39324.
7936 (lambda* (#:key outputs #:allow-other-keys)
7937 (let* ((out (assoc-ref outputs "out"))
7938 (applications (string-append out "/share/applications")))
7939 (substitute* (string-append applications "/org.gnome.Weather.desktop")
7940 (("Exec=.*") "Exec=gnome-weather\n"))
7941 #t)))
7942 (add-after 'install 'wrap
7943 (lambda* (#:key inputs outputs #:allow-other-keys)
7944 (let ((out (assoc-ref outputs "out"))
7945 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
7946 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
7947 (wrap-program (string-append out "/bin/gnome-weather")
7948 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
7949 #t))))))
7950 (synopsis "Weather monitoring for GNOME desktop")
7951 (description "GNOME Weather is a small application that allows you to
7952 monitor the current weather conditions for your city, or anywhere in the
7953 world.")
7954 (home-page "https://wiki.gnome.org/Apps/Weather")
7955 (license license:gpl2+)))
7956
7957 (define-public gnome
7958 (package
7959 (name "gnome")
7960 (version (package-version gnome-shell))
7961 (source #f)
7962 (build-system trivial-build-system)
7963 (arguments '(#:builder (begin (mkdir %output) #t)))
7964 (propagated-inputs
7965 ;; TODO: Add or remove packages according to:
7966 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7967 `(
7968 ;; GNOME-Core-OS-Services
7969 ("accountsservice" ,accountsservice)
7970 ("network-manager" ,network-manager)
7971 ("packagekit" ,packagekit)
7972 ("upower" ,upower)
7973 ;; GNOME-Core-Shell
7974 ("adwaita-icon-theme" ,adwaita-icon-theme)
7975 ("gdm" ,gdm)
7976 ("glib-networking" ,glib-networking)
7977 ("gnome-backgrounds" ,gnome-backgrounds)
7978 ("gnome-bluetooth" ,gnome-bluetooth)
7979 ("gnome-color-manager" ,gnome-color-manager)
7980 ("gnome-control-center" ,gnome-control-center)
7981 ("gnome-desktop" ,gnome-desktop)
7982 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7983 ("gnome-initial-setup" ,gnome-initial-setup)
7984 ("gnome-keyring" ,gnome-keyring)
7985 ("gnome-menus" ,gnome-menus)
7986 ("gnome-session" ,gnome-session)
7987 ("gnome-settings-daemon" ,gnome-settings-daemon)
7988 ("gnome-shell-extensions" ,gnome-shell-extensions)
7989 ("gnome-shell" ,gnome-shell)
7990 ("gnome-themes-extra" ,gnome-themes-extra)
7991 ("gnome-user-docs" ,gnome-user-docs)
7992 ("gnome-user-share" ,gnome-user-share)
7993 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7994 ("gvfs" ,gvfs)
7995 ("mutter" ,mutter)
7996 ("orca" ,orca)
7997 ("rygel" ,rygel)
7998 ("sushi" ,sushi)
7999 ;; GNOME-Core-Utilities
8000 ("baobab" ,baobab)
8001 ("cheese" ,cheese)
8002 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8003 ;; only works on x86_64, so exclude it on other architectures.
8004 ,@(if (string-prefix? "x86_64" (%current-system))
8005 `(("eog" ,eog))
8006 '())
8007 ("epiphany" ,epiphany)
8008 ("evince" ,evince)
8009 ("file-roller" ,file-roller)
8010 ("gedit" ,gedit)
8011 ("gnome-boxes" ,gnome-boxes)
8012 ("gnome-calculator" ,gnome-calculator)
8013 ("gnome-calendar" ,gnome-calendar)
8014 ("gnome-characters" ,gnome-characters)
8015 ("gnome-clocks" ,gnome-clocks)
8016 ("gnome-contacts" ,gnome-contacts)
8017 ("gnome-disk-utility" ,gnome-disk-utility)
8018 ("gnome-font-viewer" ,gnome-font-viewer)
8019 ("gnome-maps" ,gnome-maps)
8020 ; TODO: ("gnome-music" ,gnome-music)
8021 ; TODO: ("gnome-photos" ,gnome-photos)
8022 ("gnome-screenshot" ,gnome-screenshot)
8023 ("gnome-system-monitor" ,gnome-system-monitor)
8024 ("gnome-terminal" ,gnome-terminal)
8025 ("gnome-weather" ,gnome-weather)
8026 ("nautilus" ,nautilus)
8027 ("simple-scan" ,simple-scan)
8028 ("totem" ,totem)
8029 ("yelp" ,yelp)
8030 ;; Others
8031 ("hicolor-icon-theme" ,hicolor-icon-theme)
8032 ("gnome-online-accounts" ,gnome-online-accounts)
8033
8034 ;; Packages not part of GNOME proper but that are needed for a good
8035 ;; experience. See <https://bugs.gnu.org/39646>.
8036 ;; XXX: Find out exactly which ones are needed and why.
8037 ("font-cantarell" ,font-cantarell)
8038 ("font-dejavu" ,font-dejavu)
8039 ("at-spi2-core" ,at-spi2-core)
8040 ("dbus" ,dbus)
8041 ("dconf" ,dconf)
8042 ("desktop-file-utils" ,desktop-file-utils)
8043 ("gnome-default-applications" ,gnome-default-applications)
8044 ("gnome-themes-standard" ,gnome-themes-standard)
8045 ("gst-plugins-base" ,gst-plugins-base)
8046 ("gst-plugins-good" ,gst-plugins-good)
8047 ("gucharmap" ,gucharmap)
8048 ("pinentry-gnome3" ,pinentry-gnome3)
8049 ("pulseaudio" ,pulseaudio)
8050 ("shared-mime-info" ,shared-mime-info)
8051 ("system-config-printer" ,system-config-printer)
8052 ("xdg-user-dirs" ,xdg-user-dirs)
8053 ("yelp" ,yelp)
8054 ("zenity" ,zenity)))
8055 (synopsis "The GNU desktop environment")
8056 (home-page "https://www.gnome.org/")
8057 (description
8058 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8059 applications for browsing the web, editing text and images, creating
8060 documents and diagrams, playing media, scanning, and much more.")
8061 (license license:gpl2+)))
8062
8063 (define-public byzanz
8064 ;; The last stable release of Byzanz was in 2011, but there have been many
8065 ;; useful commits made to the Byzanz repository since then that it would be
8066 ;; silly to use such an old release.
8067 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8068 (package
8069 (name "byzanz")
8070 (version (string-append "0.2-1." (string-take commit 7)))
8071 (source (origin
8072 (method git-fetch)
8073 (uri (git-reference
8074 (url "https://git.gnome.org/browse/byzanz")
8075 (commit commit)))
8076 (file-name (string-append name "-" version "-checkout"))
8077 (sha256
8078 (base32
8079 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8080 (build-system glib-or-gtk-build-system)
8081 (arguments
8082 '(#:phases
8083 (modify-phases %standard-phases
8084 (add-before 'bootstrap 'build-without-Werror
8085 (lambda _
8086 ;; The build system cleverly detects that we're not building from
8087 ;; a release tarball and turns on -Werror for GCC.
8088 ;; Unsurprisingly, there is a warning during compilation that
8089 ;; causes the build to fail unnecessarily, so we remove the flag.
8090 (substitute* '("configure.ac")
8091 (("-Werror") ""))
8092 #t)))))
8093 (native-inputs
8094 `(("autoconf" ,autoconf)
8095 ("automake" ,automake)
8096 ("gnome-common" ,gnome-common)
8097 ("intltool" ,intltool)
8098 ("libtool" ,libtool)
8099 ("pkg-config" ,pkg-config)
8100 ("which" ,which)))
8101 (inputs
8102 `(("glib" ,glib)
8103 ("gstreamer" ,gstreamer)
8104 ("gst-plugins-base" ,gst-plugins-base)
8105 ("gtk+" ,gtk+)))
8106 (synopsis "Desktop recording program")
8107 (description "Byzanz is a simple desktop recording program with a
8108 command-line interface. It can record part or all of an X display for a
8109 specified duration and save it as a GIF encoded animated image file.")
8110 (home-page "https://git.gnome.org/browse/byzanz")
8111 (license license:gpl2+))))
8112
8113 (define-public gsound
8114 (package
8115 (name "gsound")
8116 (version "1.0.2")
8117 (source (origin
8118 (method url-fetch)
8119 (uri (string-append "mirror://gnome/sources/" name "/"
8120 (version-major+minor version) "/"
8121 name "-" version ".tar.xz"))
8122 (sha256
8123 (base32
8124 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8125 (build-system glib-or-gtk-build-system)
8126 (native-inputs
8127 `(("pkg-config" ,pkg-config)
8128 ("gobject-introspection" ,gobject-introspection)
8129 ("vala" ,vala)))
8130 (inputs
8131 `(("glib" ,glib)
8132 ("libcanberra" ,libcanberra)))
8133 (home-page "https://wiki.gnome.org/Projects/GSound")
8134 (synopsis "GObject wrapper for libcanberra")
8135 (description
8136 "GSound is a small library for playing system sounds. It's designed to be
8137 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8138 library.")
8139 (license license:lgpl2.1+)))
8140
8141 (define-public libzapojit
8142 (package
8143 (name "libzapojit")
8144 (version "0.0.3")
8145 (source (origin
8146 (method url-fetch)
8147 (uri (string-append "mirror://gnome/sources/" name "/"
8148 (version-major+minor version) "/"
8149 name "-" version ".tar.xz"))
8150 (sha256
8151 (base32
8152 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8153 (build-system gnu-build-system)
8154 (native-inputs
8155 `(("gobject-introspection" ,gobject-introspection)
8156 ("intltool" ,intltool)
8157 ("pkg-config" ,pkg-config)))
8158 (inputs
8159 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8160 ("json-glib" ,json-glib)
8161 ("rest" ,rest)))
8162 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8163 (synopsis "Library for accessing SkyDrive and Hotmail")
8164 (description
8165 "Libzapojit is a GLib-based library for accessing online service APIs of
8166 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8167 (license license:lgpl2.1+)))
8168
8169 (define-public gnome-clocks
8170 (package
8171 (name "gnome-clocks")
8172 (version "3.34.0")
8173 (source (origin
8174 (method url-fetch)
8175 (uri (string-append "mirror://gnome/sources/" name "/"
8176 (version-major+minor version) "/"
8177 name "-" version ".tar.xz"))
8178 (sha256
8179 (base32
8180 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8181 (build-system meson-build-system)
8182 (arguments
8183 '(#:glib-or-gtk? #t
8184 #:phases
8185 (modify-phases %standard-phases
8186 (add-after 'unpack 'skip-gtk-update-icon-cache
8187 ;; Don't create 'icon-theme.cache'.
8188 (lambda _
8189 (substitute* "build-aux/post-install.py"
8190 (("gtk-update-icon-cache") "true"))
8191 #t)))))
8192 (native-inputs
8193 `(("vala" ,vala)
8194 ("pkg-config" ,pkg-config)
8195 ("glib" ,glib "bin") ; for glib-compile-resources
8196 ("desktop-file-utils" ,desktop-file-utils)
8197 ("gettext" ,gettext-minimal)
8198 ("itstool" ,itstool)))
8199 (inputs
8200 `(("glib" ,glib)
8201 ("gtk+" ,gtk+)
8202 ("gsound" ,gsound)
8203 ("geoclue" ,geoclue)
8204 ("geocode-glib" ,geocode-glib)
8205 ("libgweather" ,libgweather)
8206 ("gnome-desktop" ,gnome-desktop)))
8207 (home-page "https://wiki.gnome.org/Apps/Clocks")
8208 (synopsis "GNOME's clock application")
8209 (description
8210 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8211 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8212 (license license:gpl3+)))
8213
8214 (define-public gnome-calendar
8215 (package
8216 (name "gnome-calendar")
8217 (version "3.34.2")
8218 (source (origin
8219 (method url-fetch)
8220 (uri (string-append "mirror://gnome/sources/" name "/"
8221 (version-major+minor version) "/"
8222 name "-" version ".tar.xz"))
8223 (sha256
8224 (base32
8225 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
8226 (build-system meson-build-system)
8227 (arguments
8228 '(#:glib-or-gtk? #t
8229 ;; gnome-calendar has to be installed before the tests can be run
8230 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8231 #:tests? #f
8232 #:phases
8233 (modify-phases %standard-phases
8234 (add-after 'unpack 'skip-gtk-update-icon-cache
8235 ;; Don't create 'icon-theme.cache'.
8236 (lambda _
8237 (substitute* "build-aux/meson/meson_post_install.py"
8238 (("gtk-update-icon-cache") "true"))
8239 #t)))))
8240 (native-inputs
8241 `(("gettext" ,gettext-minimal)
8242 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8243 ("pkg-config" ,pkg-config)))
8244 (inputs
8245 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8246 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8247 ("libdazzle" ,libdazzle)
8248 ("libedataserverui" ,evolution-data-server)
8249 ("libgweather" ,libgweather)
8250 ("geoclue" ,geoclue)))
8251 (propagated-inputs
8252 `(("evolution-data-server" ,evolution-data-server)))
8253 (home-page "https://wiki.gnome.org/Apps/Calendar")
8254 (synopsis "GNOME's calendar application")
8255 (description
8256 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8257 desktop. It supports multiple calendars, month, week and year view.")
8258 (license license:gpl3+)))
8259
8260 (define-public gnome-todo
8261 (package
8262 (name "gnome-todo")
8263 (version "3.28.1")
8264 (source (origin
8265 (method url-fetch)
8266 (uri (string-append "mirror://gnome/sources/" name "/"
8267 (version-major+minor version) "/"
8268 name "-" version ".tar.xz"))
8269 (sha256
8270 (base32
8271 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8272 (patches
8273 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
8274 (build-system meson-build-system)
8275 (arguments
8276 '(#:glib-or-gtk? #t
8277 #:phases (modify-phases %standard-phases
8278 (add-after
8279 'install 'wrap-gnome-todo
8280 (lambda* (#:key inputs outputs #:allow-other-keys)
8281 (let ((out (assoc-ref outputs "out"))
8282 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8283 (python-path (getenv "PYTHONPATH")))
8284 (wrap-program (string-append out "/bin/gnome-todo")
8285 ;; XXX: gi plugins are broken.
8286 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8287 ;; For plugins.
8288 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8289 `("PYTHONPATH" ":" prefix (,python-path))))
8290 #t)))))
8291 (native-inputs
8292 `(("gettext" ,gettext-minimal)
8293 ("gobject-introspection" ,gobject-introspection)
8294 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8295 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8296 ("pkg-config" ,pkg-config)))
8297 (inputs
8298 `(("rest" ,rest) ; For Todoist plugin
8299 ("json-glib" ,json-glib) ; For Todoist plugin
8300 ("libedataserverui" ,evolution-data-server)
8301 ("libical" ,libical)
8302 ("libpeas" ,libpeas)
8303 ("python-pygobject" ,python-pygobject)
8304 ("evolution-data-server" ,evolution-data-server)
8305 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8306 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8307 (home-page "https://wiki.gnome.org/Apps/Todo")
8308 (synopsis "GNOME's ToDo Application")
8309 (description
8310 "GNOME To Do is a simplistic personal task manager designed to perfectly
8311 fit the GNOME desktop.")
8312 (license license:gpl3+)))
8313
8314 (define-public gnome-dictionary
8315 (package
8316 (name "gnome-dictionary")
8317 (version "3.26.1")
8318 (source (origin
8319 (method url-fetch)
8320 (uri (string-append "mirror://gnome/sources/" name "/"
8321 (version-major+minor version) "/"
8322 name "-" version ".tar.xz"))
8323 (sha256
8324 (base32
8325 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8326 (build-system meson-build-system)
8327 (arguments '(#:glib-or-gtk? #t
8328 #:phases (modify-phases %standard-phases
8329 (add-after 'unpack 'patch-install-script
8330 (lambda _
8331 ;; This script attempts to compile glib schemas
8332 ;; and create an empty MIME database. We do
8333 ;; that elsewhere, so prevent it from running.
8334 (substitute* "build-aux/post-install.sh"
8335 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8336 #t)))))
8337 (native-inputs
8338 `(("glib:bin" ,glib "bin")
8339 ("gobject-introspection" ,gobject-introspection)
8340 ("intltool" ,intltool)
8341 ("itstool" ,itstool)
8342 ("pkg-config" ,pkg-config)
8343 ("xmllint" ,libxml2)))
8344 (inputs
8345 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8346 ("gtk+" ,gtk+)))
8347 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8348 (synopsis "Look up words in dictionary sources")
8349 (description
8350 "GNOME Dictionary can look for the definition or translation of a word in
8351 existing databases over the internet.")
8352 (license license:gpl3+)))
8353
8354 (define-public gnome-tweaks
8355 (package
8356 (name "gnome-tweaks")
8357 (version "3.34.0")
8358 (source (origin
8359 (method url-fetch)
8360 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8361 (version-major+minor version) "/"
8362 "gnome-tweaks-" version ".tar.xz"))
8363 (patches
8364 (list (search-patch "gnome-tweaks-search-paths.patch")))
8365 (sha256
8366 (base32
8367 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
8368 (build-system meson-build-system)
8369 (arguments
8370 `(#:glib-or-gtk? #t
8371 #:configure-flags '("-Dlocalstatedir=/tmp"
8372 "-Dsysconfdir=/tmp")
8373 #:imported-modules ((guix build python-build-system)
8374 ,@%meson-build-system-modules)
8375 #:phases
8376 (modify-phases %standard-phases
8377 (add-after 'unpack 'skip-gtk-update-icon-cache
8378 ;; Don't create 'icon-theme.cache'.
8379 (lambda _
8380 (substitute* "meson-postinstall.py"
8381 (("gtk-update-icon-cache") "true"))
8382 #t))
8383 (add-after 'install 'wrap
8384 (@@ (guix build python-build-system) wrap))
8385 (add-after 'wrap 'wrap-gi-typelib
8386 (lambda* (#:key inputs outputs #:allow-other-keys)
8387 (let ((out (assoc-ref outputs "out"))
8388 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8389 (wrap-program (string-append out "/bin/gnome-tweaks")
8390 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8391 #t)))))
8392 (native-inputs
8393 `(("intltool" ,intltool)
8394 ("pkg-config" ,pkg-config)))
8395 (inputs
8396 `(("gnome-desktop" ,gnome-desktop)
8397 ("gtk+" ,gtk+)
8398 ("gobject-introspection" ,gobject-introspection)
8399 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8400 ("libhandy" ,libhandy)
8401 ("libnotify" ,libnotify)
8402 ("libsoup" ,libsoup)
8403 ("nautilus" ,nautilus)
8404 ("python" ,python)
8405 ("python-pygobject" ,python-pygobject)))
8406 (synopsis "Customize advanced GNOME 3 options")
8407 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8408 (description
8409 "GNOME Tweaks allows adjusting advanced configuration settings in
8410 GNOME 3. This includes things like the fonts used in user interface elements,
8411 alternative user interface themes, changes in window management behavior,
8412 GNOME Shell appearance and extension, etc.")
8413 (license license:gpl3+)))
8414
8415 (define-public gnome-shell-extensions
8416 (package
8417 (name "gnome-shell-extensions")
8418 (version "3.34.2")
8419 (source (origin
8420 (method url-fetch)
8421 (uri (string-append "mirror://gnome/sources/" name "/"
8422 (version-major+minor version) "/"
8423 name "-" version ".tar.xz"))
8424 (sha256
8425 (base32
8426 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
8427 (build-system meson-build-system)
8428 (arguments
8429 '(#:configure-flags '("-Dextension_set=all")))
8430 (native-inputs
8431 `(("glib:bin" ,glib "bin")
8432 ("intltool" ,intltool)
8433 ("pkg-config" ,pkg-config)))
8434 (propagated-inputs
8435 `(("glib" ,glib)))
8436 (synopsis "Extensions for GNOME Shell")
8437 (description "GNOME Shell extensions modify and extend GNOME Shell
8438 functionality and behavior.")
8439 (home-page "https://extensions.gnome.org/")
8440 (license license:gpl3+)))
8441
8442 (define-public arc-theme
8443 (package
8444 (name "arc-theme")
8445 (version "20190917")
8446 (source (origin
8447 (method git-fetch)
8448 (uri (git-reference
8449 (url "https://github.com/NicoHood/arc-theme.git")
8450 (commit version)))
8451 (file-name (git-file-name name version))
8452 (sha256
8453 (base32
8454 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8455 (build-system gnu-build-system)
8456 (arguments
8457 '(#:phases
8458 (modify-phases %standard-phases
8459 ;; autogen.sh calls configure at the end of the script.
8460 (replace 'bootstrap
8461 (lambda _ (invoke "autoreconf" "-vfi")))
8462 (add-before 'build 'set-home ;placate Inkscape
8463 (lambda _
8464 (setenv "HOME" (getcwd))
8465 #t)))))
8466 (native-inputs
8467 `(("autoconf" ,autoconf)
8468 ("automake" ,automake)
8469 ("glib" ,glib "bin") ; for glib-compile-resources
8470 ("gnome-shell" ,gnome-shell)
8471 ("gtk+" ,gtk+)
8472 ("inkscape" ,inkscape)
8473 ("optipng" ,optipng)
8474 ("pkg-config" ,pkg-config)
8475 ("sassc" ,sassc/libsass-3.5)))
8476 (synopsis "A flat GTK+ theme with transparent elements")
8477 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8478 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8479 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8480 (home-page "https://github.com/horst3180/arc-theme")
8481 ;; No "or later" language found.
8482 (license license:gpl3+)))
8483
8484 (define-public faba-icon-theme
8485 (package
8486 (name "faba-icon-theme")
8487 (version "4.3")
8488 (source
8489 (origin
8490 (method git-fetch)
8491 (uri (git-reference
8492 (url "https://github.com/snwh/faba-icon-theme.git")
8493 (commit (string-append "v" version))))
8494 (file-name (git-file-name name version))
8495 (sha256
8496 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8497 (build-system meson-build-system)
8498 (arguments
8499 `(#:phases
8500 (modify-phases %standard-phases
8501 (add-before 'configure 'disable-post-install
8502 (lambda _
8503 (substitute* "meson.build"
8504 (("meson.add_install_script.*") "")))))))
8505 (native-inputs
8506 `(("autoconf" ,autoconf)
8507 ("automake" ,automake)))
8508 (synopsis "Faba icon theme")
8509 (description
8510 "Faba is a minimal icon set used as a basis for other themes such as
8511 Moka")
8512 (home-page "https://snwh.org/moka")
8513 (license (list license:lgpl3+
8514 license:cc-by-sa4.0))))
8515
8516 (define-public moka-icon-theme
8517 (package
8518 (inherit faba-icon-theme)
8519 (name "moka-icon-theme")
8520 (version "5.4.0")
8521 (source
8522 (origin
8523 (method git-fetch)
8524 (uri (git-reference
8525 (url "https://github.com/snwh/moka-icon-theme.git")
8526 (commit (string-append "v" version))))
8527 (file-name (git-file-name name version))
8528 (sha256
8529 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8530 (propagated-inputs
8531 ;; Moka is based on Faba by using it as a fallback icon set instead of
8532 ;; bundling it, so we need to add it as a propagated input.
8533 `(("faba-icon-theme" ,faba-icon-theme)))
8534 (synopsis "Moka icon theme")
8535 (description "Moka is a stylized desktop icon set, designed to be clear,
8536 simple and consistent.")
8537 (license (list license:gpl3+
8538 license:cc-by-sa4.0))))
8539
8540 (define-public arc-icon-theme
8541 (package
8542 (name "arc-icon-theme")
8543 (version "20161122")
8544 (source
8545 (origin
8546 (method git-fetch)
8547 (uri (git-reference
8548 (url "https://github.com/horst3180/arc-icon-theme.git")
8549 (commit version)))
8550 (file-name (git-file-name name version))
8551 (sha256
8552 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8553 (build-system gnu-build-system)
8554 (arguments
8555 `(#:phases
8556 (modify-phases %standard-phases
8557 (add-after 'unpack 'disable-configure-during-bootstrap
8558 (lambda _
8559 (substitute* "autogen.sh"
8560 (("^\"\\$srcdir/configure\".*") ""))
8561 #t)))))
8562 (native-inputs
8563 `(("autoconf" ,autoconf)
8564 ("automake" ,automake)))
8565 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8566 (propagated-inputs
8567 `(("moka-icon-theme" ,moka-icon-theme)))
8568 (synopsis "Arc icon theme")
8569 (description "The Arc icon theme provides a set of icons matching the
8570 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8571 the Moka icon theme.")
8572 (home-page "https://github.com/horst3180/arc-icon-theme")
8573 (license license:gpl3+)))
8574
8575 (define-public folks
8576 (package
8577 (name "folks")
8578 (version "0.13.1")
8579 (source (origin
8580 (method url-fetch)
8581 (uri (string-append
8582 "mirror://gnome/sources/folks/"
8583 (version-major+minor version) "/"
8584 "folks-" version ".tar.xz"))
8585 (sha256
8586 (base32
8587 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8588 (build-system meson-build-system)
8589 (arguments
8590 '(#:phases
8591 (modify-phases %standard-phases
8592 (add-after 'unpack 'skip-gtk-update-icon-cache
8593 ;; Don't create 'icon-theme.cache'.
8594 (lambda _
8595 (substitute* "meson_post_install.py"
8596 (("gtk-update-icon-cache") "true"))
8597 #t)))))
8598 (inputs
8599 `(("bdb" ,bdb)
8600 ("dbus-glib" ,dbus-glib)
8601 ("evolution-data-server" ,evolution-data-server)
8602 ("glib" ,glib)
8603 ("libgee" ,libgee)
8604 ("readline" ,readline)
8605 ("telepathy-glib" ,telepathy-glib)))
8606 (native-inputs
8607 `(("glib:bin" ,glib "bin")
8608 ("gobject-introspection" ,gobject-introspection)
8609 ("intltool" ,intltool)
8610 ("pkg-config" ,pkg-config)
8611 ("vala" ,vala)))
8612 (synopsis "Library to aggregate data about people")
8613 (description "Libfolks is a library that aggregates information about people
8614 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8615 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8616 etc.) to create metacontacts. It's written in Vala, which generates C code when
8617 compiled.")
8618 (home-page "https://wiki.gnome.org/Projects/Folks")
8619 (license license:lgpl2.1+)))
8620
8621 (define-public gfbgraph
8622 (package
8623 (name "gfbgraph")
8624 (version "0.2.3")
8625 (source (origin
8626 (method url-fetch)
8627 (uri (string-append
8628 "mirror://gnome/sources/gfbgraph/"
8629 (version-major+minor version) "/"
8630 "gfbgraph-" version ".tar.xz"))
8631 (sha256
8632 (base32
8633 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8634 (build-system glib-or-gtk-build-system)
8635 (arguments
8636 `(#:tests? #f ; Tests appear to require the network.
8637 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8638 #:configure-flags '("--disable-gtk-doc"
8639 "--disable-static"
8640 "--enable-introspection")))
8641 (native-inputs
8642 `(("pkg-config" ,pkg-config)
8643 ("gobject-introspection" ,gobject-introspection)))
8644 (inputs
8645 `(("json-glib" ,json-glib)
8646 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8647 ("rest" ,rest)))
8648 (synopsis "GLib/GObject wrapper for the Facebook API")
8649 (description "This library allows you to use the Facebook API from
8650 GLib/GObject code.")
8651 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8652 (license license:lgpl2.1+)))
8653
8654 (define-public libgnomekbd
8655 (package
8656 (name "libgnomekbd")
8657 (version "3.26.1")
8658 (source (origin
8659 (method url-fetch)
8660 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8661 (version-major+minor version) "/"
8662 "libgnomekbd-" version ".tar.xz"))
8663 (sha256
8664 (base32
8665 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8666 (build-system gnu-build-system)
8667 (native-inputs
8668 `(("pkg-config" ,pkg-config)
8669 ("glib" ,glib "bin")
8670 ("intltool" ,intltool)))
8671 (propagated-inputs
8672 ;; Referred to in .h files and .pc.
8673 `(("glib" ,glib)
8674 ("gtk+" ,gtk+)
8675 ("libxklavier" ,libxklavier)))
8676 (home-page "https://www.gnome.org")
8677 (synopsis "GNOME keyboard configuration library")
8678 (description
8679 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8680 environment, which can notably display keyboard layouts.")
8681 (license license:lgpl2.0+)))
8682
8683 ;;; This package is no longer maintained:
8684 ;;; https://wiki.gnome.org/Attic/LibUnique
8685 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8686 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8687 (define-public libunique
8688 (package
8689 (name "libunique")
8690 (version "3.0.2")
8691 (source (origin
8692 (method url-fetch)
8693 (uri (string-append "mirror://gnome/sources/" name "/"
8694 (version-major+minor version) "/"
8695 name "-" version ".tar.xz"))
8696 (sha256
8697 (base32
8698 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8699 (build-system glib-or-gtk-build-system)
8700 (arguments
8701 `(#:configure-flags '("--disable-static"
8702 "--disable-dbus" ; use gdbus
8703 "--enable-introspection")))
8704 (native-inputs
8705 `(("pkg-config" ,pkg-config)
8706 ("gobject-introspection" ,gobject-introspection)
8707 ("glib:bin" ,glib "bin")
8708 ("gtk-doc" ,gtk-doc)))
8709 (propagated-inputs
8710 ;; Referred to in .h files and .pc.
8711 `(("gtk+" ,gtk+)))
8712 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8713 (synopsis "Library for writing single instance applications")
8714 (description
8715 "Libunique is a library for writing single instance applications. If you
8716 launch a single instance application twice, the second instance will either just
8717 quit or will send a message to the running instance. Libunique makes it easy to
8718 write this kind of application, by providing a base class, taking care of all
8719 the IPC machinery needed to send messages to a running instance, and also
8720 handling the startup notification side.")
8721 (license license:lgpl2.1+)))
8722
8723 (define-public gnome-calculator
8724 (package
8725 (name "gnome-calculator")
8726 (version "3.34.1")
8727 (source
8728 (origin
8729 (method url-fetch)
8730 (uri (string-append "mirror://gnome/sources/" name "/"
8731 (version-major+minor version) "/"
8732 name "-" version ".tar.xz"))
8733 (sha256
8734 (base32
8735 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
8736 (build-system meson-build-system)
8737 (arguments '(#:glib-or-gtk? #t))
8738 (native-inputs
8739 `(("gettext" ,gettext-minimal)
8740 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8741 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8742 ("itstool" ,itstool)
8743 ("vala" ,vala)
8744 ("pkg-config" ,pkg-config)))
8745 (inputs
8746 `(("glib" ,glib)
8747 ("gtksourceview" ,gtksourceview)
8748 ("libgee" ,libgee)
8749 ("libsoup" ,libsoup)
8750 ("libxml2" ,libxml2)
8751 ("mpc" ,mpc)
8752 ("mpfr" ,mpfr)))
8753 (home-page "https://wiki.gnome.org/Apps/Calculator")
8754 (synopsis "Desktop calculator")
8755 (description
8756 "Calculator is an application that solves mathematical equations and
8757 is suitable as a default application in a Desktop environment.")
8758 (license license:gpl3)))
8759
8760 (define-public xpad
8761 (package
8762 (name "xpad")
8763 (version "5.1.0")
8764 (source
8765 (origin
8766 (method url-fetch)
8767 (uri (string-append "https://launchpad.net/xpad/trunk/"
8768 version "/+download/"
8769 name "-" version ".tar.bz2"))
8770 (sha256
8771 (base32
8772 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8773 (build-system gnu-build-system)
8774 (native-inputs
8775 `(("autoconf" ,autoconf)
8776 ("automake" ,automake)
8777 ("gtk+:bin" ,gtk+ "bin")
8778 ("intltool" ,intltool)
8779 ("pkg-config" ,pkg-config)))
8780 (inputs
8781 `(("gtksourceview" ,gtksourceview-3)
8782 ("libsm" ,libsm)))
8783 (home-page "https://wiki.gnome.org/Apps/Xpad")
8784 (synopsis "Virtual sticky note")
8785 (description
8786 "Xpad is a sticky note that strives to be simple, fault tolerant,
8787 and customizable. Xpad consists of independent pad windows, each is
8788 basically a text box in which notes can be written.")
8789 (license license:gpl3+)))
8790
8791 (define-public gucharmap
8792 (let ((unicode-files
8793 '(("Blocks.txt"
8794 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8795 ("DerivedAge.txt"
8796 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8797 ("NamesList.txt"
8798 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8799 ("Scripts.txt"
8800 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8801 ("UnicodeData.txt"
8802 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8803 ("Unihan.zip"
8804 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8805 (package
8806 (name "gucharmap")
8807 (version "12.0.1")
8808 (source
8809 (origin
8810 (method url-fetch)
8811 (uri (string-append "mirror://gnome/sources/" name "/"
8812 (version-major+minor version) "/"
8813 name "-" version ".tar.xz"))
8814 (sha256
8815 (base32
8816 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8817 (build-system glib-or-gtk-build-system)
8818 (arguments
8819 `(#:modules ((ice-9 match)
8820 (guix build glib-or-gtk-build-system)
8821 (guix build utils))
8822 #:configure-flags
8823 (list "--with-unicode-data=../unicode-data")
8824 #:phases
8825 (modify-phases %standard-phases
8826 (add-after 'unpack 'prepare-unicode-data
8827 (lambda* (#:key inputs #:allow-other-keys)
8828 (mkdir-p "../unicode-data")
8829 (with-directory-excursion "../unicode-data"
8830 (for-each (match-lambda
8831 ((file _)
8832 (install-file (assoc-ref inputs file) ".")))
8833 ',unicode-files))
8834 #t)))))
8835 (native-inputs
8836 `(("desktop-file-utils" ,desktop-file-utils)
8837 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8838 ("gobject-introspection" ,gobject-introspection)
8839 ("intltool" ,intltool)
8840 ("itstool" ,itstool)
8841 ("pkg-config" ,pkg-config)
8842 ,@(map (match-lambda
8843 ((file hash)
8844 `(,file
8845 ,(origin
8846 (method url-fetch)
8847 (uri (string-append
8848 "http://www.unicode.org/Public/12.0.0/ucd/"
8849 file))
8850 (sha256 (base32 hash))))))
8851 unicode-files)
8852 ("unzip" ,unzip)))
8853 (inputs
8854 `(("gtk+" ,gtk+)
8855 ("xmllint" ,libxml2)))
8856 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8857 (synopsis "Unicode character picker and font browser")
8858 (description
8859 "This program allows you to browse through all the available Unicode
8860 characters and categories for the installed fonts, and to examine their
8861 detailed properties. It is an easy way to find the character you might
8862 only know by its Unicode name or code point.")
8863 (license license:gpl3+))))
8864
8865 (define-public bluefish
8866 (package
8867 (name "bluefish")
8868 (version "2.2.11")
8869 (source
8870 (origin
8871 (method url-fetch)
8872 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8873 "bluefish-" version ".tar.gz"))
8874 (sha256
8875 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
8876 (build-system gnu-build-system)
8877 (native-inputs
8878 `(("desktop-file-utils" ,desktop-file-utils)
8879 ("intltool" ,intltool)
8880 ("pkg-config" ,pkg-config)))
8881 (inputs
8882 `(("enchant" ,enchant)
8883 ("gtk+" ,gtk+)
8884 ("python" ,python-wrapper)
8885 ("xmllint" ,libxml2)
8886 ("gucharmap" ,gucharmap)))
8887 (home-page "http://bluefish.openoffice.nl")
8888 (synopsis "Web development studio")
8889 (description
8890 "Bluefish is an editor targeted towards programmers and web developers,
8891 with many options to write web sites, scripts and other code.
8892 Bluefish supports many programming and markup languages.")
8893 (license license:gpl3+)))
8894
8895 (define-public gnome-system-monitor
8896 (package
8897 (name "gnome-system-monitor")
8898 (version "3.32.1")
8899 (source
8900 (origin
8901 (method url-fetch)
8902 (uri (string-append "mirror://gnome/sources/" name "/"
8903 (version-major+minor version) "/"
8904 name "-" version ".tar.xz"))
8905 (sha256
8906 (base32
8907 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8908 (build-system meson-build-system)
8909 (arguments
8910 '(#:glib-or-gtk? #t
8911 #:configure-flags '("-Dsystemd=false")))
8912 (native-inputs
8913 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8914 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8915 ("intltool" ,intltool)
8916 ("itstool" ,itstool)
8917 ("libgtop" ,libgtop)
8918 ("polkit" ,polkit)
8919 ("pkg-config" ,pkg-config)))
8920 (inputs
8921 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8922 ("gtk+" ,gtk+)
8923 ("gtkmm" ,gtkmm)
8924 ("librsvg" ,librsvg)
8925 ("libxml2" ,libxml2)
8926 ("libwnck" ,libwnck)))
8927 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8928 (synopsis "Process viewer and system resource monitor for GNOME")
8929 (description
8930 "GNOME System Monitor is a GNOME process viewer and system monitor with
8931 an attractive, easy-to-use interface. It has features, such as a tree view
8932 for process dependencies, icons for processes, the ability to hide processes,
8933 graphical time histories of CPU/memory/swap usage and the ability to
8934 kill/reinice processes.")
8935 (license license:gpl2+)))
8936
8937 (define-public python-pyatspi
8938 (package
8939 (name "python-pyatspi")
8940 (version "2.34.0")
8941 (source (origin
8942 (method url-fetch)
8943 (uri (string-append
8944 "mirror://gnome/sources/pyatspi/"
8945 (version-major+minor version)
8946 "/pyatspi-" version ".tar.xz"))
8947 (sha256
8948 (base32
8949 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8950 (build-system gnu-build-system)
8951 (arguments
8952 `(#:phases
8953 (modify-phases %standard-phases
8954 (add-before 'build 'fix-atk-load
8955 (lambda _
8956 (substitute* "pyatspi/__init__.py"
8957 (("from gi.repository import Atspi")
8958 "gi.require_version('Gtk', '3.0')
8959 from gi.repository import Gtk
8960 from gi.repository import Atspi"))
8961 #t)))))
8962 (native-inputs
8963 `(("pkg-config" ,pkg-config)))
8964 (inputs
8965 `(("python" ,python)))
8966 (propagated-inputs
8967 `(("python-pygobject" ,python-pygobject)))
8968 (synopsis "Python client bindings for D-Bus AT-SPI")
8969 (home-page "https://wiki.linuxfoundation.org/accessibility\
8970 /atk/at-spi/at-spi_on_d-bus")
8971 (description
8972 "This package includes a python client library for the AT-SPI D-Bus
8973 accessibility infrastructure.")
8974 (license license:lgpl2.0)
8975 (properties '((upstream-name . "pyatspi")))))
8976
8977 (define-public python2-pyatspi
8978 (package
8979 (inherit python-pyatspi)
8980 (name "python2-pyatspi")
8981 (inputs
8982 `(("python" ,python-2)))
8983 (propagated-inputs
8984 `(("python-pygobject" ,python2-pygobject)))))
8985
8986 (define-public orca
8987 (package
8988 (name "orca")
8989 (version "3.34.1")
8990 (source (origin
8991 (method url-fetch)
8992 (uri (string-append
8993 "mirror://gnome/sources/" name "/"
8994 (version-major+minor version) "/"
8995 name "-" version ".tar.xz"))
8996 (sha256
8997 (base32
8998 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
8999 (build-system glib-or-gtk-build-system)
9000 (arguments
9001 '(#:phases
9002 (modify-phases %standard-phases
9003 (add-before 'configure 'qualify-xkbcomp
9004 (lambda* (#:key inputs #:allow-other-keys)
9005 (let ((xkbcomp (string-append
9006 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9007 (substitute* "src/orca/orca.py"
9008 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9009 #t))
9010 (add-after 'install 'wrap-orca
9011 (lambda* (#:key outputs #:allow-other-keys)
9012 (let* ((out (assoc-ref outputs "out"))
9013 (prog (string-append out "/bin/orca")))
9014 (wrap-program prog
9015 `("GI_TYPELIB_PATH" ":" prefix
9016 (,(getenv "GI_TYPELIB_PATH")))
9017 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9018 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9019 `("PYTHONPATH" ":" prefix
9020 (,(getenv "PYTHONPATH")))))
9021 #t)))))
9022 (native-inputs
9023 `(("intltool" ,intltool)
9024 ("itstool" ,itstool)
9025 ("pkg-config" ,pkg-config)
9026 ("xmllint" ,libxml2)))
9027 (inputs
9028 `(("at-spi2-atk" ,at-spi2-atk)
9029 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9030 ("gstreamer" ,gstreamer)
9031 ("gst-plugins-base" ,gst-plugins-base)
9032 ("gst-plugins-good" ,gst-plugins-good)
9033 ("gtk+" ,gtk+)
9034 ("python" ,python)
9035 ("python-pygobject" ,python-pygobject)
9036 ("python-pyatspi" ,python-pyatspi)
9037 ("python-speechd" ,speech-dispatcher)
9038 ("xkbcomp" ,xkbcomp)))
9039 (synopsis
9040 "Screen reader for individuals who are blind or visually impaired")
9041 (home-page "https://wiki.gnome.org/Projects/Orca")
9042 (description
9043 "Orca is a screen reader that provides access to the graphical desktop
9044 via speech and refreshable braille. Orca works with applications and toolkits
9045 that support the Assistive Technology Service Provider Interface (AT-SPI).")
9046 (license license:lgpl2.1+)))
9047
9048 (define-public gspell
9049 (package
9050 (name "gspell")
9051 (version "1.8.2")
9052 (source (origin
9053 (method url-fetch)
9054 (uri (string-append "mirror://gnome/sources/" name "/"
9055 (version-major+minor version) "/"
9056 name "-" version ".tar.xz"))
9057 (sha256
9058 (base32
9059 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
9060 (patches (search-patches "gspell-dash-test.patch"))))
9061 (build-system glib-or-gtk-build-system)
9062 (arguments
9063 '(#:configure-flags (list "--enable-vala")
9064 #:phases
9065 (modify-phases %standard-phases
9066 (add-before 'check 'pre-check
9067 (lambda* (#:key inputs #:allow-other-keys)
9068 ;; Tests require a running X server.
9069 (system "Xvfb :1 &")
9070 (setenv "DISPLAY" ":1")
9071
9072 ;; For the missing /etc/machine-id.
9073 (setenv "DBUS_FATAL_WARNINGS" "0")
9074
9075 ;; Allow Enchant and its Aspell backend to find the en_US
9076 ;; dictionary.
9077 (setenv "ASPELL_DICT_DIR"
9078 (string-append (assoc-ref inputs "aspell-dict-en")
9079 "/lib/aspell"))
9080 #t)))))
9081 (inputs
9082 `(("gtk+" ,gtk+)
9083 ("glib" ,glib)
9084 ("iso-codes" ,iso-codes)))
9085 (native-inputs
9086 `(("glib" ,glib "bin")
9087 ("gobject-introspection" ,gobject-introspection)
9088 ("pkg-config" ,pkg-config)
9089 ("vala" ,vala) ;for VAPI, needed by Geary
9090 ("xmllint" ,libxml2)
9091
9092 ;; For tests.
9093 ("aspell-dict-en" ,aspell-dict-en)
9094 ("xorg-server" ,xorg-server-for-tests)))
9095 (propagated-inputs
9096 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
9097 (home-page "https://wiki.gnome.org/Projects/gspell")
9098 (synopsis "GNOME's alternative spell checker")
9099 (description
9100 "gspell provides a flexible API to add spell-checking to a GTK+
9101 application. It provides a GObject API, spell-checking to text entries and
9102 text views, and buttons to choose the language.")
9103 (license license:gpl2+)))
9104
9105 (define-public gnome-planner
9106 (package
9107 (name "gnome-planner")
9108 (version "0.14.6")
9109 (source (origin
9110 (method url-fetch)
9111 (uri (string-append "mirror://gnome/sources/planner/"
9112 (version-major+minor version) "/planner-"
9113 version ".tar.xz"))
9114 (sha256
9115 (base32
9116 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9117 (build-system glib-or-gtk-build-system)
9118 (arguments
9119 ;; Disable the Python bindings because the Planner program functions
9120 ;; without them, and (as of 2017-06-13) we have not packaged all of
9121 ;; packages that are necessary for building the Python bindings.
9122 `(#:configure-flags
9123 (list "--disable-python"
9124 ,@(if (string=? "aarch64-linux" (%current-system))
9125 '("--build=aarch64-unknown-linux-gnu")
9126 '()))))
9127 (inputs
9128 `(("libgnomecanvas" ,libgnomecanvas)
9129 ("libgnomeui" ,libgnomeui)
9130 ("libglade" ,libglade)
9131 ("gnome-vfs" ,gnome-vfs)
9132 ("gconf" ,gconf)
9133 ("libxml2" ,libxml2)
9134 ("libxslt" ,libxslt)
9135 ("gtk+" ,gtk+)
9136 ("glib" ,glib)))
9137 (native-inputs
9138 `(("intltool" ,intltool)
9139 ("scrollkeeper" ,scrollkeeper)
9140 ("pkg-config" ,pkg-config)))
9141 (home-page "https://wiki.gnome.org/Apps/Planner")
9142 (synopsis "Project management software for the GNOME desktop")
9143 (description
9144 "GNOME Planner is a project management tool based on the Work Breakdown
9145 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9146 the resources, tasks, and constraints that you define, Planner generates
9147 various views into a project. For example, Planner can show a Gantt chart of
9148 the project. It can show a detailed summary of tasks including their
9149 duration, cost, and current progress. It can also show a report of resource
9150 utilization that highlights under-utilized and over-utilized resources. These
9151 views can be printed as PDF or PostScript files, or exported to HTML.")
9152 (license license:gpl2+)))
9153
9154 (define-public lollypop
9155 (package
9156 (name "lollypop")
9157 (version "1.2.32")
9158 (source
9159 (origin
9160 (method url-fetch)
9161 (uri (string-append "https://adishatz.org/lollypop/"
9162 "lollypop-" version ".tar.xz"))
9163 (sha256
9164 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
9165 (build-system meson-build-system)
9166 (arguments
9167 `(#:imported-modules
9168 (,@%meson-build-system-modules
9169 (guix build python-build-system))
9170 #:modules
9171 ((guix build meson-build-system)
9172 ((guix build python-build-system) #:prefix python:)
9173 (guix build utils))
9174 #:glib-or-gtk? #t
9175 #:tests? #f ; no test suite
9176 #:phases
9177 (modify-phases %standard-phases
9178 (add-after 'install 'wrap-program
9179 (lambda* (#:key outputs #:allow-other-keys)
9180 (let ((out (assoc-ref outputs "out"))
9181 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9182 (wrap-program (string-append out "/bin/lollypop")
9183 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9184 #t))
9185 (add-after 'install 'wrap-python
9186 (assoc-ref python:%standard-phases 'wrap)))))
9187 (native-inputs
9188 `(("intltool" ,intltool)
9189 ("itstool" ,itstool)
9190 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9191 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9192 ("pkg-config" ,pkg-config)))
9193 (inputs
9194 `(("gobject-introspection" ,gobject-introspection)
9195 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9196 ("gst-plugins-base" ,gst-plugins-base)
9197 ("libnotify" ,libnotify)
9198 ("libsecret" ,libsecret)
9199 ("libsoup" ,libsoup)
9200 ("python" ,python)
9201 ("python-beautifulsoup4" ,python-beautifulsoup4)
9202 ("python-gst" ,python-gst)
9203 ("python-pil" ,python-pillow)
9204 ("python-pycairo" ,python-pycairo)
9205 ("python-pygobject" ,python-pygobject)
9206 ("python-pylast" ,python-pylast)
9207 ("totem-pl-parser" ,totem-pl-parser)
9208 ("webkitgtk" ,webkitgtk)))
9209 (propagated-inputs
9210 `(;; gst-plugins-base is required to start Lollypop,
9211 ;; the others are required to play streaming.
9212 ("gst-plugins-good" ,gst-plugins-good)
9213 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9214 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9215 (synopsis "GNOME music playing application")
9216 (description
9217 "Lollypop is a music player designed to play well with GNOME desktop.
9218 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9219 from artists and tracks from the web. It also fetches cover artworks
9220 automatically and it can stream songs from online music services and charts.")
9221 (license license:gpl3+)))
9222
9223 (define-public gnome-video-effects
9224 (package
9225 (name "gnome-video-effects")
9226 (version "0.4.3")
9227 (source (origin
9228 (method url-fetch)
9229 (uri (string-append "mirror://gnome/sources/" name "/"
9230 (version-major+minor version) "/" name "-"
9231 version ".tar.xz"))
9232 (sha256
9233 (base32
9234 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9235 (build-system glib-or-gtk-build-system)
9236 (arguments
9237 `(#:out-of-source? #f))
9238 (native-inputs
9239 `(("glib:bin" ,glib "bin")
9240 ("intltool" ,intltool)
9241 ("gettext" ,gettext-minimal)
9242 ("pkg-config" ,pkg-config)))
9243 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9244 (synopsis "Video effects for Cheese and other GNOME applications")
9245 (description
9246 "A collection of GStreamer video filters and effects to be used in
9247 photo-booth-like software, such as Cheese.")
9248 (license license:gpl2+)))
9249
9250 (define-public cheese
9251 (package
9252 (name "cheese")
9253 (version "3.34.0")
9254 (source (origin
9255 (method url-fetch)
9256 (uri (string-append "mirror://gnome/sources/" name "/"
9257 (version-major+minor version) "/" name "-"
9258 version ".tar.xz"))
9259 (sha256
9260 (base32
9261 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
9262 (arguments
9263 `(#:glib-or-gtk? #t
9264 ;; Tests require GDK.
9265 #:tests? #f
9266 #:phases
9267 (modify-phases %standard-phases
9268 (add-after 'unpack 'skip-gtk-update-icon-cache
9269 (lambda _
9270 ;; Don't create 'icon-theme.cache'
9271 (substitute* "meson_post_install.py"
9272 (("gtk-update-icon-cache") (which "true")))
9273 #t))
9274 (add-after 'install 'wrap-cheese
9275 (lambda* (#:key inputs outputs #:allow-other-keys)
9276 (let ((out (assoc-ref outputs "out"))
9277 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9278 (wrap-program (string-append out "/bin/cheese")
9279 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9280 #t)))))
9281 (build-system meson-build-system)
9282 (native-inputs
9283 `(("docbook-xsl" ,docbook-xsl)
9284 ("glib:bin" ,glib "bin")
9285 ("gtk-doc" ,gtk-doc)
9286 ("intltool" ,intltool)
9287 ("itstool" ,itstool)
9288 ("libxml2" ,libxml2)
9289 ("libxslt" ,libxslt)
9290 ("pkg-config" ,pkg-config)
9291 ("vala" ,vala)))
9292 (propagated-inputs
9293 `(("gnome-video-effects" ,gnome-video-effects)
9294 ("clutter" ,clutter)
9295 ("clutter-gst" ,clutter-gst)
9296 ("clutter-gtk" ,clutter-gtk)
9297 ("libcanberra" ,libcanberra)
9298 ("gdk-pixbuf" ,gdk-pixbuf)
9299 ("glib" ,glib)
9300 ("gstreamer" ,gstreamer)))
9301 (inputs
9302 `(("gnome-desktop" ,gnome-desktop)
9303 ("gobject-introspection" ,gobject-introspection)
9304 ("gst-plugins-base" ,gst-plugins-base)
9305 ("gst-plugins-bad" ,gst-plugins-bad)
9306 ("gtk+" ,gtk+)
9307 ("libx11" ,libx11)
9308 ("libxtst" ,libxtst)))
9309 (home-page "https://wiki.gnome.org/Apps/Cheese")
9310 (synopsis "Webcam photo booth software for GNOME")
9311 (description
9312 "Cheese uses your webcam to take photos and videos. Cheese can also
9313 apply fancy special effects and lets you share the fun with others.")
9314 (license license:gpl2+)))
9315
9316 (define-public sound-juicer
9317 (package
9318 (name "sound-juicer")
9319 (version "3.24.0")
9320 (source
9321 (origin
9322 (method url-fetch)
9323 (uri (string-append "mirror://gnome/sources/" name "/"
9324 (version-major+minor version) "/"
9325 name "-" version ".tar.xz"))
9326 (sha256
9327 (base32
9328 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9329 (build-system glib-or-gtk-build-system)
9330 (native-inputs
9331 `(("desktop-file-utils" ,desktop-file-utils)
9332 ("intltool" ,intltool)
9333 ("itstool" ,itstool)
9334 ("pkg-config" ,pkg-config)
9335 ("xmllint" ,libxml2)))
9336 (inputs
9337 `(("gtk+" ,gtk+)
9338 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9339 ("gstreamer" ,gstreamer)
9340 ("gst-plugins-base" ,gst-plugins-base)
9341 ("gst-plugins-good" ,gst-plugins-good)
9342 ("iso-codes" ,iso-codes)
9343 ("libbrasero-media3" ,brasero)
9344 ("libcanberra" ,libcanberra)
9345 ("libdiscid" ,libdiscid)
9346 ("libmusicbrainz" ,libmusicbrainz)
9347 ("neon" ,neon)))
9348 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9349 (synopsis "Audio music cd ripper")
9350 (description "Sound Juicer extracts audio from compact discs and convert it
9351 into audio files that a personal computer or digital audio player can play.
9352 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9353 mp3, Ogg Vorbis and FLAC")
9354 (license license:gpl2+)))
9355
9356 (define-public soundconverter
9357 (package
9358 (name "soundconverter")
9359 (version "3.0.2")
9360 (source
9361 (origin
9362 (method url-fetch)
9363 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9364 version "/+download/"
9365 "soundconverter-" version ".tar.xz"))
9366
9367 (sha256
9368 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
9369 (build-system glib-or-gtk-build-system)
9370 (arguments
9371 `(#:imported-modules ((guix build python-build-system)
9372 (guix build glib-or-gtk-build-system)
9373 ,@%gnu-build-system-modules)
9374
9375 #:modules ((guix build glib-or-gtk-build-system)
9376 (guix build utils)
9377 ((guix build gnu-build-system) #:prefix gnu:)
9378 ((guix build python-build-system) #:prefix python:))
9379
9380 #:phases
9381 (modify-phases %standard-phases
9382 (add-after 'install 'wrap-soundconverter-for-python
9383 (assoc-ref python:%standard-phases 'wrap))
9384 (add-after 'install 'wrap-soundconverter
9385 (lambda* (#:key inputs outputs #:allow-other-keys)
9386 (let ((out (assoc-ref outputs "out"))
9387 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9388 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9389 (wrap-program (string-append out "/bin/soundconverter")
9390 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9391 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9392 #t)))))
9393 (native-inputs
9394 `(("intltool" ,intltool)
9395 ("pkg-config" ,pkg-config)
9396 ("glib:bin" ,glib "bin")))
9397 (inputs
9398 `(("gtk+" ,gtk+)
9399 ("python" ,python)
9400 ("python-pygobject" ,python-pygobject)
9401 ("gstreamer" ,gstreamer)
9402 ("gst-plugins-base" ,gst-plugins-base)))
9403 (home-page "https://soundconverter.org/")
9404 (synopsis "Convert between audio formats with a graphical interface")
9405 (description
9406 "SoundConverter supports converting between many audio formats including
9407 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9408 configurable file renaming. ")
9409 (license license:gpl3)))
9410
9411 (define-public workrave
9412 (package
9413 (name "workrave")
9414 (version "1.10.42")
9415 (source
9416 (origin
9417 (method git-fetch)
9418 (uri (git-reference
9419 (url "https://github.com/rcaelers/workrave.git")
9420 (commit (string-append "v" (string-map
9421 (match-lambda (#\. #\_) (chr chr))
9422 version)))))
9423 (file-name (git-file-name name version))
9424 (sha256
9425 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
9426 (build-system glib-or-gtk-build-system)
9427 (arguments
9428 ;; The only tests are maintainer tests (in po/), which fail.
9429 `(#:tests? #f))
9430 (inputs `(("glib" ,glib)
9431 ("gtk+" ,gtk+)
9432 ("gdk-pixbuf" ,gdk-pixbuf)
9433 ("gtkmm" ,gtkmm)
9434 ("glibmm" ,glibmm)
9435 ("libx11" ,libx11)
9436 ("libxtst" ,libxtst)
9437 ("dconf" ,dconf)
9438 ("libice" ,libice)
9439 ("libsm" ,libsm)
9440 ("libxscrnsaver" ,libxscrnsaver)))
9441 (native-inputs `(("boost" ,boost)
9442 ("pkg-config" ,pkg-config)
9443 ("gettext" ,gettext-minimal)
9444 ("autoconf" ,autoconf)
9445 ("autoconf-archive" , autoconf-archive)
9446 ("automake" ,automake)
9447 ("libtool" ,libtool)
9448 ("intltool" ,intltool)
9449 ("gobject-introspection" ,gobject-introspection)
9450 ("python3" ,python-3)
9451 ("python-jinja2" ,python-jinja2)))
9452 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9453 (description
9454 "Workrave is a program that assists in the recovery and prevention of
9455 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9456 micro-pauses and rest breaks, and restricts you to your daily limit.")
9457 (home-page "http://www.workrave.org")
9458 (license license:gpl3+)))
9459
9460 (define-public ghex
9461 (package
9462 (name "ghex")
9463 (version "3.18.4")
9464 (source (origin
9465 (method url-fetch)
9466 (uri (string-append "mirror://gnome/sources/ghex/"
9467 (version-major+minor version) "/"
9468 "ghex-" version ".tar.xz"))
9469 (sha256
9470 (base32
9471 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9472 (build-system meson-build-system)
9473 (arguments
9474 '(#:glib-or-gtk? #t
9475 #:phases
9476 (modify-phases %standard-phases
9477 (add-after 'unpack 'skip-gtk-update-icon-cache
9478 ;; Don't create 'icon-theme.cache'.
9479 (lambda _
9480 (substitute* "meson_post_install.py"
9481 (("gtk-update-icon-cache") (which "true")))
9482 #t)))))
9483 (native-inputs
9484 `(("pkg-config" ,pkg-config)
9485 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9486 ("gnome-common" ,gnome-common)
9487 ("which" ,which)
9488 ("intltool" ,intltool)
9489 ("yelp-tools" ,yelp-tools)
9490 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9491 (inputs
9492 `(("atk" ,atk)
9493 ("gtk" ,gtk+)))
9494 (synopsis "GNOME hexadecimal editor")
9495 (description "The GHex program can view and edit files in two ways:
9496 hexadecimal or ASCII. It is useful for editing binary files in general.")
9497 (home-page "https://wiki.gnome.org/Apps/Ghex")
9498 (license license:gpl2)))
9499
9500 (define-public libdazzle
9501 (package
9502 (name "libdazzle")
9503 (version "3.34.1")
9504 (source (origin
9505 (method url-fetch)
9506 (uri (string-append "mirror://gnome/sources/libdazzle/"
9507 (version-major+minor version) "/"
9508 "libdazzle-" version ".tar.xz"))
9509 (sha256
9510 (base32
9511 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
9512 (build-system meson-build-system)
9513 (arguments
9514 `(#:phases
9515 (modify-phases %standard-phases
9516 (add-before 'check 'pre-check
9517 (lambda _
9518 ;; Tests require a running X server.
9519 (system "Xvfb :1 &")
9520 (setenv "DISPLAY" ":1")
9521 #t)))))
9522 (native-inputs
9523 `(("glib" ,glib "bin") ; glib-compile-resources
9524 ("pkg-config" ,pkg-config)
9525 ;; For tests.
9526 ("xorg-server" ,xorg-server-for-tests)))
9527 (inputs
9528 `(("glib" ,glib)
9529 ("gobject-introspection" ,gobject-introspection)
9530 ("gtk+" ,gtk+)
9531 ("vala" ,vala)))
9532 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9533 (synopsis "Companion library to GObject and Gtk+")
9534 (description "The libdazzle library is a companion library to GObject and
9535 Gtk+. It provides various features that the authors wish were in the
9536 underlying library but cannot for various reasons. In most cases, they are
9537 wildly out of scope for those libraries. In other cases, they are not quite
9538 generic enough to work for everyone.")
9539 (license license:gpl3+)))
9540
9541 (define-public evolution
9542 (package
9543 (name "evolution")
9544 (version "3.34.2")
9545 (source (origin
9546 (method url-fetch)
9547 (uri (string-append "mirror://gnome/sources/evolution/"
9548 (version-major+minor version) "/"
9549 "evolution-" version ".tar.xz"))
9550 (sha256
9551 (base32
9552 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
9553 (build-system cmake-build-system)
9554 (arguments
9555 `(#:imported-modules (,@%cmake-build-system-modules
9556 (guix build glib-or-gtk-build-system))
9557 #:modules ((guix build cmake-build-system)
9558 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9559 (guix build utils))
9560 #:configure-flags
9561 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9562 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9563 ; in four years and cannot be built.
9564 #:phases
9565 (modify-phases %standard-phases
9566 ;; The build system attempts to install user interface modules to the
9567 ;; output directory of the "evolution-data-server" package. This
9568 ;; change redirects that change.
9569 (add-after 'unpack 'patch-ui-module-dir
9570 (lambda* (#:key outputs #:allow-other-keys)
9571 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9572 (("\\$\\{edsuimoduledir\\}")
9573 (string-append (assoc-ref outputs "out")
9574 "/lib/evolution-data-server/ui-modules")))
9575 #t))
9576 (add-after 'install 'glib-or-gtk-compile-schemas
9577 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9578 (add-after 'install 'glib-or-gtk-wrap
9579 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9580 (native-inputs
9581 `(("glib" ,glib "bin") ; glib-mkenums
9582 ("pkg-config" ,pkg-config)
9583 ("intltool" ,intltool)
9584 ("itstool" ,itstool)))
9585 (inputs
9586 `(("enchant" ,enchant)
9587 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9588 ("gcr" ,gcr)
9589 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9590 ("gnome-autoar" ,gnome-autoar)
9591 ("gnome-desktop" ,gnome-desktop)
9592 ("gspell" ,gspell)
9593 ("highlight" ,highlight)
9594 ("libcanberra" ,libcanberra)
9595 ("libgweather" ,libgweather)
9596 ("libnotify" ,libnotify)
9597 ("libsoup" ,libsoup)
9598 ("nss" ,nss)
9599 ("openldap" ,openldap)
9600 ("webkitgtk" ,webkitgtk)
9601 ("ytnef" ,ytnef)))
9602 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9603 (synopsis "Manage your email, contacts and schedule")
9604 (description "Evolution is a personal information management application
9605 that provides integrated mail, calendaring and address book
9606 functionality.")
9607 ;; See COPYING for details.
9608 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9609 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9610 license:lgpl2.1+)))) ; smime/lib/*
9611
9612 (define-public gthumb
9613 (package
9614 (name "gthumb")
9615 (version "3.8.2")
9616 (source (origin
9617 (method url-fetch)
9618 (uri (string-append "mirror://gnome/sources/gthumb/"
9619 (version-major+minor version) "/"
9620 "gthumb-" version ".tar.xz"))
9621 (sha256
9622 (base32
9623 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9624 (build-system meson-build-system)
9625 (arguments
9626 `(#:glib-or-gtk? #t
9627 #:configure-flags
9628 ;; Ensure the RUNPATH contains all installed library locations.
9629 (list (string-append "-Dc_link_args=-Wl,-rpath="
9630 (assoc-ref %outputs "out")
9631 "/lib/gthumb/extensions")
9632 (string-append "-Dcpp_link_args=-Wl,-rpath="
9633 (assoc-ref %outputs "out")
9634 "/lib/gthumb/extensions"))))
9635 (native-inputs
9636 `(("pkg-config" ,pkg-config)
9637 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9638 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9639 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9640 ("intltool" ,intltool)
9641 ("itstool" ,itstool)))
9642 (inputs
9643 `(("exiv2" ,exiv2)
9644 ("gtk" ,gtk+)
9645 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9646 ("gstreamer" ,gstreamer)
9647 ("clutter" ,clutter)
9648 ("clutter-gst" ,clutter-gst)
9649 ("clutter-gtk" ,clutter-gtk)
9650 ("libjpeg" ,libjpeg-turbo)
9651 ("libtiff" ,libtiff)
9652 ("libraw" ,libraw)))
9653 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9654 (synopsis "GNOME image viewer and browser")
9655 (description "GThumb is an image viewer, browser, organizer, editor and
9656 advanced image management tool")
9657 (license license:gpl2+)))
9658
9659 (define-public terminator
9660 (package
9661 (name "terminator")
9662 (version "1.91")
9663 (source (origin
9664 (method url-fetch)
9665 (uri (string-append "https://launchpad.net/" name "/"
9666 "gtk3/" version "/" "+download/"
9667 name "-" version ".tar.gz"))
9668 (sha256
9669 (base32
9670 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9671 (build-system python-build-system)
9672 (native-inputs
9673 `(("intltool" ,intltool)
9674 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9675 ("gettext" ,gettext-minimal)
9676 ("pkg-config" ,pkg-config)))
9677 (inputs
9678 `(("cairo" ,cairo)
9679 ("gobject-introspection" ,gobject-introspection)
9680 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9681 ("python2-pycairo" ,python2-pycairo)
9682 ("python2-pygobject" ,python2-pygobject)
9683 ("python2-psutil" ,python2-psutil)
9684 ("vte" ,vte)))
9685 (arguments
9686 `(#:python ,python-2 ; Python 3 isn't supported
9687 #:imported-modules ((guix build glib-or-gtk-build-system)
9688 ,@%python-build-system-modules)
9689 #:modules ((guix build python-build-system)
9690 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9691 (guix build utils))
9692 #:phases
9693 (modify-phases %standard-phases
9694 (add-after
9695 'install 'wrap-program
9696 (lambda* (#:key outputs #:allow-other-keys)
9697 (let ((prog (string-append (assoc-ref outputs "out")
9698 "/bin/terminator")))
9699 (wrap-program prog
9700 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9701 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9702 #t)))
9703 (add-after 'wrap-program 'glib-or-gtk-wrap
9704 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9705 (home-page "https://gnometerminator.blogspot.com/")
9706 (synopsis "Store and run multiple GNOME terminals in one window")
9707 (description
9708 "Terminator allows you to run multiple GNOME terminals in a grid and
9709 +tabs, and it supports drag and drop re-ordering of terminals.")
9710 (license license:gpl2)))
9711
9712 (define-public libhandy
9713 (package
9714 (name "libhandy")
9715 (version "0.0.12")
9716 (source
9717 (origin
9718 (method git-fetch)
9719 (uri (git-reference
9720 (url "https://source.puri.sm/Librem5/libhandy")
9721 (commit (string-append "v" version))))
9722 (file-name (git-file-name name version))
9723 (sha256
9724 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9725 (build-system meson-build-system)
9726 (arguments
9727 `(#:configure-flags
9728 '("-Dglade_catalog=disabled"
9729 "-Dgtk_doc=true")
9730 #:phases
9731 (modify-phases %standard-phases
9732 (add-before 'check 'pre-check
9733 (lambda _
9734 ;; Tests require a running X server.
9735 (system "Xvfb :1 &")
9736 (setenv "DISPLAY" ":1")
9737 #t)))))
9738 (inputs
9739 `(("gtk+" ,gtk+)))
9740 (native-inputs
9741 `(("glib:bin" ,glib "bin")
9742 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9743 ("vala" ,vala)
9744 ("gtk-doc" ,gtk-doc)
9745 ("pkg-config" ,pkg-config)
9746 ("gettext" ,gettext-minimal)
9747
9748 ;; Test suite dependencies.
9749 ("xorg-server" ,xorg-server-for-tests)
9750 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9751 (home-page "https://source.puri.sm/Librem5/libhandy")
9752 (synopsis "Library full of GTK+ widgets for mobile phones")
9753 (description "The aim of the handy library is to help with developing user
9754 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9755 for usage on small and big screens.")
9756 (license license:lgpl2.1+)))
9757
9758 (define-public libgit2-glib
9759 (package
9760 (name "libgit2-glib")
9761 (version "0.99.0.1")
9762 (source (origin
9763 (method url-fetch)
9764 (uri (string-append "mirror://gnome/sources/" name "/"
9765 (version-major+minor version) "/"
9766 name "-" version ".tar.xz"))
9767 (sha256
9768 (base32
9769 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
9770 (build-system meson-build-system)
9771 (native-inputs
9772 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9773 ("gobject-introspection" ,gobject-introspection)
9774 ("pkg-config" ,pkg-config)
9775 ("python-pygobject" ,python-pygobject)
9776 ("python-wrapper" ,python-wrapper)
9777 ("vala" ,vala)))
9778 (inputs
9779 `(("glib" ,glib)
9780 ("libssh2" ,libssh2)))
9781 (propagated-inputs
9782 `(;; In Requires of libgit2-glib.pc.
9783 ("libgit2" ,libgit2)))
9784 (synopsis "GLib wrapper around the libgit2 Git access library")
9785 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9786 access library. It only implements the core plumbing functions, not really the
9787 higher level porcelain stuff.")
9788 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9789 (license license:gpl2+)))
9790
9791 (define-public gitg
9792 (package
9793 (name "gitg")
9794 (version "3.32.1")
9795 (source (origin
9796 (method url-fetch)
9797 (uri (string-append "mirror://gnome/sources/" name "/"
9798 (version-major+minor version) "/"
9799 name "-" version ".tar.xz"))
9800 (sha256
9801 (base32
9802 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9803 (build-system meson-build-system)
9804 (arguments
9805 `(#:glib-or-gtk? #t
9806 #:phases
9807 (modify-phases %standard-phases
9808 (add-after 'unpack 'disable-post-install-partially
9809 (lambda _
9810 (substitute* "meson_post_install.py"
9811 (("'python'") ; there are no python sources to compile
9812 (string-append "'" (which "true") "'"))
9813 (("gtk-update-icon-cache") (which "true")))
9814 #t))
9815 (add-after 'unpack 'fix-test-sources
9816 (lambda _
9817 (substitute* "tests/libgitg/test-commit.vala"
9818 (("/bin/bash") (which "bash")))
9819 #t))
9820 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9821 (lambda* (#:key outputs #:allow-other-keys)
9822 (let ((prog (string-append (assoc-ref outputs "out")
9823 "/bin/gitg")))
9824 (wrap-program prog
9825 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9826 #t))))))
9827 (inputs
9828 `(("glib" ,glib)
9829 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9830 ("gtk+" ,gtk+)
9831 ("gtkspell3" ,gtkspell3)
9832 ("gtksourceview" ,gtksourceview-3)
9833 ("json-glib" ,json-glib)
9834 ("libdazzle" ,libdazzle)
9835 ("libgee" ,libgee)
9836 ("libgit2-glib" ,libgit2-glib)
9837 ("libpeas" ,libpeas)
9838 ("libsecret" ,libsecret)
9839 ("libsoup" ,libsoup)
9840 ("libxml2" ,libxml2)))
9841 (native-inputs
9842 `(("glib:bin" ,glib "bin")
9843 ("gtk+:bin" ,gtk+ "bin")
9844 ("gobject-introspection" ,gobject-introspection)
9845 ("intltool" ,intltool)
9846 ("pkg-config" ,pkg-config)
9847 ("vala" ,vala)))
9848 (synopsis "Graphical user interface for git")
9849 (description
9850 "gitg is a graphical user interface for git. It aims at being a small,
9851 fast and convenient tool to visualize the history of git repositories.
9852 Besides visualization, gitg also provides several utilities to manage your
9853 repository and commit your work.")
9854 (home-page "https://wiki.gnome.org/Apps/Gitg")
9855 (license license:gpl2+)))
9856
9857 (define-public gamin
9858 (package
9859 (name "gamin")
9860 (version "0.1.10")
9861 (source (origin
9862 (method url-fetch)
9863 (uri (string-append "mirror://gnome/sources/" name "/"
9864 (version-major+minor version) "/"
9865 name "-" version ".tar.bz2"))
9866 (sha256
9867 (base32
9868 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9869 (build-system gnu-build-system)
9870 (arguments
9871 `(#:phases
9872 (modify-phases %standard-phases
9873 (add-after 'unpack 'remove-deprecated-macro
9874 (lambda _
9875 (substitute* '("server/gam_node.c"
9876 "server/gam_subscription.h"
9877 "server/gam_node.h"
9878 "server/gam_subscription.c")
9879 (("G_CONST_RETURN") "const"))
9880 #t)))))
9881 (inputs
9882 `(("glib" ,glib)))
9883 (native-inputs
9884 `(("intltool" ,intltool)
9885 ("pkg-config" ,pkg-config)))
9886 (home-page "https://people.gnome.org/~veillard/gamin/")
9887 (synopsis "File alteration monitor")
9888 (description
9889 "Gamin is a file and directory monitoring system defined to be a subset
9890 of the FAM (File Alteration Monitor) system. This is a service provided by a
9891 library which detects when a file or a directory has been modified.")
9892 (license license:gpl2+)))
9893
9894 (define-public gnome-mahjongg
9895 (package
9896 (name "gnome-mahjongg")
9897 (version "3.35.1")
9898 (source (origin
9899 (method git-fetch)
9900 (uri (git-reference
9901 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9902 (commit version)))
9903 (file-name (git-file-name name version))
9904 (sha256
9905 (base32
9906 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9907 (build-system meson-build-system)
9908 (arguments
9909 `(#:glib-or-gtk? #t))
9910 (native-inputs
9911 `(("appstream-glib" ,appstream-glib)
9912 ("gettext" ,gettext-minimal)
9913 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9914 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9915 ("itstool" ,itstool)
9916 ("pkg-config" ,pkg-config)
9917 ("vala" ,vala)))
9918 (propagated-inputs
9919 `(("dconf" ,dconf)))
9920 (inputs
9921 `(("glib" ,glib)
9922 ("gtk+" ,gtk+)
9923 ("librsvg" ,librsvg)))
9924 (synopsis "Mahjongg tile-matching game")
9925 (description "GNOME Mahjongg is a game based on the classic Chinese
9926 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9927 and a high score table.")
9928 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9929 (license license:gpl2+)))
9930
9931 (define-public gnome-themes-extra
9932 (package
9933 (name "gnome-themes-extra")
9934 (version "3.28")
9935 (source
9936 (origin
9937 (method url-fetch)
9938 (uri (string-append "mirror://gnome/sources/" name "/"
9939 (version-major+minor version) "/" name "-"
9940 version ".tar.xz"))
9941 (sha256
9942 (base32
9943 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9944 (build-system gnu-build-system)
9945 (arguments
9946 '(#:configure-flags
9947 ;; Don't create 'icon-theme.cache'.
9948 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9949 (true (string-append coreutils "/bin/true")))
9950 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9951 (native-inputs
9952 `(("glib:bin" ,glib "bin")
9953 ("intltool" ,intltool)
9954 ("pkg-config" ,pkg-config)))
9955 (inputs
9956 `(("glib" ,glib)
9957 ("gtk+" ,gtk+)
9958 ("gtk+-2" ,gtk+-2)
9959 ("librsvg" ,librsvg)
9960 ("libxml2" ,libxml2)))
9961 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9962 (synopsis "GNOME Extra Themes")
9963 (description "This package provides themes and related elements that don't
9964 really fit in other upstream packages. It offers legacy support for GTK+ 2
9965 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9966 index files needed for Adwaita to be used outside of GNOME.")
9967 (license license:lgpl2.1+)))
9968
9969 (define-public polari
9970 (package
9971 (name "polari")
9972 (version "3.32.2")
9973 (source (origin
9974 (method url-fetch)
9975 (uri (string-append "mirror://gnome/sources/polari/"
9976 (version-major+minor version)
9977 "/polari-" version ".tar.xz"))
9978 (sha256
9979 (base32
9980 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9981 (build-system meson-build-system)
9982 (arguments
9983 `(#:glib-or-gtk? #t
9984 #:phases
9985 (modify-phases %standard-phases
9986 (add-after 'unpack 'skip-gtk-update-icon-cache
9987 (lambda _
9988 (substitute* "meson/meson-postinstall.sh"
9989 (("gtk-update-icon-cache") (which "true")))
9990 #t))
9991 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9992 (lambda* (#:key outputs #:allow-other-keys)
9993 (let ((prog (string-append (assoc-ref outputs "out")
9994 "/bin/polari")))
9995 (wrap-program prog
9996 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9997 #t))))))
9998 (inputs
9999 `(("glib" ,glib)
10000 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10001 ("gspell" ,gspell)
10002 ("gtk+" ,gtk+)
10003 ("gjs" ,gjs)
10004 ("libsecret" ,libsecret)
10005 ("libsoup" ,libsoup)
10006 ("telepathy-glib" ,telepathy-glib)
10007 ("telepathy-logger" ,telepathy-logger)))
10008 (native-inputs
10009 `(("glib:bin" ,glib "bin")
10010 ("gobject-introspection" ,gobject-introspection)
10011 ("intltool" ,intltool)
10012 ("pkg-config" ,pkg-config)
10013 ("yelp-tools" ,yelp-tools)))
10014 (propagated-inputs
10015 `(("telepathy-idle" ,telepathy-idle)
10016 ("telepathy-mission-control" ,telepathy-mission-control)))
10017 (synopsis "Simple IRC Client")
10018 (description
10019 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10020 integrate seamlessly with the GNOME desktop.")
10021 (home-page "https://wiki.gnome.org/Apps/Polari")
10022 (license license:gpl2+)))
10023
10024 (define-public gnome-boxes
10025 (package
10026 (name "gnome-boxes")
10027 (version "3.36.5")
10028 (source
10029 (origin
10030 (method url-fetch)
10031 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10032 (version-major+minor version) "/"
10033 "gnome-boxes-" version ".tar.xz"))
10034 (sha256
10035 (base32 "1khvyhgd3p41fvvknga1hdl0p1ks4kj4cwsiaw28v1sy6nzclm2c"))))
10036 (build-system meson-build-system)
10037 (arguments
10038 '(#:glib-or-gtk? #t
10039 #:configure-flags (list "-Drdp=false"
10040 (string-append "-Dc_link_args=-Wl,-rpath="
10041 (assoc-ref %outputs "out")
10042 "/lib/gnome-boxes"))))
10043 (native-inputs
10044 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10045 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10046 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10047 ("itstool" ,itstool)
10048 ("intltool" ,intltool)
10049 ("vala" ,vala)
10050 ("pkg-config" ,pkg-config)))
10051 (inputs
10052 `(("libarchive" ,libarchive)
10053 ("gtk" ,gtk+)
10054 ("gtk-vnc" ,gtk-vnc)
10055 ("libosinfo" ,libosinfo)
10056 ("libsecret" ,libsecret)
10057 ("libsoup" ,libsoup)
10058 ("libusb" ,libusb)
10059 ("libvirt" ,libvirt)
10060 ("libvirt-glib" ,libvirt-glib)
10061 ("libxml" ,libxml2)
10062 ("spice-gtk" ,spice-gtk)
10063 ("sparql-query" ,sparql-query)
10064 ("vte" ,vte)
10065 ("webkitgtk" ,webkitgtk)
10066 ("tracker" ,tracker)
10067 ("libgudev" ,libgudev)))
10068 (home-page "https://wiki.gnome.org/Apps/Boxes")
10069 (synopsis "View, access, and manage remote and virtual systems")
10070 (description "GNOME Boxes is a simple application to view, access, and
10071 manage remote and virtual systems.")
10072 (license (list
10073 ;; For data/icons/empty-boxes.png.
10074 license:cc-by2.0
10075 ;; For all others.
10076 license:lgpl2.0+))))
10077
10078 (define-public geary
10079 (package
10080 (name "geary")
10081 (version "3.34.1")
10082 (source (origin
10083 (method git-fetch)
10084 (uri (git-reference
10085 (url "https://gitlab.gnome.org/GNOME/geary")
10086 (commit version)))
10087 (file-name (git-file-name name version))
10088 (sha256
10089 (base32
10090 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10091 (build-system meson-build-system)
10092 (arguments
10093 `(#:glib-or-gtk? #t
10094 #:phases (modify-phases %standard-phases
10095 (add-after 'unpack 'disable-failing-tests
10096 (lambda _
10097 (substitute* "test/meson.build"
10098 (("test\\('client-tests', geary_test_client_bin\\)")
10099 ""))
10100 #t))
10101 (add-after 'unpack 'disable-postinstall-script
10102 (lambda _
10103 (substitute* "meson.build"
10104 (("meson.add_install_script\\(\
10105 join_paths\\('build-aux', 'post_install.py'\\)\\)")
10106 ""))
10107 #t))
10108 (add-before 'check 'setup-xvfb
10109 (lambda _
10110 (system "Xvfb :1 &")
10111 (setenv "DISPLAY" ":1")
10112 #t)))))
10113 (inputs
10114 `(("enchant" ,enchant)
10115 ("folks" ,folks)
10116 ("gcr" ,gcr)
10117 ("glib" ,glib)
10118 ("gmime" ,gmime-2.6)
10119 ("gnome-online-accounts:lib"
10120 ,gnome-online-accounts "lib")
10121 ("gspell" ,gspell)
10122 ("gtk+" ,gtk+)
10123 ("iso-codes" ,iso-codes)
10124 ("json-glib" ,json-glib)
10125 ("libcanberra" ,libcanberra)
10126 ("libgee" ,libgee)
10127 ("libhandy" ,libhandy)
10128 ("libpeas" ,libpeas)
10129 ("libsecret" ,libsecret)
10130 ("libunwind" ,libunwind)
10131 ("sqlite" ,sqlite)
10132 ("webkitgtk" ,webkitgtk)
10133 ("ytnef" ,ytnef)))
10134 (native-inputs
10135 `(("appstream-glib" ,appstream-glib)
10136 ("cmake-minimal" ,cmake-minimal)
10137 ("desktop-file-utils" ,desktop-file-utils)
10138 ("gettext" ,gettext-minimal)
10139 ("glib:bin" ,glib "bin")
10140 ("gobject-introspection" ,gobject-introspection)
10141 ("itstool" ,itstool)
10142 ("libarchive" ,libarchive)
10143 ("libxml2" ,libxml2)
10144 ("pkg-config" ,pkg-config)
10145 ("vala" ,vala)
10146 ("xvfb" ,xorg-server-for-tests)))
10147 (synopsis "GNOME email application built around conversations")
10148 (description
10149 "Geary collects related messages together into conversations,
10150 making it easy to find and follow your discussions. Full-text and keyword
10151 search makes it easy to find the email you are looking for. Geary's
10152 full-featured composer lets you send rich, styled text with images, links, and
10153 lists, but also send lightweight, easy to read text messages. Geary
10154 automatically picks up your existing GNOME Online Accounts, and adding more is
10155 easy. Geary has a clean, fast, modern interface that works like you want it
10156 to.")
10157 (home-page "https://wiki.gnome.org/Apps/Geary")
10158 (license (list
10159 ;; geary
10160 license:lgpl2.1+
10161 ;; icons
10162 license:cc-by3.0
10163 license:cc-by-sa3.0
10164 license:public-domain
10165 ;; snowball
10166 license:bsd-2))))
10167
10168 (define-public glabels
10169 (package
10170 (name "glabels")
10171 (version "3.4.1")
10172 (source
10173 (origin
10174 (method url-fetch)
10175 (uri (string-append "mirror://gnome/sources/" name "/"
10176 (version-major+minor version) "/"
10177 "glabels-" version ".tar.xz"))
10178 (sha256
10179 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10180 (build-system glib-or-gtk-build-system)
10181 (native-inputs
10182 `(("gettext" ,gettext-minimal)
10183 ("glib:bin" ,glib "bin")
10184 ("intltool" ,intltool)
10185 ("itstool" ,itstool)
10186 ("pkg-config" ,pkg-config)))
10187 (inputs
10188 `(("gtk+" ,gtk+)
10189 ("librsvg" ,librsvg)
10190 ("libxml2" ,libxml2)))
10191 (home-page "https://glabels.org/")
10192 (synopsis "Program for creating labels and business cards")
10193 (description
10194 "gLabels is a program for creating labels and business cards. It is
10195 designed to work with various laser/ink-jet peel-off label and business
10196 card sheets that you’ll find at most office supply stores.")
10197 (license license:gpl3+)))
10198
10199 (define-public libratbag
10200 (package
10201 (name "libratbag")
10202 (version "0.13")
10203 (source
10204 (origin
10205 (method git-fetch)
10206 (uri (git-reference
10207 (url "https://github.com/libratbag/libratbag.git")
10208 (commit (string-append "v" version))))
10209 (file-name (git-file-name name version))
10210 (sha256
10211 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10212 (build-system meson-build-system)
10213 (arguments
10214 `(#:configure-flags
10215 (list "-Dsystemd=false"
10216 "-Dlogind-provider=elogind")
10217 #:phases
10218 (modify-phases %standard-phases
10219 (add-after 'install 'wrap
10220 (lambda* (#:key inputs outputs #:allow-other-keys)
10221 (let* ((out (assoc-ref outputs "out"))
10222 (site (string-append
10223 "/lib/python"
10224 ,(version-major+minor (package-version python))
10225 "/site-packages"))
10226 (evdev (string-append
10227 (assoc-ref inputs "python-evdev") site))
10228 (pygo (string-append
10229 (assoc-ref inputs "python-pygobject") site))
10230 (python-wrap
10231 `("PYTHONPATH" = (,evdev ,pygo))))
10232 (wrap-program (string-append out "/bin/" "ratbagctl")
10233 python-wrap)
10234 #t))))))
10235 (native-inputs
10236 `(("check" ,check)
10237 ("pkg-config" ,pkg-config)
10238 ("swig" ,swig)
10239 ("valgrind" ,valgrind)))
10240 (inputs
10241 `(("glib" ,glib)
10242 ("json-glib" ,json-glib)
10243 ("libevdev" ,libevdev)
10244 ("libsystemd" ,elogind)
10245 ("libunistring" ,libunistring)
10246 ("python-evdev" ,python-evdev)
10247 ("python-pygobject" ,python-pygobject)
10248 ("udev" ,eudev)))
10249 (home-page "https://github.com/libratbag/libratbag")
10250 (synopsis "DBus daemon and utility for configuring gaming mice")
10251 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10252 configure input devices, mainly gaming mice. The daemon provides a generic
10253 way to access the various features exposed by these mice and abstracts away
10254 hardware-specific and kernel-specific quirks. There is also the
10255 @command{ratbagctl} command line interface for configuring devices.
10256
10257 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10258 Steelseries.
10259
10260 The ratbagd DBus service can be enabled by adding the following service to
10261 your operating-system definition:
10262
10263 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10264 (license license:expat)))
10265
10266 (define-public piper
10267 (package
10268 (name "piper")
10269 (version "0.5")
10270 (source
10271 (origin
10272 (method git-fetch)
10273 (uri (git-reference
10274 (url "https://github.com/libratbag/piper.git")
10275 (commit version)))
10276 (sha256
10277 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10278 (file-name (git-file-name name version))))
10279 (build-system meson-build-system)
10280 (native-inputs
10281 `(("gettext" ,gettext-minimal)
10282 ("glib:bin" ,glib "bin")
10283 ("gobject-introspection" ,gobject-introspection)
10284 ("pkg-config" ,pkg-config)
10285 ("python-flake8" ,python-flake8)))
10286 (inputs
10287 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10288 ("gtk" ,gtk+)
10289 ("gtk:bin" ,gtk+ "bin")
10290 ("librsvg" ,librsvg)
10291 ("python-evdev" ,python-evdev)
10292 ("python-lxml" ,python-lxml)
10293 ("python-pycairo" ,python-pycairo)
10294 ("python-pygobject" ,python-pygobject)))
10295 (arguments
10296 `(#:imported-modules ((guix build python-build-system)
10297 ,@%meson-build-system-modules)
10298 #:modules (((guix build python-build-system) #:prefix python:)
10299 (guix build meson-build-system)
10300 (guix build utils))
10301 #:phases
10302 (modify-phases %standard-phases
10303 (add-after 'unpack 'dont-update-gtk-icon-cache
10304 (lambda _
10305 (substitute* "meson.build"
10306 (("meson.add_install_script('meson_install.sh')") ""))
10307 #t))
10308 ;; TODO: Switch to wrap-script when it is fixed.
10309 (add-after 'install 'wrap-python
10310 (assoc-ref python:%standard-phases 'wrap))
10311 (add-after 'wrap-python 'wrap
10312 (lambda* (#:key outputs #:allow-other-keys)
10313 (wrap-program
10314 (string-append (assoc-ref outputs "out" )"/bin/piper")
10315 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10316 #t)))))
10317 (home-page "https://github.com/libratbag/piper/")
10318 (synopsis "Configure bindings and LEDs on gaming mice")
10319 (description "Piper is a GTK+ application for configuring gaming mice with
10320 onboard configuration for key bindings via libratbag. Piper requires
10321 a @command{ratbagd} daemon running with root privileges. It can be run
10322 manually as root, but is preferably configured as a DBus service that can
10323 launch on demand. This can be configured by enabling the following service,
10324 provided there is a DBus service present:
10325
10326 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10327 (license license:gpl2)))
10328
10329 (define-public parlatype
10330 ;; This is one commit away from 2.0, because the latter introduced
10331 ;; a regression in ASR.
10332 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
10333 (revision "0"))
10334 (package
10335 (name "parlatype")
10336 (version (git-version "2.0" revision commit))
10337 (source
10338 (origin
10339 (method git-fetch)
10340 (uri (git-reference
10341 (url "https://github.com/gkarsay/parlatype.git")
10342 (commit commit)))
10343 (file-name (git-file-name name version))
10344 (sha256
10345 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10346 (build-system meson-build-system)
10347 (arguments
10348 `(#:glib-or-gtk? #t
10349 #:tests? #f ;require internet access
10350 #:phases
10351 (modify-phases %standard-phases
10352 (add-after 'install 'wrap-parlatype
10353 ;; Add gstreamer plugin provided in this package to system's
10354 ;; plugins.
10355 (lambda* (#:key outputs #:allow-other-keys)
10356 (let* ((out (assoc-ref outputs "out"))
10357 (gst-plugin-path (string-append
10358 out "/lib/gstreamer-1.0/"
10359 ":"
10360 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10361 (wrap-program (string-append out "/bin/parlatype")
10362 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10363 #t)))))
10364 (native-inputs
10365 `(("appstream-glib" ,appstream-glib)
10366 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10367 ("gettext" ,gettext-minimal)
10368 ("glib" ,glib "bin") ;for glib-compile-resources
10369 ("pkg-config" ,pkg-config)
10370 ("yelp-tools" ,yelp-tools)))
10371 (inputs
10372 `(("gst-plugins-base" ,gst-plugins-base)
10373 ("gst-plugins-good" ,gst-plugins-good)
10374 ("gstreamer" ,gstreamer)
10375 ("gtk+" ,gtk+)
10376 ("pocketsphinx" ,pocketsphinx)
10377 ("pulseaudio" ,pulseaudio)
10378 ("sphinxbase" ,sphinxbase)))
10379 (home-page "http://gkarsay.github.io/parlatype/")
10380 (synopsis "GNOME audio player for transcription")
10381 (description "Parlatype is an audio player for the GNOME desktop
10382 environment. Its main purpose is the manual transcription of spoken
10383 audio files.")
10384 (license license:gpl3+))))
10385
10386 (define-public jsonrpc-glib
10387 (package
10388 (name "jsonrpc-glib")
10389 (version "3.34.0")
10390 (source (origin
10391 (method url-fetch)
10392 (uri (string-append "mirror://gnome/sources/" name "/"
10393 (version-major+minor version) "/"
10394 name "-" version ".tar.xz"))
10395 (sha256
10396 (base32
10397 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10398 (build-system meson-build-system)
10399 (inputs
10400 `(("json-glib" ,json-glib)
10401 ("glib" ,glib)))
10402 (native-inputs
10403 `(("pkg-config" ,pkg-config)
10404 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10405 ("gobject-introspection" ,gobject-introspection)
10406 ("vala" ,vala)))
10407 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10408 (synopsis "JSON-RPC library for GLib")
10409 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10410 peers in either a synchronous or asynchronous fashion. It also allows
10411 communicating using the GVariant serialization format instead of JSON when
10412 both peers support it. You might want that when communicating on a single
10413 host to avoid parser overhead and memory-allocator fragmentation.")
10414 (license license:lgpl2.1+)))
10415
10416 (define-public feedbackd
10417 (package
10418 (name "feedbackd")
10419 (version "0.0.0+git20200527")
10420 (source (origin
10421 (method git-fetch)
10422 (uri (git-reference
10423 (url "https://source.puri.sm/Librem5/feedbackd.git")
10424 (commit (string-append "v" version))))
10425 (file-name (git-file-name name version))
10426 (sha256
10427 (base32
10428 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
10429 (build-system meson-build-system)
10430 (native-inputs
10431 `(("glib:bin" ,glib "bin")
10432 ("gobject-introspection" ,gobject-introspection)
10433 ("pkg-config" ,pkg-config)
10434 ("vala" ,vala)))
10435 (inputs
10436 `(("dbus" ,dbus)
10437 ("gsound" ,gsound)
10438 ("json-glib" ,json-glib)
10439 ("libgudev" ,libgudev)))
10440 (propagated-inputs
10441 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
10442 (synopsis "Haptic/visual/audio feedback via DBus")
10443 (description "Feedbackd provides a DBus daemon to act on events to provide
10444 haptic, visual and audio feedback. It offers the libfeedbackd library and
10445 GObject introspection bindings.")
10446 (home-page "https://source.puri.sm/Librem5/feedbackd")
10447 (license (list license:lgpl2.1+ ; libfeedbackd
10448 license:lgpl3+)))) ; the rest
10449
10450 (define-public sysprof
10451 (package
10452 (name "sysprof")
10453 (version "3.34.1")
10454 (source (origin
10455 (method url-fetch)
10456 (uri (string-append "mirror://gnome/sources/" name "/"
10457 (version-major+minor version) "/"
10458 name "-" version ".tar.xz"))
10459 (sha256
10460 (base32
10461 "1l4kr1av7933vb4zql9c5lgzivlw64hyky4nr8xin1v5if6vnjw4"))))
10462 (build-system meson-build-system)
10463 (arguments
10464 `(#:configure-flags
10465 (list (string-append "-Dsystemdunitdir="
10466 %output
10467 "/share/systemd"))
10468 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
10469 #:phases
10470 (modify-phases %standard-phases
10471 (add-after 'unpack 'patch-install-script
10472 (lambda _
10473 (substitute* "build-aux/meson/post_install.sh"
10474 (("gtk-update-icon-cache") "true")
10475 (("update-desktop-database") "true"))
10476 #t)))))
10477 (inputs
10478 `(("glib" ,glib)
10479 ("gtk+" ,gtk+)
10480 ("libdazzle" ,libdazzle)
10481 ("polkit" ,polkit)))
10482 (native-inputs
10483 `(("gettext" ,gettext-minimal)
10484 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
10485 ("itstool" ,itstool)
10486 ("pkg-config" ,pkg-config)
10487 ("xmllint" ,libxml2)))
10488 (home-page "http://www.sysprof.com/")
10489 (synopsis "System-wide performance profiler")
10490 (description "Sysprof is a sampling profiler that uses a kernel module
10491 to generate stacktraces which are then interpreted by the userspace program
10492 @command{sysprof}.")
10493 (license license:gpl3+)))
10494
10495 (define-public gnome-builder
10496 (package
10497 (name "gnome-builder")
10498 (version "3.36.1")
10499 (source (origin
10500 (method url-fetch)
10501 (uri (string-append "mirror://gnome/sources/" name "/"
10502 (version-major+minor version) "/"
10503 name "-" version ".tar.xz"))
10504 (sha256
10505 (base32
10506 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
10507 (build-system meson-build-system)
10508 (arguments
10509 `(#:configure-flags (list "-Dnetwork_tests=false"
10510 ;; TODO: Enable all plugins...
10511 "-Dplugin_clang=false"
10512 "-Dplugin_flatpak=false"
10513 "-Dplugin_glade=false"
10514 ;; ... except this one.
10515 "-Dplugin_update_manager=false")
10516 #:phases
10517 (modify-phases %standard-phases
10518 (add-after 'unpack 'patch-meson
10519 (lambda* (#:key inputs #:allow-other-keys)
10520 (substitute* "build-aux/meson/post_install.py"
10521 (("gtk-update-icon-cache") "true")
10522 (("update-desktop-database") "true"))
10523 (substitute* "src/libide/meson.build"
10524 (("/usr/lib")
10525 (string-append (assoc-ref inputs "python-pygobject")
10526 "/lib")))
10527 #t))
10528 (add-before 'check 'pre-check
10529 (lambda _
10530 (system "Xvfb :1 &")
10531 (setenv "DISPLAY" ":1")
10532 #t)))))
10533 (inputs
10534 `(("devhelp" ,devhelp)
10535 ("gspell" ,gspell)
10536 ("gtk+" ,gtk+)
10537 ("json-glib" ,json-glib)
10538 ("jsonrpc-glib" ,jsonrpc-glib)
10539 ("libdazzle" ,libdazzle)
10540 ("libgit2-glib" ,libgit2-glib)
10541 ("libpeas" ,libpeas)
10542 ("python-pygobject" ,python-pygobject)
10543 ("sysprof" ,sysprof)
10544 ("template-glib" ,template-glib)
10545 ("vte" ,vte)
10546 ("webkitgtk" ,webkitgtk)))
10547 (propagated-inputs
10548 `(("gtksourceview" ,gtksourceview))) ;needed for settings
10549 (native-inputs
10550 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10551 ("glib:bin" ,glib "bin")
10552 ("gettext" ,gettext-minimal)
10553 ("pkg-config" ,pkg-config)
10554 ("vala" ,vala)
10555 ("xorg-server" ,xorg-server-for-tests)))
10556 (home-page "https://wiki.gnome.org/Apps/Builder")
10557 (synopsis "Toolsmith for GNOME-based applications")
10558 (description "Builder aims to be an IDE for writing GNOME-based software.")
10559 (license license:gpl3+)))