gnu: GNOME: Only include Eye of GNOME on x86_64-linux.
[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 ng0 <ng0@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 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;;
54 ;;; This file is part of GNU Guix.
55 ;;;
56 ;;; GNU Guix is free software; you can redistribute it and/or modify it
57 ;;; under the terms of the GNU General Public License as published by
58 ;;; the Free Software Foundation; either version 3 of the License, or (at
59 ;;; your option) any later version.
60 ;;;
61 ;;; GNU Guix is distributed in the hope that it will be useful, but
62 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
63 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
64 ;;; GNU General Public License for more details.
65 ;;;
66 ;;; You should have received a copy of the GNU General Public License
67 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
68
69 (define-module (gnu packages gnome)
70 #:use-module (gnu packages)
71 #:use-module (gnu packages admin)
72 #:use-module (gnu packages aspell)
73 #:use-module (gnu packages autotools)
74 #:use-module (gnu packages avahi)
75 #:use-module (gnu packages backup)
76 #:use-module (gnu packages base)
77 #:use-module (gnu packages bash)
78 #:use-module (gnu packages bison)
79 #:use-module (gnu packages boost)
80 #:use-module (gnu packages build-tools)
81 #:use-module (gnu packages calendar)
82 #:use-module (gnu packages cdrom)
83 #:use-module (gnu packages check)
84 #:use-module (gnu packages cmake)
85 #:use-module (gnu packages compression)
86 #:use-module (gnu packages crates-io)
87 #:use-module (gnu packages cups)
88 #:use-module (gnu packages curl)
89 #:use-module (gnu packages cyrus-sasl)
90 #:use-module (gnu packages databases)
91 #:use-module (gnu packages dbm)
92 #:use-module (gnu packages djvu)
93 #:use-module (gnu packages dns)
94 #:use-module (gnu packages docbook)
95 #:use-module (gnu packages documentation)
96 #:use-module (gnu packages enchant)
97 #:use-module (gnu packages flex)
98 #:use-module (gnu packages fonts)
99 #:use-module (gnu packages file-systems)
100 #:use-module (gnu packages fontutils)
101 #:use-module (gnu packages freedesktop)
102 #:use-module (gnu packages game-development)
103 #:use-module (gnu packages gettext)
104 #:use-module (gnu packages ghostscript)
105 #:use-module (gnu packages gl)
106 #:use-module (gnu packages glib)
107 #:use-module (gnu packages gnupg)
108 #:use-module (gnu packages gnuzilla)
109 #:use-module (gnu packages geo)
110 #:use-module (gnu packages gperf)
111 #:use-module (gnu packages graphviz)
112 #:use-module (gnu packages gstreamer)
113 #:use-module (gnu packages gtk)
114 #:use-module (gnu packages guile)
115 #:use-module (gnu packages ibus)
116 #:use-module (gnu packages icu4c)
117 #:use-module (gnu packages image)
118 #:use-module (gnu packages imagemagick)
119 #:use-module (gnu packages inkscape)
120 #:use-module (gnu packages iso-codes)
121 #:use-module (gnu packages kerberos)
122 #:use-module (gnu packages libcanberra)
123 #:use-module (gnu packages libunistring)
124 #:use-module (gnu packages libunwind)
125 #:use-module (gnu packages libusb)
126 #:use-module (gnu packages linux)
127 #:use-module (gnu packages lirc)
128 #:use-module (gnu packages lua)
129 #:use-module (gnu packages mail)
130 #:use-module (gnu packages mp3)
131 #:use-module (gnu packages multiprecision)
132 #:use-module (gnu packages music)
133 #:use-module (gnu packages ncurses)
134 #:use-module (gnu packages nettle)
135 #:use-module (gnu packages networking)
136 #:use-module (gnu packages ninja)
137 #:use-module (gnu packages nss)
138 #:use-module (gnu packages openldap)
139 #:use-module (gnu packages password-utils)
140 #:use-module (gnu packages pcre)
141 #:use-module (gnu packages pdf)
142 #:use-module (gnu packages perl)
143 #:use-module (gnu packages photo)
144 #:use-module (gnu packages pkg-config)
145 #:use-module (gnu packages polkit)
146 #:use-module (gnu packages popt)
147 #:use-module (gnu packages pretty-print)
148 #:use-module (gnu packages pulseaudio)
149 #:use-module (gnu packages python)
150 #:use-module (gnu packages python-crypto)
151 #:use-module (gnu packages python-web)
152 #:use-module (gnu packages python-xyz)
153 #:use-module (gnu packages rdesktop)
154 #:use-module (gnu packages readline)
155 #:use-module (gnu packages ruby)
156 #:use-module (gnu packages rust)
157 #:use-module (gnu packages samba)
158 #:use-module (gnu packages scanner)
159 #:use-module (gnu packages selinux)
160 #:use-module (gnu packages slang)
161 #:use-module (gnu packages speech)
162 #:use-module (gnu packages spice)
163 #:use-module (gnu packages sqlite)
164 #:use-module (gnu packages ssh)
165 #:use-module (gnu packages tex)
166 #:use-module (gnu packages time)
167 #:use-module (gnu packages tls)
168 #:use-module (gnu packages version-control)
169 #:use-module (gnu packages video)
170 #:use-module (gnu packages virtualization)
171 #:use-module (gnu packages vpn)
172 #:use-module (gnu packages web)
173 #:use-module (gnu packages webkit)
174 #:use-module (gnu packages xdisorg)
175 #:use-module (gnu packages xiph)
176 #:use-module (gnu packages xml)
177 #:use-module (gnu packages xorg)
178 #:use-module (gnu artwork)
179 #:use-module (guix build-system cargo)
180 #:use-module (guix build-system cmake)
181 #:use-module (guix build-system glib-or-gtk)
182 #:use-module (guix build-system gnu)
183 #:use-module (guix build-system meson)
184 #:use-module (guix build-system python)
185 #:use-module (guix build-system trivial)
186 #:use-module (guix download)
187 #:use-module (guix git-download)
188 #:use-module ((guix licenses) #:prefix license:)
189 #:use-module (guix packages)
190 #:use-module (guix utils)
191 #:use-module (guix gexp)
192 #:use-module (guix monads)
193 #:use-module (guix store)
194 #:use-module (ice-9 match)
195 #:use-module (srfi srfi-1))
196
197 (define-public brasero
198 (package
199 (name "brasero")
200 (version "3.12.2")
201 (source (origin
202 (method url-fetch)
203 (uri (string-append "mirror://gnome/sources/brasero/"
204 (version-major+minor version) "/"
205 "brasero-" version ".tar.xz"))
206 (sha256
207 (base32
208 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
209 (build-system glib-or-gtk-build-system)
210 (arguments
211 `(#:configure-flags (list
212 (string-append "--with-girdir="
213 (assoc-ref %outputs "out")
214 "/share/gir-1.0")
215 (string-append "--with-typelibdir="
216 (assoc-ref %outputs "out")
217 "/lib/girepository-1.0"))
218 #:phases
219 (modify-phases %standard-phases
220 (add-before 'configure 'embed-growisofs
221 (lambda* (#:key inputs #:allow-other-keys)
222 (substitute* "plugins/growisofs/burn-growisofs.c"
223 (("\"growisofs") (string-append "\"" (which "growisofs"))))
224 #t)))))
225 (propagated-inputs
226 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
227 (native-inputs
228 `(("intltool" ,intltool)
229 ("itstool" ,itstool)
230 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
231 ("gobject-introspection" ,gobject-introspection)
232 ("pkg-config" ,pkg-config)))
233 (inputs
234 `(("dvd+rw-tools" ,dvd+rw-tools)
235 ("glib" ,glib)
236 ("gnome-doc-utils" ,gnome-doc-utils)
237 ("gstreamer" ,gstreamer)
238 ("gst-plugins-base" ,gst-plugins-base)
239 ("gtk+" ,gtk+)
240 ("libcanberra" ,libcanberra)
241 ("libice" ,libice)
242 ("libnotify" ,libnotify)
243 ("libsm" ,libsm)
244 ("libxml2" ,libxml2)
245 ("totem-pl-parser" ,totem-pl-parser)))
246 (home-page "https://wiki.gnome.org/Apps/Brasero")
247 (synopsis "CD/DVD burning tool for Gnome")
248 (description "Brasero is an application to burn CD/DVD for the Gnome
249 Desktop. It is designed to be as simple as possible and has some unique
250 features to enable users to create their discs easily and quickly.")
251 (license license:gpl2+)))
252
253 (define-public notification-daemon
254 (package
255 (name "notification-daemon")
256 (version "3.20.0")
257 (source
258 (origin
259 (method url-fetch)
260 (uri
261 (string-append "mirror://gnome/sources/" name "/"
262 (version-major+minor version) "/"
263 name "-" version ".tar.xz"))
264 (sha256
265 (base32
266 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
267 (build-system glib-or-gtk-build-system)
268 (native-inputs
269 `(("intltool" ,intltool)
270 ("pkg-config" ,pkg-config)))
271 (inputs
272 `(("glib" ,glib)
273 ("gtk+" ,gtk+)
274 ("x11" ,libx11)))
275 (synopsis "Notification Daemon for GNOME Desktop")
276 (description "Notification-Daemon is the server implementation of the
277 freedesktop.org desktop notification specification.")
278 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
279 (license license:gpl2+)))
280
281 (define-public mm-common
282 (package
283 (name "mm-common")
284 (version "1.0.0")
285 (source (origin
286 (method url-fetch)
287 (uri (string-append "mirror://gnome/sources/" name "/"
288 (version-major+minor version) "/"
289 name "-" version ".tar.xz"))
290 (sha256
291 (base32
292 "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr"))))
293 (build-system meson-build-system)
294 (arguments
295 `(#:phases
296 (modify-phases %standard-phases
297 (add-after 'unpack 'patch
298 (lambda* (#:key inputs #:allow-other-keys)
299 (substitute* "util/mm-common-prepare.in"
300 (("ln") (string-append (assoc-ref inputs "coreutils")
301 "/bin/ln"))
302 (("cp") (string-append (assoc-ref inputs "coreutils")
303 "/bin/cp"))
304 (("sed") (string-append (assoc-ref inputs "sed")
305 "/bin/sed"))
306 (("cat") (string-append (assoc-ref inputs "coreutils")
307 "/bin/cat")))
308 #t)))))
309 (native-inputs
310 `(("coreutils" ,coreutils)
311 ("gettext" ,gettext-minimal)
312 ("pkg-config" ,pkg-config)
313 ("sed" ,sed)))
314 (inputs
315 `(("python" ,python)))
316 (synopsis "Module of GNOME C++ bindings")
317 (description "The mm-common module provides the build infrastructure
318 and utilities shared among the GNOME C++ binding libraries. Release
319 archives of mm-common include the Doxygen tag file for the GNU C++
320 Library reference documentation.")
321 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
322 (license license:gpl2+)))
323
324 (define-public phodav
325 (package
326 (name "phodav")
327 (version "2.4")
328 (source (origin
329 (method url-fetch)
330 (uri (string-append "mirror://gnome/sources/" name "/"
331 (version-major+minor version) "/"
332 name "-" version ".tar.xz"))
333 (sha256
334 (base32
335 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
336 (build-system meson-build-system)
337 (native-inputs
338 `(("gettext" ,gettext-minimal)
339 ("glib:bin" ,glib "bin")
340 ("gtk-doc" ,gtk-doc)
341 ("pkg-config" ,pkg-config)))
342 (inputs
343 `(("avahi" ,avahi)
344 ("libgudev" ,libgudev)
345 ("libsoup" ,libsoup)))
346 (synopsis "WebDav server implementation using libsoup")
347 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
348 but it is generic enough to be reused in other projects,
349 in particular in the GNOME desktop.")
350 (home-page "https://wiki.gnome.org/phodav")
351 (license license:lgpl2.1+)))
352
353 (define-public gnome-color-manager
354 (package
355 (name "gnome-color-manager")
356 (version "3.32.0")
357 (source (origin
358 (method url-fetch)
359 (uri (string-append "mirror://gnome/sources/" name "/"
360 (version-major+minor version) "/"
361 name "-" version ".tar.xz"))
362 (sha256
363 (base32
364 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
365 (build-system meson-build-system)
366 (arguments
367 `(#:glib-or-gtk? #t
368 #:phases
369 (modify-phases %standard-phases
370 (add-before
371 'check 'pre-check
372 (lambda _
373 ;; Tests require a running X server.
374 (system "Xvfb :1 &")
375 (setenv "DISPLAY" ":1")
376 #t)))))
377 (native-inputs
378 `(("desktop-file-utils" ,desktop-file-utils)
379 ("gettext" ,gettext-minimal)
380 ("glib:bin" ,glib "bin")
381 ("gtk+:bin" ,gtk+ "bin")
382 ("itstool" ,itstool)
383 ("pkg-config" ,pkg-config)
384 ("xorg-server" ,xorg-server-for-tests)))
385 (inputs
386 `(("adwaita-icon-theme" ,adwaita-icon-theme)
387 ("appstream-glib" ,appstream-glib)
388 ("colord-gtk" ,colord-gtk)
389 ("exiv2" ,exiv2)
390 ("gnome-desktop" ,gnome-desktop)
391 ("libcanberra" ,libcanberra)
392 ("libexif" ,libexif)
393 ("libtiff" ,libtiff)
394 ("libxrandr" ,libxrandr)
395 ("libxtst" ,libxtst)
396 ("libxxf86vm" ,libxxf86vm)
397 ("vte" ,vte)
398 ("xorgproto" ,xorgproto)))
399 (synopsis "Color profile manager for the GNOME desktop")
400 (description "GNOME Color Manager is a session framework that makes
401 it easy to manage, install and generate color profiles
402 in the GNOME desktop.")
403 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
404 (license license:gpl2+)))
405
406 (define-public gnome-online-miners
407 (package
408 (name "gnome-online-miners")
409 (version "3.34.0")
410 (source (origin
411 (method url-fetch)
412 (uri (string-append "mirror://gnome/sources/" name "/"
413 (version-major+minor version) "/"
414 name "-" version ".tar.xz"))
415 (sha256
416 (base32
417 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
418 (build-system glib-or-gtk-build-system)
419 (native-inputs
420 `(("gettext" ,gettext-minimal)
421 ("glib:bin" ,glib "bin")
422 ("gobject-introspection" ,gobject-introspection)
423 ("gtk+:bin" ,gtk+ "bin")
424 ("pkg-config" ,pkg-config)))
425 (inputs
426 `(("gnome-online-accounts" ,gnome-online-accounts)
427 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
428 ("grilo" ,grilo)
429 ("libgdata" ,libgdata)
430 ("libgfbgraph" ,gfbgraph)
431 ("libzapojit" ,libzapojit)
432 ("rest" ,rest)
433 ("tracker" ,tracker)))
434 (synopsis "Web Crawlers for GNOME")
435 (description "GNOME Online Miners provides a set of crawlers that
436 go through your online content and index them locally in Tracker.
437 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
438 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
439 (license license:gpl2+)))
440
441 (define-public gssdp
442 (package
443 (name "gssdp")
444 (version "1.2.2")
445 (source (origin
446 (method url-fetch)
447 (uri (string-append "mirror://gnome/sources/" name "/"
448 (version-major+minor version) "/"
449 name "-" version ".tar.xz"))
450 (sha256
451 (base32
452 "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya"))))
453 (build-system meson-build-system)
454 (native-inputs
455 `(("gettext" ,gettext-minimal)
456 ("glib:bin" ,glib "bin")
457 ("gobject-introspection" ,gobject-introspection)
458 ("gtk-doc" ,gtk-doc)
459 ("pkg-config" ,pkg-config)
460 ("vala" ,vala)))
461 (inputs
462 `(("gtk+" ,gtk+)
463 ("libsoup" ,libsoup)))
464 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
465 Protocol} for GNOME")
466 (description "This package provides a library to handle resource discovery
467 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
468 a debugging tool, @command{gssdp-device-sniffer}.")
469 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
470 (license license:lgpl2.0+)))
471
472 (define-public gupnp
473 (package
474 (name "gupnp")
475 (version "1.2.2")
476 (source (origin
477 (method url-fetch)
478 (uri (string-append "mirror://gnome/sources/" name "/"
479 (version-major+minor version) "/"
480 name "-" version ".tar.xz"))
481 (sha256
482 (base32
483 "12cr3isww4zl0d4himpd2fhl2wmy3jh8sbxp4snp51sw7savv04s"))))
484 (build-system meson-build-system)
485 (native-inputs
486 `(("gettext" ,gettext-minimal)
487 ("glib:bin" ,glib "bin")
488 ("gobject-introspection" ,gobject-introspection)
489 ("gtk-doc" ,gtk-doc)
490 ("pkg-config" ,pkg-config)
491 ("vala" ,vala)))
492 (inputs
493 `(("gssdp" ,gssdp)
494 ("gtk+" ,gtk+)
495 ("libsoup" ,libsoup)))
496 (synopsis "PnP API for GNOME")
497 (description "This package provides GUPnP, an object-oriented framework
498 for creating UPnP devices and control points, written in C using
499 @code{GObject} and @code{libsoup}.")
500 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
501 (license license:lgpl2.0+)))
502
503 (define-public gupnp-dlna
504 (package
505 (name "gupnp-dlna")
506 (version "0.10.5")
507 (source (origin
508 (method url-fetch)
509 (uri (string-append "mirror://gnome/sources/" name "/"
510 (version-major+minor version) "/"
511 name "-" version ".tar.xz"))
512 (sha256
513 (base32
514 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
515 (build-system gnu-build-system)
516 (native-inputs
517 `(("gettext" ,gettext-minimal)
518 ("glib:bin" ,glib "bin")
519 ("gobject-introspection" ,gobject-introspection)
520 ("gtk-doc" ,gtk-doc)
521 ("libxml" ,libxml2)
522 ("pkg-config" ,pkg-config)
523 ("vala" ,vala)))
524 (inputs
525 `(("gstreamer" ,gstreamer)
526 ("gupnp" ,gupnp)))
527 (propagated-inputs
528 `(("gst-plugins-base" ,gst-plugins-base)
529 ("gst-plugins-good" ,gst-plugins-good)))
530 (synopsis "GUPnP DLNA for GNOME")
531 (description "This package provides a small utility library to
532 support DLNA-related tasks such as media profile guessing, transcoding to a
533 given profile, etc. DLNA is a subset of UPnP A/V.")
534 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
535 (license license:lgpl2.0+)))
536
537 (define-public gupnp-av
538 (package
539 (name "gupnp-av")
540 (version "0.12.11")
541 (source (origin
542 (method url-fetch)
543 (uri (string-append "mirror://gnome/sources/" name "/"
544 (version-major+minor version) "/"
545 name "-" version ".tar.xz"))
546 (sha256
547 (base32
548 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
549 (build-system gnu-build-system)
550 (native-inputs
551 `(("gettext" ,gettext-minimal)
552 ("glib:bin" ,glib "bin")
553 ("gobject-introspection" ,gobject-introspection)
554 ("gtk-doc" ,gtk-doc)
555 ("libxml" ,libxml2)
556 ("pkg-config" ,pkg-config)))
557 (inputs
558 `(("gtk+" ,gtk+)
559 ("gupnp" ,gupnp)))
560 (synopsis "GUPnP A/V for GNOME")
561 (description "This package provides a small library for handling
562 and implementation of UPnP A/V profiles.")
563 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
564 (license license:lgpl2.0+)))
565
566 (define-public libmediaart
567 (package
568 (name "libmediaart")
569 (version "1.9.4")
570 (source (origin
571 (method url-fetch)
572 (uri (string-append "mirror://gnome/sources/" name "/"
573 (version-major+minor version) "/"
574 name "-" version ".tar.xz"))
575 (sha256
576 (base32
577 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
578 (build-system gnu-build-system)
579 (native-inputs
580 `(("glib:bin" ,glib "bin")
581 ("pkg-config" ,pkg-config)))
582 (inputs
583 `(("gdk-pixbuf" ,gdk-pixbuf)
584 ("gettext" ,gettext-minimal)
585 ("gobject-introspection" ,gobject-introspection)
586 ("gtk+:doc", gtk+ "doc")
587 ("vala" ,vala)))
588 (synopsis "Media art library for the GNOME desktop")
589 (description
590 "The libmediaart library is the foundation for media art caching,
591 extraction, and lookup for applications on the desktop.")
592 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
593 (license license:lgpl2.1+)))
594
595 (define-public gnome-initial-setup
596 (package
597 (name "gnome-initial-setup")
598 (version "3.32.1")
599 (source (origin
600 (method url-fetch)
601 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
602 (version-major+minor version)
603 "/gnome-initial-setup-" version ".tar.xz"))
604 (sha256
605 (base32
606 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
607 (build-system meson-build-system)
608 (arguments
609 '(#:configure-flags '(;; Enable camera support for user selfie.
610 "-Dcheese=auto"
611 "-Dsystemd=false")
612 #:phases (modify-phases %standard-phases
613 (add-after 'unpack 'set-gkbd-file-name
614 (lambda* (#:key inputs #:allow-other-keys)
615 ;; Allow the "Preview" button in the keyboard layout
616 ;; selection dialog to display the layout.
617 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
618 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
619 (("\"gkbd-keyboard-display")
620 (string-append "\"" libgnomekbd
621 "/bin/gkbd-keyboard-display")))
622 #t))))))
623 (native-inputs
624 `(("gettext" ,gettext-minimal)
625 ("glib:bin" ,glib "bin")
626 ("gobject-introspection" ,gobject-introspection)
627 ("gtk+:bin" ,gtk+ "bin")
628 ("pkg-config" ,pkg-config)))
629 (inputs
630 `(("accountsservice" ,accountsservice)
631 ;("adwaita-icon-theme" ,adwaita-icon-theme)
632 ("gdm" ,gdm)
633 ("geoclue" ,geoclue)
634 ("gnome-desktop" ,gnome-desktop)
635 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
636 ("gnome-online-accounts" ,gnome-online-accounts)
637 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
638 ("gstreamer" ,gstreamer)
639 ("ibus" ,ibus)
640 ("json-glib" ,json-glib)
641 ("krb5" ,mit-krb5)
642 ("libgweather" ,libgweather)
643 ("libsecret" ,libsecret)
644 ("network-manager" ,network-manager)
645 ("network-manager-applet" ,network-manager-applet)
646 ("packagekit" ,packagekit)
647 ("polkit" ,polkit)
648 ("pwquality" ,libpwquality)
649 ("rest" ,rest)
650 ("upower" ,upower)
651 ("webkitgtk" ,webkitgtk)
652 ("libgnomekbd" ,libgnomekbd)))
653 (synopsis "Initial setup wizard for GNOME desktop")
654 (description "This package provides a set-up wizard when a
655 user logs into GNOME for the first time. It typically provides a
656 tour of all gnome components and allows the user to set them up.")
657 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
658 (license license:gpl2)))
659
660 (define-public gnome-user-share
661 (package
662 (name "gnome-user-share")
663 (version "3.33.1")
664 (source (origin
665 (method url-fetch)
666 (uri (string-append "mirror://gnome/sources/" name "/"
667 (version-major+minor version) "/"
668 name "-" version ".tar.xz"))
669 (sha256
670 (base32
671 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
672 (build-system meson-build-system)
673 (arguments
674 `(#:glib-or-gtk? #t
675 #:configure-flags
676 `("-Dsystemd=false"
677 ;; Enable nautilus extension for file sharing.
678 "-Dnautilus_extension=true")))
679 (native-inputs
680 `(("gettext" ,gettext-minimal)
681 ("glib:bin" ,glib "bin")
682 ("gobject-introspection" ,gobject-introspection)
683 ("gtk+:bin" ,gtk+ "bin")
684 ("pkg-config" ,pkg-config)
685 ("yelp-tools" ,yelp-tools)))
686 (inputs
687 `(("glib" ,glib)
688 ("gnome-bluetooth" ,gnome-bluetooth)
689 ("gtk+" ,gtk+)
690 ("libcanberra" ,libcanberra)
691 ("libnotify" ,libnotify)
692 ("nautilus" ,nautilus))) ; For nautilus extension.
693 (synopsis "File sharing for GNOME desktop")
694 (description "GNOME User Share is a small package that binds together
695 various free software projects to bring easy to use user-level file
696 sharing to the masses.")
697 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
698 (license license:gpl2+)))
699
700 (define-public sushi
701 (package
702 (name "sushi")
703 (version "3.32.1")
704 (source (origin
705 (method url-fetch)
706 (uri (string-append "mirror://gnome/sources/" name "/"
707 (version-major+minor version) "/"
708 name "-" version ".tar.xz"))
709 (sha256
710 (base32
711 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
712 (build-system meson-build-system)
713 (arguments
714 `(#:glib-or-gtk? #t
715 #:phases
716 (modify-phases %standard-phases
717 (add-after 'glib-or-gtk-wrap 'wrap-typelib
718 (lambda* (#:key outputs #:allow-other-keys)
719 (let ((prog (string-append (assoc-ref outputs "out")
720 "/bin/sushi")))
721 ;; Put existing typelibs before sushi's deps, so as to correctly
722 ;; infer gdk-pixbuf
723 (wrap-program prog
724 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
725 #t))))))
726 (native-inputs
727 `(("glib:bin" ,glib "bin")
728 ("gettext" ,gettext-minimal)
729 ("gobject-introspection" ,gobject-introspection)
730 ("pkg-config" ,pkg-config)))
731 (inputs
732 `(("clutter" ,clutter)
733 ("clutter-gst" ,clutter-gst)
734 ("clutter-gtk" ,clutter-gtk)
735 ("evince" ,evince) ; For file previewing.
736 ("freetype" ,freetype)
737 ("gdk-pixbuf" ,gdk-pixbuf)
738 ("gjs" ,gjs)
739 ("gst-plugins-base" ,gst-plugins-base)
740 ("gstreamer" ,gstreamer)
741 ("gtksourceview" ,gtksourceview-3)
742 ("harfbuzz" ,harfbuzz)
743 ("libepoxy" ,libepoxy)
744 ("libmusicbrainz" ,libmusicbrainz)
745 ("libxml2" ,libxml2)
746 ("neon" ,neon)
747 ("webkitgtk" ,webkitgtk)))
748 (synopsis "File previewer for the GNOME desktop")
749 (description "Sushi is a DBus-activated service that allows applications to
750 preview files on the GNOME desktop.")
751 (home-page "https://gitlab.gnome.org/GNOME/sushi")
752 (license license:gpl2+)))
753
754 (define-public rygel
755 (package
756 (name "rygel")
757 (version "0.38.3")
758 (source (origin
759 (method url-fetch)
760 (uri (string-append "mirror://gnome/sources/" name "/"
761 (version-major+minor version) "/"
762 name "-" version ".tar.xz"))
763 (sha256
764 (base32
765 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
766 (build-system gnu-build-system)
767 (native-inputs
768 `(("gettext" ,gettext-minimal)
769 ("gobject-introspection" ,gobject-introspection)
770 ("gtk-doc" ,gtk-doc)
771 ("pkg-config" ,pkg-config)
772 ("vala" ,vala)))
773 (inputs
774 `(("gdk-pixbuf" ,gdk-pixbuf)
775 ("gssdp" ,gssdp)
776 ("gstreamer" ,gstreamer)
777 ("gst-plugins-base" ,gst-plugins-base)
778 ("gtk+" ,gtk+)
779 ("gupnp" ,gupnp)
780 ("gupnp-av" ,gupnp-av)
781 ("gupnp-dlna" ,gupnp-dlna)
782 ("libgee" ,libgee)
783 ("libmediaart" ,libmediaart)
784 ("libsoup" ,libsoup)
785 ("libxslt" ,libxslt)
786 ("libunistring" ,libunistring)
787 ("tracker" ,tracker)))
788 (synopsis "Share audio, video, and pictures with other devices")
789 (description
790 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
791 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
792 pictures, and to control a media player on your home network.
793
794 Rygel achieves interoperability with other devices by trying to conform to the
795 strict requirements of DLNA and by converting media on-the-fly to formats that
796 client devices can handle.")
797 (home-page "https://wiki.gnome.org/Projects/Rygel")
798 (license (list
799 ;; For logo (data/icons/*).
800 license:cc-by-sa3.0
801 ;; For all others.
802 license:lgpl2.1+))))
803
804 (define-public libnma
805 (package
806 (name "libnma")
807 (version "1.8.26")
808 (source (origin
809 (method url-fetch)
810 (uri (string-append "mirror://gnome/sources/" name "/"
811 (version-major+minor version) "/"
812 name "-" version ".tar.xz"))
813 (sha256
814 (base32
815 "1w9lld38risnk1krknfwln24kabdxnj274pyz4jhndphwigrshaf"))))
816 (build-system meson-build-system)
817 (arguments
818 `(#:glib-or-gtk? #t))
819 (native-inputs
820 `(("gettext" ,gettext-minimal)
821 ("glib:bin" ,glib "bin")
822 ("gtk-doc" ,gtk-doc)
823 ("gobject-introspection" ,gobject-introspection)
824 ("pkg-config" ,pkg-config)))
825 (inputs
826 `(("adwaita-icon-theme" ,adwaita-icon-theme)
827 ("gcr" ,gcr)
828 ("gtk+" ,gtk+)
829 ("iso-codes" ,iso-codes)
830 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
831 ("network-manager" ,network-manager)))
832 (synopsis "Network Manager's applet library")
833 (description "Libnma is an applet library for Network Manager. It was
834 initially part of network-manager-applet and has now become a separate
835 project.")
836 (home-page "https://gitlab.gnome.org/GNOME/libnma")
837
838 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
839 ;; "LGPL-2.1+".
840 (license license:gpl2+)))
841
842 (define-public gnome-menus
843 (package
844 (name "gnome-menus")
845 (version "3.32.0")
846 (source (origin
847 (method url-fetch)
848 (uri (string-append "mirror://gnome/sources/gnome-menus/"
849 (version-major+minor version) "/"
850 name "-" version ".tar.xz"))
851 (sha256
852 (base32
853 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
854 (build-system gnu-build-system)
855 (native-inputs
856 `(("gettext" ,gettext-minimal)
857 ("glib" ,glib)
858 ("pkg-config" ,pkg-config)))
859 (synopsis "Menu support for GNOME desktop")
860 (description "GNOME Menus contains the libgnome-menu library, the layout
861 configuration files for the GNOME menu, as well as a simple menu editor.")
862 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
863 (license license:lgpl2.0+)))
864
865 (define-public deja-dup
866 (package
867 (name "deja-dup")
868 (version "34.3")
869 (source (origin
870 (method url-fetch)
871 (uri "https://launchpadlibrarian.net/295170991/deja-dup-34.3.tar.xz")
872 (sha256
873 (base32
874 "1xqcr61hpbahbla7gdjn4ngjfz7w6f57y7f5pkb77yk05f60j2n9"))
875 (patches
876 (search-patches "deja-dup-use-ref-keyword-for-iter.patch"))))
877 (build-system glib-or-gtk-build-system)
878 (arguments
879 `(#:modules ((guix build gnu-build-system)
880 ((guix build cmake-build-system) #:prefix cmake:)
881 (guix build glib-or-gtk-build-system)
882 (guix build utils))
883 #:imported-modules (,@%glib-or-gtk-build-system-modules
884 (guix build cmake-build-system))
885 #:test-target "test"
886 #:configure-flags (list (string-append
887 "-DCMAKE_INSTALL_FULL_DATADIR=" %output)
888 (string-append
889 "-DCMAKE_INSTALL_LIBEXECDIR=" %output))
890 #:phases
891 (modify-phases %standard-phases
892 (add-after 'unpack 'patch-lockfile-deletion
893 (lambda rest
894 (substitute* "libdeja/tools/duplicity/DuplicityInstance.vala"
895 (("/bin/rm")
896 (which "rm")))))
897 (replace 'configure
898 (assoc-ref cmake:%standard-phases 'configure))
899 (delete 'check) ;; Fails due to issues with DBus
900 (add-after 'install 'wrap-deja-dup
901 (lambda* (#:key inputs outputs #:allow-other-keys)
902 (let ((python (assoc-ref inputs "python"))
903 (python-path (getenv "PYTHONPATH"))
904 (duplicity (assoc-ref inputs "duplicity"))
905 (out (assoc-ref outputs "out")))
906 (for-each
907 (lambda (program)
908 (wrap-program program
909 `("PATH" ":" prefix (,(string-append python "/bin")
910 ,(string-append duplicity "/bin"))))
911 (wrap-program program
912 `("PYTHONPATH" ":" prefix (,python-path))))
913
914 (find-files (string-append out "/bin")))
915 #t))))))
916 (inputs
917 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
918 ("gobject-introspection" ,gobject-introspection)
919 ("duplicity" ,duplicity)
920 ("python" ,python-2)
921 ("python-pygobject" ,python2-pygobject)
922 ("gtk+" ,gtk+)
923 ("libnotify" ,libnotify)
924 ("libpeas" ,libpeas)
925 ("libsecret" ,libsecret)
926 ("packagekit" ,packagekit)))
927 (native-inputs
928 `(("pkg-config" ,pkg-config)
929 ("vala" ,vala)
930 ("gettext" ,gettext-minimal)
931 ("itstool" ,itstool)
932 ("intltool" ,intltool)
933 ("cmake" ,cmake-minimal)))
934 (home-page "https://launchpad.net/deja-dup")
935 (synopsis "Simple backup tool, for regular encrypted backups")
936 (description
937 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
938 uses duplicity as the backend, which supports incremental backups and storage
939 either on a local, or remote machine via a number of methods.")
940 (license license:gpl3+)))
941
942 (define-public gnome-user-docs
943 (package
944 (name "gnome-user-docs")
945 (version "3.32.3")
946 (source
947 (origin
948 (method url-fetch)
949 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
950 (version-major+minor version)
951 "/gnome-user-docs-" version ".tar.xz"))
952 (sha256
953 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
954 (build-system gnu-build-system)
955 (native-inputs
956 `(("gettext" ,gettext-minimal)
957 ("itstool" ,itstool)
958 ("pkg-config" ,pkg-config)
959 ("xmllint" ,libxml2)))
960 (synopsis "User documentation for the GNOME desktop")
961 (description
962 "The GNOME User Documentation explains how to use the GNOME desktop and its
963 components. It covers usage and setup of the core GNOME programs by end-users
964 and system administrators.")
965 (home-page "https://live.gnome.org/DocumentationProject")
966 (license license:cc-by3.0)))
967
968 (define-public gnome-getting-started-docs
969 (package
970 (name "gnome-getting-started-docs")
971 (version "3.32.2")
972 (source
973 (origin
974 (method url-fetch)
975 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
976 (version-major+minor version)
977 "/gnome-getting-started-docs-" version ".tar.xz"))
978 (sha256
979 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
980 (build-system gnu-build-system)
981 (native-inputs
982 `(("gettext" ,gettext-minimal)
983 ("itstool" ,itstool)
984 ("pkg-config" ,pkg-config)
985 ("xmllint" ,libxml2)))
986 (synopsis "Help to get new users started with the GNOME desktop")
987 (description
988 "The GNOME Getting Started Documentation contains GNOME's intuitive
989 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
990
991 It is normally used together with @command{gnome-initial-setup}, but is also
992 useful as a tutorial and users' guide for new or less experienced users.")
993 (home-page "https://live.gnome.org/DocumentationProject")
994 (license license:cc-by-sa3.0)))
995
996 (define-public dia
997 ;; This version from GNOME's repository includes fixes for compiling with
998 ;; recent versions of the build tools. The latest activity on the
999 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1000 ;; fixes in 2016.
1001 (let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
1002 (package
1003 (name "dia")
1004 (version (git-version "0.97.3" "1" commit))
1005 (source (origin
1006 (method git-fetch)
1007 (uri (git-reference
1008 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1009 (commit commit)))
1010 (file-name (git-file-name name version))
1011 (sha256
1012 (base32
1013 "1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
1014 (build-system gnu-build-system)
1015 (inputs
1016 `(("freetype" ,freetype)
1017 ("gdk-pixbuf" ,gdk-pixbuf)
1018 ("gtk+" ,gtk+-2)
1019 ("libart-lgpl" ,libart-lgpl)
1020 ("libxml2" ,libxml2)
1021 ("pango" ,pango)))
1022 (native-inputs
1023 `(("autoconf" ,autoconf)
1024 ("automake" ,automake)
1025 ("intltool" ,intltool)
1026 ("glib" ,glib "bin")
1027 ("libtool" ,libtool)
1028 ("perl" ,perl)
1029 ("pkg-config" ,pkg-config)
1030 ("python-wrapper" ,python-wrapper)))
1031 (home-page "https://wiki.gnome.org/Apps/Dia")
1032 (synopsis "Diagram creation for GNOME")
1033 (description "Dia can be used to draw different types of diagrams, and
1034 includes support for UML static structure diagrams (class diagrams), entity
1035 relationship modeling, and network diagrams. The program supports various file
1036 formats like PNG, SVG, PDF and EPS.")
1037 (license license:gpl2+))))
1038
1039 ;; This is the unstable release, but it is required for the current stable
1040 ;; release of gvfs (1.38.1).
1041 (define-public libgdata
1042 (package
1043 (name "libgdata")
1044 (version "0.17.9")
1045 (source (origin
1046 (method url-fetch)
1047 (uri (string-append "mirror://gnome/sources/" name "/"
1048 (version-major+minor version) "/"
1049 name "-" version ".tar.xz"))
1050 (sha256
1051 (base32
1052 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1053 (build-system gnu-build-system)
1054 (arguments
1055 '(#:phases
1056 (modify-phases %standard-phases
1057 (add-before 'check 'disable-failing-tests
1058 (lambda _
1059 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1060 ;; They have been removed in libgdata 0.17.6, so just do the same.
1061 (substitute* "gdata/tests/Makefile"
1062 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1063 #t)))))
1064 (native-inputs
1065 `(("glib:bin" ,glib "bin")
1066 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1067 ("intltool" ,intltool)
1068 ("pkg-config" ,pkg-config)
1069 ("uhttpmock" ,uhttpmock)))
1070 (inputs
1071 `(("cyrus-sasl" ,cyrus-sasl)
1072 ("glib-networking" ,glib-networking)))
1073 (propagated-inputs
1074 `(("gcr" ,gcr)
1075 ("glib" ,glib)
1076 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1077 ("json-glib" ,json-glib)
1078 ("liboauth" ,liboauth)
1079 ("libsoup" ,libsoup)
1080 ("libxml2" ,libxml2)))
1081 (home-page "https://wiki.gnome.org/Projects/libgdata")
1082 (synopsis "Library for accessing online service APIs")
1083 (description
1084 "libgdata is a GLib-based library for accessing online service APIs using
1085 the GData protocol — most notably, Google's services. It provides APIs to
1086 access the common Google services, and has full asynchronous support.")
1087 (license license:lgpl2.1+)))
1088
1089 (define-public libgxps
1090 (package
1091 (name "libgxps")
1092 (version "0.3.1")
1093 (source (origin
1094 (method url-fetch)
1095 (uri (string-append "mirror://gnome/sources/" name "/"
1096 (version-major+minor version) "/"
1097 name "-" version ".tar.xz"))
1098 (sha256
1099 (base32
1100 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1101 (build-system meson-build-system)
1102 (native-inputs
1103 `(("gobject-introspection" ,gobject-introspection)
1104 ("pkg-config" ,pkg-config)))
1105 (inputs
1106 `(("gtk+" ,gtk+)
1107 ("libjpeg" ,libjpeg-turbo)
1108 ("lcms" ,lcms)
1109 ("libtiff" ,libtiff)))
1110 (propagated-inputs
1111 ;; In Requires of libgxps.pc.
1112 `(("cairo" ,cairo)
1113 ("glib" ,glib)
1114 ("libarchive" ,libarchive)))
1115 (home-page "https://wiki.gnome.org/Projects/libgxps")
1116 (synopsis "GObject-based library for handling and rendering XPS documents")
1117 (description
1118 "libgxps is a GObject-based library for handling and rendering XPS
1119 documents. This package also contains binaries that can convert XPS documents
1120 to other formats.")
1121 (license license:lgpl2.1+)))
1122
1123 (define-public gnome-characters
1124 (package
1125 (name "gnome-characters")
1126 (version "3.30.0")
1127 (source
1128 (origin
1129 (method url-fetch)
1130 (uri (string-append "mirror://gnome/sources/"
1131 "gnome-characters/" (version-major+minor version)
1132 "/gnome-characters-" version ".tar.xz"))
1133 (sha256
1134 (base32
1135 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1136 (build-system meson-build-system)
1137 (arguments
1138 `(#:glib-or-gtk? #t
1139 #:phases (modify-phases %standard-phases
1140 (add-after 'install 'wrap
1141 (lambda* (#:key outputs #:allow-other-keys)
1142 ;; GNOME Characters needs Typelib files from GTK and
1143 ;; gnome-desktop.
1144 (wrap-program (string-append (assoc-ref outputs "out")
1145 "/bin/gnome-characters")
1146 `("GI_TYPELIB_PATH" ":" prefix
1147 (,(getenv "GI_TYPELIB_PATH"))))
1148 #t)))))
1149 (native-inputs
1150 `(("gettext" ,gettext-minimal)
1151 ("glib:bin" ,glib "bin")
1152 ("gtk+:bin" ,gtk+ "bin")
1153 ("pkg-config" ,pkg-config)
1154 ("python" ,python-minimal)))
1155 (inputs
1156 `(("gjs" ,gjs)
1157 ("gtk+" ,gtk+)
1158 ("libunistring" ,libunistring)
1159 ("gnome-desktop" ,gnome-desktop)))
1160 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1161 (synopsis "Find and insert unusual characters")
1162 (description "Characters is a simple utility application to find
1163 and insert unusual characters. It allows you to quickly find the
1164 character you are looking for by searching for keywords.")
1165 (license license:bsd-3)))
1166
1167 (define-public gnome-common
1168 (package
1169 (name "gnome-common")
1170 (version "3.18.0")
1171 (source
1172 (origin
1173 (method url-fetch)
1174 (uri (string-append "mirror://gnome/sources/" name "/"
1175 (version-major+minor version) "/"
1176 name "-" version ".tar.xz"))
1177 (sha256
1178 (base32
1179 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1180 (build-system gnu-build-system)
1181 (home-page "https://www.gnome.org/")
1182 (synopsis "Bootstrap GNOME modules built from Git")
1183 (description "gnome-common contains various files needed to bootstrap
1184 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1185 can be used to configure a source directory checked out from Git and some
1186 commonly used macros.")
1187 (license license:gpl2+)))
1188
1189 (define-public gnome-contacts
1190 (package
1191 (name "gnome-contacts")
1192 (version "3.34")
1193 (source (origin
1194 (method url-fetch)
1195 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1196 (version-major+minor version) "/"
1197 name "-" version ".tar.xz"))
1198 (sha256
1199 (base32
1200 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1201 (build-system meson-build-system)
1202 (arguments
1203 `(#:configure-flags '("-Dcheese=false")
1204 #:phases
1205 (modify-phases %standard-phases
1206 (add-after 'unpack 'generate-vapis
1207 (lambda* (#:key inputs #:allow-other-keys)
1208 ;; To generate goa's missing .vapi file
1209 (define goa
1210 (assoc-ref inputs "gnome-online-accounts:lib"))
1211
1212 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1213 "--library=goa-1.0"
1214 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1215 #t))
1216 (add-after 'unpack 'skip-gtk-update-icon-cache
1217 ;; Don't create 'icon-theme.cache'.
1218 (lambda _
1219 (substitute* "build-aux/meson_post_install.py"
1220 (("gtk-update-icon-cache") "true"))
1221 #t)))))
1222 (native-inputs
1223 `(("glib:bin" ,glib "bin")
1224 ("pkg-config" ,pkg-config)))
1225 (inputs
1226 `(("docbook-xml" ,docbook-xml)
1227 ("dockbook-xsl" ,docbook-xsl)
1228 ("evolution-data-server" ,evolution-data-server)
1229 ("gettext" ,gettext-minimal)
1230 ("gnome-desktop" ,gnome-desktop)
1231 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1232 ("gobject-introspection" ,gobject-introspection)
1233 ("gst-plugins-base" ,gst-plugins-base)
1234 ("gtk+" ,gtk+)
1235 ("libgee" ,libgee)
1236 ("libxslt" ,libxslt)
1237 ("telepathy-glib" ,telepathy-glib)
1238 ("vala" ,vala)))
1239 (propagated-inputs
1240 `(("folks", folks)
1241 ("telepathy-mission-control" ,telepathy-mission-control)))
1242 (synopsis "GNOME's integrated address book")
1243 (description
1244 "GNOME Contacts organizes your contact information from online and
1245 offline sources, providing a centralized place for managing your contacts.")
1246 (home-page "https://wiki.gnome.org/Apps/Contacts")
1247 (license license:gpl2+)))
1248
1249 (define-public gnome-desktop
1250 (package
1251 (name "gnome-desktop")
1252 (version "3.34.2")
1253 (source
1254 (origin
1255 (method url-fetch)
1256 (uri (string-append "mirror://gnome/sources/" name "/"
1257 (version-major+minor version) "/"
1258 name "-" version ".tar.xz"))
1259 (sha256
1260 (base32
1261 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
1262 (build-system meson-build-system)
1263 (arguments
1264 '(#:phases
1265 (modify-phases %standard-phases
1266 (add-before 'configure 'patch-path
1267 (lambda* (#:key inputs #:allow-other-keys)
1268 (let ((libc (assoc-ref inputs "libc")))
1269 (substitute* "libgnome-desktop/gnome-languages.c"
1270 (("\"locale\"")
1271 (string-append "\"" libc "/bin/locale\"")))
1272 #t)))
1273 (add-before 'check 'pre-check
1274 (lambda* (#:key inputs #:allow-other-keys)
1275 ;; Tests require a running X server and locales.
1276 (system "Xvfb :1 &")
1277 (setenv "DISPLAY" ":1")
1278 (setenv "GUIX_LOCPATH"
1279 (string-append (assoc-ref inputs "glibc-locales")
1280 "/lib/locale"))
1281 #t)))))
1282 (native-inputs
1283 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1284 ("glibc-locales" ,glibc-locales) ; for tests
1285 ("gobject-introspection" ,gobject-introspection)
1286 ("itstool" ,itstool)
1287 ("intltool" ,intltool)
1288 ("pkg-config" ,pkg-config)
1289 ("xmllint" ,libxml2)
1290 ("xorg-server" ,xorg-server-for-tests)))
1291 (propagated-inputs
1292 ;; Required by gnome-desktop-3.0.pc.
1293 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1294 ("gtk+" ,gtk+)
1295 ("iso-codes" ,iso-codes)
1296 ("libseccomp" ,libseccomp)
1297 ("libx11" ,libx11)
1298 ("xkeyboard-config" ,xkeyboard-config)))
1299 (inputs
1300 `(("gdk-pixbuf" ,gdk-pixbuf)
1301 ("glib" ,glib)
1302 ("libxext" ,libxext)
1303 ("libxkbfile" ,libxkbfile)
1304 ("libxrandr" ,libxrandr)))
1305 (home-page "https://www.gnome.org/")
1306 (synopsis
1307 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1308 (description
1309 "The libgnome-desktop library provides API shared by several applications
1310 on the desktop, but that cannot live in the platform for various reasons.
1311 There is no API or ABI guarantee, although we are doing our best to provide
1312 stability. Documentation for the API is available with gtk-doc.
1313
1314 The gnome-about program helps find which version of GNOME is installed.")
1315 ; Some bits under the LGPL.
1316 (license license:gpl2+)))
1317
1318 (define-public gnome-doc-utils
1319 (package
1320 (name "gnome-doc-utils")
1321 (version "0.20.10")
1322 (source
1323 (origin
1324 (method url-fetch)
1325 (uri (string-append "mirror://gnome/sources/" name "/"
1326 (version-major+minor version) "/"
1327 name "-" version ".tar.xz"))
1328 (sha256
1329 (base32
1330 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1331 (build-system gnu-build-system)
1332 (native-inputs
1333 `(("intltool" ,intltool)
1334 ("docbook-xml" ,docbook-xml-4.4)
1335 ("python2-libxml2" ,python2-libxml2)
1336 ("libxml2" ,libxml2)
1337 ("libxslt" ,libxslt)
1338 ("pkg-config" ,pkg-config)
1339 ("python-2" ,python-2)))
1340 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1341 (synopsis
1342 "Documentation utilities for the Gnome project")
1343 (description
1344 "Gnome-doc-utils is a collection of documentation utilities for the
1345 Gnome project. It includes xml2po tool which makes it easier to translate
1346 and keep up to date translations of documentation.")
1347 (license license:gpl2+))) ; xslt under lgpl
1348
1349 (define-public gnome-disk-utility
1350 (package
1351 (name "gnome-disk-utility")
1352 (version "3.34.0")
1353 (source (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 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
1361 (build-system meson-build-system)
1362 (arguments
1363 '(#:configure-flags '("-Dlogind=libelogind")
1364 #:phases
1365 (modify-phases %standard-phases
1366 (add-after 'unpack 'skip-gtk-update-icon-cache
1367 ;; Don't create 'icon-theme.cache'.
1368 (lambda _
1369 (substitute* "meson_post_install.py"
1370 (("gtk-update-icon-cache") "true"))
1371 #t)))))
1372 (native-inputs
1373 `(("glib:bin" ,glib "bin")
1374 ("intltool" ,intltool)
1375 ("pkg-config" ,pkg-config)
1376 ("docbook-xml" ,docbook-xml)
1377 ("docbook-xsl" ,docbook-xsl)
1378 ("libxml2" ,libxml2)
1379 ("libxslt" ,libxslt)))
1380 (inputs
1381 `(("elogind" ,elogind)
1382 ("glib" ,glib)
1383 ("appstream-glib" ,appstream-glib)
1384 ("gnome-settings-daemon" ,gnome-settings-daemon)
1385 ("gtk+" ,gtk+)
1386 ("libcanberra" ,libcanberra)
1387 ("libdvdread" ,libdvdread)
1388 ("libnotify" ,libnotify)
1389 ("libpwquality" ,libpwquality)
1390 ("libsecret" ,libsecret)
1391 ("udisks" ,udisks)))
1392 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1393 (synopsis "Disk management utility for GNOME")
1394 (description "Disk management utility for GNOME.")
1395 (license license:gpl2+)))
1396
1397 (define-public gnome-font-viewer
1398 (package
1399 (name "gnome-font-viewer")
1400 (version "3.30.0")
1401 (source (origin
1402 (method url-fetch)
1403 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1404 (version-major+minor version)
1405 "/gnome-font-viewer-" version ".tar.xz"))
1406 (sha256
1407 (base32
1408 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1409 (build-system meson-build-system)
1410 (arguments
1411 '(#:phases
1412 (modify-phases %standard-phases
1413 (add-after 'unpack 'patch-post-install-script
1414 (lambda _
1415 (substitute* "meson-postinstall.sh"
1416 (("update-desktop-database") (which "true")))
1417 #t)))))
1418 (native-inputs
1419 `(("gettext" ,gettext-minimal)
1420 ("glib:bin" ,glib "bin")
1421 ("pkg-config" ,pkg-config)))
1422 (inputs
1423 `(("glib" ,glib)
1424 ("gnome-desktop" ,gnome-desktop)
1425 ("gtk+" ,gtk+)))
1426 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1427 (synopsis "GNOME Fonts")
1428 (description "Application to show you the fonts installed on your computer
1429 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1430 the font would look under various sizes.")
1431 (license license:gpl2+)))
1432
1433 (define-public gcr
1434 (package
1435 (name "gcr")
1436 (version "3.34.0")
1437 (source (origin
1438 (method url-fetch)
1439 (uri (string-append "mirror://gnome/sources/" name "/"
1440 (version-major+minor version) "/"
1441 name "-" version ".tar.xz"))
1442 (sha256
1443 (base32
1444 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
1445 (build-system gnu-build-system)
1446 (arguments
1447 '(#:phases
1448 (modify-phases %standard-phases
1449 ;; These fail because /var/lib/dbus/machine-id is not present in the
1450 ;; build environment.
1451 (add-after 'unpack 'disable-failing-tests
1452 (lambda _
1453 (substitute* "Makefile.in"
1454 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1455 ""))
1456 #t))
1457 (add-before 'check 'pre-check
1458 (lambda _
1459 ;; Some tests expect to write to $HOME.
1460 (setenv "HOME" "/tmp")
1461 #t)))))
1462 (inputs
1463 `(("dbus" ,dbus)
1464 ("gnupg" ,gnupg) ;called as a child process during tests
1465 ("libgcrypt" ,libgcrypt)))
1466 (native-inputs
1467 `(("python" ,python-wrapper) ;for tests
1468 ("pkg-config" ,pkg-config)
1469 ("gettext" ,gettext-minimal)
1470 ("glib" ,glib "bin")
1471 ("gobject-introspection" ,gobject-introspection)
1472 ("libxml2" ,libxml2)
1473 ("vala" ,vala)
1474 ("xsltproc" ,libxslt)))
1475 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1476 (propagated-inputs
1477 `(("p11-kit" ,p11-kit)
1478 ("glib" ,glib)
1479 ("gtk+" ,gtk+)))
1480 (home-page "https://www.gnome.org")
1481 (synopsis "Libraries for displaying certificates and accessing key stores")
1482 (description
1483 "The GCR package contains libraries used for displaying certificates and
1484 accessing key stores. It also provides the viewer for crypto files on the
1485 GNOME Desktop.")
1486 (license license:lgpl2.1+)))
1487
1488 (define-public libgnome-keyring
1489 (package
1490 (name "libgnome-keyring")
1491 (version "3.12.0")
1492 (source (origin
1493 (method url-fetch)
1494 (uri (string-append "mirror://gnome/sources/" name "/"
1495 (version-major+minor version) "/"
1496 name "-" version ".tar.xz"))
1497 (sha256
1498 (base32
1499 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1500 (build-system gnu-build-system)
1501 (inputs
1502 `(("libgcrypt" ,libgcrypt)
1503 ("dbus" ,dbus)))
1504 (native-inputs
1505 `(("pkg-config" ,pkg-config)
1506 ("glib" ,glib "bin")
1507 ("intltool" ,intltool)))
1508 (propagated-inputs
1509 ;; Referred to in .h files and .pc.
1510 `(("glib" ,glib)))
1511 (home-page "https://www.gnome.org")
1512 (synopsis "Accessing passwords from the GNOME keyring")
1513 (description
1514 "Client library to access passwords from the GNOME keyring.")
1515
1516 ;; Though a couple of files are LGPLv2.1+.
1517 (license license:lgpl2.0+)))
1518
1519 (define-public gnome-keyring
1520 (package
1521 (name "gnome-keyring")
1522 (version "3.34.0")
1523 (source (origin
1524 (method url-fetch)
1525 (uri (string-append "mirror://gnome/sources/" name "/"
1526 (version-major+minor version) "/"
1527 name "-" version ".tar.xz"))
1528 (sha256
1529 (base32
1530 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
1531 (build-system gnu-build-system)
1532 (arguments
1533 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1534 ;not exist
1535 #:configure-flags
1536 (list
1537 (string-append "--with-pkcs11-config="
1538 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1539 (string-append "--with-pkcs11-modules="
1540 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1541 #:phases
1542 (modify-phases %standard-phases
1543 (add-after 'unpack 'fix-/bin/sh-reference
1544 (lambda _
1545 (substitute* "po/Makefile.in.in"
1546 (("/bin/sh") (which "sh")))
1547 #t))
1548 (add-after 'unpack 'fix-docbook
1549 (lambda* (#:key inputs #:allow-other-keys)
1550 (substitute* "docs/Makefile.am"
1551 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1552 (string-append (assoc-ref inputs "docbook-xsl")
1553 "/xml/xsl/docbook-xsl-"
1554 ,(package-version docbook-xsl)
1555 "/manpages/docbook.xsl")))
1556 (setenv "XML_CATALOG_FILES"
1557 (string-append (assoc-ref inputs "docbook-xml")
1558 "/xml/dtd/docbook/catalog.xml"))
1559 ;; Rerun the whole thing to avoid version mismatch ("This is
1560 ;; Automake 1.15.1, but the definition used by this
1561 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1562 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1563 (invoke "autoconf")
1564 (invoke "aclocal")
1565 (invoke "automake" "-ac"))))))
1566 (inputs
1567 `(("libgcrypt" ,libgcrypt)
1568 ("linux-pam" ,linux-pam)
1569 ("openssh" ,openssh)
1570 ("dbus" ,dbus)
1571 ("gcr" ,gcr)))
1572 (native-inputs
1573 `(("pkg-config" ,pkg-config)
1574 ("glib" ,glib "bin")
1575 ("glib" ,glib) ; for m4 macros
1576 ("python" ,python-2) ;for tests
1577 ("intltool" ,intltool)
1578 ("autoconf" ,autoconf)
1579 ("automake" ,automake)
1580 ("libxslt" ,libxslt) ;for documentation
1581 ("docbook-xml" ,docbook-xml-4.2)
1582 ("docbook-xsl" ,docbook-xsl)))
1583 (home-page "https://www.gnome.org")
1584 (synopsis "Daemon to store passwords and encryption keys")
1585 (description
1586 "gnome-keyring is a program that keeps passwords and other secrets for
1587 users. It is run as a daemon in the session, similar to ssh-agent, and other
1588 applications locate it via an environment variable or D-Bus.
1589
1590 The program can manage several keyrings, each with its own master password,
1591 and there is also a session keyring which is never stored to disk, but
1592 forgotten when the session ends.")
1593 (license license:lgpl2.1+)))
1594
1595 (define-public evince
1596 (package
1597 (name "evince")
1598 (version "3.34.2")
1599 (source (origin
1600 (method url-fetch)
1601 (uri (string-append "mirror://gnome/sources/evince/"
1602 (version-major+minor version) "/"
1603 "evince-" version ".tar.xz"))
1604 (sha256
1605 (base32
1606 "05q6v9lssd21623mnj2p49clj9v9csw9kay7n4nklki025grbh1w"))))
1607 (build-system glib-or-gtk-build-system)
1608 (arguments
1609 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1610 #:phases
1611 (modify-phases %standard-phases
1612 (add-before 'install 'skip-gtk-update-icon-cache
1613 ;; Don't create 'icon-theme.cache'.
1614 (lambda _
1615 (substitute* "data/Makefile"
1616 (("gtk-update-icon-cache") "true"))
1617 #t)))))
1618 (inputs
1619 `(("libarchive" ,libarchive)
1620 ("libgxps" ,libgxps)
1621 ("libspectre" ,libspectre)
1622 ("djvulibre" ,djvulibre)
1623 ("ghostscript" ,ghostscript)
1624 ("poppler" ,poppler)
1625 ("libtiff" ,libtiff)
1626 ;; TODO:
1627 ;; Build libkpathsea as a shared library for DVI support.
1628 ;; ("libkpathsea" ,texlive-bin)
1629 ("gnome-desktop" ,gnome-desktop)
1630 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1631 ("gspell" ,gspell)
1632 ("libgnome-keyring" ,libgnome-keyring)
1633 ("adwaita-icon-theme" ,adwaita-icon-theme)
1634 ("gdk-pixbuf" ,gdk-pixbuf)
1635 ("atk" ,atk)
1636 ("pango" ,pango)
1637 ("gtk+" ,gtk+)
1638 ("glib" ,glib)
1639 ("libxml2" ,libxml2)
1640 ("libsm" ,libsm)
1641 ("libice" ,libice)
1642 ("shared-mime-info" ,shared-mime-info)
1643 ("dconf" ,dconf)
1644 ("libcanberra" ,libcanberra)
1645 ("libsecret" ,libsecret)
1646
1647 ;; For tests.
1648 ("dogtail" ,python2-dogtail)))
1649 (native-inputs
1650 `(("itstool" ,itstool)
1651 ("intltool" ,intltool)
1652 ("glib" ,glib "bin")
1653 ("gobject-introspection" ,gobject-introspection)
1654 ("pkg-config" ,pkg-config)
1655 ("xmllint" ,libxml2)))
1656 (home-page
1657 "https://www.gnome.org/projects/evince/")
1658 (synopsis "GNOME's document viewer")
1659 (description
1660 "Evince is a document viewer for multiple document formats. It
1661 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1662 of Evince is to replace the multiple document viewers that exist
1663 on the GNOME Desktop with a single simple application.")
1664 (license license:gpl2+)))
1665
1666 (define-public gsettings-desktop-schemas
1667 (package
1668 (name "gsettings-desktop-schemas")
1669 (version "3.34.0")
1670 (source
1671 (origin
1672 (method url-fetch)
1673 (uri (string-append "mirror://gnome/sources/" name "/"
1674 (version-major+minor version) "/"
1675 name "-" version ".tar.xz"))
1676 (sha256
1677 (base32
1678 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
1679 (build-system meson-build-system)
1680 (arguments
1681 '(#:phases (modify-phases %standard-phases
1682 (add-after 'unpack 'patch-schemas
1683 (lambda* (#:key inputs #:allow-other-keys)
1684 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1685 (substitute* (find-files "schemas"
1686 "\\.gschema\\.xml\\.in$")
1687 ;; Provide the correct file name of the default GNOME
1688 ;; background, 'adwaita-timed.xml'.
1689 (("@datadir@/backgrounds/gnome")
1690 (string-append theme "/share/backgrounds/gnome"))
1691 ;; Do not reference fonts, that may not exist.
1692 (("'Source Code Pro 10'") "'Monospace 11'"))
1693 #t))))))
1694 (inputs
1695 `(("glib" ,glib)
1696 ("gnome-backgrounds" ,gnome-backgrounds)))
1697 (native-inputs
1698 `(("intltool" ,intltool)
1699 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1700 ("gobject-introspection" ,gobject-introspection)
1701 ("pkg-config" ,pkg-config)))
1702 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1703 (synopsis
1704 "GNOME settings for various desktop components")
1705 (description
1706 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1707 for settings shared by various components of the GNOME desktop.")
1708 (license license:lgpl2.1+)))
1709
1710 (define-public icon-naming-utils
1711 (package
1712 (name "icon-naming-utils")
1713 (version "0.8.90")
1714 (source
1715 (origin
1716 (method url-fetch)
1717 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1718 version ".tar.bz2"))
1719 (sha256
1720 (base32
1721 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1722 (build-system gnu-build-system)
1723 (inputs
1724 `(("perl" ,perl)
1725 ("perl-xml-simple" ,perl-xml-simple)))
1726 (arguments
1727 '(#:phases
1728 (modify-phases %standard-phases
1729 (add-after 'install 'set-load-paths
1730 ;; Tell 'icon-name-mapping' where XML::Simple is.
1731 (lambda* (#:key outputs #:allow-other-keys)
1732 (let* ((out (assoc-ref outputs "out"))
1733 (prog (string-append out "/libexec/icon-name-mapping")))
1734 (wrap-program
1735 prog
1736 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1737 #t)))))
1738 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1739 (synopsis
1740 "Utility to implement the Freedesktop Icon Naming Specification")
1741 (description
1742 "To help with the transition to the Freedesktop Icon Naming
1743 Specification, the icon naming utility maps the icon names used by the
1744 GNOME and KDE desktops to the icon names proposed in the specification.")
1745 (license license:lgpl2.1+)))
1746
1747 (define-public gnome-icon-theme
1748 (package
1749 (name "gnome-icon-theme")
1750 (version "3.12.0")
1751 (source
1752 (origin
1753 (method url-fetch)
1754 (uri (string-append "mirror://gnome/sources/" name "/"
1755 (version-major+minor version) "/"
1756 name "-" version ".tar.xz"))
1757 (sha256
1758 (base32
1759 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
1760 (build-system gnu-build-system)
1761 (arguments
1762 '(#:configure-flags
1763 ;; Don't create 'icon-theme.cache'.
1764 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
1765 (true (string-append coreutils "/bin/true")))
1766 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
1767 (native-inputs
1768 `(("icon-naming-utils" ,icon-naming-utils)
1769 ("intltool" ,intltool)
1770 ("pkg-config" ,pkg-config)))
1771 (home-page "https://wiki.gnome.org/Personalization")
1772 (synopsis "GNOME icon theme")
1773 (description "Icons for the GNOME desktop.")
1774 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
1775
1776 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
1777 (define-public adwaita-icon-theme
1778 (package (inherit gnome-icon-theme)
1779 (name "adwaita-icon-theme")
1780 (version "3.34.3")
1781 (source (origin
1782 (method url-fetch)
1783 (uri (string-append "mirror://gnome/sources/" name "/"
1784 (version-major+minor version) "/"
1785 name "-" version ".tar.xz"))
1786 (sha256
1787 (base32
1788 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
1789 (native-inputs
1790 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
1791
1792 (define-public tango-icon-theme
1793 (package
1794 (name "tango-icon-theme")
1795 (version "0.8.90")
1796 (source (origin
1797 (method url-fetch)
1798 (uri (string-append "http://tango.freedesktop.org/releases/"
1799 "tango-icon-theme-" version ".tar.bz2"))
1800 (sha256
1801 (base32
1802 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
1803 (build-system gnu-build-system)
1804 (native-inputs
1805 `(("icon-naming-utils" ,icon-naming-utils)
1806 ("intltool" ,intltool)
1807 ("imagemagick" ,imagemagick)
1808 ("pkg-config" ,pkg-config)))
1809 (home-page "http://tango-project.org/")
1810 (synopsis "Tango icon theme")
1811 (description "This is an icon theme that follows the Tango visual
1812 guidelines.")
1813 (license license:public-domain)))
1814
1815 (define-public shared-mime-info
1816 (package
1817 (name "shared-mime-info")
1818 (version "1.15")
1819 (source (origin
1820 (method url-fetch)
1821 (uri (string-append
1822 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
1823 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
1824 ".tar.xz"))
1825 (sha256
1826 (base32
1827 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
1828 (build-system gnu-build-system)
1829 (arguments
1830 ;; The build system appears not to be parallel-safe.
1831 '(#:parallel-build? #f))
1832 (inputs
1833 `(("glib" ,glib)
1834 ("libxml2" ,libxml2)))
1835 (native-inputs
1836 `(("gettext" ,gettext-minimal)
1837 ("itstool" ,itstool)
1838 ("pkg-config" ,pkg-config)))
1839 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
1840 (synopsis "Database of common MIME types")
1841 (description
1842 "The shared-mime-info package contains the core database of common types
1843 and the update-mime-database command used to extend it. It requires glib2 to
1844 be installed for building the update command. Additionally, it uses intltool
1845 for translations, though this is only a dependency for the maintainers. This
1846 database is translated at Transifex.")
1847 (license license:gpl2+)))
1848
1849 (define-public system-config-printer
1850 (package
1851 (name "system-config-printer")
1852 (version "1.5.12")
1853 (source
1854 (origin
1855 (method url-fetch)
1856 (uri (string-append
1857 "https://github.com/OpenPrinting/system-config-printer/releases/"
1858 "download/" version
1859 "/system-config-printer-" version ".tar.xz"))
1860 (sha256
1861 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
1862 (build-system glib-or-gtk-build-system)
1863 (arguments
1864 `(#:imported-modules ((guix build python-build-system)
1865 ,@%glib-or-gtk-build-system-modules)
1866 #:phases
1867 (modify-phases %standard-phases
1868 (add-after 'unpack 'patch-Makefile.am
1869 (lambda _
1870 ;; The Makefile generates some scripts, so set a valid shebang
1871 (substitute* "Makefile.am"
1872 (("/bin/bash") (which "bash")))
1873 (delete-file "configure")
1874 #t))
1875 (add-after 'unpack 'patch-docbook-xml
1876 (lambda* (#:key inputs #:allow-other-keys)
1877 ;; Modify the man XML otherwise xmlto tries to access the network
1878 (substitute* "man/system-config-printer.xml"
1879 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
1880 (string-append (assoc-ref inputs "docbook-xml")
1881 "/xml/dtd/docbook/")))
1882 #t))
1883 (add-after 'install 'wrap-for-python
1884 (@@ (guix build python-build-system) wrap))
1885 (add-after 'install 'wrap
1886 (lambda* (#:key outputs #:allow-other-keys)
1887 (let ((out (assoc-ref outputs "out"))
1888 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
1889 (for-each
1890 (lambda (program)
1891 (wrap-program program
1892 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
1893 (map (lambda (name)
1894 (string-append out "/bin/" name))
1895 '("system-config-printer"
1896 "system-config-printer-applet"
1897 "install-printerdriver"
1898 "scp-dbus-service"))))
1899 #t)))))
1900 (inputs
1901 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1902 ("gobject-introspection" ,gobject-introspection)
1903 ("python" ,python)
1904 ("cups" ,cups)
1905 ("python-dbus" ,python-dbus)
1906 ("python-pygobject" ,python-pygobject)
1907 ("python-pycups" ,python-pycups)
1908 ("python-requests" ,python-requests)
1909 ("python-pycairo" ,python-pycairo)
1910 ("libnotify" ,libnotify)
1911 ("packagekit" ,packagekit)))
1912 (native-inputs
1913 `(("pkg-config" ,pkg-config)
1914 ("desktop-file-utils" ,desktop-file-utils)
1915 ("glib" ,glib)
1916 ("autoconf" ,autoconf)
1917 ("automake" ,automake)
1918 ("intltool" ,intltool)
1919 ("xmlto" ,xmlto)
1920 ("docbook-xml" ,docbook-xml-4.1.2)
1921 ("docbook-xsl" ,docbook-xsl)
1922 ("libxml2" ,libxml2)))
1923 (home-page "https://github.com/zdohnal/system-config-printer")
1924 (synopsis "CUPS administration tool")
1925 (description
1926 "system-config-printer is a CUPS administration tool. It's written in
1927 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
1928 configuring CUPS.")
1929 (license license:gpl2+)))
1930
1931 (define-public hicolor-icon-theme
1932 (package
1933 (name "hicolor-icon-theme")
1934 (version "0.17")
1935 (source
1936 (origin
1937 (method url-fetch)
1938 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
1939 "hicolor-icon-theme-" version ".tar.xz"))
1940 (sha256
1941 (base32
1942 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
1943 (build-system gnu-build-system)
1944 (arguments
1945 `(#:tests? #f)) ; no check target
1946 (home-page "https://icon-theme.freedesktop.org/releases/")
1947 (synopsis
1948 "Freedesktop icon theme")
1949 (description
1950 "Freedesktop icon theme.")
1951 (license license:gpl2)))
1952
1953 (define-public libnotify
1954 (package
1955 (name "libnotify")
1956 (version "0.7.7")
1957 (source
1958 (origin
1959 (method url-fetch)
1960 (uri (string-append "mirror://gnome/sources/" name "/"
1961 (version-major+minor version) "/"
1962 name "-" version ".tar.xz"))
1963 (sha256
1964 (base32
1965 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
1966 (build-system gnu-build-system)
1967 (arguments
1968 `(#:configure-flags '("--disable-static")))
1969 (propagated-inputs
1970 `(;; In Requires of libnotify.pc.
1971 ("gdk-pixbuf" ,gdk-pixbuf)
1972 ("glib" ,glib)))
1973 (inputs
1974 `(("gtk+" ,gtk+)
1975 ("libpng" ,libpng)))
1976 (native-inputs
1977 `(("pkg-config" ,pkg-config)
1978 ("glib" ,glib "bin")
1979 ("gobject-introspection" ,gobject-introspection)))
1980 (home-page "https://developer-next.gnome.org/libnotify/")
1981 (synopsis
1982 "GNOME desktop notification library")
1983 (description
1984 "Libnotify is a library that sends desktop notifications to a
1985 notification daemon, as defined in the Desktop Notifications spec. These
1986 notifications can be used to inform the user about an event or display
1987 some form of information without getting in the user's way.")
1988 (license license:lgpl2.1+)))
1989
1990 (define-public libpeas
1991 (package
1992 (name "libpeas")
1993 (version "1.24.1")
1994 (source
1995 (origin
1996 (method url-fetch)
1997 (uri (string-append "mirror://gnome/sources/" name "/"
1998 (version-major+minor version) "/"
1999 name "-" version ".tar.xz"))
2000 (sha256
2001 (base32
2002 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2003 (build-system meson-build-system)
2004 (arguments
2005 '(#:phases
2006 (modify-phases %standard-phases
2007 (add-before 'check 'start-xserver
2008 (lambda* (#:key inputs #:allow-other-keys)
2009 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2010 (disp ":1"))
2011 (setenv "DISPLAY" disp)
2012 ;; Tests require a running X server.
2013 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2014 #t))))))
2015 (inputs
2016 `(("gtk+" ,gtk+)
2017 ("glade" ,glade3)
2018 ("python" ,python)
2019 ("python-pygobject" ,python-pygobject)))
2020 (native-inputs
2021 `(("pkg-config" ,pkg-config)
2022 ("gettext" ,gettext-minimal)
2023 ("glib:bin" ,glib "bin")
2024 ("gobject-introspection" ,gobject-introspection)
2025 ("xorg-server" ,xorg-server-for-tests)))
2026 (propagated-inputs
2027 ;; The .pc file "Requires" gobject-introspection.
2028 `(("gobject-introspection" ,gobject-introspection)))
2029 (home-page "https://wiki.gnome.org/Libpeas")
2030 (synopsis "GObject plugin system")
2031 (description
2032 "Libpeas is a gobject-based plugin engine, targeted at giving every
2033 application the chance to assume its own extensibility. It also has a set of
2034 features including, but not limited to: multiple extension points; on-demand
2035 (lazy) programming language support for C, Python and JS; simplicity of the
2036 API.")
2037 (license license:lgpl2.0+)))
2038
2039 (define-public gtkglext
2040 (package
2041 (name "gtkglext")
2042 (version "1.2.0")
2043 (source (origin
2044 (method url-fetch)
2045 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2046 version "/gtkglext-" version ".tar.gz"))
2047 (sha256
2048 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2049 (patches (search-patches
2050 "gtkglext-disable-disable-deprecated.patch"))))
2051 (build-system gnu-build-system)
2052 (arguments
2053 `(#:phases
2054 (modify-phases %standard-phases
2055 ;; Fix a collision between a local variable and a definition from
2056 ;; glibc's string.h.
2057 (add-after 'unpack 'fix-collision
2058 (lambda _
2059 (substitute* "gdk/gdkglshapes.c"
2060 ((" index") " triangle_index"))
2061 #t)))))
2062 (inputs `(("gtk+" ,gtk+-2)
2063 ("mesa" ,mesa)
2064 ("glu" ,glu)
2065 ("libx11" ,libx11)
2066 ("libxt" ,libxt)))
2067 (native-inputs `(("pkg-config" ,pkg-config)
2068 ("glib" ,glib "bin")))
2069 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2070 (home-page "https://projects.gnome.org/gtkglext")
2071 (synopsis "OpenGL extension to GTK+")
2072 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2073 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2074 API add-ons to make GTK+ widgets OpenGL-capable.")
2075 (license license:lgpl2.1+)))
2076
2077 (define-public glade3
2078 (package
2079 (name "glade")
2080 (version "3.22.1")
2081 (source (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 "16p38xavpid51qfy0s26n0n21f9ws1w9k5s65bzh1w7ay8p9my6z"))))
2089 (build-system glib-or-gtk-build-system)
2090 (arguments
2091 `(#:tests? #f ; needs X, GL, and software rendering
2092 #:phases
2093 (modify-phases %standard-phases
2094 (add-before 'configure 'fix-docbook
2095 (lambda* (#:key inputs #:allow-other-keys)
2096 (substitute* "man/Makefile.in"
2097 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2098 (string-append (assoc-ref inputs "docbook-xsl")
2099 "/xml/xsl/docbook-xsl-"
2100 ,(package-version docbook-xsl)
2101 "/manpages/docbook.xsl")))
2102 #t)))))
2103 (inputs
2104 `(("gtk+" ,gtk+)
2105 ("libxml2" ,libxml2)))
2106 (native-inputs
2107 `(("intltool" ,intltool)
2108 ("itstool" ,itstool)
2109 ("libxslt" ,libxslt) ;for xsltproc
2110 ("docbook-xml" ,docbook-xml-4.2)
2111 ("docbook-xsl" ,docbook-xsl)
2112 ("python" ,python-2)
2113 ("pkg-config" ,pkg-config)))
2114 (home-page "https://glade.gnome.org")
2115 (synopsis "GTK+ rapid application development tool")
2116 (description "Glade is a rapid application development (RAD) tool to
2117 enable quick & easy development of user interfaces for the GTK+ toolkit and
2118 the GNOME desktop environment.")
2119 (license license:lgpl2.0+)))
2120
2121 (define-public libcroco
2122 (package
2123 (name "libcroco")
2124 (version "0.6.13")
2125 (source (origin
2126 (method url-fetch)
2127 (uri (string-append "mirror://gnome/sources/" name "/"
2128 (version-major+minor version) "/"
2129 name "-" version ".tar.xz"))
2130 (sha256
2131 (base32
2132 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2133 (build-system gnu-build-system)
2134 (native-inputs
2135 `(("pkg-config" ,pkg-config)))
2136 (inputs
2137 `(("glib" ,glib)
2138 ("libxml2" ,libxml2)
2139 ("zlib" ,zlib)))
2140 (home-page "https://github.com/GNOME/libcroco")
2141 (synopsis "CSS2 parsing and manipulation library")
2142 (description
2143 "Libcroco is a standalone CSS2 parsing and manipulation library.
2144 The parser provides a low level event driven SAC-like API and a CSS object
2145 model like API. Libcroco provides a CSS2 selection engine and an experimental
2146 XML/CSS rendering engine.")
2147
2148 ;; LGPLv2.1-only.
2149 (license license:lgpl2.1)))
2150
2151 (define-public libgsf
2152 (package
2153 (name "libgsf")
2154 (version "1.14.47")
2155 (source (origin
2156 (method url-fetch)
2157 (uri (string-append "mirror://gnome/sources/" name "/"
2158 (version-major+minor version) "/"
2159 name "-" version ".tar.xz"))
2160 (sha256
2161 (base32
2162 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
2163 (build-system gnu-build-system)
2164 (arguments
2165 '(#:configure-flags '("--disable-static")))
2166 (native-inputs
2167 `(("pkg-config" ,pkg-config)
2168 ("gettext" ,gettext-minimal)
2169
2170 ;; For tests.
2171 ("perl" ,perl)
2172 ("perl-xml-parser" ,perl-xml-parser)))
2173 (inputs
2174 `(("zlib" ,zlib)
2175 ("bzip2" ,bzip2)))
2176 (propagated-inputs
2177 `(("gdk-pixbuf" ,gdk-pixbuf)
2178 ("glib" ,glib)
2179 ("libxml2" ,libxml2)))
2180 (home-page "https://www.gnome.org/projects/libgsf")
2181 (synopsis "GNOME's Structured File Library")
2182 (description
2183 "Libgsf aims to provide an efficient extensible I/O abstraction for
2184 dealing with different structured file formats.")
2185
2186 ;; LGPLv2.1-only.
2187 (license license:lgpl2.1)))
2188
2189 (define-public librsvg
2190 (package
2191 (name "librsvg")
2192 (version "2.40.21")
2193 (source (origin
2194 (method url-fetch)
2195 (uri (string-append "mirror://gnome/sources/" name "/"
2196 (version-major+minor version) "/"
2197 name "-" version ".tar.xz"))
2198 (sha256
2199 (base32
2200 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
2201 (build-system gnu-build-system)
2202 (arguments
2203 `(#:configure-flags
2204 (list "--disable-static"
2205 "--enable-vala") ; needed for e.g. gnome-mines
2206 #:phases
2207 (modify-phases %standard-phases
2208 (add-before 'configure 'pre-configure
2209 (lambda* (#:key inputs #:allow-other-keys)
2210 (substitute* "gdk-pixbuf-loader/Makefile.in"
2211 ;; By default the gdk-pixbuf loader is installed under
2212 ;; gdk-pixbuf's prefix. Work around that.
2213 (("gdk_pixbuf_moduledir = .*$")
2214 (string-append "gdk_pixbuf_moduledir = "
2215 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2216 "loaders\n"))
2217 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2218 (("gdk_pixbuf_cache_file = .*$")
2219 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2220 #t))
2221 (add-before 'check 'remove-failing-tests
2222 (lambda _
2223 (with-directory-excursion "tests/fixtures/reftests"
2224 (for-each delete-file
2225 '(;; This test fails on i686:
2226 "svg1.1/masking-path-04-b.svg"
2227 ;; This test fails on armhf:
2228 "svg1.1/masking-mask-01-b.svg"
2229 ;; This test fails on aarch64:
2230 "bugs/777834-empty-text-children.svg")))
2231 #t)))))
2232 (native-inputs
2233 `(("pkg-config" ,pkg-config)
2234 ("vala" ,vala)
2235 ("glib" ,glib "bin") ; glib-mkenums, etc.
2236 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2237 (inputs
2238 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2239 ;; this ancient version of librsvg.
2240 ("pango" ,pango-1.42)
2241 ("libcroco" ,libcroco)
2242 ("bzip2" ,bzip2)
2243 ("libgsf" ,libgsf)
2244 ("libxml2" ,libxml2)))
2245 (propagated-inputs
2246 ;; librsvg-2.0.pc refers to all of that.
2247 `(("cairo" ,cairo)
2248 ("gdk-pixbuf" ,gdk-pixbuf)
2249 ("glib" ,glib)))
2250 (home-page "https://wiki.gnome.org/LibRsvg")
2251 (synopsis "Render SVG files using Cairo")
2252 (description
2253 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2254 library.")
2255 (license license:lgpl2.0+)))
2256
2257 (define-public librsvg-next
2258 (package
2259 (inherit librsvg)
2260 (name "librsvg")
2261 (version "2.46.4")
2262 (source (origin
2263 (method url-fetch)
2264 (uri (string-append "mirror://gnome/sources/librsvg/"
2265 (version-major+minor version) "/"
2266 "librsvg-" version ".tar.xz"))
2267 (sha256
2268 (base32
2269 "0afc82nsxc6kw136xid4vcq9kmq4rmgzzk8bh2pvln2cnvirwnxl"))
2270 (modules '((guix build utils)))
2271 (snippet
2272 '(begin (delete-file-recursively "vendor")
2273 ;; Don't demand an exact version for string_cache
2274 (substitute* "rsvg_internals/Cargo.toml"
2275 (("\"=") "\""))
2276 #t))))
2277 (build-system cargo-build-system)
2278 (arguments
2279 `(#:modules ((guix build cargo-build-system)
2280 (guix build utils)
2281 ((guix build gnu-build-system) #:prefix gnu:))
2282 #:vendor-dir "vendor"
2283 #:cargo-inputs
2284 (("rust-bitflags" ,rust-bitflags-1)
2285 ("rust-cairo-rs" ,rust-cairo-rs-0.7)
2286 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2287 ("rust-cssparser" ,rust-cssparser-0.25)
2288 ("rust-data-url" ,rust-data-url-0.1)
2289 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2290 ("rust-encoding" ,rust-encoding-0.2)
2291 ("rust-float-cmp" ,rust-float-cmp-0.5)
2292 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.7)
2293 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2294 ("rust-gio" ,rust-gio-0.7)
2295 ("rust-gio-sys" ,rust-gio-sys-0.9)
2296 ("rust-glib" ,rust-glib-0.8)
2297 ("rust-glib-sys" ,rust-glib-sys-0.9)
2298 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2299 ("rust-itertools" ,rust-itertools-0.8)
2300 ("rust-language-tags" ,rust-language-tags-0.2)
2301 ("rust-lazy-static" ,rust-lazy-static-1)
2302 ("rust-libc" ,rust-libc-0.2)
2303 ("rust-locale-config" ,rust-locale-config-0.3)
2304 ("rust-markup5ever" ,rust-markup5ever-0.9)
2305 ("rust-nalgebra" ,rust-nalgebra-0.18)
2306 ("rust-num-traits" ,rust-num-traits-0.2)
2307 ("rust-pkg-config" ,rust-pkg-config-0.3)
2308 ("rust-pango" ,rust-pango-0.7)
2309 ("rust-pango-sys" ,rust-pango-sys-0.9)
2310 ("rust-pangocairo" ,rust-pangocairo-0.8)
2311 ("rust-phf" ,rust-phf-0.7)
2312 ("rust-rayon" ,rust-rayon-1.3)
2313 ("rust-rctree" ,rust-rctree-0.3)
2314 ("rust-string-cache" ,rust-string-cache-0.7)
2315 ("rust-regex" ,rust-regex-1.3)
2316 ("rust-url" ,rust-url-2.1)
2317 ("rust-xml-rs" ,rust-xml-rs-0.8))
2318 #:cargo-development-inputs
2319 (("rust-cairo-rs" ,rust-cairo-rs-0.7)
2320 ("rust-criterion" ,rust-criterion-0.2))
2321 #:phases
2322 (modify-phases %standard-phases
2323 (add-after 'unpack 'prepare-for-build
2324 (lambda _
2325 ;; In lieu of #:make-flags
2326 (setenv "CC" "gcc")
2327 ;; Something about the build environment resists building
2328 ;; successfully with the '--locked' flag.
2329 (substitute* '("Makefile.am"
2330 "Makefile.in")
2331 (("--locked") ""))
2332 #t))
2333 (add-before 'configure 'pre-configure
2334 (lambda _
2335 (substitute* "gdk-pixbuf-loader/Makefile.in"
2336 ;; By default the gdk-pixbuf loader is installed under
2337 ;; gdk-pixbuf's prefix. Work around that.
2338 (("gdk_pixbuf_moduledir = .*$")
2339 (string-append "gdk_pixbuf_moduledir = "
2340 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2341 "loaders\n"))
2342 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2343 (("gdk_pixbuf_cache_file = .*$")
2344 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2345 #t))
2346 (add-after 'configure 'gnu-configure
2347 (assoc-ref gnu:%standard-phases 'configure))
2348 ;(lambda* (#:key outputs #:allow-other-keys)
2349 ; ((assoc-ref gnu:%standard-phases 'configure)
2350 ; #:outputs outputs
2351 ; #:configure-flags ("--disable-static"
2352 ; "--enable-vala"))))
2353 (add-after 'configure 'dont-vendor-self
2354 (lambda* (#:key vendor-dir #:allow-other-keys)
2355 ;; Don't keep the whole tarball in the vendor directory
2356 (delete-file-recursively
2357 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2358 #t))
2359 (replace 'build
2360 (assoc-ref gnu:%standard-phases 'build))
2361 (replace 'check
2362 (lambda* args
2363 ((assoc-ref gnu:%standard-phases 'check)
2364 #:test-target "check")))
2365 (replace 'install
2366 (assoc-ref gnu:%standard-phases 'install))
2367 (add-before 'check 'remove-failing-tests
2368 (lambda _
2369 (with-directory-excursion "tests/fixtures/reftests"
2370 (for-each delete-file
2371 '(;; The images produced by these tests differ slightly
2372 ;; from their reference counterparts due to differences
2373 ;; in the build environment (missing fonts, etc). See
2374 ;; <tests/README.md> for details.
2375 ;; These fail on x86_64.
2376 "svg1.1/coords-viewattr-02-b.svg"
2377 "svg1.1/filters-composite-04-f.svg"
2378 "svg1.1/filters-image-01-b.svg"
2379 "svg1.1/filters-conv-02-f.svg"
2380 "svg1.1/filters-conv-04-f.svg"
2381 ;; This test fails on i686:
2382 "svg1.1/masking-path-04-b.svg"
2383 ;; This test fails on armhf:
2384 "svg1.1/masking-mask-01-b.svg"
2385 ;; This test fails on aarch64:
2386 "bugs/777834-empty-text-children.svg")))
2387 #t)))))
2388 (license license:lgpl2.1+)))
2389
2390 (define-public libidl
2391 (package
2392 (name "libidl")
2393 (version "0.8.14")
2394 (source (origin
2395 (method url-fetch)
2396 (uri (string-append "mirror://gnome/sources/libIDL/"
2397 (version-major+minor version) "/"
2398 "libIDL-" version ".tar.bz2"))
2399 (sha256
2400 (base32
2401 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2402 (build-system gnu-build-system)
2403 (inputs `(("glib" ,glib)))
2404 (native-inputs
2405 `(("pkg-config" ,pkg-config)
2406 ("flex" ,flex)
2407 ("bison" ,bison)))
2408 (home-page "http://freecode.com/projects/libidl")
2409 (synopsis "Create trees of CORBA Interface Definition Language files")
2410 (description "Libidl is a library for creating trees of CORBA Interface
2411 Definition Language (idl) files, which is a specification for defining
2412 portable interfaces. libidl was initially written for orbit (the orb from the
2413 GNOME project, and the primary means of libidl distribution). However, the
2414 functionality was designed to be as reusable and portable as possible.")
2415 (properties `((upstream-name . "libIDL")))
2416 (license license:lgpl2.0+)))
2417
2418
2419 (define-public orbit2
2420 (package
2421 (name "orbit2")
2422 (version "2.14.19")
2423 (source (origin
2424 (method url-fetch)
2425 (uri (let ((upstream-name "ORBit2"))
2426 (string-append "mirror://gnome/sources/" upstream-name "/"
2427 (version-major+minor version) "/"
2428 upstream-name "-" version ".tar.bz2")))
2429 (sha256
2430 (base32
2431 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2432 (build-system gnu-build-system)
2433 (arguments
2434 `(;; The "timeout-server" test hangs when run in parallel.
2435 #:parallel-tests? #f
2436 #:configure-flags
2437 '(;; We don't need static libraries, plus they don't build reproducibly
2438 ;; (non-deterministic ordering of .o files in the archive.)
2439 "--disable-static"
2440
2441 ;; The programmer kindly gives us a hook to turn off deprecation
2442 ;; warnings ...
2443 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2444 ;; ... which they then completly ignore !!
2445 #:phases
2446 (modify-phases %standard-phases
2447 (add-before 'configure 'ignore-deprecations
2448 (lambda _
2449 (substitute* "linc2/src/Makefile.in"
2450 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2451 #t)))))
2452 (inputs `(("glib" ,glib)
2453 ("libidl" ,libidl)))
2454 (native-inputs
2455 `(("pkg-config" ,pkg-config)))
2456 (home-page "https://projects.gnome.org/orbit2/")
2457 (synopsis "CORBA 2.4-compliant Object Request Broker")
2458 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2459 featuring mature C, C++ and Python bindings.")
2460 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2461 ;; a version. SOME of the code files have licence notices for GPLv2+.
2462 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2463 (license license:gpl2+)
2464 (properties `((upstream-name . "ORBit2")))))
2465
2466
2467 (define-public libbonobo
2468 (package
2469 (name "libbonobo")
2470 (version "2.32.1")
2471 (source (origin
2472 (method url-fetch)
2473 (uri (string-append "mirror://gnome/sources/" name "/"
2474 (version-major+minor version)
2475 "/" name "-" version ".tar.bz2"))
2476 (sha256
2477 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2478 (patches (search-patches
2479 "libbonobo-activation-test-race.patch"))))
2480 (build-system gnu-build-system)
2481 (arguments
2482 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2483 `(#:configure-flags
2484 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2485 ;; ... which they then completly ignore !!
2486 #:phases
2487 (modify-phases %standard-phases
2488 (add-before 'configure 'ignore-deprecations
2489 (lambda _
2490 (substitute* "activation-server/Makefile.in"
2491 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2492 #t)))
2493
2494 ;; There's apparently a race condition between the server stub
2495 ;; generation and linking of the example under 'samples/echo' that can
2496 ;; lead do undefined references when building in parallel, as reported
2497 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2498 ;; Thus, disable parallel builds.
2499 #:parallel-build? #f))
2500 (inputs `(("popt" ,popt)
2501 ("libxml2" ,libxml2)))
2502 ;; The following are Required by the .pc file
2503 (propagated-inputs
2504 `(("glib" ,glib)
2505 ("orbit2" ,orbit2)))
2506 (native-inputs
2507 `(("intltool" ,intltool)
2508 ("pkg-config" ,pkg-config)
2509 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2510 ("flex" ,flex)
2511 ("bison" ,bison)))
2512 (home-page "https://developer.gnome.org/libbonobo/")
2513 (synopsis "Framework for creating reusable components for use in GNOME applications")
2514 (description "Bonobo is a framework for creating reusable components for
2515 use in GNOME applications, built on top of CORBA.")
2516 ;; Licence not explicitly stated. Source files contain no licence notices.
2517 ;; Tarball contains text of both GPLv2 and LGPLv2
2518 ;; GPLv2 covers both conditions
2519 (license license:gpl2+)))
2520
2521
2522 (define-public gconf
2523 (package
2524 (name "gconf")
2525 (version "3.2.6")
2526 (source (origin
2527 (method url-fetch)
2528 (uri
2529 (let ((upstream-name "GConf"))
2530 (string-append "mirror://gnome/sources/" upstream-name "/"
2531 (version-major+minor version) "/"
2532 upstream-name "-" version ".tar.xz")))
2533 (sha256
2534 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2535 (build-system gnu-build-system)
2536 (inputs `(("dbus-glib" ,dbus-glib)
2537 ("libxml2" ,libxml2)))
2538 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2539 ("orbit2" ,orbit2)))
2540 (native-inputs
2541 `(("intltool" ,intltool)
2542 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2543 ("pkg-config" ,pkg-config)))
2544 (home-page "https://projects.gnome.org/gconf/")
2545 (synopsis "Store application preferences")
2546 (description "Gconf is a system for storing application preferences. It
2547 is intended for user preferences; not arbitrary data storage.")
2548 (license license:lgpl2.0+)
2549 (properties '((upstream-name . "GConf")))))
2550
2551
2552 (define-public gnome-mime-data
2553 (package
2554 (name "gnome-mime-data")
2555 (version "2.18.0")
2556 (source (origin
2557 (method url-fetch)
2558 (uri (string-append "mirror://gnome/sources/" name "/"
2559 (version-major+minor version) "/"
2560 name "-" version ".tar.bz2"))
2561 (sha256
2562 (base32
2563 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2564 (build-system gnu-build-system)
2565 (native-inputs
2566 `(("perl" ,perl)
2567 ("intltool" ,intltool)))
2568 (arguments
2569 '(#:phases (modify-phases %standard-phases
2570 (add-after 'configure 'use-our-intltool
2571 (lambda _
2572 ;; Do not use the bundled intltool commands, which lack
2573 ;; the "dotless @INC" fixes of our 'intltool' package.
2574 (substitute* (find-files "." "^Makefile$")
2575 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2576 (string-append "INTLTOOL_" tool " = intltool-"
2577 (string-downcase tool) "\n")))
2578 #t)))))
2579 (home-page "https://www.gnome.org")
2580 (synopsis "Base MIME and Application database for GNOME")
2581 (description "GNOME Mime Data is a module which contains the base MIME
2582 and Application database for GNOME. The data stored by this module is
2583 designed to be accessed through the MIME functions in GnomeVFS.")
2584 (license license:gpl2+)))
2585
2586
2587 (define-public gnome-vfs
2588 (package
2589 (name "gnome-vfs")
2590 (version "2.24.4")
2591 (source (origin
2592 (method url-fetch)
2593 (uri (string-append "mirror://gnome/sources/" name "/"
2594 (version-major+minor version) "/"
2595 name "-" version ".tar.bz2"))
2596 (sha256
2597 (base32
2598 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2599 (build-system gnu-build-system)
2600 (arguments
2601 `(#:phases
2602 (modify-phases %standard-phases
2603 (add-before 'configure 'ignore-deprecations
2604 (lambda _
2605 (substitute* '("libgnomevfs/Makefile.in"
2606 "daemon/Makefile.in")
2607 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2608 #t))
2609 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2610 (lambda _
2611 (substitute* "test/test-async-cancel.c"
2612 (("EXIT_FAILURE") "77"))
2613 #t)))))
2614 (inputs `(("libxml2" ,libxml2)
2615 ("dbus-glib" ,dbus-glib)
2616 ("gconf" ,gconf)
2617 ("gnome-mime-data" ,gnome-mime-data)
2618 ("zlib" ,zlib)))
2619 (native-inputs
2620 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2621 ("intltool" ,intltool)
2622 ("pkg-config" ,pkg-config)))
2623 (home-page "https://developer.gnome.org/gnome-vfs/")
2624 (synopsis "Access files and folders in GNOME applications")
2625 (description
2626 "GnomeVFS is the core library used to access files and folders in GNOME
2627 applications. It provides a file system abstraction which allows applications
2628 to access local and remote files with a single consistent API.")
2629 (license license:lgpl2.0+)))
2630
2631
2632
2633 (define-public libgnome
2634 (package
2635 (name "libgnome")
2636 (version "2.32.1")
2637 (source (origin
2638 (method url-fetch)
2639 (uri (string-append "mirror://gnome/sources/" name "/"
2640 (version-major+minor version) "/"
2641 name "-" version ".tar.bz2"))
2642 (sha256
2643 (base32
2644 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2645 (patches (search-patches "libgnome-encoding.patch"))))
2646 (build-system gnu-build-system)
2647 (arguments
2648 `(#:phases
2649 (modify-phases %standard-phases
2650 (add-before 'configure 'enable-deprecated
2651 (lambda _
2652 (substitute* "libgnome/Makefile.in"
2653 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2654 #t)))))
2655 (inputs `(("libxml2" ,libxml2)))
2656 (native-inputs
2657 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2658 ("intltool" ,intltool)
2659 ("pkg-config" ,pkg-config)))
2660 ;; The following are listed as Required in the .pc file
2661 ;; (except for libcanberra -- which seems to be oversight on the part
2662 ;; of the upstream developers -- anything that links against libgnome,
2663 ;; must also link against libcanberra
2664 (propagated-inputs
2665 `(("libcanberra" ,libcanberra)
2666 ("libbonobo" ,libbonobo)
2667 ("gconf" ,gconf)
2668 ("gnome-vfs" ,gnome-vfs)
2669 ("popt" ,popt))) ;gnome-program.h includes popt.h
2670 (home-page "https://developer.gnome.org/libgnome/")
2671 (synopsis "Useful routines for building applications")
2672 (description "The libgnome library provides a number of useful routines
2673 for building modern applications, including session management, activation of
2674 files and URIs, and displaying help.")
2675 (license license:lgpl2.0+)))
2676
2677
2678 (define-public libart-lgpl
2679 (package
2680 (name "libart-lgpl")
2681 (version "2.3.21")
2682 (source (origin
2683 (method url-fetch)
2684 (uri (let ((upstream-name "libart_lgpl"))
2685 (string-append "mirror://gnome/sources/" upstream-name "/"
2686 (version-major+minor version) "/"
2687 upstream-name "-" version ".tar.bz2")))
2688 (sha256
2689 (base32
2690 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2691 (build-system gnu-build-system)
2692 (native-inputs
2693 `(("pkg-config" ,pkg-config)))
2694 (home-page "https://people.gnome.org/~mathieu/libart")
2695 (synopsis "2D drawing library")
2696 (description "Libart is a 2D drawing library intended as a
2697 high-quality vector-based 2D library with antialiasing and alpha composition.")
2698 (license license:lgpl2.0+)))
2699
2700
2701
2702 (define-public libgnomecanvas
2703 (package
2704 (name "libgnomecanvas")
2705 (version "2.30.3")
2706 (source (origin
2707 (method url-fetch)
2708 (uri (string-append "mirror://gnome/sources/" name "/"
2709 (version-major+minor version) "/"
2710 name "-" version ".tar.gz"))
2711 (sha256
2712 (base32
2713 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2714 (build-system gnu-build-system)
2715 ;; Mentioned as Required in the .pc file
2716 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2717 ("gtk+" ,gtk+-2)))
2718 (native-inputs
2719 `(("intltool" ,intltool)
2720 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2721 ("pkg-config" ,pkg-config)))
2722 (home-page "https://developer.gnome.org/libgnomecanvas/")
2723 (synopsis "Flexible widget for creating interactive structured graphics")
2724 (description "The GnomeCanvas widget provides a flexible widget for
2725 creating interactive structured graphics.")
2726 (license license:lgpl2.0+)))
2727
2728 (define-public libgnomecanvasmm
2729 (package
2730 (name "libgnomecanvasmm")
2731 (version "2.26.0")
2732 (source (origin
2733 (method url-fetch)
2734 (uri (string-append "mirror://gnome/sources/" name "/"
2735 (version-major+minor version) "/"
2736 name "-" version ".tar.bz2"))
2737 (sha256
2738 (base32
2739 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2740 (build-system gnu-build-system)
2741 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2742 (native-inputs
2743 `(("gtkmm-2" ,gtkmm-2)
2744 ("pkg-config" ,pkg-config)))
2745 (home-page "https://gtkmm.org")
2746 (synopsis "C++ bindings to the GNOME Canvas library")
2747 (description "C++ bindings to the GNOME Canvas library.")
2748 (license license:lgpl2.0+)))
2749
2750 (define-public libgnomeui
2751 (package
2752 (name "libgnomeui")
2753 (version "2.24.5")
2754 (source (origin
2755 (method url-fetch)
2756 (uri (string-append "mirror://gnome/sources/" name "/"
2757 (version-major+minor version) "/"
2758 name "-" version ".tar.bz2"))
2759 (patches (search-patches "libgnomeui-utf8.patch"))
2760 (sha256
2761 (base32
2762 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2763 (build-system gnu-build-system)
2764 ;; Mentioned as Required in the .pc file
2765 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2766 ("libgnome" ,libgnome)
2767 ("libgnomecanvas" ,libgnomecanvas)
2768 ("libgnome-keyring" ,libgnome-keyring)))
2769 (inputs `(("libjpeg" ,libjpeg-turbo)
2770 ("popt" ,popt)
2771 ("libbonobo" ,libbonobo)
2772 ("libxml2" ,libxml2)
2773 ("libglade" ,libglade)))
2774 (native-inputs
2775 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2776 ("intltool" ,intltool)
2777 ("pkg-config" ,pkg-config)))
2778 (home-page "https://developer.gnome.org/libgnomeui/")
2779 (synopsis "Additional widgets for applications")
2780 (description "The libgnomeui library provides additional widgets for
2781 applications. Many of the widgets from libgnomeui have already been
2782 ported to GTK+.")
2783 (license license:lgpl2.0+)))
2784
2785 (define-public libglade
2786 (package
2787 (name "libglade")
2788 (version "2.6.4")
2789 (source (origin
2790 (method url-fetch)
2791 (uri (string-append "mirror://gnome/sources/" name "/"
2792 (version-major+minor version) "/"
2793 name "-" version ".tar.bz2"))
2794 (sha256
2795 (base32
2796 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
2797 (build-system gnu-build-system)
2798 (inputs
2799 `(("python" ,python))) ;; needed for the optional libglade-convert program
2800 (propagated-inputs
2801 `(("gtk+-2" ,gtk+-2)
2802 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
2803 (native-inputs
2804 `(("pkg-config" ,pkg-config)))
2805 (home-page "https://developer.gnome.org/libglade")
2806 (synopsis "Load glade interfaces and access the glade built widgets")
2807 (description "Libglade is a library that provides interfaces for loading
2808 graphical interfaces described in glade files and for accessing the
2809 widgets built in the loading process.")
2810 (license license:gpl2+))) ; This is correct. GPL not LGPL
2811
2812 (define-public libgnomeprint
2813 ;; This library has been deprecated since 2006; see
2814 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
2815 (package
2816 (name "libgnomeprint")
2817 (version "2.18.8")
2818 (source (origin
2819 (method url-fetch)
2820 (uri (string-append "mirror://gnome/sources/" name "/"
2821 (version-major+minor version) "/"
2822 name "-" version ".tar.bz2"))
2823 (sha256
2824 (base32
2825 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
2826 (build-system gnu-build-system)
2827 (inputs
2828 `(("popt" ,popt)
2829 ("libart-lgpl" ,libart-lgpl)
2830 ("gtk+" ,gtk+-2)
2831 ("libxml2" ,libxml2)))
2832 (native-inputs
2833 `(("intltool" ,intltool)
2834 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2835 ("pkg-config" ,pkg-config)))
2836 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2837 (synopsis "Printing framework for GNOME")
2838 (description
2839 "GNOME-print was a printing framework for GNOME. It has been deprecated
2840 since ca. 2006, when GTK+ itself incorporated printing support.")
2841 (license license:lgpl2.0+)))
2842
2843
2844 (define-public libgnomeprintui
2845 ;; Deprecated; see libgnomeprint.
2846 (package
2847 (name "libgnomeprintui")
2848 (version "2.18.6")
2849 (source (origin
2850 (method url-fetch)
2851 (uri (string-append "mirror://gnome/sources/" name "/"
2852 (version-major+minor version) "/"
2853 name "-" version ".tar.bz2"))
2854 (sha256
2855 (base32
2856 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
2857 (build-system gnu-build-system)
2858 ;; Mentioned as Required in the .pc file
2859 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
2860 (inputs `(("gtk+" ,gtk+-2)
2861 ("glib" ,glib)
2862 ("gnome-icon-theme" ,gnome-icon-theme)
2863 ("libgnomecanvas" ,libgnomecanvas)
2864 ("libxml2" ,libxml2)))
2865 (native-inputs
2866 `(("intltool" ,intltool)
2867 ("pkg-config" ,pkg-config)))
2868 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
2869 (synopsis "Printing framework for GNOME")
2870 (description (package-description libgnomeprint))
2871 (license license:lgpl2.0+)))
2872
2873 (define-public libbonoboui
2874 (package
2875 (name "libbonoboui")
2876 (version "2.24.5")
2877 (source (origin
2878 (method url-fetch)
2879 (uri (string-append "mirror://gnome/sources/" name "/"
2880 (version-major+minor version) "/"
2881 name "-" version ".tar.bz2"))
2882 (sha256
2883 (base32
2884 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
2885 (build-system gnu-build-system)
2886 (arguments
2887 `(#:phases
2888 (modify-phases %standard-phases
2889 (add-before 'check 'start-xserver
2890 (lambda* (#:key inputs #:allow-other-keys)
2891 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2892 (disp ":1"))
2893
2894 (setenv "HOME" (getcwd))
2895 (setenv "DISPLAY" disp)
2896 ;; There must be a running X server and make check doesn't start one.
2897 ;; Therefore we must do it.
2898 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
2899 ;; Mentioned as Required by the .pc file
2900 (propagated-inputs `(("libxml2" ,libxml2)))
2901 (inputs
2902 `(("popt" ,popt)
2903 ("pangox-compat" ,pangox-compat)
2904 ("libgnome" ,libgnome)
2905 ("libgnomecanvas" ,libgnomecanvas)
2906 ("libglade" ,libglade)))
2907 (native-inputs
2908 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
2909 ("intltool" ,intltool)
2910 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
2911 ("pkg-config" ,pkg-config)))
2912 (home-page "https://developer.gnome.org/libbonoboui/")
2913 (synopsis "Some user interface controls using Bonobo")
2914 (description "The Bonobo UI library provides a number of user interface
2915 controls using the Bonobo component framework.")
2916 (license license:lgpl2.0+)))
2917
2918 (define-public libwnck
2919 (package
2920 (name "libwnck")
2921 (version "3.32.0")
2922 (source (origin
2923 (method url-fetch)
2924 (uri (string-append "mirror://gnome/sources/" name "/"
2925 (version-major+minor version) "/"
2926 name "-" version ".tar.xz"))
2927 (sha256
2928 (base32
2929 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
2930 (build-system meson-build-system)
2931 (native-inputs
2932 `(("pkg-config" ,pkg-config)
2933 ("glib" ,glib "bin") ; for glib-mkenums
2934 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
2935 ("intltool" ,intltool)))
2936 (propagated-inputs
2937 `(("gtk+" ,gtk+)
2938 ("libxres" ,libxres)
2939 ("startup-notification" ,startup-notification)))
2940 (home-page "https://developer.gnome.org/libwnck/")
2941 (synopsis "Window Navigator Construction Kit")
2942 (description
2943 "Libwnck is the Window Navigator Construction Kit, a library for use in
2944 writing pagers, tasklists, and more generally applications that are dealing
2945 with window management. It tries hard to respect the Extended Window Manager
2946 Hints specification (EWMH).")
2947 (license license:lgpl2.0+)))
2948
2949 ;; stable version for gtk2, required by xfwm4.
2950 (define-public libwnck-2
2951 (package (inherit libwnck)
2952 (name "libwnck")
2953 (version "2.30.7")
2954 (source (origin
2955 (method url-fetch)
2956 (uri (string-append "mirror://gnome/sources/" name "/"
2957 (version-major+minor version) "/"
2958 name "-" version ".tar.xz"))
2959 (sha256
2960 (base32
2961 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
2962 (build-system gnu-build-system)
2963 (native-inputs
2964 `(("pkg-config" ,pkg-config)
2965 ("intltool" ,intltool)))
2966 (propagated-inputs
2967 `(("gtk+" ,gtk+-2)
2968 ("libxres" ,libxres)
2969 ("startup-notification" ,startup-notification)))))
2970
2971 (define-public goffice
2972 (package
2973 (name "goffice")
2974 (version "0.10.46")
2975 (source (origin
2976 (method url-fetch)
2977 (uri (string-append "mirror://gnome/sources/goffice/"
2978 (version-major+minor version) "/"
2979 "goffice-" version ".tar.xz"))
2980 (sha256
2981 (base32 "1a8kba36zwzr0ilafc0d1nsxxma1qibviiifd0jhbxp180x6v385"))))
2982 (build-system gnu-build-system)
2983 (outputs '("out"
2984 "doc")) ; 4.0 MiB of gtk-doc
2985 (arguments
2986 '(#:configure-flags (list (string-append "--with-html-dir="
2987 (assoc-ref %outputs "doc")
2988 "/share/gtk-doc/html"))))
2989 (inputs
2990 `(("gtk+" ,gtk+)
2991 ("libgsf" ,libgsf)
2992 ("librsvg" ,librsvg)
2993 ("libxslt" ,libxslt)
2994 ("libxml2" ,libxml2)))
2995 (native-inputs
2996 `(("intltool" ,intltool)
2997 ("glib" ,glib "bin")
2998 ("pkg-config" ,pkg-config)))
2999 (home-page "https://developer.gnome.org/goffice/")
3000 (synopsis "Document-centric objects and utilities")
3001 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3002 (license
3003 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3004 ;; Note: NOT LGPL
3005 (list license:gpl2 license:gpl3))))
3006
3007 (define-public goffice-0.8
3008 (package (inherit goffice)
3009 (version "0.8.17")
3010 (source (origin
3011 (method url-fetch)
3012 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3013 (version-major+minor version) "/"
3014 (package-name goffice) "-" version ".tar.xz"))
3015 (sha256
3016 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3017 (arguments
3018 `(#:phases
3019 (modify-phases %standard-phases
3020 (add-after 'unpack 'fix-pcre-check
3021 (lambda _
3022 ;; Only glib.h can be included directly. See
3023 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3024 (substitute* "configure"
3025 (("glib/gregex\\.h") "glib.h")) #t)))
3026
3027 ,@(package-arguments goffice)))
3028 (propagated-inputs
3029 ;; libgoffice-0.8.pc mentions libgsf-1
3030 `(("libgsf" ,libgsf)))
3031 (inputs
3032 `(("gtk" ,gtk+-2)
3033 ,@(alist-delete "gtk" (package-inputs goffice))))))
3034
3035 (define-public gnumeric
3036 (package
3037 (name "gnumeric")
3038 (version "1.12.46")
3039 (source (origin
3040 (method url-fetch)
3041 (uri (string-append "mirror://gnome/sources/gnumeric/"
3042 (version-major+minor version) "/"
3043 "gnumeric-" version ".tar.xz"))
3044 (sha256
3045 (base32
3046 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3047 (build-system glib-or-gtk-build-system)
3048 (arguments
3049 `(;; The gnumeric developers don't worry much about failing tests.
3050 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3051 #:tests? #f
3052 #:phases
3053 (modify-phases %standard-phases
3054 (add-before
3055 'configure 'pre-conf
3056 (lambda* (#:key outputs #:allow-other-keys)
3057 ;; Make install tries to write into the directory of goffice
3058 ;; I am informed that this only affects the possibility to embed a
3059 ;; spreadsheet inside an Abiword document. So presumably when we
3060 ;; package Abiword we'll have to refer it to this directory.
3061 (substitute* "configure"
3062 (("^GOFFICE_PLUGINS_DIR=.*")
3063 (string-append "GOFFICE_PLUGINS_DIR="
3064 (assoc-ref outputs "out")
3065 "/goffice/plugins"))))))))
3066 (inputs
3067 `(("glib" ,glib)
3068 ("gtk+" ,gtk+)
3069 ("goffice" ,goffice)
3070 ("libgsf" ,libgsf)
3071 ("librsvg" ,librsvg)
3072 ("libxml2" ,libxml2)
3073 ("libxslt" ,libxslt)
3074 ("python" ,python-2)
3075 ("python2-pygobject" ,python2-pygobject)
3076 ("zlib" ,zlib)))
3077 (native-inputs
3078 `(("bison" ,bison)
3079 ("docbook-xml" ,docbook-xml)
3080 ("intltool" ,intltool)
3081 ("itstool" ,itstool)
3082 ("glib:bin" ,glib "bin")
3083 ("pkg-config" ,pkg-config)))
3084 (home-page "http://www.gnumeric.org")
3085 (synopsis "Spreadsheet application")
3086 (description
3087 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3088 interoperable with other spreadsheet applications. It has a vast array of
3089 features beyond typical spreadsheet functionality, such as support for linear
3090 and non-linear solvers, statistical analysis, and telecommunication
3091 engineering.")
3092 (license
3093 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3094 (list license:gpl2 license:gpl3))))
3095
3096 (define-public gnome-themes-standard
3097 (package
3098 (name "gnome-themes-standard")
3099 (version "3.22.3")
3100 (source
3101 (origin
3102 (method url-fetch)
3103 (uri (string-append "mirror://gnome/sources/" name "/"
3104 (version-major+minor version) "/" name "-"
3105 version ".tar.xz"))
3106 (sha256
3107 (base32
3108 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3109 (build-system gnu-build-system)
3110 (arguments
3111 '(#:configure-flags
3112 ;; Don't create 'icon-theme.cache'.
3113 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3114 (true (string-append coreutils "/bin/true")))
3115 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3116 (inputs
3117 `(("gtk+" ,gtk+)
3118 ("gtk+-2" ,gtk+-2)
3119 ("librsvg" ,librsvg)
3120 ("libxml2" ,libxml2)
3121 ("glib" ,glib)))
3122 (native-inputs
3123 `(("intltool" ,intltool)
3124 ("glib:bin" ,glib "bin")
3125 ("pkg-config" ,pkg-config)))
3126 (home-page "https://launchpad.net/gnome-themes-standard")
3127 (synopsis "Default GNOME 3 themes")
3128 (description
3129 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3130 (license license:lgpl2.1+)))
3131
3132 (define-public seahorse
3133 (package
3134 (name "seahorse")
3135 (version "3.34")
3136 (source
3137 (origin
3138 (method url-fetch)
3139 (uri (string-append "mirror://gnome/sources/" name "/"
3140 (version-major+minor version) "/" name "-"
3141 version ".tar.xz"))
3142 (sha256
3143 (base32
3144 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
3145 (build-system meson-build-system)
3146 (arguments
3147 '(#:glib-or-gtk? #t
3148 #:phases
3149 (modify-phases %standard-phases
3150 (add-after 'unpack 'skip-gtk-update-icon-cache
3151 ;; Don't create 'icon-theme.cache'.
3152 (lambda _
3153 (substitute* "build-aux/meson_post_install.py"
3154 (("gtk-update-icon-cache") "true"))
3155 #t)))))
3156 (inputs
3157 `(("gtk+" ,gtk+)
3158 ("gcr" ,gcr)
3159 ("gnupg" ,gnupg)
3160 ("gpgme" ,gpgme)
3161 ("openldap" ,openldap)
3162 ("openssh" ,openssh)
3163 ("avahi" ,avahi)
3164 ("libpwquality" ,libpwquality)
3165 ("libsecret" ,libsecret)
3166 ("libsoup" ,libsoup)))
3167 (native-inputs
3168 `(("gettext" ,gettext-minimal)
3169 ("glib:bin" ,glib "bin")
3170 ("itstool" ,itstool)
3171 ("pkg-config" ,pkg-config)
3172 ("vala" ,vala)
3173 ("xmllint" ,libxml2)))
3174 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3175 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3176 (description
3177 "Seahorse is a GNOME application for managing encryption keys and
3178 passwords in the GNOME keyring.")
3179 (license license:gpl2+)))
3180
3181 (define-public vala
3182 (package
3183 (name "vala")
3184 (version "0.46.5")
3185 (source (origin
3186 (method url-fetch)
3187 (uri (string-append "mirror://gnome/sources/" name "/"
3188 (version-major+minor version) "/"
3189 name "-" version ".tar.xz"))
3190 (sha256
3191 (base32
3192 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
3193 (build-system gnu-build-system)
3194 (arguments
3195 '(#:phases
3196 (modify-phases %standard-phases
3197 (add-before 'check 'pre-check
3198 (lambda _
3199 (setenv "CC" "gcc")
3200 (substitute* "valadoc/tests/testrunner.sh"
3201 (("export PKG_CONFIG_PATH=" m)
3202 (string-append m "$PKG_CONFIG_PATH:")))
3203 ;; For missing '/etc/machine-id'.
3204 (setenv "DBUS_FATAL_WARNINGS" "0")
3205 #t)))))
3206 (native-inputs
3207 `(("pkg-config" ,pkg-config)
3208 ("flex" ,flex)
3209 ("bison" ,bison)
3210 ("xsltproc" ,libxslt)
3211 ("dbus" ,dbus) ; for dbus tests
3212 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3213 (inputs
3214 `(("graphviz" ,graphviz)))
3215 (propagated-inputs
3216 `(("glib" ,glib))) ; required by libvala-0.40.pc
3217 (home-page "https://live.gnome.org/Vala/")
3218 (synopsis "Compiler for the GObject type system")
3219 (description
3220 "Vala is a programming language that aims to bring modern programming
3221 language features to GNOME developers without imposing any additional runtime
3222 requirements and without using a different ABI compared to applications and
3223 libraries written in C.")
3224 (license license:lgpl2.1+)))
3225
3226 (define-public vte
3227 (package
3228 (name "vte")
3229 (version "0.58.3")
3230 (source (origin
3231 (method url-fetch)
3232 (uri (string-append "mirror://gnome/sources/vte/"
3233 (version-major+minor version) "/"
3234 "vte-" version ".tar.xz"))
3235 (sha256
3236 (base32
3237 "0xa9ipwic4jnhhbzlnqbhssz10xkzv61cpkl1ammc6mdq95bbp12"))))
3238 (build-system meson-build-system)
3239 (native-inputs
3240 `(("pkg-config" ,pkg-config)
3241 ("intltool" ,intltool)
3242 ("vala" ,vala)
3243 ("gobject-introspection" ,gobject-introspection)
3244 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3245 ("gperf" ,gperf)
3246 ("xmllint" ,libxml2)))
3247 (propagated-inputs
3248 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3249 ("gnutls" ,gnutls) ; ditto
3250 ("pcre2" ,pcre2))) ; ditto
3251 (home-page "https://www.gnome.org/")
3252 (synopsis "Virtual Terminal Emulator")
3253 (description
3254 "VTE is a library (libvte) implementing a terminal emulator widget for
3255 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3256 gnome-terminal, but can also be used to embed a console/terminal in games,
3257 editors, IDEs, etc.")
3258 (license license:lgpl2.1+)))
3259
3260 (define-public vte-ng
3261 (package
3262 (inherit vte)
3263 (name "vte-ng")
3264 (version "0.58.2.a")
3265 (home-page "https://github.com/thestinger/vte-ng")
3266 (source (origin
3267 (method git-fetch)
3268 (uri (git-reference (url home-page) (commit version)))
3269 (file-name (git-file-name name version))
3270 (sha256
3271 (base32
3272 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3273 (build-system meson-build-system)
3274 (native-inputs
3275 `(("gtk-doc" ,gtk-doc)
3276 ,@(package-native-inputs vte)))
3277 (arguments
3278 `(#:configure-flags '("-Ddocs=true")))
3279 (synopsis "Enhanced VTE terminal widget")
3280 (description
3281 "VTE is a library (libvte) implementing a terminal emulator widget for
3282 GTK+, this fork provides additional functions exposed for keyboard text
3283 selection and URL hints.")))
3284
3285 ;; provides vte 2.90, required for some terminal emulators
3286 ;; tilda bug: https://github.com/lanoxx/tilda/issues/94
3287 ;; pantheon-terminal bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788021
3288 ;; roxterm bug: http://sourceforge.net/p/roxterm/bugs/107/
3289 ;; pantheon-terminal, roxterm are not currently packaged
3290 (define-public vte-0.36
3291 (package (inherit vte)
3292 (name "vte")
3293 (version "0.36.5")
3294 (source (origin
3295 (method url-fetch)
3296 (uri (string-append "mirror://gnome/sources/" name "/"
3297 (version-major+minor version) "/"
3298 name "-" version ".tar.xz"))
3299 (sha256
3300 (base32
3301 "1psfnqsmxx4qzc55qwvb8jai824ix4pqcdqhgxk0g2zh82bcxhn2"))))
3302 (propagated-inputs
3303 `(("gtk" ,gtk+)
3304 ("ncurses" ,ncurses)))))
3305
3306 ;; stable version for gtk2, required by xfce4-terminal.
3307 (define-public vte/gtk+-2
3308 (package (inherit vte)
3309 (name "vte")
3310 (version "0.28.2")
3311 (source (origin
3312 (method url-fetch)
3313 (uri (string-append "mirror://gnome/sources/" name "/"
3314 (version-major+minor version) "/"
3315 name "-" version ".tar.xz"))
3316 (sha256
3317 (base32
3318 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3319 (patches (search-patches
3320 "vte-CVE-2012-2738-pt1.patch"
3321 "vte-CVE-2012-2738-pt2.patch"))))
3322 (build-system gnu-build-system)
3323 (arguments
3324 '(#:configure-flags '("--disable-python")))
3325 (native-inputs
3326 `(("pkg-config" ,pkg-config)
3327 ("intltool" ,intltool)
3328 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3329 (propagated-inputs
3330 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3331 ("ncurses" ,ncurses))))) ; required by libvte.la
3332
3333 (define-public vinagre
3334 (package
3335 (name "vinagre")
3336 (version "3.22.0")
3337 (source (origin
3338 (method url-fetch)
3339 (uri (string-append "mirror://gnome/sources/" name "/"
3340 (version-major+minor version) "/"
3341 name "-" version ".tar.xz"))
3342 (patches (search-patches "vinagre-newer-freerdp.patch"
3343 "vinagre-newer-rdp-parameters.patch"))
3344 (sha256
3345 (base32
3346 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3347 (build-system glib-or-gtk-build-system)
3348 (arguments
3349 ;; Disable -Werror and such, to avoid build failures on compilation
3350 ;; warnings.
3351 '(#:configure-flags '("--enable-compile-warnings=minimum")
3352 #:phases
3353 (modify-phases %standard-phases
3354 (add-before 'install 'skip-gtk-update-icon-cache
3355 (lambda _
3356 ;; Don't create 'icon-theme.cache'
3357 (substitute* (find-files "." "^Makefile$")
3358 (("gtk-update-icon-cache") (which "true")))
3359 #t))
3360 (add-after 'unpack 'patch-configure
3361 (lambda _
3362 (substitute* "configure"
3363 (("freerdp") "freerdp2"))
3364 #t)))))
3365 (native-inputs
3366 `(("pkg-config" ,pkg-config)
3367 ("intltool" ,intltool)
3368 ("itstool" ,itstool)
3369 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3370 (inputs
3371 `(("libxml2" ,libxml2)
3372 ("gtk-vnc" ,gtk-vnc)
3373 ("gnome-keyring" ,gnome-keyring)
3374 ("libsecret" ,libsecret)
3375 ("freerdp" ,freerdp)
3376 ("spice" ,spice)
3377 ("spice-gtk" ,spice-gtk)
3378 ("telepathy-glib" ,telepathy-glib)
3379 ("vte" ,vte)))
3380 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3381 (synopsis "Remote desktop viewer for GNOME")
3382 (description "Vinagre is a remote display client supporting the VNC, SPICE
3383 and RDP protocols.")
3384 (license license:gpl3+)))
3385
3386 (define-public dconf
3387 (package
3388 (name "dconf")
3389 (version "0.34.0")
3390 (source (origin
3391 (method url-fetch)
3392 (uri (string-append
3393 "mirror://gnome/sources/" name "/"
3394 (version-major+minor version) "/"
3395 name "-" version ".tar.xz"))
3396 (patches (search-patches "dconf-meson-0.52.patch"))
3397 (sha256
3398 (base32
3399 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
3400 (build-system meson-build-system)
3401 (propagated-inputs
3402 ;; In Requires of dconf.pc.
3403 `(("glib" ,glib)))
3404 (inputs
3405 `(("gtk+" ,gtk+)
3406 ("dbus" ,dbus)))
3407 (native-inputs
3408 `(("bash-completion" ,bash-completion)
3409 ("libxslt" ,libxslt) ;for xsltproc
3410 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3411 ("docbook-xml" ,docbook-xml-4.2)
3412 ("docbook-xsl" ,docbook-xsl)
3413 ("glib:bin" ,glib "bin")
3414 ("gtk-doc" ,gtk-doc)
3415 ("pkg-config" ,pkg-config)
3416 ("vala" ,vala)))
3417 (arguments
3418 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3419 ; or /etc/machine-id.
3420 #:glib-or-gtk? #t
3421 #:configure-flags '("-Denable-gtk-doc=true")))
3422 (home-page "https://developer.gnome.org/dconf")
3423 (synopsis "Low-level GNOME configuration system")
3424 (description "Dconf is a low-level configuration system. Its main purpose
3425 is to provide a backend to GSettings on platforms that don't already have
3426 configuration storage systems.")
3427 (license license:lgpl2.1+)))
3428
3429 (define-public json-glib
3430 (package
3431 (name "json-glib")
3432 (version "1.4.4")
3433 (source (origin
3434 (method url-fetch)
3435 (uri (string-append "mirror://gnome/sources/" name "/"
3436 (version-major+minor version) "/"
3437 name "-" version ".tar.xz"))
3438 (sha256
3439 (base32
3440 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3441 (build-system meson-build-system)
3442 (native-inputs
3443 `(("gettext" ,gettext-minimal)
3444 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3445 ("gobject-introspection" ,gobject-introspection)
3446 ("pkg-config" ,pkg-config)))
3447 (propagated-inputs
3448 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3449 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3450 (synopsis "Compiler for the GObject type system")
3451 (description
3452 "JSON-GLib is a C library based on GLib providing serialization and
3453 deserialization support for the JavaScript Object Notation (JSON) format
3454 described by RFC 4627. It provides parser and generator GObject classes and
3455 various wrappers for the complex data types employed by JSON, such as arrays
3456 and objects.")
3457 (license license:lgpl2.1+)))
3458
3459 (define-public libxklavier
3460 (package
3461 (name "libxklavier")
3462 (version "5.4")
3463 (source (origin
3464 ;; Note: There's no tarball at ftp.gnome.org for this version.
3465 (method git-fetch)
3466 (uri (git-reference
3467 (url "https://anongit.freedesktop.org/git/libxklavier")
3468 (commit (string-append "libxklavier-" version))))
3469 (sha256
3470 (base32
3471 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3472 (file-name (git-file-name name version))))
3473 (build-system gnu-build-system)
3474 (arguments
3475 '(#:configure-flags
3476 (list (string-append "--with-xkb-base="
3477 (assoc-ref %build-inputs "xkeyboard-config")
3478 "/share/X11/xkb")
3479 "--disable-xmodmap-support")))
3480 (native-inputs
3481 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3482 ("gobject-introspection" ,gobject-introspection)
3483 ("pkg-config" ,pkg-config)
3484 ("gtk-doc" ,gtk-doc)
3485 ("intltool" ,intltool)
3486 ("which" ,which)
3487 ("autoconf" ,autoconf)
3488 ("automake" ,automake)
3489 ("libtool" ,libtool)))
3490 (propagated-inputs
3491 ;; Required by libxklavier.pc.
3492 `(("glib" ,glib)
3493 ("libxml2" ,libxml2)))
3494 (inputs
3495 `(("iso-codes" ,iso-codes)
3496 ("libxi" ,libxi)
3497 ("libxkbfile" ,libxkbfile)
3498 ("xkbcomp" ,xkbcomp)
3499 ("xkeyboard-config" ,xkeyboard-config)))
3500 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3501 (synopsis "High-level API for X Keyboard Extension")
3502 (description
3503 "LibXklavier is a library providing high-level API for X Keyboard
3504 Extension known as XKB. This library is intended to support XFree86 and other
3505 commercial X servers. It is useful for creating XKB-related software (layout
3506 indicators etc).")
3507 (license license:lgpl2.0+)))
3508
3509 (define-public python2-rsvg
3510 ;; XXX: This is actually a subset of gnome-python-desktop.
3511 (package
3512 (name "python2-rsvg")
3513 (version "2.32.0")
3514 (source
3515 (origin
3516 (method url-fetch)
3517 (uri (string-append
3518 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3519 version ".tar.bz2"))
3520 (sha256
3521 (base32
3522 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3523 (build-system gnu-build-system)
3524 (native-inputs
3525 `(("pkg-config" ,pkg-config)))
3526 (inputs
3527 `(("python" ,python-2)
3528 ("python2-pygtk" ,python2-pygtk)
3529 ("librsvg" ,librsvg)))
3530 (home-page "https://www.gnome.org")
3531 (synopsis "Python bindings to librsvg")
3532 (description
3533 "This package provides Python bindings to librsvg, the SVG rendering
3534 library.")
3535
3536 ;; This is the license of the rsvg bindings. The license of each module
3537 ;; of gnome-python-desktop is given in 'COPYING'.
3538 (license license:lgpl2.1+)))
3539
3540 (define-public glib-networking
3541 (package
3542 (name "glib-networking")
3543 (version "2.62.2")
3544 (source (origin
3545 (method url-fetch)
3546 (uri (string-append "mirror://gnome/sources/glib-networking/"
3547 (version-major+minor version) "/"
3548 "glib-networking-" version ".tar.xz"))
3549 (sha256
3550 (base32
3551 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
3552 (build-system meson-build-system)
3553 (arguments
3554 `(#:configure-flags '("-Dlibproxy_support=false")))
3555 (native-inputs
3556 `(("pkg-config" ,pkg-config)
3557 ("intltool" ,intltool)))
3558 (inputs
3559 `(("glib" ,glib)
3560 ("gnutls" ,gnutls)
3561 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3562 (home-page "https://www.gnome.org")
3563 (synopsis "Network-related GIO modules")
3564 (description
3565 "This package contains various network related extensions for the GIO
3566 library.")
3567 (license license:lgpl2.0+)))
3568
3569 (define-public rest
3570 (package
3571 (name "rest")
3572 (version "0.8.1")
3573 (source (origin
3574 (method url-fetch)
3575 (uri (string-append "mirror://gnome/sources/rest/"
3576 (version-major+minor version) "/"
3577 name "-" version ".tar.xz"))
3578 (sha256
3579 (base32
3580 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3581 (build-system gnu-build-system)
3582 (arguments
3583 '(#:tests? #f ; tests require internet connection
3584 #:configure-flags
3585 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3586 (native-inputs
3587 `(("glib-mkenums" ,glib "bin")
3588 ("gobject-introspection" ,gobject-introspection)
3589 ("pkg-config" ,pkg-config)))
3590 (propagated-inputs
3591 ;; rest-0.7.pc refers to all these.
3592 `(("glib" ,glib)
3593 ("libsoup" ,libsoup)
3594 ("libxml2" ,libxml2)))
3595 (home-page "https://www.gtk.org/")
3596 (synopsis "RESTful web api query library")
3597 (description
3598 "This library was designed to make it easier to access web services that
3599 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3600 libxml to ease remote use of the RESTful API.")
3601 (license license:lgpl2.1+)))
3602
3603 (define-public libsoup
3604 (package
3605 (name "libsoup")
3606 (version "2.70.0")
3607 (source (origin
3608 (method url-fetch)
3609 (uri (string-append "mirror://gnome/sources/libsoup/"
3610 (version-major+minor version) "/"
3611 "libsoup-" version ".tar.xz"))
3612 (sha256
3613 (base32
3614 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
3615 (build-system meson-build-system)
3616 (outputs '("out" "doc"))
3617 (arguments
3618 `(#:modules ((guix build utils)
3619 (guix build meson-build-system)
3620 (ice-9 popen))
3621
3622 #:configure-flags '("-Dgtk_doc=true")
3623 #:phases
3624 (modify-phases %standard-phases
3625 (add-after 'unpack 'adjust-tests
3626 (lambda _
3627 ;; This test fails due to missing /etc/nsswitch.conf
3628 ;; in the build environment.
3629 (substitute* "tests/socket-test.c"
3630 ((".*/sockets/unconnected.*") ""))
3631
3632 ;; These fail because "subdomain.localhost" does not resolve in
3633 ;; the build environment.
3634 (substitute* "tests/hsts-test.c"
3635 ((".*/hsts/basic.*") "")
3636 ((".*/hsts/subdomains.*") "")
3637 ((".*/hsts/superdomain.*") "")
3638 ((".*/hsts/utf8-address.*") ""))
3639 (substitute* "tests/hsts-db-test.c"
3640 ((".*/hsts-db/subdomains.*") ""))
3641
3642 ;; Generate a self-signed certificate that has "localhost" as its
3643 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3644 ;; 3.5.12, tests such as "ssl-tests" fail:
3645 ;;
3646 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3647 ;;
3648 ;; 'certtool' is interactive so we have to pipe it the answers.
3649 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3650 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3651 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3652 (for-each (lambda (line)
3653 (display line pipe)
3654 (newline pipe))
3655 '("" ;Common name
3656 "" ;UID
3657 "Guix" ;Organizational unit name
3658 "GNU" ;Organization name
3659 "" ;Locality name
3660 "" ;State or province
3661 "" ;Country
3662 "" ;subject's domain component (DC)
3663 "" ;E-mail
3664 "" ;serial number
3665 "-1" ;expiration time
3666 "N" ;belong to authority?
3667 "N" ;web client certificate?
3668 "N" ;IPsec IKE?
3669 "Y" ;web server certificate?
3670 "localhost" ;dnsName of subject
3671 "" ;dnsName of subject (end)
3672 "" ;URI of subject
3673 "127.0.0.1" ;IP address of subject
3674 "" ;signing?
3675 "" ;encryption (RSA)?
3676 "" ;data encryption?
3677 "" ;sign OCSP requests?
3678 "" ;sign code?
3679 "" ;time stamping?
3680 "" ;email protection?
3681 "" ;URI of the CRL distribution point
3682 "y" ;above info OK?
3683 ))
3684 (close-pipe pipe))
3685 #t))
3686 (add-after 'install 'move-doc
3687 (lambda* (#:key outputs #:allow-other-keys)
3688 (let ((out (assoc-ref outputs "out"))
3689 (doc (assoc-ref outputs "doc")))
3690 (mkdir-p (string-append doc "/share"))
3691 (copy-recursively (string-append out "/share/gtk-doc")
3692 (string-append doc "/share/gtk-doc"))
3693 (delete-file-recursively (string-append out "/share/gtk-doc"))
3694 #t))))))
3695 (native-inputs
3696 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3697 ("gobject-introspection" ,gobject-introspection)
3698 ("gtk-doc" ,gtk-doc)
3699 ("intltool" ,intltool)
3700 ("pkg-config" ,pkg-config)
3701 ("python" ,python-wrapper)
3702 ("vala" ,vala)
3703 ;; These are needed for the tests.
3704 ;; FIXME: Add PHP once available.
3705 ("curl" ,curl)
3706 ("gnutls" ,gnutls) ;for 'certtool'
3707 ("httpd" ,httpd)))
3708 (propagated-inputs
3709 ;; libsoup-2.4.pc refers to all these.
3710 `(("brotli" ,google-brotli)
3711 ("glib" ,glib)
3712 ("libpsl" ,libpsl)
3713 ("libxml2" ,libxml2)
3714 ("sqlite" ,sqlite)
3715 ("zlib" ,zlib)))
3716 (inputs
3717 `(("glib-networking" ,glib-networking)
3718 ("mit-krb5" ,mit-krb5)))
3719 (home-page "https://live.gnome.org/LibSoup/")
3720 (synopsis "GLib-based HTTP Library")
3721 (description
3722 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3723 and the GLib main loop, to integrate well with GNOME applications.")
3724 (license license:lgpl2.0+)))
3725
3726 (define-public libsecret
3727 (package
3728 (name "libsecret")
3729 (version "0.20.2")
3730 (source (origin
3731 (method url-fetch)
3732 (uri (string-append
3733 "mirror://gnome/sources/libsecret/"
3734 (version-major+minor version) "/"
3735 "libsecret-" version ".tar.xz"))
3736 (sha256
3737 (base32
3738 "1hzz34gmsxxf1jm1b7qin390rkwbg8sx198xdkwxqp3q6cw19sc1"))))
3739 (build-system gnu-build-system)
3740 (outputs '("out" "doc"))
3741 (arguments
3742 `(#:tests? #f ; FIXME: Testing hangs.
3743 #:configure-flags
3744 (list (string-append "--with-html-dir="
3745 (assoc-ref %outputs "doc")
3746 "/share/gtk-doc/html"))))
3747 (native-inputs
3748 `(("gettext" ,gettext-minimal)
3749 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3750 ("gobject-introspection" ,gobject-introspection)
3751 ("pkg-config" ,pkg-config)
3752 ("vala" ,vala)
3753 ("xsltproc" ,libxslt)))
3754 ;; These are needed for the tests.
3755 ;; FIXME: Add gjs once available.
3756 ;("dbus" ,dbus)
3757 ;("python2" ,python-2)
3758 ;("python2-dbus" ,python2-dbus)
3759 ;("python2-pygobject" ,python2-pygobject)
3760 ;("python2-pygobject-2" ,python2-pygobject-2)))
3761 (propagated-inputs
3762 `(("glib" ,glib))) ; required by libsecret-1.pc
3763 (inputs
3764 `(("docbook-xsl" ,docbook-xsl)
3765 ("libgcrypt" ,libgcrypt)
3766 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
3767 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
3768 (synopsis "GObject bindings for \"Secret Service\" API")
3769 (description
3770 "Libsecret is a GObject based library for storing and retrieving passwords
3771 and other secrets. It communicates with the \"Secret Service\" using DBus.")
3772 (license license:lgpl2.1+)))
3773
3774 (define-public five-or-more
3775 (package
3776 (name "five-or-more")
3777 (version "3.32.1")
3778 (source
3779 (origin
3780 (method url-fetch)
3781 (uri (string-append "mirror://gnome/sources/five-or-more/"
3782 (version-major+minor version) "/"
3783 "five-or-more-" version ".tar.xz"))
3784 (sha256
3785 (base32 "0xw05dd2dwi9vsph9h158b4n89s5k07xrh6bjz1icm0pdmjwhpgk"))))
3786 (build-system meson-build-system)
3787 (arguments
3788 '(#:glib-or-gtk? #t
3789 #:phases
3790 (modify-phases %standard-phases
3791 (add-after 'unpack 'skip-gtk-update-icon-cache
3792 (lambda _
3793 (substitute* "meson_post_install.py"
3794 (("gtk-update-icon-cache") (which "true")))
3795 #t)))))
3796 (native-inputs
3797 `(("pkg-config" ,pkg-config)
3798 ("appstream-glib" ,appstream-glib)
3799 ("desktop-file-utils" ,desktop-file-utils)
3800 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3801 ("intltool" ,intltool)
3802 ("itstool" ,itstool)
3803 ("vala" ,vala)
3804 ("xmllint" ,libxml2)))
3805 (inputs
3806 `(("gtk+" ,gtk+)
3807 ("libgnome-games-support" ,libgnome-games-support)
3808 ("librsvg" ,librsvg)))
3809 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
3810 (synopsis "Logic puzzle game")
3811 (description "Five or More is a game where you try to align
3812 five or more objects of the same color and shape causing them to disappear.
3813 On every turn more objects will appear, until the board is full.
3814 Try to last as long as possible.")
3815 (license license:gpl2+)))
3816
3817 (define-public gnome-mines
3818 (package
3819 (name "gnome-mines")
3820 (version "3.34.0")
3821 (source
3822 (origin
3823 (method url-fetch)
3824 (uri (string-append "mirror://gnome/sources/" name "/"
3825 (version-major+minor version) "/"
3826 name "-" version ".tar.xz"))
3827 (sha256
3828 (base32
3829 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
3830 (build-system meson-build-system)
3831 (arguments
3832 '(#:glib-or-gtk? #t
3833 #:phases
3834 (modify-phases %standard-phases
3835 (add-after 'unpack 'skip-gtk-update-icon-cache
3836 (lambda _
3837 (substitute* "build-aux/meson_post_install.py"
3838 (("gtk-update-icon-cache") (which "true")))
3839 #t)))))
3840 (native-inputs
3841 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
3842 ("pkg-config" ,pkg-config)
3843 ("desktop-file-utils" ,desktop-file-utils)
3844 ("intltool" ,intltool)
3845 ("itstool" ,itstool)
3846 ("vala" ,vala)
3847 ("yelp" ,yelp)
3848 ("appstream-glib" ,appstream-glib)))
3849 (inputs
3850 `(("gtk+" ,gtk+)
3851 ("libgnome-games-support" ,libgnome-games-support)
3852 ("librsvg" ,librsvg)))
3853 (home-page "https://wiki.gnome.org/Apps/Mines")
3854 (synopsis "Minesweeper game")
3855 (description
3856 "Mines (previously gnomine) is a puzzle game where you locate mines
3857 floating in an ocean using only your brain and a little bit of luck.")
3858 (license license:gpl2+)))
3859
3860 (define-public gnome-sudoku
3861 (package
3862 (name "gnome-sudoku")
3863 (version "3.34.1")
3864 (source
3865 (origin
3866 (method url-fetch)
3867 (uri (string-append "mirror://gnome/sources/" name "/"
3868 (version-major+minor version) "/"
3869 name "-" version ".tar.xz"))
3870 (sha256
3871 (base32
3872 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
3873 (build-system meson-build-system)
3874 (arguments
3875 '(#:glib-or-gtk? #t
3876 #:phases
3877 (modify-phases %standard-phases
3878 (add-after 'unpack 'skip-gtk-update-icon-cache
3879 (lambda _
3880 (substitute* "build-aux/post_install.py"
3881 (("gtk-update-icon-cache") (which "true")))
3882 #t)))))
3883 (native-inputs
3884 `(("pkg-config" ,pkg-config)
3885 ("desktop-file-utils" ,desktop-file-utils)
3886 ("glib:bin" ,glib "bin") ; for glib-compile-resources
3887 ("intltool" ,intltool)
3888 ("itstool" ,itstool)
3889 ("vala" ,vala)
3890 ("xmllint" ,libxml2)))
3891 (inputs
3892 `(("gtk+" ,gtk+)
3893 ("json-glib" ,json-glib)
3894 ("libgee" ,libgee)
3895 ("librsvg" ,librsvg)
3896 ("qqwing" ,qqwing)))
3897 (home-page "https://wiki.gnome.org/Apps/Sudoku")
3898 (synopsis "Japanese logic game")
3899 (description
3900 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
3901 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
3902 possible while still providing features that make playing difficult Sudoku
3903 more fun.")
3904 (license license:gpl2+)))
3905
3906 (define-public gnome-terminal
3907 (package
3908 (name "gnome-terminal")
3909 (version "3.34.2")
3910 (source
3911 (origin
3912 (method url-fetch)
3913 (uri (string-append "mirror://gnome/sources/" name "/"
3914 (version-major+minor version) "/"
3915 name "-" version ".tar.xz"))
3916 (sha256
3917 (base32
3918 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
3919 (build-system glib-or-gtk-build-system)
3920 (arguments
3921 '(#:configure-flags
3922 (list "--disable-migration" "--disable-search-provider"
3923 "--without-nautilus-extension")
3924 #:phases
3925 (modify-phases %standard-phases
3926 (add-before 'configure 'patch-/bin/true
3927 (lambda _
3928 (substitute* "configure"
3929 (("/bin/true") (which "true"))))))))
3930 (native-inputs
3931 `(("pkg-config" ,pkg-config)
3932 ("desktop-file-utils" ,desktop-file-utils)
3933 ("intltool" ,intltool)
3934 ("itstool" ,itstool)
3935 ("xmllint" ,libxml2)))
3936 (propagated-inputs
3937 `(("dconf" ,dconf)))
3938 (inputs
3939 `(("gtk+" ,gtk+)
3940 ("vte" ,vte)
3941 ("gnutls" ,gnutls)
3942 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
3943 ("util-linux" ,util-linux "lib")
3944 ("vala" ,vala)))
3945 (home-page "https://wiki.gnome.org/Apps/Terminal")
3946 (synopsis "Terminal emulator")
3947 (description
3948 "GNOME Terminal is a terminal emulator application for accessing a
3949 UNIX shell environment which can be used to run programs available on
3950 your system.
3951
3952 It supports several profiles, multiple tabs and implements several
3953 keyboard shortcuts.")
3954 (license license:gpl3+)))
3955
3956 (define-public colord
3957 (package
3958 (name "colord")
3959 (version "1.4.4")
3960 (source
3961 (origin
3962 (method url-fetch)
3963 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
3964 "colord-" version ".tar.xz"))
3965 (sha256
3966 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
3967 (build-system meson-build-system)
3968 (arguments
3969 '(;; FIXME: One test fails:
3970 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
3971 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
3972 ;; application/x-zerosize
3973 #:tests? #f
3974 #:glib-or-gtk? #t
3975 #:configure-flags (list "-Dlocalstatedir=/var"
3976 ;; No dep on systemd.
3977 "-Dsystemd=false"
3978 ;; Wants to install to global completion dir;
3979 ;; punt.
3980 "-Dbash_completion=false"
3981 "-Ddaemon_user=colord"
3982 "-Dsane=true"
3983 "-Dvapi=true"
3984 ;; Requires spotread.
3985 "-Dargyllcms_sensor=false"
3986 ;; TODO: Requires docbook2x.
3987 "-Dman=false")
3988 #:phases
3989 (modify-phases %standard-phases
3990 (add-before 'configure 'patch-build-system
3991 (lambda* (#:key outputs #:allow-other-keys)
3992 (substitute* "rules/meson.build"
3993 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
3994 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
3995 #t))
3996 (add-before 'configure 'set-sqlite3-file-name
3997 (lambda* (#:key inputs #:allow-other-keys)
3998 ;; "colormgr dump" works by invoking the "sqlite3" command.
3999 ;; Record its absolute file name.
4000 (let ((sqlite (assoc-ref inputs "sqlite")))
4001 (substitute* "client/cd-util.c"
4002 (("\"sqlite3\"")
4003 (string-append "\"" sqlite "/bin/sqlite3\"")))
4004 #t))))))
4005 (native-inputs
4006 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4007 ("gettext" ,gettext-minimal)
4008 ("gobject-introspection" ,gobject-introspection)
4009 ("gtk-doc" ,gtk-doc)
4010 ("pkg-config" ,pkg-config)
4011 ("vala" ,vala)))
4012 (propagated-inputs
4013 ;; colord.pc refers to all these.
4014 `(("glib" ,glib)
4015 ("lcms" ,lcms)
4016 ("udev" ,eudev)))
4017 (inputs
4018 `(("dbus-glib" ,dbus-glib)
4019 ("gusb" ,gusb)
4020 ("libgudev" ,libgudev)
4021 ("libusb" ,libusb)
4022 ("polkit" ,polkit)
4023 ("python" ,python-wrapper)
4024 ("sqlite" ,sqlite)
4025 ("sane-backends" ,sane-backends)))
4026 (home-page "https://www.freedesktop.org/software/colord/")
4027 (synopsis "Color management service")
4028 (description "Colord is a system service that makes it easy to manage,
4029 install and generate color profiles to accurately color manage input and
4030 output devices.")
4031 (license license:gpl2+)))
4032
4033 (define-public geoclue
4034 (package
4035 (name "geoclue")
4036 (version "2.5.5")
4037 (source
4038 (origin
4039 (method url-fetch)
4040 (uri
4041 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4042 version "/geoclue-" version ".tar.bz2"))
4043 (sha256
4044 (base32
4045 "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
4046 (patches (search-patches "geoclue-config.patch"))))
4047 (build-system meson-build-system)
4048 (arguments
4049 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4050 (native-inputs
4051 `(("pkg-config" ,pkg-config)
4052 ("gobject-introspection" ,gobject-introspection)
4053 ("modem-manager" ,modem-manager)
4054 ("libnotify" ,libnotify)
4055 ("gtk-doc", gtk-doc)
4056 ("intltool" ,intltool)))
4057 (inputs
4058 `(("avahi" ,avahi)
4059 ("glib:bin" ,glib "bin")
4060 ("glib-networking" ,glib-networking)
4061 ("json-glib" ,json-glib)
4062 ("libsoup" ,libsoup)))
4063 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4064 (synopsis "Geolocation service")
4065 (description "Geoclue is a D-Bus service that provides location
4066 information. The primary goal of the Geoclue project is to make creating
4067 location-aware applications as simple as possible, while the secondary goal is
4068 to ensure that no application can access location information without explicit
4069 permission from user.")
4070 (license license:gpl2+)))
4071
4072 (define-public geocode-glib
4073 (package
4074 (name "geocode-glib")
4075 (version "3.26.1")
4076 (source (origin
4077 (method url-fetch)
4078 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4079 (version-major+minor version) "/"
4080 "geocode-glib-" version ".tar.xz"))
4081 (sha256
4082 (base32
4083 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4084 (build-system meson-build-system)
4085 (arguments
4086 `(#:phases
4087 (modify-phases %standard-phases
4088 ;; The tests require a bunch of locales.
4089 (add-before 'check 'set-locales
4090 (lambda* (#:key inputs #:allow-other-keys)
4091 (setenv "GUIX_LOCPATH"
4092 (string-append (assoc-ref inputs "glibc-locales")
4093 "/lib/locale"))
4094 #t)))))
4095 (native-inputs
4096 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4097 ("glibc-locales" ,glibc-locales) ; for tests
4098 ("gettext" ,gettext-minimal)
4099 ("gobject-introspection" ,gobject-introspection)
4100 ("gtk-doc" ,gtk-doc)
4101 ("pkg-config" ,pkg-config)
4102 ("json-glib" ,json-glib)))
4103 (propagated-inputs
4104 ;; geocode-glib-1.0.pc refers to GIO.
4105 `(("glib" ,glib)))
4106 (inputs
4107 `(("libsoup" ,libsoup)))
4108 (home-page "https://github.com/GNOME/geocode-glib/")
4109 (synopsis "Geocoding and reverse-geocoding library")
4110 (description
4111 "geocode-glib is a convenience library for geocoding (finding longitude,
4112 and latitude from an address) and reverse geocoding (finding an address from
4113 coordinates) using the Nominatim service. geocode-glib caches requests for
4114 faster results and to avoid unnecessary server load.")
4115 (license license:lgpl2.0+)))
4116
4117 (define-public upower
4118 (package
4119 (name "upower")
4120 (version "0.99.11")
4121 (source (origin
4122 (method url-fetch)
4123 (uri (string-append "https://upower.freedesktop.org/releases/"
4124 "upower-" version ".tar.xz"))
4125 (sha256
4126 (base32
4127 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4128 (patches (search-patches "upower-builddir.patch"))
4129 (modules '((guix build utils)))
4130 (snippet
4131 '(begin
4132 ;; Upstream commit
4133 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4134 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4135 ;; 'dbus-configuration-directory' in (gnu services dbus)
4136 ;; expects it in etc/. Thus, move it back to its previous
4137 ;; location.
4138 (substitute* "src/Makefile.in"
4139 (("^dbusconfdir =.*$")
4140 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4141 #t))))
4142 (build-system glib-or-gtk-build-system)
4143 (arguments
4144 '( ;; The tests want to contact the system bus, which can't be done in the
4145 ;; build environment. The integration test can run, but the last of
4146 ;; the up-self-tests doesn't. Disable tests for now.
4147 #:tests? #f
4148 #:configure-flags (list "--localstatedir=/var"
4149 (string-append "--with-udevrulesdir="
4150 (assoc-ref %outputs "out")
4151 "/lib/udev/rules.d"))))
4152 (native-inputs
4153 `(("gobject-introspection" ,gobject-introspection)
4154 ("pkg-config" ,pkg-config)
4155 ("intltool" ,intltool)
4156 ("python" ,python)
4157
4158 ;; For man pages.
4159 ("libxslt" ,libxslt) ;for 'xsltproc'
4160 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4161 ("docbook-xsl" ,docbook-xsl)))
4162 (inputs
4163 `(("dbus-glib" ,dbus-glib)
4164 ("libgudev" ,libgudev)
4165 ("libusb" ,libusb)))
4166 (propagated-inputs
4167 ;; In Requires of upower-glib.pc.
4168 `(("glib" ,glib)))
4169 (home-page "https://upower.freedesktop.org/")
4170 (synopsis "System daemon for managing power devices")
4171 (description
4172 "UPower is an abstraction for enumerating power devices,
4173 listening to device events and querying history and statistics. Any
4174 application or service on the system can access the org.freedesktop.UPower
4175 service via the system message bus.")
4176 (license license:gpl2+)))
4177
4178 (define-public libgweather
4179 (package
4180 (name "libgweather")
4181 (version "3.34.0")
4182 (source (origin
4183 (method url-fetch)
4184 (uri (string-append "mirror://gnome/sources/" name "/"
4185 (version-major+minor version) "/"
4186 name "-" version ".tar.xz"))
4187 (sha256
4188 (base32
4189 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
4190 (build-system meson-build-system)
4191 (arguments
4192 `(#:tests? #f ; one of two tests requires network access
4193 #:configure-flags
4194 `(,(string-append "-Dzoneinfo_dir="
4195 (assoc-ref %build-inputs "tzdata")
4196 "/share/zoneinfo"))))
4197 (native-inputs
4198 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4199 ("gobject-introspection" ,gobject-introspection)
4200 ("pkg-config" ,pkg-config)
4201 ("vala" ,vala)
4202 ("intltool" ,intltool)))
4203 (propagated-inputs
4204 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4205 ;; libsoup.
4206 `(("gtk+" ,gtk+)
4207 ("gdk-pixbuf" ,gdk-pixbuf)
4208 ("libxml2" ,libxml2)
4209 ("libsoup" ,libsoup)
4210 ("geocode-glib" ,geocode-glib)))
4211 (inputs
4212 `(("tzdata" ,tzdata)))
4213 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4214 (synopsis "Location, time zone, and weather library for GNOME")
4215 (description
4216 "libgweather is a library to access weather information from online
4217 services for numerous locations.")
4218 (license license:gpl2+)))
4219
4220 (define-public gnome-settings-daemon
4221 (package
4222 (name "gnome-settings-daemon")
4223 (version "3.34.1")
4224 (source
4225 (origin
4226 (method url-fetch)
4227 (uri (string-append "mirror://gnome/sources/" name "/"
4228 (version-major+minor version) "/"
4229 name "-" version ".tar.xz"))
4230 (sha256
4231 (base32
4232 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
4233 (build-system meson-build-system)
4234 (arguments
4235 `(#:glib-or-gtk? #t
4236 #:configure-flags
4237 (list (string-append "-Dudev_dir="
4238 (assoc-ref %outputs "out")
4239 "/lib/udev/rules.d/")
4240 "-Dsystemd=false"
4241 ;; Otherwise, the RUNPATH will lack the final path component.
4242 (string-append "-Dc_link_args=-Wl,-rpath="
4243 (assoc-ref %outputs "out")
4244 "/lib/gnome-settings-daemon-3.0"))
4245 ;; Color management test can't reach the colord system service.
4246 #:tests? #f))
4247 (native-inputs
4248 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4249 ("pkg-config" ,pkg-config)
4250 ("intltool" ,intltool)
4251 ("xsltproc" ,libxslt)
4252 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4253 ("docbook-xml" ,docbook-xml-4.2)
4254 ("docbook-xsl" ,docbook-xsl)))
4255 (inputs
4256 `(("alsa-lib" ,alsa-lib)
4257 ("colord" ,colord)
4258 ("libgudev" ,libgudev)
4259 ("upower" ,upower)
4260 ("polkit" ,polkit)
4261 ("pulseaudio" ,pulseaudio)
4262 ("libcanberra" ,libcanberra)
4263 ("libx11" ,libx11)
4264 ("libxtst" ,libxtst)
4265 ("lcms" ,lcms)
4266 ("libnotify" ,libnotify)
4267 ("geoclue" ,geoclue)
4268 ("geocode-glib" ,geocode-glib)
4269 ("libgweather" ,libgweather)
4270 ("gnome-desktop" ,gnome-desktop)
4271 ("nss" ,nss)
4272 ("cups" ,cups)
4273 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4274 ("libwacom" ,libwacom)
4275 ("librsvg" ,librsvg)
4276 ("xf86-input-wacom" ,xf86-input-wacom)
4277 ("wayland" ,wayland)
4278 ("network-manager" ,network-manager)
4279 ("gcr" ,gcr)
4280 ("modem-manager" ,modem-manager)))
4281 (home-page "https://www.gnome.org")
4282 (synopsis "GNOME settings daemon")
4283 (description
4284 "This package contains the daemon responsible for setting the various
4285 parameters of a GNOME session and the applications that run under it. It
4286 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4287 settings, themes, mouse settings, and startup of other daemons.")
4288 (license license:gpl2+)))
4289
4290 (define-public totem-pl-parser
4291 (package
4292 (name "totem-pl-parser")
4293 (version "3.26.3")
4294 (source (origin
4295 (method url-fetch)
4296 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4297 (version-major+minor version) "/"
4298 "totem-pl-parser-" version ".tar.xz"))
4299 (sha256
4300 (base32
4301 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4302 (build-system meson-build-system)
4303 (arguments
4304 ;; FIXME: Tests require gvfs.
4305 `(#:tests? #f))
4306 (native-inputs
4307 `(("intltool" ,intltool)
4308 ("glib" ,glib "bin")
4309 ("gobject-introspection" ,gobject-introspection)
4310 ("pkg-config" ,pkg-config)))
4311 (propagated-inputs
4312 `(("glib" ,glib)
4313 ("gmime" ,gmime)
4314 ("libarchive" ,libarchive)
4315 ("libgcrypt" ,libgcrypt)
4316 ("libxml2" ,libxml2)))
4317 (inputs
4318 `(("libsoup" ,libsoup)))
4319 (home-page "https://projects.gnome.org/totem")
4320 (synopsis "Library to parse and save media playlists for GNOME")
4321 (description "Totem-pl-parser is a GObjects-based library to parse and save
4322 playlists in a variety of formats.")
4323 (license license:lgpl2.0+)))
4324
4325 (define-public aisleriot
4326 (package
4327 (name "aisleriot")
4328 (version "3.22.9")
4329 (source (origin
4330 (method url-fetch)
4331 (uri (string-append "mirror://gnome/sources/aisleriot/"
4332 (version-major+minor version) "/"
4333 "aisleriot-" version ".tar.xz"))
4334 (sha256
4335 (base32
4336 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4337 (build-system glib-or-gtk-build-system)
4338 (arguments
4339 '(#:configure-flags
4340 '("--with-platform=gtk-only"
4341 "--with-card-theme-formats=svg")))
4342 (native-inputs
4343 `(("desktop-file-utils" ,desktop-file-utils)
4344 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4345 ("intltool" ,intltool)
4346 ("itstool" ,itstool)
4347 ("pkg-config" ,pkg-config)
4348 ("xmllint" ,libxml2)))
4349 (inputs
4350 `(("gtk+" ,gtk+)
4351 ("guile" ,guile-2.2)
4352 ("libcanberra" ,libcanberra)
4353 ("librsvg" ,librsvg)))
4354 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4355 (synopsis "Solitaire card games")
4356 (description
4357 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4358 which are easy to play with the aid of a mouse.")
4359 (license license:gpl3+)))
4360
4361 (define-public amtk
4362 (package
4363 (name "amtk")
4364 (version "5.0.2")
4365 (source (origin
4366 (method url-fetch)
4367 (uri (string-append "mirror://gnome/sources/amtk/"
4368 (version-major+minor version) "/"
4369 "amtk-" version ".tar.xz"))
4370 (sha256
4371 (base32
4372 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
4373 (build-system gnu-build-system)
4374 (arguments
4375 '(#:configure-flags '("--enable-gtk-doc")))
4376 (native-inputs
4377 `(("gobject-introspection" ,gobject-introspection)
4378 ("glib:bin" ,glib "bin") ; for glib-mkenums
4379 ("gtk-doc" ,gtk-doc)
4380 ("pkg-config" ,pkg-config)))
4381 (inputs
4382 `(("glib" ,glib)
4383 ("gtk+" ,gtk+)))
4384 (home-page "https://wiki.gnome.org/Projects/Amtk")
4385 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4386 (description
4387 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4388 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4389 both a traditional UI or a modern UI with a GtkHeaderBar.")
4390 (license license:lgpl2.1+)))
4391
4392 (define-public devhelp
4393 (package
4394 (name "devhelp")
4395 (version "3.34.0")
4396 (source (origin
4397 (method url-fetch)
4398 (uri (string-append "mirror://gnome/sources/" name "/"
4399 (version-major+minor version) "/"
4400 name "-" version ".tar.xz"))
4401 (sha256
4402 (base32
4403 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
4404 (build-system meson-build-system)
4405 (arguments
4406 '(#:glib-or-gtk? #t
4407 #:phases
4408 (modify-phases %standard-phases
4409 (add-after 'unpack 'skip-gtk-update-icon-cache
4410 ;; Don't create 'icon-theme.cache'.
4411 (lambda _
4412 (substitute* "meson_post_install.py"
4413 (("gtk-update-icon-cache") "true"))
4414 #t)))))
4415 (native-inputs
4416 `(("intltool" ,intltool)
4417 ("itstool" ,itstool)
4418 ("gobject-introspection" ,gobject-introspection)
4419 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4420 ("pkg-config" ,pkg-config)))
4421 (inputs
4422 `(("amtk" ,amtk)
4423 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4424 ("webkitgtk" ,webkitgtk)))
4425 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4426 (synopsis "API documentation browser for GNOME")
4427 (description
4428 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4429 natively with GTK-Doc (the API reference system developed for GTK+ and used
4430 throughout GNOME for API documentation).")
4431 (license license:gpl2+)))
4432
4433 (define-public cogl
4434 (package
4435 (name "cogl")
4436 (version "1.22.4")
4437 (source
4438 (origin
4439 (method url-fetch)
4440 (uri (string-append "mirror://gnome/sources/cogl/"
4441 (version-major+minor version) "/"
4442 "cogl-" version ".tar.xz"))
4443 (sha256
4444 (base32 "1q0drs82a8f6glg1v29bb6g2nf15fw0rvdx3d0rgcgfarfaby5sj"))))
4445 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4446 ;; cogl, corresponding changes may be appropriate in mutter as well.
4447 (build-system gnu-build-system)
4448 (native-inputs
4449 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4450 ("gobject-introspection" ,gobject-introspection)
4451 ;;("xorg-server" ,xorg-server) ; for the test suite
4452 ("pkg-config" ,pkg-config)))
4453 (propagated-inputs
4454 `(("glib" ,glib)
4455 ("gdk-pixbuf" ,gdk-pixbuf)
4456 ("libx11" ,libx11)
4457 ("libxext" ,libxext)
4458 ("libxfixes" ,libxfixes)
4459 ("libxdamage" ,libxdamage)
4460 ("libxcomposite" ,libxcomposite)
4461 ("libxrandr" ,libxrandr)))
4462 (inputs
4463 `(("mesa" ,mesa)
4464 ("cairo" ,cairo)
4465 ("pango" ,pango)
4466 ("gstreamer" ,gstreamer)
4467 ("gst-plugins-base" ,gst-plugins-base)
4468 ("wayland" ,wayland)))
4469 (arguments
4470 `(#:configure-flags (list "--enable-cogl-gst"
4471 "--enable-wayland-egl-platform"
4472 "--enable-wayland-egl-server"
4473
4474 ;; Arrange to pass an absolute file name to
4475 ;; dlopen for libGL.so.
4476 (string-append "--with-gl-libname="
4477 (assoc-ref %build-inputs "mesa")
4478 "/lib/libGL.so"))
4479 ;; XXX FIXME: All tests fail, with many warnings printed like this:
4480 ;; _FontTransOpen: Unable to Parse address
4481 ;; ${prefix}/share/fonts/X11/misc/
4482 #:tests? #f
4483 #; #:phases
4484 #;
4485 (modify-phases %standard-phases
4486 (add-before 'check 'start-xorg-server
4487 (lambda* (#:key inputs #:allow-other-keys)
4488 ;; The test suite requires a running X server.
4489 (system (format #f "~a/bin/Xvfb :1 &"
4490 (assoc-ref inputs "xorg-server")))
4491 (setenv "DISPLAY" ":1")
4492 #t)))))
4493 (home-page "https://www.cogl3d.org")
4494 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4495 (description
4496 "Cogl is a small library for using 3D graphics hardware to draw pretty
4497 pictures. The API departs from the flat state machine style of OpenGL and is
4498 designed to make it easy to write orthogonal components that can render
4499 without stepping on each others toes.")
4500 (license (list license:expat ; most of the code
4501 license:bsd-3 ; cogl/cogl-point-in-poly.c
4502 license:sgifreeb2.0 ; cogl-path/tesselator/
4503 license:asl2.0)))) ; examples/android/
4504
4505 (define-public clutter
4506 (package
4507 (name "clutter")
4508 (version "1.26.2")
4509 (source
4510 (origin
4511 (method url-fetch)
4512 (uri (string-append "mirror://gnome/sources/" name "/"
4513 (version-major+minor version) "/"
4514 name "-" version ".tar.xz"))
4515 (sha256
4516 (base32
4517 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4518 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4519 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4520 (build-system gnu-build-system)
4521 (outputs '("out"
4522 "doc")) ;9 MiB of gtk-doc HTML pages
4523 (native-inputs
4524 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4525 ("gobject-introspection" ,gobject-introspection)
4526 ("pkg-config" ,pkg-config)
4527 ("xsltproc" ,libxslt)))
4528 (propagated-inputs
4529 `(("cogl" ,cogl)
4530 ("cairo" ,cairo)
4531 ("atk" ,atk)
4532 ("gtk+" ,gtk+)
4533 ("json-glib" ,json-glib)
4534 ("glib" ,glib)
4535 ("libxcomposite" ,libxcomposite)
4536 ("libxdamage" ,libxdamage)
4537 ("libxext" ,libxext)
4538 ("xinput" ,xinput)))
4539 (inputs
4540 `(("libxkbcommon" ,libxkbcommon)
4541 ("udev" ,eudev)))
4542 (arguments
4543 `(#:configure-flags (list "--enable-x11-backend=yes"
4544
4545 ;; This produces share/doc/{clutter,cally}.
4546 (string-append "--with-html-dir="
4547 (assoc-ref %outputs "doc")
4548 "/share/doc"))
4549 ;; XXX FIXME: Get test suite working. It would probably fail in the
4550 ;; same way the cogl tests fail, since clutter is based on cogl.
4551 #:tests? #f))
4552 (home-page "http://www.clutter-project.org")
4553 (synopsis "OpenGL-based interactive canvas library")
4554 (description
4555 "Clutter is an OpenGL-based interactive canvas library, designed for
4556 creating fast, mainly 2D single window applications such as media box UIs,
4557 presentations, kiosk style applications and so on.")
4558 (license license:lgpl2.0+)))
4559
4560 (define-public clutter-gtk
4561 (package
4562 (name "clutter-gtk")
4563 (version "1.8.4")
4564 (source
4565 (origin
4566 (method url-fetch)
4567 (uri (string-append "mirror://gnome/sources/" name "/"
4568 (version-major+minor version) "/"
4569 name "-" version ".tar.xz"))
4570 (sha256
4571 (base32
4572 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4573 (build-system gnu-build-system)
4574 (native-inputs
4575 `(("pkg-config" ,pkg-config)
4576 ("gobject-introspection" ,gobject-introspection)))
4577 (propagated-inputs
4578 ;; clutter-gtk.pc refers to all these.
4579 `(("clutter" ,clutter)
4580 ("gtk+" ,gtk+)))
4581 (home-page "http://www.clutter-project.org")
4582 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4583 (description
4584 "Clutter is an OpenGL-based interactive canvas library, designed for
4585 creating fast, mainly 2D single window applications such as media box UIs,
4586 presentations, kiosk style applications and so on.")
4587 (license license:lgpl2.0+)))
4588
4589 (define-public clutter-gst
4590 (package
4591 (name "clutter-gst")
4592 (version "3.0.27")
4593 (source
4594 (origin
4595 (method url-fetch)
4596 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4597 (version-major+minor version) "/"
4598 "clutter-gst-" version ".tar.xz"))
4599 (sha256
4600 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4601 (build-system gnu-build-system)
4602 (native-inputs
4603 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4604 ("pkg-config" ,pkg-config)
4605 ("gobject-introspection" ,gobject-introspection)))
4606 (inputs
4607 `(("clutter" ,clutter)
4608 ("gstreamer" ,gstreamer)
4609 ("gst-plugins-base" ,gst-plugins-base)))
4610 (home-page "http://www.clutter-project.org")
4611 (synopsis "Integration library for using GStreamer with Clutter")
4612 (description
4613 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4614 It provides a GStreamer sink to upload frames to GL and an actor that
4615 implements the ClutterGstPlayer interface using playbin. Clutter is an
4616 OpenGL-based interactive canvas library.")
4617 (license license:lgpl2.0+)))
4618
4619 (define-public libchamplain
4620 (package
4621 (name "libchamplain")
4622 (version "0.12.16")
4623 (source (origin
4624 (method url-fetch)
4625 (uri (string-append
4626 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4627 version ".tar.xz"))
4628 (sha256
4629 (base32
4630 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4631 (build-system gnu-build-system)
4632 (arguments '(#:configure-flags '("--enable-vala")))
4633 (native-inputs
4634 `(("gobject-introspection" ,gobject-introspection)
4635 ("pkg-config" ,pkg-config)
4636 ("vala" ,vala)))
4637 (propagated-inputs
4638 `(("libsoup" ,libsoup)
4639 ("sqlite" ,sqlite)
4640 ("clutter" ,clutter)
4641 ("clutter-gtk" ,clutter-gtk)
4642 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4643 ("cairo" ,cairo)
4644 ("gtk+3" ,gtk+)
4645 ("glib" ,glib)))
4646 (home-page "https://projects.gnome.org/libchamplain/")
4647 (synopsis "C library providing a ClutterActor to display maps")
4648 (description
4649 "libchamplain is a C library providing a ClutterActor to display maps.
4650 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4651 and Perl bindings are also available. It supports numerous free map sources
4652 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4653 (license license:lgpl2.1+)))
4654
4655 (define-public gom
4656 (package
4657 (name "gom")
4658 (version "0.3.2")
4659 (source
4660 (origin
4661 (method url-fetch)
4662 (uri (string-append "mirror://gnome/sources/gom/"
4663 (version-major+minor version) "/"
4664 "gom-" version ".tar.xz"))
4665 (sha256
4666 (base32
4667 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4668 (build-system gnu-build-system)
4669 (native-inputs
4670 `(("intltool" ,intltool)
4671 ("pkg-config" ,pkg-config)
4672 ("gobject-introspection" ,gobject-introspection)))
4673 (inputs
4674 `(("glib" ,glib)
4675 ("gdk-pixbuf" ,gdk-pixbuf)
4676 ("sqlite" ,sqlite)))
4677 ;; XXX TODO: Figure out how to run the test suite.
4678 (arguments `(#:tests? #f))
4679 (home-page "https://wiki.gnome.org/Projects/Gom")
4680 (synopsis "Object mapper from GObjects to SQLite")
4681 (description
4682 "Gom provides an object mapper from GObjects to SQLite. It helps you
4683 write applications that need to store structured data as well as make complex
4684 queries upon that data.")
4685 (license license:lgpl2.1+)))
4686
4687 (define-public libgnome-games-support
4688 (package
4689 (name "libgnome-games-support")
4690 (version "1.4.4")
4691 (source (origin
4692 (method url-fetch)
4693 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4694 (version-major+minor version) "/"
4695 "libgnome-games-support-" version ".tar.xz"))
4696 (sha256
4697 (base32
4698 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
4699 (build-system gnu-build-system)
4700 (arguments
4701 '(#:phases
4702 (modify-phases %standard-phases
4703 (add-before 'check 'pre-check
4704 (lambda _
4705 ;; Tests require a writable HOME.
4706 (setenv "HOME" (getcwd))
4707 #t)))))
4708 (native-inputs
4709 `(("intltool" ,intltool)
4710 ("pkg-config" ,pkg-config)
4711 ("vala" ,vala)))
4712 (propagated-inputs
4713 ;; Required by libgnome-games-support-1.0.pc
4714 `(("gtk+" ,gtk+)
4715 ("libgee" ,libgee)))
4716 (home-page "https://www.gnome.org/")
4717 (synopsis "Useful functionality shared among GNOME games")
4718 (description
4719 "libgnome-games-support is a small library intended for internal use by
4720 GNOME Games, but it may be used by others.")
4721 (license license:lgpl3+)))
4722
4723 (define-public gnome-klotski
4724 (package
4725 (name "gnome-klotski")
4726 (version "3.34.0")
4727 (source (origin
4728 (method url-fetch)
4729 (uri (string-append "mirror://gnome/sources/" name "/"
4730 (version-major+minor version) "/"
4731 name "-" version ".tar.xz"))
4732 (sha256
4733 (base32
4734 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
4735 (build-system meson-build-system)
4736 (arguments
4737 '(#:glib-or-gtk? #t
4738 #:phases
4739 (modify-phases %standard-phases
4740 (add-after 'unpack 'skip-gtk-update-icon-cache
4741 ;; Don't create 'icon-theme.cache'.
4742 (lambda _
4743 (substitute* "build-aux/meson_post_install.py"
4744 (("gtk-update-icon-cache") (which "true")))
4745 #t)))))
4746 (native-inputs
4747 `(("desktop-file-utils" ,desktop-file-utils)
4748 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4749 ("intltool" ,intltool)
4750 ("itstool" ,itstool)
4751 ("pkg-config" ,pkg-config)
4752 ("vala" ,vala)
4753 ("xmllint" ,libxml2)))
4754 (inputs
4755 `(("gtk+" ,gtk+)
4756 ("libgnome-games-support" ,libgnome-games-support)
4757 ("librsvg" ,librsvg)))
4758 (home-page "https://wiki.gnome.org/Apps/Klotski")
4759 (synopsis "Sliding block puzzles")
4760 (description
4761 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
4762 the patterned block to the area bordered by green markers. To do so, you will
4763 need to slide other blocks out of the way. Complete each puzzle in as few moves
4764 as possible!")
4765 (license license:gpl2+)))
4766
4767 (define-public grilo
4768 (package
4769 (name "grilo")
4770 (version "0.3.10")
4771 (source
4772 (origin
4773 (method url-fetch)
4774 (uri (string-append "mirror://gnome/sources/" name "/"
4775 (version-major+minor version) "/"
4776 name "-" version ".tar.xz"))
4777 (sha256
4778 (base32
4779 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
4780 (build-system meson-build-system)
4781 (native-inputs
4782 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
4783 ("intltool" ,intltool)
4784 ("pkg-config" ,pkg-config)
4785 ("gobject-introspection" ,gobject-introspection)
4786 ("gtk-doc" ,gtk-doc)
4787 ("vala" ,vala)))
4788 (inputs
4789 `(("cyrus-sasl" ,cyrus-sasl)
4790 ("glib" ,glib)
4791 ("gtk+" ,gtk+)
4792 ("libxml2" ,libxml2)
4793 ("liboauth" ,liboauth)
4794 ("libsoup" ,libsoup)
4795 ("totem-pl-parser" ,totem-pl-parser)))
4796 (native-search-paths
4797 (list (search-path-specification
4798 (variable "GRL_PLUGIN_PATH")
4799 (files (list (string-append "lib/grilo-"
4800 (version-major+minor version)))))))
4801 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
4802 (synopsis "Framework for discovering and browsing media")
4803 (description
4804 "Grilo is a framework focused on making media discovery and browsing easy
4805 for application developers.")
4806 (license license:lgpl2.1+)))
4807
4808 (define-public grilo-plugins
4809 (package
4810 (name "grilo-plugins")
4811 (version "0.3.10")
4812 (source
4813 (origin
4814 (method url-fetch)
4815 (uri (string-append "mirror://gnome/sources/" name "/"
4816 (version-major+minor version) "/"
4817 name "-" version ".tar.xz"))
4818 (sha256
4819 (base32
4820 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
4821 (build-system meson-build-system)
4822 (native-inputs
4823 `(("gettext" ,gettext-minimal)
4824 ("glib:bin" ,glib "bin")
4825 ("gtk+:bin" ,gtk+ "bin")
4826 ("itstool" ,itstool)
4827 ("pkg-config" ,pkg-config)))
4828 ;; TODO: ahavi, gstreamer
4829 (inputs
4830 `(("grilo" ,grilo)
4831 ;("gmime" ,gmime) ; unused
4832 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
4833 ("gom" ,gom)
4834 ;("gssdp" ,gssdp) ; unused
4835 ;("gupnp" ,gupnp) ; unused
4836 ;("gupnp-av" ,gupnp-av) ; unused
4837 ("json-glib" ,json-glib)
4838 ("avahi" ,avahi)
4839 ("libgdata" ,libgdata)
4840 ("libmediaart" ,libmediaart)
4841 ;("librest" ,rest) ; unused
4842 ("libsoup" ,libsoup)
4843 ("totam-pl-parser" ,totem-pl-parser)
4844 ("tracker" ,tracker))) ; unused because it's too old
4845 (arguments
4846 `(#:glib-or-gtk? #t
4847 ;;Disable lua-factory as it needs missing dependencies
4848 #:configure-flags '("-Denable-lua-factory=no")))
4849 (home-page "https://live.gnome.org/Grilo")
4850 (synopsis "Plugins for the Grilo media discovery library")
4851 (description
4852 "Grilo is a framework focused on making media discovery and browsing easy
4853 for application developers. This package provides plugins for common media
4854 discovery protocols.")
4855 (license license:lgpl2.1+)))
4856
4857 (define-public totem
4858 (package
4859 (name "totem")
4860 (version "3.34.1")
4861 (source
4862 (origin
4863 (method url-fetch)
4864 (uri (string-append "mirror://gnome/sources/" name "/"
4865 (version-major+minor version) "/"
4866 name "-" version ".tar.xz"))
4867 (sha256
4868 (base32
4869 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
4870 (build-system meson-build-system)
4871 (native-inputs
4872 `(("pkg-config" ,pkg-config)
4873 ("desktop-file-utils" ,desktop-file-utils)
4874 ("gobject-introspection" ,gobject-introspection)
4875 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
4876 ("intltool" ,intltool)
4877 ("itstool" ,itstool)
4878 ("xmllint" ,libxml2)
4879 ("python-pylint" ,python-pylint)
4880 ("xorg-server" ,xorg-server-for-tests)))
4881 (propagated-inputs
4882 `(("dconf" ,dconf)))
4883 (inputs
4884 `(("gtk+" ,gtk+)
4885 ("gdk-pixbuf" ,gdk-pixbuf)
4886 ("atk" ,atk)
4887 ("cairo" ,cairo)
4888 ("dbus-glib" ,dbus-glib)
4889 ("clutter" ,clutter)
4890 ("clutter-gtk" ,clutter-gtk)
4891 ("clutter-gst" ,clutter-gst)
4892 ("xorgproto" ,xorgproto)
4893 ("libxxf86vm" ,libxxf86vm)
4894 ("libxtst" ,libxtst)
4895 ("libxrandr" ,libxrandr)
4896 ("libxml2" ,libxml2)
4897 ("libsoup" ,libsoup)
4898 ("libpeas" ,libpeas)
4899 ("librsvg" ,librsvg)
4900 ("lirc" ,lirc)
4901 ("gnome-desktop" ,gnome-desktop)
4902 ("gstreamer" ,gstreamer)
4903 ("gst-plugins-base" ,gst-plugins-base)
4904 ("gst-plugins-good" ,gst-plugins-good)
4905 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4906 ("adwaita-icon-theme" ,adwaita-icon-theme)
4907 ("python" ,python)
4908 ("python-pygobject" ,python-pygobject)
4909 ("totem-pl-parser" ,totem-pl-parser)
4910 ("grilo" ,grilo)
4911 ("grilo-plugins" ,grilo-plugins)
4912 ("vala" ,vala)))
4913 (arguments
4914 `(#:glib-or-gtk? #t
4915
4916 ;; Disable automatic GStreamer plugin installation via PackageKit and
4917 ;; all that.
4918 #:configure-flags '("-D" "enable-easy-codec-installation=no"
4919
4920 ;; Do not build .a files for the plugins, it's
4921 ;; completely useless. This saves 2 MiB.
4922 "--default-library" "shared")
4923 #:phases
4924 (modify-phases %standard-phases
4925 (add-after 'unpack 'skip-gtk-update-icon-cache
4926 ;; Don't create 'icon-theme.cache'.
4927 (lambda _
4928 (substitute* "meson_post_install.py"
4929 (("gtk-update-icon-cache") "true"))
4930 #t))
4931 (add-before
4932 'install 'disable-cache-generation
4933 (lambda _
4934 (setenv "DESTDIR" "/")
4935 #t))
4936 (add-before
4937 'check 'pre-check
4938 (lambda _
4939 ;; Tests require a running X server.
4940 (system "Xvfb :1 &")
4941 (setenv "DISPLAY" ":1")
4942 #t))
4943 (add-after
4944 'install 'wrap-totem
4945 (lambda* (#:key inputs outputs #:allow-other-keys)
4946 (let ((out (assoc-ref outputs "out"))
4947 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4948 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
4949 (wrap-program (string-append out "/bin/totem")
4950 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4951 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
4952 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
4953 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
4954 #t)))))
4955 (home-page "https://wiki.gnome.org/Apps/Videos")
4956 (synopsis "Simple media player for GNOME based on GStreamer")
4957 (description "Totem is a simple yet featureful media player for GNOME
4958 which can read a large number of file formats.")
4959 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
4960 ;; to be used and distributed together with GStreamer and Totem. See
4961 ;; file://COPYING in the source distribution for details.
4962 (license license:gpl2+)))
4963
4964 (define-public rhythmbox
4965 (package
4966 (name "rhythmbox")
4967 (version "3.4.4")
4968 (source (origin
4969 (method url-fetch)
4970 (uri (string-append "mirror://gnome/sources/rhythmbox/"
4971 (version-major+minor version) "/"
4972 "rhythmbox-" version ".tar.xz"))
4973 (sha256
4974 (base32
4975 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
4976 (build-system glib-or-gtk-build-system)
4977 (arguments
4978 `(#:configure-flags
4979 (list "--enable-lirc"
4980 "--enable-python"
4981 "--enable-vala"
4982 "--with-brasero"
4983 "--with-gudev"
4984 "--with-libsecret")
4985 #:phases
4986 (modify-phases %standard-phases
4987 (add-after
4988 'install 'wrap-rhythmbox
4989 (lambda* (#:key inputs outputs #:allow-other-keys)
4990 (let ((out (assoc-ref outputs "out"))
4991 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
4992 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
4993 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
4994 (python-path (getenv "PYTHONPATH")))
4995 (wrap-program (string-append out "/bin/rhythmbox")
4996 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
4997 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
4998 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
4999 `("PYTHONPATH" ":" prefix (,python-path))))
5000 #t)))))
5001 (propagated-inputs
5002 `(("dconf" ,dconf)))
5003 (native-inputs
5004 `(("itstool" ,itstool)
5005 ("intltool" ,intltool)
5006 ("glib" ,glib "bin")
5007 ("gobject-introspection" ,gobject-introspection)
5008 ("desktop-file-utils" ,desktop-file-utils)
5009 ("pkg-config" ,pkg-config)
5010 ("xmllint" ,libxml2)))
5011 (inputs
5012 `(("json-glib" ,json-glib)
5013 ("tdb" ,tdb)
5014 ("gnome-desktop" ,gnome-desktop)
5015 ("python" ,python)
5016 ("python-pygobject" ,python2-pygobject)
5017 ("vala" ,vala)
5018 ("gmime" ,gmime)
5019 ("adwaita-icon-theme" ,adwaita-icon-theme)
5020 ("grilo" ,grilo)
5021 ("grilo-plugins" ,grilo-plugins)
5022 ("gstreamer" ,gstreamer)
5023 ("gst-plugins-base" ,gst-plugins-base)
5024 ("gst-plugins-good" ,gst-plugins-good)
5025 ("totem-pl-parser" ,totem-pl-parser)
5026 ("libgudev" ,libgudev)
5027 ;;("libmtp" ,libmtp) FIXME: Not detected
5028 ("libsecret" ,libsecret)
5029 ("libsoup" ,libsoup)
5030 ("libnotify" ,libnotify)
5031 ("libpeas" ,libpeas)
5032 ("lirc" ,lirc)
5033 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5034 ;;("clutter" ,clutter)
5035 ;;("clutter-gtk" ,clutter-gtk)
5036 ;;("clutter-gst" ,clutter-gst)
5037 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5038 ("atk" ,atk)
5039 ("pango" ,pango)
5040 ("gtk+" ,gtk+)
5041 ;; TODO:
5042 ;; * libgpod
5043 ;; * mx
5044 ("brasero" ,brasero)))
5045 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5046 (synopsis "Music player for GNOME")
5047 (description "Rhythmbox is a music playing application for GNOME. It
5048 supports playlists, song ratings, and any codecs installed through gstreamer.")
5049 (license license:gpl2+)))
5050
5051 (define-public eog
5052 (package
5053 (name "eog")
5054 (version "3.34.1")
5055 (source (origin
5056 (method url-fetch)
5057 (uri (string-append "mirror://gnome/sources/" name "/"
5058 (version-major+minor version) "/"
5059 name "-" version ".tar.xz"))
5060 (sha256
5061 (base32
5062 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5063 (build-system meson-build-system)
5064 (arguments
5065 `(#:configure-flags
5066 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5067 (list (string-append "-Dc_link_args=-Wl,-rpath="
5068 (assoc-ref %outputs "out") "/lib/eog"))
5069 #:phases
5070 (modify-phases %standard-phases
5071 (add-after 'unpack 'skip-gtk-update-icon-cache
5072 ;; Don't create 'icon-theme.cache'.
5073 (lambda _
5074 (substitute* "meson_post_install.py"
5075 (("gtk-update-icon-cache") "true"))
5076 #t))
5077 (add-after 'install 'wrap-eog
5078 (lambda* (#:key outputs #:allow-other-keys)
5079 (let ((out (assoc-ref outputs "out"))
5080 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5081 (wrap-program (string-append out "/bin/eog")
5082 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5083 #t)))))
5084 (propagated-inputs
5085 `(("dconf" ,dconf)))
5086 (native-inputs
5087 `(("intltool" ,intltool)
5088 ("itstool" ,itstool)
5089 ("glib" ,glib "bin")
5090 ("gobject-introspection" ,gobject-introspection)
5091 ("pkg-config" ,pkg-config)
5092 ("xmllint" ,libxml2)))
5093 (inputs
5094 `(("gnome-desktop" ,gnome-desktop)
5095 ("shared-mime-info" ,shared-mime-info)
5096 ("adwaita-icon-theme" ,adwaita-icon-theme)
5097 ("exempi" ,exempi)
5098 ("lcms" ,lcms)
5099 ("libexif" ,libexif)
5100 ("libpeas" ,libpeas)
5101 ("libjpeg" ,libjpeg-turbo)
5102 ("librsvg" ,librsvg-next)
5103 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5104 ("gtk+" ,gtk+)))
5105 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5106 (synopsis "GNOME image viewer")
5107 (description "Eye of GNOME is the GNOME image viewer. It
5108 supports image conversion, rotation, and slideshows.")
5109 (license license:gpl2+)))
5110
5111 (define-public eog-plugins
5112 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5113 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5114 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5115 ;; 'XDG_DATA_DIRS' appropriately set.
5116 (package
5117 (name "eog-plugins")
5118 (version "3.26.4")
5119 (source (origin
5120 (method url-fetch)
5121 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5122 (version-major+minor version) "/"
5123 "eog-plugins-" version ".tar.xz"))
5124 (sha256
5125 (base32
5126 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5127 (build-system gnu-build-system)
5128 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5129 (synopsis "Extensions for the Eye of GNOME image viewer")
5130 (native-inputs
5131 `(("pkg-config" ,pkg-config)
5132 ("gettext" ,gettext-minimal)))
5133 (inputs
5134 `(("eog" ,eog)
5135 ("glib" ,glib)
5136 ("gtk+" ,gtk+)
5137 ("libpeas" ,libpeas)
5138 ("libexif" ,libexif)
5139 ("libchamplain" ,libchamplain)))
5140 (description
5141 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5142 notably:
5143
5144 @itemize
5145 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5146 @item @dfn{Map}, which displays a map of where the picture was taken on the
5147 side panel;
5148 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5149 @end itemize\n")
5150
5151 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5152 ;; long suspicious byte stream that goes to a
5153 ;; ".gresource.eog_postasa_plugin" ELF section.
5154 (license license:gpl2+)))
5155
5156 (define-public libgudev
5157 (package
5158 (name "libgudev")
5159 (version "232")
5160 (source (origin
5161 (method url-fetch)
5162 (uri (string-append "mirror://gnome/sources/" name "/"
5163 version "/" name "-" version ".tar.xz"))
5164 (sha256
5165 (base32
5166 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5167 (build-system gnu-build-system)
5168 (arguments
5169 '(#:configure-flags
5170 ;; umockdev depends on libgudev.
5171 (list "--disable-umockdev")))
5172 (native-inputs
5173 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5174 ("gobject-introspection" ,gobject-introspection)
5175 ("pkg-config" ,pkg-config)))
5176 (propagated-inputs
5177 `(("glib" ,glib))) ; required by gudev-1.0.pc
5178 (inputs
5179 `(("udev" ,eudev)))
5180 (home-page "https://wiki.gnome.org/Projects/libgudev")
5181 (synopsis "GObject bindings for libudev")
5182 (description
5183 "This library provides GObject bindings for libudev. It was originally
5184 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5185 (license license:lgpl2.1+)))
5186
5187 (define-public gvfs
5188 (package
5189 (name "gvfs")
5190 (version "1.40.1")
5191 (source (origin
5192 (method url-fetch)
5193 (uri (string-append "mirror://gnome/sources/gvfs/"
5194 (version-major+minor version) "/"
5195 "gvfs-" version ".tar.xz"))
5196 (sha256
5197 (base32
5198 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))))
5199 (build-system meson-build-system)
5200 (arguments
5201 '(#:glib-or-gtk? #t
5202 #:configure-flags
5203 (list "-Dsystemduserunitdir=no"
5204 "-Dtmpfilesdir=no"
5205 ;; Otherwise, the RUNPATH will lack the final path component.
5206 (string-append "-Dc_link_args=-Wl,-rpath="
5207 (assoc-ref %outputs "out") "/lib/gvfs"))))
5208 (native-inputs
5209 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5210 ("gettext" ,gettext-minimal)
5211 ("gtk-doc" ,gtk-doc)
5212 ("pkg-config" ,pkg-config)
5213 ("xsltproc" ,libxslt)))
5214 (inputs
5215 `(("avahi" ,avahi)
5216 ("docbook-xml" ,docbook-xml-4.2)
5217 ("docbook-xsl" ,docbook-xsl)
5218 ("dbus" ,dbus)
5219 ("elogind" ,elogind)
5220 ("fuse" ,fuse)
5221 ("gcr" ,gcr)
5222 ("glib" ,glib)
5223 ("gnome-online-accounts" ,gnome-online-accounts)
5224 ("libarchive" ,libarchive)
5225 ("libbluray" ,libbluray)
5226 ("libcap" ,libcap)
5227 ("libcdio-paranoia" ,libcdio-paranoia)
5228 ("libgcrypt" ,libgcrypt)
5229 ("libgdata" ,libgdata)
5230 ("libgphoto2" ,libgphoto2)
5231 ("libgudev" ,libgudev)
5232 ("libimobiledevice" ,libimobiledevice)
5233 ("libmtp" ,libmtp)
5234 ("libnfs" ,libnfs)
5235 ("libsecret" ,libsecret)
5236 ("libsmbclient" ,samba)
5237 ("libsoup" ,libsoup)
5238 ("libxml2" ,libxml2)
5239 ("openssh" ,openssh)
5240 ("polkit" ,polkit)
5241 ("udisks" ,udisks)))
5242 (home-page "https://wiki.gnome.org/gvfs/")
5243 (synopsis "Userspace virtual file system for GIO")
5244 (description
5245 "GVFS is a userspace virtual file system designed to work with the I/O
5246 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5247 to all applications using the GIO API. It also supports exposing the GVFS
5248 mounts to non-GIO applications using FUSE.
5249
5250 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5251 DAV, and others.")
5252 (license license:lgpl2.0+)))
5253
5254 (define-public gusb
5255 (package
5256 (name "gusb")
5257 (version "0.3.0")
5258 (source (origin
5259 (method git-fetch)
5260 (uri (git-reference
5261 (url "https://github.com/hughsie/libgusb.git")
5262 (commit version)))
5263 (file-name (git-file-name name version))
5264 (sha256
5265 (base32
5266 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5267 (build-system meson-build-system)
5268 (native-inputs
5269 `(("gobject-introspection" ,gobject-introspection)
5270 ("pkg-config" ,pkg-config)
5271 ("vala" ,vala)
5272 ("gtk-doc" ,gtk-doc)))
5273 (propagated-inputs
5274 ;; Both of these are required by gusb.pc.
5275 `(("glib" ,glib)
5276 ("libusb" ,libusb)))
5277 (arguments
5278 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5279 (home-page "https://github.com/hughsie/libgusb")
5280 (synopsis "GLib binding for libusb1")
5281 (description
5282 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5283 asynchronous control, bulk and interrupt transfers with proper cancellation
5284 and integration into a mainloop. This makes it easy to integrate low level
5285 USB transfers with your high-level application or system daemon.")
5286 (license license:lgpl2.1+)))
5287
5288 (define-public simple-scan
5289 (package
5290 (name "simple-scan")
5291 (version "3.36.0")
5292 (source
5293 (origin
5294 (method url-fetch)
5295 (uri (string-append "mirror://gnome/sources/simple-scan/"
5296 (version-major+minor version) "/"
5297 "simple-scan-" version ".tar.xz"))
5298 (sha256
5299 (base32 "198l3yhqhb2wzfdcgi8fzbwycr0njn44583dazz6wy1gqbiqnzgm"))))
5300 (build-system meson-build-system)
5301 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5302 (arguments
5303 '(#:glib-or-gtk? #t))
5304 (inputs
5305 `(("gtk" ,gtk+)
5306 ("zlib" ,zlib)
5307 ("cairo" ,cairo)
5308 ("colord" ,colord)
5309 ("gdk-pixbuf" ,gdk-pixbuf)
5310 ("gusb" ,gusb)
5311 ("libsane" ,sane-backends)))
5312 (native-inputs
5313 `(("gettext" ,gettext-minimal)
5314 ("itstool" ,itstool)
5315 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5316 ("pkg-config" ,pkg-config)
5317 ("vala" ,vala)
5318 ("xmllint" ,libxml2)))
5319 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5320 (synopsis "Document and image scanner")
5321 (description
5322 "Document Scanner is an easy-to-use application that lets you connect your
5323 scanner and quickly capture images and documents in an appropriate format. It
5324 supports any scanner for which a suitable SANE driver is available, which is
5325 almost all of them.")
5326 (license license:gpl3+)))
5327
5328 (define-public eolie
5329 (package
5330 (name "eolie")
5331 (version "0.9.98.1")
5332 (source (origin
5333 (method url-fetch)
5334 (uri (string-append "https://adishatz.org/eolie/eolie-"
5335 version ".tar.xz"))
5336 (sha256
5337 (base32
5338 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
5339 (build-system meson-build-system)
5340 (arguments
5341 `(#:glib-or-gtk? #t
5342 #:phases
5343 (modify-phases %standard-phases
5344 (add-after 'unpack 'skip-gtk-update-icon-cache
5345 ;; Don't create 'icon-theme.cache'.
5346 (lambda _
5347 (substitute* "meson_post_install.py"
5348 (("gtk-update-icon-cache") "true"))
5349 #t))
5350 (add-after 'wrap 'wrap-more
5351 (lambda* (#:key inputs outputs #:allow-other-keys)
5352 (let* ((out (assoc-ref outputs "out"))
5353 ;; These libraries must be on LD_LIBRARY_PATH.
5354 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5355 "atk" "gtk+" "gsettings-desktop-schemas"
5356 "gobject-introspection"))
5357 (path (string-join
5358 (map (lambda (lib)
5359 (string-append (assoc-ref inputs lib) "/lib"))
5360 libs)
5361 ":")))
5362 (wrap-program (string-append out "/bin/eolie")
5363 `("LD_LIBRARY_PATH" ":" prefix (,path))
5364 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5365 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5366 #t)))))
5367 (native-inputs
5368 `(("intltool" ,intltool)
5369 ("itstool" ,itstool)
5370 ("pkg-config" ,pkg-config)
5371 ("python" ,python)
5372 ("glib:bin" ,glib "bin")))
5373 (inputs
5374 `(("gobject-introspection" ,gobject-introspection)
5375 ("glib-networking" ,glib-networking)
5376 ("cairo" ,cairo)
5377 ("gtk+" ,gtk+)
5378 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5379 ("python" ,python-wrapper)
5380 ("python-dateutil" ,python-dateutil)
5381 ("python-pyfxa" ,python-pyfxa)
5382 ("python-pygobject" ,python-pygobject)
5383 ("python-pycairo" ,python-pycairo)
5384 ("python-pycrypto" ,python-pycrypto)
5385 ("libsecret" ,libsecret)
5386 ("gtkspell3" ,gtkspell3)
5387 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5388 ("webkitgtk" ,webkitgtk)))
5389 (home-page "https://wiki.gnome.org/Apps/Eolie")
5390 (synopsis "Web browser for GNOME")
5391 (description
5392 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5393 a secret password store, an adblocker, and a modern UI.")
5394 (license license:gpl3+)))
5395
5396 (define-public epiphany
5397 (package
5398 (name "epiphany")
5399 (version "3.34.2")
5400 (source (origin
5401 (method url-fetch)
5402 (uri (string-append "mirror://gnome/sources/epiphany/"
5403 (version-major+minor version) "/"
5404 "epiphany-" version ".tar.xz"))
5405 (sha256
5406 (base32
5407 "18d48vcp2nxs63bddkdplslgbnlfq79pm2ivl8hk38kkggy3dahf"))))
5408
5409 (build-system meson-build-system)
5410 (arguments
5411 ;; FIXME: tests run under Xvfb, but fail with:
5412 ;; /src/bookmarks/ephy-bookmarks/create:
5413 ;; ** (test-ephy-bookmarks:19591): WARNING **: Unable to start Zeroconf
5414 ;; subsystem
5415 ;; FAIL
5416 '(#:tests? #f
5417 #:glib-or-gtk? #t
5418 #:phases
5419 (modify-phases %standard-phases
5420 (add-after 'unpack 'skip-gtk-update-icon-cache
5421 ;; Don't create 'icon-theme.cache'.
5422 (lambda _
5423 (substitute* "post_install.py"
5424 (("gtk-update-icon-cache") "true"))
5425 #t)))
5426 #:configure-flags
5427 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5428 (list (string-append "-Dc_link_args=-Wl,-rpath="
5429 (assoc-ref %outputs "out") "/lib/epiphany"))))
5430 (propagated-inputs
5431 `(("dconf" ,dconf)))
5432 (native-inputs
5433 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5434 ("glib:bin" ,glib "bin") ; for glib-mkenums
5435 ("intltool" ,intltool)
5436 ("itstool" ,itstool)
5437 ("pkg-config" ,pkg-config)
5438 ("xmllint" ,libxml2)))
5439 (inputs
5440 `(("avahi" ,avahi)
5441 ("gcr" ,gcr)
5442 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5443 ("glib-networking" ,glib-networking)
5444 ("gnome-desktop" ,gnome-desktop)
5445 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5446 ("json-glib" ,json-glib)
5447 ("iso-codes" ,iso-codes)
5448 ("libdazzle" ,libdazzle)
5449 ("libnotify" ,libnotify)
5450 ("libsecret" ,libsecret)
5451 ("libxslt" ,libxslt)
5452 ("nettle" ,nettle) ; for hogweed
5453 ("sqlite" ,sqlite)
5454 ("webkitgtk" ,webkitgtk)))
5455 (home-page "https://wiki.gnome.org/Apps/Web")
5456 (synopsis "GNOME web browser")
5457 (description
5458 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5459 principles are simplicity and standards compliance.")
5460 (license license:gpl2+)))
5461
5462 (define-public d-feet
5463 (package
5464 (name "d-feet")
5465 (version "0.3.14")
5466 (source (origin
5467 (method url-fetch)
5468 (uri (string-append "mirror://gnome/sources/" name "/"
5469 (version-major+minor version) "/"
5470 name "-" version ".tar.xz"))
5471 (sha256
5472 (base32
5473 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5474 (build-system glib-or-gtk-build-system)
5475 (arguments
5476 '(#:out-of-source? #f ; tests need to run in the source directory.
5477 #:phases
5478 (modify-phases %standard-phases
5479 (add-before
5480 'check 'pre-check
5481 (lambda _
5482 ;; The test suite requires a running X server.
5483 (system "Xvfb :1 &")
5484 (setenv "DISPLAY" ":1")
5485 ;; Don't fail on missing '/etc/machine-id'.
5486 (setenv "DBUS_FATAL_WARNINGS" "0")
5487 ;; tests.py and window.py don't meet E402:
5488 ;; E402 module level import not at top of file
5489 (substitute* "src/tests/Makefile"
5490 (("--ignore=E123") "--ignore=E123,E402"))
5491 #t))
5492 (add-after
5493 'install 'wrap-program
5494 (lambda* (#:key outputs #:allow-other-keys)
5495 (let ((prog (string-append (assoc-ref outputs "out")
5496 "/bin/d-feet")))
5497 (wrap-program prog
5498 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5499 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5500 #t))))))
5501 (native-inputs
5502 `(("intltool" ,intltool)
5503 ("itstool" ,itstool)
5504 ("pkg-config" ,pkg-config)
5505 ("python-pep8" ,python-pep8)
5506 ("xmllint" ,libxml2)
5507 ("xorg-server" ,xorg-server-for-tests)))
5508 (inputs
5509 `(("gobject-introspection" ,gobject-introspection)
5510 ("gtk+" ,gtk+)
5511 ("python" ,python-wrapper)
5512 ("hicolor-icon-theme" ,hicolor-icon-theme)
5513 ("python-pygobject" ,python-pygobject)))
5514 (home-page "https://wiki.gnome.org/Apps/DFeet")
5515 (synopsis "D-Bus debugger")
5516 (description
5517 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5518 of running programs and invoke methods on those interfaces.")
5519 (license license:gpl2+)))
5520
5521 (define-public yelp-xsl
5522 (package
5523 (name "yelp-xsl")
5524 (version "3.34.2")
5525 (source (origin
5526 (method url-fetch)
5527 (uri (string-append "mirror://gnome/sources/" name "/"
5528 (version-major+minor version) "/"
5529 name "-" version ".tar.xz"))
5530 (sha256
5531 (base32
5532 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
5533 (build-system gnu-build-system)
5534 (native-inputs
5535 `(("gettext-minimal" ,gettext-minimal)
5536 ("itstool" ,itstool)
5537 ("xmllint" ,libxml2)))
5538 (home-page "https://wiki.gnome.org/Apps/Yelp")
5539 (synopsis "XSL stylesheets for Yelp")
5540 (description
5541 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5542 to format Docbook and Mallard documents.")
5543 (license license:gpl2+)))
5544
5545 (define-public yelp
5546 (package
5547 (name "yelp")
5548 (version "3.32.2")
5549 (source (origin
5550 (method url-fetch)
5551 (uri (string-append "mirror://gnome/sources/" name "/"
5552 (version-major+minor version) "/"
5553 name "-" version ".tar.xz"))
5554 (sha256
5555 (base32
5556 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5557 (build-system glib-or-gtk-build-system)
5558 (native-inputs
5559 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5560 ("intltool" ,intltool)
5561 ("itstool" ,itstool)
5562 ("pkg-config" ,pkg-config)))
5563 (propagated-inputs
5564 `(("dconf" ,dconf)))
5565 (inputs
5566 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5567 ("libxslt" ,libxslt)
5568 ("sqlite" ,sqlite)
5569 ("webkitgtk" ,webkitgtk)
5570 ("yelp-xsl" ,yelp-xsl)))
5571 (home-page "https://wiki.gnome.org/Apps/Yelp")
5572 (synopsis "GNOME help browser")
5573 (description
5574 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5575 man, info, and HTML documents. It can locate documents according to the
5576 freedesktop.org help system specification.")
5577 (license license:gpl2+)))
5578
5579 (define-public yelp-tools
5580 (package
5581 (name "yelp-tools")
5582 (version "3.32.2")
5583 (source (origin
5584 (method url-fetch)
5585 (uri (string-append "mirror://gnome/sources/" name "/"
5586 (version-major+minor version) "/"
5587 name "-" version ".tar.xz"))
5588 (sha256
5589 (base32
5590 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
5591 (build-system gnu-build-system)
5592 (native-inputs
5593 `(("pkg-config" ,pkg-config)))
5594 (propagated-inputs
5595 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5596 `(("itstool" ,itstool)
5597 ("xmllint" ,libxml2)
5598 ("xsltproc" ,libxslt)))
5599 (inputs
5600 `(("yelp-xsl" ,yelp-xsl)))
5601 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5602 (synopsis "Yelp documentation tools")
5603 (description
5604 "Yelp-tools is a collection of scripts and build utilities to help create,
5605 manage, and publish documentation for Yelp and the web. Most of the heavy
5606 lifting is done by packages like yelp-xsl and itstool. This package just
5607 wraps things up in a developer-friendly way.")
5608 (license license:gpl2+)))
5609
5610 (define-public libgee
5611 (package
5612 (name "libgee")
5613 (version "0.20.3")
5614 (source (origin
5615 (method url-fetch)
5616 (uri (string-append "mirror://gnome/sources/libgee/"
5617 (version-major+minor version) "/"
5618 "libgee-" version ".tar.xz"))
5619 (sha256
5620 (base32
5621 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
5622 (build-system gnu-build-system)
5623 (arguments
5624 `(#:phases
5625 (modify-phases %standard-phases
5626 (add-after 'unpack 'fix-introspection-install-dir
5627 (lambda* (#:key outputs #:allow-other-keys)
5628 (let ((out (assoc-ref outputs "out")))
5629 (substitute* "gee/Makefile.in"
5630 (("@INTROSPECTION_GIRDIR@")
5631 (string-append out "/share/gir-1.0/"))
5632 (("@INTROSPECTION_TYPELIBDIR@")
5633 (string-append out "/lib/girepository-1.0/")))))))))
5634 (native-inputs
5635 `(("glib" ,glib "bin")
5636 ("pkg-config" ,pkg-config)))
5637 (inputs
5638 `(("glib" ,glib)
5639 ("gobject-introspection" ,gobject-introspection)))
5640 (home-page "https://wiki.gnome.org/Projects/Libgee")
5641 (synopsis "GObject collection library")
5642 (description
5643 "Libgee is a utility library providing GObject-based interfaces and
5644 classes for commonly used data structures.")
5645 (license license:lgpl2.1+)))
5646
5647 (define-public gexiv2
5648 (package
5649 (name "gexiv2")
5650 (version "0.12.0")
5651 (source (origin
5652 (method url-fetch)
5653 (uri (string-append "mirror://gnome/sources/" name "/"
5654 (version-major+minor version) "/"
5655 name "-" version ".tar.xz"))
5656 (sha256
5657 (base32
5658 "0slj5yj8c90l9pp5i3z74x5r3r4da0xfmbzkfq5k0dkg72q3kxaq"))))
5659 (build-system meson-build-system)
5660 (native-inputs
5661 `(("gcr" ,gcr)
5662 ("glib" ,glib "bin")
5663 ("pkg-config" ,pkg-config)
5664 ("vala" ,vala)))
5665 (propagated-inputs
5666 ;; Listed in "Requires" section of gexiv2.pc
5667 `(("exiv2" ,exiv2)))
5668 (inputs
5669 `(("glib" ,glib)
5670 ("gobject-introspection" ,gobject-introspection)))
5671 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5672 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5673 (description
5674 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5675 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5676 metadata in photo and video files of various formats.")
5677 (license license:gpl2+)))
5678
5679 (define-public shotwell
5680 (package
5681 (name "shotwell")
5682 (version "0.30.8")
5683 (source (origin
5684 (method url-fetch)
5685 (uri (string-append "mirror://gnome/sources/shotwell/"
5686 (version-major+minor version) "/"
5687 "shotwell-" version ".tar.xz"))
5688 (sha256
5689 (base32
5690 "1f7m007g6w1sz8s60w6x81ghp2rrjmik8phd958b2hy8zz92wbbj"))))
5691 (build-system meson-build-system)
5692 (arguments
5693 '(#:glib-or-gtk? #t
5694 #:phases
5695 (modify-phases %standard-phases
5696 (add-after 'unpack 'skip-gtk-update-icon-cache
5697 (lambda _
5698 (substitute* "build-aux/meson/postinstall.py"
5699 (("gtk-update-icon-cache") (which "true"))
5700 (("update-desktop-database") (which "true")))
5701 #t)))))
5702 (propagated-inputs
5703 `(("dconf" ,dconf)))
5704 (native-inputs
5705 `(("gettext" ,gettext-minimal)
5706 ("glib:bin" ,glib "bin")
5707 ("itstool" ,itstool)
5708 ("pkg-config" ,pkg-config)
5709 ("vala" ,vala)))
5710 (inputs
5711 `(("gcr" ,gcr)
5712 ("gexiv2" ,gexiv2)
5713 ("gst-plugins-base" ,gst-plugins-base)
5714 ("gstreamer" ,gstreamer)
5715 ("json-glib" ,json-glib)
5716 ("libgdata" ,libgdata)
5717 ("libgee" ,libgee)
5718 ("libgphoto2" ,libgphoto2)
5719 ("libgudev" ,libgudev)
5720 ("libraw" ,libraw)
5721 ("libsoup" ,libsoup)
5722 ("libxml2" ,libxml2)
5723 ("sqlite" ,sqlite)
5724 ("webkitgtk" ,webkitgtk)))
5725 (home-page "https://wiki.gnome.org/Apps/Shotwell")
5726 (synopsis "Photo manager for GNOME 3")
5727 (description
5728 "Shotwell is a digital photo manager designed for the GNOME desktop
5729 environment. It allows you to import photos from disk or camera, organize
5730 them by keywords and events, view them in full-window or fullscreen mode, and
5731 share them with others via social networking and more.")
5732 (license license:lgpl2.1+)))
5733
5734 (define-public file-roller
5735 (package
5736 (name "file-roller")
5737 (version "3.32.3")
5738 (source (origin
5739 (method url-fetch)
5740 (uri (string-append "mirror://gnome/sources/file-roller/"
5741 (version-major+minor version) "/"
5742 "file-roller-" version ".tar.xz"))
5743 (sha256
5744 (base32
5745 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
5746 (build-system meson-build-system)
5747 (native-inputs
5748 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5749 ("intltool" ,intltool)
5750 ("itstool" ,itstool)
5751 ("pkg-config" ,pkg-config)
5752 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
5753 ("glib:bin" ,glib "bin")))
5754 ;; TODO: Add libnautilus.
5755 (inputs
5756 `(("gtk+" ,gtk+)
5757 ("gdk-pixbuf" ,gdk-pixbuf)
5758 ("json-glib" ,json-glib)
5759 ("libarchive" ,libarchive)
5760 ("libnotify" ,libnotify)
5761 ("nettle" ,nettle)
5762 ("libxml2" ,libxml2)))
5763 (synopsis "Graphical archive manager for GNOME")
5764 (description "File Roller is an archive manager for the GNOME desktop
5765 environment that allows users to view, unpack, and create compressed archives
5766 such as gzip tarballs.")
5767 (home-page "http://fileroller.sourceforge.net/")
5768 (license license:gpl2+)))
5769
5770 (define-public gnome-session
5771 (package
5772 (name "gnome-session")
5773 (version "3.34.2")
5774 (source (origin
5775 (method url-fetch)
5776 (uri (string-append "mirror://gnome/sources/" name "/"
5777 (version-major+minor version) "/"
5778 name "-" version ".tar.xz"))
5779 (sha256
5780 (base32
5781 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
5782 (arguments
5783 '(#:glib-or-gtk? #t
5784 #:phases
5785 (modify-phases %standard-phases
5786 (add-before 'configure 'pre-configure
5787 (lambda* (#:key outputs #:allow-other-keys)
5788 ;; Use elogind instead of systemd.
5789 (substitute* "meson.build"
5790 (("libsystemd-login") "libelogind")
5791 (("and libsystemd_daemon_dep.found.*") ","))
5792 (substitute* "gnome-session/gsm-systemd.c"
5793 (("#include <systemd/sd-login.h>")
5794 "#include <elogind/sd-login.h>"))
5795 ;; Remove uses of the systemd daemon.
5796 (substitute* "gnome-session/gsm-autostart-app.c"
5797 (("#ifdef HAVE_SYSTEMD") "#if 0"))
5798 #t))
5799 (add-after 'install 'wrap-gnome-session
5800 (lambda* (#:key inputs outputs #:allow-other-keys)
5801 ;; Make sure 'gnome-session' finds the 'gsettings' program.
5802 (let ((glib (assoc-ref inputs "glib:bin"))
5803 (out (assoc-ref outputs "out")))
5804 (wrap-program (string-append out "/bin/gnome-session")
5805 `("PATH" ":" prefix (,(string-append glib "/bin"))))
5806 #t))))
5807
5808 #:configure-flags
5809 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
5810 "-Dman=false" ; FIXME: disabled because of docbook validation error
5811 "-Dsystemd_journal=false")))
5812 (build-system meson-build-system)
5813 (native-inputs
5814 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5815 ("pkg-config" ,pkg-config)
5816 ("intltool" ,intltool)
5817 ("xsltproc" ,libxslt)
5818 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
5819 ("docbook-xsl" ,docbook-xsl)
5820 ("docbook-xml" ,docbook-xml)
5821 ("xmlto" ,xmlto)))
5822 (inputs
5823 `(("elogind" ,elogind)
5824 ("gnome-desktop" ,gnome-desktop)
5825 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5826 ("gtk+" ,gtk+)
5827 ("json-glib" ,json-glib)
5828 ("libsm" ,libsm)
5829 ("libxcomposite" ,libxcomposite)
5830 ("libxtst" ,libxtst)
5831 ("mesa" ,mesa)
5832 ("upower" ,upower)
5833 ("xtrans" ,xtrans)))
5834 (synopsis "Session manager for GNOME")
5835 (description
5836 "This package contains the GNOME session manager, as well as a
5837 configuration program to choose applications starting on login.")
5838 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
5839 (license license:gpl2+)))
5840
5841 (define-public gjs
5842 (package
5843 (name "gjs")
5844 (version "1.58.3")
5845 (source (origin
5846 (method url-fetch)
5847 (uri (string-append "mirror://gnome/sources/" name "/"
5848 (version-major+minor version) "/"
5849 name "-" version ".tar.xz"))
5850 (sha256
5851 (base32
5852 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
5853 (build-system gnu-build-system)
5854 (arguments
5855 '(#:phases
5856 (modify-phases %standard-phases
5857 (add-before
5858 'check 'pre-check
5859 (lambda _
5860 ;; The test suite requires a running X server.
5861 (system "Xvfb :1 &")
5862 (setenv "DISPLAY" ":1")
5863
5864 ;; For the missing /etc/machine-id.
5865 (setenv "DBUS_FATAL_WARNINGS" "0")
5866
5867 ;; Our mozjs-38 package does not compile the required Intl API
5868 ;; support for these failing tests.
5869 (substitute* "installed-tests/js/testLocale.js"
5870 ((".*toBeDefined.*") "")
5871 ((".*expect\\(datestr\\).*") ""))
5872 (substitute* "installed-tests/scripts/testCommandLine.sh"
5873 (("Valentín") "")
5874 (("☭") ""))
5875 #t)))))
5876 (native-inputs
5877 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
5878 ("pkg-config" ,pkg-config)
5879 ("xmllint" ,libxml2)
5880 ;; For testing
5881 ("dbus-launch" ,dbus)
5882 ("dconf" ,dconf) ; required to properly store settings
5883 ("uuidgen" ,util-linux)
5884 ("xvfb" ,xorg-server-for-tests)))
5885 (propagated-inputs
5886 ;; These are all in the Requires.private field of gjs-1.0.pc.
5887 `(("cairo" ,cairo)
5888 ("gobject-introspection" ,gobject-introspection)
5889 ("mozjs" ,mozjs-60)))
5890 (inputs
5891 `(("gtk+" ,gtk+)
5892 ("readline" ,readline)))
5893 (synopsis "Javascript bindings for GNOME")
5894 (home-page "https://live.gnome.org/Gjs")
5895 (description
5896 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
5897 javascript engine and the GObject introspection framework.")
5898 (license license:gpl2+)))
5899
5900 (define-public gedit
5901 (package
5902 (name "gedit")
5903 (version "3.34.1")
5904 (source (origin
5905 (method url-fetch)
5906 (uri (string-append "mirror://gnome/sources/" name "/"
5907 (version-major+minor version) "/"
5908 name "-" version ".tar.xz"))
5909 (sha256
5910 (base32
5911 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
5912 (build-system meson-build-system)
5913 (arguments
5914 `(#:glib-or-gtk? #t
5915 #:configure-flags
5916 ;; Otherwise, the RUNPATH will lack the final path component.
5917 (list (string-append "-Dc_link_args=-Wl,-rpath="
5918 (assoc-ref %outputs "out") "/lib/gedit"))
5919
5920 ;; XXX: Generated .h files are sometimes used before being built.
5921 #:parallel-build? #f
5922
5923 #:phases
5924 (modify-phases %standard-phases
5925 (add-after 'unpack 'skip-gtk-update-icon-cache
5926 ;; Don't create 'icon-theme.cache'.
5927 (lambda _
5928 (substitute* "build-aux/meson/post_install.py"
5929 (("gtk-update-icon-cache") (which "true")))
5930 #t))
5931 (add-after 'unpack 'patch-libgd-fetch
5932 (lambda* (#:key inputs #:allow-other-keys)
5933 (let ((libgd (assoc-ref inputs "libgd")))
5934 ;; Calling git is unnecessary because libgd is fetched as a
5935 ;; native input to this package.
5936 (substitute* "meson.build"
5937 ((".*git.*") ""))
5938 (copy-recursively libgd "subprojects/libgd")
5939 #t)))
5940 (add-after 'install 'wrap-gedit
5941 (lambda* (#:key inputs outputs #:allow-other-keys)
5942 (let ((out (assoc-ref outputs "out"))
5943 (gtksourceview (assoc-ref inputs "gtksourceview"))
5944 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5945 (python-path (getenv "PYTHONPATH")))
5946 (wrap-program (string-append out "/bin/gedit")
5947 ;; For plugins.
5948 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5949 `("PYTHONPATH" ":" prefix (,python-path))
5950 ;; For language-specs.
5951 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
5952 "/share")))))
5953 #t)))))
5954 (propagated-inputs
5955 `(("dconf" ,dconf)))
5956 (native-inputs
5957 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5958 ("intltool" ,intltool)
5959 ("itstool" ,itstool)
5960 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
5961 ("gobject-introspection" ,gobject-introspection)
5962 ("libgd"
5963 ,(origin
5964 (method git-fetch)
5965 (uri (git-reference
5966 (url "https://gitlab.gnome.org/GNOME/libgd")
5967 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
5968 (file-name (git-file-name "libgd" version))
5969 (sha256
5970 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
5971 ("pkg-config" ,pkg-config)))
5972 (inputs
5973 `(("glib" ,glib)
5974 ("gspell" ,gspell)
5975 ("gtk+" ,gtk+)
5976 ("gtksourceview" ,gtksourceview)
5977 ("libpeas" ,libpeas)
5978 ("libxml2" ,libxml2)
5979 ("iso-codes" ,iso-codes)
5980 ("python-pygobject" ,python-pygobject)
5981 ("python" ,python)
5982 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5983 ("libx11" ,libx11)
5984 ("vala" ,vala)
5985 ("adwaita-icon-theme" ,adwaita-icon-theme)
5986 ("libsoup" ,libsoup)
5987 ("gnome-desktop" ,gnome-desktop)))
5988 (home-page "https://wiki.gnome.org/Apps/Gedit")
5989 (synopsis "GNOME text editor")
5990 (description "While aiming at simplicity and ease of use, gedit is a
5991 powerful general purpose text editor.")
5992 (license license:gpl2+)))
5993
5994 (define-public zenity
5995 (package
5996 (name "zenity")
5997 (version "3.32.0")
5998 (source (origin
5999 (method url-fetch)
6000 (uri (string-append "mirror://gnome/sources/zenity/"
6001 (version-major+minor version) "/"
6002 "zenity-" version ".tar.xz"))
6003 (sha256
6004 (base32
6005 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6006 (build-system gnu-build-system)
6007 (native-inputs
6008 `(("gettext" ,gettext-minimal)
6009 ("itstool" ,itstool)
6010 ("pkg-config" ,pkg-config)))
6011 (inputs
6012 `(("libnotify" ,libnotify)
6013 ("webkitgtk" ,webkitgtk)))
6014 (synopsis "Display graphical dialog boxes from shell scripts")
6015 (home-page "https://www.gnome.org")
6016 (description
6017 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6018 to display dialog boxes from the commandline and shell scripts.")
6019 (license license:lgpl2.0+)))
6020
6021 (define-public mutter
6022 (package
6023 (name "mutter")
6024 (version "3.34.2")
6025 (source (origin
6026 (method url-fetch)
6027 (uri (string-append "mirror://gnome/sources/" name "/"
6028 (version-major+minor version) "/"
6029 name "-" version ".tar.xz"))
6030 (sha256
6031 (base32
6032 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
6033 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6034 ;; versions of cogl and clutter. As a result, many of the inputs,
6035 ;; propagated-inputs, and configure flags used in cogl and clutter are
6036 ;; needed here as well.
6037 (build-system meson-build-system)
6038 (arguments
6039 '(;; XXX: All mutter tests fail with the following error:
6040 ;; Settings schema 'org.gnome.mutter' is not installed
6041 #:tests? #f
6042 #:glib-or-gtk? #t
6043 #:configure-flags
6044 ;; TODO: Enable profiler when Sysprof is packaged.
6045 (list "-Dprofiler=false"
6046 ;; Otherwise, the RUNPATH will lack the final path component.
6047 (string-append "-Dc_link_args=-Wl,-rpath="
6048 (assoc-ref %outputs "out") "/lib:"
6049 (assoc-ref %outputs "out") "/lib/mutter-5")
6050
6051 ;; The following flags are needed for the bundled clutter
6052 (string-append "-Dxwayland_path="
6053 (assoc-ref %build-inputs "xorg-server-xwayland")
6054 "/bin/Xwayland")
6055
6056 ;; the remaining flags are needed for the bundled cogl
6057 (string-append "-Dopengl_libname="
6058 (assoc-ref %build-inputs "mesa")
6059 "/lib/libGL.so"))))
6060 (native-inputs
6061 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6062 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6063 ("gobject-introspection" ,gobject-introspection)
6064 ("intltool" ,intltool)
6065 ("pkg-config" ,pkg-config)
6066 ("xorg-server" ,xorg-server-for-tests)
6067 ;; For git build
6068 ("autoconf" ,autoconf)
6069 ("automake" ,automake)
6070 ("libtool" ,libtool)))
6071 (propagated-inputs
6072 `(;; libmutter.pc refers to these:
6073 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6074 ("gtk+" ,gtk+)
6075 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6076 ("atk" ,atk)
6077 ("cairo" ,cairo)
6078 ("gdk-pixbuf" ,gdk-pixbuf)
6079 ("glib" ,glib)
6080 ("json-glib" ,json-glib)
6081 ("libinput" ,libinput)
6082 ("libx11" ,libx11)
6083 ("libxcomposite" ,libxcomposite)
6084 ("libxdamage" ,libxdamage)
6085 ("libxext" ,libxext)
6086 ("libxfixes" ,libxfixes)
6087 ("libxkbcommon" ,libxkbcommon)
6088 ("libxrandr" ,libxrandr)
6089 ("mesa" ,mesa)
6090 ("pango" ,pango)
6091 ("udev" ,eudev)
6092 ("xinput" ,xinput)))
6093 (inputs
6094 `(("elogind" ,elogind)
6095 ("gnome-desktop" ,gnome-desktop)
6096 ("gnome-settings-daemon" ,gnome-settings-daemon)
6097 ("libcanberra-gtk" ,libcanberra)
6098 ("libgudev" ,libgudev)
6099 ("libice" ,libice)
6100 ("libsm" ,libsm)
6101 ("libwacom" ,libwacom)
6102 ("libxkbfile" ,libxkbfile)
6103 ("libxrandr" ,libxrandr)
6104 ("libxtst" ,libxtst)
6105 ("pipewire" ,pipewire)
6106 ("startup-notification" ,startup-notification)
6107 ("upower-glib" ,upower)
6108 ("xkeyboard-config" ,xkeyboard-config)
6109 ("xorg-server-xwayland" ,xorg-server-xwayland)
6110 ("zenity" ,zenity)))
6111 (synopsis "Window and compositing manager")
6112 (home-page "https://www.gnome.org")
6113 (description
6114 "Mutter is a window and compositing manager that displays and manages your
6115 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6116 Clutter toolkit with solid window-management logic inherited from the Metacity
6117 window manager.")
6118 (license license:gpl2+)))
6119
6120 (define-public gnome-online-accounts
6121 (package
6122 (name "gnome-online-accounts")
6123 (version "3.36.0")
6124 (source (origin
6125 (method url-fetch)
6126 (uri (string-append "mirror://gnome/sources/" name "/"
6127 (version-major+minor version) "/"
6128 name "-" version ".tar.xz"))
6129 (sha256
6130 (base32
6131 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
6132 (outputs '("out" "lib"))
6133 (build-system glib-or-gtk-build-system)
6134 (arguments
6135 `(#:configure-flags
6136 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6137 #:phases
6138 (modify-phases %standard-phases
6139 (add-before 'configure 'patch-libgoa-output
6140 (lambda* (#:key outputs #:allow-other-keys)
6141 (let ((lib (assoc-ref outputs "lib")))
6142 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6143 (("@prefix@") lib)
6144 (("@exec_prefix@") lib)
6145 (("@libdir@") (string-append lib "/lib"))
6146 (("@includedir@") (string-append lib "/include"))
6147 (("@datadir@") (string-append lib "/share")))
6148 ;; Make sure gobject-introspection knows about the output
6149 ;; too (see <https://bugs.gnu.org/36535>).
6150 (setenv "outputs" "out lib")
6151 #t))))))
6152 (native-inputs
6153 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6154 ("gobject-introspection" ,gobject-introspection)
6155 ("intltool" ,intltool)
6156 ("pkg-config" ,pkg-config)
6157 ("vala" ,vala)
6158 ("xsltproc" ,libxslt)))
6159 (propagated-inputs
6160 `(("glib" ,glib) ; required by goa-1.0.pc
6161 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6162 (inputs
6163 `(("docbook-xsl" ,docbook-xsl)
6164 ("json-glib" ,json-glib)
6165 ("libsecret" ,libsecret)
6166 ("rest" ,rest)
6167 ("webkitgtk" ,webkitgtk)))
6168 (synopsis "Single sign-on framework for GNOME")
6169 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6170 (description
6171 "GNOME Online Accounts provides interfaces so that applications and
6172 libraries in GNOME can access the user's online accounts. It has providers for
6173 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6174 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6175 (license license:lgpl2.0+)))
6176
6177 (define-public evolution-data-server
6178 (package
6179 (name "evolution-data-server")
6180 (version "3.34.2")
6181 (source (origin
6182 (method url-fetch)
6183 (uri (string-append "mirror://gnome/sources/" name "/"
6184 (version-major+minor version) "/"
6185 name "-" version ".tar.xz"))
6186 (patches (search-patches "evolution-data-server-locales.patch"
6187 "evolution-data-server-libical-compat.patch"))
6188 (sha256
6189 (base32
6190 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
6191 (build-system cmake-build-system)
6192 (arguments
6193 '(#:configure-flags
6194 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6195 (runpaths (map (lambda (s)
6196 (string-append lib "/evolution-data-server/" s))
6197 '("addressbook-backends" "calendar-backends"
6198 "camel-providers" "credential-modules"
6199 "registry-modules"))))
6200 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6201 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6202 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6203 "-DENABLE_VALA_BINDINGS=ON"
6204 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6205 (string-append lib "/evolution-data-server;")
6206 (string-join runpaths ";"))
6207 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6208 #:phases
6209 (modify-phases %standard-phases
6210 (add-after 'unpack 'disable-failing-tests
6211 (lambda _
6212 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6213 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6214 (delete-file-recursively "tests/book-migration")
6215 (substitute* "tests/CMakeLists.txt"
6216 (("add_subdirectory\\(book-migration\\)") ""))
6217 #t))
6218 (add-after 'unpack 'patch-paths
6219 (lambda _
6220 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6221 "tests/libedata-book/data-test-utils.c"
6222 "tests/libedata-book/test-book-cache-utils.c"
6223 "tests/libedata-cal/test-cal-cache-utils.c")
6224 (("/bin/rm") (which "rm")))
6225 #t))
6226 (add-before 'configure 'dont-override-rpath
6227 (lambda _
6228 (substitute* "CMakeLists.txt"
6229 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6230 ;; Remove it so the configure flag is respected.
6231 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6232 #t)))))
6233 (native-inputs
6234 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6235 ("gobject-introspection" ,gobject-introspection)
6236 ("gperf" ,gperf)
6237 ("intltool" ,intltool)
6238 ("pkg-config" ,pkg-config)
6239 ("vala" ,vala)
6240 ("python" ,python-wrapper)))
6241 (propagated-inputs
6242 ;; These are all in the Requires field of .pc files.
6243 `(("gtk+" ,gtk+)
6244 ("libical" ,libical)
6245 ("libsecret" ,libsecret)
6246 ("libsoup" ,libsoup)
6247 ("nss" ,nss)
6248 ("sqlite" ,sqlite)))
6249 (inputs
6250 `(("bdb" ,bdb)
6251 ("gcr" ,gcr)
6252 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6253 ("json-glib" ,json-glib)
6254 ("libcanberra" ,libcanberra)
6255 ("libgweather" ,libgweather)
6256 ("mit-krb5" ,mit-krb5)
6257 ("openldap" ,openldap)
6258 ("webkitgtk" ,webkitgtk)))
6259 (synopsis "Store address books and calendars")
6260 (home-page "https://wiki.gnome.org/Apps/Evolution")
6261 (description
6262 "This package provides a unified backend for programs that work with
6263 contacts, tasks, and calendar information. It was originally developed for
6264 Evolution (hence the name), but is now used by other packages as well.")
6265 (license license:lgpl2.0)))
6266
6267 (define-public caribou
6268 (package
6269 (name "caribou")
6270 (version "0.4.21")
6271 (source (origin
6272 (method url-fetch)
6273 (uri (string-append "mirror://gnome/sources/" name "/"
6274 (version-major+minor version) "/"
6275 name "-" version ".tar.xz"))
6276 (sha256
6277 (base32
6278 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6279 (build-system glib-or-gtk-build-system)
6280 (arguments
6281 '(#:phases
6282 (modify-phases %standard-phases
6283 (add-before
6284 'build 'pre-build
6285 (lambda* (#:key outputs #:allow-other-keys)
6286 (let ((out (assoc-ref outputs "out")))
6287 ;; Use absolute shared library path in Caribou-1.0.typelib.
6288 (substitute* "libcaribou/Makefile"
6289 (("--shared-library=libcaribou.so")
6290 (string-append "--shared-library="
6291 out "/lib/libcaribou.so")))
6292 #t)))
6293 (add-after 'install 'wrap-programs
6294 (lambda* (#:key outputs #:allow-other-keys)
6295 (let* ((out (assoc-ref outputs "out"))
6296 (python-path (getenv "PYTHONPATH"))
6297 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6298 (for-each
6299 (lambda (prog)
6300 (wrap-program prog
6301 `("PYTHONPATH" ":" prefix (,python-path))
6302 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6303 (list (string-append out "/bin/caribou-preferences")
6304 (string-append out "/libexec/antler-keyboard"))))
6305 #t)))))
6306 (native-inputs
6307 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6308 ("gobject-introspection" ,gobject-introspection)
6309 ("intltool" ,intltool)
6310 ("pkg-config" ,pkg-config)
6311 ("python" ,python)
6312 ("vala" ,vala)
6313 ("xsltproc" ,libxslt)))
6314 (propagated-inputs
6315 ;; caribou-1.0.pc refers to all these.
6316 `(("libgee" ,libgee)
6317 ("libxklavier" ,libxklavier)
6318 ("libxtst" ,libxtst)
6319 ("gtk+" ,gtk+)))
6320 (inputs
6321 `(("clutter" ,clutter)
6322 ("dconf" ,dconf)
6323 ("gtk+-2" ,gtk+-2)
6324 ("python-pygobject" ,python-pygobject)))
6325 (synopsis "Text entry and UI navigation application")
6326 (home-page "https://wiki.gnome.org/Projects/Caribou")
6327 (description
6328 "Caribou is an input assistive technology intended for switch and pointer
6329 users.")
6330 (license license:lgpl2.1)))
6331
6332 (define-public network-manager
6333 (package
6334 (name "network-manager")
6335 (version "1.18.4")
6336 (source (origin
6337 (method url-fetch)
6338 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6339 (version-major+minor version) "/"
6340 "NetworkManager-" version ".tar.xz"))
6341 (patches (search-patches "nm-plugin-path.patch"))
6342 (sha256
6343 (base32
6344 "0pnh1wr2p1fqa5pr945fr3lngfc5ccfrmgddqsg55lxnjpv0ggd3"))
6345 (modules '((guix build utils)))
6346 (snippet
6347 '(begin
6348 (substitute* "src/devices/wwan/nm-modem-manager.c"
6349 (("systemd") "elogind"))
6350 #t))))
6351 (build-system gnu-build-system)
6352 (outputs '("out"
6353 "doc")) ; 8 MiB of gtk-doc HTML
6354 (arguments
6355 '(#:configure-flags
6356 (let ((out (assoc-ref %outputs "out"))
6357 (doc (assoc-ref %outputs "doc"))
6358 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6359 "/sbin/dhclient")))
6360 (list "--with-libnm-glib" ; needed by network-manager-applet
6361 "--with-systemd-journal=no"
6362 "--with-session-tracking=elogind"
6363 "--with-suspend-resume=elogind"
6364 "--with-consolekit=no"
6365 "--with-crypto=gnutls"
6366 "--disable-config-plugin-ibft"
6367 "--sysconfdir=/etc"
6368 "--localstatedir=/var"
6369 (string-append "--with-udev-dir="
6370 out "/lib/udev")
6371 (string-append "--with-dbus-sys-dir="
6372 out "/etc/dbus-1/system.d")
6373 (string-append "--with-html-dir="
6374 doc "/share/gtk-doc/html")
6375 (string-append "--with-dhclient=" dhclient)))
6376 #:phases
6377 (modify-phases %standard-phases
6378 ;; This bare "ls" invocation breaks some tests.
6379 (add-after 'unpack 'patch-ls-invocation
6380 (lambda _
6381 (substitute* "build-aux/ltmain.sh"
6382 (("`ls -")
6383 (string-append "`" (which "ls") " -")))
6384 #t))
6385 (add-before 'configure 'pre-configure
6386 (lambda _
6387 ;; These tests try to test aspects of network-manager's
6388 ;; functionality within restricted containers, but they don't
6389 ;; cope with being already in the Guix build jail as that jail
6390 ;; lacks some features that they would like to proxy over (like
6391 ;; a /sys mount).
6392 (substitute* '("Makefile.in")
6393 (("src/platform/tests/test-address-linux") " ")
6394 (("src/platform/tests/test-cleanup-linux") " ")
6395 (("src/platform/tests/test-link-linux") " ")
6396 (("src/platform/tests/test-route-linux") " ")
6397 (("src/devices/tests/test-acd") "")
6398 (("src/devices/tests/test-arping") " ")
6399 (("src/devices/tests/test-lldp") " ")
6400 (("src/tests/test-route-manager-linux") " "))
6401 #t))
6402 (add-after 'unpack 'delete-failing-tests
6403 (lambda _
6404 ;; FIXME: These three tests fail for unknown reasons.
6405 ;; ERROR:libnm-core/tests/test-general.c:5842:
6406 ;; _json_config_check_valid: assertion failed (res == expected): (1 == 0)
6407 ;; ERROR:libnm-core/tests/test-keyfile.c:647:
6408 ;; test_team_conf_read_invalid: assertion failed: (nm_setting_team_get_config (s_team) == NULL)
6409 ;; ERROR:libnm-core/tests/test-setting.c:907:
6410 ;; _test_team_config_sync: assertion failed: (nm_streq0 (nm_setting_team_get_runner (s_team), runner))
6411 (substitute* "Makefile.in"
6412 (("libnm-core/tests/test-general") " ")
6413 (("libnm-core/tests/test-keyfile") " ")
6414 (("libnm-core/tests/test-setting\\$\\(EXEEXT\\)") " "))
6415 #t))
6416 (add-before 'check 'pre-check
6417 (lambda _
6418 ;; For the missing /etc/machine-id.
6419 (setenv "DBUS_FATAL_WARNINGS" "0")
6420
6421 ;; XXX: Regenerate some of the tests that are dependent on Python version.
6422 ;; Try removing this variable for newer versions of NetworkManager.
6423 (setenv "NM_TEST_REGENERATE" "1")
6424 #t))
6425 (replace 'install
6426 (lambda _
6427 (invoke "make"
6428 "sysconfdir=/tmp"
6429 "rundir=/tmp"
6430 "statedir=/tmp"
6431 "nmstatedir=/tmp/nm"
6432 "install")
6433 #t)))))
6434 (propagated-inputs
6435 `(("glib" ,glib)))
6436 (native-inputs
6437 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6438 ("gobject-introspection" ,gobject-introspection)
6439 ("docbook-xsl" ,docbook-xsl)
6440 ("intltool" ,intltool)
6441 ("libxslt" ,libxslt)
6442 ("libxml2" ,libxml2)
6443 ("pkg-config" ,pkg-config)
6444 ;; For testing.
6445 ("python" ,python-wrapper)
6446 ("python-dbus" ,python-dbus)
6447 ("python-pygobject" ,python-pygobject)))
6448 (inputs
6449 `(("coreutils" ,coreutils) ; for ls
6450 ("curl" ,curl)
6451 ("cyrus-sasl" ,cyrus-sasl)
6452 ("dbus-glib" ,dbus-glib)
6453 ("dnsmasq" ,dnsmasq)
6454 ("eudev" ,eudev)
6455 ("gnutls" ,gnutls)
6456 ("iptables" ,iptables)
6457 ("isc-dhcp" ,isc-dhcp)
6458 ("jansson" ,jansson)
6459 ("libgcrypt" ,libgcrypt)
6460 ("libgudev" ,libgudev)
6461 ("libndp" ,libndp)
6462 ("libnl" ,libnl)
6463 ("libsoup" ,libsoup)
6464 ("modem-manager" ,modem-manager)
6465 ("newt" ,newt) ;for the 'nmtui' console interface
6466 ("polkit" ,polkit)
6467 ("ppp" ,ppp)
6468 ("readline" ,readline)
6469 ("util-linux" ,util-linux)
6470 ("elogind" ,elogind)))
6471 (synopsis "Network connection manager")
6472 (home-page "https://www.gnome.org/projects/NetworkManager/")
6473 (description
6474 "NetworkManager is a system network service that manages your network
6475 devices and connections, attempting to keep active network connectivity when
6476 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6477 devices, and provides VPN integration with a variety of different VPN
6478 services.")
6479 (license license:gpl2+)
6480 (properties '((upstream-name . "NetworkManager")))))
6481
6482 (define-public network-manager-openvpn
6483 (package
6484 (name "network-manager-openvpn")
6485 ;; Updating? Check whether network-manager-applet still needs libnm_gtk.
6486 (version "1.8.10")
6487 (source (origin
6488 (method url-fetch)
6489 (uri (string-append
6490 "mirror://gnome/sources/NetworkManager-openvpn/"
6491 (version-major+minor version)
6492 "/NetworkManager-openvpn-" version ".tar.xz"))
6493 (sha256
6494 (base32
6495 "1vri49yff4lj13dnzkpq9nx3a4z1bmbrv807r151plj8m1mwhg5g"))))
6496 (build-system gnu-build-system)
6497 (arguments
6498 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6499 #:phases
6500 (modify-phases %standard-phases
6501 (add-after 'configure 'patch-path
6502 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6503 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6504 "/sbin/openvpn"))
6505 (modprobe (string-append (assoc-ref inputs "kmod")
6506 "/bin/modprobe"))
6507 (pretty-ovpn (string-append "\"" ovpn "\"")))
6508 (for-each
6509 (lambda (file)
6510 (substitute* file
6511 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6512 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6513 (("\"/sbin/openvpn\"") pretty-ovpn)
6514 (("/sbin/modprobe") modprobe)))
6515 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6516 #t)))))
6517 (native-inputs
6518 `(("pkg-config" ,pkg-config)
6519 ("intltool" ,intltool)))
6520 (inputs
6521 `(("gtk+" ,gtk+)
6522 ("kmod" ,kmod)
6523 ("openvpn" ,openvpn)
6524 ("network-manager" ,network-manager)
6525 ("network-manager-applet" ,network-manager-applet) ;for libnma
6526 ("libsecret" ,libsecret)))
6527 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6528 (synopsis "OpenVPN plug-in for NetworkManager")
6529 (description
6530 "This extension of NetworkManager allows it to take care of connections
6531 to virtual private networks (VPNs) via OpenVPN.")
6532 (license license:gpl2+)
6533 (properties `((upstream-name . "NetworkManager-openvpn")))))
6534
6535 (define-public network-manager-vpnc
6536 (package
6537 (name "network-manager-vpnc")
6538 (version "1.2.6")
6539 (source (origin
6540 (method url-fetch)
6541 (uri (string-append
6542 "mirror://gnome/sources/NetworkManager-vpnc/"
6543 (version-major+minor version)
6544 "/NetworkManager-vpnc-" version ".tar.xz"))
6545 (sha256
6546 (base32
6547 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6548 (build-system gnu-build-system)
6549 (arguments
6550 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6551 #:phases
6552 (modify-phases %standard-phases
6553 (add-after 'configure 'patch-path
6554 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6555 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6556 "/sbin/vpnc"))
6557 (modprobe (string-append (assoc-ref inputs "kmod")
6558 "/bin/modprobe"))
6559 (pretty-ovpn (string-append "\"" vpnc "\"")))
6560 (substitute* "src/nm-vpnc-service.c"
6561 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6562 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6563 (("\"/sbin/vpnc\"") pretty-ovpn)
6564 (("/sbin/modprobe") modprobe)))
6565 #t)))))
6566 (native-inputs
6567 `(("pkg-config" ,pkg-config)
6568 ("intltool" ,intltool)))
6569 (inputs
6570 `(("gtk+" ,gtk+)
6571 ("kmod" ,kmod)
6572 ("vpnc" ,vpnc)
6573 ("network-manager" ,network-manager)
6574 ("network-manager-applet" ,network-manager-applet) ;for libnma
6575 ("libsecret" ,libsecret)))
6576 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6577 (synopsis "VPNC plug-in for NetworkManager")
6578 (description
6579 "Support for configuring virtual private networks based on VPNC.
6580 Compatible with Cisco VPN concentrators configured to use IPsec.")
6581 (license license:gpl2+)
6582 (properties `((upstream-name . "NetworkManager-vpnc")))))
6583
6584 (define-public network-manager-openconnect
6585 (package
6586 (name "network-manager-openconnect")
6587 (version "1.2.6")
6588 (source (origin
6589 (method url-fetch)
6590 (uri (string-append
6591 "mirror://gnome/sources/NetworkManager-openconnect/"
6592 (version-major+minor version)
6593 "/NetworkManager-openconnect-" version ".tar.xz"))
6594 (sha256
6595 (base32
6596 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6597 (build-system gnu-build-system)
6598 (arguments
6599 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6600 #:phases
6601 (modify-phases %standard-phases
6602 (add-after 'configure 'patch-path
6603 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6604 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6605 "/sbin/openconnect"))
6606 (modprobe (string-append (assoc-ref inputs "kmod")
6607 "/bin/modprobe"))
6608 (pretty-ovpn (string-append "\"" openconnect "\"")))
6609 (substitute* "src/nm-openconnect-service.c"
6610 (("\"/usr/local/sbin/openconnect\"") pretty-ovpn)
6611 (("\"/usr/sbin/openconnect\"") pretty-ovpn)
6612 (("/sbin/modprobe") modprobe)))
6613 #t)))))
6614 (native-inputs
6615 `(("intltool" ,intltool)
6616 ("network-manager-applet" ,network-manager-applet) ;for libnma
6617 ("pkg-config" ,pkg-config)))
6618 (inputs
6619 `(("gcr" ,gcr)
6620 ("gtk+" ,gtk+)
6621 ("kmod" ,kmod)
6622 ("libsecret" ,libsecret)
6623 ("libxml2" ,libxml2)
6624 ("network-manager" ,network-manager)
6625 ("openconnect" ,openconnect)))
6626 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6627 (synopsis "OpenConnect plug-in for NetworkManager")
6628 (description
6629 "This extension of NetworkManager allows it to take care of connections
6630 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6631 Cisco's AnyConnect SSL VPN.")
6632 (license license:gpl2+)
6633 (properties `((upstream-name . "NetworkManager-openconnect")
6634
6635 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6636 ;; file refers to account "nm-openconnect". Specify it here
6637 ;; so that 'network-manager-service-type' creates it.
6638 (user-accounts . ("nm-openconnect"))))))
6639
6640 (define-public mobile-broadband-provider-info
6641 (package
6642 (name "mobile-broadband-provider-info")
6643 (version "20190116")
6644 (source (origin
6645 (method url-fetch)
6646 (uri (string-append
6647 "mirror://gnome/sources/"
6648 "mobile-broadband-provider-info/" version "/"
6649 "mobile-broadband-provider-info-" version ".tar.xz"))
6650 (sha256
6651 (base32
6652 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6653 (build-system gnu-build-system)
6654 (arguments
6655 `(#:tests? #f)) ; no tests
6656 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6657 (synopsis "Database of broadband connection configuration")
6658 (description "Database of broadband connection configuration.")
6659 (license license:public-domain)))
6660
6661 (define-public network-manager-applet
6662 (package
6663 (name "network-manager-applet")
6664 (version "1.8.24")
6665 (source (origin
6666 (method url-fetch)
6667 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
6668 (version-major+minor version) "/"
6669 "network-manager-applet-" version ".tar.xz"))
6670 (sha256
6671 (base32
6672 "1gzvz4wfqfsfclqg56y954al8x6fmz71cnxlx1i4nqr7a25bp2qi"))))
6673 (build-system meson-build-system)
6674 (arguments
6675 '(#:configure-flags
6676 ;; ‘Nobody should be using this’ but network-manager-openvpn 1.8.10 does.
6677 (list "-Dlibnm_gtk=true")
6678 #:glib-or-gtk? #t))
6679 (native-inputs
6680 `(("intltool" ,intltool)
6681 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
6682 ("gobject-introspection" ,gobject-introspection)
6683 ("gtk-doc" ,gtk-doc)
6684 ("pkg-config" ,pkg-config)))
6685 (propagated-inputs
6686 ;; libnm-gtk.pc refers to all these.
6687 `(("dbus-glib" ,dbus-glib)
6688 ("gtk+" ,gtk+)
6689 ("network-manager" ,network-manager)))
6690 (inputs
6691 `(("gcr" ,gcr)
6692 ("iso-codes" ,iso-codes)
6693 ("libgudev" ,libgudev)
6694 ("libnotify" ,libnotify)
6695 ("libsecret" ,libsecret)
6696 ("libselinux" ,libselinux)
6697 ("jansson" ,jansson) ; for team support
6698 ("modem-manager" ,modem-manager)
6699 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)))
6700 (synopsis "Applet for managing network connections")
6701 (home-page "https://www.gnome.org/projects/NetworkManager/")
6702 (description
6703 "This package contains a systray applet for NetworkManager. It displays
6704 the available networks and allows users to easily switch between them.")
6705 (license license:gpl2+)))
6706
6707 (define-public libxml++
6708 (package
6709 (name "libxml++")
6710 (version "3.0.1")
6711 (source (origin
6712 (method url-fetch)
6713 (uri (string-append "mirror://gnome/sources/" name "/"
6714 (version-major+minor version) "/"
6715 name "-" version ".tar.xz"))
6716 (sha256
6717 (base32
6718 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
6719 (build-system gnu-build-system)
6720 ;; libxml++-3.0.pc refers to all these.
6721 (propagated-inputs
6722 `(("libxml2" ,libxml2)
6723 ("glibmm" ,glibmm)))
6724 (native-inputs
6725 `(("perl" ,perl)
6726 ("pkg-config" ,pkg-config)))
6727 (home-page "http://libxmlplusplus.sourceforge.net/")
6728 (synopsis "C++ wrapper for XML parser library libxml2")
6729 (description
6730 "This package provides a C++ wrapper for the XML parser library
6731 libxml2.")
6732 (license license:lgpl2.1+)))
6733
6734 (define-public libxml++-2
6735 (package
6736 (inherit libxml++)
6737 (name "libxml++")
6738 (version "2.40.1")
6739 (source (origin
6740 (method url-fetch)
6741 (uri (string-append "mirror://gnome/sources/" name "/"
6742 (version-major+minor version) "/"
6743 name "-" version ".tar.xz"))
6744 (sha256
6745 (base32
6746 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
6747
6748 (define-public gdm
6749 (package
6750 (name "gdm")
6751 (version "3.34.1")
6752 (source (origin
6753 (method url-fetch)
6754 (uri (string-append "mirror://gnome/sources/" name "/"
6755 (version-major+minor version) "/"
6756 name "-" version ".tar.xz"))
6757 (sha256
6758 (base32
6759 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
6760 (patches (search-patches "gdm-default-session.patch"))))
6761 (build-system glib-or-gtk-build-system)
6762 (arguments
6763 '(#:configure-flags
6764 `("--without-plymouth"
6765 "--disable-systemd-journal"
6766
6767 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
6768 ;; instead of having to replace it (i.e., stopping the mingetty
6769 ;; service for TTY 1 before starting GDM).
6770 "--with-initial-vt=7"
6771
6772 ;; Use '/etc/environment' for locale settings instead of the
6773 ;; systemd-specific '/etc/locale.conf'.
6774 "--with-lang-file=/etc/environment"
6775
6776 ,(string-append "--with-udevdir="
6777 (assoc-ref %outputs "out") "/lib/udev")
6778
6779 "--localstatedir=/var"
6780 ,(string-append "--with-default-path="
6781 (string-join '("/run/setuid-programs"
6782 "/run/current-system/profile/bin"
6783 "/run/current-system/profile/sbin")
6784 ":"))
6785 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
6786 ;; XDG_DATA_DIRS so that it finds its schemas.
6787 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
6788 #:phases
6789 (modify-phases %standard-phases
6790 (add-before
6791 'configure 'pre-configure
6792 (lambda* (#:key inputs outputs #:allow-other-keys)
6793 ;; We don't have <systemd/sd-daemon.h>.
6794 (substitute* '("common/gdm-log.c"
6795 "daemon/gdm-server.c"
6796 "daemon/gdm-session-worker.c"
6797 "daemon/gdm-session-worker-job.c")
6798 (("#include <systemd/sd-daemon\\.h>") ""))
6799 ;; Use elogind for sd-login.
6800 (substitute* '("common/gdm-common.c"
6801 "daemon/gdm-local-display-factory.c"
6802 "daemon/gdm-manager.c"
6803 "libgdm/gdm-user-switching.c")
6804 (("#include <systemd/sd-login\\.h>")
6805 "#include <elogind/sd-login.h>"))
6806 ;; Check for elogind.
6807 (substitute* '("configure")
6808 (("libsystemd")
6809 "libelogind"))
6810 ;; Look for system-installed sessions in
6811 ;; /run/current-system/profile/share.
6812 (substitute* '("libgdm/gdm-sessions.c"
6813 "daemon/gdm-session.c"
6814 "daemon/gdm-display.c"
6815 "daemon/gdm-launch-environment.c")
6816 (("DATADIR \"/x")
6817 "\"/run/current-system/profile/share/x")
6818 (("DATADIR \"/wayland")
6819 "\"/run/current-system/profile/share/wayland")
6820 (("DATADIR \"/gnome")
6821 "\"/run/current-system/profile/share/gnome"))
6822 (let ((propagate '("GDM_CUSTOM_CONF"
6823 "GDM_DBUS_DAEMON"
6824 "GDM_X_SERVER"
6825 "GDM_X_SESSION"
6826 ;; XXX: Remove this once GNOME Shell is
6827 ;; a dependency of GDM.
6828 "XDG_DATA_DIRS")))
6829 (substitute* "daemon/gdm-session.c"
6830 (("set_up_session_environment \\(self\\);")
6831 (apply string-append
6832 "set_up_session_environment (self);\n"
6833 (map (lambda (name)
6834 (string-append
6835 "gdm_session_set_environment_variable "
6836 "(self, \"" name "\","
6837 "g_getenv (\"" name "\"));\n"))
6838 propagate)))))
6839 ;; Find the configuration file using an environment variable.
6840 (substitute* '("common/gdm-settings.c")
6841 (("GDM_CUSTOM_CONF")
6842 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
6843 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
6844 " : GDM_CUSTOM_CONF)")))
6845 ;; Use service-supplied path to X.
6846 (substitute* '("daemon/gdm-server.c")
6847 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
6848 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
6849 (substitute* '("daemon/gdm-wayland-session.c"
6850 "daemon/gdm-x-session.c")
6851 (("\"dbus-daemon\"")
6852 "g_getenv (\"GDM_DBUS_DAEMON\")")
6853 (("X_SERVER")
6854 "g_getenv (\"GDM_X_SERVER\")")
6855 (("GDMCONFDIR \"/Xsession\"")
6856 "g_getenv (\"GDM_X_SESSION\")"))
6857 ;; Use an absolute path for GNOME Session.
6858 (substitute* "daemon/gdm-launch-environment.c"
6859 (("\"gnome-session\"")
6860 (string-append "\"" (assoc-ref inputs "gnome-session")
6861 "/bin/gnome-session\"")))
6862 ;; Do not automatically select the placeholder session.
6863 (substitute* "daemon/gdm-session.c"
6864 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
6865 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
6866 "(g_strcmp0(search_dirs[i], \""
6867 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
6868 "\") == 0 && "
6869 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
6870 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
6871 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
6872 #t))
6873 ;; GDM requires that there be at least one desktop entry
6874 ;; file. This phase installs a hidden one that simply
6875 ;; fails. This enables users to use GDM with a
6876 ;; '~/.xsession' script with no other desktop entry files.
6877 ;; See <https://bugs.gnu.org/35068>.
6878 (add-after 'install 'install-placeholder-desktop-entry
6879 (lambda* (#:key inputs outputs #:allow-other-keys)
6880 (let* ((out (assoc-ref outputs "out"))
6881 (sessions (string-append out "/share/gdm/BuiltInSessions"))
6882 (fail (string-append sessions "/fail.desktop")))
6883 (mkdir-p sessions)
6884 (with-output-to-file fail
6885 (lambda ()
6886 (for-each
6887 display
6888 '("[Desktop Entry]\n"
6889 "Encoding=UTF-8\n"
6890 "Type=Application\n"
6891 "Name=Fail\n"
6892 "Comment=This session fails immediately.\n"
6893 "NoDisplay=true\n"
6894 "Exec=false\n"))))
6895 #t)))
6896 ;; GDM needs GNOME Session to run these applications. We link
6897 ;; their autostart files in `share/gdm/greeter/autostart'
6898 ;; because GDM explicitly tells GNOME Session to look there.
6899 ;;
6900 ;; XXX: GNOME Shell should be linked here too, but currently
6901 ;; GNOME Shell depends on GDM.
6902 (add-after 'install 'link-autostart-files
6903 (lambda* (#:key inputs outputs #:allow-other-keys)
6904 (let* ((out (assoc-ref outputs "out"))
6905 (autostart (string-append out "/share/gdm/"
6906 "greeter/autostart"))
6907 (settings (assoc-ref inputs "gnome-settings-daemon")))
6908 (mkdir-p autostart)
6909 (with-directory-excursion autostart
6910 (for-each (lambda (desktop)
6911 (symlink desktop (basename desktop)))
6912 (find-files (string-append settings "/etc/xdg"))))
6913 #t))))))
6914 (native-inputs
6915 `(("dconf" ,dconf)
6916 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6917 ("gobject-introspection" ,gobject-introspection)
6918 ("intltool" ,intltool)
6919 ("itstool" ,itstool)
6920 ("pkg-config" ,pkg-config)
6921 ("xmllint" ,libxml2)))
6922 (inputs
6923 `(("accountsservice" ,accountsservice)
6924 ("check" ,check) ; for testing
6925 ("elogind" ,elogind)
6926 ("gnome-session" ,gnome-session)
6927 ("gnome-settings-daemon" ,gnome-settings-daemon)
6928 ("gtk+" ,gtk+)
6929 ("iso-codes" ,iso-codes)
6930 ("libcanberra" ,libcanberra)
6931 ("linux-pam" ,linux-pam)))
6932 (synopsis "Display manager for GNOME")
6933 (home-page "https://wiki.gnome.org/Projects/GDM/")
6934 (description
6935 "GNOME Display Manager is a system service that is responsible for
6936 providing graphical log-ins and managing local and remote displays.")
6937 (license license:gpl2+)))
6938
6939 (define-public libgtop
6940 (package
6941 (name "libgtop")
6942 (version "2.40.0")
6943 (source (origin
6944 (method url-fetch)
6945 (uri (string-append "mirror://gnome/sources/libgtop/"
6946 (version-major+minor version) "/"
6947 "libgtop-" version ".tar.xz"))
6948 (sha256
6949 (base32
6950 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
6951 (build-system gnu-build-system)
6952 (native-inputs
6953 `(("gobject-introspection" ,gobject-introspection)
6954 ("intltool" ,intltool)
6955 ("perl" ,perl)
6956 ("pkg-config" ,pkg-config)))
6957 (propagated-inputs
6958 `(("glib" ,glib))) ; required by libgtop-2.0.pc
6959 (synopsis "Portable system access library")
6960 (home-page "https://www.gnome.org/")
6961 (description
6962 "LibGTop is a library to get system specific data such as CPU and memory
6963 usage and information about running processes.")
6964 (license license:gpl2+)))
6965
6966 (define-public gnome-bluetooth
6967 (package
6968 (name "gnome-bluetooth")
6969 (version "3.34.0")
6970 (source (origin
6971 (method url-fetch)
6972 (uri (string-append "mirror://gnome/sources/" name "/"
6973 (version-major+minor version) "/"
6974 name "-" version ".tar.xz"))
6975 (sha256
6976 (base32
6977 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
6978 (build-system meson-build-system)
6979 (native-inputs
6980 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
6981 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6982 ("gobject-introspection" ,gobject-introspection)
6983 ("intltool" ,intltool)
6984 ("pkg-config" ,pkg-config)
6985 ("xmllint" ,libxml2)))
6986 (propagated-inputs
6987 ;; gnome-bluetooth-1.0.pc refers to all these.
6988 `(("glib" ,glib)
6989 ("gtk+" ,gtk+)))
6990 (inputs
6991 `(("eudev" ,eudev)
6992 ("libcanberra" ,libcanberra)
6993 ("libnotify" ,libnotify)))
6994 (synopsis "GNOME Bluetooth subsystem")
6995 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
6996 (description
6997 "This package contains tools for managing and manipulating Bluetooth
6998 devices using the GNOME desktop.")
6999 (license license:lgpl2.1+)))
7000
7001 (define-public gnome-control-center
7002 (package
7003 (name "gnome-control-center")
7004 (version "3.34.2")
7005 (source (origin
7006 (method url-fetch)
7007 (uri (string-append "mirror://gnome/sources/" name "/"
7008 (version-major+minor version) "/"
7009 name "-" version ".tar.xz"))
7010 (sha256
7011 (base32
7012 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7013 (build-system meson-build-system)
7014 (arguments
7015 '(#:glib-or-gtk? #t
7016 #:configure-flags
7017 (list "-Dcheese=false"
7018 (string-append "-Dgnome_session_libexecdir="
7019 (assoc-ref %build-inputs "gnome-session")
7020 "/libexec"))
7021 #:phases
7022 (modify-phases %standard-phases
7023 (add-before 'configure 'patch-paths
7024 (lambda* (#:key inputs #:allow-other-keys)
7025 (let ((libc (assoc-ref inputs "libc"))
7026 (tzdata (assoc-ref inputs "tzdata"))
7027 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7028 (nm-applet (assoc-ref inputs "network-manager-applet"))
7029 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7030 (substitute* "panels/datetime/tz.h"
7031 (("/usr/share/zoneinfo/zone.tab")
7032 (string-append tzdata "/share/zoneinfo/zone.tab")))
7033 (substitute* "tests/datetime/test-endianess.c"
7034 (("/usr/share/locale")
7035 (string-append libc "/share/locale")))
7036 (substitute* "panels/region/cc-region-panel.c"
7037 (("\"gkbd-keyboard-display")
7038 (string-append "\"" libgnomekbd
7039 "/bin/gkbd-keyboard-display")))
7040 (substitute* '("panels/network/net-device-wifi.c"
7041 "panels/network/net-device.c"
7042 "panels/network/connection-editor/net-connection-editor.c")
7043 (("\"nm-connection-editor")
7044 (string-append "\"" nm-applet
7045 "/bin/nm-connection-editor")))
7046 (substitute* '("panels/user-accounts/run-passwd.c")
7047 (("/usr/bin/passwd")
7048 "/run/setuid-programs/passwd"))
7049 (substitute* "panels/info/cc-info-overview-panel.c"
7050 (("DATADIR \"/gnome/gnome-version.xml\"")
7051 (string-append "\"" gnome-desktop
7052 "/share/gnome/gnome-version.xml\"")))
7053 #t)))
7054 (add-after 'unpack 'skip-gtk-update-icon-cache
7055 ;; Don't create 'icon-theme.cache'.
7056 (lambda _
7057 (substitute* "build-aux/meson/meson_post_install.py"
7058 (("gtk-update-icon-cache") (which "true")))
7059 #t)))))
7060 (native-inputs
7061 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7062 ("intltool" ,intltool)
7063 ("pkg-config" ,pkg-config)
7064 ("xsltproc" ,libxslt)
7065 ;; For tests
7066 ("hicolor-icon-theme" ,hicolor-icon-theme)
7067 ("python-dbusmock" ,python-dbusmock)
7068 ("xorg-server" ,xorg-server-for-tests)))
7069 (inputs
7070 `(("accountsservice" ,accountsservice)
7071 ("clutter-gtk" ,clutter-gtk)
7072 ("colord-gtk" ,colord-gtk)
7073 ("cups" ,cups)
7074 ("dconf" ,dconf)
7075 ("docbook-xsl" ,docbook-xsl)
7076 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7077 ("gnome-bluetooth" ,gnome-bluetooth)
7078 ("gnome-desktop" ,gnome-desktop)
7079 ("gnome-online-accounts" ,gnome-online-accounts)
7080 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7081 ("gnome-session" ,gnome-session)
7082 ("gnome-settings-daemon" ,gnome-settings-daemon)
7083 ("grilo" ,grilo)
7084 ("gsound" ,gsound)
7085 ("ibus" ,ibus)
7086 ("libcanberra" ,libcanberra)
7087 ("libgnomekbd" ,libgnomekbd)
7088 ("libgudev" ,libgudev)
7089 ("libgtop" ,libgtop)
7090 ("libpwquality" ,libpwquality)
7091 ("libsecret" ,libsecret)
7092 ("libsoup" ,libsoup)
7093 ("libxml2" ,libxml2)
7094 ("libwacom" ,libwacom)
7095 ("mesa" ,mesa)
7096 ("mit-krb5" ,mit-krb5)
7097 ("modem-manager" ,modem-manager)
7098 ("network-manager-applet" ,network-manager-applet)
7099 ("polkit" ,polkit)
7100 ("pulseaudio" ,pulseaudio)
7101 ("smbclient" ,samba)
7102 ("tzdata" ,tzdata)
7103 ("udisks" ,udisks)
7104 ("upower" ,upower)))
7105 (synopsis "Utilities to configure the GNOME desktop")
7106 (home-page "https://www.gnome.org/")
7107 (description
7108 "This package contains configuration applets for the GNOME desktop,
7109 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7110 properties, sound setup, desktop theme and background, user interface
7111 properties, screen resolution, and other GNOME parameters.")
7112 (license license:gpl2+)))
7113
7114 (define-public gnome-shell
7115 (package
7116 (name "gnome-shell")
7117 (version "3.34.2")
7118 (source (origin
7119 (method url-fetch)
7120 (uri (string-append "mirror://gnome/sources/" name "/"
7121 (version-major+minor version) "/"
7122 name "-" version ".tar.xz"))
7123 (sha256
7124 (base32
7125 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7126 (patches (search-patches "gnome-shell-theme.patch"
7127 "gnome-shell-disable-test.patch"))
7128 (modules '((guix build utils)))
7129 (snippet
7130 #~(begin
7131 ;; Copy images for use on the GDM log-in screen.
7132 (copy-file #$(file-append %artwork-repository
7133 "/slim/0.x/background.png")
7134 "data/theme/guix-background.png")
7135 (copy-file #$(file-append %artwork-repository
7136 "/logo/Guix-horizontal-white.svg")
7137 "data/theme/guix-logo.svg")
7138 #t))))
7139 (build-system meson-build-system)
7140 (arguments
7141 `(#:glib-or-gtk? #t
7142 #:disallowed-references ((,glib "bin")
7143 ,inkscape ,libxslt
7144 ,ruby-sass)
7145 #:configure-flags
7146 (list "-Dsystemd=false"
7147 ;; Otherwise, the RUNPATH will lack the final path component.
7148 (string-append "-Dc_link_args=-Wl,-rpath="
7149 (assoc-ref %outputs "out")
7150 "/lib/gnome-shell"))
7151
7152 #:modules ((guix build meson-build-system)
7153 (guix build utils)
7154 (srfi srfi-1))
7155
7156 #:phases
7157 (modify-phases %standard-phases
7158 (add-after 'unpack 'fix-keysdir
7159 (lambda* (#:key outputs #:allow-other-keys)
7160 (let* ((out (assoc-ref outputs "out"))
7161 (keysdir (string-append
7162 out "/share/gnome-control-center/keybindings")))
7163 (substitute* "meson.build"
7164 (("keysdir =.*")
7165 (string-append "keysdir = '" keysdir "'\n")))
7166 #t)))
7167 (add-before 'configure 'convert-logo-to-png
7168 (lambda* (#:key inputs #:allow-other-keys)
7169 ;; Convert the logo from SVG to PNG.
7170 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7171 "data/theme/guix-logo.svg")))
7172 (add-before 'configure 'record-absolute-file-names
7173 (lambda* (#:key inputs #:allow-other-keys)
7174 (substitute* "js/misc/ibusManager.js"
7175 (("'ibus-daemon'")
7176 (string-append "'" (assoc-ref inputs "ibus")
7177 "/bin/ibus-daemon'")))
7178 (substitute* "js/ui/status/keyboard.js"
7179 (("'gkbd-keyboard-display'")
7180 (string-append "'" (assoc-ref inputs "libgnomekbd")
7181 "/bin/gkbd-keyboard-display'")))
7182 #t))
7183 (add-before 'check 'pre-check
7184 (lambda* (#:key inputs #:allow-other-keys)
7185 ;; Tests require a running X server.
7186 (system "Xvfb :1 &")
7187 (setenv "DISPLAY" ":1")
7188 #t))
7189 (add-after 'install 'wrap-programs
7190 (lambda* (#:key inputs outputs #:allow-other-keys)
7191 (let ((out (assoc-ref outputs "out"))
7192 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7193 (python-path (getenv "PYTHONPATH")))
7194 (wrap-program (string-append out "/bin/gnome-shell")
7195 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7196 ;; FIXME: gnome-shell loads these libraries with unqualified
7197 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7198 ;; alternative might be to patch gnome-shell.
7199 `("LD_LIBRARY_PATH" ":" prefix
7200 ,(map (lambda (pkg)
7201 (string-append (assoc-ref inputs pkg) "/lib"))
7202 '("gdk-pixbuf"
7203 "gnome-bluetooth" "librsvg" "libgweather"))))
7204 (for-each
7205 (lambda (prog)
7206 (wrap-program (string-append out "/bin/" prog)
7207 `("PYTHONPATH" ":" prefix (,python-path))
7208 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7209 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7210 #t)))
7211 (replace 'glib-or-gtk-wrap
7212 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7213 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7214 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7215 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7216 ;; phase. Fix that since we don't need these.
7217 (wrap #:inputs (fold alist-delete inputs
7218 '("inkscape" "intltool" "glib:bin"))
7219 #:outputs outputs)))))))
7220 (native-inputs
7221 `(("asciidoc" ,asciidoc)
7222 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7223 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7224 ("gobject-introspection" ,gobject-introspection)
7225 ("inkscape" ,inkscape)
7226 ("intltool" ,intltool)
7227 ("pkg-config" ,pkg-config)
7228 ("python" ,python)
7229 ("ruby-sass" ,ruby-sass)
7230 ("sassc" ,sassc)
7231 ("xsltproc" ,libxslt)
7232 ;; For tests
7233 ("xorg-server" ,xorg-server-for-tests)))
7234 (inputs
7235 `(("accountsservice" ,accountsservice)
7236 ("caribou" ,caribou)
7237 ("docbook-xsl" ,docbook-xsl)
7238 ("evolution-data-server" ,evolution-data-server)
7239 ("gcr" ,gcr)
7240 ("gdm" ,gdm)
7241 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7242 ("gjs" ,gjs)
7243 ("gnome-autoar" ,gnome-autoar)
7244 ("gnome-bluetooth" ,gnome-bluetooth)
7245 ("gnome-desktop" ,gnome-desktop)
7246 ("gnome-settings-daemon" ,gnome-settings-daemon)
7247 ("gst-plugins-base" ,gst-plugins-base)
7248 ("ibus" ,ibus)
7249 ("libcanberra" ,libcanberra)
7250 ("libcroco" ,libcroco)
7251 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7252 ("libgweather" ,libgweather)
7253 ("libsoup" ,libsoup)
7254 ("mesa-headers" ,mesa-headers)
7255 ("mutter" ,mutter)
7256 ("network-manager-applet" ,network-manager-applet)
7257 ("polkit" ,polkit)
7258 ("pulseaudio" ,pulseaudio)
7259 ("python-pygobject" ,python-pygobject)
7260 ("startup-notification" ,startup-notification)
7261 ("telepathy-logger" ,telepathy-logger)
7262 ("upower" ,upower)
7263 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7264 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7265 ("librsvg" ,librsvg)
7266 ("geoclue" ,geoclue)))
7267 (synopsis "Desktop shell for GNOME")
7268 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7269 (description
7270 "GNOME Shell provides core user interface functions for the GNOME desktop,
7271 like switching to windows and launching applications.")
7272 (license license:gpl2+)))
7273
7274 (define-public gtk-vnc
7275 (package
7276 (name "gtk-vnc")
7277 (version "0.9.0")
7278 (source
7279 (origin
7280 (method url-fetch)
7281 (uri (string-append "mirror://gnome/sources/" name "/"
7282 (version-major+minor version) "/"
7283 name "-" version ".tar.xz"))
7284 (sha256
7285 (base32
7286 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7287 (build-system gnu-build-system)
7288 (arguments
7289 '(#:configure-flags '("--with-gtk=3.0")))
7290 (propagated-inputs
7291 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7292 (inputs
7293 `(("cyrus-sasl" ,cyrus-sasl)
7294 ("gnutls" ,gnutls)
7295 ("libgcrypt" ,libgcrypt)
7296 ("pulseaudio" ,pulseaudio)))
7297 (native-inputs
7298 `(("glib:bin" ,glib "bin")
7299 ("gobject-introspection" ,gobject-introspection)
7300 ("intltool" ,intltool)
7301 ("pkg-config" ,pkg-config)
7302 ("python-wrapper" ,python-wrapper)
7303 ("vala" ,vala)))
7304 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7305 (synopsis "VNC viewer widget for GTK+")
7306 (description
7307 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7308 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7309 GTK-VNC implements client side RFB protocol and authentication extensions such
7310 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7311 (license license:lgpl2.1+)))
7312
7313 (define-public gnome-autoar
7314 (package
7315 (name "gnome-autoar")
7316 (version "0.2.4")
7317 (source (origin
7318 (method url-fetch)
7319 (uri (string-append "mirror://gnome/sources/" name "/"
7320 (version-major+minor version) "/"
7321 name "-" version ".tar.xz"))
7322 (sha256
7323 (base32
7324 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
7325 (build-system glib-or-gtk-build-system)
7326 (native-inputs
7327 `(("gobject-introspection" ,gobject-introspection)
7328 ("pkg-config" ,pkg-config)))
7329 (propagated-inputs
7330 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
7331 (inputs
7332 `(("gtk+" ,gtk+)))
7333 (synopsis "Archives integration support for GNOME")
7334 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7335 (description
7336 "GNOME Autoar is a library which makes creating and extracting archives
7337 easy, safe, and automatic.")
7338 (license license:lgpl2.1+)))
7339
7340 (define-public tracker
7341 (package
7342 (name "tracker")
7343 (version "2.3.4")
7344 (source (origin
7345 (method url-fetch)
7346 (uri (string-append "mirror://gnome/sources/tracker/"
7347 (version-major+minor version) "/"
7348 "tracker-" version ".tar.xz"))
7349 (sha256
7350 (base32
7351 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7352 (build-system meson-build-system)
7353 (arguments
7354 `(#:glib-or-gtk? #t
7355 #:configure-flags
7356 ;; Otherwise, the RUNPATH will lack the final path component.
7357 (list (string-append "-Dc_link_args=-Wl,-rpath="
7358 (assoc-ref %outputs "out") "/lib:"
7359 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7360 #:phases
7361 (modify-phases %standard-phases
7362 (add-before 'check 'pre-check
7363 (lambda _
7364 ;; Some tests expect to write to $HOME.
7365 (setenv "HOME" "/tmp")
7366 #t)))))
7367 (native-inputs
7368 `(("glib:bin" ,glib "bin")
7369 ("gobject-introspection" ,gobject-introspection)
7370 ("python-pygobject" ,python-pygobject)
7371 ("intltool" ,intltool)
7372 ("pkg-config" ,pkg-config)
7373 ("vala" ,vala)))
7374 (inputs
7375 `(("dbus" ,dbus)
7376 ("sqlite" ,sqlite)
7377 ("libxml2" ,libxml2)
7378 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
7379 ("json-glib" ,json-glib)
7380 ("libsoup" ,libsoup)))
7381 (synopsis "Metadata database, indexer and search tool")
7382 (home-page "https://wiki.gnome.org/Projects/Tracker")
7383 (description
7384 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7385
7386 It is a middleware component aimed at desktop application developers who want
7387 their apps to browse and search user content. It's not designed to be used
7388 directly by desktop users, but it provides a commandline tool named
7389 @command{tracker} for the adventurous.
7390
7391 Tracker allows your application to instantly perform full-text searches across
7392 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7393 example. This is achieved by indexing the user's home directory in the
7394 background.
7395
7396 Tracker also allows your application to query and list content that the user
7397 has stored. For example, GNOME Music displays all the music files that are
7398 found by Tracker. This means that GNOME Music doesn't need to maintain a
7399 database of its own.
7400
7401 If you need to go beyond simple searches, Tracker is also a linked data
7402 endpoint and it understands SPARQL. ")
7403 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
7404 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7405 ;; libstemmer is bsd-3 and the rest is gpl2+.
7406 (license (list license:gpl2+
7407 license:bsd-3
7408 license:lgpl2.1+))))
7409
7410 (define-public tracker-miners
7411 (package
7412 (name "tracker-miners")
7413 (version "2.3.3")
7414 (source (origin
7415 (method url-fetch)
7416 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7417 (version-major+minor version)
7418 "/tracker-miners-" version ".tar.xz"))
7419 (sha256
7420 (base32
7421 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
7422 (build-system meson-build-system)
7423 (arguments
7424 `(#:glib-or-gtk? #t
7425 #:configure-flags
7426 (list "-Dminer_rss=false" ; libgrss is required.
7427 ;; Ensure the RUNPATH contains all installed library locations.
7428 (string-append "-Dc_link_args=-Wl,-rpath="
7429 (assoc-ref %outputs "out")
7430 "/lib/tracker-miners-2.0")
7431 ;; TODO: Enable functional tests. Currently, the following error
7432 ;; appears:
7433 ;; Exception: The functional tests require DConf to be the default
7434 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7435 "-Dfunctional_tests=false")))
7436 (native-inputs
7437 `(("dbus" ,dbus)
7438 ("intltool" ,intltool)
7439 ("glib:bin" ,glib "bin")
7440 ("gobject-introspection" ,gobject-introspection)
7441 ("pkg-config" ,pkg-config)
7442 ("python-pygobject" ,python-pygobject)))
7443 (inputs
7444 `(("exempi" ,exempi)
7445 ("ffmpeg" ,ffmpeg)
7446 ("flac" ,flac)
7447 ("giflib" ,giflib)
7448 ("glib" ,glib)
7449 ("gstreamer" ,gstreamer)
7450 ("icu4c" ,icu4c)
7451 ("libcue" ,libcue)
7452 ("libexif" ,libexif)
7453 ("libgsf" ,libgsf)
7454 ("libgxps" ,libgxps)
7455 ("libiptcdata" ,libiptcdata)
7456 ("libjpeg" ,libjpeg-turbo)
7457 ("libosinfo" ,libosinfo)
7458 ("libpng" ,libpng)
7459 ("libseccomp" ,libseccomp)
7460 ("libtiff" ,libtiff)
7461 ("libvorbis" ,libvorbis)
7462 ("libxml2" ,libxml2)
7463 ("poppler" ,poppler)
7464 ("taglib" ,taglib)
7465 ("totem-pl-parser" ,totem-pl-parser)
7466 ("tracker" ,tracker)
7467 ("upower" ,upower)
7468 ("zlib" ,zlib)))
7469 (synopsis "Metadata database, indexer and search tool")
7470 (home-page "https://wiki.gnome.org/Projects/Tracker")
7471 (description
7472 "Tracker is an advanced framework for first class objects with associated
7473 metadata and tags. It provides a one stop solution for all metadata, tags,
7474 shared object databases, search tools and indexing.")
7475 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7476 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7477 (license (list license:gpl2+
7478 license:lgpl2.1+
7479 license:lgpl2.0+))))
7480
7481 (define-public nautilus
7482 (package
7483 (name "nautilus")
7484 (version "3.34.2")
7485 (source (origin
7486 (method url-fetch)
7487 (uri (string-append "mirror://gnome/sources/" name "/"
7488 (version-major+minor version) "/"
7489 name "-" version ".tar.xz"))
7490 (sha256
7491 (base32
7492 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
7493 (build-system meson-build-system)
7494 (arguments
7495 '(#:glib-or-gtk? #t
7496 #:phases
7497 (modify-phases %standard-phases
7498 (add-after 'unpack 'skip-gtk-update-icon-cache
7499 ;; Don't create 'icon-theme.cache'.
7500 (lambda _
7501 (substitute* "build-aux/meson/postinstall.py"
7502 (("gtk-update-icon-cache") "true"))
7503 #t)))
7504 ;; XXX: FAIL: check-nautilus
7505 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7506 #:tests? #f))
7507 (native-inputs
7508 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7509 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7510 ("gobject-introspection" ,gobject-introspection)
7511 ("intltool" ,intltool)
7512 ("pkg-config" ,pkg-config)))
7513 (inputs
7514 `(("dconf" ,dconf)
7515 ("gexiv2" ,gexiv2)
7516 ("gvfs" ,gvfs)
7517 ("exempi" ,exempi)
7518 ("gnome-desktop" ,gnome-desktop)
7519 ("gnome-autoar" ,gnome-autoar)
7520 ("gst-plugins-base" ,gst-plugins-base)
7521 ("libseccomp" ,libseccomp)
7522 ("libselinux" ,libselinux)
7523 ("tracker" ,tracker)
7524 ("tracker-miners" ,tracker-miners)
7525 ;; XXX: gtk+ is required by libnautilus-extension.pc
7526 ;;
7527 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7528 ;; package. See:
7529 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7530 ("gtk+" ,gtk+)
7531 ("libexif" ,libexif)
7532 ("libxml2" ,libxml2)))
7533 (synopsis "File manager for GNOME")
7534 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7535 (description
7536 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7537 design and behaviour, giving the user a simple way to navigate and manage its
7538 files.")
7539 (license license:gpl2+)))
7540
7541 (define-public baobab
7542 (package
7543 (name "baobab")
7544 (version "3.32.0")
7545 (source (origin
7546 (method url-fetch)
7547 (uri (string-append
7548 "mirror://gnome/sources/" name "/"
7549 (version-major+minor version) "/"
7550 name "-" version ".tar.xz"))
7551 (sha256
7552 (base32
7553 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7554 (build-system meson-build-system)
7555 (arguments
7556 '(#:glib-or-gtk? #t))
7557 (native-inputs
7558 `(("intltool" ,intltool)
7559 ("pkg-config" ,pkg-config)
7560 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7561 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7562 ("itstool" ,itstool)
7563 ("xmllint" ,libxml2)
7564 ("glib" ,glib "bin")
7565 ("vala" ,vala)))
7566 (inputs
7567 `(("gtk+" ,gtk+)))
7568 (synopsis "Disk usage analyzer for GNOME")
7569 (description
7570 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7571 usage in the GNOME desktop environment. It can easily scan device volumes or
7572 a specific user-requested directory branch (local or remote). Once the scan
7573 is complete it provides a graphical representation of each selected folder.")
7574 (home-page "https://wiki.gnome.org/Apps/Baobab")
7575 (license license:gpl2+)))
7576
7577 (define-public gnome-backgrounds
7578 (package
7579 (name "gnome-backgrounds")
7580 (version "3.34.0")
7581 (source
7582 (origin
7583 (method url-fetch)
7584 (uri (string-append "mirror://gnome/sources/" name "/"
7585 (version-major+minor version) "/"
7586 name "-" version ".tar.xz"))
7587 (sha256
7588 (base32
7589 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
7590 (build-system meson-build-system)
7591 (native-inputs
7592 `(("intltool" ,intltool)))
7593 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7594 (synopsis "Background images for the GNOME desktop")
7595 (description
7596 "GNOME backgrounds package contains a collection of graphics files which
7597 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7598 the package creates the proper framework and directory structure so that you
7599 can add your own files to the collection.")
7600 (license (list license:gpl2+
7601 license:cc-by2.0
7602 license:cc-by-sa2.0
7603 license:cc-by-sa3.0))))
7604
7605 (define-public gnome-screenshot
7606 (package
7607 (name "gnome-screenshot")
7608 (version "3.34.0")
7609 (source
7610 (origin
7611 (method url-fetch)
7612 (uri (string-append "mirror://gnome/sources/" name "/"
7613 (version-major+minor version) "/"
7614 name "-" version ".tar.xz"))
7615 (sha256
7616 (base32
7617 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
7618 (build-system meson-build-system)
7619 (arguments
7620 '(#:phases
7621 (modify-phases %standard-phases
7622 (add-after 'unpack 'skip-gtk-update-icon-cache
7623 ;; Don't create 'icon-theme.cache'.
7624 (lambda _
7625 (substitute* "build-aux/postinstall.py"
7626 (("gtk-update-icon-cache") "true"))
7627 #t)))))
7628 (native-inputs
7629 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7630 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7631 ("intltool" ,intltool)
7632 ("appstream-glib" ,appstream-glib)
7633 ("pkg-config" ,pkg-config)))
7634 (inputs
7635 `(("gtk+" ,gtk+)
7636 ("libcanberra" ,libcanberra)
7637 ("libx11" ,libx11)
7638 ("libxext" ,libxext)))
7639 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7640 (synopsis "Take pictures of your screen")
7641 (description
7642 "GNOME Screenshot is a utility used for taking screenshots of the entire
7643 screen, a window or a user defined area of the screen, with optional
7644 beautifying border effects.")
7645 (license license:gpl2+)))
7646
7647 (define-public dconf-editor
7648 (package
7649 (name "dconf-editor")
7650 (version "3.34.2")
7651 (source
7652 (origin
7653 (method url-fetch)
7654 (uri (string-append "mirror://gnome/sources/" name "/"
7655 (version-major+minor version) "/"
7656 name "-" version ".tar.xz"))
7657 (sha256
7658 (base32
7659 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
7660 (build-system meson-build-system)
7661 (native-inputs
7662 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
7663 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7664 ("intltool" ,intltool)
7665 ("pkg-config" ,pkg-config)
7666 ("vala" ,vala)))
7667 (inputs
7668 `(("dconf" ,dconf)
7669 ("gtk+" ,gtk+)
7670 ("libxml2" ,libxml2)))
7671 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
7672 (synopsis "Graphical editor for GNOME's dconf configuration system")
7673 (description
7674 "Dconf-editor is a graphical tool for browsing and editing the dconf
7675 configuration system for GNOME. It allows users to configure desktop
7676 software that do not provide their own configuration interface.")
7677 (license license:lgpl2.1+)))
7678
7679 (define-public gnome-default-applications
7680 (package
7681 (name "gnome-default-applications")
7682 (version "0")
7683 (build-system trivial-build-system)
7684 (source #f)
7685 (propagated-inputs
7686 `(("nautilus" ,nautilus)
7687 ("evince" ,evince)))
7688 (arguments
7689 `(#:modules ((guix build utils))
7690 #:builder
7691 (begin
7692 (use-modules (guix build utils))
7693 (let* ((out (assoc-ref %outputs "out"))
7694 (apps (string-append out "/share/applications")))
7695 (mkdir-p apps)
7696 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
7697 (lambda (port)
7698 (format port "[Default Applications]\n")
7699 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
7700 (format port "application/pdf=evince.desktop\n")
7701 (format port "application/postscript=evince.desktop\n")))
7702 #t))))
7703 (synopsis "Default MIME type associations for the GNOME desktop")
7704 (description
7705 "Given many installed packages which might handle a given MIME type, a
7706 user running the GNOME desktop probably has some preferences: for example,
7707 that folders be opened by default by the Nautilus file manager, not the Baobab
7708 disk usage analyzer. This package establishes that set of default MIME type
7709 associations for GNOME.")
7710 (license license:gpl3+)
7711 (home-page #f)))
7712
7713 (define-public libgovirt
7714 (package
7715 (name "libgovirt")
7716 (version "0.3.6")
7717 (source (origin
7718 (method url-fetch)
7719 (uri (string-append "mirror://gnome/sources/" name "/"
7720 (version-major+minor version) "/"
7721 name "-" version ".tar.xz"))
7722 (sha256
7723 (base32
7724 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
7725 (build-system glib-or-gtk-build-system)
7726 (native-inputs
7727 `(("gettext" ,gettext-minimal)
7728 ("glib:bin" ,glib "bin")
7729 ("gobject-introspection" ,gobject-introspection)
7730 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7731 ("gtk+:bin" ,gtk+ "bin")
7732 ("pkg-config" ,pkg-config)))
7733 (inputs
7734 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
7735 ("librest" ,rest)))
7736 (synopsis "GoVirt Library")
7737 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
7738 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
7739 (license license:gpl2+)))
7740
7741 (define-public gnome-weather
7742 (package
7743 (name "gnome-weather")
7744 (version "3.34.0")
7745 (source (origin
7746 (method url-fetch)
7747 (uri (string-append "mirror://gnome/sources/" name "/"
7748 (version-major+minor version) "/"
7749 name "-" version ".tar.xz"))
7750 (sha256
7751 (base32
7752 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
7753 (build-system meson-build-system)
7754 (native-inputs
7755 `(("gettext" ,gettext-minimal)
7756 ("glib:bin" ,glib "bin")
7757 ("gobject-introspection" ,gobject-introspection)
7758 ("gtk+:bin" ,gtk+ "bin")
7759 ("pkg-config" ,pkg-config)))
7760 (inputs
7761 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
7762 ("appstream-glib" ,appstream-glib)
7763 ("geoclue" ,geoclue)
7764 ("gdk-pixbuf" ,gdk-pixbuf)
7765 ("gjs" ,gjs)
7766 ("gnome-desktop" ,gnome-desktop)
7767 ("libgweather" ,libgweather)))
7768 (arguments
7769 `(#:phases
7770 (modify-phases %standard-phases
7771 (add-after 'install 'fix-desktop-file
7772 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
7773 ;; See https://issues.guix.gnu.org/issue/39324.
7774 (lambda* (#:key outputs #:allow-other-keys)
7775 (let* ((out (assoc-ref outputs "out"))
7776 (applications (string-append out "/share/applications")))
7777 (substitute* (string-append applications "/org.gnome.Weather.desktop")
7778 (("Exec=.*") "Exec=gnome-weather\n"))))))))
7779 (synopsis "Weather monitoring for GNOME desktop")
7780 (description "GNOME Weather is a small application that allows you to
7781 monitor the current weather conditions for your city, or anywhere in the
7782 world.")
7783 (home-page "https://wiki.gnome.org/Apps/Weather")
7784 (license license:gpl2+)))
7785
7786 (define-public gnome
7787 (package
7788 (name "gnome")
7789 (version (package-version gnome-shell))
7790 (source #f)
7791 (build-system trivial-build-system)
7792 (arguments '(#:builder (begin (mkdir %output) #t)))
7793 (propagated-inputs
7794 ;; TODO: Add or remove packages according to:
7795 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
7796 `(
7797 ;; GNOME-Core-OS-Services
7798 ("accountsservice" ,accountsservice)
7799 ("network-manager" ,network-manager)
7800 ("packagekit" ,packagekit)
7801 ("upower" ,upower)
7802 ;; GNOME-Core-Shell
7803 ("adwaita-icon-theme" ,adwaita-icon-theme)
7804 ("gdm" ,gdm)
7805 ("glib-networking" ,glib-networking)
7806 ("gnome-backgrounds" ,gnome-backgrounds)
7807 ("gnome-bluetooth" ,gnome-bluetooth)
7808 ("gnome-color-manager" ,gnome-color-manager)
7809 ("gnome-control-center" ,gnome-control-center)
7810 ("gnome-desktop" ,gnome-desktop)
7811 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
7812 ("gnome-initial-setup" ,gnome-initial-setup)
7813 ("gnome-keyring" ,gnome-keyring)
7814 ("gnome-menus" ,gnome-menus)
7815 ("gnome-session" ,gnome-session)
7816 ("gnome-settings-daemon" ,gnome-settings-daemon)
7817 ("gnome-shell-extensions" ,gnome-shell-extensions)
7818 ("gnome-shell" ,gnome-shell)
7819 ("gnome-themes-extra" ,gnome-themes-extra)
7820 ("gnome-user-docs" ,gnome-user-docs)
7821 ("gnome-user-share" ,gnome-user-share)
7822 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7823 ("gvfs" ,gvfs)
7824 ("mutter" ,mutter)
7825 ("orca" ,orca)
7826 ("rygel" ,rygel)
7827 ("sushi" ,sushi)
7828 ;; GNOME-Core-Utilities
7829 ("baobab" ,baobab)
7830 ("cheese" ,cheese)
7831 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
7832 ;; only works on x86_64, so exclude it on other architectures.
7833 ,@(if (string-prefix? "x86_64" (%current-system))
7834 `(("eog" ,eog))
7835 '())
7836 ("epiphany" ,epiphany)
7837 ("evince" ,evince)
7838 ("file-roller" ,file-roller)
7839 ("gedit" ,gedit)
7840 ; TODO: ("gnome-boxes" ,gnome-boxes)
7841 ("gnome-calculator" ,gnome-calculator)
7842 ("gnome-calendar" ,gnome-calendar)
7843 ("gnome-characters" ,gnome-characters)
7844 ("gnome-clocks" ,gnome-clocks)
7845 ("gnome-contacts" ,gnome-contacts)
7846 ("gnome-disk-utility" ,gnome-disk-utility)
7847 ("gnome-font-viewer" ,gnome-font-viewer)
7848 ("gnome-maps" ,gnome-maps)
7849 ; TODO: ("gnome-music" ,gnome-music)
7850 ; TODO: ("gnome-photos" ,gnome-photos)
7851 ("gnome-screenshot" ,gnome-screenshot)
7852 ("gnome-system-monitor" ,gnome-system-monitor)
7853 ("gnome-terminal" ,gnome-terminal)
7854 ("gnome-weather" ,gnome-weather)
7855 ("nautilus" ,nautilus)
7856 ("simple-scan" ,simple-scan)
7857 ("totem" ,totem)
7858 ("yelp" ,yelp)
7859 ;; Others
7860 ("hicolor-icon-theme" ,hicolor-icon-theme)
7861 ("gnome-online-accounts" ,gnome-online-accounts)
7862
7863 ;; Packages not part of GNOME proper but that are needed for a good
7864 ;; experience. See <https://bugs.gnu.org/39646>.
7865 ;; XXX: Find out exactly which ones are needed and why.
7866 ("font-cantarell" ,font-cantarell)
7867 ("font-dejavu" ,font-dejavu)
7868 ("at-spi2-core" ,at-spi2-core)
7869 ("dbus" ,dbus)
7870 ("dconf" ,dconf)
7871 ("desktop-file-utils" ,desktop-file-utils)
7872 ("gnome-default-applications" ,gnome-default-applications)
7873 ("gnome-themes-standard" ,gnome-themes-standard)
7874 ("gst-plugins-base" ,gst-plugins-base)
7875 ("gst-plugins-good" ,gst-plugins-good)
7876 ("gucharmap" ,gucharmap)
7877 ("pinentry-gnome3" ,pinentry-gnome3)
7878 ("pulseaudio" ,pulseaudio)
7879 ("shared-mime-info" ,shared-mime-info)
7880 ("system-config-printer" ,system-config-printer)
7881 ("xdg-user-dirs" ,xdg-user-dirs)
7882 ("yelp" ,yelp)
7883 ("zenity" ,zenity)))
7884 (synopsis "The GNU desktop environment")
7885 (home-page "https://www.gnome.org/")
7886 (description
7887 "GNOME is the graphical desktop for GNU. It includes a wide variety of
7888 applications for browsing the web, editing text and images, creating
7889 documents and diagrams, playing media, scanning, and much more.")
7890 (license license:gpl2+)))
7891
7892 (define-public byzanz
7893 ;; The last stable release of Byzanz was in 2011, but there have been many
7894 ;; useful commits made to the Byzanz repository since then that it would be
7895 ;; silly to use such an old release.
7896 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
7897 (package
7898 (name "byzanz")
7899 (version (string-append "0.2-1." (string-take commit 7)))
7900 (source (origin
7901 (method git-fetch)
7902 (uri (git-reference
7903 (url "https://git.gnome.org/browse/byzanz")
7904 (commit commit)))
7905 (file-name (string-append name "-" version "-checkout"))
7906 (sha256
7907 (base32
7908 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
7909 (build-system glib-or-gtk-build-system)
7910 (arguments
7911 '(#:phases
7912 (modify-phases %standard-phases
7913 (add-before 'bootstrap 'build-without-Werror
7914 (lambda _
7915 ;; The build system cleverly detects that we're not building from
7916 ;; a release tarball and turns on -Werror for GCC.
7917 ;; Unsurprisingly, there is a warning during compilation that
7918 ;; causes the build to fail unnecessarily, so we remove the flag.
7919 (substitute* '("configure.ac")
7920 (("-Werror") ""))
7921 #t)))))
7922 (native-inputs
7923 `(("autoconf" ,autoconf)
7924 ("automake" ,automake)
7925 ("gnome-common" ,gnome-common)
7926 ("intltool" ,intltool)
7927 ("libtool" ,libtool)
7928 ("pkg-config" ,pkg-config)
7929 ("which" ,which)))
7930 (inputs
7931 `(("glib" ,glib)
7932 ("gstreamer" ,gstreamer)
7933 ("gst-plugins-base" ,gst-plugins-base)
7934 ("gtk+" ,gtk+)))
7935 (synopsis "Desktop recording program")
7936 (description "Byzanz is a simple desktop recording program with a
7937 command-line interface. It can record part or all of an X display for a
7938 specified duration and save it as a GIF encoded animated image file.")
7939 (home-page "https://git.gnome.org/browse/byzanz")
7940 (license license:gpl2+))))
7941
7942 (define-public gsound
7943 (package
7944 (name "gsound")
7945 (version "1.0.2")
7946 (source (origin
7947 (method url-fetch)
7948 (uri (string-append "mirror://gnome/sources/" name "/"
7949 (version-major+minor version) "/"
7950 name "-" version ".tar.xz"))
7951 (sha256
7952 (base32
7953 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
7954 (build-system glib-or-gtk-build-system)
7955 (native-inputs
7956 `(("pkg-config" ,pkg-config)
7957 ("gobject-introspection" ,gobject-introspection)
7958 ("vala" ,vala)))
7959 (inputs
7960 `(("glib" ,glib)
7961 ("libcanberra" ,libcanberra)))
7962 (home-page "https://wiki.gnome.org/Projects/GSound")
7963 (synopsis "GObject wrapper for libcanberra")
7964 (description
7965 "GSound is a small library for playing system sounds. It's designed to be
7966 used via GObject Introspection, and is a thin wrapper around the libcanberra C
7967 library.")
7968 (license license:lgpl2.1+)))
7969
7970 (define-public libzapojit
7971 (package
7972 (name "libzapojit")
7973 (version "0.0.3")
7974 (source (origin
7975 (method url-fetch)
7976 (uri (string-append "mirror://gnome/sources/" name "/"
7977 (version-major+minor version) "/"
7978 name "-" version ".tar.xz"))
7979 (sha256
7980 (base32
7981 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
7982 (build-system gnu-build-system)
7983 (native-inputs
7984 `(("gobject-introspection" ,gobject-introspection)
7985 ("intltool" ,intltool)
7986 ("pkg-config" ,pkg-config)))
7987 (inputs
7988 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7989 ("json-glib" ,json-glib)
7990 ("rest" ,rest)))
7991 (home-page "https://wiki.gnome.org/Projects/Zapojit")
7992 (synopsis "Library for accessing SkyDrive and Hotmail")
7993 (description
7994 "Libzapojit is a GLib-based library for accessing online service APIs of
7995 Microsoft SkyDrive and Hotmail, using their REST protocols.")
7996 (license license:lgpl2.1+)))
7997
7998 (define-public gnome-clocks
7999 (package
8000 (name "gnome-clocks")
8001 (version "3.34.0")
8002 (source (origin
8003 (method url-fetch)
8004 (uri (string-append "mirror://gnome/sources/" name "/"
8005 (version-major+minor version) "/"
8006 name "-" version ".tar.xz"))
8007 (sha256
8008 (base32
8009 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8010 (build-system meson-build-system)
8011 (arguments
8012 '(#:glib-or-gtk? #t
8013 #:phases
8014 (modify-phases %standard-phases
8015 (add-after 'unpack 'skip-gtk-update-icon-cache
8016 ;; Don't create 'icon-theme.cache'.
8017 (lambda _
8018 (substitute* "build-aux/post-install.py"
8019 (("gtk-update-icon-cache") "true"))
8020 #t)))))
8021 (native-inputs
8022 `(("vala" ,vala)
8023 ("pkg-config" ,pkg-config)
8024 ("glib" ,glib "bin") ; for glib-compile-resources
8025 ("desktop-file-utils" ,desktop-file-utils)
8026 ("gettext" ,gettext-minimal)
8027 ("itstool" ,itstool)))
8028 (inputs
8029 `(("glib" ,glib)
8030 ("gtk+" ,gtk+)
8031 ("gsound" ,gsound)
8032 ("geoclue" ,geoclue)
8033 ("geocode-glib" ,geocode-glib)
8034 ("libgweather" ,libgweather)
8035 ("gnome-desktop" ,gnome-desktop)))
8036 (home-page "https://wiki.gnome.org/Apps/Clocks")
8037 (synopsis "GNOME's clock application")
8038 (description
8039 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8040 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8041 (license license:gpl3+)))
8042
8043 (define-public gnome-calendar
8044 (package
8045 (name "gnome-calendar")
8046 (version "3.34.2")
8047 (source (origin
8048 (method url-fetch)
8049 (uri (string-append "mirror://gnome/sources/" name "/"
8050 (version-major+minor version) "/"
8051 name "-" version ".tar.xz"))
8052 (sha256
8053 (base32
8054 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
8055 (build-system meson-build-system)
8056 (arguments
8057 '(#:glib-or-gtk? #t
8058 ;; gnome-calendar has to be installed before the tests can be run
8059 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8060 #:tests? #f
8061 #:phases
8062 (modify-phases %standard-phases
8063 (add-after 'unpack 'skip-gtk-update-icon-cache
8064 ;; Don't create 'icon-theme.cache'.
8065 (lambda _
8066 (substitute* "build-aux/meson/meson_post_install.py"
8067 (("gtk-update-icon-cache") "true"))
8068 #t)))))
8069 (native-inputs
8070 `(("gettext" ,gettext-minimal)
8071 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8072 ("pkg-config" ,pkg-config)))
8073 (inputs
8074 `(("evolution-data-server" ,evolution-data-server)
8075 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8076 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8077 ("libdazzle" ,libdazzle)
8078 ("libedataserverui" ,evolution-data-server)
8079 ("libgweather" ,libgweather)
8080 ("geoclue" ,geoclue)))
8081 (home-page "https://wiki.gnome.org/Apps/Calendar")
8082 (synopsis "GNOME's calendar application")
8083 (description
8084 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8085 desktop. It supports multiple calendars, month, week and year view.")
8086 (license license:gpl3+)))
8087
8088 (define-public gnome-todo
8089 (package
8090 (name "gnome-todo")
8091 (version "3.28.1")
8092 (source (origin
8093 (method url-fetch)
8094 (uri (string-append "mirror://gnome/sources/" name "/"
8095 (version-major+minor version) "/"
8096 name "-" version ".tar.xz"))
8097 (sha256
8098 (base32
8099 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))))
8100 (build-system meson-build-system)
8101 (arguments
8102 '(#:glib-or-gtk? #t
8103 #:phases (modify-phases %standard-phases
8104 (add-after
8105 'install 'wrap-gnome-todo
8106 (lambda* (#:key inputs outputs #:allow-other-keys)
8107 (let ((out (assoc-ref outputs "out"))
8108 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8109 (python-path (getenv "PYTHONPATH")))
8110 (wrap-program (string-append out "/bin/gnome-todo")
8111 ;; XXX: gi plugins are broken.
8112 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8113 ;; For plugins.
8114 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8115 `("PYTHONPATH" ":" prefix (,python-path))))
8116 #t)))))
8117 (native-inputs
8118 `(("gettext" ,gettext-minimal)
8119 ("gobject-introspection" ,gobject-introspection)
8120 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8121 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8122 ("pkg-config" ,pkg-config)))
8123 (inputs
8124 `(("rest" ,rest) ; For Todoist plugin
8125 ("json-glib" ,json-glib) ; For Todoist plugin
8126 ("libedataserverui" ,evolution-data-server)
8127 ("libical" ,libical)
8128 ("libpeas" ,libpeas)
8129 ("python-pygobject" ,python-pygobject)
8130 ("evolution-data-server" ,evolution-data-server)
8131 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8132 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8133 (home-page "https://wiki.gnome.org/Apps/Todo")
8134 (synopsis "GNOME's ToDo Application")
8135 (description
8136 "GNOME To Do is a simplistic personal task manager designed to perfectly
8137 fit the GNOME desktop.")
8138 (license license:gpl3+)))
8139
8140 (define-public gnome-dictionary
8141 (package
8142 (name "gnome-dictionary")
8143 (version "3.26.1")
8144 (source (origin
8145 (method url-fetch)
8146 (uri (string-append "mirror://gnome/sources/" name "/"
8147 (version-major+minor version) "/"
8148 name "-" version ".tar.xz"))
8149 (sha256
8150 (base32
8151 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8152 (build-system meson-build-system)
8153 (arguments '(#:glib-or-gtk? #t
8154 #:phases (modify-phases %standard-phases
8155 (add-after 'unpack 'patch-install-script
8156 (lambda _
8157 ;; This script attempts to compile glib schemas
8158 ;; and create an empty MIME database. We do
8159 ;; that elsewhere, so prevent it from running.
8160 (substitute* "build-aux/post-install.sh"
8161 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8162 #t)))))
8163 (native-inputs
8164 `(("glib:bin" ,glib "bin")
8165 ("gobject-introspection" ,gobject-introspection)
8166 ("intltool" ,intltool)
8167 ("itstool" ,itstool)
8168 ("pkg-config" ,pkg-config)
8169 ("xmllint" ,libxml2)))
8170 (inputs
8171 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8172 ("gtk+" ,gtk+)))
8173 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8174 (synopsis "Look up words in dictionary sources")
8175 (description
8176 "GNOME Dictionary can look for the definition or translation of a word in
8177 existing databases over the internet.")
8178 (license license:gpl3+)))
8179
8180 (define-public gnome-tweaks
8181 (package
8182 (name "gnome-tweaks")
8183 (version "3.34.0")
8184 (source (origin
8185 (method url-fetch)
8186 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8187 (version-major+minor version) "/"
8188 "gnome-tweaks-" version ".tar.xz"))
8189 (patches
8190 (list (search-patch "gnome-tweaks-search-paths.patch")))
8191 (sha256
8192 (base32
8193 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
8194 (build-system meson-build-system)
8195 (arguments
8196 `(#:glib-or-gtk? #t
8197 #:configure-flags '("-Dlocalstatedir=/tmp"
8198 "-Dsysconfdir=/tmp")
8199 #:imported-modules ((guix build python-build-system)
8200 ,@%meson-build-system-modules)
8201 #:phases
8202 (modify-phases %standard-phases
8203 (add-after 'unpack 'skip-gtk-update-icon-cache
8204 ;; Don't create 'icon-theme.cache'.
8205 (lambda _
8206 (substitute* "meson-postinstall.py"
8207 (("gtk-update-icon-cache") "true"))
8208 #t))
8209 (add-after 'install 'wrap
8210 (@@ (guix build python-build-system) wrap))
8211 (add-after 'wrap 'wrap-gi-typelib
8212 (lambda* (#:key inputs outputs #:allow-other-keys)
8213 (let ((out (assoc-ref outputs "out"))
8214 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8215 (wrap-program (string-append out "/bin/gnome-tweaks")
8216 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8217 #t)))))
8218 (native-inputs
8219 `(("intltool" ,intltool)
8220 ("pkg-config" ,pkg-config)))
8221 (inputs
8222 `(("gnome-desktop" ,gnome-desktop)
8223 ("gtk+" ,gtk+)
8224 ("gobject-introspection" ,gobject-introspection)
8225 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8226 ("libhandy" ,libhandy)
8227 ("libnotify" ,libnotify)
8228 ("libsoup" ,libsoup)
8229 ("nautilus" ,nautilus)
8230 ("python" ,python)
8231 ("python-pygobject" ,python-pygobject)))
8232 (synopsis "Customize advanced GNOME 3 options")
8233 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8234 (description
8235 "GNOME Tweaks allows adjusting advanced configuration settings in
8236 GNOME 3. This includes things like the fonts used in user interface elements,
8237 alternative user interface themes, changes in window management behavior,
8238 GNOME Shell appearance and extension, etc.")
8239 (license license:gpl3+)))
8240
8241 (define-public gnome-shell-extensions
8242 (package
8243 (name "gnome-shell-extensions")
8244 (version "3.34.2")
8245 (source (origin
8246 (method url-fetch)
8247 (uri (string-append "mirror://gnome/sources/" name "/"
8248 (version-major+minor version) "/"
8249 name "-" version ".tar.xz"))
8250 (sha256
8251 (base32
8252 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
8253 (build-system meson-build-system)
8254 (arguments
8255 '(#:configure-flags '("-Dextension_set=all")))
8256 (native-inputs
8257 `(("glib:bin" ,glib "bin")
8258 ("intltool" ,intltool)
8259 ("pkg-config" ,pkg-config)))
8260 (propagated-inputs
8261 `(("glib" ,glib)))
8262 (synopsis "Extensions for GNOME Shell")
8263 (description "GNOME Shell extensions modify and extend GNOME Shell
8264 functionality and behavior.")
8265 (home-page "https://extensions.gnome.org/")
8266 (license license:gpl3+)))
8267
8268 (define-public arc-theme
8269 (package
8270 (name "arc-theme")
8271 (version "20190917")
8272 (source (origin
8273 (method git-fetch)
8274 (uri (git-reference
8275 (url "https://github.com/NicoHood/arc-theme.git")
8276 (commit version)))
8277 (file-name (git-file-name name version))
8278 (sha256
8279 (base32
8280 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8281 (build-system gnu-build-system)
8282 (arguments
8283 '(#:phases
8284 (modify-phases %standard-phases
8285 ;; autogen.sh calls configure at the end of the script.
8286 (replace 'bootstrap
8287 (lambda _ (invoke "autoreconf" "-vfi")))
8288 (add-before 'build 'set-home ;placate Inkscape
8289 (lambda _
8290 (setenv "HOME" (getcwd))
8291 #t)))))
8292 (native-inputs
8293 `(("autoconf" ,autoconf)
8294 ("automake" ,automake)
8295 ("glib" ,glib "bin") ; for glib-compile-resources
8296 ("gnome-shell" ,gnome-shell)
8297 ("gtk+" ,gtk+)
8298 ("inkscape" ,inkscape)
8299 ("optipng" ,optipng)
8300 ("pkg-config" ,pkg-config)
8301 ("sassc" ,sassc/libsass-3.5)))
8302 (synopsis "A flat GTK+ theme with transparent elements")
8303 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8304 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8305 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8306 (home-page "https://github.com/horst3180/arc-theme")
8307 ;; No "or later" language found.
8308 (license license:gpl3+)))
8309
8310 (define-public faba-icon-theme
8311 (package
8312 (name "faba-icon-theme")
8313 (version "4.3")
8314 (source
8315 (origin
8316 (method git-fetch)
8317 (uri (git-reference
8318 (url "https://github.com/snwh/faba-icon-theme.git")
8319 (commit (string-append "v" version))))
8320 (file-name (git-file-name name version))
8321 (sha256
8322 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8323 (build-system meson-build-system)
8324 (arguments
8325 `(#:phases
8326 (modify-phases %standard-phases
8327 (add-before 'configure 'disable-post-install
8328 (lambda _
8329 (substitute* "meson.build"
8330 (("meson.add_install_script.*") "")))))))
8331 (native-inputs
8332 `(("autoconf" ,autoconf)
8333 ("automake" ,automake)))
8334 (synopsis "Faba icon theme")
8335 (description
8336 "Faba is a minimal icon set used as a basis for other themes such as
8337 Moka")
8338 (home-page "https://snwh.org/moka")
8339 (license (list license:lgpl3+
8340 license:cc-by-sa4.0))))
8341
8342 (define-public moka-icon-theme
8343 (package
8344 (inherit faba-icon-theme)
8345 (name "moka-icon-theme")
8346 (version "5.4.0")
8347 (source
8348 (origin
8349 (method git-fetch)
8350 (uri (git-reference
8351 (url "https://github.com/snwh/moka-icon-theme.git")
8352 (commit (string-append "v" version))))
8353 (file-name (git-file-name name version))
8354 (sha256
8355 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8356 (propagated-inputs
8357 ;; Moka is based on Faba by using it as a fallback icon set instead of
8358 ;; bundling it, so we need to add it as a propagated input.
8359 `(("faba-icon-theme" ,faba-icon-theme)))
8360 (synopsis "Moka icon theme")
8361 (description "Moka is a stylized desktop icon set, designed to be clear,
8362 simple and consistent.")
8363 (license (list license:gpl3+
8364 license:cc-by-sa4.0))))
8365
8366 (define-public arc-icon-theme
8367 (package
8368 (name "arc-icon-theme")
8369 (version "20161122")
8370 (source
8371 (origin
8372 (method git-fetch)
8373 (uri (git-reference
8374 (url "https://github.com/horst3180/arc-icon-theme.git")
8375 (commit version)))
8376 (file-name (git-file-name name version))
8377 (sha256
8378 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8379 (build-system gnu-build-system)
8380 (arguments
8381 `(#:phases
8382 (modify-phases %standard-phases
8383 (add-after 'unpack 'disable-configure-during-bootstrap
8384 (lambda _
8385 (substitute* "autogen.sh"
8386 (("^\"\\$srcdir/configure\".*") ""))
8387 #t)))))
8388 (native-inputs
8389 `(("autoconf" ,autoconf)
8390 ("automake" ,automake)))
8391 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8392 (propagated-inputs
8393 `(("moka-icon-theme" ,moka-icon-theme)))
8394 (synopsis "Arc icon theme")
8395 (description "The Arc icon theme provides a set of icons matching the
8396 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8397 the Moka icon theme.")
8398 (home-page "https://github.com/horst3180/arc-icon-theme")
8399 (license license:gpl3+)))
8400
8401 (define-public folks
8402 (package
8403 (name "folks")
8404 (version "0.13.1")
8405 (source (origin
8406 (method url-fetch)
8407 (uri (string-append
8408 "mirror://gnome/sources/folks/"
8409 (version-major+minor version) "/"
8410 "folks-" version ".tar.xz"))
8411 (sha256
8412 (base32
8413 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8414 (build-system meson-build-system)
8415 (arguments
8416 '(#:phases
8417 (modify-phases %standard-phases
8418 (add-after 'unpack 'skip-gtk-update-icon-cache
8419 ;; Don't create 'icon-theme.cache'.
8420 (lambda _
8421 (substitute* "meson_post_install.py"
8422 (("gtk-update-icon-cache") "true"))
8423 #t)))))
8424 (inputs
8425 `(("bdb" ,bdb)
8426 ("dbus-glib" ,dbus-glib)
8427 ("evolution-data-server" ,evolution-data-server)
8428 ("glib" ,glib)
8429 ("libgee" ,libgee)
8430 ("readline" ,readline)
8431 ("telepathy-glib" ,telepathy-glib)))
8432 (native-inputs
8433 `(("glib:bin" ,glib "bin")
8434 ("gobject-introspection" ,gobject-introspection)
8435 ("intltool" ,intltool)
8436 ("pkg-config" ,pkg-config)
8437 ("vala" ,vala)))
8438 (synopsis "Library to aggregate data about people")
8439 (description "Libfolks is a library that aggregates information about people
8440 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8441 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8442 etc.) to create metacontacts. It's written in Vala, which generates C code when
8443 compiled.")
8444 (home-page "https://wiki.gnome.org/Projects/Folks")
8445 (license license:lgpl2.1+)))
8446
8447 (define-public gfbgraph
8448 (package
8449 (name "gfbgraph")
8450 (version "0.2.3")
8451 (source (origin
8452 (method url-fetch)
8453 (uri (string-append
8454 "mirror://gnome/sources/gfbgraph/"
8455 (version-major+minor version) "/"
8456 "gfbgraph-" version ".tar.xz"))
8457 (sha256
8458 (base32
8459 "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs"))))
8460 (build-system glib-or-gtk-build-system)
8461 (arguments
8462 `(#:tests? #f ; Tests appear to require the network.
8463 ;; FIXME --enable-gtk-doc fails even with gtk-doc as a native-input.
8464 #:configure-flags '("--disable-gtk-doc"
8465 "--disable-static"
8466 "--enable-introspection")))
8467 (native-inputs
8468 `(("pkg-config" ,pkg-config)
8469 ("gobject-introspection" ,gobject-introspection)))
8470 (inputs
8471 `(("json-glib" ,json-glib)
8472 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8473 ("rest" ,rest)))
8474 (synopsis "GLib/GObject wrapper for the Facebook API")
8475 (description "This library allows you to use the Facebook API from
8476 GLib/GObject code.")
8477 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8478 (license license:lgpl2.1+)))
8479
8480 (define-public libgnomekbd
8481 (package
8482 (name "libgnomekbd")
8483 (version "3.26.1")
8484 (source (origin
8485 (method url-fetch)
8486 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8487 (version-major+minor version) "/"
8488 "libgnomekbd-" version ".tar.xz"))
8489 (sha256
8490 (base32
8491 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8492 (build-system gnu-build-system)
8493 (native-inputs
8494 `(("pkg-config" ,pkg-config)
8495 ("glib" ,glib "bin")
8496 ("intltool" ,intltool)))
8497 (propagated-inputs
8498 ;; Referred to in .h files and .pc.
8499 `(("glib" ,glib)
8500 ("gtk+" ,gtk+)
8501 ("libxklavier" ,libxklavier)))
8502 (home-page "https://www.gnome.org")
8503 (synopsis "GNOME keyboard configuration library")
8504 (description
8505 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8506 environment, which can notably display keyboard layouts.")
8507 (license license:lgpl2.0+)))
8508
8509 ;;; This package is no longer maintained:
8510 ;;; https://wiki.gnome.org/Attic/LibUnique
8511 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8512 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8513 (define-public libunique
8514 (package
8515 (name "libunique")
8516 (version "3.0.2")
8517 (source (origin
8518 (method url-fetch)
8519 (uri (string-append "mirror://gnome/sources/" name "/"
8520 (version-major+minor version) "/"
8521 name "-" version ".tar.xz"))
8522 (sha256
8523 (base32
8524 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8525 (build-system glib-or-gtk-build-system)
8526 (arguments
8527 `(#:configure-flags '("--disable-static"
8528 "--disable-dbus" ; use gdbus
8529 "--enable-introspection")))
8530 (native-inputs
8531 `(("pkg-config" ,pkg-config)
8532 ("gobject-introspection" ,gobject-introspection)
8533 ("glib:bin" ,glib "bin")
8534 ("gtk-doc" ,gtk-doc)))
8535 (propagated-inputs
8536 ;; Referred to in .h files and .pc.
8537 `(("gtk+" ,gtk+)))
8538 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8539 (synopsis "Library for writing single instance applications")
8540 (description
8541 "Libunique is a library for writing single instance applications. If you
8542 launch a single instance application twice, the second instance will either just
8543 quit or will send a message to the running instance. Libunique makes it easy to
8544 write this kind of application, by providing a base class, taking care of all
8545 the IPC machinery needed to send messages to a running instance, and also
8546 handling the startup notification side.")
8547 (license license:lgpl2.1+)))
8548
8549 (define-public gnome-calculator
8550 (package
8551 (name "gnome-calculator")
8552 (version "3.34.1")
8553 (source
8554 (origin
8555 (method url-fetch)
8556 (uri (string-append "mirror://gnome/sources/" name "/"
8557 (version-major+minor version) "/"
8558 name "-" version ".tar.xz"))
8559 (sha256
8560 (base32
8561 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
8562 (build-system meson-build-system)
8563 (arguments '(#:glib-or-gtk? #t))
8564 (native-inputs
8565 `(("gettext" ,gettext-minimal)
8566 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8567 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8568 ("itstool" ,itstool)
8569 ("vala" ,vala)
8570 ("pkg-config" ,pkg-config)))
8571 (inputs
8572 `(("glib" ,glib)
8573 ("gtksourceview" ,gtksourceview)
8574 ("libgee" ,libgee)
8575 ("libsoup" ,libsoup)
8576 ("libxml2" ,libxml2)
8577 ("mpc" ,mpc)
8578 ("mpfr" ,mpfr)))
8579 (home-page "https://wiki.gnome.org/Apps/Calculator")
8580 (synopsis "Desktop calculator")
8581 (description
8582 "Calculator is an application that solves mathematical equations and
8583 is suitable as a default application in a Desktop environment.")
8584 (license license:gpl3)))
8585
8586 (define-public xpad
8587 (package
8588 (name "xpad")
8589 (version "5.1.0")
8590 (source
8591 (origin
8592 (method url-fetch)
8593 (uri (string-append "https://launchpad.net/xpad/trunk/"
8594 version "/+download/"
8595 name "-" version ".tar.bz2"))
8596 (sha256
8597 (base32
8598 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8599 (build-system gnu-build-system)
8600 (native-inputs
8601 `(("autoconf" ,autoconf)
8602 ("automake" ,automake)
8603 ("gtk+:bin" ,gtk+ "bin")
8604 ("intltool" ,intltool)
8605 ("pkg-config" ,pkg-config)))
8606 (inputs
8607 `(("gtksourceview" ,gtksourceview-3)
8608 ("libsm" ,libsm)))
8609 (home-page "https://wiki.gnome.org/Apps/Xpad")
8610 (synopsis "Virtual sticky note")
8611 (description
8612 "Xpad is a sticky note that strives to be simple, fault tolerant,
8613 and customizable. Xpad consists of independent pad windows, each is
8614 basically a text box in which notes can be written.")
8615 (license license:gpl3+)))
8616
8617 (define-public gucharmap
8618 (let ((unicode-files
8619 '(("Blocks.txt"
8620 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8621 ("DerivedAge.txt"
8622 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8623 ("NamesList.txt"
8624 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8625 ("Scripts.txt"
8626 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8627 ("UnicodeData.txt"
8628 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8629 ("Unihan.zip"
8630 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8631 (package
8632 (name "gucharmap")
8633 (version "12.0.1")
8634 (source
8635 (origin
8636 (method url-fetch)
8637 (uri (string-append "mirror://gnome/sources/" name "/"
8638 (version-major+minor version) "/"
8639 name "-" version ".tar.xz"))
8640 (sha256
8641 (base32
8642 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
8643 (build-system glib-or-gtk-build-system)
8644 (arguments
8645 `(#:modules ((ice-9 match)
8646 (guix build glib-or-gtk-build-system)
8647 (guix build utils))
8648 #:configure-flags
8649 (list "--with-unicode-data=../unicode-data")
8650 #:phases
8651 (modify-phases %standard-phases
8652 (add-after 'unpack 'prepare-unicode-data
8653 (lambda* (#:key inputs #:allow-other-keys)
8654 (mkdir-p "../unicode-data")
8655 (with-directory-excursion "../unicode-data"
8656 (for-each (match-lambda
8657 ((file _)
8658 (install-file (assoc-ref inputs file) ".")))
8659 ',unicode-files))
8660 #t)))))
8661 (native-inputs
8662 `(("desktop-file-utils" ,desktop-file-utils)
8663 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
8664 ("gobject-introspection" ,gobject-introspection)
8665 ("intltool" ,intltool)
8666 ("itstool" ,itstool)
8667 ("pkg-config" ,pkg-config)
8668 ,@(map (match-lambda
8669 ((file hash)
8670 `(,file
8671 ,(origin
8672 (method url-fetch)
8673 (uri (string-append
8674 "http://www.unicode.org/Public/12.0.0/ucd/"
8675 file))
8676 (sha256 (base32 hash))))))
8677 unicode-files)
8678 ("unzip" ,unzip)))
8679 (inputs
8680 `(("gtk+" ,gtk+)
8681 ("xmllint" ,libxml2)))
8682 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
8683 (synopsis "Unicode character picker and font browser")
8684 (description
8685 "This program allows you to browse through all the available Unicode
8686 characters and categories for the installed fonts, and to examine their
8687 detailed properties. It is an easy way to find the character you might
8688 only know by its Unicode name or code point.")
8689 (license license:gpl3+))))
8690
8691 (define-public bluefish
8692 (package
8693 (name "bluefish")
8694 (version "2.2.11")
8695 (source
8696 (origin
8697 (method url-fetch)
8698 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
8699 "bluefish-" version ".tar.gz"))
8700 (sha256
8701 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
8702 (build-system gnu-build-system)
8703 (native-inputs
8704 `(("desktop-file-utils" ,desktop-file-utils)
8705 ("intltool" ,intltool)
8706 ("pkg-config" ,pkg-config)))
8707 (inputs
8708 `(("enchant" ,enchant)
8709 ("gtk+" ,gtk+)
8710 ("python" ,python-wrapper)
8711 ("xmllint" ,libxml2)
8712 ("gucharmap" ,gucharmap)))
8713 (home-page "http://bluefish.openoffice.nl")
8714 (synopsis "Web development studio")
8715 (description
8716 "Bluefish is an editor targeted towards programmers and web developers,
8717 with many options to write web sites, scripts and other code.
8718 Bluefish supports many programming and markup languages.")
8719 (license license:gpl3+)))
8720
8721 (define-public gnome-system-monitor
8722 (package
8723 (name "gnome-system-monitor")
8724 (version "3.32.1")
8725 (source
8726 (origin
8727 (method url-fetch)
8728 (uri (string-append "mirror://gnome/sources/" name "/"
8729 (version-major+minor version) "/"
8730 name "-" version ".tar.xz"))
8731 (sha256
8732 (base32
8733 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
8734 (build-system meson-build-system)
8735 (arguments
8736 '(#:glib-or-gtk? #t
8737 #:configure-flags '("-Dsystemd=false")))
8738 (native-inputs
8739 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
8740 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
8741 ("intltool" ,intltool)
8742 ("itstool" ,itstool)
8743 ("libgtop" ,libgtop)
8744 ("polkit" ,polkit)
8745 ("pkg-config" ,pkg-config)))
8746 (inputs
8747 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
8748 ("gtk+" ,gtk+)
8749 ("gtkmm" ,gtkmm)
8750 ("librsvg" ,librsvg)
8751 ("libxml2" ,libxml2)
8752 ("libwnck" ,libwnck)))
8753 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
8754 (synopsis "Process viewer and system resource monitor for GNOME")
8755 (description
8756 "GNOME System Monitor is a GNOME process viewer and system monitor with
8757 an attractive, easy-to-use interface. It has features, such as a tree view
8758 for process dependencies, icons for processes, the ability to hide processes,
8759 graphical time histories of CPU/memory/swap usage and the ability to
8760 kill/reinice processes.")
8761 (license license:gpl2+)))
8762
8763 (define-public python-pyatspi
8764 (package
8765 (name "python-pyatspi")
8766 (version "2.34.0")
8767 (source (origin
8768 (method url-fetch)
8769 (uri (string-append
8770 "mirror://gnome/sources/pyatspi/"
8771 (version-major+minor version)
8772 "/pyatspi-" version ".tar.xz"))
8773 (sha256
8774 (base32
8775 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
8776 (build-system gnu-build-system)
8777 (arguments
8778 `(#:phases
8779 (modify-phases %standard-phases
8780 (add-before 'build 'fix-atk-load
8781 (lambda _
8782 (substitute* "pyatspi/__init__.py"
8783 (("from gi.repository import Atspi")
8784 "gi.require_version('Gtk', '3.0')
8785 from gi.repository import Gtk
8786 from gi.repository import Atspi"))
8787 #t)))))
8788 (native-inputs
8789 `(("pkg-config" ,pkg-config)))
8790 (inputs
8791 `(("python" ,python)
8792 ("python-pygobject" ,python-pygobject)))
8793 (synopsis "Python client bindings for D-Bus AT-SPI")
8794 (home-page "https://wiki.linuxfoundation.org/accessibility\
8795 /atk/at-spi/at-spi_on_d-bus")
8796 (description
8797 "This package includes a python client library for the AT-SPI D-Bus
8798 accessibility infrastructure.")
8799 (license license:lgpl2.0)
8800 (properties '((upstream-name . "pyatspi")))))
8801
8802 (define-public orca
8803 (package
8804 (name "orca")
8805 (version "3.34.1")
8806 (source (origin
8807 (method url-fetch)
8808 (uri (string-append
8809 "mirror://gnome/sources/" name "/"
8810 (version-major+minor version) "/"
8811 name "-" version ".tar.xz"))
8812 (sha256
8813 (base32
8814 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
8815 (build-system glib-or-gtk-build-system)
8816 (arguments
8817 '(#:phases
8818 (modify-phases %standard-phases
8819 (add-before 'configure 'qualify-xkbcomp
8820 (lambda* (#:key inputs #:allow-other-keys)
8821 (let ((xkbcomp (string-append
8822 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
8823 (substitute* "src/orca/orca.py"
8824 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
8825 #t))
8826 (add-after 'install 'wrap-orca
8827 (lambda* (#:key outputs #:allow-other-keys)
8828 (let* ((out (assoc-ref outputs "out"))
8829 (prog (string-append out "/bin/orca")))
8830 (wrap-program prog
8831 `("GI_TYPELIB_PATH" ":" prefix
8832 (,(getenv "GI_TYPELIB_PATH")))
8833 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
8834 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
8835 `("PYTHONPATH" ":" prefix
8836 (,(getenv "PYTHONPATH")))))
8837 #t)))))
8838 (native-inputs
8839 `(("intltool" ,intltool)
8840 ("itstool" ,itstool)
8841 ("pkg-config" ,pkg-config)
8842 ("xmllint" ,libxml2)))
8843 (inputs
8844 `(("at-spi2-atk" ,at-spi2-atk)
8845 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8846 ("gstreamer" ,gstreamer)
8847 ("gst-plugins-base" ,gst-plugins-base)
8848 ("gst-plugins-good" ,gst-plugins-good)
8849 ("gtk+" ,gtk+)
8850 ("python" ,python)
8851 ("python-pygobject" ,python-pygobject)
8852 ("python-pyatspi" ,python-pyatspi)
8853 ("python-speechd" ,speech-dispatcher)
8854 ("xkbcomp" ,xkbcomp)))
8855 (synopsis
8856 "Screen reader for individuals who are blind or visually impaired")
8857 (home-page "https://wiki.gnome.org/Projects/Orca")
8858 (description
8859 "Orca is a screen reader that provides access to the graphical desktop
8860 via speech and refreshable braille. Orca works with applications and toolkits
8861 that support the Assistive Technology Service Provider Interface (AT-SPI).")
8862 (license license:lgpl2.1+)))
8863
8864 (define-public gspell
8865 (package
8866 (name "gspell")
8867 (version "1.8.2")
8868 (source (origin
8869 (method url-fetch)
8870 (uri (string-append "mirror://gnome/sources/" name "/"
8871 (version-major+minor version) "/"
8872 name "-" version ".tar.xz"))
8873 (sha256
8874 (base32
8875 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
8876 (patches (search-patches "gspell-dash-test.patch"))))
8877 (build-system glib-or-gtk-build-system)
8878 (arguments
8879 '(#:configure-flags (list "--enable-vala")
8880 #:phases
8881 (modify-phases %standard-phases
8882 (add-before 'check 'pre-check
8883 (lambda* (#:key inputs #:allow-other-keys)
8884 ;; Tests require a running X server.
8885 (system "Xvfb :1 &")
8886 (setenv "DISPLAY" ":1")
8887
8888 ;; For the missing /etc/machine-id.
8889 (setenv "DBUS_FATAL_WARNINGS" "0")
8890
8891 ;; Allow Enchant and its Aspell backend to find the en_US
8892 ;; dictionary.
8893 (setenv "ASPELL_DICT_DIR"
8894 (string-append (assoc-ref inputs "aspell-dict-en")
8895 "/lib/aspell"))
8896 #t)))))
8897 (inputs
8898 `(("gtk+" ,gtk+)
8899 ("glib" ,glib)
8900 ("iso-codes" ,iso-codes)))
8901 (native-inputs
8902 `(("glib" ,glib "bin")
8903 ("gobject-introspection" ,gobject-introspection)
8904 ("pkg-config" ,pkg-config)
8905 ("vala" ,vala) ;for VAPI, needed by Geary
8906 ("xmllint" ,libxml2)
8907
8908 ;; For tests.
8909 ("aspell-dict-en" ,aspell-dict-en)
8910 ("xorg-server" ,xorg-server-for-tests)))
8911 (propagated-inputs
8912 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
8913 (home-page "https://wiki.gnome.org/Projects/gspell")
8914 (synopsis "GNOME's alternative spell checker")
8915 (description
8916 "gspell provides a flexible API to add spell-checking to a GTK+
8917 application. It provides a GObject API, spell-checking to text entries and
8918 text views, and buttons to choose the language.")
8919 (license license:gpl2+)))
8920
8921 (define-public gnome-planner
8922 (package
8923 (name "gnome-planner")
8924 (version "0.14.6")
8925 (source (origin
8926 (method url-fetch)
8927 (uri (string-append "mirror://gnome/sources/planner/"
8928 (version-major+minor version) "/planner-"
8929 version ".tar.xz"))
8930 (sha256
8931 (base32
8932 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
8933 (build-system glib-or-gtk-build-system)
8934 (arguments
8935 ;; Disable the Python bindings because the Planner program functions
8936 ;; without them, and (as of 2017-06-13) we have not packaged all of
8937 ;; packages that are necessary for building the Python bindings.
8938 `(#:configure-flags
8939 (list "--disable-python"
8940 ,@(if (string=? "aarch64-linux" (%current-system))
8941 '("--build=aarch64-unknown-linux-gnu")
8942 '()))))
8943 (inputs
8944 `(("libgnomecanvas" ,libgnomecanvas)
8945 ("libgnomeui" ,libgnomeui)
8946 ("libglade" ,libglade)
8947 ("gnome-vfs" ,gnome-vfs)
8948 ("gconf" ,gconf)
8949 ("libxml2" ,libxml2)
8950 ("libxslt" ,libxslt)
8951 ("gtk+" ,gtk+)
8952 ("glib" ,glib)))
8953 (native-inputs
8954 `(("intltool" ,intltool)
8955 ("scrollkeeper" ,scrollkeeper)
8956 ("pkg-config" ,pkg-config)))
8957 (home-page "https://wiki.gnome.org/Apps/Planner")
8958 (synopsis "Project management software for the GNOME desktop")
8959 (description
8960 "GNOME Planner is a project management tool based on the Work Breakdown
8961 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
8962 the resources, tasks, and constraints that you define, Planner generates
8963 various views into a project. For example, Planner can show a Gantt chart of
8964 the project. It can show a detailed summary of tasks including their
8965 duration, cost, and current progress. It can also show a report of resource
8966 utilization that highlights under-utilized and over-utilized resources. These
8967 views can be printed as PDF or PostScript files, or exported to HTML.")
8968 (license license:gpl2+)))
8969
8970 (define-public lollypop
8971 (package
8972 (name "lollypop")
8973 (version "1.2.32")
8974 (source
8975 (origin
8976 (method url-fetch)
8977 (uri (string-append "https://adishatz.org/lollypop/"
8978 "lollypop-" version ".tar.xz"))
8979 (sha256
8980 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
8981 (build-system meson-build-system)
8982 (arguments
8983 `(#:imported-modules
8984 (,@%meson-build-system-modules
8985 (guix build python-build-system))
8986 #:modules
8987 ((guix build meson-build-system)
8988 ((guix build python-build-system) #:prefix python:)
8989 (guix build utils))
8990 #:glib-or-gtk? #t
8991 #:tests? #f ; no test suite
8992 #:phases
8993 (modify-phases %standard-phases
8994 (add-after 'install 'wrap-program
8995 (lambda* (#:key outputs #:allow-other-keys)
8996 (let ((out (assoc-ref outputs "out"))
8997 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8998 (wrap-program (string-append out "/bin/lollypop")
8999 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9000 #t))
9001 (add-after 'install 'wrap-python
9002 (assoc-ref python:%standard-phases 'wrap)))))
9003 (native-inputs
9004 `(("intltool" ,intltool)
9005 ("itstool" ,itstool)
9006 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9007 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9008 ("pkg-config" ,pkg-config)))
9009 (inputs
9010 `(("gobject-introspection" ,gobject-introspection)
9011 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9012 ("gst-plugins-base" ,gst-plugins-base)
9013 ("libnotify" ,libnotify)
9014 ("libsecret" ,libsecret)
9015 ("libsoup" ,libsoup)
9016 ("python" ,python)
9017 ("python-beautifulsoup4" ,python-beautifulsoup4)
9018 ("python-gst" ,python-gst)
9019 ("python-pil" ,python-pillow)
9020 ("python-pycairo" ,python-pycairo)
9021 ("python-pygobject" ,python-pygobject)
9022 ("python-pylast" ,python-pylast)
9023 ("totem-pl-parser" ,totem-pl-parser)
9024 ("webkitgtk" ,webkitgtk)))
9025 (propagated-inputs
9026 `(;; gst-plugins-base is required to start Lollypop,
9027 ;; the others are required to play streaming.
9028 ("gst-plugins-good" ,gst-plugins-good)
9029 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9030 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9031 (synopsis "GNOME music playing application")
9032 (description
9033 "Lollypop is a music player designed to play well with GNOME desktop.
9034 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9035 from artists and tracks from the web. It also fetches cover artworks
9036 automatically and it can stream songs from online music services and charts.")
9037 (license license:gpl3+)))
9038
9039 (define-public gnome-video-effects
9040 (package
9041 (name "gnome-video-effects")
9042 (version "0.4.3")
9043 (source (origin
9044 (method url-fetch)
9045 (uri (string-append "mirror://gnome/sources/" name "/"
9046 (version-major+minor version) "/" name "-"
9047 version ".tar.xz"))
9048 (sha256
9049 (base32
9050 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9051 (build-system glib-or-gtk-build-system)
9052 (arguments
9053 `(#:out-of-source? #f))
9054 (native-inputs
9055 `(("glib:bin" ,glib "bin")
9056 ("intltool" ,intltool)
9057 ("gettext" ,gettext-minimal)
9058 ("pkg-config" ,pkg-config)))
9059 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9060 (synopsis "Video effects for Cheese and other GNOME applications")
9061 (description
9062 "A collection of GStreamer video filters and effects to be used in
9063 photo-booth-like software, such as Cheese.")
9064 (license license:gpl2+)))
9065
9066 (define-public cheese
9067 (package
9068 (name "cheese")
9069 (version "3.34.0")
9070 (source (origin
9071 (method url-fetch)
9072 (uri (string-append "mirror://gnome/sources/" name "/"
9073 (version-major+minor version) "/" name "-"
9074 version ".tar.xz"))
9075 (sha256
9076 (base32
9077 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
9078 (arguments
9079 `(#:glib-or-gtk? #t
9080 ;; Tests require GDK.
9081 #:tests? #f
9082 #:phases
9083 (modify-phases %standard-phases
9084 (add-after 'unpack 'skip-gtk-update-icon-cache
9085 (lambda _
9086 ;; Don't create 'icon-theme.cache'
9087 (substitute* "meson_post_install.py"
9088 (("gtk-update-icon-cache") (which "true")))
9089 #t))
9090 (add-after 'install 'wrap-cheese
9091 (lambda* (#:key inputs outputs #:allow-other-keys)
9092 (let ((out (assoc-ref outputs "out"))
9093 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9094 (wrap-program (string-append out "/bin/cheese")
9095 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9096 #t)))))
9097 (build-system meson-build-system)
9098 (native-inputs
9099 `(("docbook-xsl" ,docbook-xsl)
9100 ("glib:bin" ,glib "bin")
9101 ("gtk-doc" ,gtk-doc)
9102 ("intltool" ,intltool)
9103 ("itstool" ,itstool)
9104 ("libxml2" ,libxml2)
9105 ("libxslt" ,libxslt)
9106 ("pkg-config" ,pkg-config)
9107 ("vala" ,vala)))
9108 (propagated-inputs
9109 `(("gnome-video-effects" ,gnome-video-effects)
9110 ("clutter" ,clutter)
9111 ("clutter-gst" ,clutter-gst)
9112 ("clutter-gtk" ,clutter-gtk)
9113 ("libcanberra" ,libcanberra)
9114 ("gdk-pixbuf" ,gdk-pixbuf)
9115 ("glib" ,glib)
9116 ("gstreamer" ,gstreamer)))
9117 (inputs
9118 `(("gnome-desktop" ,gnome-desktop)
9119 ("gobject-introspection" ,gobject-introspection)
9120 ("gst-plugins-base" ,gst-plugins-base)
9121 ("gst-plugins-bad" ,gst-plugins-bad)
9122 ("gtk+" ,gtk+)
9123 ("libx11" ,libx11)
9124 ("libxtst" ,libxtst)))
9125 (home-page "https://wiki.gnome.org/Apps/Cheese")
9126 (synopsis "Webcam photo booth software for GNOME")
9127 (description
9128 "Cheese uses your webcam to take photos and videos. Cheese can also
9129 apply fancy special effects and lets you share the fun with others.")
9130 (license license:gpl2+)))
9131
9132 (define-public sound-juicer
9133 (package
9134 (name "sound-juicer")
9135 (version "3.24.0")
9136 (source
9137 (origin
9138 (method url-fetch)
9139 (uri (string-append "mirror://gnome/sources/" name "/"
9140 (version-major+minor version) "/"
9141 name "-" version ".tar.xz"))
9142 (sha256
9143 (base32
9144 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9145 (build-system glib-or-gtk-build-system)
9146 (native-inputs
9147 `(("desktop-file-utils" ,desktop-file-utils)
9148 ("intltool" ,intltool)
9149 ("itstool" ,itstool)
9150 ("pkg-config" ,pkg-config)
9151 ("xmllint" ,libxml2)))
9152 (inputs
9153 `(("gtk+" ,gtk+)
9154 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9155 ("gstreamer" ,gstreamer)
9156 ("gst-plugins-base" ,gst-plugins-base)
9157 ("gst-plugins-good" ,gst-plugins-good)
9158 ("iso-codes" ,iso-codes)
9159 ("libbrasero-media3" ,brasero)
9160 ("libcanberra" ,libcanberra)
9161 ("libdiscid" ,libdiscid)
9162 ("libmusicbrainz" ,libmusicbrainz)
9163 ("neon" ,neon)))
9164 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9165 (synopsis "Audio music cd ripper")
9166 (description "Sound Juicer extracts audio from compact discs and convert it
9167 into audio files that a personal computer or digital audio player can play.
9168 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9169 mp3, Ogg Vorbis and FLAC")
9170 (license license:gpl2+)))
9171
9172 (define-public soundconverter
9173 (package
9174 (name "soundconverter")
9175 (version "3.0.1")
9176 (source
9177 (origin
9178 (method url-fetch)
9179 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9180 version "/+download/"
9181 "soundconverter-" version ".tar.xz"))
9182
9183 (sha256
9184 (base32 "1d6x1yf8psqbd9zbybxivfqg55khcnngp2mn92l161dfdk9512c5"))
9185 (patches
9186 (search-patches
9187 "soundconverter-remove-gconf-dependency.patch"))))
9188 (build-system glib-or-gtk-build-system)
9189 (arguments
9190 `(#:imported-modules ((guix build python-build-system)
9191 (guix build glib-or-gtk-build-system)
9192 ,@%gnu-build-system-modules)
9193
9194 #:modules ((guix build glib-or-gtk-build-system)
9195 (guix build utils)
9196 ((guix build gnu-build-system) #:prefix gnu:)
9197 ((guix build python-build-system) #:prefix python:))
9198
9199 #:phases
9200 (modify-phases %standard-phases
9201 (add-after 'install 'wrap-soundconverter-for-python
9202 (assoc-ref python:%standard-phases 'wrap))
9203 (add-after 'install 'wrap-soundconverter
9204 (lambda* (#:key inputs outputs #:allow-other-keys)
9205 (let ((out (assoc-ref outputs "out"))
9206 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9207 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9208 (wrap-program (string-append out "/bin/soundconverter")
9209 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9210 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9211 #t)))))
9212 (native-inputs
9213 `(("intltool" ,intltool)
9214 ("pkg-config" ,pkg-config)
9215 ("glib:bin" ,glib "bin")))
9216 (inputs
9217 `(("gtk+" ,gtk+)
9218 ("python" ,python)
9219 ("python-pygobject" ,python-pygobject)
9220 ("gstreamer" ,gstreamer)
9221 ("gst-plugins-base" ,gst-plugins-base)))
9222 (home-page "https://soundconverter.org/")
9223 (synopsis "Convert between audio formats with a graphical interface")
9224 (description
9225 "SoundConverter supports converting between many audio formats including
9226 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9227 configurable file renaming. ")
9228 (license license:gpl3)))
9229
9230 (define-public workrave
9231 (package
9232 (name "workrave")
9233 (version "1.10.42")
9234 (source
9235 (origin
9236 (method git-fetch)
9237 (uri (git-reference
9238 (url "https://github.com/rcaelers/workrave.git")
9239 (commit (string-append "v" (string-map
9240 (match-lambda (#\. #\_) (chr chr))
9241 version)))))
9242 (file-name (git-file-name name version))
9243 (sha256
9244 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
9245 (build-system glib-or-gtk-build-system)
9246 (arguments
9247 ;; The only tests are maintainer tests (in po/), which fail.
9248 `(#:tests? #f))
9249 (inputs `(("glib" ,glib)
9250 ("gtk+" ,gtk+)
9251 ("gdk-pixbuf" ,gdk-pixbuf)
9252 ("gtkmm" ,gtkmm)
9253 ("glibmm" ,glibmm)
9254 ("libx11" ,libx11)
9255 ("libxtst" ,libxtst)
9256 ("dconf" ,dconf)
9257 ("libice" ,libice)
9258 ("libsm" ,libsm)
9259 ("libxscrnsaver" ,libxscrnsaver)))
9260 (native-inputs `(("boost" ,boost)
9261 ("pkg-config" ,pkg-config)
9262 ("gettext" ,gettext-minimal)
9263 ("autoconf" ,autoconf)
9264 ("autoconf-archive" , autoconf-archive)
9265 ("automake" ,automake)
9266 ("libtool" ,libtool)
9267 ("intltool" ,intltool)
9268 ("gobject-introspection" ,gobject-introspection)
9269 ("python3" ,python-3)
9270 ("python-jinja2" ,python-jinja2)))
9271 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9272 (description
9273 "Workrave is a program that assists in the recovery and prevention of
9274 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9275 micro-pauses and rest breaks, and restricts you to your daily limit.")
9276 (home-page "http://www.workrave.org")
9277 (license license:gpl3+)))
9278
9279 (define-public ghex
9280 (package
9281 (name "ghex")
9282 (version "3.18.4")
9283 (source (origin
9284 (method url-fetch)
9285 (uri (string-append "mirror://gnome/sources/ghex/"
9286 (version-major+minor version) "/"
9287 "ghex-" version ".tar.xz"))
9288 (sha256
9289 (base32
9290 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9291 (build-system meson-build-system)
9292 (arguments
9293 '(#:glib-or-gtk? #t
9294 #:phases
9295 (modify-phases %standard-phases
9296 (add-after 'unpack 'skip-gtk-update-icon-cache
9297 ;; Don't create 'icon-theme.cache'.
9298 (lambda _
9299 (substitute* "meson_post_install.py"
9300 (("gtk-update-icon-cache") (which "true")))
9301 #t)))))
9302 (native-inputs
9303 `(("pkg-config" ,pkg-config)
9304 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9305 ("gnome-common" ,gnome-common)
9306 ("which" ,which)
9307 ("intltool" ,intltool)
9308 ("yelp-tools" ,yelp-tools)
9309 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9310 (inputs
9311 `(("atk" ,atk)
9312 ("gtk" ,gtk+)))
9313 (synopsis "GNOME hexadecimal editor")
9314 (description "The GHex program can view and edit files in two ways:
9315 hexadecimal or ASCII. It is useful for editing binary files in general.")
9316 (home-page "https://wiki.gnome.org/Apps/Ghex")
9317 (license license:gpl2)))
9318
9319 (define-public libdazzle
9320 (package
9321 (name "libdazzle")
9322 (version "3.34.1")
9323 (source (origin
9324 (method url-fetch)
9325 (uri (string-append "mirror://gnome/sources/libdazzle/"
9326 (version-major+minor version) "/"
9327 "libdazzle-" version ".tar.xz"))
9328 (sha256
9329 (base32
9330 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
9331 (build-system meson-build-system)
9332 (arguments
9333 `(#:phases
9334 (modify-phases %standard-phases
9335 (add-before 'check 'pre-check
9336 (lambda _
9337 ;; Tests require a running X server.
9338 (system "Xvfb :1 &")
9339 (setenv "DISPLAY" ":1")
9340 #t)))))
9341 (native-inputs
9342 `(("glib" ,glib "bin") ; glib-compile-resources
9343 ("pkg-config" ,pkg-config)
9344 ;; For tests.
9345 ("xorg-server" ,xorg-server-for-tests)))
9346 (inputs
9347 `(("glib" ,glib)
9348 ("gobject-introspection" ,gobject-introspection)
9349 ("gtk+" ,gtk+)
9350 ("vala" ,vala)))
9351 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9352 (synopsis "Companion library to GObject and Gtk+")
9353 (description "The libdazzle library is a companion library to GObject and
9354 Gtk+. It provides various features that the authors wish were in the
9355 underlying library but cannot for various reasons. In most cases, they are
9356 wildly out of scope for those libraries. In other cases, they are not quite
9357 generic enough to work for everyone.")
9358 (license license:gpl3+)))
9359
9360 (define-public evolution
9361 (package
9362 (name "evolution")
9363 (version "3.34.2")
9364 (source (origin
9365 (method url-fetch)
9366 (uri (string-append "mirror://gnome/sources/evolution/"
9367 (version-major+minor version) "/"
9368 "evolution-" version ".tar.xz"))
9369 (sha256
9370 (base32
9371 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
9372 (build-system cmake-build-system)
9373 (arguments
9374 `(#:imported-modules (,@%cmake-build-system-modules
9375 (guix build glib-or-gtk-build-system))
9376 #:modules ((guix build cmake-build-system)
9377 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9378 (guix build utils))
9379 #:configure-flags
9380 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9381 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9382 ; in four years and cannot be built.
9383 #:phases
9384 (modify-phases %standard-phases
9385 ;; The build system attempts to install user interface modules to the
9386 ;; output directory of the "evolution-data-server" package. This
9387 ;; change redirects that change.
9388 (add-after 'unpack 'patch-ui-module-dir
9389 (lambda* (#:key outputs #:allow-other-keys)
9390 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9391 (("\\$\\{edsuimoduledir\\}")
9392 (string-append (assoc-ref outputs "out")
9393 "/lib/evolution-data-server/ui-modules")))
9394 #t))
9395 (add-after 'install 'glib-or-gtk-compile-schemas
9396 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9397 (add-after 'install 'glib-or-gtk-wrap
9398 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9399 (native-inputs
9400 `(("glib" ,glib "bin") ; glib-mkenums
9401 ("pkg-config" ,pkg-config)
9402 ("intltool" ,intltool)
9403 ("itstool" ,itstool)))
9404 (inputs
9405 `(("enchant" ,enchant)
9406 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9407 ("gcr" ,gcr)
9408 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9409 ("gnome-autoar" ,gnome-autoar)
9410 ("gnome-desktop" ,gnome-desktop)
9411 ("gspell" ,gspell)
9412 ("highlight" ,highlight)
9413 ("libcanberra" ,libcanberra)
9414 ("libgweather" ,libgweather)
9415 ("libnotify" ,libnotify)
9416 ("libsoup" ,libsoup)
9417 ("nss" ,nss)
9418 ("openldap" ,openldap)
9419 ("webkitgtk" ,webkitgtk)
9420 ("ytnef" ,ytnef)))
9421 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9422 (synopsis "Manage your email, contacts and schedule")
9423 (description "Evolution is a personal information management application
9424 that provides integrated mail, calendaring and address book
9425 functionality.")
9426 ;; See COPYING for details.
9427 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9428 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9429 license:lgpl2.1+)))) ; smime/lib/*
9430
9431 (define-public gthumb
9432 (package
9433 (name "gthumb")
9434 (version "3.8.2")
9435 (source (origin
9436 (method url-fetch)
9437 (uri (string-append "mirror://gnome/sources/gthumb/"
9438 (version-major+minor version) "/"
9439 "gthumb-" version ".tar.xz"))
9440 (sha256
9441 (base32
9442 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9443 (build-system meson-build-system)
9444 (arguments
9445 `(#:glib-or-gtk? #t
9446 #:configure-flags
9447 ;; Ensure the RUNPATH contains all installed library locations.
9448 (list (string-append "-Dc_link_args=-Wl,-rpath="
9449 (assoc-ref %outputs "out")
9450 "/lib/gthumb/extensions")
9451 (string-append "-Dcpp_link_args=-Wl,-rpath="
9452 (assoc-ref %outputs "out")
9453 "/lib/gthumb/extensions"))))
9454 (native-inputs
9455 `(("pkg-config" ,pkg-config)
9456 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9457 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9458 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9459 ("intltool" ,intltool)
9460 ("itstool" ,itstool)))
9461 (inputs
9462 `(("exiv2" ,exiv2)
9463 ("gtk" ,gtk+)
9464 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9465 ("gstreamer" ,gstreamer)
9466 ("clutter" ,clutter)
9467 ("clutter-gst" ,clutter-gst)
9468 ("clutter-gtk" ,clutter-gtk)
9469 ("libjpeg" ,libjpeg-turbo)
9470 ("libtiff" ,libtiff)
9471 ("libraw" ,libraw)))
9472 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9473 (synopsis "GNOME image viewer and browser")
9474 (description "GThumb is an image viewer, browser, organizer, editor and
9475 advanced image management tool")
9476 (license license:gpl2+)))
9477
9478 (define-public terminator
9479 (package
9480 (name "terminator")
9481 (version "1.91")
9482 (source (origin
9483 (method url-fetch)
9484 (uri (string-append "https://launchpad.net/" name "/"
9485 "gtk3/" version "/" "+download/"
9486 name "-" version ".tar.gz"))
9487 (sha256
9488 (base32
9489 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9490 (build-system python-build-system)
9491 (native-inputs
9492 `(("intltool" ,intltool)
9493 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9494 ("gettext" ,gettext-minimal)
9495 ("pkg-config" ,pkg-config)))
9496 (inputs
9497 `(("cairo" ,cairo)
9498 ("gobject-introspection" ,gobject-introspection)
9499 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9500 ("python2-pycairo" ,python2-pycairo)
9501 ("python2-pygobject" ,python2-pygobject)
9502 ("python2-psutil" ,python2-psutil)
9503 ("vte" ,vte)))
9504 (arguments
9505 `(#:python ,python-2 ; Python 3 isn't supported
9506 #:imported-modules ((guix build glib-or-gtk-build-system)
9507 ,@%python-build-system-modules)
9508 #:modules ((guix build python-build-system)
9509 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9510 (guix build utils))
9511 #:phases
9512 (modify-phases %standard-phases
9513 (add-after
9514 'install 'wrap-program
9515 (lambda* (#:key outputs #:allow-other-keys)
9516 (let ((prog (string-append (assoc-ref outputs "out")
9517 "/bin/terminator")))
9518 (wrap-program prog
9519 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9520 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9521 #t)))
9522 (add-after 'wrap-program 'glib-or-gtk-wrap
9523 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9524 (home-page "https://gnometerminator.blogspot.com/")
9525 (synopsis "Store and run multiple GNOME terminals in one window")
9526 (description
9527 "Terminator allows you to run multiple GNOME terminals in a grid and
9528 +tabs, and it supports drag and drop re-ordering of terminals.")
9529 (license license:gpl2)))
9530
9531 (define-public libhandy
9532 (package
9533 (name "libhandy")
9534 (version "0.0.12")
9535 (source
9536 (origin
9537 (method git-fetch)
9538 (uri (git-reference
9539 (url "https://source.puri.sm/Librem5/libhandy")
9540 (commit (string-append "v" version))))
9541 (file-name (git-file-name name version))
9542 (sha256
9543 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9544 (build-system meson-build-system)
9545 (arguments
9546 `(#:configure-flags
9547 '("-Dglade_catalog=disabled"
9548 "-Dgtk_doc=true")
9549 #:phases
9550 (modify-phases %standard-phases
9551 (add-before 'check 'pre-check
9552 (lambda _
9553 ;; Tests require a running X server.
9554 (system "Xvfb :1 &")
9555 (setenv "DISPLAY" ":1")
9556 #t)))))
9557 (inputs
9558 `(("gtk+" ,gtk+)))
9559 (native-inputs
9560 `(("glib:bin" ,glib "bin")
9561 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9562 ("vala" ,vala)
9563 ("gtk-doc" ,gtk-doc)
9564 ("pkg-config" ,pkg-config)
9565 ("gettext" ,gettext-minimal)
9566
9567 ;; Test suite dependencies.
9568 ("xorg-server" ,xorg-server-for-tests)
9569 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9570 (home-page "https://source.puri.sm/Librem5/libhandy")
9571 (synopsis "Library full of GTK+ widgets for mobile phones")
9572 (description "The aim of the handy library is to help with developing user
9573 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9574 for usage on small and big screens.")
9575 (license license:lgpl2.1+)))
9576
9577 (define-public libgit2-glib
9578 (package
9579 (name "libgit2-glib")
9580 (version "0.99.0.1")
9581 (source (origin
9582 (method url-fetch)
9583 (uri (string-append "mirror://gnome/sources/" name "/"
9584 (version-major+minor version) "/"
9585 name "-" version ".tar.xz"))
9586 (sha256
9587 (base32
9588 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
9589 (build-system meson-build-system)
9590 (native-inputs
9591 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9592 ("gobject-introspection" ,gobject-introspection)
9593 ("pkg-config" ,pkg-config)
9594 ("python-pygobject" ,python-pygobject)
9595 ("python-wrapper" ,python-wrapper)
9596 ("vala" ,vala)))
9597 (inputs
9598 `(("glib" ,glib)
9599 ("libssh2" ,libssh2)))
9600 (propagated-inputs
9601 `(;; In Requires of libgit2-glib.pc.
9602 ("libgit2" ,libgit2)))
9603 (synopsis "GLib wrapper around the libgit2 Git access library")
9604 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9605 access library. It only implements the core plumbing functions, not really the
9606 higher level porcelain stuff.")
9607 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9608 (license license:gpl2+)))
9609
9610 (define-public gitg
9611 (package
9612 (name "gitg")
9613 (version "3.32.1")
9614 (source (origin
9615 (method url-fetch)
9616 (uri (string-append "mirror://gnome/sources/" name "/"
9617 (version-major+minor version) "/"
9618 name "-" version ".tar.xz"))
9619 (sha256
9620 (base32
9621 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9622 (build-system meson-build-system)
9623 (arguments
9624 `(#:glib-or-gtk? #t
9625 #:phases
9626 (modify-phases %standard-phases
9627 (add-after 'unpack 'disable-post-install-partially
9628 (lambda _
9629 (substitute* "meson_post_install.py"
9630 (("'python'") ; there are no python sources to compile
9631 (string-append "'" (which "true") "'"))
9632 (("gtk-update-icon-cache") (which "true")))
9633 #t))
9634 (add-after 'unpack 'fix-test-sources
9635 (lambda _
9636 (substitute* "tests/libgitg/test-commit.vala"
9637 (("/bin/bash") (which "bash")))
9638 #t))
9639 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9640 (lambda* (#:key outputs #:allow-other-keys)
9641 (let ((prog (string-append (assoc-ref outputs "out")
9642 "/bin/gitg")))
9643 (wrap-program prog
9644 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9645 #t))))))
9646 (inputs
9647 `(("glib" ,glib)
9648 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9649 ("gtk+" ,gtk+)
9650 ("gtkspell3" ,gtkspell3)
9651 ("gtksourceview" ,gtksourceview-3)
9652 ("json-glib" ,json-glib)
9653 ("libdazzle" ,libdazzle)
9654 ("libgee" ,libgee)
9655 ("libgit2-glib" ,libgit2-glib)
9656 ("libpeas" ,libpeas)
9657 ("libsecret" ,libsecret)
9658 ("libsoup" ,libsoup)
9659 ("libxml2" ,libxml2)))
9660 (native-inputs
9661 `(("glib:bin" ,glib "bin")
9662 ("gtk+:bin" ,gtk+ "bin")
9663 ("gobject-introspection" ,gobject-introspection)
9664 ("intltool" ,intltool)
9665 ("pkg-config" ,pkg-config)
9666 ("vala" ,vala)))
9667 (synopsis "Graphical user interface for git")
9668 (description
9669 "gitg is a graphical user interface for git. It aims at being a small,
9670 fast and convenient tool to visualize the history of git repositories.
9671 Besides visualization, gitg also provides several utilities to manage your
9672 repository and commit your work.")
9673 (home-page "https://wiki.gnome.org/Apps/Gitg")
9674 (license license:gpl2+)))
9675
9676 (define-public gamin
9677 (package
9678 (name "gamin")
9679 (version "0.1.10")
9680 (source (origin
9681 (method url-fetch)
9682 (uri (string-append "mirror://gnome/sources/" name "/"
9683 (version-major+minor version) "/"
9684 name "-" version ".tar.bz2"))
9685 (sha256
9686 (base32
9687 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
9688 (build-system gnu-build-system)
9689 (arguments
9690 `(#:phases
9691 (modify-phases %standard-phases
9692 (add-after 'unpack 'remove-deprecated-macro
9693 (lambda _
9694 (substitute* '("server/gam_node.c"
9695 "server/gam_subscription.h"
9696 "server/gam_node.h"
9697 "server/gam_subscription.c")
9698 (("G_CONST_RETURN") "const"))
9699 #t)))))
9700 (inputs
9701 `(("glib" ,glib)))
9702 (native-inputs
9703 `(("intltool" ,intltool)
9704 ("pkg-config" ,pkg-config)))
9705 (home-page "https://people.gnome.org/~veillard/gamin/")
9706 (synopsis "File alteration monitor")
9707 (description
9708 "Gamin is a file and directory monitoring system defined to be a subset
9709 of the FAM (File Alteration Monitor) system. This is a service provided by a
9710 library which detects when a file or a directory has been modified.")
9711 (license license:gpl2+)))
9712
9713 (define-public gnome-mahjongg
9714 (package
9715 (name "gnome-mahjongg")
9716 (version "3.35.1")
9717 (source (origin
9718 (method git-fetch)
9719 (uri (git-reference
9720 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
9721 (commit version)))
9722 (file-name (git-file-name name version))
9723 (sha256
9724 (base32
9725 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
9726 (build-system meson-build-system)
9727 (arguments
9728 `(#:glib-or-gtk? #t))
9729 (native-inputs
9730 `(("appstream-glib" ,appstream-glib)
9731 ("gettext" ,gettext-minimal)
9732 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
9733 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
9734 ("itstool" ,itstool)
9735 ("pkg-config" ,pkg-config)
9736 ("vala" ,vala)))
9737 (propagated-inputs
9738 `(("dconf" ,dconf)))
9739 (inputs
9740 `(("glib" ,glib)
9741 ("gtk+" ,gtk+)
9742 ("librsvg" ,librsvg)))
9743 (synopsis "Mahjongg tile-matching game")
9744 (description "GNOME Mahjongg is a game based on the classic Chinese
9745 tile-matching game Mahjong. It features multiple board layouts, tile themes,
9746 and a high score table.")
9747 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
9748 (license license:gpl2+)))
9749
9750 (define-public gnome-themes-extra
9751 (package
9752 (name "gnome-themes-extra")
9753 (version "3.28")
9754 (source
9755 (origin
9756 (method url-fetch)
9757 (uri (string-append "mirror://gnome/sources/" name "/"
9758 (version-major+minor version) "/" name "-"
9759 version ".tar.xz"))
9760 (sha256
9761 (base32
9762 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
9763 (build-system gnu-build-system)
9764 (arguments
9765 '(#:configure-flags
9766 ;; Don't create 'icon-theme.cache'.
9767 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
9768 (true (string-append coreutils "/bin/true")))
9769 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
9770 (native-inputs
9771 `(("glib:bin" ,glib "bin")
9772 ("intltool" ,intltool)
9773 ("pkg-config" ,pkg-config)))
9774 (inputs
9775 `(("glib" ,glib)
9776 ("gtk+" ,gtk+)
9777 ("gtk+-2" ,gtk+-2)
9778 ("librsvg" ,librsvg)
9779 ("libxml2" ,libxml2)))
9780 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
9781 (synopsis "GNOME Extra Themes")
9782 (description "This package provides themes and related elements that don't
9783 really fit in other upstream packages. It offers legacy support for GTK+ 2
9784 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
9785 index files needed for Adwaita to be used outside of GNOME.")
9786 (license license:lgpl2.1+)))
9787
9788 (define-public polari
9789 (package
9790 (name "polari")
9791 (version "3.32.2")
9792 (source (origin
9793 (method url-fetch)
9794 (uri (string-append "mirror://gnome/sources/polari/"
9795 (version-major+minor version)
9796 "/polari-" version ".tar.xz"))
9797 (sha256
9798 (base32
9799 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
9800 (build-system meson-build-system)
9801 (arguments
9802 `(#:glib-or-gtk? #t
9803 #:phases
9804 (modify-phases %standard-phases
9805 (add-after 'unpack 'skip-gtk-update-icon-cache
9806 (lambda _
9807 (substitute* "meson/meson-postinstall.sh"
9808 (("gtk-update-icon-cache") (which "true")))
9809 #t))
9810 (add-after 'glib-or-gtk-wrap 'wrap-typelib
9811 (lambda* (#:key outputs #:allow-other-keys)
9812 (let ((prog (string-append (assoc-ref outputs "out")
9813 "/bin/polari")))
9814 (wrap-program prog
9815 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9816 #t))))))
9817 (inputs
9818 `(("glib" ,glib)
9819 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9820 ("gspell" ,gspell)
9821 ("gtk+" ,gtk+)
9822 ("gjs" ,gjs)
9823 ("libsecret" ,libsecret)
9824 ("libsoup" ,libsoup)
9825 ("telepathy-glib" ,telepathy-glib)
9826 ("telepathy-logger" ,telepathy-logger)))
9827 (native-inputs
9828 `(("glib:bin" ,glib "bin")
9829 ("gobject-introspection" ,gobject-introspection)
9830 ("intltool" ,intltool)
9831 ("pkg-config" ,pkg-config)
9832 ("yelp-tools" ,yelp-tools)))
9833 (propagated-inputs
9834 `(("telepathy-idle" ,telepathy-idle)
9835 ("telepathy-mission-control" ,telepathy-mission-control)))
9836 (synopsis "Simple IRC Client")
9837 (description
9838 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
9839 integrate seamlessly with the GNOME desktop.")
9840 (home-page "https://wiki.gnome.org/Apps/Polari")
9841 (license license:gpl2+)))
9842
9843 (define-public gnome-boxes
9844 (package
9845 (name "gnome-boxes")
9846 (version "3.35.91")
9847 (source
9848 (origin
9849 (method url-fetch)
9850 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
9851 (version-major+minor version) "/"
9852 "gnome-boxes-" version ".tar.xz"))
9853 (sha256
9854 (base32
9855 "0l96spz6pc8q4l5p9a58cc0kgvdr7pbc89hy6ixn72k5pl3s7fxj"))))
9856 (build-system meson-build-system)
9857 (arguments
9858 '(#:glib-or-gtk? #t
9859 #:configure-flags (list "-Drdp=false"
9860 (string-append "-Dc_link_args=-Wl,-rpath="
9861 (assoc-ref %outputs "out")
9862 "/lib/gnome-boxes"))))
9863 (native-inputs
9864 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
9865 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9866 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9867 ("itstool" ,itstool)
9868 ("intltool" ,intltool)
9869 ("vala" ,vala)
9870 ("pkg-config" ,pkg-config)))
9871 (inputs
9872 `(("libarchive" ,libarchive)
9873 ("gtk" ,gtk+)
9874 ("gtk-vnc" ,gtk-vnc)
9875 ("libosinfo" ,libosinfo)
9876 ("libsecret" ,libsecret)
9877 ("libsoup" ,libsoup)
9878 ("libusb" ,libusb)
9879 ("libvirt" ,libvirt)
9880 ("libvirt-glib" ,libvirt-glib)
9881 ("libxml" ,libxml2)
9882 ("spice-gtk" ,spice-gtk)
9883 ("sparql-query" ,sparql-query)
9884 ("vte" ,vte)
9885 ("webkitgtk" ,webkitgtk)
9886 ("tracker" ,tracker)
9887 ("libgudev" ,libgudev)))
9888 (home-page "https://wiki.gnome.org/Apps/Boxes")
9889 (synopsis "View, access, and manage remote and virtual systems")
9890 (description "GNOME Boxes is a simple application to view, access, and
9891 manage remote and virtual systems.")
9892 (license (list
9893 ;; For data/icons/empty-boxes.png.
9894 license:cc-by2.0
9895 ;; For all others.
9896 license:lgpl2.0+))))
9897
9898 (define-public geary
9899 (package
9900 (name "geary")
9901 (version "3.34.1")
9902 (source (origin
9903 (method git-fetch)
9904 (uri (git-reference
9905 (url "https://gitlab.gnome.org/GNOME/geary")
9906 (commit version)))
9907 (file-name (git-file-name name version))
9908 (sha256
9909 (base32
9910 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
9911 (build-system meson-build-system)
9912 (arguments
9913 `(#:glib-or-gtk? #t
9914 #:phases (modify-phases %standard-phases
9915 (add-after 'unpack 'disable-failing-tests
9916 (lambda _
9917 (substitute* "test/meson.build"
9918 (("test\\('client-tests', geary_test_client_bin\\)")
9919 ""))
9920 #t))
9921 (add-after 'unpack 'disable-postinstall-script
9922 (lambda _
9923 (substitute* "meson.build"
9924 (("meson.add_install_script\\(\
9925 join_paths\\('build-aux', 'post_install.py'\\)\\)")
9926 ""))
9927 #t))
9928 (add-before 'check 'setup-xvfb
9929 (lambda _
9930 (system "Xvfb :1 &")
9931 (setenv "DISPLAY" ":1")
9932 #t)))))
9933 (inputs
9934 `(("enchant" ,enchant)
9935 ("folks" ,folks)
9936 ("gcr" ,gcr)
9937 ("glib" ,glib)
9938 ("gmime" ,gmime-2.6)
9939 ("gnome-online-accounts:lib"
9940 ,gnome-online-accounts "lib")
9941 ("gspell" ,gspell)
9942 ("gtk+" ,gtk+)
9943 ("iso-codes" ,iso-codes)
9944 ("json-glib" ,json-glib)
9945 ("libcanberra" ,libcanberra)
9946 ("libgee" ,libgee)
9947 ("libhandy" ,libhandy)
9948 ("libpeas" ,libpeas)
9949 ("libsecret" ,libsecret)
9950 ("libunwind" ,libunwind)
9951 ("sqlite" ,sqlite)
9952 ("webkitgtk" ,webkitgtk)
9953 ("ytnef" ,ytnef)))
9954 (native-inputs
9955 `(("appstream-glib" ,appstream-glib)
9956 ("cmake-minimal" ,cmake-minimal)
9957 ("desktop-file-utils" ,desktop-file-utils)
9958 ("gettext" ,gettext-minimal)
9959 ("glib:bin" ,glib "bin")
9960 ("gobject-introspection" ,gobject-introspection)
9961 ("itstool" ,itstool)
9962 ("libarchive" ,libarchive)
9963 ("libxml2" ,libxml2)
9964 ("pkg-config" ,pkg-config)
9965 ("vala" ,vala)
9966 ("xvfb" ,xorg-server-for-tests)))
9967 (synopsis "GNOME email application built around conversations")
9968 (description
9969 "Geary collects related messages together into conversations,
9970 making it easy to find and follow your discussions. Full-text and keyword
9971 search makes it easy to find the email you are looking for. Geary's
9972 full-featured composer lets you send rich, styled text with images, links, and
9973 lists, but also send lightweight, easy to read text messages. Geary
9974 automatically picks up your existing GNOME Online Accounts, and adding more is
9975 easy. Geary has a clean, fast, modern interface that works like you want it
9976 to.")
9977 (home-page "https://wiki.gnome.org/Apps/Geary")
9978 (license (list
9979 ;; geary
9980 license:lgpl2.1+
9981 ;; icons
9982 license:cc-by3.0
9983 license:cc-by-sa3.0
9984 license:public-domain
9985 ;; snowball
9986 license:bsd-2))))
9987
9988 (define-public parlatype
9989 ;; This is one commit away from 2.0, because the latter introduced
9990 ;; a regression in ASR.
9991 (let ((commit "7d22ead13ef7578f99d24146663cc1bdb7d8c2a9")
9992 (revision "0"))
9993 (package
9994 (name "parlatype")
9995 (version (git-version "2.0" revision commit))
9996 (source
9997 (origin
9998 (method git-fetch)
9999 (uri (git-reference
10000 (url "https://github.com/gkarsay/parlatype.git")
10001 (commit commit)))
10002 (file-name (git-file-name name version))
10003 (sha256
10004 (base32 "0r3k3qczbzi7bs5s1rddhpsnadyr805df40bqkx0srlxgh5mfghf"))))
10005 (build-system meson-build-system)
10006 (arguments
10007 `(#:glib-or-gtk? #t
10008 #:tests? #f ;require internet access
10009 #:phases
10010 (modify-phases %standard-phases
10011 (add-after 'install 'wrap-parlatype
10012 ;; Add gstreamer plugin provided in this package to system's
10013 ;; plugins.
10014 (lambda* (#:key outputs #:allow-other-keys)
10015 (let* ((out (assoc-ref outputs "out"))
10016 (gst-plugin-path (string-append
10017 out "/lib/gstreamer-1.0/"
10018 ":"
10019 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10020 (wrap-program (string-append out "/bin/parlatype")
10021 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10022 #t)))))
10023 (native-inputs
10024 `(("appstream-glib" ,appstream-glib)
10025 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10026 ("gettext" ,gettext-minimal)
10027 ("glib" ,glib "bin") ;for glib-compile-resources
10028 ("pkg-config" ,pkg-config)
10029 ("yelp-tools" ,yelp-tools)))
10030 (inputs
10031 `(("gst-plugins-base" ,gst-plugins-base)
10032 ("gst-plugins-good" ,gst-plugins-good)
10033 ("gstreamer" ,gstreamer)
10034 ("gtk+" ,gtk+)
10035 ("pocketsphinx" ,pocketsphinx)
10036 ("pulseaudio" ,pulseaudio)
10037 ("sphinxbase" ,sphinxbase)))
10038 (home-page "http://gkarsay.github.io/parlatype/")
10039 (synopsis "GNOME audio player for transcription")
10040 (description "Parlatype is an audio player for the GNOME desktop
10041 environment. Its main purpose is the manual transcription of spoken
10042 audio files.")
10043 (license license:gpl3+))))
10044
10045 (define-public jsonrpc-glib
10046 (package
10047 (name "jsonrpc-glib")
10048 (version "3.34.0")
10049 (source (origin
10050 (method url-fetch)
10051 (uri (string-append "mirror://gnome/sources/" name "/"
10052 (version-major+minor version) "/"
10053 name "-" version ".tar.xz"))
10054 (sha256
10055 (base32
10056 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10057 (build-system meson-build-system)
10058 (inputs
10059 `(("json-glib" ,json-glib)
10060 ("glib" ,glib)))
10061 (native-inputs
10062 `(("pkg-config" ,pkg-config)
10063 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10064 ("gobject-introspection" ,gobject-introspection)
10065 ("vala" ,vala)))
10066 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10067 (synopsis "JSON-RPC library for GLib")
10068 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10069 peers in either a synchronous or asynchronous fashion. It also allows
10070 communicating using the GVariant serialization format instead of JSON when
10071 both peers support it. You might want that when communicating on a single
10072 host to avoid parser overhead and memory-allocator fragmentation.")
10073 (license license:lgpl2.1+)))