gnu: Add gtx.
[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, 2020 Eric Bavier <bavier@posteo.net>
6 ;;; Copyright © 2014, 2015 Federico Beffa <beffa@fbengineering.ch>
7 ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
8 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
9 ;;; Copyright © 2015, 2017 Andy Wingo <wingo@igalia.com>
10 ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
11 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
12 ;;; Copyright © 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
15 ;;; Copyright © 2016, 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
16 ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
17 ;;; Copyright © 2016, 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
18 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
19 ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
20 ;;; Copyright © 2016, 2018 Leo Famulari <leo@famulari.name>
21 ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
22 ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
23 ;;; Copyright © 2016 David Craven <david@craven.ch>
24 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
25 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
26 ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
27 ;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
28 ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
29 ;;; Copyright © 2017 Mohammed Sadiq <sadiq@sadiqpk.org>
30 ;;; Copyright © 2017, 2020 Brendan Tildesley <mail@brendan.scot>
31 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
32 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
33 ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
34 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
35 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
36 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
37 ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
38 ;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
39 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
40 ;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
41 ;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
42 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
43 ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
44 ;;; Copyright © 2019 David Wilson <david@daviwil.com>
45 ;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
46 ;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
47 ;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
48 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
49 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
50 ;;; Copyright © 2020 raingloom <raingloom@riseup.net>
51 ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
54 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
58 ;;;
59 ;;; This file is part of GNU Guix.
60 ;;;
61 ;;; GNU Guix is free software; you can redistribute it and/or modify it
62 ;;; under the terms of the GNU General Public License as published by
63 ;;; the Free Software Foundation; either version 3 of the License, or (at
64 ;;; your option) any later version.
65 ;;;
66 ;;; GNU Guix is distributed in the hope that it will be useful, but
67 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
68 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
69 ;;; GNU General Public License for more details.
70 ;;;
71 ;;; You should have received a copy of the GNU General Public License
72 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
73
74 (define-module (gnu packages gnome)
75 #:use-module (gnu packages)
76 #:use-module (gnu packages admin)
77 #:use-module (gnu packages aspell)
78 #:use-module (gnu packages autotools)
79 #:use-module (gnu packages avahi)
80 #:use-module (gnu packages backup)
81 #:use-module (gnu packages base)
82 #:use-module (gnu packages bash)
83 #:use-module (gnu packages bison)
84 #:use-module (gnu packages boost)
85 #:use-module (gnu packages build-tools)
86 #:use-module (gnu packages calendar)
87 #:use-module (gnu packages cdrom)
88 #:use-module (gnu packages check)
89 #:use-module (gnu packages cmake)
90 #:use-module (gnu packages compression)
91 #:use-module (gnu packages crates-io)
92 #:use-module (gnu packages cups)
93 #:use-module (gnu packages curl)
94 #:use-module (gnu packages cyrus-sasl)
95 #:use-module (gnu packages databases)
96 #:use-module (gnu packages dbm)
97 #:use-module (gnu packages djvu)
98 #:use-module (gnu packages dns)
99 #:use-module (gnu packages docbook)
100 #:use-module (gnu packages documentation)
101 #:use-module (gnu packages enchant)
102 #:use-module (gnu packages flex)
103 #:use-module (gnu packages fonts)
104 #:use-module (gnu packages file-systems)
105 #:use-module (gnu packages fontutils)
106 #:use-module (gnu packages freedesktop)
107 #:use-module (gnu packages game-development)
108 #:use-module (gnu packages gettext)
109 #:use-module (gnu packages ghostscript)
110 #:use-module (gnu packages gimp)
111 #:use-module (gnu packages gl)
112 #:use-module (gnu packages glib)
113 #:use-module (gnu packages gnupg)
114 #:use-module (gnu packages gnuzilla)
115 #:use-module (gnu packages geo)
116 #:use-module (gnu packages gperf)
117 #:use-module (gnu packages graphviz)
118 #:use-module (gnu packages gstreamer)
119 #:use-module (gnu packages gtk)
120 #:use-module (gnu packages guile)
121 #:use-module (gnu packages ibus)
122 #:use-module (gnu packages icu4c)
123 #:use-module (gnu packages image)
124 #:use-module (gnu packages imagemagick)
125 #:use-module (gnu packages inkscape)
126 #:use-module (gnu packages iso-codes)
127 #:use-module (gnu packages kerberos)
128 #:use-module (gnu packages libcanberra)
129 #:use-module (gnu packages libunistring)
130 #:use-module (gnu packages libunwind)
131 #:use-module (gnu packages libusb)
132 #:use-module (gnu packages linux)
133 #:use-module (gnu packages lirc)
134 #:use-module (gnu packages lua)
135 #:use-module (gnu packages mail)
136 #:use-module (gnu packages mp3)
137 #:use-module (gnu packages multiprecision)
138 #:use-module (gnu packages music)
139 #:use-module (gnu packages ncurses)
140 #:use-module (gnu packages nettle)
141 #:use-module (gnu packages networking)
142 #:use-module (gnu packages ninja)
143 #:use-module (gnu packages nss)
144 #:use-module (gnu packages openldap)
145 #:use-module (gnu packages package-management)
146 #:use-module (gnu packages password-utils)
147 #:use-module (gnu packages pcre)
148 #:use-module (gnu packages pdf)
149 #:use-module (gnu packages perl)
150 #:use-module (gnu packages photo)
151 #:use-module (gnu packages php)
152 #:use-module (gnu packages pkg-config)
153 #:use-module (gnu packages polkit)
154 #:use-module (gnu packages popt)
155 #:use-module (gnu packages pretty-print)
156 #:use-module (gnu packages pulseaudio)
157 #:use-module (gnu packages python)
158 #:use-module (gnu packages python-crypto)
159 #:use-module (gnu packages python-web)
160 #:use-module (gnu packages python-xyz)
161 #:use-module (gnu packages rdesktop)
162 #:use-module (gnu packages readline)
163 #:use-module (gnu packages ruby)
164 #:use-module (gnu packages rust)
165 #:use-module (gnu packages samba)
166 #:use-module (gnu packages scanner)
167 #:use-module (gnu packages selinux)
168 #:use-module (gnu packages slang)
169 #:use-module (gnu packages speech)
170 #:use-module (gnu packages spice)
171 #:use-module (gnu packages sqlite)
172 #:use-module (gnu packages ssh)
173 #:use-module (gnu packages swig)
174 #:use-module (gnu packages tex)
175 #:use-module (gnu packages time)
176 #:use-module (gnu packages tls)
177 #:use-module (gnu packages valgrind)
178 #:use-module (gnu packages version-control)
179 #:use-module (gnu packages video)
180 #:use-module (gnu packages virtualization)
181 #:use-module (gnu packages vpn)
182 #:use-module (gnu packages web)
183 #:use-module (gnu packages webkit)
184 #:use-module (gnu packages xdisorg)
185 #:use-module (gnu packages xiph)
186 #:use-module (gnu packages xml)
187 #:use-module (gnu packages xorg)
188 #:use-module (gnu artwork)
189 #:use-module ((guix build utils) #:select (modify-phases))
190 #:use-module (guix build-system cargo)
191 #:use-module (guix build-system cmake)
192 #:use-module (guix build-system glib-or-gtk)
193 #:use-module (guix build-system gnu)
194 #:use-module (guix build-system meson)
195 #:use-module (guix build-system python)
196 #:use-module (guix build-system trivial)
197 #:use-module (guix download)
198 #:use-module (guix git-download)
199 #:use-module ((guix licenses) #:prefix license:)
200 #:use-module (guix packages)
201 #:use-module (guix utils)
202 #:use-module (guix gexp)
203 #:use-module (guix monads)
204 #:use-module (guix store)
205 #:use-module (ice-9 match)
206 #:use-module (srfi srfi-1))
207
208 (define-public brasero
209 (package
210 (name "brasero")
211 (version "3.12.2")
212 (source (origin
213 (method url-fetch)
214 (uri (string-append "mirror://gnome/sources/brasero/"
215 (version-major+minor version) "/"
216 "brasero-" version ".tar.xz"))
217 (sha256
218 (base32
219 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
220 (build-system glib-or-gtk-build-system)
221 (arguments
222 `(#:configure-flags (list
223 (string-append "--with-girdir="
224 (assoc-ref %outputs "out")
225 "/share/gir-1.0")
226 (string-append "--with-typelibdir="
227 (assoc-ref %outputs "out")
228 "/lib/girepository-1.0"))
229 #:phases
230 (modify-phases %standard-phases
231 (add-before 'configure 'embed-growisofs
232 (lambda* (#:key inputs #:allow-other-keys)
233 (substitute* "plugins/growisofs/burn-growisofs.c"
234 (("\"growisofs") (string-append "\"" (which "growisofs"))))
235 #t)))))
236 (propagated-inputs
237 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
238 (native-inputs
239 `(("intltool" ,intltool)
240 ("itstool" ,itstool)
241 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
242 ("gobject-introspection" ,gobject-introspection)
243 ("pkg-config" ,pkg-config)))
244 (inputs
245 `(("dvd+rw-tools" ,dvd+rw-tools)
246 ("glib" ,glib)
247 ("gnome-doc-utils" ,gnome-doc-utils)
248 ("gstreamer" ,gstreamer)
249 ("gst-plugins-base" ,gst-plugins-base)
250 ("gtk+" ,gtk+)
251 ("libcanberra" ,libcanberra)
252 ("libice" ,libice)
253 ("libnotify" ,libnotify)
254 ("libsm" ,libsm)
255 ("libxml2" ,libxml2)
256 ("totem-pl-parser" ,totem-pl-parser)))
257 (home-page "https://wiki.gnome.org/Apps/Brasero")
258 (synopsis "CD/DVD burning tool for Gnome")
259 (description "Brasero is an application to burn CD/DVD for the Gnome
260 Desktop. It is designed to be as simple as possible and has some unique
261 features to enable users to create their discs easily and quickly.")
262 (license license:gpl2+)))
263
264 (define-public gtx
265 (package
266 (name "gtx")
267 (version "0.2.2")
268 (source
269 (origin
270 (method url-fetch)
271 (uri
272 (string-append "https://launchpad.net/gtx/trunk/"
273 version "/+download/gtx-" version ".tar.gz"))
274 (sha256
275 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
276 (build-system glib-or-gtk-build-system)
277 (outputs '("out" "doc"))
278 (arguments
279 `(#:configure-flags
280 (list
281 "--disable-static"
282 "--enable-gtk-doc"
283 (string-append "--with-html-dir="
284 (assoc-ref %outputs "doc")
285 "/share/gtk-doc/html"))))
286 (native-inputs
287 `(("gobject-introspection" ,gobject-introspection)
288 ("gtk-doc" ,gtk-doc)
289 ("pkg-config" ,pkg-config)))
290 (propagated-inputs
291 `(("glib" ,glib)))
292 (synopsis "GLib Testing Framework")
293 (description "GTX is a small collection of convenience functions intended to
294 enhance the GLib testing framework. With specific emphasis on easing the pain
295 of writing test cases for asynchronous interactions.")
296 (home-page "https://launchpad.net/gtx")
297 (license license:lgpl2.1+)))
298
299 (define-public libcloudproviders
300 (package
301 (name "libcloudproviders")
302 (version "0.3.1")
303 (source
304 (origin
305 (method url-fetch)
306 (uri
307 (string-append "mirror://gnome/sources/" name "/"
308 (version-major+minor version) "/"
309 name "-" version ".tar.xz"))
310 (sha256
311 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
312 (build-system meson-build-system)
313 (outputs '("out" "doc"))
314 (arguments
315 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
316 #:configure-flags
317 (list
318 "-Denable-gtk-doc=true")
319 #:phases
320 (modify-phases %standard-phases
321 (add-after 'install 'move-doc
322 (lambda* (#:key outputs #:allow-other-keys)
323 (let* ((out (assoc-ref outputs "out"))
324 (doc (assoc-ref outputs "doc")))
325 (mkdir-p (string-append doc "/share"))
326 (rename-file
327 (string-append out "/share/gtk-doc")
328 (string-append doc "/share/gtk-doc"))
329 #t))))))
330 (native-inputs
331 `(("glib:bin" ,glib "bin")
332 ("gobject-introspection" ,gobject-introspection)
333 ("gtk-doc" ,gtk-doc)
334 ("pkg-config" ,pkg-config)
335 ("vala" ,vala)))
336 (inputs
337 `(("glib" ,glib)
338 ("glib-networking" ,glib-networking)))
339 (synopsis "Cloudproviders Integration API")
340 (description "Libcloudproviders is a DBus API that allows cloud storage sync
341 clients to expose their services. Clients such as file managers and desktop
342 environments can then provide integrated access to the cloud providers
343 services.")
344 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
345 (license license:lgpl3+)))
346
347 (define-public sysprof
348 (package
349 (name "sysprof")
350 (version "3.36.0")
351 (source
352 (origin
353 (method url-fetch)
354 (uri
355 (string-append "mirror://gnome/sources/" name "/"
356 (version-major+minor version) "/"
357 name "-" version ".tar.xz"))
358 (sha256
359 (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
360 (build-system meson-build-system)
361 (arguments
362 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas.
363 #:configure-flags
364 (list
365 ;; SystemD not required.
366 "-Dsystemdunitdir=/tmp")))
367 (native-inputs
368 `(("desktop-file-utils" ,desktop-file-utils)
369 ("gettext" ,gettext-minimal)
370 ("glib:bin" ,glib "bin")
371 ("gobject-introspection" ,gobject-introspection)
372 ("gtk+:bin" ,gtk+ "bin")
373 ("itstool" ,itstool)
374 ("pkg-config" ,pkg-config)
375 ("xmllint" ,libxml2)))
376 (inputs
377 `(("libdazzle" ,libdazzle)
378 ("libunwind" ,libunwind)
379 ("pango" ,pango)
380 ("polkit" ,polkit)))
381 (propagated-inputs
382 `(("glib" ,glib)
383 ("gtk+" ,gtk+)))
384 (synopsis "Kernel based performance profiler")
385 (description "Sysprof is a sampling profiler that uses a kernel module to
386 generate stacktraces which are then interpreted by the userspace program
387 sysprof.")
388 (home-page "https://wiki.gnome.org/Apps/Sysprof")
389 (license
390 (list
391 ;; For newer codes.
392 license:gpl3+
393 ;; For older codes.
394 license:gpl2+))))
395
396 (define-public gnome-photos
397 (package
398 (name "gnome-photos")
399 (version "3.34.2")
400 (source
401 (origin
402 (method url-fetch)
403 (uri
404 (string-append "mirror://gnome/sources/" name "/"
405 (version-major+minor version) "/"
406 name "-" version ".tar.xz"))
407 (sha256
408 (base32
409 "06ml5sf8xhpan410msqz085hmfc7082d368pb82yq646y9pcfn9w"))))
410 (build-system meson-build-system)
411 (arguments
412 `(#:glib-or-gtk? #t
413 #:configure-flags
414 (list "-Ddogtail=false" ; Not available
415 ;; Required for RUNPATH validation.
416 (string-append "-Dc_link_args=-Wl,-rpath="
417 (assoc-ref %outputs "out") "/lib/gnome-photos"))
418 #:phases
419 (modify-phases %standard-phases
420 (add-after 'install 'wrap-gnome-photos
421 (lambda* (#:key inputs outputs #:allow-other-keys)
422 (let*
423 ((out (assoc-ref outputs "out")))
424 (wrap-program (string-append out "/bin/gnome-photos")
425 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))))
426 #t)))))
427 (native-inputs
428 `(("dbus" ,dbus)
429 ("desktop-file-utils" ,desktop-file-utils)
430 ("gettext" ,gettext-minimal)
431 ("git" ,git-minimal)
432 ("glib:bin" ,glib "bin")
433 ("gobject-introspection" ,gobject-introspection)
434 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
435 ("gtk+:bin" ,gtk+ "bin")
436 ("itstool" ,itstool)
437 ("pkg-config" ,pkg-config)))
438 (inputs
439 `(("babl" ,babl)
440 ("cairo" ,cairo)
441 ("gdk-pixbuf" ,gdk-pixbuf+svg)
442 ("gegl" ,gegl)
443 ("geocode-glib" ,geocode-glib)
444 ("gexiv2" ,gexiv2)
445 ("gnome-online-accounts" ,gnome-online-accounts)
446 ("gnome-online-miners" ,gnome-online-miners)
447 ("grilo" ,grilo)
448 ("grilo-plugins" ,grilo-plugins)
449 ("gtk+" ,gtk+)
450 ("libdazzle" ,libdazzle)
451 ("libgdata" ,libgdata)
452 ("libgfbgraph" ,gfbgraph)
453 ("libjpeg" ,libjpeg-turbo)
454 ("libpng" ,libpng)
455 ("librest" ,rest)
456 ("pygobject" ,python-pygobject)
457 ("tracker" ,tracker)
458 ("tracker-miners" ,tracker-miners)))
459 (synopsis "Access, organize and share your photos on GNOME desktop")
460 (description "GNOME Photos is a simple and elegant replacement for using a
461 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
462 cloud integration is offered through GNOME Online Accounts.")
463 (home-page "https://wiki.gnome.org/Apps/Photos")
464 (license license:gpl3+)))
465
466 (define-public gnome-music
467 (package
468 (name "gnome-music")
469 (version "3.34.5")
470 (source
471 (origin
472 (method url-fetch)
473 (uri
474 (string-append "mirror://gnome/sources/" name "/"
475 (version-major+minor version) "/"
476 name "-" version ".tar.xz"))
477 (sha256
478 (base32
479 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
480 (build-system meson-build-system)
481 (arguments
482 `(#:glib-or-gtk? #t
483 #:phases
484 (modify-phases %standard-phases
485 (add-after 'install 'wrap-gnome-music
486 (lambda* (#:key inputs outputs #:allow-other-keys)
487 (let*
488 ((out (assoc-ref outputs "out"))
489 (pylib (string-append out "/lib/python"
490 ,(version-major+minor
491 (package-version python))
492 "/site-packages")))
493 (wrap-program (string-append out "/bin/gnome-music")
494 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
495 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
496 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
497 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
498 #t)))))
499 (native-inputs
500 `(("desktop-file-utils" ,desktop-file-utils)
501 ("gettext" ,gettext-minimal)
502 ("glib:bin" ,glib "bin")
503 ("gobject-introspection" ,gobject-introspection)
504 ("gtk+:bin" ,gtk+ "bin")
505 ("itstools" ,itstool)
506 ("pkg-config" ,pkg-config)))
507 (inputs
508 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
509 ("grilo" ,grilo)
510 ("grilo-plugins" ,grilo-plugins)
511 ("gst-plugins-base" ,gst-plugins-base)
512 ("gstreamer" ,gstreamer)
513 ("gvfs" ,gvfs)
514 ("libdazzle" ,libdazzle)
515 ("libmediaart" ,libmediaart)
516 ("libsoup" ,libsoup)
517 ("pycairo" ,python-pycairo)
518 ("pygobject" ,python-pygobject)
519 ("tracker" ,tracker)
520 ("tracker-miners" ,tracker-miners)))
521 (synopsis "Simple music player for GNOME desktop")
522 (description "GNOME Music is the new GNOME music playing application that
523 aims to combine an elegant and immersive browsing experience with simple
524 and straightforward controls.")
525 (home-page "https://wiki.gnome.org/Apps/Music")
526 (license license:gpl2+)))
527
528 (define-public portablexdr
529 (package
530 (name "portablexdr")
531 (version "4.9.1")
532 (source
533 (origin
534 (method url-fetch)
535 (uri
536 (string-append "https://people.redhat.com/~rjones/" name "/files/"
537 name "-" version ".tar.gz"))
538 (sha256
539 (base32
540 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
541 (build-system gnu-build-system)
542 (synopsis "External Data Representation Library")
543 (description "PortableXDR is an implementation of External Data
544 Representation (XDR) Library. It is a standard data serialization format, for
545 uses such as computer network protocols. It allows data to be transferred
546 between different kinds of computer systems.")
547 (home-page "https://people.redhat.com/~rjones/portablexdr/")
548 (license
549 (list
550 license:gpl2+
551 license:lgpl2.1+))))
552
553 (define-public tepl
554 (package
555 (name "tepl")
556 (version "4.4.0")
557 (source
558 (origin
559 (method url-fetch)
560 (uri
561 (string-append "mirror://gnome/sources/" name "/"
562 (version-major+minor version) "/"
563 name "-" version ".tar.xz"))
564 (sha256
565 (base32
566 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
567 (build-system glib-or-gtk-build-system)
568 (arguments
569 `(#:tests? #f)) ; FIX-ME: Requires gvfs
570 (native-inputs
571 `(("gobject-introspection" ,gobject-introspection)
572 ("pkg-config" ,pkg-config)))
573 (inputs
574 `(("amtk" ,amtk)
575 ("glib" ,glib)
576 ("gtk+" ,gtk+)
577 ("gtksourceview" ,gtksourceview)
578 ("libxml2" ,libxml2)
579 ("uchardet" ,uchardet)))
580 (synopsis "Text editor product line")
581 (description "Tepl is a library that eases the development of
582 GtkSourceView-based text editors and IDEs.")
583 (home-page "https://wiki.gnome.org/Projects/Tepl")
584 (license license:lgpl2.1+)))
585
586 (define-public krb5-auth-dialog
587 (package
588 (name "krb5-auth-dialog")
589 (version "3.26.1")
590 (source
591 (origin
592 (method url-fetch)
593 (uri
594 (string-append "mirror://gnome/sources/" name "/"
595 (version-major+minor version) "/"
596 name "-" version ".tar.xz"))
597 (sha256
598 (base32
599 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
600 (build-system glib-or-gtk-build-system)
601 (native-inputs
602 `(("intltool" ,intltool)
603 ("itstool" ,itstool)
604 ("libxml2" ,libxml2)
605 ("pkg-config" ,pkg-config)
606 ("python-wrapper" ,python-wrapper)))
607 (inputs
608 `(("glib" ,glib)
609 ("gtk+" ,gtk+)
610 ("libnotify" ,libnotify)
611 ("mit-krb5" ,mit-krb5)
612 ("network-manager" ,network-manager)))
613 (synopsis "Popup dialogs for Kerberos 5")
614 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
615 tickets, and pops up a dialog when they are about to expire.")
616 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
617 (license license:gpl2+)))
618
619 (define-public notification-daemon
620 (package
621 (name "notification-daemon")
622 (version "3.20.0")
623 (source
624 (origin
625 (method url-fetch)
626 (uri
627 (string-append "mirror://gnome/sources/" name "/"
628 (version-major+minor version) "/"
629 name "-" version ".tar.xz"))
630 (sha256
631 (base32
632 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
633 (build-system glib-or-gtk-build-system)
634 (native-inputs
635 `(("intltool" ,intltool)
636 ("pkg-config" ,pkg-config)))
637 (inputs
638 `(("glib" ,glib)
639 ("gtk+" ,gtk+)
640 ("x11" ,libx11)))
641 (synopsis "Notification Daemon for GNOME Desktop")
642 (description "Notification-Daemon is the server implementation of the
643 freedesktop.org desktop notification specification.")
644 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
645 (license license:gpl2+)))
646
647 (define-public mm-common
648 (package
649 (name "mm-common")
650 (version "1.0.1")
651 (source (origin
652 (method url-fetch)
653 (uri (string-append "mirror://gnome/sources/mm-common/"
654 (version-major+minor version) "/"
655 "mm-common-" version ".tar.xz"))
656 (sha256
657 (base32
658 "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
659 (build-system meson-build-system)
660 (arguments
661 `(#:phases
662 (modify-phases %standard-phases
663 (add-after 'unpack 'patch
664 (lambda* (#:key inputs #:allow-other-keys)
665 (substitute* "util/mm-common-prepare.in"
666 (("ln") (string-append (assoc-ref inputs "coreutils")
667 "/bin/ln"))
668 (("cp") (string-append (assoc-ref inputs "coreutils")
669 "/bin/cp"))
670 (("sed") (string-append (assoc-ref inputs "sed")
671 "/bin/sed"))
672 (("cat") (string-append (assoc-ref inputs "coreutils")
673 "/bin/cat")))
674 #t)))))
675 (native-inputs
676 `(("coreutils" ,coreutils)
677 ("gettext" ,gettext-minimal)
678 ("pkg-config" ,pkg-config)
679 ("sed" ,sed)))
680 (inputs
681 `(("python" ,python)))
682 (synopsis "Module of GNOME C++ bindings")
683 (description "The mm-common module provides the build infrastructure
684 and utilities shared among the GNOME C++ binding libraries. Release
685 archives of mm-common include the Doxygen tag file for the GNU C++
686 Library reference documentation.")
687 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
688 (license license:gpl2+)))
689
690 (define-public phodav
691 (package
692 (name "phodav")
693 (version "2.4")
694 (source (origin
695 (method url-fetch)
696 (uri (string-append "mirror://gnome/sources/" name "/"
697 (version-major+minor version) "/"
698 name "-" version ".tar.xz"))
699 (sha256
700 (base32
701 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
702 (build-system meson-build-system)
703 (native-inputs
704 `(("gettext" ,gettext-minimal)
705 ("glib:bin" ,glib "bin")
706 ("gtk-doc" ,gtk-doc)
707 ("pkg-config" ,pkg-config)))
708 (inputs
709 `(("avahi" ,avahi)
710 ("libgudev" ,libgudev)
711 ("libsoup" ,libsoup)))
712 (synopsis "WebDav server implementation using libsoup")
713 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
714 but it is generic enough to be reused in other projects,
715 in particular in the GNOME desktop.")
716 (home-page "https://wiki.gnome.org/phodav")
717 (license license:lgpl2.1+)))
718
719 (define-public gnome-color-manager
720 (package
721 (name "gnome-color-manager")
722 (version "3.32.0")
723 (source (origin
724 (method url-fetch)
725 (uri (string-append "mirror://gnome/sources/" name "/"
726 (version-major+minor version) "/"
727 name "-" version ".tar.xz"))
728 (sha256
729 (base32
730 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
731 (build-system meson-build-system)
732 (arguments
733 `(#:glib-or-gtk? #t
734 #:phases
735 (modify-phases %standard-phases
736 (add-before
737 'check 'pre-check
738 (lambda _
739 ;; Tests require a running X server.
740 (system "Xvfb :1 &")
741 (setenv "DISPLAY" ":1")
742 #t)))))
743 (native-inputs
744 `(("desktop-file-utils" ,desktop-file-utils)
745 ("gettext" ,gettext-minimal)
746 ("glib:bin" ,glib "bin")
747 ("gtk+:bin" ,gtk+ "bin")
748 ("itstool" ,itstool)
749 ("pkg-config" ,pkg-config)
750 ("xorg-server" ,xorg-server-for-tests)))
751 (inputs
752 `(("adwaita-icon-theme" ,adwaita-icon-theme)
753 ("appstream-glib" ,appstream-glib)
754 ("colord-gtk" ,colord-gtk)
755 ("exiv2" ,exiv2)
756 ("gnome-desktop" ,gnome-desktop)
757 ("libcanberra" ,libcanberra)
758 ("libexif" ,libexif)
759 ("libtiff" ,libtiff)
760 ("libxrandr" ,libxrandr)
761 ("libxtst" ,libxtst)
762 ("libxxf86vm" ,libxxf86vm)
763 ("vte" ,vte)
764 ("xorgproto" ,xorgproto)))
765 (synopsis "Color profile manager for the GNOME desktop")
766 (description "GNOME Color Manager is a session framework that makes
767 it easy to manage, install and generate color profiles
768 in the GNOME desktop.")
769 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
770 (license license:gpl2+)))
771
772 (define-public gnome-online-miners
773 (package
774 (name "gnome-online-miners")
775 (version "3.34.0")
776 (source (origin
777 (method url-fetch)
778 (uri (string-append "mirror://gnome/sources/" name "/"
779 (version-major+minor version) "/"
780 name "-" version ".tar.xz"))
781 (sha256
782 (base32
783 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
784 (build-system glib-or-gtk-build-system)
785 (native-inputs
786 `(("gettext" ,gettext-minimal)
787 ("glib:bin" ,glib "bin")
788 ("gobject-introspection" ,gobject-introspection)
789 ("gtk+:bin" ,gtk+ "bin")
790 ("pkg-config" ,pkg-config)))
791 (inputs
792 `(("gnome-online-accounts" ,gnome-online-accounts)
793 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
794 ("grilo" ,grilo)
795 ("libgdata" ,libgdata)
796 ("libgfbgraph" ,gfbgraph)
797 ("libzapojit" ,libzapojit)
798 ("rest" ,rest)
799 ("tracker" ,tracker)))
800 (synopsis "Web Crawlers for GNOME")
801 (description "GNOME Online Miners provides a set of crawlers that
802 go through your online content and index them locally in Tracker.
803 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
804 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
805 (license license:gpl2+)))
806
807 (define-public gssdp
808 (package
809 (name "gssdp")
810 (version "1.2.3")
811 (source (origin
812 (method url-fetch)
813 (uri (string-append "mirror://gnome/sources/" name "/"
814 (version-major+minor version) "/"
815 name "-" version ".tar.xz"))
816 (sha256
817 (base32
818 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
819 (build-system meson-build-system)
820 (native-inputs
821 `(("gettext" ,gettext-minimal)
822 ("glib:bin" ,glib "bin")
823 ("gobject-introspection" ,gobject-introspection)
824 ("gtk-doc" ,gtk-doc)
825 ("pkg-config" ,pkg-config)
826 ("vala" ,vala)))
827 (inputs
828 `(("gtk+" ,gtk+)
829 ("libsoup" ,libsoup)))
830 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
831 Protocol} for GNOME")
832 (description "This package provides a library to handle resource discovery
833 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
834 a debugging tool, @command{gssdp-device-sniffer}.")
835 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
836 (license license:lgpl2.0+)))
837
838 (define-public gupnp
839 (package
840 (name "gupnp")
841 (version "1.2.4")
842 (source (origin
843 (method url-fetch)
844 (uri (string-append "mirror://gnome/sources/" name "/"
845 (version-major+minor version) "/"
846 name "-" version ".tar.xz"))
847 (sha256
848 (base32
849 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
850 (build-system meson-build-system)
851 (native-inputs
852 `(("gettext" ,gettext-minimal)
853 ("glib:bin" ,glib "bin")
854 ("gobject-introspection" ,gobject-introspection)
855 ("gtk-doc" ,gtk-doc)
856 ("pkg-config" ,pkg-config)
857 ("vala" ,vala)))
858 (inputs
859 `(("gssdp" ,gssdp)
860 ("gtk+" ,gtk+)
861 ("libsoup" ,libsoup)))
862 (synopsis "PnP API for GNOME")
863 (description "This package provides GUPnP, an object-oriented framework
864 for creating UPnP devices and control points, written in C using
865 @code{GObject} and @code{libsoup}.")
866 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
867 (license license:lgpl2.0+)))
868
869 (define-public gupnp-dlna
870 (package
871 (name "gupnp-dlna")
872 (version "0.10.5")
873 (source (origin
874 (method url-fetch)
875 (uri (string-append "mirror://gnome/sources/" name "/"
876 (version-major+minor version) "/"
877 name "-" version ".tar.xz"))
878 (sha256
879 (base32
880 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
881 (build-system gnu-build-system)
882 (native-inputs
883 `(("gettext" ,gettext-minimal)
884 ("glib:bin" ,glib "bin")
885 ("gobject-introspection" ,gobject-introspection)
886 ("gtk-doc" ,gtk-doc)
887 ("libxml" ,libxml2)
888 ("pkg-config" ,pkg-config)
889 ("vala" ,vala)))
890 (inputs
891 `(("gstreamer" ,gstreamer)
892 ("gupnp" ,gupnp)))
893 (propagated-inputs
894 `(("gst-plugins-base" ,gst-plugins-base)
895 ("gst-plugins-good" ,gst-plugins-good)))
896 (synopsis "GUPnP DLNA for GNOME")
897 (description "This package provides a small utility library to
898 support DLNA-related tasks such as media profile guessing, transcoding to a
899 given profile, etc. DLNA is a subset of UPnP A/V.")
900 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
901 (license license:lgpl2.0+)))
902
903 (define-public gupnp-av
904 (package
905 (name "gupnp-av")
906 (version "0.12.11")
907 (source (origin
908 (method url-fetch)
909 (uri (string-append "mirror://gnome/sources/" name "/"
910 (version-major+minor version) "/"
911 name "-" version ".tar.xz"))
912 (sha256
913 (base32
914 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
915 (build-system gnu-build-system)
916 (native-inputs
917 `(("gettext" ,gettext-minimal)
918 ("glib:bin" ,glib "bin")
919 ("gobject-introspection" ,gobject-introspection)
920 ("gtk-doc" ,gtk-doc)
921 ("libxml" ,libxml2)
922 ("pkg-config" ,pkg-config)))
923 (inputs
924 `(("gtk+" ,gtk+)
925 ("gupnp" ,gupnp)))
926 (synopsis "GUPnP A/V for GNOME")
927 (description "This package provides a small library for handling
928 and implementation of UPnP A/V profiles.")
929 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
930 (license license:lgpl2.0+)))
931
932 (define-public libmediaart
933 (package
934 (name "libmediaart")
935 (version "1.9.4")
936 (source (origin
937 (method url-fetch)
938 (uri (string-append "mirror://gnome/sources/" name "/"
939 (version-major+minor version) "/"
940 name "-" version ".tar.xz"))
941 (sha256
942 (base32
943 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
944 (build-system gnu-build-system)
945 (native-inputs
946 `(("glib:bin" ,glib "bin")
947 ("pkg-config" ,pkg-config)))
948 (inputs
949 `(("gdk-pixbuf" ,gdk-pixbuf)
950 ("gettext" ,gettext-minimal)
951 ("gobject-introspection" ,gobject-introspection)
952 ("gtk+:doc", gtk+ "doc")
953 ("vala" ,vala)))
954 (synopsis "Media art library for the GNOME desktop")
955 (description
956 "The libmediaart library is the foundation for media art caching,
957 extraction, and lookup for applications on the desktop.")
958 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
959 (license license:lgpl2.1+)))
960
961 (define-public gnome-initial-setup
962 (package
963 (name "gnome-initial-setup")
964 (version "3.32.1")
965 (source (origin
966 (method url-fetch)
967 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
968 (version-major+minor version)
969 "/gnome-initial-setup-" version ".tar.xz"))
970 (sha256
971 (base32
972 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
973 (build-system meson-build-system)
974 (arguments
975 '(#:configure-flags '(;; Enable camera support for user selfie.
976 "-Dcheese=auto"
977 "-Dsystemd=false")
978 #:phases (modify-phases %standard-phases
979 (add-after 'unpack 'set-gkbd-file-name
980 (lambda* (#:key inputs #:allow-other-keys)
981 ;; Allow the "Preview" button in the keyboard layout
982 ;; selection dialog to display the layout.
983 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
984 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
985 (("\"gkbd-keyboard-display")
986 (string-append "\"" libgnomekbd
987 "/bin/gkbd-keyboard-display")))
988 #t))))))
989 (native-inputs
990 `(("gettext" ,gettext-minimal)
991 ("glib:bin" ,glib "bin")
992 ("gobject-introspection" ,gobject-introspection)
993 ("gtk+:bin" ,gtk+ "bin")
994 ("pkg-config" ,pkg-config)))
995 (inputs
996 `(("accountsservice" ,accountsservice)
997 ;("adwaita-icon-theme" ,adwaita-icon-theme)
998 ("gdm" ,gdm)
999 ("geoclue" ,geoclue)
1000 ("gnome-desktop" ,gnome-desktop)
1001 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
1002 ("gnome-online-accounts" ,gnome-online-accounts)
1003 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1004 ("gstreamer" ,gstreamer)
1005 ("ibus" ,ibus)
1006 ("json-glib" ,json-glib)
1007 ("krb5" ,mit-krb5)
1008 ("libgweather" ,libgweather)
1009 ("libnma" ,libnma)
1010 ("libsecret" ,libsecret)
1011 ("network-manager" ,network-manager)
1012 ("packagekit" ,packagekit)
1013 ("polkit" ,polkit)
1014 ("pwquality" ,libpwquality)
1015 ("rest" ,rest)
1016 ("upower" ,upower)
1017 ("webkitgtk" ,webkitgtk)
1018 ("libgnomekbd" ,libgnomekbd)))
1019 (synopsis "Initial setup wizard for GNOME desktop")
1020 (description "This package provides a set-up wizard when a
1021 user logs into GNOME for the first time. It typically provides a
1022 tour of all gnome components and allows the user to set them up.")
1023 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1024 (license license:gpl2)))
1025
1026 (define-public gnome-user-share
1027 (package
1028 (name "gnome-user-share")
1029 (version "3.33.1")
1030 (source (origin
1031 (method url-fetch)
1032 (uri (string-append "mirror://gnome/sources/" name "/"
1033 (version-major+minor version) "/"
1034 name "-" version ".tar.xz"))
1035 (sha256
1036 (base32
1037 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
1038 (build-system meson-build-system)
1039 (arguments
1040 `(#:glib-or-gtk? #t
1041 #:configure-flags
1042 `("-Dsystemd=false"
1043 ;; Enable nautilus extension for file sharing.
1044 "-Dnautilus_extension=true")))
1045 (native-inputs
1046 `(("gettext" ,gettext-minimal)
1047 ("glib:bin" ,glib "bin")
1048 ("gobject-introspection" ,gobject-introspection)
1049 ("gtk+:bin" ,gtk+ "bin")
1050 ("pkg-config" ,pkg-config)
1051 ("yelp-tools" ,yelp-tools)))
1052 (inputs
1053 `(("glib" ,glib)
1054 ("gnome-bluetooth" ,gnome-bluetooth)
1055 ("gtk+" ,gtk+)
1056 ("libcanberra" ,libcanberra)
1057 ("libnotify" ,libnotify)
1058 ("nautilus" ,nautilus))) ; For nautilus extension.
1059 (synopsis "File sharing for GNOME desktop")
1060 (description "GNOME User Share is a small package that binds together
1061 various free software projects to bring easy to use user-level file
1062 sharing to the masses.")
1063 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1064 (license license:gpl2+)))
1065
1066 (define-public sushi
1067 (package
1068 (name "sushi")
1069 (version "3.32.1")
1070 (source (origin
1071 (method url-fetch)
1072 (uri (string-append "mirror://gnome/sources/" name "/"
1073 (version-major+minor version) "/"
1074 name "-" version ".tar.xz"))
1075 (sha256
1076 (base32
1077 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
1078 (build-system meson-build-system)
1079 (arguments
1080 `(#:glib-or-gtk? #t
1081 #:phases
1082 (modify-phases %standard-phases
1083 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1084 (lambda* (#:key outputs #:allow-other-keys)
1085 (let ((prog (string-append (assoc-ref outputs "out")
1086 "/bin/sushi")))
1087 ;; Put existing typelibs before sushi's deps, so as to correctly
1088 ;; infer gdk-pixbuf
1089 (wrap-program prog
1090 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
1091 #t))))))
1092 (native-inputs
1093 `(("glib:bin" ,glib "bin")
1094 ("gettext" ,gettext-minimal)
1095 ("gobject-introspection" ,gobject-introspection)
1096 ("pkg-config" ,pkg-config)))
1097 (inputs
1098 `(("clutter" ,clutter)
1099 ("clutter-gst" ,clutter-gst)
1100 ("clutter-gtk" ,clutter-gtk)
1101 ("evince" ,evince) ; For file previewing.
1102 ("freetype" ,freetype)
1103 ("gdk-pixbuf" ,gdk-pixbuf)
1104 ("gjs" ,gjs)
1105 ("gst-plugins-base" ,gst-plugins-base)
1106 ("gstreamer" ,gstreamer)
1107 ("gtksourceview" ,gtksourceview-3)
1108 ("harfbuzz" ,harfbuzz)
1109 ("libepoxy" ,libepoxy)
1110 ("libmusicbrainz" ,libmusicbrainz)
1111 ("libxml2" ,libxml2)
1112 ("neon" ,neon)
1113 ("webkitgtk" ,webkitgtk)))
1114 (synopsis "File previewer for the GNOME desktop")
1115 (description "Sushi is a DBus-activated service that allows applications to
1116 preview files on the GNOME desktop.")
1117 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1118 (license license:gpl2+)))
1119
1120 (define-public rygel
1121 (package
1122 (name "rygel")
1123 (version "0.38.3")
1124 (source (origin
1125 (method url-fetch)
1126 (uri (string-append "mirror://gnome/sources/" name "/"
1127 (version-major+minor version) "/"
1128 name "-" version ".tar.xz"))
1129 (sha256
1130 (base32
1131 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
1132 (build-system gnu-build-system)
1133 (native-inputs
1134 `(("gettext" ,gettext-minimal)
1135 ("gobject-introspection" ,gobject-introspection)
1136 ("gtk-doc" ,gtk-doc)
1137 ("pkg-config" ,pkg-config)
1138 ("vala" ,vala)))
1139 (inputs
1140 `(("gdk-pixbuf" ,gdk-pixbuf)
1141 ("gssdp" ,gssdp)
1142 ("gstreamer" ,gstreamer)
1143 ("gst-plugins-base" ,gst-plugins-base)
1144 ("gtk+" ,gtk+)
1145 ("gupnp" ,gupnp)
1146 ("gupnp-av" ,gupnp-av)
1147 ("gupnp-dlna" ,gupnp-dlna)
1148 ("libgee" ,libgee)
1149 ("libmediaart" ,libmediaart)
1150 ("libsoup" ,libsoup)
1151 ("libxslt" ,libxslt)
1152 ("libunistring" ,libunistring)
1153 ("tracker" ,tracker)))
1154 (synopsis "Share audio, video, and pictures with other devices")
1155 (description
1156 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1157 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1158 pictures, and to control a media player on your home network.
1159
1160 Rygel achieves interoperability with other devices by trying to conform to the
1161 strict requirements of DLNA and by converting media on-the-fly to formats that
1162 client devices can handle.")
1163 (home-page "https://wiki.gnome.org/Projects/Rygel")
1164 (license (list
1165 ;; For logo (data/icons/*).
1166 license:cc-by-sa3.0
1167 ;; For all others.
1168 license:lgpl2.1+))))
1169
1170 (define-public libnma
1171 (package
1172 (name "libnma")
1173 (version "1.8.28")
1174 (source (origin
1175 (method url-fetch)
1176 (uri (string-append "mirror://gnome/sources/" name "/"
1177 (version-major+minor version) "/"
1178 name "-" version ".tar.xz"))
1179 (sha256
1180 (base32
1181 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
1182 (build-system meson-build-system)
1183 (arguments
1184 `(#:phases
1185 (modify-phases %standard-phases
1186 (add-after 'unpack 'patch-docbook-xml
1187 (lambda* (#:key inputs #:allow-other-keys)
1188 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
1189 "/xml/dtd/docbook")))
1190 (substitute* "libnma-docs.xml"
1191 (("http://.*/docbookx\\.dtd")
1192 (string-append xmldoc "/docbookx.dtd")))
1193 #t))))))
1194 (native-inputs
1195 `(("docbook-xml" ,docbook-xml-4.3)
1196 ("gettext" ,gettext-minimal)
1197 ("glib:bin" ,glib "bin")
1198 ("gtk-doc" ,gtk-doc)
1199 ("gobject-introspection" ,gobject-introspection)
1200 ("pkg-config" ,pkg-config)
1201 ("vala" ,vala)))
1202 (inputs
1203 `(("gcr" ,gcr)
1204 ("gtk+" ,gtk+)
1205 ("iso-codes" ,iso-codes)
1206 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1207 ("network-manager" ,network-manager)))
1208 (synopsis "Network Manager's applet library")
1209 (description "Libnma is an applet library for Network Manager. It was
1210 initially part of network-manager-applet and has now become a separate
1211 project.")
1212 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1213 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1214 ;; "LGPL-2.1+".
1215 (license license:gpl2+)))
1216
1217 (define-public gnome-menus
1218 (package
1219 (name "gnome-menus")
1220 (version "3.32.0")
1221 (source (origin
1222 (method url-fetch)
1223 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1224 (version-major+minor version) "/"
1225 name "-" version ".tar.xz"))
1226 (sha256
1227 (base32
1228 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1229 (build-system gnu-build-system)
1230 (native-inputs
1231 `(("gettext" ,gettext-minimal)
1232 ("glib" ,glib)
1233 ("pkg-config" ,pkg-config)))
1234 (synopsis "Menu support for GNOME desktop")
1235 (description "GNOME Menus contains the libgnome-menu library, the layout
1236 configuration files for the GNOME menu, as well as a simple menu editor.")
1237 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1238 (license license:lgpl2.0+)))
1239
1240 (define-public deja-dup
1241 (package
1242 (name "deja-dup")
1243 (version "40.6")
1244 (source (origin
1245 (method url-fetch)
1246 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1247 version "/deja-dup-" version ".tar.bz2"))
1248 (sha256
1249 (base32
1250 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1251 (build-system meson-build-system)
1252 (arguments
1253 `(#:glib-or-gtk? #t
1254 #:configure-flags
1255 (list
1256 ;; Otherwise, the RUNPATH will lack the final path component.
1257 (string-append "-Dc_link_args=-Wl,-rpath="
1258 (assoc-ref %outputs "out") "/lib/deja-dup"))
1259 #:phases
1260 (modify-phases %standard-phases
1261 (add-after 'unpack 'patch-paths
1262 (lambda* (#:key inputs #:allow-other-keys)
1263 (let ((python (assoc-ref inputs "python")))
1264 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1265 "libdeja/tests/scripts/instance-error.test")
1266 (("/bin/rm")
1267 (which "rm")))
1268 (substitute* "libdeja/tests/runner.vala"
1269 (("/bin/sh")
1270 (which "sh")))
1271 (substitute* "libdeja/tests/scripts/instance-error.test"
1272 (("`which python3`")
1273 (string-append python "/bin/python3"))))))
1274 (add-after 'unpack 'patch-libgpg-error
1275 (lambda* (#:key inputs #:allow-other-keys)
1276 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1277 (substitute* "meson.build"
1278 (("(gpgerror_libs = ).*" _ var)
1279 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1280 #t))
1281 (add-after 'unpack 'skip-gtk-update-icon-cache
1282 ;; Don't create 'icon-theme.cache'.
1283 (lambda _
1284 (substitute* "data/post-install.sh"
1285 (("gtk-update-icon-cache") "true"))
1286 #t)))))
1287 (inputs
1288 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1289 ("duplicity" ,duplicity)
1290 ("python" ,python)
1291 ("python-pygobject" ,python-pygobject)
1292 ("gtk+" ,gtk+)
1293 ("json-glib" ,json-glib)
1294 ("libnotify" ,libnotify)
1295 ("libgpg-error" ,libgpg-error)
1296 ("libsecret" ,libsecret)
1297 ("libsoup" ,libsoup)
1298 ("packagekit" ,packagekit)))
1299 (native-inputs
1300 `(("appstream-glib" ,appstream-glib)
1301 ("desktop-file-utils" ,desktop-file-utils)
1302 ("gettext" ,gettext-minimal)
1303 ("glib" ,glib "bin") ; for glib-compile-schemas.
1304 ("gobject-introspection" ,gobject-introspection)
1305 ("itstool" ,itstool)
1306 ("pkg-config" ,pkg-config)
1307 ("vala" ,vala)))
1308 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1309 (synopsis "Simple backup tool, for regular encrypted backups")
1310 (description
1311 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1312 uses duplicity as the backend, which supports incremental backups and storage
1313 either on a local, or remote machine via a number of methods.")
1314 (license license:gpl3+)))
1315
1316 (define-public gnome-user-docs
1317 (package
1318 (name "gnome-user-docs")
1319 (version "3.32.3")
1320 (source
1321 (origin
1322 (method url-fetch)
1323 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1324 (version-major+minor version)
1325 "/gnome-user-docs-" version ".tar.xz"))
1326 (sha256
1327 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1328 (build-system gnu-build-system)
1329 (native-inputs
1330 `(("gettext" ,gettext-minimal)
1331 ("itstool" ,itstool)
1332 ("pkg-config" ,pkg-config)
1333 ("xmllint" ,libxml2)))
1334 (synopsis "User documentation for the GNOME desktop")
1335 (description
1336 "The GNOME User Documentation explains how to use the GNOME desktop and its
1337 components. It covers usage and setup of the core GNOME programs by end-users
1338 and system administrators.")
1339 (home-page "https://live.gnome.org/DocumentationProject")
1340 (license license:cc-by3.0)))
1341
1342 (define-public gnome-getting-started-docs
1343 (package
1344 (name "gnome-getting-started-docs")
1345 (version "3.32.2")
1346 (source
1347 (origin
1348 (method url-fetch)
1349 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1350 (version-major+minor version)
1351 "/gnome-getting-started-docs-" version ".tar.xz"))
1352 (sha256
1353 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1354 (build-system gnu-build-system)
1355 (native-inputs
1356 `(("gettext" ,gettext-minimal)
1357 ("itstool" ,itstool)
1358 ("pkg-config" ,pkg-config)
1359 ("xmllint" ,libxml2)))
1360 (synopsis "Help to get new users started with the GNOME desktop")
1361 (description
1362 "The GNOME Getting Started Documentation contains GNOME's intuitive
1363 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1364
1365 It is normally used together with @command{gnome-initial-setup}, but is also
1366 useful as a tutorial and users' guide for new or less experienced users.")
1367 (home-page "https://live.gnome.org/DocumentationProject")
1368 (license license:cc-by-sa3.0)))
1369
1370 (define-public dia
1371 ;; This version from GNOME's repository includes fixes for compiling with
1372 ;; recent versions of the build tools. The latest activity on the
1373 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1374 ;; fixes since.
1375 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1376 (revision "2"))
1377 (package
1378 (name "dia")
1379 (version (git-version "0.97.3" revision commit))
1380 (source (origin
1381 (method git-fetch)
1382 (uri (git-reference
1383 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1384 (commit commit)))
1385 (file-name (git-file-name name version))
1386 (sha256
1387 (base32
1388 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1389 (build-system meson-build-system)
1390 (inputs
1391 `(("graphene" ,graphene)
1392 ("gtk+" ,gtk+-2)
1393 ("libxml2" ,libxml2)
1394 ("libxslt" ,libxslt)
1395 ("poppler" ,poppler)
1396 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1397 ;; ERROR: Unknown method "dependency" in object.
1398 ("python-2" ,python-2)))
1399 (native-inputs
1400 `(("appstream-glib" ,appstream-glib)
1401 ("docbook-xsl" ,docbook-xsl)
1402 ("glib" ,glib "bin")
1403 ("intltool" ,intltool)
1404 ("pkg-config" ,pkg-config)))
1405 (home-page "https://wiki.gnome.org/Apps/Dia")
1406 (synopsis "Diagram creation for GNOME")
1407 (description "Dia can be used to draw different types of diagrams, and
1408 includes support for UML static structure diagrams (class diagrams), entity
1409 relationship modeling, and network diagrams. The program supports various file
1410 formats like PNG, SVG, PDF and EPS.")
1411 (license license:gpl2+))))
1412
1413 ;; This is the unstable release, but it is required for the current stable
1414 ;; release of gvfs (1.38.1).
1415 (define-public libgdata
1416 (package
1417 (name "libgdata")
1418 (version "0.17.9")
1419 (source (origin
1420 (method url-fetch)
1421 (uri (string-append "mirror://gnome/sources/" name "/"
1422 (version-major+minor version) "/"
1423 name "-" version ".tar.xz"))
1424 (sha256
1425 (base32
1426 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1427 (build-system gnu-build-system)
1428 (arguments
1429 '(#:phases
1430 (modify-phases %standard-phases
1431 (add-before 'check 'disable-failing-tests
1432 (lambda _
1433 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1434 ;; They have been removed in libgdata 0.17.6, so just do the same.
1435 (substitute* "gdata/tests/Makefile"
1436 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1437 #t)))))
1438 (native-inputs
1439 `(("glib:bin" ,glib "bin")
1440 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1441 ("intltool" ,intltool)
1442 ("pkg-config" ,pkg-config)
1443 ("uhttpmock" ,uhttpmock)))
1444 (inputs
1445 `(("cyrus-sasl" ,cyrus-sasl)
1446 ("glib-networking" ,glib-networking)))
1447 (propagated-inputs
1448 `(("gcr" ,gcr)
1449 ("glib" ,glib)
1450 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1451 ("json-glib" ,json-glib)
1452 ("liboauth" ,liboauth)
1453 ("libsoup" ,libsoup)
1454 ("libxml2" ,libxml2)))
1455 (home-page "https://wiki.gnome.org/Projects/libgdata")
1456 (synopsis "Library for accessing online service APIs")
1457 (description
1458 "libgdata is a GLib-based library for accessing online service APIs using
1459 the GData protocol — most notably, Google's services. It provides APIs to
1460 access the common Google services, and has full asynchronous support.")
1461 (license license:lgpl2.1+)))
1462
1463 (define-public libgxps
1464 (package
1465 (name "libgxps")
1466 (version "0.3.1")
1467 (source (origin
1468 (method url-fetch)
1469 (uri (string-append "mirror://gnome/sources/" name "/"
1470 (version-major+minor version) "/"
1471 name "-" version ".tar.xz"))
1472 (sha256
1473 (base32
1474 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1475 (build-system meson-build-system)
1476 (native-inputs
1477 `(("gobject-introspection" ,gobject-introspection)
1478 ("pkg-config" ,pkg-config)))
1479 (inputs
1480 `(("gtk+" ,gtk+)
1481 ("libjpeg" ,libjpeg-turbo)
1482 ("lcms" ,lcms)
1483 ("libtiff" ,libtiff)))
1484 (propagated-inputs
1485 ;; In Requires of libgxps.pc.
1486 `(("cairo" ,cairo)
1487 ("glib" ,glib)
1488 ("libarchive" ,libarchive)))
1489 (home-page "https://wiki.gnome.org/Projects/libgxps")
1490 (synopsis "GObject-based library for handling and rendering XPS documents")
1491 (description
1492 "libgxps is a GObject-based library for handling and rendering XPS
1493 documents. This package also contains binaries that can convert XPS documents
1494 to other formats.")
1495 (license license:lgpl2.1+)))
1496
1497 (define-public gnome-characters
1498 (package
1499 (name "gnome-characters")
1500 (version "3.30.0")
1501 (source
1502 (origin
1503 (method url-fetch)
1504 (uri (string-append "mirror://gnome/sources/"
1505 "gnome-characters/" (version-major+minor version)
1506 "/gnome-characters-" version ".tar.xz"))
1507 (sha256
1508 (base32
1509 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1510 (build-system meson-build-system)
1511 (arguments
1512 `(#:glib-or-gtk? #t
1513 #:phases (modify-phases %standard-phases
1514 (add-after 'install 'wrap
1515 (lambda* (#:key outputs #:allow-other-keys)
1516 ;; GNOME Characters needs Typelib files from GTK and
1517 ;; gnome-desktop.
1518 (wrap-program (string-append (assoc-ref outputs "out")
1519 "/bin/gnome-characters")
1520 `("GI_TYPELIB_PATH" ":" prefix
1521 (,(getenv "GI_TYPELIB_PATH"))))
1522 #t)))))
1523 (native-inputs
1524 `(("gettext" ,gettext-minimal)
1525 ("glib:bin" ,glib "bin")
1526 ("gtk+:bin" ,gtk+ "bin")
1527 ("pkg-config" ,pkg-config)
1528 ("python" ,python-minimal)))
1529 (inputs
1530 `(("gjs" ,gjs)
1531 ("gtk+" ,gtk+)
1532 ("libunistring" ,libunistring)
1533 ("gnome-desktop" ,gnome-desktop)))
1534 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1535 (synopsis "Find and insert unusual characters")
1536 (description "Characters is a simple utility application to find
1537 and insert unusual characters. It allows you to quickly find the
1538 character you are looking for by searching for keywords.")
1539 (license license:bsd-3)))
1540
1541 (define-public gnome-common
1542 (package
1543 (name "gnome-common")
1544 (version "3.18.0")
1545 (source
1546 (origin
1547 (method url-fetch)
1548 (uri (string-append "mirror://gnome/sources/" name "/"
1549 (version-major+minor version) "/"
1550 name "-" version ".tar.xz"))
1551 (sha256
1552 (base32
1553 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1554 (build-system gnu-build-system)
1555 (home-page "https://www.gnome.org/")
1556 (synopsis "Bootstrap GNOME modules built from Git")
1557 (description "gnome-common contains various files needed to bootstrap
1558 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1559 can be used to configure a source directory checked out from Git and some
1560 commonly used macros.")
1561 (license license:gpl2+)))
1562
1563 (define-public gnome-contacts
1564 (package
1565 (name "gnome-contacts")
1566 (version "3.34")
1567 (source (origin
1568 (method url-fetch)
1569 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1570 (version-major+minor version) "/"
1571 name "-" version ".tar.xz"))
1572 (sha256
1573 (base32
1574 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1575 (build-system meson-build-system)
1576 (arguments
1577 `(#:configure-flags '("-Dcheese=false")
1578 #:phases
1579 (modify-phases %standard-phases
1580 (add-after 'unpack 'generate-vapis
1581 (lambda* (#:key inputs #:allow-other-keys)
1582 ;; To generate goa's missing .vapi file
1583 (define goa
1584 (assoc-ref inputs "gnome-online-accounts:lib"))
1585
1586 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1587 "--library=goa-1.0"
1588 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1589 #t))
1590 (add-after 'unpack 'skip-gtk-update-icon-cache
1591 ;; Don't create 'icon-theme.cache'.
1592 (lambda _
1593 (substitute* "build-aux/meson_post_install.py"
1594 (("gtk-update-icon-cache") "true"))
1595 #t)))))
1596 (native-inputs
1597 `(("glib:bin" ,glib "bin")
1598 ("pkg-config" ,pkg-config)))
1599 (inputs
1600 `(("docbook-xml" ,docbook-xml)
1601 ("dockbook-xsl" ,docbook-xsl)
1602 ("evolution-data-server" ,evolution-data-server)
1603 ("gettext" ,gettext-minimal)
1604 ("gnome-desktop" ,gnome-desktop)
1605 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1606 ("gobject-introspection" ,gobject-introspection)
1607 ("gst-plugins-base" ,gst-plugins-base)
1608 ("gtk+" ,gtk+)
1609 ("libgee" ,libgee)
1610 ("libxslt" ,libxslt)
1611 ("telepathy-glib" ,telepathy-glib)
1612 ("vala" ,vala)))
1613 (propagated-inputs
1614 `(("folks", folks)
1615 ("telepathy-mission-control" ,telepathy-mission-control)))
1616 (synopsis "GNOME's integrated address book")
1617 (description
1618 "GNOME Contacts organizes your contact information from online and
1619 offline sources, providing a centralized place for managing your contacts.")
1620 (home-page "https://wiki.gnome.org/Apps/Contacts")
1621 (license license:gpl2+)))
1622
1623 (define-public gnome-desktop
1624 (package
1625 (name "gnome-desktop")
1626 (version "3.34.2")
1627 (source
1628 (origin
1629 (method url-fetch)
1630 (uri (string-append "mirror://gnome/sources/" name "/"
1631 (version-major+minor version) "/"
1632 name "-" version ".tar.xz"))
1633 (sha256
1634 (base32
1635 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
1636 (build-system meson-build-system)
1637 (arguments
1638 '(#:phases
1639 (modify-phases %standard-phases
1640 (add-before 'configure 'patch-path
1641 (lambda* (#:key inputs #:allow-other-keys)
1642 (let ((libc (assoc-ref inputs "libc")))
1643 (substitute* "libgnome-desktop/gnome-languages.c"
1644 (("\"locale\"")
1645 (string-append "\"" libc "/bin/locale\"")))
1646 #t)))
1647 (add-before 'configure 'patch-bubblewrap
1648 (lambda* (#:key inputs #:allow-other-keys)
1649 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
1650 (("\"bwrap\",")
1651 (string-append "\"" (which "bwrap") "\","))
1652 (("\"--ro-bind\", \"/usr\", \"/usr\",")
1653 (string-append "\"--ro-bind\", \""
1654 (%store-directory)
1655 "\", \""
1656 (%store-directory)
1657 "\","))
1658 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
1659 #t))
1660 (add-before 'check 'pre-check
1661 (lambda* (#:key inputs #:allow-other-keys)
1662 ;; Tests require a running X server and locales.
1663 (system "Xvfb :1 &")
1664 (setenv "DISPLAY" ":1")
1665 (setenv "GUIX_LOCPATH"
1666 (string-append (assoc-ref inputs "glibc-locales")
1667 "/lib/locale"))
1668 #t)))))
1669 (native-inputs
1670 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1671 ("glibc-locales" ,glibc-locales) ; for tests
1672 ("gobject-introspection" ,gobject-introspection)
1673 ("itstool" ,itstool)
1674 ("intltool" ,intltool)
1675 ("pkg-config" ,pkg-config)
1676 ("xmllint" ,libxml2)
1677 ("xorg-server" ,xorg-server-for-tests)))
1678 (propagated-inputs
1679 ;; Required by gnome-desktop-3.0.pc.
1680 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1681 ("gtk+" ,gtk+)
1682 ("iso-codes" ,iso-codes)
1683 ("libseccomp" ,libseccomp)
1684 ("libx11" ,libx11)
1685 ("xkeyboard-config" ,xkeyboard-config)))
1686 (inputs
1687 `(("gdk-pixbuf" ,gdk-pixbuf)
1688 ("glib" ,glib)
1689 ("bubblewrap" ,bubblewrap)
1690 ("libxext" ,libxext)
1691 ("libxkbfile" ,libxkbfile)
1692 ("libxrandr" ,libxrandr)))
1693 (home-page "https://www.gnome.org/")
1694 (synopsis
1695 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1696 (description
1697 "The libgnome-desktop library provides API shared by several applications
1698 on the desktop, but that cannot live in the platform for various reasons.
1699 There is no API or ABI guarantee, although we are doing our best to provide
1700 stability. Documentation for the API is available with gtk-doc.
1701
1702 The gnome-about program helps find which version of GNOME is installed.")
1703 ; Some bits under the LGPL.
1704 (license license:gpl2+)))
1705
1706 (define-public gnome-doc-utils
1707 (package
1708 (name "gnome-doc-utils")
1709 (version "0.20.10")
1710 (source
1711 (origin
1712 (method url-fetch)
1713 (uri (string-append "mirror://gnome/sources/" name "/"
1714 (version-major+minor version) "/"
1715 name "-" version ".tar.xz"))
1716 (sha256
1717 (base32
1718 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1719 (build-system gnu-build-system)
1720 (native-inputs
1721 `(("intltool" ,intltool)
1722 ("docbook-xml" ,docbook-xml-4.4)
1723 ("python2-libxml2" ,python2-libxml2)
1724 ("libxml2" ,libxml2)
1725 ("libxslt" ,libxslt)
1726 ("pkg-config" ,pkg-config)
1727 ("python-2" ,python-2)))
1728 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1729 (synopsis
1730 "Documentation utilities for the Gnome project")
1731 (description
1732 "Gnome-doc-utils is a collection of documentation utilities for the
1733 Gnome project. It includes xml2po tool which makes it easier to translate
1734 and keep up to date translations of documentation.")
1735 (license license:gpl2+))) ; xslt under lgpl
1736
1737 (define-public gnome-disk-utility
1738 (package
1739 (name "gnome-disk-utility")
1740 (version "3.34.0")
1741 (source (origin
1742 (method url-fetch)
1743 (uri (string-append "mirror://gnome/sources/" name "/"
1744 (version-major+minor version) "/"
1745 name "-" version ".tar.xz"))
1746 (sha256
1747 (base32
1748 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
1749 (build-system meson-build-system)
1750 (arguments
1751 '(#:configure-flags '("-Dlogind=libelogind")
1752 #:phases
1753 (modify-phases %standard-phases
1754 (add-after 'unpack 'skip-gtk-update-icon-cache
1755 ;; Don't create 'icon-theme.cache'.
1756 (lambda _
1757 (substitute* "meson_post_install.py"
1758 (("gtk-update-icon-cache") "true"))
1759 #t)))))
1760 (native-inputs
1761 `(("glib:bin" ,glib "bin")
1762 ("intltool" ,intltool)
1763 ("pkg-config" ,pkg-config)
1764 ("docbook-xml" ,docbook-xml)
1765 ("docbook-xsl" ,docbook-xsl)
1766 ("libxml2" ,libxml2)
1767 ("libxslt" ,libxslt)))
1768 (inputs
1769 `(("elogind" ,elogind)
1770 ("glib" ,glib)
1771 ("appstream-glib" ,appstream-glib)
1772 ("gnome-settings-daemon" ,gnome-settings-daemon)
1773 ("gtk+" ,gtk+)
1774 ("libcanberra" ,libcanberra)
1775 ("libdvdread" ,libdvdread)
1776 ("libnotify" ,libnotify)
1777 ("libpwquality" ,libpwquality)
1778 ("libsecret" ,libsecret)
1779 ("udisks" ,udisks)))
1780 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1781 (synopsis "Disk management utility for GNOME")
1782 (description "Disk management utility for GNOME.")
1783 (license license:gpl2+)))
1784
1785 (define-public gnome-font-viewer
1786 (package
1787 (name "gnome-font-viewer")
1788 (version "3.30.0")
1789 (source (origin
1790 (method url-fetch)
1791 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1792 (version-major+minor version)
1793 "/gnome-font-viewer-" version ".tar.xz"))
1794 (sha256
1795 (base32
1796 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1797 (build-system meson-build-system)
1798 (arguments
1799 '(#:phases
1800 (modify-phases %standard-phases
1801 (add-after 'unpack 'patch-post-install-script
1802 (lambda _
1803 (substitute* "meson-postinstall.sh"
1804 (("update-desktop-database") (which "true")))
1805 #t)))))
1806 (native-inputs
1807 `(("gettext" ,gettext-minimal)
1808 ("glib:bin" ,glib "bin")
1809 ("pkg-config" ,pkg-config)))
1810 (inputs
1811 `(("glib" ,glib)
1812 ("gnome-desktop" ,gnome-desktop)
1813 ("gtk+" ,gtk+)))
1814 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1815 (synopsis "GNOME Fonts")
1816 (description "Application to show you the fonts installed on your computer
1817 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1818 the font would look under various sizes.")
1819 (license license:gpl2+)))
1820
1821 (define-public gcr
1822 (package
1823 (name "gcr")
1824 (version "3.34.0")
1825 (source (origin
1826 (method url-fetch)
1827 (uri (string-append "mirror://gnome/sources/" name "/"
1828 (version-major+minor version) "/"
1829 name "-" version ".tar.xz"))
1830 (sha256
1831 (base32
1832 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
1833 (build-system gnu-build-system)
1834 (arguments
1835 '(#:phases
1836 (modify-phases %standard-phases
1837 ;; These fail because /var/lib/dbus/machine-id is not present in the
1838 ;; build environment.
1839 (add-after 'unpack 'disable-failing-tests
1840 (lambda _
1841 (substitute* "Makefile.in"
1842 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1843 ""))
1844 #t))
1845 (add-before 'check 'pre-check
1846 (lambda _
1847 ;; Some tests expect to write to $HOME.
1848 (setenv "HOME" "/tmp")
1849 #t)))))
1850 (inputs
1851 `(("dbus" ,dbus)
1852 ("gnupg" ,gnupg) ;called as a child process during tests
1853 ("libgcrypt" ,libgcrypt)))
1854 (native-inputs
1855 `(("python" ,python-wrapper) ;for tests
1856 ("pkg-config" ,pkg-config)
1857 ("gettext" ,gettext-minimal)
1858 ("glib" ,glib "bin")
1859 ("gobject-introspection" ,gobject-introspection)
1860 ("libxml2" ,libxml2)
1861 ("vala" ,vala)
1862 ("xsltproc" ,libxslt)))
1863 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1864 (propagated-inputs
1865 `(("p11-kit" ,p11-kit)
1866 ("glib" ,glib)
1867 ("gtk+" ,gtk+)))
1868 (home-page "https://www.gnome.org")
1869 (synopsis "Libraries for displaying certificates and accessing key stores")
1870 (description
1871 "The GCR package contains libraries used for displaying certificates and
1872 accessing key stores. It also provides the viewer for crypto files on the
1873 GNOME Desktop.")
1874 (license license:lgpl2.1+)))
1875
1876 (define-public gdl
1877 (package
1878 (name "gdl")
1879 (version "3.34.0")
1880 (source (origin
1881 (method git-fetch)
1882 (uri (git-reference
1883 (url "https://gitlab.gnome.org/GNOME/gdl.git")
1884 (commit (string-append "GDL_" (string-map (match-lambda
1885 (#\. #\_)
1886 (c c))
1887 version)))))
1888 (file-name (git-file-name name version))
1889 (sha256
1890 (base32
1891 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
1892 (build-system gnu-build-system)
1893 (native-inputs
1894 `(("autoconf" ,autoconf)
1895 ("automake" ,automake)
1896 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1897 ("gnome-common" ,gnome-common)
1898 ("gtk-doc" ,gtk-doc)
1899 ("intltool" ,intltool)
1900 ("pkg-config" ,pkg-config)
1901 ("libtool" ,libtool)
1902 ("which" ,which)))
1903 (inputs
1904 `(("libxml2" ,libxml2)))
1905 (propagated-inputs
1906 ;; The gdl-3.0.pc file 'Requires' GTK+.
1907 `(("gtk+" ,gtk+)))
1908 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
1909 (synopsis "GNOME docking library")
1910 (description "This library provides docking features for gtk+.")
1911 (license license:lgpl2.1+)))
1912
1913 ;;; A minimal variant used to break a cycle with Inkscape.
1914 (define-public gdl-minimal
1915 (package
1916 (inherit gdl)
1917 (name "gdl-minimal")
1918 (arguments
1919 '(#:phases
1920 (modify-phases %standard-phases
1921 (add-after 'unpack 'disable-doc-generation
1922 ;; XXX: There is no easy way to disable generating the
1923 ;; documentation.
1924 (lambda _
1925 (substitute* "configure.in"
1926 (("GTK_DOC_CHECK.*") "")
1927 (("docs/.*") ""))
1928 (substitute* "Makefile.am"
1929 (("gdl docs po") "gdl po"))
1930 #t)))))
1931 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
1932
1933 (define-public libgnome-keyring
1934 (package
1935 (name "libgnome-keyring")
1936 (version "3.12.0")
1937 (source (origin
1938 (method url-fetch)
1939 (uri (string-append "mirror://gnome/sources/" name "/"
1940 (version-major+minor version) "/"
1941 name "-" version ".tar.xz"))
1942 (sha256
1943 (base32
1944 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1945 (build-system gnu-build-system)
1946 (inputs
1947 `(("libgcrypt" ,libgcrypt)
1948 ("dbus" ,dbus)))
1949 (native-inputs
1950 `(("pkg-config" ,pkg-config)
1951 ("glib" ,glib "bin")
1952 ("intltool" ,intltool)))
1953 (propagated-inputs
1954 ;; Referred to in .h files and .pc.
1955 `(("glib" ,glib)))
1956 (home-page "https://www.gnome.org")
1957 (synopsis "Accessing passwords from the GNOME keyring")
1958 (description
1959 "Client library to access passwords from the GNOME keyring.")
1960
1961 ;; Though a couple of files are LGPLv2.1+.
1962 (license license:lgpl2.0+)))
1963
1964 (define-public gnome-keyring
1965 (package
1966 (name "gnome-keyring")
1967 (version "3.34.0")
1968 (source (origin
1969 (method url-fetch)
1970 (uri (string-append "mirror://gnome/sources/" name "/"
1971 (version-major+minor version) "/"
1972 name "-" version ".tar.xz"))
1973 (sha256
1974 (base32
1975 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
1976 (build-system gnu-build-system)
1977 (arguments
1978 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1979 ;not exist
1980 #:configure-flags
1981 (list
1982 (string-append "--with-pkcs11-config="
1983 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1984 (string-append "--with-pkcs11-modules="
1985 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1986 #:phases
1987 (modify-phases %standard-phases
1988 (add-after 'unpack 'fix-/bin/sh-reference
1989 (lambda _
1990 (substitute* "po/Makefile.in.in"
1991 (("/bin/sh") (which "sh")))
1992 #t))
1993 (add-after 'unpack 'fix-docbook
1994 (lambda* (#:key inputs #:allow-other-keys)
1995 (substitute* "docs/Makefile.am"
1996 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1997 (string-append (assoc-ref inputs "docbook-xsl")
1998 "/xml/xsl/docbook-xsl-"
1999 ,(package-version docbook-xsl)
2000 "/manpages/docbook.xsl")))
2001 (setenv "XML_CATALOG_FILES"
2002 (string-append (assoc-ref inputs "docbook-xml")
2003 "/xml/dtd/docbook/catalog.xml"))
2004 ;; Rerun the whole thing to avoid version mismatch ("This is
2005 ;; Automake 1.15.1, but the definition used by this
2006 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
2007 ;; use 'autoreconf' because it insists on running 'libtoolize'.
2008 (invoke "autoconf")
2009 (invoke "aclocal")
2010 (invoke "automake" "-ac"))))))
2011 (inputs
2012 `(("libgcrypt" ,libgcrypt)
2013 ("linux-pam" ,linux-pam)
2014 ("openssh" ,openssh)
2015 ("dbus" ,dbus)
2016 ("gcr" ,gcr)))
2017 (native-inputs
2018 `(("pkg-config" ,pkg-config)
2019 ("glib" ,glib "bin")
2020 ("glib" ,glib) ; for m4 macros
2021 ("python" ,python-2) ;for tests
2022 ("intltool" ,intltool)
2023 ("autoconf" ,autoconf)
2024 ("automake" ,automake)
2025 ("libxslt" ,libxslt) ;for documentation
2026 ("docbook-xml" ,docbook-xml-4.2)
2027 ("docbook-xsl" ,docbook-xsl)))
2028 (home-page "https://www.gnome.org")
2029 (synopsis "Daemon to store passwords and encryption keys")
2030 (description
2031 "gnome-keyring is a program that keeps passwords and other secrets for
2032 users. It is run as a daemon in the session, similar to ssh-agent, and other
2033 applications locate it via an environment variable or D-Bus.
2034
2035 The program can manage several keyrings, each with its own master password,
2036 and there is also a session keyring which is never stored to disk, but
2037 forgotten when the session ends.")
2038 (license license:lgpl2.1+)))
2039
2040 (define-public evince
2041 (package
2042 (name "evince")
2043 (version "3.36.5")
2044 (source (origin
2045 (method url-fetch)
2046 (uri (string-append "mirror://gnome/sources/evince/"
2047 (version-major+minor version) "/"
2048 "evince-" version ".tar.xz"))
2049 (sha256
2050 (base32
2051 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
2052 (build-system glib-or-gtk-build-system)
2053 (arguments
2054 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
2055 #:phases
2056 (modify-phases %standard-phases
2057 (add-before 'install 'skip-gtk-update-icon-cache
2058 ;; Don't create 'icon-theme.cache'.
2059 (lambda _
2060 (substitute* "data/Makefile"
2061 (("gtk-update-icon-cache") "true"))
2062 #t)))))
2063 (inputs
2064 `(("libarchive" ,libarchive)
2065 ("libgxps" ,libgxps)
2066 ("libspectre" ,libspectre)
2067 ("djvulibre" ,djvulibre)
2068 ("ghostscript" ,ghostscript)
2069 ("poppler" ,poppler)
2070 ("libtiff" ,libtiff)
2071 ;; TODO:
2072 ;; Build libkpathsea as a shared library for DVI support.
2073 ;; ("libkpathsea" ,texlive-bin)
2074 ("gnome-desktop" ,gnome-desktop)
2075 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2076 ("gspell" ,gspell)
2077 ("libgnome-keyring" ,libgnome-keyring)
2078 ("adwaita-icon-theme" ,adwaita-icon-theme)
2079 ("gdk-pixbuf" ,gdk-pixbuf)
2080 ("atk" ,atk)
2081 ("pango" ,pango)
2082 ("gtk+" ,gtk+)
2083 ("glib" ,glib)
2084 ("libxml2" ,libxml2)
2085 ("libsm" ,libsm)
2086 ("libice" ,libice)
2087 ("shared-mime-info" ,shared-mime-info)
2088 ("dconf" ,dconf)
2089 ("libcanberra" ,libcanberra)
2090 ("libsecret" ,libsecret)
2091
2092 ;; For tests.
2093 ("dogtail" ,python2-dogtail)))
2094 (native-inputs
2095 `(("itstool" ,itstool)
2096 ("intltool" ,intltool)
2097 ("glib" ,glib "bin")
2098 ("gobject-introspection" ,gobject-introspection)
2099 ("pkg-config" ,pkg-config)
2100 ("xmllint" ,libxml2)))
2101 (home-page "https://www.gnome.org/projects/evince/")
2102 (synopsis "GNOME's document viewer")
2103 (description
2104 "Evince is a document viewer for multiple document formats. It
2105 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2106 of Evince is to replace the multiple document viewers that exist
2107 on the GNOME Desktop with a single simple application.")
2108 (license license:gpl2+)))
2109
2110 (define-public gsettings-desktop-schemas
2111 (package
2112 (name "gsettings-desktop-schemas")
2113 (version "3.34.0")
2114 (source
2115 (origin
2116 (method url-fetch)
2117 (uri (string-append "mirror://gnome/sources/" name "/"
2118 (version-major+minor version) "/"
2119 name "-" version ".tar.xz"))
2120 (sha256
2121 (base32
2122 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
2123 (build-system meson-build-system)
2124 (arguments
2125 '(#:phases (modify-phases %standard-phases
2126 (add-after 'unpack 'patch-schemas
2127 (lambda* (#:key inputs #:allow-other-keys)
2128 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
2129 (substitute* (find-files "schemas"
2130 "\\.gschema\\.xml\\.in$")
2131 ;; Provide the correct file name of the default GNOME
2132 ;; background, 'adwaita-timed.xml'.
2133 (("@datadir@/backgrounds/gnome")
2134 (string-append theme "/share/backgrounds/gnome"))
2135 ;; Do not reference fonts, that may not exist.
2136 (("'Source Code Pro 10'") "'Monospace 11'"))
2137 #t))))))
2138 (inputs
2139 `(("glib" ,glib)
2140 ("gnome-backgrounds" ,gnome-backgrounds)))
2141 (native-inputs
2142 `(("intltool" ,intltool)
2143 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
2144 ("gobject-introspection" ,gobject-introspection)
2145 ("pkg-config" ,pkg-config)))
2146 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2147 (synopsis
2148 "GNOME settings for various desktop components")
2149 (description
2150 "Gsettings-desktop-schemas contains a collection of GSettings schemas
2151 for settings shared by various components of the GNOME desktop.")
2152 (license license:lgpl2.1+)))
2153
2154 (define-public icon-naming-utils
2155 (package
2156 (name "icon-naming-utils")
2157 (version "0.8.90")
2158 (source
2159 (origin
2160 (method url-fetch)
2161 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2162 version ".tar.bz2"))
2163 (sha256
2164 (base32
2165 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2166 (build-system gnu-build-system)
2167 (inputs
2168 `(("perl" ,perl)
2169 ("perl-xml-simple" ,perl-xml-simple)))
2170 (arguments
2171 '(#:phases
2172 (modify-phases %standard-phases
2173 (add-after 'install 'set-load-paths
2174 ;; Tell 'icon-name-mapping' where XML::Simple is.
2175 (lambda* (#:key outputs #:allow-other-keys)
2176 (let* ((out (assoc-ref outputs "out"))
2177 (prog (string-append out "/libexec/icon-name-mapping")))
2178 (wrap-program
2179 prog
2180 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2181 #t)))))
2182 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2183 (synopsis
2184 "Utility to implement the Freedesktop Icon Naming Specification")
2185 (description
2186 "To help with the transition to the Freedesktop Icon Naming
2187 Specification, the icon naming utility maps the icon names used by the
2188 GNOME and KDE desktops to the icon names proposed in the specification.")
2189 (license license:lgpl2.1+)))
2190
2191 (define-public gnome-icon-theme
2192 (package
2193 (name "gnome-icon-theme")
2194 (version "3.12.0")
2195 (source
2196 (origin
2197 (method url-fetch)
2198 (uri (string-append "mirror://gnome/sources/" name "/"
2199 (version-major+minor version) "/"
2200 name "-" version ".tar.xz"))
2201 (sha256
2202 (base32
2203 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2204 (build-system gnu-build-system)
2205 (arguments
2206 '(#:configure-flags
2207 ;; Don't create 'icon-theme.cache'.
2208 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2209 (true (string-append coreutils "/bin/true")))
2210 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2211 (native-inputs
2212 `(("icon-naming-utils" ,icon-naming-utils)
2213 ("intltool" ,intltool)
2214 ("pkg-config" ,pkg-config)))
2215 (home-page "https://wiki.gnome.org/Personalization")
2216 (synopsis "GNOME icon theme")
2217 (description "Icons for the GNOME desktop.")
2218 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2219
2220 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2221 (define-public adwaita-icon-theme
2222 (package (inherit gnome-icon-theme)
2223 (name "adwaita-icon-theme")
2224 (version "3.34.3")
2225 (source (origin
2226 (method url-fetch)
2227 (uri (string-append "mirror://gnome/sources/" name "/"
2228 (version-major+minor version) "/"
2229 name "-" version ".tar.xz"))
2230 (sha256
2231 (base32
2232 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2233 (native-inputs
2234 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2235
2236 (define-public tango-icon-theme
2237 (package
2238 (name "tango-icon-theme")
2239 (version "0.8.90")
2240 (source (origin
2241 (method url-fetch)
2242 (uri (string-append "http://tango.freedesktop.org/releases/"
2243 "tango-icon-theme-" version ".tar.bz2"))
2244 (sha256
2245 (base32
2246 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2247 (build-system gnu-build-system)
2248 (native-inputs
2249 `(("icon-naming-utils" ,icon-naming-utils)
2250 ("intltool" ,intltool)
2251 ("imagemagick" ,imagemagick)
2252 ("pkg-config" ,pkg-config)))
2253 (home-page "http://tango-project.org/")
2254 (synopsis "Tango icon theme")
2255 (description "This is an icon theme that follows the Tango visual
2256 guidelines.")
2257 (license license:public-domain)))
2258
2259 (define-public shared-mime-info
2260 (package
2261 (name "shared-mime-info")
2262 (version "1.15")
2263 (source (origin
2264 (method url-fetch)
2265 (uri (string-append
2266 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2267 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2268 ".tar.xz"))
2269 (sha256
2270 (base32
2271 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2272 (build-system gnu-build-system)
2273 (arguments
2274 ;; The build system appears not to be parallel-safe.
2275 '(#:parallel-build? #f))
2276 (inputs
2277 `(("glib" ,glib)
2278 ("libxml2" ,libxml2)))
2279 (native-inputs
2280 `(("gettext" ,gettext-minimal)
2281 ("itstool" ,itstool)
2282 ("pkg-config" ,pkg-config)))
2283 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2284 (synopsis "Database of common MIME types")
2285 (description
2286 "The shared-mime-info package contains the core database of common types
2287 and the update-mime-database command used to extend it. It requires glib2 to
2288 be installed for building the update command. Additionally, it uses intltool
2289 for translations, though this is only a dependency for the maintainers. This
2290 database is translated at Transifex.")
2291 (license license:gpl2+)))
2292
2293 (define-public system-config-printer
2294 (package
2295 (name "system-config-printer")
2296 (version "1.5.12")
2297 (source
2298 (origin
2299 (method url-fetch)
2300 (uri (string-append
2301 "https://github.com/OpenPrinting/system-config-printer/releases/"
2302 "download/" version
2303 "/system-config-printer-" version ".tar.xz"))
2304 (sha256
2305 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
2306 (build-system glib-or-gtk-build-system)
2307 (arguments
2308 `(#:imported-modules ((guix build python-build-system)
2309 ,@%glib-or-gtk-build-system-modules)
2310 #:phases
2311 (modify-phases %standard-phases
2312 (add-after 'unpack 'patch-Makefile.am
2313 (lambda _
2314 ;; The Makefile generates some scripts, so set a valid shebang
2315 (substitute* "Makefile.am"
2316 (("/bin/bash") (which "bash")))
2317 (delete-file "configure")
2318 #t))
2319 (add-after 'unpack 'patch-docbook-xml
2320 (lambda* (#:key inputs #:allow-other-keys)
2321 ;; Modify the man XML otherwise xmlto tries to access the network
2322 (substitute* "man/system-config-printer.xml"
2323 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2324 (string-append (assoc-ref inputs "docbook-xml")
2325 "/xml/dtd/docbook/")))
2326 #t))
2327 (add-after 'install 'wrap-for-python
2328 (@@ (guix build python-build-system) wrap))
2329 (add-after 'install 'wrap
2330 (lambda* (#:key outputs #:allow-other-keys)
2331 (let ((out (assoc-ref outputs "out"))
2332 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2333 (for-each
2334 (lambda (program)
2335 (wrap-program program
2336 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2337 (map (lambda (name)
2338 (string-append out "/bin/" name))
2339 '("system-config-printer"
2340 "system-config-printer-applet"
2341 "install-printerdriver"
2342 "scp-dbus-service"))))
2343 #t)))))
2344 (inputs
2345 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2346 ("gobject-introspection" ,gobject-introspection)
2347 ("python" ,python)
2348 ("cups" ,cups)
2349 ("gtk+" ,gtk+)
2350 ("python-dbus" ,python-dbus)
2351 ("python-pygobject" ,python-pygobject)
2352 ("python-pycups" ,python-pycups)
2353 ("python-requests" ,python-requests)
2354 ("python-pycairo" ,python-pycairo)
2355 ("libnotify" ,libnotify)
2356 ("packagekit" ,packagekit)))
2357 (native-inputs
2358 `(("pkg-config" ,pkg-config)
2359 ("desktop-file-utils" ,desktop-file-utils)
2360 ("glib" ,glib)
2361 ("autoconf" ,autoconf)
2362 ("automake" ,automake)
2363 ("intltool" ,intltool)
2364 ("xmlto" ,xmlto)
2365 ("docbook-xml" ,docbook-xml-4.1.2)
2366 ("docbook-xsl" ,docbook-xsl)
2367 ("libxml2" ,libxml2)))
2368 (home-page "https://github.com/zdohnal/system-config-printer")
2369 (synopsis "CUPS administration tool")
2370 (description
2371 "system-config-printer is a CUPS administration tool. It's written in
2372 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2373 configuring CUPS.")
2374 (license license:gpl2+)))
2375
2376 (define-public hicolor-icon-theme
2377 (package
2378 (name "hicolor-icon-theme")
2379 (version "0.17")
2380 (source
2381 (origin
2382 (method url-fetch)
2383 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2384 "hicolor-icon-theme-" version ".tar.xz"))
2385 (sha256
2386 (base32
2387 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2388 (build-system gnu-build-system)
2389 (arguments
2390 `(#:tests? #f)) ; no check target
2391 (home-page "https://icon-theme.freedesktop.org/releases/")
2392 (synopsis
2393 "Freedesktop icon theme")
2394 (description
2395 "Freedesktop icon theme.")
2396 (license license:gpl2)))
2397
2398 (define-public libnotify
2399 (package
2400 (name "libnotify")
2401 (version "0.7.7")
2402 (source
2403 (origin
2404 (method url-fetch)
2405 (uri (string-append "mirror://gnome/sources/" name "/"
2406 (version-major+minor version) "/"
2407 name "-" version ".tar.xz"))
2408 (sha256
2409 (base32
2410 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2411 (build-system gnu-build-system)
2412 (arguments
2413 `(#:configure-flags '("--disable-static")))
2414 (propagated-inputs
2415 `(;; In Requires of libnotify.pc.
2416 ("gdk-pixbuf" ,gdk-pixbuf)
2417 ("glib" ,glib)))
2418 (inputs
2419 `(("gtk+" ,gtk+)
2420 ("libpng" ,libpng)))
2421 (native-inputs
2422 `(("pkg-config" ,pkg-config)
2423 ("glib" ,glib "bin")
2424 ("gobject-introspection" ,gobject-introspection)))
2425 (home-page "https://developer-next.gnome.org/libnotify/")
2426 (synopsis
2427 "GNOME desktop notification library")
2428 (description
2429 "Libnotify is a library that sends desktop notifications to a
2430 notification daemon, as defined in the Desktop Notifications spec. These
2431 notifications can be used to inform the user about an event or display
2432 some form of information without getting in the user's way.")
2433 (license license:lgpl2.1+)))
2434
2435 (define-public libpeas
2436 (package
2437 (name "libpeas")
2438 (version "1.24.1")
2439 (source
2440 (origin
2441 (method url-fetch)
2442 (uri (string-append "mirror://gnome/sources/" name "/"
2443 (version-major+minor version) "/"
2444 name "-" version ".tar.xz"))
2445 (sha256
2446 (base32
2447 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2448 (build-system meson-build-system)
2449 (arguments
2450 '(#:phases
2451 (modify-phases %standard-phases
2452 (add-before 'check 'start-xserver
2453 (lambda* (#:key inputs #:allow-other-keys)
2454 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2455 (disp ":1"))
2456 (setenv "DISPLAY" disp)
2457 ;; Tests require a running X server.
2458 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2459 #t))))))
2460 (inputs
2461 `(("gtk+" ,gtk+)
2462 ("glade" ,glade3)
2463 ("python" ,python)
2464 ("python-pygobject" ,python-pygobject)))
2465 (native-inputs
2466 `(("pkg-config" ,pkg-config)
2467 ("gettext" ,gettext-minimal)
2468 ("glib:bin" ,glib "bin")
2469 ("gobject-introspection" ,gobject-introspection)
2470 ("xorg-server" ,xorg-server-for-tests)))
2471 (propagated-inputs
2472 ;; The .pc file "Requires" gobject-introspection.
2473 `(("gobject-introspection" ,gobject-introspection)))
2474 (home-page "https://wiki.gnome.org/Libpeas")
2475 (synopsis "GObject plugin system")
2476 (description
2477 "Libpeas is a gobject-based plugin engine, targeted at giving every
2478 application the chance to assume its own extensibility. It also has a set of
2479 features including, but not limited to: multiple extension points; on-demand
2480 (lazy) programming language support for C, Python and JS; simplicity of the
2481 API.")
2482 (license license:lgpl2.0+)))
2483
2484 (define-public gtkglext
2485 (package
2486 (name "gtkglext")
2487 (version "1.2.0")
2488 (source (origin
2489 (method url-fetch)
2490 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2491 version "/gtkglext-" version ".tar.gz"))
2492 (sha256
2493 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2494 (patches (search-patches
2495 "gtkglext-disable-disable-deprecated.patch"))))
2496 (build-system gnu-build-system)
2497 (arguments
2498 `(#:phases
2499 (modify-phases %standard-phases
2500 ;; Fix a collision between a local variable and a definition from
2501 ;; glibc's string.h.
2502 (add-after 'unpack 'fix-collision
2503 (lambda _
2504 (substitute* "gdk/gdkglshapes.c"
2505 ((" index") " triangle_index"))
2506 #t)))))
2507 (inputs `(("gtk+" ,gtk+-2)
2508 ("mesa" ,mesa)
2509 ("glu" ,glu)
2510 ("libx11" ,libx11)
2511 ("libxt" ,libxt)))
2512 (native-inputs `(("pkg-config" ,pkg-config)
2513 ("glib" ,glib "bin")))
2514 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2515 (home-page "https://projects.gnome.org/gtkglext")
2516 (synopsis "OpenGL extension to GTK+")
2517 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2518 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2519 API add-ons to make GTK+ widgets OpenGL-capable.")
2520 (license license:lgpl2.1+)))
2521
2522 (define-public glade3
2523 (package
2524 (name "glade")
2525 (version "3.36.0")
2526 (source (origin
2527 (method url-fetch)
2528 (uri (string-append "mirror://gnome/sources/" name "/"
2529 (version-major+minor version) "/"
2530 name "-" version ".tar.xz"))
2531 (sha256
2532 (base32
2533 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
2534 (build-system glib-or-gtk-build-system)
2535 (arguments
2536 `(#:phases
2537 (modify-phases %standard-phases
2538 (add-before 'configure 'fix-docbook
2539 (lambda* (#:key inputs #:allow-other-keys)
2540 (substitute* "man/Makefile.in"
2541 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2542 (string-append (assoc-ref inputs "docbook-xsl")
2543 "/xml/xsl/docbook-xsl-"
2544 ,(package-version docbook-xsl)
2545 "/manpages/docbook.xsl")))
2546 #t))
2547 (add-before 'check 'pre-check
2548 (lambda _
2549 (setenv "HOME" "/tmp")
2550 ;; Tests require a running X server.
2551 (system "Xvfb :1 &")
2552 (setenv "DISPLAY" ":1")
2553 #t)))))
2554 (inputs
2555 `(("gtk+" ,gtk+)
2556 ("libxml2" ,libxml2)))
2557 (native-inputs
2558 `(("hicolor-icon-theme" ,hicolor-icon-theme)
2559 ("intltool" ,intltool)
2560 ("itstool" ,itstool)
2561 ("libxslt" ,libxslt) ;for xsltproc
2562 ("docbook-xml" ,docbook-xml-4.2)
2563 ("docbook-xsl" ,docbook-xsl)
2564 ("python" ,python-2)
2565 ("pkg-config" ,pkg-config)
2566 ("xorg-server" ,xorg-server-for-tests)))
2567 (home-page "https://glade.gnome.org")
2568 (synopsis "GTK+ rapid application development tool")
2569 (description "Glade is a rapid application development (RAD) tool to
2570 enable quick & easy development of user interfaces for the GTK+ toolkit and
2571 the GNOME desktop environment.")
2572 (license license:lgpl2.0+)))
2573
2574 (define-public libcroco
2575 (package
2576 (name "libcroco")
2577 (version "0.6.13")
2578 (source (origin
2579 (method url-fetch)
2580 (uri (string-append "mirror://gnome/sources/" name "/"
2581 (version-major+minor version) "/"
2582 name "-" version ".tar.xz"))
2583 (sha256
2584 (base32
2585 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2586 (build-system gnu-build-system)
2587 (native-inputs
2588 `(("pkg-config" ,pkg-config)))
2589 (inputs
2590 `(("glib" ,glib)
2591 ("libxml2" ,libxml2)
2592 ("zlib" ,zlib)))
2593 (home-page "https://github.com/GNOME/libcroco")
2594 (synopsis "CSS2 parsing and manipulation library")
2595 (description
2596 "Libcroco is a standalone CSS2 parsing and manipulation library.
2597 The parser provides a low level event driven SAC-like API and a CSS object
2598 model like API. Libcroco provides a CSS2 selection engine and an experimental
2599 XML/CSS rendering engine.")
2600
2601 ;; LGPLv2.1-only.
2602 (license license:lgpl2.1)))
2603
2604 (define-public libgsf
2605 (package
2606 (name "libgsf")
2607 (version "1.14.47")
2608 (source (origin
2609 (method url-fetch)
2610 (uri (string-append "mirror://gnome/sources/" name "/"
2611 (version-major+minor version) "/"
2612 name "-" version ".tar.xz"))
2613 (sha256
2614 (base32
2615 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
2616 (build-system gnu-build-system)
2617 (arguments
2618 '(#:configure-flags '("--disable-static")))
2619 (native-inputs
2620 `(("pkg-config" ,pkg-config)
2621 ("gettext" ,gettext-minimal)
2622
2623 ;; For tests.
2624 ("perl" ,perl)
2625 ("perl-xml-parser" ,perl-xml-parser)))
2626 (inputs
2627 `(("zlib" ,zlib)
2628 ("bzip2" ,bzip2)))
2629 (propagated-inputs
2630 `(("gdk-pixbuf" ,gdk-pixbuf)
2631 ("glib" ,glib)
2632 ("libxml2" ,libxml2)))
2633 (home-page "https://www.gnome.org/projects/libgsf")
2634 (synopsis "GNOME's Structured File Library")
2635 (description
2636 "Libgsf aims to provide an efficient extensible I/O abstraction for
2637 dealing with different structured file formats.")
2638
2639 ;; LGPLv2.1-only.
2640 (license license:lgpl2.1)))
2641
2642 (define-public librsvg
2643 (package
2644 (name "librsvg")
2645 (version "2.40.21")
2646 (source (origin
2647 (method url-fetch)
2648 (uri (string-append "mirror://gnome/sources/" name "/"
2649 (version-major+minor version) "/"
2650 name "-" version ".tar.xz"))
2651 (sha256
2652 (base32
2653 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
2654 (build-system gnu-build-system)
2655 (arguments
2656 `(#:configure-flags
2657 (list "--disable-static"
2658 "--enable-vala") ; needed for e.g. gnome-mines
2659 #:phases
2660 (modify-phases %standard-phases
2661 (add-before 'configure 'pre-configure
2662 (lambda* (#:key inputs #:allow-other-keys)
2663 (substitute* "gdk-pixbuf-loader/Makefile.in"
2664 ;; By default the gdk-pixbuf loader is installed under
2665 ;; gdk-pixbuf's prefix. Work around that.
2666 (("gdk_pixbuf_moduledir = .*$")
2667 (string-append "gdk_pixbuf_moduledir = "
2668 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2669 "loaders\n"))
2670 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2671 (("gdk_pixbuf_cache_file = .*$")
2672 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2673 #t))
2674 (add-before 'check 'remove-failing-tests
2675 (lambda _
2676 (with-directory-excursion "tests/fixtures/reftests"
2677 (for-each delete-file
2678 '(;; This test fails on i686:
2679 "svg1.1/masking-path-04-b.svg"
2680 ;; This test fails on armhf:
2681 "svg1.1/masking-mask-01-b.svg"
2682 ;; This test fails on aarch64:
2683 "bugs/777834-empty-text-children.svg")))
2684 #t)))))
2685 (native-inputs
2686 `(("pkg-config" ,pkg-config)
2687 ("vala" ,vala)
2688 ("glib" ,glib "bin") ; glib-mkenums, etc.
2689 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2690 (inputs
2691 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2692 ;; this ancient version of librsvg.
2693 ("pango" ,pango-1.42)
2694 ("libcroco" ,libcroco)
2695 ("bzip2" ,bzip2)
2696 ("libgsf" ,libgsf)
2697 ("libxml2" ,libxml2)))
2698 (propagated-inputs
2699 ;; librsvg-2.0.pc refers to all of that.
2700 `(("cairo" ,cairo)
2701 ("gdk-pixbuf" ,gdk-pixbuf)
2702 ("glib" ,glib)))
2703 (home-page "https://wiki.gnome.org/LibRsvg")
2704 (synopsis "Render SVG files using Cairo")
2705 (description
2706 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2707 library.")
2708 (license license:lgpl2.0+)))
2709
2710 (define-public librsvg-next
2711 (package
2712 (inherit librsvg)
2713 (name "librsvg")
2714 (version "2.48.8")
2715 (source (origin
2716 (method url-fetch)
2717 (uri (string-append "mirror://gnome/sources/librsvg/"
2718 (version-major+minor version) "/"
2719 "librsvg-" version ".tar.xz"))
2720 (sha256
2721 (base32
2722 "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l"))
2723 (modules '((guix build utils)))
2724 (snippet
2725 '(begin (delete-file-recursively "vendor")
2726 #t))))
2727 (build-system cargo-build-system)
2728 (arguments
2729 `(#:modules ((guix build cargo-build-system)
2730 (guix build utils)
2731 ((guix build gnu-build-system) #:prefix gnu:))
2732 #:vendor-dir "vendor"
2733 #:cargo-inputs
2734 (("rust-bitflags" ,rust-bitflags-1)
2735 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
2736 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2737 ("rust-cast" ,rust-cast-0.2)
2738 ("rust-cssparser" ,rust-cssparser-0.27)
2739 ("rust-data-url" ,rust-data-url-0.1)
2740 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2741 ("rust-encoding" ,rust-encoding-0.2)
2742 ("rust-float-cmp" ,rust-float-cmp-0.6)
2743 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
2744 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2745 ("rust-gio" ,rust-gio-0.8)
2746 ("rust-gio-sys" ,rust-gio-sys-0.9)
2747 ("rust-glib" ,rust-glib-0.9)
2748 ("rust-glib-sys" ,rust-glib-sys-0.9)
2749 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2750 ("rust-itertools" ,rust-itertools-0.8)
2751 ("rust-language-tags" ,rust-language-tags-0.2)
2752 ("rust-libc" ,rust-libc-0.2)
2753 ("rust-locale-config" ,rust-locale-config-0.3)
2754 ("rust-markup5ever" ,rust-markup5ever-0.10)
2755 ("rust-nalgebra" ,rust-nalgebra-0.19)
2756 ("rust-num-traits" ,rust-num-traits-0.2)
2757 ("rust-once-cell" ,rust-once-cell-1.2)
2758 ("rust-pkg-config" ,rust-pkg-config-0.3)
2759 ("rust-pango" ,rust-pango-0.8)
2760 ("rust-pango-sys" ,rust-pango-sys-0.9)
2761 ("rust-pangocairo" ,rust-pangocairo-0.9)
2762 ("rust-rayon" ,rust-rayon-1)
2763 ("rust-rctree" ,rust-rctree-0.3)
2764 ("rust-rgb" ,rust-rgb-0.8)
2765 ("rust-regex" ,rust-regex-1)
2766 ("rust-selectors" ,rust-selectors-0.22)
2767 ("rust-url" ,rust-url-2.1)
2768 ("rust-xml5ever" ,rust-xml5ever-0.16))
2769 #:cargo-development-inputs
2770 (("rust-cairo-rs" ,rust-cairo-rs-0.8)
2771 ("rust-criterion" ,rust-criterion-0.3))
2772 #:phases
2773 (modify-phases %standard-phases
2774 (add-after 'unpack 'prepare-for-build
2775 (lambda _
2776 ;; In lieu of #:make-flags
2777 (setenv "CC" ,(cc-for-target))
2778 ;; Something about the build environment resists building
2779 ;; successfully with the '--locked' flag.
2780 (substitute* '("Makefile.am"
2781 "Makefile.in")
2782 (("--locked") ""))
2783 #t))
2784 (add-before 'configure 'pre-configure
2785 (lambda _
2786 (substitute* "gdk-pixbuf-loader/Makefile.in"
2787 ;; By default the gdk-pixbuf loader is installed under
2788 ;; gdk-pixbuf's prefix. Work around that.
2789 (("gdk_pixbuf_moduledir = .*$")
2790 (string-append "gdk_pixbuf_moduledir = "
2791 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2792 "loaders\n"))
2793 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2794 (("gdk_pixbuf_cache_file = .*$")
2795 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2796 #t))
2797 (add-after 'configure 'gnu-configure
2798 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
2799 ((assoc-ref gnu:%standard-phases 'configure)
2800 #:native-inputs native-inputs
2801 #:inputs inputs
2802 #:outputs outputs
2803 #:configure-flags (list "--disable-static"
2804 "--enable-vala"))))
2805 (add-after 'configure 'dont-vendor-self
2806 (lambda* (#:key vendor-dir #:allow-other-keys)
2807 ;; Don't keep the whole tarball in the vendor directory
2808 (delete-file-recursively
2809 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2810 #t))
2811 (replace 'build
2812 (assoc-ref gnu:%standard-phases 'build))
2813 (replace 'check
2814 (lambda* args
2815 ((assoc-ref gnu:%standard-phases 'check)
2816 #:test-target "check")))
2817 (replace 'install
2818 (assoc-ref gnu:%standard-phases 'install)))))
2819 (inputs
2820 `(("pango" ,pango)
2821 ,@(alist-delete "pango" (package-inputs librsvg))))
2822 (license license:lgpl2.1+)))
2823
2824 (define-public libidl
2825 (package
2826 (name "libidl")
2827 (version "0.8.14")
2828 (source (origin
2829 (method url-fetch)
2830 (uri (string-append "mirror://gnome/sources/libIDL/"
2831 (version-major+minor version) "/"
2832 "libIDL-" version ".tar.bz2"))
2833 (sha256
2834 (base32
2835 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2836 (build-system gnu-build-system)
2837 (inputs `(("glib" ,glib)))
2838 (native-inputs
2839 `(("pkg-config" ,pkg-config)
2840 ("flex" ,flex)
2841 ("bison" ,bison)))
2842 (home-page "http://freecode.com/projects/libidl")
2843 (synopsis "Create trees of CORBA Interface Definition Language files")
2844 (description "Libidl is a library for creating trees of CORBA Interface
2845 Definition Language (idl) files, which is a specification for defining
2846 portable interfaces. libidl was initially written for orbit (the orb from the
2847 GNOME project, and the primary means of libidl distribution). However, the
2848 functionality was designed to be as reusable and portable as possible.")
2849 (properties `((upstream-name . "libIDL")))
2850 (license license:lgpl2.0+)))
2851
2852
2853 (define-public orbit2
2854 (package
2855 (name "orbit2")
2856 (version "2.14.19")
2857 (source (origin
2858 (method url-fetch)
2859 (uri (let ((upstream-name "ORBit2"))
2860 (string-append "mirror://gnome/sources/" upstream-name "/"
2861 (version-major+minor version) "/"
2862 upstream-name "-" version ".tar.bz2")))
2863 (sha256
2864 (base32
2865 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2866 (build-system gnu-build-system)
2867 (arguments
2868 `(;; The "timeout-server" test hangs when run in parallel.
2869 #:parallel-tests? #f
2870 #:configure-flags
2871 '(;; We don't need static libraries, plus they don't build reproducibly
2872 ;; (non-deterministic ordering of .o files in the archive.)
2873 "--disable-static"
2874
2875 ;; The programmer kindly gives us a hook to turn off deprecation
2876 ;; warnings ...
2877 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2878 ;; ... which they then completly ignore !!
2879 #:phases
2880 (modify-phases %standard-phases
2881 (add-before 'configure 'ignore-deprecations
2882 (lambda _
2883 (substitute* "linc2/src/Makefile.in"
2884 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2885 #t)))))
2886 (inputs `(("glib" ,glib)
2887 ("libidl" ,libidl)))
2888 (native-inputs
2889 `(("pkg-config" ,pkg-config)))
2890 (home-page "https://projects.gnome.org/orbit2/")
2891 (synopsis "CORBA 2.4-compliant Object Request Broker")
2892 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2893 featuring mature C, C++ and Python bindings.")
2894 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2895 ;; a version. SOME of the code files have licence notices for GPLv2+.
2896 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2897 (license license:gpl2+)
2898 (properties `((upstream-name . "ORBit2")))))
2899
2900
2901 (define-public libbonobo
2902 (package
2903 (name "libbonobo")
2904 (version "2.32.1")
2905 (source (origin
2906 (method url-fetch)
2907 (uri (string-append "mirror://gnome/sources/" name "/"
2908 (version-major+minor version)
2909 "/" name "-" version ".tar.bz2"))
2910 (sha256
2911 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2912 (patches (search-patches
2913 "libbonobo-activation-test-race.patch"))))
2914 (build-system gnu-build-system)
2915 (arguments
2916 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2917 `(#:configure-flags
2918 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2919 ;; ... which they then completly ignore !!
2920 #:phases
2921 (modify-phases %standard-phases
2922 (add-before 'configure 'ignore-deprecations
2923 (lambda _
2924 (substitute* "activation-server/Makefile.in"
2925 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2926 #t)))
2927
2928 ;; There's apparently a race condition between the server stub
2929 ;; generation and linking of the example under 'samples/echo' that can
2930 ;; lead do undefined references when building in parallel, as reported
2931 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2932 ;; Thus, disable parallel builds.
2933 #:parallel-build? #f))
2934 (inputs `(("popt" ,popt)
2935 ("libxml2" ,libxml2)))
2936 ;; The following are Required by the .pc file
2937 (propagated-inputs
2938 `(("glib" ,glib)
2939 ("orbit2" ,orbit2)))
2940 (native-inputs
2941 `(("intltool" ,intltool)
2942 ("pkg-config" ,pkg-config)
2943 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2944 ("flex" ,flex)
2945 ("bison" ,bison)))
2946 (home-page "https://developer.gnome.org/libbonobo/")
2947 (synopsis "Framework for creating reusable components for use in GNOME applications")
2948 (description "Bonobo is a framework for creating reusable components for
2949 use in GNOME applications, built on top of CORBA.")
2950 ;; Licence not explicitly stated. Source files contain no licence notices.
2951 ;; Tarball contains text of both GPLv2 and LGPLv2
2952 ;; GPLv2 covers both conditions
2953 (license license:gpl2+)))
2954
2955
2956 (define-public gconf
2957 (package
2958 (name "gconf")
2959 (version "3.2.6")
2960 (source (origin
2961 (method url-fetch)
2962 (uri
2963 (let ((upstream-name "GConf"))
2964 (string-append "mirror://gnome/sources/" upstream-name "/"
2965 (version-major+minor version) "/"
2966 upstream-name "-" version ".tar.xz")))
2967 (sha256
2968 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2969 (build-system gnu-build-system)
2970 (inputs `(("dbus-glib" ,dbus-glib)
2971 ("libxml2" ,libxml2)))
2972 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2973 ("orbit2" ,orbit2)))
2974 (native-inputs
2975 `(("intltool" ,intltool)
2976 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2977 ("pkg-config" ,pkg-config)))
2978 (home-page "https://projects.gnome.org/gconf/")
2979 (synopsis "Store application preferences")
2980 (description "Gconf is a system for storing application preferences. It
2981 is intended for user preferences; not arbitrary data storage.")
2982 (license license:lgpl2.0+)
2983 (properties '((upstream-name . "GConf")))))
2984
2985
2986 (define-public gnome-mime-data
2987 (package
2988 (name "gnome-mime-data")
2989 (version "2.18.0")
2990 (source (origin
2991 (method url-fetch)
2992 (uri (string-append "mirror://gnome/sources/" name "/"
2993 (version-major+minor version) "/"
2994 name "-" version ".tar.bz2"))
2995 (sha256
2996 (base32
2997 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2998 (build-system gnu-build-system)
2999 (native-inputs
3000 `(("perl" ,perl)
3001 ("intltool" ,intltool)))
3002 (arguments
3003 '(#:phases (modify-phases %standard-phases
3004 (add-after 'configure 'use-our-intltool
3005 (lambda _
3006 ;; Do not use the bundled intltool commands, which lack
3007 ;; the "dotless @INC" fixes of our 'intltool' package.
3008 (substitute* (find-files "." "^Makefile$")
3009 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3010 (string-append "INTLTOOL_" tool " = intltool-"
3011 (string-downcase tool) "\n")))
3012 #t)))))
3013 (home-page "https://www.gnome.org")
3014 (synopsis "Base MIME and Application database for GNOME")
3015 (description "GNOME Mime Data is a module which contains the base MIME
3016 and Application database for GNOME. The data stored by this module is
3017 designed to be accessed through the MIME functions in GnomeVFS.")
3018 (license license:gpl2+)))
3019
3020
3021 (define-public gnome-vfs
3022 (package
3023 (name "gnome-vfs")
3024 (version "2.24.4")
3025 (source (origin
3026 (method url-fetch)
3027 (uri (string-append "mirror://gnome/sources/" name "/"
3028 (version-major+minor version) "/"
3029 name "-" version ".tar.bz2"))
3030 (sha256
3031 (base32
3032 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3033 (build-system gnu-build-system)
3034 (arguments
3035 `(#:phases
3036 (modify-phases %standard-phases
3037 (add-before 'configure 'ignore-deprecations
3038 (lambda _
3039 (substitute* '("libgnomevfs/Makefile.in"
3040 "daemon/Makefile.in")
3041 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3042 #t))
3043 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3044 (lambda _
3045 (substitute* "test/test-async-cancel.c"
3046 (("EXIT_FAILURE") "77"))
3047 #t)))))
3048 (inputs `(("libxml2" ,libxml2)
3049 ("dbus-glib" ,dbus-glib)
3050 ("gconf" ,gconf)
3051 ("gnome-mime-data" ,gnome-mime-data)
3052 ("zlib" ,zlib)))
3053 (native-inputs
3054 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3055 ("intltool" ,intltool)
3056 ("pkg-config" ,pkg-config)))
3057 (home-page "https://developer.gnome.org/gnome-vfs/")
3058 (synopsis "Access files and folders in GNOME applications")
3059 (description
3060 "GnomeVFS is the core library used to access files and folders in GNOME
3061 applications. It provides a file system abstraction which allows applications
3062 to access local and remote files with a single consistent API.")
3063 (license license:lgpl2.0+)))
3064
3065
3066
3067 (define-public libgnome
3068 (package
3069 (name "libgnome")
3070 (version "2.32.1")
3071 (source (origin
3072 (method url-fetch)
3073 (uri (string-append "mirror://gnome/sources/" name "/"
3074 (version-major+minor version) "/"
3075 name "-" version ".tar.bz2"))
3076 (sha256
3077 (base32
3078 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3079 (patches (search-patches "libgnome-encoding.patch"))))
3080 (build-system gnu-build-system)
3081 (arguments
3082 `(#:phases
3083 (modify-phases %standard-phases
3084 (add-before 'configure 'enable-deprecated
3085 (lambda _
3086 (substitute* "libgnome/Makefile.in"
3087 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3088 #t)))))
3089 (inputs `(("libxml2" ,libxml2)))
3090 (native-inputs
3091 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3092 ("intltool" ,intltool)
3093 ("pkg-config" ,pkg-config)))
3094 ;; The following are listed as Required in the .pc file
3095 ;; (except for libcanberra -- which seems to be oversight on the part
3096 ;; of the upstream developers -- anything that links against libgnome,
3097 ;; must also link against libcanberra
3098 (propagated-inputs
3099 `(("libcanberra" ,libcanberra)
3100 ("libbonobo" ,libbonobo)
3101 ("gconf" ,gconf)
3102 ("gnome-vfs" ,gnome-vfs)
3103 ("popt" ,popt))) ;gnome-program.h includes popt.h
3104 (home-page "https://developer.gnome.org/libgnome/")
3105 (synopsis "Useful routines for building applications")
3106 (description "The libgnome library provides a number of useful routines
3107 for building modern applications, including session management, activation of
3108 files and URIs, and displaying help.")
3109 (license license:lgpl2.0+)))
3110
3111
3112 (define-public libart-lgpl
3113 (package
3114 (name "libart-lgpl")
3115 (version "2.3.21")
3116 (source (origin
3117 (method url-fetch)
3118 (uri (let ((upstream-name "libart_lgpl"))
3119 (string-append "mirror://gnome/sources/" upstream-name "/"
3120 (version-major+minor version) "/"
3121 upstream-name "-" version ".tar.bz2")))
3122 (sha256
3123 (base32
3124 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
3125 (build-system gnu-build-system)
3126 (native-inputs
3127 `(("pkg-config" ,pkg-config)))
3128 (home-page "https://people.gnome.org/~mathieu/libart")
3129 (synopsis "2D drawing library")
3130 (description "Libart is a 2D drawing library intended as a
3131 high-quality vector-based 2D library with antialiasing and alpha composition.")
3132 (license license:lgpl2.0+)))
3133
3134
3135
3136 (define-public libgnomecanvas
3137 (package
3138 (name "libgnomecanvas")
3139 (version "2.30.3")
3140 (source (origin
3141 (method url-fetch)
3142 (uri (string-append "mirror://gnome/sources/" name "/"
3143 (version-major+minor version) "/"
3144 name "-" version ".tar.gz"))
3145 (sha256
3146 (base32
3147 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
3148 (build-system gnu-build-system)
3149 ;; Mentioned as Required in the .pc file
3150 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
3151 ("gtk+" ,gtk+-2)))
3152 (native-inputs
3153 `(("intltool" ,intltool)
3154 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3155 ("pkg-config" ,pkg-config)))
3156 (home-page "https://developer.gnome.org/libgnomecanvas/")
3157 (synopsis "Flexible widget for creating interactive structured graphics")
3158 (description "The GnomeCanvas widget provides a flexible widget for
3159 creating interactive structured graphics.")
3160 (license license:lgpl2.0+)))
3161
3162 (define-public libgnomecanvasmm
3163 (package
3164 (name "libgnomecanvasmm")
3165 (version "2.26.0")
3166 (source (origin
3167 (method url-fetch)
3168 (uri (string-append "mirror://gnome/sources/" name "/"
3169 (version-major+minor version) "/"
3170 name "-" version ".tar.bz2"))
3171 (sha256
3172 (base32
3173 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
3174 (build-system gnu-build-system)
3175 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
3176 (native-inputs
3177 `(("gtkmm-2" ,gtkmm-2)
3178 ("pkg-config" ,pkg-config)))
3179 (home-page "https://gtkmm.org")
3180 (synopsis "C++ bindings to the GNOME Canvas library")
3181 (description "C++ bindings to the GNOME Canvas library.")
3182 (license license:lgpl2.0+)))
3183
3184 (define-public libgnomeui
3185 (package
3186 (name "libgnomeui")
3187 (version "2.24.5")
3188 (source (origin
3189 (method url-fetch)
3190 (uri (string-append "mirror://gnome/sources/" name "/"
3191 (version-major+minor version) "/"
3192 name "-" version ".tar.bz2"))
3193 (patches (search-patches "libgnomeui-utf8.patch"))
3194 (sha256
3195 (base32
3196 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
3197 (build-system gnu-build-system)
3198 ;; Mentioned as Required in the .pc file
3199 (propagated-inputs `(("libbonoboui" ,libbonoboui)
3200 ("libgnome" ,libgnome)
3201 ("libgnomecanvas" ,libgnomecanvas)
3202 ("libgnome-keyring" ,libgnome-keyring)))
3203 (inputs `(("libjpeg" ,libjpeg-turbo)
3204 ("popt" ,popt)
3205 ("libbonobo" ,libbonobo)
3206 ("libxml2" ,libxml2)
3207 ("libglade" ,libglade)))
3208 (native-inputs
3209 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3210 ("intltool" ,intltool)
3211 ("pkg-config" ,pkg-config)))
3212 (home-page "https://developer.gnome.org/libgnomeui/")
3213 (synopsis "Additional widgets for applications")
3214 (description "The libgnomeui library provides additional widgets for
3215 applications. Many of the widgets from libgnomeui have already been
3216 ported to GTK+.")
3217 (license license:lgpl2.0+)))
3218
3219 (define-public libglade
3220 (package
3221 (name "libglade")
3222 (version "2.6.4")
3223 (source (origin
3224 (method url-fetch)
3225 (uri (string-append "mirror://gnome/sources/" name "/"
3226 (version-major+minor version) "/"
3227 name "-" version ".tar.bz2"))
3228 (sha256
3229 (base32
3230 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3231 (build-system gnu-build-system)
3232 (inputs
3233 `(("python" ,python))) ;; needed for the optional libglade-convert program
3234 (propagated-inputs
3235 `(("gtk+-2" ,gtk+-2)
3236 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3237 (native-inputs
3238 `(("pkg-config" ,pkg-config)))
3239 (home-page "https://developer.gnome.org/libglade")
3240 (synopsis "Load glade interfaces and access the glade built widgets")
3241 (description "Libglade is a library that provides interfaces for loading
3242 graphical interfaces described in glade files and for accessing the
3243 widgets built in the loading process.")
3244 (license license:gpl2+))) ; This is correct. GPL not LGPL
3245
3246 (define-public libgnomeprint
3247 ;; This library has been deprecated since 2006; see
3248 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3249 (package
3250 (name "libgnomeprint")
3251 (version "2.18.8")
3252 (source (origin
3253 (method url-fetch)
3254 (uri (string-append "mirror://gnome/sources/" name "/"
3255 (version-major+minor version) "/"
3256 name "-" version ".tar.bz2"))
3257 (sha256
3258 (base32
3259 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3260 (build-system gnu-build-system)
3261 (inputs
3262 `(("popt" ,popt)
3263 ("libart-lgpl" ,libart-lgpl)
3264 ("gtk+" ,gtk+-2)
3265 ("libxml2" ,libxml2)))
3266 (native-inputs
3267 `(("intltool" ,intltool)
3268 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3269 ("pkg-config" ,pkg-config)))
3270 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3271 (synopsis "Printing framework for GNOME")
3272 (description
3273 "GNOME-print was a printing framework for GNOME. It has been deprecated
3274 since ca. 2006, when GTK+ itself incorporated printing support.")
3275 (license license:lgpl2.0+)))
3276
3277
3278 (define-public libgnomeprintui
3279 ;; Deprecated; see libgnomeprint.
3280 (package
3281 (name "libgnomeprintui")
3282 (version "2.18.6")
3283 (source (origin
3284 (method url-fetch)
3285 (uri (string-append "mirror://gnome/sources/" name "/"
3286 (version-major+minor version) "/"
3287 name "-" version ".tar.bz2"))
3288 (sha256
3289 (base32
3290 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
3291 (build-system gnu-build-system)
3292 ;; Mentioned as Required in the .pc file
3293 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
3294 (inputs `(("gtk+" ,gtk+-2)
3295 ("glib" ,glib)
3296 ("gnome-icon-theme" ,gnome-icon-theme)
3297 ("libgnomecanvas" ,libgnomecanvas)
3298 ("libxml2" ,libxml2)))
3299 (native-inputs
3300 `(("intltool" ,intltool)
3301 ("pkg-config" ,pkg-config)))
3302 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3303 (synopsis "Printing framework for GNOME")
3304 (description (package-description libgnomeprint))
3305 (license license:lgpl2.0+)))
3306
3307 (define-public libbonoboui
3308 (package
3309 (name "libbonoboui")
3310 (version "2.24.5")
3311 (source (origin
3312 (method url-fetch)
3313 (uri (string-append "mirror://gnome/sources/" name "/"
3314 (version-major+minor version) "/"
3315 name "-" version ".tar.bz2"))
3316 (sha256
3317 (base32
3318 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
3319 (build-system gnu-build-system)
3320 (arguments
3321 `(#:phases
3322 (modify-phases %standard-phases
3323 (add-before 'check 'start-xserver
3324 (lambda* (#:key inputs #:allow-other-keys)
3325 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3326 (disp ":1"))
3327
3328 (setenv "HOME" (getcwd))
3329 (setenv "DISPLAY" disp)
3330 ;; There must be a running X server and make check doesn't start one.
3331 ;; Therefore we must do it.
3332 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
3333 ;; Mentioned as Required by the .pc file
3334 (propagated-inputs `(("libxml2" ,libxml2)))
3335 (inputs
3336 `(("popt" ,popt)
3337 ("pangox-compat" ,pangox-compat)
3338 ("libgnome" ,libgnome)
3339 ("libgnomecanvas" ,libgnomecanvas)
3340 ("libglade" ,libglade)))
3341 (native-inputs
3342 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3343 ("intltool" ,intltool)
3344 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
3345 ("pkg-config" ,pkg-config)))
3346 (home-page "https://developer.gnome.org/libbonoboui/")
3347 (synopsis "Some user interface controls using Bonobo")
3348 (description "The Bonobo UI library provides a number of user interface
3349 controls using the Bonobo component framework.")
3350 (license license:lgpl2.0+)))
3351
3352 (define-public libwnck
3353 (package
3354 (name "libwnck")
3355 (version "3.32.0")
3356 (source (origin
3357 (method url-fetch)
3358 (uri (string-append "mirror://gnome/sources/" name "/"
3359 (version-major+minor version) "/"
3360 name "-" version ".tar.xz"))
3361 (sha256
3362 (base32
3363 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3364 (build-system meson-build-system)
3365 (native-inputs
3366 `(("pkg-config" ,pkg-config)
3367 ("glib" ,glib "bin") ; for glib-mkenums
3368 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3369 ("intltool" ,intltool)))
3370 (propagated-inputs
3371 `(("gtk+" ,gtk+)
3372 ("libxres" ,libxres)
3373 ("startup-notification" ,startup-notification)))
3374 (home-page "https://developer.gnome.org/libwnck/")
3375 (synopsis "Window Navigator Construction Kit")
3376 (description
3377 "Libwnck is the Window Navigator Construction Kit, a library for use in
3378 writing pagers, tasklists, and more generally applications that are dealing
3379 with window management. It tries hard to respect the Extended Window Manager
3380 Hints specification (EWMH).")
3381 (license license:lgpl2.0+)))
3382
3383 ;; stable version for gtk2, required by xfwm4.
3384 (define-public libwnck-2
3385 (package (inherit libwnck)
3386 (name "libwnck")
3387 (version "2.30.7")
3388 (source (origin
3389 (method url-fetch)
3390 (uri (string-append "mirror://gnome/sources/" name "/"
3391 (version-major+minor version) "/"
3392 name "-" version ".tar.xz"))
3393 (sha256
3394 (base32
3395 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
3396 (build-system gnu-build-system)
3397 (native-inputs
3398 `(("pkg-config" ,pkg-config)
3399 ("intltool" ,intltool)))
3400 (propagated-inputs
3401 `(("gtk+" ,gtk+-2)
3402 ("libxres" ,libxres)
3403 ("startup-notification" ,startup-notification)))))
3404
3405 (define-public goffice
3406 (package
3407 (name "goffice")
3408 (version "0.10.47")
3409 (source (origin
3410 (method url-fetch)
3411 (uri (string-append "mirror://gnome/sources/goffice/"
3412 (version-major+minor version) "/"
3413 "goffice-" version ".tar.xz"))
3414 (sha256
3415 (base32 "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215"))))
3416 (build-system gnu-build-system)
3417 (outputs '("out"
3418 "doc")) ; 4.0 MiB of gtk-doc
3419 (arguments
3420 '(#:configure-flags (list (string-append "--with-html-dir="
3421 (assoc-ref %outputs "doc")
3422 "/share/gtk-doc/html"))))
3423 (inputs
3424 `(("gtk+" ,gtk+)
3425 ("libgsf" ,libgsf)
3426 ("librsvg" ,librsvg)
3427 ("libxslt" ,libxslt)
3428 ("libxml2" ,libxml2)))
3429 (native-inputs
3430 `(("intltool" ,intltool)
3431 ("glib" ,glib "bin")
3432 ("pkg-config" ,pkg-config)))
3433 (home-page "https://developer.gnome.org/goffice/")
3434 (synopsis "Document-centric objects and utilities")
3435 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3436 (license
3437 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3438 ;; Note: NOT LGPL
3439 (list license:gpl2 license:gpl3))))
3440
3441 (define-public goffice-0.8
3442 (package (inherit goffice)
3443 (version "0.8.17")
3444 (source (origin
3445 (method url-fetch)
3446 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3447 (version-major+minor version) "/"
3448 (package-name goffice) "-" version ".tar.xz"))
3449 (sha256
3450 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3451 (arguments
3452 `(#:phases
3453 (modify-phases %standard-phases
3454 (add-after 'unpack 'fix-pcre-check
3455 (lambda _
3456 ;; Only glib.h can be included directly. See
3457 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3458 (substitute* "configure"
3459 (("glib/gregex\\.h") "glib.h")) #t)))
3460
3461 ,@(package-arguments goffice)))
3462 (propagated-inputs
3463 ;; libgoffice-0.8.pc mentions libgsf-1
3464 `(("libgsf" ,libgsf)))
3465 (inputs
3466 `(("gtk" ,gtk+-2)
3467 ,@(alist-delete "gtk" (package-inputs goffice))))))
3468
3469 (define-public gnumeric
3470 (package
3471 (name "gnumeric")
3472 (version "1.12.46")
3473 (source (origin
3474 (method url-fetch)
3475 (uri (string-append "mirror://gnome/sources/gnumeric/"
3476 (version-major+minor version) "/"
3477 "gnumeric-" version ".tar.xz"))
3478 (sha256
3479 (base32
3480 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3481 (build-system glib-or-gtk-build-system)
3482 (arguments
3483 `(;; The gnumeric developers don't worry much about failing tests.
3484 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3485 #:tests? #f
3486 #:phases
3487 (modify-phases %standard-phases
3488 (add-before
3489 'configure 'pre-conf
3490 (lambda* (#:key outputs #:allow-other-keys)
3491 ;; Make install tries to write into the directory of goffice
3492 ;; I am informed that this only affects the possibility to embed a
3493 ;; spreadsheet inside an Abiword document. So presumably when we
3494 ;; package Abiword we'll have to refer it to this directory.
3495 (substitute* "configure"
3496 (("^GOFFICE_PLUGINS_DIR=.*")
3497 (string-append "GOFFICE_PLUGINS_DIR="
3498 (assoc-ref outputs "out")
3499 "/goffice/plugins"))))))))
3500 (inputs
3501 `(("glib" ,glib)
3502 ("gtk+" ,gtk+)
3503 ("goffice" ,goffice)
3504 ("libgsf" ,libgsf)
3505 ("librsvg" ,librsvg)
3506 ("libxml2" ,libxml2)
3507 ("libxslt" ,libxslt)
3508 ("python" ,python-2)
3509 ("python2-pygobject" ,python2-pygobject)
3510 ("zlib" ,zlib)))
3511 (native-inputs
3512 `(("bison" ,bison)
3513 ("docbook-xml" ,docbook-xml)
3514 ("intltool" ,intltool)
3515 ("itstool" ,itstool)
3516 ("glib:bin" ,glib "bin")
3517 ("pkg-config" ,pkg-config)))
3518 (home-page "http://www.gnumeric.org")
3519 (synopsis "Spreadsheet application")
3520 (description
3521 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3522 interoperable with other spreadsheet applications. It has a vast array of
3523 features beyond typical spreadsheet functionality, such as support for linear
3524 and non-linear solvers, statistical analysis, and telecommunication
3525 engineering.")
3526 (license
3527 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3528 (list license:gpl2 license:gpl3))))
3529
3530 (define-public gnome-themes-standard
3531 (package
3532 (name "gnome-themes-standard")
3533 (version "3.22.3")
3534 (source
3535 (origin
3536 (method url-fetch)
3537 (uri (string-append "mirror://gnome/sources/" name "/"
3538 (version-major+minor version) "/" name "-"
3539 version ".tar.xz"))
3540 (sha256
3541 (base32
3542 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3543 (build-system gnu-build-system)
3544 (arguments
3545 '(#:configure-flags
3546 ;; Don't create 'icon-theme.cache'.
3547 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3548 (true (string-append coreutils "/bin/true")))
3549 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3550 (inputs
3551 `(("gtk+" ,gtk+)
3552 ("gtk+-2" ,gtk+-2)
3553 ("librsvg" ,librsvg)
3554 ("libxml2" ,libxml2)
3555 ("glib" ,glib)))
3556 (native-inputs
3557 `(("intltool" ,intltool)
3558 ("glib:bin" ,glib "bin")
3559 ("pkg-config" ,pkg-config)))
3560 (home-page "https://launchpad.net/gnome-themes-standard")
3561 (synopsis "Default GNOME 3 themes")
3562 (description
3563 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3564 (license license:lgpl2.1+)))
3565
3566 (define-public seahorse
3567 (package
3568 (name "seahorse")
3569 (version "3.34")
3570 (source
3571 (origin
3572 (method url-fetch)
3573 (uri (string-append "mirror://gnome/sources/" name "/"
3574 (version-major+minor version) "/" name "-"
3575 version ".tar.xz"))
3576 (sha256
3577 (base32
3578 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
3579 (build-system meson-build-system)
3580 (arguments
3581 '(#:glib-or-gtk? #t
3582 #:phases
3583 (modify-phases %standard-phases
3584 (add-after 'unpack 'skip-gtk-update-icon-cache
3585 ;; Don't create 'icon-theme.cache'.
3586 (lambda _
3587 (substitute* "build-aux/meson_post_install.py"
3588 (("gtk-update-icon-cache") "true"))
3589 #t)))))
3590 (inputs
3591 `(("gtk+" ,gtk+)
3592 ("gcr" ,gcr)
3593 ("gnupg" ,gnupg)
3594 ("gpgme" ,gpgme)
3595 ("openldap" ,openldap)
3596 ("openssh" ,openssh)
3597 ("avahi" ,avahi)
3598 ("libpwquality" ,libpwquality)
3599 ("libsecret" ,libsecret)
3600 ("libsoup" ,libsoup)))
3601 (native-inputs
3602 `(("gettext" ,gettext-minimal)
3603 ("glib:bin" ,glib "bin")
3604 ("itstool" ,itstool)
3605 ("pkg-config" ,pkg-config)
3606 ("vala" ,vala)
3607 ("xmllint" ,libxml2)))
3608 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3609 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3610 (description
3611 "Seahorse is a GNOME application for managing encryption keys and
3612 passwords in the GNOME keyring.")
3613 (license license:gpl2+)))
3614
3615 (define-public vala
3616 (package
3617 (name "vala")
3618 (version "0.46.5")
3619 (source (origin
3620 (method url-fetch)
3621 (uri (string-append "mirror://gnome/sources/" name "/"
3622 (version-major+minor version) "/"
3623 name "-" version ".tar.xz"))
3624 (sha256
3625 (base32
3626 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
3627 (build-system gnu-build-system)
3628 (arguments
3629 '(#:phases
3630 (modify-phases %standard-phases
3631 (add-before 'check 'pre-check
3632 (lambda _
3633 (setenv "CC" "gcc")
3634 (substitute* "valadoc/tests/testrunner.sh"
3635 (("export PKG_CONFIG_PATH=" m)
3636 (string-append m "$PKG_CONFIG_PATH:")))
3637 ;; For missing '/etc/machine-id'.
3638 (setenv "DBUS_FATAL_WARNINGS" "0")
3639 #t)))))
3640 (native-inputs
3641 `(("pkg-config" ,pkg-config)
3642 ("flex" ,flex)
3643 ("bison" ,bison)
3644 ("xsltproc" ,libxslt)
3645 ("dbus" ,dbus) ; for dbus tests
3646 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3647 (inputs
3648 `(("graphviz" ,graphviz)))
3649 (propagated-inputs
3650 `(("glib" ,glib))) ; required by libvala-0.40.pc
3651 (home-page "https://live.gnome.org/Vala/")
3652 (synopsis "Compiler for the GObject type system")
3653 (description
3654 "Vala is a programming language that aims to bring modern programming
3655 language features to GNOME developers without imposing any additional runtime
3656 requirements and without using a different ABI compared to applications and
3657 libraries written in C.")
3658 (license license:lgpl2.1+)))
3659
3660 (define-public vala-0.48
3661 (package
3662 (inherit vala)
3663 (version "0.48.7")
3664 (source (origin
3665 (method url-fetch)
3666 (uri (string-append "mirror://gnome/sources/vala/"
3667 (version-major+minor version) "/"
3668 "vala-" version ".tar.xz"))
3669 (sha256
3670 (base32
3671 "0lswkb7gj0chas9n3l3dbrm9l71hs77adhvm2v600id2ipi37pi8"))))))
3672
3673 (define-public vte
3674 (package
3675 (name "vte")
3676 (version "0.60.3")
3677 (source (origin
3678 (method url-fetch)
3679 (uri (string-append "mirror://gnome/sources/vte/"
3680 (version-major+minor version) "/"
3681 "vte-" version ".tar.xz"))
3682 (sha256
3683 (base32
3684 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
3685 (build-system meson-build-system)
3686 (arguments
3687 `(#:configure-flags
3688 '("-Dvapi=true"
3689 "-D_systemd=false")))
3690 (native-inputs
3691 `(("pkg-config" ,pkg-config)
3692 ("gettext" ,gettext-minimal)
3693 ("vala" ,vala)
3694 ("gobject-introspection" ,gobject-introspection)
3695 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3696 ("gperf" ,gperf)
3697 ("xmllint" ,libxml2)))
3698 (propagated-inputs
3699 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3700 ("gnutls" ,gnutls) ; ditto
3701 ("pcre2" ,pcre2))) ; ditto
3702 (home-page "https://www.gnome.org/")
3703 (synopsis "Virtual Terminal Emulator")
3704 (description
3705 "VTE is a library (libvte) implementing a terminal emulator widget for
3706 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3707 gnome-terminal, but can also be used to embed a console/terminal in games,
3708 editors, IDEs, etc.")
3709 (license license:lgpl2.1+)))
3710
3711 (define-public vte-ng
3712 (package
3713 (inherit vte)
3714 (name "vte-ng")
3715 (version "0.58.2.a")
3716 (home-page "https://github.com/thestinger/vte-ng")
3717 (source (origin
3718 (method git-fetch)
3719 (uri (git-reference (url home-page) (commit version)))
3720 (file-name (git-file-name name version))
3721 (sha256
3722 (base32
3723 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3724 (build-system meson-build-system)
3725 (native-inputs
3726 `(("gtk-doc" ,gtk-doc)
3727 ,@(package-native-inputs vte)))
3728 (arguments
3729 `(#:configure-flags '("-Ddocs=true")))
3730 (synopsis "Enhanced VTE terminal widget")
3731 (description
3732 "VTE is a library (libvte) implementing a terminal emulator widget for
3733 GTK+, this fork provides additional functions exposed for keyboard text
3734 selection and URL hints.")))
3735
3736 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
3737 (define-public vte/gtk+-2
3738 (package (inherit vte)
3739 (name "vte")
3740 (version "0.28.2")
3741 (source (origin
3742 (method url-fetch)
3743 (uri (string-append "mirror://gnome/sources/" name "/"
3744 (version-major+minor version) "/"
3745 name "-" version ".tar.xz"))
3746 (sha256
3747 (base32
3748 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3749 (patches (search-patches
3750 "vte-CVE-2012-2738-pt1.patch"
3751 "vte-CVE-2012-2738-pt2.patch"))))
3752 (build-system gnu-build-system)
3753 (arguments
3754 '(#:configure-flags '("--disable-python")))
3755 (native-inputs
3756 `(("pkg-config" ,pkg-config)
3757 ("intltool" ,intltool)
3758 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3759 (propagated-inputs
3760 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3761 ("ncurses" ,ncurses))))) ; required by libvte.la
3762
3763 (define-public vinagre
3764 (package
3765 (name "vinagre")
3766 (version "3.22.0")
3767 (source (origin
3768 (method url-fetch)
3769 (uri (string-append "mirror://gnome/sources/" name "/"
3770 (version-major+minor version) "/"
3771 name "-" version ".tar.xz"))
3772 (patches (search-patches "vinagre-newer-freerdp.patch"
3773 "vinagre-newer-rdp-parameters.patch"))
3774 (sha256
3775 (base32
3776 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3777 (build-system glib-or-gtk-build-system)
3778 (arguments
3779 ;; Disable -Werror and such, to avoid build failures on compilation
3780 ;; warnings.
3781 '(#:configure-flags '("--enable-compile-warnings=minimum")
3782 #:phases
3783 (modify-phases %standard-phases
3784 (add-before 'install 'skip-gtk-update-icon-cache
3785 (lambda _
3786 ;; Don't create 'icon-theme.cache'
3787 (substitute* (find-files "." "^Makefile$")
3788 (("gtk-update-icon-cache") (which "true")))
3789 #t))
3790 (add-after 'unpack 'patch-configure
3791 (lambda _
3792 (substitute* "configure"
3793 (("freerdp") "freerdp2"))
3794 #t)))))
3795 (native-inputs
3796 `(("pkg-config" ,pkg-config)
3797 ("intltool" ,intltool)
3798 ("itstool" ,itstool)
3799 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3800 (inputs
3801 `(("libxml2" ,libxml2)
3802 ("gtk-vnc" ,gtk-vnc)
3803 ("gnome-keyring" ,gnome-keyring)
3804 ("libsecret" ,libsecret)
3805 ("freerdp" ,freerdp)
3806 ("spice" ,spice)
3807 ("spice-gtk" ,spice-gtk)
3808 ("telepathy-glib" ,telepathy-glib)
3809 ("vte" ,vte)))
3810 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3811 (synopsis "Remote desktop viewer for GNOME")
3812 (description "Vinagre is a remote display client supporting the VNC, SPICE
3813 and RDP protocols.")
3814 (license license:gpl3+)))
3815
3816 (define-public dconf
3817 (package
3818 (name "dconf")
3819 (version "0.34.0")
3820 (source (origin
3821 (method url-fetch)
3822 (uri (string-append
3823 "mirror://gnome/sources/" name "/"
3824 (version-major+minor version) "/"
3825 name "-" version ".tar.xz"))
3826 (patches (search-patches "dconf-meson-0.52.patch"))
3827 (sha256
3828 (base32
3829 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
3830 (build-system meson-build-system)
3831 (propagated-inputs
3832 ;; In Requires of dconf.pc.
3833 `(("glib" ,glib)))
3834 (inputs
3835 `(("gtk+" ,gtk+)
3836 ("dbus" ,dbus)))
3837 (native-inputs
3838 `(("bash-completion" ,bash-completion)
3839 ("libxslt" ,libxslt) ;for xsltproc
3840 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3841 ("docbook-xml" ,docbook-xml-4.2)
3842 ("docbook-xsl" ,docbook-xsl)
3843 ("glib:bin" ,glib "bin")
3844 ("gtk-doc" ,gtk-doc)
3845 ("pkg-config" ,pkg-config)
3846 ("vala" ,vala)))
3847 (arguments
3848 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3849 ; or /etc/machine-id.
3850 #:glib-or-gtk? #t
3851 #:configure-flags '("-Denable-gtk-doc=true")))
3852 (home-page "https://developer.gnome.org/dconf/")
3853 (synopsis "Low-level GNOME configuration system")
3854 (description "Dconf is a low-level configuration system. Its main purpose
3855 is to provide a backend to GSettings on platforms that don't already have
3856 configuration storage systems.")
3857 (license license:lgpl2.1+)))
3858
3859 (define-public json-glib
3860 (package
3861 (name "json-glib")
3862 (version "1.4.4")
3863 (source (origin
3864 (method url-fetch)
3865 (uri (string-append "mirror://gnome/sources/" name "/"
3866 (version-major+minor version) "/"
3867 name "-" version ".tar.xz"))
3868 (sha256
3869 (base32
3870 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3871 (build-system meson-build-system)
3872 (native-inputs
3873 `(("gettext" ,gettext-minimal)
3874 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3875 ("gobject-introspection" ,gobject-introspection)
3876 ("pkg-config" ,pkg-config)))
3877 (propagated-inputs
3878 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3879 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3880 (synopsis "Compiler for the GObject type system")
3881 (description
3882 "JSON-GLib is a C library based on GLib providing serialization and
3883 deserialization support for the JavaScript Object Notation (JSON) format
3884 described by RFC 4627. It provides parser and generator GObject classes and
3885 various wrappers for the complex data types employed by JSON, such as arrays
3886 and objects.")
3887 (license license:lgpl2.1+)))
3888
3889 (define-public libxklavier
3890 (package
3891 (name "libxklavier")
3892 (version "5.4")
3893 (source (origin
3894 ;; Note: There's no tarball at ftp.gnome.org for this version.
3895 (method git-fetch)
3896 (uri (git-reference
3897 (url "https://anongit.freedesktop.org/git/libxklavier")
3898 (commit (string-append "libxklavier-" version))))
3899 (sha256
3900 (base32
3901 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3902 (file-name (git-file-name name version))))
3903 (build-system gnu-build-system)
3904 (arguments
3905 '(#:configure-flags
3906 (list (string-append "--with-xkb-base="
3907 (assoc-ref %build-inputs "xkeyboard-config")
3908 "/share/X11/xkb")
3909 "--disable-xmodmap-support")))
3910 (native-inputs
3911 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3912 ("gobject-introspection" ,gobject-introspection)
3913 ("pkg-config" ,pkg-config)
3914 ("gtk-doc" ,gtk-doc)
3915 ("intltool" ,intltool)
3916 ("which" ,which)
3917 ("autoconf" ,autoconf)
3918 ("automake" ,automake)
3919 ("libtool" ,libtool)))
3920 (propagated-inputs
3921 ;; Required by libxklavier.pc.
3922 `(("glib" ,glib)
3923 ("libxml2" ,libxml2)))
3924 (inputs
3925 `(("iso-codes" ,iso-codes)
3926 ("libxi" ,libxi)
3927 ("libxkbfile" ,libxkbfile)
3928 ("xkbcomp" ,xkbcomp)
3929 ("xkeyboard-config" ,xkeyboard-config)))
3930 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3931 (synopsis "High-level API for X Keyboard Extension")
3932 (description
3933 "LibXklavier is a library providing high-level API for X Keyboard
3934 Extension known as XKB. This library is intended to support XFree86 and other
3935 commercial X servers. It is useful for creating XKB-related software (layout
3936 indicators etc).")
3937 (license license:lgpl2.0+)))
3938
3939 (define-public python2-rsvg
3940 ;; XXX: This is actually a subset of gnome-python-desktop.
3941 (package
3942 (name "python2-rsvg")
3943 (version "2.32.0")
3944 (source
3945 (origin
3946 (method url-fetch)
3947 (uri (string-append
3948 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3949 version ".tar.bz2"))
3950 (sha256
3951 (base32
3952 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3953 (build-system gnu-build-system)
3954 (native-inputs
3955 `(("pkg-config" ,pkg-config)))
3956 (inputs
3957 `(("python" ,python-2)
3958 ("python2-pygtk" ,python2-pygtk)
3959 ("librsvg" ,librsvg)))
3960 (home-page "https://www.gnome.org")
3961 (synopsis "Python bindings to librsvg")
3962 (description
3963 "This package provides Python bindings to librsvg, the SVG rendering
3964 library.")
3965
3966 ;; This is the license of the rsvg bindings. The license of each module
3967 ;; of gnome-python-desktop is given in 'COPYING'.
3968 (license license:lgpl2.1+)))
3969
3970 (define-public glib-networking
3971 (package
3972 (name "glib-networking")
3973 (version "2.62.2")
3974 (source (origin
3975 (method url-fetch)
3976 (uri (string-append "mirror://gnome/sources/glib-networking/"
3977 (version-major+minor version) "/"
3978 "glib-networking-" version ".tar.xz"))
3979 (sha256
3980 (base32
3981 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
3982 (build-system meson-build-system)
3983 (arguments
3984 `(#:configure-flags '("-Dlibproxy_support=false")))
3985 (native-inputs
3986 `(("pkg-config" ,pkg-config)
3987 ("intltool" ,intltool)))
3988 (inputs
3989 `(("glib" ,glib)
3990 ("gnutls" ,gnutls)
3991 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3992 (home-page "https://www.gnome.org")
3993 (synopsis "Network-related GIO modules")
3994 (description
3995 "This package contains various network related extensions for the GIO
3996 library.")
3997 (license license:lgpl2.0+)))
3998
3999 (define-public rest
4000 (package
4001 (name "rest")
4002 (version "0.8.1")
4003 (source (origin
4004 (method url-fetch)
4005 (uri (string-append "mirror://gnome/sources/rest/"
4006 (version-major+minor version) "/"
4007 name "-" version ".tar.xz"))
4008 (sha256
4009 (base32
4010 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4011 (build-system gnu-build-system)
4012 (arguments
4013 '(#:tests? #f ; tests require internet connection
4014 #:configure-flags
4015 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4016 (native-inputs
4017 `(("glib-mkenums" ,glib "bin")
4018 ("gobject-introspection" ,gobject-introspection)
4019 ("pkg-config" ,pkg-config)))
4020 (propagated-inputs
4021 ;; rest-0.7.pc refers to all these.
4022 `(("glib" ,glib)
4023 ("libsoup" ,libsoup)
4024 ("libxml2" ,libxml2)))
4025 (home-page "https://www.gtk.org/")
4026 (synopsis "RESTful web api query library")
4027 (description
4028 "This library was designed to make it easier to access web services that
4029 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4030 libxml to ease remote use of the RESTful API.")
4031 (license license:lgpl2.1+)))
4032
4033 (define-public libsoup
4034 (package
4035 (name "libsoup")
4036 (version "2.70.0")
4037 (source (origin
4038 (method url-fetch)
4039 (uri (string-append "mirror://gnome/sources/libsoup/"
4040 (version-major+minor version) "/"
4041 "libsoup-" version ".tar.xz"))
4042 (sha256
4043 (base32
4044 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
4045 (build-system meson-build-system)
4046 (outputs '("out" "doc"))
4047 (arguments
4048 `(#:modules ((guix build utils)
4049 (guix build meson-build-system)
4050 (ice-9 popen))
4051
4052 #:configure-flags '("-Dgtk_doc=true")
4053 #:phases
4054 (modify-phases %standard-phases
4055 (add-after 'unpack 'adjust-tests
4056 (lambda _
4057 ;; This test fails due to missing /etc/nsswitch.conf
4058 ;; in the build environment.
4059 (substitute* "tests/socket-test.c"
4060 ((".*/sockets/unconnected.*") ""))
4061
4062 ;; These fail because "subdomain.localhost" does not resolve in
4063 ;; the build environment.
4064 (substitute* "tests/hsts-test.c"
4065 ((".*/hsts/basic.*") "")
4066 ((".*/hsts/subdomains.*") "")
4067 ((".*/hsts/superdomain.*") "")
4068 ((".*/hsts/utf8-address.*") ""))
4069 (substitute* "tests/hsts-db-test.c"
4070 ((".*/hsts-db/subdomains.*") ""))
4071
4072 ;; Generate a self-signed certificate that has "localhost" as its
4073 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
4074 ;; 3.5.12, tests such as "ssl-tests" fail:
4075 ;;
4076 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
4077 ;;
4078 ;; 'certtool' is interactive so we have to pipe it the answers.
4079 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
4080 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
4081 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
4082 (for-each (lambda (line)
4083 (display line pipe)
4084 (newline pipe))
4085 '("" ;Common name
4086 "" ;UID
4087 "Guix" ;Organizational unit name
4088 "GNU" ;Organization name
4089 "" ;Locality name
4090 "" ;State or province
4091 "" ;Country
4092 "" ;subject's domain component (DC)
4093 "" ;E-mail
4094 "" ;serial number
4095 "-1" ;expiration time
4096 "N" ;belong to authority?
4097 "N" ;web client certificate?
4098 "N" ;IPsec IKE?
4099 "Y" ;web server certificate?
4100 "localhost" ;dnsName of subject
4101 "" ;dnsName of subject (end)
4102 "" ;URI of subject
4103 "127.0.0.1" ;IP address of subject
4104 "" ;signing?
4105 "" ;encryption (RSA)?
4106 "" ;data encryption?
4107 "" ;sign OCSP requests?
4108 "" ;sign code?
4109 "" ;time stamping?
4110 "" ;email protection?
4111 "" ;URI of the CRL distribution point
4112 "y" ;above info OK?
4113 ))
4114 (close-pipe pipe))
4115 #t))
4116 (add-after 'install 'move-doc
4117 (lambda* (#:key outputs #:allow-other-keys)
4118 (let ((out (assoc-ref outputs "out"))
4119 (doc (assoc-ref outputs "doc")))
4120 (mkdir-p (string-append doc "/share"))
4121 (copy-recursively (string-append out "/share/gtk-doc")
4122 (string-append doc "/share/gtk-doc"))
4123 (delete-file-recursively (string-append out "/share/gtk-doc"))
4124 #t))))))
4125 (native-inputs
4126 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4127 ("gobject-introspection" ,gobject-introspection)
4128 ("gtk-doc" ,gtk-doc)
4129 ("intltool" ,intltool)
4130 ("pkg-config" ,pkg-config)
4131 ("python" ,python-wrapper)
4132 ("vala" ,vala)
4133 ("php" ,php)
4134 ("curl" ,curl)
4135 ("gnutls" ,gnutls) ;for 'certtool'
4136 ("httpd" ,httpd)))
4137 (propagated-inputs
4138 ;; libsoup-2.4.pc refers to all these.
4139 `(("brotli" ,google-brotli)
4140 ("glib" ,glib)
4141 ("libpsl" ,libpsl)
4142 ("libxml2" ,libxml2)
4143 ("sqlite" ,sqlite)
4144 ("zlib" ,zlib)))
4145 (inputs
4146 `(("glib-networking" ,glib-networking)
4147 ("mit-krb5" ,mit-krb5)))
4148 (home-page "https://live.gnome.org/LibSoup/")
4149 (synopsis "GLib-based HTTP Library")
4150 (description
4151 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
4152 and the GLib main loop, to integrate well with GNOME applications.")
4153 (license license:lgpl2.0+)))
4154
4155
4156 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4157 (define-public libsoup-minimal
4158 (package
4159 (inherit libsoup)
4160 (name "libsoup-minimal")
4161 (outputs (delete "doc" (package-outputs libsoup)))
4162 (arguments
4163 (substitute-keyword-arguments (package-arguments libsoup)
4164 ((#:configure-flags configure-flags)
4165 `(delete "-Dgtk_doc=true" ,configure-flags))
4166 ((#:phases phases)
4167 `(modify-phases ,phases
4168 (delete 'move-doc)))))
4169 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
4170
4171 (define-public libsecret
4172 (package
4173 (name "libsecret")
4174 (version "0.20.3")
4175 (source (origin
4176 (method url-fetch)
4177 (uri (string-append
4178 "mirror://gnome/sources/libsecret/"
4179 (version-major+minor version) "/"
4180 "libsecret-" version ".tar.xz"))
4181 (sha256
4182 (base32
4183 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
4184 (build-system gnu-build-system)
4185 (outputs '("out" "doc"))
4186 (arguments
4187 `(#:tests? #f ; FIXME: Testing hangs.
4188 #:configure-flags
4189 (list (string-append "--with-html-dir="
4190 (assoc-ref %outputs "doc")
4191 "/share/gtk-doc/html"))))
4192 (native-inputs
4193 `(("gettext" ,gettext-minimal)
4194 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
4195 ("gobject-introspection" ,gobject-introspection)
4196 ("pkg-config" ,pkg-config)
4197 ("vala" ,vala)
4198 ("xsltproc" ,libxslt)))
4199 ;; These are needed for the tests.
4200 ;; FIXME: Add gjs once available.
4201 ;("dbus" ,dbus)
4202 ;("python2" ,python-2)
4203 ;("python2-dbus" ,python2-dbus)
4204 ;("python2-pygobject" ,python2-pygobject)
4205 ;("python2-pygobject-2" ,python2-pygobject-2)))
4206 (propagated-inputs
4207 `(("glib" ,glib))) ; required by libsecret-1.pc
4208 (inputs
4209 `(("docbook-xsl" ,docbook-xsl)
4210 ("libgcrypt" ,libgcrypt)
4211 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4212 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4213 (synopsis "GObject bindings for \"Secret Service\" API")
4214 (description
4215 "Libsecret is a GObject based library for storing and retrieving passwords
4216 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4217 (license license:lgpl2.1+)))
4218
4219 (define-public five-or-more
4220 (package
4221 (name "five-or-more")
4222 (version "3.32.2")
4223 (source
4224 (origin
4225 (method url-fetch)
4226 (uri (string-append "mirror://gnome/sources/five-or-more/"
4227 (version-major+minor version) "/"
4228 "five-or-more-" version ".tar.xz"))
4229 (sha256
4230 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4231 (build-system meson-build-system)
4232 (arguments
4233 '(#:glib-or-gtk? #t
4234 #:phases
4235 (modify-phases %standard-phases
4236 (add-after 'unpack 'skip-gtk-update-icon-cache
4237 (lambda _
4238 (substitute* "meson_post_install.py"
4239 (("gtk-update-icon-cache") (which "true")))
4240 #t)))))
4241 (native-inputs
4242 `(("pkg-config" ,pkg-config)
4243 ("appstream-glib" ,appstream-glib)
4244 ("desktop-file-utils" ,desktop-file-utils)
4245 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4246 ("intltool" ,intltool)
4247 ("itstool" ,itstool)
4248 ("vala" ,vala)
4249 ("xmllint" ,libxml2)))
4250 (inputs
4251 `(("gtk+" ,gtk+)
4252 ("libgnome-games-support" ,libgnome-games-support)
4253 ("librsvg" ,librsvg)))
4254 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
4255 (synopsis "Logic puzzle game")
4256 (description "Five or More is a game where you try to align
4257 five or more objects of the same color and shape causing them to disappear.
4258 On every turn more objects will appear, until the board is full.
4259 Try to last as long as possible.")
4260 (license license:gpl2+)))
4261
4262 (define-public gnome-mines
4263 (package
4264 (name "gnome-mines")
4265 (version "3.34.0")
4266 (source
4267 (origin
4268 (method url-fetch)
4269 (uri (string-append "mirror://gnome/sources/" name "/"
4270 (version-major+minor version) "/"
4271 name "-" version ".tar.xz"))
4272 (sha256
4273 (base32
4274 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
4275 (build-system meson-build-system)
4276 (arguments
4277 '(#:glib-or-gtk? #t
4278 #:phases
4279 (modify-phases %standard-phases
4280 (add-after 'unpack 'skip-gtk-update-icon-cache
4281 (lambda _
4282 (substitute* "build-aux/meson_post_install.py"
4283 (("gtk-update-icon-cache") (which "true")))
4284 #t)))))
4285 (native-inputs
4286 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
4287 ("pkg-config" ,pkg-config)
4288 ("desktop-file-utils" ,desktop-file-utils)
4289 ("intltool" ,intltool)
4290 ("itstool" ,itstool)
4291 ("vala" ,vala)
4292 ("yelp" ,yelp)
4293 ("appstream-glib" ,appstream-glib)))
4294 (inputs
4295 `(("gtk+" ,gtk+)
4296 ("libgnome-games-support" ,libgnome-games-support)
4297 ("librsvg" ,librsvg)))
4298 (home-page "https://wiki.gnome.org/Apps/Mines")
4299 (synopsis "Minesweeper game")
4300 (description
4301 "Mines (previously gnomine) is a puzzle game where you locate mines
4302 floating in an ocean using only your brain and a little bit of luck.")
4303 (license license:gpl2+)))
4304
4305 (define-public gnome-multi-writer
4306 (package
4307 (name "gnome-multi-writer")
4308 (version "3.35.90")
4309 (source
4310 (origin
4311 (method url-fetch)
4312 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
4313 (version-major+minor version) "/"
4314 "gnome-multi-writer-" version ".tar.xz"))
4315 (sha256
4316 (base32
4317 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
4318 (build-system meson-build-system)
4319 (arguments
4320 '(#:glib-or-gtk? #t
4321 #:phases
4322 (modify-phases %standard-phases
4323 (add-after 'unpack 'skip-post-install
4324 (lambda _
4325 (substitute* "meson.build"
4326 (("meson.add_install_script" &) (string-append "# " &)))
4327 #t)))))
4328 (native-inputs
4329 `(("glib:bin" ,glib "bin")
4330 ("pkg-config" ,pkg-config)))
4331 (inputs
4332 `(("gtk+" ,gtk+)
4333 ("glib" ,glib) ; for gio
4334 ("gusb" ,gusb)
4335 ("udisks" ,udisks)
4336 ("libgudev" ,libgudev)
4337 ("libcanberra" ,libcanberra)
4338 ("polkit" ,polkit)))
4339 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
4340 (synopsis "Write to multiple USB devices at once")
4341 (description
4342 "MultiWriter can be used to write an ISO file to multiple USB devices at
4343 once.")
4344 (license license:gpl2+)))
4345
4346 (define-public gnome-sudoku
4347 (package
4348 (name "gnome-sudoku")
4349 (version "3.34.1")
4350 (source
4351 (origin
4352 (method url-fetch)
4353 (uri (string-append "mirror://gnome/sources/" name "/"
4354 (version-major+minor version) "/"
4355 name "-" version ".tar.xz"))
4356 (sha256
4357 (base32
4358 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
4359 (build-system meson-build-system)
4360 (arguments
4361 '(#:glib-or-gtk? #t
4362 #:phases
4363 (modify-phases %standard-phases
4364 (add-after 'unpack 'skip-gtk-update-icon-cache
4365 (lambda _
4366 (substitute* "build-aux/post_install.py"
4367 (("gtk-update-icon-cache") (which "true")))
4368 #t)))))
4369 (native-inputs
4370 `(("pkg-config" ,pkg-config)
4371 ("desktop-file-utils" ,desktop-file-utils)
4372 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4373 ("intltool" ,intltool)
4374 ("itstool" ,itstool)
4375 ("vala" ,vala)
4376 ("xmllint" ,libxml2)))
4377 (inputs
4378 `(("gtk+" ,gtk+)
4379 ("json-glib" ,json-glib)
4380 ("libgee" ,libgee)
4381 ("librsvg" ,librsvg)
4382 ("qqwing" ,qqwing)))
4383 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4384 (synopsis "Japanese logic game")
4385 (description
4386 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4387 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4388 possible while still providing features that make playing difficult Sudoku
4389 more fun.")
4390 (license license:gpl2+)))
4391
4392 (define-public gnome-terminal
4393 (package
4394 (name "gnome-terminal")
4395 (version "3.34.2")
4396 (source
4397 (origin
4398 (method url-fetch)
4399 (uri (string-append "mirror://gnome/sources/" name "/"
4400 (version-major+minor version) "/"
4401 name "-" version ".tar.xz"))
4402 (sha256
4403 (base32
4404 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
4405 (build-system glib-or-gtk-build-system)
4406 (arguments
4407 '(#:configure-flags
4408 (list "--disable-migration" "--disable-search-provider"
4409 "--without-nautilus-extension")
4410 #:phases
4411 (modify-phases %standard-phases
4412 (add-before 'configure 'patch-/bin/true
4413 (lambda _
4414 (substitute* "configure"
4415 (("/bin/true") (which "true"))))))))
4416 (native-inputs
4417 `(("pkg-config" ,pkg-config)
4418 ("desktop-file-utils" ,desktop-file-utils)
4419 ("intltool" ,intltool)
4420 ("itstool" ,itstool)
4421 ("xmllint" ,libxml2)))
4422 (propagated-inputs
4423 `(("dconf" ,dconf)))
4424 (inputs
4425 `(("gtk+" ,gtk+)
4426 ("vte" ,vte)
4427 ("gnutls" ,gnutls)
4428 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4429 ("util-linux" ,util-linux "lib")
4430 ("vala" ,vala)))
4431 (home-page "https://wiki.gnome.org/Apps/Terminal")
4432 (synopsis "Terminal emulator")
4433 (description
4434 "GNOME Terminal is a terminal emulator application for accessing a
4435 UNIX shell environment which can be used to run programs available on
4436 your system.
4437
4438 It supports several profiles, multiple tabs and implements several
4439 keyboard shortcuts.")
4440 (license license:gpl3+)))
4441
4442 (define-public colord
4443 (package
4444 (name "colord")
4445 (version "1.4.4")
4446 (source
4447 (origin
4448 (method url-fetch)
4449 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
4450 "colord-" version ".tar.xz"))
4451 (sha256
4452 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
4453 (build-system meson-build-system)
4454 (arguments
4455 '(;; FIXME: One test fails:
4456 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4457 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4458 ;; application/x-zerosize
4459 #:tests? #f
4460 #:glib-or-gtk? #t
4461 #:configure-flags (list "-Dlocalstatedir=/var"
4462 ;; No dep on systemd.
4463 "-Dsystemd=false"
4464 ;; Wants to install to global completion dir;
4465 ;; punt.
4466 "-Dbash_completion=false"
4467 "-Ddaemon_user=colord"
4468 "-Dsane=true"
4469 "-Dvapi=true"
4470 ;; Requires spotread.
4471 "-Dargyllcms_sensor=false"
4472 ;; TODO: Requires docbook2x.
4473 "-Dman=false")
4474 #:phases
4475 (modify-phases %standard-phases
4476 (add-before 'configure 'patch-build-system
4477 (lambda* (#:key outputs #:allow-other-keys)
4478 (substitute* "rules/meson.build"
4479 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4480 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4481 #t))
4482 (add-before 'configure 'set-sqlite3-file-name
4483 (lambda* (#:key inputs #:allow-other-keys)
4484 ;; "colormgr dump" works by invoking the "sqlite3" command.
4485 ;; Record its absolute file name.
4486 (let ((sqlite (assoc-ref inputs "sqlite")))
4487 (substitute* "client/cd-util.c"
4488 (("\"sqlite3\"")
4489 (string-append "\"" sqlite "/bin/sqlite3\"")))
4490 #t))))))
4491 (native-inputs
4492 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4493 ("gettext" ,gettext-minimal)
4494 ("gobject-introspection" ,gobject-introspection)
4495 ("gtk-doc" ,gtk-doc)
4496 ("pkg-config" ,pkg-config)
4497 ("vala" ,vala)))
4498 (propagated-inputs
4499 ;; colord.pc refers to all these.
4500 `(("glib" ,glib)
4501 ("lcms" ,lcms)
4502 ("udev" ,eudev)))
4503 (inputs
4504 `(("dbus-glib" ,dbus-glib)
4505 ("gusb" ,gusb)
4506 ("libgudev" ,libgudev)
4507 ("libusb" ,libusb)
4508 ("polkit" ,polkit)
4509 ("python" ,python-wrapper)
4510 ("sqlite" ,sqlite)
4511 ("sane-backends" ,sane-backends)))
4512 (home-page "https://www.freedesktop.org/software/colord/")
4513 (synopsis "Color management service")
4514 (description "Colord is a system service that makes it easy to manage,
4515 install and generate color profiles to accurately color manage input and
4516 output devices.")
4517 (license license:gpl2+)))
4518
4519 (define-public geoclue
4520 (package
4521 (name "geoclue")
4522 (version "2.5.6")
4523 (source
4524 (origin
4525 (method url-fetch)
4526 (uri
4527 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4528 version "/geoclue-" version ".tar.bz2"))
4529 (sha256
4530 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
4531 (patches (search-patches "geoclue-config.patch"))))
4532 (build-system meson-build-system)
4533 (arguments
4534 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4535 (native-inputs
4536 `(("pkg-config" ,pkg-config)
4537 ("gobject-introspection" ,gobject-introspection)
4538 ("modem-manager" ,modem-manager)
4539 ("libnotify" ,libnotify)
4540 ("gtk-doc", gtk-doc)
4541 ("intltool" ,intltool)))
4542 (inputs
4543 `(("avahi" ,avahi)
4544 ("glib:bin" ,glib "bin")
4545 ("glib-networking" ,glib-networking)
4546 ("json-glib" ,json-glib)
4547 ("libsoup" ,libsoup)))
4548 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4549 (synopsis "Geolocation service")
4550 (description "Geoclue is a D-Bus service that provides location
4551 information. The primary goal of the Geoclue project is to make creating
4552 location-aware applications as simple as possible, while the secondary goal is
4553 to ensure that no application can access location information without explicit
4554 permission from user.")
4555 (license license:gpl2+)))
4556
4557 (define-public geocode-glib
4558 (package
4559 (name "geocode-glib")
4560 (version "3.26.1")
4561 (source (origin
4562 (method url-fetch)
4563 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4564 (version-major+minor version) "/"
4565 "geocode-glib-" version ".tar.xz"))
4566 (sha256
4567 (base32
4568 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4569 (build-system meson-build-system)
4570 (arguments
4571 `(#:phases
4572 (modify-phases %standard-phases
4573 ;; The tests require a bunch of locales.
4574 (add-before 'check 'set-locales
4575 (lambda* (#:key inputs #:allow-other-keys)
4576 (setenv "GUIX_LOCPATH"
4577 (string-append (assoc-ref inputs "glibc-locales")
4578 "/lib/locale"))
4579 #t)))))
4580 (native-inputs
4581 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4582 ("glibc-locales" ,glibc-locales) ; for tests
4583 ("gettext" ,gettext-minimal)
4584 ("gobject-introspection" ,gobject-introspection)
4585 ("gtk-doc" ,gtk-doc)
4586 ("pkg-config" ,pkg-config)
4587 ("json-glib" ,json-glib)))
4588 (propagated-inputs
4589 ;; geocode-glib-1.0.pc refers to GIO.
4590 `(("glib" ,glib)))
4591 (inputs
4592 `(("libsoup" ,libsoup)))
4593 (home-page "https://github.com/GNOME/geocode-glib/")
4594 (synopsis "Geocoding and reverse-geocoding library")
4595 (description
4596 "geocode-glib is a convenience library for geocoding (finding longitude,
4597 and latitude from an address) and reverse geocoding (finding an address from
4598 coordinates) using the Nominatim service. geocode-glib caches requests for
4599 faster results and to avoid unnecessary server load.")
4600 (license license:lgpl2.0+)))
4601
4602 (define-public upower
4603 (package
4604 (name "upower")
4605 (version "0.99.11")
4606 (source (origin
4607 (method url-fetch)
4608 (uri (string-append "https://upower.freedesktop.org/releases/"
4609 "upower-" version ".tar.xz"))
4610 (sha256
4611 (base32
4612 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4613 (patches (search-patches "upower-builddir.patch"))
4614 (modules '((guix build utils)))
4615 (snippet
4616 '(begin
4617 ;; Upstream commit
4618 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4619 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4620 ;; 'dbus-configuration-directory' in (gnu services dbus)
4621 ;; expects it in etc/. Thus, move it back to its previous
4622 ;; location.
4623 (substitute* "src/Makefile.in"
4624 (("^dbusconfdir =.*$")
4625 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4626 #t))))
4627 (build-system glib-or-gtk-build-system)
4628 (arguments
4629 '(#:phases
4630 (modify-phases %standard-phases
4631 (add-before 'check 'pre-check
4632 (lambda* (#:key inputs #:allow-other-keys)
4633 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4634 "/lib")))
4635 (setenv "LD_LIBRARY_PATH" umockdev))
4636 #t)))
4637 #:configure-flags (list "--localstatedir=/var"
4638 (string-append "--with-udevrulesdir="
4639 (assoc-ref %outputs "out")
4640 "/lib/udev/rules.d"))))
4641 (native-inputs
4642 `(("gobject-introspection" ,gobject-introspection)
4643 ("pkg-config" ,pkg-config)
4644 ("intltool" ,intltool)
4645 ("python" ,python)
4646
4647 ;; For tests.
4648 ("python-dbus" ,python-dbus)
4649 ("python-dbusmock" ,python-dbusmock)
4650 ("python-pygobject" ,python-pygobject)
4651 ("umockdev" ,umockdev)
4652
4653 ;; For man pages.
4654 ("libxslt" ,libxslt) ;for 'xsltproc'
4655 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4656 ("docbook-xsl" ,docbook-xsl)))
4657 (inputs
4658 `(("dbus-glib" ,dbus-glib)
4659 ("libgudev" ,libgudev)
4660 ("libusb" ,libusb)))
4661 (propagated-inputs
4662 ;; In Requires of upower-glib.pc.
4663 `(("glib" ,glib)))
4664 (home-page "https://upower.freedesktop.org/")
4665 (synopsis "System daemon for managing power devices")
4666 (description
4667 "UPower is an abstraction for enumerating power devices,
4668 listening to device events and querying history and statistics. Any
4669 application or service on the system can access the org.freedesktop.UPower
4670 service via the system message bus.")
4671 (license license:gpl2+)))
4672
4673 (define-public libgweather
4674 (package
4675 (name "libgweather")
4676 (version "3.34.0")
4677 (source (origin
4678 (method url-fetch)
4679 (uri (string-append "mirror://gnome/sources/" name "/"
4680 (version-major+minor version) "/"
4681 name "-" version ".tar.xz"))
4682 (sha256
4683 (base32
4684 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
4685 (build-system meson-build-system)
4686 (arguments
4687 `(#:tests? #f ; one of two tests requires network access
4688 #:configure-flags
4689 `(,(string-append "-Dzoneinfo_dir="
4690 (assoc-ref %build-inputs "tzdata")
4691 "/share/zoneinfo"))))
4692 (native-inputs
4693 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4694 ("gobject-introspection" ,gobject-introspection)
4695 ("pkg-config" ,pkg-config)
4696 ("vala" ,vala)
4697 ("intltool" ,intltool)))
4698 (propagated-inputs
4699 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4700 ;; libsoup.
4701 `(("gtk+" ,gtk+)
4702 ("gdk-pixbuf" ,gdk-pixbuf)
4703 ("libxml2" ,libxml2)
4704 ("libsoup" ,libsoup)
4705 ("geocode-glib" ,geocode-glib)))
4706 (inputs
4707 `(("tzdata" ,tzdata)))
4708 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4709 (synopsis "Location, time zone, and weather library for GNOME")
4710 (description
4711 "libgweather is a library to access weather information from online
4712 services for numerous locations.")
4713 (license license:gpl2+)))
4714
4715 (define-public gnome-settings-daemon
4716 (package
4717 (name "gnome-settings-daemon")
4718 (version "3.34.1")
4719 (source
4720 (origin
4721 (method url-fetch)
4722 (uri (string-append "mirror://gnome/sources/" name "/"
4723 (version-major+minor version) "/"
4724 name "-" version ".tar.xz"))
4725 (sha256
4726 (base32
4727 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
4728 (build-system meson-build-system)
4729 (arguments
4730 `(#:glib-or-gtk? #t
4731 #:configure-flags
4732 (list (string-append "-Dudev_dir="
4733 (assoc-ref %outputs "out")
4734 "/lib/udev/rules.d/")
4735 "-Dsystemd=false"
4736 ;; Otherwise, the RUNPATH will lack the final path component.
4737 (string-append "-Dc_link_args=-Wl,-rpath="
4738 (assoc-ref %outputs "out")
4739 "/lib/gnome-settings-daemon-3.0"))
4740 ;; Color management test can't reach the colord system service.
4741 #:tests? #f))
4742 (native-inputs
4743 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4744 ("pkg-config" ,pkg-config)
4745 ("intltool" ,intltool)
4746 ("xsltproc" ,libxslt)
4747 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4748 ("docbook-xml" ,docbook-xml-4.2)
4749 ("docbook-xsl" ,docbook-xsl)))
4750 (inputs
4751 `(("alsa-lib" ,alsa-lib)
4752 ("colord" ,colord)
4753 ("libgudev" ,libgudev)
4754 ("upower" ,upower)
4755 ("polkit" ,polkit)
4756 ("pulseaudio" ,pulseaudio)
4757 ("libcanberra" ,libcanberra)
4758 ("libx11" ,libx11)
4759 ("libxtst" ,libxtst)
4760 ("lcms" ,lcms)
4761 ("libnotify" ,libnotify)
4762 ("geoclue" ,geoclue)
4763 ("geocode-glib" ,geocode-glib)
4764 ("libgweather" ,libgweather)
4765 ("gnome-desktop" ,gnome-desktop)
4766 ("nss" ,nss)
4767 ("cups" ,cups)
4768 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4769 ("libwacom" ,libwacom)
4770 ("librsvg" ,librsvg)
4771 ("xf86-input-wacom" ,xf86-input-wacom)
4772 ("wayland" ,wayland)
4773 ("network-manager" ,network-manager)
4774 ("gcr" ,gcr)
4775 ("modem-manager" ,modem-manager)))
4776 (home-page "https://www.gnome.org")
4777 (synopsis "GNOME settings daemon")
4778 (description
4779 "This package contains the daemon responsible for setting the various
4780 parameters of a GNOME session and the applications that run under it. It
4781 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4782 settings, themes, mouse settings, and startup of other daemons.")
4783 (license license:gpl2+)))
4784
4785 (define-public totem-pl-parser
4786 (package
4787 (name "totem-pl-parser")
4788 (version "3.26.3")
4789 (source (origin
4790 (method url-fetch)
4791 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4792 (version-major+minor version) "/"
4793 "totem-pl-parser-" version ".tar.xz"))
4794 (sha256
4795 (base32
4796 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4797 (build-system meson-build-system)
4798 (arguments
4799 ;; FIXME: Tests require gvfs.
4800 `(#:tests? #f))
4801 (native-inputs
4802 `(("intltool" ,intltool)
4803 ("glib" ,glib "bin")
4804 ("gobject-introspection" ,gobject-introspection)
4805 ("pkg-config" ,pkg-config)))
4806 (propagated-inputs
4807 `(("glib" ,glib)
4808 ("gmime" ,gmime)
4809 ("libarchive" ,libarchive)
4810 ("libgcrypt" ,libgcrypt)
4811 ("libxml2" ,libxml2)))
4812 (inputs
4813 `(("libsoup" ,libsoup)))
4814 (home-page "https://projects.gnome.org/totem")
4815 (synopsis "Library to parse and save media playlists for GNOME")
4816 (description "Totem-pl-parser is a GObjects-based library to parse and save
4817 playlists in a variety of formats.")
4818 (license license:lgpl2.0+)))
4819
4820 (define-public aisleriot
4821 (package
4822 (name "aisleriot")
4823 (version "3.22.9")
4824 (source (origin
4825 (method url-fetch)
4826 (uri (string-append "mirror://gnome/sources/aisleriot/"
4827 (version-major+minor version) "/"
4828 "aisleriot-" version ".tar.xz"))
4829 (sha256
4830 (base32
4831 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4832 (build-system glib-or-gtk-build-system)
4833 (arguments
4834 '(#:configure-flags
4835 '("--with-platform=gtk-only"
4836 "--with-card-theme-formats=svg")))
4837 (native-inputs
4838 `(("desktop-file-utils" ,desktop-file-utils)
4839 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4840 ("intltool" ,intltool)
4841 ("itstool" ,itstool)
4842 ("pkg-config" ,pkg-config)
4843 ("xmllint" ,libxml2)))
4844 (inputs
4845 `(("gtk+" ,gtk+)
4846 ("guile" ,guile-2.2)
4847 ("libcanberra" ,libcanberra)
4848 ("librsvg" ,librsvg)))
4849 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4850 (synopsis "Solitaire card games")
4851 (description
4852 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4853 which are easy to play with the aid of a mouse.")
4854 (license license:gpl3+)))
4855
4856 (define-public amtk
4857 (package
4858 (name "amtk")
4859 (version "5.0.2")
4860 (source (origin
4861 (method url-fetch)
4862 (uri (string-append "mirror://gnome/sources/amtk/"
4863 (version-major+minor version) "/"
4864 "amtk-" version ".tar.xz"))
4865 (sha256
4866 (base32
4867 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
4868 (build-system gnu-build-system)
4869 (arguments
4870 '(#:configure-flags '("--enable-gtk-doc")))
4871 (native-inputs
4872 `(("gobject-introspection" ,gobject-introspection)
4873 ("glib:bin" ,glib "bin") ; for glib-mkenums
4874 ("gtk-doc" ,gtk-doc)
4875 ("pkg-config" ,pkg-config)))
4876 (inputs
4877 `(("glib" ,glib)
4878 ("gtk+" ,gtk+)))
4879 (home-page "https://wiki.gnome.org/Projects/Amtk")
4880 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4881 (description
4882 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4883 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4884 both a traditional UI or a modern UI with a GtkHeaderBar.")
4885 (license license:lgpl2.1+)))
4886
4887 (define-public devhelp
4888 (package
4889 (name "devhelp")
4890 (version "3.34.0")
4891 (source (origin
4892 (method url-fetch)
4893 (uri (string-append "mirror://gnome/sources/" name "/"
4894 (version-major+minor version) "/"
4895 name "-" version ".tar.xz"))
4896 (sha256
4897 (base32
4898 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
4899 (build-system meson-build-system)
4900 (arguments
4901 '(#:glib-or-gtk? #t
4902 #:phases
4903 (modify-phases %standard-phases
4904 (add-after 'unpack 'skip-gtk-update-icon-cache
4905 ;; Don't create 'icon-theme.cache'.
4906 (lambda _
4907 (substitute* "meson_post_install.py"
4908 (("gtk-update-icon-cache") "true"))
4909 #t)))))
4910 (native-inputs
4911 `(("intltool" ,intltool)
4912 ("itstool" ,itstool)
4913 ("gobject-introspection" ,gobject-introspection)
4914 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4915 ("pkg-config" ,pkg-config)))
4916 (inputs
4917 `(("amtk" ,amtk)
4918 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4919 ("webkitgtk" ,webkitgtk)))
4920 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4921 (synopsis "API documentation browser for GNOME")
4922 (description
4923 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4924 natively with GTK-Doc (the API reference system developed for GTK+ and used
4925 throughout GNOME for API documentation).")
4926 (license license:gpl2+)))
4927
4928 (define-public cogl
4929 (package
4930 (name "cogl")
4931 (version "1.22.8")
4932 (source
4933 (origin
4934 (method url-fetch)
4935 (uri (string-append "mirror://gnome/sources/cogl/"
4936 (version-major+minor version) "/"
4937 "cogl-" version ".tar.xz"))
4938 (sha256
4939 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
4940 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4941 ;; cogl, corresponding changes may be appropriate in mutter as well.
4942 (build-system gnu-build-system)
4943 (native-inputs
4944 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4945 ("gobject-introspection" ,gobject-introspection)
4946 ("xorg-server" ,xorg-server-for-tests)
4947 ("pkg-config" ,pkg-config)))
4948 (propagated-inputs
4949 `(("glib" ,glib)
4950 ("gdk-pixbuf" ,gdk-pixbuf)
4951 ("libx11" ,libx11)
4952 ("libxext" ,libxext)
4953 ("libxfixes" ,libxfixes)
4954 ("libxdamage" ,libxdamage)
4955 ("libxcomposite" ,libxcomposite)
4956 ("libxrandr" ,libxrandr)))
4957 (inputs
4958 `(("mesa" ,mesa)
4959 ("cairo" ,cairo)
4960 ("pango" ,pango)
4961 ("gstreamer" ,gstreamer)
4962 ("gst-plugins-base" ,gst-plugins-base)
4963 ("wayland" ,wayland)))
4964 (arguments
4965 `(#:disallowed-references (,xorg-server-for-tests)
4966 #:configure-flags (list "--enable-cogl-gst"
4967 "--enable-wayland-egl-platform"
4968 "--enable-wayland-egl-server"
4969
4970 ;; Arrange to pass an absolute file name to
4971 ;; dlopen for libGL.so.
4972 (string-append "--with-gl-libname="
4973 (assoc-ref %build-inputs "mesa")
4974 "/lib/libGL.so"))
4975 #:phases
4976 (modify-phases %standard-phases
4977 (add-after 'unpack 'fix-build-with-mesa-20
4978 (lambda _
4979 ;; Work around a problem with Mesa 20 where some macros used by
4980 ;; Cogl went missing from eglext.h. This can likely be removed
4981 ;; for newer versions of Cogl or Mesa.
4982 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
4983 (substitute* '("configure"
4984 "cogl/winsys/cogl-winsys-egl-kms.c")
4985 (("#include <EGL/eglext.h>" all)
4986 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
4987 #t))
4988 (add-before 'check 'start-xorg-server
4989 (lambda* (#:key tests? inputs #:allow-other-keys)
4990 (if tests?
4991 (begin
4992 ;; The test suite requires a running X server.
4993 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4994 (assoc-ref inputs "xorg-server")))
4995 (setenv "DISPLAY" ":1")
4996 #t)
4997 (format #t "test suite not run~%"))
4998 #t)))))
4999 (home-page "https://www.cogl3d.org")
5000 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
5001 (description
5002 "Cogl is a small library for using 3D graphics hardware to draw pretty
5003 pictures. The API departs from the flat state machine style of OpenGL and is
5004 designed to make it easy to write orthogonal components that can render
5005 without stepping on each others toes.")
5006 (license (list license:expat ; most of the code
5007 license:bsd-3 ; cogl/cogl-point-in-poly.c
5008 license:sgifreeb2.0 ; cogl-path/tesselator/
5009 license:asl2.0)))) ; examples/android/
5010
5011 (define-public clutter
5012 (package
5013 (name "clutter")
5014 (version "1.26.2")
5015 (source
5016 (origin
5017 (method url-fetch)
5018 (uri (string-append "mirror://gnome/sources/" name "/"
5019 (version-major+minor version) "/"
5020 name "-" version ".tar.xz"))
5021 (sha256
5022 (base32
5023 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
5024 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
5025 ;; to clutter, corresponding changes may be appropriate in mutter as well.
5026 (build-system gnu-build-system)
5027 (outputs '("out"
5028 "doc")) ;9 MiB of gtk-doc HTML pages
5029 (native-inputs
5030 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
5031 ("gobject-introspection" ,gobject-introspection)
5032 ("pkg-config" ,pkg-config)
5033 ("xsltproc" ,libxslt)))
5034 (propagated-inputs
5035 `(("cogl" ,cogl)
5036 ("cairo" ,cairo)
5037 ("atk" ,atk)
5038 ("gtk+" ,gtk+)
5039 ("json-glib" ,json-glib)
5040 ("glib" ,glib)
5041 ("libxcomposite" ,libxcomposite)
5042 ("libxdamage" ,libxdamage)
5043 ("libxext" ,libxext)
5044 ("xinput" ,xinput)))
5045 (inputs
5046 `(("libxkbcommon" ,libxkbcommon)
5047 ("udev" ,eudev)))
5048 (arguments
5049 `(#:configure-flags (list "--enable-x11-backend=yes"
5050
5051 ;; This produces share/doc/{clutter,cally}.
5052 (string-append "--with-html-dir="
5053 (assoc-ref %outputs "doc")
5054 "/share/doc"))
5055 ;; XXX FIXME: Get test suite working. It would probably fail in the
5056 ;; same way the cogl tests fail, since clutter is based on cogl.
5057 #:tests? #f))
5058 (home-page "http://www.clutter-project.org")
5059 (synopsis "OpenGL-based interactive canvas library")
5060 (description
5061 "Clutter is an OpenGL-based interactive canvas library, designed for
5062 creating fast, mainly 2D single window applications such as media box UIs,
5063 presentations, kiosk style applications and so on.")
5064 (license license:lgpl2.0+)))
5065
5066 (define-public clutter-gtk
5067 (package
5068 (name "clutter-gtk")
5069 (version "1.8.4")
5070 (source
5071 (origin
5072 (method url-fetch)
5073 (uri (string-append "mirror://gnome/sources/" name "/"
5074 (version-major+minor version) "/"
5075 name "-" version ".tar.xz"))
5076 (sha256
5077 (base32
5078 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
5079 (build-system gnu-build-system)
5080 (native-inputs
5081 `(("pkg-config" ,pkg-config)
5082 ("gobject-introspection" ,gobject-introspection)))
5083 (propagated-inputs
5084 ;; clutter-gtk.pc refers to all these.
5085 `(("clutter" ,clutter)
5086 ("gtk+" ,gtk+)))
5087 (home-page "http://www.clutter-project.org")
5088 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
5089 (description
5090 "Clutter is an OpenGL-based interactive canvas library, designed for
5091 creating fast, mainly 2D single window applications such as media box UIs,
5092 presentations, kiosk style applications and so on.")
5093 (license license:lgpl2.0+)))
5094
5095 (define-public clutter-gst
5096 (package
5097 (name "clutter-gst")
5098 (version "3.0.27")
5099 (source
5100 (origin
5101 (method url-fetch)
5102 (uri (string-append "mirror://gnome/sources/clutter-gst/"
5103 (version-major+minor version) "/"
5104 "clutter-gst-" version ".tar.xz"))
5105 (sha256
5106 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
5107 (build-system gnu-build-system)
5108 (native-inputs
5109 `(("glib:bin" ,glib "bin") ; for glib-mkenums
5110 ("pkg-config" ,pkg-config)
5111 ("gobject-introspection" ,gobject-introspection)))
5112 (inputs
5113 `(("clutter" ,clutter)
5114 ("gstreamer" ,gstreamer)
5115 ("gst-plugins-base" ,gst-plugins-base)))
5116 (home-page "http://www.clutter-project.org")
5117 (synopsis "Integration library for using GStreamer with Clutter")
5118 (description
5119 "Clutter-Gst is an integration library for using GStreamer with Clutter.
5120 It provides a GStreamer sink to upload frames to GL and an actor that
5121 implements the ClutterGstPlayer interface using playbin. Clutter is an
5122 OpenGL-based interactive canvas library.")
5123 (license license:lgpl2.0+)))
5124
5125 (define-public libchamplain
5126 (package
5127 (name "libchamplain")
5128 (version "0.12.16")
5129 (source (origin
5130 (method url-fetch)
5131 (uri (string-append
5132 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
5133 version ".tar.xz"))
5134 (sha256
5135 (base32
5136 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
5137 (build-system gnu-build-system)
5138 (arguments '(#:configure-flags '("--enable-vala")))
5139 (native-inputs
5140 `(("gobject-introspection" ,gobject-introspection)
5141 ("pkg-config" ,pkg-config)
5142 ("vala" ,vala)))
5143 (propagated-inputs
5144 `(("libsoup" ,libsoup)
5145 ("sqlite" ,sqlite)
5146 ("clutter" ,clutter)
5147 ("clutter-gtk" ,clutter-gtk)
5148 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
5149 ("cairo" ,cairo)
5150 ("gtk+3" ,gtk+)
5151 ("glib" ,glib)))
5152 (home-page "https://projects.gnome.org/libchamplain/")
5153 (synopsis "C library providing a ClutterActor to display maps")
5154 (description
5155 "libchamplain is a C library providing a ClutterActor to display maps.
5156 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
5157 and Perl bindings are also available. It supports numerous free map sources
5158 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
5159 (license license:lgpl2.1+)))
5160
5161 (define-public gom
5162 (package
5163 (name "gom")
5164 (version "0.3.2")
5165 (source
5166 (origin
5167 (method url-fetch)
5168 (uri (string-append "mirror://gnome/sources/gom/"
5169 (version-major+minor version) "/"
5170 "gom-" version ".tar.xz"))
5171 (sha256
5172 (base32
5173 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
5174 (build-system gnu-build-system)
5175 (native-inputs
5176 `(("intltool" ,intltool)
5177 ("pkg-config" ,pkg-config)
5178 ("gobject-introspection" ,gobject-introspection)))
5179 (inputs
5180 `(("glib" ,glib)
5181 ("gdk-pixbuf" ,gdk-pixbuf)
5182 ("sqlite" ,sqlite)))
5183 ;; XXX TODO: Figure out how to run the test suite.
5184 (arguments `(#:tests? #f))
5185 (home-page "https://wiki.gnome.org/Projects/Gom")
5186 (synopsis "Object mapper from GObjects to SQLite")
5187 (description
5188 "Gom provides an object mapper from GObjects to SQLite. It helps you
5189 write applications that need to store structured data as well as make complex
5190 queries upon that data.")
5191 (license license:lgpl2.1+)))
5192
5193 (define-public libgnome-games-support
5194 (package
5195 (name "libgnome-games-support")
5196 (version "1.4.4")
5197 (source (origin
5198 (method url-fetch)
5199 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
5200 (version-major+minor version) "/"
5201 "libgnome-games-support-" version ".tar.xz"))
5202 (sha256
5203 (base32
5204 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5205 (build-system gnu-build-system)
5206 (arguments
5207 '(#:phases
5208 (modify-phases %standard-phases
5209 (add-before 'check 'pre-check
5210 (lambda _
5211 ;; Tests require a writable HOME.
5212 (setenv "HOME" (getcwd))
5213 #t)))))
5214 (native-inputs
5215 `(("intltool" ,intltool)
5216 ("pkg-config" ,pkg-config)
5217 ("vala" ,vala)))
5218 (propagated-inputs
5219 ;; Required by libgnome-games-support-1.0.pc
5220 `(("gtk+" ,gtk+)
5221 ("libgee" ,libgee)))
5222 (home-page "https://www.gnome.org/")
5223 (synopsis "Useful functionality shared among GNOME games")
5224 (description
5225 "libgnome-games-support is a small library intended for internal use by
5226 GNOME Games, but it may be used by others.")
5227 (license license:lgpl3+)))
5228
5229 (define-public gnome-klotski
5230 (package
5231 (name "gnome-klotski")
5232 (version "3.34.0")
5233 (source (origin
5234 (method url-fetch)
5235 (uri (string-append "mirror://gnome/sources/" name "/"
5236 (version-major+minor version) "/"
5237 name "-" version ".tar.xz"))
5238 (sha256
5239 (base32
5240 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
5241 (build-system meson-build-system)
5242 (arguments
5243 '(#:glib-or-gtk? #t
5244 #:phases
5245 (modify-phases %standard-phases
5246 (add-after 'unpack 'skip-gtk-update-icon-cache
5247 ;; Don't create 'icon-theme.cache'.
5248 (lambda _
5249 (substitute* "build-aux/meson_post_install.py"
5250 (("gtk-update-icon-cache") (which "true")))
5251 #t)))))
5252 (native-inputs
5253 `(("desktop-file-utils" ,desktop-file-utils)
5254 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5255 ("intltool" ,intltool)
5256 ("itstool" ,itstool)
5257 ("pkg-config" ,pkg-config)
5258 ("vala" ,vala)
5259 ("xmllint" ,libxml2)))
5260 (inputs
5261 `(("gtk+" ,gtk+)
5262 ("libgnome-games-support" ,libgnome-games-support)
5263 ("librsvg" ,librsvg)))
5264 (home-page "https://wiki.gnome.org/Apps/Klotski")
5265 (synopsis "Sliding block puzzles")
5266 (description
5267 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
5268 the patterned block to the area bordered by green markers. To do so, you will
5269 need to slide other blocks out of the way. Complete each puzzle in as few moves
5270 as possible!")
5271 (license license:gpl2+)))
5272
5273 (define-public grilo
5274 (package
5275 (name "grilo")
5276 (version "0.3.10")
5277 (source
5278 (origin
5279 (method url-fetch)
5280 (uri (string-append "mirror://gnome/sources/" name "/"
5281 (version-major+minor version) "/"
5282 name "-" version ".tar.xz"))
5283 (sha256
5284 (base32
5285 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
5286 (build-system meson-build-system)
5287 (native-inputs
5288 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
5289 ("intltool" ,intltool)
5290 ("pkg-config" ,pkg-config)
5291 ("gobject-introspection" ,gobject-introspection)
5292 ("gtk-doc" ,gtk-doc)
5293 ("vala" ,vala)))
5294 (inputs
5295 `(("cyrus-sasl" ,cyrus-sasl)
5296 ("glib" ,glib)
5297 ("gtk+" ,gtk+)
5298 ("libxml2" ,libxml2)
5299 ("liboauth" ,liboauth)
5300 ("libsoup" ,libsoup)
5301 ("totem-pl-parser" ,totem-pl-parser)))
5302 (native-search-paths
5303 (list (search-path-specification
5304 (variable "GRL_PLUGIN_PATH")
5305 (files (list (string-append "lib/grilo-"
5306 (version-major+minor version)))))))
5307 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
5308 (synopsis "Framework for discovering and browsing media")
5309 (description
5310 "Grilo is a framework focused on making media discovery and browsing easy
5311 for application developers.")
5312 (license license:lgpl2.1+)))
5313
5314 (define-public grilo-plugins
5315 (package
5316 (name "grilo-plugins")
5317 (version "0.3.10")
5318 (source
5319 (origin
5320 (method url-fetch)
5321 (uri (string-append "mirror://gnome/sources/" name "/"
5322 (version-major+minor version) "/"
5323 name "-" version ".tar.xz"))
5324 (sha256
5325 (base32
5326 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
5327 (build-system meson-build-system)
5328 (native-inputs
5329 `(("gettext" ,gettext-minimal)
5330 ("glib:bin" ,glib "bin")
5331 ("gtk+:bin" ,gtk+ "bin")
5332 ("itstool" ,itstool)
5333 ("pkg-config" ,pkg-config)))
5334 ;; TODO: ahavi, gstreamer
5335 (inputs
5336 `(("grilo" ,grilo)
5337 ;("gmime" ,gmime) ; unused
5338 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
5339 ("gom" ,gom)
5340 ;("gssdp" ,gssdp) ; unused
5341 ;("gupnp" ,gupnp) ; unused
5342 ;("gupnp-av" ,gupnp-av) ; unused
5343 ("json-glib" ,json-glib)
5344 ("avahi" ,avahi)
5345 ("libgdata" ,libgdata)
5346 ("libmediaart" ,libmediaart)
5347 ;("librest" ,rest) ; unused
5348 ("libsoup" ,libsoup)
5349 ("totam-pl-parser" ,totem-pl-parser)
5350 ("tracker" ,tracker))) ; unused because it's too old
5351 (arguments
5352 `(#:glib-or-gtk? #t
5353 ;;Disable lua-factory as it needs missing dependencies
5354 #:configure-flags '("-Denable-lua-factory=no")))
5355 (home-page "https://live.gnome.org/Grilo")
5356 (synopsis "Plugins for the Grilo media discovery library")
5357 (description
5358 "Grilo is a framework focused on making media discovery and browsing easy
5359 for application developers. This package provides plugins for common media
5360 discovery protocols.")
5361 (license license:lgpl2.1+)))
5362
5363 (define-public totem
5364 (package
5365 (name "totem")
5366 (version "3.34.1")
5367 (source
5368 (origin
5369 (method url-fetch)
5370 (uri (string-append "mirror://gnome/sources/totem/"
5371 (version-major+minor version) "/"
5372 "totem-" version ".tar.xz"))
5373 (sha256
5374 (base32
5375 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
5376 (build-system meson-build-system)
5377 (native-inputs
5378 `(("pkg-config" ,pkg-config)
5379 ("desktop-file-utils" ,desktop-file-utils)
5380 ("gobject-introspection" ,gobject-introspection)
5381 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
5382 ("intltool" ,intltool)
5383 ("itstool" ,itstool)
5384 ("xmllint" ,libxml2)
5385 ("xorg-server" ,xorg-server-for-tests)))
5386 (propagated-inputs
5387 `(("dconf" ,dconf)))
5388 (inputs
5389 `(("gtk+" ,gtk+)
5390 ("gdk-pixbuf" ,gdk-pixbuf)
5391 ("atk" ,atk)
5392 ("cairo" ,cairo)
5393 ("dbus-glib" ,dbus-glib)
5394 ("clutter" ,clutter)
5395 ("clutter-gtk" ,clutter-gtk)
5396 ("clutter-gst" ,clutter-gst)
5397 ("xorgproto" ,xorgproto)
5398 ("libxxf86vm" ,libxxf86vm)
5399 ("libxtst" ,libxtst)
5400 ("libxrandr" ,libxrandr)
5401 ("libxml2" ,libxml2)
5402 ("libsoup" ,libsoup)
5403 ("libpeas" ,libpeas)
5404 ("librsvg" ,librsvg)
5405 ("lirc" ,lirc)
5406 ("gnome-desktop" ,gnome-desktop)
5407 ("gstreamer" ,gstreamer)
5408 ("gst-plugins-base" ,gst-plugins-base)
5409 ("gst-plugins-good" ,gst-plugins-good)
5410 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5411 ("adwaita-icon-theme" ,adwaita-icon-theme)
5412 ("python" ,python)
5413 ("python-pygobject" ,python-pygobject)
5414 ("totem-pl-parser" ,totem-pl-parser)
5415 ("grilo" ,grilo)
5416 ("grilo-plugins" ,grilo-plugins)
5417 ("vala" ,vala)))
5418 (arguments
5419 `(#:glib-or-gtk? #t
5420
5421 ;; Disable automatic GStreamer plugin installation via PackageKit and
5422 ;; all that.
5423 #:configure-flags '("-D" "enable-easy-codec-installation=no"
5424
5425 ;; Do not build .a files for the plugins, it's
5426 ;; completely useless. This saves 2 MiB.
5427 "--default-library" "shared")
5428 #:phases
5429 (modify-phases %standard-phases
5430 (add-after 'unpack 'skip-gtk-update-icon-cache
5431 ;; Don't create 'icon-theme.cache'.
5432 (lambda _
5433 (substitute* "meson_post_install.py"
5434 (("gtk-update-icon-cache") "true"))
5435 #t))
5436 (add-before
5437 'install 'disable-cache-generation
5438 (lambda _
5439 (setenv "DESTDIR" "/")
5440 #t))
5441 (add-before
5442 'check 'pre-check
5443 (lambda _
5444 ;; Tests require a running X server.
5445 (system "Xvfb :1 &")
5446 (setenv "DISPLAY" ":1")
5447 #t))
5448 (add-after
5449 'install 'wrap-totem
5450 (lambda* (#:key inputs outputs #:allow-other-keys)
5451 (let ((out (assoc-ref outputs "out"))
5452 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5453 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5454 (wrap-program (string-append out "/bin/totem")
5455 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5456 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5457 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5458 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
5459 #t)))))
5460 (home-page "https://wiki.gnome.org/Apps/Videos")
5461 (synopsis "Simple media player for GNOME based on GStreamer")
5462 (description "Totem is a simple yet featureful media player for GNOME
5463 which can read a large number of file formats.")
5464 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5465 ;; to be used and distributed together with GStreamer and Totem. See
5466 ;; file://COPYING in the source distribution for details.
5467 (license license:gpl2+)))
5468
5469 (define-public rhythmbox
5470 (package
5471 (name "rhythmbox")
5472 (version "3.4.4")
5473 (source (origin
5474 (method url-fetch)
5475 (uri (string-append "mirror://gnome/sources/rhythmbox/"
5476 (version-major+minor version) "/"
5477 "rhythmbox-" version ".tar.xz"))
5478 (sha256
5479 (base32
5480 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
5481 (build-system glib-or-gtk-build-system)
5482 (arguments
5483 `(#:configure-flags
5484 (list "--enable-lirc"
5485 "--enable-python"
5486 "--enable-vala"
5487 "--with-brasero"
5488 "--with-gudev"
5489 "--with-libsecret")
5490 #:phases
5491 (modify-phases %standard-phases
5492 (add-after
5493 'install 'wrap-rhythmbox
5494 (lambda* (#:key inputs outputs #:allow-other-keys)
5495 (let ((out (assoc-ref outputs "out"))
5496 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5497 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5498 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5499 (python-path (getenv "PYTHONPATH")))
5500 (wrap-program (string-append out "/bin/rhythmbox")
5501 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5502 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5503 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5504 `("PYTHONPATH" ":" prefix (,python-path))))
5505 #t)))))
5506 (propagated-inputs
5507 `(("dconf" ,dconf)))
5508 (native-inputs
5509 `(("itstool" ,itstool)
5510 ("intltool" ,intltool)
5511 ("glib" ,glib "bin")
5512 ("gobject-introspection" ,gobject-introspection)
5513 ("desktop-file-utils" ,desktop-file-utils)
5514 ("pkg-config" ,pkg-config)
5515 ("xmllint" ,libxml2)))
5516 (inputs
5517 `(("json-glib" ,json-glib)
5518 ("tdb" ,tdb)
5519 ("gnome-desktop" ,gnome-desktop)
5520 ("python" ,python)
5521 ("python-pygobject" ,python2-pygobject)
5522 ("vala" ,vala)
5523 ("gmime" ,gmime)
5524 ("adwaita-icon-theme" ,adwaita-icon-theme)
5525 ("grilo" ,grilo)
5526 ("grilo-plugins" ,grilo-plugins)
5527 ("gstreamer" ,gstreamer)
5528 ("gst-plugins-base" ,gst-plugins-base)
5529 ("gst-plugins-good" ,gst-plugins-good)
5530 ("totem-pl-parser" ,totem-pl-parser)
5531 ("libgudev" ,libgudev)
5532 ;;("libmtp" ,libmtp) FIXME: Not detected
5533 ("libsecret" ,libsecret)
5534 ("libsoup" ,libsoup)
5535 ("libnotify" ,libnotify)
5536 ("libpeas" ,libpeas)
5537 ("lirc" ,lirc)
5538 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5539 ;;("clutter" ,clutter)
5540 ;;("clutter-gtk" ,clutter-gtk)
5541 ;;("clutter-gst" ,clutter-gst)
5542 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5543 ("atk" ,atk)
5544 ("pango" ,pango)
5545 ("gtk+" ,gtk+)
5546 ;; TODO:
5547 ;; * libgpod
5548 ;; * mx
5549 ("brasero" ,brasero)))
5550 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5551 (synopsis "Music player for GNOME")
5552 (description "Rhythmbox is a music playing application for GNOME. It
5553 supports playlists, song ratings, and any codecs installed through gstreamer.")
5554 (license license:gpl2+)))
5555
5556 (define-public eog
5557 (package
5558 (name "eog")
5559 (version "3.34.1")
5560 (source (origin
5561 (method url-fetch)
5562 (uri (string-append "mirror://gnome/sources/" name "/"
5563 (version-major+minor version) "/"
5564 name "-" version ".tar.xz"))
5565 (sha256
5566 (base32
5567 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5568 (build-system meson-build-system)
5569 (arguments
5570 `(#:configure-flags
5571 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5572 (list (string-append "-Dc_link_args=-Wl,-rpath="
5573 (assoc-ref %outputs "out") "/lib/eog"))
5574 #:phases
5575 (modify-phases %standard-phases
5576 (add-after 'unpack 'skip-gtk-update-icon-cache
5577 ;; Don't create 'icon-theme.cache'.
5578 (lambda _
5579 (substitute* "meson_post_install.py"
5580 (("gtk-update-icon-cache") "true"))
5581 #t))
5582 (add-after 'install 'wrap-eog
5583 (lambda* (#:key outputs #:allow-other-keys)
5584 (let ((out (assoc-ref outputs "out"))
5585 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5586 (wrap-program (string-append out "/bin/eog")
5587 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5588 #t)))))
5589 (propagated-inputs
5590 `(("dconf" ,dconf)))
5591 (native-inputs
5592 `(("intltool" ,intltool)
5593 ("itstool" ,itstool)
5594 ("glib" ,glib "bin")
5595 ("gobject-introspection" ,gobject-introspection)
5596 ("pkg-config" ,pkg-config)
5597 ("xmllint" ,libxml2)))
5598 (inputs
5599 `(("gnome-desktop" ,gnome-desktop)
5600 ("shared-mime-info" ,shared-mime-info)
5601 ("adwaita-icon-theme" ,adwaita-icon-theme)
5602 ("exempi" ,exempi)
5603 ("lcms" ,lcms)
5604 ("libexif" ,libexif)
5605 ("libpeas" ,libpeas)
5606 ("libjpeg" ,libjpeg-turbo)
5607 ("librsvg" ,librsvg-next)
5608 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5609 ("gtk+" ,gtk+)))
5610 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5611 (synopsis "GNOME image viewer")
5612 (description "Eye of GNOME is the GNOME image viewer. It
5613 supports image conversion, rotation, and slideshows.")
5614 (license license:gpl2+)))
5615
5616 (define-public eog-plugins
5617 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5618 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5619 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5620 ;; 'XDG_DATA_DIRS' appropriately set.
5621 (package
5622 (name "eog-plugins")
5623 (version "3.26.4")
5624 (source (origin
5625 (method url-fetch)
5626 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5627 (version-major+minor version) "/"
5628 "eog-plugins-" version ".tar.xz"))
5629 (sha256
5630 (base32
5631 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5632 (build-system gnu-build-system)
5633 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5634 (synopsis "Extensions for the Eye of GNOME image viewer")
5635 (native-inputs
5636 `(("pkg-config" ,pkg-config)
5637 ("gettext" ,gettext-minimal)))
5638 (inputs
5639 `(("eog" ,eog)
5640 ("glib" ,glib)
5641 ("gtk+" ,gtk+)
5642 ("libpeas" ,libpeas)
5643 ("libexif" ,libexif)
5644 ("libchamplain" ,libchamplain)))
5645 (description
5646 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5647 notably:
5648
5649 @itemize
5650 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5651 @item @dfn{Map}, which displays a map of where the picture was taken on the
5652 side panel;
5653 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5654 @end itemize\n")
5655
5656 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5657 ;; long suspicious byte stream that goes to a
5658 ;; ".gresource.eog_postasa_plugin" ELF section.
5659 (license license:gpl2+)))
5660
5661 (define-public libgudev
5662 (package
5663 (name "libgudev")
5664 (version "232")
5665 (source (origin
5666 (method url-fetch)
5667 (uri (string-append "mirror://gnome/sources/" name "/"
5668 version "/" name "-" version ".tar.xz"))
5669 (sha256
5670 (base32
5671 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5672 (build-system gnu-build-system)
5673 (arguments
5674 '(#:configure-flags
5675 ;; umockdev depends on libgudev.
5676 (list "--disable-umockdev")))
5677 (native-inputs
5678 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5679 ("gobject-introspection" ,gobject-introspection)
5680 ("pkg-config" ,pkg-config)))
5681 (propagated-inputs
5682 `(("glib" ,glib))) ; required by gudev-1.0.pc
5683 (inputs
5684 `(("udev" ,eudev)))
5685 (home-page "https://wiki.gnome.org/Projects/libgudev")
5686 (synopsis "GObject bindings for libudev")
5687 (description
5688 "This library provides GObject bindings for libudev. It was originally
5689 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5690 (license license:lgpl2.1+)))
5691
5692 (define-public gvfs
5693 (package
5694 (name "gvfs")
5695 (version "1.40.1")
5696 (source (origin
5697 (method url-fetch)
5698 (uri (string-append "mirror://gnome/sources/gvfs/"
5699 (version-major+minor version) "/"
5700 "gvfs-" version ".tar.xz"))
5701 (sha256
5702 (base32
5703 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
5704 ;; This patch may be removed when upgrading to version 1.46.x.
5705 (patches
5706 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
5707 (build-system meson-build-system)
5708 (arguments
5709 '(#:glib-or-gtk? #t
5710 #:configure-flags
5711 (list "-Dsystemduserunitdir=no"
5712 "-Dtmpfilesdir=no"
5713 ;; Otherwise, the RUNPATH will lack the final path component.
5714 (string-append "-Dc_link_args=-Wl,-rpath="
5715 (assoc-ref %outputs "out") "/lib/gvfs"))))
5716 (native-inputs
5717 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5718 ("gettext" ,gettext-minimal)
5719 ("gtk-doc" ,gtk-doc)
5720 ("pkg-config" ,pkg-config)
5721 ("xsltproc" ,libxslt)))
5722 (inputs
5723 `(("avahi" ,avahi)
5724 ("docbook-xml" ,docbook-xml-4.2)
5725 ("docbook-xsl" ,docbook-xsl)
5726 ("dbus" ,dbus)
5727 ("elogind" ,elogind)
5728 ("fuse" ,fuse)
5729 ("gcr" ,gcr)
5730 ("glib" ,glib)
5731 ("gnome-online-accounts" ,gnome-online-accounts)
5732 ("libarchive" ,libarchive)
5733 ("libbluray" ,libbluray)
5734 ("libcap" ,libcap)
5735 ("libcdio-paranoia" ,libcdio-paranoia)
5736 ("libgcrypt" ,libgcrypt)
5737 ("libgdata" ,libgdata)
5738 ("libgphoto2" ,libgphoto2)
5739 ("libgudev" ,libgudev)
5740 ("libimobiledevice" ,libimobiledevice)
5741 ("libmtp" ,libmtp)
5742 ("libnfs" ,libnfs)
5743 ("libsecret" ,libsecret)
5744 ("libsmbclient" ,samba)
5745 ("libsoup" ,libsoup)
5746 ("libxml2" ,libxml2)
5747 ("openssh" ,openssh)
5748 ("polkit" ,polkit)
5749 ("udisks" ,udisks)))
5750 (home-page "https://wiki.gnome.org/gvfs/")
5751 (synopsis "Userspace virtual file system for GIO")
5752 (description
5753 "GVFS is a userspace virtual file system designed to work with the I/O
5754 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5755 to all applications using the GIO API. It also supports exposing the GVFS
5756 mounts to non-GIO applications using FUSE.
5757
5758 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5759 DAV, and others.")
5760 (license license:lgpl2.0+)))
5761
5762 (define-public gusb
5763 (package
5764 (name "gusb")
5765 (version "0.3.0")
5766 (source (origin
5767 (method git-fetch)
5768 (uri (git-reference
5769 (url "https://github.com/hughsie/libgusb")
5770 (commit version)))
5771 (file-name (git-file-name name version))
5772 (sha256
5773 (base32
5774 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5775 (build-system meson-build-system)
5776 (native-inputs
5777 `(("gobject-introspection" ,gobject-introspection)
5778 ("pkg-config" ,pkg-config)
5779 ("vala" ,vala)
5780 ("gtk-doc" ,gtk-doc)))
5781 (propagated-inputs
5782 ;; Both of these are required by gusb.pc.
5783 `(("glib" ,glib)
5784 ("libusb" ,libusb)))
5785 (arguments
5786 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5787 (home-page "https://github.com/hughsie/libgusb")
5788 (synopsis "GLib binding for libusb1")
5789 (description
5790 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5791 asynchronous control, bulk and interrupt transfers with proper cancellation
5792 and integration into a mainloop. This makes it easy to integrate low level
5793 USB transfers with your high-level application or system daemon.")
5794 (license license:lgpl2.1+)))
5795
5796 (define-public simple-scan
5797 (package
5798 (name "simple-scan")
5799 (version "3.36.3")
5800 (source
5801 (origin
5802 (method url-fetch)
5803 (uri (string-append "mirror://gnome/sources/simple-scan/"
5804 (version-major+minor version) "/"
5805 "simple-scan-" version ".tar.xz"))
5806 (sha256
5807 (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
5808 (build-system meson-build-system)
5809 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5810 (arguments
5811 '(#:glib-or-gtk? #t))
5812 (inputs
5813 `(("gtk" ,gtk+)
5814 ("zlib" ,zlib)
5815 ("cairo" ,cairo)
5816 ("colord" ,colord)
5817 ("gdk-pixbuf" ,gdk-pixbuf)
5818 ("gusb" ,gusb)
5819 ("libsane" ,sane-backends)))
5820 (native-inputs
5821 `(("gettext" ,gettext-minimal)
5822 ("itstool" ,itstool)
5823 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5824 ("pkg-config" ,pkg-config)
5825 ("vala" ,vala)
5826 ("xmllint" ,libxml2)))
5827 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5828 (synopsis "Document and image scanner")
5829 (description
5830 "Document Scanner is an easy-to-use application that lets you connect your
5831 scanner and quickly capture images and documents in an appropriate format. It
5832 supports any scanner for which a suitable SANE driver is available, which is
5833 almost all of them.")
5834 (license license:gpl3+)))
5835
5836 (define-public eolie
5837 (package
5838 (name "eolie")
5839 (version "0.9.98.1")
5840 (source (origin
5841 (method url-fetch)
5842 (uri (string-append "https://adishatz.org/eolie/eolie-"
5843 version ".tar.xz"))
5844 (sha256
5845 (base32
5846 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
5847 (build-system meson-build-system)
5848 (arguments
5849 `(#:glib-or-gtk? #t
5850 #:phases
5851 (modify-phases %standard-phases
5852 (add-after 'unpack 'skip-gtk-update-icon-cache
5853 ;; Don't create 'icon-theme.cache'.
5854 (lambda _
5855 (substitute* "meson_post_install.py"
5856 (("gtk-update-icon-cache") "true"))
5857 #t))
5858 (add-after 'wrap 'wrap-more
5859 (lambda* (#:key inputs outputs #:allow-other-keys)
5860 (let* ((out (assoc-ref outputs "out"))
5861 ;; These libraries must be on LD_LIBRARY_PATH.
5862 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5863 "atk" "gtk+" "gsettings-desktop-schemas"
5864 "gobject-introspection"))
5865 (path (string-join
5866 (map (lambda (lib)
5867 (string-append (assoc-ref inputs lib) "/lib"))
5868 libs)
5869 ":")))
5870 (wrap-program (string-append out "/bin/eolie")
5871 `("LD_LIBRARY_PATH" ":" prefix (,path))
5872 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5873 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5874 #t)))))
5875 (native-inputs
5876 `(("intltool" ,intltool)
5877 ("itstool" ,itstool)
5878 ("pkg-config" ,pkg-config)
5879 ("python" ,python)
5880 ("glib:bin" ,glib "bin")))
5881 (inputs
5882 `(("gobject-introspection" ,gobject-introspection)
5883 ("glib-networking" ,glib-networking)
5884 ("cairo" ,cairo)
5885 ("gtk+" ,gtk+)
5886 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5887 ("python" ,python-wrapper)
5888 ("python-dateutil" ,python-dateutil)
5889 ("python-pyfxa" ,python-pyfxa)
5890 ("python-pygobject" ,python-pygobject)
5891 ("python-pycairo" ,python-pycairo)
5892 ("python-pycrypto" ,python-pycrypto)
5893 ("libsecret" ,libsecret)
5894 ("gtkspell3" ,gtkspell3)
5895 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5896 ("webkitgtk" ,webkitgtk)))
5897 (home-page "https://wiki.gnome.org/Apps/Eolie")
5898 (synopsis "Web browser for GNOME")
5899 (description
5900 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5901 a secret password store, an adblocker, and a modern UI.")
5902 (license license:gpl3+)))
5903
5904 (define-public epiphany
5905 (package
5906 (name "epiphany")
5907 (version "3.34.4")
5908 (source (origin
5909 (method url-fetch)
5910 (uri (string-append "mirror://gnome/sources/epiphany/"
5911 (version-major+minor version) "/"
5912 "epiphany-" version ".tar.xz"))
5913 (sha256
5914 (base32
5915 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
5916
5917 (build-system meson-build-system)
5918 (arguments
5919 '(#:glib-or-gtk? #t
5920 #:phases
5921 (modify-phases %standard-phases
5922 (add-after 'unpack 'skip-gtk-update-icon-cache
5923 ;; Don't create 'icon-theme.cache'.
5924 (lambda _
5925 (substitute* "post_install.py"
5926 (("gtk-update-icon-cache") "true"))
5927 #t))
5928 (add-after 'unpack 'disable-failing-tests
5929 (lambda _
5930 (substitute* "tests/meson.build"
5931 ;; embed_shell fails, because webkitgtk apparently no longer supports
5932 ;; overriding the ftp schema
5933 ;; web_app_utils fails due to missing network access
5934 (("(embed_shell|web_app_utils)_test,")
5935 "find_program('sh'), args: ['-c', 'exit 77'],"))
5936 #t))
5937 (add-before 'check 'pre-check
5938 (lambda _
5939 ;; Tests require a running X server.
5940 (system "Xvfb :1 &")
5941 (setenv "DISPLAY" ":1")
5942 #t)))
5943 #:configure-flags
5944 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5945 (list (string-append "-Dc_link_args=-Wl,-rpath="
5946 (assoc-ref %outputs "out") "/lib/epiphany"))))
5947 (propagated-inputs
5948 `(("dconf" ,dconf)))
5949 (native-inputs
5950 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5951 ("glib:bin" ,glib "bin") ; for glib-mkenums
5952 ("intltool" ,intltool)
5953 ("itstool" ,itstool)
5954 ("pkg-config" ,pkg-config)
5955 ("xmllint" ,libxml2)
5956 ("xorg-server" ,xorg-server-for-tests)))
5957 (inputs
5958 `(("avahi" ,avahi)
5959 ("gcr" ,gcr)
5960 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5961 ("glib-networking" ,glib-networking)
5962 ("gnome-desktop" ,gnome-desktop)
5963 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5964 ("json-glib" ,json-glib)
5965 ("iso-codes" ,iso-codes)
5966 ("libdazzle" ,libdazzle)
5967 ("libnotify" ,libnotify)
5968 ("libsecret" ,libsecret)
5969 ("libxslt" ,libxslt)
5970 ("nettle" ,nettle) ; for hogweed
5971 ("sqlite" ,sqlite)
5972 ("webkitgtk" ,webkitgtk)))
5973 (home-page "https://wiki.gnome.org/Apps/Web")
5974 (synopsis "GNOME web browser")
5975 (description
5976 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5977 principles are simplicity and standards compliance.")
5978 (license license:gpl2+)))
5979
5980 (define-public d-feet
5981 (package
5982 (name "d-feet")
5983 (version "0.3.14")
5984 (source (origin
5985 (method url-fetch)
5986 (uri (string-append "mirror://gnome/sources/" name "/"
5987 (version-major+minor version) "/"
5988 name "-" version ".tar.xz"))
5989 (sha256
5990 (base32
5991 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5992 (build-system glib-or-gtk-build-system)
5993 (arguments
5994 '(#:out-of-source? #f ; tests need to run in the source directory.
5995 #:phases
5996 (modify-phases %standard-phases
5997 (add-before
5998 'check 'pre-check
5999 (lambda _
6000 ;; The test suite requires a running X server.
6001 (system "Xvfb :1 &")
6002 (setenv "DISPLAY" ":1")
6003 ;; Don't fail on missing '/etc/machine-id'.
6004 (setenv "DBUS_FATAL_WARNINGS" "0")
6005 ;; tests.py and window.py don't meet E402:
6006 ;; E402 module level import not at top of file
6007 (substitute* "src/tests/Makefile"
6008 (("--ignore=E123") "--ignore=E123,E402"))
6009 #t))
6010 (add-after
6011 'install 'wrap-program
6012 (lambda* (#:key outputs #:allow-other-keys)
6013 (let ((prog (string-append (assoc-ref outputs "out")
6014 "/bin/d-feet")))
6015 (wrap-program prog
6016 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
6017 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
6018 #t))))))
6019 (native-inputs
6020 `(("intltool" ,intltool)
6021 ("itstool" ,itstool)
6022 ("pkg-config" ,pkg-config)
6023 ("python-pep8" ,python-pep8)
6024 ("xmllint" ,libxml2)
6025 ("xorg-server" ,xorg-server-for-tests)))
6026 (inputs
6027 `(("gobject-introspection" ,gobject-introspection)
6028 ("gtk+" ,gtk+)
6029 ("python" ,python-wrapper)
6030 ("hicolor-icon-theme" ,hicolor-icon-theme)
6031 ("python-pygobject" ,python-pygobject)))
6032 (home-page "https://wiki.gnome.org/Apps/DFeet")
6033 (synopsis "D-Bus debugger")
6034 (description
6035 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
6036 of running programs and invoke methods on those interfaces.")
6037 (license license:gpl2+)))
6038
6039 (define-public yelp-xsl
6040 (package
6041 (name "yelp-xsl")
6042 (version "3.34.2")
6043 (source (origin
6044 (method url-fetch)
6045 (uri (string-append "mirror://gnome/sources/" name "/"
6046 (version-major+minor version) "/"
6047 name "-" version ".tar.xz"))
6048 (sha256
6049 (base32
6050 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
6051 (build-system gnu-build-system)
6052 (native-inputs
6053 `(("gettext-minimal" ,gettext-minimal)
6054 ("itstool" ,itstool)
6055 ("xmllint" ,libxml2)))
6056 (home-page "https://wiki.gnome.org/Apps/Yelp")
6057 (synopsis "XSL stylesheets for Yelp")
6058 (description
6059 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
6060 to format Docbook and Mallard documents.")
6061 (license license:gpl2+)))
6062
6063 (define-public yelp
6064 (package
6065 (name "yelp")
6066 (version "3.32.2")
6067 (source (origin
6068 (method url-fetch)
6069 (uri (string-append "mirror://gnome/sources/" name "/"
6070 (version-major+minor version) "/"
6071 name "-" version ".tar.xz"))
6072 (sha256
6073 (base32
6074 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
6075 (build-system glib-or-gtk-build-system)
6076 (native-inputs
6077 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6078 ("intltool" ,intltool)
6079 ("itstool" ,itstool)
6080 ("pkg-config" ,pkg-config)))
6081 (propagated-inputs
6082 `(("dconf" ,dconf)))
6083 (inputs
6084 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6085 ("libxslt" ,libxslt)
6086 ("sqlite" ,sqlite)
6087 ("webkitgtk" ,webkitgtk)
6088 ("yelp-xsl" ,yelp-xsl)))
6089 (home-page "https://wiki.gnome.org/Apps/Yelp")
6090 (synopsis "GNOME help browser")
6091 (description
6092 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
6093 man, info, and HTML documents. It can locate documents according to the
6094 freedesktop.org help system specification.")
6095 (license license:gpl2+)))
6096
6097 (define-public yelp-tools
6098 (package
6099 (name "yelp-tools")
6100 (version "3.32.2")
6101 (source (origin
6102 (method url-fetch)
6103 (uri (string-append "mirror://gnome/sources/" name "/"
6104 (version-major+minor version) "/"
6105 name "-" version ".tar.xz"))
6106 (sha256
6107 (base32
6108 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
6109 (build-system gnu-build-system)
6110 (native-inputs
6111 `(("pkg-config" ,pkg-config)))
6112 (propagated-inputs
6113 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
6114 `(("itstool" ,itstool)
6115 ("xmllint" ,libxml2)
6116 ("xsltproc" ,libxslt)))
6117 (inputs
6118 `(("yelp-xsl" ,yelp-xsl)))
6119 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
6120 (synopsis "Yelp documentation tools")
6121 (description
6122 "Yelp-tools is a collection of scripts and build utilities to help create,
6123 manage, and publish documentation for Yelp and the web. Most of the heavy
6124 lifting is done by packages like yelp-xsl and itstool. This package just
6125 wraps things up in a developer-friendly way.")
6126 (license license:gpl2+)))
6127
6128 (define-public libgee
6129 (package
6130 (name "libgee")
6131 (version "0.20.3")
6132 (source (origin
6133 (method url-fetch)
6134 (uri (string-append "mirror://gnome/sources/libgee/"
6135 (version-major+minor version) "/"
6136 "libgee-" version ".tar.xz"))
6137 (sha256
6138 (base32
6139 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
6140 (build-system gnu-build-system)
6141 (arguments
6142 `(#:phases
6143 (modify-phases %standard-phases
6144 (add-after 'unpack 'fix-introspection-install-dir
6145 (lambda* (#:key outputs #:allow-other-keys)
6146 (let ((out (assoc-ref outputs "out")))
6147 (substitute* "gee/Makefile.in"
6148 (("@INTROSPECTION_GIRDIR@")
6149 (string-append out "/share/gir-1.0/"))
6150 (("@INTROSPECTION_TYPELIBDIR@")
6151 (string-append out "/lib/girepository-1.0/")))))))))
6152 (native-inputs
6153 `(("glib" ,glib "bin")
6154 ("pkg-config" ,pkg-config)))
6155 (inputs
6156 `(("glib" ,glib)
6157 ("gobject-introspection" ,gobject-introspection)))
6158 (home-page "https://wiki.gnome.org/Projects/Libgee")
6159 (synopsis "GObject collection library")
6160 (description
6161 "Libgee is a utility library providing GObject-based interfaces and
6162 classes for commonly used data structures.")
6163 (license license:lgpl2.1+)))
6164
6165 (define-public gexiv2
6166 (package
6167 (name "gexiv2")
6168 (version "0.12.1")
6169 (source (origin
6170 (method url-fetch)
6171 (uri (string-append "mirror://gnome/sources/" name "/"
6172 (version-major+minor version) "/"
6173 name "-" version ".tar.xz"))
6174 (sha256
6175 (base32
6176 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
6177 (build-system meson-build-system)
6178 (native-inputs
6179 `(("gcr" ,gcr)
6180 ("glib" ,glib "bin")
6181 ("pkg-config" ,pkg-config)
6182 ("vala" ,vala)))
6183 (propagated-inputs
6184 ;; Listed in "Requires" section of gexiv2.pc
6185 `(("exiv2" ,exiv2)))
6186 (inputs
6187 `(("glib" ,glib)
6188 ("gobject-introspection" ,gobject-introspection)))
6189 (home-page "https://wiki.gnome.org/Projects/gexiv2")
6190 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
6191 (description
6192 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
6193 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
6194 metadata in photo and video files of various formats.")
6195 (license license:gpl2+)))
6196
6197 (define-public shotwell
6198 (package
6199 (name "shotwell")
6200 (version "0.30.9")
6201 (source (origin
6202 (method url-fetch)
6203 (uri (string-append "mirror://gnome/sources/shotwell/"
6204 (version-major+minor version) "/"
6205 "shotwell-" version ".tar.xz"))
6206 (sha256
6207 (base32
6208 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
6209 (build-system meson-build-system)
6210 (arguments
6211 '(#:glib-or-gtk? #t
6212 #:phases
6213 (modify-phases %standard-phases
6214 (add-after 'unpack 'skip-gtk-update-icon-cache
6215 (lambda _
6216 (substitute* "build-aux/meson/postinstall.py"
6217 (("gtk-update-icon-cache") (which "true"))
6218 (("update-desktop-database") (which "true")))
6219 #t)))))
6220 (propagated-inputs
6221 `(("dconf" ,dconf)))
6222 (native-inputs
6223 `(("gettext" ,gettext-minimal)
6224 ("glib:bin" ,glib "bin")
6225 ("itstool" ,itstool)
6226 ("pkg-config" ,pkg-config)
6227 ("vala" ,vala)))
6228 (inputs
6229 `(("gcr" ,gcr)
6230 ("gexiv2" ,gexiv2)
6231 ("gst-plugins-base" ,gst-plugins-base)
6232 ("gstreamer" ,gstreamer)
6233 ("json-glib" ,json-glib)
6234 ("libgdata" ,libgdata)
6235 ("libgee" ,libgee)
6236 ("libgphoto2" ,libgphoto2)
6237 ("libgudev" ,libgudev)
6238 ("libraw" ,libraw)
6239 ("libsoup" ,libsoup)
6240 ("libxml2" ,libxml2)
6241 ("sqlite" ,sqlite)
6242 ("webkitgtk" ,webkitgtk)))
6243 (home-page "https://wiki.gnome.org/Apps/Shotwell")
6244 (synopsis "Photo manager for GNOME 3")
6245 (description
6246 "Shotwell is a digital photo manager designed for the GNOME desktop
6247 environment. It allows you to import photos from disk or camera, organize
6248 them by keywords and events, view them in full-window or fullscreen mode, and
6249 share them with others via social networking and more.")
6250 (license license:lgpl2.1+)))
6251
6252 (define-public file-roller
6253 (package
6254 (name "file-roller")
6255 (version "3.32.3")
6256 (source (origin
6257 (method url-fetch)
6258 (uri (string-append "mirror://gnome/sources/file-roller/"
6259 (version-major+minor version) "/"
6260 "file-roller-" version ".tar.xz"))
6261 (sha256
6262 (base32
6263 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
6264 (build-system meson-build-system)
6265 (native-inputs
6266 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6267 ("intltool" ,intltool)
6268 ("itstool" ,itstool)
6269 ("pkg-config" ,pkg-config)
6270 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6271 ("glib:bin" ,glib "bin")))
6272 ;; TODO: Add libnautilus.
6273 (inputs
6274 `(("gtk+" ,gtk+)
6275 ("gdk-pixbuf" ,gdk-pixbuf)
6276 ("json-glib" ,json-glib)
6277 ("libarchive" ,libarchive)
6278 ("libnotify" ,libnotify)
6279 ("nettle" ,nettle)
6280 ("libxml2" ,libxml2)))
6281 (synopsis "Graphical archive manager for GNOME")
6282 (description "File Roller is an archive manager for the GNOME desktop
6283 environment that allows users to view, unpack, and create compressed archives
6284 such as gzip tarballs.")
6285 (home-page "http://fileroller.sourceforge.net/")
6286 (license license:gpl2+)))
6287
6288 (define-public gnome-session
6289 (package
6290 (name "gnome-session")
6291 (version "3.34.2")
6292 (source (origin
6293 (method url-fetch)
6294 (uri (string-append "mirror://gnome/sources/" name "/"
6295 (version-major+minor version) "/"
6296 name "-" version ".tar.xz"))
6297 (sha256
6298 (base32
6299 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
6300 (arguments
6301 '(#:glib-or-gtk? #t
6302 #:phases
6303 (modify-phases %standard-phases
6304 (add-before 'configure 'pre-configure
6305 (lambda* (#:key outputs #:allow-other-keys)
6306 ;; Use elogind instead of systemd.
6307 (substitute* "meson.build"
6308 (("libsystemd-login") "libelogind")
6309 (("and libsystemd_daemon_dep.found.*") ","))
6310 (substitute* "gnome-session/gsm-systemd.c"
6311 (("#include <systemd/sd-login.h>")
6312 "#include <elogind/sd-login.h>"))
6313 ;; Remove uses of the systemd daemon.
6314 (substitute* "gnome-session/gsm-autostart-app.c"
6315 (("#ifdef HAVE_SYSTEMD") "#if 0"))
6316 #t))
6317 (add-after 'install 'wrap-gnome-session
6318 (lambda* (#:key inputs outputs #:allow-other-keys)
6319 ;; Make sure 'gnome-session' finds the 'gsettings' program.
6320 (let ((glib (assoc-ref inputs "glib:bin"))
6321 (out (assoc-ref outputs "out")))
6322 (wrap-program (string-append out "/bin/gnome-session")
6323 `("PATH" ":" prefix (,(string-append glib "/bin"))))
6324 #t))))
6325
6326 #:configure-flags
6327 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
6328 "-Dman=false" ; FIXME: disabled because of docbook validation error
6329 "-Dsystemd_journal=false")))
6330 (build-system meson-build-system)
6331 (native-inputs
6332 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6333 ("pkg-config" ,pkg-config)
6334 ("intltool" ,intltool)
6335 ("xsltproc" ,libxslt)
6336 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
6337 ("docbook-xsl" ,docbook-xsl)
6338 ("docbook-xml" ,docbook-xml)
6339 ("xmlto" ,xmlto)))
6340 (inputs
6341 `(("elogind" ,elogind)
6342 ("gnome-desktop" ,gnome-desktop)
6343 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6344 ("gtk+" ,gtk+)
6345 ("json-glib" ,json-glib)
6346 ("libsm" ,libsm)
6347 ("libxcomposite" ,libxcomposite)
6348 ("libxtst" ,libxtst)
6349 ("mesa" ,mesa)
6350 ("upower" ,upower)
6351 ("xtrans" ,xtrans)))
6352 (synopsis "Session manager for GNOME")
6353 (description
6354 "This package contains the GNOME session manager, as well as a
6355 configuration program to choose applications starting on login.")
6356 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
6357 (license license:gpl2+)))
6358
6359 (define-public gjs
6360 (package
6361 (name "gjs")
6362 (version "1.58.3")
6363 (source (origin
6364 (method url-fetch)
6365 (uri (string-append "mirror://gnome/sources/" name "/"
6366 (version-major+minor version) "/"
6367 name "-" version ".tar.xz"))
6368 (sha256
6369 (base32
6370 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
6371 (build-system gnu-build-system)
6372 (arguments
6373 '(#:phases
6374 (modify-phases %standard-phases
6375 (add-before
6376 'check 'pre-check
6377 (lambda _
6378 ;; The test suite requires a running X server.
6379 (system "Xvfb :1 &")
6380 (setenv "DISPLAY" ":1")
6381
6382 ;; For the missing /etc/machine-id.
6383 (setenv "DBUS_FATAL_WARNINGS" "0")
6384
6385 ;; Our mozjs-38 package does not compile the required Intl API
6386 ;; support for these failing tests.
6387 (substitute* "installed-tests/js/testLocale.js"
6388 ((".*toBeDefined.*") "")
6389 ((".*expect\\(datestr\\).*") ""))
6390 (substitute* "installed-tests/scripts/testCommandLine.sh"
6391 (("Valentín") "")
6392 (("☭") ""))
6393 #t)))))
6394 (native-inputs
6395 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
6396 ("pkg-config" ,pkg-config)
6397 ("xmllint" ,libxml2)
6398 ;; For testing
6399 ("dbus-launch" ,dbus)
6400 ("dconf" ,dconf) ; required to properly store settings
6401 ("uuidgen" ,util-linux)
6402 ("xvfb" ,xorg-server-for-tests)))
6403 (propagated-inputs
6404 ;; These are all in the Requires.private field of gjs-1.0.pc.
6405 `(("cairo" ,cairo)
6406 ("gobject-introspection" ,gobject-introspection)
6407 ("mozjs" ,mozjs-60)))
6408 (inputs
6409 `(("gtk+" ,gtk+)
6410 ("readline" ,readline)))
6411 (synopsis "Javascript bindings for GNOME")
6412 (home-page "https://live.gnome.org/Gjs")
6413 (description
6414 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6415 javascript engine and the GObject introspection framework.")
6416 (license license:gpl2+)))
6417
6418 (define-public gedit
6419 (package
6420 (name "gedit")
6421 (version "3.34.1")
6422 (source (origin
6423 (method url-fetch)
6424 (uri (string-append "mirror://gnome/sources/" name "/"
6425 (version-major+minor version) "/"
6426 name "-" version ".tar.xz"))
6427 (sha256
6428 (base32
6429 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
6430 (build-system meson-build-system)
6431 (arguments
6432 `(#:glib-or-gtk? #t
6433 #:configure-flags
6434 ;; Otherwise, the RUNPATH will lack the final path component.
6435 (list (string-append "-Dc_link_args=-Wl,-rpath="
6436 (assoc-ref %outputs "out") "/lib/gedit"))
6437
6438 ;; XXX: Generated .h files are sometimes used before being built.
6439 #:parallel-build? #f
6440
6441 #:phases
6442 (modify-phases %standard-phases
6443 (add-after 'unpack 'skip-gtk-update-icon-cache
6444 ;; Don't create 'icon-theme.cache'.
6445 (lambda _
6446 (substitute* "build-aux/meson/post_install.py"
6447 (("gtk-update-icon-cache") (which "true")))
6448 #t))
6449 (add-after 'unpack 'patch-libgd-fetch
6450 (lambda* (#:key inputs #:allow-other-keys)
6451 (let ((libgd (assoc-ref inputs "libgd")))
6452 ;; Calling git is unnecessary because libgd is fetched as a
6453 ;; native input to this package.
6454 (substitute* "meson.build"
6455 ((".*git.*") ""))
6456 (copy-recursively libgd "subprojects/libgd")
6457 #t)))
6458 (add-after 'install 'wrap-gedit
6459 (lambda* (#:key inputs outputs #:allow-other-keys)
6460 (let ((out (assoc-ref outputs "out"))
6461 (gtksourceview (assoc-ref inputs "gtksourceview"))
6462 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6463 (python-path (getenv "PYTHONPATH")))
6464 (wrap-program (string-append out "/bin/gedit")
6465 ;; For plugins.
6466 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6467 `("PYTHONPATH" ":" prefix (,python-path))
6468 ;; For language-specs.
6469 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6470 "/share")))))
6471 #t)))))
6472 (propagated-inputs
6473 `(("dconf" ,dconf)))
6474 (native-inputs
6475 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6476 ("intltool" ,intltool)
6477 ("itstool" ,itstool)
6478 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6479 ("gobject-introspection" ,gobject-introspection)
6480 ("libgd"
6481 ,(origin
6482 (method git-fetch)
6483 (uri (git-reference
6484 (url "https://gitlab.gnome.org/GNOME/libgd")
6485 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6486 (file-name (git-file-name "libgd" version))
6487 (sha256
6488 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6489 ("pkg-config" ,pkg-config)))
6490 (inputs
6491 `(("glib" ,glib)
6492 ("gspell" ,gspell)
6493 ("gtk+" ,gtk+)
6494 ("gtksourceview" ,gtksourceview)
6495 ("libpeas" ,libpeas)
6496 ("libxml2" ,libxml2)
6497 ("iso-codes" ,iso-codes)
6498 ("python-pygobject" ,python-pygobject)
6499 ("python" ,python)
6500 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6501 ("libx11" ,libx11)
6502 ("vala" ,vala)
6503 ("adwaita-icon-theme" ,adwaita-icon-theme)
6504 ("libsoup" ,libsoup)
6505 ("gnome-desktop" ,gnome-desktop)))
6506 (home-page "https://wiki.gnome.org/Apps/Gedit")
6507 (synopsis "GNOME text editor")
6508 (description "While aiming at simplicity and ease of use, gedit is a
6509 powerful general purpose text editor.")
6510 (license license:gpl2+)))
6511
6512 (define-public zenity
6513 (package
6514 (name "zenity")
6515 (version "3.32.0")
6516 (source (origin
6517 (method url-fetch)
6518 (uri (string-append "mirror://gnome/sources/zenity/"
6519 (version-major+minor version) "/"
6520 "zenity-" version ".tar.xz"))
6521 (sha256
6522 (base32
6523 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6524 (build-system gnu-build-system)
6525 (native-inputs
6526 `(("gettext" ,gettext-minimal)
6527 ("itstool" ,itstool)
6528 ("pkg-config" ,pkg-config)))
6529 (inputs
6530 `(("libnotify" ,libnotify)
6531 ("webkitgtk" ,webkitgtk)))
6532 (synopsis "Display graphical dialog boxes from shell scripts")
6533 (home-page "https://www.gnome.org")
6534 (description
6535 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6536 to display dialog boxes from the commandline and shell scripts.")
6537 (license license:lgpl2.0+)))
6538
6539 (define-public mutter
6540 (package
6541 (name "mutter")
6542 (version "3.34.2")
6543 (source (origin
6544 (method url-fetch)
6545 (uri (string-append "mirror://gnome/sources/" name "/"
6546 (version-major+minor version) "/"
6547 name "-" version ".tar.xz"))
6548 (sha256
6549 (base32
6550 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
6551 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6552 ;; versions of cogl and clutter. As a result, many of the inputs,
6553 ;; propagated-inputs, and configure flags used in cogl and clutter are
6554 ;; needed here as well.
6555 (build-system meson-build-system)
6556 (arguments
6557 '(;; XXX: All mutter tests fail with the following error:
6558 ;; Settings schema 'org.gnome.mutter' is not installed
6559 #:tests? #f
6560 #:glib-or-gtk? #t
6561 #:configure-flags
6562 ;; TODO: Enable profiler when Sysprof is packaged.
6563 (list "-Dprofiler=false"
6564 ;; Otherwise, the RUNPATH will lack the final path component.
6565 (string-append "-Dc_link_args=-Wl,-rpath="
6566 (assoc-ref %outputs "out") "/lib:"
6567 (assoc-ref %outputs "out") "/lib/mutter-5")
6568
6569 ;; The following flags are needed for the bundled clutter
6570 (string-append "-Dxwayland_path="
6571 (assoc-ref %build-inputs "xorg-server-xwayland")
6572 "/bin/Xwayland")
6573
6574 ;; the remaining flags are needed for the bundled cogl
6575 (string-append "-Dopengl_libname="
6576 (assoc-ref %build-inputs "mesa")
6577 "/lib/libGL.so"))
6578 #:phases (modify-phases %standard-phases
6579 (add-after 'unpack 'fix-build-with-mesa-20
6580 (lambda _
6581 ;; Mimic upstream commit a444a4c5f58ea516ad for
6582 ;; compatibility with Mesa 20. Remove for 3.36.
6583 (substitute* '("src/backends/meta-egl-ext.h"
6584 "src/backends/meta-egl.c"
6585 "src/backends/meta-egl.h")
6586 (("#include <EGL/eglext\\.h>" all)
6587 (string-append all "\n#include <EGL/eglmesaext.h>")))
6588 (substitute* "cogl/cogl/meson.build"
6589 (("#include <EGL/eglext\\.h>" all)
6590 (string-append all "\\n#include <EGL/eglmesaext.h>")))
6591 #t)))))
6592 (native-inputs
6593 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6594 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6595 ("gobject-introspection" ,gobject-introspection)
6596 ("intltool" ,intltool)
6597 ("pkg-config" ,pkg-config)
6598 ("xorg-server" ,xorg-server-for-tests)
6599 ;; For git build
6600 ("autoconf" ,autoconf)
6601 ("automake" ,automake)
6602 ("libtool" ,libtool)))
6603 (propagated-inputs
6604 `(;; libmutter.pc refers to these:
6605 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6606 ("gtk+" ,gtk+)
6607 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6608 ("atk" ,atk)
6609 ("cairo" ,cairo)
6610 ("gdk-pixbuf" ,gdk-pixbuf)
6611 ("glib" ,glib)
6612 ("json-glib" ,json-glib)
6613 ("libinput" ,libinput)
6614 ("libx11" ,libx11)
6615 ("libxcomposite" ,libxcomposite)
6616 ("libxdamage" ,libxdamage)
6617 ("libxext" ,libxext)
6618 ("libxfixes" ,libxfixes)
6619 ("libxkbcommon" ,libxkbcommon)
6620 ("libxrandr" ,libxrandr)
6621 ("mesa" ,mesa)
6622 ("pango" ,pango)
6623 ("udev" ,eudev)
6624 ("xinput" ,xinput)))
6625 (inputs
6626 `(("elogind" ,elogind)
6627 ("gnome-desktop" ,gnome-desktop)
6628 ("gnome-settings-daemon" ,gnome-settings-daemon)
6629 ("libcanberra-gtk" ,libcanberra)
6630 ("libgudev" ,libgudev)
6631 ("libice" ,libice)
6632 ("libsm" ,libsm)
6633 ("libwacom" ,libwacom)
6634 ("libxkbfile" ,libxkbfile)
6635 ("libxrandr" ,libxrandr)
6636 ("libxtst" ,libxtst)
6637 ("pipewire" ,pipewire)
6638 ("startup-notification" ,startup-notification)
6639 ("upower-glib" ,upower)
6640 ("xkeyboard-config" ,xkeyboard-config)
6641 ("xorg-server-xwayland" ,xorg-server-xwayland)
6642 ("zenity" ,zenity)))
6643 (synopsis "Window and compositing manager")
6644 (home-page "https://www.gnome.org")
6645 (description
6646 "Mutter is a window and compositing manager that displays and manages your
6647 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6648 Clutter toolkit with solid window-management logic inherited from the Metacity
6649 window manager.")
6650 (license license:gpl2+)))
6651
6652 (define-public gnome-online-accounts
6653 (package
6654 (name "gnome-online-accounts")
6655 (version "3.36.0")
6656 (source (origin
6657 (method url-fetch)
6658 (uri (string-append "mirror://gnome/sources/" name "/"
6659 (version-major+minor version) "/"
6660 name "-" version ".tar.xz"))
6661 (sha256
6662 (base32
6663 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
6664 (outputs '("out" "lib"))
6665 (build-system glib-or-gtk-build-system)
6666 (arguments
6667 `(#:configure-flags
6668 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6669 #:phases
6670 (modify-phases %standard-phases
6671 (add-before 'configure 'patch-libgoa-output
6672 (lambda* (#:key outputs #:allow-other-keys)
6673 (let ((lib (assoc-ref outputs "lib")))
6674 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6675 (("@prefix@") lib)
6676 (("@exec_prefix@") lib)
6677 (("@libdir@") (string-append lib "/lib"))
6678 (("@includedir@") (string-append lib "/include"))
6679 (("@datadir@") (string-append lib "/share")))
6680 ;; Make sure gobject-introspection knows about the output
6681 ;; too (see <https://bugs.gnu.org/36535>).
6682 (setenv "outputs" "out lib")
6683 #t))))))
6684 (native-inputs
6685 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6686 ("gobject-introspection" ,gobject-introspection)
6687 ("intltool" ,intltool)
6688 ("pkg-config" ,pkg-config)
6689 ("vala" ,vala)
6690 ("xsltproc" ,libxslt)))
6691 (propagated-inputs
6692 `(("glib" ,glib) ; required by goa-1.0.pc
6693 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6694 (inputs
6695 `(("docbook-xsl" ,docbook-xsl)
6696 ("json-glib" ,json-glib)
6697 ("libsecret" ,libsecret)
6698 ("rest" ,rest)
6699 ("webkitgtk" ,webkitgtk)))
6700 (synopsis "Single sign-on framework for GNOME")
6701 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6702 (description
6703 "GNOME Online Accounts provides interfaces so that applications and
6704 libraries in GNOME can access the user's online accounts. It has providers for
6705 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6706 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6707 (license license:lgpl2.0+)))
6708
6709 (define-public evolution-data-server
6710 (package
6711 (name "evolution-data-server")
6712 (version "3.34.2")
6713 (source (origin
6714 (method url-fetch)
6715 (uri (string-append "mirror://gnome/sources/" name "/"
6716 (version-major+minor version) "/"
6717 name "-" version ".tar.xz"))
6718 (patches (search-patches "evolution-data-server-locales.patch"
6719 "evolution-data-server-libical-compat.patch"))
6720 (sha256
6721 (base32
6722 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
6723 (build-system cmake-build-system)
6724 (arguments
6725 '(#:configure-flags
6726 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6727 (runpaths (map (lambda (s)
6728 (string-append lib "/evolution-data-server/" s))
6729 '("addressbook-backends" "calendar-backends"
6730 "camel-providers" "credential-modules"
6731 "registry-modules"))))
6732 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6733 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6734 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6735 "-DENABLE_VALA_BINDINGS=ON"
6736 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6737 (string-append lib "/evolution-data-server;")
6738 (string-join runpaths ";"))
6739 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6740 #:phases
6741 (modify-phases %standard-phases
6742 (add-after 'unpack 'disable-failing-tests
6743 (lambda _
6744 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6745 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6746 (delete-file-recursively "tests/book-migration")
6747 (substitute* "tests/CMakeLists.txt"
6748 (("add_subdirectory\\(book-migration\\)") ""))
6749 #t))
6750 (add-after 'unpack 'patch-paths
6751 (lambda _
6752 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6753 "tests/libedata-book/data-test-utils.c"
6754 "tests/libedata-book/test-book-cache-utils.c"
6755 "tests/libedata-cal/test-cal-cache-utils.c")
6756 (("/bin/rm") (which "rm")))
6757 #t))
6758 (add-before 'configure 'dont-override-rpath
6759 (lambda _
6760 (substitute* "CMakeLists.txt"
6761 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6762 ;; Remove it so the configure flag is respected.
6763 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6764 #t)))))
6765 (native-inputs
6766 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6767 ("gobject-introspection" ,gobject-introspection)
6768 ("gperf" ,gperf)
6769 ("intltool" ,intltool)
6770 ("pkg-config" ,pkg-config)
6771 ("vala" ,vala)
6772 ("python" ,python-wrapper)))
6773 (propagated-inputs
6774 ;; These are all in the Requires field of .pc files.
6775 `(("gtk+" ,gtk+)
6776 ("libical" ,libical)
6777 ("libsecret" ,libsecret)
6778 ("libsoup" ,libsoup)
6779 ("nss" ,nss)
6780 ("sqlite" ,sqlite)))
6781 (inputs
6782 `(("bdb" ,bdb)
6783 ("gcr" ,gcr)
6784 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6785 ("json-glib" ,json-glib)
6786 ("libcanberra" ,libcanberra)
6787 ("libgweather" ,libgweather)
6788 ("mit-krb5" ,mit-krb5)
6789 ("openldap" ,openldap)
6790 ("webkitgtk" ,webkitgtk)))
6791 (synopsis "Store address books and calendars")
6792 (home-page "https://wiki.gnome.org/Apps/Evolution")
6793 (description
6794 "This package provides a unified backend for programs that work with
6795 contacts, tasks, and calendar information. It was originally developed for
6796 Evolution (hence the name), but is now used by other packages as well.")
6797 (license license:lgpl2.0)))
6798
6799 (define-public caribou
6800 (package
6801 (name "caribou")
6802 (version "0.4.21")
6803 (source (origin
6804 (method url-fetch)
6805 (uri (string-append "mirror://gnome/sources/" name "/"
6806 (version-major+minor version) "/"
6807 name "-" version ".tar.xz"))
6808 (sha256
6809 (base32
6810 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6811 (build-system glib-or-gtk-build-system)
6812 (arguments
6813 '(#:phases
6814 (modify-phases %standard-phases
6815 (add-before
6816 'build 'pre-build
6817 (lambda* (#:key outputs #:allow-other-keys)
6818 (let ((out (assoc-ref outputs "out")))
6819 ;; Use absolute shared library path in Caribou-1.0.typelib.
6820 (substitute* "libcaribou/Makefile"
6821 (("--shared-library=libcaribou.so")
6822 (string-append "--shared-library="
6823 out "/lib/libcaribou.so")))
6824 #t)))
6825 (add-after 'install 'wrap-programs
6826 (lambda* (#:key outputs #:allow-other-keys)
6827 (let* ((out (assoc-ref outputs "out"))
6828 (python-path (getenv "PYTHONPATH"))
6829 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6830 (for-each
6831 (lambda (prog)
6832 (wrap-program prog
6833 `("PYTHONPATH" ":" prefix (,python-path))
6834 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6835 (list (string-append out "/bin/caribou-preferences")
6836 (string-append out "/libexec/antler-keyboard"))))
6837 #t)))))
6838 (native-inputs
6839 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6840 ("gobject-introspection" ,gobject-introspection)
6841 ("intltool" ,intltool)
6842 ("pkg-config" ,pkg-config)
6843 ("python" ,python)
6844 ("vala" ,vala)
6845 ("xsltproc" ,libxslt)))
6846 (propagated-inputs
6847 ;; caribou-1.0.pc refers to all these.
6848 `(("libgee" ,libgee)
6849 ("libxklavier" ,libxklavier)
6850 ("libxtst" ,libxtst)
6851 ("gtk+" ,gtk+)))
6852 (inputs
6853 `(("clutter" ,clutter)
6854 ("dconf" ,dconf)
6855 ("gtk+-2" ,gtk+-2)
6856 ("python-pygobject" ,python-pygobject)))
6857 (synopsis "Text entry and UI navigation application")
6858 (home-page "https://wiki.gnome.org/Projects/Caribou")
6859 (description
6860 "Caribou is an input assistive technology intended for switch and pointer
6861 users.")
6862 (license license:lgpl2.1)))
6863
6864 (define-public network-manager
6865 (package
6866 (name "network-manager")
6867 (version "1.24.0")
6868 (source (origin
6869 (method url-fetch)
6870 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6871 (version-major+minor version) "/"
6872 "NetworkManager-" version ".tar.xz"))
6873 (patches (search-patches "network-manager-plugin-path.patch"))
6874 (sha256
6875 (base32
6876 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
6877 (modules '((guix build utils)))
6878 (snippet
6879 '(begin
6880 (substitute* "src/devices/wwan/nm-modem-manager.c"
6881 (("systemd") "elogind"))
6882 #t))))
6883 (build-system meson-build-system)
6884 (outputs '("out"
6885 "doc")) ; 8 MiB of gtk-doc HTML
6886 (arguments
6887 `(#:configure-flags
6888 (let ((out (assoc-ref %outputs "out"))
6889 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6890 "/sbin/dhclient")))
6891 (list
6892 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6893 ;; component.
6894 (string-append "-Dc_link_args=-Wl,-rpath="
6895 out "/lib:"
6896 out "/lib/NetworkManager/" ,version)
6897 "-Dsystemd_journal=false"
6898 "-Dsession_tracking=elogind"
6899 "-Dsuspend_resume=elogind"
6900 "-Dsystemdsystemunitdir=no"
6901 "-Dsession_tracking_consolekit=false"
6902 "-Ddhcpcd=no"
6903 "-Ddhcpcanon=no"
6904 "-Dcrypto=gnutls"
6905 "-Diwd=true"
6906 "-Dlibaudit=yes"
6907 "-Dqt=false"
6908 "-Ddocs=true"
6909 "--sysconfdir=/etc"
6910 "--localstatedir=/var"
6911 (string-append "-Dudev_dir="
6912 out "/lib/udev")
6913 (string-append "-Ddbus_conf_dir="
6914 out "/etc/dbus-1/system.d")
6915
6916 (string-append "-Ddhclient=" dhclient)))
6917 #:phases
6918 (modify-phases %standard-phases
6919 (add-before 'configure 'pre-configure
6920 (lambda _
6921 ;; These tests try to test aspects of network-manager's
6922 ;; functionality within restricted containers, but they don't
6923 ;; cope with being already in the Guix build jail as that jail
6924 ;; lacks some features that they would like to proxy over (like
6925 ;; a /sys mount).
6926 (substitute* "src/platform/tests/meson.build"
6927 ((".*test-address-linux.*") "")
6928 ((".*test-cleanup-linux.*") "")
6929 ((".*test-link-linux.*") "")
6930 ((".*test-route-linux.*") ""))
6931 (substitute* "src/devices/tests/meson.build"
6932 ((".*test-acd.*") "")
6933 ((".*test-lldp.*") ""))
6934 #t))
6935 (add-after 'unpack 'patch-docbook-xml
6936 (lambda* (#:key inputs #:allow-other-keys)
6937 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6938 "/xml/dtd/docbook")))
6939 (substitute* (find-files "." ".*\\.(xsl|xml)")
6940 (("http://.*/docbookx\\.dtd")
6941 (string-append xmldoc "/docbookx.dtd")))
6942 #t)))
6943 (add-before 'check 'pre-check
6944 (lambda _
6945 ;; For the missing /etc/machine-id.
6946 (setenv "DBUS_FATAL_WARNINGS" "0")
6947 #t))
6948 (add-before 'install 'no-polkit-magic
6949 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
6950 (lambda _
6951 (setenv "PKEXEC_UID" "something")
6952 #t))
6953 (add-after 'install 'move-doc
6954 (lambda* (#:key outputs #:allow-other-keys)
6955 (let ((out (assoc-ref outputs "out"))
6956 (doc (assoc-ref outputs "doc")))
6957 (mkdir-p (string-append doc "/share"))
6958 (for-each (lambda (directory)
6959 (copy-recursively (string-append out directory)
6960 (string-append doc directory))
6961 (delete-file-recursively
6962 (string-append out directory)))
6963 '("/share/doc" "/share/gtk-doc"))
6964 #t))))))
6965 (propagated-inputs
6966 `(("glib" ,glib)))
6967 (native-inputs
6968 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6969 ("gtk-doc" ,gtk-doc)
6970 ("gobject-introspection" ,gobject-introspection)
6971 ("docbook-xml" ,docbook-xml)
6972 ("docbook-xsl" ,docbook-xsl)
6973 ("intltool" ,intltool)
6974 ("libxslt" ,libxslt)
6975 ("libxml2" ,libxml2)
6976 ("pkg-config" ,pkg-config)
6977 ("vala" ,vala)
6978 ;; For testing.
6979 ("python" ,python-wrapper)
6980 ("python-dbus" ,python-dbus)
6981 ("python-pygobject" ,python-pygobject)))
6982 (inputs
6983 `(("curl" ,curl)
6984 ("cyrus-sasl" ,cyrus-sasl)
6985 ("dbus-glib" ,dbus-glib)
6986 ("dnsmasq" ,dnsmasq)
6987 ("eudev" ,eudev)
6988 ("gnutls" ,gnutls)
6989 ("iptables" ,iptables)
6990 ("isc-dhcp" ,isc-dhcp)
6991 ("iwd" ,iwd) ; wpa_supplicant alternative
6992 ("jansson" ,jansson)
6993 ("libaudit" ,audit)
6994 ("libgcrypt" ,libgcrypt)
6995 ("libgudev" ,libgudev)
6996 ("libndp" ,libndp)
6997 ("libnl" ,libnl)
6998 ("libsoup" ,libsoup)
6999 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
7000 ("modem-manager" ,modem-manager)
7001 ("newt" ,newt) ;for the 'nmtui' console interface
7002 ("openresolv" ,openresolv) ; alternative resolv.conf manager
7003 ("polkit" ,polkit)
7004 ("ppp" ,ppp)
7005 ("readline" ,readline)
7006 ("util-linux" ,util-linux)
7007 ("elogind" ,elogind)))
7008 (synopsis "Network connection manager")
7009 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7010 (description
7011 "NetworkManager is a system network service that manages your network
7012 devices and connections, attempting to keep active network connectivity when
7013 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
7014 devices, and provides VPN integration with a variety of different VPN
7015 services.")
7016 ;; “This NetworkManager project consists of the daemon, client tools, and
7017 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
7018 ;; GPL-2.0+.”
7019 (license (list license:gpl2+
7020 license:lgpl2.1+))
7021 (properties '((upstream-name . "NetworkManager")))))
7022
7023 (define-public network-manager-openvpn
7024 (package
7025 (name "network-manager-openvpn")
7026 (version "1.8.12")
7027 (source (origin
7028 (method url-fetch)
7029 (uri (string-append
7030 "mirror://gnome/sources/NetworkManager-openvpn/"
7031 (version-major+minor version)
7032 "/NetworkManager-openvpn-" version ".tar.xz"))
7033 (sha256
7034 (base32
7035 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
7036 (build-system gnu-build-system)
7037 (arguments
7038 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7039 #:phases
7040 (modify-phases %standard-phases
7041 (add-after 'configure 'patch-path
7042 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7043 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
7044 "/sbin/openvpn"))
7045 (modprobe (string-append (assoc-ref inputs "kmod")
7046 "/bin/modprobe"))
7047 (pretty-ovpn (string-append "\"" ovpn "\"")))
7048 (for-each
7049 (lambda (file)
7050 (substitute* file
7051 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
7052 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
7053 (("\"/sbin/openvpn\"") pretty-ovpn)
7054 (("/sbin/modprobe") modprobe)))
7055 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
7056 #t)))))
7057 (native-inputs
7058 `(("pkg-config" ,pkg-config)
7059 ("intltool" ,intltool)))
7060 (inputs
7061 `(("gtk+" ,gtk+)
7062 ("kmod" ,kmod)
7063 ("openvpn" ,openvpn)
7064 ("network-manager" ,network-manager)
7065 ("libnma" ,libnma)
7066 ("libsecret" ,libsecret)))
7067 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7068 (synopsis "OpenVPN plug-in for NetworkManager")
7069 (description
7070 "This extension of NetworkManager allows it to take care of connections
7071 to virtual private networks (VPNs) via OpenVPN.")
7072 (license license:gpl2+)
7073 (properties `((upstream-name . "NetworkManager-openvpn")))))
7074
7075 (define-public network-manager-vpnc
7076 (package
7077 (name "network-manager-vpnc")
7078 (version "1.2.6")
7079 (source (origin
7080 (method url-fetch)
7081 (uri (string-append
7082 "mirror://gnome/sources/NetworkManager-vpnc/"
7083 (version-major+minor version)
7084 "/NetworkManager-vpnc-" version ".tar.xz"))
7085 (sha256
7086 (base32
7087 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
7088 (build-system gnu-build-system)
7089 (arguments
7090 `(#:configure-flags '("--enable-absolute-paths"
7091 "--localstatedir=/var"
7092 ;; libnm-glib has been removed from network-manager
7093 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
7094 "--with-libnm-glib=no")
7095 #:phases
7096 (modify-phases %standard-phases
7097 (add-after 'configure 'patch-path
7098 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7099 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
7100 "/sbin/vpnc"))
7101 (modprobe (string-append (assoc-ref inputs "kmod")
7102 "/bin/modprobe"))
7103 (pretty-ovpn (string-append "\"" vpnc "\"")))
7104 (substitute* "src/nm-vpnc-service.c"
7105 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
7106 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
7107 (("\"/sbin/vpnc\"") pretty-ovpn)
7108 (("/sbin/modprobe") modprobe)))
7109 #t)))))
7110 (native-inputs
7111 `(("pkg-config" ,pkg-config)
7112 ("intltool" ,intltool)))
7113 (inputs
7114 `(("gtk+" ,gtk+)
7115 ("kmod" ,kmod)
7116 ("vpnc" ,vpnc)
7117 ("network-manager" ,network-manager)
7118 ("libnma" ,libnma)
7119 ("libsecret" ,libsecret)))
7120 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7121 (synopsis "VPNC plug-in for NetworkManager")
7122 (description
7123 "Support for configuring virtual private networks based on VPNC.
7124 Compatible with Cisco VPN concentrators configured to use IPsec.")
7125 (license license:gpl2+)
7126 (properties `((upstream-name . "NetworkManager-vpnc")))))
7127
7128 (define-public network-manager-openconnect
7129 (package
7130 (name "network-manager-openconnect")
7131 (version "1.2.6")
7132 (source (origin
7133 (method url-fetch)
7134 (uri (string-append
7135 "mirror://gnome/sources/NetworkManager-openconnect/"
7136 (version-major+minor version)
7137 "/NetworkManager-openconnect-" version ".tar.xz"))
7138 (sha256
7139 (base32
7140 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
7141 (build-system gnu-build-system)
7142 (arguments
7143 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
7144 #:phases
7145 (modify-phases %standard-phases
7146 (add-after 'configure 'patch-path
7147 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
7148 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
7149 "/sbin/openconnect"))
7150 (modprobe (string-append (assoc-ref inputs "kmod")
7151 "/bin/modprobe"))
7152 (pretty-ovpn (string-append "\"" openconnect "\"")))
7153 (substitute* "src/nm-openconnect-service.c"
7154 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
7155 (("/sbin/modprobe") modprobe)))
7156 #t)))))
7157 (native-inputs
7158 `(("intltool" ,intltool)
7159 ("libnma" ,libnma)
7160 ("pkg-config" ,pkg-config)))
7161 (inputs
7162 `(("gcr" ,gcr)
7163 ("gtk+" ,gtk+)
7164 ("kmod" ,kmod)
7165 ("libsecret" ,libsecret)
7166 ("libxml2" ,libxml2)
7167 ("lz4" ,lz4)
7168 ("network-manager" ,network-manager)
7169 ("openconnect" ,openconnect)))
7170 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
7171 (synopsis "OpenConnect plug-in for NetworkManager")
7172 (description
7173 "This extension of NetworkManager allows it to take care of connections
7174 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
7175 Cisco's AnyConnect SSL VPN.")
7176 (license license:gpl2+)
7177 (properties `((upstream-name . "NetworkManager-openconnect")
7178
7179 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
7180 ;; file refers to account "nm-openconnect". Specify it here
7181 ;; so that 'network-manager-service-type' creates it.
7182 (user-accounts . ("nm-openconnect"))))))
7183
7184 (define-public mobile-broadband-provider-info
7185 (package
7186 (name "mobile-broadband-provider-info")
7187 (version "20190116")
7188 (source (origin
7189 (method url-fetch)
7190 (uri (string-append
7191 "mirror://gnome/sources/"
7192 "mobile-broadband-provider-info/" version "/"
7193 "mobile-broadband-provider-info-" version ".tar.xz"))
7194 (sha256
7195 (base32
7196 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
7197 (build-system gnu-build-system)
7198 (arguments
7199 `(#:tests? #f)) ; no tests
7200 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7201 (synopsis "Database of broadband connection configuration")
7202 (description "Database of broadband connection configuration.")
7203 (license license:public-domain)))
7204
7205 (define-public network-manager-applet
7206 (package
7207 (name "network-manager-applet")
7208 (version "1.16.0")
7209 (source (origin
7210 (method url-fetch)
7211 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7212 (version-major+minor version) "/"
7213 "network-manager-applet-" version ".tar.xz"))
7214 (sha256
7215 (base32
7216 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
7217 (build-system meson-build-system)
7218 (arguments
7219 '(#:glib-or-gtk? #t))
7220 (native-inputs
7221 `(("intltool" ,intltool)
7222 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
7223 ("gobject-introspection" ,gobject-introspection)
7224 ("gtk-doc" ,gtk-doc)
7225 ("pkg-config" ,pkg-config)))
7226 (propagated-inputs
7227 ;; libnm-gtk.pc refers to all these.
7228 `(("dbus-glib" ,dbus-glib)
7229 ("gtk+" ,gtk+)
7230 ("network-manager" ,network-manager)
7231 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7232 ("libnma" ,libnma)))
7233 (inputs
7234 `(("gcr" ,gcr)
7235 ("libgudev" ,libgudev)
7236 ("libnotify" ,libnotify)
7237 ("libsecret" ,libsecret)
7238 ("libselinux" ,libselinux)
7239 ("jansson" ,jansson) ; for team support
7240 ("modem-manager" ,modem-manager)))
7241 (synopsis "Applet for managing network connections")
7242 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7243 (description
7244 "This package contains a systray applet for NetworkManager. It displays
7245 the available networks and allows users to easily switch between them.")
7246 (license license:gpl2+)))
7247
7248 (define-public libxml++
7249 (package
7250 (name "libxml++")
7251 (version "3.0.1")
7252 (source (origin
7253 (method url-fetch)
7254 (uri (string-append "mirror://gnome/sources/" name "/"
7255 (version-major+minor version) "/"
7256 name "-" version ".tar.xz"))
7257 (sha256
7258 (base32
7259 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
7260 (build-system gnu-build-system)
7261 ;; libxml++-3.0.pc refers to all these.
7262 (propagated-inputs
7263 `(("libxml2" ,libxml2)
7264 ("glibmm" ,glibmm)))
7265 (native-inputs
7266 `(("perl" ,perl)
7267 ("pkg-config" ,pkg-config)))
7268 (home-page "http://libxmlplusplus.sourceforge.net/")
7269 (synopsis "C++ wrapper for XML parser library libxml2")
7270 (description
7271 "This package provides a C++ wrapper for the XML parser library
7272 libxml2.")
7273 (license license:lgpl2.1+)))
7274
7275 (define-public libxml++-2
7276 (package
7277 (inherit libxml++)
7278 (name "libxml++")
7279 (version "2.40.1")
7280 (source (origin
7281 (method url-fetch)
7282 (uri (string-append "mirror://gnome/sources/" name "/"
7283 (version-major+minor version) "/"
7284 name "-" version ".tar.xz"))
7285 (sha256
7286 (base32
7287 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
7288
7289 (define-public gdm
7290 (package
7291 (name "gdm")
7292 (version "3.34.1")
7293 (source (origin
7294 (method url-fetch)
7295 (uri (string-append "mirror://gnome/sources/" name "/"
7296 (version-major+minor version) "/"
7297 name "-" version ".tar.xz"))
7298 (sha256
7299 (base32
7300 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
7301 (patches (search-patches "gdm-default-session.patch"))))
7302 (build-system glib-or-gtk-build-system)
7303 (arguments
7304 '(#:configure-flags
7305 `("--without-plymouth"
7306 "--disable-systemd-journal"
7307
7308 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
7309 ;; instead of having to replace it (i.e., stopping the mingetty
7310 ;; service for TTY 1 before starting GDM).
7311 "--with-initial-vt=7"
7312
7313 ;; Use '/etc/environment' for locale settings instead of the
7314 ;; systemd-specific '/etc/locale.conf'.
7315 "--with-lang-file=/etc/environment"
7316
7317 ,(string-append "--with-udevdir="
7318 (assoc-ref %outputs "out") "/lib/udev")
7319
7320 "--localstatedir=/var"
7321 ,(string-append "--with-default-path="
7322 (string-join '("/run/setuid-programs"
7323 "/run/current-system/profile/bin"
7324 "/run/current-system/profile/sbin")
7325 ":"))
7326 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
7327 ;; XDG_DATA_DIRS so that it finds its schemas.
7328 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
7329 #:phases
7330 (modify-phases %standard-phases
7331 (add-before
7332 'configure 'pre-configure
7333 (lambda* (#:key inputs outputs #:allow-other-keys)
7334 ;; We don't have <systemd/sd-daemon.h>.
7335 (substitute* '("common/gdm-log.c"
7336 "daemon/gdm-server.c"
7337 "daemon/gdm-session-worker.c"
7338 "daemon/gdm-session-worker-job.c")
7339 (("#include <systemd/sd-daemon\\.h>") ""))
7340 ;; Use elogind for sd-login.
7341 (substitute* '("common/gdm-common.c"
7342 "daemon/gdm-local-display-factory.c"
7343 "daemon/gdm-manager.c"
7344 "libgdm/gdm-user-switching.c")
7345 (("#include <systemd/sd-login\\.h>")
7346 "#include <elogind/sd-login.h>"))
7347 ;; Check for elogind.
7348 (substitute* '("configure")
7349 (("libsystemd")
7350 "libelogind"))
7351 ;; Look for system-installed sessions in
7352 ;; /run/current-system/profile/share.
7353 (substitute* '("libgdm/gdm-sessions.c"
7354 "daemon/gdm-session.c"
7355 "daemon/gdm-display.c"
7356 "daemon/gdm-launch-environment.c")
7357 (("DATADIR \"/x")
7358 "\"/run/current-system/profile/share/x")
7359 (("DATADIR \"/wayland")
7360 "\"/run/current-system/profile/share/wayland")
7361 (("DATADIR \"/gnome")
7362 "\"/run/current-system/profile/share/gnome"))
7363 (let ((propagate '("GDM_CUSTOM_CONF"
7364 "GDM_DBUS_DAEMON"
7365 "GDM_X_SERVER"
7366 "GDM_X_SESSION"
7367 ;; XXX: Remove this once GNOME Shell is
7368 ;; a dependency of GDM.
7369 "XDG_DATA_DIRS")))
7370 (substitute* "daemon/gdm-session.c"
7371 (("set_up_session_environment \\(self\\);")
7372 (apply string-append
7373 "set_up_session_environment (self);\n"
7374 (map (lambda (name)
7375 (string-append
7376 "gdm_session_set_environment_variable "
7377 "(self, \"" name "\","
7378 "g_getenv (\"" name "\"));\n"))
7379 propagate)))))
7380 ;; Find the configuration file using an environment variable.
7381 (substitute* '("common/gdm-settings.c")
7382 (("GDM_CUSTOM_CONF")
7383 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7384 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7385 " : GDM_CUSTOM_CONF)")))
7386 ;; Use service-supplied path to X.
7387 (substitute* '("daemon/gdm-server.c")
7388 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7389 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
7390 (substitute* '("daemon/gdm-wayland-session.c"
7391 "daemon/gdm-x-session.c")
7392 (("\"dbus-daemon\"")
7393 "g_getenv (\"GDM_DBUS_DAEMON\")")
7394 (("X_SERVER")
7395 "g_getenv (\"GDM_X_SERVER\")")
7396 (("GDMCONFDIR \"/Xsession\"")
7397 "g_getenv (\"GDM_X_SESSION\")"))
7398 ;; Use an absolute path for GNOME Session.
7399 (substitute* "daemon/gdm-launch-environment.c"
7400 (("\"gnome-session\"")
7401 (string-append "\"" (assoc-ref inputs "gnome-session")
7402 "/bin/gnome-session\"")))
7403 ;; Do not automatically select the placeholder session.
7404 (substitute* "daemon/gdm-session.c"
7405 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7406 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7407 "(g_strcmp0(search_dirs[i], \""
7408 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7409 "\") == 0 && "
7410 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7411 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
7412 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
7413 #t))
7414 ;; GDM requires that there be at least one desktop entry
7415 ;; file. This phase installs a hidden one that simply
7416 ;; fails. This enables users to use GDM with a
7417 ;; '~/.xsession' script with no other desktop entry files.
7418 ;; See <https://bugs.gnu.org/35068>.
7419 (add-after 'install 'install-placeholder-desktop-entry
7420 (lambda* (#:key inputs outputs #:allow-other-keys)
7421 (let* ((out (assoc-ref outputs "out"))
7422 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7423 (fail (string-append sessions "/fail.desktop")))
7424 (mkdir-p sessions)
7425 (with-output-to-file fail
7426 (lambda ()
7427 (for-each
7428 display
7429 '("[Desktop Entry]\n"
7430 "Encoding=UTF-8\n"
7431 "Type=Application\n"
7432 "Name=Fail\n"
7433 "Comment=This session fails immediately.\n"
7434 "NoDisplay=true\n"
7435 "Exec=false\n"))))
7436 #t)))
7437 ;; GDM needs GNOME Session to run these applications. We link
7438 ;; their autostart files in `share/gdm/greeter/autostart'
7439 ;; because GDM explicitly tells GNOME Session to look there.
7440 ;;
7441 ;; XXX: GNOME Shell should be linked here too, but currently
7442 ;; GNOME Shell depends on GDM.
7443 (add-after 'install 'link-autostart-files
7444 (lambda* (#:key inputs outputs #:allow-other-keys)
7445 (let* ((out (assoc-ref outputs "out"))
7446 (autostart (string-append out "/share/gdm/"
7447 "greeter/autostart"))
7448 (settings (assoc-ref inputs "gnome-settings-daemon")))
7449 (mkdir-p autostart)
7450 (with-directory-excursion autostart
7451 (for-each (lambda (desktop)
7452 (symlink desktop (basename desktop)))
7453 (find-files (string-append settings "/etc/xdg"))))
7454 #t))))))
7455 (native-inputs
7456 `(("dconf" ,dconf)
7457 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7458 ("gobject-introspection" ,gobject-introspection)
7459 ("intltool" ,intltool)
7460 ("itstool" ,itstool)
7461 ("pkg-config" ,pkg-config)
7462 ("xmllint" ,libxml2)))
7463 (inputs
7464 `(("accountsservice" ,accountsservice)
7465 ("check" ,check) ; for testing
7466 ("elogind" ,elogind)
7467 ("gnome-session" ,gnome-session)
7468 ("gnome-settings-daemon" ,gnome-settings-daemon)
7469 ("gtk+" ,gtk+)
7470 ("iso-codes" ,iso-codes)
7471 ("libcanberra" ,libcanberra)
7472 ("linux-pam" ,linux-pam)))
7473 (synopsis "Display manager for GNOME")
7474 (home-page "https://wiki.gnome.org/Projects/GDM/")
7475 (description
7476 "GNOME Display Manager is a system service that is responsible for
7477 providing graphical log-ins and managing local and remote displays.")
7478 (license license:gpl2+)))
7479
7480 (define-public libgtop
7481 (package
7482 (name "libgtop")
7483 (version "2.40.0")
7484 (source (origin
7485 (method url-fetch)
7486 (uri (string-append "mirror://gnome/sources/libgtop/"
7487 (version-major+minor version) "/"
7488 "libgtop-" version ".tar.xz"))
7489 (sha256
7490 (base32
7491 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7492 (build-system gnu-build-system)
7493 (native-inputs
7494 `(("gobject-introspection" ,gobject-introspection)
7495 ("intltool" ,intltool)
7496 ("perl" ,perl)
7497 ("pkg-config" ,pkg-config)))
7498 (propagated-inputs
7499 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7500 (synopsis "Portable system access library")
7501 (home-page "https://www.gnome.org/")
7502 (description
7503 "LibGTop is a library to get system specific data such as CPU and memory
7504 usage and information about running processes.")
7505 (license license:gpl2+)))
7506
7507 (define-public gnome-bluetooth
7508 (package
7509 (name "gnome-bluetooth")
7510 (version "3.34.0")
7511 (source (origin
7512 (method url-fetch)
7513 (uri (string-append "mirror://gnome/sources/" name "/"
7514 (version-major+minor version) "/"
7515 name "-" version ".tar.xz"))
7516 (sha256
7517 (base32
7518 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
7519 (build-system meson-build-system)
7520 (native-inputs
7521 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7522 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7523 ("gobject-introspection" ,gobject-introspection)
7524 ("intltool" ,intltool)
7525 ("pkg-config" ,pkg-config)
7526 ("xmllint" ,libxml2)))
7527 (propagated-inputs
7528 ;; gnome-bluetooth-1.0.pc refers to all these.
7529 `(("glib" ,glib)
7530 ("gtk+" ,gtk+)))
7531 (inputs
7532 `(("eudev" ,eudev)
7533 ("libcanberra" ,libcanberra)
7534 ("libnotify" ,libnotify)))
7535 (synopsis "GNOME Bluetooth subsystem")
7536 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7537 (description
7538 "This package contains tools for managing and manipulating Bluetooth
7539 devices using the GNOME desktop.")
7540 (license license:lgpl2.1+)))
7541
7542 (define-public gnome-control-center
7543 (package
7544 (name "gnome-control-center")
7545 (version "3.34.2")
7546 (source (origin
7547 (method url-fetch)
7548 (uri (string-append "mirror://gnome/sources/" name "/"
7549 (version-major+minor version) "/"
7550 name "-" version ".tar.xz"))
7551 (sha256
7552 (base32
7553 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7554 (build-system meson-build-system)
7555 (arguments
7556 '(#:glib-or-gtk? #t
7557 #:configure-flags
7558 (list "-Dcheese=false"
7559 (string-append "-Dgnome_session_libexecdir="
7560 (assoc-ref %build-inputs "gnome-session")
7561 "/libexec"))
7562 #:phases
7563 (modify-phases %standard-phases
7564 (add-before 'configure 'patch-paths
7565 (lambda* (#:key inputs #:allow-other-keys)
7566 (let ((libc (assoc-ref inputs "libc"))
7567 (tzdata (assoc-ref inputs "tzdata"))
7568 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7569 (nm-applet (assoc-ref inputs "network-manager-applet"))
7570 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7571 (substitute* "panels/datetime/tz.h"
7572 (("/usr/share/zoneinfo/zone.tab")
7573 (string-append tzdata "/share/zoneinfo/zone.tab")))
7574 (substitute* "tests/datetime/test-endianess.c"
7575 (("/usr/share/locale")
7576 (string-append libc "/share/locale")))
7577 (substitute* "panels/region/cc-region-panel.c"
7578 (("\"gkbd-keyboard-display")
7579 (string-append "\"" libgnomekbd
7580 "/bin/gkbd-keyboard-display")))
7581 (substitute* '("panels/network/net-device-wifi.c"
7582 "panels/network/net-device.c"
7583 "panels/network/connection-editor/net-connection-editor.c")
7584 (("\"nm-connection-editor")
7585 (string-append "\"" nm-applet
7586 "/bin/nm-connection-editor")))
7587 (substitute* '("panels/user-accounts/run-passwd.c")
7588 (("/usr/bin/passwd")
7589 "/run/setuid-programs/passwd"))
7590 (substitute* "panels/info/cc-info-overview-panel.c"
7591 (("DATADIR \"/gnome/gnome-version.xml\"")
7592 (string-append "\"" gnome-desktop
7593 "/share/gnome/gnome-version.xml\"")))
7594 #t)))
7595 (add-after 'unpack 'skip-gtk-update-icon-cache
7596 ;; Don't create 'icon-theme.cache'.
7597 (lambda _
7598 (substitute* "build-aux/meson/meson_post_install.py"
7599 (("gtk-update-icon-cache") (which "true")))
7600 #t)))))
7601 (native-inputs
7602 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7603 ("intltool" ,intltool)
7604 ("pkg-config" ,pkg-config)
7605 ("xsltproc" ,libxslt)
7606 ;; For tests
7607 ("hicolor-icon-theme" ,hicolor-icon-theme)
7608 ("python-dbusmock" ,python-dbusmock)
7609 ("xorg-server" ,xorg-server-for-tests)))
7610 (inputs
7611 `(("accountsservice" ,accountsservice)
7612 ("clutter-gtk" ,clutter-gtk)
7613 ("colord-gtk" ,colord-gtk)
7614 ("cups" ,cups)
7615 ("dconf" ,dconf)
7616 ("docbook-xsl" ,docbook-xsl)
7617 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7618 ("gnome-bluetooth" ,gnome-bluetooth)
7619 ("gnome-desktop" ,gnome-desktop)
7620 ("gnome-online-accounts" ,gnome-online-accounts)
7621 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7622 ("gnome-session" ,gnome-session)
7623 ("gnome-settings-daemon" ,gnome-settings-daemon)
7624 ("grilo" ,grilo)
7625 ("gsound" ,gsound)
7626 ("ibus" ,ibus)
7627 ("libcanberra" ,libcanberra)
7628 ("libgnomekbd" ,libgnomekbd)
7629 ("libgudev" ,libgudev)
7630 ("libgtop" ,libgtop)
7631 ("libnma" ,libnma)
7632 ("libpwquality" ,libpwquality)
7633 ("libsecret" ,libsecret)
7634 ("libsoup" ,libsoup)
7635 ("libxml2" ,libxml2)
7636 ("libwacom" ,libwacom)
7637 ("mesa" ,mesa)
7638 ("mit-krb5" ,mit-krb5)
7639 ("modem-manager" ,modem-manager)
7640 ("network-manager-applet" ,network-manager-applet)
7641 ("polkit" ,polkit)
7642 ("pulseaudio" ,pulseaudio)
7643 ("smbclient" ,samba)
7644 ("tzdata" ,tzdata)
7645 ("udisks" ,udisks)
7646 ("upower" ,upower)))
7647 (synopsis "Utilities to configure the GNOME desktop")
7648 (home-page "https://www.gnome.org/")
7649 (description
7650 "This package contains configuration applets for the GNOME desktop,
7651 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7652 properties, sound setup, desktop theme and background, user interface
7653 properties, screen resolution, and other GNOME parameters.")
7654 (license license:gpl2+)))
7655
7656 (define-public gnome-shell
7657 (package
7658 (name "gnome-shell")
7659 (version "3.34.2")
7660 (source (origin
7661 (method url-fetch)
7662 (uri (string-append "mirror://gnome/sources/" name "/"
7663 (version-major+minor version) "/"
7664 name "-" version ".tar.xz"))
7665 (sha256
7666 (base32
7667 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7668 (patches (search-patches "gnome-shell-theme.patch"
7669 "gnome-shell-disable-test.patch"))
7670 (modules '((guix build utils)))
7671 (snippet
7672 #~(begin
7673 ;; Copy images for use on the GDM log-in screen.
7674 (copy-file #$(file-append %artwork-repository
7675 "/slim/0.x/background.png")
7676 "data/theme/guix-background.png")
7677 (copy-file #$(file-append %artwork-repository
7678 "/logo/Guix-horizontal-white.svg")
7679 "data/theme/guix-logo.svg")
7680 #t))))
7681 (build-system meson-build-system)
7682 (arguments
7683 `(#:glib-or-gtk? #t
7684 #:disallowed-references ((,glib "bin")
7685 ,inkscape ,libxslt
7686 ,ruby-sass)
7687 #:configure-flags
7688 (list "-Dsystemd=false"
7689 ;; Otherwise, the RUNPATH will lack the final path component.
7690 (string-append "-Dc_link_args=-Wl,-rpath="
7691 (assoc-ref %outputs "out")
7692 "/lib/gnome-shell"))
7693
7694 #:modules ((guix build meson-build-system)
7695 (guix build utils)
7696 (srfi srfi-1))
7697
7698 #:phases
7699 (modify-phases %standard-phases
7700 (add-after 'unpack 'fix-keysdir
7701 (lambda* (#:key outputs #:allow-other-keys)
7702 (let* ((out (assoc-ref outputs "out"))
7703 (keysdir (string-append
7704 out "/share/gnome-control-center/keybindings")))
7705 (substitute* "meson.build"
7706 (("keysdir =.*")
7707 (string-append "keysdir = '" keysdir "'\n")))
7708 #t)))
7709 (add-before 'configure 'convert-logo-to-png
7710 (lambda* (#:key inputs #:allow-other-keys)
7711 ;; Convert the logo from SVG to PNG.
7712 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7713 "data/theme/guix-logo.svg")))
7714 (add-before 'configure 'record-absolute-file-names
7715 (lambda* (#:key inputs #:allow-other-keys)
7716 (substitute* "js/misc/ibusManager.js"
7717 (("'ibus-daemon'")
7718 (string-append "'" (assoc-ref inputs "ibus")
7719 "/bin/ibus-daemon'")))
7720 (substitute* "js/ui/status/keyboard.js"
7721 (("'gkbd-keyboard-display'")
7722 (string-append "'" (assoc-ref inputs "libgnomekbd")
7723 "/bin/gkbd-keyboard-display'")))
7724 #t))
7725 (add-before 'check 'pre-check
7726 (lambda* (#:key inputs #:allow-other-keys)
7727 ;; Tests require a running X server.
7728 (system "Xvfb :1 &")
7729 (setenv "DISPLAY" ":1")
7730 #t))
7731 (add-after 'install 'wrap-programs
7732 (lambda* (#:key inputs outputs #:allow-other-keys)
7733 (let ((out (assoc-ref outputs "out"))
7734 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7735 (python-path (getenv "PYTHONPATH")))
7736 (wrap-program (string-append out "/bin/gnome-shell")
7737 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7738 ;; FIXME: gnome-shell loads these libraries with unqualified
7739 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7740 ;; alternative might be to patch gnome-shell.
7741 `("LD_LIBRARY_PATH" ":" prefix
7742 ,(map (lambda (pkg)
7743 (string-append (assoc-ref inputs pkg) "/lib"))
7744 '("gdk-pixbuf"
7745 "gnome-bluetooth" "librsvg" "libgweather"))))
7746 (for-each
7747 (lambda (prog)
7748 (wrap-program (string-append out "/bin/" prog)
7749 `("PYTHONPATH" ":" prefix (,python-path))
7750 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7751 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7752 #t)))
7753 (replace 'glib-or-gtk-wrap
7754 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7755 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7756 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7757 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7758 ;; phase. Fix that since we don't need these.
7759 (wrap #:inputs (fold alist-delete inputs
7760 '("inkscape" "intltool" "glib:bin"))
7761 #:outputs outputs)))))))
7762 (native-inputs
7763 `(("asciidoc" ,asciidoc)
7764 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7765 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7766 ("gobject-introspection" ,gobject-introspection)
7767 ("inkscape" ,inkscape)
7768 ("intltool" ,intltool)
7769 ("pkg-config" ,pkg-config)
7770 ("python" ,python)
7771 ("ruby-sass" ,ruby-sass)
7772 ("sassc" ,sassc)
7773 ("xsltproc" ,libxslt)
7774 ;; For tests
7775 ("xorg-server" ,xorg-server-for-tests)))
7776 (inputs
7777 `(("accountsservice" ,accountsservice)
7778 ("caribou" ,caribou)
7779 ("docbook-xsl" ,docbook-xsl)
7780 ("evolution-data-server" ,evolution-data-server)
7781 ("gcr" ,gcr)
7782 ("gdm" ,gdm)
7783 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7784 ("gjs" ,gjs)
7785 ("gnome-autoar" ,gnome-autoar)
7786 ("gnome-bluetooth" ,gnome-bluetooth)
7787 ("gnome-desktop" ,gnome-desktop)
7788 ("gnome-settings-daemon" ,gnome-settings-daemon)
7789 ("gst-plugins-base" ,gst-plugins-base)
7790 ("ibus" ,ibus)
7791 ("libcanberra" ,libcanberra)
7792 ("libcroco" ,libcroco)
7793 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7794 ("libgweather" ,libgweather)
7795 ("libnma" ,libnma)
7796 ("libsoup" ,libsoup)
7797 ("mesa-headers" ,mesa-headers)
7798 ("mutter" ,mutter)
7799 ("network-manager-applet" ,network-manager-applet)
7800 ("polkit" ,polkit)
7801 ("pulseaudio" ,pulseaudio)
7802 ("python-pygobject" ,python-pygobject)
7803 ("startup-notification" ,startup-notification)
7804 ("telepathy-logger" ,telepathy-logger)
7805 ("upower" ,upower)
7806 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7807 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7808 ("librsvg" ,librsvg)
7809 ("geoclue" ,geoclue)))
7810 (synopsis "Desktop shell for GNOME")
7811 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7812 (description
7813 "GNOME Shell provides core user interface functions for the GNOME desktop,
7814 like switching to windows and launching applications.")
7815 (license license:gpl2+)))
7816
7817 (define-public gtk-vnc
7818 (package
7819 (name "gtk-vnc")
7820 (version "0.9.0")
7821 (source
7822 (origin
7823 (method url-fetch)
7824 (uri (string-append "mirror://gnome/sources/" name "/"
7825 (version-major+minor version) "/"
7826 name "-" version ".tar.xz"))
7827 (sha256
7828 (base32
7829 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7830 (build-system gnu-build-system)
7831 (arguments
7832 '(#:configure-flags '("--with-gtk=3.0")))
7833 (propagated-inputs
7834 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7835 (inputs
7836 `(("cyrus-sasl" ,cyrus-sasl)
7837 ("gnutls" ,gnutls)
7838 ("libgcrypt" ,libgcrypt)
7839 ("pulseaudio" ,pulseaudio)))
7840 (native-inputs
7841 `(("glib:bin" ,glib "bin")
7842 ("gobject-introspection" ,gobject-introspection)
7843 ("intltool" ,intltool)
7844 ("pkg-config" ,pkg-config)
7845 ("python-wrapper" ,python-wrapper)
7846 ("vala" ,vala)))
7847 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7848 (synopsis "VNC viewer widget for GTK+")
7849 (description
7850 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7851 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7852 GTK-VNC implements client side RFB protocol and authentication extensions such
7853 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7854 (license license:lgpl2.1+)))
7855
7856 (define-public gnome-autoar
7857 (package
7858 (name "gnome-autoar")
7859 (version "0.2.4")
7860 (source (origin
7861 (method url-fetch)
7862 (uri (string-append "mirror://gnome/sources/" name "/"
7863 (version-major+minor version) "/"
7864 name "-" version ".tar.xz"))
7865 (sha256
7866 (base32
7867 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
7868 (build-system glib-or-gtk-build-system)
7869 (native-inputs
7870 `(("gobject-introspection" ,gobject-introspection)
7871 ("pkg-config" ,pkg-config)))
7872 (propagated-inputs
7873 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
7874 (inputs
7875 `(("gtk+" ,gtk+)))
7876 (synopsis "Archives integration support for GNOME")
7877 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7878 (description
7879 "GNOME Autoar is a library which makes creating and extracting archives
7880 easy, safe, and automatic.")
7881 (license license:lgpl2.1+)))
7882
7883 (define-public tracker
7884 (package
7885 (name "tracker")
7886 (version "2.3.4")
7887 (source (origin
7888 (method url-fetch)
7889 (uri (string-append "mirror://gnome/sources/tracker/"
7890 (version-major+minor version) "/"
7891 "tracker-" version ".tar.xz"))
7892 (sha256
7893 (base32
7894 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7895 (build-system meson-build-system)
7896 (arguments
7897 `(#:glib-or-gtk? #t
7898 #:configure-flags
7899 ;; Otherwise, the RUNPATH will lack the final path component.
7900 (list (string-append "-Dc_link_args=-Wl,-rpath="
7901 (assoc-ref %outputs "out") "/lib:"
7902 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7903 #:phases
7904 (modify-phases %standard-phases
7905 (add-before 'check 'pre-check
7906 (lambda _
7907 ;; Some tests expect to write to $HOME.
7908 (setenv "HOME" "/tmp")
7909 #t)))))
7910 (native-inputs
7911 `(("glib:bin" ,glib "bin")
7912 ("gobject-introspection" ,gobject-introspection)
7913 ("python-pygobject" ,python-pygobject)
7914 ("intltool" ,intltool)
7915 ("pkg-config" ,pkg-config)
7916 ("vala" ,vala)))
7917 (inputs
7918 `(("dbus" ,dbus)
7919 ("sqlite" ,sqlite)
7920 ("libxml2" ,libxml2)
7921 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
7922 ("json-glib" ,json-glib)
7923 ("libsoup" ,libsoup)))
7924 (synopsis "Metadata database, indexer and search tool")
7925 (home-page "https://wiki.gnome.org/Projects/Tracker")
7926 (description
7927 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7928
7929 It is a middleware component aimed at desktop application developers who want
7930 their apps to browse and search user content. It's not designed to be used
7931 directly by desktop users, but it provides a commandline tool named
7932 @command{tracker} for the adventurous.
7933
7934 Tracker allows your application to instantly perform full-text searches across
7935 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7936 example. This is achieved by indexing the user's home directory in the
7937 background.
7938
7939 Tracker also allows your application to query and list content that the user
7940 has stored. For example, GNOME Music displays all the music files that are
7941 found by Tracker. This means that GNOME Music doesn't need to maintain a
7942 database of its own.
7943
7944 If you need to go beyond simple searches, Tracker is also a linked data
7945 endpoint and it understands SPARQL. ")
7946 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
7947 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7948 ;; libstemmer is bsd-3 and the rest is gpl2+.
7949 (license (list license:gpl2+
7950 license:bsd-3
7951 license:lgpl2.1+))))
7952
7953 (define-public tracker-miners
7954 (package
7955 (name "tracker-miners")
7956 (version "2.3.3")
7957 (source (origin
7958 (method url-fetch)
7959 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7960 (version-major+minor version)
7961 "/tracker-miners-" version ".tar.xz"))
7962 (sha256
7963 (base32
7964 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
7965 (build-system meson-build-system)
7966 (arguments
7967 `(#:glib-or-gtk? #t
7968 #:configure-flags
7969 (list "-Dminer_rss=false" ; libgrss is required.
7970 ;; Ensure the RUNPATH contains all installed library locations.
7971 (string-append "-Dc_link_args=-Wl,-rpath="
7972 (assoc-ref %outputs "out")
7973 "/lib/tracker-miners-2.0")
7974 ;; TODO: Enable functional tests. Currently, the following error
7975 ;; appears:
7976 ;; Exception: The functional tests require DConf to be the default
7977 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7978 "-Dfunctional_tests=false")))
7979 (native-inputs
7980 `(("dbus" ,dbus)
7981 ("intltool" ,intltool)
7982 ("glib:bin" ,glib "bin")
7983 ("gobject-introspection" ,gobject-introspection)
7984 ("pkg-config" ,pkg-config)
7985 ("python-pygobject" ,python-pygobject)))
7986 (inputs
7987 `(("exempi" ,exempi)
7988 ("ffmpeg" ,ffmpeg)
7989 ("flac" ,flac)
7990 ("giflib" ,giflib)
7991 ("glib" ,glib)
7992 ("gstreamer" ,gstreamer)
7993 ("icu4c" ,icu4c)
7994 ("libcue" ,libcue)
7995 ("libexif" ,libexif)
7996 ("libgsf" ,libgsf)
7997 ("libgxps" ,libgxps)
7998 ("libiptcdata" ,libiptcdata)
7999 ("libjpeg" ,libjpeg-turbo)
8000 ("libosinfo" ,libosinfo)
8001 ("libpng" ,libpng)
8002 ("libseccomp" ,libseccomp)
8003 ("libtiff" ,libtiff)
8004 ("libvorbis" ,libvorbis)
8005 ("libxml2" ,libxml2)
8006 ("poppler" ,poppler)
8007 ("taglib" ,taglib)
8008 ("totem-pl-parser" ,totem-pl-parser)
8009 ("tracker" ,tracker)
8010 ("upower" ,upower)
8011 ("zlib" ,zlib)))
8012 (synopsis "Metadata database, indexer and search tool")
8013 (home-page "https://wiki.gnome.org/Projects/Tracker")
8014 (description
8015 "Tracker is an advanced framework for first class objects with associated
8016 metadata and tags. It provides a one stop solution for all metadata, tags,
8017 shared object databases, search tools and indexing.")
8018 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
8019 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
8020 (license (list license:gpl2+
8021 license:lgpl2.1+
8022 license:lgpl2.0+))))
8023
8024 (define-public nautilus
8025 (package
8026 (name "nautilus")
8027 (version "3.34.2")
8028 (source (origin
8029 (method url-fetch)
8030 (uri (string-append "mirror://gnome/sources/" name "/"
8031 (version-major+minor version) "/"
8032 name "-" version ".tar.xz"))
8033 (sha256
8034 (base32
8035 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
8036 (build-system meson-build-system)
8037 (arguments
8038 '(#:glib-or-gtk? #t
8039 #:phases
8040 (modify-phases %standard-phases
8041 (add-after 'unpack 'skip-gtk-update-icon-cache
8042 ;; Don't create 'icon-theme.cache'.
8043 (lambda _
8044 (substitute* "build-aux/meson/postinstall.py"
8045 (("gtk-update-icon-cache") "true"))
8046 #t)))
8047 ;; XXX: FAIL: check-nautilus
8048 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
8049 #:tests? #f))
8050 (native-inputs
8051 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8052 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
8053 ("gobject-introspection" ,gobject-introspection)
8054 ("intltool" ,intltool)
8055 ("pkg-config" ,pkg-config)))
8056 (inputs
8057 `(("dconf" ,dconf)
8058 ("gexiv2" ,gexiv2)
8059 ("gvfs" ,gvfs)
8060 ("exempi" ,exempi)
8061 ("gnome-desktop" ,gnome-desktop)
8062 ("gnome-autoar" ,gnome-autoar)
8063 ("gst-plugins-base" ,gst-plugins-base)
8064 ("libseccomp" ,libseccomp)
8065 ("libselinux" ,libselinux)
8066 ("tracker" ,tracker)
8067 ("tracker-miners" ,tracker-miners)
8068 ;; XXX: gtk+ is required by libnautilus-extension.pc
8069 ;;
8070 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
8071 ;; package. See:
8072 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
8073 ("gtk+" ,gtk+)
8074 ("libexif" ,libexif)
8075 ("libxml2" ,libxml2)))
8076 (synopsis "File manager for GNOME")
8077 (home-page "https://wiki.gnome.org/Apps/Nautilus")
8078 (description
8079 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
8080 design and behaviour, giving the user a simple way to navigate and manage its
8081 files.")
8082 (license license:gpl2+)))
8083
8084 (define-public baobab
8085 (package
8086 (name "baobab")
8087 (version "3.32.0")
8088 (source (origin
8089 (method url-fetch)
8090 (uri (string-append
8091 "mirror://gnome/sources/" name "/"
8092 (version-major+minor version) "/"
8093 name "-" version ".tar.xz"))
8094 (sha256
8095 (base32
8096 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
8097 (build-system meson-build-system)
8098 (arguments
8099 '(#:glib-or-gtk? #t))
8100 (native-inputs
8101 `(("intltool" ,intltool)
8102 ("pkg-config" ,pkg-config)
8103 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8104 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8105 ("itstool" ,itstool)
8106 ("xmllint" ,libxml2)
8107 ("glib" ,glib "bin")
8108 ("vala" ,vala)))
8109 (inputs
8110 `(("gtk+" ,gtk+)))
8111 (synopsis "Disk usage analyzer for GNOME")
8112 (description
8113 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
8114 usage in the GNOME desktop environment. It can easily scan device volumes or
8115 a specific user-requested directory branch (local or remote). Once the scan
8116 is complete it provides a graphical representation of each selected folder.")
8117 (home-page "https://wiki.gnome.org/Apps/Baobab")
8118 (license license:gpl2+)))
8119
8120 (define-public gnome-backgrounds
8121 (package
8122 (name "gnome-backgrounds")
8123 (version "3.34.0")
8124 (source
8125 (origin
8126 (method url-fetch)
8127 (uri (string-append "mirror://gnome/sources/" name "/"
8128 (version-major+minor version) "/"
8129 name "-" version ".tar.xz"))
8130 (sha256
8131 (base32
8132 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
8133 (build-system meson-build-system)
8134 (native-inputs
8135 `(("intltool" ,intltool)))
8136 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
8137 (synopsis "Background images for the GNOME desktop")
8138 (description
8139 "GNOME backgrounds package contains a collection of graphics files which
8140 can be used as backgrounds in the GNOME Desktop environment. Additionally,
8141 the package creates the proper framework and directory structure so that you
8142 can add your own files to the collection.")
8143 (license (list license:gpl2+
8144 license:cc-by2.0
8145 license:cc-by-sa2.0
8146 license:cc-by-sa3.0))))
8147
8148 (define-public gnome-screenshot
8149 (package
8150 (name "gnome-screenshot")
8151 (version "3.34.0")
8152 (source
8153 (origin
8154 (method url-fetch)
8155 (uri (string-append "mirror://gnome/sources/" name "/"
8156 (version-major+minor version) "/"
8157 name "-" version ".tar.xz"))
8158 (sha256
8159 (base32
8160 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
8161 (build-system meson-build-system)
8162 (arguments
8163 '(#:phases
8164 (modify-phases %standard-phases
8165 (add-after 'unpack 'skip-gtk-update-icon-cache
8166 ;; Don't create 'icon-theme.cache'.
8167 (lambda _
8168 (substitute* "build-aux/postinstall.py"
8169 (("gtk-update-icon-cache") "true"))
8170 #t)))))
8171 (native-inputs
8172 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8173 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
8174 ("intltool" ,intltool)
8175 ("appstream-glib" ,appstream-glib)
8176 ("pkg-config" ,pkg-config)))
8177 (inputs
8178 `(("gtk+" ,gtk+)
8179 ("libcanberra" ,libcanberra)
8180 ("libx11" ,libx11)
8181 ("libxext" ,libxext)))
8182 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
8183 (synopsis "Take pictures of your screen")
8184 (description
8185 "GNOME Screenshot is a utility used for taking screenshots of the entire
8186 screen, a window or a user defined area of the screen, with optional
8187 beautifying border effects.")
8188 (license license:gpl2+)))
8189
8190 (define-public dconf-editor
8191 (package
8192 (name "dconf-editor")
8193 (version "3.34.2")
8194 (source
8195 (origin
8196 (method url-fetch)
8197 (uri (string-append "mirror://gnome/sources/" name "/"
8198 (version-major+minor version) "/"
8199 name "-" version ".tar.xz"))
8200 (sha256
8201 (base32
8202 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8203 (build-system meson-build-system)
8204 (native-inputs
8205 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8206 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8207 ("intltool" ,intltool)
8208 ("pkg-config" ,pkg-config)
8209 ("vala" ,vala)))
8210 (inputs
8211 `(("dconf" ,dconf)
8212 ("gtk+" ,gtk+)
8213 ("libxml2" ,libxml2)))
8214 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
8215 (synopsis "Graphical editor for GNOME's dconf configuration system")
8216 (description
8217 "Dconf-editor is a graphical tool for browsing and editing the dconf
8218 configuration system for GNOME. It allows users to configure desktop
8219 software that do not provide their own configuration interface.")
8220 (license license:lgpl2.1+)))
8221
8222 (define-public gnome-default-applications
8223 (package
8224 (name "gnome-default-applications")
8225 (version "0")
8226 (build-system trivial-build-system)
8227 (source #f)
8228 (propagated-inputs
8229 `(("nautilus" ,nautilus)
8230 ("evince" ,evince)))
8231 (arguments
8232 `(#:modules ((guix build utils))
8233 #:builder
8234 (begin
8235 (use-modules (guix build utils))
8236 (let* ((out (assoc-ref %outputs "out"))
8237 (apps (string-append out "/share/applications")))
8238 (mkdir-p apps)
8239 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
8240 (lambda (port)
8241 (format port "[Default Applications]\n")
8242 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
8243 (format port "application/pdf=evince.desktop\n")
8244 (format port "application/postscript=evince.desktop\n")))
8245 #t))))
8246 (synopsis "Default MIME type associations for the GNOME desktop")
8247 (description
8248 "Given many installed packages which might handle a given MIME type, a
8249 user running the GNOME desktop probably has some preferences: for example,
8250 that folders be opened by default by the Nautilus file manager, not the Baobab
8251 disk usage analyzer. This package establishes that set of default MIME type
8252 associations for GNOME.")
8253 (license license:gpl3+)
8254 (home-page #f)))
8255
8256 (define-public libgovirt
8257 (package
8258 (name "libgovirt")
8259 (version "0.3.6")
8260 (source (origin
8261 (method url-fetch)
8262 (uri (string-append "mirror://gnome/sources/" name "/"
8263 (version-major+minor version) "/"
8264 name "-" version ".tar.xz"))
8265 (sha256
8266 (base32
8267 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
8268 (build-system glib-or-gtk-build-system)
8269 (native-inputs
8270 `(("gettext" ,gettext-minimal)
8271 ("glib:bin" ,glib "bin")
8272 ("gobject-introspection" ,gobject-introspection)
8273 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8274 ("gtk+:bin" ,gtk+ "bin")
8275 ("pkg-config" ,pkg-config)))
8276 (inputs
8277 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
8278 ("librest" ,rest)))
8279 (synopsis "GoVirt Library")
8280 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
8281 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
8282 (license license:gpl2+)))
8283
8284 (define-public gnome-weather
8285 (package
8286 (name "gnome-weather")
8287 (version "3.34.0")
8288 (source (origin
8289 (method url-fetch)
8290 (uri (string-append "mirror://gnome/sources/" name "/"
8291 (version-major+minor version) "/"
8292 name "-" version ".tar.xz"))
8293 (sha256
8294 (base32
8295 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
8296 (build-system meson-build-system)
8297 (native-inputs
8298 `(("gettext" ,gettext-minimal)
8299 ("glib:bin" ,glib "bin")
8300 ("gobject-introspection" ,gobject-introspection)
8301 ("gtk+:bin" ,gtk+ "bin")
8302 ("pkg-config" ,pkg-config)))
8303 (inputs
8304 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
8305 ("appstream-glib" ,appstream-glib)
8306 ("geoclue" ,geoclue)
8307 ("gdk-pixbuf" ,gdk-pixbuf)
8308 ("gjs" ,gjs)
8309 ("gnome-desktop" ,gnome-desktop)
8310 ("libgweather" ,libgweather)))
8311 (arguments
8312 `(#:glib-or-gtk? #t
8313 #:phases
8314 (modify-phases %standard-phases
8315 (add-after 'install 'fix-desktop-file
8316 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
8317 ;; See https://issues.guix.gnu.org/issue/39324.
8318 (lambda* (#:key outputs #:allow-other-keys)
8319 (let* ((out (assoc-ref outputs "out"))
8320 (applications (string-append out "/share/applications")))
8321 (substitute* (string-append applications "/org.gnome.Weather.desktop")
8322 (("Exec=.*") "Exec=gnome-weather\n"))
8323 #t)))
8324 (add-after 'install 'wrap
8325 (lambda* (#:key inputs outputs #:allow-other-keys)
8326 (let ((out (assoc-ref outputs "out"))
8327 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8328 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
8329 (wrap-program (string-append out "/bin/gnome-weather")
8330 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
8331 #t))))))
8332 (synopsis "Weather monitoring for GNOME desktop")
8333 (description "GNOME Weather is a small application that allows you to
8334 monitor the current weather conditions for your city, or anywhere in the
8335 world.")
8336 (home-page "https://wiki.gnome.org/Apps/Weather")
8337 (license license:gpl2+)))
8338
8339 (define-public gnome
8340 (package
8341 (name "gnome")
8342 (version (package-version gnome-shell))
8343 (source #f)
8344 (build-system trivial-build-system)
8345 (arguments '(#:builder (begin (mkdir %output) #t)))
8346 (propagated-inputs
8347 ;; TODO: Add or remove packages according to:
8348 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
8349 `(
8350 ;; GNOME-Core-OS-Services
8351 ("accountsservice" ,accountsservice)
8352 ("network-manager" ,network-manager)
8353 ("packagekit" ,packagekit)
8354 ("upower" ,upower)
8355 ;; GNOME-Core-Shell
8356 ("adwaita-icon-theme" ,adwaita-icon-theme)
8357 ("gdm" ,gdm)
8358 ("glib-networking" ,glib-networking)
8359 ("gnome-backgrounds" ,gnome-backgrounds)
8360 ("gnome-bluetooth" ,gnome-bluetooth)
8361 ("gnome-color-manager" ,gnome-color-manager)
8362 ("gnome-control-center" ,gnome-control-center)
8363 ("gnome-desktop" ,gnome-desktop)
8364 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8365 ("gnome-initial-setup" ,gnome-initial-setup)
8366 ("gnome-keyring" ,gnome-keyring)
8367 ("gnome-menus" ,gnome-menus)
8368 ("gnome-session" ,gnome-session)
8369 ("gnome-settings-daemon" ,gnome-settings-daemon)
8370 ("gnome-shell-extensions" ,gnome-shell-extensions)
8371 ("gnome-shell" ,gnome-shell)
8372 ("gnome-themes-extra" ,gnome-themes-extra)
8373 ("gnome-user-docs" ,gnome-user-docs)
8374 ("gnome-user-share" ,gnome-user-share)
8375 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8376 ("gvfs" ,gvfs)
8377 ("mutter" ,mutter)
8378 ("orca" ,orca)
8379 ("rygel" ,rygel)
8380 ("sushi" ,sushi)
8381 ;; GNOME-Core-Utilities
8382 ("baobab" ,baobab)
8383 ("cheese" ,cheese)
8384 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8385 ;; only works on x86_64, so exclude it on other architectures.
8386 ,@(if (string-prefix? "x86_64" (%current-system))
8387 `(("eog" ,eog))
8388 '())
8389 ("epiphany" ,epiphany)
8390 ("evince" ,evince)
8391 ("file-roller" ,file-roller)
8392 ("gedit" ,gedit)
8393 ("gnome-boxes" ,gnome-boxes)
8394 ("gnome-calculator" ,gnome-calculator)
8395 ("gnome-calendar" ,gnome-calendar)
8396 ("gnome-characters" ,gnome-characters)
8397 ("gnome-clocks" ,gnome-clocks)
8398 ("gnome-contacts" ,gnome-contacts)
8399 ("gnome-disk-utility" ,gnome-disk-utility)
8400 ("gnome-font-viewer" ,gnome-font-viewer)
8401 ("gnome-maps" ,gnome-maps)
8402 ; TODO: ("gnome-music" ,gnome-music)
8403 ; TODO: ("gnome-photos" ,gnome-photos)
8404 ("gnome-screenshot" ,gnome-screenshot)
8405 ("gnome-system-monitor" ,gnome-system-monitor)
8406 ("gnome-terminal" ,gnome-terminal)
8407 ("gnome-weather" ,gnome-weather)
8408 ("nautilus" ,nautilus)
8409 ("simple-scan" ,simple-scan)
8410 ("totem" ,totem)
8411 ("yelp" ,yelp)
8412 ;; Others
8413 ("hicolor-icon-theme" ,hicolor-icon-theme)
8414 ("gnome-online-accounts" ,gnome-online-accounts)
8415
8416 ;; Packages not part of GNOME proper but that are needed for a good
8417 ;; experience. See <https://bugs.gnu.org/39646>.
8418 ;; XXX: Find out exactly which ones are needed and why.
8419 ("font-cantarell" ,font-cantarell)
8420 ("font-dejavu" ,font-dejavu)
8421 ("at-spi2-core" ,at-spi2-core)
8422 ("dbus" ,dbus)
8423 ("dconf" ,dconf)
8424 ("desktop-file-utils" ,desktop-file-utils)
8425 ("gnome-default-applications" ,gnome-default-applications)
8426 ("gnome-themes-standard" ,gnome-themes-standard)
8427 ("gst-plugins-base" ,gst-plugins-base)
8428 ("gst-plugins-good" ,gst-plugins-good)
8429 ("gucharmap" ,gucharmap)
8430 ("pinentry-gnome3" ,pinentry-gnome3)
8431 ("pulseaudio" ,pulseaudio)
8432 ("shared-mime-info" ,shared-mime-info)
8433 ("system-config-printer" ,system-config-printer)
8434 ("xdg-user-dirs" ,xdg-user-dirs)
8435 ("yelp" ,yelp)
8436 ("zenity" ,zenity)))
8437 (synopsis "The GNU desktop environment")
8438 (home-page "https://www.gnome.org/")
8439 (description
8440 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8441 applications for browsing the web, editing text and images, creating
8442 documents and diagrams, playing media, scanning, and much more.")
8443 (license license:gpl2+)))
8444
8445 (define-public byzanz
8446 ;; The last stable release of Byzanz was in 2011, but there have been many
8447 ;; useful commits made to the Byzanz repository since then that it would be
8448 ;; silly to use such an old release.
8449 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8450 (package
8451 (name "byzanz")
8452 (version (string-append "0.2-1." (string-take commit 7)))
8453 (source (origin
8454 (method git-fetch)
8455 (uri (git-reference
8456 (url "https://git.gnome.org/browse/byzanz")
8457 (commit commit)))
8458 (file-name (string-append name "-" version "-checkout"))
8459 (sha256
8460 (base32
8461 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8462 (build-system glib-or-gtk-build-system)
8463 (arguments
8464 '(#:phases
8465 (modify-phases %standard-phases
8466 (add-before 'bootstrap 'build-without-Werror
8467 (lambda _
8468 ;; The build system cleverly detects that we're not building from
8469 ;; a release tarball and turns on -Werror for GCC.
8470 ;; Unsurprisingly, there is a warning during compilation that
8471 ;; causes the build to fail unnecessarily, so we remove the flag.
8472 (substitute* '("configure.ac")
8473 (("-Werror") ""))
8474 #t)))))
8475 (native-inputs
8476 `(("autoconf" ,autoconf)
8477 ("automake" ,automake)
8478 ("gnome-common" ,gnome-common)
8479 ("intltool" ,intltool)
8480 ("libtool" ,libtool)
8481 ("pkg-config" ,pkg-config)
8482 ("which" ,which)))
8483 (inputs
8484 `(("glib" ,glib)
8485 ("gstreamer" ,gstreamer)
8486 ("gst-plugins-base" ,gst-plugins-base)
8487 ("gtk+" ,gtk+)))
8488 (synopsis "Desktop recording program")
8489 (description "Byzanz is a simple desktop recording program with a
8490 command-line interface. It can record part or all of an X display for a
8491 specified duration and save it as a GIF encoded animated image file.")
8492 (home-page "https://git.gnome.org/browse/byzanz")
8493 (license license:gpl2+))))
8494
8495 (define-public gsound
8496 (package
8497 (name "gsound")
8498 (version "1.0.2")
8499 (source (origin
8500 (method url-fetch)
8501 (uri (string-append "mirror://gnome/sources/" name "/"
8502 (version-major+minor version) "/"
8503 name "-" version ".tar.xz"))
8504 (sha256
8505 (base32
8506 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8507 (build-system glib-or-gtk-build-system)
8508 (native-inputs
8509 `(("pkg-config" ,pkg-config)
8510 ("gobject-introspection" ,gobject-introspection)
8511 ("vala" ,vala)))
8512 (inputs
8513 `(("glib" ,glib)
8514 ("libcanberra" ,libcanberra)))
8515 (home-page "https://wiki.gnome.org/Projects/GSound")
8516 (synopsis "GObject wrapper for libcanberra")
8517 (description
8518 "GSound is a small library for playing system sounds. It's designed to be
8519 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8520 library.")
8521 (license license:lgpl2.1+)))
8522
8523 (define-public libzapojit
8524 (package
8525 (name "libzapojit")
8526 (version "0.0.3")
8527 (source (origin
8528 (method url-fetch)
8529 (uri (string-append "mirror://gnome/sources/" name "/"
8530 (version-major+minor version) "/"
8531 name "-" version ".tar.xz"))
8532 (sha256
8533 (base32
8534 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8535 (build-system gnu-build-system)
8536 (native-inputs
8537 `(("gobject-introspection" ,gobject-introspection)
8538 ("intltool" ,intltool)
8539 ("pkg-config" ,pkg-config)))
8540 (inputs
8541 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8542 ("json-glib" ,json-glib)
8543 ("rest" ,rest)))
8544 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8545 (synopsis "Library for accessing SkyDrive and Hotmail")
8546 (description
8547 "Libzapojit is a GLib-based library for accessing online service APIs of
8548 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8549 (license license:lgpl2.1+)))
8550
8551 (define-public gnome-clocks
8552 (package
8553 (name "gnome-clocks")
8554 (version "3.34.0")
8555 (source (origin
8556 (method url-fetch)
8557 (uri (string-append "mirror://gnome/sources/" name "/"
8558 (version-major+minor version) "/"
8559 name "-" version ".tar.xz"))
8560 (sha256
8561 (base32
8562 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8563 (build-system meson-build-system)
8564 (arguments
8565 '(#:glib-or-gtk? #t
8566 #:phases
8567 (modify-phases %standard-phases
8568 (add-after 'unpack 'skip-gtk-update-icon-cache
8569 ;; Don't create 'icon-theme.cache'.
8570 (lambda _
8571 (substitute* "build-aux/post-install.py"
8572 (("gtk-update-icon-cache") "true"))
8573 #t)))))
8574 (native-inputs
8575 `(("vala" ,vala)
8576 ("pkg-config" ,pkg-config)
8577 ("glib" ,glib "bin") ; for glib-compile-resources
8578 ("desktop-file-utils" ,desktop-file-utils)
8579 ("gettext" ,gettext-minimal)
8580 ("itstool" ,itstool)))
8581 (inputs
8582 `(("glib" ,glib)
8583 ("gtk+" ,gtk+)
8584 ("gsound" ,gsound)
8585 ("geoclue" ,geoclue)
8586 ("geocode-glib" ,geocode-glib)
8587 ("libgweather" ,libgweather)
8588 ("gnome-desktop" ,gnome-desktop)))
8589 (home-page "https://wiki.gnome.org/Apps/Clocks")
8590 (synopsis "GNOME's clock application")
8591 (description
8592 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8593 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8594 (license license:gpl3+)))
8595
8596 (define-public gnome-calendar
8597 (package
8598 (name "gnome-calendar")
8599 (version "3.34.2")
8600 (source (origin
8601 (method url-fetch)
8602 (uri (string-append "mirror://gnome/sources/" name "/"
8603 (version-major+minor version) "/"
8604 name "-" version ".tar.xz"))
8605 (sha256
8606 (base32
8607 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
8608 (build-system meson-build-system)
8609 (arguments
8610 '(#:glib-or-gtk? #t
8611 ;; gnome-calendar has to be installed before the tests can be run
8612 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8613 #:tests? #f
8614 #:phases
8615 (modify-phases %standard-phases
8616 (add-after 'unpack 'skip-gtk-update-icon-cache
8617 ;; Don't create 'icon-theme.cache'.
8618 (lambda _
8619 (substitute* "build-aux/meson/meson_post_install.py"
8620 (("gtk-update-icon-cache") "true"))
8621 #t)))))
8622 (native-inputs
8623 `(("gettext" ,gettext-minimal)
8624 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8625 ("pkg-config" ,pkg-config)))
8626 (inputs
8627 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8628 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8629 ("libdazzle" ,libdazzle)
8630 ("libedataserverui" ,evolution-data-server)
8631 ("libgweather" ,libgweather)
8632 ("geoclue" ,geoclue)))
8633 (propagated-inputs
8634 `(("evolution-data-server" ,evolution-data-server)))
8635 (home-page "https://wiki.gnome.org/Apps/Calendar")
8636 (synopsis "GNOME's calendar application")
8637 (description
8638 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8639 desktop. It supports multiple calendars, month, week and year view.")
8640 (license license:gpl3+)))
8641
8642 (define-public gnome-todo
8643 (package
8644 (name "gnome-todo")
8645 (version "3.28.1")
8646 (source (origin
8647 (method url-fetch)
8648 (uri (string-append "mirror://gnome/sources/" name "/"
8649 (version-major+minor version) "/"
8650 name "-" version ".tar.xz"))
8651 (sha256
8652 (base32
8653 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8654 (patches
8655 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
8656 (build-system meson-build-system)
8657 (arguments
8658 '(#:glib-or-gtk? #t
8659 #:phases (modify-phases %standard-phases
8660 (add-after
8661 'install 'wrap-gnome-todo
8662 (lambda* (#:key inputs outputs #:allow-other-keys)
8663 (let ((out (assoc-ref outputs "out"))
8664 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8665 (python-path (getenv "PYTHONPATH")))
8666 (wrap-program (string-append out "/bin/gnome-todo")
8667 ;; XXX: gi plugins are broken.
8668 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8669 ;; For plugins.
8670 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8671 `("PYTHONPATH" ":" prefix (,python-path))))
8672 #t)))))
8673 (native-inputs
8674 `(("gettext" ,gettext-minimal)
8675 ("gobject-introspection" ,gobject-introspection)
8676 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8677 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8678 ("pkg-config" ,pkg-config)))
8679 (inputs
8680 `(("rest" ,rest) ; For Todoist plugin
8681 ("json-glib" ,json-glib) ; For Todoist plugin
8682 ("libedataserverui" ,evolution-data-server)
8683 ("libical" ,libical)
8684 ("libpeas" ,libpeas)
8685 ("python-pygobject" ,python-pygobject)
8686 ("evolution-data-server" ,evolution-data-server)
8687 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8688 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8689 (home-page "https://wiki.gnome.org/Apps/Todo")
8690 (synopsis "GNOME's ToDo Application")
8691 (description
8692 "GNOME To Do is a simplistic personal task manager designed to perfectly
8693 fit the GNOME desktop.")
8694 (license license:gpl3+)))
8695
8696 (define-public gnome-dictionary
8697 (package
8698 (name "gnome-dictionary")
8699 (version "3.26.1")
8700 (source (origin
8701 (method url-fetch)
8702 (uri (string-append "mirror://gnome/sources/" name "/"
8703 (version-major+minor version) "/"
8704 name "-" version ".tar.xz"))
8705 (sha256
8706 (base32
8707 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8708 (build-system meson-build-system)
8709 (arguments '(#:glib-or-gtk? #t
8710 #:phases (modify-phases %standard-phases
8711 (add-after 'unpack 'patch-install-script
8712 (lambda _
8713 ;; This script attempts to compile glib schemas
8714 ;; and create an empty MIME database. We do
8715 ;; that elsewhere, so prevent it from running.
8716 (substitute* "build-aux/post-install.sh"
8717 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8718 #t)))))
8719 (native-inputs
8720 `(("glib:bin" ,glib "bin")
8721 ("gobject-introspection" ,gobject-introspection)
8722 ("intltool" ,intltool)
8723 ("itstool" ,itstool)
8724 ("pkg-config" ,pkg-config)
8725 ("xmllint" ,libxml2)))
8726 (inputs
8727 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8728 ("gtk+" ,gtk+)))
8729 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8730 (synopsis "Look up words in dictionary sources")
8731 (description
8732 "GNOME Dictionary can look for the definition or translation of a word in
8733 existing databases over the internet.")
8734 (license license:gpl3+)))
8735
8736 (define-public gnome-tweaks
8737 (package
8738 (name "gnome-tweaks")
8739 (version "3.34.0")
8740 (source (origin
8741 (method url-fetch)
8742 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8743 (version-major+minor version) "/"
8744 "gnome-tweaks-" version ".tar.xz"))
8745 (patches
8746 (list (search-patch "gnome-tweaks-search-paths.patch")))
8747 (sha256
8748 (base32
8749 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
8750 (build-system meson-build-system)
8751 (arguments
8752 `(#:glib-or-gtk? #t
8753 #:configure-flags '("-Dlocalstatedir=/tmp"
8754 "-Dsysconfdir=/tmp")
8755 #:imported-modules ((guix build python-build-system)
8756 ,@%meson-build-system-modules)
8757 #:phases
8758 (modify-phases %standard-phases
8759 (add-after 'unpack 'skip-gtk-update-icon-cache
8760 ;; Don't create 'icon-theme.cache'.
8761 (lambda _
8762 (substitute* "meson-postinstall.py"
8763 (("gtk-update-icon-cache") "true"))
8764 #t))
8765 (add-after 'install 'wrap
8766 (@@ (guix build python-build-system) wrap))
8767 (add-after 'wrap 'wrap-gi-typelib
8768 (lambda* (#:key inputs outputs #:allow-other-keys)
8769 (let ((out (assoc-ref outputs "out"))
8770 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8771 (wrap-program (string-append out "/bin/gnome-tweaks")
8772 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8773 #t)))))
8774 (native-inputs
8775 `(("intltool" ,intltool)
8776 ("pkg-config" ,pkg-config)))
8777 (inputs
8778 `(("gnome-desktop" ,gnome-desktop)
8779 ("gtk+" ,gtk+)
8780 ("gobject-introspection" ,gobject-introspection)
8781 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8782 ("libhandy" ,libhandy)
8783 ("libnotify" ,libnotify)
8784 ("libsoup" ,libsoup)
8785 ("nautilus" ,nautilus)
8786 ("python" ,python)
8787 ("python-pygobject" ,python-pygobject)))
8788 (synopsis "Customize advanced GNOME 3 options")
8789 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8790 (description
8791 "GNOME Tweaks allows adjusting advanced configuration settings in
8792 GNOME 3. This includes things like the fonts used in user interface elements,
8793 alternative user interface themes, changes in window management behavior,
8794 GNOME Shell appearance and extension, etc.")
8795 (license license:gpl3+)))
8796
8797 (define-public gnome-shell-extensions
8798 (package
8799 (name "gnome-shell-extensions")
8800 (version "3.34.2")
8801 (source (origin
8802 (method url-fetch)
8803 (uri (string-append "mirror://gnome/sources/" name "/"
8804 (version-major+minor version) "/"
8805 name "-" version ".tar.xz"))
8806 (sha256
8807 (base32
8808 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
8809 (build-system meson-build-system)
8810 (arguments
8811 '(#:configure-flags '("-Dextension_set=all")))
8812 (native-inputs
8813 `(("glib:bin" ,glib "bin")
8814 ("intltool" ,intltool)
8815 ("pkg-config" ,pkg-config)))
8816 (propagated-inputs
8817 `(("glib" ,glib)))
8818 (synopsis "Extensions for GNOME Shell")
8819 (description "GNOME Shell extensions modify and extend GNOME Shell
8820 functionality and behavior.")
8821 (home-page "https://extensions.gnome.org/")
8822 (license license:gpl3+)))
8823
8824 (define-public arc-theme
8825 (package
8826 (name "arc-theme")
8827 (version "20190917")
8828 (source (origin
8829 (method git-fetch)
8830 (uri (git-reference
8831 (url "https://github.com/NicoHood/arc-theme")
8832 (commit version)))
8833 (file-name (git-file-name name version))
8834 (sha256
8835 (base32
8836 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8837 (build-system gnu-build-system)
8838 (arguments
8839 '(#:phases
8840 (modify-phases %standard-phases
8841 ;; autogen.sh calls configure at the end of the script.
8842 (replace 'bootstrap
8843 (lambda _ (invoke "autoreconf" "-vfi")))
8844 (add-before 'build 'set-home ;placate Inkscape
8845 (lambda _
8846 (setenv "HOME" (getcwd))
8847 #t)))))
8848 (native-inputs
8849 `(("autoconf" ,autoconf)
8850 ("automake" ,automake)
8851 ("glib" ,glib "bin") ; for glib-compile-resources
8852 ("gnome-shell" ,gnome-shell)
8853 ("gtk+" ,gtk+)
8854 ("inkscape" ,inkscape)
8855 ("optipng" ,optipng)
8856 ("pkg-config" ,pkg-config)
8857 ("sassc" ,sassc/libsass-3.5)))
8858 (synopsis "A flat GTK+ theme with transparent elements")
8859 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8860 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8861 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8862 (home-page "https://github.com/horst3180/arc-theme")
8863 ;; No "or later" language found.
8864 (license license:gpl3+)))
8865
8866 (define-public faba-icon-theme
8867 (package
8868 (name "faba-icon-theme")
8869 (version "4.3")
8870 (source
8871 (origin
8872 (method git-fetch)
8873 (uri (git-reference
8874 (url "https://github.com/snwh/faba-icon-theme")
8875 (commit (string-append "v" version))))
8876 (file-name (git-file-name name version))
8877 (sha256
8878 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8879 (build-system meson-build-system)
8880 (arguments
8881 `(#:phases
8882 (modify-phases %standard-phases
8883 (add-before 'configure 'disable-post-install
8884 (lambda _
8885 (substitute* "meson.build"
8886 (("meson.add_install_script.*") "")))))))
8887 (native-inputs
8888 `(("autoconf" ,autoconf)
8889 ("automake" ,automake)))
8890 (synopsis "Faba icon theme")
8891 (description
8892 "Faba is a minimal icon set used as a basis for other themes such as
8893 Moka")
8894 (home-page "https://snwh.org/moka")
8895 (license (list license:lgpl3+
8896 license:cc-by-sa4.0))))
8897
8898 (define-public moka-icon-theme
8899 (package
8900 (inherit faba-icon-theme)
8901 (name "moka-icon-theme")
8902 (version "5.4.0")
8903 (source
8904 (origin
8905 (method git-fetch)
8906 (uri (git-reference
8907 (url "https://github.com/snwh/moka-icon-theme")
8908 (commit (string-append "v" version))))
8909 (file-name (git-file-name name version))
8910 (sha256
8911 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8912 (propagated-inputs
8913 ;; Moka is based on Faba by using it as a fallback icon set instead of
8914 ;; bundling it, so we need to add it as a propagated input.
8915 `(("faba-icon-theme" ,faba-icon-theme)))
8916 (synopsis "Moka icon theme")
8917 (description "Moka is a stylized desktop icon set, designed to be clear,
8918 simple and consistent.")
8919 (license (list license:gpl3+
8920 license:cc-by-sa4.0))))
8921
8922 (define-public arc-icon-theme
8923 (package
8924 (name "arc-icon-theme")
8925 (version "20161122")
8926 (source
8927 (origin
8928 (method git-fetch)
8929 (uri (git-reference
8930 (url "https://github.com/horst3180/arc-icon-theme")
8931 (commit version)))
8932 (file-name (git-file-name name version))
8933 (sha256
8934 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8935 (build-system gnu-build-system)
8936 (arguments
8937 `(#:phases
8938 (modify-phases %standard-phases
8939 (add-after 'unpack 'disable-configure-during-bootstrap
8940 (lambda _
8941 (substitute* "autogen.sh"
8942 (("^\"\\$srcdir/configure\".*") ""))
8943 #t)))))
8944 (native-inputs
8945 `(("autoconf" ,autoconf)
8946 ("automake" ,automake)))
8947 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8948 (propagated-inputs
8949 `(("moka-icon-theme" ,moka-icon-theme)))
8950 (synopsis "Arc icon theme")
8951 (description "The Arc icon theme provides a set of icons matching the
8952 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8953 the Moka icon theme.")
8954 (home-page "https://github.com/horst3180/arc-icon-theme")
8955 (license license:gpl3+)))
8956
8957 (define-public folks
8958 (package
8959 (name "folks")
8960 (version "0.13.1")
8961 (source (origin
8962 (method url-fetch)
8963 (uri (string-append
8964 "mirror://gnome/sources/folks/"
8965 (version-major+minor version) "/"
8966 "folks-" version ".tar.xz"))
8967 (sha256
8968 (base32
8969 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8970 (build-system meson-build-system)
8971 (arguments
8972 '(#:phases
8973 (modify-phases %standard-phases
8974 (add-after 'unpack 'skip-gtk-update-icon-cache
8975 ;; Don't create 'icon-theme.cache'.
8976 (lambda _
8977 (substitute* "meson_post_install.py"
8978 (("gtk-update-icon-cache") "true"))
8979 #t)))))
8980 (inputs
8981 `(("bdb" ,bdb)
8982 ("dbus-glib" ,dbus-glib)
8983 ("evolution-data-server" ,evolution-data-server)
8984 ("glib" ,glib)
8985 ("libgee" ,libgee)
8986 ("readline" ,readline)
8987 ("telepathy-glib" ,telepathy-glib)))
8988 (native-inputs
8989 `(("glib:bin" ,glib "bin")
8990 ("gobject-introspection" ,gobject-introspection)
8991 ("intltool" ,intltool)
8992 ("pkg-config" ,pkg-config)
8993 ("vala" ,vala)))
8994 (synopsis "Library to aggregate data about people")
8995 (description "Libfolks is a library that aggregates information about people
8996 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8997 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8998 etc.) to create metacontacts. It's written in Vala, which generates C code when
8999 compiled.")
9000 (home-page "https://wiki.gnome.org/Projects/Folks")
9001 (license license:lgpl2.1+)))
9002
9003 (define-public gfbgraph
9004 (package
9005 (name "gfbgraph")
9006 (version "0.2.4")
9007 (source (origin
9008 (method url-fetch)
9009 (uri (string-append
9010 "mirror://gnome/sources/gfbgraph/"
9011 (version-major+minor version) "/"
9012 "gfbgraph-" version ".tar.xz"))
9013 (sha256
9014 (base32
9015 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
9016 (build-system glib-or-gtk-build-system)
9017 (arguments
9018 `(#:tests? #f ; tests appear to require the network
9019 #:configure-flags '("--disable-static"
9020 "--enable-gtk-doc"
9021 "--enable-introspection")))
9022 (native-inputs
9023 `(("gobject-introspection" ,gobject-introspection)
9024 ("gtk-doc" ,gtk-doc)
9025 ("pkg-config" ,pkg-config)
9026
9027 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
9028 ("autoconf" ,autoconf)
9029 ("automake" ,automake)
9030 ("libtool" ,libtool)
9031 ("which" ,which)))
9032 (inputs
9033 `(("json-glib" ,json-glib)
9034 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
9035 ("rest" ,rest)))
9036 (synopsis "GLib/GObject wrapper for the Facebook API")
9037 (description "This library allows you to use the Facebook API from
9038 GLib/GObject code.")
9039 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
9040 (license license:lgpl2.1+)))
9041
9042 (define-public libgnomekbd
9043 (package
9044 (name "libgnomekbd")
9045 (version "3.26.1")
9046 (source (origin
9047 (method url-fetch)
9048 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
9049 (version-major+minor version) "/"
9050 "libgnomekbd-" version ".tar.xz"))
9051 (sha256
9052 (base32
9053 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
9054 (build-system gnu-build-system)
9055 (native-inputs
9056 `(("pkg-config" ,pkg-config)
9057 ("glib" ,glib "bin")
9058 ("intltool" ,intltool)))
9059 (propagated-inputs
9060 ;; Referred to in .h files and .pc.
9061 `(("glib" ,glib)
9062 ("gtk+" ,gtk+)
9063 ("libxklavier" ,libxklavier)))
9064 (home-page "https://www.gnome.org")
9065 (synopsis "GNOME keyboard configuration library")
9066 (description
9067 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
9068 environment, which can notably display keyboard layouts.")
9069 (license license:lgpl2.0+)))
9070
9071 ;;; This package is no longer maintained:
9072 ;;; https://wiki.gnome.org/Attic/LibUnique
9073 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
9074 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
9075 (define-public libunique
9076 (package
9077 (name "libunique")
9078 (version "3.0.2")
9079 (source (origin
9080 (method url-fetch)
9081 (uri (string-append "mirror://gnome/sources/" name "/"
9082 (version-major+minor version) "/"
9083 name "-" version ".tar.xz"))
9084 (sha256
9085 (base32
9086 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
9087 (build-system glib-or-gtk-build-system)
9088 (arguments
9089 `(#:configure-flags '("--disable-static"
9090 "--disable-dbus" ; use gdbus
9091 "--enable-introspection")))
9092 (native-inputs
9093 `(("pkg-config" ,pkg-config)
9094 ("gobject-introspection" ,gobject-introspection)
9095 ("glib:bin" ,glib "bin")
9096 ("gtk-doc" ,gtk-doc)))
9097 (propagated-inputs
9098 ;; Referred to in .h files and .pc.
9099 `(("gtk+" ,gtk+)))
9100 (home-page "https://wiki.gnome.org/Attic/LibUnique")
9101 (synopsis "Library for writing single instance applications")
9102 (description
9103 "Libunique is a library for writing single instance applications. If you
9104 launch a single instance application twice, the second instance will either just
9105 quit or will send a message to the running instance. Libunique makes it easy to
9106 write this kind of application, by providing a base class, taking care of all
9107 the IPC machinery needed to send messages to a running instance, and also
9108 handling the startup notification side.")
9109 (license license:lgpl2.1+)))
9110
9111 (define-public gnome-calculator
9112 (package
9113 (name "gnome-calculator")
9114 (version "3.34.1")
9115 (source
9116 (origin
9117 (method url-fetch)
9118 (uri (string-append "mirror://gnome/sources/" name "/"
9119 (version-major+minor version) "/"
9120 name "-" version ".tar.xz"))
9121 (sha256
9122 (base32
9123 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
9124 (build-system meson-build-system)
9125 (arguments '(#:glib-or-gtk? #t))
9126 (native-inputs
9127 `(("gettext" ,gettext-minimal)
9128 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9129 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9130 ("itstool" ,itstool)
9131 ("vala" ,vala)
9132 ("pkg-config" ,pkg-config)))
9133 (inputs
9134 `(("glib" ,glib)
9135 ("gtksourceview" ,gtksourceview)
9136 ("libgee" ,libgee)
9137 ("libsoup" ,libsoup)
9138 ("libxml2" ,libxml2)
9139 ("mpc" ,mpc)
9140 ("mpfr" ,mpfr)))
9141 (home-page "https://wiki.gnome.org/Apps/Calculator")
9142 (synopsis "Desktop calculator")
9143 (description
9144 "Calculator is an application that solves mathematical equations and
9145 is suitable as a default application in a Desktop environment.")
9146 (license license:gpl3)))
9147
9148 (define-public xpad
9149 (package
9150 (name "xpad")
9151 (version "5.1.0")
9152 (source
9153 (origin
9154 (method url-fetch)
9155 (uri (string-append "https://launchpad.net/xpad/trunk/"
9156 version "/+download/"
9157 name "-" version ".tar.bz2"))
9158 (sha256
9159 (base32
9160 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
9161 (build-system gnu-build-system)
9162 (native-inputs
9163 `(("autoconf" ,autoconf)
9164 ("automake" ,automake)
9165 ("gtk+:bin" ,gtk+ "bin")
9166 ("intltool" ,intltool)
9167 ("pkg-config" ,pkg-config)))
9168 (inputs
9169 `(("gtksourceview" ,gtksourceview-3)
9170 ("libsm" ,libsm)))
9171 (home-page "https://wiki.gnome.org/Apps/Xpad")
9172 (synopsis "Virtual sticky note")
9173 (description
9174 "Xpad is a sticky note that strives to be simple, fault tolerant,
9175 and customizable. Xpad consists of independent pad windows, each is
9176 basically a text box in which notes can be written.")
9177 (license license:gpl3+)))
9178
9179 (define-public gucharmap
9180 (let ((unicode-files
9181 '(("Blocks.txt"
9182 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
9183 ("DerivedAge.txt"
9184 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
9185 ("NamesList.txt"
9186 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
9187 ("Scripts.txt"
9188 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
9189 ("UnicodeData.txt"
9190 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
9191 ("Unihan.zip"
9192 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
9193 (package
9194 (name "gucharmap")
9195 (version "12.0.1")
9196 (source
9197 (origin
9198 (method url-fetch)
9199 (uri (string-append "mirror://gnome/sources/" name "/"
9200 (version-major+minor version) "/"
9201 name "-" version ".tar.xz"))
9202 (sha256
9203 (base32
9204 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9205 (build-system glib-or-gtk-build-system)
9206 (arguments
9207 `(#:modules ((ice-9 match)
9208 (guix build glib-or-gtk-build-system)
9209 (guix build utils))
9210 #:configure-flags
9211 (list "--with-unicode-data=../unicode-data")
9212 #:phases
9213 (modify-phases %standard-phases
9214 (add-after 'unpack 'prepare-unicode-data
9215 (lambda* (#:key inputs #:allow-other-keys)
9216 (mkdir-p "../unicode-data")
9217 (with-directory-excursion "../unicode-data"
9218 (for-each (match-lambda
9219 ((file _)
9220 (install-file (assoc-ref inputs file) ".")))
9221 ',unicode-files))
9222 #t)))))
9223 (native-inputs
9224 `(("desktop-file-utils" ,desktop-file-utils)
9225 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9226 ("gobject-introspection" ,gobject-introspection)
9227 ("intltool" ,intltool)
9228 ("itstool" ,itstool)
9229 ("pkg-config" ,pkg-config)
9230 ,@(map (match-lambda
9231 ((file hash)
9232 `(,file
9233 ,(origin
9234 (method url-fetch)
9235 (uri (string-append
9236 "http://www.unicode.org/Public/12.0.0/ucd/"
9237 file))
9238 (sha256 (base32 hash))))))
9239 unicode-files)
9240 ("unzip" ,unzip)))
9241 (inputs
9242 `(("gtk+" ,gtk+)
9243 ("xmllint" ,libxml2)))
9244 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9245 (synopsis "Unicode character picker and font browser")
9246 (description
9247 "This program allows you to browse through all the available Unicode
9248 characters and categories for the installed fonts, and to examine their
9249 detailed properties. It is an easy way to find the character you might
9250 only know by its Unicode name or code point.")
9251 (license license:gpl3+))))
9252
9253 (define-public bluefish
9254 (package
9255 (name "bluefish")
9256 (version "2.2.11")
9257 (source
9258 (origin
9259 (method url-fetch)
9260 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
9261 "bluefish-" version ".tar.gz"))
9262 (sha256
9263 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
9264 (build-system gnu-build-system)
9265 (native-inputs
9266 `(("desktop-file-utils" ,desktop-file-utils)
9267 ("intltool" ,intltool)
9268 ("pkg-config" ,pkg-config)))
9269 (inputs
9270 `(("enchant" ,enchant)
9271 ("gtk+" ,gtk+)
9272 ("python" ,python-wrapper)
9273 ("xmllint" ,libxml2)
9274 ("gucharmap" ,gucharmap)))
9275 (home-page "http://bluefish.openoffice.nl")
9276 (synopsis "Web development studio")
9277 (description
9278 "Bluefish is an editor targeted towards programmers and web developers,
9279 with many options to write web sites, scripts and other code.
9280 Bluefish supports many programming and markup languages.")
9281 (license license:gpl3+)))
9282
9283 (define-public gnome-system-monitor
9284 (package
9285 (name "gnome-system-monitor")
9286 (version "3.32.1")
9287 (source
9288 (origin
9289 (method url-fetch)
9290 (uri (string-append "mirror://gnome/sources/" name "/"
9291 (version-major+minor version) "/"
9292 name "-" version ".tar.xz"))
9293 (sha256
9294 (base32
9295 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
9296 (build-system meson-build-system)
9297 (arguments
9298 '(#:glib-or-gtk? #t
9299 #:configure-flags '("-Dsystemd=false")))
9300 (native-inputs
9301 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
9302 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
9303 ("intltool" ,intltool)
9304 ("itstool" ,itstool)
9305 ("libgtop" ,libgtop)
9306 ("polkit" ,polkit)
9307 ("pkg-config" ,pkg-config)))
9308 (inputs
9309 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
9310 ("gtk+" ,gtk+)
9311 ("gtkmm" ,gtkmm)
9312 ("librsvg" ,librsvg)
9313 ("libxml2" ,libxml2)
9314 ("libwnck" ,libwnck)))
9315 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
9316 (synopsis "Process viewer and system resource monitor for GNOME")
9317 (description
9318 "GNOME System Monitor is a GNOME process viewer and system monitor with
9319 an attractive, easy-to-use interface. It has features, such as a tree view
9320 for process dependencies, icons for processes, the ability to hide processes,
9321 graphical time histories of CPU/memory/swap usage and the ability to
9322 kill/reinice processes.")
9323 (license license:gpl2+)))
9324
9325 (define-public python-pyatspi
9326 (package
9327 (name "python-pyatspi")
9328 (version "2.34.0")
9329 (source (origin
9330 (method url-fetch)
9331 (uri (string-append
9332 "mirror://gnome/sources/pyatspi/"
9333 (version-major+minor version)
9334 "/pyatspi-" version ".tar.xz"))
9335 (sha256
9336 (base32
9337 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
9338 (build-system gnu-build-system)
9339 (arguments
9340 `(#:phases
9341 (modify-phases %standard-phases
9342 (add-before 'build 'fix-atk-load
9343 (lambda _
9344 (substitute* "pyatspi/__init__.py"
9345 (("from gi.repository import Atspi")
9346 "gi.require_version('Gtk', '3.0')
9347 from gi.repository import Gtk
9348 from gi.repository import Atspi"))
9349 #t)))))
9350 (native-inputs
9351 `(("pkg-config" ,pkg-config)))
9352 (inputs
9353 `(("python" ,python)))
9354 (propagated-inputs
9355 `(("python-pygobject" ,python-pygobject)))
9356 (synopsis "Python client bindings for D-Bus AT-SPI")
9357 (home-page "https://wiki.linuxfoundation.org/accessibility\
9358 /atk/at-spi/at-spi_on_d-bus")
9359 (description
9360 "This package includes a python client library for the AT-SPI D-Bus
9361 accessibility infrastructure.")
9362 (license license:lgpl2.0)
9363 (properties '((upstream-name . "pyatspi")))))
9364
9365 (define-public python2-pyatspi
9366 (package
9367 (inherit python-pyatspi)
9368 (name "python2-pyatspi")
9369 (inputs
9370 `(("python" ,python-2)))
9371 (propagated-inputs
9372 `(("python-pygobject" ,python2-pygobject)))))
9373
9374 (define-public orca
9375 (package
9376 (name "orca")
9377 (version "3.34.1")
9378 (source (origin
9379 (method url-fetch)
9380 (uri (string-append
9381 "mirror://gnome/sources/" name "/"
9382 (version-major+minor version) "/"
9383 name "-" version ".tar.xz"))
9384 (sha256
9385 (base32
9386 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
9387 (build-system glib-or-gtk-build-system)
9388 (arguments
9389 '(#:phases
9390 (modify-phases %standard-phases
9391 (add-before 'configure 'qualify-xkbcomp
9392 (lambda* (#:key inputs #:allow-other-keys)
9393 (let ((xkbcomp (string-append
9394 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9395 (substitute* "src/orca/orca.py"
9396 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9397 #t))
9398 (add-after 'install 'wrap-orca
9399 (lambda* (#:key outputs #:allow-other-keys)
9400 (let* ((out (assoc-ref outputs "out"))
9401 (prog (string-append out "/bin/orca")))
9402 (wrap-program prog
9403 `("GI_TYPELIB_PATH" ":" prefix
9404 (,(getenv "GI_TYPELIB_PATH")))
9405 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9406 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9407 `("PYTHONPATH" ":" prefix
9408 (,(getenv "PYTHONPATH")))))
9409 #t)))))
9410 (native-inputs
9411 `(("intltool" ,intltool)
9412 ("itstool" ,itstool)
9413 ("pkg-config" ,pkg-config)
9414 ("xmllint" ,libxml2)))
9415 (inputs
9416 `(("at-spi2-atk" ,at-spi2-atk)
9417 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9418 ("gstreamer" ,gstreamer)
9419 ("gst-plugins-base" ,gst-plugins-base)
9420 ("gst-plugins-good" ,gst-plugins-good)
9421 ("gtk+" ,gtk+)
9422 ("python" ,python)
9423 ("python-pygobject" ,python-pygobject)
9424 ("python-pyatspi" ,python-pyatspi)
9425 ("python-speechd" ,speech-dispatcher)
9426 ("xkbcomp" ,xkbcomp)))
9427 (synopsis
9428 "Screen reader for individuals who are blind or visually impaired")
9429 (home-page "https://wiki.gnome.org/Projects/Orca")
9430 (description
9431 "Orca is a screen reader that provides access to the graphical desktop
9432 via speech and refreshable braille. Orca works with applications and toolkits
9433 that support the Assistive Technology Service Provider Interface (AT-SPI).")
9434 (license license:lgpl2.1+)))
9435
9436 (define-public gspell
9437 (package
9438 (name "gspell")
9439 (version "1.8.2")
9440 (source (origin
9441 (method url-fetch)
9442 (uri (string-append "mirror://gnome/sources/" name "/"
9443 (version-major+minor version) "/"
9444 name "-" version ".tar.xz"))
9445 (sha256
9446 (base32
9447 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
9448 (patches (search-patches "gspell-dash-test.patch"))))
9449 (build-system glib-or-gtk-build-system)
9450 (arguments
9451 '(#:configure-flags (list "--enable-vala")
9452 #:phases
9453 (modify-phases %standard-phases
9454 (add-before 'check 'pre-check
9455 (lambda* (#:key inputs #:allow-other-keys)
9456 ;; Tests require a running X server.
9457 (system "Xvfb :1 &")
9458 (setenv "DISPLAY" ":1")
9459
9460 ;; For the missing /etc/machine-id.
9461 (setenv "DBUS_FATAL_WARNINGS" "0")
9462
9463 ;; Allow Enchant and its Aspell backend to find the en_US
9464 ;; dictionary.
9465 (setenv "ASPELL_DICT_DIR"
9466 (string-append (assoc-ref inputs "aspell-dict-en")
9467 "/lib/aspell"))
9468 #t)))))
9469 (inputs
9470 `(("gtk+" ,gtk+)
9471 ("glib" ,glib)
9472 ("iso-codes" ,iso-codes)))
9473 (native-inputs
9474 `(("glib" ,glib "bin")
9475 ("gobject-introspection" ,gobject-introspection)
9476 ("pkg-config" ,pkg-config)
9477 ("vala" ,vala) ;for VAPI, needed by Geary
9478 ("xmllint" ,libxml2)
9479
9480 ;; For tests.
9481 ("aspell-dict-en" ,aspell-dict-en)
9482 ("xorg-server" ,xorg-server-for-tests)))
9483 (propagated-inputs
9484 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
9485 (home-page "https://wiki.gnome.org/Projects/gspell")
9486 (synopsis "GNOME's alternative spell checker")
9487 (description
9488 "gspell provides a flexible API to add spell-checking to a GTK+
9489 application. It provides a GObject API, spell-checking to text entries and
9490 text views, and buttons to choose the language.")
9491 (license license:gpl2+)))
9492
9493 (define-public gnome-planner
9494 (package
9495 (name "gnome-planner")
9496 (version "0.14.6")
9497 (source (origin
9498 (method url-fetch)
9499 (uri (string-append "mirror://gnome/sources/planner/"
9500 (version-major+minor version) "/planner-"
9501 version ".tar.xz"))
9502 (sha256
9503 (base32
9504 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9505 (build-system glib-or-gtk-build-system)
9506 (arguments
9507 ;; Disable the Python bindings because the Planner program functions
9508 ;; without them, and (as of 2017-06-13) we have not packaged all of
9509 ;; packages that are necessary for building the Python bindings.
9510 `(#:configure-flags
9511 (list "--disable-python"
9512 ,@(if (string=? "aarch64-linux" (%current-system))
9513 '("--build=aarch64-unknown-linux-gnu")
9514 '()))))
9515 (inputs
9516 `(("libgnomecanvas" ,libgnomecanvas)
9517 ("libgnomeui" ,libgnomeui)
9518 ("libglade" ,libglade)
9519 ("gnome-vfs" ,gnome-vfs)
9520 ("gconf" ,gconf)
9521 ("libxml2" ,libxml2)
9522 ("libxslt" ,libxslt)
9523 ("gtk+" ,gtk+)
9524 ("glib" ,glib)))
9525 (native-inputs
9526 `(("intltool" ,intltool)
9527 ("scrollkeeper" ,scrollkeeper)
9528 ("pkg-config" ,pkg-config)))
9529 (home-page "https://wiki.gnome.org/Apps/Planner")
9530 (synopsis "Project management software for the GNOME desktop")
9531 (description
9532 "GNOME Planner is a project management tool based on the Work Breakdown
9533 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9534 the resources, tasks, and constraints that you define, Planner generates
9535 various views into a project. For example, Planner can show a Gantt chart of
9536 the project. It can show a detailed summary of tasks including their
9537 duration, cost, and current progress. It can also show a report of resource
9538 utilization that highlights under-utilized and over-utilized resources. These
9539 views can be printed as PDF or PostScript files, or exported to HTML.")
9540 (license license:gpl2+)))
9541
9542 (define-public lollypop
9543 (package
9544 (name "lollypop")
9545 (version "1.2.32")
9546 (source
9547 (origin
9548 (method url-fetch)
9549 (uri (string-append "https://adishatz.org/lollypop/"
9550 "lollypop-" version ".tar.xz"))
9551 (sha256
9552 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
9553 (build-system meson-build-system)
9554 (arguments
9555 `(#:imported-modules
9556 (,@%meson-build-system-modules
9557 (guix build python-build-system))
9558 #:modules
9559 ((guix build meson-build-system)
9560 ((guix build python-build-system) #:prefix python:)
9561 (guix build utils))
9562 #:glib-or-gtk? #t
9563 #:tests? #f ; no test suite
9564 #:phases
9565 (modify-phases %standard-phases
9566 (add-after 'install 'wrap-program
9567 (lambda* (#:key outputs #:allow-other-keys)
9568 (let ((out (assoc-ref outputs "out"))
9569 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9570 (wrap-program (string-append out "/bin/lollypop")
9571 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9572 #t))
9573 (add-after 'install 'wrap-python
9574 (assoc-ref python:%standard-phases 'wrap)))))
9575 (native-inputs
9576 `(("intltool" ,intltool)
9577 ("itstool" ,itstool)
9578 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9579 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9580 ("pkg-config" ,pkg-config)))
9581 (inputs
9582 `(("gobject-introspection" ,gobject-introspection)
9583 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9584 ("gst-plugins-base" ,gst-plugins-base)
9585 ("libnotify" ,libnotify)
9586 ("libsecret" ,libsecret)
9587 ("libsoup" ,libsoup)
9588 ("python" ,python)
9589 ("python-beautifulsoup4" ,python-beautifulsoup4)
9590 ("python-gst" ,python-gst)
9591 ("python-pil" ,python-pillow)
9592 ("python-pycairo" ,python-pycairo)
9593 ("python-pygobject" ,python-pygobject)
9594 ("python-pylast" ,python-pylast)
9595 ("totem-pl-parser" ,totem-pl-parser)
9596 ("webkitgtk" ,webkitgtk)))
9597 (propagated-inputs
9598 `(;; gst-plugins-base is required to start Lollypop,
9599 ;; the others are required to play streaming.
9600 ("gst-plugins-good" ,gst-plugins-good)
9601 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9602 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9603 (synopsis "GNOME music playing application")
9604 (description
9605 "Lollypop is a music player designed to play well with GNOME desktop.
9606 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9607 from artists and tracks from the web. It also fetches cover artworks
9608 automatically and it can stream songs from online music services and charts.")
9609 (license license:gpl3+)))
9610
9611 (define-public gnome-video-effects
9612 (package
9613 (name "gnome-video-effects")
9614 (version "0.4.3")
9615 (source (origin
9616 (method url-fetch)
9617 (uri (string-append "mirror://gnome/sources/" name "/"
9618 (version-major+minor version) "/" name "-"
9619 version ".tar.xz"))
9620 (sha256
9621 (base32
9622 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9623 (build-system glib-or-gtk-build-system)
9624 (arguments
9625 `(#:out-of-source? #f))
9626 (native-inputs
9627 `(("glib:bin" ,glib "bin")
9628 ("intltool" ,intltool)
9629 ("gettext" ,gettext-minimal)
9630 ("pkg-config" ,pkg-config)))
9631 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9632 (synopsis "Video effects for Cheese and other GNOME applications")
9633 (description
9634 "A collection of GStreamer video filters and effects to be used in
9635 photo-booth-like software, such as Cheese.")
9636 (license license:gpl2+)))
9637
9638 (define-public cheese
9639 (package
9640 (name "cheese")
9641 (version "3.34.0")
9642 (source (origin
9643 (method url-fetch)
9644 (uri (string-append "mirror://gnome/sources/" name "/"
9645 (version-major+minor version) "/" name "-"
9646 version ".tar.xz"))
9647 (sha256
9648 (base32
9649 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
9650 (arguments
9651 `(#:glib-or-gtk? #t
9652 ;; Tests require GDK.
9653 #:tests? #f
9654 #:phases
9655 (modify-phases %standard-phases
9656 (add-after 'unpack 'skip-gtk-update-icon-cache
9657 (lambda _
9658 ;; Don't create 'icon-theme.cache'
9659 (substitute* "meson_post_install.py"
9660 (("gtk-update-icon-cache") (which "true")))
9661 #t))
9662 (add-after 'install 'wrap-cheese
9663 (lambda* (#:key inputs outputs #:allow-other-keys)
9664 (let ((out (assoc-ref outputs "out"))
9665 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9666 (wrap-program (string-append out "/bin/cheese")
9667 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9668 #t)))))
9669 (build-system meson-build-system)
9670 (native-inputs
9671 `(("docbook-xsl" ,docbook-xsl)
9672 ("glib:bin" ,glib "bin")
9673 ("gtk-doc" ,gtk-doc)
9674 ("intltool" ,intltool)
9675 ("itstool" ,itstool)
9676 ("libxml2" ,libxml2)
9677 ("libxslt" ,libxslt)
9678 ("pkg-config" ,pkg-config)
9679 ("vala" ,vala)))
9680 (propagated-inputs
9681 `(("gnome-video-effects" ,gnome-video-effects)
9682 ("clutter" ,clutter)
9683 ("clutter-gst" ,clutter-gst)
9684 ("clutter-gtk" ,clutter-gtk)
9685 ("libcanberra" ,libcanberra)
9686 ("gdk-pixbuf" ,gdk-pixbuf)
9687 ("glib" ,glib)
9688 ("gstreamer" ,gstreamer)))
9689 (inputs
9690 `(("gnome-desktop" ,gnome-desktop)
9691 ("gobject-introspection" ,gobject-introspection)
9692 ("gst-plugins-base" ,gst-plugins-base)
9693 ("gst-plugins-bad" ,gst-plugins-bad)
9694 ("gtk+" ,gtk+)
9695 ("libx11" ,libx11)
9696 ("libxtst" ,libxtst)))
9697 (home-page "https://wiki.gnome.org/Apps/Cheese")
9698 (synopsis "Webcam photo booth software for GNOME")
9699 (description
9700 "Cheese uses your webcam to take photos and videos. Cheese can also
9701 apply fancy special effects and lets you share the fun with others.")
9702 (license license:gpl2+)))
9703
9704 (define-public sound-juicer
9705 (package
9706 (name "sound-juicer")
9707 (version "3.24.0")
9708 (source
9709 (origin
9710 (method url-fetch)
9711 (uri (string-append "mirror://gnome/sources/" name "/"
9712 (version-major+minor version) "/"
9713 name "-" version ".tar.xz"))
9714 (sha256
9715 (base32
9716 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9717 (build-system glib-or-gtk-build-system)
9718 (native-inputs
9719 `(("desktop-file-utils" ,desktop-file-utils)
9720 ("intltool" ,intltool)
9721 ("itstool" ,itstool)
9722 ("pkg-config" ,pkg-config)
9723 ("xmllint" ,libxml2)))
9724 (inputs
9725 `(("gtk+" ,gtk+)
9726 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9727 ("gstreamer" ,gstreamer)
9728 ("gst-plugins-base" ,gst-plugins-base)
9729 ("gst-plugins-good" ,gst-plugins-good)
9730 ("iso-codes" ,iso-codes)
9731 ("libbrasero-media3" ,brasero)
9732 ("libcanberra" ,libcanberra)
9733 ("libdiscid" ,libdiscid)
9734 ("libmusicbrainz" ,libmusicbrainz)
9735 ("neon" ,neon)))
9736 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9737 (synopsis "Audio music cd ripper")
9738 (description "Sound Juicer extracts audio from compact discs and convert it
9739 into audio files that a personal computer or digital audio player can play.
9740 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9741 mp3, Ogg Vorbis and FLAC")
9742 (license license:gpl2+)))
9743
9744 (define-public soundconverter
9745 (package
9746 (name "soundconverter")
9747 (version "3.0.2")
9748 (source
9749 (origin
9750 (method url-fetch)
9751 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9752 version "/+download/"
9753 "soundconverter-" version ".tar.xz"))
9754
9755 (sha256
9756 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
9757 (build-system glib-or-gtk-build-system)
9758 (arguments
9759 `(#:imported-modules ((guix build python-build-system)
9760 (guix build glib-or-gtk-build-system)
9761 ,@%gnu-build-system-modules)
9762
9763 #:modules ((guix build glib-or-gtk-build-system)
9764 (guix build utils)
9765 ((guix build gnu-build-system) #:prefix gnu:)
9766 ((guix build python-build-system) #:prefix python:))
9767
9768 #:phases
9769 (modify-phases %standard-phases
9770 (add-after 'install 'wrap-soundconverter-for-python
9771 (assoc-ref python:%standard-phases 'wrap))
9772 (add-after 'install 'wrap-soundconverter
9773 (lambda* (#:key inputs outputs #:allow-other-keys)
9774 (let ((out (assoc-ref outputs "out"))
9775 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9776 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9777 (wrap-program (string-append out "/bin/soundconverter")
9778 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9779 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9780 #t)))))
9781 (native-inputs
9782 `(("intltool" ,intltool)
9783 ("pkg-config" ,pkg-config)
9784 ("glib:bin" ,glib "bin")))
9785 (inputs
9786 `(("gtk+" ,gtk+)
9787 ("python" ,python)
9788 ("python-pygobject" ,python-pygobject)
9789 ("gstreamer" ,gstreamer)
9790 ("gst-plugins-base" ,gst-plugins-base)))
9791 (home-page "https://soundconverter.org/")
9792 (synopsis "Convert between audio formats with a graphical interface")
9793 (description
9794 "SoundConverter supports converting between many audio formats including
9795 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9796 configurable file renaming. ")
9797 (license license:gpl3)))
9798
9799 (define-public workrave
9800 (package
9801 (name "workrave")
9802 (version "1.10.42")
9803 (source
9804 (origin
9805 (method git-fetch)
9806 (uri (git-reference
9807 (url "https://github.com/rcaelers/workrave")
9808 (commit (string-append "v" (string-map
9809 (match-lambda (#\. #\_) (chr chr))
9810 version)))))
9811 (file-name (git-file-name name version))
9812 (sha256
9813 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
9814 (build-system glib-or-gtk-build-system)
9815 (arguments
9816 ;; The only tests are maintainer tests (in po/), which fail.
9817 `(#:tests? #f))
9818 (inputs `(("glib" ,glib)
9819 ("gtk+" ,gtk+)
9820 ("gdk-pixbuf" ,gdk-pixbuf)
9821 ("gtkmm" ,gtkmm)
9822 ("glibmm" ,glibmm)
9823 ("libx11" ,libx11)
9824 ("libxtst" ,libxtst)
9825 ("dconf" ,dconf)
9826 ("libice" ,libice)
9827 ("libsm" ,libsm)
9828 ("libxscrnsaver" ,libxscrnsaver)))
9829 (native-inputs `(("boost" ,boost)
9830 ("pkg-config" ,pkg-config)
9831 ("gettext" ,gettext-minimal)
9832 ("autoconf" ,autoconf)
9833 ("autoconf-archive" , autoconf-archive)
9834 ("automake" ,automake)
9835 ("libtool" ,libtool)
9836 ("intltool" ,intltool)
9837 ("gobject-introspection" ,gobject-introspection)
9838 ("python3" ,python-3)
9839 ("python-jinja2" ,python-jinja2)))
9840 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9841 (description
9842 "Workrave is a program that assists in the recovery and prevention of
9843 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9844 micro-pauses and rest breaks, and restricts you to your daily limit.")
9845 (home-page "http://www.workrave.org")
9846 (license license:gpl3+)))
9847
9848 (define-public ghex
9849 (package
9850 (name "ghex")
9851 (version "3.18.4")
9852 (source (origin
9853 (method url-fetch)
9854 (uri (string-append "mirror://gnome/sources/ghex/"
9855 (version-major+minor version) "/"
9856 "ghex-" version ".tar.xz"))
9857 (sha256
9858 (base32
9859 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9860 (build-system meson-build-system)
9861 (arguments
9862 '(#:glib-or-gtk? #t
9863 #:phases
9864 (modify-phases %standard-phases
9865 (add-after 'unpack 'skip-gtk-update-icon-cache
9866 ;; Don't create 'icon-theme.cache'.
9867 (lambda _
9868 (substitute* "meson_post_install.py"
9869 (("gtk-update-icon-cache") (which "true")))
9870 #t)))))
9871 (native-inputs
9872 `(("pkg-config" ,pkg-config)
9873 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9874 ("gnome-common" ,gnome-common)
9875 ("which" ,which)
9876 ("intltool" ,intltool)
9877 ("yelp-tools" ,yelp-tools)
9878 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9879 (inputs
9880 `(("atk" ,atk)
9881 ("gtk" ,gtk+)))
9882 (synopsis "GNOME hexadecimal editor")
9883 (description "The GHex program can view and edit files in two ways:
9884 hexadecimal or ASCII. It is useful for editing binary files in general.")
9885 (home-page "https://wiki.gnome.org/Apps/Ghex")
9886 (license license:gpl2)))
9887
9888 (define-public libdazzle
9889 (package
9890 (name "libdazzle")
9891 (version "3.34.1")
9892 (source (origin
9893 (method url-fetch)
9894 (uri (string-append "mirror://gnome/sources/libdazzle/"
9895 (version-major+minor version) "/"
9896 "libdazzle-" version ".tar.xz"))
9897 (sha256
9898 (base32
9899 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
9900 (build-system meson-build-system)
9901 (arguments
9902 `(#:phases
9903 (modify-phases %standard-phases
9904 (add-before 'check 'pre-check
9905 (lambda _
9906 ;; Tests require a running X server.
9907 (system "Xvfb :1 &")
9908 (setenv "DISPLAY" ":1")
9909 #t)))))
9910 (native-inputs
9911 `(("glib" ,glib "bin") ; glib-compile-resources
9912 ("pkg-config" ,pkg-config)
9913 ;; For tests.
9914 ("xorg-server" ,xorg-server-for-tests)))
9915 (inputs
9916 `(("glib" ,glib)
9917 ("gobject-introspection" ,gobject-introspection)
9918 ("gtk+" ,gtk+)
9919 ("vala" ,vala)))
9920 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9921 (synopsis "Companion library to GObject and Gtk+")
9922 (description "The libdazzle library is a companion library to GObject and
9923 Gtk+. It provides various features that the authors wish were in the
9924 underlying library but cannot for various reasons. In most cases, they are
9925 wildly out of scope for those libraries. In other cases, they are not quite
9926 generic enough to work for everyone.")
9927 (license license:gpl3+)))
9928
9929 (define-public evolution
9930 (package
9931 (name "evolution")
9932 (version "3.34.2")
9933 (source (origin
9934 (method url-fetch)
9935 (uri (string-append "mirror://gnome/sources/evolution/"
9936 (version-major+minor version) "/"
9937 "evolution-" version ".tar.xz"))
9938 (sha256
9939 (base32
9940 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
9941 (build-system cmake-build-system)
9942 (arguments
9943 `(#:imported-modules (,@%cmake-build-system-modules
9944 (guix build glib-or-gtk-build-system))
9945 #:modules ((guix build cmake-build-system)
9946 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9947 (guix build utils))
9948 #:configure-flags
9949 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9950 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9951 ; in four years and cannot be built.
9952 #:phases
9953 (modify-phases %standard-phases
9954 ;; The build system attempts to install user interface modules to the
9955 ;; output directory of the "evolution-data-server" package. This
9956 ;; change redirects that change.
9957 (add-after 'unpack 'patch-ui-module-dir
9958 (lambda* (#:key outputs #:allow-other-keys)
9959 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9960 (("\\$\\{edsuimoduledir\\}")
9961 (string-append (assoc-ref outputs "out")
9962 "/lib/evolution-data-server/ui-modules")))
9963 #t))
9964 (add-after 'install 'glib-or-gtk-compile-schemas
9965 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9966 (add-after 'install 'glib-or-gtk-wrap
9967 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9968 (native-inputs
9969 `(("glib" ,glib "bin") ; glib-mkenums
9970 ("pkg-config" ,pkg-config)
9971 ("intltool" ,intltool)
9972 ("itstool" ,itstool)))
9973 (inputs
9974 `(("enchant" ,enchant)
9975 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9976 ("gcr" ,gcr)
9977 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9978 ("gnome-autoar" ,gnome-autoar)
9979 ("gnome-desktop" ,gnome-desktop)
9980 ("gspell" ,gspell)
9981 ("highlight" ,highlight)
9982 ("libcanberra" ,libcanberra)
9983 ("libgweather" ,libgweather)
9984 ("libnotify" ,libnotify)
9985 ("libsoup" ,libsoup)
9986 ("nss" ,nss)
9987 ("openldap" ,openldap)
9988 ("webkitgtk" ,webkitgtk)
9989 ("ytnef" ,ytnef)))
9990 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9991 (synopsis "Manage your email, contacts and schedule")
9992 (description "Evolution is a personal information management application
9993 that provides integrated mail, calendaring and address book
9994 functionality.")
9995 ;; See COPYING for details.
9996 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9997 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9998 license:lgpl2.1+)))) ; smime/lib/*
9999
10000 (define-public gthumb
10001 (package
10002 (name "gthumb")
10003 (version "3.8.2")
10004 (source (origin
10005 (method url-fetch)
10006 (uri (string-append "mirror://gnome/sources/gthumb/"
10007 (version-major+minor version) "/"
10008 "gthumb-" version ".tar.xz"))
10009 (sha256
10010 (base32
10011 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
10012 (build-system meson-build-system)
10013 (arguments
10014 `(#:glib-or-gtk? #t
10015 #:configure-flags
10016 ;; Ensure the RUNPATH contains all installed library locations.
10017 (list (string-append "-Dc_link_args=-Wl,-rpath="
10018 (assoc-ref %outputs "out")
10019 "/lib/gthumb/extensions")
10020 (string-append "-Dcpp_link_args=-Wl,-rpath="
10021 (assoc-ref %outputs "out")
10022 "/lib/gthumb/extensions"))))
10023 (native-inputs
10024 `(("pkg-config" ,pkg-config)
10025 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10026 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10027 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10028 ("intltool" ,intltool)
10029 ("itstool" ,itstool)))
10030 (inputs
10031 `(("exiv2" ,exiv2)
10032 ("gtk" ,gtk+)
10033 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10034 ("gstreamer" ,gstreamer)
10035 ("clutter" ,clutter)
10036 ("clutter-gst" ,clutter-gst)
10037 ("clutter-gtk" ,clutter-gtk)
10038 ("libjpeg" ,libjpeg-turbo)
10039 ("libtiff" ,libtiff)
10040 ("libraw" ,libraw)))
10041 (home-page "https://wiki.gnome.org/Apps/Gthumb")
10042 (synopsis "GNOME image viewer and browser")
10043 (description "GThumb is an image viewer, browser, organizer, editor and
10044 advanced image management tool")
10045 (license license:gpl2+)))
10046
10047 (define-public terminator
10048 (package
10049 (name "terminator")
10050 (version "1.91")
10051 (source (origin
10052 (method url-fetch)
10053 (uri (string-append "https://launchpad.net/" name "/"
10054 "gtk3/" version "/" "+download/"
10055 name "-" version ".tar.gz"))
10056 (sha256
10057 (base32
10058 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
10059 (build-system python-build-system)
10060 (native-inputs
10061 `(("intltool" ,intltool)
10062 ("glib:bin" ,glib "bin") ; for glib-compile-resources
10063 ("gettext" ,gettext-minimal)
10064 ("pkg-config" ,pkg-config)))
10065 (inputs
10066 `(("cairo" ,cairo)
10067 ("gobject-introspection" ,gobject-introspection)
10068 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10069 ("python2-pycairo" ,python2-pycairo)
10070 ("python2-pygobject" ,python2-pygobject)
10071 ("python2-psutil" ,python2-psutil)
10072 ("vte" ,vte)))
10073 (arguments
10074 `(#:python ,python-2 ; Python 3 isn't supported
10075 #:imported-modules ((guix build glib-or-gtk-build-system)
10076 ,@%python-build-system-modules)
10077 #:modules ((guix build python-build-system)
10078 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
10079 (guix build utils))
10080 #:phases
10081 (modify-phases %standard-phases
10082 (add-after
10083 'install 'wrap-program
10084 (lambda* (#:key outputs #:allow-other-keys)
10085 (let ((prog (string-append (assoc-ref outputs "out")
10086 "/bin/terminator")))
10087 (wrap-program prog
10088 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
10089 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10090 #t)))
10091 (add-after 'wrap-program 'glib-or-gtk-wrap
10092 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
10093 (home-page "https://gnometerminator.blogspot.com/")
10094 (synopsis "Store and run multiple GNOME terminals in one window")
10095 (description
10096 "Terminator allows you to run multiple GNOME terminals in a grid and
10097 +tabs, and it supports drag and drop re-ordering of terminals.")
10098 (license license:gpl2)))
10099
10100 (define-public libhandy
10101 (package
10102 (name "libhandy")
10103 (version "0.0.12")
10104 (source
10105 (origin
10106 (method git-fetch)
10107 (uri (git-reference
10108 (url "https://source.puri.sm/Librem5/libhandy")
10109 (commit (string-append "v" version))))
10110 (file-name (git-file-name name version))
10111 (sha256
10112 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
10113 (build-system meson-build-system)
10114 (arguments
10115 `(#:configure-flags
10116 '("-Dglade_catalog=disabled"
10117 "-Dgtk_doc=true")
10118 #:phases
10119 (modify-phases %standard-phases
10120 (add-before 'check 'pre-check
10121 (lambda _
10122 ;; Tests require a running X server.
10123 (system "Xvfb :1 &")
10124 (setenv "DISPLAY" ":1")
10125 #t)))))
10126 (inputs
10127 `(("gtk+" ,gtk+)))
10128 (native-inputs
10129 `(("glib:bin" ,glib "bin")
10130 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
10131 ("vala" ,vala)
10132 ("gtk-doc" ,gtk-doc)
10133 ("pkg-config" ,pkg-config)
10134 ("gettext" ,gettext-minimal)
10135
10136 ;; Test suite dependencies.
10137 ("xorg-server" ,xorg-server-for-tests)
10138 ("hicolor-icon-theme" ,hicolor-icon-theme)))
10139 (home-page "https://source.puri.sm/Librem5/libhandy")
10140 (synopsis "Library full of GTK+ widgets for mobile phones")
10141 (description "The aim of the handy library is to help with developing user
10142 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
10143 for usage on small and big screens.")
10144 (license license:lgpl2.1+)))
10145
10146 (define-public libgit2-glib
10147 (package
10148 (name "libgit2-glib")
10149 (version "0.99.0.1")
10150 (source (origin
10151 (method url-fetch)
10152 (uri (string-append "mirror://gnome/sources/" name "/"
10153 (version-major+minor version) "/"
10154 name "-" version ".tar.xz"))
10155 (sha256
10156 (base32
10157 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
10158 (build-system meson-build-system)
10159 (native-inputs
10160 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
10161 ("gobject-introspection" ,gobject-introspection)
10162 ("pkg-config" ,pkg-config)
10163 ("python-pygobject" ,python-pygobject)
10164 ("python-wrapper" ,python-wrapper)
10165 ("vala" ,vala)))
10166 (inputs
10167 `(("glib" ,glib)
10168 ("libssh2" ,libssh2)))
10169 (propagated-inputs
10170 `(;; In Requires of libgit2-glib.pc.
10171 ("libgit2" ,libgit2)))
10172 (synopsis "GLib wrapper around the libgit2 Git access library")
10173 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
10174 access library. It only implements the core plumbing functions, not really the
10175 higher level porcelain stuff.")
10176 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
10177 (license license:gpl2+)))
10178
10179 (define-public gitg
10180 (package
10181 (name "gitg")
10182 (version "3.32.1")
10183 (source (origin
10184 (method url-fetch)
10185 (uri (string-append "mirror://gnome/sources/" name "/"
10186 (version-major+minor version) "/"
10187 name "-" version ".tar.xz"))
10188 (sha256
10189 (base32
10190 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
10191 (build-system meson-build-system)
10192 (arguments
10193 `(#:glib-or-gtk? #t
10194 #:phases
10195 (modify-phases %standard-phases
10196 (add-after 'unpack 'disable-post-install-partially
10197 (lambda _
10198 (substitute* "meson_post_install.py"
10199 (("'python'") ; there are no python sources to compile
10200 (string-append "'" (which "true") "'"))
10201 (("gtk-update-icon-cache") (which "true")))
10202 #t))
10203 (add-after 'unpack 'fix-test-sources
10204 (lambda _
10205 (substitute* "tests/libgitg/test-commit.vala"
10206 (("/bin/bash") (which "bash")))
10207 #t))
10208 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10209 (lambda* (#:key outputs #:allow-other-keys)
10210 (let ((prog (string-append (assoc-ref outputs "out")
10211 "/bin/gitg")))
10212 (wrap-program prog
10213 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10214 #t))))))
10215 (inputs
10216 `(("glib" ,glib)
10217 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10218 ("gtk+" ,gtk+)
10219 ("gtkspell3" ,gtkspell3)
10220 ("gtksourceview" ,gtksourceview-3)
10221 ("json-glib" ,json-glib)
10222 ("libdazzle" ,libdazzle)
10223 ("libgee" ,libgee)
10224 ("libgit2-glib" ,libgit2-glib)
10225 ("libpeas" ,libpeas)
10226 ("libsecret" ,libsecret)
10227 ("libsoup" ,libsoup)
10228 ("libxml2" ,libxml2)))
10229 (native-inputs
10230 `(("glib:bin" ,glib "bin")
10231 ("gtk+:bin" ,gtk+ "bin")
10232 ("gobject-introspection" ,gobject-introspection)
10233 ("intltool" ,intltool)
10234 ("pkg-config" ,pkg-config)
10235 ("vala" ,vala)))
10236 (synopsis "Graphical user interface for git")
10237 (description
10238 "gitg is a graphical user interface for git. It aims at being a small,
10239 fast and convenient tool to visualize the history of git repositories.
10240 Besides visualization, gitg also provides several utilities to manage your
10241 repository and commit your work.")
10242 (home-page "https://wiki.gnome.org/Apps/Gitg")
10243 (license license:gpl2+)))
10244
10245 (define-public gamin
10246 (package
10247 (name "gamin")
10248 (version "0.1.10")
10249 (source (origin
10250 (method url-fetch)
10251 (uri (string-append "mirror://gnome/sources/" name "/"
10252 (version-major+minor version) "/"
10253 name "-" version ".tar.bz2"))
10254 (sha256
10255 (base32
10256 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
10257 (build-system gnu-build-system)
10258 (arguments
10259 `(#:phases
10260 (modify-phases %standard-phases
10261 (add-after 'unpack 'remove-deprecated-macro
10262 (lambda _
10263 (substitute* '("server/gam_node.c"
10264 "server/gam_subscription.h"
10265 "server/gam_node.h"
10266 "server/gam_subscription.c")
10267 (("G_CONST_RETURN") "const"))
10268 #t)))))
10269 (inputs
10270 `(("glib" ,glib)))
10271 (native-inputs
10272 `(("intltool" ,intltool)
10273 ("pkg-config" ,pkg-config)))
10274 (home-page "https://people.gnome.org/~veillard/gamin/")
10275 (synopsis "File alteration monitor")
10276 (description
10277 "Gamin is a file and directory monitoring system defined to be a subset
10278 of the FAM (File Alteration Monitor) system. This is a service provided by a
10279 library which detects when a file or a directory has been modified.")
10280 (license license:gpl2+)))
10281
10282 (define-public gnome-mahjongg
10283 (package
10284 (name "gnome-mahjongg")
10285 (version "3.35.1")
10286 (source (origin
10287 (method git-fetch)
10288 (uri (git-reference
10289 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
10290 (commit version)))
10291 (file-name (git-file-name name version))
10292 (sha256
10293 (base32
10294 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
10295 (build-system meson-build-system)
10296 (arguments
10297 `(#:glib-or-gtk? #t))
10298 (native-inputs
10299 `(("appstream-glib" ,appstream-glib)
10300 ("gettext" ,gettext-minimal)
10301 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
10302 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
10303 ("itstool" ,itstool)
10304 ("pkg-config" ,pkg-config)
10305 ("vala" ,vala)))
10306 (propagated-inputs
10307 `(("dconf" ,dconf)))
10308 (inputs
10309 `(("glib" ,glib)
10310 ("gtk+" ,gtk+)
10311 ("librsvg" ,librsvg)))
10312 (synopsis "Mahjongg tile-matching game")
10313 (description "GNOME Mahjongg is a game based on the classic Chinese
10314 tile-matching game Mahjong. It features multiple board layouts, tile themes,
10315 and a high score table.")
10316 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
10317 (license license:gpl2+)))
10318
10319 (define-public gnome-themes-extra
10320 (package
10321 (name "gnome-themes-extra")
10322 (version "3.28")
10323 (source
10324 (origin
10325 (method url-fetch)
10326 (uri (string-append "mirror://gnome/sources/" name "/"
10327 (version-major+minor version) "/" name "-"
10328 version ".tar.xz"))
10329 (sha256
10330 (base32
10331 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
10332 (build-system gnu-build-system)
10333 (arguments
10334 '(#:configure-flags
10335 ;; Don't create 'icon-theme.cache'.
10336 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
10337 (true (string-append coreutils "/bin/true")))
10338 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
10339 (native-inputs
10340 `(("glib:bin" ,glib "bin")
10341 ("intltool" ,intltool)
10342 ("pkg-config" ,pkg-config)))
10343 (inputs
10344 `(("glib" ,glib)
10345 ("gtk+" ,gtk+)
10346 ("gtk+-2" ,gtk+-2)
10347 ("librsvg" ,librsvg)
10348 ("libxml2" ,libxml2)))
10349 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
10350 (synopsis "GNOME Extra Themes")
10351 (description "This package provides themes and related elements that don't
10352 really fit in other upstream packages. It offers legacy support for GTK+ 2
10353 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
10354 index files needed for Adwaita to be used outside of GNOME.")
10355 (license license:lgpl2.1+)))
10356
10357 (define-public polari
10358 (package
10359 (name "polari")
10360 (version "3.32.2")
10361 (source (origin
10362 (method url-fetch)
10363 (uri (string-append "mirror://gnome/sources/polari/"
10364 (version-major+minor version)
10365 "/polari-" version ".tar.xz"))
10366 (sha256
10367 (base32
10368 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
10369 (build-system meson-build-system)
10370 (arguments
10371 `(#:glib-or-gtk? #t
10372 #:phases
10373 (modify-phases %standard-phases
10374 (add-after 'unpack 'skip-gtk-update-icon-cache
10375 (lambda _
10376 (substitute* "meson/meson-postinstall.sh"
10377 (("gtk-update-icon-cache") (which "true")))
10378 #t))
10379 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10380 (lambda* (#:key outputs #:allow-other-keys)
10381 (let ((prog (string-append (assoc-ref outputs "out")
10382 "/bin/polari")))
10383 (wrap-program prog
10384 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10385 #t))))))
10386 (inputs
10387 `(("glib" ,glib)
10388 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10389 ("gspell" ,gspell)
10390 ("gtk+" ,gtk+)
10391 ("gjs" ,gjs)
10392 ("libsecret" ,libsecret)
10393 ("libsoup" ,libsoup)
10394 ("telepathy-glib" ,telepathy-glib)
10395 ("telepathy-logger" ,telepathy-logger)))
10396 (native-inputs
10397 `(("glib:bin" ,glib "bin")
10398 ("gobject-introspection" ,gobject-introspection)
10399 ("intltool" ,intltool)
10400 ("pkg-config" ,pkg-config)
10401 ("yelp-tools" ,yelp-tools)))
10402 (propagated-inputs
10403 `(("telepathy-idle" ,telepathy-idle)
10404 ("telepathy-mission-control" ,telepathy-mission-control)))
10405 (synopsis "Simple IRC Client")
10406 (description
10407 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10408 integrate seamlessly with the GNOME desktop.")
10409 (home-page "https://wiki.gnome.org/Apps/Polari")
10410 (license license:gpl2+)))
10411
10412 (define-public gnome-boxes
10413 (package
10414 (name "gnome-boxes")
10415 (version "3.36.6")
10416 (source
10417 (origin
10418 (method url-fetch)
10419 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10420 (version-major+minor version) "/"
10421 "gnome-boxes-" version ".tar.xz"))
10422 (sha256
10423 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
10424 (build-system meson-build-system)
10425 (arguments
10426 '(#:glib-or-gtk? #t
10427 #:configure-flags (list "-Drdp=false"
10428 (string-append "-Dc_link_args=-Wl,-rpath="
10429 (assoc-ref %outputs "out")
10430 "/lib/gnome-boxes"))))
10431 (native-inputs
10432 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10433 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10434 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10435 ("itstool" ,itstool)
10436 ("intltool" ,intltool)
10437 ("vala" ,vala)
10438 ("pkg-config" ,pkg-config)))
10439 (inputs
10440 `(("libarchive" ,libarchive)
10441 ("glib-networking" ,glib-networking) ;for TLS support
10442 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10443 ("gtk" ,gtk+)
10444 ("gtk-vnc" ,gtk-vnc)
10445 ("libosinfo" ,libosinfo)
10446 ("libsecret" ,libsecret)
10447 ("libsoup" ,libsoup)
10448 ("libusb" ,libusb)
10449 ("libvirt" ,libvirt)
10450 ("libvirt-glib" ,libvirt-glib)
10451 ("libxml" ,libxml2)
10452 ("spice-gtk" ,spice-gtk)
10453 ("sparql-query" ,sparql-query)
10454 ("vte" ,vte)
10455 ("webkitgtk" ,webkitgtk)
10456 ("tracker" ,tracker)
10457 ("libgudev" ,libgudev)))
10458 (home-page "https://wiki.gnome.org/Apps/Boxes")
10459 (synopsis "View, access, and manage remote and virtual systems")
10460 (description "GNOME Boxes is a simple application to view, access, and
10461 manage remote and virtual systems. Note that this application requires the
10462 @code{libvirt} and @code{virtlog} daemons to run. Use the command
10463 @command{info '(guix) Virtualization Services'} to learn how to configure
10464 these services on the Guix System.")
10465 (license (list
10466 ;; For data/icons/empty-boxes.png.
10467 license:cc-by2.0
10468 ;; For all others.
10469 license:lgpl2.0+))))
10470
10471 (define-public geary
10472 (package
10473 (name "geary")
10474 (version "3.34.1")
10475 (source (origin
10476 (method git-fetch)
10477 (uri (git-reference
10478 (url "https://gitlab.gnome.org/GNOME/geary")
10479 (commit version)))
10480 (file-name (git-file-name name version))
10481 (sha256
10482 (base32
10483 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10484 (build-system meson-build-system)
10485 (arguments
10486 `(#:glib-or-gtk? #t
10487 #:phases (modify-phases %standard-phases
10488 (add-after 'unpack 'disable-failing-tests
10489 (lambda _
10490 (substitute* "test/meson.build"
10491 (("test\\('client-tests', geary_test_client_bin\\)")
10492 ""))
10493 #t))
10494 (add-after 'unpack 'disable-postinstall-script
10495 (lambda _
10496 (substitute* "meson.build"
10497 (("meson.add_install_script\\(\
10498 join_paths\\('build-aux', 'post_install.py'\\)\\)")
10499 ""))
10500 #t))
10501 (add-before 'check 'setup-xvfb
10502 (lambda _
10503 (system "Xvfb :1 &")
10504 (setenv "DISPLAY" ":1")
10505 #t)))))
10506 (inputs
10507 `(("enchant" ,enchant)
10508 ("folks" ,folks)
10509 ("gcr" ,gcr)
10510 ("glib" ,glib)
10511 ("gmime" ,gmime-2.6)
10512 ("gnome-online-accounts:lib"
10513 ,gnome-online-accounts "lib")
10514 ("gspell" ,gspell)
10515 ("gtk+" ,gtk+)
10516 ("iso-codes" ,iso-codes)
10517 ("json-glib" ,json-glib)
10518 ("libcanberra" ,libcanberra)
10519 ("libgee" ,libgee)
10520 ("libhandy" ,libhandy)
10521 ("libpeas" ,libpeas)
10522 ("libsecret" ,libsecret)
10523 ("libunwind" ,libunwind)
10524 ("sqlite" ,sqlite)
10525 ("webkitgtk" ,webkitgtk)
10526 ("ytnef" ,ytnef)))
10527 (native-inputs
10528 `(("appstream-glib" ,appstream-glib)
10529 ("cmake-minimal" ,cmake-minimal)
10530 ("desktop-file-utils" ,desktop-file-utils)
10531 ("gettext" ,gettext-minimal)
10532 ("glib:bin" ,glib "bin")
10533 ("gobject-introspection" ,gobject-introspection)
10534 ("itstool" ,itstool)
10535 ("libarchive" ,libarchive)
10536 ("libxml2" ,libxml2)
10537 ("pkg-config" ,pkg-config)
10538 ("vala" ,vala)
10539 ("xvfb" ,xorg-server-for-tests)))
10540 (synopsis "GNOME email application built around conversations")
10541 (description
10542 "Geary collects related messages together into conversations,
10543 making it easy to find and follow your discussions. Full-text and keyword
10544 search makes it easy to find the email you are looking for. Geary's
10545 full-featured composer lets you send rich, styled text with images, links, and
10546 lists, but also send lightweight, easy to read text messages. Geary
10547 automatically picks up your existing GNOME Online Accounts, and adding more is
10548 easy. Geary has a clean, fast, modern interface that works like you want it
10549 to.")
10550 (home-page "https://wiki.gnome.org/Apps/Geary")
10551 (license (list
10552 ;; geary
10553 license:lgpl2.1+
10554 ;; icons
10555 license:cc-by3.0
10556 license:cc-by-sa3.0
10557 license:public-domain
10558 ;; snowball
10559 license:bsd-2))))
10560
10561 (define-public glabels
10562 (package
10563 (name "glabels")
10564 (version "3.4.1")
10565 (source
10566 (origin
10567 (method url-fetch)
10568 (uri (string-append "mirror://gnome/sources/" name "/"
10569 (version-major+minor version) "/"
10570 "glabels-" version ".tar.xz"))
10571 (sha256
10572 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10573 (build-system glib-or-gtk-build-system)
10574 (native-inputs
10575 `(("gettext" ,gettext-minimal)
10576 ("glib:bin" ,glib "bin")
10577 ("intltool" ,intltool)
10578 ("itstool" ,itstool)
10579 ("pkg-config" ,pkg-config)))
10580 (inputs
10581 `(("gtk+" ,gtk+)
10582 ("librsvg" ,librsvg)
10583 ("libxml2" ,libxml2)))
10584 (home-page "https://glabels.org/")
10585 (synopsis "Program for creating labels and business cards")
10586 (description
10587 "gLabels is a program for creating labels and business cards. It is
10588 designed to work with various laser/ink-jet peel-off label and business
10589 card sheets that you’ll find at most office supply stores.")
10590 (license license:gpl3+)))
10591
10592 (define-public libratbag
10593 (package
10594 (name "libratbag")
10595 (version "0.13")
10596 (source
10597 (origin
10598 (method git-fetch)
10599 (uri (git-reference
10600 (url "https://github.com/libratbag/libratbag")
10601 (commit (string-append "v" version))))
10602 (file-name (git-file-name name version))
10603 (sha256
10604 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10605 (build-system meson-build-system)
10606 (arguments
10607 `(#:configure-flags
10608 (list "-Dsystemd=false"
10609 "-Dlogind-provider=elogind")
10610 #:phases
10611 (modify-phases %standard-phases
10612 (add-after 'install 'wrap
10613 (lambda* (#:key inputs outputs #:allow-other-keys)
10614 (let* ((out (assoc-ref outputs "out"))
10615 (site (string-append
10616 "/lib/python"
10617 ,(version-major+minor (package-version python))
10618 "/site-packages"))
10619 (evdev (string-append
10620 (assoc-ref inputs "python-evdev") site))
10621 (pygo (string-append
10622 (assoc-ref inputs "python-pygobject") site))
10623 (python-wrap
10624 `("PYTHONPATH" = (,evdev ,pygo))))
10625 (wrap-program (string-append out "/bin/" "ratbagctl")
10626 python-wrap)
10627 #t))))))
10628 (native-inputs
10629 `(("check" ,check)
10630 ("pkg-config" ,pkg-config)
10631 ("swig" ,swig)
10632 ("valgrind" ,valgrind)))
10633 (inputs
10634 `(("glib" ,glib)
10635 ("json-glib" ,json-glib)
10636 ("libevdev" ,libevdev)
10637 ("libsystemd" ,elogind)
10638 ("libunistring" ,libunistring)
10639 ("python-evdev" ,python-evdev)
10640 ("python-pygobject" ,python-pygobject)
10641 ("udev" ,eudev)))
10642 (home-page "https://github.com/libratbag/libratbag")
10643 (synopsis "DBus daemon and utility for configuring gaming mice")
10644 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10645 configure input devices, mainly gaming mice. The daemon provides a generic
10646 way to access the various features exposed by these mice and abstracts away
10647 hardware-specific and kernel-specific quirks. There is also the
10648 @command{ratbagctl} command line interface for configuring devices.
10649
10650 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10651 Steelseries.
10652
10653 The ratbagd DBus service can be enabled by adding the following service to
10654 your operating-system definition:
10655
10656 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10657 (license license:expat)))
10658
10659 (define-public piper
10660 (package
10661 (name "piper")
10662 (version "0.5")
10663 (source
10664 (origin
10665 (method git-fetch)
10666 (uri (git-reference
10667 (url "https://github.com/libratbag/piper")
10668 (commit version)))
10669 (sha256
10670 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10671 (file-name (git-file-name name version))))
10672 (build-system meson-build-system)
10673 (native-inputs
10674 `(("gettext" ,gettext-minimal)
10675 ("glib:bin" ,glib "bin")
10676 ("gobject-introspection" ,gobject-introspection)
10677 ("pkg-config" ,pkg-config)
10678 ("python-flake8" ,python-flake8)))
10679 (inputs
10680 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10681 ("gtk" ,gtk+)
10682 ("gtk:bin" ,gtk+ "bin")
10683 ("librsvg" ,librsvg)
10684 ("python-evdev" ,python-evdev)
10685 ("python-lxml" ,python-lxml)
10686 ("python-pycairo" ,python-pycairo)
10687 ("python-pygobject" ,python-pygobject)))
10688 (arguments
10689 `(#:imported-modules ((guix build python-build-system)
10690 ,@%meson-build-system-modules)
10691 #:modules (((guix build python-build-system) #:prefix python:)
10692 (guix build meson-build-system)
10693 (guix build utils))
10694 #:phases
10695 (modify-phases %standard-phases
10696 (add-after 'unpack 'dont-update-gtk-icon-cache
10697 (lambda _
10698 (substitute* "meson.build"
10699 (("meson.add_install_script('meson_install.sh')") ""))
10700 #t))
10701 ;; TODO: Switch to wrap-script when it is fixed.
10702 (add-after 'install 'wrap-python
10703 (assoc-ref python:%standard-phases 'wrap))
10704 (add-after 'wrap-python 'wrap
10705 (lambda* (#:key outputs #:allow-other-keys)
10706 (wrap-program
10707 (string-append (assoc-ref outputs "out" )"/bin/piper")
10708 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10709 #t)))))
10710 (home-page "https://github.com/libratbag/piper/")
10711 (synopsis "Configure bindings and LEDs on gaming mice")
10712 (description "Piper is a GTK+ application for configuring gaming mice with
10713 onboard configuration for key bindings via libratbag. Piper requires
10714 a @command{ratbagd} daemon running with root privileges. It can be run
10715 manually as root, but is preferably configured as a DBus service that can
10716 launch on demand. This can be configured by enabling the following service,
10717 provided there is a DBus service present:
10718
10719 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10720 (license license:gpl2)))
10721
10722 (define-public parlatype
10723 (package
10724 (name "parlatype")
10725 (version "2.1")
10726 (source
10727 (origin
10728 (method git-fetch)
10729 (uri (git-reference
10730 (url "https://github.com/gkarsay/parlatype.git")
10731 (commit (string-append "v" version))))
10732 (file-name (git-file-name name version))
10733 (sha256
10734 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
10735 (build-system meson-build-system)
10736 (arguments
10737 `(#:glib-or-gtk? #t
10738 #:tests? #f ;require internet access
10739 #:phases
10740 (modify-phases %standard-phases
10741 (add-after 'install 'wrap-parlatype
10742 ;; Add gstreamer plugin provided in this package to system's
10743 ;; plugins.
10744 (lambda* (#:key outputs #:allow-other-keys)
10745 (let* ((out (assoc-ref outputs "out"))
10746 (gst-plugin-path (string-append
10747 out "/lib/gstreamer-1.0/"
10748 ":"
10749 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10750 (wrap-program (string-append out "/bin/parlatype")
10751 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10752 #t)))))
10753 (native-inputs
10754 `(("appstream-glib" ,appstream-glib)
10755 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10756 ("gettext" ,gettext-minimal)
10757 ("glib" ,glib "bin") ;for glib-compile-resources
10758 ("pkg-config" ,pkg-config)
10759 ("yelp-tools" ,yelp-tools)))
10760 (inputs
10761 `(("gst-plugins-base" ,gst-plugins-base)
10762 ("gst-plugins-good" ,gst-plugins-good)
10763 ("gstreamer" ,gstreamer)
10764 ("gtk+" ,gtk+)
10765 ("pocketsphinx" ,pocketsphinx)
10766 ("pulseaudio" ,pulseaudio)
10767 ("sphinxbase" ,sphinxbase)))
10768 (home-page "http://gkarsay.github.io/parlatype/")
10769 (synopsis "GNOME audio player for transcription")
10770 (description "Parlatype is an audio player for the GNOME desktop
10771 environment. Its main purpose is the manual transcription of spoken
10772 audio files.")
10773 (license license:gpl3+)))
10774
10775 (define-public jsonrpc-glib
10776 (package
10777 (name "jsonrpc-glib")
10778 (version "3.34.0")
10779 (source (origin
10780 (method url-fetch)
10781 (uri (string-append "mirror://gnome/sources/" name "/"
10782 (version-major+minor version) "/"
10783 name "-" version ".tar.xz"))
10784 (sha256
10785 (base32
10786 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10787 (build-system meson-build-system)
10788 (inputs
10789 `(("json-glib" ,json-glib)
10790 ("glib" ,glib)))
10791 (native-inputs
10792 `(("pkg-config" ,pkg-config)
10793 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10794 ("gobject-introspection" ,gobject-introspection)
10795 ("vala" ,vala)))
10796 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10797 (synopsis "JSON-RPC library for GLib")
10798 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10799 peers in either a synchronous or asynchronous fashion. It also allows
10800 communicating using the GVariant serialization format instead of JSON when
10801 both peers support it. You might want that when communicating on a single
10802 host to avoid parser overhead and memory-allocator fragmentation.")
10803 (license license:lgpl2.1+)))
10804
10805 (define-public feedbackd
10806 (package
10807 (name "feedbackd")
10808 (version "0.0.0+git20200527")
10809 (source (origin
10810 (method git-fetch)
10811 (uri (git-reference
10812 (url "https://source.puri.sm/Librem5/feedbackd.git")
10813 (commit (string-append "v" version))))
10814 (file-name (git-file-name name version))
10815 (sha256
10816 (base32
10817 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
10818 (build-system meson-build-system)
10819 (native-inputs
10820 `(("glib:bin" ,glib "bin")
10821 ("gobject-introspection" ,gobject-introspection)
10822 ("pkg-config" ,pkg-config)
10823 ("vala" ,vala)))
10824 (inputs
10825 `(("dbus" ,dbus)
10826 ("gsound" ,gsound)
10827 ("json-glib" ,json-glib)
10828 ("libgudev" ,libgudev)))
10829 (propagated-inputs
10830 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
10831 (synopsis "Haptic/visual/audio feedback via DBus")
10832 (description "Feedbackd provides a DBus daemon to act on events to provide
10833 haptic, visual and audio feedback. It offers the libfeedbackd library and
10834 GObject introspection bindings.")
10835 (home-page "https://source.puri.sm/Librem5/feedbackd")
10836 (license (list license:lgpl2.1+ ; libfeedbackd
10837 license:lgpl3+)))) ; the rest
10838
10839 (define-public sysprof
10840 (package
10841 (name "sysprof")
10842 (version "3.34.1")
10843 (source (origin
10844 (method url-fetch)
10845 (uri (string-append "mirror://gnome/sources/" name "/"
10846 (version-major+minor version) "/"
10847 name "-" version ".tar.xz"))
10848 (sha256
10849 (base32
10850 "1l4kr1av7933vb4zql9c5lgzivlw64hyky4nr8xin1v5if6vnjw4"))))
10851 (build-system meson-build-system)
10852 (arguments
10853 `(#:configure-flags
10854 (list (string-append "-Dsystemdunitdir="
10855 %output
10856 "/share/systemd"))
10857 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
10858 #:phases
10859 (modify-phases %standard-phases
10860 (add-after 'unpack 'patch-install-script
10861 (lambda _
10862 (substitute* "build-aux/meson/post_install.sh"
10863 (("gtk-update-icon-cache") "true")
10864 (("update-desktop-database") "true"))
10865 #t)))))
10866 (inputs
10867 `(("glib" ,glib)
10868 ("gtk+" ,gtk+)
10869 ("libdazzle" ,libdazzle)
10870 ("polkit" ,polkit)))
10871 (native-inputs
10872 `(("gettext" ,gettext-minimal)
10873 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
10874 ("itstool" ,itstool)
10875 ("pkg-config" ,pkg-config)
10876 ("xmllint" ,libxml2)))
10877 (home-page "http://www.sysprof.com/")
10878 (synopsis "System-wide performance profiler")
10879 (description "Sysprof is a sampling profiler that uses a kernel module
10880 to generate stacktraces which are then interpreted by the userspace program
10881 @command{sysprof}.")
10882 (license license:gpl3+)))
10883
10884 (define-public gnome-builder
10885 (package
10886 (name "gnome-builder")
10887 (version "3.36.1")
10888 (source (origin
10889 (method url-fetch)
10890 (uri (string-append "mirror://gnome/sources/" name "/"
10891 (version-major+minor version) "/"
10892 name "-" version ".tar.xz"))
10893 (sha256
10894 (base32
10895 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
10896 (build-system meson-build-system)
10897 (arguments
10898 `(#:configure-flags (list "-Dnetwork_tests=false"
10899 ;; TODO: Enable all plugins...
10900 "-Dplugin_clang=false"
10901 "-Dplugin_flatpak=false"
10902 "-Dplugin_glade=false"
10903 ;; ... except this one.
10904 "-Dplugin_update_manager=false")
10905 #:phases
10906 (modify-phases %standard-phases
10907 (add-after 'unpack 'patch-meson
10908 (lambda* (#:key inputs #:allow-other-keys)
10909 (substitute* "build-aux/meson/post_install.py"
10910 (("gtk-update-icon-cache") "true")
10911 (("update-desktop-database") "true"))
10912 (substitute* "src/libide/meson.build"
10913 (("/usr/lib")
10914 (string-append (assoc-ref inputs "python-pygobject")
10915 "/lib")))
10916 #t))
10917 (add-before 'check 'pre-check
10918 (lambda _
10919 (system "Xvfb :1 &")
10920 (setenv "DISPLAY" ":1")
10921 #t)))))
10922 (inputs
10923 `(("devhelp" ,devhelp)
10924 ("gspell" ,gspell)
10925 ("gtk+" ,gtk+)
10926 ("json-glib" ,json-glib)
10927 ("jsonrpc-glib" ,jsonrpc-glib)
10928 ("libdazzle" ,libdazzle)
10929 ("libgit2-glib" ,libgit2-glib)
10930 ("libpeas" ,libpeas)
10931 ("python-pygobject" ,python-pygobject)
10932 ("sysprof" ,sysprof)
10933 ("template-glib" ,template-glib)
10934 ("vte" ,vte)
10935 ("webkitgtk" ,webkitgtk)))
10936 (propagated-inputs
10937 `(("gtksourceview" ,gtksourceview))) ;needed for settings
10938 (native-inputs
10939 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10940 ("glib:bin" ,glib "bin")
10941 ("gettext" ,gettext-minimal)
10942 ("pkg-config" ,pkg-config)
10943 ("vala" ,vala)
10944 ("xorg-server" ,xorg-server-for-tests)))
10945 (home-page "https://wiki.gnome.org/Apps/Builder")
10946 (synopsis "Toolsmith for GNOME-based applications")
10947 (description "Builder aims to be an integrated development
10948 environment (IDE) for writing GNOME-based software. It features fuzzy search,
10949 auto-completion, a mini code map, documentation browsing, Git integration, an
10950 integrated profiler via Sysprof, debugging support, and more.")
10951 (license license:gpl3+)))