gnu: Add gnome-music.
[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 gl)
111 #:use-module (gnu packages glib)
112 #:use-module (gnu packages gnupg)
113 #:use-module (gnu packages gnuzilla)
114 #:use-module (gnu packages geo)
115 #:use-module (gnu packages gperf)
116 #:use-module (gnu packages graphviz)
117 #:use-module (gnu packages gstreamer)
118 #:use-module (gnu packages gtk)
119 #:use-module (gnu packages guile)
120 #:use-module (gnu packages ibus)
121 #:use-module (gnu packages icu4c)
122 #:use-module (gnu packages image)
123 #:use-module (gnu packages imagemagick)
124 #:use-module (gnu packages inkscape)
125 #:use-module (gnu packages iso-codes)
126 #:use-module (gnu packages kerberos)
127 #:use-module (gnu packages libcanberra)
128 #:use-module (gnu packages libunistring)
129 #:use-module (gnu packages libunwind)
130 #:use-module (gnu packages libusb)
131 #:use-module (gnu packages linux)
132 #:use-module (gnu packages lirc)
133 #:use-module (gnu packages lua)
134 #:use-module (gnu packages mail)
135 #:use-module (gnu packages mp3)
136 #:use-module (gnu packages multiprecision)
137 #:use-module (gnu packages music)
138 #:use-module (gnu packages ncurses)
139 #:use-module (gnu packages nettle)
140 #:use-module (gnu packages networking)
141 #:use-module (gnu packages ninja)
142 #:use-module (gnu packages nss)
143 #:use-module (gnu packages openldap)
144 #:use-module (gnu packages package-management)
145 #:use-module (gnu packages password-utils)
146 #:use-module (gnu packages pcre)
147 #:use-module (gnu packages pdf)
148 #:use-module (gnu packages perl)
149 #:use-module (gnu packages photo)
150 #:use-module (gnu packages php)
151 #:use-module (gnu packages pkg-config)
152 #:use-module (gnu packages polkit)
153 #:use-module (gnu packages popt)
154 #:use-module (gnu packages pretty-print)
155 #:use-module (gnu packages pulseaudio)
156 #:use-module (gnu packages python)
157 #:use-module (gnu packages python-crypto)
158 #:use-module (gnu packages python-web)
159 #:use-module (gnu packages python-xyz)
160 #:use-module (gnu packages rdesktop)
161 #:use-module (gnu packages readline)
162 #:use-module (gnu packages ruby)
163 #:use-module (gnu packages rust)
164 #:use-module (gnu packages samba)
165 #:use-module (gnu packages scanner)
166 #:use-module (gnu packages selinux)
167 #:use-module (gnu packages slang)
168 #:use-module (gnu packages speech)
169 #:use-module (gnu packages spice)
170 #:use-module (gnu packages sqlite)
171 #:use-module (gnu packages ssh)
172 #:use-module (gnu packages swig)
173 #:use-module (gnu packages tex)
174 #:use-module (gnu packages time)
175 #:use-module (gnu packages tls)
176 #:use-module (gnu packages valgrind)
177 #:use-module (gnu packages version-control)
178 #:use-module (gnu packages video)
179 #:use-module (gnu packages virtualization)
180 #:use-module (gnu packages vpn)
181 #:use-module (gnu packages web)
182 #:use-module (gnu packages webkit)
183 #:use-module (gnu packages xdisorg)
184 #:use-module (gnu packages xiph)
185 #:use-module (gnu packages xml)
186 #:use-module (gnu packages xorg)
187 #:use-module (gnu artwork)
188 #:use-module ((guix build utils) #:select (modify-phases))
189 #:use-module (guix build-system cargo)
190 #:use-module (guix build-system cmake)
191 #:use-module (guix build-system glib-or-gtk)
192 #:use-module (guix build-system gnu)
193 #:use-module (guix build-system meson)
194 #:use-module (guix build-system python)
195 #:use-module (guix build-system trivial)
196 #:use-module (guix download)
197 #:use-module (guix git-download)
198 #:use-module ((guix licenses) #:prefix license:)
199 #:use-module (guix packages)
200 #:use-module (guix utils)
201 #:use-module (guix gexp)
202 #:use-module (guix monads)
203 #:use-module (guix store)
204 #:use-module (ice-9 match)
205 #:use-module (srfi srfi-1))
206
207 (define-public brasero
208 (package
209 (name "brasero")
210 (version "3.12.2")
211 (source (origin
212 (method url-fetch)
213 (uri (string-append "mirror://gnome/sources/brasero/"
214 (version-major+minor version) "/"
215 "brasero-" version ".tar.xz"))
216 (sha256
217 (base32
218 "0h90y674j26rvjahb8cc0w79zx477rb6zaqcj26wzvq8kmpic8k8"))))
219 (build-system glib-or-gtk-build-system)
220 (arguments
221 `(#:configure-flags (list
222 (string-append "--with-girdir="
223 (assoc-ref %outputs "out")
224 "/share/gir-1.0")
225 (string-append "--with-typelibdir="
226 (assoc-ref %outputs "out")
227 "/lib/girepository-1.0"))
228 #:phases
229 (modify-phases %standard-phases
230 (add-before 'configure 'embed-growisofs
231 (lambda* (#:key inputs #:allow-other-keys)
232 (substitute* "plugins/growisofs/burn-growisofs.c"
233 (("\"growisofs") (string-append "\"" (which "growisofs"))))
234 #t)))))
235 (propagated-inputs
236 `(("hicolor-icon-theme" ,hicolor-icon-theme)))
237 (native-inputs
238 `(("intltool" ,intltool)
239 ("itstool" ,itstool)
240 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
241 ("gobject-introspection" ,gobject-introspection)
242 ("pkg-config" ,pkg-config)))
243 (inputs
244 `(("dvd+rw-tools" ,dvd+rw-tools)
245 ("glib" ,glib)
246 ("gnome-doc-utils" ,gnome-doc-utils)
247 ("gstreamer" ,gstreamer)
248 ("gst-plugins-base" ,gst-plugins-base)
249 ("gtk+" ,gtk+)
250 ("libcanberra" ,libcanberra)
251 ("libice" ,libice)
252 ("libnotify" ,libnotify)
253 ("libsm" ,libsm)
254 ("libxml2" ,libxml2)
255 ("totem-pl-parser" ,totem-pl-parser)))
256 (home-page "https://wiki.gnome.org/Apps/Brasero")
257 (synopsis "CD/DVD burning tool for Gnome")
258 (description "Brasero is an application to burn CD/DVD for the Gnome
259 Desktop. It is designed to be as simple as possible and has some unique
260 features to enable users to create their discs easily and quickly.")
261 (license license:gpl2+)))
262
263 (define-public gnome-music
264 (package
265 (name "gnome-music")
266 (version "3.34.5")
267 (source
268 (origin
269 (method url-fetch)
270 (uri
271 (string-append "mirror://gnome/sources/" name "/"
272 (version-major+minor version) "/"
273 name "-" version ".tar.xz"))
274 (sha256
275 (base32
276 "1r5sfw5cbd6qqh27lzhblazir0bfi3k7nqppw66qw990isqm5psy"))))
277 (build-system meson-build-system)
278 (arguments
279 `(#:glib-or-gtk? #t
280 #:phases
281 (modify-phases %standard-phases
282 (add-after 'install 'wrap-gnome-music
283 (lambda* (#:key inputs outputs #:allow-other-keys)
284 (let*
285 ((out (assoc-ref outputs "out"))
286 (pylib (string-append out "/lib/python"
287 ,(version-major+minor
288 (package-version python))
289 "/site-packages")))
290 (wrap-program (string-append out "/bin/gnome-music")
291 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
292 `("GST_PLUGIN_SYSTEM_PATH" = (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
293 `("GRL_PLUGIN_PATH" = (,(getenv "GRL_PLUGIN_PATH")))
294 `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))))
295 #t)))))
296 (native-inputs
297 `(("desktop-file-utils" ,desktop-file-utils)
298 ("gettext" ,gettext-minimal)
299 ("glib:bin" ,glib "bin")
300 ("gobject-introspection" ,gobject-introspection)
301 ("gtk+:bin" ,gtk+ "bin")
302 ("itstools" ,itstool)
303 ("pkg-config" ,pkg-config)))
304 (inputs
305 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
306 ("grilo" ,grilo)
307 ("grilo-plugins" ,grilo-plugins)
308 ("gst-plugins-base" ,gst-plugins-base)
309 ("gstreamer" ,gstreamer)
310 ("gvfs" ,gvfs)
311 ("libdazzle" ,libdazzle)
312 ("libmediaart" ,libmediaart)
313 ("libsoup" ,libsoup)
314 ("pycairo" ,python-pycairo)
315 ("pygobject" ,python-pygobject)
316 ("tracker" ,tracker)
317 ("tracker-miners" ,tracker-miners)))
318 (synopsis "Simple music player for GNOME desktop")
319 (description "GNOME Music is the new GNOME music playing application that
320 aims to combine an elegant and immersive browsing experience with simple
321 and straightforward controls.")
322 (home-page "https://wiki.gnome.org/Apps/Music")
323 (license license:gpl2+)))
324
325 (define-public portablexdr
326 (package
327 (name "portablexdr")
328 (version "4.9.1")
329 (source
330 (origin
331 (method url-fetch)
332 (uri
333 (string-append "https://people.redhat.com/~rjones/" name "/files/"
334 name "-" version ".tar.gz"))
335 (sha256
336 (base32
337 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
338 (build-system gnu-build-system)
339 (synopsis "External Data Representation Library")
340 (description "PortableXDR is an implementation of External Data
341 Representation (XDR) Library. It is a standard data serialization format, for
342 uses such as computer network protocols. It allows data to be transferred
343 between different kinds of computer systems.")
344 (home-page "https://people.redhat.com/~rjones/portablexdr/")
345 (license
346 (list
347 license:gpl2+
348 license:lgpl2.1+))))
349
350 (define-public tepl
351 (package
352 (name "tepl")
353 (version "4.4.0")
354 (source
355 (origin
356 (method url-fetch)
357 (uri
358 (string-append "mirror://gnome/sources/" name "/"
359 (version-major+minor version) "/"
360 name "-" version ".tar.xz"))
361 (sha256
362 (base32
363 "0mm2z849hnni7597an05mrv0dckrxjngpf2xfa0g5s17i8x6gxp6"))))
364 (build-system glib-or-gtk-build-system)
365 (arguments
366 `(#:tests? #f)) ; FIX-ME: Requires gvfs
367 (native-inputs
368 `(("gobject-introspection" ,gobject-introspection)
369 ("pkg-config" ,pkg-config)))
370 (inputs
371 `(("amtk" ,amtk)
372 ("glib" ,glib)
373 ("gtk+" ,gtk+)
374 ("gtksourceview" ,gtksourceview)
375 ("libxml2" ,libxml2)
376 ("uchardet" ,uchardet)))
377 (synopsis "Text editor product line")
378 (description "Tepl is a library that eases the development of
379 GtkSourceView-based text editors and IDEs.")
380 (home-page "https://wiki.gnome.org/Projects/Tepl")
381 (license license:lgpl2.1+)))
382
383 (define-public krb5-auth-dialog
384 (package
385 (name "krb5-auth-dialog")
386 (version "3.26.1")
387 (source
388 (origin
389 (method url-fetch)
390 (uri
391 (string-append "mirror://gnome/sources/" name "/"
392 (version-major+minor version) "/"
393 name "-" version ".tar.xz"))
394 (sha256
395 (base32
396 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
397 (build-system glib-or-gtk-build-system)
398 (native-inputs
399 `(("intltool" ,intltool)
400 ("itstool" ,itstool)
401 ("libxml2" ,libxml2)
402 ("pkg-config" ,pkg-config)
403 ("python-wrapper" ,python-wrapper)))
404 (inputs
405 `(("glib" ,glib)
406 ("gtk+" ,gtk+)
407 ("libnotify" ,libnotify)
408 ("mit-krb5" ,mit-krb5)
409 ("network-manager" ,network-manager)))
410 (synopsis "Popup dialogs for Kerberos 5")
411 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
412 tickets, and pops up a dialog when they are about to expire.")
413 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
414 (license license:gpl2+)))
415
416 (define-public notification-daemon
417 (package
418 (name "notification-daemon")
419 (version "3.20.0")
420 (source
421 (origin
422 (method url-fetch)
423 (uri
424 (string-append "mirror://gnome/sources/" name "/"
425 (version-major+minor version) "/"
426 name "-" version ".tar.xz"))
427 (sha256
428 (base32
429 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
430 (build-system glib-or-gtk-build-system)
431 (native-inputs
432 `(("intltool" ,intltool)
433 ("pkg-config" ,pkg-config)))
434 (inputs
435 `(("glib" ,glib)
436 ("gtk+" ,gtk+)
437 ("x11" ,libx11)))
438 (synopsis "Notification Daemon for GNOME Desktop")
439 (description "Notification-Daemon is the server implementation of the
440 freedesktop.org desktop notification specification.")
441 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
442 (license license:gpl2+)))
443
444 (define-public mm-common
445 (package
446 (name "mm-common")
447 (version "1.0.1")
448 (source (origin
449 (method url-fetch)
450 (uri (string-append "mirror://gnome/sources/mm-common/"
451 (version-major+minor version) "/"
452 "mm-common-" version ".tar.xz"))
453 (sha256
454 (base32
455 "1jasx9a9g7nqf7jcv3mrg4qh5cp9sq724jxjaz4wa1dzmxsxg8i8"))))
456 (build-system meson-build-system)
457 (arguments
458 `(#:phases
459 (modify-phases %standard-phases
460 (add-after 'unpack 'patch
461 (lambda* (#:key inputs #:allow-other-keys)
462 (substitute* "util/mm-common-prepare.in"
463 (("ln") (string-append (assoc-ref inputs "coreutils")
464 "/bin/ln"))
465 (("cp") (string-append (assoc-ref inputs "coreutils")
466 "/bin/cp"))
467 (("sed") (string-append (assoc-ref inputs "sed")
468 "/bin/sed"))
469 (("cat") (string-append (assoc-ref inputs "coreutils")
470 "/bin/cat")))
471 #t)))))
472 (native-inputs
473 `(("coreutils" ,coreutils)
474 ("gettext" ,gettext-minimal)
475 ("pkg-config" ,pkg-config)
476 ("sed" ,sed)))
477 (inputs
478 `(("python" ,python)))
479 (synopsis "Module of GNOME C++ bindings")
480 (description "The mm-common module provides the build infrastructure
481 and utilities shared among the GNOME C++ binding libraries. Release
482 archives of mm-common include the Doxygen tag file for the GNU C++
483 Library reference documentation.")
484 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
485 (license license:gpl2+)))
486
487 (define-public phodav
488 (package
489 (name "phodav")
490 (version "2.4")
491 (source (origin
492 (method url-fetch)
493 (uri (string-append "mirror://gnome/sources/" name "/"
494 (version-major+minor version) "/"
495 name "-" version ".tar.xz"))
496 (sha256
497 (base32
498 "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx"))))
499 (build-system meson-build-system)
500 (native-inputs
501 `(("gettext" ,gettext-minimal)
502 ("glib:bin" ,glib "bin")
503 ("gtk-doc" ,gtk-doc)
504 ("pkg-config" ,pkg-config)))
505 (inputs
506 `(("avahi" ,avahi)
507 ("libgudev" ,libgudev)
508 ("libsoup" ,libsoup)))
509 (synopsis "WebDav server implementation using libsoup")
510 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
511 but it is generic enough to be reused in other projects,
512 in particular in the GNOME desktop.")
513 (home-page "https://wiki.gnome.org/phodav")
514 (license license:lgpl2.1+)))
515
516 (define-public gnome-color-manager
517 (package
518 (name "gnome-color-manager")
519 (version "3.32.0")
520 (source (origin
521 (method url-fetch)
522 (uri (string-append "mirror://gnome/sources/" name "/"
523 (version-major+minor version) "/"
524 name "-" version ".tar.xz"))
525 (sha256
526 (base32
527 "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w"))))
528 (build-system meson-build-system)
529 (arguments
530 `(#:glib-or-gtk? #t
531 #:phases
532 (modify-phases %standard-phases
533 (add-before
534 'check 'pre-check
535 (lambda _
536 ;; Tests require a running X server.
537 (system "Xvfb :1 &")
538 (setenv "DISPLAY" ":1")
539 #t)))))
540 (native-inputs
541 `(("desktop-file-utils" ,desktop-file-utils)
542 ("gettext" ,gettext-minimal)
543 ("glib:bin" ,glib "bin")
544 ("gtk+:bin" ,gtk+ "bin")
545 ("itstool" ,itstool)
546 ("pkg-config" ,pkg-config)
547 ("xorg-server" ,xorg-server-for-tests)))
548 (inputs
549 `(("adwaita-icon-theme" ,adwaita-icon-theme)
550 ("appstream-glib" ,appstream-glib)
551 ("colord-gtk" ,colord-gtk)
552 ("exiv2" ,exiv2)
553 ("gnome-desktop" ,gnome-desktop)
554 ("libcanberra" ,libcanberra)
555 ("libexif" ,libexif)
556 ("libtiff" ,libtiff)
557 ("libxrandr" ,libxrandr)
558 ("libxtst" ,libxtst)
559 ("libxxf86vm" ,libxxf86vm)
560 ("vte" ,vte)
561 ("xorgproto" ,xorgproto)))
562 (synopsis "Color profile manager for the GNOME desktop")
563 (description "GNOME Color Manager is a session framework that makes
564 it easy to manage, install and generate color profiles
565 in the GNOME desktop.")
566 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
567 (license license:gpl2+)))
568
569 (define-public gnome-online-miners
570 (package
571 (name "gnome-online-miners")
572 (version "3.34.0")
573 (source (origin
574 (method url-fetch)
575 (uri (string-append "mirror://gnome/sources/" name "/"
576 (version-major+minor version) "/"
577 name "-" version ".tar.xz"))
578 (sha256
579 (base32
580 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))))
581 (build-system glib-or-gtk-build-system)
582 (native-inputs
583 `(("gettext" ,gettext-minimal)
584 ("glib:bin" ,glib "bin")
585 ("gobject-introspection" ,gobject-introspection)
586 ("gtk+:bin" ,gtk+ "bin")
587 ("pkg-config" ,pkg-config)))
588 (inputs
589 `(("gnome-online-accounts" ,gnome-online-accounts)
590 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
591 ("grilo" ,grilo)
592 ("libgdata" ,libgdata)
593 ("libgfbgraph" ,gfbgraph)
594 ("libzapojit" ,libzapojit)
595 ("rest" ,rest)
596 ("tracker" ,tracker)))
597 (synopsis "Web Crawlers for GNOME")
598 (description "GNOME Online Miners provides a set of crawlers that
599 go through your online content and index them locally in Tracker.
600 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
601 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
602 (license license:gpl2+)))
603
604 (define-public gssdp
605 (package
606 (name "gssdp")
607 (version "1.2.3")
608 (source (origin
609 (method url-fetch)
610 (uri (string-append "mirror://gnome/sources/" name "/"
611 (version-major+minor version) "/"
612 name "-" version ".tar.xz"))
613 (sha256
614 (base32
615 "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2"))))
616 (build-system meson-build-system)
617 (native-inputs
618 `(("gettext" ,gettext-minimal)
619 ("glib:bin" ,glib "bin")
620 ("gobject-introspection" ,gobject-introspection)
621 ("gtk-doc" ,gtk-doc)
622 ("pkg-config" ,pkg-config)
623 ("vala" ,vala)))
624 (inputs
625 `(("gtk+" ,gtk+)
626 ("libsoup" ,libsoup)))
627 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
628 Protocol} for GNOME")
629 (description "This package provides a library to handle resource discovery
630 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
631 a debugging tool, @command{gssdp-device-sniffer}.")
632 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
633 (license license:lgpl2.0+)))
634
635 (define-public gupnp
636 (package
637 (name "gupnp")
638 (version "1.2.4")
639 (source (origin
640 (method url-fetch)
641 (uri (string-append "mirror://gnome/sources/" name "/"
642 (version-major+minor version) "/"
643 name "-" version ".tar.xz"))
644 (sha256
645 (base32
646 "1ld7mrpdv9cszmfzh7i19qx4li25j3fr7x1jp38l8phzlmz3187p"))))
647 (build-system meson-build-system)
648 (native-inputs
649 `(("gettext" ,gettext-minimal)
650 ("glib:bin" ,glib "bin")
651 ("gobject-introspection" ,gobject-introspection)
652 ("gtk-doc" ,gtk-doc)
653 ("pkg-config" ,pkg-config)
654 ("vala" ,vala)))
655 (inputs
656 `(("gssdp" ,gssdp)
657 ("gtk+" ,gtk+)
658 ("libsoup" ,libsoup)))
659 (synopsis "PnP API for GNOME")
660 (description "This package provides GUPnP, an object-oriented framework
661 for creating UPnP devices and control points, written in C using
662 @code{GObject} and @code{libsoup}.")
663 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
664 (license license:lgpl2.0+)))
665
666 (define-public gupnp-dlna
667 (package
668 (name "gupnp-dlna")
669 (version "0.10.5")
670 (source (origin
671 (method url-fetch)
672 (uri (string-append "mirror://gnome/sources/" name "/"
673 (version-major+minor version) "/"
674 name "-" version ".tar.xz"))
675 (sha256
676 (base32
677 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
678 (build-system gnu-build-system)
679 (native-inputs
680 `(("gettext" ,gettext-minimal)
681 ("glib:bin" ,glib "bin")
682 ("gobject-introspection" ,gobject-introspection)
683 ("gtk-doc" ,gtk-doc)
684 ("libxml" ,libxml2)
685 ("pkg-config" ,pkg-config)
686 ("vala" ,vala)))
687 (inputs
688 `(("gstreamer" ,gstreamer)
689 ("gupnp" ,gupnp)))
690 (propagated-inputs
691 `(("gst-plugins-base" ,gst-plugins-base)
692 ("gst-plugins-good" ,gst-plugins-good)))
693 (synopsis "GUPnP DLNA for GNOME")
694 (description "This package provides a small utility library to
695 support DLNA-related tasks such as media profile guessing, transcoding to a
696 given profile, etc. DLNA is a subset of UPnP A/V.")
697 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
698 (license license:lgpl2.0+)))
699
700 (define-public gupnp-av
701 (package
702 (name "gupnp-av")
703 (version "0.12.11")
704 (source (origin
705 (method url-fetch)
706 (uri (string-append "mirror://gnome/sources/" name "/"
707 (version-major+minor version) "/"
708 name "-" version ".tar.xz"))
709 (sha256
710 (base32
711 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
712 (build-system gnu-build-system)
713 (native-inputs
714 `(("gettext" ,gettext-minimal)
715 ("glib:bin" ,glib "bin")
716 ("gobject-introspection" ,gobject-introspection)
717 ("gtk-doc" ,gtk-doc)
718 ("libxml" ,libxml2)
719 ("pkg-config" ,pkg-config)))
720 (inputs
721 `(("gtk+" ,gtk+)
722 ("gupnp" ,gupnp)))
723 (synopsis "GUPnP A/V for GNOME")
724 (description "This package provides a small library for handling
725 and implementation of UPnP A/V profiles.")
726 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
727 (license license:lgpl2.0+)))
728
729 (define-public libmediaart
730 (package
731 (name "libmediaart")
732 (version "1.9.4")
733 (source (origin
734 (method url-fetch)
735 (uri (string-append "mirror://gnome/sources/" name "/"
736 (version-major+minor version) "/"
737 name "-" version ".tar.xz"))
738 (sha256
739 (base32
740 "0gc10imyabk57ar54m0qzms0x9dnmkymhkzyk8w1aj3y4lby0yx5"))))
741 (build-system gnu-build-system)
742 (native-inputs
743 `(("glib:bin" ,glib "bin")
744 ("pkg-config" ,pkg-config)))
745 (inputs
746 `(("gdk-pixbuf" ,gdk-pixbuf)
747 ("gettext" ,gettext-minimal)
748 ("gobject-introspection" ,gobject-introspection)
749 ("gtk+:doc", gtk+ "doc")
750 ("vala" ,vala)))
751 (synopsis "Media art library for the GNOME desktop")
752 (description
753 "The libmediaart library is the foundation for media art caching,
754 extraction, and lookup for applications on the desktop.")
755 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
756 (license license:lgpl2.1+)))
757
758 (define-public gnome-initial-setup
759 (package
760 (name "gnome-initial-setup")
761 (version "3.32.1")
762 (source (origin
763 (method url-fetch)
764 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
765 (version-major+minor version)
766 "/gnome-initial-setup-" version ".tar.xz"))
767 (sha256
768 (base32
769 "1gwhp7dalyc8zsb2pa66cmpdrj2d6drbq5p331sq6zp8ds10k9ry"))))
770 (build-system meson-build-system)
771 (arguments
772 '(#:configure-flags '(;; Enable camera support for user selfie.
773 "-Dcheese=auto"
774 "-Dsystemd=false")
775 #:phases (modify-phases %standard-phases
776 (add-after 'unpack 'set-gkbd-file-name
777 (lambda* (#:key inputs #:allow-other-keys)
778 ;; Allow the "Preview" button in the keyboard layout
779 ;; selection dialog to display the layout.
780 (let ((libgnomekbd (assoc-ref inputs "libgnomekbd")))
781 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
782 (("\"gkbd-keyboard-display")
783 (string-append "\"" libgnomekbd
784 "/bin/gkbd-keyboard-display")))
785 #t))))))
786 (native-inputs
787 `(("gettext" ,gettext-minimal)
788 ("glib:bin" ,glib "bin")
789 ("gobject-introspection" ,gobject-introspection)
790 ("gtk+:bin" ,gtk+ "bin")
791 ("pkg-config" ,pkg-config)))
792 (inputs
793 `(("accountsservice" ,accountsservice)
794 ;("adwaita-icon-theme" ,adwaita-icon-theme)
795 ("gdm" ,gdm)
796 ("geoclue" ,geoclue)
797 ("gnome-desktop" ,gnome-desktop)
798 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
799 ("gnome-online-accounts" ,gnome-online-accounts)
800 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
801 ("gstreamer" ,gstreamer)
802 ("ibus" ,ibus)
803 ("json-glib" ,json-glib)
804 ("krb5" ,mit-krb5)
805 ("libgweather" ,libgweather)
806 ("libnma" ,libnma)
807 ("libsecret" ,libsecret)
808 ("network-manager" ,network-manager)
809 ("packagekit" ,packagekit)
810 ("polkit" ,polkit)
811 ("pwquality" ,libpwquality)
812 ("rest" ,rest)
813 ("upower" ,upower)
814 ("webkitgtk" ,webkitgtk)
815 ("libgnomekbd" ,libgnomekbd)))
816 (synopsis "Initial setup wizard for GNOME desktop")
817 (description "This package provides a set-up wizard when a
818 user logs into GNOME for the first time. It typically provides a
819 tour of all gnome components and allows the user to set them up.")
820 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
821 (license license:gpl2)))
822
823 (define-public gnome-user-share
824 (package
825 (name "gnome-user-share")
826 (version "3.33.1")
827 (source (origin
828 (method url-fetch)
829 (uri (string-append "mirror://gnome/sources/" name "/"
830 (version-major+minor version) "/"
831 name "-" version ".tar.xz"))
832 (sha256
833 (base32
834 "0lf790pyamdyj7180ils8vizjl8brxcg7jsm1iavfp9ay4wa8mz7"))))
835 (build-system meson-build-system)
836 (arguments
837 `(#:glib-or-gtk? #t
838 #:configure-flags
839 `("-Dsystemd=false"
840 ;; Enable nautilus extension for file sharing.
841 "-Dnautilus_extension=true")))
842 (native-inputs
843 `(("gettext" ,gettext-minimal)
844 ("glib:bin" ,glib "bin")
845 ("gobject-introspection" ,gobject-introspection)
846 ("gtk+:bin" ,gtk+ "bin")
847 ("pkg-config" ,pkg-config)
848 ("yelp-tools" ,yelp-tools)))
849 (inputs
850 `(("glib" ,glib)
851 ("gnome-bluetooth" ,gnome-bluetooth)
852 ("gtk+" ,gtk+)
853 ("libcanberra" ,libcanberra)
854 ("libnotify" ,libnotify)
855 ("nautilus" ,nautilus))) ; For nautilus extension.
856 (synopsis "File sharing for GNOME desktop")
857 (description "GNOME User Share is a small package that binds together
858 various free software projects to bring easy to use user-level file
859 sharing to the masses.")
860 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
861 (license license:gpl2+)))
862
863 (define-public sushi
864 (package
865 (name "sushi")
866 (version "3.32.1")
867 (source (origin
868 (method url-fetch)
869 (uri (string-append "mirror://gnome/sources/" name "/"
870 (version-major+minor version) "/"
871 name "-" version ".tar.xz"))
872 (sha256
873 (base32
874 "02idvqjk76lii9xyg3b1yz4rw721709bdm5j8ikjym6amcghl0aj"))))
875 (build-system meson-build-system)
876 (arguments
877 `(#:glib-or-gtk? #t
878 #:phases
879 (modify-phases %standard-phases
880 (add-after 'glib-or-gtk-wrap 'wrap-typelib
881 (lambda* (#:key outputs #:allow-other-keys)
882 (let ((prog (string-append (assoc-ref outputs "out")
883 "/bin/sushi")))
884 ;; Put existing typelibs before sushi's deps, so as to correctly
885 ;; infer gdk-pixbuf
886 (wrap-program prog
887 `("GI_TYPELIB_PATH" suffix (,(getenv "GI_TYPELIB_PATH"))))
888 #t))))))
889 (native-inputs
890 `(("glib:bin" ,glib "bin")
891 ("gettext" ,gettext-minimal)
892 ("gobject-introspection" ,gobject-introspection)
893 ("pkg-config" ,pkg-config)))
894 (inputs
895 `(("clutter" ,clutter)
896 ("clutter-gst" ,clutter-gst)
897 ("clutter-gtk" ,clutter-gtk)
898 ("evince" ,evince) ; For file previewing.
899 ("freetype" ,freetype)
900 ("gdk-pixbuf" ,gdk-pixbuf)
901 ("gjs" ,gjs)
902 ("gst-plugins-base" ,gst-plugins-base)
903 ("gstreamer" ,gstreamer)
904 ("gtksourceview" ,gtksourceview-3)
905 ("harfbuzz" ,harfbuzz)
906 ("libepoxy" ,libepoxy)
907 ("libmusicbrainz" ,libmusicbrainz)
908 ("libxml2" ,libxml2)
909 ("neon" ,neon)
910 ("webkitgtk" ,webkitgtk)))
911 (synopsis "File previewer for the GNOME desktop")
912 (description "Sushi is a DBus-activated service that allows applications to
913 preview files on the GNOME desktop.")
914 (home-page "https://gitlab.gnome.org/GNOME/sushi")
915 (license license:gpl2+)))
916
917 (define-public rygel
918 (package
919 (name "rygel")
920 (version "0.38.3")
921 (source (origin
922 (method url-fetch)
923 (uri (string-append "mirror://gnome/sources/" name "/"
924 (version-major+minor version) "/"
925 name "-" version ".tar.xz"))
926 (sha256
927 (base32
928 "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8"))))
929 (build-system gnu-build-system)
930 (native-inputs
931 `(("gettext" ,gettext-minimal)
932 ("gobject-introspection" ,gobject-introspection)
933 ("gtk-doc" ,gtk-doc)
934 ("pkg-config" ,pkg-config)
935 ("vala" ,vala)))
936 (inputs
937 `(("gdk-pixbuf" ,gdk-pixbuf)
938 ("gssdp" ,gssdp)
939 ("gstreamer" ,gstreamer)
940 ("gst-plugins-base" ,gst-plugins-base)
941 ("gtk+" ,gtk+)
942 ("gupnp" ,gupnp)
943 ("gupnp-av" ,gupnp-av)
944 ("gupnp-dlna" ,gupnp-dlna)
945 ("libgee" ,libgee)
946 ("libmediaart" ,libmediaart)
947 ("libsoup" ,libsoup)
948 ("libxslt" ,libxslt)
949 ("libunistring" ,libunistring)
950 ("tracker" ,tracker)))
951 (synopsis "Share audio, video, and pictures with other devices")
952 (description
953 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
954 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
955 pictures, and to control a media player on your home network.
956
957 Rygel achieves interoperability with other devices by trying to conform to the
958 strict requirements of DLNA and by converting media on-the-fly to formats that
959 client devices can handle.")
960 (home-page "https://wiki.gnome.org/Projects/Rygel")
961 (license (list
962 ;; For logo (data/icons/*).
963 license:cc-by-sa3.0
964 ;; For all others.
965 license:lgpl2.1+))))
966
967 (define-public libnma
968 (package
969 (name "libnma")
970 (version "1.8.28")
971 (source (origin
972 (method url-fetch)
973 (uri (string-append "mirror://gnome/sources/" name "/"
974 (version-major+minor version) "/"
975 name "-" version ".tar.xz"))
976 (sha256
977 (base32
978 "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja"))))
979 (build-system meson-build-system)
980 (arguments
981 `(#:phases
982 (modify-phases %standard-phases
983 (add-after 'unpack 'patch-docbook-xml
984 (lambda* (#:key inputs #:allow-other-keys)
985 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
986 "/xml/dtd/docbook")))
987 (substitute* "libnma-docs.xml"
988 (("http://.*/docbookx\\.dtd")
989 (string-append xmldoc "/docbookx.dtd")))
990 #t))))))
991 (native-inputs
992 `(("docbook-xml" ,docbook-xml-4.3)
993 ("gettext" ,gettext-minimal)
994 ("glib:bin" ,glib "bin")
995 ("gtk-doc" ,gtk-doc)
996 ("gobject-introspection" ,gobject-introspection)
997 ("pkg-config" ,pkg-config)
998 ("vala" ,vala)))
999 (inputs
1000 `(("gcr" ,gcr)
1001 ("gtk+" ,gtk+)
1002 ("iso-codes" ,iso-codes)
1003 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
1004 ("network-manager" ,network-manager)))
1005 (synopsis "Network Manager's applet library")
1006 (description "Libnma is an applet library for Network Manager. It was
1007 initially part of network-manager-applet and has now become a separate
1008 project.")
1009 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1010 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1011 ;; "LGPL-2.1+".
1012 (license license:gpl2+)))
1013
1014 (define-public gnome-menus
1015 (package
1016 (name "gnome-menus")
1017 (version "3.32.0")
1018 (source (origin
1019 (method url-fetch)
1020 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1021 (version-major+minor version) "/"
1022 name "-" version ".tar.xz"))
1023 (sha256
1024 (base32
1025 "0x2blzqrapmbsbfzxjcdcpa3vkw9hq5k96h9kvjmy9kl415wcl68"))))
1026 (build-system gnu-build-system)
1027 (native-inputs
1028 `(("gettext" ,gettext-minimal)
1029 ("glib" ,glib)
1030 ("pkg-config" ,pkg-config)))
1031 (synopsis "Menu support for GNOME desktop")
1032 (description "GNOME Menus contains the libgnome-menu library, the layout
1033 configuration files for the GNOME menu, as well as a simple menu editor.")
1034 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1035 (license license:lgpl2.0+)))
1036
1037 (define-public deja-dup
1038 (package
1039 (name "deja-dup")
1040 (version "40.6")
1041 (source (origin
1042 (method url-fetch)
1043 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1044 version "/deja-dup-" version ".tar.bz2"))
1045 (sha256
1046 (base32
1047 "0lwazh6crby5wpy9fg6zvwy4plqbhs2f98bm5lbizjdlbh88n5q0"))))
1048 (build-system meson-build-system)
1049 (arguments
1050 `(#:glib-or-gtk? #t
1051 #:configure-flags
1052 (list
1053 ;; Otherwise, the RUNPATH will lack the final path component.
1054 (string-append "-Dc_link_args=-Wl,-rpath="
1055 (assoc-ref %outputs "out") "/lib/deja-dup"))
1056 #:phases
1057 (modify-phases %standard-phases
1058 (add-after 'unpack 'patch-paths
1059 (lambda* (#:key inputs #:allow-other-keys)
1060 (let ((python (assoc-ref inputs "python")))
1061 (substitute* '("libdeja/tools/duplicity/DuplicityInstance.vala"
1062 "libdeja/tests/scripts/instance-error.test")
1063 (("/bin/rm")
1064 (which "rm")))
1065 (substitute* "libdeja/tests/runner.vala"
1066 (("/bin/sh")
1067 (which "sh")))
1068 (substitute* "libdeja/tests/scripts/instance-error.test"
1069 (("`which python3`")
1070 (string-append python "/bin/python3"))))))
1071 (add-after 'unpack 'patch-libgpg-error
1072 (lambda* (#:key inputs #:allow-other-keys)
1073 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1074 (substitute* "meson.build"
1075 (("(gpgerror_libs = ).*" _ var)
1076 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))
1077 #t))
1078 (add-after 'unpack 'skip-gtk-update-icon-cache
1079 ;; Don't create 'icon-theme.cache'.
1080 (lambda _
1081 (substitute* "data/post-install.sh"
1082 (("gtk-update-icon-cache") "true"))
1083 #t)))))
1084 (inputs
1085 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1086 ("duplicity" ,duplicity)
1087 ("python" ,python)
1088 ("python-pygobject" ,python-pygobject)
1089 ("gtk+" ,gtk+)
1090 ("json-glib" ,json-glib)
1091 ("libnotify" ,libnotify)
1092 ("libgpg-error" ,libgpg-error)
1093 ("libsecret" ,libsecret)
1094 ("libsoup" ,libsoup)
1095 ("packagekit" ,packagekit)))
1096 (native-inputs
1097 `(("appstream-glib" ,appstream-glib)
1098 ("desktop-file-utils" ,desktop-file-utils)
1099 ("gettext" ,gettext-minimal)
1100 ("glib" ,glib "bin") ; for glib-compile-schemas.
1101 ("gobject-introspection" ,gobject-introspection)
1102 ("itstool" ,itstool)
1103 ("pkg-config" ,pkg-config)
1104 ("vala" ,vala)))
1105 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1106 (synopsis "Simple backup tool, for regular encrypted backups")
1107 (description
1108 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1109 uses duplicity as the backend, which supports incremental backups and storage
1110 either on a local, or remote machine via a number of methods.")
1111 (license license:gpl3+)))
1112
1113 (define-public gnome-user-docs
1114 (package
1115 (name "gnome-user-docs")
1116 (version "3.32.3")
1117 (source
1118 (origin
1119 (method url-fetch)
1120 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1121 (version-major+minor version)
1122 "/gnome-user-docs-" version ".tar.xz"))
1123 (sha256
1124 (base32 "0dvsl0ldg8rf7yq0r4dv1pn41s7gjgcqp7agkbflkbmhrl6vbhig"))))
1125 (build-system gnu-build-system)
1126 (native-inputs
1127 `(("gettext" ,gettext-minimal)
1128 ("itstool" ,itstool)
1129 ("pkg-config" ,pkg-config)
1130 ("xmllint" ,libxml2)))
1131 (synopsis "User documentation for the GNOME desktop")
1132 (description
1133 "The GNOME User Documentation explains how to use the GNOME desktop and its
1134 components. It covers usage and setup of the core GNOME programs by end-users
1135 and system administrators.")
1136 (home-page "https://live.gnome.org/DocumentationProject")
1137 (license license:cc-by3.0)))
1138
1139 (define-public gnome-getting-started-docs
1140 (package
1141 (name "gnome-getting-started-docs")
1142 (version "3.32.2")
1143 (source
1144 (origin
1145 (method url-fetch)
1146 (uri (string-append "mirror://gnome/sources/gnome-getting-started-docs/"
1147 (version-major+minor version)
1148 "/gnome-getting-started-docs-" version ".tar.xz"))
1149 (sha256
1150 (base32 "1v4k465mlzrhgcdddzs6bmm0yliyrfx6jg3gh0s17a08i0w5rbwq"))))
1151 (build-system gnu-build-system)
1152 (native-inputs
1153 `(("gettext" ,gettext-minimal)
1154 ("itstool" ,itstool)
1155 ("pkg-config" ,pkg-config)
1156 ("xmllint" ,libxml2)))
1157 (synopsis "Help to get new users started with the GNOME desktop")
1158 (description
1159 "The GNOME Getting Started Documentation contains GNOME's intuitive
1160 \"Getting Started\" tour, with video guides, that can be viewed with Yelp.
1161
1162 It is normally used together with @command{gnome-initial-setup}, but is also
1163 useful as a tutorial and users' guide for new or less experienced users.")
1164 (home-page "https://live.gnome.org/DocumentationProject")
1165 (license license:cc-by-sa3.0)))
1166
1167 (define-public dia
1168 ;; This version from GNOME's repository includes fixes for compiling with
1169 ;; recent versions of the build tools. The latest activity on the
1170 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1171 ;; fixes since.
1172 (let ((commit "3cf7ec4c2e5bca139a7f3e17f9fc9009c237fcc5")
1173 (revision "2"))
1174 (package
1175 (name "dia")
1176 (version (git-version "0.97.3" revision commit))
1177 (source (origin
1178 (method git-fetch)
1179 (uri (git-reference
1180 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1181 (commit commit)))
1182 (file-name (git-file-name name version))
1183 (sha256
1184 (base32
1185 "04r8dspa6nmicrifhi3sh46hqvyy88hzq37xx99q3q1mwsrpmwy8"))))
1186 (build-system meson-build-system)
1187 (inputs
1188 `(("graphene" ,graphene)
1189 ("gtk+" ,gtk+-2)
1190 ("libxml2" ,libxml2)
1191 ("libxslt" ,libxslt)
1192 ("poppler" ,poppler)
1193 ;; Without Python 2, build fails: plug-ins/python/meson.build:4:0:
1194 ;; ERROR: Unknown method "dependency" in object.
1195 ("python-2" ,python-2)))
1196 (native-inputs
1197 `(("appstream-glib" ,appstream-glib)
1198 ("docbook-xsl" ,docbook-xsl)
1199 ("glib" ,glib "bin")
1200 ("intltool" ,intltool)
1201 ("pkg-config" ,pkg-config)))
1202 (home-page "https://wiki.gnome.org/Apps/Dia")
1203 (synopsis "Diagram creation for GNOME")
1204 (description "Dia can be used to draw different types of diagrams, and
1205 includes support for UML static structure diagrams (class diagrams), entity
1206 relationship modeling, and network diagrams. The program supports various file
1207 formats like PNG, SVG, PDF and EPS.")
1208 (license license:gpl2+))))
1209
1210 ;; This is the unstable release, but it is required for the current stable
1211 ;; release of gvfs (1.38.1).
1212 (define-public libgdata
1213 (package
1214 (name "libgdata")
1215 (version "0.17.9")
1216 (source (origin
1217 (method url-fetch)
1218 (uri (string-append "mirror://gnome/sources/" name "/"
1219 (version-major+minor version) "/"
1220 name "-" version ".tar.xz"))
1221 (sha256
1222 (base32
1223 "0fj54yqxdapdppisqm1xcyrpgcichdmipq0a0spzz6009ikzgi45"))))
1224 (build-system gnu-build-system)
1225 (arguments
1226 '(#:phases
1227 (modify-phases %standard-phases
1228 (add-before 'check 'disable-failing-tests
1229 (lambda _
1230 ;; The PicasaWeb API tests fail with gnome-online-accounts@3.24.2.
1231 ;; They have been removed in libgdata 0.17.6, so just do the same.
1232 (substitute* "gdata/tests/Makefile"
1233 (("picasaweb\\$\\(EXEEXT\\) ") ""))
1234 #t)))))
1235 (native-inputs
1236 `(("glib:bin" ,glib "bin")
1237 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1238 ("intltool" ,intltool)
1239 ("pkg-config" ,pkg-config)
1240 ("uhttpmock" ,uhttpmock)))
1241 (inputs
1242 `(("cyrus-sasl" ,cyrus-sasl)
1243 ("glib-networking" ,glib-networking)))
1244 (propagated-inputs
1245 `(("gcr" ,gcr)
1246 ("glib" ,glib)
1247 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1248 ("json-glib" ,json-glib)
1249 ("liboauth" ,liboauth)
1250 ("libsoup" ,libsoup)
1251 ("libxml2" ,libxml2)))
1252 (home-page "https://wiki.gnome.org/Projects/libgdata")
1253 (synopsis "Library for accessing online service APIs")
1254 (description
1255 "libgdata is a GLib-based library for accessing online service APIs using
1256 the GData protocol — most notably, Google's services. It provides APIs to
1257 access the common Google services, and has full asynchronous support.")
1258 (license license:lgpl2.1+)))
1259
1260 (define-public libgxps
1261 (package
1262 (name "libgxps")
1263 (version "0.3.1")
1264 (source (origin
1265 (method url-fetch)
1266 (uri (string-append "mirror://gnome/sources/" name "/"
1267 (version-major+minor version) "/"
1268 name "-" version ".tar.xz"))
1269 (sha256
1270 (base32
1271 "157s4c9gjjss6yd7qp7n4q6s72gz1k4ilsx4xjvp357azk49z4qs"))))
1272 (build-system meson-build-system)
1273 (native-inputs
1274 `(("gobject-introspection" ,gobject-introspection)
1275 ("pkg-config" ,pkg-config)))
1276 (inputs
1277 `(("gtk+" ,gtk+)
1278 ("libjpeg" ,libjpeg-turbo)
1279 ("lcms" ,lcms)
1280 ("libtiff" ,libtiff)))
1281 (propagated-inputs
1282 ;; In Requires of libgxps.pc.
1283 `(("cairo" ,cairo)
1284 ("glib" ,glib)
1285 ("libarchive" ,libarchive)))
1286 (home-page "https://wiki.gnome.org/Projects/libgxps")
1287 (synopsis "GObject-based library for handling and rendering XPS documents")
1288 (description
1289 "libgxps is a GObject-based library for handling and rendering XPS
1290 documents. This package also contains binaries that can convert XPS documents
1291 to other formats.")
1292 (license license:lgpl2.1+)))
1293
1294 (define-public gnome-characters
1295 (package
1296 (name "gnome-characters")
1297 (version "3.30.0")
1298 (source
1299 (origin
1300 (method url-fetch)
1301 (uri (string-append "mirror://gnome/sources/"
1302 "gnome-characters/" (version-major+minor version)
1303 "/gnome-characters-" version ".tar.xz"))
1304 (sha256
1305 (base32
1306 "08cwz39iwgsyyb2wqhb8vfbmh1cwfkgfiy7adp08w7rwqi99x3dp"))))
1307 (build-system meson-build-system)
1308 (arguments
1309 `(#:glib-or-gtk? #t
1310 #:phases (modify-phases %standard-phases
1311 (add-after 'install 'wrap
1312 (lambda* (#:key outputs #:allow-other-keys)
1313 ;; GNOME Characters needs Typelib files from GTK and
1314 ;; gnome-desktop.
1315 (wrap-program (string-append (assoc-ref outputs "out")
1316 "/bin/gnome-characters")
1317 `("GI_TYPELIB_PATH" ":" prefix
1318 (,(getenv "GI_TYPELIB_PATH"))))
1319 #t)))))
1320 (native-inputs
1321 `(("gettext" ,gettext-minimal)
1322 ("glib:bin" ,glib "bin")
1323 ("gtk+:bin" ,gtk+ "bin")
1324 ("pkg-config" ,pkg-config)
1325 ("python" ,python-minimal)))
1326 (inputs
1327 `(("gjs" ,gjs)
1328 ("gtk+" ,gtk+)
1329 ("libunistring" ,libunistring)
1330 ("gnome-desktop" ,gnome-desktop)))
1331 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
1332 (synopsis "Find and insert unusual characters")
1333 (description "Characters is a simple utility application to find
1334 and insert unusual characters. It allows you to quickly find the
1335 character you are looking for by searching for keywords.")
1336 (license license:bsd-3)))
1337
1338 (define-public gnome-common
1339 (package
1340 (name "gnome-common")
1341 (version "3.18.0")
1342 (source
1343 (origin
1344 (method url-fetch)
1345 (uri (string-append "mirror://gnome/sources/" name "/"
1346 (version-major+minor version) "/"
1347 name "-" version ".tar.xz"))
1348 (sha256
1349 (base32
1350 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
1351 (build-system gnu-build-system)
1352 (home-page "https://www.gnome.org/")
1353 (synopsis "Bootstrap GNOME modules built from Git")
1354 (description "gnome-common contains various files needed to bootstrap
1355 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
1356 can be used to configure a source directory checked out from Git and some
1357 commonly used macros.")
1358 (license license:gpl2+)))
1359
1360 (define-public gnome-contacts
1361 (package
1362 (name "gnome-contacts")
1363 (version "3.34")
1364 (source (origin
1365 (method url-fetch)
1366 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
1367 (version-major+minor version) "/"
1368 name "-" version ".tar.xz"))
1369 (sha256
1370 (base32
1371 "04igc9xvyc4kb5xf5g2missnvyvj9zv5cqxf5k4z7hb0sv42wq4r"))))
1372 (build-system meson-build-system)
1373 (arguments
1374 `(#:configure-flags '("-Dcheese=false")
1375 #:phases
1376 (modify-phases %standard-phases
1377 (add-after 'unpack 'generate-vapis
1378 (lambda* (#:key inputs #:allow-other-keys)
1379 ;; To generate goa's missing .vapi file
1380 (define goa
1381 (assoc-ref inputs "gnome-online-accounts:lib"))
1382
1383 (invoke "vapigen" "--directory=vapi" "--pkg=gio-2.0"
1384 "--library=goa-1.0"
1385 (string-append goa "/share/gir-1.0/Goa-1.0.gir"))
1386 #t))
1387 (add-after 'unpack 'skip-gtk-update-icon-cache
1388 ;; Don't create 'icon-theme.cache'.
1389 (lambda _
1390 (substitute* "build-aux/meson_post_install.py"
1391 (("gtk-update-icon-cache") "true"))
1392 #t)))))
1393 (native-inputs
1394 `(("glib:bin" ,glib "bin")
1395 ("pkg-config" ,pkg-config)))
1396 (inputs
1397 `(("docbook-xml" ,docbook-xml)
1398 ("dockbook-xsl" ,docbook-xsl)
1399 ("evolution-data-server" ,evolution-data-server)
1400 ("gettext" ,gettext-minimal)
1401 ("gnome-desktop" ,gnome-desktop)
1402 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
1403 ("gobject-introspection" ,gobject-introspection)
1404 ("gst-plugins-base" ,gst-plugins-base)
1405 ("gtk+" ,gtk+)
1406 ("libgee" ,libgee)
1407 ("libxslt" ,libxslt)
1408 ("telepathy-glib" ,telepathy-glib)
1409 ("vala" ,vala)))
1410 (propagated-inputs
1411 `(("folks", folks)
1412 ("telepathy-mission-control" ,telepathy-mission-control)))
1413 (synopsis "GNOME's integrated address book")
1414 (description
1415 "GNOME Contacts organizes your contact information from online and
1416 offline sources, providing a centralized place for managing your contacts.")
1417 (home-page "https://wiki.gnome.org/Apps/Contacts")
1418 (license license:gpl2+)))
1419
1420 (define-public gnome-desktop
1421 (package
1422 (name "gnome-desktop")
1423 (version "3.34.2")
1424 (source
1425 (origin
1426 (method url-fetch)
1427 (uri (string-append "mirror://gnome/sources/" name "/"
1428 (version-major+minor version) "/"
1429 name "-" version ".tar.xz"))
1430 (sha256
1431 (base32
1432 "1v983xirwp1y6ggz97bh742ak6gff0hxb359dgn37nikjxhvm0a0"))))
1433 (build-system meson-build-system)
1434 (arguments
1435 '(#:phases
1436 (modify-phases %standard-phases
1437 (add-before 'configure 'patch-path
1438 (lambda* (#:key inputs #:allow-other-keys)
1439 (let ((libc (assoc-ref inputs "libc")))
1440 (substitute* "libgnome-desktop/gnome-languages.c"
1441 (("\"locale\"")
1442 (string-append "\"" libc "/bin/locale\"")))
1443 #t)))
1444 (add-before 'configure 'patch-bubblewrap
1445 (lambda* (#:key inputs #:allow-other-keys)
1446 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
1447 (("\"bwrap\",")
1448 (string-append "\"" (which "bwrap") "\","))
1449 (("\"--ro-bind\", \"/usr\", \"/usr\",")
1450 (string-append "\"--ro-bind\", \""
1451 (%store-directory)
1452 "\", \""
1453 (%store-directory)
1454 "\","))
1455 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",") ""))
1456 #t))
1457 (add-before 'check 'pre-check
1458 (lambda* (#:key inputs #:allow-other-keys)
1459 ;; Tests require a running X server and locales.
1460 (system "Xvfb :1 &")
1461 (setenv "DISPLAY" ":1")
1462 (setenv "GUIX_LOCPATH"
1463 (string-append (assoc-ref inputs "glibc-locales")
1464 "/lib/locale"))
1465 #t)))))
1466 (native-inputs
1467 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
1468 ("glibc-locales" ,glibc-locales) ; for tests
1469 ("gobject-introspection" ,gobject-introspection)
1470 ("itstool" ,itstool)
1471 ("intltool" ,intltool)
1472 ("pkg-config" ,pkg-config)
1473 ("xmllint" ,libxml2)
1474 ("xorg-server" ,xorg-server-for-tests)))
1475 (propagated-inputs
1476 ;; Required by gnome-desktop-3.0.pc.
1477 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1478 ("gtk+" ,gtk+)
1479 ("iso-codes" ,iso-codes)
1480 ("libseccomp" ,libseccomp)
1481 ("libx11" ,libx11)
1482 ("xkeyboard-config" ,xkeyboard-config)))
1483 (inputs
1484 `(("gdk-pixbuf" ,gdk-pixbuf)
1485 ("glib" ,glib)
1486 ("bubblewrap" ,bubblewrap)
1487 ("libxext" ,libxext)
1488 ("libxkbfile" ,libxkbfile)
1489 ("libxrandr" ,libxrandr)))
1490 (home-page "https://www.gnome.org/")
1491 (synopsis
1492 "Libgnome-desktop, gnome-about, and desktop-wide documents")
1493 (description
1494 "The libgnome-desktop library provides API shared by several applications
1495 on the desktop, but that cannot live in the platform for various reasons.
1496 There is no API or ABI guarantee, although we are doing our best to provide
1497 stability. Documentation for the API is available with gtk-doc.
1498
1499 The gnome-about program helps find which version of GNOME is installed.")
1500 ; Some bits under the LGPL.
1501 (license license:gpl2+)))
1502
1503 (define-public gnome-doc-utils
1504 (package
1505 (name "gnome-doc-utils")
1506 (version "0.20.10")
1507 (source
1508 (origin
1509 (method url-fetch)
1510 (uri (string-append "mirror://gnome/sources/" name "/"
1511 (version-major+minor version) "/"
1512 name "-" version ".tar.xz"))
1513 (sha256
1514 (base32
1515 "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
1516 (build-system gnu-build-system)
1517 (native-inputs
1518 `(("intltool" ,intltool)
1519 ("docbook-xml" ,docbook-xml-4.4)
1520 ("python2-libxml2" ,python2-libxml2)
1521 ("libxml2" ,libxml2)
1522 ("libxslt" ,libxslt)
1523 ("pkg-config" ,pkg-config)
1524 ("python-2" ,python-2)))
1525 (home-page "https://wiki.gnome.org/GnomeDocUtils")
1526 (synopsis
1527 "Documentation utilities for the Gnome project")
1528 (description
1529 "Gnome-doc-utils is a collection of documentation utilities for the
1530 Gnome project. It includes xml2po tool which makes it easier to translate
1531 and keep up to date translations of documentation.")
1532 (license license:gpl2+))) ; xslt under lgpl
1533
1534 (define-public gnome-disk-utility
1535 (package
1536 (name "gnome-disk-utility")
1537 (version "3.34.0")
1538 (source (origin
1539 (method url-fetch)
1540 (uri (string-append "mirror://gnome/sources/" name "/"
1541 (version-major+minor version) "/"
1542 name "-" version ".tar.xz"))
1543 (sha256
1544 (base32
1545 "1mb7q90lnlp97dhxhnadhjagcfd12dfqzp0vj9h6b1r61pzhy97y"))))
1546 (build-system meson-build-system)
1547 (arguments
1548 '(#:configure-flags '("-Dlogind=libelogind")
1549 #:phases
1550 (modify-phases %standard-phases
1551 (add-after 'unpack 'skip-gtk-update-icon-cache
1552 ;; Don't create 'icon-theme.cache'.
1553 (lambda _
1554 (substitute* "meson_post_install.py"
1555 (("gtk-update-icon-cache") "true"))
1556 #t)))))
1557 (native-inputs
1558 `(("glib:bin" ,glib "bin")
1559 ("intltool" ,intltool)
1560 ("pkg-config" ,pkg-config)
1561 ("docbook-xml" ,docbook-xml)
1562 ("docbook-xsl" ,docbook-xsl)
1563 ("libxml2" ,libxml2)
1564 ("libxslt" ,libxslt)))
1565 (inputs
1566 `(("elogind" ,elogind)
1567 ("glib" ,glib)
1568 ("appstream-glib" ,appstream-glib)
1569 ("gnome-settings-daemon" ,gnome-settings-daemon)
1570 ("gtk+" ,gtk+)
1571 ("libcanberra" ,libcanberra)
1572 ("libdvdread" ,libdvdread)
1573 ("libnotify" ,libnotify)
1574 ("libpwquality" ,libpwquality)
1575 ("libsecret" ,libsecret)
1576 ("udisks" ,udisks)))
1577 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
1578 (synopsis "Disk management utility for GNOME")
1579 (description "Disk management utility for GNOME.")
1580 (license license:gpl2+)))
1581
1582 (define-public gnome-font-viewer
1583 (package
1584 (name "gnome-font-viewer")
1585 (version "3.30.0")
1586 (source (origin
1587 (method url-fetch)
1588 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
1589 (version-major+minor version)
1590 "/gnome-font-viewer-" version ".tar.xz"))
1591 (sha256
1592 (base32
1593 "1wwnx2zrlbd2d6np7m9s78alx6j6ranrnh1g2z6zrv9qcj8rpzz5"))))
1594 (build-system meson-build-system)
1595 (arguments
1596 '(#:phases
1597 (modify-phases %standard-phases
1598 (add-after 'unpack 'patch-post-install-script
1599 (lambda _
1600 (substitute* "meson-postinstall.sh"
1601 (("update-desktop-database") (which "true")))
1602 #t)))))
1603 (native-inputs
1604 `(("gettext" ,gettext-minimal)
1605 ("glib:bin" ,glib "bin")
1606 ("pkg-config" ,pkg-config)))
1607 (inputs
1608 `(("glib" ,glib)
1609 ("gnome-desktop" ,gnome-desktop)
1610 ("gtk+" ,gtk+)))
1611 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
1612 (synopsis "GNOME Fonts")
1613 (description "Application to show you the fonts installed on your computer
1614 for your use as thumbnails. Selecting any thumbnails shows the full view of how
1615 the font would look under various sizes.")
1616 (license license:gpl2+)))
1617
1618 (define-public gcr
1619 (package
1620 (name "gcr")
1621 (version "3.34.0")
1622 (source (origin
1623 (method url-fetch)
1624 (uri (string-append "mirror://gnome/sources/" name "/"
1625 (version-major+minor version) "/"
1626 name "-" version ".tar.xz"))
1627 (sha256
1628 (base32
1629 "0925snsixzkwh49xiayqmj6fcrmklqk8kyy0jkv7m64h9abm1pr9"))))
1630 (build-system gnu-build-system)
1631 (arguments
1632 '(#:phases
1633 (modify-phases %standard-phases
1634 ;; These fail because /var/lib/dbus/machine-id is not present in the
1635 ;; build environment.
1636 (add-after 'unpack 'disable-failing-tests
1637 (lambda _
1638 (substitute* "Makefile.in"
1639 (("[[:blank:]]+test-system-prompt\\$\\(EXEEXT\\)")
1640 ""))
1641 #t))
1642 (add-before 'check 'pre-check
1643 (lambda _
1644 ;; Some tests expect to write to $HOME.
1645 (setenv "HOME" "/tmp")
1646 #t)))))
1647 (inputs
1648 `(("dbus" ,dbus)
1649 ("gnupg" ,gnupg) ;called as a child process during tests
1650 ("libgcrypt" ,libgcrypt)))
1651 (native-inputs
1652 `(("python" ,python-wrapper) ;for tests
1653 ("pkg-config" ,pkg-config)
1654 ("gettext" ,gettext-minimal)
1655 ("glib" ,glib "bin")
1656 ("gobject-introspection" ,gobject-introspection)
1657 ("libxml2" ,libxml2)
1658 ("vala" ,vala)
1659 ("xsltproc" ,libxslt)))
1660 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
1661 (propagated-inputs
1662 `(("p11-kit" ,p11-kit)
1663 ("glib" ,glib)
1664 ("gtk+" ,gtk+)))
1665 (home-page "https://www.gnome.org")
1666 (synopsis "Libraries for displaying certificates and accessing key stores")
1667 (description
1668 "The GCR package contains libraries used for displaying certificates and
1669 accessing key stores. It also provides the viewer for crypto files on the
1670 GNOME Desktop.")
1671 (license license:lgpl2.1+)))
1672
1673 (define-public gdl
1674 (package
1675 (name "gdl")
1676 (version "3.34.0")
1677 (source (origin
1678 (method git-fetch)
1679 (uri (git-reference
1680 (url "https://gitlab.gnome.org/GNOME/gdl.git")
1681 (commit (string-append "GDL_" (string-map (match-lambda
1682 (#\. #\_)
1683 (c c))
1684 version)))))
1685 (file-name (git-file-name name version))
1686 (sha256
1687 (base32
1688 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
1689 (build-system gnu-build-system)
1690 (native-inputs
1691 `(("autoconf" ,autoconf)
1692 ("automake" ,automake)
1693 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
1694 ("gnome-common" ,gnome-common)
1695 ("gtk-doc" ,gtk-doc)
1696 ("intltool" ,intltool)
1697 ("pkg-config" ,pkg-config)
1698 ("libtool" ,libtool)
1699 ("which" ,which)))
1700 (inputs
1701 `(("libxml2" ,libxml2)))
1702 (propagated-inputs
1703 ;; The gdl-3.0.pc file 'Requires' GTK+.
1704 `(("gtk+" ,gtk+)))
1705 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
1706 (synopsis "GNOME docking library")
1707 (description "This library provides docking features for gtk+.")
1708 (license license:lgpl2.1+)))
1709
1710 ;;; A minimal variant used to break a cycle with Inkscape.
1711 (define-public gdl-minimal
1712 (package
1713 (inherit gdl)
1714 (name "gdl-minimal")
1715 (arguments
1716 '(#:phases
1717 (modify-phases %standard-phases
1718 (add-after 'unpack 'disable-doc-generation
1719 ;; XXX: There is no easy way to disable generating the
1720 ;; documentation.
1721 (lambda _
1722 (substitute* "configure.in"
1723 (("GTK_DOC_CHECK.*") "")
1724 (("docs/.*") ""))
1725 (substitute* "Makefile.am"
1726 (("gdl docs po") "gdl po"))
1727 #t)))))
1728 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
1729
1730 (define-public libgnome-keyring
1731 (package
1732 (name "libgnome-keyring")
1733 (version "3.12.0")
1734 (source (origin
1735 (method url-fetch)
1736 (uri (string-append "mirror://gnome/sources/" name "/"
1737 (version-major+minor version) "/"
1738 name "-" version ".tar.xz"))
1739 (sha256
1740 (base32
1741 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
1742 (build-system gnu-build-system)
1743 (inputs
1744 `(("libgcrypt" ,libgcrypt)
1745 ("dbus" ,dbus)))
1746 (native-inputs
1747 `(("pkg-config" ,pkg-config)
1748 ("glib" ,glib "bin")
1749 ("intltool" ,intltool)))
1750 (propagated-inputs
1751 ;; Referred to in .h files and .pc.
1752 `(("glib" ,glib)))
1753 (home-page "https://www.gnome.org")
1754 (synopsis "Accessing passwords from the GNOME keyring")
1755 (description
1756 "Client library to access passwords from the GNOME keyring.")
1757
1758 ;; Though a couple of files are LGPLv2.1+.
1759 (license license:lgpl2.0+)))
1760
1761 (define-public gnome-keyring
1762 (package
1763 (name "gnome-keyring")
1764 (version "3.34.0")
1765 (source (origin
1766 (method url-fetch)
1767 (uri (string-append "mirror://gnome/sources/" name "/"
1768 (version-major+minor version) "/"
1769 name "-" version ".tar.xz"))
1770 (sha256
1771 (base32
1772 "0hqrsh5g9q9lm190f0m85q4nki8k4ng7wphl6qbccdry59aakkg9"))))
1773 (build-system gnu-build-system)
1774 (arguments
1775 `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does
1776 ;not exist
1777 #:configure-flags
1778 (list
1779 (string-append "--with-pkcs11-config="
1780 (assoc-ref %outputs "out") "/share/p11-kit/modules/")
1781 (string-append "--with-pkcs11-modules="
1782 (assoc-ref %outputs "out") "/share/p11-kit/modules/"))
1783 #:phases
1784 (modify-phases %standard-phases
1785 (add-after 'unpack 'fix-/bin/sh-reference
1786 (lambda _
1787 (substitute* "po/Makefile.in.in"
1788 (("/bin/sh") (which "sh")))
1789 #t))
1790 (add-after 'unpack 'fix-docbook
1791 (lambda* (#:key inputs #:allow-other-keys)
1792 (substitute* "docs/Makefile.am"
1793 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
1794 (string-append (assoc-ref inputs "docbook-xsl")
1795 "/xml/xsl/docbook-xsl-"
1796 ,(package-version docbook-xsl)
1797 "/manpages/docbook.xsl")))
1798 (setenv "XML_CATALOG_FILES"
1799 (string-append (assoc-ref inputs "docbook-xml")
1800 "/xml/dtd/docbook/catalog.xml"))
1801 ;; Rerun the whole thing to avoid version mismatch ("This is
1802 ;; Automake 1.15.1, but the definition used by this
1803 ;; AM_INIT_AUTOMAKE comes from Automake 1.15."). Note: we don't
1804 ;; use 'autoreconf' because it insists on running 'libtoolize'.
1805 (invoke "autoconf")
1806 (invoke "aclocal")
1807 (invoke "automake" "-ac"))))))
1808 (inputs
1809 `(("libgcrypt" ,libgcrypt)
1810 ("linux-pam" ,linux-pam)
1811 ("openssh" ,openssh)
1812 ("dbus" ,dbus)
1813 ("gcr" ,gcr)))
1814 (native-inputs
1815 `(("pkg-config" ,pkg-config)
1816 ("glib" ,glib "bin")
1817 ("glib" ,glib) ; for m4 macros
1818 ("python" ,python-2) ;for tests
1819 ("intltool" ,intltool)
1820 ("autoconf" ,autoconf)
1821 ("automake" ,automake)
1822 ("libxslt" ,libxslt) ;for documentation
1823 ("docbook-xml" ,docbook-xml-4.2)
1824 ("docbook-xsl" ,docbook-xsl)))
1825 (home-page "https://www.gnome.org")
1826 (synopsis "Daemon to store passwords and encryption keys")
1827 (description
1828 "gnome-keyring is a program that keeps passwords and other secrets for
1829 users. It is run as a daemon in the session, similar to ssh-agent, and other
1830 applications locate it via an environment variable or D-Bus.
1831
1832 The program can manage several keyrings, each with its own master password,
1833 and there is also a session keyring which is never stored to disk, but
1834 forgotten when the session ends.")
1835 (license license:lgpl2.1+)))
1836
1837 (define-public evince
1838 (package
1839 (name "evince")
1840 (version "3.36.5")
1841 (source (origin
1842 (method url-fetch)
1843 (uri (string-append "mirror://gnome/sources/evince/"
1844 (version-major+minor version) "/"
1845 "evince-" version ".tar.xz"))
1846 (sha256
1847 (base32
1848 "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
1849 (build-system glib-or-gtk-build-system)
1850 (arguments
1851 `(#:configure-flags '("--disable-nautilus" "--enable-introspection")
1852 #:phases
1853 (modify-phases %standard-phases
1854 (add-before 'install 'skip-gtk-update-icon-cache
1855 ;; Don't create 'icon-theme.cache'.
1856 (lambda _
1857 (substitute* "data/Makefile"
1858 (("gtk-update-icon-cache") "true"))
1859 #t)))))
1860 (inputs
1861 `(("libarchive" ,libarchive)
1862 ("libgxps" ,libgxps)
1863 ("libspectre" ,libspectre)
1864 ("djvulibre" ,djvulibre)
1865 ("ghostscript" ,ghostscript)
1866 ("poppler" ,poppler)
1867 ("libtiff" ,libtiff)
1868 ;; TODO:
1869 ;; Build libkpathsea as a shared library for DVI support.
1870 ;; ("libkpathsea" ,texlive-bin)
1871 ("gnome-desktop" ,gnome-desktop)
1872 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
1873 ("gspell" ,gspell)
1874 ("libgnome-keyring" ,libgnome-keyring)
1875 ("adwaita-icon-theme" ,adwaita-icon-theme)
1876 ("gdk-pixbuf" ,gdk-pixbuf)
1877 ("atk" ,atk)
1878 ("pango" ,pango)
1879 ("gtk+" ,gtk+)
1880 ("glib" ,glib)
1881 ("libxml2" ,libxml2)
1882 ("libsm" ,libsm)
1883 ("libice" ,libice)
1884 ("shared-mime-info" ,shared-mime-info)
1885 ("dconf" ,dconf)
1886 ("libcanberra" ,libcanberra)
1887 ("libsecret" ,libsecret)
1888
1889 ;; For tests.
1890 ("dogtail" ,python2-dogtail)))
1891 (native-inputs
1892 `(("itstool" ,itstool)
1893 ("intltool" ,intltool)
1894 ("glib" ,glib "bin")
1895 ("gobject-introspection" ,gobject-introspection)
1896 ("pkg-config" ,pkg-config)
1897 ("xmllint" ,libxml2)))
1898 (home-page "https://www.gnome.org/projects/evince/")
1899 (synopsis "GNOME's document viewer")
1900 (description
1901 "Evince is a document viewer for multiple document formats. It
1902 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
1903 of Evince is to replace the multiple document viewers that exist
1904 on the GNOME Desktop with a single simple application.")
1905 (license license:gpl2+)))
1906
1907 (define-public gsettings-desktop-schemas
1908 (package
1909 (name "gsettings-desktop-schemas")
1910 (version "3.34.0")
1911 (source
1912 (origin
1913 (method url-fetch)
1914 (uri (string-append "mirror://gnome/sources/" name "/"
1915 (version-major+minor version) "/"
1916 name "-" version ".tar.xz"))
1917 (sha256
1918 (base32
1919 "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
1920 (build-system meson-build-system)
1921 (arguments
1922 '(#:phases (modify-phases %standard-phases
1923 (add-after 'unpack 'patch-schemas
1924 (lambda* (#:key inputs #:allow-other-keys)
1925 (let ((theme (assoc-ref inputs "gnome-backgrounds")))
1926 (substitute* (find-files "schemas"
1927 "\\.gschema\\.xml\\.in$")
1928 ;; Provide the correct file name of the default GNOME
1929 ;; background, 'adwaita-timed.xml'.
1930 (("@datadir@/backgrounds/gnome")
1931 (string-append theme "/share/backgrounds/gnome"))
1932 ;; Do not reference fonts, that may not exist.
1933 (("'Source Code Pro 10'") "'Monospace 11'"))
1934 #t))))))
1935 (inputs
1936 `(("glib" ,glib)
1937 ("gnome-backgrounds" ,gnome-backgrounds)))
1938 (native-inputs
1939 `(("intltool" ,intltool)
1940 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
1941 ("gobject-introspection" ,gobject-introspection)
1942 ("pkg-config" ,pkg-config)))
1943 (home-page "https://launchpad.net/gsettings-desktop-schemas")
1944 (synopsis
1945 "GNOME settings for various desktop components")
1946 (description
1947 "Gsettings-desktop-schemas contains a collection of GSettings schemas
1948 for settings shared by various components of the GNOME desktop.")
1949 (license license:lgpl2.1+)))
1950
1951 (define-public icon-naming-utils
1952 (package
1953 (name "icon-naming-utils")
1954 (version "0.8.90")
1955 (source
1956 (origin
1957 (method url-fetch)
1958 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
1959 version ".tar.bz2"))
1960 (sha256
1961 (base32
1962 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
1963 (build-system gnu-build-system)
1964 (inputs
1965 `(("perl" ,perl)
1966 ("perl-xml-simple" ,perl-xml-simple)))
1967 (arguments
1968 '(#:phases
1969 (modify-phases %standard-phases
1970 (add-after 'install 'set-load-paths
1971 ;; Tell 'icon-name-mapping' where XML::Simple is.
1972 (lambda* (#:key outputs #:allow-other-keys)
1973 (let* ((out (assoc-ref outputs "out"))
1974 (prog (string-append out "/libexec/icon-name-mapping")))
1975 (wrap-program
1976 prog
1977 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
1978 #t)))))
1979 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
1980 (synopsis
1981 "Utility to implement the Freedesktop Icon Naming Specification")
1982 (description
1983 "To help with the transition to the Freedesktop Icon Naming
1984 Specification, the icon naming utility maps the icon names used by the
1985 GNOME and KDE desktops to the icon names proposed in the specification.")
1986 (license license:lgpl2.1+)))
1987
1988 (define-public gnome-icon-theme
1989 (package
1990 (name "gnome-icon-theme")
1991 (version "3.12.0")
1992 (source
1993 (origin
1994 (method url-fetch)
1995 (uri (string-append "mirror://gnome/sources/" name "/"
1996 (version-major+minor version) "/"
1997 name "-" version ".tar.xz"))
1998 (sha256
1999 (base32
2000 "0fjh9qmmgj34zlgxb09231ld7khys562qxbpsjlaplq2j85p57im"))))
2001 (build-system gnu-build-system)
2002 (arguments
2003 '(#:configure-flags
2004 ;; Don't create 'icon-theme.cache'.
2005 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
2006 (true (string-append coreutils "/bin/true")))
2007 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
2008 (native-inputs
2009 `(("icon-naming-utils" ,icon-naming-utils)
2010 ("intltool" ,intltool)
2011 ("pkg-config" ,pkg-config)))
2012 (home-page "https://wiki.gnome.org/Personalization")
2013 (synopsis "GNOME icon theme")
2014 (description "Icons for the GNOME desktop.")
2015 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2016
2017 ;; gnome-icon-theme was renamed to adwaita-icon-theme after version 3.12.0.
2018 (define-public adwaita-icon-theme
2019 (package (inherit gnome-icon-theme)
2020 (name "adwaita-icon-theme")
2021 (version "3.34.3")
2022 (source (origin
2023 (method url-fetch)
2024 (uri (string-append "mirror://gnome/sources/" name "/"
2025 (version-major+minor version) "/"
2026 name "-" version ".tar.xz"))
2027 (sha256
2028 (base32
2029 "025rj1fskw1y448hiar4a9icyzpyr242nlh9xhsmyp8jb71dihp7"))))
2030 (native-inputs
2031 `(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
2032
2033 (define-public tango-icon-theme
2034 (package
2035 (name "tango-icon-theme")
2036 (version "0.8.90")
2037 (source (origin
2038 (method url-fetch)
2039 (uri (string-append "http://tango.freedesktop.org/releases/"
2040 "tango-icon-theme-" version ".tar.bz2"))
2041 (sha256
2042 (base32
2043 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2044 (build-system gnu-build-system)
2045 (native-inputs
2046 `(("icon-naming-utils" ,icon-naming-utils)
2047 ("intltool" ,intltool)
2048 ("imagemagick" ,imagemagick)
2049 ("pkg-config" ,pkg-config)))
2050 (home-page "http://tango-project.org/")
2051 (synopsis "Tango icon theme")
2052 (description "This is an icon theme that follows the Tango visual
2053 guidelines.")
2054 (license license:public-domain)))
2055
2056 (define-public shared-mime-info
2057 (package
2058 (name "shared-mime-info")
2059 (version "1.15")
2060 (source (origin
2061 (method url-fetch)
2062 (uri (string-append
2063 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2064 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2065 ".tar.xz"))
2066 (sha256
2067 (base32
2068 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2069 (build-system gnu-build-system)
2070 (arguments
2071 ;; The build system appears not to be parallel-safe.
2072 '(#:parallel-build? #f))
2073 (inputs
2074 `(("glib" ,glib)
2075 ("libxml2" ,libxml2)))
2076 (native-inputs
2077 `(("gettext" ,gettext-minimal)
2078 ("itstool" ,itstool)
2079 ("pkg-config" ,pkg-config)))
2080 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2081 (synopsis "Database of common MIME types")
2082 (description
2083 "The shared-mime-info package contains the core database of common types
2084 and the update-mime-database command used to extend it. It requires glib2 to
2085 be installed for building the update command. Additionally, it uses intltool
2086 for translations, though this is only a dependency for the maintainers. This
2087 database is translated at Transifex.")
2088 (license license:gpl2+)))
2089
2090 (define-public system-config-printer
2091 (package
2092 (name "system-config-printer")
2093 (version "1.5.12")
2094 (source
2095 (origin
2096 (method url-fetch)
2097 (uri (string-append
2098 "https://github.com/OpenPrinting/system-config-printer/releases/"
2099 "download/" version
2100 "/system-config-printer-" version ".tar.xz"))
2101 (sha256
2102 (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb"))))
2103 (build-system glib-or-gtk-build-system)
2104 (arguments
2105 `(#:imported-modules ((guix build python-build-system)
2106 ,@%glib-or-gtk-build-system-modules)
2107 #:phases
2108 (modify-phases %standard-phases
2109 (add-after 'unpack 'patch-Makefile.am
2110 (lambda _
2111 ;; The Makefile generates some scripts, so set a valid shebang
2112 (substitute* "Makefile.am"
2113 (("/bin/bash") (which "bash")))
2114 (delete-file "configure")
2115 #t))
2116 (add-after 'unpack 'patch-docbook-xml
2117 (lambda* (#:key inputs #:allow-other-keys)
2118 ;; Modify the man XML otherwise xmlto tries to access the network
2119 (substitute* "man/system-config-printer.xml"
2120 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2121 (string-append (assoc-ref inputs "docbook-xml")
2122 "/xml/dtd/docbook/")))
2123 #t))
2124 (add-after 'install 'wrap-for-python
2125 (@@ (guix build python-build-system) wrap))
2126 (add-after 'install 'wrap
2127 (lambda* (#:key outputs #:allow-other-keys)
2128 (let ((out (assoc-ref outputs "out"))
2129 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2130 (for-each
2131 (lambda (program)
2132 (wrap-program program
2133 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2134 (map (lambda (name)
2135 (string-append out "/bin/" name))
2136 '("system-config-printer"
2137 "system-config-printer-applet"
2138 "install-printerdriver"
2139 "scp-dbus-service"))))
2140 #t)))))
2141 (inputs
2142 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2143 ("gobject-introspection" ,gobject-introspection)
2144 ("python" ,python)
2145 ("cups" ,cups)
2146 ("gtk+" ,gtk+)
2147 ("python-dbus" ,python-dbus)
2148 ("python-pygobject" ,python-pygobject)
2149 ("python-pycups" ,python-pycups)
2150 ("python-requests" ,python-requests)
2151 ("python-pycairo" ,python-pycairo)
2152 ("libnotify" ,libnotify)
2153 ("packagekit" ,packagekit)))
2154 (native-inputs
2155 `(("pkg-config" ,pkg-config)
2156 ("desktop-file-utils" ,desktop-file-utils)
2157 ("glib" ,glib)
2158 ("autoconf" ,autoconf)
2159 ("automake" ,automake)
2160 ("intltool" ,intltool)
2161 ("xmlto" ,xmlto)
2162 ("docbook-xml" ,docbook-xml-4.1.2)
2163 ("docbook-xsl" ,docbook-xsl)
2164 ("libxml2" ,libxml2)))
2165 (home-page "https://github.com/zdohnal/system-config-printer")
2166 (synopsis "CUPS administration tool")
2167 (description
2168 "system-config-printer is a CUPS administration tool. It's written in
2169 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
2170 configuring CUPS.")
2171 (license license:gpl2+)))
2172
2173 (define-public hicolor-icon-theme
2174 (package
2175 (name "hicolor-icon-theme")
2176 (version "0.17")
2177 (source
2178 (origin
2179 (method url-fetch)
2180 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
2181 "hicolor-icon-theme-" version ".tar.xz"))
2182 (sha256
2183 (base32
2184 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
2185 (build-system gnu-build-system)
2186 (arguments
2187 `(#:tests? #f)) ; no check target
2188 (home-page "https://icon-theme.freedesktop.org/releases/")
2189 (synopsis
2190 "Freedesktop icon theme")
2191 (description
2192 "Freedesktop icon theme.")
2193 (license license:gpl2)))
2194
2195 (define-public libnotify
2196 (package
2197 (name "libnotify")
2198 (version "0.7.7")
2199 (source
2200 (origin
2201 (method url-fetch)
2202 (uri (string-append "mirror://gnome/sources/" name "/"
2203 (version-major+minor version) "/"
2204 name "-" version ".tar.xz"))
2205 (sha256
2206 (base32
2207 "017wgq9n00hx39n0hm784zn18hl721hbaijda868cm96bcqwxd4w"))))
2208 (build-system gnu-build-system)
2209 (arguments
2210 `(#:configure-flags '("--disable-static")))
2211 (propagated-inputs
2212 `(;; In Requires of libnotify.pc.
2213 ("gdk-pixbuf" ,gdk-pixbuf)
2214 ("glib" ,glib)))
2215 (inputs
2216 `(("gtk+" ,gtk+)
2217 ("libpng" ,libpng)))
2218 (native-inputs
2219 `(("pkg-config" ,pkg-config)
2220 ("glib" ,glib "bin")
2221 ("gobject-introspection" ,gobject-introspection)))
2222 (home-page "https://developer-next.gnome.org/libnotify/")
2223 (synopsis
2224 "GNOME desktop notification library")
2225 (description
2226 "Libnotify is a library that sends desktop notifications to a
2227 notification daemon, as defined in the Desktop Notifications spec. These
2228 notifications can be used to inform the user about an event or display
2229 some form of information without getting in the user's way.")
2230 (license license:lgpl2.1+)))
2231
2232 (define-public libpeas
2233 (package
2234 (name "libpeas")
2235 (version "1.24.1")
2236 (source
2237 (origin
2238 (method url-fetch)
2239 (uri (string-append "mirror://gnome/sources/" name "/"
2240 (version-major+minor version) "/"
2241 name "-" version ".tar.xz"))
2242 (sha256
2243 (base32
2244 "1162dr7smmfb02czmhshr0f93hqj7w0nw29bys5lzfvwarxcyflw"))))
2245 (build-system meson-build-system)
2246 (arguments
2247 '(#:phases
2248 (modify-phases %standard-phases
2249 (add-before 'check 'start-xserver
2250 (lambda* (#:key inputs #:allow-other-keys)
2251 (let ((xorg-server (assoc-ref inputs "xorg-server"))
2252 (disp ":1"))
2253 (setenv "DISPLAY" disp)
2254 ;; Tests require a running X server.
2255 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
2256 #t))))))
2257 (inputs
2258 `(("gtk+" ,gtk+)
2259 ("glade" ,glade3)
2260 ("python" ,python)
2261 ("python-pygobject" ,python-pygobject)))
2262 (native-inputs
2263 `(("pkg-config" ,pkg-config)
2264 ("gettext" ,gettext-minimal)
2265 ("glib:bin" ,glib "bin")
2266 ("gobject-introspection" ,gobject-introspection)
2267 ("xorg-server" ,xorg-server-for-tests)))
2268 (propagated-inputs
2269 ;; The .pc file "Requires" gobject-introspection.
2270 `(("gobject-introspection" ,gobject-introspection)))
2271 (home-page "https://wiki.gnome.org/Libpeas")
2272 (synopsis "GObject plugin system")
2273 (description
2274 "Libpeas is a gobject-based plugin engine, targeted at giving every
2275 application the chance to assume its own extensibility. It also has a set of
2276 features including, but not limited to: multiple extension points; on-demand
2277 (lazy) programming language support for C, Python and JS; simplicity of the
2278 API.")
2279 (license license:lgpl2.0+)))
2280
2281 (define-public gtkglext
2282 (package
2283 (name "gtkglext")
2284 (version "1.2.0")
2285 (source (origin
2286 (method url-fetch)
2287 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
2288 version "/gtkglext-" version ".tar.gz"))
2289 (sha256
2290 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
2291 (patches (search-patches
2292 "gtkglext-disable-disable-deprecated.patch"))))
2293 (build-system gnu-build-system)
2294 (arguments
2295 `(#:phases
2296 (modify-phases %standard-phases
2297 ;; Fix a collision between a local variable and a definition from
2298 ;; glibc's string.h.
2299 (add-after 'unpack 'fix-collision
2300 (lambda _
2301 (substitute* "gdk/gdkglshapes.c"
2302 ((" index") " triangle_index"))
2303 #t)))))
2304 (inputs `(("gtk+" ,gtk+-2)
2305 ("mesa" ,mesa)
2306 ("glu" ,glu)
2307 ("libx11" ,libx11)
2308 ("libxt" ,libxt)))
2309 (native-inputs `(("pkg-config" ,pkg-config)
2310 ("glib" ,glib "bin")))
2311 (propagated-inputs `(("pangox-compat" ,pangox-compat)))
2312 (home-page "https://projects.gnome.org/gtkglext")
2313 (synopsis "OpenGL extension to GTK+")
2314 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
2315 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
2316 API add-ons to make GTK+ widgets OpenGL-capable.")
2317 (license license:lgpl2.1+)))
2318
2319 (define-public glade3
2320 (package
2321 (name "glade")
2322 (version "3.36.0")
2323 (source (origin
2324 (method url-fetch)
2325 (uri (string-append "mirror://gnome/sources/" name "/"
2326 (version-major+minor version) "/"
2327 name "-" version ".tar.xz"))
2328 (sha256
2329 (base32
2330 "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
2331 (build-system glib-or-gtk-build-system)
2332 (arguments
2333 `(#:phases
2334 (modify-phases %standard-phases
2335 (add-before 'configure 'fix-docbook
2336 (lambda* (#:key inputs #:allow-other-keys)
2337 (substitute* "man/Makefile.in"
2338 (("http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl")
2339 (string-append (assoc-ref inputs "docbook-xsl")
2340 "/xml/xsl/docbook-xsl-"
2341 ,(package-version docbook-xsl)
2342 "/manpages/docbook.xsl")))
2343 #t))
2344 (add-before 'check 'pre-check
2345 (lambda _
2346 (setenv "HOME" "/tmp")
2347 ;; Tests require a running X server.
2348 (system "Xvfb :1 &")
2349 (setenv "DISPLAY" ":1")
2350 #t)))))
2351 (inputs
2352 `(("gtk+" ,gtk+)
2353 ("libxml2" ,libxml2)))
2354 (native-inputs
2355 `(("hicolor-icon-theme" ,hicolor-icon-theme)
2356 ("intltool" ,intltool)
2357 ("itstool" ,itstool)
2358 ("libxslt" ,libxslt) ;for xsltproc
2359 ("docbook-xml" ,docbook-xml-4.2)
2360 ("docbook-xsl" ,docbook-xsl)
2361 ("python" ,python-2)
2362 ("pkg-config" ,pkg-config)
2363 ("xorg-server" ,xorg-server-for-tests)))
2364 (home-page "https://glade.gnome.org")
2365 (synopsis "GTK+ rapid application development tool")
2366 (description "Glade is a rapid application development (RAD) tool to
2367 enable quick & easy development of user interfaces for the GTK+ toolkit and
2368 the GNOME desktop environment.")
2369 (license license:lgpl2.0+)))
2370
2371 (define-public libcroco
2372 (package
2373 (name "libcroco")
2374 (version "0.6.13")
2375 (source (origin
2376 (method url-fetch)
2377 (uri (string-append "mirror://gnome/sources/" name "/"
2378 (version-major+minor version) "/"
2379 name "-" version ".tar.xz"))
2380 (sha256
2381 (base32
2382 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
2383 (build-system gnu-build-system)
2384 (native-inputs
2385 `(("pkg-config" ,pkg-config)))
2386 (inputs
2387 `(("glib" ,glib)
2388 ("libxml2" ,libxml2)
2389 ("zlib" ,zlib)))
2390 (home-page "https://github.com/GNOME/libcroco")
2391 (synopsis "CSS2 parsing and manipulation library")
2392 (description
2393 "Libcroco is a standalone CSS2 parsing and manipulation library.
2394 The parser provides a low level event driven SAC-like API and a CSS object
2395 model like API. Libcroco provides a CSS2 selection engine and an experimental
2396 XML/CSS rendering engine.")
2397
2398 ;; LGPLv2.1-only.
2399 (license license:lgpl2.1)))
2400
2401 (define-public libgsf
2402 (package
2403 (name "libgsf")
2404 (version "1.14.47")
2405 (source (origin
2406 (method url-fetch)
2407 (uri (string-append "mirror://gnome/sources/" name "/"
2408 (version-major+minor version) "/"
2409 name "-" version ".tar.xz"))
2410 (sha256
2411 (base32
2412 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
2413 (build-system gnu-build-system)
2414 (arguments
2415 '(#:configure-flags '("--disable-static")))
2416 (native-inputs
2417 `(("pkg-config" ,pkg-config)
2418 ("gettext" ,gettext-minimal)
2419
2420 ;; For tests.
2421 ("perl" ,perl)
2422 ("perl-xml-parser" ,perl-xml-parser)))
2423 (inputs
2424 `(("zlib" ,zlib)
2425 ("bzip2" ,bzip2)))
2426 (propagated-inputs
2427 `(("gdk-pixbuf" ,gdk-pixbuf)
2428 ("glib" ,glib)
2429 ("libxml2" ,libxml2)))
2430 (home-page "https://www.gnome.org/projects/libgsf")
2431 (synopsis "GNOME's Structured File Library")
2432 (description
2433 "Libgsf aims to provide an efficient extensible I/O abstraction for
2434 dealing with different structured file formats.")
2435
2436 ;; LGPLv2.1-only.
2437 (license license:lgpl2.1)))
2438
2439 (define-public librsvg
2440 (package
2441 (name "librsvg")
2442 (version "2.40.21")
2443 (source (origin
2444 (method url-fetch)
2445 (uri (string-append "mirror://gnome/sources/" name "/"
2446 (version-major+minor version) "/"
2447 name "-" version ".tar.xz"))
2448 (sha256
2449 (base32
2450 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
2451 (build-system gnu-build-system)
2452 (arguments
2453 `(#:configure-flags
2454 (list "--disable-static"
2455 "--enable-vala") ; needed for e.g. gnome-mines
2456 #:phases
2457 (modify-phases %standard-phases
2458 (add-before 'configure 'pre-configure
2459 (lambda* (#:key inputs #:allow-other-keys)
2460 (substitute* "gdk-pixbuf-loader/Makefile.in"
2461 ;; By default the gdk-pixbuf loader is installed under
2462 ;; gdk-pixbuf's prefix. Work around that.
2463 (("gdk_pixbuf_moduledir = .*$")
2464 (string-append "gdk_pixbuf_moduledir = "
2465 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2466 "loaders\n"))
2467 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2468 (("gdk_pixbuf_cache_file = .*$")
2469 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2470 #t))
2471 (add-before 'check 'remove-failing-tests
2472 (lambda _
2473 (with-directory-excursion "tests/fixtures/reftests"
2474 (for-each delete-file
2475 '(;; This test fails on i686:
2476 "svg1.1/masking-path-04-b.svg"
2477 ;; This test fails on armhf:
2478 "svg1.1/masking-mask-01-b.svg"
2479 ;; This test fails on aarch64:
2480 "bugs/777834-empty-text-children.svg")))
2481 #t)))))
2482 (native-inputs
2483 `(("pkg-config" ,pkg-config)
2484 ("vala" ,vala)
2485 ("glib" ,glib "bin") ; glib-mkenums, etc.
2486 ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
2487 (inputs
2488 `(;; XXX: 1.44 causes some test failures, so we stick with 1.42 for
2489 ;; this ancient version of librsvg.
2490 ("pango" ,pango-1.42)
2491 ("libcroco" ,libcroco)
2492 ("bzip2" ,bzip2)
2493 ("libgsf" ,libgsf)
2494 ("libxml2" ,libxml2)))
2495 (propagated-inputs
2496 ;; librsvg-2.0.pc refers to all of that.
2497 `(("cairo" ,cairo)
2498 ("gdk-pixbuf" ,gdk-pixbuf)
2499 ("glib" ,glib)))
2500 (home-page "https://wiki.gnome.org/LibRsvg")
2501 (synopsis "Render SVG files using Cairo")
2502 (description
2503 "Librsvg is a C library to render SVG files using the Cairo 2D graphics
2504 library.")
2505 (license license:lgpl2.0+)))
2506
2507 (define-public librsvg-next
2508 (package
2509 (inherit librsvg)
2510 (name "librsvg")
2511 (version "2.48.8")
2512 (source (origin
2513 (method url-fetch)
2514 (uri (string-append "mirror://gnome/sources/librsvg/"
2515 (version-major+minor version) "/"
2516 "librsvg-" version ".tar.xz"))
2517 (sha256
2518 (base32
2519 "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l"))
2520 (modules '((guix build utils)))
2521 (snippet
2522 '(begin (delete-file-recursively "vendor")
2523 #t))))
2524 (build-system cargo-build-system)
2525 (arguments
2526 `(#:modules ((guix build cargo-build-system)
2527 (guix build utils)
2528 ((guix build gnu-build-system) #:prefix gnu:))
2529 #:vendor-dir "vendor"
2530 #:cargo-inputs
2531 (("rust-bitflags" ,rust-bitflags-1)
2532 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
2533 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
2534 ("rust-cast" ,rust-cast-0.2)
2535 ("rust-cssparser" ,rust-cssparser-0.27)
2536 ("rust-data-url" ,rust-data-url-0.1)
2537 ("rust-downcast-rs" ,rust-downcast-rs-1.1)
2538 ("rust-encoding" ,rust-encoding-0.2)
2539 ("rust-float-cmp" ,rust-float-cmp-0.6)
2540 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
2541 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
2542 ("rust-gio" ,rust-gio-0.8)
2543 ("rust-gio-sys" ,rust-gio-sys-0.9)
2544 ("rust-glib" ,rust-glib-0.9)
2545 ("rust-glib-sys" ,rust-glib-sys-0.9)
2546 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
2547 ("rust-itertools" ,rust-itertools-0.8)
2548 ("rust-language-tags" ,rust-language-tags-0.2)
2549 ("rust-libc" ,rust-libc-0.2)
2550 ("rust-locale-config" ,rust-locale-config-0.3)
2551 ("rust-markup5ever" ,rust-markup5ever-0.10)
2552 ("rust-nalgebra" ,rust-nalgebra-0.19)
2553 ("rust-num-traits" ,rust-num-traits-0.2)
2554 ("rust-once-cell" ,rust-once-cell-1.2)
2555 ("rust-pkg-config" ,rust-pkg-config-0.3)
2556 ("rust-pango" ,rust-pango-0.8)
2557 ("rust-pango-sys" ,rust-pango-sys-0.9)
2558 ("rust-pangocairo" ,rust-pangocairo-0.9)
2559 ("rust-rayon" ,rust-rayon-1)
2560 ("rust-rctree" ,rust-rctree-0.3)
2561 ("rust-rgb" ,rust-rgb-0.8)
2562 ("rust-regex" ,rust-regex-1)
2563 ("rust-selectors" ,rust-selectors-0.22)
2564 ("rust-url" ,rust-url-2.1)
2565 ("rust-xml5ever" ,rust-xml5ever-0.16))
2566 #:cargo-development-inputs
2567 (("rust-cairo-rs" ,rust-cairo-rs-0.8)
2568 ("rust-criterion" ,rust-criterion-0.3))
2569 #:phases
2570 (modify-phases %standard-phases
2571 (add-after 'unpack 'prepare-for-build
2572 (lambda _
2573 ;; In lieu of #:make-flags
2574 (setenv "CC" ,(cc-for-target))
2575 ;; Something about the build environment resists building
2576 ;; successfully with the '--locked' flag.
2577 (substitute* '("Makefile.am"
2578 "Makefile.in")
2579 (("--locked") ""))
2580 #t))
2581 (add-before 'configure 'pre-configure
2582 (lambda _
2583 (substitute* "gdk-pixbuf-loader/Makefile.in"
2584 ;; By default the gdk-pixbuf loader is installed under
2585 ;; gdk-pixbuf's prefix. Work around that.
2586 (("gdk_pixbuf_moduledir = .*$")
2587 (string-append "gdk_pixbuf_moduledir = "
2588 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
2589 "loaders\n"))
2590 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
2591 (("gdk_pixbuf_cache_file = .*$")
2592 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
2593 #t))
2594 (add-after 'configure 'gnu-configure
2595 (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
2596 ((assoc-ref gnu:%standard-phases 'configure)
2597 #:native-inputs native-inputs
2598 #:inputs inputs
2599 #:outputs outputs
2600 #:configure-flags (list "--disable-static"
2601 "--enable-vala"))))
2602 (add-after 'configure 'dont-vendor-self
2603 (lambda* (#:key vendor-dir #:allow-other-keys)
2604 ;; Don't keep the whole tarball in the vendor directory
2605 (delete-file-recursively
2606 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))
2607 #t))
2608 (replace 'build
2609 (assoc-ref gnu:%standard-phases 'build))
2610 (replace 'check
2611 (lambda* args
2612 ((assoc-ref gnu:%standard-phases 'check)
2613 #:test-target "check")))
2614 (replace 'install
2615 (assoc-ref gnu:%standard-phases 'install)))))
2616 (inputs
2617 `(("pango" ,pango)
2618 ,@(alist-delete "pango" (package-inputs librsvg))))
2619 (license license:lgpl2.1+)))
2620
2621 (define-public libidl
2622 (package
2623 (name "libidl")
2624 (version "0.8.14")
2625 (source (origin
2626 (method url-fetch)
2627 (uri (string-append "mirror://gnome/sources/libIDL/"
2628 (version-major+minor version) "/"
2629 "libIDL-" version ".tar.bz2"))
2630 (sha256
2631 (base32
2632 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
2633 (build-system gnu-build-system)
2634 (inputs `(("glib" ,glib)))
2635 (native-inputs
2636 `(("pkg-config" ,pkg-config)
2637 ("flex" ,flex)
2638 ("bison" ,bison)))
2639 (home-page "http://freecode.com/projects/libidl")
2640 (synopsis "Create trees of CORBA Interface Definition Language files")
2641 (description "Libidl is a library for creating trees of CORBA Interface
2642 Definition Language (idl) files, which is a specification for defining
2643 portable interfaces. libidl was initially written for orbit (the orb from the
2644 GNOME project, and the primary means of libidl distribution). However, the
2645 functionality was designed to be as reusable and portable as possible.")
2646 (properties `((upstream-name . "libIDL")))
2647 (license license:lgpl2.0+)))
2648
2649
2650 (define-public orbit2
2651 (package
2652 (name "orbit2")
2653 (version "2.14.19")
2654 (source (origin
2655 (method url-fetch)
2656 (uri (let ((upstream-name "ORBit2"))
2657 (string-append "mirror://gnome/sources/" upstream-name "/"
2658 (version-major+minor version) "/"
2659 upstream-name "-" version ".tar.bz2")))
2660 (sha256
2661 (base32
2662 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
2663 (build-system gnu-build-system)
2664 (arguments
2665 `(;; The "timeout-server" test hangs when run in parallel.
2666 #:parallel-tests? #f
2667 #:configure-flags
2668 '(;; We don't need static libraries, plus they don't build reproducibly
2669 ;; (non-deterministic ordering of .o files in the archive.)
2670 "--disable-static"
2671
2672 ;; The programmer kindly gives us a hook to turn off deprecation
2673 ;; warnings ...
2674 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2675 ;; ... which they then completly ignore !!
2676 #:phases
2677 (modify-phases %standard-phases
2678 (add-before 'configure 'ignore-deprecations
2679 (lambda _
2680 (substitute* "linc2/src/Makefile.in"
2681 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2682 #t)))))
2683 (inputs `(("glib" ,glib)
2684 ("libidl" ,libidl)))
2685 (native-inputs
2686 `(("pkg-config" ,pkg-config)))
2687 (home-page "https://projects.gnome.org/orbit2/")
2688 (synopsis "CORBA 2.4-compliant Object Request Broker")
2689 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
2690 featuring mature C, C++ and Python bindings.")
2691 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
2692 ;; a version. SOME of the code files have licence notices for GPLv2+.
2693 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
2694 (license license:gpl2+)
2695 (properties `((upstream-name . "ORBit2")))))
2696
2697
2698 (define-public libbonobo
2699 (package
2700 (name "libbonobo")
2701 (version "2.32.1")
2702 (source (origin
2703 (method url-fetch)
2704 (uri (string-append "mirror://gnome/sources/" name "/"
2705 (version-major+minor version)
2706 "/" name "-" version ".tar.bz2"))
2707 (sha256
2708 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
2709 (patches (search-patches
2710 "libbonobo-activation-test-race.patch"))))
2711 (build-system gnu-build-system)
2712 (arguments
2713 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
2714 `(#:configure-flags
2715 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
2716 ;; ... which they then completly ignore !!
2717 #:phases
2718 (modify-phases %standard-phases
2719 (add-before 'configure 'ignore-deprecations
2720 (lambda _
2721 (substitute* "activation-server/Makefile.in"
2722 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2723 #t)))
2724
2725 ;; There's apparently a race condition between the server stub
2726 ;; generation and linking of the example under 'samples/echo' that can
2727 ;; lead do undefined references when building in parallel, as reported
2728 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
2729 ;; Thus, disable parallel builds.
2730 #:parallel-build? #f))
2731 (inputs `(("popt" ,popt)
2732 ("libxml2" ,libxml2)))
2733 ;; The following are Required by the .pc file
2734 (propagated-inputs
2735 `(("glib" ,glib)
2736 ("orbit2" ,orbit2)))
2737 (native-inputs
2738 `(("intltool" ,intltool)
2739 ("pkg-config" ,pkg-config)
2740 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2741 ("flex" ,flex)
2742 ("bison" ,bison)))
2743 (home-page "https://developer.gnome.org/libbonobo/")
2744 (synopsis "Framework for creating reusable components for use in GNOME applications")
2745 (description "Bonobo is a framework for creating reusable components for
2746 use in GNOME applications, built on top of CORBA.")
2747 ;; Licence not explicitly stated. Source files contain no licence notices.
2748 ;; Tarball contains text of both GPLv2 and LGPLv2
2749 ;; GPLv2 covers both conditions
2750 (license license:gpl2+)))
2751
2752
2753 (define-public gconf
2754 (package
2755 (name "gconf")
2756 (version "3.2.6")
2757 (source (origin
2758 (method url-fetch)
2759 (uri
2760 (let ((upstream-name "GConf"))
2761 (string-append "mirror://gnome/sources/" upstream-name "/"
2762 (version-major+minor version) "/"
2763 upstream-name "-" version ".tar.xz")))
2764 (sha256
2765 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
2766 (build-system gnu-build-system)
2767 (inputs `(("dbus-glib" ,dbus-glib)
2768 ("libxml2" ,libxml2)))
2769 (propagated-inputs `(("glib" ,glib) ; referred to in the .pc file
2770 ("orbit2" ,orbit2)))
2771 (native-inputs
2772 `(("intltool" ,intltool)
2773 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2774 ("pkg-config" ,pkg-config)))
2775 (home-page "https://projects.gnome.org/gconf/")
2776 (synopsis "Store application preferences")
2777 (description "Gconf is a system for storing application preferences. It
2778 is intended for user preferences; not arbitrary data storage.")
2779 (license license:lgpl2.0+)
2780 (properties '((upstream-name . "GConf")))))
2781
2782
2783 (define-public gnome-mime-data
2784 (package
2785 (name "gnome-mime-data")
2786 (version "2.18.0")
2787 (source (origin
2788 (method url-fetch)
2789 (uri (string-append "mirror://gnome/sources/" name "/"
2790 (version-major+minor version) "/"
2791 name "-" version ".tar.bz2"))
2792 (sha256
2793 (base32
2794 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
2795 (build-system gnu-build-system)
2796 (native-inputs
2797 `(("perl" ,perl)
2798 ("intltool" ,intltool)))
2799 (arguments
2800 '(#:phases (modify-phases %standard-phases
2801 (add-after 'configure 'use-our-intltool
2802 (lambda _
2803 ;; Do not use the bundled intltool commands, which lack
2804 ;; the "dotless @INC" fixes of our 'intltool' package.
2805 (substitute* (find-files "." "^Makefile$")
2806 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
2807 (string-append "INTLTOOL_" tool " = intltool-"
2808 (string-downcase tool) "\n")))
2809 #t)))))
2810 (home-page "https://www.gnome.org")
2811 (synopsis "Base MIME and Application database for GNOME")
2812 (description "GNOME Mime Data is a module which contains the base MIME
2813 and Application database for GNOME. The data stored by this module is
2814 designed to be accessed through the MIME functions in GnomeVFS.")
2815 (license license:gpl2+)))
2816
2817
2818 (define-public gnome-vfs
2819 (package
2820 (name "gnome-vfs")
2821 (version "2.24.4")
2822 (source (origin
2823 (method url-fetch)
2824 (uri (string-append "mirror://gnome/sources/" name "/"
2825 (version-major+minor version) "/"
2826 name "-" version ".tar.bz2"))
2827 (sha256
2828 (base32
2829 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
2830 (build-system gnu-build-system)
2831 (arguments
2832 `(#:phases
2833 (modify-phases %standard-phases
2834 (add-before 'configure 'ignore-deprecations
2835 (lambda _
2836 (substitute* '("libgnomevfs/Makefile.in"
2837 "daemon/Makefile.in")
2838 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2839 #t))
2840 (add-before 'configure 'patch-test-async-cancel-to-never-fail
2841 (lambda _
2842 (substitute* "test/test-async-cancel.c"
2843 (("EXIT_FAILURE") "77"))
2844 #t)))))
2845 (inputs `(("libxml2" ,libxml2)
2846 ("dbus-glib" ,dbus-glib)
2847 ("gconf" ,gconf)
2848 ("gnome-mime-data" ,gnome-mime-data)
2849 ("zlib" ,zlib)))
2850 (native-inputs
2851 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2852 ("intltool" ,intltool)
2853 ("pkg-config" ,pkg-config)))
2854 (home-page "https://developer.gnome.org/gnome-vfs/")
2855 (synopsis "Access files and folders in GNOME applications")
2856 (description
2857 "GnomeVFS is the core library used to access files and folders in GNOME
2858 applications. It provides a file system abstraction which allows applications
2859 to access local and remote files with a single consistent API.")
2860 (license license:lgpl2.0+)))
2861
2862
2863
2864 (define-public libgnome
2865 (package
2866 (name "libgnome")
2867 (version "2.32.1")
2868 (source (origin
2869 (method url-fetch)
2870 (uri (string-append "mirror://gnome/sources/" name "/"
2871 (version-major+minor version) "/"
2872 name "-" version ".tar.bz2"))
2873 (sha256
2874 (base32
2875 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
2876 (patches (search-patches "libgnome-encoding.patch"))))
2877 (build-system gnu-build-system)
2878 (arguments
2879 `(#:phases
2880 (modify-phases %standard-phases
2881 (add-before 'configure 'enable-deprecated
2882 (lambda _
2883 (substitute* "libgnome/Makefile.in"
2884 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
2885 #t)))))
2886 (inputs `(("libxml2" ,libxml2)))
2887 (native-inputs
2888 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
2889 ("intltool" ,intltool)
2890 ("pkg-config" ,pkg-config)))
2891 ;; The following are listed as Required in the .pc file
2892 ;; (except for libcanberra -- which seems to be oversight on the part
2893 ;; of the upstream developers -- anything that links against libgnome,
2894 ;; must also link against libcanberra
2895 (propagated-inputs
2896 `(("libcanberra" ,libcanberra)
2897 ("libbonobo" ,libbonobo)
2898 ("gconf" ,gconf)
2899 ("gnome-vfs" ,gnome-vfs)
2900 ("popt" ,popt))) ;gnome-program.h includes popt.h
2901 (home-page "https://developer.gnome.org/libgnome/")
2902 (synopsis "Useful routines for building applications")
2903 (description "The libgnome library provides a number of useful routines
2904 for building modern applications, including session management, activation of
2905 files and URIs, and displaying help.")
2906 (license license:lgpl2.0+)))
2907
2908
2909 (define-public libart-lgpl
2910 (package
2911 (name "libart-lgpl")
2912 (version "2.3.21")
2913 (source (origin
2914 (method url-fetch)
2915 (uri (let ((upstream-name "libart_lgpl"))
2916 (string-append "mirror://gnome/sources/" upstream-name "/"
2917 (version-major+minor version) "/"
2918 upstream-name "-" version ".tar.bz2")))
2919 (sha256
2920 (base32
2921 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
2922 (build-system gnu-build-system)
2923 (native-inputs
2924 `(("pkg-config" ,pkg-config)))
2925 (home-page "https://people.gnome.org/~mathieu/libart")
2926 (synopsis "2D drawing library")
2927 (description "Libart is a 2D drawing library intended as a
2928 high-quality vector-based 2D library with antialiasing and alpha composition.")
2929 (license license:lgpl2.0+)))
2930
2931
2932
2933 (define-public libgnomecanvas
2934 (package
2935 (name "libgnomecanvas")
2936 (version "2.30.3")
2937 (source (origin
2938 (method url-fetch)
2939 (uri (string-append "mirror://gnome/sources/" name "/"
2940 (version-major+minor version) "/"
2941 name "-" version ".tar.gz"))
2942 (sha256
2943 (base32
2944 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
2945 (build-system gnu-build-system)
2946 ;; Mentioned as Required in the .pc file
2947 (propagated-inputs `(("libart-lgpl" ,libart-lgpl)
2948 ("gtk+" ,gtk+-2)))
2949 (native-inputs
2950 `(("intltool" ,intltool)
2951 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
2952 ("pkg-config" ,pkg-config)))
2953 (home-page "https://developer.gnome.org/libgnomecanvas/")
2954 (synopsis "Flexible widget for creating interactive structured graphics")
2955 (description "The GnomeCanvas widget provides a flexible widget for
2956 creating interactive structured graphics.")
2957 (license license:lgpl2.0+)))
2958
2959 (define-public libgnomecanvasmm
2960 (package
2961 (name "libgnomecanvasmm")
2962 (version "2.26.0")
2963 (source (origin
2964 (method url-fetch)
2965 (uri (string-append "mirror://gnome/sources/" name "/"
2966 (version-major+minor version) "/"
2967 name "-" version ".tar.bz2"))
2968 (sha256
2969 (base32
2970 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
2971 (build-system gnu-build-system)
2972 (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
2973 (native-inputs
2974 `(("gtkmm-2" ,gtkmm-2)
2975 ("pkg-config" ,pkg-config)))
2976 (home-page "https://gtkmm.org")
2977 (synopsis "C++ bindings to the GNOME Canvas library")
2978 (description "C++ bindings to the GNOME Canvas library.")
2979 (license license:lgpl2.0+)))
2980
2981 (define-public libgnomeui
2982 (package
2983 (name "libgnomeui")
2984 (version "2.24.5")
2985 (source (origin
2986 (method url-fetch)
2987 (uri (string-append "mirror://gnome/sources/" name "/"
2988 (version-major+minor version) "/"
2989 name "-" version ".tar.bz2"))
2990 (patches (search-patches "libgnomeui-utf8.patch"))
2991 (sha256
2992 (base32
2993 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
2994 (build-system gnu-build-system)
2995 ;; Mentioned as Required in the .pc file
2996 (propagated-inputs `(("libbonoboui" ,libbonoboui)
2997 ("libgnome" ,libgnome)
2998 ("libgnomecanvas" ,libgnomecanvas)
2999 ("libgnome-keyring" ,libgnome-keyring)))
3000 (inputs `(("libjpeg" ,libjpeg-turbo)
3001 ("popt" ,popt)
3002 ("libbonobo" ,libbonobo)
3003 ("libxml2" ,libxml2)
3004 ("libglade" ,libglade)))
3005 (native-inputs
3006 `(("glib" ,glib "bin") ; for glib-mkenums, etc.
3007 ("intltool" ,intltool)
3008 ("pkg-config" ,pkg-config)))
3009 (home-page "https://developer.gnome.org/libgnomeui/")
3010 (synopsis "Additional widgets for applications")
3011 (description "The libgnomeui library provides additional widgets for
3012 applications. Many of the widgets from libgnomeui have already been
3013 ported to GTK+.")
3014 (license license:lgpl2.0+)))
3015
3016 (define-public libglade
3017 (package
3018 (name "libglade")
3019 (version "2.6.4")
3020 (source (origin
3021 (method url-fetch)
3022 (uri (string-append "mirror://gnome/sources/" name "/"
3023 (version-major+minor version) "/"
3024 name "-" version ".tar.bz2"))
3025 (sha256
3026 (base32
3027 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
3028 (build-system gnu-build-system)
3029 (inputs
3030 `(("python" ,python))) ;; needed for the optional libglade-convert program
3031 (propagated-inputs
3032 `(("gtk+-2" ,gtk+-2)
3033 ("libxml2" ,libxml2))) ; required by libglade-2.0.pc
3034 (native-inputs
3035 `(("pkg-config" ,pkg-config)))
3036 (home-page "https://developer.gnome.org/libglade")
3037 (synopsis "Load glade interfaces and access the glade built widgets")
3038 (description "Libglade is a library that provides interfaces for loading
3039 graphical interfaces described in glade files and for accessing the
3040 widgets built in the loading process.")
3041 (license license:gpl2+))) ; This is correct. GPL not LGPL
3042
3043 (define-public libgnomeprint
3044 ;; This library has been deprecated since 2006; see
3045 ;; <https://mail.gnome.org/archives/devel-announce-list/2006-August/msg00005.html>.
3046 (package
3047 (name "libgnomeprint")
3048 (version "2.18.8")
3049 (source (origin
3050 (method url-fetch)
3051 (uri (string-append "mirror://gnome/sources/" name "/"
3052 (version-major+minor version) "/"
3053 name "-" version ".tar.bz2"))
3054 (sha256
3055 (base32
3056 "14cnimvlc7ky22g2snyf4362412k3jk1syjf8b9887q5a63fqd0h"))))
3057 (build-system gnu-build-system)
3058 (inputs
3059 `(("popt" ,popt)
3060 ("libart-lgpl" ,libart-lgpl)
3061 ("gtk+" ,gtk+-2)
3062 ("libxml2" ,libxml2)))
3063 (native-inputs
3064 `(("intltool" ,intltool)
3065 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3066 ("pkg-config" ,pkg-config)))
3067 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3068 (synopsis "Printing framework for GNOME")
3069 (description
3070 "GNOME-print was a printing framework for GNOME. It has been deprecated
3071 since ca. 2006, when GTK+ itself incorporated printing support.")
3072 (license license:lgpl2.0+)))
3073
3074
3075 (define-public libgnomeprintui
3076 ;; Deprecated; see libgnomeprint.
3077 (package
3078 (name "libgnomeprintui")
3079 (version "2.18.6")
3080 (source (origin
3081 (method url-fetch)
3082 (uri (string-append "mirror://gnome/sources/" name "/"
3083 (version-major+minor version) "/"
3084 name "-" version ".tar.bz2"))
3085 (sha256
3086 (base32
3087 "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm"))))
3088 (build-system gnu-build-system)
3089 ;; Mentioned as Required in the .pc file
3090 (propagated-inputs `(("libgnomeprint" ,libgnomeprint)))
3091 (inputs `(("gtk+" ,gtk+-2)
3092 ("glib" ,glib)
3093 ("gnome-icon-theme" ,gnome-icon-theme)
3094 ("libgnomecanvas" ,libgnomecanvas)
3095 ("libxml2" ,libxml2)))
3096 (native-inputs
3097 `(("intltool" ,intltool)
3098 ("pkg-config" ,pkg-config)))
3099 (home-page "https://projects.gnome.org/gnome-print/home/faq.html")
3100 (synopsis "Printing framework for GNOME")
3101 (description (package-description libgnomeprint))
3102 (license license:lgpl2.0+)))
3103
3104 (define-public libbonoboui
3105 (package
3106 (name "libbonoboui")
3107 (version "2.24.5")
3108 (source (origin
3109 (method url-fetch)
3110 (uri (string-append "mirror://gnome/sources/" name "/"
3111 (version-major+minor version) "/"
3112 name "-" version ".tar.bz2"))
3113 (sha256
3114 (base32
3115 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
3116 (build-system gnu-build-system)
3117 (arguments
3118 `(#:phases
3119 (modify-phases %standard-phases
3120 (add-before 'check 'start-xserver
3121 (lambda* (#:key inputs #:allow-other-keys)
3122 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3123 (disp ":1"))
3124
3125 (setenv "HOME" (getcwd))
3126 (setenv "DISPLAY" disp)
3127 ;; There must be a running X server and make check doesn't start one.
3128 ;; Therefore we must do it.
3129 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
3130 ;; Mentioned as Required by the .pc file
3131 (propagated-inputs `(("libxml2" ,libxml2)))
3132 (inputs
3133 `(("popt" ,popt)
3134 ("pangox-compat" ,pangox-compat)
3135 ("libgnome" ,libgnome)
3136 ("libgnomecanvas" ,libgnomecanvas)
3137 ("libglade" ,libglade)))
3138 (native-inputs
3139 `(("glib" ,glib "bin") ; for glib-genmarshal, etc.
3140 ("intltool" ,intltool)
3141 ("xorg-server" ,xorg-server-for-tests) ; For running the tests
3142 ("pkg-config" ,pkg-config)))
3143 (home-page "https://developer.gnome.org/libbonoboui/")
3144 (synopsis "Some user interface controls using Bonobo")
3145 (description "The Bonobo UI library provides a number of user interface
3146 controls using the Bonobo component framework.")
3147 (license license:lgpl2.0+)))
3148
3149 (define-public libwnck
3150 (package
3151 (name "libwnck")
3152 (version "3.32.0")
3153 (source (origin
3154 (method url-fetch)
3155 (uri (string-append "mirror://gnome/sources/" name "/"
3156 (version-major+minor version) "/"
3157 name "-" version ".tar.xz"))
3158 (sha256
3159 (base32
3160 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
3161 (build-system meson-build-system)
3162 (native-inputs
3163 `(("pkg-config" ,pkg-config)
3164 ("glib" ,glib "bin") ; for glib-mkenums
3165 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
3166 ("intltool" ,intltool)))
3167 (propagated-inputs
3168 `(("gtk+" ,gtk+)
3169 ("libxres" ,libxres)
3170 ("startup-notification" ,startup-notification)))
3171 (home-page "https://developer.gnome.org/libwnck/")
3172 (synopsis "Window Navigator Construction Kit")
3173 (description
3174 "Libwnck is the Window Navigator Construction Kit, a library for use in
3175 writing pagers, tasklists, and more generally applications that are dealing
3176 with window management. It tries hard to respect the Extended Window Manager
3177 Hints specification (EWMH).")
3178 (license license:lgpl2.0+)))
3179
3180 ;; stable version for gtk2, required by xfwm4.
3181 (define-public libwnck-2
3182 (package (inherit libwnck)
3183 (name "libwnck")
3184 (version "2.30.7")
3185 (source (origin
3186 (method url-fetch)
3187 (uri (string-append "mirror://gnome/sources/" name "/"
3188 (version-major+minor version) "/"
3189 name "-" version ".tar.xz"))
3190 (sha256
3191 (base32
3192 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
3193 (build-system gnu-build-system)
3194 (native-inputs
3195 `(("pkg-config" ,pkg-config)
3196 ("intltool" ,intltool)))
3197 (propagated-inputs
3198 `(("gtk+" ,gtk+-2)
3199 ("libxres" ,libxres)
3200 ("startup-notification" ,startup-notification)))))
3201
3202 (define-public goffice
3203 (package
3204 (name "goffice")
3205 (version "0.10.47")
3206 (source (origin
3207 (method url-fetch)
3208 (uri (string-append "mirror://gnome/sources/goffice/"
3209 (version-major+minor version) "/"
3210 "goffice-" version ".tar.xz"))
3211 (sha256
3212 (base32 "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215"))))
3213 (build-system gnu-build-system)
3214 (outputs '("out"
3215 "doc")) ; 4.0 MiB of gtk-doc
3216 (arguments
3217 '(#:configure-flags (list (string-append "--with-html-dir="
3218 (assoc-ref %outputs "doc")
3219 "/share/gtk-doc/html"))))
3220 (inputs
3221 `(("gtk+" ,gtk+)
3222 ("libgsf" ,libgsf)
3223 ("librsvg" ,librsvg)
3224 ("libxslt" ,libxslt)
3225 ("libxml2" ,libxml2)))
3226 (native-inputs
3227 `(("intltool" ,intltool)
3228 ("glib" ,glib "bin")
3229 ("pkg-config" ,pkg-config)))
3230 (home-page "https://developer.gnome.org/goffice/")
3231 (synopsis "Document-centric objects and utilities")
3232 (description "A GLib/GTK+ set of document-centric objects and utilities.")
3233 (license
3234 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3235 ;; Note: NOT LGPL
3236 (list license:gpl2 license:gpl3))))
3237
3238 (define-public goffice-0.8
3239 (package (inherit goffice)
3240 (version "0.8.17")
3241 (source (origin
3242 (method url-fetch)
3243 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
3244 (version-major+minor version) "/"
3245 (package-name goffice) "-" version ".tar.xz"))
3246 (sha256
3247 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
3248 (arguments
3249 `(#:phases
3250 (modify-phases %standard-phases
3251 (add-after 'unpack 'fix-pcre-check
3252 (lambda _
3253 ;; Only glib.h can be included directly. See
3254 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
3255 (substitute* "configure"
3256 (("glib/gregex\\.h") "glib.h")) #t)))
3257
3258 ,@(package-arguments goffice)))
3259 (propagated-inputs
3260 ;; libgoffice-0.8.pc mentions libgsf-1
3261 `(("libgsf" ,libgsf)))
3262 (inputs
3263 `(("gtk" ,gtk+-2)
3264 ,@(alist-delete "gtk" (package-inputs goffice))))))
3265
3266 (define-public gnumeric
3267 (package
3268 (name "gnumeric")
3269 (version "1.12.46")
3270 (source (origin
3271 (method url-fetch)
3272 (uri (string-append "mirror://gnome/sources/gnumeric/"
3273 (version-major+minor version) "/"
3274 "gnumeric-" version ".tar.xz"))
3275 (sha256
3276 (base32
3277 "1qdmw2dp7rmq8fmjapgwaks7ajh270wm6kyvlxlzwbgmg8vngp4z"))))
3278 (build-system glib-or-gtk-build-system)
3279 (arguments
3280 `(;; The gnumeric developers don't worry much about failing tests.
3281 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
3282 #:tests? #f
3283 #:phases
3284 (modify-phases %standard-phases
3285 (add-before
3286 'configure 'pre-conf
3287 (lambda* (#:key outputs #:allow-other-keys)
3288 ;; Make install tries to write into the directory of goffice
3289 ;; I am informed that this only affects the possibility to embed a
3290 ;; spreadsheet inside an Abiword document. So presumably when we
3291 ;; package Abiword we'll have to refer it to this directory.
3292 (substitute* "configure"
3293 (("^GOFFICE_PLUGINS_DIR=.*")
3294 (string-append "GOFFICE_PLUGINS_DIR="
3295 (assoc-ref outputs "out")
3296 "/goffice/plugins"))))))))
3297 (inputs
3298 `(("glib" ,glib)
3299 ("gtk+" ,gtk+)
3300 ("goffice" ,goffice)
3301 ("libgsf" ,libgsf)
3302 ("librsvg" ,librsvg)
3303 ("libxml2" ,libxml2)
3304 ("libxslt" ,libxslt)
3305 ("python" ,python-2)
3306 ("python2-pygobject" ,python2-pygobject)
3307 ("zlib" ,zlib)))
3308 (native-inputs
3309 `(("bison" ,bison)
3310 ("docbook-xml" ,docbook-xml)
3311 ("intltool" ,intltool)
3312 ("itstool" ,itstool)
3313 ("glib:bin" ,glib "bin")
3314 ("pkg-config" ,pkg-config)))
3315 (home-page "http://www.gnumeric.org")
3316 (synopsis "Spreadsheet application")
3317 (description
3318 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
3319 interoperable with other spreadsheet applications. It has a vast array of
3320 features beyond typical spreadsheet functionality, such as support for linear
3321 and non-linear solvers, statistical analysis, and telecommunication
3322 engineering.")
3323 (license
3324 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
3325 (list license:gpl2 license:gpl3))))
3326
3327 (define-public gnome-themes-standard
3328 (package
3329 (name "gnome-themes-standard")
3330 (version "3.22.3")
3331 (source
3332 (origin
3333 (method url-fetch)
3334 (uri (string-append "mirror://gnome/sources/" name "/"
3335 (version-major+minor version) "/" name "-"
3336 version ".tar.xz"))
3337 (sha256
3338 (base32
3339 "0smmiamrgcgf5sa88bsn8hwmvsyx4gczzs359nwxbkv14b2qgp31"))))
3340 (build-system gnu-build-system)
3341 (arguments
3342 '(#:configure-flags
3343 ;; Don't create 'icon-theme.cache'.
3344 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
3345 (true (string-append coreutils "/bin/true")))
3346 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
3347 (inputs
3348 `(("gtk+" ,gtk+)
3349 ("gtk+-2" ,gtk+-2)
3350 ("librsvg" ,librsvg)
3351 ("libxml2" ,libxml2)
3352 ("glib" ,glib)))
3353 (native-inputs
3354 `(("intltool" ,intltool)
3355 ("glib:bin" ,glib "bin")
3356 ("pkg-config" ,pkg-config)))
3357 (home-page "https://launchpad.net/gnome-themes-standard")
3358 (synopsis "Default GNOME 3 themes")
3359 (description
3360 "The default GNOME 3 themes (Adwaita and some accessibility themes).")
3361 (license license:lgpl2.1+)))
3362
3363 (define-public seahorse
3364 (package
3365 (name "seahorse")
3366 (version "3.34")
3367 (source
3368 (origin
3369 (method url-fetch)
3370 (uri (string-append "mirror://gnome/sources/" name "/"
3371 (version-major+minor version) "/" name "-"
3372 version ".tar.xz"))
3373 (sha256
3374 (base32
3375 "16sfnqrdlr5xx6kixx2ln1mva7nngjlw1k3f5n454vyaigffjh2v"))))
3376 (build-system meson-build-system)
3377 (arguments
3378 '(#:glib-or-gtk? #t
3379 #:phases
3380 (modify-phases %standard-phases
3381 (add-after 'unpack 'skip-gtk-update-icon-cache
3382 ;; Don't create 'icon-theme.cache'.
3383 (lambda _
3384 (substitute* "build-aux/meson_post_install.py"
3385 (("gtk-update-icon-cache") "true"))
3386 #t)))))
3387 (inputs
3388 `(("gtk+" ,gtk+)
3389 ("gcr" ,gcr)
3390 ("gnupg" ,gnupg)
3391 ("gpgme" ,gpgme)
3392 ("openldap" ,openldap)
3393 ("openssh" ,openssh)
3394 ("avahi" ,avahi)
3395 ("libpwquality" ,libpwquality)
3396 ("libsecret" ,libsecret)
3397 ("libsoup" ,libsoup)))
3398 (native-inputs
3399 `(("gettext" ,gettext-minimal)
3400 ("glib:bin" ,glib "bin")
3401 ("itstool" ,itstool)
3402 ("pkg-config" ,pkg-config)
3403 ("vala" ,vala)
3404 ("xmllint" ,libxml2)))
3405 (home-page "https://wiki.gnome.org/Apps/Seahorse")
3406 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
3407 (description
3408 "Seahorse is a GNOME application for managing encryption keys and
3409 passwords in the GNOME keyring.")
3410 (license license:gpl2+)))
3411
3412 (define-public vala
3413 (package
3414 (name "vala")
3415 (version "0.46.5")
3416 (source (origin
3417 (method url-fetch)
3418 (uri (string-append "mirror://gnome/sources/" name "/"
3419 (version-major+minor version) "/"
3420 name "-" version ".tar.xz"))
3421 (sha256
3422 (base32
3423 "07fv895sp9wq74b20qig7hic0r4ynrr5pfaqba02r44xb794fy0s"))))
3424 (build-system gnu-build-system)
3425 (arguments
3426 '(#:phases
3427 (modify-phases %standard-phases
3428 (add-before 'check 'pre-check
3429 (lambda _
3430 (setenv "CC" "gcc")
3431 (substitute* "valadoc/tests/testrunner.sh"
3432 (("export PKG_CONFIG_PATH=" m)
3433 (string-append m "$PKG_CONFIG_PATH:")))
3434 ;; For missing '/etc/machine-id'.
3435 (setenv "DBUS_FATAL_WARNINGS" "0")
3436 #t)))))
3437 (native-inputs
3438 `(("pkg-config" ,pkg-config)
3439 ("flex" ,flex)
3440 ("bison" ,bison)
3441 ("xsltproc" ,libxslt)
3442 ("dbus" ,dbus) ; for dbus tests
3443 ("gobject-introspection" ,gobject-introspection))) ; for gir tests
3444 (inputs
3445 `(("graphviz" ,graphviz)))
3446 (propagated-inputs
3447 `(("glib" ,glib))) ; required by libvala-0.40.pc
3448 (home-page "https://live.gnome.org/Vala/")
3449 (synopsis "Compiler for the GObject type system")
3450 (description
3451 "Vala is a programming language that aims to bring modern programming
3452 language features to GNOME developers without imposing any additional runtime
3453 requirements and without using a different ABI compared to applications and
3454 libraries written in C.")
3455 (license license:lgpl2.1+)))
3456
3457 (define-public vala-0.48
3458 (package
3459 (inherit vala)
3460 (version "0.48.7")
3461 (source (origin
3462 (method url-fetch)
3463 (uri (string-append "mirror://gnome/sources/vala/"
3464 (version-major+minor version) "/"
3465 "vala-" version ".tar.xz"))
3466 (sha256
3467 (base32
3468 "0lswkb7gj0chas9n3l3dbrm9l71hs77adhvm2v600id2ipi37pi8"))))))
3469
3470 (define-public vte
3471 (package
3472 (name "vte")
3473 (version "0.60.3")
3474 (source (origin
3475 (method url-fetch)
3476 (uri (string-append "mirror://gnome/sources/vte/"
3477 (version-major+minor version) "/"
3478 "vte-" version ".tar.xz"))
3479 (sha256
3480 (base32
3481 "0al2v6fn061v4j1wwvppim1q283y2a6s0iyl29hxhmx3h48nxdzy"))))
3482 (build-system meson-build-system)
3483 (arguments
3484 `(#:configure-flags
3485 '("-Dvapi=true"
3486 "-D_systemd=false")))
3487 (native-inputs
3488 `(("pkg-config" ,pkg-config)
3489 ("gettext" ,gettext-minimal)
3490 ("vala" ,vala)
3491 ("gobject-introspection" ,gobject-introspection)
3492 ("glib" ,glib "bin") ; for glib-genmarshal, etc.
3493 ("gperf" ,gperf)
3494 ("xmllint" ,libxml2)))
3495 (propagated-inputs
3496 `(("gtk+" ,gtk+) ; required by vte-2.91.pc
3497 ("gnutls" ,gnutls) ; ditto
3498 ("pcre2" ,pcre2))) ; ditto
3499 (home-page "https://www.gnome.org/")
3500 (synopsis "Virtual Terminal Emulator")
3501 (description
3502 "VTE is a library (libvte) implementing a terminal emulator widget for
3503 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
3504 gnome-terminal, but can also be used to embed a console/terminal in games,
3505 editors, IDEs, etc.")
3506 (license license:lgpl2.1+)))
3507
3508 (define-public vte-ng
3509 (package
3510 (inherit vte)
3511 (name "vte-ng")
3512 (version "0.58.2.a")
3513 (home-page "https://github.com/thestinger/vte-ng")
3514 (source (origin
3515 (method git-fetch)
3516 (uri (git-reference (url home-page) (commit version)))
3517 (file-name (git-file-name name version))
3518 (sha256
3519 (base32
3520 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
3521 (build-system meson-build-system)
3522 (native-inputs
3523 `(("gtk-doc" ,gtk-doc)
3524 ,@(package-native-inputs vte)))
3525 (arguments
3526 `(#:configure-flags '("-Ddocs=true")))
3527 (synopsis "Enhanced VTE terminal widget")
3528 (description
3529 "VTE is a library (libvte) implementing a terminal emulator widget for
3530 GTK+, this fork provides additional functions exposed for keyboard text
3531 selection and URL hints.")))
3532
3533 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
3534 (define-public vte/gtk+-2
3535 (package (inherit vte)
3536 (name "vte")
3537 (version "0.28.2")
3538 (source (origin
3539 (method url-fetch)
3540 (uri (string-append "mirror://gnome/sources/" name "/"
3541 (version-major+minor version) "/"
3542 name "-" version ".tar.xz"))
3543 (sha256
3544 (base32
3545 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
3546 (patches (search-patches
3547 "vte-CVE-2012-2738-pt1.patch"
3548 "vte-CVE-2012-2738-pt2.patch"))))
3549 (build-system gnu-build-system)
3550 (arguments
3551 '(#:configure-flags '("--disable-python")))
3552 (native-inputs
3553 `(("pkg-config" ,pkg-config)
3554 ("intltool" ,intltool)
3555 ("glib" ,glib "bin"))) ; for glib-genmarshal, etc.
3556 (propagated-inputs
3557 `(("gtk+" ,gtk+-2) ; required by libvte.pc
3558 ("ncurses" ,ncurses))))) ; required by libvte.la
3559
3560 (define-public vinagre
3561 (package
3562 (name "vinagre")
3563 (version "3.22.0")
3564 (source (origin
3565 (method url-fetch)
3566 (uri (string-append "mirror://gnome/sources/" name "/"
3567 (version-major+minor version) "/"
3568 name "-" version ".tar.xz"))
3569 (patches (search-patches "vinagre-newer-freerdp.patch"
3570 "vinagre-newer-rdp-parameters.patch"))
3571 (sha256
3572 (base32
3573 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
3574 (build-system glib-or-gtk-build-system)
3575 (arguments
3576 ;; Disable -Werror and such, to avoid build failures on compilation
3577 ;; warnings.
3578 '(#:configure-flags '("--enable-compile-warnings=minimum")
3579 #:phases
3580 (modify-phases %standard-phases
3581 (add-before 'install 'skip-gtk-update-icon-cache
3582 (lambda _
3583 ;; Don't create 'icon-theme.cache'
3584 (substitute* (find-files "." "^Makefile$")
3585 (("gtk-update-icon-cache") (which "true")))
3586 #t))
3587 (add-after 'unpack 'patch-configure
3588 (lambda _
3589 (substitute* "configure"
3590 (("freerdp") "freerdp2"))
3591 #t)))))
3592 (native-inputs
3593 `(("pkg-config" ,pkg-config)
3594 ("intltool" ,intltool)
3595 ("itstool" ,itstool)
3596 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
3597 (inputs
3598 `(("libxml2" ,libxml2)
3599 ("gtk-vnc" ,gtk-vnc)
3600 ("gnome-keyring" ,gnome-keyring)
3601 ("libsecret" ,libsecret)
3602 ("freerdp" ,freerdp)
3603 ("spice" ,spice)
3604 ("spice-gtk" ,spice-gtk)
3605 ("telepathy-glib" ,telepathy-glib)
3606 ("vte" ,vte)))
3607 (home-page "https://wiki.gnome.org/Apps/Vinagre")
3608 (synopsis "Remote desktop viewer for GNOME")
3609 (description "Vinagre is a remote display client supporting the VNC, SPICE
3610 and RDP protocols.")
3611 (license license:gpl3+)))
3612
3613 (define-public dconf
3614 (package
3615 (name "dconf")
3616 (version "0.34.0")
3617 (source (origin
3618 (method url-fetch)
3619 (uri (string-append
3620 "mirror://gnome/sources/" name "/"
3621 (version-major+minor version) "/"
3622 name "-" version ".tar.xz"))
3623 (patches (search-patches "dconf-meson-0.52.patch"))
3624 (sha256
3625 (base32
3626 "0lnsl85cp2vpzgp8pkf6l6yd2i3lp02jdvga1icfa78j2smr8fll"))))
3627 (build-system meson-build-system)
3628 (propagated-inputs
3629 ;; In Requires of dconf.pc.
3630 `(("glib" ,glib)))
3631 (inputs
3632 `(("gtk+" ,gtk+)
3633 ("dbus" ,dbus)))
3634 (native-inputs
3635 `(("bash-completion" ,bash-completion)
3636 ("libxslt" ,libxslt) ;for xsltproc
3637 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
3638 ("docbook-xml" ,docbook-xml-4.2)
3639 ("docbook-xsl" ,docbook-xsl)
3640 ("glib:bin" ,glib "bin")
3641 ("gtk-doc" ,gtk-doc)
3642 ("pkg-config" ,pkg-config)
3643 ("vala" ,vala)))
3644 (arguments
3645 `(#:tests? #f ; To contact dbus it needs to load /var/lib/dbus/machine-id
3646 ; or /etc/machine-id.
3647 #:glib-or-gtk? #t
3648 #:configure-flags '("-Denable-gtk-doc=true")))
3649 (home-page "https://developer.gnome.org/dconf/")
3650 (synopsis "Low-level GNOME configuration system")
3651 (description "Dconf is a low-level configuration system. Its main purpose
3652 is to provide a backend to GSettings on platforms that don't already have
3653 configuration storage systems.")
3654 (license license:lgpl2.1+)))
3655
3656 (define-public json-glib
3657 (package
3658 (name "json-glib")
3659 (version "1.4.4")
3660 (source (origin
3661 (method url-fetch)
3662 (uri (string-append "mirror://gnome/sources/" name "/"
3663 (version-major+minor version) "/"
3664 name "-" version ".tar.xz"))
3665 (sha256
3666 (base32
3667 "0ixwyis47v5bkx6h8a1iqlw3638cxcv57ivxv4gw2gaig51my33j"))))
3668 (build-system meson-build-system)
3669 (native-inputs
3670 `(("gettext" ,gettext-minimal)
3671 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
3672 ("gobject-introspection" ,gobject-introspection)
3673 ("pkg-config" ,pkg-config)))
3674 (propagated-inputs
3675 `(("glib" ,glib))) ;according to json-glib-1.0.pc
3676 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
3677 (synopsis "Compiler for the GObject type system")
3678 (description
3679 "JSON-GLib is a C library based on GLib providing serialization and
3680 deserialization support for the JavaScript Object Notation (JSON) format
3681 described by RFC 4627. It provides parser and generator GObject classes and
3682 various wrappers for the complex data types employed by JSON, such as arrays
3683 and objects.")
3684 (license license:lgpl2.1+)))
3685
3686 (define-public libxklavier
3687 (package
3688 (name "libxklavier")
3689 (version "5.4")
3690 (source (origin
3691 ;; Note: There's no tarball at ftp.gnome.org for this version.
3692 (method git-fetch)
3693 (uri (git-reference
3694 (url "https://anongit.freedesktop.org/git/libxklavier")
3695 (commit (string-append "libxklavier-" version))))
3696 (sha256
3697 (base32
3698 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
3699 (file-name (git-file-name name version))))
3700 (build-system gnu-build-system)
3701 (arguments
3702 '(#:configure-flags
3703 (list (string-append "--with-xkb-base="
3704 (assoc-ref %build-inputs "xkeyboard-config")
3705 "/share/X11/xkb")
3706 "--disable-xmodmap-support")))
3707 (native-inputs
3708 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
3709 ("gobject-introspection" ,gobject-introspection)
3710 ("pkg-config" ,pkg-config)
3711 ("gtk-doc" ,gtk-doc)
3712 ("intltool" ,intltool)
3713 ("which" ,which)
3714 ("autoconf" ,autoconf)
3715 ("automake" ,automake)
3716 ("libtool" ,libtool)))
3717 (propagated-inputs
3718 ;; Required by libxklavier.pc.
3719 `(("glib" ,glib)
3720 ("libxml2" ,libxml2)))
3721 (inputs
3722 `(("iso-codes" ,iso-codes)
3723 ("libxi" ,libxi)
3724 ("libxkbfile" ,libxkbfile)
3725 ("xkbcomp" ,xkbcomp)
3726 ("xkeyboard-config" ,xkeyboard-config)))
3727 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
3728 (synopsis "High-level API for X Keyboard Extension")
3729 (description
3730 "LibXklavier is a library providing high-level API for X Keyboard
3731 Extension known as XKB. This library is intended to support XFree86 and other
3732 commercial X servers. It is useful for creating XKB-related software (layout
3733 indicators etc).")
3734 (license license:lgpl2.0+)))
3735
3736 (define-public python2-rsvg
3737 ;; XXX: This is actually a subset of gnome-python-desktop.
3738 (package
3739 (name "python2-rsvg")
3740 (version "2.32.0")
3741 (source
3742 (origin
3743 (method url-fetch)
3744 (uri (string-append
3745 "mirror://gnome/sources/gnome-python-desktop/2.32/gnome-python-desktop-"
3746 version ".tar.bz2"))
3747 (sha256
3748 (base32
3749 "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9"))))
3750 (build-system gnu-build-system)
3751 (native-inputs
3752 `(("pkg-config" ,pkg-config)))
3753 (inputs
3754 `(("python" ,python-2)
3755 ("python2-pygtk" ,python2-pygtk)
3756 ("librsvg" ,librsvg)))
3757 (home-page "https://www.gnome.org")
3758 (synopsis "Python bindings to librsvg")
3759 (description
3760 "This package provides Python bindings to librsvg, the SVG rendering
3761 library.")
3762
3763 ;; This is the license of the rsvg bindings. The license of each module
3764 ;; of gnome-python-desktop is given in 'COPYING'.
3765 (license license:lgpl2.1+)))
3766
3767 (define-public glib-networking
3768 (package
3769 (name "glib-networking")
3770 (version "2.62.2")
3771 (source (origin
3772 (method url-fetch)
3773 (uri (string-append "mirror://gnome/sources/glib-networking/"
3774 (version-major+minor version) "/"
3775 "glib-networking-" version ".tar.xz"))
3776 (sha256
3777 (base32
3778 "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
3779 (build-system meson-build-system)
3780 (arguments
3781 `(#:configure-flags '("-Dlibproxy_support=false")))
3782 (native-inputs
3783 `(("pkg-config" ,pkg-config)
3784 ("intltool" ,intltool)))
3785 (inputs
3786 `(("glib" ,glib)
3787 ("gnutls" ,gnutls)
3788 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3789 (home-page "https://www.gnome.org")
3790 (synopsis "Network-related GIO modules")
3791 (description
3792 "This package contains various network related extensions for the GIO
3793 library.")
3794 (license license:lgpl2.0+)))
3795
3796 (define-public rest
3797 (package
3798 (name "rest")
3799 (version "0.8.1")
3800 (source (origin
3801 (method url-fetch)
3802 (uri (string-append "mirror://gnome/sources/rest/"
3803 (version-major+minor version) "/"
3804 name "-" version ".tar.xz"))
3805 (sha256
3806 (base32
3807 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
3808 (build-system gnu-build-system)
3809 (arguments
3810 '(#:tests? #f ; tests require internet connection
3811 #:configure-flags
3812 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
3813 (native-inputs
3814 `(("glib-mkenums" ,glib "bin")
3815 ("gobject-introspection" ,gobject-introspection)
3816 ("pkg-config" ,pkg-config)))
3817 (propagated-inputs
3818 ;; rest-0.7.pc refers to all these.
3819 `(("glib" ,glib)
3820 ("libsoup" ,libsoup)
3821 ("libxml2" ,libxml2)))
3822 (home-page "https://www.gtk.org/")
3823 (synopsis "RESTful web api query library")
3824 (description
3825 "This library was designed to make it easier to access web services that
3826 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
3827 libxml to ease remote use of the RESTful API.")
3828 (license license:lgpl2.1+)))
3829
3830 (define-public libsoup
3831 (package
3832 (name "libsoup")
3833 (version "2.70.0")
3834 (source (origin
3835 (method url-fetch)
3836 (uri (string-append "mirror://gnome/sources/libsoup/"
3837 (version-major+minor version) "/"
3838 "libsoup-" version ".tar.xz"))
3839 (sha256
3840 (base32
3841 "0hjk9lgppc5435my0lyywbpmj7ib5vvcylwfin8ki97g9bvj1c2l"))))
3842 (build-system meson-build-system)
3843 (outputs '("out" "doc"))
3844 (arguments
3845 `(#:modules ((guix build utils)
3846 (guix build meson-build-system)
3847 (ice-9 popen))
3848
3849 #:configure-flags '("-Dgtk_doc=true")
3850 #:phases
3851 (modify-phases %standard-phases
3852 (add-after 'unpack 'adjust-tests
3853 (lambda _
3854 ;; This test fails due to missing /etc/nsswitch.conf
3855 ;; in the build environment.
3856 (substitute* "tests/socket-test.c"
3857 ((".*/sockets/unconnected.*") ""))
3858
3859 ;; These fail because "subdomain.localhost" does not resolve in
3860 ;; the build environment.
3861 (substitute* "tests/hsts-test.c"
3862 ((".*/hsts/basic.*") "")
3863 ((".*/hsts/subdomains.*") "")
3864 ((".*/hsts/superdomain.*") "")
3865 ((".*/hsts/utf8-address.*") ""))
3866 (substitute* "tests/hsts-db-test.c"
3867 ((".*/hsts-db/subdomains.*") ""))
3868
3869 ;; Generate a self-signed certificate that has "localhost" as its
3870 ;; 'dnsName'. Failing to do that, and starting with GnuTLS
3871 ;; 3.5.12, tests such as "ssl-tests" fail:
3872 ;;
3873 ;; ERROR:ssl-test.c:406:do_tls_interaction_test: Unexpected status 6 Unacceptable TLS certificate (expected 200 OK)
3874 ;;
3875 ;; 'certtool' is interactive so we have to pipe it the answers.
3876 ;; Reported at <https://bugzilla.gnome.org/show_bug.cgi?id=784696>.
3877 (let ((pipe (open-output-pipe "certtool --generate-self-signed \
3878 --load-privkey tests/test-key.pem --outfile tests/test-cert.pem")))
3879 (for-each (lambda (line)
3880 (display line pipe)
3881 (newline pipe))
3882 '("" ;Common name
3883 "" ;UID
3884 "Guix" ;Organizational unit name
3885 "GNU" ;Organization name
3886 "" ;Locality name
3887 "" ;State or province
3888 "" ;Country
3889 "" ;subject's domain component (DC)
3890 "" ;E-mail
3891 "" ;serial number
3892 "-1" ;expiration time
3893 "N" ;belong to authority?
3894 "N" ;web client certificate?
3895 "N" ;IPsec IKE?
3896 "Y" ;web server certificate?
3897 "localhost" ;dnsName of subject
3898 "" ;dnsName of subject (end)
3899 "" ;URI of subject
3900 "127.0.0.1" ;IP address of subject
3901 "" ;signing?
3902 "" ;encryption (RSA)?
3903 "" ;data encryption?
3904 "" ;sign OCSP requests?
3905 "" ;sign code?
3906 "" ;time stamping?
3907 "" ;email protection?
3908 "" ;URI of the CRL distribution point
3909 "y" ;above info OK?
3910 ))
3911 (close-pipe pipe))
3912 #t))
3913 (add-after 'install 'move-doc
3914 (lambda* (#:key outputs #:allow-other-keys)
3915 (let ((out (assoc-ref outputs "out"))
3916 (doc (assoc-ref outputs "doc")))
3917 (mkdir-p (string-append doc "/share"))
3918 (copy-recursively (string-append out "/share/gtk-doc")
3919 (string-append doc "/share/gtk-doc"))
3920 (delete-file-recursively (string-append out "/share/gtk-doc"))
3921 #t))))))
3922 (native-inputs
3923 `(("glib:bin" ,glib "bin") ; for glib-mkenums
3924 ("gobject-introspection" ,gobject-introspection)
3925 ("gtk-doc" ,gtk-doc)
3926 ("intltool" ,intltool)
3927 ("pkg-config" ,pkg-config)
3928 ("python" ,python-wrapper)
3929 ("vala" ,vala)
3930 ("php" ,php)
3931 ("curl" ,curl)
3932 ("gnutls" ,gnutls) ;for 'certtool'
3933 ("httpd" ,httpd)))
3934 (propagated-inputs
3935 ;; libsoup-2.4.pc refers to all these.
3936 `(("brotli" ,google-brotli)
3937 ("glib" ,glib)
3938 ("libpsl" ,libpsl)
3939 ("libxml2" ,libxml2)
3940 ("sqlite" ,sqlite)
3941 ("zlib" ,zlib)))
3942 (inputs
3943 `(("glib-networking" ,glib-networking)
3944 ("mit-krb5" ,mit-krb5)))
3945 (home-page "https://live.gnome.org/LibSoup/")
3946 (synopsis "GLib-based HTTP Library")
3947 (description
3948 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
3949 and the GLib main loop, to integrate well with GNOME applications.")
3950 (license license:lgpl2.0+)))
3951
3952
3953 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
3954 (define-public libsoup-minimal
3955 (package
3956 (inherit libsoup)
3957 (name "libsoup-minimal")
3958 (outputs (delete "doc" (package-outputs libsoup)))
3959 (arguments
3960 (substitute-keyword-arguments (package-arguments libsoup)
3961 ((#:configure-flags configure-flags)
3962 `(delete "-Dgtk_doc=true" ,configure-flags))
3963 ((#:phases phases)
3964 `(modify-phases ,phases
3965 (delete 'move-doc)))))
3966 (native-inputs (alist-delete "gtk-doc" (package-native-inputs libsoup)))))
3967
3968 (define-public libsecret
3969 (package
3970 (name "libsecret")
3971 (version "0.20.3")
3972 (source (origin
3973 (method url-fetch)
3974 (uri (string-append
3975 "mirror://gnome/sources/libsecret/"
3976 (version-major+minor version) "/"
3977 "libsecret-" version ".tar.xz"))
3978 (sha256
3979 (base32
3980 "1r4habxdzmn02id324m0m4mg5isf22q1z436bg3vjjmcz1b3rjsg"))))
3981 (build-system gnu-build-system)
3982 (outputs '("out" "doc"))
3983 (arguments
3984 `(#:tests? #f ; FIXME: Testing hangs.
3985 #:configure-flags
3986 (list (string-append "--with-html-dir="
3987 (assoc-ref %outputs "doc")
3988 "/share/gtk-doc/html"))))
3989 (native-inputs
3990 `(("gettext" ,gettext-minimal)
3991 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
3992 ("gobject-introspection" ,gobject-introspection)
3993 ("pkg-config" ,pkg-config)
3994 ("vala" ,vala)
3995 ("xsltproc" ,libxslt)))
3996 ;; These are needed for the tests.
3997 ;; FIXME: Add gjs once available.
3998 ;("dbus" ,dbus)
3999 ;("python2" ,python-2)
4000 ;("python2-dbus" ,python2-dbus)
4001 ;("python2-pygobject" ,python2-pygobject)
4002 ;("python2-pygobject-2" ,python2-pygobject-2)))
4003 (propagated-inputs
4004 `(("glib" ,glib))) ; required by libsecret-1.pc
4005 (inputs
4006 `(("docbook-xsl" ,docbook-xsl)
4007 ("libgcrypt" ,libgcrypt)
4008 ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
4009 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
4010 (synopsis "GObject bindings for \"Secret Service\" API")
4011 (description
4012 "Libsecret is a GObject based library for storing and retrieving passwords
4013 and other secrets. It communicates with the \"Secret Service\" using DBus.")
4014 (license license:lgpl2.1+)))
4015
4016 (define-public five-or-more
4017 (package
4018 (name "five-or-more")
4019 (version "3.32.2")
4020 (source
4021 (origin
4022 (method url-fetch)
4023 (uri (string-append "mirror://gnome/sources/five-or-more/"
4024 (version-major+minor version) "/"
4025 "five-or-more-" version ".tar.xz"))
4026 (sha256
4027 (base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
4028 (build-system meson-build-system)
4029 (arguments
4030 '(#:glib-or-gtk? #t
4031 #:phases
4032 (modify-phases %standard-phases
4033 (add-after 'unpack 'skip-gtk-update-icon-cache
4034 (lambda _
4035 (substitute* "meson_post_install.py"
4036 (("gtk-update-icon-cache") (which "true")))
4037 #t)))))
4038 (native-inputs
4039 `(("pkg-config" ,pkg-config)
4040 ("appstream-glib" ,appstream-glib)
4041 ("desktop-file-utils" ,desktop-file-utils)
4042 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4043 ("intltool" ,intltool)
4044 ("itstool" ,itstool)
4045 ("vala" ,vala)
4046 ("xmllint" ,libxml2)))
4047 (inputs
4048 `(("gtk+" ,gtk+)
4049 ("libgnome-games-support" ,libgnome-games-support)
4050 ("librsvg" ,librsvg)))
4051 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
4052 (synopsis "Logic puzzle game")
4053 (description "Five or More is a game where you try to align
4054 five or more objects of the same color and shape causing them to disappear.
4055 On every turn more objects will appear, until the board is full.
4056 Try to last as long as possible.")
4057 (license license:gpl2+)))
4058
4059 (define-public gnome-mines
4060 (package
4061 (name "gnome-mines")
4062 (version "3.34.0")
4063 (source
4064 (origin
4065 (method url-fetch)
4066 (uri (string-append "mirror://gnome/sources/" name "/"
4067 (version-major+minor version) "/"
4068 name "-" version ".tar.xz"))
4069 (sha256
4070 (base32
4071 "1spxa6qr1y8s5rrsvpciywpvhk812ngn95s1apaxaigwy2g1iw54"))))
4072 (build-system meson-build-system)
4073 (arguments
4074 '(#:glib-or-gtk? #t
4075 #:phases
4076 (modify-phases %standard-phases
4077 (add-after 'unpack 'skip-gtk-update-icon-cache
4078 (lambda _
4079 (substitute* "build-aux/meson_post_install.py"
4080 (("gtk-update-icon-cache") (which "true")))
4081 #t)))))
4082 (native-inputs
4083 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
4084 ("pkg-config" ,pkg-config)
4085 ("desktop-file-utils" ,desktop-file-utils)
4086 ("intltool" ,intltool)
4087 ("itstool" ,itstool)
4088 ("vala" ,vala)
4089 ("yelp" ,yelp)
4090 ("appstream-glib" ,appstream-glib)))
4091 (inputs
4092 `(("gtk+" ,gtk+)
4093 ("libgnome-games-support" ,libgnome-games-support)
4094 ("librsvg" ,librsvg)))
4095 (home-page "https://wiki.gnome.org/Apps/Mines")
4096 (synopsis "Minesweeper game")
4097 (description
4098 "Mines (previously gnomine) is a puzzle game where you locate mines
4099 floating in an ocean using only your brain and a little bit of luck.")
4100 (license license:gpl2+)))
4101
4102 (define-public gnome-multi-writer
4103 (package
4104 (name "gnome-multi-writer")
4105 (version "3.35.90")
4106 (source
4107 (origin
4108 (method url-fetch)
4109 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
4110 (version-major+minor version) "/"
4111 "gnome-multi-writer-" version ".tar.xz"))
4112 (sha256
4113 (base32
4114 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
4115 (build-system meson-build-system)
4116 (arguments
4117 '(#:glib-or-gtk? #t
4118 #:phases
4119 (modify-phases %standard-phases
4120 (add-after 'unpack 'skip-post-install
4121 (lambda _
4122 (substitute* "meson.build"
4123 (("meson.add_install_script" &) (string-append "# " &)))
4124 #t)))))
4125 (native-inputs
4126 `(("glib:bin" ,glib "bin")
4127 ("pkg-config" ,pkg-config)))
4128 (inputs
4129 `(("gtk+" ,gtk+)
4130 ("glib" ,glib) ; for gio
4131 ("gusb" ,gusb)
4132 ("udisks" ,udisks)
4133 ("libgudev" ,libgudev)
4134 ("libcanberra" ,libcanberra)
4135 ("polkit" ,polkit)))
4136 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
4137 (synopsis "Write to multiple USB devices at once")
4138 (description
4139 "MultiWriter can be used to write an ISO file to multiple USB devices at
4140 once.")
4141 (license license:gpl2+)))
4142
4143 (define-public gnome-sudoku
4144 (package
4145 (name "gnome-sudoku")
4146 (version "3.34.1")
4147 (source
4148 (origin
4149 (method url-fetch)
4150 (uri (string-append "mirror://gnome/sources/" name "/"
4151 (version-major+minor version) "/"
4152 name "-" version ".tar.xz"))
4153 (sha256
4154 (base32
4155 "025y85r4qqardivvwiwhbmgarziykdy224m8zlrq8b79zv82793b"))))
4156 (build-system meson-build-system)
4157 (arguments
4158 '(#:glib-or-gtk? #t
4159 #:phases
4160 (modify-phases %standard-phases
4161 (add-after 'unpack 'skip-gtk-update-icon-cache
4162 (lambda _
4163 (substitute* "build-aux/post_install.py"
4164 (("gtk-update-icon-cache") (which "true")))
4165 #t)))))
4166 (native-inputs
4167 `(("pkg-config" ,pkg-config)
4168 ("desktop-file-utils" ,desktop-file-utils)
4169 ("glib:bin" ,glib "bin") ; for glib-compile-resources
4170 ("intltool" ,intltool)
4171 ("itstool" ,itstool)
4172 ("vala" ,vala)
4173 ("xmllint" ,libxml2)))
4174 (inputs
4175 `(("gtk+" ,gtk+)
4176 ("json-glib" ,json-glib)
4177 ("libgee" ,libgee)
4178 ("librsvg" ,librsvg)
4179 ("qqwing" ,qqwing)))
4180 (home-page "https://wiki.gnome.org/Apps/Sudoku")
4181 (synopsis "Japanese logic game")
4182 (description
4183 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
4184 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
4185 possible while still providing features that make playing difficult Sudoku
4186 more fun.")
4187 (license license:gpl2+)))
4188
4189 (define-public gnome-terminal
4190 (package
4191 (name "gnome-terminal")
4192 (version "3.34.2")
4193 (source
4194 (origin
4195 (method url-fetch)
4196 (uri (string-append "mirror://gnome/sources/" name "/"
4197 (version-major+minor version) "/"
4198 name "-" version ".tar.xz"))
4199 (sha256
4200 (base32
4201 "0gc004f9b5k94gkdanmqjz3wqgnpny0l3nqm8zd19h4f0ps27mrv"))))
4202 (build-system glib-or-gtk-build-system)
4203 (arguments
4204 '(#:configure-flags
4205 (list "--disable-migration" "--disable-search-provider"
4206 "--without-nautilus-extension")
4207 #:phases
4208 (modify-phases %standard-phases
4209 (add-before 'configure 'patch-/bin/true
4210 (lambda _
4211 (substitute* "configure"
4212 (("/bin/true") (which "true"))))))))
4213 (native-inputs
4214 `(("pkg-config" ,pkg-config)
4215 ("desktop-file-utils" ,desktop-file-utils)
4216 ("intltool" ,intltool)
4217 ("itstool" ,itstool)
4218 ("xmllint" ,libxml2)))
4219 (propagated-inputs
4220 `(("dconf" ,dconf)))
4221 (inputs
4222 `(("gtk+" ,gtk+)
4223 ("vte" ,vte)
4224 ("gnutls" ,gnutls)
4225 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4226 ("util-linux" ,util-linux "lib")
4227 ("vala" ,vala)))
4228 (home-page "https://wiki.gnome.org/Apps/Terminal")
4229 (synopsis "Terminal emulator")
4230 (description
4231 "GNOME Terminal is a terminal emulator application for accessing a
4232 UNIX shell environment which can be used to run programs available on
4233 your system.
4234
4235 It supports several profiles, multiple tabs and implements several
4236 keyboard shortcuts.")
4237 (license license:gpl3+)))
4238
4239 (define-public colord
4240 (package
4241 (name "colord")
4242 (version "1.4.4")
4243 (source
4244 (origin
4245 (method url-fetch)
4246 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
4247 "colord-" version ".tar.xz"))
4248 (sha256
4249 (base32 "19f0938fr7nvvm3jr263dlknaq7md40zrac2npfyz25zc00yh3ws"))))
4250 (build-system meson-build-system)
4251 (arguments
4252 '(;; FIXME: One test fails:
4253 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
4254 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
4255 ;; application/x-zerosize
4256 #:tests? #f
4257 #:glib-or-gtk? #t
4258 #:configure-flags (list "-Dlocalstatedir=/var"
4259 ;; No dep on systemd.
4260 "-Dsystemd=false"
4261 ;; Wants to install to global completion dir;
4262 ;; punt.
4263 "-Dbash_completion=false"
4264 "-Ddaemon_user=colord"
4265 "-Dsane=true"
4266 "-Dvapi=true"
4267 ;; Requires spotread.
4268 "-Dargyllcms_sensor=false"
4269 ;; TODO: Requires docbook2x.
4270 "-Dman=false")
4271 #:phases
4272 (modify-phases %standard-phases
4273 (add-before 'configure 'patch-build-system
4274 (lambda* (#:key outputs #:allow-other-keys)
4275 (substitute* "rules/meson.build"
4276 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
4277 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))
4278 #t))
4279 (add-before 'configure 'set-sqlite3-file-name
4280 (lambda* (#:key inputs #:allow-other-keys)
4281 ;; "colormgr dump" works by invoking the "sqlite3" command.
4282 ;; Record its absolute file name.
4283 (let ((sqlite (assoc-ref inputs "sqlite")))
4284 (substitute* "client/cd-util.c"
4285 (("\"sqlite3\"")
4286 (string-append "\"" sqlite "/bin/sqlite3\"")))
4287 #t))))))
4288 (native-inputs
4289 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
4290 ("gettext" ,gettext-minimal)
4291 ("gobject-introspection" ,gobject-introspection)
4292 ("gtk-doc" ,gtk-doc)
4293 ("pkg-config" ,pkg-config)
4294 ("vala" ,vala)))
4295 (propagated-inputs
4296 ;; colord.pc refers to all these.
4297 `(("glib" ,glib)
4298 ("lcms" ,lcms)
4299 ("udev" ,eudev)))
4300 (inputs
4301 `(("dbus-glib" ,dbus-glib)
4302 ("gusb" ,gusb)
4303 ("libgudev" ,libgudev)
4304 ("libusb" ,libusb)
4305 ("polkit" ,polkit)
4306 ("python" ,python-wrapper)
4307 ("sqlite" ,sqlite)
4308 ("sane-backends" ,sane-backends)))
4309 (home-page "https://www.freedesktop.org/software/colord/")
4310 (synopsis "Color management service")
4311 (description "Colord is a system service that makes it easy to manage,
4312 install and generate color profiles to accurately color manage input and
4313 output devices.")
4314 (license license:gpl2+)))
4315
4316 (define-public geoclue
4317 (package
4318 (name "geoclue")
4319 (version "2.5.6")
4320 (source
4321 (origin
4322 (method url-fetch)
4323 (uri
4324 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
4325 version "/geoclue-" version ".tar.bz2"))
4326 (sha256
4327 (base32 "0a833x5apzabxj80ywvsh8crd635vni2i9v9c1p095f6hvmfc45k"))
4328 (patches (search-patches "geoclue-config.patch"))))
4329 (build-system meson-build-system)
4330 (arguments
4331 '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
4332 (native-inputs
4333 `(("pkg-config" ,pkg-config)
4334 ("gobject-introspection" ,gobject-introspection)
4335 ("modem-manager" ,modem-manager)
4336 ("libnotify" ,libnotify)
4337 ("gtk-doc", gtk-doc)
4338 ("intltool" ,intltool)))
4339 (inputs
4340 `(("avahi" ,avahi)
4341 ("glib:bin" ,glib "bin")
4342 ("glib-networking" ,glib-networking)
4343 ("json-glib" ,json-glib)
4344 ("libsoup" ,libsoup)))
4345 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
4346 (synopsis "Geolocation service")
4347 (description "Geoclue is a D-Bus service that provides location
4348 information. The primary goal of the Geoclue project is to make creating
4349 location-aware applications as simple as possible, while the secondary goal is
4350 to ensure that no application can access location information without explicit
4351 permission from user.")
4352 (license license:gpl2+)))
4353
4354 (define-public geocode-glib
4355 (package
4356 (name "geocode-glib")
4357 (version "3.26.1")
4358 (source (origin
4359 (method url-fetch)
4360 (uri (string-append "mirror://gnome/sources/geocode-glib/"
4361 (version-major+minor version) "/"
4362 "geocode-glib-" version ".tar.xz"))
4363 (sha256
4364 (base32
4365 "076ydfpyc4n5c9dbqmf26i4pilfi5jpw6cjcgrbgrjbndavnmajv"))))
4366 (build-system meson-build-system)
4367 (arguments
4368 `(#:phases
4369 (modify-phases %standard-phases
4370 ;; The tests require a bunch of locales.
4371 (add-before 'check 'set-locales
4372 (lambda* (#:key inputs #:allow-other-keys)
4373 (setenv "GUIX_LOCPATH"
4374 (string-append (assoc-ref inputs "glibc-locales")
4375 "/lib/locale"))
4376 #t)))))
4377 (native-inputs
4378 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4379 ("glibc-locales" ,glibc-locales) ; for tests
4380 ("gettext" ,gettext-minimal)
4381 ("gobject-introspection" ,gobject-introspection)
4382 ("gtk-doc" ,gtk-doc)
4383 ("pkg-config" ,pkg-config)
4384 ("json-glib" ,json-glib)))
4385 (propagated-inputs
4386 ;; geocode-glib-1.0.pc refers to GIO.
4387 `(("glib" ,glib)))
4388 (inputs
4389 `(("libsoup" ,libsoup)))
4390 (home-page "https://github.com/GNOME/geocode-glib/")
4391 (synopsis "Geocoding and reverse-geocoding library")
4392 (description
4393 "geocode-glib is a convenience library for geocoding (finding longitude,
4394 and latitude from an address) and reverse geocoding (finding an address from
4395 coordinates) using the Nominatim service. geocode-glib caches requests for
4396 faster results and to avoid unnecessary server load.")
4397 (license license:lgpl2.0+)))
4398
4399 (define-public upower
4400 (package
4401 (name "upower")
4402 (version "0.99.11")
4403 (source (origin
4404 (method url-fetch)
4405 (uri (string-append "https://upower.freedesktop.org/releases/"
4406 "upower-" version ".tar.xz"))
4407 (sha256
4408 (base32
4409 "1vxxvmz2cxb1qy6ibszaz5bskqdy9nd9fxspj9fv3gfmrjzzzdb4"))
4410 (patches (search-patches "upower-builddir.patch"))
4411 (modules '((guix build utils)))
4412 (snippet
4413 '(begin
4414 ;; Upstream commit
4415 ;; <https://cgit.freedesktop.org/upower/commit/?id=18457c99b68786cd729b315723d680e6860d9cfa>
4416 ;; moved 'dbus-1/system.d' from etc/ to share/. However,
4417 ;; 'dbus-configuration-directory' in (gnu services dbus)
4418 ;; expects it in etc/. Thus, move it back to its previous
4419 ;; location.
4420 (substitute* "src/Makefile.in"
4421 (("^dbusconfdir =.*$")
4422 "dbusconfdir = $(sysconfdir)/dbus-1/system.d\n"))
4423 #t))))
4424 (build-system glib-or-gtk-build-system)
4425 (arguments
4426 '(#:phases
4427 (modify-phases %standard-phases
4428 (add-before 'check 'pre-check
4429 (lambda* (#:key inputs #:allow-other-keys)
4430 (let ((umockdev (string-append (assoc-ref inputs "umockdev")
4431 "/lib")))
4432 (setenv "LD_LIBRARY_PATH" umockdev))
4433 #t)))
4434 #:configure-flags (list "--localstatedir=/var"
4435 (string-append "--with-udevrulesdir="
4436 (assoc-ref %outputs "out")
4437 "/lib/udev/rules.d"))))
4438 (native-inputs
4439 `(("gobject-introspection" ,gobject-introspection)
4440 ("pkg-config" ,pkg-config)
4441 ("intltool" ,intltool)
4442 ("python" ,python)
4443
4444 ;; For tests.
4445 ("python-dbus" ,python-dbus)
4446 ("python-dbusmock" ,python-dbusmock)
4447 ("python-pygobject" ,python-pygobject)
4448 ("umockdev" ,umockdev)
4449
4450 ;; For man pages.
4451 ("libxslt" ,libxslt) ;for 'xsltproc'
4452 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
4453 ("docbook-xsl" ,docbook-xsl)))
4454 (inputs
4455 `(("dbus-glib" ,dbus-glib)
4456 ("libgudev" ,libgudev)
4457 ("libusb" ,libusb)))
4458 (propagated-inputs
4459 ;; In Requires of upower-glib.pc.
4460 `(("glib" ,glib)))
4461 (home-page "https://upower.freedesktop.org/")
4462 (synopsis "System daemon for managing power devices")
4463 (description
4464 "UPower is an abstraction for enumerating power devices,
4465 listening to device events and querying history and statistics. Any
4466 application or service on the system can access the org.freedesktop.UPower
4467 service via the system message bus.")
4468 (license license:gpl2+)))
4469
4470 (define-public libgweather
4471 (package
4472 (name "libgweather")
4473 (version "3.34.0")
4474 (source (origin
4475 (method url-fetch)
4476 (uri (string-append "mirror://gnome/sources/" name "/"
4477 (version-major+minor version) "/"
4478 name "-" version ".tar.xz"))
4479 (sha256
4480 (base32
4481 "1fgiqswkhiaijanml3mb16ajn5aanrk7x6yiwagp9n9rssam6902"))))
4482 (build-system meson-build-system)
4483 (arguments
4484 `(#:tests? #f ; one of two tests requires network access
4485 #:configure-flags
4486 `(,(string-append "-Dzoneinfo_dir="
4487 (assoc-ref %build-inputs "tzdata")
4488 "/share/zoneinfo"))))
4489 (native-inputs
4490 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4491 ("gobject-introspection" ,gobject-introspection)
4492 ("pkg-config" ,pkg-config)
4493 ("vala" ,vala)
4494 ("intltool" ,intltool)))
4495 (propagated-inputs
4496 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
4497 ;; libsoup.
4498 `(("gtk+" ,gtk+)
4499 ("gdk-pixbuf" ,gdk-pixbuf)
4500 ("libxml2" ,libxml2)
4501 ("libsoup" ,libsoup)
4502 ("geocode-glib" ,geocode-glib)))
4503 (inputs
4504 `(("tzdata" ,tzdata)))
4505 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
4506 (synopsis "Location, time zone, and weather library for GNOME")
4507 (description
4508 "libgweather is a library to access weather information from online
4509 services for numerous locations.")
4510 (license license:gpl2+)))
4511
4512 (define-public gnome-settings-daemon
4513 (package
4514 (name "gnome-settings-daemon")
4515 (version "3.34.1")
4516 (source
4517 (origin
4518 (method url-fetch)
4519 (uri (string-append "mirror://gnome/sources/" name "/"
4520 (version-major+minor version) "/"
4521 name "-" version ".tar.xz"))
4522 (sha256
4523 (base32
4524 "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"))))
4525 (build-system meson-build-system)
4526 (arguments
4527 `(#:glib-or-gtk? #t
4528 #:configure-flags
4529 (list (string-append "-Dudev_dir="
4530 (assoc-ref %outputs "out")
4531 "/lib/udev/rules.d/")
4532 "-Dsystemd=false"
4533 ;; Otherwise, the RUNPATH will lack the final path component.
4534 (string-append "-Dc_link_args=-Wl,-rpath="
4535 (assoc-ref %outputs "out")
4536 "/lib/gnome-settings-daemon-3.0"))
4537 ;; Color management test can't reach the colord system service.
4538 #:tests? #f))
4539 (native-inputs
4540 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4541 ("pkg-config" ,pkg-config)
4542 ("intltool" ,intltool)
4543 ("xsltproc" ,libxslt)
4544 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4545 ("docbook-xml" ,docbook-xml-4.2)
4546 ("docbook-xsl" ,docbook-xsl)))
4547 (inputs
4548 `(("alsa-lib" ,alsa-lib)
4549 ("colord" ,colord)
4550 ("libgudev" ,libgudev)
4551 ("upower" ,upower)
4552 ("polkit" ,polkit)
4553 ("pulseaudio" ,pulseaudio)
4554 ("libcanberra" ,libcanberra)
4555 ("libx11" ,libx11)
4556 ("libxtst" ,libxtst)
4557 ("lcms" ,lcms)
4558 ("libnotify" ,libnotify)
4559 ("geoclue" ,geoclue)
4560 ("geocode-glib" ,geocode-glib)
4561 ("libgweather" ,libgweather)
4562 ("gnome-desktop" ,gnome-desktop)
4563 ("nss" ,nss)
4564 ("cups" ,cups)
4565 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4566 ("libwacom" ,libwacom)
4567 ("librsvg" ,librsvg)
4568 ("xf86-input-wacom" ,xf86-input-wacom)
4569 ("wayland" ,wayland)
4570 ("network-manager" ,network-manager)
4571 ("gcr" ,gcr)
4572 ("modem-manager" ,modem-manager)))
4573 (home-page "https://www.gnome.org")
4574 (synopsis "GNOME settings daemon")
4575 (description
4576 "This package contains the daemon responsible for setting the various
4577 parameters of a GNOME session and the applications that run under it. It
4578 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
4579 settings, themes, mouse settings, and startup of other daemons.")
4580 (license license:gpl2+)))
4581
4582 (define-public totem-pl-parser
4583 (package
4584 (name "totem-pl-parser")
4585 (version "3.26.3")
4586 (source (origin
4587 (method url-fetch)
4588 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
4589 (version-major+minor version) "/"
4590 "totem-pl-parser-" version ".tar.xz"))
4591 (sha256
4592 (base32
4593 "13a45py2j1r9967zgww8kd24bn2fhycd4m3kzr90sxx9l2w03z8f"))))
4594 (build-system meson-build-system)
4595 (arguments
4596 ;; FIXME: Tests require gvfs.
4597 `(#:tests? #f))
4598 (native-inputs
4599 `(("intltool" ,intltool)
4600 ("glib" ,glib "bin")
4601 ("gobject-introspection" ,gobject-introspection)
4602 ("pkg-config" ,pkg-config)))
4603 (propagated-inputs
4604 `(("glib" ,glib)
4605 ("gmime" ,gmime)
4606 ("libarchive" ,libarchive)
4607 ("libgcrypt" ,libgcrypt)
4608 ("libxml2" ,libxml2)))
4609 (inputs
4610 `(("libsoup" ,libsoup)))
4611 (home-page "https://projects.gnome.org/totem")
4612 (synopsis "Library to parse and save media playlists for GNOME")
4613 (description "Totem-pl-parser is a GObjects-based library to parse and save
4614 playlists in a variety of formats.")
4615 (license license:lgpl2.0+)))
4616
4617 (define-public aisleriot
4618 (package
4619 (name "aisleriot")
4620 (version "3.22.9")
4621 (source (origin
4622 (method url-fetch)
4623 (uri (string-append "mirror://gnome/sources/aisleriot/"
4624 (version-major+minor version) "/"
4625 "aisleriot-" version ".tar.xz"))
4626 (sha256
4627 (base32
4628 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
4629 (build-system glib-or-gtk-build-system)
4630 (arguments
4631 '(#:configure-flags
4632 '("--with-platform=gtk-only"
4633 "--with-card-theme-formats=svg")))
4634 (native-inputs
4635 `(("desktop-file-utils" ,desktop-file-utils)
4636 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
4637 ("intltool" ,intltool)
4638 ("itstool" ,itstool)
4639 ("pkg-config" ,pkg-config)
4640 ("xmllint" ,libxml2)))
4641 (inputs
4642 `(("gtk+" ,gtk+)
4643 ("guile" ,guile-2.2)
4644 ("libcanberra" ,libcanberra)
4645 ("librsvg" ,librsvg)))
4646 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
4647 (synopsis "Solitaire card games")
4648 (description
4649 "Aisleriot (also known as Solitaire or sol) is a collection of card games
4650 which are easy to play with the aid of a mouse.")
4651 (license license:gpl3+)))
4652
4653 (define-public amtk
4654 (package
4655 (name "amtk")
4656 (version "5.0.2")
4657 (source (origin
4658 (method url-fetch)
4659 (uri (string-append "mirror://gnome/sources/amtk/"
4660 (version-major+minor version) "/"
4661 "amtk-" version ".tar.xz"))
4662 (sha256
4663 (base32
4664 "11jgz2i9wjzv4alrxl1qyxiapb52w7vs5ygfgsw0qgdap8gqkk3i"))))
4665 (build-system gnu-build-system)
4666 (arguments
4667 '(#:configure-flags '("--enable-gtk-doc")))
4668 (native-inputs
4669 `(("gobject-introspection" ,gobject-introspection)
4670 ("glib:bin" ,glib "bin") ; for glib-mkenums
4671 ("gtk-doc" ,gtk-doc)
4672 ("pkg-config" ,pkg-config)))
4673 (inputs
4674 `(("glib" ,glib)
4675 ("gtk+" ,gtk+)))
4676 (home-page "https://wiki.gnome.org/Projects/Amtk")
4677 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
4678 (description
4679 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
4680 It is a basic GtkUIManager replacement based on GAction. It is suitable for
4681 both a traditional UI or a modern UI with a GtkHeaderBar.")
4682 (license license:lgpl2.1+)))
4683
4684 (define-public devhelp
4685 (package
4686 (name "devhelp")
4687 (version "3.34.0")
4688 (source (origin
4689 (method url-fetch)
4690 (uri (string-append "mirror://gnome/sources/" name "/"
4691 (version-major+minor version) "/"
4692 name "-" version ".tar.xz"))
4693 (sha256
4694 (base32
4695 "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"))))
4696 (build-system meson-build-system)
4697 (arguments
4698 '(#:glib-or-gtk? #t
4699 #:phases
4700 (modify-phases %standard-phases
4701 (add-after 'unpack 'skip-gtk-update-icon-cache
4702 ;; Don't create 'icon-theme.cache'.
4703 (lambda _
4704 (substitute* "meson_post_install.py"
4705 (("gtk-update-icon-cache") "true"))
4706 #t)))))
4707 (native-inputs
4708 `(("intltool" ,intltool)
4709 ("itstool" ,itstool)
4710 ("gobject-introspection" ,gobject-introspection)
4711 ("glib:bin" ,glib "bin") ; for glib-mkmenus
4712 ("pkg-config" ,pkg-config)))
4713 (inputs
4714 `(("amtk" ,amtk)
4715 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
4716 ("webkitgtk" ,webkitgtk)))
4717 (home-page "https://wiki.gnome.org/Apps/Devhelp")
4718 (synopsis "API documentation browser for GNOME")
4719 (description
4720 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
4721 natively with GTK-Doc (the API reference system developed for GTK+ and used
4722 throughout GNOME for API documentation).")
4723 (license license:gpl2+)))
4724
4725 (define-public cogl
4726 (package
4727 (name "cogl")
4728 (version "1.22.8")
4729 (source
4730 (origin
4731 (method url-fetch)
4732 (uri (string-append "mirror://gnome/sources/cogl/"
4733 (version-major+minor version) "/"
4734 "cogl-" version ".tar.xz"))
4735 (sha256
4736 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
4737 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
4738 ;; cogl, corresponding changes may be appropriate in mutter as well.
4739 (build-system gnu-build-system)
4740 (native-inputs
4741 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4742 ("gobject-introspection" ,gobject-introspection)
4743 ("xorg-server" ,xorg-server-for-tests)
4744 ("pkg-config" ,pkg-config)))
4745 (propagated-inputs
4746 `(("glib" ,glib)
4747 ("gdk-pixbuf" ,gdk-pixbuf)
4748 ("libx11" ,libx11)
4749 ("libxext" ,libxext)
4750 ("libxfixes" ,libxfixes)
4751 ("libxdamage" ,libxdamage)
4752 ("libxcomposite" ,libxcomposite)
4753 ("libxrandr" ,libxrandr)))
4754 (inputs
4755 `(("mesa" ,mesa)
4756 ("cairo" ,cairo)
4757 ("pango" ,pango)
4758 ("gstreamer" ,gstreamer)
4759 ("gst-plugins-base" ,gst-plugins-base)
4760 ("wayland" ,wayland)))
4761 (arguments
4762 `(#:disallowed-references (,xorg-server-for-tests)
4763 #:configure-flags (list "--enable-cogl-gst"
4764 "--enable-wayland-egl-platform"
4765 "--enable-wayland-egl-server"
4766
4767 ;; Arrange to pass an absolute file name to
4768 ;; dlopen for libGL.so.
4769 (string-append "--with-gl-libname="
4770 (assoc-ref %build-inputs "mesa")
4771 "/lib/libGL.so"))
4772 #:phases
4773 (modify-phases %standard-phases
4774 (add-after 'unpack 'fix-build-with-mesa-20
4775 (lambda _
4776 ;; Work around a problem with Mesa 20 where some macros used by
4777 ;; Cogl went missing from eglext.h. This can likely be removed
4778 ;; for newer versions of Cogl or Mesa.
4779 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
4780 (substitute* '("configure"
4781 "cogl/winsys/cogl-winsys-egl-kms.c")
4782 (("#include <EGL/eglext.h>" all)
4783 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
4784 #t))
4785 (add-before 'check 'start-xorg-server
4786 (lambda* (#:key tests? inputs #:allow-other-keys)
4787 (if tests?
4788 (begin
4789 ;; The test suite requires a running X server.
4790 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
4791 (assoc-ref inputs "xorg-server")))
4792 (setenv "DISPLAY" ":1")
4793 #t)
4794 (format #t "test suite not run~%"))
4795 #t)))))
4796 (home-page "https://www.cogl3d.org")
4797 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
4798 (description
4799 "Cogl is a small library for using 3D graphics hardware to draw pretty
4800 pictures. The API departs from the flat state machine style of OpenGL and is
4801 designed to make it easy to write orthogonal components that can render
4802 without stepping on each others toes.")
4803 (license (list license:expat ; most of the code
4804 license:bsd-3 ; cogl/cogl-point-in-poly.c
4805 license:sgifreeb2.0 ; cogl-path/tesselator/
4806 license:asl2.0)))) ; examples/android/
4807
4808 (define-public clutter
4809 (package
4810 (name "clutter")
4811 (version "1.26.2")
4812 (source
4813 (origin
4814 (method url-fetch)
4815 (uri (string-append "mirror://gnome/sources/" name "/"
4816 (version-major+minor version) "/"
4817 name "-" version ".tar.xz"))
4818 (sha256
4819 (base32
4820 "0mif1qnrpkgxi43h7pimim6w6zwywa16ixcliw0yjm9hk0a368z7"))))
4821 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
4822 ;; to clutter, corresponding changes may be appropriate in mutter as well.
4823 (build-system gnu-build-system)
4824 (outputs '("out"
4825 "doc")) ;9 MiB of gtk-doc HTML pages
4826 (native-inputs
4827 `(("glib:bin" ,glib "bin") ; for glib-genmarshal
4828 ("gobject-introspection" ,gobject-introspection)
4829 ("pkg-config" ,pkg-config)
4830 ("xsltproc" ,libxslt)))
4831 (propagated-inputs
4832 `(("cogl" ,cogl)
4833 ("cairo" ,cairo)
4834 ("atk" ,atk)
4835 ("gtk+" ,gtk+)
4836 ("json-glib" ,json-glib)
4837 ("glib" ,glib)
4838 ("libxcomposite" ,libxcomposite)
4839 ("libxdamage" ,libxdamage)
4840 ("libxext" ,libxext)
4841 ("xinput" ,xinput)))
4842 (inputs
4843 `(("libxkbcommon" ,libxkbcommon)
4844 ("udev" ,eudev)))
4845 (arguments
4846 `(#:configure-flags (list "--enable-x11-backend=yes"
4847
4848 ;; This produces share/doc/{clutter,cally}.
4849 (string-append "--with-html-dir="
4850 (assoc-ref %outputs "doc")
4851 "/share/doc"))
4852 ;; XXX FIXME: Get test suite working. It would probably fail in the
4853 ;; same way the cogl tests fail, since clutter is based on cogl.
4854 #:tests? #f))
4855 (home-page "http://www.clutter-project.org")
4856 (synopsis "OpenGL-based interactive canvas library")
4857 (description
4858 "Clutter is an OpenGL-based interactive canvas library, designed for
4859 creating fast, mainly 2D single window applications such as media box UIs,
4860 presentations, kiosk style applications and so on.")
4861 (license license:lgpl2.0+)))
4862
4863 (define-public clutter-gtk
4864 (package
4865 (name "clutter-gtk")
4866 (version "1.8.4")
4867 (source
4868 (origin
4869 (method url-fetch)
4870 (uri (string-append "mirror://gnome/sources/" name "/"
4871 (version-major+minor version) "/"
4872 name "-" version ".tar.xz"))
4873 (sha256
4874 (base32
4875 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
4876 (build-system gnu-build-system)
4877 (native-inputs
4878 `(("pkg-config" ,pkg-config)
4879 ("gobject-introspection" ,gobject-introspection)))
4880 (propagated-inputs
4881 ;; clutter-gtk.pc refers to all these.
4882 `(("clutter" ,clutter)
4883 ("gtk+" ,gtk+)))
4884 (home-page "http://www.clutter-project.org")
4885 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
4886 (description
4887 "Clutter is an OpenGL-based interactive canvas library, designed for
4888 creating fast, mainly 2D single window applications such as media box UIs,
4889 presentations, kiosk style applications and so on.")
4890 (license license:lgpl2.0+)))
4891
4892 (define-public clutter-gst
4893 (package
4894 (name "clutter-gst")
4895 (version "3.0.27")
4896 (source
4897 (origin
4898 (method url-fetch)
4899 (uri (string-append "mirror://gnome/sources/clutter-gst/"
4900 (version-major+minor version) "/"
4901 "clutter-gst-" version ".tar.xz"))
4902 (sha256
4903 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
4904 (build-system gnu-build-system)
4905 (native-inputs
4906 `(("glib:bin" ,glib "bin") ; for glib-mkenums
4907 ("pkg-config" ,pkg-config)
4908 ("gobject-introspection" ,gobject-introspection)))
4909 (inputs
4910 `(("clutter" ,clutter)
4911 ("gstreamer" ,gstreamer)
4912 ("gst-plugins-base" ,gst-plugins-base)))
4913 (home-page "http://www.clutter-project.org")
4914 (synopsis "Integration library for using GStreamer with Clutter")
4915 (description
4916 "Clutter-Gst is an integration library for using GStreamer with Clutter.
4917 It provides a GStreamer sink to upload frames to GL and an actor that
4918 implements the ClutterGstPlayer interface using playbin. Clutter is an
4919 OpenGL-based interactive canvas library.")
4920 (license license:lgpl2.0+)))
4921
4922 (define-public libchamplain
4923 (package
4924 (name "libchamplain")
4925 (version "0.12.16")
4926 (source (origin
4927 (method url-fetch)
4928 (uri (string-append
4929 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
4930 version ".tar.xz"))
4931 (sha256
4932 (base32
4933 "13chvc2n074i0jw5jlb8i7cysda4yqx58ca6y3mrlrl9g37k2zja"))))
4934 (build-system gnu-build-system)
4935 (arguments '(#:configure-flags '("--enable-vala")))
4936 (native-inputs
4937 `(("gobject-introspection" ,gobject-introspection)
4938 ("pkg-config" ,pkg-config)
4939 ("vala" ,vala)))
4940 (propagated-inputs
4941 `(("libsoup" ,libsoup)
4942 ("sqlite" ,sqlite)
4943 ("clutter" ,clutter)
4944 ("clutter-gtk" ,clutter-gtk)
4945 ("glib:bin" ,glib "bin") ;glib-mkenums, etc.
4946 ("cairo" ,cairo)
4947 ("gtk+3" ,gtk+)
4948 ("glib" ,glib)))
4949 (home-page "https://projects.gnome.org/libchamplain/")
4950 (synopsis "C library providing a ClutterActor to display maps")
4951 (description
4952 "libchamplain is a C library providing a ClutterActor to display maps.
4953 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
4954 and Perl bindings are also available. It supports numerous free map sources
4955 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
4956 (license license:lgpl2.1+)))
4957
4958 (define-public gom
4959 (package
4960 (name "gom")
4961 (version "0.3.2")
4962 (source
4963 (origin
4964 (method url-fetch)
4965 (uri (string-append "mirror://gnome/sources/gom/"
4966 (version-major+minor version) "/"
4967 "gom-" version ".tar.xz"))
4968 (sha256
4969 (base32
4970 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
4971 (build-system gnu-build-system)
4972 (native-inputs
4973 `(("intltool" ,intltool)
4974 ("pkg-config" ,pkg-config)
4975 ("gobject-introspection" ,gobject-introspection)))
4976 (inputs
4977 `(("glib" ,glib)
4978 ("gdk-pixbuf" ,gdk-pixbuf)
4979 ("sqlite" ,sqlite)))
4980 ;; XXX TODO: Figure out how to run the test suite.
4981 (arguments `(#:tests? #f))
4982 (home-page "https://wiki.gnome.org/Projects/Gom")
4983 (synopsis "Object mapper from GObjects to SQLite")
4984 (description
4985 "Gom provides an object mapper from GObjects to SQLite. It helps you
4986 write applications that need to store structured data as well as make complex
4987 queries upon that data.")
4988 (license license:lgpl2.1+)))
4989
4990 (define-public libgnome-games-support
4991 (package
4992 (name "libgnome-games-support")
4993 (version "1.4.4")
4994 (source (origin
4995 (method url-fetch)
4996 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
4997 (version-major+minor version) "/"
4998 "libgnome-games-support-" version ".tar.xz"))
4999 (sha256
5000 (base32
5001 "1zkbmnrn161p74qg6jhsn9f66yjjzxfm13pl1klv9av8k1bax9pq"))))
5002 (build-system gnu-build-system)
5003 (arguments
5004 '(#:phases
5005 (modify-phases %standard-phases
5006 (add-before 'check 'pre-check
5007 (lambda _
5008 ;; Tests require a writable HOME.
5009 (setenv "HOME" (getcwd))
5010 #t)))))
5011 (native-inputs
5012 `(("intltool" ,intltool)
5013 ("pkg-config" ,pkg-config)
5014 ("vala" ,vala)))
5015 (propagated-inputs
5016 ;; Required by libgnome-games-support-1.0.pc
5017 `(("gtk+" ,gtk+)
5018 ("libgee" ,libgee)))
5019 (home-page "https://www.gnome.org/")
5020 (synopsis "Useful functionality shared among GNOME games")
5021 (description
5022 "libgnome-games-support is a small library intended for internal use by
5023 GNOME Games, but it may be used by others.")
5024 (license license:lgpl3+)))
5025
5026 (define-public gnome-klotski
5027 (package
5028 (name "gnome-klotski")
5029 (version "3.34.0")
5030 (source (origin
5031 (method url-fetch)
5032 (uri (string-append "mirror://gnome/sources/" name "/"
5033 (version-major+minor version) "/"
5034 name "-" version ".tar.xz"))
5035 (sha256
5036 (base32
5037 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
5038 (build-system meson-build-system)
5039 (arguments
5040 '(#:glib-or-gtk? #t
5041 #:phases
5042 (modify-phases %standard-phases
5043 (add-after 'unpack 'skip-gtk-update-icon-cache
5044 ;; Don't create 'icon-theme.cache'.
5045 (lambda _
5046 (substitute* "build-aux/meson_post_install.py"
5047 (("gtk-update-icon-cache") (which "true")))
5048 #t)))))
5049 (native-inputs
5050 `(("desktop-file-utils" ,desktop-file-utils)
5051 ("glib:bin" ,glib "bin") ; for glib-compile-resources
5052 ("intltool" ,intltool)
5053 ("itstool" ,itstool)
5054 ("pkg-config" ,pkg-config)
5055 ("vala" ,vala)
5056 ("xmllint" ,libxml2)))
5057 (inputs
5058 `(("gtk+" ,gtk+)
5059 ("libgnome-games-support" ,libgnome-games-support)
5060 ("librsvg" ,librsvg)))
5061 (home-page "https://wiki.gnome.org/Apps/Klotski")
5062 (synopsis "Sliding block puzzles")
5063 (description
5064 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
5065 the patterned block to the area bordered by green markers. To do so, you will
5066 need to slide other blocks out of the way. Complete each puzzle in as few moves
5067 as possible!")
5068 (license license:gpl2+)))
5069
5070 (define-public grilo
5071 (package
5072 (name "grilo")
5073 (version "0.3.10")
5074 (source
5075 (origin
5076 (method url-fetch)
5077 (uri (string-append "mirror://gnome/sources/" name "/"
5078 (version-major+minor version) "/"
5079 name "-" version ".tar.xz"))
5080 (sha256
5081 (base32
5082 "1s7ilyywf18q26aj5c4709kfizqywjlnacp4jzmj9v9i9kkv4i3y"))))
5083 (build-system meson-build-system)
5084 (native-inputs
5085 `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
5086 ("intltool" ,intltool)
5087 ("pkg-config" ,pkg-config)
5088 ("gobject-introspection" ,gobject-introspection)
5089 ("gtk-doc" ,gtk-doc)
5090 ("vala" ,vala)))
5091 (inputs
5092 `(("cyrus-sasl" ,cyrus-sasl)
5093 ("glib" ,glib)
5094 ("gtk+" ,gtk+)
5095 ("libxml2" ,libxml2)
5096 ("liboauth" ,liboauth)
5097 ("libsoup" ,libsoup)
5098 ("totem-pl-parser" ,totem-pl-parser)))
5099 (native-search-paths
5100 (list (search-path-specification
5101 (variable "GRL_PLUGIN_PATH")
5102 (files (list (string-append "lib/grilo-"
5103 (version-major+minor version)))))))
5104 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
5105 (synopsis "Framework for discovering and browsing media")
5106 (description
5107 "Grilo is a framework focused on making media discovery and browsing easy
5108 for application developers.")
5109 (license license:lgpl2.1+)))
5110
5111 (define-public grilo-plugins
5112 (package
5113 (name "grilo-plugins")
5114 (version "0.3.10")
5115 (source
5116 (origin
5117 (method url-fetch)
5118 (uri (string-append "mirror://gnome/sources/" name "/"
5119 (version-major+minor version) "/"
5120 name "-" version ".tar.xz"))
5121 (sha256
5122 (base32
5123 "0jldaixc4kzycn5v8ixkjld1n0z3dp0l1p3vchgdwpvdvc7kcfw0"))))
5124 (build-system meson-build-system)
5125 (native-inputs
5126 `(("gettext" ,gettext-minimal)
5127 ("glib:bin" ,glib "bin")
5128 ("gtk+:bin" ,gtk+ "bin")
5129 ("itstool" ,itstool)
5130 ("pkg-config" ,pkg-config)))
5131 ;; TODO: ahavi, gstreamer
5132 (inputs
5133 `(("grilo" ,grilo)
5134 ;("gmime" ,gmime) ; unused
5135 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
5136 ("gom" ,gom)
5137 ;("gssdp" ,gssdp) ; unused
5138 ;("gupnp" ,gupnp) ; unused
5139 ;("gupnp-av" ,gupnp-av) ; unused
5140 ("json-glib" ,json-glib)
5141 ("avahi" ,avahi)
5142 ("libgdata" ,libgdata)
5143 ("libmediaart" ,libmediaart)
5144 ;("librest" ,rest) ; unused
5145 ("libsoup" ,libsoup)
5146 ("totam-pl-parser" ,totem-pl-parser)
5147 ("tracker" ,tracker))) ; unused because it's too old
5148 (arguments
5149 `(#:glib-or-gtk? #t
5150 ;;Disable lua-factory as it needs missing dependencies
5151 #:configure-flags '("-Denable-lua-factory=no")))
5152 (home-page "https://live.gnome.org/Grilo")
5153 (synopsis "Plugins for the Grilo media discovery library")
5154 (description
5155 "Grilo is a framework focused on making media discovery and browsing easy
5156 for application developers. This package provides plugins for common media
5157 discovery protocols.")
5158 (license license:lgpl2.1+)))
5159
5160 (define-public totem
5161 (package
5162 (name "totem")
5163 (version "3.34.1")
5164 (source
5165 (origin
5166 (method url-fetch)
5167 (uri (string-append "mirror://gnome/sources/totem/"
5168 (version-major+minor version) "/"
5169 "totem-" version ".tar.xz"))
5170 (sha256
5171 (base32
5172 "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b"))))
5173 (build-system meson-build-system)
5174 (native-inputs
5175 `(("pkg-config" ,pkg-config)
5176 ("desktop-file-utils" ,desktop-file-utils)
5177 ("gobject-introspection" ,gobject-introspection)
5178 ("glib:bin" ,glib "bin") ;for 'glib-mkenums'
5179 ("intltool" ,intltool)
5180 ("itstool" ,itstool)
5181 ("xmllint" ,libxml2)
5182 ("xorg-server" ,xorg-server-for-tests)))
5183 (propagated-inputs
5184 `(("dconf" ,dconf)))
5185 (inputs
5186 `(("gtk+" ,gtk+)
5187 ("gdk-pixbuf" ,gdk-pixbuf)
5188 ("atk" ,atk)
5189 ("cairo" ,cairo)
5190 ("dbus-glib" ,dbus-glib)
5191 ("clutter" ,clutter)
5192 ("clutter-gtk" ,clutter-gtk)
5193 ("clutter-gst" ,clutter-gst)
5194 ("xorgproto" ,xorgproto)
5195 ("libxxf86vm" ,libxxf86vm)
5196 ("libxtst" ,libxtst)
5197 ("libxrandr" ,libxrandr)
5198 ("libxml2" ,libxml2)
5199 ("libsoup" ,libsoup)
5200 ("libpeas" ,libpeas)
5201 ("librsvg" ,librsvg)
5202 ("lirc" ,lirc)
5203 ("gnome-desktop" ,gnome-desktop)
5204 ("gstreamer" ,gstreamer)
5205 ("gst-plugins-base" ,gst-plugins-base)
5206 ("gst-plugins-good" ,gst-plugins-good)
5207 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5208 ("adwaita-icon-theme" ,adwaita-icon-theme)
5209 ("python" ,python)
5210 ("python-pygobject" ,python-pygobject)
5211 ("totem-pl-parser" ,totem-pl-parser)
5212 ("grilo" ,grilo)
5213 ("grilo-plugins" ,grilo-plugins)
5214 ("vala" ,vala)))
5215 (arguments
5216 `(#:glib-or-gtk? #t
5217
5218 ;; Disable automatic GStreamer plugin installation via PackageKit and
5219 ;; all that.
5220 #:configure-flags '("-D" "enable-easy-codec-installation=no"
5221
5222 ;; Do not build .a files for the plugins, it's
5223 ;; completely useless. This saves 2 MiB.
5224 "--default-library" "shared")
5225 #:phases
5226 (modify-phases %standard-phases
5227 (add-after 'unpack 'skip-gtk-update-icon-cache
5228 ;; Don't create 'icon-theme.cache'.
5229 (lambda _
5230 (substitute* "meson_post_install.py"
5231 (("gtk-update-icon-cache") "true"))
5232 #t))
5233 (add-before
5234 'install 'disable-cache-generation
5235 (lambda _
5236 (setenv "DESTDIR" "/")
5237 #t))
5238 (add-before
5239 'check 'pre-check
5240 (lambda _
5241 ;; Tests require a running X server.
5242 (system "Xvfb :1 &")
5243 (setenv "DISPLAY" ":1")
5244 #t))
5245 (add-after
5246 'install 'wrap-totem
5247 (lambda* (#:key inputs outputs #:allow-other-keys)
5248 (let ((out (assoc-ref outputs "out"))
5249 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5250 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
5251 (wrap-program (string-append out "/bin/totem")
5252 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5253 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
5254 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
5255 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
5256 #t)))))
5257 (home-page "https://wiki.gnome.org/Apps/Videos")
5258 (synopsis "Simple media player for GNOME based on GStreamer")
5259 (description "Totem is a simple yet featureful media player for GNOME
5260 which can read a large number of file formats.")
5261 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
5262 ;; to be used and distributed together with GStreamer and Totem. See
5263 ;; file://COPYING in the source distribution for details.
5264 (license license:gpl2+)))
5265
5266 (define-public rhythmbox
5267 (package
5268 (name "rhythmbox")
5269 (version "3.4.4")
5270 (source (origin
5271 (method url-fetch)
5272 (uri (string-append "mirror://gnome/sources/rhythmbox/"
5273 (version-major+minor version) "/"
5274 "rhythmbox-" version ".tar.xz"))
5275 (sha256
5276 (base32
5277 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
5278 (build-system glib-or-gtk-build-system)
5279 (arguments
5280 `(#:configure-flags
5281 (list "--enable-lirc"
5282 "--enable-python"
5283 "--enable-vala"
5284 "--with-brasero"
5285 "--with-gudev"
5286 "--with-libsecret")
5287 #:phases
5288 (modify-phases %standard-phases
5289 (add-after
5290 'install 'wrap-rhythmbox
5291 (lambda* (#:key inputs outputs #:allow-other-keys)
5292 (let ((out (assoc-ref outputs "out"))
5293 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
5294 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
5295 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
5296 (python-path (getenv "PYTHONPATH")))
5297 (wrap-program (string-append out "/bin/rhythmbox")
5298 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
5299 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
5300 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
5301 `("PYTHONPATH" ":" prefix (,python-path))))
5302 #t)))))
5303 (propagated-inputs
5304 `(("dconf" ,dconf)))
5305 (native-inputs
5306 `(("itstool" ,itstool)
5307 ("intltool" ,intltool)
5308 ("glib" ,glib "bin")
5309 ("gobject-introspection" ,gobject-introspection)
5310 ("desktop-file-utils" ,desktop-file-utils)
5311 ("pkg-config" ,pkg-config)
5312 ("xmllint" ,libxml2)))
5313 (inputs
5314 `(("json-glib" ,json-glib)
5315 ("tdb" ,tdb)
5316 ("gnome-desktop" ,gnome-desktop)
5317 ("python" ,python)
5318 ("python-pygobject" ,python2-pygobject)
5319 ("vala" ,vala)
5320 ("gmime" ,gmime)
5321 ("adwaita-icon-theme" ,adwaita-icon-theme)
5322 ("grilo" ,grilo)
5323 ("grilo-plugins" ,grilo-plugins)
5324 ("gstreamer" ,gstreamer)
5325 ("gst-plugins-base" ,gst-plugins-base)
5326 ("gst-plugins-good" ,gst-plugins-good)
5327 ("totem-pl-parser" ,totem-pl-parser)
5328 ("libgudev" ,libgudev)
5329 ;;("libmtp" ,libmtp) FIXME: Not detected
5330 ("libsecret" ,libsecret)
5331 ("libsoup" ,libsoup)
5332 ("libnotify" ,libnotify)
5333 ("libpeas" ,libpeas)
5334 ("lirc" ,lirc)
5335 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
5336 ;;("clutter" ,clutter)
5337 ;;("clutter-gtk" ,clutter-gtk)
5338 ;;("clutter-gst" ,clutter-gst)
5339 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5340 ("atk" ,atk)
5341 ("pango" ,pango)
5342 ("gtk+" ,gtk+)
5343 ;; TODO:
5344 ;; * libgpod
5345 ;; * mx
5346 ("brasero" ,brasero)))
5347 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
5348 (synopsis "Music player for GNOME")
5349 (description "Rhythmbox is a music playing application for GNOME. It
5350 supports playlists, song ratings, and any codecs installed through gstreamer.")
5351 (license license:gpl2+)))
5352
5353 (define-public eog
5354 (package
5355 (name "eog")
5356 (version "3.34.1")
5357 (source (origin
5358 (method url-fetch)
5359 (uri (string-append "mirror://gnome/sources/" name "/"
5360 (version-major+minor version) "/"
5361 name "-" version ".tar.xz"))
5362 (sha256
5363 (base32
5364 "0b7ld4azs9xbdjsk9b91ywhdzvxgajhndiwiivxjzbr0hjgp7c7x"))))
5365 (build-system meson-build-system)
5366 (arguments
5367 `(#:configure-flags
5368 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
5369 (list (string-append "-Dc_link_args=-Wl,-rpath="
5370 (assoc-ref %outputs "out") "/lib/eog"))
5371 #:phases
5372 (modify-phases %standard-phases
5373 (add-after 'unpack 'skip-gtk-update-icon-cache
5374 ;; Don't create 'icon-theme.cache'.
5375 (lambda _
5376 (substitute* "meson_post_install.py"
5377 (("gtk-update-icon-cache") "true"))
5378 #t))
5379 (add-after 'install 'wrap-eog
5380 (lambda* (#:key outputs #:allow-other-keys)
5381 (let ((out (assoc-ref outputs "out"))
5382 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
5383 (wrap-program (string-append out "/bin/eog")
5384 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
5385 #t)))))
5386 (propagated-inputs
5387 `(("dconf" ,dconf)))
5388 (native-inputs
5389 `(("intltool" ,intltool)
5390 ("itstool" ,itstool)
5391 ("glib" ,glib "bin")
5392 ("gobject-introspection" ,gobject-introspection)
5393 ("pkg-config" ,pkg-config)
5394 ("xmllint" ,libxml2)))
5395 (inputs
5396 `(("gnome-desktop" ,gnome-desktop)
5397 ("shared-mime-info" ,shared-mime-info)
5398 ("adwaita-icon-theme" ,adwaita-icon-theme)
5399 ("exempi" ,exempi)
5400 ("lcms" ,lcms)
5401 ("libexif" ,libexif)
5402 ("libpeas" ,libpeas)
5403 ("libjpeg" ,libjpeg-turbo)
5404 ("librsvg" ,librsvg-next)
5405 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5406 ("gtk+" ,gtk+)))
5407 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
5408 (synopsis "GNOME image viewer")
5409 (description "Eye of GNOME is the GNOME image viewer. It
5410 supports image conversion, rotation, and slideshows.")
5411 (license license:gpl2+)))
5412
5413 (define-public eog-plugins
5414 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
5415 ;; $DATA/lib/eog/plugins, where DATA is one of the entries in
5416 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
5417 ;; 'XDG_DATA_DIRS' appropriately set.
5418 (package
5419 (name "eog-plugins")
5420 (version "3.26.4")
5421 (source (origin
5422 (method url-fetch)
5423 (uri (string-append "mirror://gnome/sources/eog-plugins/"
5424 (version-major+minor version) "/"
5425 "eog-plugins-" version ".tar.xz"))
5426 (sha256
5427 (base32
5428 "0pd7fqa4ciy5844k5s1c6rlsqkk8pxd8cchxjcjhxlsngm9lynnx"))))
5429 (build-system gnu-build-system)
5430 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
5431 (synopsis "Extensions for the Eye of GNOME image viewer")
5432 (native-inputs
5433 `(("pkg-config" ,pkg-config)
5434 ("gettext" ,gettext-minimal)))
5435 (inputs
5436 `(("eog" ,eog)
5437 ("glib" ,glib)
5438 ("gtk+" ,gtk+)
5439 ("libpeas" ,libpeas)
5440 ("libexif" ,libexif)
5441 ("libchamplain" ,libchamplain)))
5442 (description
5443 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
5444 notably:
5445
5446 @itemize
5447 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
5448 @item @dfn{Map}, which displays a map of where the picture was taken on the
5449 side panel;
5450 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
5451 @end itemize\n")
5452
5453 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
5454 ;; long suspicious byte stream that goes to a
5455 ;; ".gresource.eog_postasa_plugin" ELF section.
5456 (license license:gpl2+)))
5457
5458 (define-public libgudev
5459 (package
5460 (name "libgudev")
5461 (version "232")
5462 (source (origin
5463 (method url-fetch)
5464 (uri (string-append "mirror://gnome/sources/" name "/"
5465 version "/" name "-" version ".tar.xz"))
5466 (sha256
5467 (base32
5468 "0q3qki451zzgdjazlgshsfzbbm0in40lyx7dyrag7kbkqnwv4k7f"))))
5469 (build-system gnu-build-system)
5470 (arguments
5471 '(#:configure-flags
5472 ;; umockdev depends on libgudev.
5473 (list "--disable-umockdev")))
5474 (native-inputs
5475 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5476 ("gobject-introspection" ,gobject-introspection)
5477 ("pkg-config" ,pkg-config)))
5478 (propagated-inputs
5479 `(("glib" ,glib))) ; required by gudev-1.0.pc
5480 (inputs
5481 `(("udev" ,eudev)))
5482 (home-page "https://wiki.gnome.org/Projects/libgudev")
5483 (synopsis "GObject bindings for libudev")
5484 (description
5485 "This library provides GObject bindings for libudev. It was originally
5486 part of udev-extras, then udev, then systemd. It's now a project on its own.")
5487 (license license:lgpl2.1+)))
5488
5489 (define-public gvfs
5490 (package
5491 (name "gvfs")
5492 (version "1.40.1")
5493 (source (origin
5494 (method url-fetch)
5495 (uri (string-append "mirror://gnome/sources/gvfs/"
5496 (version-major+minor version) "/"
5497 "gvfs-" version ".tar.xz"))
5498 (sha256
5499 (base32
5500 "1cfnzamr4mvgpf6yhm28lh9cafy9z6842s8jpbqnfizfxybg8ylj"))
5501 ;; This patch may be removed when upgrading to version 1.46.x.
5502 (patches
5503 (search-patches "gvfs-add-support-for-libplist-2.2.patch"))))
5504 (build-system meson-build-system)
5505 (arguments
5506 '(#:glib-or-gtk? #t
5507 #:configure-flags
5508 (list "-Dsystemduserunitdir=no"
5509 "-Dtmpfilesdir=no"
5510 ;; Otherwise, the RUNPATH will lack the final path component.
5511 (string-append "-Dc_link_args=-Wl,-rpath="
5512 (assoc-ref %outputs "out") "/lib/gvfs"))))
5513 (native-inputs
5514 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5515 ("gettext" ,gettext-minimal)
5516 ("gtk-doc" ,gtk-doc)
5517 ("pkg-config" ,pkg-config)
5518 ("xsltproc" ,libxslt)))
5519 (inputs
5520 `(("avahi" ,avahi)
5521 ("docbook-xml" ,docbook-xml-4.2)
5522 ("docbook-xsl" ,docbook-xsl)
5523 ("dbus" ,dbus)
5524 ("elogind" ,elogind)
5525 ("fuse" ,fuse)
5526 ("gcr" ,gcr)
5527 ("glib" ,glib)
5528 ("gnome-online-accounts" ,gnome-online-accounts)
5529 ("libarchive" ,libarchive)
5530 ("libbluray" ,libbluray)
5531 ("libcap" ,libcap)
5532 ("libcdio-paranoia" ,libcdio-paranoia)
5533 ("libgcrypt" ,libgcrypt)
5534 ("libgdata" ,libgdata)
5535 ("libgphoto2" ,libgphoto2)
5536 ("libgudev" ,libgudev)
5537 ("libimobiledevice" ,libimobiledevice)
5538 ("libmtp" ,libmtp)
5539 ("libnfs" ,libnfs)
5540 ("libsecret" ,libsecret)
5541 ("libsmbclient" ,samba)
5542 ("libsoup" ,libsoup)
5543 ("libxml2" ,libxml2)
5544 ("openssh" ,openssh)
5545 ("polkit" ,polkit)
5546 ("udisks" ,udisks)))
5547 (home-page "https://wiki.gnome.org/gvfs/")
5548 (synopsis "Userspace virtual file system for GIO")
5549 (description
5550 "GVFS is a userspace virtual file system designed to work with the I/O
5551 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS support
5552 to all applications using the GIO API. It also supports exposing the GVFS
5553 mounts to non-GIO applications using FUSE.
5554
5555 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
5556 DAV, and others.")
5557 (license license:lgpl2.0+)))
5558
5559 (define-public gusb
5560 (package
5561 (name "gusb")
5562 (version "0.3.0")
5563 (source (origin
5564 (method git-fetch)
5565 (uri (git-reference
5566 (url "https://github.com/hughsie/libgusb")
5567 (commit version)))
5568 (file-name (git-file-name name version))
5569 (sha256
5570 (base32
5571 "002pg0p4qzzk5dkyiynm483ir26zxrn4k71c7f6j85mfsdzbgli7"))))
5572 (build-system meson-build-system)
5573 (native-inputs
5574 `(("gobject-introspection" ,gobject-introspection)
5575 ("pkg-config" ,pkg-config)
5576 ("vala" ,vala)
5577 ("gtk-doc" ,gtk-doc)))
5578 (propagated-inputs
5579 ;; Both of these are required by gusb.pc.
5580 `(("glib" ,glib)
5581 ("libusb" ,libusb)))
5582 (arguments
5583 `(#:tests? #f)) ;libusb fails to initialize. Wonder what that is.
5584 (home-page "https://github.com/hughsie/libgusb")
5585 (synopsis "GLib binding for libusb1")
5586 (description
5587 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
5588 asynchronous control, bulk and interrupt transfers with proper cancellation
5589 and integration into a mainloop. This makes it easy to integrate low level
5590 USB transfers with your high-level application or system daemon.")
5591 (license license:lgpl2.1+)))
5592
5593 (define-public simple-scan
5594 (package
5595 (name "simple-scan")
5596 (version "3.36.3")
5597 (source
5598 (origin
5599 (method url-fetch)
5600 (uri (string-append "mirror://gnome/sources/simple-scan/"
5601 (version-major+minor version) "/"
5602 "simple-scan-" version ".tar.xz"))
5603 (sha256
5604 (base32 "0gsz7jqk0fdj0mama3cnss9i1adw18cpdnlcjcjh4r5qijmvx0vh"))))
5605 (build-system meson-build-system)
5606 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
5607 (arguments
5608 '(#:glib-or-gtk? #t))
5609 (inputs
5610 `(("gtk" ,gtk+)
5611 ("zlib" ,zlib)
5612 ("cairo" ,cairo)
5613 ("colord" ,colord)
5614 ("gdk-pixbuf" ,gdk-pixbuf)
5615 ("gusb" ,gusb)
5616 ("libsane" ,sane-backends)))
5617 (native-inputs
5618 `(("gettext" ,gettext-minimal)
5619 ("itstool" ,itstool)
5620 ("glib" ,glib "bin") ; glib-compile-schemas, etc.
5621 ("pkg-config" ,pkg-config)
5622 ("vala" ,vala)
5623 ("xmllint" ,libxml2)))
5624 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
5625 (synopsis "Document and image scanner")
5626 (description
5627 "Document Scanner is an easy-to-use application that lets you connect your
5628 scanner and quickly capture images and documents in an appropriate format. It
5629 supports any scanner for which a suitable SANE driver is available, which is
5630 almost all of them.")
5631 (license license:gpl3+)))
5632
5633 (define-public eolie
5634 (package
5635 (name "eolie")
5636 (version "0.9.98.1")
5637 (source (origin
5638 (method url-fetch)
5639 (uri (string-append "https://adishatz.org/eolie/eolie-"
5640 version ".tar.xz"))
5641 (sha256
5642 (base32
5643 "1d844zva5w4p9pnp9c2g7zyb4vayr2g2drf78spxsdlc5lbd7lqr"))))
5644 (build-system meson-build-system)
5645 (arguments
5646 `(#:glib-or-gtk? #t
5647 #:phases
5648 (modify-phases %standard-phases
5649 (add-after 'unpack 'skip-gtk-update-icon-cache
5650 ;; Don't create 'icon-theme.cache'.
5651 (lambda _
5652 (substitute* "meson_post_install.py"
5653 (("gtk-update-icon-cache") "true"))
5654 #t))
5655 (add-after 'wrap 'wrap-more
5656 (lambda* (#:key inputs outputs #:allow-other-keys)
5657 (let* ((out (assoc-ref outputs "out"))
5658 ;; These libraries must be on LD_LIBRARY_PATH.
5659 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
5660 "atk" "gtk+" "gsettings-desktop-schemas"
5661 "gobject-introspection"))
5662 (path (string-join
5663 (map (lambda (lib)
5664 (string-append (assoc-ref inputs lib) "/lib"))
5665 libs)
5666 ":")))
5667 (wrap-program (string-append out "/bin/eolie")
5668 `("LD_LIBRARY_PATH" ":" prefix (,path))
5669 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
5670 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
5671 #t)))))
5672 (native-inputs
5673 `(("intltool" ,intltool)
5674 ("itstool" ,itstool)
5675 ("pkg-config" ,pkg-config)
5676 ("python" ,python)
5677 ("glib:bin" ,glib "bin")))
5678 (inputs
5679 `(("gobject-introspection" ,gobject-introspection)
5680 ("glib-networking" ,glib-networking)
5681 ("cairo" ,cairo)
5682 ("gtk+" ,gtk+)
5683 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
5684 ("python" ,python-wrapper)
5685 ("python-dateutil" ,python-dateutil)
5686 ("python-pyfxa" ,python-pyfxa)
5687 ("python-pygobject" ,python-pygobject)
5688 ("python-pycairo" ,python-pycairo)
5689 ("python-pycrypto" ,python-pycrypto)
5690 ("libsecret" ,libsecret)
5691 ("gtkspell3" ,gtkspell3)
5692 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5693 ("webkitgtk" ,webkitgtk)))
5694 (home-page "https://wiki.gnome.org/Apps/Eolie")
5695 (synopsis "Web browser for GNOME")
5696 (description
5697 "Eolie is a new web browser for GNOME. It features Firefox sync support,
5698 a secret password store, an adblocker, and a modern UI.")
5699 (license license:gpl3+)))
5700
5701 (define-public epiphany
5702 (package
5703 (name "epiphany")
5704 (version "3.34.4")
5705 (source (origin
5706 (method url-fetch)
5707 (uri (string-append "mirror://gnome/sources/epiphany/"
5708 (version-major+minor version) "/"
5709 "epiphany-" version ".tar.xz"))
5710 (sha256
5711 (base32
5712 "13ar3s40cds1rplwbzx0fzigf120w0rydiv05r3k6zpc0zy91qb0"))))
5713
5714 (build-system meson-build-system)
5715 (arguments
5716 '(#:glib-or-gtk? #t
5717 #:phases
5718 (modify-phases %standard-phases
5719 (add-after 'unpack 'skip-gtk-update-icon-cache
5720 ;; Don't create 'icon-theme.cache'.
5721 (lambda _
5722 (substitute* "post_install.py"
5723 (("gtk-update-icon-cache") "true"))
5724 #t))
5725 (add-after 'unpack 'disable-failing-tests
5726 (lambda _
5727 (substitute* "tests/meson.build"
5728 ;; embed_shell fails, because webkitgtk apparently no longer supports
5729 ;; overriding the ftp schema
5730 ;; web_app_utils fails due to missing network access
5731 (("(embed_shell|web_app_utils)_test,")
5732 "find_program('sh'), args: ['-c', 'exit 77'],"))
5733 #t))
5734 (add-before 'check 'pre-check
5735 (lambda _
5736 ;; Tests require a running X server.
5737 (system "Xvfb :1 &")
5738 (setenv "DISPLAY" ":1")
5739 #t)))
5740 #:configure-flags
5741 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
5742 (list (string-append "-Dc_link_args=-Wl,-rpath="
5743 (assoc-ref %outputs "out") "/lib/epiphany"))))
5744 (propagated-inputs
5745 `(("dconf" ,dconf)))
5746 (native-inputs
5747 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
5748 ("glib:bin" ,glib "bin") ; for glib-mkenums
5749 ("intltool" ,intltool)
5750 ("itstool" ,itstool)
5751 ("pkg-config" ,pkg-config)
5752 ("xmllint" ,libxml2)
5753 ("xorg-server" ,xorg-server-for-tests)))
5754 (inputs
5755 `(("avahi" ,avahi)
5756 ("gcr" ,gcr)
5757 ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) ; for loading SVG files
5758 ("glib-networking" ,glib-networking)
5759 ("gnome-desktop" ,gnome-desktop)
5760 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5761 ("json-glib" ,json-glib)
5762 ("iso-codes" ,iso-codes)
5763 ("libdazzle" ,libdazzle)
5764 ("libnotify" ,libnotify)
5765 ("libsecret" ,libsecret)
5766 ("libxslt" ,libxslt)
5767 ("nettle" ,nettle) ; for hogweed
5768 ("sqlite" ,sqlite)
5769 ("webkitgtk" ,webkitgtk)))
5770 (home-page "https://wiki.gnome.org/Apps/Web")
5771 (synopsis "GNOME web browser")
5772 (description
5773 "Epiphany is a GNOME web browser targeted at non-technical users. Its
5774 principles are simplicity and standards compliance.")
5775 (license license:gpl2+)))
5776
5777 (define-public d-feet
5778 (package
5779 (name "d-feet")
5780 (version "0.3.14")
5781 (source (origin
5782 (method url-fetch)
5783 (uri (string-append "mirror://gnome/sources/" name "/"
5784 (version-major+minor version) "/"
5785 name "-" version ".tar.xz"))
5786 (sha256
5787 (base32
5788 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
5789 (build-system glib-or-gtk-build-system)
5790 (arguments
5791 '(#:out-of-source? #f ; tests need to run in the source directory.
5792 #:phases
5793 (modify-phases %standard-phases
5794 (add-before
5795 'check 'pre-check
5796 (lambda _
5797 ;; The test suite requires a running X server.
5798 (system "Xvfb :1 &")
5799 (setenv "DISPLAY" ":1")
5800 ;; Don't fail on missing '/etc/machine-id'.
5801 (setenv "DBUS_FATAL_WARNINGS" "0")
5802 ;; tests.py and window.py don't meet E402:
5803 ;; E402 module level import not at top of file
5804 (substitute* "src/tests/Makefile"
5805 (("--ignore=E123") "--ignore=E123,E402"))
5806 #t))
5807 (add-after
5808 'install 'wrap-program
5809 (lambda* (#:key outputs #:allow-other-keys)
5810 (let ((prog (string-append (assoc-ref outputs "out")
5811 "/bin/d-feet")))
5812 (wrap-program prog
5813 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
5814 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
5815 #t))))))
5816 (native-inputs
5817 `(("intltool" ,intltool)
5818 ("itstool" ,itstool)
5819 ("pkg-config" ,pkg-config)
5820 ("python-pep8" ,python-pep8)
5821 ("xmllint" ,libxml2)
5822 ("xorg-server" ,xorg-server-for-tests)))
5823 (inputs
5824 `(("gobject-introspection" ,gobject-introspection)
5825 ("gtk+" ,gtk+)
5826 ("python" ,python-wrapper)
5827 ("hicolor-icon-theme" ,hicolor-icon-theme)
5828 ("python-pygobject" ,python-pygobject)))
5829 (home-page "https://wiki.gnome.org/Apps/DFeet")
5830 (synopsis "D-Bus debugger")
5831 (description
5832 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
5833 of running programs and invoke methods on those interfaces.")
5834 (license license:gpl2+)))
5835
5836 (define-public yelp-xsl
5837 (package
5838 (name "yelp-xsl")
5839 (version "3.34.2")
5840 (source (origin
5841 (method url-fetch)
5842 (uri (string-append "mirror://gnome/sources/" name "/"
5843 (version-major+minor version) "/"
5844 name "-" version ".tar.xz"))
5845 (sha256
5846 (base32
5847 "1bdpgkzawhqmw52l6zx8czzg1ndfgcf1p44m2bxjdpqkc4afcgqc"))))
5848 (build-system gnu-build-system)
5849 (native-inputs
5850 `(("gettext-minimal" ,gettext-minimal)
5851 ("itstool" ,itstool)
5852 ("xmllint" ,libxml2)))
5853 (home-page "https://wiki.gnome.org/Apps/Yelp")
5854 (synopsis "XSL stylesheets for Yelp")
5855 (description
5856 "Yelp-xsl contains XSL stylesheets that are used by the yelp help browser
5857 to format Docbook and Mallard documents.")
5858 (license license:gpl2+)))
5859
5860 (define-public yelp
5861 (package
5862 (name "yelp")
5863 (version "3.32.2")
5864 (source (origin
5865 (method url-fetch)
5866 (uri (string-append "mirror://gnome/sources/" name "/"
5867 (version-major+minor version) "/"
5868 name "-" version ".tar.xz"))
5869 (sha256
5870 (base32
5871 "0yrl96icmmrxvg7sxl519gzg9qb368cmzgrr9ddh181ignkxzx7f"))))
5872 (build-system glib-or-gtk-build-system)
5873 (native-inputs
5874 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
5875 ("intltool" ,intltool)
5876 ("itstool" ,itstool)
5877 ("pkg-config" ,pkg-config)))
5878 (propagated-inputs
5879 `(("dconf" ,dconf)))
5880 (inputs
5881 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
5882 ("libxslt" ,libxslt)
5883 ("sqlite" ,sqlite)
5884 ("webkitgtk" ,webkitgtk)
5885 ("yelp-xsl" ,yelp-xsl)))
5886 (home-page "https://wiki.gnome.org/Apps/Yelp")
5887 (synopsis "GNOME help browser")
5888 (description
5889 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
5890 man, info, and HTML documents. It can locate documents according to the
5891 freedesktop.org help system specification.")
5892 (license license:gpl2+)))
5893
5894 (define-public yelp-tools
5895 (package
5896 (name "yelp-tools")
5897 (version "3.32.2")
5898 (source (origin
5899 (method url-fetch)
5900 (uri (string-append "mirror://gnome/sources/" name "/"
5901 (version-major+minor version) "/"
5902 name "-" version ".tar.xz"))
5903 (sha256
5904 (base32
5905 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
5906 (build-system gnu-build-system)
5907 (native-inputs
5908 `(("pkg-config" ,pkg-config)))
5909 (propagated-inputs
5910 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
5911 `(("itstool" ,itstool)
5912 ("xmllint" ,libxml2)
5913 ("xsltproc" ,libxslt)))
5914 (inputs
5915 `(("yelp-xsl" ,yelp-xsl)))
5916 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
5917 (synopsis "Yelp documentation tools")
5918 (description
5919 "Yelp-tools is a collection of scripts and build utilities to help create,
5920 manage, and publish documentation for Yelp and the web. Most of the heavy
5921 lifting is done by packages like yelp-xsl and itstool. This package just
5922 wraps things up in a developer-friendly way.")
5923 (license license:gpl2+)))
5924
5925 (define-public libgee
5926 (package
5927 (name "libgee")
5928 (version "0.20.3")
5929 (source (origin
5930 (method url-fetch)
5931 (uri (string-append "mirror://gnome/sources/libgee/"
5932 (version-major+minor version) "/"
5933 "libgee-" version ".tar.xz"))
5934 (sha256
5935 (base32
5936 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
5937 (build-system gnu-build-system)
5938 (arguments
5939 `(#:phases
5940 (modify-phases %standard-phases
5941 (add-after 'unpack 'fix-introspection-install-dir
5942 (lambda* (#:key outputs #:allow-other-keys)
5943 (let ((out (assoc-ref outputs "out")))
5944 (substitute* "gee/Makefile.in"
5945 (("@INTROSPECTION_GIRDIR@")
5946 (string-append out "/share/gir-1.0/"))
5947 (("@INTROSPECTION_TYPELIBDIR@")
5948 (string-append out "/lib/girepository-1.0/")))))))))
5949 (native-inputs
5950 `(("glib" ,glib "bin")
5951 ("pkg-config" ,pkg-config)))
5952 (inputs
5953 `(("glib" ,glib)
5954 ("gobject-introspection" ,gobject-introspection)))
5955 (home-page "https://wiki.gnome.org/Projects/Libgee")
5956 (synopsis "GObject collection library")
5957 (description
5958 "Libgee is a utility library providing GObject-based interfaces and
5959 classes for commonly used data structures.")
5960 (license license:lgpl2.1+)))
5961
5962 (define-public gexiv2
5963 (package
5964 (name "gexiv2")
5965 (version "0.12.1")
5966 (source (origin
5967 (method url-fetch)
5968 (uri (string-append "mirror://gnome/sources/" name "/"
5969 (version-major+minor version) "/"
5970 name "-" version ".tar.xz"))
5971 (sha256
5972 (base32
5973 "0xxxq8xdkgkn146my307jgws4qgxx477h0ybg1mqza1ycmczvsla"))))
5974 (build-system meson-build-system)
5975 (native-inputs
5976 `(("gcr" ,gcr)
5977 ("glib" ,glib "bin")
5978 ("pkg-config" ,pkg-config)
5979 ("vala" ,vala)))
5980 (propagated-inputs
5981 ;; Listed in "Requires" section of gexiv2.pc
5982 `(("exiv2" ,exiv2)))
5983 (inputs
5984 `(("glib" ,glib)
5985 ("gobject-introspection" ,gobject-introspection)))
5986 (home-page "https://wiki.gnome.org/Projects/gexiv2")
5987 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
5988 (description
5989 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
5990 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
5991 metadata in photo and video files of various formats.")
5992 (license license:gpl2+)))
5993
5994 (define-public shotwell
5995 (package
5996 (name "shotwell")
5997 (version "0.30.9")
5998 (source (origin
5999 (method url-fetch)
6000 (uri (string-append "mirror://gnome/sources/shotwell/"
6001 (version-major+minor version) "/"
6002 "shotwell-" version ".tar.xz"))
6003 (sha256
6004 (base32
6005 "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id"))))
6006 (build-system meson-build-system)
6007 (arguments
6008 '(#:glib-or-gtk? #t
6009 #:phases
6010 (modify-phases %standard-phases
6011 (add-after 'unpack 'skip-gtk-update-icon-cache
6012 (lambda _
6013 (substitute* "build-aux/meson/postinstall.py"
6014 (("gtk-update-icon-cache") (which "true"))
6015 (("update-desktop-database") (which "true")))
6016 #t)))))
6017 (propagated-inputs
6018 `(("dconf" ,dconf)))
6019 (native-inputs
6020 `(("gettext" ,gettext-minimal)
6021 ("glib:bin" ,glib "bin")
6022 ("itstool" ,itstool)
6023 ("pkg-config" ,pkg-config)
6024 ("vala" ,vala)))
6025 (inputs
6026 `(("gcr" ,gcr)
6027 ("gexiv2" ,gexiv2)
6028 ("gst-plugins-base" ,gst-plugins-base)
6029 ("gstreamer" ,gstreamer)
6030 ("json-glib" ,json-glib)
6031 ("libgdata" ,libgdata)
6032 ("libgee" ,libgee)
6033 ("libgphoto2" ,libgphoto2)
6034 ("libgudev" ,libgudev)
6035 ("libraw" ,libraw)
6036 ("libsoup" ,libsoup)
6037 ("libxml2" ,libxml2)
6038 ("sqlite" ,sqlite)
6039 ("webkitgtk" ,webkitgtk)))
6040 (home-page "https://wiki.gnome.org/Apps/Shotwell")
6041 (synopsis "Photo manager for GNOME 3")
6042 (description
6043 "Shotwell is a digital photo manager designed for the GNOME desktop
6044 environment. It allows you to import photos from disk or camera, organize
6045 them by keywords and events, view them in full-window or fullscreen mode, and
6046 share them with others via social networking and more.")
6047 (license license:lgpl2.1+)))
6048
6049 (define-public file-roller
6050 (package
6051 (name "file-roller")
6052 (version "3.32.3")
6053 (source (origin
6054 (method url-fetch)
6055 (uri (string-append "mirror://gnome/sources/file-roller/"
6056 (version-major+minor version) "/"
6057 "file-roller-" version ".tar.xz"))
6058 (sha256
6059 (base32
6060 "0ap2hxvjljh4p6wsd9ikh2my3vsxp9r2nvjxxj3v87nwfyw1y4dy"))))
6061 (build-system meson-build-system)
6062 (native-inputs
6063 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6064 ("intltool" ,intltool)
6065 ("itstool" ,itstool)
6066 ("pkg-config" ,pkg-config)
6067 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
6068 ("glib:bin" ,glib "bin")))
6069 ;; TODO: Add libnautilus.
6070 (inputs
6071 `(("gtk+" ,gtk+)
6072 ("gdk-pixbuf" ,gdk-pixbuf)
6073 ("json-glib" ,json-glib)
6074 ("libarchive" ,libarchive)
6075 ("libnotify" ,libnotify)
6076 ("nettle" ,nettle)
6077 ("libxml2" ,libxml2)))
6078 (synopsis "Graphical archive manager for GNOME")
6079 (description "File Roller is an archive manager for the GNOME desktop
6080 environment that allows users to view, unpack, and create compressed archives
6081 such as gzip tarballs.")
6082 (home-page "http://fileroller.sourceforge.net/")
6083 (license license:gpl2+)))
6084
6085 (define-public gnome-session
6086 (package
6087 (name "gnome-session")
6088 (version "3.34.2")
6089 (source (origin
6090 (method url-fetch)
6091 (uri (string-append "mirror://gnome/sources/" name "/"
6092 (version-major+minor version) "/"
6093 name "-" version ".tar.xz"))
6094 (sha256
6095 (base32
6096 "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"))))
6097 (arguments
6098 '(#:glib-or-gtk? #t
6099 #:phases
6100 (modify-phases %standard-phases
6101 (add-before 'configure 'pre-configure
6102 (lambda* (#:key outputs #:allow-other-keys)
6103 ;; Use elogind instead of systemd.
6104 (substitute* "meson.build"
6105 (("libsystemd-login") "libelogind")
6106 (("and libsystemd_daemon_dep.found.*") ","))
6107 (substitute* "gnome-session/gsm-systemd.c"
6108 (("#include <systemd/sd-login.h>")
6109 "#include <elogind/sd-login.h>"))
6110 ;; Remove uses of the systemd daemon.
6111 (substitute* "gnome-session/gsm-autostart-app.c"
6112 (("#ifdef HAVE_SYSTEMD") "#if 0"))
6113 #t))
6114 (add-after 'install 'wrap-gnome-session
6115 (lambda* (#:key inputs outputs #:allow-other-keys)
6116 ;; Make sure 'gnome-session' finds the 'gsettings' program.
6117 (let ((glib (assoc-ref inputs "glib:bin"))
6118 (out (assoc-ref outputs "out")))
6119 (wrap-program (string-append out "/bin/gnome-session")
6120 `("PATH" ":" prefix (,(string-append glib "/bin"))))
6121 #t))))
6122
6123 #:configure-flags
6124 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
6125 "-Dman=false" ; FIXME: disabled because of docbook validation error
6126 "-Dsystemd_journal=false")))
6127 (build-system meson-build-system)
6128 (native-inputs
6129 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6130 ("pkg-config" ,pkg-config)
6131 ("intltool" ,intltool)
6132 ("xsltproc" ,libxslt)
6133 ("libxml2" ,libxml2) ;for 'XML_CATALOG_FILES'
6134 ("docbook-xsl" ,docbook-xsl)
6135 ("docbook-xml" ,docbook-xml)
6136 ("xmlto" ,xmlto)))
6137 (inputs
6138 `(("elogind" ,elogind)
6139 ("gnome-desktop" ,gnome-desktop)
6140 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6141 ("gtk+" ,gtk+)
6142 ("json-glib" ,json-glib)
6143 ("libsm" ,libsm)
6144 ("libxcomposite" ,libxcomposite)
6145 ("libxtst" ,libxtst)
6146 ("mesa" ,mesa)
6147 ("upower" ,upower)
6148 ("xtrans" ,xtrans)))
6149 (synopsis "Session manager for GNOME")
6150 (description
6151 "This package contains the GNOME session manager, as well as a
6152 configuration program to choose applications starting on login.")
6153 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
6154 (license license:gpl2+)))
6155
6156 (define-public gjs
6157 (package
6158 (name "gjs")
6159 (version "1.58.3")
6160 (source (origin
6161 (method url-fetch)
6162 (uri (string-append "mirror://gnome/sources/" name "/"
6163 (version-major+minor version) "/"
6164 name "-" version ".tar.xz"))
6165 (sha256
6166 (base32
6167 "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
6168 (build-system gnu-build-system)
6169 (arguments
6170 '(#:phases
6171 (modify-phases %standard-phases
6172 (add-before
6173 'check 'pre-check
6174 (lambda _
6175 ;; The test suite requires a running X server.
6176 (system "Xvfb :1 &")
6177 (setenv "DISPLAY" ":1")
6178
6179 ;; For the missing /etc/machine-id.
6180 (setenv "DBUS_FATAL_WARNINGS" "0")
6181
6182 ;; Our mozjs-38 package does not compile the required Intl API
6183 ;; support for these failing tests.
6184 (substitute* "installed-tests/js/testLocale.js"
6185 ((".*toBeDefined.*") "")
6186 ((".*expect\\(datestr\\).*") ""))
6187 (substitute* "installed-tests/scripts/testCommandLine.sh"
6188 (("Valentín") "")
6189 (("☭") ""))
6190 #t)))))
6191 (native-inputs
6192 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
6193 ("pkg-config" ,pkg-config)
6194 ("xmllint" ,libxml2)
6195 ;; For testing
6196 ("dbus-launch" ,dbus)
6197 ("dconf" ,dconf) ; required to properly store settings
6198 ("uuidgen" ,util-linux)
6199 ("xvfb" ,xorg-server-for-tests)))
6200 (propagated-inputs
6201 ;; These are all in the Requires.private field of gjs-1.0.pc.
6202 `(("cairo" ,cairo)
6203 ("gobject-introspection" ,gobject-introspection)
6204 ("mozjs" ,mozjs-60)))
6205 (inputs
6206 `(("gtk+" ,gtk+)
6207 ("readline" ,readline)))
6208 (synopsis "Javascript bindings for GNOME")
6209 (home-page "https://live.gnome.org/Gjs")
6210 (description
6211 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
6212 javascript engine and the GObject introspection framework.")
6213 (license license:gpl2+)))
6214
6215 (define-public gedit
6216 (package
6217 (name "gedit")
6218 (version "3.34.1")
6219 (source (origin
6220 (method url-fetch)
6221 (uri (string-append "mirror://gnome/sources/" name "/"
6222 (version-major+minor version) "/"
6223 name "-" version ".tar.xz"))
6224 (sha256
6225 (base32
6226 "1inm50sdfw63by1lf4f1swb59mpyxlly0g5rdg99j5l3357fzygb"))))
6227 (build-system meson-build-system)
6228 (arguments
6229 `(#:glib-or-gtk? #t
6230 #:configure-flags
6231 ;; Otherwise, the RUNPATH will lack the final path component.
6232 (list (string-append "-Dc_link_args=-Wl,-rpath="
6233 (assoc-ref %outputs "out") "/lib/gedit"))
6234
6235 ;; XXX: Generated .h files are sometimes used before being built.
6236 #:parallel-build? #f
6237
6238 #:phases
6239 (modify-phases %standard-phases
6240 (add-after 'unpack 'skip-gtk-update-icon-cache
6241 ;; Don't create 'icon-theme.cache'.
6242 (lambda _
6243 (substitute* "build-aux/meson/post_install.py"
6244 (("gtk-update-icon-cache") (which "true")))
6245 #t))
6246 (add-after 'unpack 'patch-libgd-fetch
6247 (lambda* (#:key inputs #:allow-other-keys)
6248 (let ((libgd (assoc-ref inputs "libgd")))
6249 ;; Calling git is unnecessary because libgd is fetched as a
6250 ;; native input to this package.
6251 (substitute* "meson.build"
6252 ((".*git.*") ""))
6253 (copy-recursively libgd "subprojects/libgd")
6254 #t)))
6255 (add-after 'install 'wrap-gedit
6256 (lambda* (#:key inputs outputs #:allow-other-keys)
6257 (let ((out (assoc-ref outputs "out"))
6258 (gtksourceview (assoc-ref inputs "gtksourceview"))
6259 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6260 (python-path (getenv "PYTHONPATH")))
6261 (wrap-program (string-append out "/bin/gedit")
6262 ;; For plugins.
6263 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6264 `("PYTHONPATH" ":" prefix (,python-path))
6265 ;; For language-specs.
6266 `("XDG_DATA_DIRS" ":" prefix (,(string-append gtksourceview
6267 "/share")))))
6268 #t)))))
6269 (propagated-inputs
6270 `(("dconf" ,dconf)))
6271 (native-inputs
6272 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6273 ("intltool" ,intltool)
6274 ("itstool" ,itstool)
6275 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6276 ("gobject-introspection" ,gobject-introspection)
6277 ("libgd"
6278 ,(origin
6279 (method git-fetch)
6280 (uri (git-reference
6281 (url "https://gitlab.gnome.org/GNOME/libgd")
6282 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
6283 (file-name (git-file-name "libgd" version))
6284 (sha256
6285 (base32 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs"))))
6286 ("pkg-config" ,pkg-config)))
6287 (inputs
6288 `(("glib" ,glib)
6289 ("gspell" ,gspell)
6290 ("gtk+" ,gtk+)
6291 ("gtksourceview" ,gtksourceview)
6292 ("libpeas" ,libpeas)
6293 ("libxml2" ,libxml2)
6294 ("iso-codes" ,iso-codes)
6295 ("python-pygobject" ,python-pygobject)
6296 ("python" ,python)
6297 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6298 ("libx11" ,libx11)
6299 ("vala" ,vala)
6300 ("adwaita-icon-theme" ,adwaita-icon-theme)
6301 ("libsoup" ,libsoup)
6302 ("gnome-desktop" ,gnome-desktop)))
6303 (home-page "https://wiki.gnome.org/Apps/Gedit")
6304 (synopsis "GNOME text editor")
6305 (description "While aiming at simplicity and ease of use, gedit is a
6306 powerful general purpose text editor.")
6307 (license license:gpl2+)))
6308
6309 (define-public zenity
6310 (package
6311 (name "zenity")
6312 (version "3.32.0")
6313 (source (origin
6314 (method url-fetch)
6315 (uri (string-append "mirror://gnome/sources/zenity/"
6316 (version-major+minor version) "/"
6317 "zenity-" version ".tar.xz"))
6318 (sha256
6319 (base32
6320 "15fdh8xfdhnwcynyh4byx3mrjxbyprqnwxzi7qn3g5wwaqryg1p7"))))
6321 (build-system gnu-build-system)
6322 (native-inputs
6323 `(("gettext" ,gettext-minimal)
6324 ("itstool" ,itstool)
6325 ("pkg-config" ,pkg-config)))
6326 (inputs
6327 `(("libnotify" ,libnotify)
6328 ("webkitgtk" ,webkitgtk)))
6329 (synopsis "Display graphical dialog boxes from shell scripts")
6330 (home-page "https://www.gnome.org")
6331 (description
6332 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
6333 to display dialog boxes from the commandline and shell scripts.")
6334 (license license:lgpl2.0+)))
6335
6336 (define-public mutter
6337 (package
6338 (name "mutter")
6339 (version "3.34.2")
6340 (source (origin
6341 (method url-fetch)
6342 (uri (string-append "mirror://gnome/sources/" name "/"
6343 (version-major+minor version) "/"
6344 name "-" version ".tar.xz"))
6345 (sha256
6346 (base32
6347 "0b8bz5kvs7rlwvqsg87cf6jhrrj95vgd1l235mjx8rip35ipfvrd"))))
6348 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
6349 ;; versions of cogl and clutter. As a result, many of the inputs,
6350 ;; propagated-inputs, and configure flags used in cogl and clutter are
6351 ;; needed here as well.
6352 (build-system meson-build-system)
6353 (arguments
6354 '(;; XXX: All mutter tests fail with the following error:
6355 ;; Settings schema 'org.gnome.mutter' is not installed
6356 #:tests? #f
6357 #:glib-or-gtk? #t
6358 #:configure-flags
6359 ;; TODO: Enable profiler when Sysprof is packaged.
6360 (list "-Dprofiler=false"
6361 ;; Otherwise, the RUNPATH will lack the final path component.
6362 (string-append "-Dc_link_args=-Wl,-rpath="
6363 (assoc-ref %outputs "out") "/lib:"
6364 (assoc-ref %outputs "out") "/lib/mutter-5")
6365
6366 ;; The following flags are needed for the bundled clutter
6367 (string-append "-Dxwayland_path="
6368 (assoc-ref %build-inputs "xorg-server-xwayland")
6369 "/bin/Xwayland")
6370
6371 ;; the remaining flags are needed for the bundled cogl
6372 (string-append "-Dopengl_libname="
6373 (assoc-ref %build-inputs "mesa")
6374 "/lib/libGL.so"))
6375 #:phases (modify-phases %standard-phases
6376 (add-after 'unpack 'fix-build-with-mesa-20
6377 (lambda _
6378 ;; Mimic upstream commit a444a4c5f58ea516ad for
6379 ;; compatibility with Mesa 20. Remove for 3.36.
6380 (substitute* '("src/backends/meta-egl-ext.h"
6381 "src/backends/meta-egl.c"
6382 "src/backends/meta-egl.h")
6383 (("#include <EGL/eglext\\.h>" all)
6384 (string-append all "\n#include <EGL/eglmesaext.h>")))
6385 (substitute* "cogl/cogl/meson.build"
6386 (("#include <EGL/eglext\\.h>" all)
6387 (string-append all "\\n#include <EGL/eglmesaext.h>")))
6388 #t)))))
6389 (native-inputs
6390 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
6391 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6392 ("gobject-introspection" ,gobject-introspection)
6393 ("intltool" ,intltool)
6394 ("pkg-config" ,pkg-config)
6395 ("xorg-server" ,xorg-server-for-tests)
6396 ;; For git build
6397 ("autoconf" ,autoconf)
6398 ("automake" ,automake)
6399 ("libtool" ,libtool)))
6400 (propagated-inputs
6401 `(;; libmutter.pc refers to these:
6402 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6403 ("gtk+" ,gtk+)
6404 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
6405 ("atk" ,atk)
6406 ("cairo" ,cairo)
6407 ("gdk-pixbuf" ,gdk-pixbuf)
6408 ("glib" ,glib)
6409 ("json-glib" ,json-glib)
6410 ("libinput" ,libinput)
6411 ("libx11" ,libx11)
6412 ("libxcomposite" ,libxcomposite)
6413 ("libxdamage" ,libxdamage)
6414 ("libxext" ,libxext)
6415 ("libxfixes" ,libxfixes)
6416 ("libxkbcommon" ,libxkbcommon)
6417 ("libxrandr" ,libxrandr)
6418 ("mesa" ,mesa)
6419 ("pango" ,pango)
6420 ("udev" ,eudev)
6421 ("xinput" ,xinput)))
6422 (inputs
6423 `(("elogind" ,elogind)
6424 ("gnome-desktop" ,gnome-desktop)
6425 ("gnome-settings-daemon" ,gnome-settings-daemon)
6426 ("libcanberra-gtk" ,libcanberra)
6427 ("libgudev" ,libgudev)
6428 ("libice" ,libice)
6429 ("libsm" ,libsm)
6430 ("libwacom" ,libwacom)
6431 ("libxkbfile" ,libxkbfile)
6432 ("libxrandr" ,libxrandr)
6433 ("libxtst" ,libxtst)
6434 ("pipewire" ,pipewire)
6435 ("startup-notification" ,startup-notification)
6436 ("upower-glib" ,upower)
6437 ("xkeyboard-config" ,xkeyboard-config)
6438 ("xorg-server-xwayland" ,xorg-server-xwayland)
6439 ("zenity" ,zenity)))
6440 (synopsis "Window and compositing manager")
6441 (home-page "https://www.gnome.org")
6442 (description
6443 "Mutter is a window and compositing manager that displays and manages your
6444 desktop via OpenGL. Mutter combines a sophisticated display engine using the
6445 Clutter toolkit with solid window-management logic inherited from the Metacity
6446 window manager.")
6447 (license license:gpl2+)))
6448
6449 (define-public gnome-online-accounts
6450 (package
6451 (name "gnome-online-accounts")
6452 (version "3.36.0")
6453 (source (origin
6454 (method url-fetch)
6455 (uri (string-append "mirror://gnome/sources/" name "/"
6456 (version-major+minor version) "/"
6457 name "-" version ".tar.xz"))
6458 (sha256
6459 (base32
6460 "0bigfi225g1prnxpb9lcc1i7mdcrkplwb05vilc43jik12cn53qw"))))
6461 (outputs '("out" "lib"))
6462 (build-system glib-or-gtk-build-system)
6463 (arguments
6464 `(#:configure-flags
6465 (list (string-append "--libdir=" (assoc-ref %outputs "out") "/lib"))
6466 #:phases
6467 (modify-phases %standard-phases
6468 (add-before 'configure 'patch-libgoa-output
6469 (lambda* (#:key outputs #:allow-other-keys)
6470 (let ((lib (assoc-ref outputs "lib")))
6471 (substitute* '("src/goa/Makefile.in" "src/goa/goa-1.0.pc.in")
6472 (("@prefix@") lib)
6473 (("@exec_prefix@") lib)
6474 (("@libdir@") (string-append lib "/lib"))
6475 (("@includedir@") (string-append lib "/include"))
6476 (("@datadir@") (string-append lib "/share")))
6477 ;; Make sure gobject-introspection knows about the output
6478 ;; too (see <https://bugs.gnu.org/36535>).
6479 (setenv "outputs" "out lib")
6480 #t))))))
6481 (native-inputs
6482 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6483 ("gobject-introspection" ,gobject-introspection)
6484 ("intltool" ,intltool)
6485 ("pkg-config" ,pkg-config)
6486 ("vala" ,vala)
6487 ("xsltproc" ,libxslt)))
6488 (propagated-inputs
6489 `(("glib" ,glib) ; required by goa-1.0.pc
6490 ("gtk+" ,gtk+))) ; required by goa-backend-1.0.pc
6491 (inputs
6492 `(("docbook-xsl" ,docbook-xsl)
6493 ("json-glib" ,json-glib)
6494 ("libsecret" ,libsecret)
6495 ("rest" ,rest)
6496 ("webkitgtk" ,webkitgtk)))
6497 (synopsis "Single sign-on framework for GNOME")
6498 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
6499 (description
6500 "GNOME Online Accounts provides interfaces so that applications and
6501 libraries in GNOME can access the user's online accounts. It has providers for
6502 Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare, Microsoft
6503 Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
6504 (license license:lgpl2.0+)))
6505
6506 (define-public evolution-data-server
6507 (package
6508 (name "evolution-data-server")
6509 (version "3.34.2")
6510 (source (origin
6511 (method url-fetch)
6512 (uri (string-append "mirror://gnome/sources/" name "/"
6513 (version-major+minor version) "/"
6514 name "-" version ".tar.xz"))
6515 (patches (search-patches "evolution-data-server-locales.patch"
6516 "evolution-data-server-libical-compat.patch"))
6517 (sha256
6518 (base32
6519 "16z85y6hhazcrp5ngw47w4x9r0j8zrj7awv5im58hhp0xs19zf1y"))))
6520 (build-system cmake-build-system)
6521 (arguments
6522 '(#:configure-flags
6523 (let* ((lib (string-append (assoc-ref %outputs "out") "/lib"))
6524 (runpaths (map (lambda (s)
6525 (string-append lib "/evolution-data-server/" s))
6526 '("addressbook-backends" "calendar-backends"
6527 "camel-providers" "credential-modules"
6528 "registry-modules"))))
6529 (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support
6530 "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
6531 "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication
6532 "-DENABLE_VALA_BINDINGS=ON"
6533 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
6534 (string-append lib "/evolution-data-server;")
6535 (string-join runpaths ";"))
6536 "-DENABLE_INTROSPECTION=ON")) ;required for Vala bindings
6537 #:phases
6538 (modify-phases %standard-phases
6539 (add-after 'unpack 'disable-failing-tests
6540 (lambda _
6541 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
6542 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
6543 (delete-file-recursively "tests/book-migration")
6544 (substitute* "tests/CMakeLists.txt"
6545 (("add_subdirectory\\(book-migration\\)") ""))
6546 #t))
6547 (add-after 'unpack 'patch-paths
6548 (lambda _
6549 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
6550 "tests/libedata-book/data-test-utils.c"
6551 "tests/libedata-book/test-book-cache-utils.c"
6552 "tests/libedata-cal/test-cal-cache-utils.c")
6553 (("/bin/rm") (which "rm")))
6554 #t))
6555 (add-before 'configure 'dont-override-rpath
6556 (lambda _
6557 (substitute* "CMakeLists.txt"
6558 ;; CMakeLists.txt hard-codes runpath to just the libdir.
6559 ;; Remove it so the configure flag is respected.
6560 (("SET\\(CMAKE_INSTALL_RPATH .*") ""))
6561 #t)))))
6562 (native-inputs
6563 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
6564 ("gobject-introspection" ,gobject-introspection)
6565 ("gperf" ,gperf)
6566 ("intltool" ,intltool)
6567 ("pkg-config" ,pkg-config)
6568 ("vala" ,vala)
6569 ("python" ,python-wrapper)))
6570 (propagated-inputs
6571 ;; These are all in the Requires field of .pc files.
6572 `(("gtk+" ,gtk+)
6573 ("libical" ,libical)
6574 ("libsecret" ,libsecret)
6575 ("libsoup" ,libsoup)
6576 ("nss" ,nss)
6577 ("sqlite" ,sqlite)))
6578 (inputs
6579 `(("bdb" ,bdb)
6580 ("gcr" ,gcr)
6581 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
6582 ("json-glib" ,json-glib)
6583 ("libcanberra" ,libcanberra)
6584 ("libgweather" ,libgweather)
6585 ("mit-krb5" ,mit-krb5)
6586 ("openldap" ,openldap)
6587 ("webkitgtk" ,webkitgtk)))
6588 (synopsis "Store address books and calendars")
6589 (home-page "https://wiki.gnome.org/Apps/Evolution")
6590 (description
6591 "This package provides a unified backend for programs that work with
6592 contacts, tasks, and calendar information. It was originally developed for
6593 Evolution (hence the name), but is now used by other packages as well.")
6594 (license license:lgpl2.0)))
6595
6596 (define-public caribou
6597 (package
6598 (name "caribou")
6599 (version "0.4.21")
6600 (source (origin
6601 (method url-fetch)
6602 (uri (string-append "mirror://gnome/sources/" name "/"
6603 (version-major+minor version) "/"
6604 name "-" version ".tar.xz"))
6605 (sha256
6606 (base32
6607 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
6608 (build-system glib-or-gtk-build-system)
6609 (arguments
6610 '(#:phases
6611 (modify-phases %standard-phases
6612 (add-before
6613 'build 'pre-build
6614 (lambda* (#:key outputs #:allow-other-keys)
6615 (let ((out (assoc-ref outputs "out")))
6616 ;; Use absolute shared library path in Caribou-1.0.typelib.
6617 (substitute* "libcaribou/Makefile"
6618 (("--shared-library=libcaribou.so")
6619 (string-append "--shared-library="
6620 out "/lib/libcaribou.so")))
6621 #t)))
6622 (add-after 'install 'wrap-programs
6623 (lambda* (#:key outputs #:allow-other-keys)
6624 (let* ((out (assoc-ref outputs "out"))
6625 (python-path (getenv "PYTHONPATH"))
6626 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6627 (for-each
6628 (lambda (prog)
6629 (wrap-program prog
6630 `("PYTHONPATH" ":" prefix (,python-path))
6631 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
6632 (list (string-append out "/bin/caribou-preferences")
6633 (string-append out "/libexec/antler-keyboard"))))
6634 #t)))))
6635 (native-inputs
6636 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
6637 ("gobject-introspection" ,gobject-introspection)
6638 ("intltool" ,intltool)
6639 ("pkg-config" ,pkg-config)
6640 ("python" ,python)
6641 ("vala" ,vala)
6642 ("xsltproc" ,libxslt)))
6643 (propagated-inputs
6644 ;; caribou-1.0.pc refers to all these.
6645 `(("libgee" ,libgee)
6646 ("libxklavier" ,libxklavier)
6647 ("libxtst" ,libxtst)
6648 ("gtk+" ,gtk+)))
6649 (inputs
6650 `(("clutter" ,clutter)
6651 ("dconf" ,dconf)
6652 ("gtk+-2" ,gtk+-2)
6653 ("python-pygobject" ,python-pygobject)))
6654 (synopsis "Text entry and UI navigation application")
6655 (home-page "https://wiki.gnome.org/Projects/Caribou")
6656 (description
6657 "Caribou is an input assistive technology intended for switch and pointer
6658 users.")
6659 (license license:lgpl2.1)))
6660
6661 (define-public network-manager
6662 (package
6663 (name "network-manager")
6664 (version "1.24.0")
6665 (source (origin
6666 (method url-fetch)
6667 (uri (string-append "mirror://gnome/sources/NetworkManager/"
6668 (version-major+minor version) "/"
6669 "NetworkManager-" version ".tar.xz"))
6670 (patches (search-patches "network-manager-plugin-path.patch"))
6671 (sha256
6672 (base32
6673 "06044fl60bjlj7c6rqqfbm5795h61h6yzp7ch392hzcnm46wwhn3"))
6674 (modules '((guix build utils)))
6675 (snippet
6676 '(begin
6677 (substitute* "src/devices/wwan/nm-modem-manager.c"
6678 (("systemd") "elogind"))
6679 #t))))
6680 (build-system meson-build-system)
6681 (outputs '("out"
6682 "doc")) ; 8 MiB of gtk-doc HTML
6683 (arguments
6684 `(#:configure-flags
6685 (let ((out (assoc-ref %outputs "out"))
6686 (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
6687 "/sbin/dhclient")))
6688 (list
6689 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
6690 ;; component.
6691 (string-append "-Dc_link_args=-Wl,-rpath="
6692 out "/lib:"
6693 out "/lib/NetworkManager/" ,version)
6694 "-Dsystemd_journal=false"
6695 "-Dsession_tracking=elogind"
6696 "-Dsuspend_resume=elogind"
6697 "-Dsystemdsystemunitdir=no"
6698 "-Dsession_tracking_consolekit=false"
6699 "-Ddhcpcd=no"
6700 "-Ddhcpcanon=no"
6701 "-Dcrypto=gnutls"
6702 "-Diwd=true"
6703 "-Dlibaudit=yes"
6704 "-Dqt=false"
6705 "-Ddocs=true"
6706 "--sysconfdir=/etc"
6707 "--localstatedir=/var"
6708 (string-append "-Dudev_dir="
6709 out "/lib/udev")
6710 (string-append "-Ddbus_conf_dir="
6711 out "/etc/dbus-1/system.d")
6712
6713 (string-append "-Ddhclient=" dhclient)))
6714 #:phases
6715 (modify-phases %standard-phases
6716 (add-before 'configure 'pre-configure
6717 (lambda _
6718 ;; These tests try to test aspects of network-manager's
6719 ;; functionality within restricted containers, but they don't
6720 ;; cope with being already in the Guix build jail as that jail
6721 ;; lacks some features that they would like to proxy over (like
6722 ;; a /sys mount).
6723 (substitute* "src/platform/tests/meson.build"
6724 ((".*test-address-linux.*") "")
6725 ((".*test-cleanup-linux.*") "")
6726 ((".*test-link-linux.*") "")
6727 ((".*test-route-linux.*") ""))
6728 (substitute* "src/devices/tests/meson.build"
6729 ((".*test-acd.*") "")
6730 ((".*test-lldp.*") ""))
6731 #t))
6732 (add-after 'unpack 'patch-docbook-xml
6733 (lambda* (#:key inputs #:allow-other-keys)
6734 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
6735 "/xml/dtd/docbook")))
6736 (substitute* (find-files "." ".*\\.(xsl|xml)")
6737 (("http://.*/docbookx\\.dtd")
6738 (string-append xmldoc "/docbookx.dtd")))
6739 #t)))
6740 (add-before 'check 'pre-check
6741 (lambda _
6742 ;; For the missing /etc/machine-id.
6743 (setenv "DBUS_FATAL_WARNINGS" "0")
6744 #t))
6745 (add-before 'install 'no-polkit-magic
6746 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
6747 (lambda _
6748 (setenv "PKEXEC_UID" "something")
6749 #t))
6750 (add-after 'install 'move-doc
6751 (lambda* (#:key outputs #:allow-other-keys)
6752 (let ((out (assoc-ref outputs "out"))
6753 (doc (assoc-ref outputs "doc")))
6754 (mkdir-p (string-append doc "/share"))
6755 (for-each (lambda (directory)
6756 (copy-recursively (string-append out directory)
6757 (string-append doc directory))
6758 (delete-file-recursively
6759 (string-append out directory)))
6760 '("/share/doc" "/share/gtk-doc"))
6761 #t))))))
6762 (propagated-inputs
6763 `(("glib" ,glib)))
6764 (native-inputs
6765 `(("glib:bin" ,glib "bin") ; for gdbus-codegen
6766 ("gtk-doc" ,gtk-doc)
6767 ("gobject-introspection" ,gobject-introspection)
6768 ("docbook-xml" ,docbook-xml)
6769 ("docbook-xsl" ,docbook-xsl)
6770 ("intltool" ,intltool)
6771 ("libxslt" ,libxslt)
6772 ("libxml2" ,libxml2)
6773 ("pkg-config" ,pkg-config)
6774 ("vala" ,vala)
6775 ;; For testing.
6776 ("python" ,python-wrapper)
6777 ("python-dbus" ,python-dbus)
6778 ("python-pygobject" ,python-pygobject)))
6779 (inputs
6780 `(("curl" ,curl)
6781 ("cyrus-sasl" ,cyrus-sasl)
6782 ("dbus-glib" ,dbus-glib)
6783 ("dnsmasq" ,dnsmasq)
6784 ("eudev" ,eudev)
6785 ("gnutls" ,gnutls)
6786 ("iptables" ,iptables)
6787 ("isc-dhcp" ,isc-dhcp)
6788 ("iwd" ,iwd) ; wpa_supplicant alternative
6789 ("jansson" ,jansson)
6790 ("libaudit" ,audit)
6791 ("libgcrypt" ,libgcrypt)
6792 ("libgudev" ,libgudev)
6793 ("libndp" ,libndp)
6794 ("libnl" ,libnl)
6795 ("libsoup" ,libsoup)
6796 ("mobile-broadband-provider-info" ,mobile-broadband-provider-info)
6797 ("modem-manager" ,modem-manager)
6798 ("newt" ,newt) ;for the 'nmtui' console interface
6799 ("openresolv" ,openresolv) ; alternative resolv.conf manager
6800 ("polkit" ,polkit)
6801 ("ppp" ,ppp)
6802 ("readline" ,readline)
6803 ("util-linux" ,util-linux)
6804 ("elogind" ,elogind)))
6805 (synopsis "Network connection manager")
6806 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6807 (description
6808 "NetworkManager is a system network service that manages your network
6809 devices and connections, attempting to keep active network connectivity when
6810 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
6811 devices, and provides VPN integration with a variety of different VPN
6812 services.")
6813 ;; “This NetworkManager project consists of the daemon, client tools, and
6814 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
6815 ;; GPL-2.0+.”
6816 (license (list license:gpl2+
6817 license:lgpl2.1+))
6818 (properties '((upstream-name . "NetworkManager")))))
6819
6820 (define-public network-manager-openvpn
6821 (package
6822 (name "network-manager-openvpn")
6823 (version "1.8.12")
6824 (source (origin
6825 (method url-fetch)
6826 (uri (string-append
6827 "mirror://gnome/sources/NetworkManager-openvpn/"
6828 (version-major+minor version)
6829 "/NetworkManager-openvpn-" version ".tar.xz"))
6830 (sha256
6831 (base32
6832 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
6833 (build-system gnu-build-system)
6834 (arguments
6835 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6836 #:phases
6837 (modify-phases %standard-phases
6838 (add-after 'configure 'patch-path
6839 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6840 (let* ((ovpn (string-append (assoc-ref inputs "openvpn")
6841 "/sbin/openvpn"))
6842 (modprobe (string-append (assoc-ref inputs "kmod")
6843 "/bin/modprobe"))
6844 (pretty-ovpn (string-append "\"" ovpn "\"")))
6845 (for-each
6846 (lambda (file)
6847 (substitute* file
6848 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
6849 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
6850 (("\"/sbin/openvpn\"") pretty-ovpn)
6851 (("/sbin/modprobe") modprobe)))
6852 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
6853 #t)))))
6854 (native-inputs
6855 `(("pkg-config" ,pkg-config)
6856 ("intltool" ,intltool)))
6857 (inputs
6858 `(("gtk+" ,gtk+)
6859 ("kmod" ,kmod)
6860 ("openvpn" ,openvpn)
6861 ("network-manager" ,network-manager)
6862 ("libnma" ,libnma)
6863 ("libsecret" ,libsecret)))
6864 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6865 (synopsis "OpenVPN plug-in for NetworkManager")
6866 (description
6867 "This extension of NetworkManager allows it to take care of connections
6868 to virtual private networks (VPNs) via OpenVPN.")
6869 (license license:gpl2+)
6870 (properties `((upstream-name . "NetworkManager-openvpn")))))
6871
6872 (define-public network-manager-vpnc
6873 (package
6874 (name "network-manager-vpnc")
6875 (version "1.2.6")
6876 (source (origin
6877 (method url-fetch)
6878 (uri (string-append
6879 "mirror://gnome/sources/NetworkManager-vpnc/"
6880 (version-major+minor version)
6881 "/NetworkManager-vpnc-" version ".tar.xz"))
6882 (sha256
6883 (base32
6884 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
6885 (build-system gnu-build-system)
6886 (arguments
6887 `(#:configure-flags '("--enable-absolute-paths"
6888 "--localstatedir=/var"
6889 ;; libnm-glib has been removed from network-manager
6890 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
6891 "--with-libnm-glib=no")
6892 #:phases
6893 (modify-phases %standard-phases
6894 (add-after 'configure 'patch-path
6895 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6896 (let* ((vpnc (string-append (assoc-ref inputs "vpnc")
6897 "/sbin/vpnc"))
6898 (modprobe (string-append (assoc-ref inputs "kmod")
6899 "/bin/modprobe"))
6900 (pretty-ovpn (string-append "\"" vpnc "\"")))
6901 (substitute* "src/nm-vpnc-service.c"
6902 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
6903 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
6904 (("\"/sbin/vpnc\"") pretty-ovpn)
6905 (("/sbin/modprobe") modprobe)))
6906 #t)))))
6907 (native-inputs
6908 `(("pkg-config" ,pkg-config)
6909 ("intltool" ,intltool)))
6910 (inputs
6911 `(("gtk+" ,gtk+)
6912 ("kmod" ,kmod)
6913 ("vpnc" ,vpnc)
6914 ("network-manager" ,network-manager)
6915 ("libnma" ,libnma)
6916 ("libsecret" ,libsecret)))
6917 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6918 (synopsis "VPNC plug-in for NetworkManager")
6919 (description
6920 "Support for configuring virtual private networks based on VPNC.
6921 Compatible with Cisco VPN concentrators configured to use IPsec.")
6922 (license license:gpl2+)
6923 (properties `((upstream-name . "NetworkManager-vpnc")))))
6924
6925 (define-public network-manager-openconnect
6926 (package
6927 (name "network-manager-openconnect")
6928 (version "1.2.6")
6929 (source (origin
6930 (method url-fetch)
6931 (uri (string-append
6932 "mirror://gnome/sources/NetworkManager-openconnect/"
6933 (version-major+minor version)
6934 "/NetworkManager-openconnect-" version ".tar.xz"))
6935 (sha256
6936 (base32
6937 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
6938 (build-system gnu-build-system)
6939 (arguments
6940 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
6941 #:phases
6942 (modify-phases %standard-phases
6943 (add-after 'configure 'patch-path
6944 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
6945 (let* ((openconnect (string-append (assoc-ref inputs "openconnect")
6946 "/sbin/openconnect"))
6947 (modprobe (string-append (assoc-ref inputs "kmod")
6948 "/bin/modprobe"))
6949 (pretty-ovpn (string-append "\"" openconnect "\"")))
6950 (substitute* "src/nm-openconnect-service.c"
6951 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
6952 (("/sbin/modprobe") modprobe)))
6953 #t)))))
6954 (native-inputs
6955 `(("intltool" ,intltool)
6956 ("libnma" ,libnma)
6957 ("pkg-config" ,pkg-config)))
6958 (inputs
6959 `(("gcr" ,gcr)
6960 ("gtk+" ,gtk+)
6961 ("kmod" ,kmod)
6962 ("libsecret" ,libsecret)
6963 ("libxml2" ,libxml2)
6964 ("lz4" ,lz4)
6965 ("network-manager" ,network-manager)
6966 ("openconnect" ,openconnect)))
6967 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
6968 (synopsis "OpenConnect plug-in for NetworkManager")
6969 (description
6970 "This extension of NetworkManager allows it to take care of connections
6971 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
6972 Cisco's AnyConnect SSL VPN.")
6973 (license license:gpl2+)
6974 (properties `((upstream-name . "NetworkManager-openconnect")
6975
6976 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
6977 ;; file refers to account "nm-openconnect". Specify it here
6978 ;; so that 'network-manager-service-type' creates it.
6979 (user-accounts . ("nm-openconnect"))))))
6980
6981 (define-public mobile-broadband-provider-info
6982 (package
6983 (name "mobile-broadband-provider-info")
6984 (version "20190116")
6985 (source (origin
6986 (method url-fetch)
6987 (uri (string-append
6988 "mirror://gnome/sources/"
6989 "mobile-broadband-provider-info/" version "/"
6990 "mobile-broadband-provider-info-" version ".tar.xz"))
6991 (sha256
6992 (base32
6993 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
6994 (build-system gnu-build-system)
6995 (arguments
6996 `(#:tests? #f)) ; no tests
6997 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
6998 (synopsis "Database of broadband connection configuration")
6999 (description "Database of broadband connection configuration.")
7000 (license license:public-domain)))
7001
7002 (define-public network-manager-applet
7003 (package
7004 (name "network-manager-applet")
7005 (version "1.16.0")
7006 (source (origin
7007 (method url-fetch)
7008 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
7009 (version-major+minor version) "/"
7010 "network-manager-applet-" version ".tar.xz"))
7011 (sha256
7012 (base32
7013 "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn"))))
7014 (build-system meson-build-system)
7015 (arguments
7016 '(#:glib-or-gtk? #t))
7017 (native-inputs
7018 `(("intltool" ,intltool)
7019 ("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
7020 ("gobject-introspection" ,gobject-introspection)
7021 ("gtk-doc" ,gtk-doc)
7022 ("pkg-config" ,pkg-config)))
7023 (propagated-inputs
7024 ;; libnm-gtk.pc refers to all these.
7025 `(("dbus-glib" ,dbus-glib)
7026 ("gtk+" ,gtk+)
7027 ("network-manager" ,network-manager)
7028 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
7029 ("libnma" ,libnma)))
7030 (inputs
7031 `(("gcr" ,gcr)
7032 ("libgudev" ,libgudev)
7033 ("libnotify" ,libnotify)
7034 ("libsecret" ,libsecret)
7035 ("libselinux" ,libselinux)
7036 ("jansson" ,jansson) ; for team support
7037 ("modem-manager" ,modem-manager)))
7038 (synopsis "Applet for managing network connections")
7039 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
7040 (description
7041 "This package contains a systray applet for NetworkManager. It displays
7042 the available networks and allows users to easily switch between them.")
7043 (license license:gpl2+)))
7044
7045 (define-public libxml++
7046 (package
7047 (name "libxml++")
7048 (version "3.0.1")
7049 (source (origin
7050 (method url-fetch)
7051 (uri (string-append "mirror://gnome/sources/" name "/"
7052 (version-major+minor version) "/"
7053 name "-" version ".tar.xz"))
7054 (sha256
7055 (base32
7056 "19kik79fmg61nv0by0a5f9wchrcfjwzvih4v2waw01hqflhqvp0r"))))
7057 (build-system gnu-build-system)
7058 ;; libxml++-3.0.pc refers to all these.
7059 (propagated-inputs
7060 `(("libxml2" ,libxml2)
7061 ("glibmm" ,glibmm)))
7062 (native-inputs
7063 `(("perl" ,perl)
7064 ("pkg-config" ,pkg-config)))
7065 (home-page "http://libxmlplusplus.sourceforge.net/")
7066 (synopsis "C++ wrapper for XML parser library libxml2")
7067 (description
7068 "This package provides a C++ wrapper for the XML parser library
7069 libxml2.")
7070 (license license:lgpl2.1+)))
7071
7072 (define-public libxml++-2
7073 (package
7074 (inherit libxml++)
7075 (name "libxml++")
7076 (version "2.40.1")
7077 (source (origin
7078 (method url-fetch)
7079 (uri (string-append "mirror://gnome/sources/" name "/"
7080 (version-major+minor version) "/"
7081 name "-" version ".tar.xz"))
7082 (sha256
7083 (base32
7084 "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a"))))))
7085
7086 (define-public gdm
7087 (package
7088 (name "gdm")
7089 (version "3.34.1")
7090 (source (origin
7091 (method url-fetch)
7092 (uri (string-append "mirror://gnome/sources/" name "/"
7093 (version-major+minor version) "/"
7094 name "-" version ".tar.xz"))
7095 (sha256
7096 (base32
7097 "1lyqvcwxhwxklbxn4xjswjzr6fhjix6h28mi9ypn34wdm9bzcpg8"))
7098 (patches (search-patches "gdm-default-session.patch"))))
7099 (build-system glib-or-gtk-build-system)
7100 (arguments
7101 '(#:configure-flags
7102 `("--without-plymouth"
7103 "--disable-systemd-journal"
7104
7105 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
7106 ;; instead of having to replace it (i.e., stopping the mingetty
7107 ;; service for TTY 1 before starting GDM).
7108 "--with-initial-vt=7"
7109
7110 ;; Use '/etc/environment' for locale settings instead of the
7111 ;; systemd-specific '/etc/locale.conf'.
7112 "--with-lang-file=/etc/environment"
7113
7114 ,(string-append "--with-udevdir="
7115 (assoc-ref %outputs "out") "/lib/udev")
7116
7117 "--localstatedir=/var"
7118 ,(string-append "--with-default-path="
7119 (string-join '("/run/setuid-programs"
7120 "/run/current-system/profile/bin"
7121 "/run/current-system/profile/sbin")
7122 ":"))
7123 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
7124 ;; XDG_DATA_DIRS so that it finds its schemas.
7125 "--sbindir" ,(string-append (assoc-ref %outputs "out") "/bin"))
7126 #:phases
7127 (modify-phases %standard-phases
7128 (add-before
7129 'configure 'pre-configure
7130 (lambda* (#:key inputs outputs #:allow-other-keys)
7131 ;; We don't have <systemd/sd-daemon.h>.
7132 (substitute* '("common/gdm-log.c"
7133 "daemon/gdm-server.c"
7134 "daemon/gdm-session-worker.c"
7135 "daemon/gdm-session-worker-job.c")
7136 (("#include <systemd/sd-daemon\\.h>") ""))
7137 ;; Use elogind for sd-login.
7138 (substitute* '("common/gdm-common.c"
7139 "daemon/gdm-local-display-factory.c"
7140 "daemon/gdm-manager.c"
7141 "libgdm/gdm-user-switching.c")
7142 (("#include <systemd/sd-login\\.h>")
7143 "#include <elogind/sd-login.h>"))
7144 ;; Check for elogind.
7145 (substitute* '("configure")
7146 (("libsystemd")
7147 "libelogind"))
7148 ;; Look for system-installed sessions in
7149 ;; /run/current-system/profile/share.
7150 (substitute* '("libgdm/gdm-sessions.c"
7151 "daemon/gdm-session.c"
7152 "daemon/gdm-display.c"
7153 "daemon/gdm-launch-environment.c")
7154 (("DATADIR \"/x")
7155 "\"/run/current-system/profile/share/x")
7156 (("DATADIR \"/wayland")
7157 "\"/run/current-system/profile/share/wayland")
7158 (("DATADIR \"/gnome")
7159 "\"/run/current-system/profile/share/gnome"))
7160 (let ((propagate '("GDM_CUSTOM_CONF"
7161 "GDM_DBUS_DAEMON"
7162 "GDM_X_SERVER"
7163 "GDM_X_SESSION"
7164 ;; XXX: Remove this once GNOME Shell is
7165 ;; a dependency of GDM.
7166 "XDG_DATA_DIRS")))
7167 (substitute* "daemon/gdm-session.c"
7168 (("set_up_session_environment \\(self\\);")
7169 (apply string-append
7170 "set_up_session_environment (self);\n"
7171 (map (lambda (name)
7172 (string-append
7173 "gdm_session_set_environment_variable "
7174 "(self, \"" name "\","
7175 "g_getenv (\"" name "\"));\n"))
7176 propagate)))))
7177 ;; Find the configuration file using an environment variable.
7178 (substitute* '("common/gdm-settings.c")
7179 (("GDM_CUSTOM_CONF")
7180 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
7181 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
7182 " : GDM_CUSTOM_CONF)")))
7183 ;; Use service-supplied path to X.
7184 (substitute* '("daemon/gdm-server.c")
7185 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
7186 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
7187 (substitute* '("daemon/gdm-wayland-session.c"
7188 "daemon/gdm-x-session.c")
7189 (("\"dbus-daemon\"")
7190 "g_getenv (\"GDM_DBUS_DAEMON\")")
7191 (("X_SERVER")
7192 "g_getenv (\"GDM_X_SERVER\")")
7193 (("GDMCONFDIR \"/Xsession\"")
7194 "g_getenv (\"GDM_X_SESSION\")"))
7195 ;; Use an absolute path for GNOME Session.
7196 (substitute* "daemon/gdm-launch-environment.c"
7197 (("\"gnome-session\"")
7198 (string-append "\"" (assoc-ref inputs "gnome-session")
7199 "/bin/gnome-session\"")))
7200 ;; Do not automatically select the placeholder session.
7201 (substitute* "daemon/gdm-session.c"
7202 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
7203 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
7204 "(g_strcmp0(search_dirs[i], \""
7205 (assoc-ref outputs "out") "/share/gdm/BuiltInSessions/"
7206 "\") == 0 && "
7207 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
7208 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
7209 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))
7210 #t))
7211 ;; GDM requires that there be at least one desktop entry
7212 ;; file. This phase installs a hidden one that simply
7213 ;; fails. This enables users to use GDM with a
7214 ;; '~/.xsession' script with no other desktop entry files.
7215 ;; See <https://bugs.gnu.org/35068>.
7216 (add-after 'install 'install-placeholder-desktop-entry
7217 (lambda* (#:key inputs outputs #:allow-other-keys)
7218 (let* ((out (assoc-ref outputs "out"))
7219 (sessions (string-append out "/share/gdm/BuiltInSessions"))
7220 (fail (string-append sessions "/fail.desktop")))
7221 (mkdir-p sessions)
7222 (with-output-to-file fail
7223 (lambda ()
7224 (for-each
7225 display
7226 '("[Desktop Entry]\n"
7227 "Encoding=UTF-8\n"
7228 "Type=Application\n"
7229 "Name=Fail\n"
7230 "Comment=This session fails immediately.\n"
7231 "NoDisplay=true\n"
7232 "Exec=false\n"))))
7233 #t)))
7234 ;; GDM needs GNOME Session to run these applications. We link
7235 ;; their autostart files in `share/gdm/greeter/autostart'
7236 ;; because GDM explicitly tells GNOME Session to look there.
7237 ;;
7238 ;; XXX: GNOME Shell should be linked here too, but currently
7239 ;; GNOME Shell depends on GDM.
7240 (add-after 'install 'link-autostart-files
7241 (lambda* (#:key inputs outputs #:allow-other-keys)
7242 (let* ((out (assoc-ref outputs "out"))
7243 (autostart (string-append out "/share/gdm/"
7244 "greeter/autostart"))
7245 (settings (assoc-ref inputs "gnome-settings-daemon")))
7246 (mkdir-p autostart)
7247 (with-directory-excursion autostart
7248 (for-each (lambda (desktop)
7249 (symlink desktop (basename desktop)))
7250 (find-files (string-append settings "/etc/xdg"))))
7251 #t))))))
7252 (native-inputs
7253 `(("dconf" ,dconf)
7254 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7255 ("gobject-introspection" ,gobject-introspection)
7256 ("intltool" ,intltool)
7257 ("itstool" ,itstool)
7258 ("pkg-config" ,pkg-config)
7259 ("xmllint" ,libxml2)))
7260 (inputs
7261 `(("accountsservice" ,accountsservice)
7262 ("check" ,check) ; for testing
7263 ("elogind" ,elogind)
7264 ("gnome-session" ,gnome-session)
7265 ("gnome-settings-daemon" ,gnome-settings-daemon)
7266 ("gtk+" ,gtk+)
7267 ("iso-codes" ,iso-codes)
7268 ("libcanberra" ,libcanberra)
7269 ("linux-pam" ,linux-pam)))
7270 (synopsis "Display manager for GNOME")
7271 (home-page "https://wiki.gnome.org/Projects/GDM/")
7272 (description
7273 "GNOME Display Manager is a system service that is responsible for
7274 providing graphical log-ins and managing local and remote displays.")
7275 (license license:gpl2+)))
7276
7277 (define-public libgtop
7278 (package
7279 (name "libgtop")
7280 (version "2.40.0")
7281 (source (origin
7282 (method url-fetch)
7283 (uri (string-append "mirror://gnome/sources/libgtop/"
7284 (version-major+minor version) "/"
7285 "libgtop-" version ".tar.xz"))
7286 (sha256
7287 (base32
7288 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
7289 (build-system gnu-build-system)
7290 (native-inputs
7291 `(("gobject-introspection" ,gobject-introspection)
7292 ("intltool" ,intltool)
7293 ("perl" ,perl)
7294 ("pkg-config" ,pkg-config)))
7295 (propagated-inputs
7296 `(("glib" ,glib))) ; required by libgtop-2.0.pc
7297 (synopsis "Portable system access library")
7298 (home-page "https://www.gnome.org/")
7299 (description
7300 "LibGTop is a library to get system specific data such as CPU and memory
7301 usage and information about running processes.")
7302 (license license:gpl2+)))
7303
7304 (define-public gnome-bluetooth
7305 (package
7306 (name "gnome-bluetooth")
7307 (version "3.34.0")
7308 (source (origin
7309 (method url-fetch)
7310 (uri (string-append "mirror://gnome/sources/" name "/"
7311 (version-major+minor version) "/"
7312 name "-" version ".tar.xz"))
7313 (sha256
7314 (base32
7315 "1bvbxcsjkyl0givy8nfm7112bq3c0vn1v89fdk2pip714dsfcrz8"))))
7316 (build-system meson-build-system)
7317 (native-inputs
7318 `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
7319 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
7320 ("gobject-introspection" ,gobject-introspection)
7321 ("intltool" ,intltool)
7322 ("pkg-config" ,pkg-config)
7323 ("xmllint" ,libxml2)))
7324 (propagated-inputs
7325 ;; gnome-bluetooth-1.0.pc refers to all these.
7326 `(("glib" ,glib)
7327 ("gtk+" ,gtk+)))
7328 (inputs
7329 `(("eudev" ,eudev)
7330 ("libcanberra" ,libcanberra)
7331 ("libnotify" ,libnotify)))
7332 (synopsis "GNOME Bluetooth subsystem")
7333 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
7334 (description
7335 "This package contains tools for managing and manipulating Bluetooth
7336 devices using the GNOME desktop.")
7337 (license license:lgpl2.1+)))
7338
7339 (define-public gnome-control-center
7340 (package
7341 (name "gnome-control-center")
7342 (version "3.34.2")
7343 (source (origin
7344 (method url-fetch)
7345 (uri (string-append "mirror://gnome/sources/" name "/"
7346 (version-major+minor version) "/"
7347 name "-" version ".tar.xz"))
7348 (sha256
7349 (base32
7350 "054igagvmyzpaa5nwzz98gv7bk7l5dwp6g813707132si3szlpx8"))))
7351 (build-system meson-build-system)
7352 (arguments
7353 '(#:glib-or-gtk? #t
7354 #:configure-flags
7355 (list "-Dcheese=false"
7356 (string-append "-Dgnome_session_libexecdir="
7357 (assoc-ref %build-inputs "gnome-session")
7358 "/libexec"))
7359 #:phases
7360 (modify-phases %standard-phases
7361 (add-before 'configure 'patch-paths
7362 (lambda* (#:key inputs #:allow-other-keys)
7363 (let ((libc (assoc-ref inputs "libc"))
7364 (tzdata (assoc-ref inputs "tzdata"))
7365 (libgnomekbd (assoc-ref inputs "libgnomekbd"))
7366 (nm-applet (assoc-ref inputs "network-manager-applet"))
7367 (gnome-desktop (assoc-ref inputs "gnome-desktop")))
7368 (substitute* "panels/datetime/tz.h"
7369 (("/usr/share/zoneinfo/zone.tab")
7370 (string-append tzdata "/share/zoneinfo/zone.tab")))
7371 (substitute* "tests/datetime/test-endianess.c"
7372 (("/usr/share/locale")
7373 (string-append libc "/share/locale")))
7374 (substitute* "panels/region/cc-region-panel.c"
7375 (("\"gkbd-keyboard-display")
7376 (string-append "\"" libgnomekbd
7377 "/bin/gkbd-keyboard-display")))
7378 (substitute* '("panels/network/net-device-wifi.c"
7379 "panels/network/net-device.c"
7380 "panels/network/connection-editor/net-connection-editor.c")
7381 (("\"nm-connection-editor")
7382 (string-append "\"" nm-applet
7383 "/bin/nm-connection-editor")))
7384 (substitute* '("panels/user-accounts/run-passwd.c")
7385 (("/usr/bin/passwd")
7386 "/run/setuid-programs/passwd"))
7387 (substitute* "panels/info/cc-info-overview-panel.c"
7388 (("DATADIR \"/gnome/gnome-version.xml\"")
7389 (string-append "\"" gnome-desktop
7390 "/share/gnome/gnome-version.xml\"")))
7391 #t)))
7392 (add-after 'unpack 'skip-gtk-update-icon-cache
7393 ;; Don't create 'icon-theme.cache'.
7394 (lambda _
7395 (substitute* "build-aux/meson/meson_post_install.py"
7396 (("gtk-update-icon-cache") (which "true")))
7397 #t)))))
7398 (native-inputs
7399 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7400 ("intltool" ,intltool)
7401 ("pkg-config" ,pkg-config)
7402 ("xsltproc" ,libxslt)
7403 ;; For tests
7404 ("hicolor-icon-theme" ,hicolor-icon-theme)
7405 ("python-dbusmock" ,python-dbusmock)
7406 ("xorg-server" ,xorg-server-for-tests)))
7407 (inputs
7408 `(("accountsservice" ,accountsservice)
7409 ("clutter-gtk" ,clutter-gtk)
7410 ("colord-gtk" ,colord-gtk)
7411 ("cups" ,cups)
7412 ("dconf" ,dconf)
7413 ("docbook-xsl" ,docbook-xsl)
7414 ("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files
7415 ("gnome-bluetooth" ,gnome-bluetooth)
7416 ("gnome-desktop" ,gnome-desktop)
7417 ("gnome-online-accounts" ,gnome-online-accounts)
7418 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
7419 ("gnome-session" ,gnome-session)
7420 ("gnome-settings-daemon" ,gnome-settings-daemon)
7421 ("grilo" ,grilo)
7422 ("gsound" ,gsound)
7423 ("ibus" ,ibus)
7424 ("libcanberra" ,libcanberra)
7425 ("libgnomekbd" ,libgnomekbd)
7426 ("libgudev" ,libgudev)
7427 ("libgtop" ,libgtop)
7428 ("libnma" ,libnma)
7429 ("libpwquality" ,libpwquality)
7430 ("libsecret" ,libsecret)
7431 ("libsoup" ,libsoup)
7432 ("libxml2" ,libxml2)
7433 ("libwacom" ,libwacom)
7434 ("mesa" ,mesa)
7435 ("mit-krb5" ,mit-krb5)
7436 ("modem-manager" ,modem-manager)
7437 ("network-manager-applet" ,network-manager-applet)
7438 ("polkit" ,polkit)
7439 ("pulseaudio" ,pulseaudio)
7440 ("smbclient" ,samba)
7441 ("tzdata" ,tzdata)
7442 ("udisks" ,udisks)
7443 ("upower" ,upower)))
7444 (synopsis "Utilities to configure the GNOME desktop")
7445 (home-page "https://www.gnome.org/")
7446 (description
7447 "This package contains configuration applets for the GNOME desktop,
7448 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
7449 properties, sound setup, desktop theme and background, user interface
7450 properties, screen resolution, and other GNOME parameters.")
7451 (license license:gpl2+)))
7452
7453 (define-public gnome-shell
7454 (package
7455 (name "gnome-shell")
7456 (version "3.34.2")
7457 (source (origin
7458 (method url-fetch)
7459 (uri (string-append "mirror://gnome/sources/" name "/"
7460 (version-major+minor version) "/"
7461 name "-" version ".tar.xz"))
7462 (sha256
7463 (base32
7464 "0k9vq2gh1nhdd6fpp7jnwx37qxaakawiqw1xnlfjvq5g5zdn8ckh"))
7465 (patches (search-patches "gnome-shell-theme.patch"
7466 "gnome-shell-disable-test.patch"))
7467 (modules '((guix build utils)))
7468 (snippet
7469 #~(begin
7470 ;; Copy images for use on the GDM log-in screen.
7471 (copy-file #$(file-append %artwork-repository
7472 "/slim/0.x/background.png")
7473 "data/theme/guix-background.png")
7474 (copy-file #$(file-append %artwork-repository
7475 "/logo/Guix-horizontal-white.svg")
7476 "data/theme/guix-logo.svg")
7477 #t))))
7478 (build-system meson-build-system)
7479 (arguments
7480 `(#:glib-or-gtk? #t
7481 #:disallowed-references ((,glib "bin")
7482 ,inkscape ,libxslt
7483 ,ruby-sass)
7484 #:configure-flags
7485 (list "-Dsystemd=false"
7486 ;; Otherwise, the RUNPATH will lack the final path component.
7487 (string-append "-Dc_link_args=-Wl,-rpath="
7488 (assoc-ref %outputs "out")
7489 "/lib/gnome-shell"))
7490
7491 #:modules ((guix build meson-build-system)
7492 (guix build utils)
7493 (srfi srfi-1))
7494
7495 #:phases
7496 (modify-phases %standard-phases
7497 (add-after 'unpack 'fix-keysdir
7498 (lambda* (#:key outputs #:allow-other-keys)
7499 (let* ((out (assoc-ref outputs "out"))
7500 (keysdir (string-append
7501 out "/share/gnome-control-center/keybindings")))
7502 (substitute* "meson.build"
7503 (("keysdir =.*")
7504 (string-append "keysdir = '" keysdir "'\n")))
7505 #t)))
7506 (add-before 'configure 'convert-logo-to-png
7507 (lambda* (#:key inputs #:allow-other-keys)
7508 ;; Convert the logo from SVG to PNG.
7509 (invoke "inkscape" "--export-png=data/theme/guix-logo.png"
7510 "data/theme/guix-logo.svg")))
7511 (add-before 'configure 'record-absolute-file-names
7512 (lambda* (#:key inputs #:allow-other-keys)
7513 (substitute* "js/misc/ibusManager.js"
7514 (("'ibus-daemon'")
7515 (string-append "'" (assoc-ref inputs "ibus")
7516 "/bin/ibus-daemon'")))
7517 (substitute* "js/ui/status/keyboard.js"
7518 (("'gkbd-keyboard-display'")
7519 (string-append "'" (assoc-ref inputs "libgnomekbd")
7520 "/bin/gkbd-keyboard-display'")))
7521 #t))
7522 (add-before 'check 'pre-check
7523 (lambda* (#:key inputs #:allow-other-keys)
7524 ;; Tests require a running X server.
7525 (system "Xvfb :1 &")
7526 (setenv "DISPLAY" ":1")
7527 #t))
7528 (add-after 'install 'wrap-programs
7529 (lambda* (#:key inputs outputs #:allow-other-keys)
7530 (let ((out (assoc-ref outputs "out"))
7531 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
7532 (python-path (getenv "PYTHONPATH")))
7533 (wrap-program (string-append out "/bin/gnome-shell")
7534 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
7535 ;; FIXME: gnome-shell loads these libraries with unqualified
7536 ;; names only, so they need to be on LD_LIBRARY_PATH. The
7537 ;; alternative might be to patch gnome-shell.
7538 `("LD_LIBRARY_PATH" ":" prefix
7539 ,(map (lambda (pkg)
7540 (string-append (assoc-ref inputs pkg) "/lib"))
7541 '("gdk-pixbuf"
7542 "gnome-bluetooth" "librsvg" "libgweather"))))
7543 (for-each
7544 (lambda (prog)
7545 (wrap-program (string-append out "/bin/" prog)
7546 `("PYTHONPATH" ":" prefix (,python-path))
7547 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
7548 '("gnome-shell-extension-tool" "gnome-shell-perf-tool"))
7549 #t)))
7550 (replace 'glib-or-gtk-wrap
7551 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
7552 (lambda* (#:key inputs outputs #:allow-other-keys #:rest rest)
7553 ;; By default Inkscape et al. would end up in the XDG_DATA_DIRS
7554 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
7555 ;; phase. Fix that since we don't need these.
7556 (wrap #:inputs (fold alist-delete inputs
7557 '("inkscape" "intltool" "glib:bin"))
7558 #:outputs outputs)))))))
7559 (native-inputs
7560 `(("asciidoc" ,asciidoc)
7561 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7562 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7563 ("gobject-introspection" ,gobject-introspection)
7564 ("inkscape" ,inkscape)
7565 ("intltool" ,intltool)
7566 ("pkg-config" ,pkg-config)
7567 ("python" ,python)
7568 ("ruby-sass" ,ruby-sass)
7569 ("sassc" ,sassc)
7570 ("xsltproc" ,libxslt)
7571 ;; For tests
7572 ("xorg-server" ,xorg-server-for-tests)))
7573 (inputs
7574 `(("accountsservice" ,accountsservice)
7575 ("caribou" ,caribou)
7576 ("docbook-xsl" ,docbook-xsl)
7577 ("evolution-data-server" ,evolution-data-server)
7578 ("gcr" ,gcr)
7579 ("gdm" ,gdm)
7580 ("gdk-pixbuf" ,gdk-pixbuf+svg)
7581 ("gjs" ,gjs)
7582 ("gnome-autoar" ,gnome-autoar)
7583 ("gnome-bluetooth" ,gnome-bluetooth)
7584 ("gnome-desktop" ,gnome-desktop)
7585 ("gnome-settings-daemon" ,gnome-settings-daemon)
7586 ("gst-plugins-base" ,gst-plugins-base)
7587 ("ibus" ,ibus)
7588 ("libcanberra" ,libcanberra)
7589 ("libcroco" ,libcroco)
7590 ("libgnomekbd" ,libgnomekbd) ;for gkbd-keyboard-display
7591 ("libgweather" ,libgweather)
7592 ("libnma" ,libnma)
7593 ("libsoup" ,libsoup)
7594 ("mesa-headers" ,mesa-headers)
7595 ("mutter" ,mutter)
7596 ("network-manager-applet" ,network-manager-applet)
7597 ("polkit" ,polkit)
7598 ("pulseaudio" ,pulseaudio)
7599 ("python-pygobject" ,python-pygobject)
7600 ("startup-notification" ,startup-notification)
7601 ("telepathy-logger" ,telepathy-logger)
7602 ("upower" ,upower)
7603 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
7604 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
7605 ("librsvg" ,librsvg)
7606 ("geoclue" ,geoclue)))
7607 (synopsis "Desktop shell for GNOME")
7608 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
7609 (description
7610 "GNOME Shell provides core user interface functions for the GNOME desktop,
7611 like switching to windows and launching applications.")
7612 (license license:gpl2+)))
7613
7614 (define-public gtk-vnc
7615 (package
7616 (name "gtk-vnc")
7617 (version "0.9.0")
7618 (source
7619 (origin
7620 (method url-fetch)
7621 (uri (string-append "mirror://gnome/sources/" name "/"
7622 (version-major+minor version) "/"
7623 name "-" version ".tar.xz"))
7624 (sha256
7625 (base32
7626 "1dya1wc9vis8h0fv625pii1n70cckf1xjg1m2hndz989d118i6is"))))
7627 (build-system gnu-build-system)
7628 (arguments
7629 '(#:configure-flags '("--with-gtk=3.0")))
7630 (propagated-inputs
7631 `(("gtk+" ,gtk+))) ; required by gtk-vnc-2.0.pc.
7632 (inputs
7633 `(("cyrus-sasl" ,cyrus-sasl)
7634 ("gnutls" ,gnutls)
7635 ("libgcrypt" ,libgcrypt)
7636 ("pulseaudio" ,pulseaudio)))
7637 (native-inputs
7638 `(("glib:bin" ,glib "bin")
7639 ("gobject-introspection" ,gobject-introspection)
7640 ("intltool" ,intltool)
7641 ("pkg-config" ,pkg-config)
7642 ("python-wrapper" ,python-wrapper)
7643 ("vala" ,vala)))
7644 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
7645 (synopsis "VNC viewer widget for GTK+")
7646 (description
7647 "GTK-VNC is a VNC viewer widget for GTK+, used by remote desktop viewing
7648 applications, for instance the Vinagre client, GNOME Boxes and virt-viewer.
7649 GTK-VNC implements client side RFB protocol and authentication extensions such
7650 as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
7651 (license license:lgpl2.1+)))
7652
7653 (define-public gnome-autoar
7654 (package
7655 (name "gnome-autoar")
7656 (version "0.2.4")
7657 (source (origin
7658 (method url-fetch)
7659 (uri (string-append "mirror://gnome/sources/" name "/"
7660 (version-major+minor version) "/"
7661 name "-" version ".tar.xz"))
7662 (sha256
7663 (base32
7664 "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"))))
7665 (build-system glib-or-gtk-build-system)
7666 (native-inputs
7667 `(("gobject-introspection" ,gobject-introspection)
7668 ("pkg-config" ,pkg-config)))
7669 (propagated-inputs
7670 `(("libarchive" ,libarchive))) ; Required by gnome-autoar-0.pc
7671 (inputs
7672 `(("gtk+" ,gtk+)))
7673 (synopsis "Archives integration support for GNOME")
7674 (home-page "https://git.gnome.org/browse/gnome-autoar/")
7675 (description
7676 "GNOME Autoar is a library which makes creating and extracting archives
7677 easy, safe, and automatic.")
7678 (license license:lgpl2.1+)))
7679
7680 (define-public tracker
7681 (package
7682 (name "tracker")
7683 (version "2.3.4")
7684 (source (origin
7685 (method url-fetch)
7686 (uri (string-append "mirror://gnome/sources/tracker/"
7687 (version-major+minor version) "/"
7688 "tracker-" version ".tar.xz"))
7689 (sha256
7690 (base32
7691 "0vai0qz9jn3z5dlzysynwhbbmslp84ygdql81f5wfxxr98j54yap"))))
7692 (build-system meson-build-system)
7693 (arguments
7694 `(#:glib-or-gtk? #t
7695 #:configure-flags
7696 ;; Otherwise, the RUNPATH will lack the final path component.
7697 (list (string-append "-Dc_link_args=-Wl,-rpath="
7698 (assoc-ref %outputs "out") "/lib:"
7699 (assoc-ref %outputs "out") "/lib/tracker-2.0"))
7700 #:phases
7701 (modify-phases %standard-phases
7702 (add-before 'check 'pre-check
7703 (lambda _
7704 ;; Some tests expect to write to $HOME.
7705 (setenv "HOME" "/tmp")
7706 #t)))))
7707 (native-inputs
7708 `(("glib:bin" ,glib "bin")
7709 ("gobject-introspection" ,gobject-introspection)
7710 ("python-pygobject" ,python-pygobject)
7711 ("intltool" ,intltool)
7712 ("pkg-config" ,pkg-config)
7713 ("vala" ,vala)))
7714 (inputs
7715 `(("dbus" ,dbus)
7716 ("sqlite" ,sqlite)
7717 ("libxml2" ,libxml2)
7718 ("icu4c" ,icu4c) ; libunistring gets miner-miner-fs test to fail.
7719 ("json-glib" ,json-glib)
7720 ("libsoup" ,libsoup)))
7721 (synopsis "Metadata database, indexer and search tool")
7722 (home-page "https://wiki.gnome.org/Projects/Tracker")
7723 (description
7724 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
7725
7726 It is a middleware component aimed at desktop application developers who want
7727 their apps to browse and search user content. It's not designed to be used
7728 directly by desktop users, but it provides a commandline tool named
7729 @command{tracker} for the adventurous.
7730
7731 Tracker allows your application to instantly perform full-text searches across
7732 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
7733 example. This is achieved by indexing the user's home directory in the
7734 background.
7735
7736 Tracker also allows your application to query and list content that the user
7737 has stored. For example, GNOME Music displays all the music files that are
7738 found by Tracker. This means that GNOME Music doesn't need to maintain a
7739 database of its own.
7740
7741 If you need to go beyond simple searches, Tracker is also a linked data
7742 endpoint and it understands SPARQL. ")
7743 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
7744 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7745 ;; libstemmer is bsd-3 and the rest is gpl2+.
7746 (license (list license:gpl2+
7747 license:bsd-3
7748 license:lgpl2.1+))))
7749
7750 (define-public tracker-miners
7751 (package
7752 (name "tracker-miners")
7753 (version "2.3.3")
7754 (source (origin
7755 (method url-fetch)
7756 (uri (string-append "mirror://gnome/sources/tracker-miners/"
7757 (version-major+minor version)
7758 "/tracker-miners-" version ".tar.xz"))
7759 (sha256
7760 (base32
7761 "06abxrnrz7xayykrabn135rpsm6z0fqw7gibrb9j09l6swlalwkl"))))
7762 (build-system meson-build-system)
7763 (arguments
7764 `(#:glib-or-gtk? #t
7765 #:configure-flags
7766 (list "-Dminer_rss=false" ; libgrss is required.
7767 ;; Ensure the RUNPATH contains all installed library locations.
7768 (string-append "-Dc_link_args=-Wl,-rpath="
7769 (assoc-ref %outputs "out")
7770 "/lib/tracker-miners-2.0")
7771 ;; TODO: Enable functional tests. Currently, the following error
7772 ;; appears:
7773 ;; Exception: The functional tests require DConf to be the default
7774 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
7775 "-Dfunctional_tests=false")))
7776 (native-inputs
7777 `(("dbus" ,dbus)
7778 ("intltool" ,intltool)
7779 ("glib:bin" ,glib "bin")
7780 ("gobject-introspection" ,gobject-introspection)
7781 ("pkg-config" ,pkg-config)
7782 ("python-pygobject" ,python-pygobject)))
7783 (inputs
7784 `(("exempi" ,exempi)
7785 ("ffmpeg" ,ffmpeg)
7786 ("flac" ,flac)
7787 ("giflib" ,giflib)
7788 ("glib" ,glib)
7789 ("gstreamer" ,gstreamer)
7790 ("icu4c" ,icu4c)
7791 ("libcue" ,libcue)
7792 ("libexif" ,libexif)
7793 ("libgsf" ,libgsf)
7794 ("libgxps" ,libgxps)
7795 ("libiptcdata" ,libiptcdata)
7796 ("libjpeg" ,libjpeg-turbo)
7797 ("libosinfo" ,libosinfo)
7798 ("libpng" ,libpng)
7799 ("libseccomp" ,libseccomp)
7800 ("libtiff" ,libtiff)
7801 ("libvorbis" ,libvorbis)
7802 ("libxml2" ,libxml2)
7803 ("poppler" ,poppler)
7804 ("taglib" ,taglib)
7805 ("totem-pl-parser" ,totem-pl-parser)
7806 ("tracker" ,tracker)
7807 ("upower" ,upower)
7808 ("zlib" ,zlib)))
7809 (synopsis "Metadata database, indexer and search tool")
7810 (home-page "https://wiki.gnome.org/Projects/Tracker")
7811 (description
7812 "Tracker is an advanced framework for first class objects with associated
7813 metadata and tags. It provides a one stop solution for all metadata, tags,
7814 shared object databases, search tools and indexing.")
7815 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
7816 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
7817 (license (list license:gpl2+
7818 license:lgpl2.1+
7819 license:lgpl2.0+))))
7820
7821 (define-public nautilus
7822 (package
7823 (name "nautilus")
7824 (version "3.34.2")
7825 (source (origin
7826 (method url-fetch)
7827 (uri (string-append "mirror://gnome/sources/" name "/"
7828 (version-major+minor version) "/"
7829 name "-" version ".tar.xz"))
7830 (sha256
7831 (base32
7832 "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"))))
7833 (build-system meson-build-system)
7834 (arguments
7835 '(#:glib-or-gtk? #t
7836 #:phases
7837 (modify-phases %standard-phases
7838 (add-after 'unpack 'skip-gtk-update-icon-cache
7839 ;; Don't create 'icon-theme.cache'.
7840 (lambda _
7841 (substitute* "build-aux/meson/postinstall.py"
7842 (("gtk-update-icon-cache") "true"))
7843 #t)))
7844 ;; XXX: FAIL: check-nautilus
7845 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
7846 #:tests? #f))
7847 (native-inputs
7848 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7849 ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
7850 ("gobject-introspection" ,gobject-introspection)
7851 ("intltool" ,intltool)
7852 ("pkg-config" ,pkg-config)))
7853 (inputs
7854 `(("dconf" ,dconf)
7855 ("gexiv2" ,gexiv2)
7856 ("gvfs" ,gvfs)
7857 ("exempi" ,exempi)
7858 ("gnome-desktop" ,gnome-desktop)
7859 ("gnome-autoar" ,gnome-autoar)
7860 ("gst-plugins-base" ,gst-plugins-base)
7861 ("libseccomp" ,libseccomp)
7862 ("libselinux" ,libselinux)
7863 ("tracker" ,tracker)
7864 ("tracker-miners" ,tracker-miners)
7865 ;; XXX: gtk+ is required by libnautilus-extension.pc
7866 ;;
7867 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
7868 ;; package. See:
7869 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
7870 ("gtk+" ,gtk+)
7871 ("libexif" ,libexif)
7872 ("libxml2" ,libxml2)))
7873 (synopsis "File manager for GNOME")
7874 (home-page "https://wiki.gnome.org/Apps/Nautilus")
7875 (description
7876 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
7877 design and behaviour, giving the user a simple way to navigate and manage its
7878 files.")
7879 (license license:gpl2+)))
7880
7881 (define-public baobab
7882 (package
7883 (name "baobab")
7884 (version "3.32.0")
7885 (source (origin
7886 (method url-fetch)
7887 (uri (string-append
7888 "mirror://gnome/sources/" name "/"
7889 (version-major+minor version) "/"
7890 name "-" version ".tar.xz"))
7891 (sha256
7892 (base32
7893 "0b33s9bhpiffv5wl76cq2bbnqhvx3qs2vxyxmil5gcs583llqh9r"))))
7894 (build-system meson-build-system)
7895 (arguments
7896 '(#:glib-or-gtk? #t))
7897 (native-inputs
7898 `(("intltool" ,intltool)
7899 ("pkg-config" ,pkg-config)
7900 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7901 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
7902 ("itstool" ,itstool)
7903 ("xmllint" ,libxml2)
7904 ("glib" ,glib "bin")
7905 ("vala" ,vala)))
7906 (inputs
7907 `(("gtk+" ,gtk+)))
7908 (synopsis "Disk usage analyzer for GNOME")
7909 (description
7910 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
7911 usage in the GNOME desktop environment. It can easily scan device volumes or
7912 a specific user-requested directory branch (local or remote). Once the scan
7913 is complete it provides a graphical representation of each selected folder.")
7914 (home-page "https://wiki.gnome.org/Apps/Baobab")
7915 (license license:gpl2+)))
7916
7917 (define-public gnome-backgrounds
7918 (package
7919 (name "gnome-backgrounds")
7920 (version "3.34.0")
7921 (source
7922 (origin
7923 (method url-fetch)
7924 (uri (string-append "mirror://gnome/sources/" name "/"
7925 (version-major+minor version) "/"
7926 name "-" version ".tar.xz"))
7927 (sha256
7928 (base32
7929 "0zxlwy55fz7i582hch2wnj8zy1kzikssgaix0l2y41ccp5nzpdy2"))))
7930 (build-system meson-build-system)
7931 (native-inputs
7932 `(("intltool" ,intltool)))
7933 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
7934 (synopsis "Background images for the GNOME desktop")
7935 (description
7936 "GNOME backgrounds package contains a collection of graphics files which
7937 can be used as backgrounds in the GNOME Desktop environment. Additionally,
7938 the package creates the proper framework and directory structure so that you
7939 can add your own files to the collection.")
7940 (license (list license:gpl2+
7941 license:cc-by2.0
7942 license:cc-by-sa2.0
7943 license:cc-by-sa3.0))))
7944
7945 (define-public gnome-screenshot
7946 (package
7947 (name "gnome-screenshot")
7948 (version "3.34.0")
7949 (source
7950 (origin
7951 (method url-fetch)
7952 (uri (string-append "mirror://gnome/sources/" name "/"
7953 (version-major+minor version) "/"
7954 name "-" version ".tar.xz"))
7955 (sha256
7956 (base32
7957 "1rmiq890j7gfn5mcz31xy6jfnnxgc17dq67bhn2k9m5ylbvza2n8"))))
7958 (build-system meson-build-system)
7959 (arguments
7960 '(#:phases
7961 (modify-phases %standard-phases
7962 (add-after 'unpack 'skip-gtk-update-icon-cache
7963 ;; Don't create 'icon-theme.cache'.
7964 (lambda _
7965 (substitute* "build-aux/postinstall.py"
7966 (("gtk-update-icon-cache") "true"))
7967 #t)))))
7968 (native-inputs
7969 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
7970 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
7971 ("intltool" ,intltool)
7972 ("appstream-glib" ,appstream-glib)
7973 ("pkg-config" ,pkg-config)))
7974 (inputs
7975 `(("gtk+" ,gtk+)
7976 ("libcanberra" ,libcanberra)
7977 ("libx11" ,libx11)
7978 ("libxext" ,libxext)))
7979 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
7980 (synopsis "Take pictures of your screen")
7981 (description
7982 "GNOME Screenshot is a utility used for taking screenshots of the entire
7983 screen, a window or a user defined area of the screen, with optional
7984 beautifying border effects.")
7985 (license license:gpl2+)))
7986
7987 (define-public dconf-editor
7988 (package
7989 (name "dconf-editor")
7990 (version "3.34.2")
7991 (source
7992 (origin
7993 (method url-fetch)
7994 (uri (string-append "mirror://gnome/sources/" name "/"
7995 (version-major+minor version) "/"
7996 name "-" version ".tar.xz"))
7997 (sha256
7998 (base32
7999 "0pwxjada2vaf69ihpjgp9nky54iykvxq63lp1vl8pxjanif2mk6f"))))
8000 (build-system meson-build-system)
8001 (native-inputs
8002 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8003 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8004 ("intltool" ,intltool)
8005 ("pkg-config" ,pkg-config)
8006 ("vala" ,vala)))
8007 (inputs
8008 `(("dconf" ,dconf)
8009 ("gtk+" ,gtk+)
8010 ("libxml2" ,libxml2)))
8011 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
8012 (synopsis "Graphical editor for GNOME's dconf configuration system")
8013 (description
8014 "Dconf-editor is a graphical tool for browsing and editing the dconf
8015 configuration system for GNOME. It allows users to configure desktop
8016 software that do not provide their own configuration interface.")
8017 (license license:lgpl2.1+)))
8018
8019 (define-public gnome-default-applications
8020 (package
8021 (name "gnome-default-applications")
8022 (version "0")
8023 (build-system trivial-build-system)
8024 (source #f)
8025 (propagated-inputs
8026 `(("nautilus" ,nautilus)
8027 ("evince" ,evince)))
8028 (arguments
8029 `(#:modules ((guix build utils))
8030 #:builder
8031 (begin
8032 (use-modules (guix build utils))
8033 (let* ((out (assoc-ref %outputs "out"))
8034 (apps (string-append out "/share/applications")))
8035 (mkdir-p apps)
8036 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
8037 (lambda (port)
8038 (format port "[Default Applications]\n")
8039 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
8040 (format port "application/pdf=evince.desktop\n")
8041 (format port "application/postscript=evince.desktop\n")))
8042 #t))))
8043 (synopsis "Default MIME type associations for the GNOME desktop")
8044 (description
8045 "Given many installed packages which might handle a given MIME type, a
8046 user running the GNOME desktop probably has some preferences: for example,
8047 that folders be opened by default by the Nautilus file manager, not the Baobab
8048 disk usage analyzer. This package establishes that set of default MIME type
8049 associations for GNOME.")
8050 (license license:gpl3+)
8051 (home-page #f)))
8052
8053 (define-public libgovirt
8054 (package
8055 (name "libgovirt")
8056 (version "0.3.6")
8057 (source (origin
8058 (method url-fetch)
8059 (uri (string-append "mirror://gnome/sources/" name "/"
8060 (version-major+minor version) "/"
8061 name "-" version ".tar.xz"))
8062 (sha256
8063 (base32
8064 "19pb71pag3vsi83kbv8h08kimwym4hpw36kjl6a5ik5nk50mc8sg"))))
8065 (build-system glib-or-gtk-build-system)
8066 (native-inputs
8067 `(("gettext" ,gettext-minimal)
8068 ("glib:bin" ,glib "bin")
8069 ("gobject-introspection" ,gobject-introspection)
8070 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8071 ("gtk+:bin" ,gtk+ "bin")
8072 ("pkg-config" ,pkg-config)))
8073 (inputs
8074 `(("glib-networking" ,glib-networking) ; GIO plugin--for the tests
8075 ("librest" ,rest)))
8076 (synopsis "GoVirt Library")
8077 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
8078 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
8079 (license license:gpl2+)))
8080
8081 (define-public gnome-weather
8082 (package
8083 (name "gnome-weather")
8084 (version "3.34.0")
8085 (source (origin
8086 (method url-fetch)
8087 (uri (string-append "mirror://gnome/sources/" name "/"
8088 (version-major+minor version) "/"
8089 name "-" version ".tar.xz"))
8090 (sha256
8091 (base32
8092 "1g63xzs17i36if923b36k9fwbk0nqa5vz6zh1k6q2axrzhhpx1i4"))))
8093 (build-system meson-build-system)
8094 (native-inputs
8095 `(("gettext" ,gettext-minimal)
8096 ("glib:bin" ,glib "bin")
8097 ("gobject-introspection" ,gobject-introspection)
8098 ("gtk+:bin" ,gtk+ "bin")
8099 ("pkg-config" ,pkg-config)))
8100 (inputs
8101 `( ;("adwaita-icon-theme" ,adwaita-icon-theme)
8102 ("appstream-glib" ,appstream-glib)
8103 ("geoclue" ,geoclue)
8104 ("gdk-pixbuf" ,gdk-pixbuf)
8105 ("gjs" ,gjs)
8106 ("gnome-desktop" ,gnome-desktop)
8107 ("libgweather" ,libgweather)))
8108 (arguments
8109 `(#:glib-or-gtk? #t
8110 #:phases
8111 (modify-phases %standard-phases
8112 (add-after 'install 'fix-desktop-file
8113 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some reason.
8114 ;; See https://issues.guix.gnu.org/issue/39324.
8115 (lambda* (#:key outputs #:allow-other-keys)
8116 (let* ((out (assoc-ref outputs "out"))
8117 (applications (string-append out "/share/applications")))
8118 (substitute* (string-append applications "/org.gnome.Weather.desktop")
8119 (("Exec=.*") "Exec=gnome-weather\n"))
8120 #t)))
8121 (add-after 'install 'wrap
8122 (lambda* (#:key inputs outputs #:allow-other-keys)
8123 (let ((out (assoc-ref outputs "out"))
8124 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8125 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at runtime.
8126 (wrap-program (string-append out "/bin/gnome-weather")
8127 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
8128 #t))))))
8129 (synopsis "Weather monitoring for GNOME desktop")
8130 (description "GNOME Weather is a small application that allows you to
8131 monitor the current weather conditions for your city, or anywhere in the
8132 world.")
8133 (home-page "https://wiki.gnome.org/Apps/Weather")
8134 (license license:gpl2+)))
8135
8136 (define-public gnome
8137 (package
8138 (name "gnome")
8139 (version (package-version gnome-shell))
8140 (source #f)
8141 (build-system trivial-build-system)
8142 (arguments '(#:builder (begin (mkdir %output) #t)))
8143 (propagated-inputs
8144 ;; TODO: Add or remove packages according to:
8145 ;; <https://calc.disroot.org/2nu6mpf88ynq.html>.
8146 `(
8147 ;; GNOME-Core-OS-Services
8148 ("accountsservice" ,accountsservice)
8149 ("network-manager" ,network-manager)
8150 ("packagekit" ,packagekit)
8151 ("upower" ,upower)
8152 ;; GNOME-Core-Shell
8153 ("adwaita-icon-theme" ,adwaita-icon-theme)
8154 ("gdm" ,gdm)
8155 ("glib-networking" ,glib-networking)
8156 ("gnome-backgrounds" ,gnome-backgrounds)
8157 ("gnome-bluetooth" ,gnome-bluetooth)
8158 ("gnome-color-manager" ,gnome-color-manager)
8159 ("gnome-control-center" ,gnome-control-center)
8160 ("gnome-desktop" ,gnome-desktop)
8161 ("gnome-getting-started-docs" ,gnome-getting-started-docs)
8162 ("gnome-initial-setup" ,gnome-initial-setup)
8163 ("gnome-keyring" ,gnome-keyring)
8164 ("gnome-menus" ,gnome-menus)
8165 ("gnome-session" ,gnome-session)
8166 ("gnome-settings-daemon" ,gnome-settings-daemon)
8167 ("gnome-shell-extensions" ,gnome-shell-extensions)
8168 ("gnome-shell" ,gnome-shell)
8169 ("gnome-themes-extra" ,gnome-themes-extra)
8170 ("gnome-user-docs" ,gnome-user-docs)
8171 ("gnome-user-share" ,gnome-user-share)
8172 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8173 ("gvfs" ,gvfs)
8174 ("mutter" ,mutter)
8175 ("orca" ,orca)
8176 ("rygel" ,rygel)
8177 ("sushi" ,sushi)
8178 ;; GNOME-Core-Utilities
8179 ("baobab" ,baobab)
8180 ("cheese" ,cheese)
8181 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
8182 ;; only works on x86_64, so exclude it on other architectures.
8183 ,@(if (string-prefix? "x86_64" (%current-system))
8184 `(("eog" ,eog))
8185 '())
8186 ("epiphany" ,epiphany)
8187 ("evince" ,evince)
8188 ("file-roller" ,file-roller)
8189 ("gedit" ,gedit)
8190 ("gnome-boxes" ,gnome-boxes)
8191 ("gnome-calculator" ,gnome-calculator)
8192 ("gnome-calendar" ,gnome-calendar)
8193 ("gnome-characters" ,gnome-characters)
8194 ("gnome-clocks" ,gnome-clocks)
8195 ("gnome-contacts" ,gnome-contacts)
8196 ("gnome-disk-utility" ,gnome-disk-utility)
8197 ("gnome-font-viewer" ,gnome-font-viewer)
8198 ("gnome-maps" ,gnome-maps)
8199 ; TODO: ("gnome-music" ,gnome-music)
8200 ; TODO: ("gnome-photos" ,gnome-photos)
8201 ("gnome-screenshot" ,gnome-screenshot)
8202 ("gnome-system-monitor" ,gnome-system-monitor)
8203 ("gnome-terminal" ,gnome-terminal)
8204 ("gnome-weather" ,gnome-weather)
8205 ("nautilus" ,nautilus)
8206 ("simple-scan" ,simple-scan)
8207 ("totem" ,totem)
8208 ("yelp" ,yelp)
8209 ;; Others
8210 ("hicolor-icon-theme" ,hicolor-icon-theme)
8211 ("gnome-online-accounts" ,gnome-online-accounts)
8212
8213 ;; Packages not part of GNOME proper but that are needed for a good
8214 ;; experience. See <https://bugs.gnu.org/39646>.
8215 ;; XXX: Find out exactly which ones are needed and why.
8216 ("font-cantarell" ,font-cantarell)
8217 ("font-dejavu" ,font-dejavu)
8218 ("at-spi2-core" ,at-spi2-core)
8219 ("dbus" ,dbus)
8220 ("dconf" ,dconf)
8221 ("desktop-file-utils" ,desktop-file-utils)
8222 ("gnome-default-applications" ,gnome-default-applications)
8223 ("gnome-themes-standard" ,gnome-themes-standard)
8224 ("gst-plugins-base" ,gst-plugins-base)
8225 ("gst-plugins-good" ,gst-plugins-good)
8226 ("gucharmap" ,gucharmap)
8227 ("pinentry-gnome3" ,pinentry-gnome3)
8228 ("pulseaudio" ,pulseaudio)
8229 ("shared-mime-info" ,shared-mime-info)
8230 ("system-config-printer" ,system-config-printer)
8231 ("xdg-user-dirs" ,xdg-user-dirs)
8232 ("yelp" ,yelp)
8233 ("zenity" ,zenity)))
8234 (synopsis "The GNU desktop environment")
8235 (home-page "https://www.gnome.org/")
8236 (description
8237 "GNOME is the graphical desktop for GNU. It includes a wide variety of
8238 applications for browsing the web, editing text and images, creating
8239 documents and diagrams, playing media, scanning, and much more.")
8240 (license license:gpl2+)))
8241
8242 (define-public byzanz
8243 ;; The last stable release of Byzanz was in 2011, but there have been many
8244 ;; useful commits made to the Byzanz repository since then that it would be
8245 ;; silly to use such an old release.
8246 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
8247 (package
8248 (name "byzanz")
8249 (version (string-append "0.2-1." (string-take commit 7)))
8250 (source (origin
8251 (method git-fetch)
8252 (uri (git-reference
8253 (url "https://git.gnome.org/browse/byzanz")
8254 (commit commit)))
8255 (file-name (string-append name "-" version "-checkout"))
8256 (sha256
8257 (base32
8258 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
8259 (build-system glib-or-gtk-build-system)
8260 (arguments
8261 '(#:phases
8262 (modify-phases %standard-phases
8263 (add-before 'bootstrap 'build-without-Werror
8264 (lambda _
8265 ;; The build system cleverly detects that we're not building from
8266 ;; a release tarball and turns on -Werror for GCC.
8267 ;; Unsurprisingly, there is a warning during compilation that
8268 ;; causes the build to fail unnecessarily, so we remove the flag.
8269 (substitute* '("configure.ac")
8270 (("-Werror") ""))
8271 #t)))))
8272 (native-inputs
8273 `(("autoconf" ,autoconf)
8274 ("automake" ,automake)
8275 ("gnome-common" ,gnome-common)
8276 ("intltool" ,intltool)
8277 ("libtool" ,libtool)
8278 ("pkg-config" ,pkg-config)
8279 ("which" ,which)))
8280 (inputs
8281 `(("glib" ,glib)
8282 ("gstreamer" ,gstreamer)
8283 ("gst-plugins-base" ,gst-plugins-base)
8284 ("gtk+" ,gtk+)))
8285 (synopsis "Desktop recording program")
8286 (description "Byzanz is a simple desktop recording program with a
8287 command-line interface. It can record part or all of an X display for a
8288 specified duration and save it as a GIF encoded animated image file.")
8289 (home-page "https://git.gnome.org/browse/byzanz")
8290 (license license:gpl2+))))
8291
8292 (define-public gsound
8293 (package
8294 (name "gsound")
8295 (version "1.0.2")
8296 (source (origin
8297 (method url-fetch)
8298 (uri (string-append "mirror://gnome/sources/" name "/"
8299 (version-major+minor version) "/"
8300 name "-" version ".tar.xz"))
8301 (sha256
8302 (base32
8303 "0lwfwx2c99qrp08pfaj59pks5dphsnxjgrxyadz065d8xqqgza5v"))))
8304 (build-system glib-or-gtk-build-system)
8305 (native-inputs
8306 `(("pkg-config" ,pkg-config)
8307 ("gobject-introspection" ,gobject-introspection)
8308 ("vala" ,vala)))
8309 (inputs
8310 `(("glib" ,glib)
8311 ("libcanberra" ,libcanberra)))
8312 (home-page "https://wiki.gnome.org/Projects/GSound")
8313 (synopsis "GObject wrapper for libcanberra")
8314 (description
8315 "GSound is a small library for playing system sounds. It's designed to be
8316 used via GObject Introspection, and is a thin wrapper around the libcanberra C
8317 library.")
8318 (license license:lgpl2.1+)))
8319
8320 (define-public libzapojit
8321 (package
8322 (name "libzapojit")
8323 (version "0.0.3")
8324 (source (origin
8325 (method url-fetch)
8326 (uri (string-append "mirror://gnome/sources/" name "/"
8327 (version-major+minor version) "/"
8328 name "-" version ".tar.xz"))
8329 (sha256
8330 (base32
8331 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
8332 (build-system gnu-build-system)
8333 (native-inputs
8334 `(("gobject-introspection" ,gobject-introspection)
8335 ("intltool" ,intltool)
8336 ("pkg-config" ,pkg-config)))
8337 (inputs
8338 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8339 ("json-glib" ,json-glib)
8340 ("rest" ,rest)))
8341 (home-page "https://wiki.gnome.org/Projects/Zapojit")
8342 (synopsis "Library for accessing SkyDrive and Hotmail")
8343 (description
8344 "Libzapojit is a GLib-based library for accessing online service APIs of
8345 Microsoft SkyDrive and Hotmail, using their REST protocols.")
8346 (license license:lgpl2.1+)))
8347
8348 (define-public gnome-clocks
8349 (package
8350 (name "gnome-clocks")
8351 (version "3.34.0")
8352 (source (origin
8353 (method url-fetch)
8354 (uri (string-append "mirror://gnome/sources/" name "/"
8355 (version-major+minor version) "/"
8356 name "-" version ".tar.xz"))
8357 (sha256
8358 (base32
8359 "0g7hjk55smhkd09hwa9kag3h5a12l494wj89w9smpdk3ghsmy6b1"))))
8360 (build-system meson-build-system)
8361 (arguments
8362 '(#:glib-or-gtk? #t
8363 #:phases
8364 (modify-phases %standard-phases
8365 (add-after 'unpack 'skip-gtk-update-icon-cache
8366 ;; Don't create 'icon-theme.cache'.
8367 (lambda _
8368 (substitute* "build-aux/post-install.py"
8369 (("gtk-update-icon-cache") "true"))
8370 #t)))))
8371 (native-inputs
8372 `(("vala" ,vala)
8373 ("pkg-config" ,pkg-config)
8374 ("glib" ,glib "bin") ; for glib-compile-resources
8375 ("desktop-file-utils" ,desktop-file-utils)
8376 ("gettext" ,gettext-minimal)
8377 ("itstool" ,itstool)))
8378 (inputs
8379 `(("glib" ,glib)
8380 ("gtk+" ,gtk+)
8381 ("gsound" ,gsound)
8382 ("geoclue" ,geoclue)
8383 ("geocode-glib" ,geocode-glib)
8384 ("libgweather" ,libgweather)
8385 ("gnome-desktop" ,gnome-desktop)))
8386 (home-page "https://wiki.gnome.org/Apps/Clocks")
8387 (synopsis "GNOME's clock application")
8388 (description
8389 "GNOME Clocks is a simple clocks application designed to fit the GNOME
8390 desktop. It supports world clock, stop watch, alarms, and count down timer.")
8391 (license license:gpl3+)))
8392
8393 (define-public gnome-calendar
8394 (package
8395 (name "gnome-calendar")
8396 (version "3.34.2")
8397 (source (origin
8398 (method url-fetch)
8399 (uri (string-append "mirror://gnome/sources/" name "/"
8400 (version-major+minor version) "/"
8401 name "-" version ".tar.xz"))
8402 (sha256
8403 (base32
8404 "1bnmd191044zn2kr6f5vg7sm5q59qf7z652awll1f7s6ahijr8rw"))))
8405 (build-system meson-build-system)
8406 (arguments
8407 '(#:glib-or-gtk? #t
8408 ;; gnome-calendar has to be installed before the tests can be run
8409 ;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
8410 #:tests? #f
8411 #:phases
8412 (modify-phases %standard-phases
8413 (add-after 'unpack 'skip-gtk-update-icon-cache
8414 ;; Don't create 'icon-theme.cache'.
8415 (lambda _
8416 (substitute* "build-aux/meson/meson_post_install.py"
8417 (("gtk-update-icon-cache") "true"))
8418 #t)))))
8419 (native-inputs
8420 `(("gettext" ,gettext-minimal)
8421 ("glib-bin" ,glib "bin") ; For glib-compile-schemas
8422 ("pkg-config" ,pkg-config)))
8423 (inputs
8424 `(("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8425 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8426 ("libdazzle" ,libdazzle)
8427 ("libedataserverui" ,evolution-data-server)
8428 ("libgweather" ,libgweather)
8429 ("geoclue" ,geoclue)))
8430 (propagated-inputs
8431 `(("evolution-data-server" ,evolution-data-server)))
8432 (home-page "https://wiki.gnome.org/Apps/Calendar")
8433 (synopsis "GNOME's calendar application")
8434 (description
8435 "GNOME Calendar is a simple calendar application designed to fit the GNOME
8436 desktop. It supports multiple calendars, month, week and year view.")
8437 (license license:gpl3+)))
8438
8439 (define-public gnome-todo
8440 (package
8441 (name "gnome-todo")
8442 (version "3.28.1")
8443 (source (origin
8444 (method url-fetch)
8445 (uri (string-append "mirror://gnome/sources/" name "/"
8446 (version-major+minor version) "/"
8447 name "-" version ".tar.xz"))
8448 (sha256
8449 (base32
8450 "08ygqbib72jlf9y0a16k54zz51sncpq2wa18wp81v46q8301ymy7"))
8451 (patches
8452 (search-patches "gnome-todo-delete-esource-duplicate.patch"))))
8453 (build-system meson-build-system)
8454 (arguments
8455 '(#:glib-or-gtk? #t
8456 #:phases (modify-phases %standard-phases
8457 (add-after
8458 'install 'wrap-gnome-todo
8459 (lambda* (#:key inputs outputs #:allow-other-keys)
8460 (let ((out (assoc-ref outputs "out"))
8461 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8462 (python-path (getenv "PYTHONPATH")))
8463 (wrap-program (string-append out "/bin/gnome-todo")
8464 ;; XXX: gi plugins are broken.
8465 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=787212
8466 ;; For plugins.
8467 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
8468 `("PYTHONPATH" ":" prefix (,python-path))))
8469 #t)))))
8470 (native-inputs
8471 `(("gettext" ,gettext-minimal)
8472 ("gobject-introspection" ,gobject-introspection)
8473 ("glib:bin" ,glib "bin") ; For glib-compile-resources
8474 ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
8475 ("pkg-config" ,pkg-config)))
8476 (inputs
8477 `(("rest" ,rest) ; For Todoist plugin
8478 ("json-glib" ,json-glib) ; For Todoist plugin
8479 ("libedataserverui" ,evolution-data-server)
8480 ("libical" ,libical)
8481 ("libpeas" ,libpeas)
8482 ("python-pygobject" ,python-pygobject)
8483 ("evolution-data-server" ,evolution-data-server)
8484 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8485 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
8486 (home-page "https://wiki.gnome.org/Apps/Todo")
8487 (synopsis "GNOME's ToDo Application")
8488 (description
8489 "GNOME To Do is a simplistic personal task manager designed to perfectly
8490 fit the GNOME desktop.")
8491 (license license:gpl3+)))
8492
8493 (define-public gnome-dictionary
8494 (package
8495 (name "gnome-dictionary")
8496 (version "3.26.1")
8497 (source (origin
8498 (method url-fetch)
8499 (uri (string-append "mirror://gnome/sources/" name "/"
8500 (version-major+minor version) "/"
8501 name "-" version ".tar.xz"))
8502 (sha256
8503 (base32
8504 "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
8505 (build-system meson-build-system)
8506 (arguments '(#:glib-or-gtk? #t
8507 #:phases (modify-phases %standard-phases
8508 (add-after 'unpack 'patch-install-script
8509 (lambda _
8510 ;; This script attempts to compile glib schemas
8511 ;; and create an empty MIME database. We do
8512 ;; that elsewhere, so prevent it from running.
8513 (substitute* "build-aux/post-install.sh"
8514 (("\\[ -z \"\\$DESTDIR\" \\]") "false"))
8515 #t)))))
8516 (native-inputs
8517 `(("glib:bin" ,glib "bin")
8518 ("gobject-introspection" ,gobject-introspection)
8519 ("intltool" ,intltool)
8520 ("itstool" ,itstool)
8521 ("pkg-config" ,pkg-config)
8522 ("xmllint" ,libxml2)))
8523 (inputs
8524 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8525 ("gtk+" ,gtk+)))
8526 (home-page "https://wiki.gnome.org/Apps/Dictionary")
8527 (synopsis "Look up words in dictionary sources")
8528 (description
8529 "GNOME Dictionary can look for the definition or translation of a word in
8530 existing databases over the internet.")
8531 (license license:gpl3+)))
8532
8533 (define-public gnome-tweaks
8534 (package
8535 (name "gnome-tweaks")
8536 (version "3.34.0")
8537 (source (origin
8538 (method url-fetch)
8539 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
8540 (version-major+minor version) "/"
8541 "gnome-tweaks-" version ".tar.xz"))
8542 (patches
8543 (list (search-patch "gnome-tweaks-search-paths.patch")))
8544 (sha256
8545 (base32
8546 "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0"))))
8547 (build-system meson-build-system)
8548 (arguments
8549 `(#:glib-or-gtk? #t
8550 #:configure-flags '("-Dlocalstatedir=/tmp"
8551 "-Dsysconfdir=/tmp")
8552 #:imported-modules ((guix build python-build-system)
8553 ,@%meson-build-system-modules)
8554 #:phases
8555 (modify-phases %standard-phases
8556 (add-after 'unpack 'skip-gtk-update-icon-cache
8557 ;; Don't create 'icon-theme.cache'.
8558 (lambda _
8559 (substitute* "meson-postinstall.py"
8560 (("gtk-update-icon-cache") "true"))
8561 #t))
8562 (add-after 'install 'wrap
8563 (@@ (guix build python-build-system) wrap))
8564 (add-after 'wrap 'wrap-gi-typelib
8565 (lambda* (#:key inputs outputs #:allow-other-keys)
8566 (let ((out (assoc-ref outputs "out"))
8567 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8568 (wrap-program (string-append out "/bin/gnome-tweaks")
8569 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8570 #t)))))
8571 (native-inputs
8572 `(("intltool" ,intltool)
8573 ("pkg-config" ,pkg-config)))
8574 (inputs
8575 `(("gnome-desktop" ,gnome-desktop)
8576 ("gtk+" ,gtk+)
8577 ("gobject-introspection" ,gobject-introspection)
8578 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
8579 ("libhandy" ,libhandy)
8580 ("libnotify" ,libnotify)
8581 ("libsoup" ,libsoup)
8582 ("nautilus" ,nautilus)
8583 ("python" ,python)
8584 ("python-pygobject" ,python-pygobject)))
8585 (synopsis "Customize advanced GNOME 3 options")
8586 (home-page "https://wiki.gnome.org/Apps/Tweaks")
8587 (description
8588 "GNOME Tweaks allows adjusting advanced configuration settings in
8589 GNOME 3. This includes things like the fonts used in user interface elements,
8590 alternative user interface themes, changes in window management behavior,
8591 GNOME Shell appearance and extension, etc.")
8592 (license license:gpl3+)))
8593
8594 (define-public gnome-shell-extensions
8595 (package
8596 (name "gnome-shell-extensions")
8597 (version "3.34.2")
8598 (source (origin
8599 (method url-fetch)
8600 (uri (string-append "mirror://gnome/sources/" name "/"
8601 (version-major+minor version) "/"
8602 name "-" version ".tar.xz"))
8603 (sha256
8604 (base32
8605 "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"))))
8606 (build-system meson-build-system)
8607 (arguments
8608 '(#:configure-flags '("-Dextension_set=all")))
8609 (native-inputs
8610 `(("glib:bin" ,glib "bin")
8611 ("intltool" ,intltool)
8612 ("pkg-config" ,pkg-config)))
8613 (propagated-inputs
8614 `(("glib" ,glib)))
8615 (synopsis "Extensions for GNOME Shell")
8616 (description "GNOME Shell extensions modify and extend GNOME Shell
8617 functionality and behavior.")
8618 (home-page "https://extensions.gnome.org/")
8619 (license license:gpl3+)))
8620
8621 (define-public arc-theme
8622 (package
8623 (name "arc-theme")
8624 (version "20190917")
8625 (source (origin
8626 (method git-fetch)
8627 (uri (git-reference
8628 (url "https://github.com/NicoHood/arc-theme")
8629 (commit version)))
8630 (file-name (git-file-name name version))
8631 (sha256
8632 (base32
8633 "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa"))))
8634 (build-system gnu-build-system)
8635 (arguments
8636 '(#:phases
8637 (modify-phases %standard-phases
8638 ;; autogen.sh calls configure at the end of the script.
8639 (replace 'bootstrap
8640 (lambda _ (invoke "autoreconf" "-vfi")))
8641 (add-before 'build 'set-home ;placate Inkscape
8642 (lambda _
8643 (setenv "HOME" (getcwd))
8644 #t)))))
8645 (native-inputs
8646 `(("autoconf" ,autoconf)
8647 ("automake" ,automake)
8648 ("glib" ,glib "bin") ; for glib-compile-resources
8649 ("gnome-shell" ,gnome-shell)
8650 ("gtk+" ,gtk+)
8651 ("inkscape" ,inkscape)
8652 ("optipng" ,optipng)
8653 ("pkg-config" ,pkg-config)
8654 ("sassc" ,sassc/libsass-3.5)))
8655 (synopsis "A flat GTK+ theme with transparent elements")
8656 (description "Arc is a flat theme with transparent elements for GTK 3, GTK
8657 2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments
8658 like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
8659 (home-page "https://github.com/horst3180/arc-theme")
8660 ;; No "or later" language found.
8661 (license license:gpl3+)))
8662
8663 (define-public faba-icon-theme
8664 (package
8665 (name "faba-icon-theme")
8666 (version "4.3")
8667 (source
8668 (origin
8669 (method git-fetch)
8670 (uri (git-reference
8671 (url "https://github.com/snwh/faba-icon-theme")
8672 (commit (string-append "v" version))))
8673 (file-name (git-file-name name version))
8674 (sha256
8675 (base32 "0xh6ppr73p76z60ym49b4d0liwdc96w41cc5p07d48hxjsa6qd6n"))))
8676 (build-system meson-build-system)
8677 (arguments
8678 `(#:phases
8679 (modify-phases %standard-phases
8680 (add-before 'configure 'disable-post-install
8681 (lambda _
8682 (substitute* "meson.build"
8683 (("meson.add_install_script.*") "")))))))
8684 (native-inputs
8685 `(("autoconf" ,autoconf)
8686 ("automake" ,automake)))
8687 (synopsis "Faba icon theme")
8688 (description
8689 "Faba is a minimal icon set used as a basis for other themes such as
8690 Moka")
8691 (home-page "https://snwh.org/moka")
8692 (license (list license:lgpl3+
8693 license:cc-by-sa4.0))))
8694
8695 (define-public moka-icon-theme
8696 (package
8697 (inherit faba-icon-theme)
8698 (name "moka-icon-theme")
8699 (version "5.4.0")
8700 (source
8701 (origin
8702 (method git-fetch)
8703 (uri (git-reference
8704 (url "https://github.com/snwh/moka-icon-theme")
8705 (commit (string-append "v" version))))
8706 (file-name (git-file-name name version))
8707 (sha256
8708 (base32 "015l02im4mha5z91dbchxf6xkp66d346bg3xskwg0rh3lglhjsrd"))))
8709 (propagated-inputs
8710 ;; Moka is based on Faba by using it as a fallback icon set instead of
8711 ;; bundling it, so we need to add it as a propagated input.
8712 `(("faba-icon-theme" ,faba-icon-theme)))
8713 (synopsis "Moka icon theme")
8714 (description "Moka is a stylized desktop icon set, designed to be clear,
8715 simple and consistent.")
8716 (license (list license:gpl3+
8717 license:cc-by-sa4.0))))
8718
8719 (define-public arc-icon-theme
8720 (package
8721 (name "arc-icon-theme")
8722 (version "20161122")
8723 (source
8724 (origin
8725 (method git-fetch)
8726 (uri (git-reference
8727 (url "https://github.com/horst3180/arc-icon-theme")
8728 (commit version)))
8729 (file-name (git-file-name name version))
8730 (sha256
8731 (base32 "1ch3hp08qri93510hypzz6m2x4xgg2h15wvnhjwh1x1s1b7jvxjd"))))
8732 (build-system gnu-build-system)
8733 (arguments
8734 `(#:phases
8735 (modify-phases %standard-phases
8736 (add-after 'unpack 'disable-configure-during-bootstrap
8737 (lambda _
8738 (substitute* "autogen.sh"
8739 (("^\"\\$srcdir/configure\".*") ""))
8740 #t)))))
8741 (native-inputs
8742 `(("autoconf" ,autoconf)
8743 ("automake" ,automake)))
8744 ;; When Arc is missing an icon, it looks in the Moka icon theme for it.
8745 (propagated-inputs
8746 `(("moka-icon-theme" ,moka-icon-theme)))
8747 (synopsis "Arc icon theme")
8748 (description "The Arc icon theme provides a set of icons matching the
8749 style of the Arc GTK theme. Icons missing from the Arc theme are provided by
8750 the Moka icon theme.")
8751 (home-page "https://github.com/horst3180/arc-icon-theme")
8752 (license license:gpl3+)))
8753
8754 (define-public folks
8755 (package
8756 (name "folks")
8757 (version "0.13.1")
8758 (source (origin
8759 (method url-fetch)
8760 (uri (string-append
8761 "mirror://gnome/sources/folks/"
8762 (version-major+minor version) "/"
8763 "folks-" version ".tar.xz"))
8764 (sha256
8765 (base32
8766 "0pda8sx4ap3lyri5fdrnakl29la1zkhwlc9bmnp13qigp1iwdw9x"))))
8767 (build-system meson-build-system)
8768 (arguments
8769 '(#:phases
8770 (modify-phases %standard-phases
8771 (add-after 'unpack 'skip-gtk-update-icon-cache
8772 ;; Don't create 'icon-theme.cache'.
8773 (lambda _
8774 (substitute* "meson_post_install.py"
8775 (("gtk-update-icon-cache") "true"))
8776 #t)))))
8777 (inputs
8778 `(("bdb" ,bdb)
8779 ("dbus-glib" ,dbus-glib)
8780 ("evolution-data-server" ,evolution-data-server)
8781 ("glib" ,glib)
8782 ("libgee" ,libgee)
8783 ("readline" ,readline)
8784 ("telepathy-glib" ,telepathy-glib)))
8785 (native-inputs
8786 `(("glib:bin" ,glib "bin")
8787 ("gobject-introspection" ,gobject-introspection)
8788 ("intltool" ,intltool)
8789 ("pkg-config" ,pkg-config)
8790 ("vala" ,vala)))
8791 (synopsis "Library to aggregate data about people")
8792 (description "Libfolks is a library that aggregates information about people
8793 from multiple sources (e.g., Telepathy connection managers for IM contacts,
8794 Evolution Data Server for local contacts, libsocialweb for web service contacts,
8795 etc.) to create metacontacts. It's written in Vala, which generates C code when
8796 compiled.")
8797 (home-page "https://wiki.gnome.org/Projects/Folks")
8798 (license license:lgpl2.1+)))
8799
8800 (define-public gfbgraph
8801 (package
8802 (name "gfbgraph")
8803 (version "0.2.4")
8804 (source (origin
8805 (method url-fetch)
8806 (uri (string-append
8807 "mirror://gnome/sources/gfbgraph/"
8808 (version-major+minor version) "/"
8809 "gfbgraph-" version ".tar.xz"))
8810 (sha256
8811 (base32
8812 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
8813 (build-system glib-or-gtk-build-system)
8814 (arguments
8815 `(#:tests? #f ; tests appear to require the network
8816 #:configure-flags '("--disable-static"
8817 "--enable-gtk-doc"
8818 "--enable-introspection")))
8819 (native-inputs
8820 `(("gobject-introspection" ,gobject-introspection)
8821 ("gtk-doc" ,gtk-doc)
8822 ("pkg-config" ,pkg-config)
8823
8824 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
8825 ("autoconf" ,autoconf)
8826 ("automake" ,automake)
8827 ("libtool" ,libtool)
8828 ("which" ,which)))
8829 (inputs
8830 `(("json-glib" ,json-glib)
8831 ("gnome-online-accounts:lib" ,gnome-online-accounts "lib")
8832 ("rest" ,rest)))
8833 (synopsis "GLib/GObject wrapper for the Facebook API")
8834 (description "This library allows you to use the Facebook API from
8835 GLib/GObject code.")
8836 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
8837 (license license:lgpl2.1+)))
8838
8839 (define-public libgnomekbd
8840 (package
8841 (name "libgnomekbd")
8842 (version "3.26.1")
8843 (source (origin
8844 (method url-fetch)
8845 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
8846 (version-major+minor version) "/"
8847 "libgnomekbd-" version ".tar.xz"))
8848 (sha256
8849 (base32
8850 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp"))))
8851 (build-system gnu-build-system)
8852 (native-inputs
8853 `(("pkg-config" ,pkg-config)
8854 ("glib" ,glib "bin")
8855 ("intltool" ,intltool)))
8856 (propagated-inputs
8857 ;; Referred to in .h files and .pc.
8858 `(("glib" ,glib)
8859 ("gtk+" ,gtk+)
8860 ("libxklavier" ,libxklavier)))
8861 (home-page "https://www.gnome.org")
8862 (synopsis "GNOME keyboard configuration library")
8863 (description
8864 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
8865 environment, which can notably display keyboard layouts.")
8866 (license license:lgpl2.0+)))
8867
8868 ;;; This package is no longer maintained:
8869 ;;; https://wiki.gnome.org/Attic/LibUnique
8870 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
8871 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
8872 (define-public libunique
8873 (package
8874 (name "libunique")
8875 (version "3.0.2")
8876 (source (origin
8877 (method url-fetch)
8878 (uri (string-append "mirror://gnome/sources/" name "/"
8879 (version-major+minor version) "/"
8880 name "-" version ".tar.xz"))
8881 (sha256
8882 (base32
8883 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
8884 (build-system glib-or-gtk-build-system)
8885 (arguments
8886 `(#:configure-flags '("--disable-static"
8887 "--disable-dbus" ; use gdbus
8888 "--enable-introspection")))
8889 (native-inputs
8890 `(("pkg-config" ,pkg-config)
8891 ("gobject-introspection" ,gobject-introspection)
8892 ("glib:bin" ,glib "bin")
8893 ("gtk-doc" ,gtk-doc)))
8894 (propagated-inputs
8895 ;; Referred to in .h files and .pc.
8896 `(("gtk+" ,gtk+)))
8897 (home-page "https://wiki.gnome.org/Attic/LibUnique")
8898 (synopsis "Library for writing single instance applications")
8899 (description
8900 "Libunique is a library for writing single instance applications. If you
8901 launch a single instance application twice, the second instance will either just
8902 quit or will send a message to the running instance. Libunique makes it easy to
8903 write this kind of application, by providing a base class, taking care of all
8904 the IPC machinery needed to send messages to a running instance, and also
8905 handling the startup notification side.")
8906 (license license:lgpl2.1+)))
8907
8908 (define-public gnome-calculator
8909 (package
8910 (name "gnome-calculator")
8911 (version "3.34.1")
8912 (source
8913 (origin
8914 (method url-fetch)
8915 (uri (string-append "mirror://gnome/sources/" name "/"
8916 (version-major+minor version) "/"
8917 name "-" version ".tar.xz"))
8918 (sha256
8919 (base32
8920 "0lbh87255zzggqzai6543qg920y52bl4vs5m5h5087ghzg14hlsd"))))
8921 (build-system meson-build-system)
8922 (arguments '(#:glib-or-gtk? #t))
8923 (native-inputs
8924 `(("gettext" ,gettext-minimal)
8925 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
8926 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
8927 ("itstool" ,itstool)
8928 ("vala" ,vala)
8929 ("pkg-config" ,pkg-config)))
8930 (inputs
8931 `(("glib" ,glib)
8932 ("gtksourceview" ,gtksourceview)
8933 ("libgee" ,libgee)
8934 ("libsoup" ,libsoup)
8935 ("libxml2" ,libxml2)
8936 ("mpc" ,mpc)
8937 ("mpfr" ,mpfr)))
8938 (home-page "https://wiki.gnome.org/Apps/Calculator")
8939 (synopsis "Desktop calculator")
8940 (description
8941 "Calculator is an application that solves mathematical equations and
8942 is suitable as a default application in a Desktop environment.")
8943 (license license:gpl3)))
8944
8945 (define-public xpad
8946 (package
8947 (name "xpad")
8948 (version "5.1.0")
8949 (source
8950 (origin
8951 (method url-fetch)
8952 (uri (string-append "https://launchpad.net/xpad/trunk/"
8953 version "/+download/"
8954 name "-" version ".tar.bz2"))
8955 (sha256
8956 (base32
8957 "0l0g5x8g6dwhf5ksnqqrjjsycy57kcvdslkmsr6bl3vrsjd7qml3"))))
8958 (build-system gnu-build-system)
8959 (native-inputs
8960 `(("autoconf" ,autoconf)
8961 ("automake" ,automake)
8962 ("gtk+:bin" ,gtk+ "bin")
8963 ("intltool" ,intltool)
8964 ("pkg-config" ,pkg-config)))
8965 (inputs
8966 `(("gtksourceview" ,gtksourceview-3)
8967 ("libsm" ,libsm)))
8968 (home-page "https://wiki.gnome.org/Apps/Xpad")
8969 (synopsis "Virtual sticky note")
8970 (description
8971 "Xpad is a sticky note that strives to be simple, fault tolerant,
8972 and customizable. Xpad consists of independent pad windows, each is
8973 basically a text box in which notes can be written.")
8974 (license license:gpl3+)))
8975
8976 (define-public gucharmap
8977 (let ((unicode-files
8978 '(("Blocks.txt"
8979 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
8980 ("DerivedAge.txt"
8981 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
8982 ("NamesList.txt"
8983 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
8984 ("Scripts.txt"
8985 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
8986 ("UnicodeData.txt"
8987 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
8988 ("Unihan.zip"
8989 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
8990 (package
8991 (name "gucharmap")
8992 (version "12.0.1")
8993 (source
8994 (origin
8995 (method url-fetch)
8996 (uri (string-append "mirror://gnome/sources/" name "/"
8997 (version-major+minor version) "/"
8998 name "-" version ".tar.xz"))
8999 (sha256
9000 (base32
9001 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
9002 (build-system glib-or-gtk-build-system)
9003 (arguments
9004 `(#:modules ((ice-9 match)
9005 (guix build glib-or-gtk-build-system)
9006 (guix build utils))
9007 #:configure-flags
9008 (list "--with-unicode-data=../unicode-data")
9009 #:phases
9010 (modify-phases %standard-phases
9011 (add-after 'unpack 'prepare-unicode-data
9012 (lambda* (#:key inputs #:allow-other-keys)
9013 (mkdir-p "../unicode-data")
9014 (with-directory-excursion "../unicode-data"
9015 (for-each (match-lambda
9016 ((file _)
9017 (install-file (assoc-ref inputs file) ".")))
9018 ',unicode-files))
9019 #t)))))
9020 (native-inputs
9021 `(("desktop-file-utils" ,desktop-file-utils)
9022 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
9023 ("gobject-introspection" ,gobject-introspection)
9024 ("intltool" ,intltool)
9025 ("itstool" ,itstool)
9026 ("pkg-config" ,pkg-config)
9027 ,@(map (match-lambda
9028 ((file hash)
9029 `(,file
9030 ,(origin
9031 (method url-fetch)
9032 (uri (string-append
9033 "http://www.unicode.org/Public/12.0.0/ucd/"
9034 file))
9035 (sha256 (base32 hash))))))
9036 unicode-files)
9037 ("unzip" ,unzip)))
9038 (inputs
9039 `(("gtk+" ,gtk+)
9040 ("xmllint" ,libxml2)))
9041 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
9042 (synopsis "Unicode character picker and font browser")
9043 (description
9044 "This program allows you to browse through all the available Unicode
9045 characters and categories for the installed fonts, and to examine their
9046 detailed properties. It is an easy way to find the character you might
9047 only know by its Unicode name or code point.")
9048 (license license:gpl3+))))
9049
9050 (define-public bluefish
9051 (package
9052 (name "bluefish")
9053 (version "2.2.11")
9054 (source
9055 (origin
9056 (method url-fetch)
9057 (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/"
9058 "bluefish-" version ".tar.gz"))
9059 (sha256
9060 (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x"))))
9061 (build-system gnu-build-system)
9062 (native-inputs
9063 `(("desktop-file-utils" ,desktop-file-utils)
9064 ("intltool" ,intltool)
9065 ("pkg-config" ,pkg-config)))
9066 (inputs
9067 `(("enchant" ,enchant)
9068 ("gtk+" ,gtk+)
9069 ("python" ,python-wrapper)
9070 ("xmllint" ,libxml2)
9071 ("gucharmap" ,gucharmap)))
9072 (home-page "http://bluefish.openoffice.nl")
9073 (synopsis "Web development studio")
9074 (description
9075 "Bluefish is an editor targeted towards programmers and web developers,
9076 with many options to write web sites, scripts and other code.
9077 Bluefish supports many programming and markup languages.")
9078 (license license:gpl3+)))
9079
9080 (define-public gnome-system-monitor
9081 (package
9082 (name "gnome-system-monitor")
9083 (version "3.32.1")
9084 (source
9085 (origin
9086 (method url-fetch)
9087 (uri (string-append "mirror://gnome/sources/" name "/"
9088 (version-major+minor version) "/"
9089 name "-" version ".tar.xz"))
9090 (sha256
9091 (base32
9092 "1wd43qdgjav6xamq5z5cy8fri5zr01jga3plc9w95gcia0rk3ha8"))))
9093 (build-system meson-build-system)
9094 (arguments
9095 '(#:glib-or-gtk? #t
9096 #:configure-flags '("-Dsystemd=false")))
9097 (native-inputs
9098 `(("glib:bin" ,glib "bin") ; for glib-mkenums.
9099 ("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
9100 ("intltool" ,intltool)
9101 ("itstool" ,itstool)
9102 ("libgtop" ,libgtop)
9103 ("polkit" ,polkit)
9104 ("pkg-config" ,pkg-config)))
9105 (inputs
9106 `(("gdk-pixbuf" ,gdk-pixbuf) ; for loading SVG files.
9107 ("gtk+" ,gtk+)
9108 ("gtkmm" ,gtkmm)
9109 ("librsvg" ,librsvg)
9110 ("libxml2" ,libxml2)
9111 ("libwnck" ,libwnck)))
9112 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
9113 (synopsis "Process viewer and system resource monitor for GNOME")
9114 (description
9115 "GNOME System Monitor is a GNOME process viewer and system monitor with
9116 an attractive, easy-to-use interface. It has features, such as a tree view
9117 for process dependencies, icons for processes, the ability to hide processes,
9118 graphical time histories of CPU/memory/swap usage and the ability to
9119 kill/reinice processes.")
9120 (license license:gpl2+)))
9121
9122 (define-public python-pyatspi
9123 (package
9124 (name "python-pyatspi")
9125 (version "2.34.0")
9126 (source (origin
9127 (method url-fetch)
9128 (uri (string-append
9129 "mirror://gnome/sources/pyatspi/"
9130 (version-major+minor version)
9131 "/pyatspi-" version ".tar.xz"))
9132 (sha256
9133 (base32
9134 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
9135 (build-system gnu-build-system)
9136 (arguments
9137 `(#:phases
9138 (modify-phases %standard-phases
9139 (add-before 'build 'fix-atk-load
9140 (lambda _
9141 (substitute* "pyatspi/__init__.py"
9142 (("from gi.repository import Atspi")
9143 "gi.require_version('Gtk', '3.0')
9144 from gi.repository import Gtk
9145 from gi.repository import Atspi"))
9146 #t)))))
9147 (native-inputs
9148 `(("pkg-config" ,pkg-config)))
9149 (inputs
9150 `(("python" ,python)))
9151 (propagated-inputs
9152 `(("python-pygobject" ,python-pygobject)))
9153 (synopsis "Python client bindings for D-Bus AT-SPI")
9154 (home-page "https://wiki.linuxfoundation.org/accessibility\
9155 /atk/at-spi/at-spi_on_d-bus")
9156 (description
9157 "This package includes a python client library for the AT-SPI D-Bus
9158 accessibility infrastructure.")
9159 (license license:lgpl2.0)
9160 (properties '((upstream-name . "pyatspi")))))
9161
9162 (define-public python2-pyatspi
9163 (package
9164 (inherit python-pyatspi)
9165 (name "python2-pyatspi")
9166 (inputs
9167 `(("python" ,python-2)))
9168 (propagated-inputs
9169 `(("python-pygobject" ,python2-pygobject)))))
9170
9171 (define-public orca
9172 (package
9173 (name "orca")
9174 (version "3.34.1")
9175 (source (origin
9176 (method url-fetch)
9177 (uri (string-append
9178 "mirror://gnome/sources/" name "/"
9179 (version-major+minor version) "/"
9180 name "-" version ".tar.xz"))
9181 (sha256
9182 (base32
9183 "1q38n7hyshkiszmn361skxjynxr31lcms7a1iny6d0zlpmh1vnk4"))))
9184 (build-system glib-or-gtk-build-system)
9185 (arguments
9186 '(#:phases
9187 (modify-phases %standard-phases
9188 (add-before 'configure 'qualify-xkbcomp
9189 (lambda* (#:key inputs #:allow-other-keys)
9190 (let ((xkbcomp (string-append
9191 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
9192 (substitute* "src/orca/orca.py"
9193 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))
9194 #t))
9195 (add-after 'install 'wrap-orca
9196 (lambda* (#:key outputs #:allow-other-keys)
9197 (let* ((out (assoc-ref outputs "out"))
9198 (prog (string-append out "/bin/orca")))
9199 (wrap-program prog
9200 `("GI_TYPELIB_PATH" ":" prefix
9201 (,(getenv "GI_TYPELIB_PATH")))
9202 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
9203 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
9204 `("PYTHONPATH" ":" prefix
9205 (,(getenv "PYTHONPATH")))))
9206 #t)))))
9207 (native-inputs
9208 `(("intltool" ,intltool)
9209 ("itstool" ,itstool)
9210 ("pkg-config" ,pkg-config)
9211 ("xmllint" ,libxml2)))
9212 (inputs
9213 `(("at-spi2-atk" ,at-spi2-atk)
9214 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9215 ("gstreamer" ,gstreamer)
9216 ("gst-plugins-base" ,gst-plugins-base)
9217 ("gst-plugins-good" ,gst-plugins-good)
9218 ("gtk+" ,gtk+)
9219 ("python" ,python)
9220 ("python-pygobject" ,python-pygobject)
9221 ("python-pyatspi" ,python-pyatspi)
9222 ("python-speechd" ,speech-dispatcher)
9223 ("xkbcomp" ,xkbcomp)))
9224 (synopsis
9225 "Screen reader for individuals who are blind or visually impaired")
9226 (home-page "https://wiki.gnome.org/Projects/Orca")
9227 (description
9228 "Orca is a screen reader that provides access to the graphical desktop
9229 via speech and refreshable braille. Orca works with applications and toolkits
9230 that support the Assistive Technology Service Provider Interface (AT-SPI).")
9231 (license license:lgpl2.1+)))
9232
9233 (define-public gspell
9234 (package
9235 (name "gspell")
9236 (version "1.8.2")
9237 (source (origin
9238 (method url-fetch)
9239 (uri (string-append "mirror://gnome/sources/" name "/"
9240 (version-major+minor version) "/"
9241 name "-" version ".tar.xz"))
9242 (sha256
9243 (base32
9244 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
9245 (patches (search-patches "gspell-dash-test.patch"))))
9246 (build-system glib-or-gtk-build-system)
9247 (arguments
9248 '(#:configure-flags (list "--enable-vala")
9249 #:phases
9250 (modify-phases %standard-phases
9251 (add-before 'check 'pre-check
9252 (lambda* (#:key inputs #:allow-other-keys)
9253 ;; Tests require a running X server.
9254 (system "Xvfb :1 &")
9255 (setenv "DISPLAY" ":1")
9256
9257 ;; For the missing /etc/machine-id.
9258 (setenv "DBUS_FATAL_WARNINGS" "0")
9259
9260 ;; Allow Enchant and its Aspell backend to find the en_US
9261 ;; dictionary.
9262 (setenv "ASPELL_DICT_DIR"
9263 (string-append (assoc-ref inputs "aspell-dict-en")
9264 "/lib/aspell"))
9265 #t)))))
9266 (inputs
9267 `(("gtk+" ,gtk+)
9268 ("glib" ,glib)
9269 ("iso-codes" ,iso-codes)))
9270 (native-inputs
9271 `(("glib" ,glib "bin")
9272 ("gobject-introspection" ,gobject-introspection)
9273 ("pkg-config" ,pkg-config)
9274 ("vala" ,vala) ;for VAPI, needed by Geary
9275 ("xmllint" ,libxml2)
9276
9277 ;; For tests.
9278 ("aspell-dict-en" ,aspell-dict-en)
9279 ("xorg-server" ,xorg-server-for-tests)))
9280 (propagated-inputs
9281 `(("enchant" ,enchant))) ;enchant.pc is required by gspell-1.pc
9282 (home-page "https://wiki.gnome.org/Projects/gspell")
9283 (synopsis "GNOME's alternative spell checker")
9284 (description
9285 "gspell provides a flexible API to add spell-checking to a GTK+
9286 application. It provides a GObject API, spell-checking to text entries and
9287 text views, and buttons to choose the language.")
9288 (license license:gpl2+)))
9289
9290 (define-public gnome-planner
9291 (package
9292 (name "gnome-planner")
9293 (version "0.14.6")
9294 (source (origin
9295 (method url-fetch)
9296 (uri (string-append "mirror://gnome/sources/planner/"
9297 (version-major+minor version) "/planner-"
9298 version ".tar.xz"))
9299 (sha256
9300 (base32
9301 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
9302 (build-system glib-or-gtk-build-system)
9303 (arguments
9304 ;; Disable the Python bindings because the Planner program functions
9305 ;; without them, and (as of 2017-06-13) we have not packaged all of
9306 ;; packages that are necessary for building the Python bindings.
9307 `(#:configure-flags
9308 (list "--disable-python"
9309 ,@(if (string=? "aarch64-linux" (%current-system))
9310 '("--build=aarch64-unknown-linux-gnu")
9311 '()))))
9312 (inputs
9313 `(("libgnomecanvas" ,libgnomecanvas)
9314 ("libgnomeui" ,libgnomeui)
9315 ("libglade" ,libglade)
9316 ("gnome-vfs" ,gnome-vfs)
9317 ("gconf" ,gconf)
9318 ("libxml2" ,libxml2)
9319 ("libxslt" ,libxslt)
9320 ("gtk+" ,gtk+)
9321 ("glib" ,glib)))
9322 (native-inputs
9323 `(("intltool" ,intltool)
9324 ("scrollkeeper" ,scrollkeeper)
9325 ("pkg-config" ,pkg-config)))
9326 (home-page "https://wiki.gnome.org/Apps/Planner")
9327 (synopsis "Project management software for the GNOME desktop")
9328 (description
9329 "GNOME Planner is a project management tool based on the Work Breakdown
9330 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
9331 the resources, tasks, and constraints that you define, Planner generates
9332 various views into a project. For example, Planner can show a Gantt chart of
9333 the project. It can show a detailed summary of tasks including their
9334 duration, cost, and current progress. It can also show a report of resource
9335 utilization that highlights under-utilized and over-utilized resources. These
9336 views can be printed as PDF or PostScript files, or exported to HTML.")
9337 (license license:gpl2+)))
9338
9339 (define-public lollypop
9340 (package
9341 (name "lollypop")
9342 (version "1.2.32")
9343 (source
9344 (origin
9345 (method url-fetch)
9346 (uri (string-append "https://adishatz.org/lollypop/"
9347 "lollypop-" version ".tar.xz"))
9348 (sha256
9349 (base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
9350 (build-system meson-build-system)
9351 (arguments
9352 `(#:imported-modules
9353 (,@%meson-build-system-modules
9354 (guix build python-build-system))
9355 #:modules
9356 ((guix build meson-build-system)
9357 ((guix build python-build-system) #:prefix python:)
9358 (guix build utils))
9359 #:glib-or-gtk? #t
9360 #:tests? #f ; no test suite
9361 #:phases
9362 (modify-phases %standard-phases
9363 (add-after 'install 'wrap-program
9364 (lambda* (#:key outputs #:allow-other-keys)
9365 (let ((out (assoc-ref outputs "out"))
9366 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
9367 (wrap-program (string-append out "/bin/lollypop")
9368 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9369 #t))
9370 (add-after 'install 'wrap-python
9371 (assoc-ref python:%standard-phases 'wrap)))))
9372 (native-inputs
9373 `(("intltool" ,intltool)
9374 ("itstool" ,itstool)
9375 ("glib:bin" ,glib "bin") ; For glib-compile-resources
9376 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
9377 ("pkg-config" ,pkg-config)))
9378 (inputs
9379 `(("gobject-introspection" ,gobject-introspection)
9380 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9381 ("gst-plugins-base" ,gst-plugins-base)
9382 ("libnotify" ,libnotify)
9383 ("libsecret" ,libsecret)
9384 ("libsoup" ,libsoup)
9385 ("python" ,python)
9386 ("python-beautifulsoup4" ,python-beautifulsoup4)
9387 ("python-gst" ,python-gst)
9388 ("python-pil" ,python-pillow)
9389 ("python-pycairo" ,python-pycairo)
9390 ("python-pygobject" ,python-pygobject)
9391 ("python-pylast" ,python-pylast)
9392 ("totem-pl-parser" ,totem-pl-parser)
9393 ("webkitgtk" ,webkitgtk)))
9394 (propagated-inputs
9395 `(;; gst-plugins-base is required to start Lollypop,
9396 ;; the others are required to play streaming.
9397 ("gst-plugins-good" ,gst-plugins-good)
9398 ("gst-plugins-ugly" ,gst-plugins-ugly)))
9399 (home-page "https://wiki.gnome.org/Apps/Lollypop")
9400 (synopsis "GNOME music playing application")
9401 (description
9402 "Lollypop is a music player designed to play well with GNOME desktop.
9403 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
9404 from artists and tracks from the web. It also fetches cover artworks
9405 automatically and it can stream songs from online music services and charts.")
9406 (license license:gpl3+)))
9407
9408 (define-public gnome-video-effects
9409 (package
9410 (name "gnome-video-effects")
9411 (version "0.4.3")
9412 (source (origin
9413 (method url-fetch)
9414 (uri (string-append "mirror://gnome/sources/" name "/"
9415 (version-major+minor version) "/" name "-"
9416 version ".tar.xz"))
9417 (sha256
9418 (base32
9419 "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"))))
9420 (build-system glib-or-gtk-build-system)
9421 (arguments
9422 `(#:out-of-source? #f))
9423 (native-inputs
9424 `(("glib:bin" ,glib "bin")
9425 ("intltool" ,intltool)
9426 ("gettext" ,gettext-minimal)
9427 ("pkg-config" ,pkg-config)))
9428 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
9429 (synopsis "Video effects for Cheese and other GNOME applications")
9430 (description
9431 "A collection of GStreamer video filters and effects to be used in
9432 photo-booth-like software, such as Cheese.")
9433 (license license:gpl2+)))
9434
9435 (define-public cheese
9436 (package
9437 (name "cheese")
9438 (version "3.34.0")
9439 (source (origin
9440 (method url-fetch)
9441 (uri (string-append "mirror://gnome/sources/" name "/"
9442 (version-major+minor version) "/" name "-"
9443 version ".tar.xz"))
9444 (sha256
9445 (base32
9446 "0wvyc9wb0avrprvm529m42y5fkv3lirdphqydc9jw0c8mh05d1ni"))))
9447 (arguments
9448 `(#:glib-or-gtk? #t
9449 ;; Tests require GDK.
9450 #:tests? #f
9451 #:phases
9452 (modify-phases %standard-phases
9453 (add-after 'unpack 'skip-gtk-update-icon-cache
9454 (lambda _
9455 ;; Don't create 'icon-theme.cache'
9456 (substitute* "meson_post_install.py"
9457 (("gtk-update-icon-cache") (which "true")))
9458 #t))
9459 (add-after 'install 'wrap-cheese
9460 (lambda* (#:key inputs outputs #:allow-other-keys)
9461 (let ((out (assoc-ref outputs "out"))
9462 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9463 (wrap-program (string-append out "/bin/cheese")
9464 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9465 #t)))))
9466 (build-system meson-build-system)
9467 (native-inputs
9468 `(("docbook-xsl" ,docbook-xsl)
9469 ("glib:bin" ,glib "bin")
9470 ("gtk-doc" ,gtk-doc)
9471 ("intltool" ,intltool)
9472 ("itstool" ,itstool)
9473 ("libxml2" ,libxml2)
9474 ("libxslt" ,libxslt)
9475 ("pkg-config" ,pkg-config)
9476 ("vala" ,vala)))
9477 (propagated-inputs
9478 `(("gnome-video-effects" ,gnome-video-effects)
9479 ("clutter" ,clutter)
9480 ("clutter-gst" ,clutter-gst)
9481 ("clutter-gtk" ,clutter-gtk)
9482 ("libcanberra" ,libcanberra)
9483 ("gdk-pixbuf" ,gdk-pixbuf)
9484 ("glib" ,glib)
9485 ("gstreamer" ,gstreamer)))
9486 (inputs
9487 `(("gnome-desktop" ,gnome-desktop)
9488 ("gobject-introspection" ,gobject-introspection)
9489 ("gst-plugins-base" ,gst-plugins-base)
9490 ("gst-plugins-bad" ,gst-plugins-bad)
9491 ("gtk+" ,gtk+)
9492 ("libx11" ,libx11)
9493 ("libxtst" ,libxtst)))
9494 (home-page "https://wiki.gnome.org/Apps/Cheese")
9495 (synopsis "Webcam photo booth software for GNOME")
9496 (description
9497 "Cheese uses your webcam to take photos and videos. Cheese can also
9498 apply fancy special effects and lets you share the fun with others.")
9499 (license license:gpl2+)))
9500
9501 (define-public sound-juicer
9502 (package
9503 (name "sound-juicer")
9504 (version "3.24.0")
9505 (source
9506 (origin
9507 (method url-fetch)
9508 (uri (string-append "mirror://gnome/sources/" name "/"
9509 (version-major+minor version) "/"
9510 name "-" version ".tar.xz"))
9511 (sha256
9512 (base32
9513 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
9514 (build-system glib-or-gtk-build-system)
9515 (native-inputs
9516 `(("desktop-file-utils" ,desktop-file-utils)
9517 ("intltool" ,intltool)
9518 ("itstool" ,itstool)
9519 ("pkg-config" ,pkg-config)
9520 ("xmllint" ,libxml2)))
9521 (inputs
9522 `(("gtk+" ,gtk+)
9523 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9524 ("gstreamer" ,gstreamer)
9525 ("gst-plugins-base" ,gst-plugins-base)
9526 ("gst-plugins-good" ,gst-plugins-good)
9527 ("iso-codes" ,iso-codes)
9528 ("libbrasero-media3" ,brasero)
9529 ("libcanberra" ,libcanberra)
9530 ("libdiscid" ,libdiscid)
9531 ("libmusicbrainz" ,libmusicbrainz)
9532 ("neon" ,neon)))
9533 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
9534 (synopsis "Audio music cd ripper")
9535 (description "Sound Juicer extracts audio from compact discs and convert it
9536 into audio files that a personal computer or digital audio player can play.
9537 It supports ripping to any audio codec supported by a GStreamer plugin, such as
9538 mp3, Ogg Vorbis and FLAC")
9539 (license license:gpl2+)))
9540
9541 (define-public soundconverter
9542 (package
9543 (name "soundconverter")
9544 (version "3.0.2")
9545 (source
9546 (origin
9547 (method url-fetch)
9548 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
9549 version "/+download/"
9550 "soundconverter-" version ".tar.xz"))
9551
9552 (sha256
9553 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
9554 (build-system glib-or-gtk-build-system)
9555 (arguments
9556 `(#:imported-modules ((guix build python-build-system)
9557 (guix build glib-or-gtk-build-system)
9558 ,@%gnu-build-system-modules)
9559
9560 #:modules ((guix build glib-or-gtk-build-system)
9561 (guix build utils)
9562 ((guix build gnu-build-system) #:prefix gnu:)
9563 ((guix build python-build-system) #:prefix python:))
9564
9565 #:phases
9566 (modify-phases %standard-phases
9567 (add-after 'install 'wrap-soundconverter-for-python
9568 (assoc-ref python:%standard-phases 'wrap))
9569 (add-after 'install 'wrap-soundconverter
9570 (lambda* (#:key inputs outputs #:allow-other-keys)
9571 (let ((out (assoc-ref outputs "out"))
9572 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9573 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
9574 (wrap-program (string-append out "/bin/soundconverter")
9575 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
9576 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
9577 #t)))))
9578 (native-inputs
9579 `(("intltool" ,intltool)
9580 ("pkg-config" ,pkg-config)
9581 ("glib:bin" ,glib "bin")))
9582 (inputs
9583 `(("gtk+" ,gtk+)
9584 ("python" ,python)
9585 ("python-pygobject" ,python-pygobject)
9586 ("gstreamer" ,gstreamer)
9587 ("gst-plugins-base" ,gst-plugins-base)))
9588 (home-page "https://soundconverter.org/")
9589 (synopsis "Convert between audio formats with a graphical interface")
9590 (description
9591 "SoundConverter supports converting between many audio formats including
9592 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
9593 configurable file renaming. ")
9594 (license license:gpl3)))
9595
9596 (define-public workrave
9597 (package
9598 (name "workrave")
9599 (version "1.10.42")
9600 (source
9601 (origin
9602 (method git-fetch)
9603 (uri (git-reference
9604 (url "https://github.com/rcaelers/workrave")
9605 (commit (string-append "v" (string-map
9606 (match-lambda (#\. #\_) (chr chr))
9607 version)))))
9608 (file-name (git-file-name name version))
9609 (sha256
9610 (base32 "03i9kk8r1wgrfkkbwikx8wxaw4r4kn62vismr2zdq5g34fkkjh95"))))
9611 (build-system glib-or-gtk-build-system)
9612 (arguments
9613 ;; The only tests are maintainer tests (in po/), which fail.
9614 `(#:tests? #f))
9615 (inputs `(("glib" ,glib)
9616 ("gtk+" ,gtk+)
9617 ("gdk-pixbuf" ,gdk-pixbuf)
9618 ("gtkmm" ,gtkmm)
9619 ("glibmm" ,glibmm)
9620 ("libx11" ,libx11)
9621 ("libxtst" ,libxtst)
9622 ("dconf" ,dconf)
9623 ("libice" ,libice)
9624 ("libsm" ,libsm)
9625 ("libxscrnsaver" ,libxscrnsaver)))
9626 (native-inputs `(("boost" ,boost)
9627 ("pkg-config" ,pkg-config)
9628 ("gettext" ,gettext-minimal)
9629 ("autoconf" ,autoconf)
9630 ("autoconf-archive" , autoconf-archive)
9631 ("automake" ,automake)
9632 ("libtool" ,libtool)
9633 ("intltool" ,intltool)
9634 ("gobject-introspection" ,gobject-introspection)
9635 ("python3" ,python-3)
9636 ("python-jinja2" ,python-jinja2)))
9637 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
9638 (description
9639 "Workrave is a program that assists in the recovery and prevention of
9640 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
9641 micro-pauses and rest breaks, and restricts you to your daily limit.")
9642 (home-page "http://www.workrave.org")
9643 (license license:gpl3+)))
9644
9645 (define-public ghex
9646 (package
9647 (name "ghex")
9648 (version "3.18.4")
9649 (source (origin
9650 (method url-fetch)
9651 (uri (string-append "mirror://gnome/sources/ghex/"
9652 (version-major+minor version) "/"
9653 "ghex-" version ".tar.xz"))
9654 (sha256
9655 (base32
9656 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
9657 (build-system meson-build-system)
9658 (arguments
9659 '(#:glib-or-gtk? #t
9660 #:phases
9661 (modify-phases %standard-phases
9662 (add-after 'unpack 'skip-gtk-update-icon-cache
9663 ;; Don't create 'icon-theme.cache'.
9664 (lambda _
9665 (substitute* "meson_post_install.py"
9666 (("gtk-update-icon-cache") (which "true")))
9667 #t)))))
9668 (native-inputs
9669 `(("pkg-config" ,pkg-config)
9670 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
9671 ("gnome-common" ,gnome-common)
9672 ("which" ,which)
9673 ("intltool" ,intltool)
9674 ("yelp-tools" ,yelp-tools)
9675 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
9676 (inputs
9677 `(("atk" ,atk)
9678 ("gtk" ,gtk+)))
9679 (synopsis "GNOME hexadecimal editor")
9680 (description "The GHex program can view and edit files in two ways:
9681 hexadecimal or ASCII. It is useful for editing binary files in general.")
9682 (home-page "https://wiki.gnome.org/Apps/Ghex")
9683 (license license:gpl2)))
9684
9685 (define-public libdazzle
9686 (package
9687 (name "libdazzle")
9688 (version "3.34.1")
9689 (source (origin
9690 (method url-fetch)
9691 (uri (string-append "mirror://gnome/sources/libdazzle/"
9692 (version-major+minor version) "/"
9693 "libdazzle-" version ".tar.xz"))
9694 (sha256
9695 (base32
9696 "01cmcrd75b7ns7j2b4p6h7pv68vjhkcl9zbvzzx7pf4vknxir61x"))))
9697 (build-system meson-build-system)
9698 (arguments
9699 `(#:phases
9700 (modify-phases %standard-phases
9701 (add-before 'check 'pre-check
9702 (lambda _
9703 ;; Tests require a running X server.
9704 (system "Xvfb :1 &")
9705 (setenv "DISPLAY" ":1")
9706 #t)))))
9707 (native-inputs
9708 `(("glib" ,glib "bin") ; glib-compile-resources
9709 ("pkg-config" ,pkg-config)
9710 ;; For tests.
9711 ("xorg-server" ,xorg-server-for-tests)))
9712 (inputs
9713 `(("glib" ,glib)
9714 ("gobject-introspection" ,gobject-introspection)
9715 ("gtk+" ,gtk+)
9716 ("vala" ,vala)))
9717 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
9718 (synopsis "Companion library to GObject and Gtk+")
9719 (description "The libdazzle library is a companion library to GObject and
9720 Gtk+. It provides various features that the authors wish were in the
9721 underlying library but cannot for various reasons. In most cases, they are
9722 wildly out of scope for those libraries. In other cases, they are not quite
9723 generic enough to work for everyone.")
9724 (license license:gpl3+)))
9725
9726 (define-public evolution
9727 (package
9728 (name "evolution")
9729 (version "3.34.2")
9730 (source (origin
9731 (method url-fetch)
9732 (uri (string-append "mirror://gnome/sources/evolution/"
9733 (version-major+minor version) "/"
9734 "evolution-" version ".tar.xz"))
9735 (sha256
9736 (base32
9737 "164vy8h432pjglafn8y2ms4gsvk3kbgc63h5qp0mk5dv4smsp29c"))))
9738 (build-system cmake-build-system)
9739 (arguments
9740 `(#:imported-modules (,@%cmake-build-system-modules
9741 (guix build glib-or-gtk-build-system))
9742 #:modules ((guix build cmake-build-system)
9743 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9744 (guix build utils))
9745 #:configure-flags
9746 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
9747 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
9748 ; in four years and cannot be built.
9749 #:phases
9750 (modify-phases %standard-phases
9751 ;; The build system attempts to install user interface modules to the
9752 ;; output directory of the "evolution-data-server" package. This
9753 ;; change redirects that change.
9754 (add-after 'unpack 'patch-ui-module-dir
9755 (lambda* (#:key outputs #:allow-other-keys)
9756 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
9757 (("\\$\\{edsuimoduledir\\}")
9758 (string-append (assoc-ref outputs "out")
9759 "/lib/evolution-data-server/ui-modules")))
9760 #t))
9761 (add-after 'install 'glib-or-gtk-compile-schemas
9762 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
9763 (add-after 'install 'glib-or-gtk-wrap
9764 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9765 (native-inputs
9766 `(("glib" ,glib "bin") ; glib-mkenums
9767 ("pkg-config" ,pkg-config)
9768 ("intltool" ,intltool)
9769 ("itstool" ,itstool)))
9770 (inputs
9771 `(("enchant" ,enchant)
9772 ("evolution-data-server" ,evolution-data-server) ; must be the same version
9773 ("gcr" ,gcr)
9774 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9775 ("gnome-autoar" ,gnome-autoar)
9776 ("gnome-desktop" ,gnome-desktop)
9777 ("gspell" ,gspell)
9778 ("highlight" ,highlight)
9779 ("libcanberra" ,libcanberra)
9780 ("libgweather" ,libgweather)
9781 ("libnotify" ,libnotify)
9782 ("libsoup" ,libsoup)
9783 ("nss" ,nss)
9784 ("openldap" ,openldap)
9785 ("webkitgtk" ,webkitgtk)
9786 ("ytnef" ,ytnef)))
9787 (home-page "https://gitlab.gnome.org/GNOME/evolution")
9788 (synopsis "Manage your email, contacts and schedule")
9789 (description "Evolution is a personal information management application
9790 that provides integrated mail, calendaring and address book
9791 functionality.")
9792 ;; See COPYING for details.
9793 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
9794 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
9795 license:lgpl2.1+)))) ; smime/lib/*
9796
9797 (define-public gthumb
9798 (package
9799 (name "gthumb")
9800 (version "3.8.2")
9801 (source (origin
9802 (method url-fetch)
9803 (uri (string-append "mirror://gnome/sources/gthumb/"
9804 (version-major+minor version) "/"
9805 "gthumb-" version ".tar.xz"))
9806 (sha256
9807 (base32
9808 "15wqks35ks5dm7zj046dfd45vvrilan2ayfy2sxiprv7q74cip2q"))))
9809 (build-system meson-build-system)
9810 (arguments
9811 `(#:glib-or-gtk? #t
9812 #:configure-flags
9813 ;; Ensure the RUNPATH contains all installed library locations.
9814 (list (string-append "-Dc_link_args=-Wl,-rpath="
9815 (assoc-ref %outputs "out")
9816 "/lib/gthumb/extensions")
9817 (string-append "-Dcpp_link_args=-Wl,-rpath="
9818 (assoc-ref %outputs "out")
9819 "/lib/gthumb/extensions"))))
9820 (native-inputs
9821 `(("pkg-config" ,pkg-config)
9822 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9823 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9824 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
9825 ("intltool" ,intltool)
9826 ("itstool" ,itstool)))
9827 (inputs
9828 `(("exiv2" ,exiv2)
9829 ("gtk" ,gtk+)
9830 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9831 ("gstreamer" ,gstreamer)
9832 ("clutter" ,clutter)
9833 ("clutter-gst" ,clutter-gst)
9834 ("clutter-gtk" ,clutter-gtk)
9835 ("libjpeg" ,libjpeg-turbo)
9836 ("libtiff" ,libtiff)
9837 ("libraw" ,libraw)))
9838 (home-page "https://wiki.gnome.org/Apps/Gthumb")
9839 (synopsis "GNOME image viewer and browser")
9840 (description "GThumb is an image viewer, browser, organizer, editor and
9841 advanced image management tool")
9842 (license license:gpl2+)))
9843
9844 (define-public terminator
9845 (package
9846 (name "terminator")
9847 (version "1.91")
9848 (source (origin
9849 (method url-fetch)
9850 (uri (string-append "https://launchpad.net/" name "/"
9851 "gtk3/" version "/" "+download/"
9852 name "-" version ".tar.gz"))
9853 (sha256
9854 (base32
9855 "0sdyqwydmdnh7j6mn74vrywz35m416kqsbxbrqcnv5ak08y6xxwm"))))
9856 (build-system python-build-system)
9857 (native-inputs
9858 `(("intltool" ,intltool)
9859 ("glib:bin" ,glib "bin") ; for glib-compile-resources
9860 ("gettext" ,gettext-minimal)
9861 ("pkg-config" ,pkg-config)))
9862 (inputs
9863 `(("cairo" ,cairo)
9864 ("gobject-introspection" ,gobject-introspection)
9865 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9866 ("python2-pycairo" ,python2-pycairo)
9867 ("python2-pygobject" ,python2-pygobject)
9868 ("python2-psutil" ,python2-psutil)
9869 ("vte" ,vte)))
9870 (arguments
9871 `(#:python ,python-2 ; Python 3 isn't supported
9872 #:imported-modules ((guix build glib-or-gtk-build-system)
9873 ,@%python-build-system-modules)
9874 #:modules ((guix build python-build-system)
9875 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
9876 (guix build utils))
9877 #:phases
9878 (modify-phases %standard-phases
9879 (add-after
9880 'install 'wrap-program
9881 (lambda* (#:key outputs #:allow-other-keys)
9882 (let ((prog (string-append (assoc-ref outputs "out")
9883 "/bin/terminator")))
9884 (wrap-program prog
9885 `("PYTHONPATH" = (,(getenv "PYTHONPATH")))
9886 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
9887 #t)))
9888 (add-after 'wrap-program 'glib-or-gtk-wrap
9889 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
9890 (home-page "https://gnometerminator.blogspot.com/")
9891 (synopsis "Store and run multiple GNOME terminals in one window")
9892 (description
9893 "Terminator allows you to run multiple GNOME terminals in a grid and
9894 +tabs, and it supports drag and drop re-ordering of terminals.")
9895 (license license:gpl2)))
9896
9897 (define-public libhandy
9898 (package
9899 (name "libhandy")
9900 (version "0.0.12")
9901 (source
9902 (origin
9903 (method git-fetch)
9904 (uri (git-reference
9905 (url "https://source.puri.sm/Librem5/libhandy")
9906 (commit (string-append "v" version))))
9907 (file-name (git-file-name name version))
9908 (sha256
9909 (base32 "09wlknarzsbk9hr5ws6s7x5kibkhx9ayrbhshfqib4zkhq2f76hw"))))
9910 (build-system meson-build-system)
9911 (arguments
9912 `(#:configure-flags
9913 '("-Dglade_catalog=disabled"
9914 "-Dgtk_doc=true")
9915 #:phases
9916 (modify-phases %standard-phases
9917 (add-before 'check 'pre-check
9918 (lambda _
9919 ;; Tests require a running X server.
9920 (system "Xvfb :1 &")
9921 (setenv "DISPLAY" ":1")
9922 #t)))))
9923 (inputs
9924 `(("gtk+" ,gtk+)))
9925 (native-inputs
9926 `(("glib:bin" ,glib "bin")
9927 ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
9928 ("vala" ,vala)
9929 ("gtk-doc" ,gtk-doc)
9930 ("pkg-config" ,pkg-config)
9931 ("gettext" ,gettext-minimal)
9932
9933 ;; Test suite dependencies.
9934 ("xorg-server" ,xorg-server-for-tests)
9935 ("hicolor-icon-theme" ,hicolor-icon-theme)))
9936 (home-page "https://source.puri.sm/Librem5/libhandy")
9937 (synopsis "Library full of GTK+ widgets for mobile phones")
9938 (description "The aim of the handy library is to help with developing user
9939 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
9940 for usage on small and big screens.")
9941 (license license:lgpl2.1+)))
9942
9943 (define-public libgit2-glib
9944 (package
9945 (name "libgit2-glib")
9946 (version "0.99.0.1")
9947 (source (origin
9948 (method url-fetch)
9949 (uri (string-append "mirror://gnome/sources/" name "/"
9950 (version-major+minor version) "/"
9951 name "-" version ".tar.xz"))
9952 (sha256
9953 (base32
9954 "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0"))))
9955 (build-system meson-build-system)
9956 (native-inputs
9957 `(("glib:bin" ,glib "bin") ;; For glib-mkenums
9958 ("gobject-introspection" ,gobject-introspection)
9959 ("pkg-config" ,pkg-config)
9960 ("python-pygobject" ,python-pygobject)
9961 ("python-wrapper" ,python-wrapper)
9962 ("vala" ,vala)))
9963 (inputs
9964 `(("glib" ,glib)
9965 ("libssh2" ,libssh2)))
9966 (propagated-inputs
9967 `(;; In Requires of libgit2-glib.pc.
9968 ("libgit2" ,libgit2)))
9969 (synopsis "GLib wrapper around the libgit2 Git access library")
9970 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
9971 access library. It only implements the core plumbing functions, not really the
9972 higher level porcelain stuff.")
9973 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
9974 (license license:gpl2+)))
9975
9976 (define-public gitg
9977 (package
9978 (name "gitg")
9979 (version "3.32.1")
9980 (source (origin
9981 (method url-fetch)
9982 (uri (string-append "mirror://gnome/sources/" name "/"
9983 (version-major+minor version) "/"
9984 name "-" version ".tar.xz"))
9985 (sha256
9986 (base32
9987 "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
9988 (build-system meson-build-system)
9989 (arguments
9990 `(#:glib-or-gtk? #t
9991 #:phases
9992 (modify-phases %standard-phases
9993 (add-after 'unpack 'disable-post-install-partially
9994 (lambda _
9995 (substitute* "meson_post_install.py"
9996 (("'python'") ; there are no python sources to compile
9997 (string-append "'" (which "true") "'"))
9998 (("gtk-update-icon-cache") (which "true")))
9999 #t))
10000 (add-after 'unpack 'fix-test-sources
10001 (lambda _
10002 (substitute* "tests/libgitg/test-commit.vala"
10003 (("/bin/bash") (which "bash")))
10004 #t))
10005 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10006 (lambda* (#:key outputs #:allow-other-keys)
10007 (let ((prog (string-append (assoc-ref outputs "out")
10008 "/bin/gitg")))
10009 (wrap-program prog
10010 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10011 #t))))))
10012 (inputs
10013 `(("glib" ,glib)
10014 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10015 ("gtk+" ,gtk+)
10016 ("gtkspell3" ,gtkspell3)
10017 ("gtksourceview" ,gtksourceview-3)
10018 ("json-glib" ,json-glib)
10019 ("libdazzle" ,libdazzle)
10020 ("libgee" ,libgee)
10021 ("libgit2-glib" ,libgit2-glib)
10022 ("libpeas" ,libpeas)
10023 ("libsecret" ,libsecret)
10024 ("libsoup" ,libsoup)
10025 ("libxml2" ,libxml2)))
10026 (native-inputs
10027 `(("glib:bin" ,glib "bin")
10028 ("gtk+:bin" ,gtk+ "bin")
10029 ("gobject-introspection" ,gobject-introspection)
10030 ("intltool" ,intltool)
10031 ("pkg-config" ,pkg-config)
10032 ("vala" ,vala)))
10033 (synopsis "Graphical user interface for git")
10034 (description
10035 "gitg is a graphical user interface for git. It aims at being a small,
10036 fast and convenient tool to visualize the history of git repositories.
10037 Besides visualization, gitg also provides several utilities to manage your
10038 repository and commit your work.")
10039 (home-page "https://wiki.gnome.org/Apps/Gitg")
10040 (license license:gpl2+)))
10041
10042 (define-public gamin
10043 (package
10044 (name "gamin")
10045 (version "0.1.10")
10046 (source (origin
10047 (method url-fetch)
10048 (uri (string-append "mirror://gnome/sources/" name "/"
10049 (version-major+minor version) "/"
10050 name "-" version ".tar.bz2"))
10051 (sha256
10052 (base32
10053 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
10054 (build-system gnu-build-system)
10055 (arguments
10056 `(#:phases
10057 (modify-phases %standard-phases
10058 (add-after 'unpack 'remove-deprecated-macro
10059 (lambda _
10060 (substitute* '("server/gam_node.c"
10061 "server/gam_subscription.h"
10062 "server/gam_node.h"
10063 "server/gam_subscription.c")
10064 (("G_CONST_RETURN") "const"))
10065 #t)))))
10066 (inputs
10067 `(("glib" ,glib)))
10068 (native-inputs
10069 `(("intltool" ,intltool)
10070 ("pkg-config" ,pkg-config)))
10071 (home-page "https://people.gnome.org/~veillard/gamin/")
10072 (synopsis "File alteration monitor")
10073 (description
10074 "Gamin is a file and directory monitoring system defined to be a subset
10075 of the FAM (File Alteration Monitor) system. This is a service provided by a
10076 library which detects when a file or a directory has been modified.")
10077 (license license:gpl2+)))
10078
10079 (define-public gnome-mahjongg
10080 (package
10081 (name "gnome-mahjongg")
10082 (version "3.35.1")
10083 (source (origin
10084 (method git-fetch)
10085 (uri (git-reference
10086 (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
10087 (commit version)))
10088 (file-name (git-file-name name version))
10089 (sha256
10090 (base32
10091 "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
10092 (build-system meson-build-system)
10093 (arguments
10094 `(#:glib-or-gtk? #t))
10095 (native-inputs
10096 `(("appstream-glib" ,appstream-glib)
10097 ("gettext" ,gettext-minimal)
10098 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
10099 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
10100 ("itstool" ,itstool)
10101 ("pkg-config" ,pkg-config)
10102 ("vala" ,vala)))
10103 (propagated-inputs
10104 `(("dconf" ,dconf)))
10105 (inputs
10106 `(("glib" ,glib)
10107 ("gtk+" ,gtk+)
10108 ("librsvg" ,librsvg)))
10109 (synopsis "Mahjongg tile-matching game")
10110 (description "GNOME Mahjongg is a game based on the classic Chinese
10111 tile-matching game Mahjong. It features multiple board layouts, tile themes,
10112 and a high score table.")
10113 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
10114 (license license:gpl2+)))
10115
10116 (define-public gnome-themes-extra
10117 (package
10118 (name "gnome-themes-extra")
10119 (version "3.28")
10120 (source
10121 (origin
10122 (method url-fetch)
10123 (uri (string-append "mirror://gnome/sources/" name "/"
10124 (version-major+minor version) "/" name "-"
10125 version ".tar.xz"))
10126 (sha256
10127 (base32
10128 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
10129 (build-system gnu-build-system)
10130 (arguments
10131 '(#:configure-flags
10132 ;; Don't create 'icon-theme.cache'.
10133 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
10134 (true (string-append coreutils "/bin/true")))
10135 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
10136 (native-inputs
10137 `(("glib:bin" ,glib "bin")
10138 ("intltool" ,intltool)
10139 ("pkg-config" ,pkg-config)))
10140 (inputs
10141 `(("glib" ,glib)
10142 ("gtk+" ,gtk+)
10143 ("gtk+-2" ,gtk+-2)
10144 ("librsvg" ,librsvg)
10145 ("libxml2" ,libxml2)))
10146 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
10147 (synopsis "GNOME Extra Themes")
10148 (description "This package provides themes and related elements that don't
10149 really fit in other upstream packages. It offers legacy support for GTK+ 2
10150 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
10151 index files needed for Adwaita to be used outside of GNOME.")
10152 (license license:lgpl2.1+)))
10153
10154 (define-public polari
10155 (package
10156 (name "polari")
10157 (version "3.32.2")
10158 (source (origin
10159 (method url-fetch)
10160 (uri (string-append "mirror://gnome/sources/polari/"
10161 (version-major+minor version)
10162 "/polari-" version ".tar.xz"))
10163 (sha256
10164 (base32
10165 "0h0w9j3y067l911gpj446b3a2w1i2vzr1w2a7cz7i5rhn6qkf2sp"))))
10166 (build-system meson-build-system)
10167 (arguments
10168 `(#:glib-or-gtk? #t
10169 #:phases
10170 (modify-phases %standard-phases
10171 (add-after 'unpack 'skip-gtk-update-icon-cache
10172 (lambda _
10173 (substitute* "meson/meson-postinstall.sh"
10174 (("gtk-update-icon-cache") (which "true")))
10175 #t))
10176 (add-after 'glib-or-gtk-wrap 'wrap-typelib
10177 (lambda* (#:key outputs #:allow-other-keys)
10178 (let ((prog (string-append (assoc-ref outputs "out")
10179 "/bin/polari")))
10180 (wrap-program prog
10181 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10182 #t))))))
10183 (inputs
10184 `(("glib" ,glib)
10185 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10186 ("gspell" ,gspell)
10187 ("gtk+" ,gtk+)
10188 ("gjs" ,gjs)
10189 ("libsecret" ,libsecret)
10190 ("libsoup" ,libsoup)
10191 ("telepathy-glib" ,telepathy-glib)
10192 ("telepathy-logger" ,telepathy-logger)))
10193 (native-inputs
10194 `(("glib:bin" ,glib "bin")
10195 ("gobject-introspection" ,gobject-introspection)
10196 ("intltool" ,intltool)
10197 ("pkg-config" ,pkg-config)
10198 ("yelp-tools" ,yelp-tools)))
10199 (propagated-inputs
10200 `(("telepathy-idle" ,telepathy-idle)
10201 ("telepathy-mission-control" ,telepathy-mission-control)))
10202 (synopsis "Simple IRC Client")
10203 (description
10204 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
10205 integrate seamlessly with the GNOME desktop.")
10206 (home-page "https://wiki.gnome.org/Apps/Polari")
10207 (license license:gpl2+)))
10208
10209 (define-public gnome-boxes
10210 (package
10211 (name "gnome-boxes")
10212 (version "3.36.6")
10213 (source
10214 (origin
10215 (method url-fetch)
10216 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
10217 (version-major+minor version) "/"
10218 "gnome-boxes-" version ".tar.xz"))
10219 (sha256
10220 (base32 "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg"))))
10221 (build-system meson-build-system)
10222 (arguments
10223 '(#:glib-or-gtk? #t
10224 #:configure-flags (list "-Drdp=false"
10225 (string-append "-Dc_link_args=-Wl,-rpath="
10226 (assoc-ref %outputs "out")
10227 "/lib/gnome-boxes"))))
10228 (native-inputs
10229 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
10230 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
10231 ("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
10232 ("itstool" ,itstool)
10233 ("intltool" ,intltool)
10234 ("vala" ,vala)
10235 ("pkg-config" ,pkg-config)))
10236 (inputs
10237 `(("libarchive" ,libarchive)
10238 ("glib-networking" ,glib-networking) ;for TLS support
10239 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10240 ("gtk" ,gtk+)
10241 ("gtk-vnc" ,gtk-vnc)
10242 ("libosinfo" ,libosinfo)
10243 ("libsecret" ,libsecret)
10244 ("libsoup" ,libsoup)
10245 ("libusb" ,libusb)
10246 ("libvirt" ,libvirt)
10247 ("libvirt-glib" ,libvirt-glib)
10248 ("libxml" ,libxml2)
10249 ("spice-gtk" ,spice-gtk)
10250 ("sparql-query" ,sparql-query)
10251 ("vte" ,vte)
10252 ("webkitgtk" ,webkitgtk)
10253 ("tracker" ,tracker)
10254 ("libgudev" ,libgudev)))
10255 (home-page "https://wiki.gnome.org/Apps/Boxes")
10256 (synopsis "View, access, and manage remote and virtual systems")
10257 (description "GNOME Boxes is a simple application to view, access, and
10258 manage remote and virtual systems. Note that this application requires the
10259 @code{libvirt} and @code{virtlog} daemons to run. Use the command
10260 @command{info '(guix) Virtualization Services'} to learn how to configure
10261 these services on the Guix System.")
10262 (license (list
10263 ;; For data/icons/empty-boxes.png.
10264 license:cc-by2.0
10265 ;; For all others.
10266 license:lgpl2.0+))))
10267
10268 (define-public geary
10269 (package
10270 (name "geary")
10271 (version "3.34.1")
10272 (source (origin
10273 (method git-fetch)
10274 (uri (git-reference
10275 (url "https://gitlab.gnome.org/GNOME/geary")
10276 (commit version)))
10277 (file-name (git-file-name name version))
10278 (sha256
10279 (base32
10280 "01cc921kyh3zxz07biqbdzkjgmdcc36kwjyajm4y382a75cl5zg7"))))
10281 (build-system meson-build-system)
10282 (arguments
10283 `(#:glib-or-gtk? #t
10284 #:phases (modify-phases %standard-phases
10285 (add-after 'unpack 'disable-failing-tests
10286 (lambda _
10287 (substitute* "test/meson.build"
10288 (("test\\('client-tests', geary_test_client_bin\\)")
10289 ""))
10290 #t))
10291 (add-after 'unpack 'disable-postinstall-script
10292 (lambda _
10293 (substitute* "meson.build"
10294 (("meson.add_install_script\\(\
10295 join_paths\\('build-aux', 'post_install.py'\\)\\)")
10296 ""))
10297 #t))
10298 (add-before 'check 'setup-xvfb
10299 (lambda _
10300 (system "Xvfb :1 &")
10301 (setenv "DISPLAY" ":1")
10302 #t)))))
10303 (inputs
10304 `(("enchant" ,enchant)
10305 ("folks" ,folks)
10306 ("gcr" ,gcr)
10307 ("glib" ,glib)
10308 ("gmime" ,gmime-2.6)
10309 ("gnome-online-accounts:lib"
10310 ,gnome-online-accounts "lib")
10311 ("gspell" ,gspell)
10312 ("gtk+" ,gtk+)
10313 ("iso-codes" ,iso-codes)
10314 ("json-glib" ,json-glib)
10315 ("libcanberra" ,libcanberra)
10316 ("libgee" ,libgee)
10317 ("libhandy" ,libhandy)
10318 ("libpeas" ,libpeas)
10319 ("libsecret" ,libsecret)
10320 ("libunwind" ,libunwind)
10321 ("sqlite" ,sqlite)
10322 ("webkitgtk" ,webkitgtk)
10323 ("ytnef" ,ytnef)))
10324 (native-inputs
10325 `(("appstream-glib" ,appstream-glib)
10326 ("cmake-minimal" ,cmake-minimal)
10327 ("desktop-file-utils" ,desktop-file-utils)
10328 ("gettext" ,gettext-minimal)
10329 ("glib:bin" ,glib "bin")
10330 ("gobject-introspection" ,gobject-introspection)
10331 ("itstool" ,itstool)
10332 ("libarchive" ,libarchive)
10333 ("libxml2" ,libxml2)
10334 ("pkg-config" ,pkg-config)
10335 ("vala" ,vala)
10336 ("xvfb" ,xorg-server-for-tests)))
10337 (synopsis "GNOME email application built around conversations")
10338 (description
10339 "Geary collects related messages together into conversations,
10340 making it easy to find and follow your discussions. Full-text and keyword
10341 search makes it easy to find the email you are looking for. Geary's
10342 full-featured composer lets you send rich, styled text with images, links, and
10343 lists, but also send lightweight, easy to read text messages. Geary
10344 automatically picks up your existing GNOME Online Accounts, and adding more is
10345 easy. Geary has a clean, fast, modern interface that works like you want it
10346 to.")
10347 (home-page "https://wiki.gnome.org/Apps/Geary")
10348 (license (list
10349 ;; geary
10350 license:lgpl2.1+
10351 ;; icons
10352 license:cc-by3.0
10353 license:cc-by-sa3.0
10354 license:public-domain
10355 ;; snowball
10356 license:bsd-2))))
10357
10358 (define-public glabels
10359 (package
10360 (name "glabels")
10361 (version "3.4.1")
10362 (source
10363 (origin
10364 (method url-fetch)
10365 (uri (string-append "mirror://gnome/sources/" name "/"
10366 (version-major+minor version) "/"
10367 "glabels-" version ".tar.xz"))
10368 (sha256
10369 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
10370 (build-system glib-or-gtk-build-system)
10371 (native-inputs
10372 `(("gettext" ,gettext-minimal)
10373 ("glib:bin" ,glib "bin")
10374 ("intltool" ,intltool)
10375 ("itstool" ,itstool)
10376 ("pkg-config" ,pkg-config)))
10377 (inputs
10378 `(("gtk+" ,gtk+)
10379 ("librsvg" ,librsvg)
10380 ("libxml2" ,libxml2)))
10381 (home-page "https://glabels.org/")
10382 (synopsis "Program for creating labels and business cards")
10383 (description
10384 "gLabels is a program for creating labels and business cards. It is
10385 designed to work with various laser/ink-jet peel-off label and business
10386 card sheets that you’ll find at most office supply stores.")
10387 (license license:gpl3+)))
10388
10389 (define-public libratbag
10390 (package
10391 (name "libratbag")
10392 (version "0.13")
10393 (source
10394 (origin
10395 (method git-fetch)
10396 (uri (git-reference
10397 (url "https://github.com/libratbag/libratbag")
10398 (commit (string-append "v" version))))
10399 (file-name (git-file-name name version))
10400 (sha256
10401 (base32 "18y8mfr63d91278m1kcid0wvrxa1sgjs8na9af1ks2n28ssvciwq"))))
10402 (build-system meson-build-system)
10403 (arguments
10404 `(#:configure-flags
10405 (list "-Dsystemd=false"
10406 "-Dlogind-provider=elogind")
10407 #:phases
10408 (modify-phases %standard-phases
10409 (add-after 'install 'wrap
10410 (lambda* (#:key inputs outputs #:allow-other-keys)
10411 (let* ((out (assoc-ref outputs "out"))
10412 (site (string-append
10413 "/lib/python"
10414 ,(version-major+minor (package-version python))
10415 "/site-packages"))
10416 (evdev (string-append
10417 (assoc-ref inputs "python-evdev") site))
10418 (pygo (string-append
10419 (assoc-ref inputs "python-pygobject") site))
10420 (python-wrap
10421 `("PYTHONPATH" = (,evdev ,pygo))))
10422 (wrap-program (string-append out "/bin/" "ratbagctl")
10423 python-wrap)
10424 #t))))))
10425 (native-inputs
10426 `(("check" ,check)
10427 ("pkg-config" ,pkg-config)
10428 ("swig" ,swig)
10429 ("valgrind" ,valgrind)))
10430 (inputs
10431 `(("glib" ,glib)
10432 ("json-glib" ,json-glib)
10433 ("libevdev" ,libevdev)
10434 ("libsystemd" ,elogind)
10435 ("libunistring" ,libunistring)
10436 ("python-evdev" ,python-evdev)
10437 ("python-pygobject" ,python-pygobject)
10438 ("udev" ,eudev)))
10439 (home-page "https://github.com/libratbag/libratbag")
10440 (synopsis "DBus daemon and utility for configuring gaming mice")
10441 (description "libratbag provides @command{ratbagd}, a DBus daemon to
10442 configure input devices, mainly gaming mice. The daemon provides a generic
10443 way to access the various features exposed by these mice and abstracts away
10444 hardware-specific and kernel-specific quirks. There is also the
10445 @command{ratbagctl} command line interface for configuring devices.
10446
10447 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
10448 Steelseries.
10449
10450 The ratbagd DBus service can be enabled by adding the following service to
10451 your operating-system definition:
10452
10453 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10454 (license license:expat)))
10455
10456 (define-public piper
10457 (package
10458 (name "piper")
10459 (version "0.5")
10460 (source
10461 (origin
10462 (method git-fetch)
10463 (uri (git-reference
10464 (url "https://github.com/libratbag/piper")
10465 (commit version)))
10466 (sha256
10467 (base32 "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv"))
10468 (file-name (git-file-name name version))))
10469 (build-system meson-build-system)
10470 (native-inputs
10471 `(("gettext" ,gettext-minimal)
10472 ("glib:bin" ,glib "bin")
10473 ("gobject-introspection" ,gobject-introspection)
10474 ("pkg-config" ,pkg-config)
10475 ("python-flake8" ,python-flake8)))
10476 (inputs
10477 `(("adwaita-icon-theme" ,adwaita-icon-theme)
10478 ("gtk" ,gtk+)
10479 ("gtk:bin" ,gtk+ "bin")
10480 ("librsvg" ,librsvg)
10481 ("python-evdev" ,python-evdev)
10482 ("python-lxml" ,python-lxml)
10483 ("python-pycairo" ,python-pycairo)
10484 ("python-pygobject" ,python-pygobject)))
10485 (arguments
10486 `(#:imported-modules ((guix build python-build-system)
10487 ,@%meson-build-system-modules)
10488 #:modules (((guix build python-build-system) #:prefix python:)
10489 (guix build meson-build-system)
10490 (guix build utils))
10491 #:phases
10492 (modify-phases %standard-phases
10493 (add-after 'unpack 'dont-update-gtk-icon-cache
10494 (lambda _
10495 (substitute* "meson.build"
10496 (("meson.add_install_script('meson_install.sh')") ""))
10497 #t))
10498 ;; TODO: Switch to wrap-script when it is fixed.
10499 (add-after 'install 'wrap-python
10500 (assoc-ref python:%standard-phases 'wrap))
10501 (add-after 'wrap-python 'wrap
10502 (lambda* (#:key outputs #:allow-other-keys)
10503 (wrap-program
10504 (string-append (assoc-ref outputs "out" )"/bin/piper")
10505 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
10506 #t)))))
10507 (home-page "https://github.com/libratbag/piper/")
10508 (synopsis "Configure bindings and LEDs on gaming mice")
10509 (description "Piper is a GTK+ application for configuring gaming mice with
10510 onboard configuration for key bindings via libratbag. Piper requires
10511 a @command{ratbagd} daemon running with root privileges. It can be run
10512 manually as root, but is preferably configured as a DBus service that can
10513 launch on demand. This can be configured by enabling the following service,
10514 provided there is a DBus service present:
10515
10516 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
10517 (license license:gpl2)))
10518
10519 (define-public parlatype
10520 (package
10521 (name "parlatype")
10522 (version "2.1")
10523 (source
10524 (origin
10525 (method git-fetch)
10526 (uri (git-reference
10527 (url "https://github.com/gkarsay/parlatype.git")
10528 (commit (string-append "v" version))))
10529 (file-name (git-file-name name version))
10530 (sha256
10531 (base32 "1c15ja0rwz3jj8bnqdq0nmqka39iwrhy8krdv2a2x8nl4shfpmv0"))))
10532 (build-system meson-build-system)
10533 (arguments
10534 `(#:glib-or-gtk? #t
10535 #:tests? #f ;require internet access
10536 #:phases
10537 (modify-phases %standard-phases
10538 (add-after 'install 'wrap-parlatype
10539 ;; Add gstreamer plugin provided in this package to system's
10540 ;; plugins.
10541 (lambda* (#:key outputs #:allow-other-keys)
10542 (let* ((out (assoc-ref outputs "out"))
10543 (gst-plugin-path (string-append
10544 out "/lib/gstreamer-1.0/"
10545 ":"
10546 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
10547 (wrap-program (string-append out "/bin/parlatype")
10548 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path))))
10549 #t)))))
10550 (native-inputs
10551 `(("appstream-glib" ,appstream-glib)
10552 ("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10553 ("gettext" ,gettext-minimal)
10554 ("glib" ,glib "bin") ;for glib-compile-resources
10555 ("pkg-config" ,pkg-config)
10556 ("yelp-tools" ,yelp-tools)))
10557 (inputs
10558 `(("gst-plugins-base" ,gst-plugins-base)
10559 ("gst-plugins-good" ,gst-plugins-good)
10560 ("gstreamer" ,gstreamer)
10561 ("gtk+" ,gtk+)
10562 ("pocketsphinx" ,pocketsphinx)
10563 ("pulseaudio" ,pulseaudio)
10564 ("sphinxbase" ,sphinxbase)))
10565 (home-page "http://gkarsay.github.io/parlatype/")
10566 (synopsis "GNOME audio player for transcription")
10567 (description "Parlatype is an audio player for the GNOME desktop
10568 environment. Its main purpose is the manual transcription of spoken
10569 audio files.")
10570 (license license:gpl3+)))
10571
10572 (define-public jsonrpc-glib
10573 (package
10574 (name "jsonrpc-glib")
10575 (version "3.34.0")
10576 (source (origin
10577 (method url-fetch)
10578 (uri (string-append "mirror://gnome/sources/" name "/"
10579 (version-major+minor version) "/"
10580 name "-" version ".tar.xz"))
10581 (sha256
10582 (base32
10583 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
10584 (build-system meson-build-system)
10585 (inputs
10586 `(("json-glib" ,json-glib)
10587 ("glib" ,glib)))
10588 (native-inputs
10589 `(("pkg-config" ,pkg-config)
10590 ("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
10591 ("gobject-introspection" ,gobject-introspection)
10592 ("vala" ,vala)))
10593 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
10594 (synopsis "JSON-RPC library for GLib")
10595 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
10596 peers in either a synchronous or asynchronous fashion. It also allows
10597 communicating using the GVariant serialization format instead of JSON when
10598 both peers support it. You might want that when communicating on a single
10599 host to avoid parser overhead and memory-allocator fragmentation.")
10600 (license license:lgpl2.1+)))
10601
10602 (define-public feedbackd
10603 (package
10604 (name "feedbackd")
10605 (version "0.0.0+git20200527")
10606 (source (origin
10607 (method git-fetch)
10608 (uri (git-reference
10609 (url "https://source.puri.sm/Librem5/feedbackd.git")
10610 (commit (string-append "v" version))))
10611 (file-name (git-file-name name version))
10612 (sha256
10613 (base32
10614 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
10615 (build-system meson-build-system)
10616 (native-inputs
10617 `(("glib:bin" ,glib "bin")
10618 ("gobject-introspection" ,gobject-introspection)
10619 ("pkg-config" ,pkg-config)
10620 ("vala" ,vala)))
10621 (inputs
10622 `(("dbus" ,dbus)
10623 ("gsound" ,gsound)
10624 ("json-glib" ,json-glib)
10625 ("libgudev" ,libgudev)))
10626 (propagated-inputs
10627 `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
10628 (synopsis "Haptic/visual/audio feedback via DBus")
10629 (description "Feedbackd provides a DBus daemon to act on events to provide
10630 haptic, visual and audio feedback. It offers the libfeedbackd library and
10631 GObject introspection bindings.")
10632 (home-page "https://source.puri.sm/Librem5/feedbackd")
10633 (license (list license:lgpl2.1+ ; libfeedbackd
10634 license:lgpl3+)))) ; the rest
10635
10636 (define-public sysprof
10637 (package
10638 (name "sysprof")
10639 (version "3.34.1")
10640 (source (origin
10641 (method url-fetch)
10642 (uri (string-append "mirror://gnome/sources/" name "/"
10643 (version-major+minor version) "/"
10644 name "-" version ".tar.xz"))
10645 (sha256
10646 (base32
10647 "1l4kr1av7933vb4zql9c5lgzivlw64hyky4nr8xin1v5if6vnjw4"))))
10648 (build-system meson-build-system)
10649 (arguments
10650 `(#:configure-flags
10651 (list (string-append "-Dsystemdunitdir="
10652 %output
10653 "/share/systemd"))
10654 #:tests? #f ; 3/4 test-model-filter barfs some dbus nonsense
10655 #:phases
10656 (modify-phases %standard-phases
10657 (add-after 'unpack 'patch-install-script
10658 (lambda _
10659 (substitute* "build-aux/meson/post_install.sh"
10660 (("gtk-update-icon-cache") "true")
10661 (("update-desktop-database") "true"))
10662 #t)))))
10663 (inputs
10664 `(("glib" ,glib)
10665 ("gtk+" ,gtk+)
10666 ("libdazzle" ,libdazzle)
10667 ("polkit" ,polkit)))
10668 (native-inputs
10669 `(("gettext" ,gettext-minimal)
10670 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
10671 ("itstool" ,itstool)
10672 ("pkg-config" ,pkg-config)
10673 ("xmllint" ,libxml2)))
10674 (home-page "http://www.sysprof.com/")
10675 (synopsis "System-wide performance profiler")
10676 (description "Sysprof is a sampling profiler that uses a kernel module
10677 to generate stacktraces which are then interpreted by the userspace program
10678 @command{sysprof}.")
10679 (license license:gpl3+)))
10680
10681 (define-public gnome-builder
10682 (package
10683 (name "gnome-builder")
10684 (version "3.36.1")
10685 (source (origin
10686 (method url-fetch)
10687 (uri (string-append "mirror://gnome/sources/" name "/"
10688 (version-major+minor version) "/"
10689 name "-" version ".tar.xz"))
10690 (sha256
10691 (base32
10692 "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2"))))
10693 (build-system meson-build-system)
10694 (arguments
10695 `(#:configure-flags (list "-Dnetwork_tests=false"
10696 ;; TODO: Enable all plugins...
10697 "-Dplugin_clang=false"
10698 "-Dplugin_flatpak=false"
10699 "-Dplugin_glade=false"
10700 ;; ... except this one.
10701 "-Dplugin_update_manager=false")
10702 #:phases
10703 (modify-phases %standard-phases
10704 (add-after 'unpack 'patch-meson
10705 (lambda* (#:key inputs #:allow-other-keys)
10706 (substitute* "build-aux/meson/post_install.py"
10707 (("gtk-update-icon-cache") "true")
10708 (("update-desktop-database") "true"))
10709 (substitute* "src/libide/meson.build"
10710 (("/usr/lib")
10711 (string-append (assoc-ref inputs "python-pygobject")
10712 "/lib")))
10713 #t))
10714 (add-before 'check 'pre-check
10715 (lambda _
10716 (system "Xvfb :1 &")
10717 (setenv "DISPLAY" ":1")
10718 #t)))))
10719 (inputs
10720 `(("devhelp" ,devhelp)
10721 ("gspell" ,gspell)
10722 ("gtk+" ,gtk+)
10723 ("json-glib" ,json-glib)
10724 ("jsonrpc-glib" ,jsonrpc-glib)
10725 ("libdazzle" ,libdazzle)
10726 ("libgit2-glib" ,libgit2-glib)
10727 ("libpeas" ,libpeas)
10728 ("python-pygobject" ,python-pygobject)
10729 ("sysprof" ,sysprof)
10730 ("template-glib" ,template-glib)
10731 ("vte" ,vte)
10732 ("webkitgtk" ,webkitgtk)))
10733 (propagated-inputs
10734 `(("gtksourceview" ,gtksourceview))) ;needed for settings
10735 (native-inputs
10736 `(("desktop-file-utils" ,desktop-file-utils) ;for desktop-file-validate
10737 ("glib:bin" ,glib "bin")
10738 ("gettext" ,gettext-minimal)
10739 ("pkg-config" ,pkg-config)
10740 ("vala" ,vala)
10741 ("xorg-server" ,xorg-server-for-tests)))
10742 (home-page "https://wiki.gnome.org/Apps/Builder")
10743 (synopsis "Toolsmith for GNOME-based applications")
10744 (description "Builder aims to be an integrated development
10745 environment (IDE) for writing GNOME-based software. It features fuzzy search,
10746 auto-completion, a mini code map, documentation browsing, Git integration, an
10747 integrated profiler via Sysprof, debugging support, and more.")
10748 (license license:gpl3+)))