gnu: libadwaita: Update to 1.2.rc.
[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-2022 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, 2021 Mark H Weaver <mhw@netris.org>
13 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
14 ;;; Copyright © 2015-2022 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–2022 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, 2021 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, 2022 Marius Bakke <marius@gnu.org>
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, 2021, 2022 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, 2021 Liliana Marie Prikler <liliana.prikler@gmail.com>
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, 2021 Nicolas Goaziou <mail@nicolasgoaziou.fr>
52 ;;; Copyright © 2020 Naga Malleswari <nagamalli@riseup.net>
53 ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
54 ;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
55 ;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
56 ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
57 ;;; Copyright © 2020, 2022 Michael Rohleder <mike@rohleder.de>
58 ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
59 ;;; Copyright © 2020, 2021 Andy Tai <atai@atai.org>
60 ;;; Copyright © 2020, 2021 Sébastien Lerique <sl@eauchat.org>
61 ;;; Copyright © 2021 Trevor Hass <thass@okstate.edu>
62 ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
63 ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
64 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
65 ;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
66 ;;; Copyright © 2021 Josselin Poiret <josselin.poiret@protonmail.ch>
67 ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
68 ;;; Copyright © 2022 Daniel Meißner <daniel.meissner-i4k@ruhr-uni-bochum.de>
69 ;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com>
70 ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
71 ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
72 ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
73 ;;; Copyright © 2022 Rene Saavedra <nanuui@protonmail.com>
74 ;;; Copyright © 2022 Alexandros Theodotou <alex@zrythm.org>
75 ;;;
76 ;;; This file is part of GNU Guix.
77 ;;;
78 ;;; GNU Guix is free software; you can redistribute it and/or modify it
79 ;;; under the terms of the GNU General Public License as published by
80 ;;; the Free Software Foundation; either version 3 of the License, or (at
81 ;;; your option) any later version.
82 ;;;
83 ;;; GNU Guix is distributed in the hope that it will be useful, but
84 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
85 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
86 ;;; GNU General Public License for more details.
87 ;;;
88 ;;; You should have received a copy of the GNU General Public License
89 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
90
91 (define-module (gnu packages gnome)
92 #:use-module (gnu packages)
93 #:use-module (gnu packages admin)
94 #:use-module (gnu packages aidc)
95 #:use-module (gnu packages aspell)
96 #:use-module (gnu packages autotools)
97 #:use-module (gnu packages avahi)
98 #:use-module (gnu packages backup)
99 #:use-module (gnu packages base)
100 #:use-module (gnu packages bash)
101 #:use-module (gnu packages bison)
102 #:use-module (gnu packages boost)
103 #:use-module (gnu packages build-tools)
104 #:use-module (gnu packages calendar)
105 #:use-module (gnu packages cdrom)
106 #:use-module (gnu packages check)
107 #:use-module (gnu packages cmake)
108 #:use-module (gnu packages compression)
109 #:use-module (gnu packages crates-io)
110 #:use-module (gnu packages crates-graphics)
111 #:use-module (gnu packages crates-gtk)
112 #:use-module (gnu packages cups)
113 #:use-module (gnu packages curl)
114 #:use-module (gnu packages cyrus-sasl)
115 #:use-module (gnu packages databases)
116 #:use-module (gnu packages dbm)
117 #:use-module (gnu packages djvu)
118 #:use-module (gnu packages dns)
119 #:use-module (gnu packages docbook)
120 #:use-module (gnu packages docker)
121 #:use-module (gnu packages documentation)
122 #:use-module (gnu packages enchant)
123 #:use-module (gnu packages flex)
124 #:use-module (gnu packages fonts)
125 #:use-module (gnu packages file-systems)
126 #:use-module (gnu packages fontutils)
127 #:use-module (gnu packages freedesktop)
128 #:use-module (gnu packages game-development)
129 #:use-module (gnu packages gcc)
130 #:use-module (gnu packages gettext)
131 #:use-module (gnu packages ghostscript)
132 #:use-module (gnu packages gimp)
133 #:use-module (gnu packages gl)
134 #:use-module (gnu packages glib)
135 #:use-module (gnu packages gnupg)
136 #:use-module (gnu packages gnuzilla)
137 #:use-module (gnu packages geo)
138 #:use-module (gnu packages gperf)
139 #:use-module (gnu packages graphviz)
140 #:use-module (gnu packages gstreamer)
141 #:use-module (gnu packages gtk)
142 #:use-module (gnu packages guile)
143 #:use-module (gnu packages haskell-xyz)
144 #:use-module (gnu packages ibus)
145 #:use-module (gnu packages icu4c)
146 #:use-module (gnu packages image)
147 #:use-module (gnu packages imagemagick)
148 #:use-module (gnu packages inkscape)
149 #:use-module (gnu packages iso-codes)
150 #:use-module (gnu packages kerberos)
151 #:use-module (gnu packages language)
152 #:use-module (gnu packages libcanberra)
153 #:use-module (gnu packages libffi)
154 #:use-module (gnu packages libunistring)
155 #:use-module (gnu packages libunwind)
156 #:use-module (gnu packages libusb)
157 #:use-module (gnu packages linux)
158 #:use-module (gnu packages lirc)
159 #:use-module (gnu packages llvm)
160 #:use-module (gnu packages lua)
161 #:use-module (gnu packages mail)
162 #:use-module (gnu packages man)
163 #:use-module (gnu packages markup)
164 #:use-module (gnu packages messaging)
165 #:use-module (gnu packages mp3)
166 #:use-module (gnu packages multiprecision)
167 #:use-module (gnu packages music)
168 #:use-module (gnu packages ncurses)
169 #:use-module (gnu packages nettle)
170 #:use-module (gnu packages networking)
171 #:use-module (gnu packages ninja)
172 #:use-module (gnu packages node)
173 #:use-module (gnu packages nss)
174 #:use-module (gnu packages ocr)
175 #:use-module (gnu packages openldap)
176 #:use-module (gnu packages package-management)
177 #:use-module (gnu packages password-utils)
178 #:use-module (gnu packages pcre)
179 #:use-module (gnu packages pdf)
180 #:use-module (gnu packages perl)
181 #:use-module (gnu packages photo)
182 #:use-module (gnu packages pkg-config)
183 #:use-module (gnu packages polkit)
184 #:use-module (gnu packages popt)
185 #:use-module (gnu packages pretty-print)
186 #:use-module (gnu packages protobuf)
187 #:use-module (gnu packages pulseaudio)
188 #:use-module (gnu packages python)
189 #:use-module (gnu packages python-build)
190 #:use-module (gnu packages python-crypto)
191 #:use-module (gnu packages python-web)
192 #:use-module (gnu packages python-xyz)
193 #:use-module (gnu packages rdesktop)
194 #:use-module (gnu packages rdf)
195 #:use-module (gnu packages readline)
196 #:use-module (gnu packages ruby)
197 #:use-module (gnu packages rust)
198 #:use-module (gnu packages samba)
199 #:use-module (gnu packages scanner)
200 #:use-module (gnu packages sdl)
201 #:use-module (gnu packages search)
202 #:use-module (gnu packages selinux)
203 #:use-module (gnu packages slang)
204 #:use-module (gnu packages speech)
205 #:use-module (gnu packages spice)
206 #:use-module (gnu packages sqlite)
207 #:use-module (gnu packages ssh)
208 #:use-module (gnu packages swig)
209 #:use-module (gnu packages tex)
210 #:use-module (gnu packages time)
211 #:use-module (gnu packages tls)
212 #:use-module (gnu packages valgrind)
213 #:use-module (gnu packages version-control)
214 #:use-module (gnu packages video)
215 #:use-module (gnu packages virtualization)
216 #:use-module (gnu packages vpn)
217 #:use-module (gnu packages web)
218 #:use-module (gnu packages webkit)
219 #:use-module (gnu packages xdisorg)
220 #:use-module (gnu packages xiph)
221 #:use-module (gnu packages xml)
222 #:use-module (gnu packages xorg)
223 #:use-module (gnu artwork)
224 #:use-module (guix build-system cargo)
225 #:use-module (guix build-system cmake)
226 #:use-module (guix build-system glib-or-gtk)
227 #:use-module (guix build-system gnu)
228 #:use-module (guix build-system meson)
229 #:use-module (guix build-system python)
230 #:use-module (guix build-system trivial)
231 #:use-module (guix download)
232 #:use-module (guix git-download)
233 #:use-module ((guix licenses) #:prefix license:)
234 #:use-module (guix packages)
235 #:use-module (guix utils)
236 #:use-module (guix gexp)
237 #:use-module (ice-9 match)
238 #:use-module (srfi srfi-1))
239
240 (define-public gupnp-igd
241 (package
242 (name "gupnp-igd")
243 (version "1.2.0")
244 (source
245 (origin
246 (method url-fetch)
247 (uri
248 (string-append "mirror://gnome/sources/" name "/"
249 (version-major+minor version) "/"
250 name "-" version ".tar.xz"))
251 (sha256
252 (base32 "1q9bw12ibih3yxpha3gm1dabyqg9gx6yxacbh4kxsgm1i84j0lab"))))
253 (build-system meson-build-system)
254 (outputs '("out" "doc"))
255 (arguments
256 `(#:glib-or-gtk? #t ; To wrap binaries and compile schemas
257 #:configure-flags (list "-Dgtk_doc=true")
258 #:phases
259 (modify-phases %standard-phases
260 (add-after 'unpack 'patch-docbook-xml
261 (lambda* (#:key inputs #:allow-other-keys)
262 (with-directory-excursion "doc"
263 (substitute* "gupnp-igd-docs.xml"
264 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
265 (string-append (assoc-ref inputs "docbook-xml-4.1.2")
266 "/xml/dtd/docbook/"))))
267 #t))
268 (add-before 'check 'set-home
269 (lambda _
270 ;; A test using GIO expects ~/.config/glib-2.0/settings to be
271 ;; writable.
272 (setenv "HOME" (getcwd))))
273 (add-after 'install 'move-doc
274 (lambda* (#:key outputs #:allow-other-keys)
275 (let* ((out (assoc-ref outputs "out"))
276 (doc (assoc-ref outputs "doc")))
277 (mkdir-p (string-append doc "/share"))
278 (rename-file
279 (string-append out "/share/gtk-doc")
280 (string-append doc "/share/gtk-doc"))
281 #t))))))
282 (native-inputs
283 `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
284 ("docbook-xsl" ,docbook-xsl)
285 ("glib:bin" ,glib "bin")
286 ("gobject-introspection" ,gobject-introspection)
287 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
288 ("gtk-doc" ,gtk-doc/stable)
289 ("pkg-config" ,pkg-config)))
290 (propagated-inputs
291 (list glib glib-networking gssdp gupnp libsoup))
292 (synopsis "UPnP IGD for GNOME")
293 (description "GUPnP-IGD is a library to handle UPnP IGD port mapping.")
294 (home-page "https://gitlab.gnome.org/GNOME/gupnp-igd")
295 (license license:lgpl2.1+)))
296
297 (define-public brasero
298 (package
299 (name "brasero")
300 (version "3.12.3")
301 (source (origin
302 (method url-fetch)
303 (uri (string-append "mirror://gnome/sources/brasero/"
304 (version-major+minor version) "/"
305 "brasero-" version ".tar.xz"))
306 (sha256
307 (base32
308 "05gabybkl7xfinwx97i4scp9hic0dlxj7gh03dyj0hd16fp9wx47"))))
309 (build-system glib-or-gtk-build-system)
310 (arguments
311 `(#:configure-flags (list
312 (string-append "--with-girdir="
313 (assoc-ref %outputs "out")
314 "/share/gir-1.0")
315 (string-append "--with-typelibdir="
316 (assoc-ref %outputs "out")
317 "/lib/girepository-1.0"))
318 #:phases
319 (modify-phases %standard-phases
320 (add-before 'configure 'embed-growisofs-reference
321 (lambda* (#:key inputs #:allow-other-keys)
322 (let ((dvd+rw-tools (assoc-ref inputs "dvd+rw-tools")))
323 (substitute* "plugins/growisofs/burn-growisofs.c"
324 (("(\")(growisofs)" _ prefix command)
325 (string-append prefix dvd+rw-tools "/bin/" command)))))))))
326 (propagated-inputs
327 (list hicolor-icon-theme))
328 (native-inputs
329 (list intltool
330 itstool
331 `(,glib "bin") ; glib-compile-schemas, etc.
332 gobject-introspection
333 pkg-config))
334 (inputs
335 (list dvd+rw-tools
336 glib
337 gstreamer
338 gst-plugins-base
339 gtk+
340 libcanberra
341 libice
342 libnotify
343 libsm
344 libxml2
345 totem-pl-parser))
346 (home-page "https://wiki.gnome.org/Apps/Brasero")
347 (synopsis "CD/DVD burning tool for Gnome")
348 (description "Brasero is an application to burn CD/DVD for the Gnome
349 Desktop. It is designed to be as simple as possible and has some unique
350 features to enable users to create their discs easily and quickly.")
351 (license license:gpl2+)))
352
353 ;;; Minimal variant, used to break a cycle with Inkscape.
354 (define-public libcloudproviders-minimal
355 (package
356 (name "libcloudproviders-minimal")
357 (version "0.3.1")
358 (source
359 (origin
360 (method url-fetch)
361 (uri
362 (string-append "mirror://gnome/sources/libcloudproviders/"
363 (version-major+minor version)
364 "/libcloudproviders-" version ".tar.xz"))
365 (sha256
366 (base32 "0aars24myf6n8b8hm1n12hsgcm54097kpbpm4ba31zp1l4y22qs7"))))
367 (build-system meson-build-system)
368 (arguments
369 `(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
370 #:configure-flags (list "-Dintrospection=false"
371 "-Denable-gtk-doc=false"
372 "-Dvapigen=false")))
373 (native-inputs
374 `(("glib:bin" ,glib "bin")
375 ("pkg-config" ,pkg-config)
376 ("vala" ,vala)))
377 (inputs
378 (list glib glib-networking))
379 (synopsis "Cloudproviders Integration API")
380 (description "Libcloudproviders is a DBus API that allows cloud storage sync
381 clients to expose their services. Clients such as file managers and desktop
382 environments can then provide integrated access to the cloud providers
383 services.")
384 (home-page "https://csorianognome.wordpress.com/2015/07/07/cloud-providers/")
385 (license license:lgpl3+)))
386
387 (define-public libcloudproviders
388 (package/inherit libcloudproviders-minimal
389 (name "libcloudproviders")
390 (version "0.3.1")
391 (outputs (cons "doc" (package-outputs libcloudproviders-minimal)))
392 (arguments
393 (substitute-keyword-arguments (package-arguments libcloudproviders-minimal)
394 ((#:configure-flags _)
395 '(list "-Denable-gtk-doc=true")) ;false by default
396 ((#:phases phases '%standard-phases)
397 `(modify-phases %standard-phases
398 (add-after 'install 'move-doc
399 (lambda* (#:key outputs #:allow-other-keys)
400 (let* ((out (assoc-ref outputs "out"))
401 (doc (assoc-ref outputs "doc")))
402 (mkdir-p (string-append doc "/share"))
403 (rename-file
404 (string-append out "/share/gtk-doc")
405 (string-append doc "/share/gtk-doc")))))))))
406 (native-inputs
407 (append
408 `(("gobject-introspection" ,gobject-introspection)
409 ("gtk-doc" ,gtk-doc/stable))
410 (package-native-inputs libcloudproviders-minimal)))))
411
412 (define-public libgrss
413 (package
414 (name "libgrss")
415 (version "0.7.0")
416 (source
417 (origin
418 (method url-fetch)
419 (uri
420 (string-append "mirror://gnome/sources/" name "/"
421 (version-major+minor version) "/"
422 name "-" version ".tar.xz"))
423 (sha256
424 (base32 "1nalslgyglvhpva3px06fj6lv5zgfg0qmj0sbxyyl5d963vc02b7"))
425 (patches
426 (search-patches "libgrss-CVE-2016-2001.patch"))))
427 (build-system glib-or-gtk-build-system)
428 (outputs '("out" "doc"))
429 (arguments
430 `(#:configure-flags
431 (list
432 "--enable-gtk-doc"
433 (string-append "--with-html-dir="
434 (assoc-ref %outputs "doc")
435 "/share/gtk-doc/html"))
436 #:phases
437 (modify-phases %standard-phases
438 (add-after 'unpack 'patch-docbook-xml
439 (lambda* (#:key inputs #:allow-other-keys)
440 (with-directory-excursion "doc/reference"
441 (substitute* "libgrss-docs.sgml"
442 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
443 (string-append (assoc-ref inputs "docbook-xml")
444 "/xml/dtd/docbook/"))))
445 #t)))))
446 (native-inputs
447 (list docbook-xml-4.1.2 gobject-introspection gtk-doc/stable
448 pkg-config))
449 (propagated-inputs
450 (list glib libsoup-minimal-2 libxml2))
451 (synopsis "Glib library for feeds")
452 (description "LibGRSS is a Glib abstraction to handle feeds in RSS, Atom,
453 and other formats.")
454 (home-page "https://wiki.gnome.org/Projects/Libgrss")
455 (license license:lgpl3+)))
456
457 (define-public gnome-js-common
458 (package
459 (name "gnome-js-common")
460 (version "0.1.2")
461 (source
462 (origin
463 (method url-fetch)
464 (uri
465 (string-append "mirror://gnome/sources/" name "/"
466 (version-major+minor version) "/"
467 name "-" version ".tar.gz"))
468 (sha256
469 (base32 "1zv5b9bcbclzj64xd9kgql4ndmbwvvi6cl937ykw8fp21xgh8z7y"))))
470 (build-system glib-or-gtk-build-system)
471 (arguments
472 `(#:configure-flags
473 (list
474 "--disable-static")))
475 (native-inputs
476 `(("gettext" ,gettext-minimal)
477 ("intltool" ,intltool)
478 ("pkg-config" ,pkg-config)))
479 (synopsis "Common JS Modules")
480 (description "GNOME-JS-Common provides common modules for GNOME JavaScript
481 bindings.")
482 (home-page "https://wiki.gnome.org/Projects/Seed")
483 (license license:gpl3+)))
484
485 (define-public seed
486 (package
487 (name "seed")
488 (version "3.8.1")
489 (source
490 (origin
491 (method url-fetch)
492 (uri
493 (string-append "mirror://gnome/sources/" name "/"
494 (version-major+minor version) "/"
495 name "-" version ".tar.xz"))
496 (sha256
497 (base32 "0cmcxaggcdcy13j27gy8id2qsf2p2sl4bz2mwb9zhv3gzavlvjw0"))
498 (patches
499 (search-patches "seed-webkit.patch"))))
500 (build-system glib-or-gtk-build-system)
501 (outputs '("out" "doc"))
502 (arguments
503 `(#:configure-flags
504 (list
505 "--disable-static"
506 "--enable-xorg-module"
507 (string-append "--with-html-dir="
508 (assoc-ref %outputs "doc")
509 "/share/gtk-doc/html")
510 "--with-webkit=4.0")
511 #:phases
512 (modify-phases %standard-phases
513 ;; The seed-webkit.patch patches configure.ac.
514 ;; So the source files need to be re-bootstrapped.
515 (add-after 'unpack 'trigger-bootstrap
516 (lambda _
517 (for-each delete-file
518 (list
519 "configure"
520 "Makefile.in"))
521 #t))
522 (add-after 'unpack 'patch-tests
523 (lambda* (#:key outputs #:allow-other-keys)
524 (substitute* (find-files "." "\\.js$")
525 (("#!/usr/bin/env seed")
526 (string-append "#!" (getcwd) "/src/seed")))
527 #t))
528 (add-before 'build 'patch-docbook-xml
529 (lambda* (#:key inputs #:allow-other-keys)
530 (with-directory-excursion "doc"
531 (substitute* '("reference/seed-docs.sgml" "modules/book.xml")
532 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
533 (string-append (assoc-ref inputs "docbook-xml")
534 "/xml/dtd/docbook/"))))
535 #t)))))
536 (native-inputs
537 `(("autoconf" ,autoconf)
538 ("automake" ,automake)
539 ("docbook-xml" ,docbook-xml-4.1.2)
540 ("gettext" ,gettext-minimal)
541 ("gobject-introspection" ,gobject-introspection)
542 ("gtk-doc" ,gtk-doc/stable)
543 ("intltool" ,intltool)
544 ("libtool" ,libtool)
545 ("pkg-config" ,pkg-config)))
546 (inputs
547 `(("cairo" ,cairo)
548 ("dbus" ,dbus)
549 ("dbus-glib" ,dbus-glib)
550 ("gnome-js-common" ,gnome-js-common)
551 ("gtk+" ,gtk+)
552 ("gtk+-2" ,gtk+-2)
553 ("libffi" ,libffi)
554 ("libxml2" ,libxml2)
555 ("mpfr" ,mpfr)
556 ("readline" ,readline)
557 ("sqlite" ,sqlite)
558 ("xscrnsaver" ,libxscrnsaver)))
559 (propagated-inputs
560 `(("glib" ,glib)
561 ("webkit" ,webkitgtk-with-libsoup2)))
562 (synopsis "GObject JavaScriptCore bridge")
563 (description "Seed is a library and interpreter, dynamically bridging
564 (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the
565 GNOME platform. It serves as something which enables you to write standalone
566 applications in JavaScript, or easily enable your application to be extensible
567 in JavaScript.")
568 (home-page "https://wiki.gnome.org/Projects/Seed")
569 (license license:lgpl2.0+)))
570
571 (define-public libdmapsharing
572 (package
573 (name "libdmapsharing")
574 (version "3.9.10")
575 (source
576 (origin
577 (method url-fetch)
578 (uri
579 (string-append "https://www.flyn.org/projects/"
580 name "/" name "-" version ".tar.gz"))
581 (sha256
582 (base32 "152hnddwxv590cn802awv3mn27ixc3s6ac691a7z02d1c5fl45p2"))))
583 (build-system glib-or-gtk-build-system)
584 (outputs '("out" "doc"))
585 (arguments
586 `(#:tests? #f ; Tests require networking.
587 #:configure-flags
588 (list
589 "--disable-static"
590 (string-append "--with-html-dir="
591 (assoc-ref %outputs "doc")
592 "/share/gtk-doc/html"))
593 #:phases
594 (modify-phases %standard-phases
595 (add-after 'unpack 'patch-docbook-xml
596 (lambda* (#:key inputs #:allow-other-keys)
597 (with-directory-excursion "doc"
598 (substitute* "libdmapsharing-4.0-docs.xml"
599 (("http://www.oasis-open.org/docbook/xml/4.3/")
600 (string-append (assoc-ref inputs "docbook-xml")
601 "/xml/dtd/docbook/"))))
602 #t)))))
603 (native-inputs
604 (list check
605 docbook-xml-4.3
606 gobject-introspection
607 pedansee
608 pkg-config
609 vala))
610 (inputs
611 `(("avahi" ,avahi)
612 ("librsvg" ,librsvg)
613 ("gee" ,libgee)
614 ("gst-plugins-base" ,gst-plugins-base)
615 ("gtk+" ,gtk+)))
616 (propagated-inputs
617 (list glib glib-networking gstreamer libsoup-minimal-2))
618 (synopsis "Media management library")
619 (description "Libdmapsharing is a library which allows programs to access,
620 share and control the playback of media content using DMAP (DAAP, DPAP & DACP).
621 It is written in C using GObject and libsoup.")
622 (home-page "https://launchpad.net/gtx")
623 (license license:lgpl2.1+)))
624
625 (define-public gtx
626 (package
627 (name "gtx")
628 (version "0.2.2")
629 (source
630 (origin
631 (method url-fetch)
632 (uri
633 (string-append "https://launchpad.net/gtx/trunk/"
634 version "/+download/gtx-" version ".tar.gz"))
635 (sha256
636 (base32 "0i4zvn5v4rf0cw3fxylk6j2pyy5lkrswdiw8jdxkys0ph0nan33n"))))
637 (build-system glib-or-gtk-build-system)
638 (outputs '("out" "doc"))
639 (arguments
640 `(#:configure-flags
641 (list
642 "--disable-static"
643 "--enable-gtk-doc"
644 (string-append "--with-html-dir="
645 (assoc-ref %outputs "doc")
646 "/share/gtk-doc/html"))))
647 (native-inputs
648 (list gobject-introspection gtk-doc/stable pkg-config))
649 (propagated-inputs
650 (list glib))
651 (synopsis "GLib Testing Framework")
652 (description "GTX is a small collection of convenience functions intended to
653 enhance the GLib testing framework. With specific emphasis on easing the pain
654 of writing test cases for asynchronous interactions.")
655 (home-page "https://launchpad.net/gtx")
656 (license license:lgpl2.1+)))
657
658 (define-public dee
659 (package
660 (name "dee")
661 (version "1.2.7")
662 (source
663 (origin
664 (method url-fetch)
665 (uri
666 (string-append "https://launchpad.net/dee/1.0/"
667 version "/+download/dee-" version ".tar.gz"))
668 (sha256
669 (base32 "12mzffk0lyd566y46x57jlvb9af152b4dqpasr40zal4wrn37w0v"))
670 (patches
671 (search-patches "dee-vapi.patch"))))
672 (build-system glib-or-gtk-build-system)
673 (outputs '("out" "doc"))
674 (arguments
675 `(#:configure-flags
676 (list
677 "--disable-maintainer-flags"
678 (string-append "--with-pygi-overrides-dir="
679 (assoc-ref %outputs "out")
680 "/lib/python"
681 ,(version-major+minor
682 (package-version python))
683 "/site-packages/gi/overrides")
684 (string-append "--with-html-dir="
685 (assoc-ref %outputs "doc")
686 "/share/gtk-doc/html"))
687 #:phases
688 (modify-phases %standard-phases
689 (add-after 'unpack 'patch-docbook-xml
690 (lambda* (#:key inputs #:allow-other-keys)
691 (with-directory-excursion "doc/reference/dee-1.0"
692 (substitute* "dee-1.0-docs.sgml"
693 (("http://www.oasis-open.org/docbook/xml/4.3/")
694 (string-append (assoc-ref inputs "docbook-xml")
695 "/xml/dtd/docbook/"))))))
696 (add-after 'patch-docbook-xml 'disable-failing-tests
697 (lambda _
698 (substitute* "tests/test-icu.c"
699 (("g_test_add \\(DOMAIN\"/Default/AsciiFolder\", Fixture, 0,")
700 "")
701 (("setup, test_ascii_folder, teardown\\);")
702 ""))))
703 (add-before 'check 'pre-check
704 (lambda _
705 ;; Tests require a running dbus-daemon.
706 (system "dbus-daemon &")
707 ;; For missing '/etc/machine-id'.
708 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
709 (native-inputs
710 `(("dbus" ,dbus)
711 ("dbus-test-runner" ,dbus-test-runner)
712 ("docbook-xml" ,docbook-xml-4.3)
713 ("gobject-introspection" ,gobject-introspection)
714 ("gtk-doc" ,gtk-doc/stable)
715 ;; Would only be required by configure flag "--enable-extended-tests".
716 ;("gtx" ,gtx)
717 ("pkg-config" ,pkg-config)
718 ("pygobject" ,python-pygobject)
719 ("python" ,python-wrapper)
720 ("vala" ,vala-0.52)))
721 (inputs
722 `(("icu" ,icu4c)))
723 (propagated-inputs
724 (list glib))
725 (synopsis "Model to synchronize multiple instances over DBus")
726 (description "Dee is a library that uses DBus to provide objects allowing
727 you to create Model-View-Controller type programs across DBus. It also consists
728 of utility objects which extend DBus allowing for peer-to-peer discoverability
729 of known objects without needing a central registrar.")
730 (home-page "https://launchpad.net/dee")
731 (license
732 ;; Dual-licensed
733 (list
734 license:lgpl3+
735 license:gpl3+))))
736
737 (define-public zeitgeist
738 (package
739 (name "zeitgeist")
740 (version "1.0.4")
741 (source
742 (origin
743 (method git-fetch)
744 (uri
745 (git-reference
746 (url "https://gitlab.freedesktop.org/zeitgeist/zeitgeist.git")
747 (commit
748 (string-append "v" version))))
749 (file-name
750 (git-file-name name version))
751 (sha256
752 (base32 "07b1ahj3vd3m8srwkrh7dl3ymr7d55xiiszny44q13g06pq4svch"))))
753 (build-system glib-or-gtk-build-system)
754 (arguments
755 `(#:configure-flags
756 (list
757 "--enable-explain-queries"
758 "--enable-fts"
759 "--enable-docs")
760 #:phases
761 (modify-phases %standard-phases
762 (add-after 'unpack 'patch-docbook-xml
763 (lambda* (#:key inputs #:allow-other-keys)
764 (with-directory-excursion "doc/libzeitgeist"
765 (substitute* "zeitgeist-gtkdoc-index.sgml"
766 (("http://www.oasis-open.org/docbook/xml/4.3/")
767 (string-append (assoc-ref inputs "docbook-xml")
768 "/xml/dtd/docbook/"))))))
769 (add-after 'patch-docbook-xml 'disable-failing-tests
770 (lambda _
771 (substitute* "test/direct/Makefile.am"
772 ((" log-test ")
773 ""))
774 (substitute* "test/c/Makefile.am"
775 ((" test-log ")
776 ""))))
777 (add-before 'bootstrap 'remove-autogen-script
778 (lambda _
779 ;; To honor `autoreconf -vif` by build-system.
780 (delete-file "autogen.sh"))))))
781 (native-inputs
782 `(("autoconf" ,autoconf)
783 ("automake" ,automake)
784 ("docbook-xml" ,docbook-xml-4.3)
785 ("gettext" ,gettext-minimal)
786 ("gobject-introspection" ,gobject-introspection)
787 ("gtk-doc" ,gtk-doc/stable)
788 ("libtool" ,libtool)
789 ("pkg-config" ,pkg-config)
790 ("vala" ,vala)
791 ("xorg-server-for-tests" ,xorg-server-for-tests)))
792 (inputs
793 `(("dee-icu" ,dee)
794 ("gtk+" ,gtk+)
795 ("json-glib" ,json-glib)
796 ("sqlite" ,sqlite)
797 ("telepathy-glib" ,telepathy-glib)
798 ("python" ,python-wrapper)
799 ("python-rdflib" ,python-rdflib)
800 ("xapian-config" ,xapian)))
801 (propagated-inputs
802 (list glib))
803 (synopsis "Desktop Activity Logging")
804 (description "Zeitgeist is a service which logs the users’s activities and
805 events, anywhere from files opened to websites visited and conversations. It
806 makes this information readily available for other applications to use. It is
807 able to establish relationships between items based on similarity and usage
808 patterns.")
809 (home-page "https://zeitgeist.freedesktop.org/")
810 (license
811 ;; Dual-licensed
812 (list
813 license:lgpl2.1+
814 license:gpl2+))))
815
816 (define-public gnome-recipes
817 (package
818 (name "gnome-recipes")
819 (version "2.0.4")
820 (source (origin
821 (method git-fetch)
822 (uri (git-reference
823 (url "https://gitlab.gnome.org/GNOME/recipes")
824 (commit version)))
825 (file-name (git-file-name name version))
826 (sha256
827 (base32
828 "1h049mzqnlcfqwrhmzbq3pzzdglvy2bn9fj1p8wql7a60pn8sr32"))))
829 (build-system meson-build-system)
830 (arguments
831 (list
832 #:glib-or-gtk? #t
833 #:phases
834 #~(modify-phases %standard-phases
835 (add-after 'unpack 'skip-gtk-update-icon-cache
836 (lambda _
837 (substitute* "meson_post_install.py"
838 (("gtk-update-icon-cache") (which "true")))))
839 (add-after 'unpack 'unpack-libgd
840 (lambda _
841 (copy-recursively
842 #$(origin
843 (method git-fetch)
844 (uri (git-reference
845 (url "https://gitlab.gnome.org/GNOME/libgd")
846 (commit "c7c7ff4e05d3fe82854219091cf116cce6b19de0")))
847 (file-name (git-file-name "libgd" version))
848 (sha256
849 (base32
850 "16yld0ap7qj1n96h4f2sqkjmibg7xx5xwkqxdfzam2nmyfdlrrrs")))
851 "subprojects/libgd"))))))
852 (inputs (list glib
853 gnome-autoar
854 gnome-online-accounts
855 gspell
856 gtk+
857 json-glib
858 libcanberra
859 libsoup
860 rest))
861 (native-inputs (list desktop-file-utils ;for update-desktop-database
862 gettext-minimal
863 `(,glib "bin")
864 itstool
865 pkg-config
866 python))
867 (home-page "https://wiki.gnome.org/Apps/Recipes")
868 (synopsis "Discover recipes for preparing food")
869 (description "GNOME Recipes helps you discover what to cook today,
870 tomorrow, the rest of the week and for special occasions.")
871 (license license:gpl3+)))
872
873 (define-public gnome-photos
874 (package
875 (name "gnome-photos")
876 (version "43.beta") ;for geocode-glib 2 support
877 (source
878 (origin
879 (method url-fetch)
880 (uri
881 (string-append "mirror://gnome/sources/" name "/"
882 (version-major version) "/"
883 name "-" version ".tar.xz"))
884 (sha256
885 (base32
886 "1pry45dy4sjw8y63vxw2b499brcxzpkd4hmg2vbqy538r79ah2g9"))))
887 (build-system meson-build-system)
888 (arguments
889 (list
890 #:glib-or-gtk? #t
891 #:configure-flags
892 #~(list "-Ddogtail=false" ; Not available
893 ;; Required for RUNPATH validation.
894 (string-append "-Dc_link_args=-Wl,-rpath="
895 #$output "/lib/gnome-photos"))
896 #:phases
897 #~(modify-phases %standard-phases
898 (add-after 'unpack 'disable-gtk-update-icon-cache
899 (lambda _
900 (setenv "DESTDIR" "/")))
901 (add-after 'install 'wrap-gnome-photos
902 (lambda* (#:key outputs #:allow-other-keys)
903 (wrap-program (search-input-file outputs "bin/gnome-photos")
904 `("GRL_PLUGIN_PATH" =
905 (,(getenv "GRL_PLUGIN_PATH")))))))))
906 (native-inputs
907 (list dbus
908 desktop-file-utils
909 gettext-minimal
910 git-minimal
911 `(,glib "bin")
912 gobject-introspection
913 gsettings-desktop-schemas
914 itstool
915 pkg-config))
916 (inputs
917 (list babl
918 cairo
919 gegl
920 geocode-glib
921 gexiv2
922 gfbgraph
923 gnome-online-accounts
924 gnome-online-miners
925 grilo
926 grilo-plugins
927 gtk+
928 libdazzle
929 libgdata
930 libhandy
931 libjpeg-turbo
932 libportal
933 libpng
934 librsvg
935 python-pygobject
936 rest
937 tracker
938 tracker-miners))
939 (synopsis "Access, organize and share your photos on GNOME desktop")
940 (description "GNOME Photos is a simple and elegant replacement for using a
941 file manager to deal with photos. Enhance, crop and edit in a snap. Seamless
942 cloud integration is offered through GNOME Online Accounts.")
943 (home-page "https://wiki.gnome.org/Apps/Photos")
944 (license license:gpl3+)))
945
946 (define-public gnome-music
947 (package
948 (name "gnome-music")
949 (version "42.1")
950 (source
951 (origin
952 (method url-fetch)
953 (uri
954 (string-append "mirror://gnome/sources/" name "/"
955 (version-major version) "/"
956 name "-" version ".tar.xz"))
957 (sha256
958 (base32
959 "0w42xnp6xy3sfakb4s0wq7xfg7p507whz5gzss5b2mkbm2k7yx67"))))
960 (build-system meson-build-system)
961 (arguments
962 `(#:glib-or-gtk? #t
963 #:phases
964 (modify-phases %standard-phases
965 (add-after 'unpack 'skip-gtk-update-icon-cache
966 ;; Don't create 'icon-theme.cache'.
967 (lambda _
968 (substitute* "meson.build"
969 (("gtk_update_icon_cache: true")
970 "gtk_update_icon_cache: false"))))
971 (add-after 'install 'wrap-gnome-music
972 (lambda* (#:key inputs outputs #:allow-other-keys)
973 (let*
974 ((out (assoc-ref outputs "out"))
975 (pylib (string-append out "/lib/python"
976 ,(version-major+minor
977 (package-version python))
978 "/site-packages")))
979 (wrap-program (string-append out "/bin/gnome-music")
980 `("GI_TYPELIB_PATH" =
981 (,(getenv "GI_TYPELIB_PATH")))
982 `("GST_PLUGIN_SYSTEM_PATH" =
983 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
984 `("GRL_PLUGIN_PATH" =
985 (,(getenv "GRL_PLUGIN_PATH")))
986 `("GUIX_PYTHONPATH" =
987 (,(getenv "GUIX_PYTHONPATH") ,pylib)))))))))
988 (native-inputs
989 (list desktop-file-utils
990 gettext-minimal
991 `(,glib "bin")
992 gobject-introspection
993 itstool
994 pkg-config))
995 (inputs
996 (list gnome-online-accounts
997 grilo
998 grilo-plugins
999 gst-plugins-base
1000 gst-plugins-good
1001 gstreamer
1002 gtk
1003 gvfs
1004 json-glib
1005 libadwaita
1006 libdazzle
1007 libmediaart
1008 libsoup-minimal-2
1009 python-pycairo
1010 python-pygobject
1011 python
1012 tracker
1013 tracker-miners))
1014 (synopsis "Simple music player for GNOME desktop")
1015 (description "GNOME Music is the new GNOME music playing application that
1016 aims to combine an elegant and immersive browsing experience with simple
1017 and straightforward controls.")
1018 (home-page "https://wiki.gnome.org/Apps/Music")
1019 (license license:gpl2+)))
1020
1021 (define-public portablexdr
1022 (package
1023 (name "portablexdr")
1024 (version "4.9.1")
1025 (source
1026 (origin
1027 (method url-fetch)
1028 (uri
1029 (string-append "https://people.redhat.com/~rjones/" name "/files/"
1030 name "-" version ".tar.gz"))
1031 (sha256
1032 (base32
1033 "0b77ipvvi520nv7rr6jb1c3xryhc3m2mywhby7m48kfgag8vvx2w"))))
1034 (build-system gnu-build-system)
1035 (synopsis "External Data Representation Library")
1036 (description "PortableXDR is an implementation of External Data
1037 Representation (XDR) Library. It is a standard data serialization format, for
1038 uses such as computer network protocols. It allows data to be transferred
1039 between different kinds of computer systems.")
1040 (home-page "https://people.redhat.com/~rjones/portablexdr/")
1041 (license
1042 (list
1043 license:gpl2+
1044 license:lgpl2.1+))))
1045
1046 (define-public tepl
1047 (package
1048 (name "tepl")
1049 (version "6.1.2")
1050 (source
1051 (origin
1052 (method url-fetch)
1053 (uri
1054 (string-append "mirror://gnome/sources/" name "/"
1055 (version-major+minor version) "/"
1056 name "-" version ".tar.xz"))
1057 (sha256
1058 (base32
1059 "16x14j3nvsjj7jb2qmxpzygnlcy7sd7p6skv0sqshkwdlp4jxzha"))))
1060 (build-system meson-build-system)
1061 (arguments
1062 `(#:glib-or-gtk? #t
1063 #:phases (modify-phases %standard-phases
1064 (add-after 'unpack 'disable-problematic-tests
1065 (lambda _
1066 ;; Only keep unit tests, as the interactive tests have
1067 ;; other dependencies.
1068 (substitute* "tests/meson.build"
1069 ((".*'interactive-tests'.*") ""))))
1070 (add-before 'check 'start-xserver
1071 (lambda _
1072 (system "Xvfb :1 &")
1073 (setenv "DISPLAY" ":1"))))))
1074 (native-inputs
1075 (list `(,glib "bin")
1076 gobject-introspection
1077 gtk-doc
1078 libxml2
1079 pkg-config
1080 xorg-server-for-tests))
1081 (inputs
1082 (list uchardet))
1083 (propagated-inputs
1084 ;; These are all required by tepl6.pc.
1085 (list amtk
1086 glib
1087 gsettings-desktop-schemas
1088 gtk+
1089 gtksourceview-4))
1090 (synopsis "Text editor product line")
1091 (description "Tepl is a library that eases the development of
1092 GtkSourceView-based text editors and IDEs.")
1093 (home-page "https://wiki.gnome.org/Projects/Tepl")
1094 (license license:lgpl2.1+)))
1095
1096 (define-public krb5-auth-dialog
1097 (package
1098 (name "krb5-auth-dialog")
1099 (version "3.26.1")
1100 (source
1101 (origin
1102 (method url-fetch)
1103 (uri
1104 (string-append "mirror://gnome/sources/" name "/"
1105 (version-major+minor version) "/"
1106 name "-" version ".tar.xz"))
1107 (sha256
1108 (base32
1109 "1w91gsvmifqhiam3xqf88i5rk2w6qadjalmbvvamjdc37j0vdc6x"))))
1110 (build-system glib-or-gtk-build-system)
1111 (native-inputs
1112 (list intltool itstool libxml2 pkg-config python-wrapper))
1113 (inputs
1114 (list glib gtk+ libnotify mit-krb5 network-manager))
1115 (synopsis "Popup dialogs for Kerberos 5")
1116 (description "krb5-auth-dialog is a simple dialog that monitors Kerberos
1117 tickets, and pops up a dialog when they are about to expire.")
1118 (home-page "https://gitlab.gnome.org/GNOME/krb5-auth-dialog")
1119 (license license:gpl2+)))
1120
1121 (define-public notification-daemon
1122 (package
1123 (name "notification-daemon")
1124 (version "3.20.0")
1125 (source
1126 (origin
1127 (method url-fetch)
1128 (uri
1129 (string-append "mirror://gnome/sources/" name "/"
1130 (version-major+minor version) "/"
1131 name "-" version ".tar.xz"))
1132 (sha256
1133 (base32
1134 "1rgchqi4j2ll7d6a7lgy7id0w9rrkwkgic1096fbm2zx6n7pc4yx"))))
1135 (build-system glib-or-gtk-build-system)
1136 (native-inputs
1137 (list intltool pkg-config))
1138 (inputs
1139 (list glib gtk+ libx11))
1140 (synopsis "Notification Daemon for GNOME Desktop")
1141 (description "Notification-Daemon is the server implementation of the
1142 freedesktop.org desktop notification specification.")
1143 (home-page "https://wiki.gnome.org/Projects/NotificationDaemon")
1144 (license license:gpl2+)))
1145
1146 (define-public mm-common
1147 (package
1148 (name "mm-common")
1149 (version "1.0.3")
1150 (source (origin
1151 (method url-fetch)
1152 (uri (string-append "mirror://gnome/sources/mm-common/"
1153 (version-major+minor version) "/"
1154 "mm-common-" version ".tar.xz"))
1155 (sha256
1156 (base32
1157 "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
1158 (build-system meson-build-system)
1159 (arguments
1160 `(#:phases
1161 (modify-phases %standard-phases
1162 (add-after 'unpack 'patch
1163 (lambda* (#:key inputs #:allow-other-keys)
1164 (substitute* "util/mm-common-prepare.in"
1165 (("ln") (search-input-file inputs "/bin/ln"))
1166 (("cp") (search-input-file inputs "/bin/cp"))
1167 (("sed") (search-input-file inputs "/bin/sed"))
1168 (("cat") (search-input-file inputs "/bin/cat"))))))))
1169 (native-inputs
1170 `(("coreutils" ,coreutils)
1171 ("gettext" ,gettext-minimal)
1172 ("pkg-config" ,pkg-config)
1173 ("sed" ,sed)))
1174 (inputs
1175 (list python))
1176 (synopsis "Module of GNOME C++ bindings")
1177 (description "The mm-common module provides the build infrastructure
1178 and utilities shared among the GNOME C++ binding libraries. Release
1179 archives of mm-common include the Doxygen tag file for the GNU C++
1180 Library reference documentation.")
1181 (home-page "https://gitlab.gnome.org/GNOME/mm-common")
1182 (license license:gpl2+)))
1183
1184 (define-public phodav
1185 (package
1186 (name "phodav")
1187 (version "3.0")
1188 (source (origin
1189 (method url-fetch)
1190 (uri (string-append "mirror://gnome/sources/" name "/"
1191 (version-major+minor version) "/"
1192 name "-" version ".tar.xz"))
1193 (sha256
1194 (base32
1195 "1l9qs70yvwi9r8ph081mrsdy412kk0m9l9pgy77hsc2hdp8c4bir"))))
1196 (build-system meson-build-system)
1197 (arguments
1198 `(#:phases
1199 (modify-phases %standard-phases
1200 (add-after 'unpack 'fix-udev-rules-directory
1201 (lambda* (#:key outputs #:allow-other-keys)
1202 (let* ((out (assoc-ref outputs "out"))
1203 (rules (string-append out "/lib/udev/rules.d")))
1204 (substitute* "data/meson.build"
1205 (("udev\\.get_pkgconfig_variable\\('udevdir'\\)")
1206 (format #f "'~a'" rules))))))
1207 (add-before 'check 'set-temporary-home
1208 ;; Tests want to write into HOME.
1209 (lambda _
1210 (setenv "HOME" "/tmp"))))))
1211 (native-inputs
1212 (list docbook-xml-4.3
1213 gettext-minimal
1214 `(,glib "bin")
1215 gsettings-desktop-schemas
1216 gtk-doc/stable
1217 pkg-config))
1218 (inputs
1219 (list avahi
1220 libgudev
1221 libsoup))
1222 (synopsis "WebDav server implementation using libsoup")
1223 (description "PhoDav was initially developed as a file-sharing mechanism for Spice,
1224 but it is generic enough to be reused in other projects,
1225 in particular in the GNOME desktop.")
1226 (home-page "https://wiki.gnome.org/phodav")
1227 (license license:lgpl2.1+)))
1228
1229 (define-public gnome-color-manager
1230 (package
1231 (name "gnome-color-manager")
1232 (version "3.36.0")
1233 (source (origin
1234 (method url-fetch)
1235 (uri (string-append "mirror://gnome/sources/" name "/"
1236 (version-major+minor version) "/"
1237 name "-" version ".tar.xz"))
1238 (sha256
1239 (base32
1240 "0fxdng74d8hwhfx1nwl1i4jx9h9f6c2hkyc12f01kqbjcimrxnwx"))))
1241 (build-system meson-build-system)
1242 (arguments
1243 `(#:glib-or-gtk? #t
1244 #:phases
1245 (modify-phases %standard-phases
1246 (add-before
1247 'check 'pre-check
1248 (lambda _
1249 ;; Tests require a running X server.
1250 (system "Xvfb :1 &")
1251 (setenv "DISPLAY" ":1")
1252 #t)))))
1253 (native-inputs
1254 `(("desktop-file-utils" ,desktop-file-utils)
1255 ("gettext" ,gettext-minimal)
1256 ("glib:bin" ,glib "bin")
1257 ("gtk+:bin" ,gtk+ "bin")
1258 ("itstool" ,itstool)
1259 ("pkg-config" ,pkg-config)
1260 ("xorg-server" ,xorg-server-for-tests)))
1261 (inputs
1262 (list adwaita-icon-theme
1263 appstream-glib
1264 colord-gtk
1265 exiv2
1266 gnome-desktop
1267 libcanberra
1268 libexif
1269 libtiff
1270 libxrandr
1271 libxtst
1272 libxxf86vm
1273 vte
1274 xorgproto))
1275 (synopsis "Color profile manager for the GNOME desktop")
1276 (description "GNOME Color Manager is a session framework that makes
1277 it easy to manage, install and generate color profiles
1278 in the GNOME desktop.")
1279 (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
1280 (license license:gpl2+)))
1281
1282 (define-public gnome-online-miners
1283 (package
1284 (name "gnome-online-miners")
1285 (version "3.34.0")
1286 (source (origin
1287 (method url-fetch)
1288 (uri (string-append "mirror://gnome/sources/" name "/"
1289 (version-major+minor version) "/"
1290 name "-" version ".tar.xz"))
1291 (sha256
1292 (base32
1293 "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44"))
1294 (patches
1295 (search-patches
1296 "gnome-online-miners-tracker-3.patch"))))
1297 (build-system glib-or-gtk-build-system)
1298 (arguments
1299 `(#:phases
1300 (modify-phases %standard-phases
1301 (add-after 'unpack 'fix-configure
1302 (lambda _
1303 (substitute* "configure.ac"
1304 (("AX_CHECK_ENABLE_DEBUG.*")
1305 ""))))
1306 (add-after 'fix-configure 'autoreconf
1307 (lambda _
1308 (invoke "autoreconf" "-vif"))))))
1309 (native-inputs
1310 `(("autoconf" ,autoconf)
1311 ("automake" ,automake)
1312 ("gettext" ,gettext-minimal)
1313 ("glib:bin" ,glib "bin")
1314 ("gobject-introspection" ,gobject-introspection)
1315 ("gtk+:bin" ,gtk+ "bin")
1316 ("libtool" ,libtool)
1317 ("pkg-config" ,pkg-config)))
1318 (inputs
1319 `(("gnome-online-accounts" ,gnome-online-accounts)
1320 ("grilo" ,grilo)
1321 ("libgdata" ,libgdata)
1322 ("libgfbgraph" ,gfbgraph)
1323 ("libzapojit" ,libzapojit)
1324 ("rest" ,rest)
1325 ("tracker" ,tracker)))
1326 (synopsis "Web Crawlers for GNOME")
1327 (description "GNOME Online Miners provides a set of crawlers that
1328 go through your online content and index them locally in Tracker.
1329 It has miners for Facebook, Flickr, Google, ownCloud and SkyDrive.")
1330 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineMiners")
1331 (license license:gpl2+)))
1332
1333 (define-public gssdp
1334 (package
1335 (name "gssdp")
1336 (version "1.5.2")
1337 (source (origin
1338 (method url-fetch)
1339 (uri (string-append "mirror://gnome/sources/" name "/"
1340 (version-major+minor version) "/"
1341 name "-" version ".tar.xz"))
1342 (sha256
1343 (base32
1344 "07hn2xma2yh17v7rlvcaibkn16bx4l9qig3mlb8hdp6qfiraqh7b"))))
1345 (build-system meson-build-system)
1346 (native-inputs
1347 (list gettext-minimal
1348 `(,glib "bin")
1349 gi-docgen
1350 gobject-introspection
1351 pkg-config
1352 vala))
1353 (inputs
1354 (list gtk))
1355 (propagated-inputs
1356 ;; The .pc file "Requires" libsoup.
1357 (list libsoup))
1358 (synopsis "GObject-based API over @acronym{SSDP, Simple Service Discovery
1359 Protocol} for GNOME")
1360 (description "This package provides a library to handle resource discovery
1361 and announcement over @acronym{SSDP, Simple Service Discovery Protocol} and
1362 a debugging tool, @command{gssdp-device-sniffer}.")
1363 (home-page "https://gitlab.gnome.org/GNOME/gssdp")
1364 (license license:lgpl2.0+)))
1365
1366 (define-public gssdp-1.4
1367 (package
1368 (inherit gssdp)
1369 (name "gssdp")
1370 (version "1.4.0.1")
1371 (source (origin
1372 (method url-fetch)
1373 (uri (string-append "mirror://gnome/sources/" name "/"
1374 (version-major+minor version) "/"
1375 name "-" version ".tar.xz"))
1376 (sha256
1377 (base32
1378 "10hm8cgh2p8441xc83kswjgghrrqpzgblvc5523jp0pvayfq8xl6"))))
1379 (propagated-inputs (modify-inputs (package-propagated-inputs gssdp)
1380 (replace "libsoup" libsoup-minimal-2)))))
1381
1382 (define-public gupnp
1383 (package
1384 (name "gupnp")
1385 (version "1.5.4")
1386 (source (origin
1387 (method url-fetch)
1388 (uri (string-append "mirror://gnome/sources/" name "/"
1389 (version-major+minor version) "/"
1390 name "-" version ".tar.xz"))
1391 (sha256
1392 (base32
1393 "0y0v0m6afnx879hjvhj2lrawp9qhpyp8mbds0yp544imghajk0wq"))))
1394 (build-system meson-build-system)
1395 (arguments
1396 `(#:phases
1397 (modify-phases %standard-phases
1398 (add-before 'check 'pre-check
1399 (lambda _
1400 ;; Tests require a writable HOME.
1401 (setenv "HOME" (getcwd)))))))
1402 (native-inputs
1403 (list gettext-minimal
1404 `(,glib "bin")
1405 gobject-introspection
1406 gtk-doc/stable
1407 pkg-config
1408 vala))
1409 (propagated-inputs
1410 ;; These libraries are required by the .pc file.
1411 (list glib
1412 gsettings-desktop-schemas ;for ‘org.gnome.system.proxy’.
1413 gssdp
1414 libsoup
1415 libxml2))
1416 (synopsis "PnP API for GNOME")
1417 (description "This package provides GUPnP, an object-oriented framework
1418 for creating UPnP devices and control points, written in C using
1419 @code{GObject} and @code{libsoup}.")
1420 (home-page "https://gitlab.gnome.org/GNOME/gupnp")
1421 (license license:lgpl2.0+)))
1422
1423 (define-public gupnp-1.4
1424 (package
1425 (inherit gupnp)
1426 (name "gupnp")
1427 (version "1.4.0")
1428 (source (origin
1429 (method url-fetch)
1430 (uri (string-append "mirror://gnome/sources/" name "/"
1431 (version-major+minor version) "/"
1432 name "-" version ".tar.xz"))
1433 (sha256
1434 (base32
1435 "0vz3ifs8mi3zaz8zj8v27zfkf6xg82y39mcgqspa38jdp01gn3sr"))))
1436 (propagated-inputs (modify-inputs (package-propagated-inputs gupnp)
1437 (replace "libsoup" libsoup-minimal-2)
1438 (replace "gssdp" gssdp-1.4)))))
1439
1440 (define-public gupnp-dlna
1441 (package
1442 (name "gupnp-dlna")
1443 (version "0.10.5")
1444 (source (origin
1445 (method url-fetch)
1446 (uri (string-append "mirror://gnome/sources/" name "/"
1447 (version-major+minor version) "/"
1448 name "-" version ".tar.xz"))
1449 (sha256
1450 (base32
1451 "0spzd2saax7w776p5laixdam6d7smyynr9qszhbmq7f14y13cghj"))))
1452 (build-system gnu-build-system)
1453 (native-inputs
1454 (list gettext-minimal
1455 `(,glib "bin")
1456 gobject-introspection
1457 gtk-doc/stable
1458 libxml2
1459 pkg-config
1460 vala))
1461 (inputs
1462 (list gstreamer gupnp))
1463 (propagated-inputs
1464 (list gst-plugins-base gst-plugins-good))
1465 (synopsis "GUPnP DLNA for GNOME")
1466 (description "This package provides a small utility library to
1467 support DLNA-related tasks such as media profile guessing, transcoding to a
1468 given profile, etc. DLNA is a subset of UPnP A/V.")
1469 (home-page "https://gitlab.gnome.org/GNOME/gupnp-dlna")
1470 (license license:lgpl2.0+)))
1471
1472 (define-public gupnp-av
1473 (package
1474 (name "gupnp-av")
1475 (version "0.12.11")
1476 (source (origin
1477 (method url-fetch)
1478 (uri (string-append "mirror://gnome/sources/" name "/"
1479 (version-major+minor version) "/"
1480 name "-" version ".tar.xz"))
1481 (sha256
1482 (base32
1483 "1p3grslwqm9bc8rmpn4l48d7v9s84nina4r9xbd932dbj8acz7b8"))))
1484 (build-system gnu-build-system)
1485 (native-inputs
1486 (list gettext-minimal
1487 `(,glib "bin")
1488 gobject-introspection
1489 gtk-doc/stable
1490 libxml2
1491 pkg-config
1492 vala))
1493 (inputs
1494 (list gtk+ gupnp))
1495 (synopsis "GUPnP A/V for GNOME")
1496 (description "This package provides a small library for handling
1497 and implementation of UPnP A/V profiles.")
1498 (home-page "https://gitlab.gnome.org/GNOME/gupnp-av")
1499 (license license:lgpl2.0+)))
1500
1501 (define-public libmediaart
1502 (package
1503 (name "libmediaart")
1504 (version "1.9.5")
1505 (source (origin
1506 (method url-fetch)
1507 (uri (string-append "mirror://gnome/sources/" name "/"
1508 (version-major+minor version) "/"
1509 name "-" version ".tar.xz"))
1510 (sha256
1511 (base32
1512 "1mlw1qgj8nkd9ll6b6h54r1gfdy3zp8a8xqz7qfyfaj85jjgbph7"))))
1513 (build-system meson-build-system)
1514 (native-inputs
1515 (list `(,glib "bin") pkg-config))
1516 (inputs
1517 (list gdk-pixbuf gettext-minimal gobject-introspection
1518 `(,gtk+ "doc") vala))
1519 (synopsis "Media art library for the GNOME desktop")
1520 (description
1521 "The libmediaart library is the foundation for media art caching,
1522 extraction, and lookup for applications on the desktop.")
1523 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1524 (license license:lgpl2.1+)))
1525
1526 (define-public gnome-initial-setup
1527 (package
1528 (name "gnome-initial-setup")
1529 (version "42.2")
1530 (source (origin
1531 (method url-fetch)
1532 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1533 (version-major version)
1534 "/gnome-initial-setup-" version ".tar.xz"))
1535 (sha256
1536 (base32
1537 "0yxy39a7d2whphd0jskvra5q8zy4v7m7lziy5fxibgls4j5xk0sd"))))
1538 (build-system meson-build-system)
1539 (arguments
1540 (list
1541 #:configure-flags #~(list "-Dsystemd=false")
1542 #:glib-or-gtk? #t
1543 #:phases
1544 #~(modify-phases %standard-phases
1545 (add-after 'unpack 'set-gkbd-file-name
1546 (lambda* (#:key inputs #:allow-other-keys)
1547 ;; Allow the "Preview" button in the keyboard layout
1548 ;; selection dialog to display the layout.
1549 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1550 (("\"gkbd-keyboard-display")
1551 (string-append "\"" (search-input-file
1552 inputs
1553 "bin/gkbd-keyboard-display")))))))))
1554 (native-inputs
1555 (list gettext-minimal
1556 `(,glib "bin")
1557 gobject-introspection
1558 pkg-config))
1559 (inputs
1560 (list accountsservice
1561 cheese
1562 elogind
1563 gdm
1564 geoclue
1565 gnome-desktop
1566 gnome-online-accounts-3.44
1567 gstreamer
1568 ibus
1569 json-glib
1570 mit-krb5
1571 libgnomekbd
1572 libgweather4-with-libsoup2
1573 libhandy
1574 libnma
1575 libpwquality
1576 libsecret
1577 network-manager
1578 packagekit
1579 polkit
1580 rest
1581 upower
1582 webkitgtk-with-libsoup2))
1583 (synopsis "Initial setup wizard for GNOME desktop")
1584 (description "This package provides a set-up wizard when a
1585 user logs into GNOME for the first time. It typically provides a
1586 tour of all gnome components and allows the user to set them up.")
1587 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1588 (license license:gpl2)))
1589
1590 (define-public gnome-user-share
1591 (package
1592 (name "gnome-user-share")
1593 (version "3.34.0")
1594 (source (origin
1595 (method url-fetch)
1596 (uri (string-append "mirror://gnome/sources/" name "/"
1597 (version-major+minor version) "/"
1598 name "-" version ".tar.xz"))
1599 (sha256
1600 (base32
1601 "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x"))))
1602 (build-system meson-build-system)
1603 (arguments
1604 `(#:glib-or-gtk? #t
1605 #:meson ,meson-0.60
1606 #:configure-flags
1607 `("-Dsystemduserunitdir=/tmp/empty"
1608 ;; Enable nautilus extension for file sharing.
1609 "-Dnautilus_extension=true")))
1610 (native-inputs
1611 `(("gettext" ,gettext-minimal)
1612 ("glib:bin" ,glib "bin")
1613 ("gobject-introspection" ,gobject-introspection)
1614 ("gtk+:bin" ,gtk+ "bin")
1615 ("pkg-config" ,pkg-config)
1616 ("yelp-tools" ,yelp-tools)))
1617 (inputs
1618 (list glib
1619 gnome-bluetooth
1620 gtk+
1621 libcanberra
1622 libnotify
1623 nautilus)) ; For nautilus extension.
1624 (synopsis "File sharing for GNOME desktop")
1625 (description "GNOME User Share is a small package that binds together
1626 various free software projects to bring easy to use user-level file
1627 sharing to the masses.")
1628 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1629 (license license:gpl2+)))
1630
1631 (define-public sushi
1632 (package
1633 (name "sushi")
1634 (version "42.0")
1635 (source (origin
1636 (method url-fetch)
1637 (uri (string-append "mirror://gnome/sources/" name "/"
1638 (version-major version) "/"
1639 name "-" version ".tar.xz"))
1640 (sha256
1641 (base32
1642 "0848gidl0ab8i5pa70mv8jzchmd9kqa8sn1lg977hyasyixdpn25"))))
1643 (build-system meson-build-system)
1644 (arguments
1645 `(#:glib-or-gtk? #t
1646 #:phases
1647 (modify-phases %standard-phases
1648 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1649 (lambda* (#:key outputs #:allow-other-keys)
1650 (let ((prog (string-append (assoc-ref outputs "out")
1651 "/bin/sushi")))
1652 ;; Put existing typelibs before sushi's deps, so as to
1653 ;; correctly infer gdk-pixbuf.
1654 (wrap-program prog
1655 `("GI_TYPELIB_PATH" suffix
1656 (,(getenv "GI_TYPELIB_PATH"))))))))))
1657 (native-inputs
1658 (list `(,glib "bin")
1659 gettext-minimal
1660 gobject-introspection
1661 pkg-config))
1662 (inputs
1663 (list bash-minimal
1664 clutter
1665 clutter-gst
1666 clutter-gtk
1667 evince ; For file previewing.
1668 freetype
1669 gdk-pixbuf
1670 gjs
1671 gst-plugins-base
1672 gstreamer
1673 gtksourceview-4
1674 harfbuzz
1675 libepoxy
1676 libmusicbrainz
1677 libxml2
1678 neon
1679 webkitgtk))
1680 (synopsis "File previewer for the GNOME desktop")
1681 (description "Sushi is a DBus-activated service that allows applications
1682 to preview files on the GNOME desktop.")
1683 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1684 (license license:gpl2+)))
1685
1686 (define-public rygel
1687 (package
1688 (name "rygel")
1689 (version "0.40.4")
1690 (source (origin
1691 (method url-fetch)
1692 (uri (string-append "mirror://gnome/sources/" name "/"
1693 (version-major+minor version) "/"
1694 name "-" version ".tar.xz"))
1695 (sha256
1696 (base32
1697 "12rl1bgvwbdmnhva57b22q7d2pwqvi2rizygiyy6qpv1x3dqlvbk"))))
1698 (build-system meson-build-system)
1699 (arguments
1700 ;; Disable the tracker plugin.
1701 '(#:configure-flags
1702 (list "-Dplugins=external,gst-launch,lms,media-export,
1703 mpris,playbin,ruih,tracker3")))
1704 (native-inputs
1705 (list gettext-minimal
1706 `(,glib "bin") ; for glib-compile-schemas, etc.
1707 gobject-introspection
1708 gtk-doc/stable
1709 pkg-config
1710 python
1711 vala
1712 docbook-xml
1713 docbook-xsl
1714 libxslt))
1715 (inputs
1716 (list gdk-pixbuf
1717 gssdp
1718 gstreamer
1719 gst-plugins-base
1720 gst-editing-services
1721 gtk+
1722 gupnp
1723 gupnp-av
1724 gupnp-dlna
1725 json-glib
1726 libgee
1727 libmediaart
1728 libsoup
1729 libxslt
1730 libunistring
1731 tracker))
1732 (synopsis "Share audio, video, and pictures with other devices")
1733 (description
1734 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1735 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1736 pictures, and to control a media player on your home network.
1737
1738 Rygel achieves interoperability with other devices by trying to conform to the
1739 strict requirements of DLNA and by converting media on-the-fly to formats that
1740 client devices can handle.")
1741 (home-page "https://wiki.gnome.org/Projects/Rygel")
1742 (license (list
1743 ;; For logo (data/icons/*).
1744 license:cc-by-sa3.0
1745 ;; For all others.
1746 license:lgpl2.1+))))
1747
1748 (define-public libnma
1749 (package
1750 (name "libnma")
1751 (version "1.10.2")
1752 (source (origin
1753 (method url-fetch)
1754 (uri (string-append "mirror://gnome/sources/" name "/"
1755 (version-major+minor version) "/"
1756 name "-" version ".tar.xz"))
1757 (sha256
1758 (base32
1759 "0h095a26w3sgbspsf7wzz8ddg62j3jb9ckrrv41k7cdp0k2dkhsg"))))
1760 (build-system meson-build-system)
1761 (arguments
1762 `(#:configure-flags (list "-Dlibnma_gtk4=true")
1763 #:phases
1764 (modify-phases %standard-phases
1765 (add-after 'unpack 'patch-docbook-xml
1766 (lambda* (#:key inputs #:allow-other-keys)
1767 (substitute* "libnma-docs.xml"
1768 (("http://.*/docbookx\\.dtd")
1769 (search-input-file
1770 inputs "xml/dtd/docbook/docbookx.dtd"))))))))
1771 (native-inputs
1772 (list docbook-xml-4.3
1773 gettext-minimal
1774 `(,glib "bin")
1775 gtk-doc/stable
1776 gobject-introspection
1777 pkg-config
1778 vala))
1779 (inputs
1780 (list gcr
1781 gtk
1782 iso-codes
1783 mobile-broadband-provider-info
1784 network-manager))
1785 (synopsis "Network Manager's applet library")
1786 (description "Libnma is an applet library for Network Manager. It was
1787 initially part of network-manager-applet and has now become a separate
1788 project.")
1789 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1790 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1791 ;; "LGPL-2.1+".
1792 (license license:gpl2+)))
1793
1794 (define-public gnome-menus
1795 (package
1796 (name "gnome-menus")
1797 (version "3.36.0")
1798 (source (origin
1799 (method url-fetch)
1800 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1801 (version-major+minor version) "/"
1802 name "-" version ".tar.xz"))
1803 (sha256
1804 (base32
1805 "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r"))))
1806 (build-system gnu-build-system)
1807 (native-inputs
1808 (list gettext-minimal glib pkg-config))
1809 (synopsis "Menu support for GNOME desktop")
1810 (description "GNOME Menus contains the libgnome-menu library, the layout
1811 configuration files for the GNOME menu, as well as a simple menu editor.")
1812 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1813 (license license:lgpl2.0+)))
1814
1815 (define-public deja-dup
1816 (package
1817 (name "deja-dup")
1818 (version "43.4")
1819 (source (origin
1820 (method url-fetch)
1821 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1822 version "/deja-dup-" version ".tar.bz2"))
1823 (sha256
1824 (base32
1825 "1mr2g009w0zm5rj8dg1k77c7zdwylih2yszm8vh8wkw6al6bzfh3"))))
1826 (build-system meson-build-system)
1827 (arguments
1828 `(#:glib-or-gtk? #t
1829 #:configure-flags
1830 (list
1831 ;; Otherwise, the RUNPATH will lack the final path component.
1832 (string-append "-Dc_link_args=-Wl,-rpath="
1833 (assoc-ref %outputs "out") "/lib/deja-dup"))
1834 #:phases
1835 (modify-phases %standard-phases
1836 (add-after 'unpack 'patch-paths
1837 (lambda* (#:key inputs #:allow-other-keys)
1838 (let ((python (assoc-ref inputs "python")))
1839 (substitute* '("libdeja/duplicity/DuplicityInstance.vala"
1840 "libdeja/tests/scripts/instance-error.test")
1841 (("/bin/rm")
1842 (which "rm")))
1843 (substitute* "libdeja/tests/runner.vala"
1844 (("/bin/sh")
1845 (which "sh")))
1846 (substitute* "libdeja/tests/scripts/instance-error.test"
1847 (("`which python3`")
1848 (string-append python "/bin/python3"))))))
1849 (add-after 'unpack 'patch-libgpg-error
1850 (lambda* (#:key inputs #:allow-other-keys)
1851 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1852 (substitute* "meson.build"
1853 (("(gpgerror_libs = ).*" _ var)
1854 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))))
1855 (add-after 'install 'wrap-program
1856 (lambda* (#:key inputs outputs #:allow-other-keys)
1857 ;; Add duplicity to the search path
1858 (wrap-program (string-append (assoc-ref outputs "out")
1859 "/bin/deja-dup")
1860 `("PATH" ":" prefix
1861 (,(string-append (assoc-ref inputs "duplicity") "/bin")))))))))
1862 (inputs
1863 (list bash-minimal
1864 duplicity
1865 gsettings-desktop-schemas
1866 gtk
1867 json-glib
1868 libadwaita
1869 libgpg-error
1870 libnotify
1871 libsecret
1872 libsoup
1873 libhandy
1874 packagekit
1875 python
1876 python-pygobject))
1877 (native-inputs
1878 (list appstream-glib
1879 desktop-file-utils
1880 gettext-minimal
1881 `(,glib "bin") ;for glib-compile-schemas
1882 gobject-introspection
1883 `(,gtk "bin") ;for gtk-update-icon-cache
1884 itstool
1885 pkg-config
1886 vala))
1887 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1888 (synopsis "Simple backup tool, for regular encrypted backups")
1889 (description
1890 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1891 uses duplicity as the backend, which supports incremental backups and storage
1892 either on a local, or remote machine via a number of methods.")
1893 (license license:gpl3+)))
1894
1895 (define-public gnome-commander
1896 (package
1897 (name "gnome-commander")
1898 (version "1.14.3")
1899 (source
1900 (origin
1901 (method url-fetch)
1902 (uri (string-append "mirror://gnome/sources/" name "/"
1903 (version-major+minor version) "/"
1904 "gnome-commander-" version ".tar.xz"))
1905 (sha256
1906 (base32 "0yzx9slg632iflw9p96nlh9i50dhacq7hrzpkj8b48mr1zkxrn3q"))))
1907 (build-system glib-or-gtk-build-system)
1908 (native-inputs
1909 (list desktop-file-utils
1910 flex
1911 gettext-minimal
1912 `(,glib "bin")
1913 gobject-introspection
1914 googletest
1915 intltool
1916 itstool
1917 libtool
1918 pkg-config))
1919 (inputs
1920 (list gconf glib gtk+-2 libxml2))
1921 (home-page "https://gcmd.github.io/")
1922 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1923 (description
1924 "GNOME Commander is a two-pane graphical file manager using GNOME
1925 libraries. It aims to fulfill the demands of more advanced users who
1926 like to focus on file management, their work through special applications
1927 and running smart commands.")
1928 (license license:gpl2+)))
1929
1930 (define-public gnome-user-docs
1931 (package
1932 (name "gnome-user-docs")
1933 (version "42.0")
1934 (source
1935 (origin
1936 (method url-fetch)
1937 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1938 (version-major version)
1939 "/gnome-user-docs-" version ".tar.xz"))
1940 (sha256
1941 (base32 "01g9smkk2sj3yrih2wjn6vx9av855n7w6nqf9wpxvfq086h7vcmj"))))
1942 (build-system gnu-build-system)
1943 (native-inputs
1944 (list gettext-minimal itstool pkg-config libxml2))
1945 (synopsis "User documentation for the GNOME desktop")
1946 (description
1947 "The GNOME User Documentation explains how to use the GNOME desktop and its
1948 components. It covers usage and setup of the core GNOME programs by end-users
1949 and system administrators.")
1950 (home-page "https://live.gnome.org/DocumentationProject")
1951 (license license:cc-by3.0)))
1952
1953 (define-public dia
1954 ;; This version from GNOME's repository includes fixes for compiling with
1955 ;; recent versions of the build tools. The latest activity on the
1956 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1957 ;; fixes since.
1958 (let ((commit "0997887d97f01be28bf3886dfd3e2002de437930")
1959 (revision "3"))
1960 (package
1961 (name "dia")
1962 (version (git-version "0.97.3" revision commit))
1963 (source (origin
1964 (method git-fetch)
1965 (uri (git-reference
1966 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1967 (commit commit)))
1968 (file-name (git-file-name name version))
1969 (sha256
1970 (base32
1971 "199b4n1jydg1g9lnz0r8xx67h7s2ac2lfj89zp015lbs0qqfkmsh"))))
1972 (build-system meson-build-system)
1973 ;; XXX: Parallel builds may cause: [74/566] [...]
1974 ;; fatal error: dia-lib-enums.h: No such file or directory
1975 (arguments '(#:parallel-build? #f))
1976 (inputs
1977 (list graphene
1978 gtk+-2
1979 libxml2
1980 libxslt
1981
1982 ;; XXX: PDF plugin fails to build with poppler 21.07.0.
1983 ;; poppler
1984
1985 python))
1986 (native-inputs
1987 (list appstream-glib docbook-xsl
1988 `(,glib "bin") gettext-minimal pkg-config))
1989 (home-page "https://wiki.gnome.org/Apps/Dia")
1990 (synopsis "Diagram creation for GNOME")
1991 (description "Dia can be used to draw different types of diagrams, and
1992 includes support for UML static structure diagrams (class diagrams), entity
1993 relationship modeling, and network diagrams. The program supports various file
1994 formats like PNG, SVG, PDF and EPS.")
1995 (license license:gpl2+))))
1996
1997 (define-public libgdata
1998 (package
1999 (name "libgdata")
2000 (version "0.18.1")
2001 (source (origin
2002 (method url-fetch)
2003 (uri (string-append "mirror://gnome/sources/" name "/"
2004 (version-major+minor version) "/"
2005 name "-" version ".tar.xz"))
2006 (sha256
2007 (base32
2008 "1iq4d1qy0vkmy29xvr13dgz4pxvn5v3yi2swryld0ajinvp951fx"))))
2009 (build-system meson-build-system)
2010 (arguments
2011 '(#:phases
2012 (modify-phases %standard-phases
2013 (add-before 'check 'set-home-for-tests
2014 (lambda _
2015 (setenv "HOME" "/tmp"))))))
2016 (native-inputs
2017 `(("glib:bin" ,glib "bin")
2018 ("gobject-introspection" ,gobject-introspection)
2019 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2020 ("intltool" ,intltool)
2021 ("pkg-config" ,pkg-config)
2022 ("uhttpmock" ,uhttpmock)))
2023 (inputs
2024 (list cyrus-sasl glib-networking vala))
2025 (propagated-inputs
2026 `(("gcr" ,gcr)
2027 ("glib" ,glib)
2028 ("gnome-online-accounts" ,gnome-online-accounts)
2029 ("json-glib" ,json-glib)
2030 ("liboauth" ,liboauth)
2031 ("libsoup" ,libsoup-minimal-2)
2032 ("libxml2" ,libxml2)))
2033 (home-page "https://wiki.gnome.org/Projects/libgdata")
2034 (synopsis "Library for accessing online service APIs")
2035 (description
2036 "libgdata is a GLib-based library for accessing online service APIs using
2037 the GData protocol — most notably, Google's services. It provides APIs to
2038 access the common Google services, and has full asynchronous support.")
2039 (license license:lgpl2.1+)))
2040
2041 (define-public libgxps
2042 (package
2043 (name "libgxps")
2044 (version "0.3.2")
2045 (source (origin
2046 (method url-fetch)
2047 (uri (string-append "mirror://gnome/sources/" name "/"
2048 (version-major+minor version) "/"
2049 name "-" version ".tar.xz"))
2050 (sha256
2051 (base32
2052 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
2053 (build-system meson-build-system)
2054 (native-inputs
2055 (list gobject-introspection pkg-config))
2056 (inputs
2057 (list gtk+ libjpeg-turbo lcms libtiff))
2058 (propagated-inputs
2059 ;; In Requires of libgxps.pc.
2060 (list cairo glib libarchive))
2061 (home-page "https://wiki.gnome.org/Projects/libgxps")
2062 (synopsis "GObject-based library for handling and rendering XPS documents")
2063 (description
2064 "libgxps is a GObject-based library for handling and rendering XPS
2065 documents. This package also contains binaries that can convert XPS documents
2066 to other formats.")
2067 (license license:lgpl2.1+)))
2068
2069 (define-public gnome-characters
2070 (package
2071 (name "gnome-characters")
2072 (version "42.0")
2073 (source
2074 (origin
2075 (method url-fetch)
2076 (uri (string-append "mirror://gnome/sources/"
2077 "gnome-characters/" (version-major version)
2078 "/gnome-characters-" version ".tar.xz"))
2079 (sha256
2080 (base32
2081 "1y40g7k7yyzikbbxhf69q4c0221lga1cli1p617v99pq2swgz82x"))))
2082 (build-system meson-build-system)
2083 (arguments
2084 (list
2085 #:glib-or-gtk? #t
2086 #:phases #~(modify-phases %standard-phases
2087 (add-after 'unpack 'disable-gtk-update-icon-cache
2088 (lambda _
2089 (setenv "DESTDIR" "/")))
2090 (add-after 'install 'wrap
2091 (lambda* (#:key outputs #:allow-other-keys)
2092 ;; GNOME Characters needs Typelib files from GTK and
2093 ;; gnome-desktop.
2094 (wrap-program (search-input-file outputs
2095 "bin/gnome-characters")
2096 `("GI_TYPELIB_PATH" ":" prefix
2097 (,(getenv "GI_TYPELIB_PATH")))))))))
2098 (native-inputs
2099 (list gettext-minimal
2100 `(,glib "bin")
2101 pkg-config
2102 python-minimal))
2103 (inputs
2104 (list gjs
2105 gnome-desktop
2106 gtk
2107 libadwaita
2108 libhandy
2109 libunistring))
2110 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2111 (synopsis "Find and insert unusual characters")
2112 (description "Characters is a simple utility application to find
2113 and insert unusual characters. It allows you to quickly find the
2114 character you are looking for by searching for keywords.")
2115 (license license:bsd-3)))
2116
2117 (define-public gnome-common
2118 (package
2119 (name "gnome-common")
2120 (version "3.18.0")
2121 (source
2122 (origin
2123 (method url-fetch)
2124 (uri (string-append "mirror://gnome/sources/" name "/"
2125 (version-major+minor version) "/"
2126 name "-" version ".tar.xz"))
2127 (sha256
2128 (base32
2129 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2130 (build-system gnu-build-system)
2131 (home-page "https://www.gnome.org/")
2132 (synopsis "Bootstrap GNOME modules built from Git")
2133 (description "gnome-common contains various files needed to bootstrap
2134 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2135 can be used to configure a source directory checked out from Git and some
2136 commonly used macros.")
2137 (license license:gpl2+)))
2138
2139 (define-public gnome-contacts
2140 (package
2141 (name "gnome-contacts")
2142 (version "42.0")
2143 (source (origin
2144 (method url-fetch)
2145 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2146 (version-major version) "/"
2147 name "-" version ".tar.xz"))
2148 (sha256
2149 (base32
2150 "05jj5kiab13crm18r166w7h31jpny7f3px98q7d2ix93vj7w60l8"))))
2151 (build-system meson-build-system)
2152 (arguments
2153 `(#:glib-or-gtk? #t
2154 #:phases
2155 (modify-phases %standard-phases
2156 (add-after 'unpack 'skip-gtk-update-icon-cache
2157 (lambda _
2158 (substitute* "meson.build"
2159 (("gtk_update_icon_cache: true")
2160 "gtk_update_icon_cache: false")))))))
2161 (native-inputs
2162 (list desktop-file-utils
2163 docbook-xml
2164 docbook-xml-4.2
2165 docbook-xsl
2166 gettext-minimal
2167 `(,glib "bin")
2168 gobject-introspection
2169 libxslt
2170 pkg-config))
2171 (inputs
2172 (list evolution-data-server-3.44
2173 gnome-desktop
2174 gnome-online-accounts-3.44
2175 gst-plugins-base
2176 gtk
2177 libadwaita
2178 libgee
2179 libhandy
2180 libportal
2181 telepathy-glib
2182 vala))
2183 (propagated-inputs
2184 (list folks-with-libsoup2
2185 telepathy-mission-control))
2186 (synopsis "GNOME's integrated address book")
2187 (description
2188 "GNOME Contacts organizes your contact information from online and
2189 offline sources, providing a centralized place for managing your contacts.")
2190 (home-page "https://wiki.gnome.org/Apps/Contacts")
2191 (license license:gpl2+)))
2192
2193 (define-public gnome-desktop
2194 (package
2195 (name "gnome-desktop")
2196 (version "42.4")
2197 (source
2198 (origin
2199 (method url-fetch)
2200 (uri (string-append "mirror://gnome/sources/" name "/"
2201 (version-major version) "/"
2202 name "-" version ".tar.xz"))
2203 (sha256
2204 (base32
2205 "09ddr5fzhh02fcn7xl1wy18qfsdqryd5msl2nbhdnsbr0vawkqhw"))))
2206 (build-system meson-build-system)
2207 (arguments
2208 '(#:phases
2209 (modify-phases %standard-phases
2210 (add-before 'configure 'patch-path
2211 (lambda* (#:key inputs #:allow-other-keys)
2212 (substitute* "libgnome-desktop/gnome-languages.c"
2213 (("\"locale\"")
2214 (format #f "~s" (search-input-file inputs "bin/locale"))))))
2215 (add-before 'configure 'patch-bubblewrap
2216 (lambda* (#:key inputs #:allow-other-keys)
2217 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2218 (("\"bwrap\",")
2219 (string-append "\"" (which "bwrap") "\","))
2220 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2221 (string-append "\"--ro-bind\", \""
2222 (%store-directory)
2223 "\", \""
2224 (%store-directory)
2225 "\","))
2226 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",")
2227 ""))))
2228 (add-before 'check 'pre-check
2229 (lambda* (#:key inputs #:allow-other-keys)
2230 ;; Tests require a running X server and locales.
2231 (system "Xvfb :1 &")
2232 (setenv "DISPLAY" ":1")
2233 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
2234 (setenv "XDG_CONFIG_HOME" "/tmp")
2235 (setenv "GUIX_LOCPATH"
2236 (search-input-directory inputs
2237 "lib/locale")))))))
2238 (native-inputs
2239 (list `(,glib "bin") ;for gdbus-codegen
2240 glibc-locales ;for tests
2241 gobject-introspection
2242 itstool
2243 intltool
2244 pkg-config
2245 libxml2
2246 xorg-server-for-tests))
2247 (propagated-inputs
2248 ;; Required by gnome-desktop-3.0.pc.
2249 (list gsettings-desktop-schemas-next
2250 gtk
2251 gtk+
2252 iso-codes
2253 libseccomp
2254 libx11
2255 xkeyboard-config))
2256 (inputs
2257 (list bubblewrap
2258 gdk-pixbuf
2259 glib
2260 libxext
2261 libxkbfile
2262 libxrandr))
2263 (home-page "https://www.gnome.org/")
2264 (synopsis
2265 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2266 (description
2267 "The libgnome-desktop library provides API shared by several applications
2268 on the desktop, but that cannot live in the platform for various reasons.
2269 There is no API or ABI guarantee, although we are doing our best to provide
2270 stability. Documentation for the API is available with gtk-doc.
2271
2272 The gnome-about program helps find which version of GNOME is installed.")
2273 ; Some bits under the LGPL.
2274 (license license:gpl2+)))
2275
2276 (define-public gnome-disk-utility
2277 (package
2278 (name "gnome-disk-utility")
2279 (version "42.0")
2280 (source (origin
2281 (method url-fetch)
2282 (uri (string-append "mirror://gnome/sources/" name "/"
2283 (version-major version) "/"
2284 name "-" version ".tar.xz"))
2285 (sha256
2286 (base32
2287 "02q906gn420xbf1f0apazryzqfv5b1ammz1vrci66hk79m2n8r8v"))))
2288 (build-system meson-build-system)
2289 (arguments
2290 `(#:configure-flags '("-Dlogind=libelogind")
2291 #:phases
2292 (modify-phases %standard-phases
2293 (add-after 'unpack 'skip-gtk-update-icon-cache
2294 ;; Don't create 'icon-theme.cache'.
2295 (lambda _
2296 (substitute* "meson_post_install.py"
2297 (("gtk-update-icon-cache") "true")))))))
2298 (native-inputs
2299 (list docbook-xml
2300 docbook-xsl
2301 `(,glib "bin")
2302 gettext-minimal
2303 pkg-config
2304 libxml2
2305 libxslt))
2306 (inputs
2307 (list elogind
2308 glib
2309 appstream-glib
2310 gnome-settings-daemon
2311 gtk+
2312 libcanberra
2313 libdvdread
2314 libhandy
2315 libnotify
2316 libpwquality
2317 libsecret
2318 udisks))
2319 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2320 (synopsis "Disk management utility for GNOME")
2321 (description "Disk management utility for GNOME.")
2322 (license license:gpl2+)))
2323
2324 (define-public gnome-font-viewer
2325 (package
2326 (name "gnome-font-viewer")
2327 (version "42.0")
2328 (source (origin
2329 (method url-fetch)
2330 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2331 (version-major version)
2332 "/gnome-font-viewer-" version ".tar.xz"))
2333 (sha256
2334 (base32
2335 "1k4dhk5dmkpxb5xpr9vrl7k2fdpi2fidzni1l2hhb891zzgvi8ng"))))
2336 (build-system meson-build-system)
2337 (arguments
2338 (list
2339 #:phases
2340 #~(modify-phases %standard-phases
2341 (add-after 'unpack 'patch-post-install-script
2342 (lambda _
2343 (substitute* "meson-postinstall.sh"
2344 (("update-desktop-database") (which "true")))))
2345 (add-after 'install 'patch-thumbnailer
2346 (lambda* (#:key outputs #:allow-other-keys)
2347 (substitute*
2348 (search-input-file
2349 outputs "share/thumbnailers/gnome-font-viewer.thumbnailer")
2350 (("gnome-thumbnail-font")
2351 (search-input-file outputs "bin/gnome-thumbnail-font"))))))))
2352 (native-inputs
2353 (list gettext-minimal
2354 `(,glib "bin")
2355 pkg-config))
2356 (inputs
2357 (list glib
2358 gnome-desktop
2359 gtk
2360 libadwaita
2361 libhandy
2362 libxml2))
2363 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2364 (synopsis "GNOME Fonts")
2365 (description "Application to show you the fonts installed on your computer
2366 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2367 the font would look under various sizes.")
2368 (license license:gpl2+)))
2369
2370 (define-public gcr
2371 (package
2372 (name "gcr")
2373 (version "3.41.1")
2374 (source (origin
2375 (method url-fetch)
2376 (uri (string-append "mirror://gnome/sources/" name "/"
2377 (version-major+minor version) "/"
2378 name "-" version ".tar.xz"))
2379 (sha256
2380 (base32
2381 "0kx2pv272p0qc0nq1287gciyn34d95yxg41vq3lzxfzyqaijhwdv"))))
2382 (build-system meson-build-system)
2383 (arguments
2384 (list
2385 #:phases
2386 #~(modify-phases %standard-phases
2387 (add-after 'unpack 'remove-fatal-warnings-option
2388 ;; Otherwise, the gi-docgen tool would fail because of the
2389 ;; "Fontconfig error: No writable cache directories" warnings.
2390 (lambda _
2391 (substitute* (find-files "." "^meson\\.build$")
2392 ((".*'--fatal-warnings',.*") ""))))
2393 (add-after 'unpack 'skip-gtk-update-icon-cache
2394 ;; Don't create 'icon-theme.cache'.
2395 (lambda _
2396 (substitute* "meson_post_install.py"
2397 (("gtk-update-icon-cache") "true"))))
2398 (add-before 'check 'pre-check
2399 (lambda _
2400 ;; Some tests expect to write to $HOME.
2401 (setenv "HOME" "/tmp")))
2402 (replace 'check
2403 (lambda* (#:key parallel-tests? tests? #:allow-other-keys)
2404 (when tests?
2405 (setenv "MESON_TESTTHREADS"
2406 (if parallel-tests?
2407 (number->string (parallel-job-count))
2408 "1"))
2409 ;; Work around the "mock prompter couldn't get session bus
2410 ;; address: Cannot spawn a message bus without a machine-id"
2411 ;; error by manually creating the session bus via
2412 ;; 'dbus-run-session'.
2413 (invoke "dbus-run-session" "--"
2414 "meson" "test" "-t" "0")))))))
2415 (inputs
2416 (list dbus
2417 gnupg
2418 libgcrypt
2419 libsecret))
2420 (native-inputs
2421 (list gettext-minimal
2422 gi-docgen
2423 `(,glib "bin")
2424 gobject-introspection
2425 gtk-doc
2426 libxml2
2427 libxslt
2428 openssh
2429 pkg-config
2430 python-wrapper
2431 vala))
2432 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2433 (propagated-inputs
2434 (list glib
2435 gtk+
2436 p11-kit))
2437 (home-page "https://www.gnome.org")
2438 (synopsis "Libraries for displaying certificates and accessing key stores")
2439 (description
2440 "The GCR package contains libraries used for displaying certificates and
2441 accessing key stores. It also provides the viewer for crypto files on the
2442 GNOME Desktop.")
2443 (license license:lgpl2.1+)))
2444
2445 (define-public gdl
2446 (package
2447 (name "gdl")
2448 (version "3.34.0")
2449 (source (origin
2450 (method git-fetch)
2451 (uri (git-reference
2452 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2453 (commit (string-append "GDL_" (string-map (match-lambda
2454 (#\. #\_)
2455 (c c))
2456 version)))))
2457 (file-name (git-file-name name version))
2458 (sha256
2459 (base32
2460 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2461 (build-system gnu-build-system)
2462 (native-inputs
2463 (list autoconf
2464 automake
2465 `(,glib "bin") ; for glib-genmarshal, etc.
2466 gnome-common
2467 gtk-doc/stable
2468 intltool
2469 pkg-config
2470 libtool
2471 which))
2472 (inputs
2473 (list libxml2))
2474 (propagated-inputs
2475 ;; The gdl-3.0.pc file 'Requires' GTK+.
2476 (list gtk+))
2477 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2478 (synopsis "GNOME docking library")
2479 (description "This library provides docking features for gtk+.")
2480 (license license:lgpl2.1+)))
2481
2482 ;;; A minimal variant used to break a cycle with Inkscape.
2483 (define-public gdl-minimal
2484 (package/inherit gdl
2485 (name "gdl-minimal")
2486 (arguments
2487 '(#:phases
2488 (modify-phases %standard-phases
2489 (add-after 'unpack 'disable-doc-generation
2490 ;; XXX: There is no easy way to disable generating the
2491 ;; documentation.
2492 (lambda _
2493 (substitute* "configure.in"
2494 (("GTK_DOC_CHECK.*") "")
2495 (("docs/.*") ""))
2496 (substitute* "Makefile.am"
2497 (("gdl docs po") "gdl po"))
2498 #t)))))
2499 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2500
2501 (define-public libgnome-keyring
2502 (package
2503 (name "libgnome-keyring")
2504 (version "3.12.0")
2505 (source (origin
2506 (method url-fetch)
2507 (uri (string-append "mirror://gnome/sources/" name "/"
2508 (version-major+minor version) "/"
2509 name "-" version ".tar.xz"))
2510 (sha256
2511 (base32
2512 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2513 (build-system gnu-build-system)
2514 (inputs
2515 (list libgcrypt dbus))
2516 (native-inputs
2517 (list pkg-config
2518 `(,glib "bin") intltool))
2519 (propagated-inputs
2520 ;; Referred to in .h files and .pc.
2521 (list glib))
2522 (home-page "https://www.gnome.org")
2523 (synopsis "Accessing passwords from the GNOME keyring")
2524 (description
2525 "Client library to access passwords from the GNOME keyring.")
2526
2527 ;; Though a couple of files are LGPLv2.1+.
2528 (license license:lgpl2.0+)))
2529
2530 (define-public gnome-keyring
2531 (package
2532 (name "gnome-keyring")
2533 (version "42.1")
2534 (source (origin
2535 (method url-fetch)
2536 (uri (string-append "mirror://gnome/sources/" name "/"
2537 (version-major version) "/"
2538 name "-" version ".tar.xz"))
2539 (sha256
2540 (base32
2541 "1rp38v4s9116ivycp27w806wihqid48gk3p0czzbg9knri0d1x67"))))
2542 (build-system gnu-build-system)
2543 (arguments
2544 (list
2545 #:configure-flags
2546 #~(list
2547 (string-append "--with-pkcs11-config="
2548 #$output "/share/p11-kit/modules/")
2549 (string-append "--with-pkcs11-modules="
2550 #$output "/share/p11-kit/modules/"))
2551 #:phases
2552 #~(modify-phases %standard-phases
2553 (add-after 'unpack 'fix-/bin/sh-reference
2554 (lambda _
2555 (substitute* "po/Makefile.in.in"
2556 (("/bin/sh") (which "sh")))))
2557 (delete 'check)
2558 (add-after 'install 'check
2559 (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
2560 (when tests?
2561 (setenv "HOME" "/tmp") ;some tests require a writable HOME
2562 (setenv "XDG_DATA_DIRS" (string-append (getenv "XDG_DATA_DIRS")
2563 ":" #$output "/share"))
2564 (invoke "dbus-run-session" "make" "check" "-j"
2565 (if parallel-tests?
2566 (number->string (parallel-job-count))
2567 "1"))))))))
2568 (inputs
2569 (list dbus
2570 gcr
2571 libgcrypt
2572 linux-pam
2573 openssh))
2574 (native-inputs
2575 (list dbus ;for tests
2576 docbook-xml-4.3
2577 docbook-xml
2578 docbook-xsl
2579 gettext-minimal
2580 `(,glib "bin")
2581 glib ;for m4 macros
2582 libxml2 ;for XML_CATALOG_FILES
2583 libxslt ;for documentation
2584 pkg-config
2585 python-wrapper)) ;for tests
2586 (propagated-inputs
2587 (list gcr))
2588 (home-page "https://www.gnome.org")
2589 (synopsis "Daemon to store passwords and encryption keys")
2590 (description
2591 "@command{gnome-keyring} is a program that keeps passwords and other
2592 secrets for users. It is run as a daemon in the session, similar to
2593 @command{ssh-agent}, and other applications locate it via an environment
2594 variable or D-Bus.
2595
2596 The program can manage several keyrings, each with its own master password,
2597 and there is also a session keyring which is never stored to disk, but
2598 forgotten when the session ends.")
2599 (license license:lgpl2.1+)))
2600
2601 (define-public evince
2602 (package
2603 (name "evince")
2604 (version "42.3")
2605 (source (origin
2606 (method url-fetch)
2607 (uri "mirror://gnome/sources/evince/42/evince-42.3.tar.xz")
2608 (sha256
2609 (base32
2610 "0pk42icnf4kdcaqaj17mcf4sxi82h1fdg2ds2zdrcv4lbj2czbj9"))))
2611 (build-system meson-build-system)
2612 (arguments
2613 `(#:glib-or-gtk? #t
2614 #:build-type "release"
2615 #:configure-flags '("-Dnautilus=false")
2616 #:phases
2617 (modify-phases %standard-phases
2618 (add-after 'unpack 'skip-gtk-update-icon-cache
2619 ;; Don't create 'icon-theme.cache'.
2620 (lambda _
2621 (substitute* "meson_post_install.py"
2622 (("gtk-update-icon-cache") "true")))))))
2623 (inputs
2624 (list libarchive
2625 libgxps
2626 libspectre
2627 djvulibre
2628 ghostscript
2629 poppler
2630 libtiff
2631 texlive-libkpathsea ; for DVI support
2632 gnome-desktop
2633 gsettings-desktop-schemas
2634 gspell
2635 libgnome-keyring
2636 adwaita-icon-theme
2637 gdk-pixbuf
2638 atk
2639 pango
2640 gtk+
2641 glib
2642 libxml2
2643 libsm
2644 libice
2645 shared-mime-info
2646 dconf
2647 libcanberra
2648 libsecret
2649 libhandy))
2650 (native-inputs
2651 (list itstool
2652 gettext-minimal
2653 gi-docgen
2654 `(,glib "bin")
2655 gobject-introspection
2656 pkg-config
2657 libxml2))
2658 (home-page " https://wiki.gnome.org/Apps")
2659 (synopsis "GNOME's document viewer")
2660 (description
2661 "Evince is a document viewer for multiple document formats. It
2662 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2663 of Evince is to replace the multiple document viewers that exist
2664 on the GNOME Desktop with a single simple application.")
2665 (license license:gpl2+)))
2666
2667 (define-public gsettings-desktop-schemas
2668 (package
2669 (name "gsettings-desktop-schemas")
2670 (version "41.0")
2671 (source
2672 (origin
2673 (method url-fetch)
2674 (uri (string-append "mirror://gnome/sources/" name "/"
2675 (version-major version) "/"
2676 name "-" version ".tar.xz"))
2677 (sha256
2678 (base32
2679 "1v9jagk679m01nji0acirynxinziv036618c7xc49l4nwmr9ja3p"))))
2680 (build-system meson-build-system)
2681 (arguments
2682 `(#:phases (modify-phases %standard-phases
2683 (add-after 'unpack 'patch-schemas
2684 (lambda* (#:key inputs #:allow-other-keys)
2685 (substitute* (find-files "schemas"
2686 "\\.gschema\\.xml\\.in$")
2687 ;; Provide the correct file name of the default
2688 ;; GNOME background, 'adwaita-timed.xml'.
2689 (("@datadir@/backgrounds/gnome")
2690 (search-input-directory inputs
2691 "/share/backgrounds/gnome"))
2692 ;; Do not reference fonts, that may not exist.
2693 (("'Source Code Pro 10'") "'Monospace 11'")))))))
2694 (inputs (list glib gnome-backgrounds))
2695 (native-inputs (list gettext-minimal
2696 `(,glib "bin") ;glib-compile-schemas, etc.
2697 gobject-introspection
2698 pkg-config
2699 python)) ;for build-aux/meson/post-install.py
2700 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2701 (synopsis "GNOME settings for various desktop components")
2702 (description "Gsettings-desktop-schemas contains a collection of GSettings
2703 schemas for settings shared by various components of the GNOME desktop.")
2704 (license license:lgpl2.1+)))
2705
2706 (define-public gsettings-desktop-schemas-next
2707 (package
2708 (inherit gsettings-desktop-schemas)
2709 (name "gsettings-desktop-schemas-next") ;to avoid propagation conflicts
2710 (version "42.0")
2711 (source
2712 (origin
2713 (method url-fetch)
2714 (uri (string-append "mirror://gnome/sources/" name "/"
2715 (version-major version) "/"
2716 name "-" version ".tar.xz"))
2717 (sha256
2718 (base32
2719 "1li3fcqwnw20f4j0i21i88fygm0hli8gmzkn4apgf8ynkrd371k6"))))))
2720
2721 (define-public python-liblarch
2722 (package
2723 (name "python-liblarch")
2724 (version "3.0.1")
2725 (source
2726 (origin
2727 (method git-fetch)
2728 (uri (git-reference
2729 (url "https://github.com/getting-things-gnome/liblarch")
2730 (commit (string-append "v" version))))
2731 (file-name (git-file-name name version))
2732 (sha256
2733 (base32 "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m"))))
2734 (build-system python-build-system)
2735 (arguments
2736 `(#:phases
2737 (modify-phases %standard-phases
2738 (add-before 'check 'start-xserver
2739 (lambda* (#:key inputs #:allow-other-keys)
2740 (system (format #f "~a/bin/Xvfb :1 &"
2741 (assoc-ref inputs "xorg-server")))
2742 (setenv "DISPLAY" ":1")
2743 #t)))))
2744 (native-inputs
2745 (list xorg-server-for-tests))
2746 (inputs
2747 (list gtk+))
2748 (propagated-inputs
2749 (list python-pygobject))
2750 (home-page "https://wiki.gnome.org/Projects/liblarch")
2751 (synopsis "Library to easily handle complex data structures")
2752 (description
2753 "Liblarch is a Python library built to easily handle data structures such
2754 as lists, trees and acyclic graphs. There's also a GTK binding that will
2755 allow you to use your data structure in a @code{Gtk.Treeview}.
2756
2757 Liblarch support multiple views of one data structure and complex filtering.
2758 That way, you have a clear separation between your data themselves (Model)
2759 and how they are displayed (View).")
2760 (license license:lgpl3+)))
2761
2762 (define-public gtg
2763 (package
2764 (name "gtg")
2765 (version "0.5")
2766 (source
2767 (origin
2768 (method git-fetch)
2769 (uri (git-reference
2770 (url "https://github.com/getting-things-gnome/gtg")
2771 (commit (string-append "v" version))))
2772 (file-name (git-file-name name version))
2773 (sha256
2774 (base32 "0b2slm7kjq6q8c7v4m7aqc8m1ynjxn3bl7445srpv1xc0dilq403"))))
2775 (build-system meson-build-system)
2776 (arguments
2777 `(#:glib-or-gtk? #t
2778 #:phases
2779 (modify-phases %standard-phases
2780 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2781 (lambda* (#:key outputs #:allow-other-keys)
2782 (let ((prog (string-append (assoc-ref outputs "out")
2783 "/bin/gtg"))
2784 (pylib (string-append (assoc-ref outputs "out")
2785 "/lib/python"
2786 ,(version-major+minor
2787 (package-version python))
2788 "/site-packages")))
2789 (wrap-program prog
2790 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
2791 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
2792 #t))))))
2793 (native-inputs
2794 `(("desktop-file-utils" ,desktop-file-utils)
2795 ("gettext" ,gettext-minimal)
2796 ("glib:bin" ,glib "bin")
2797 ("gobject-introspection" ,gobject-introspection)
2798 ("gtk+:bin" ,gtk+ "bin")
2799 ("pkg-config" ,pkg-config)))
2800 (inputs
2801 (list librsvg
2802 gsettings-desktop-schemas
2803 gtk+
2804 pango
2805 python-dbus
2806 python-liblarch
2807 python-lxml
2808 python-pycairo
2809 python-pygobject
2810 python-pyxdg))
2811 (home-page "https://wiki.gnome.org/Apps/GTG")
2812 (synopsis "Personal organizer for the GNOME desktop")
2813 (description
2814 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2815 organizer for the GNOME desktop environment inspired by the Getting Things
2816 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2817 and ease of use in mind so it can be used as more than just GTD software.
2818 GTG is intended to help you track everything you need to do and need to
2819 know, from small tasks to large projects.")
2820 (license license:gpl3+)))
2821
2822 (define-public icon-naming-utils
2823 (package
2824 (name "icon-naming-utils")
2825 (version "0.8.90")
2826 (source
2827 (origin
2828 (method url-fetch)
2829 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2830 version ".tar.bz2"))
2831 (sha256
2832 (base32
2833 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2834 (build-system gnu-build-system)
2835 (inputs
2836 (list perl perl-xml-simple))
2837 (arguments
2838 '(#:phases
2839 (modify-phases %standard-phases
2840 (add-after 'install 'set-load-paths
2841 ;; Tell 'icon-name-mapping' where XML::Simple is.
2842 (lambda* (#:key outputs #:allow-other-keys)
2843 (let* ((out (assoc-ref outputs "out"))
2844 (prog (string-append out "/libexec/icon-name-mapping")))
2845 (wrap-program
2846 prog
2847 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2848 #t)))))
2849 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2850 (synopsis
2851 "Utility to implement the Freedesktop Icon Naming Specification")
2852 (description
2853 "To help with the transition to the Freedesktop Icon Naming
2854 Specification, the icon naming utility maps the icon names used by the
2855 GNOME and KDE desktops to the icon names proposed in the specification.")
2856 (license license:lgpl2.1+)))
2857
2858 (define-public adwaita-icon-theme
2859 (package
2860 (name "adwaita-icon-theme")
2861 (version "42.0")
2862 (source (origin
2863 (method url-fetch)
2864 (uri (string-append "mirror://gnome/sources/" name "/"
2865 (version-major version) "/"
2866 name "-" version ".tar.xz"))
2867 (sha256
2868 (base32
2869 "1q5i31zd5jzr12p6vn831afwnzbzf6x73wna1y86drnyr2nvb1ay"))))
2870 (build-system gnu-build-system)
2871 (arguments
2872 (list #:make-flags
2873 ;; Don't create 'icon-theme.cache'.
2874 #~(list "GTK_UPDATE_ICON_CACHE=")))
2875 (native-inputs
2876 ;; The following requires the SVG pixbuf loader, provided by librsvg,
2877 ;; available on x86_64 only.
2878 `(,@(if (target-64bit?)
2879 `((,gtk+ "bin")) ;for gtk-encode-symbolic-svg
2880 '())))
2881 (home-page "https://gitlab.gnome.org/GNOME/adwaita-icon-theme")
2882 (synopsis "GNOME icon theme")
2883 (description "Icons for the GNOME desktop.")
2884 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2885
2886 (define-public gnome-icon-theme
2887 (deprecated-package "gnome-icon-theme" adwaita-icon-theme))
2888
2889 (define-public tango-icon-theme
2890 (package
2891 (name "tango-icon-theme")
2892 (version "0.8.90")
2893 (source (origin
2894 (method url-fetch)
2895 (uri (string-append "http://tango.freedesktop.org/releases/"
2896 "tango-icon-theme-" version ".tar.bz2"))
2897 (sha256
2898 (base32
2899 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2900 (build-system gnu-build-system)
2901 (native-inputs
2902 (list icon-naming-utils intltool imagemagick pkg-config))
2903 (home-page "http://tango-project.org/")
2904 (synopsis "Tango icon theme")
2905 (description "This is an icon theme that follows the Tango visual
2906 guidelines.")
2907 (license license:public-domain)))
2908
2909 (define-public shared-mime-info
2910 (package
2911 (name "shared-mime-info")
2912 (version "1.15")
2913 (source (origin
2914 (method url-fetch)
2915 (uri (string-append
2916 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2917 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2918 ".tar.xz"))
2919 (sha256
2920 (base32
2921 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2922 (build-system gnu-build-system)
2923 (arguments
2924 ;; The build system appears not to be parallel-safe.
2925 '(#:parallel-build? #f))
2926 (inputs
2927 (list glib libxml2))
2928 (native-inputs
2929 `(("gettext" ,gettext-minimal)
2930 ("itstool" ,itstool)
2931 ("pkg-config" ,pkg-config)))
2932 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2933 (synopsis "Database of common MIME types")
2934 (description
2935 "The shared-mime-info package contains the core database of common types
2936 and the update-mime-database command used to extend it. It requires glib2 to
2937 be installed for building the update command. Additionally, it uses intltool
2938 for translations, though this is only a dependency for the maintainers. This
2939 database is translated at Transifex.")
2940 (license license:gpl2+)))
2941
2942 (define-public system-config-printer
2943 (package
2944 (name "system-config-printer")
2945 (version "1.5.16")
2946 (source
2947 (origin
2948 (method url-fetch)
2949 (uri (string-append
2950 "https://github.com/OpenPrinting/system-config-printer/releases/"
2951 "download/v" version
2952 "/system-config-printer-" version ".tar.xz"))
2953 (sha256
2954 (base32 "1z9pvgifj5c87csnqz10qybbcayh3ak9m606f63ifkvyjh4q9jnb"))))
2955 (build-system glib-or-gtk-build-system)
2956 (arguments
2957 (list
2958 #:imported-modules `((guix build python-build-system)
2959 ,@%glib-or-gtk-build-system-modules)
2960 #:phases
2961 #~(modify-phases %standard-phases
2962 (add-after 'unpack 'patch-build-files
2963 (lambda _
2964 (substitute* "configure.ac"
2965 (("AC_INIT.*" all)
2966 (string-append all "\nAC_CONFIG_MACRO_DIR([m4])\n"))
2967 ;; XXX: AX macros appear unavailable
2968 (("AX_REQUIRE_DEFINED.*") ""))
2969 ;; The Makefile generates some scripts, so set a valid shebang
2970 (substitute* "Makefile.am"
2971 (("/bin/bash") (which "bash")))
2972 (delete-file "configure")))
2973 (add-after 'unpack 'patch-docbook-xml
2974 (lambda* (#:key inputs #:allow-other-keys)
2975 ;; Modify the man XML otherwise xmlto tries to access the network
2976 (substitute* "man/system-config-printer.xml"
2977 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2978 (string-append (assoc-ref inputs "docbook-xml")
2979 "/xml/dtd/docbook/")))))
2980 (add-after 'install 'add-install-to-pythonpath
2981 (@@ (guix build python-build-system) add-install-to-pythonpath))
2982 (add-after 'add-install-to-pythonpath 'wrap-for-python
2983 (@@ (guix build python-build-system) wrap))
2984 (add-after 'install 'wrap
2985 (lambda* (#:key outputs #:allow-other-keys)
2986 (let ((out (assoc-ref outputs "out"))
2987 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2988 (for-each
2989 (lambda (program)
2990 (wrap-program program
2991 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2992 (map (lambda (name)
2993 (string-append out "/bin/" name))
2994 '("system-config-printer"
2995 "system-config-printer-applet"
2996 "install-printerdriver"
2997 "scp-dbus-service")))))))))
2998 (inputs
2999 (list gsettings-desktop-schemas
3000 gobject-introspection
3001 python
3002 cups
3003 gtk+
3004 python-dbus
3005 python-pygobject
3006 python-pycups
3007 python-requests
3008 python-pycairo
3009 libnotify
3010 packagekit))
3011 (native-inputs
3012 (list pkg-config
3013 desktop-file-utils
3014 glib
3015 autoconf
3016 automake
3017 gettext-minimal
3018 xmlto
3019 docbook-xml-4.1.2
3020 docbook-xsl
3021 libxml2))
3022 (home-page "https://github.com/zdohnal/system-config-printer")
3023 (synopsis "CUPS administration tool")
3024 (description
3025 "system-config-printer is a CUPS administration tool. It's written in
3026 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
3027 configuring CUPS.")
3028 (license license:gpl2+)))
3029
3030 (define-public hicolor-icon-theme
3031 (package
3032 (name "hicolor-icon-theme")
3033 (version "0.17")
3034 (source
3035 (origin
3036 (method url-fetch)
3037 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3038 "hicolor-icon-theme-" version ".tar.xz"))
3039 (sha256
3040 (base32
3041 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3042 (build-system gnu-build-system)
3043 (arguments
3044 `(#:tests? #f)) ; no check target
3045 (home-page "https://icon-theme.freedesktop.org/releases/")
3046 (synopsis
3047 "Freedesktop icon theme")
3048 (description
3049 "Freedesktop icon theme.")
3050 (license license:gpl2)))
3051
3052 (define-public libnotify
3053 (package
3054 (name "libnotify")
3055 (version "0.7.9")
3056 (source
3057 (origin
3058 (method url-fetch)
3059 (uri (string-append "mirror://gnome/sources/" name "/"
3060 (version-major+minor version) "/"
3061 name "-" version ".tar.xz"))
3062 (sha256
3063 (base32
3064 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3065 (build-system meson-build-system)
3066 (arguments
3067 `(#:phases
3068 (modify-phases %standard-phases
3069 (add-after 'unpack 'fix-docbook
3070 (lambda* (#:key inputs #:allow-other-keys)
3071 ;; Don't attempt to download XSL schema.
3072 (substitute* "meson.build"
3073 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3074 /manpages/docbook.xsl")
3075 (string-append (assoc-ref inputs "docbook-xsl")
3076 "/xml/xsl/docbook-xsl-"
3077 ,(package-version docbook-xsl)
3078 "/manpages/docbook.xsl")))
3079 #t)))))
3080 (propagated-inputs
3081 (list ;; In Requires of libnotify.pc.
3082 gdk-pixbuf glib))
3083 (inputs
3084 (list gtk+ libpng))
3085 (native-inputs
3086 `(("pkg-config" ,pkg-config)
3087 ("glib" ,glib "bin")
3088 ("gobject-introspection" ,gobject-introspection)
3089
3090 ;; For the documentation.
3091 ("gtk-doc" ,gtk-doc/stable)
3092 ("xsltproc" ,libxslt)
3093 ("docbook-xsl" ,docbook-xsl)))
3094 (home-page "https://developer-next.gnome.org/libnotify/")
3095 (synopsis
3096 "GNOME desktop notification library")
3097 (description
3098 "Libnotify is a library that sends desktop notifications to a
3099 notification daemon, as defined in the Desktop Notifications spec. These
3100 notifications can be used to inform the user about an event or display
3101 some form of information without getting in the user's way.")
3102 (license license:lgpl2.1+)))
3103
3104 (define-public libpeas
3105 (package
3106 (name "libpeas")
3107 (version "1.30.0")
3108 (source
3109 (origin
3110 (method url-fetch)
3111 (uri (string-append "mirror://gnome/sources/" name "/"
3112 (version-major+minor version) "/"
3113 name "-" version ".tar.xz"))
3114 (sha256
3115 (base32
3116 "18xrk1c1ixlhkmykcfiafrl2am470ws687xqvjlq40zwkcp5dx8b"))))
3117 (build-system meson-build-system)
3118 (arguments
3119 '(#:phases
3120 (modify-phases %standard-phases
3121 (add-before 'check 'start-xserver
3122 (lambda* (#:key inputs #:allow-other-keys)
3123 (let ((xorg-server (assoc-ref inputs "xorg-server"))
3124 (disp ":1"))
3125 (setenv "DISPLAY" disp)
3126 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
3127 (setenv "XDG_CONFIG_HOME" "/tmp")
3128 ;; Tests require a running X server.
3129 (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))
3130 #t))))))
3131 (inputs
3132 (list gtk+ glade3 python python-pygobject))
3133 (native-inputs
3134 `(("pkg-config" ,pkg-config)
3135 ("gettext" ,gettext-minimal)
3136 ("glib:bin" ,glib "bin")
3137 ("gobject-introspection" ,gobject-introspection)
3138 ("xorg-server" ,xorg-server-for-tests)))
3139 (propagated-inputs
3140 ;; The .pc file "Requires" gobject-introspection.
3141 (list gobject-introspection))
3142 (home-page "https://wiki.gnome.org/Libpeas")
3143 (synopsis "GObject plugin system")
3144 (description
3145 "Libpeas is a gobject-based plugin engine, targeted at giving every
3146 application the chance to assume its own extensibility. It also has a set of
3147 features including, but not limited to: multiple extension points; on-demand
3148 (lazy) programming language support for C, Python and JS; simplicity of the
3149 API.")
3150 (license license:lgpl2.0+)))
3151
3152 (define-public gtkglext
3153 (package
3154 (name "gtkglext")
3155 (version "1.2.0")
3156 (source (origin
3157 (method url-fetch)
3158 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3159 version "/gtkglext-" version ".tar.gz"))
3160 (sha256
3161 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3162 (patches (search-patches
3163 "gtkglext-disable-disable-deprecated.patch"))))
3164 (build-system gnu-build-system)
3165 (arguments
3166 `(#:phases
3167 (modify-phases %standard-phases
3168 ;; Fix a collision between a local variable and a definition from
3169 ;; glibc's string.h.
3170 (add-after 'unpack 'fix-collision
3171 (lambda _
3172 (substitute* "gdk/gdkglshapes.c"
3173 ((" index") " triangle_index"))
3174 #t)))))
3175 (inputs (list gtk+-2 mesa glu libx11 libxt))
3176 (native-inputs (list pkg-config
3177 `(,glib "bin")))
3178 (propagated-inputs (list pangox-compat))
3179 (home-page "https://projects.gnome.org/gtkglext")
3180 (synopsis "OpenGL extension to GTK+")
3181 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3182 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3183 API add-ons to make GTK+ widgets OpenGL-capable.")
3184 (license license:lgpl2.1+)))
3185
3186 (define-public glade3
3187 (package
3188 (name "glade")
3189 (version "3.40.0")
3190 (source (origin
3191 (method url-fetch)
3192 (uri (string-append "mirror://gnome/sources/" name "/"
3193 (version-major+minor version) "/"
3194 name "-" version ".tar.xz"))
3195 (sha256
3196 (base32
3197 "171x7vshhw0nqgnhkcaqfylpr5qrmhclwmkva6wjm5s9m2pavj9i"))))
3198 (build-system meson-build-system)
3199 (arguments
3200 (list
3201 #:meson meson-0.60
3202 #:phases
3203 #~(modify-phases %standard-phases
3204 (add-after 'unpack 'skip-gtk-update-icon-cache
3205 ;; Don't create 'icon-theme.cache'.
3206 (lambda _
3207 (substitute* "meson_post_install.py"
3208 (("gtk-update-icon-cache") "true"))))
3209
3210 #$@(if (this-package-input "gjs")
3211 '()
3212 '((add-after 'unpack 'skip-gjs-test
3213 (lambda _
3214 ;; When the optional dependency on GJS is missing, skip
3215 ;; the GJS plugin tests.
3216 (substitute* "tests/modules.c"
3217 (("g_test_add.*JavaScript.*" all)
3218 (string-append "// " all "\n")))
3219 (delete-file "tests/catalogs/gjsplugin.xml")))))
3220 (add-before 'check 'pre-check
3221 (lambda _
3222 (setenv "HOME" "/tmp")
3223 ;; Tests require a running X server.
3224 (system "Xvfb :1 &")
3225 (setenv "DISPLAY" ":1"))))))
3226 (inputs
3227 (append
3228 ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
3229 ;; dependency on other platforms (FIXME).
3230 (if (target-x86-64?)
3231 (list gjs)
3232 '())
3233 (list gtk+ libxml2)))
3234 (native-inputs
3235 (list docbook-xml-4.2
3236 docbook-xsl
3237 gettext-minimal
3238 `(,glib "bin")
3239 gobject-introspection
3240 hicolor-icon-theme
3241 itstool
3242 libxml2 ;for XML_CATALOG_FILES
3243 libxslt ;for xsltproc
3244 python
3245 python-pygobject
3246 pkg-config
3247 xorg-server-for-tests))
3248 (home-page "https://glade.gnome.org")
3249 (synopsis "GTK+ rapid application development tool")
3250 (description "Glade is a rapid application development (RAD) tool to
3251 enable quick & easy development of user interfaces for the GTK+ toolkit and
3252 the GNOME desktop environment.")
3253 (license license:lgpl2.0+)
3254 (native-search-paths (list (search-path-specification
3255 (variable "GLADE_CATALOG_SEARCH_PATH")
3256 (files '("share/glade/catalogs")))
3257 (search-path-specification
3258 (variable "GLADE_MODULE_SEARCH_PATH")
3259 (files '("lib/glade/modules")))))))
3260
3261 (define-public blueprint-compiler
3262 (let ((commit "87cedc2c7e48b01dc1b07aef937e2fe02111b18c"))
3263 (package
3264 (name "blueprint-compiler")
3265 (version "0.2.0")
3266 (source (origin
3267 (method git-fetch)
3268 (uri (git-reference
3269 (url
3270 "https://gitlab.gnome.org/jwestman/blueprint-compiler")
3271 (commit commit)))
3272 (file-name (string-append name "-" commit "-checkout"))
3273 (sha256
3274 (base32
3275 "1mrj5dyjf5d325yc28fpph588qfsz6bm2nx5nnsgcv02bagplxid"))))
3276 (build-system meson-build-system)
3277 (native-inputs (list gobject-introspection gtk))
3278 (inputs (list python))
3279 (synopsis "Template markup language")
3280 (description
3281 "Blueprint is a markup language for GTK user interfaces. Internally, it
3282 compiles to GTKBuilder XML.")
3283 (home-page "https://gitlab.gnome.org/jwestman/blueprint-compiler")
3284 (license license:lgpl3+))))
3285
3286 (define-public cambalache
3287 (package
3288 (name "cambalache")
3289 (version "0.10.2")
3290 (source (origin
3291 (method git-fetch)
3292 (uri (git-reference
3293 (url "https://gitlab.gnome.org/jpu/cambalache")
3294 (commit version)))
3295 (file-name (git-file-name name version))
3296 (sha256
3297 (base32 "1mw5gk98zx03yal3p8slaqwhwkc9p2vnh0cssnmg6ivxsjscqhgz"))))
3298 (build-system meson-build-system)
3299 (arguments
3300 (list
3301 #:glib-or-gtk? #t
3302 #:imported-modules `((guix build python-build-system)
3303 ,@%meson-build-system-modules)
3304 #:modules '((guix build meson-build-system)
3305 ((guix build python-build-system) #:prefix python:)
3306 (guix build utils))
3307 #:phases
3308 #~(modify-phases %standard-phases
3309 (add-after 'unpack 'patch-source
3310 (lambda* (#:key inputs #:allow-other-keys)
3311 (substitute* "cambalache/cmb_view.py"
3312 (("GLib\\.find_program_in_path\\('(.*)'\\)" all cmd)
3313 (string-append "'"
3314 (search-input-file inputs
3315 (string-append "/bin/" cmd))
3316 "'")))))
3317 (add-after 'unpack 'patch-build
3318 (lambda _
3319 (substitute* "postinstall.py"
3320 (("update-desktop-database") "true"))))
3321 (add-after 'wrap 'python-wrap (assoc-ref python:%standard-phases 'wrap))
3322 (delete 'check)
3323 (add-after 'install 'add-install-to-pythonpath
3324 (assoc-ref python:%standard-phases 'add-install-to-pythonpath))
3325 (add-after 'add-install-to-pythonpath 'pre-check
3326 (lambda _
3327 (system "Xvfb :1 &")
3328 (setenv "DISPLAY" ":1")))
3329 (add-after 'pre-check 'check
3330 (lambda* (#:key tests? #:allow-other-keys)
3331 (when tests?
3332 (with-directory-excursion ".."
3333 (invoke "python3" "-m" "pytest")))))
3334 (add-after 'glib-or-gtk-wrap 'wrap-typelib
3335 (lambda* (#:key outputs #:allow-other-keys)
3336 (let ((out (assoc-ref outputs "out")))
3337 (for-each
3338 (lambda (prog)
3339 (unless (wrapped-program? prog)
3340 (wrap-program prog
3341 `("GI_TYPELIB_PATH" suffix
3342 (,(string-append out "/lib/girepository-1.0")
3343 ,(getenv "GI_TYPELIB_PATH")))
3344 ;; icons and schemas
3345 `("XDG_DATA_DIRS" suffix
3346 #$(map
3347 (lambda (input)
3348 (file-append (this-package-input input) "/share"))
3349 '("adwaita-icon-theme" "hicolor-icon-theme"
3350 "gsettings-desktop-schemas")))
3351 ;; Wrapping GDK_PIXBUF_MODULE_FILE allows Cambalache to
3352 ;; load its own icons in pure environments.
3353 `("GDK_PIXBUF_MODULE_FILE" =
3354 (,(getenv "GDK_PIXBUF_MODULE_FILE"))))))
3355 (find-files (string-append out "/bin")))))))))
3356 (inputs (list bash-minimal
3357 adwaita-icon-theme hicolor-icon-theme
3358 gsettings-desktop-schemas
3359 gtk
3360 `(,gtk+ "bin") ; broadwayd
3361 `(,gtk "bin")
3362 libadwaita
3363 libhandy
3364 (librsvg-for-system)
3365 python python-pygobject python-lxml
3366 webkitgtk-with-libsoup2))
3367 (native-inputs (list `(,glib "bin") gobject-introspection
3368 gettext-minimal pkg-config
3369 python-pytest xorg-server-for-tests))
3370 (home-page "https://gitlab.gnome.org/jpu/cambalache")
3371 (synopsis "Rapid application development tool")
3372 (description "Cambalache is a rapid application development (RAD) tool for
3373 Gtk 4 and 3 with a clear model-view-controller (MVC) design and
3374 data model first philosophy.")
3375 (license (list license:lgpl2.1
3376 license:gpl2)))) ; tools
3377
3378 (define-public libcroco
3379 (package
3380 (name "libcroco")
3381 (version "0.6.13")
3382 (source (origin
3383 (method url-fetch)
3384 (uri (string-append "mirror://gnome/sources/" name "/"
3385 (version-major+minor version) "/"
3386 name "-" version ".tar.xz"))
3387 (patches (search-patches "libcroco-CVE-2020-12825.patch"))
3388 (sha256
3389 (base32
3390 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3391 (build-system gnu-build-system)
3392 (native-inputs
3393 (list pkg-config))
3394 (inputs
3395 (list glib libxml2 zlib))
3396 (home-page "https://github.com/GNOME/libcroco")
3397 (synopsis "CSS2 parsing and manipulation library")
3398 (description
3399 "Libcroco is a standalone CSS2 parsing and manipulation library.
3400 The parser provides a low level event driven SAC-like API and a CSS object
3401 model like API. Libcroco provides a CSS2 selection engine and an experimental
3402 XML/CSS rendering engine.")
3403
3404 ;; LGPLv2.1-only.
3405 (license license:lgpl2.1)))
3406
3407 (define-public libgsf
3408 (package
3409 (name "libgsf")
3410 (version "1.14.50")
3411 (source (origin
3412 (method url-fetch)
3413 (uri (string-append "mirror://gnome/sources/" name "/"
3414 (version-major+minor version) "/"
3415 name "-" version ".tar.xz"))
3416 (sha256
3417 (base32
3418 "0llf5rpg2rg9pdz8j38dl5z82zi9kmsn639wb2fhcfc3fz820v3f"))))
3419 (build-system glib-or-gtk-build-system)
3420 (outputs '("out" "bin" "doc"))
3421 (arguments
3422 (list
3423 #:configure-flags
3424 #~(list
3425 "--disable-static"
3426 "--enable-introspection"
3427 (string-append "--with-gir-dir=" #$output
3428 "/share/gir-"
3429 #$(version-major
3430 (package-version gobject-introspection))
3431 ".0")
3432 (string-append "--with-typelib-dir=" #$output
3433 "/lib/girepository-"
3434 #$(version-major
3435 (package-version gobject-introspection))
3436 ".0")
3437 (string-append "--with-html-dir=" #$output
3438 "/share/gtk-doc/html")
3439 "--with-zlib"
3440 "--with-bz2")
3441 #:phases
3442 #~(modify-phases %standard-phases
3443 (add-after 'unpack 'patch-docbook-xml
3444 (lambda* (#:key native-inputs inputs #:allow-other-keys)
3445 (with-directory-excursion "doc"
3446 (substitute* "gsf-docs.xml"
3447 (("http://www.oasis-open.org/docbook/xml/4.5/")
3448 (search-input-directory (or native-inputs inputs)
3449 "xml/dtd/docbook")))))))))
3450 (native-inputs
3451 (list docbook-xml
3452 gettext-minimal
3453 gobject-introspection
3454 perl
3455 perl-xml-parser
3456 pkg-config
3457 python-wrapper))
3458 (inputs
3459 (list bzip2
3460 gdk-pixbuf
3461 zlib))
3462 (propagated-inputs
3463 (list glib
3464 libxml2))
3465 (synopsis "G Structured File Library")
3466 (description "Libgsf aims to provide an efficient extensible I/O abstraction
3467 for dealing with different structured file formats.")
3468 (home-page "https://gitlab.gnome.org/GNOME/libgsf")
3469 (license
3470 (list license:lgpl2.1+ ;library
3471 license:lgpl2.0+)))) ;others
3472
3473 (define-public librsvg
3474 (package
3475 (name "librsvg")
3476 (version "2.50.7")
3477 (source (origin
3478 (method url-fetch)
3479 (uri (string-append "mirror://gnome/sources/librsvg/"
3480 (version-major+minor version) "/"
3481 "librsvg-" version ".tar.xz"))
3482 (sha256
3483 (base32
3484 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3485 (modules '((guix build utils)))
3486 (snippet
3487 '(begin (delete-file-recursively "vendor")))))
3488 (build-system cargo-build-system)
3489 (outputs '("out" "doc" "debug"))
3490 (arguments
3491 `(#:install-source? #f
3492 #:modules
3493 ((guix build cargo-build-system)
3494 (guix build utils)
3495 ((guix build gnu-build-system) #:prefix gnu:))
3496 #:cargo-inputs
3497 (("rust-bitflags" ,rust-bitflags-1)
3498 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3499 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3500 ("rust-cast" ,rust-cast-0.2)
3501 ("rust-cssparser" ,rust-cssparser-0.27)
3502 ("rust-data-url" ,rust-data-url-0.1)
3503 ("rust-encoding" ,rust-encoding-0.2)
3504 ("rust-float-cmp" ,rust-float-cmp-0.8)
3505 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3506 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3507 ("rust-gio" ,rust-gio-0.8)
3508 ("rust-gio-sys" ,rust-gio-sys-0.9)
3509 ("rust-glib" ,rust-glib-0.9)
3510 ("rust-glib-sys" ,rust-glib-sys-0.9)
3511 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3512 ("rust-itertools" ,rust-itertools-0.9)
3513 ("rust-language-tags" ,rust-language-tags-0.2)
3514 ("rust-libc" ,rust-libc-0.2)
3515 ("rust-locale-config" ,rust-locale-config-0.3)
3516 ("rust-markup5ever" ,rust-markup5ever-0.10)
3517 ("rust-nalgebra" ,rust-nalgebra-0.21)
3518 ("rust-num-traits" ,rust-num-traits-0.2)
3519 ("rust-once-cell" ,rust-once-cell-1)
3520 ("rust-pkg-config" ,rust-pkg-config-0.3)
3521 ("rust-pango" ,rust-pango-0.8)
3522 ("rust-pango-sys" ,rust-pango-sys-0.9)
3523 ("rust-pangocairo" ,rust-pangocairo-0.9)
3524 ("rust-rayon" ,rust-rayon-1)
3525 ("rust-rctree" ,rust-rctree-0.3)
3526 ("rust-rgb" ,rust-rgb-0.8)
3527 ("rust-regex" ,rust-regex-1)
3528 ("rust-selectors" ,rust-selectors-0.22)
3529 ("rust-string-cache" ,rust-string-cache-0.8)
3530 ("rust-tinyvec" ,rust-tinyvec-0.3)
3531 ("rust-url" ,rust-url-2)
3532 ("rust-xml5ever" ,rust-xml5ever-0.16))
3533 #:cargo-development-inputs
3534 (("rust-assert-cmd" ,rust-assert-cmd-1)
3535 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3536 ("rust-chrono" ,rust-chrono-0.4)
3537 ("rust-criterion" ,rust-criterion-0.3)
3538 ("rust-float-cmp" ,rust-float-cmp-0.8)
3539 ("rust-lopdf" ,rust-lopdf-0.26)
3540 ("rust-png" ,rust-png-0.16)
3541 ("rust-predicates" ,rust-predicates-1)
3542 ("rust-tempfile" ,rust-tempfile-3))
3543 #:phases
3544 (modify-phases %standard-phases
3545 (add-after 'unpack 'patch-docbook-xml
3546 (lambda* (#:key inputs #:allow-other-keys)
3547 (with-directory-excursion "doc"
3548 (substitute* "rsvg-docs.xml"
3549 (("http://www.oasis-open.org/docbook/xml/4.3/")
3550 (string-append (assoc-ref inputs "docbook-xml")
3551 "/xml/dtd/docbook/"))))))
3552 (add-after 'unpack 'prepare-for-build
3553 (lambda _
3554 ;; In lieu of #:make-flags
3555 (setenv "CC" ,(cc-for-target))
3556 ;; Something about the build environment resists building
3557 ;; successfully with the '--locked' flag.
3558 (substitute* '("Makefile.am" "Makefile.in")
3559 (("--locked") ""))))
3560 (add-before 'configure 'pre-configure
3561 (lambda* (#:key outputs #:allow-other-keys)
3562 (substitute* "gdk-pixbuf-loader/Makefile.in"
3563 ;; By default the gdk-pixbuf loader is installed under
3564 ;; gdk-pixbuf's prefix. Work around that.
3565 (("gdk_pixbuf_moduledir = .*$")
3566 (string-append "gdk_pixbuf_moduledir = "
3567 "$(prefix)/"
3568 ,(dirname %gdk-pixbuf-loaders-cache-file) "/"
3569 "loaders\n")))
3570 (substitute* "configure"
3571 (("gdk_pixbuf_cache_file=.*")
3572 (string-append "gdk_pixbuf_cache_file="
3573 (assoc-ref outputs "out") "/"
3574 ,%gdk-pixbuf-loaders-cache-file "\n")))))
3575 (add-after 'configure 'gnu-configure
3576 (lambda* (#:key outputs #:allow-other-keys #:rest args)
3577 (apply (assoc-ref gnu:%standard-phases 'configure)
3578 #:configure-flags
3579 (list "--disable-static"
3580 "--enable-vala"
3581 (string-append "--with-html-dir="
3582 (assoc-ref outputs "doc")
3583 "/share/gtk-doc/html"))
3584 args)))
3585 (add-after 'configure 'dont-vendor-self
3586 (lambda* (#:key vendor-dir #:allow-other-keys)
3587 ;; Don't keep the whole tarball in the vendor directory
3588 (delete-file-recursively
3589 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))))
3590 (replace 'build
3591 (assoc-ref gnu:%standard-phases 'build))
3592 (add-before 'check 'ignore-failing-tests
3593 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3594 (lambda _
3595 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3596 (("fn background_color_option_invalid_color_yields_error" all)
3597 (string-append "#[ignore] " all))
3598 (("fn empty_input_yields_error" all)
3599 (string-append "#[ignore] " all))
3600 (("fn empty_svg_yields_error" all)
3601 (string-append "#[ignore] " all))
3602 (("fn env_source_data_epoch_empty" all)
3603 (string-append "#[ignore] " all))
3604 (("fn env_source_data_epoch_no_digits" all)
3605 (string-append "#[ignore] " all))
3606 (("fn env_source_data_epoch_trailing_garbage" all)
3607 (string-append "#[ignore] " all))
3608 (("fn export_id_option_error" all)
3609 (string-append "#[ignore] " all))
3610 (("fn huge_zoom_factor_yields_error" all)
3611 (string-append "#[ignore] " all))
3612 (("fn multiple_input_files_not_allowed_for_png_output" all)
3613 (string-append "#[ignore] " all))
3614 (("fn stylesheet_option_error" all)
3615 (string-append "#[ignore] " all)))))
3616 (replace 'check
3617 (lambda* args
3618 ((assoc-ref gnu:%standard-phases 'check)
3619 #:test-target "check")))
3620 (replace 'install
3621 (assoc-ref gnu:%standard-phases 'install)))))
3622 (native-inputs
3623 (list docbook-xml-4.3
3624 `(,glib "bin")
3625 gobject-introspection
3626 pkg-config
3627 vala))
3628 (inputs
3629 (list freetype harfbuzz libxml2 pango))
3630 (propagated-inputs
3631 (list cairo gdk-pixbuf glib))
3632 (synopsis "SVG rendering library")
3633 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3634 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3635 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3636 diagrams.")
3637 (home-page "https://wiki.gnome.org/LibRsvg")
3638 (license license:lgpl2.1+)))
3639
3640 ;; This copy of librsvg uses the bundled rust libraries. It is useful for
3641 ;; packages which have too many dependencies to be rebuilt as frequently
3642 ;; as the rust inputs are updated.
3643 ;; TODO: Remove this package and use packaged rust libraries!
3644 (define-public librsvg-bootstrap
3645 (package
3646 (inherit librsvg)
3647 (name "librsvg")
3648 (version "2.50.7")
3649 (source (origin
3650 (method url-fetch)
3651 (uri (string-append "mirror://gnome/sources/librsvg/"
3652 (version-major+minor version) "/"
3653 "librsvg-" version ".tar.xz"))
3654 (sha256
3655 (base32
3656 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3657 (modules '((guix build utils)))
3658 (snippet
3659 '(begin
3660 (for-each delete-file (find-files "vendor" "\\.a$"))))))
3661 (arguments
3662 (substitute-keyword-arguments (package-arguments librsvg)
3663 ((#:vendor-dir _ "vendor") "vendor")
3664 ((#:cargo-inputs _) '())
3665 ((#:cargo-development-inputs _) '())))
3666 (properties '((hidden? . #t)))))
3667
3668 (define-public librsvg-2.40
3669 ;; This is the last version implemented in C.
3670 (package
3671 (inherit librsvg)
3672 (version "2.40.21")
3673 (source (origin
3674 (method url-fetch)
3675 (uri (string-append "mirror://gnome/sources/librsvg/"
3676 (version-major+minor version)
3677 "/librsvg-" version ".tar.xz"))
3678 (sha256
3679 (base32
3680 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3681 (build-system gnu-build-system)
3682 (arguments
3683 `(#:configure-flags (list "--disable-static")
3684 #:phases
3685 (modify-phases %standard-phases
3686 (add-before 'configure 'pre-configure
3687 (lambda* (#:key inputs #:allow-other-keys)
3688 (substitute* "gdk-pixbuf-loader/Makefile.in"
3689 ;; By default the gdk-pixbuf loader is installed under
3690 ;; gdk-pixbuf's prefix. Work around that.
3691 (("gdk_pixbuf_moduledir = .*$")
3692 (string-append "gdk_pixbuf_moduledir = "
3693 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3694 "loaders\n"))
3695 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3696 (("gdk_pixbuf_cache_file = .*$")
3697 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3698 #t))
3699 (add-before 'check 'remove-failing-tests
3700 (lambda _
3701 (with-directory-excursion "tests/fixtures/reftests"
3702 (for-each delete-file
3703 '(;; This test fails on i686:
3704 "svg1.1/masking-path-04-b.svg"
3705 ;; This test fails on armhf:
3706 "svg1.1/masking-mask-01-b.svg"
3707 ;; This test fails on aarch64:
3708 "bugs/777834-empty-text-children.svg"
3709
3710 ;; These two tests fail due to slightly different
3711 ;; text rendering (different kerning or similar),
3712 ;; nothing alarming.
3713 "bugs/340047.svg"
3714 "bugs/749415.svg"))))))))
3715 (native-inputs
3716 (list pkg-config
3717 `(,glib "bin") ; glib-mkenums, etc.
3718 gobject-introspection)) ; g-ir-compiler, etc.
3719 (inputs
3720 (list pango libcroco libxml2))
3721 (propagated-inputs
3722 ;; librsvg-2.0.pc refers to all of that.
3723 (list cairo gdk-pixbuf glib))
3724 (synopsis "Render SVG files using Cairo (ancient C version)")
3725 (properties '((hidden? . #t)))))
3726
3727 (define* (librsvg-for-system #:optional
3728 (system (or (%current-target-system)
3729 (%current-system))))
3730 ;; Since librsvg 2.50 depends on Rust, and Rust is only correctly supported
3731 ;; on x86_64 so far, use the ancient C version on other platforms (FIXME).
3732 (if (string-prefix? "x86_64-" system)
3733 librsvg
3734 librsvg-2.40))
3735
3736 (export librsvg-for-system)
3737
3738 (define-public libidl
3739 (package
3740 (name "libidl")
3741 (version "0.8.14")
3742 (source (origin
3743 (method url-fetch)
3744 (uri (string-append "mirror://gnome/sources/libIDL/"
3745 (version-major+minor version) "/"
3746 "libIDL-" version ".tar.bz2"))
3747 (sha256
3748 (base32
3749 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3750 (build-system gnu-build-system)
3751 (inputs (list glib))
3752 (native-inputs
3753 (list pkg-config flex bison))
3754 (home-page "http://freecode.com/projects/libidl")
3755 (synopsis "Create trees of CORBA Interface Definition Language files")
3756 (description "Libidl is a library for creating trees of CORBA Interface
3757 Definition Language (idl) files, which is a specification for defining
3758 portable interfaces. libidl was initially written for orbit (the orb from the
3759 GNOME project, and the primary means of libidl distribution). However, the
3760 functionality was designed to be as reusable and portable as possible.")
3761 (properties `((upstream-name . "libIDL")))
3762 (license license:lgpl2.0+)))
3763
3764
3765 (define-public orbit2
3766 (package
3767 (name "orbit2")
3768 (version "2.14.19")
3769 (source (origin
3770 (method url-fetch)
3771 (uri (let ((upstream-name "ORBit2"))
3772 (string-append "mirror://gnome/sources/" upstream-name "/"
3773 (version-major+minor version) "/"
3774 upstream-name "-" version ".tar.bz2")))
3775 (sha256
3776 (base32
3777 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3778 (build-system gnu-build-system)
3779 (arguments
3780 `(;; The "timeout-server" test hangs when run in parallel.
3781 #:parallel-tests? #f
3782 #:configure-flags
3783 '(;; We don't need static libraries, plus they don't build reproducibly
3784 ;; (non-deterministic ordering of .o files in the archive.)
3785 "--disable-static"
3786
3787 ;; The programmer kindly gives us a hook to turn off deprecation
3788 ;; warnings ...
3789 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3790 ;; ... which they then completly ignore !!
3791 #:phases
3792 (modify-phases %standard-phases
3793 (add-after 'unpack 'fix-parallel-build
3794 ;; Parallel build fails because of a failed dependency,
3795 ;; https://bugzilla.gnome.org/show_bug.cgi?id=732274
3796 (lambda _
3797 (substitute* "src/services/name/Makefile.am"
3798 (("orbit_name_server_2_DEPENDENCIES = \\$(DEPS) CosNaming.h")
3799 "orbit_name_server_2_DEPENDENCIES = \
3800 $(DEPS) CosNaming.h libname-server-2.a"))))
3801 (add-before 'configure 'ignore-deprecations
3802 (lambda _
3803 (substitute* "linc2/src/Makefile.in"
3804 (("-DG_DISABLE_DEPRECATED")
3805 "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))))))
3806 (inputs (list glib libidl))
3807 (native-inputs
3808 (list pkg-config))
3809 (home-page "https://projects.gnome.org/orbit2/")
3810 (synopsis "CORBA 2.4-compliant Object Request Broker")
3811 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3812 featuring mature C, C++ and Python bindings.")
3813 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3814 ;; a version. SOME of the code files have licence notices for GPLv2+.
3815 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3816 (license license:gpl2+)
3817 (properties `((upstream-name . "ORBit2")))))
3818
3819
3820 (define-public libbonobo
3821 (package
3822 (name "libbonobo")
3823 (version "2.32.1")
3824 (source (origin
3825 (method url-fetch)
3826 (uri (string-append "mirror://gnome/sources/" name "/"
3827 (version-major+minor version)
3828 "/" name "-" version ".tar.bz2"))
3829 (sha256
3830 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3831 (patches (search-patches
3832 "libbonobo-activation-test-race.patch"))))
3833 (build-system gnu-build-system)
3834 (arguments
3835 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3836 `(#:configure-flags
3837 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3838 ;; ... which they then completly ignore !!
3839 #:phases
3840 (modify-phases %standard-phases
3841 (add-before 'configure 'ignore-deprecations
3842 (lambda _
3843 (substitute* "activation-server/Makefile.in"
3844 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3845 #t)))
3846
3847 ;; There's apparently a race condition between the server stub
3848 ;; generation and linking of the example under 'samples/echo' that can
3849 ;; lead do undefined references when building in parallel, as reported
3850 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3851 ;; Thus, disable parallel builds.
3852 #:parallel-build? #f))
3853 (inputs (list popt libxml2))
3854 ;; The following are Required by the .pc file
3855 (propagated-inputs
3856 (list glib orbit2))
3857 (native-inputs
3858 (list intltool
3859 pkg-config
3860 `(,glib "bin") ; for glib-genmarshal, etc.
3861 flex
3862 bison))
3863 (home-page "https://developer.gnome.org/libbonobo/")
3864 (synopsis "Framework for creating reusable components for use in GNOME applications")
3865 (description "Bonobo is a framework for creating reusable components for
3866 use in GNOME applications, built on top of CORBA.")
3867 ;; Licence not explicitly stated. Source files contain no licence notices.
3868 ;; Tarball contains text of both GPLv2 and LGPLv2
3869 ;; GPLv2 covers both conditions
3870 (license license:gpl2+)))
3871
3872
3873 (define-public gconf
3874 (package
3875 (name "gconf")
3876 (version "3.2.6")
3877 (source (origin
3878 (method url-fetch)
3879 (uri
3880 (let ((upstream-name "GConf"))
3881 (string-append "mirror://gnome/sources/" upstream-name "/"
3882 (version-major+minor version) "/"
3883 upstream-name "-" version ".tar.xz")))
3884 (sha256
3885 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3886 (build-system gnu-build-system)
3887 (inputs (list dbus-glib libxml2))
3888 (propagated-inputs (list glib ; referred to in the .pc file
3889 orbit2))
3890 (native-inputs
3891 (list intltool
3892 `(,glib "bin") ; for glib-genmarshal, etc.
3893 pkg-config))
3894 (home-page "https://projects.gnome.org/gconf/")
3895 (synopsis "Store application preferences")
3896 (description "Gconf is a system for storing application preferences. It
3897 is intended for user preferences; not arbitrary data storage.")
3898 (license license:lgpl2.0+)
3899 (properties '((upstream-name . "GConf")))))
3900
3901
3902 (define-public gnome-mime-data
3903 (package
3904 (name "gnome-mime-data")
3905 (version "2.18.0")
3906 (source (origin
3907 (method url-fetch)
3908 (uri (string-append "mirror://gnome/sources/" name "/"
3909 (version-major+minor version) "/"
3910 name "-" version ".tar.bz2"))
3911 (sha256
3912 (base32
3913 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3914 (build-system gnu-build-system)
3915 (native-inputs
3916 (list perl intltool))
3917 (arguments
3918 '(#:phases (modify-phases %standard-phases
3919 (add-after 'configure 'use-our-intltool
3920 (lambda _
3921 ;; Do not use the bundled intltool commands, which lack
3922 ;; the "dotless @INC" fixes of our 'intltool' package.
3923 (substitute* (find-files "." "^Makefile$")
3924 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3925 (string-append "INTLTOOL_" tool " = intltool-"
3926 (string-downcase tool) "\n")))
3927 #t)))))
3928 (home-page "https://www.gnome.org")
3929 (synopsis "Base MIME and Application database for GNOME")
3930 (description "GNOME Mime Data is a module which contains the base MIME
3931 and Application database for GNOME. The data stored by this module is
3932 designed to be accessed through the MIME functions in GnomeVFS.")
3933 (license license:gpl2+)))
3934
3935
3936 (define-public gnome-vfs
3937 (package
3938 (name "gnome-vfs")
3939 (version "2.24.4")
3940 (source (origin
3941 (method url-fetch)
3942 (uri (string-append "mirror://gnome/sources/" name "/"
3943 (version-major+minor version) "/"
3944 name "-" version ".tar.bz2"))
3945 (sha256
3946 (base32
3947 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3948 (build-system gnu-build-system)
3949 (arguments
3950 `(#:phases
3951 (modify-phases %standard-phases
3952 (add-before 'configure 'ignore-deprecations
3953 (lambda _
3954 (substitute* '("libgnomevfs/Makefile.in"
3955 "daemon/Makefile.in")
3956 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3957 #t))
3958 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3959 (lambda _
3960 (substitute* "test/test-async-cancel.c"
3961 (("EXIT_FAILURE") "77"))
3962 #t)))))
3963 (inputs (list libxml2 dbus-glib gconf gnome-mime-data zlib))
3964 (native-inputs
3965 (list `(,glib "bin") ; for glib-mkenums, etc.
3966 intltool pkg-config))
3967 (home-page "https://developer.gnome.org/gnome-vfs/")
3968 (synopsis "Access files and folders in GNOME applications")
3969 (description
3970 "GnomeVFS is the core library used to access files and folders in GNOME
3971 applications. It provides a file system abstraction which allows applications
3972 to access local and remote files with a single consistent API.")
3973 (license license:lgpl2.0+)))
3974
3975
3976
3977 (define-public libgnome
3978 (package
3979 (name "libgnome")
3980 (version "2.32.1")
3981 (source (origin
3982 (method url-fetch)
3983 (uri (string-append "mirror://gnome/sources/" name "/"
3984 (version-major+minor version) "/"
3985 name "-" version ".tar.bz2"))
3986 (sha256
3987 (base32
3988 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3989 (patches (search-patches "libgnome-encoding.patch"))))
3990 (build-system gnu-build-system)
3991 (arguments
3992 `(#:phases
3993 (modify-phases %standard-phases
3994 (add-before 'configure 'enable-deprecated
3995 (lambda _
3996 (substitute* "libgnome/Makefile.in"
3997 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3998 #t)))))
3999 (inputs (list libxml2))
4000 (native-inputs
4001 (list `(,glib "bin") ; for glib-mkenums, etc.
4002 intltool pkg-config))
4003 ;; The following are listed as Required in the .pc file
4004 ;; (except for libcanberra -- which seems to be oversight on the part
4005 ;; of the upstream developers -- anything that links against libgnome,
4006 ;; must also link against libcanberra
4007 (propagated-inputs
4008 (list libcanberra libbonobo gconf gnome-vfs popt)) ;gnome-program.h includes popt.h
4009 (home-page "https://developer.gnome.org/libgnome/")
4010 (synopsis "Useful routines for building applications")
4011 (description "The libgnome library provides a number of useful routines
4012 for building modern applications, including session management, activation of
4013 files and URIs, and displaying help.")
4014 (license license:lgpl2.0+)))
4015
4016
4017 (define-public libart-lgpl
4018 (package
4019 (name "libart-lgpl")
4020 (version "2.3.21")
4021 (source (origin
4022 (method url-fetch)
4023 (uri (let ((upstream-name "libart_lgpl"))
4024 (string-append "mirror://gnome/sources/" upstream-name "/"
4025 (version-major+minor version) "/"
4026 upstream-name "-" version ".tar.bz2")))
4027 (sha256
4028 (base32
4029 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
4030 (build-system gnu-build-system)
4031 (native-inputs
4032 (list pkg-config))
4033 (home-page "https://people.gnome.org/~mathieu/libart")
4034 (synopsis "2D drawing library")
4035 (description "Libart is a 2D drawing library intended as a
4036 high-quality vector-based 2D library with antialiasing and alpha composition.")
4037 (license license:lgpl2.0+)))
4038
4039
4040
4041 (define-public libgnomecanvas
4042 (package
4043 (name "libgnomecanvas")
4044 (version "2.30.3")
4045 (source (origin
4046 (method url-fetch)
4047 (uri (string-append "mirror://gnome/sources/" name "/"
4048 (version-major+minor version) "/"
4049 name "-" version ".tar.gz"))
4050 (sha256
4051 (base32
4052 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
4053 (build-system gnu-build-system)
4054 ;; Mentioned as Required in the .pc file
4055 (propagated-inputs (list libart-lgpl gtk+-2))
4056 (native-inputs
4057 (list intltool
4058 `(,glib "bin") ; for glib-genmarshal, etc.
4059 pkg-config))
4060 (home-page "https://developer.gnome.org/libgnomecanvas/")
4061 (synopsis "Flexible widget for creating interactive structured graphics")
4062 (description "The GnomeCanvas widget provides a flexible widget for
4063 creating interactive structured graphics.")
4064 (license license:lgpl2.0+)))
4065
4066 (define-public libgnomecanvasmm
4067 (package
4068 (name "libgnomecanvasmm")
4069 (version "2.26.0")
4070 (source (origin
4071 (method url-fetch)
4072 (uri (string-append "mirror://gnome/sources/" name "/"
4073 (version-major+minor version) "/"
4074 name "-" version ".tar.bz2"))
4075 (sha256
4076 (base32
4077 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
4078 (build-system gnu-build-system)
4079 (propagated-inputs (list libgnomecanvas))
4080 (native-inputs
4081 (list gtkmm-2 pkg-config))
4082 (home-page "https://gtkmm.org")
4083 (synopsis "C++ bindings to the GNOME Canvas library")
4084 (description "C++ bindings to the GNOME Canvas library.")
4085 (license license:lgpl2.0+)))
4086
4087 (define-public libgnomeui
4088 (package
4089 (name "libgnomeui")
4090 (version "2.24.5")
4091 (source (origin
4092 (method url-fetch)
4093 (uri (string-append "mirror://gnome/sources/" name "/"
4094 (version-major+minor version) "/"
4095 name "-" version ".tar.bz2"))
4096 (patches (search-patches "libgnomeui-utf8.patch"))
4097 (sha256
4098 (base32
4099 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
4100 (build-system gnu-build-system)
4101 ;; Mentioned as Required in the .pc file
4102 (propagated-inputs (list libbonoboui libgnome libgnomecanvas
4103 libgnome-keyring))
4104 (inputs (list libjpeg-turbo popt libbonobo libxml2 libglade))
4105 (native-inputs
4106 (list `(,glib "bin") ; for glib-mkenums, etc.
4107 intltool pkg-config))
4108 (home-page "https://developer.gnome.org/libgnomeui/")
4109 (synopsis "Additional widgets for applications")
4110 (description "The libgnomeui library provides additional widgets for
4111 applications. Many of the widgets from libgnomeui have already been
4112 ported to GTK+.")
4113 (license license:lgpl2.0+)))
4114
4115 (define-public libglade
4116 (package
4117 (name "libglade")
4118 (version "2.6.4")
4119 (source (origin
4120 (method url-fetch)
4121 (uri (string-append "mirror://gnome/sources/" name "/"
4122 (version-major+minor version) "/"
4123 name "-" version ".tar.bz2"))
4124 (sha256
4125 (base32
4126 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
4127 (build-system gnu-build-system)
4128 (inputs
4129 (list python)) ;; needed for the optional libglade-convert program
4130 (propagated-inputs
4131 (list gtk+-2 libxml2)) ; required by libglade-2.0.pc
4132 (native-inputs
4133 (list pkg-config))
4134 (home-page "https://developer.gnome.org/libglade")
4135 (synopsis "Load glade interfaces and access the glade built widgets")
4136 (description "Libglade is a library that provides interfaces for loading
4137 graphical interfaces described in glade files and for accessing the
4138 widgets built in the loading process.")
4139 (license license:gpl2+))) ; This is correct. GPL not LGPL
4140
4141 (define-public libbonoboui
4142 (package
4143 (name "libbonoboui")
4144 (version "2.24.5")
4145 (source (origin
4146 (method url-fetch)
4147 (uri (string-append "mirror://gnome/sources/" name "/"
4148 (version-major+minor version) "/"
4149 name "-" version ".tar.bz2"))
4150 (sha256
4151 (base32
4152 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4153 (build-system gnu-build-system)
4154 (arguments
4155 `(#:phases
4156 (modify-phases %standard-phases
4157 (add-before 'check 'start-xserver
4158 (lambda* (#:key inputs #:allow-other-keys)
4159 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4160 (disp ":1"))
4161
4162 (setenv "HOME" (getcwd))
4163 (setenv "DISPLAY" disp)
4164 ;; There must be a running X server and make check doesn't start one.
4165 ;; Therefore we must do it.
4166 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4167 ;; Mentioned as Required by the .pc file
4168 (propagated-inputs (list libxml2))
4169 (inputs
4170 (list popt pangox-compat libgnome libgnomecanvas libglade))
4171 (native-inputs
4172 (list `(,glib "bin") ; for glib-genmarshal, etc.
4173 intltool
4174 xorg-server-for-tests ; For running the tests
4175 pkg-config))
4176 (home-page "https://developer.gnome.org/libbonoboui/")
4177 (synopsis "Some user interface controls using Bonobo")
4178 (description "The Bonobo UI library provides a number of user interface
4179 controls using the Bonobo component framework.")
4180 (license license:lgpl2.0+)))
4181
4182 (define-public libwnck
4183 (package
4184 (name "libwnck")
4185 (version "3.32.0")
4186 (source (origin
4187 (method url-fetch)
4188 (uri (string-append "mirror://gnome/sources/" name "/"
4189 (version-major+minor version) "/"
4190 name "-" version ".tar.xz"))
4191 (sha256
4192 (base32
4193 "1jp3p1lnwnwi6fxl2rz3166cmwzwy9vqz896anpwc3wdy9f875cm"))))
4194 (build-system meson-build-system)
4195 (native-inputs
4196 (list pkg-config
4197 `(,glib "bin") ; for glib-mkenums
4198 gobject-introspection ; for g-ir-scanner
4199 intltool))
4200 (propagated-inputs
4201 (list gtk+ libxres startup-notification))
4202 (home-page "https://developer.gnome.org/libwnck/")
4203 (synopsis "Window Navigator Construction Kit")
4204 (description
4205 "Libwnck is the Window Navigator Construction Kit, a library for use in
4206 writing pagers, tasklists, and more generally applications that are dealing
4207 with window management. It tries hard to respect the Extended Window Manager
4208 Hints specification (EWMH).")
4209 (license license:lgpl2.0+)))
4210
4211 ;; stable version for gtk2, required by xfwm4.
4212 (define-public libwnck-2
4213 (package (inherit libwnck)
4214 (name "libwnck")
4215 (version "2.30.7")
4216 (source (origin
4217 (method url-fetch)
4218 (uri (string-append "mirror://gnome/sources/" name "/"
4219 (version-major+minor version) "/"
4220 name "-" version ".tar.xz"))
4221 (sha256
4222 (base32
4223 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4224 (build-system gnu-build-system)
4225 (native-inputs
4226 (list pkg-config intltool))
4227 (propagated-inputs
4228 (list gtk+-2 libxres startup-notification))))
4229
4230 (define-public goffice
4231 (package
4232 (name "goffice")
4233 (version "0.10.52")
4234 (source
4235 (origin
4236 (method url-fetch)
4237 (uri (string-append "mirror://gnome/sources/goffice/"
4238 (version-major+minor version) "/"
4239 "goffice-" version ".tar.xz"))
4240 (sha256
4241 (base32 "0344k0ffndd79as3c4nfq3mia7mrds6aq2jg76drdw3h8gcyzfb0"))))
4242 (build-system gnu-build-system)
4243 (outputs '("out"
4244 "doc")) ; 4.0 MiB of gtk-doc
4245 (arguments
4246 '(#:configure-flags (list (string-append "--with-html-dir="
4247 (assoc-ref %outputs "doc")
4248 "/share/gtk-doc/html"))))
4249 (inputs
4250 (list gtk+ libgsf librsvg libxslt libxml2))
4251 (native-inputs
4252 (list intltool `(,glib "bin") pkg-config))
4253 (home-page "https://developer.gnome.org/goffice/")
4254 (synopsis "Document-centric objects and utilities")
4255 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4256 (license
4257 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4258 ;; Note: NOT LGPL
4259 (list license:gpl2 license:gpl3))))
4260
4261 (define-public goffice-0.8
4262 (package (inherit goffice)
4263 (version "0.8.17")
4264 (source (origin
4265 (method url-fetch)
4266 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4267 (version-major+minor version) "/"
4268 (package-name goffice) "-" version ".tar.xz"))
4269 (sha256
4270 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4271 (arguments
4272 `(#:phases
4273 (modify-phases %standard-phases
4274 (add-after 'unpack 'fix-pcre-check
4275 (lambda _
4276 ;; Only glib.h can be included directly. See
4277 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4278 (substitute* "configure"
4279 (("glib/gregex\\.h") "glib.h")) #t)))
4280
4281 ,@(package-arguments goffice)))
4282 (propagated-inputs
4283 ;; libgoffice-0.8.pc mentions libgsf-1
4284 (list libgsf))
4285 (inputs
4286 `(("gtk" ,gtk+-2)
4287 ,@(alist-delete "gtk" (package-inputs goffice))))))
4288
4289 (define-public gnumeric
4290 (package
4291 (name "gnumeric")
4292 (version "1.12.52")
4293 (source (origin
4294 (method url-fetch)
4295 (uri (string-append "mirror://gnome/sources/gnumeric/"
4296 (version-major+minor version) "/"
4297 "gnumeric-" version ".tar.xz"))
4298 (sha256
4299 (base32
4300 "0fw201j0sks95wgvns3vydgprhwf6z4v4xb2a0ldi892k8277kvk"))))
4301 (build-system glib-or-gtk-build-system)
4302 (arguments
4303 `(;; The gnumeric developers don't worry much about failing tests.
4304 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4305 #:tests? #f
4306 #:phases
4307 (modify-phases %standard-phases
4308 (add-before
4309 'configure 'pre-conf
4310 (lambda* (#:key outputs #:allow-other-keys)
4311 ;; Make install tries to write into the directory of goffice
4312 ;; I am informed that this only affects the possibility to embed a
4313 ;; spreadsheet inside an Abiword document. So presumably when we
4314 ;; package Abiword we'll have to refer it to this directory.
4315 (substitute* "configure"
4316 (("^GOFFICE_PLUGINS_DIR=.*")
4317 (string-append "GOFFICE_PLUGINS_DIR="
4318 (assoc-ref outputs "out")
4319 "/goffice/plugins"))))))))
4320 (inputs
4321 (list glib
4322 gtk+
4323 goffice
4324 libgsf
4325 librsvg
4326 libxml2
4327 libxslt
4328 python
4329 python-pygobject
4330 zlib))
4331 (native-inputs
4332 (list bison
4333 docbook-xml
4334 `(,glib "bin")
4335 intltool
4336 itstool
4337 pkg-config))
4338 (home-page "http://www.gnumeric.org")
4339 (synopsis "Spreadsheet application")
4340 (description
4341 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4342 interoperable with other spreadsheet applications. It has a vast array of
4343 features beyond typical spreadsheet functionality, such as support for linear
4344 and non-linear solvers, statistical analysis, and telecommunication
4345 engineering.")
4346 (license
4347 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4348 (list license:gpl2 license:gpl3))))
4349
4350 (define-public drawing
4351 (package
4352 (name "drawing")
4353 (version "0.8.3")
4354 (source
4355 (origin
4356 (method git-fetch)
4357 (uri (git-reference
4358 (url "https://github.com/maoschanz/drawing")
4359 (commit version)))
4360 (file-name (git-file-name name version))
4361 (sha256
4362 (base32 "0wz9p47riyy3h8b0sqsb6bx416hc6d1a1wyzlfmsxkrqrkwcjcm8"))))
4363 (build-system meson-build-system)
4364 (arguments
4365 `(#:glib-or-gtk? #t
4366 #:phases
4367 (modify-phases %standard-phases
4368 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
4369 (lambda* (#:key outputs #:allow-other-keys)
4370 (let ((prog (string-append (assoc-ref outputs "out")
4371 "/bin/drawing"))
4372 (pylib (string-append (assoc-ref outputs "out")
4373 "/lib/python"
4374 ,(version-major+minor
4375 (package-version python))
4376 "/site-packages")))
4377 (wrap-program prog
4378 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
4379 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
4380 (native-inputs
4381 `(("desktop-file-utils" ,desktop-file-utils)
4382 ("gettext" ,gettext-minimal)
4383 ("glib:bin" ,glib "bin")
4384 ("gobject-introspection" ,gobject-introspection)
4385 ("gtk+:bin" ,gtk+ "bin")
4386 ("pkg-config" ,pkg-config)))
4387 (inputs
4388 (list librsvg
4389 gsettings-desktop-schemas
4390 gtk+
4391 pango
4392 python-pycairo
4393 python-pygobject))
4394 (home-page "https://maoschanz.github.io/drawing/")
4395 (synopsis "Basic image editor for GNOME")
4396 (description
4397 "Drawing is a basic image editor aiming at the GNOME desktop.")
4398 (license license:gpl3+)))
4399
4400 (define-public seahorse
4401 (package
4402 (name "seahorse")
4403 (version "41.0")
4404 (source
4405 (origin
4406 (method url-fetch)
4407 (uri (string-append "mirror://gnome/sources/" name "/"
4408 (version-major version) "/" name "-"
4409 version ".tar.xz"))
4410 (sha256
4411 (base32 "1x99i7kdvd8hbxcs5rfrq7nw6r9bfzaw263zaigjjj04h6gc1vp6"))))
4412 (build-system meson-build-system)
4413 (arguments
4414 '(#:glib-or-gtk? #t
4415 #:phases
4416 (modify-phases %standard-phases
4417 (add-after 'unpack 'skip-gtk-update-icon-cache
4418 ;; Don't create 'icon-theme.cache'.
4419 (lambda _
4420 (substitute* "build-aux/meson_post_install.py"
4421 (("gtk-update-icon-cache") "true"))
4422 #t))
4423 (add-before 'check 'pre-check
4424 (lambda _
4425 ;; Tests require a writable HOME.
4426 (setenv "HOME" (getcwd)))))))
4427 (inputs
4428 `(("gtk+" ,gtk+)
4429 ("gcr" ,gcr)
4430 ("gnupg" ,gnupg)
4431 ("gpgme" ,gpgme)
4432 ("openldap" ,openldap)
4433 ("openssh" ,openssh)
4434 ("avahi" ,avahi)
4435 ("libhandy" ,libhandy)
4436 ("libpwquality" ,libpwquality)
4437 ("libsecret" ,libsecret)
4438 ("libsoup" ,libsoup-minimal-2)))
4439 (native-inputs
4440 `(("gettext" ,gettext-minimal)
4441 ("glib:bin" ,glib "bin")
4442 ("itstool" ,itstool)
4443 ("pkg-config" ,pkg-config)
4444 ("python" ,python)
4445 ("vala" ,vala)
4446 ("xmllint" ,libxml2)))
4447 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4448 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4449 (description
4450 "Seahorse is a GNOME application for managing encryption keys and
4451 passwords in the GNOME keyring.")
4452 (license license:gpl2+)))
4453
4454 (define-public vala
4455 (package
4456 (name "vala")
4457 (version "0.54.2")
4458 (source (origin
4459 (method url-fetch)
4460 (uri (string-append "mirror://gnome/sources/vala/"
4461 (version-major+minor version) "/"
4462 "vala-" version ".tar.xz"))
4463 (sha256
4464 (base32
4465 "048k5c6c6y7jyb961krnrb7m0kghr0yrkpnfx3j5ckbx652yfkc8"))))
4466 (build-system glib-or-gtk-build-system)
4467 (arguments
4468 '(#:configure-flags '("--enable-coverage")
4469 #:phases
4470 (modify-phases %standard-phases
4471 (add-after 'unpack 'patch-docbook-xml
4472 (lambda* (#:key inputs #:allow-other-keys)
4473 (with-directory-excursion "doc/manual"
4474 (substitute* '("manual.xml" "version.xml.in")
4475 (("http://www.oasis-open.org/docbook/xml/4.4/")
4476 (string-append (assoc-ref inputs "docbook-xml")
4477 "/xml/dtd/docbook/"))))))
4478 (add-before 'check 'pre-check
4479 (lambda _
4480 (setenv "CC" "gcc")
4481 (substitute* "valadoc/tests/libvaladoc\
4482 /tests-extra-environment.sh"
4483 (("export PKG_CONFIG_PATH=" m)
4484 (string-append m "$PKG_CONFIG_PATH:"))))))))
4485 (native-inputs
4486 `(("bison" ,bison)
4487 ("dbus" ,dbus) ; for dbus tests
4488 ("docbook-xml" ,docbook-xml-4.4)
4489 ("docbook-xsl" ,docbook-xsl)
4490 ("flex" ,flex)
4491 ("gobject-introspection" ,gobject-introspection) ; for gir tests
4492 ("help2man" ,help2man)
4493 ("perl" ,perl)
4494 ("pkg-config" ,pkg-config)
4495 ("xsltproc" ,libxslt)))
4496 (propagated-inputs
4497 `(("glib" ,glib) ; required by libvala-0.40.pc
4498 ("libgvc" ,graphviz)))
4499 (home-page "https://wiki.gnome.org/Projects/Vala/")
4500 (synopsis "Compiler using the GObject type system")
4501 (description "Vala is a programming language using modern high level
4502 abstractions without imposing additional runtime requirements and without using
4503 a different ABI compared to applications and libraries written in C. Vala uses
4504 the GObject type system and has additional code generation routines that make
4505 targeting the GNOME stack simple.")
4506 (license license:lgpl2.1+)))
4507
4508 (define-public vala-next
4509 (package
4510 (inherit vala)
4511 (version "0.56.2")
4512 (source (origin
4513 (method url-fetch)
4514 (uri (string-append "mirror://gnome/sources/vala/"
4515 (version-major+minor version) "/"
4516 "vala-" version ".tar.xz"))
4517 (sha256
4518 (base32
4519 "0k0jj3xwjq222x0hbqqy5bykhgk1f1wsb85bqcdgsnbqn6dn3jb6"))))
4520 (arguments
4521 (list
4522 #:configure-flags #~(list "CC=gcc" "--enable-coverage")
4523 #:phases
4524 #~(modify-phases %standard-phases
4525 (add-after 'unpack 'use-gcc-by-default
4526 (lambda _
4527 (substitute* "codegen/valaccodecompiler.c"
4528 (("cc_command = \"cc\"")
4529 "cc_command = \"gcc\""))))
4530 (add-after 'unpack 'patch-docbook-xml
4531 (lambda* (#:key inputs #:allow-other-keys)
4532 (with-directory-excursion "doc/manual"
4533 (substitute* '("manual.xml" "version.xml.in")
4534 (("http://www.oasis-open.org/docbook/xml/4.4/")
4535 (search-input-directory inputs "xml/dtd/docbook"))))))
4536 (add-before 'check 'pre-check
4537 (lambda _
4538 (substitute* "valadoc/tests/libvaladoc/tests-extra-environment.sh"
4539 (("export PKG_CONFIG_PATH=" m)
4540 (string-append m "$PKG_CONFIG_PATH:")))))
4541 ;; Wrapping the binaries breaks vala's behavior adaptations based on
4542 ;; the file name of the program executed (vala: compile and execute,
4543 ;; valac: compile into a binary).
4544 (delete 'glib-or-gtk-wrap))))))
4545
4546 ;;; An older variant kept to build libsoup-minimal-2.
4547 (define-public vala-0.52
4548 (package/inherit vala
4549 (version "0.52.0")
4550 (source (origin
4551 (method url-fetch)
4552 (uri (string-append "mirror://gnome/sources/vala/"
4553 (version-major+minor version) "/"
4554 "vala-" version ".tar.xz"))
4555 (sha256
4556 (base32
4557 "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))))
4558
4559 (define-public vte
4560 (package
4561 (name "vte")
4562 (version "0.68.0")
4563 (source (origin
4564 (method url-fetch)
4565 (uri (string-append "mirror://gnome/sources/vte/"
4566 (version-major+minor version) "/"
4567 "vte-" version ".tar.xz"))
4568 (sha256
4569 (base32
4570 "0j8pvn225ybzx9p33ill838bzp8kkdn28383h0vs65m2kiwd9rqk"))))
4571 (build-system meson-build-system)
4572 (arguments
4573 (list #:configure-flags #~(list "-Dvapi=true"
4574 "-D_systemd=false")))
4575 (native-inputs
4576 (list pkg-config
4577 gettext-minimal
4578 vala
4579 gobject-introspection
4580 `(,glib "bin") ; for glib-genmarshal, etc.
4581 gperf
4582 python
4583 libxml2))
4584 (propagated-inputs
4585 (list gtk+ ; required by vte-2.91.pc
4586 gnutls ; ditto
4587 pcre2)) ; ditto
4588 (home-page "https://www.gnome.org/")
4589 (synopsis "Virtual Terminal Emulator")
4590 (description
4591 "VTE is a library (libvte) implementing a terminal emulator widget for
4592 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4593 gnome-terminal, but can also be used to embed a console/terminal in games,
4594 editors, IDEs, etc.")
4595 (license license:lgpl2.1+)))
4596
4597 (define-public vte-ng
4598 (package
4599 (inherit vte)
4600 (name "vte-ng")
4601 (version "0.58.2.a")
4602 (home-page "https://github.com/thestinger/vte-ng")
4603 (source (origin
4604 (method git-fetch)
4605 (uri (git-reference (url home-page) (commit version)))
4606 (file-name (git-file-name name version))
4607 (sha256
4608 (base32
4609 "0rnm5c6m3abbm81jsfdas0y80z299ny54gr4syn4bfrms3s4g19l"))))
4610 (build-system meson-build-system)
4611 (arguments
4612 (list #:configure-flags #~(list "-Ddocs=false")))
4613 (synopsis "Enhanced VTE terminal widget")
4614 (description
4615 "VTE is a library (libvte) implementing a terminal emulator widget for
4616 GTK+, this fork provides additional functions exposed for keyboard text
4617 selection and URL hints.")))
4618
4619 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4620 (define-public vte/gtk+-2
4621 (package (inherit vte)
4622 (name "vte")
4623 (version "0.28.2")
4624 (source (origin
4625 (method url-fetch)
4626 (uri (string-append "mirror://gnome/sources/" name "/"
4627 (version-major+minor version) "/"
4628 name "-" version ".tar.xz"))
4629 (sha256
4630 (base32
4631 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4632 (patches (search-patches
4633 "vte-CVE-2012-2738-pt1.patch"
4634 "vte-CVE-2012-2738-pt2.patch"))))
4635 (build-system gnu-build-system)
4636 (arguments
4637 '(#:configure-flags '("--disable-python")))
4638 (native-inputs
4639 (list pkg-config intltool
4640 `(,glib "bin"))) ; for glib-genmarshal, etc.
4641 (propagated-inputs
4642 (list gtk+-2 ; required by libvte.pc
4643 ncurses)))) ; required by libvte.la
4644
4645 (define-public vinagre
4646 (package
4647 (name "vinagre")
4648 (version "3.22.0")
4649 (source (origin
4650 (method url-fetch)
4651 (uri (string-append "mirror://gnome/sources/" name "/"
4652 (version-major+minor version) "/"
4653 name "-" version ".tar.xz"))
4654 (patches (search-patches "vinagre-newer-freerdp.patch"
4655 "vinagre-newer-rdp-parameters.patch"))
4656 (sha256
4657 (base32
4658 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4659 (build-system glib-or-gtk-build-system)
4660 (arguments
4661 ;; Disable -Werror and such, to avoid build failures on compilation
4662 ;; warnings.
4663 '(#:configure-flags '("--enable-compile-warnings=minimum"
4664 "CFLAGS=-O2 -g -fcommon")
4665 #:phases
4666 (modify-phases %standard-phases
4667 (add-before 'install 'skip-gtk-update-icon-cache
4668 (lambda _
4669 ;; Don't create 'icon-theme.cache'
4670 (substitute* (find-files "." "^Makefile$")
4671 (("gtk-update-icon-cache") (which "true")))
4672 #t))
4673 (add-after 'unpack 'patch-configure
4674 (lambda _
4675 (substitute* "configure"
4676 (("freerdp") "freerdp2"))
4677 #t)))))
4678 (native-inputs
4679 `(("pkg-config" ,pkg-config)
4680 ("intltool" ,intltool)
4681 ("itstool" ,itstool)
4682 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4683 (inputs
4684 (list libxml2
4685 gtk-vnc
4686 gnome-keyring
4687 libsecret
4688 freerdp
4689 spice
4690 spice-gtk
4691 telepathy-glib
4692 vte))
4693 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4694 (synopsis "Remote desktop viewer for GNOME")
4695 (description "Vinagre is a remote display client supporting the VNC, SPICE
4696 and RDP protocols.")
4697 (license license:gpl3+)))
4698
4699 (define-public dconf
4700 (package
4701 (name "dconf")
4702 (version "0.40.0")
4703 (source (origin
4704 (method url-fetch)
4705 (uri (string-append
4706 "mirror://gnome/sources/" name "/"
4707 (version-major+minor version) "/"
4708 name "-" version ".tar.xz"))
4709 (sha256
4710 (base32
4711 "0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg"))))
4712 (build-system meson-build-system)
4713 (propagated-inputs
4714 ;; In Requires of dconf.pc.
4715 (list glib))
4716 (inputs
4717 (list gtk+ dbus))
4718 (native-inputs
4719 `(("bash-completion" ,bash-completion)
4720 ("libxslt" ,libxslt) ;for xsltproc
4721 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4722 ("docbook-xml" ,docbook-xml-4.2)
4723 ("docbook-xsl" ,docbook-xsl)
4724 ("glib:bin" ,glib "bin")
4725 ("gtk-doc" ,gtk-doc/stable)
4726 ("pkg-config" ,pkg-config)
4727 ("python" ,python)
4728 ("vala" ,vala)))
4729 (arguments
4730 `(#:glib-or-gtk? #t
4731 #:configure-flags '("-Dgtk_doc=true")
4732 #:phases (modify-phases %standard-phases
4733 (add-after 'unpack 'increase-test-timeout
4734 (lambda _
4735 ;; On big-memory systems, the engine test may take
4736 ;; much longer than the default of 30 seconds.
4737 (substitute* "tests/meson.build"
4738 (("test\\(unit_test\\[0\\], exe" all)
4739 (string-append all ", timeout: 300"))))))))
4740 (home-page "https://developer.gnome.org/dconf/")
4741 (synopsis "Low-level GNOME configuration system")
4742 (description "Dconf is a low-level configuration system. Its main purpose
4743 is to provide a backend to GSettings on platforms that don't already have
4744 configuration storage systems.")
4745 (license license:lgpl2.1+)))
4746
4747 (define-public json-glib-minimal
4748 (package
4749 (name "json-glib-minimal")
4750 (version "1.6.2")
4751 (source (origin
4752 (method url-fetch)
4753 (uri (string-append "mirror://gnome/sources/json-glib/"
4754 (version-major+minor version)
4755 "/json-glib-" version ".tar.xz"))
4756 (sha256
4757 (base32
4758 "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3"))))
4759 (build-system meson-build-system)
4760 (arguments
4761 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
4762 (native-inputs
4763 `(("gettext" ,gettext-minimal)
4764 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4765 ("pkg-config" ,pkg-config)))
4766 (inputs
4767 (list bash-minimal))
4768 (propagated-inputs
4769 (list glib)) ;according to json-glib-1.0.pc
4770 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4771 (synopsis "Glib and GObject implementation of JSON")
4772 (description "JSON-GLib is a library providing serialization and
4773 described by RFC 4627. It implements a full JSON parser and generator using
4774 GLib and GObject, and integrates JSON with GLib data types.")
4775 (license license:lgpl2.1+)))
4776
4777 (define-public json-glib
4778 (package/inherit json-glib-minimal
4779 (name "json-glib")
4780 (outputs (cons "doc" (package-outputs json-glib-minimal)))
4781 (arguments
4782 (substitute-keyword-arguments (package-arguments json-glib-minimal)
4783 ((#:configure-flags _)
4784 `(list "-Ddocs=true"
4785 "-Dman=true"
4786 ,@(if (%current-target-system)
4787 ;; If enabled, gtkdoc-scangobj will try to execute a
4788 ;; cross-compiled binary.
4789 '("-Dgtk_doc=disabled"
4790 ;; Trying to build introspection data when cross-compiling
4791 ;; causes errors during linking.
4792 "-Dintrospection=disabled")
4793 '())))
4794 ((#:phases phases '%standard-phases)
4795 `(modify-phases ,phases
4796 (add-after 'unpack 'patch-docbook
4797 (lambda* (#:key native-inputs inputs #:allow-other-keys)
4798 (with-directory-excursion "doc"
4799 (substitute* (find-files "." "\\.xml$")
4800 (("http://www.oasis-open.org/docbook/xml/4\\.3/")
4801 (string-append (assoc-ref (or native-inputs inputs)
4802 "docbook-xml")
4803 "/xml/dtd/docbook/")))
4804 (substitute* "meson.build"
4805 (("http://docbook.sourceforge.net/release/xsl/current/")
4806 (string-append (assoc-ref (or native-inputs inputs)
4807 "docbook-xsl")
4808 "/xml/xsl/docbook-xsl-1.79.2/"))))))
4809 ;; When cross-compiling, there are no docs to move.
4810 ,(if (%current-target-system)
4811 '(add-after 'install 'stub-docs
4812 (lambda* (#:key outputs #:allow-other-keys)
4813 ;; The daemon doesn't like empty output paths.
4814 (mkdir (assoc-ref outputs "doc"))))
4815 '(add-after 'install 'move-docs
4816 (lambda* (#:key outputs #:allow-other-keys)
4817 (let* ((out (assoc-ref outputs "out"))
4818 (doc (assoc-ref outputs "doc")))
4819 (mkdir-p (string-append doc "/share"))
4820 (rename-file
4821 (string-append out "/share/gtk-doc")
4822 (string-append doc "/share/gtk-doc"))))))))))
4823 (native-inputs
4824 (append
4825 `(("docbook-xml" ,docbook-xml-4.3)
4826 ("docbook-xsl" ,docbook-xsl)
4827 ("gobject-introspection" ,gobject-introspection)
4828 ("gtk-doc" ,gtk-doc)
4829 ("xsltproc" ,libxslt))
4830 (package-native-inputs json-glib-minimal)))))
4831
4832 (define-public libxklavier
4833 (package
4834 (name "libxklavier")
4835 (version "5.4")
4836 (source (origin
4837 ;; Note: There's no tarball at ftp.gnome.org for this version.
4838 (method git-fetch)
4839 (uri (git-reference
4840 (url "https://anongit.freedesktop.org/git/libxklavier")
4841 (commit (string-append "libxklavier-" version))))
4842 (sha256
4843 (base32
4844 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4845 (file-name (git-file-name name version))))
4846 (build-system gnu-build-system)
4847 (arguments
4848 '(#:configure-flags
4849 (list (string-append "--with-xkb-base="
4850 (assoc-ref %build-inputs "xkeyboard-config")
4851 "/share/X11/xkb")
4852 "--disable-xmodmap-support")))
4853 (native-inputs
4854 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4855 ("gobject-introspection" ,gobject-introspection)
4856 ("pkg-config" ,pkg-config)
4857 ("gtk-doc" ,gtk-doc/stable)
4858 ("intltool" ,intltool)
4859 ("which" ,which)
4860 ("autoconf" ,autoconf)
4861 ("automake" ,automake)
4862 ("libtool" ,libtool)))
4863 (propagated-inputs
4864 ;; Required by libxklavier.pc.
4865 (list glib libxml2))
4866 (inputs
4867 (list iso-codes libxi libxkbfile xkbcomp xkeyboard-config))
4868 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4869 (synopsis "High-level API for X Keyboard Extension")
4870 (description
4871 "LibXklavier is a library providing high-level API for X Keyboard
4872 Extension known as XKB. This library is intended to support XFree86 and other
4873 commercial X servers. It is useful for creating XKB-related software (layout
4874 indicators etc).")
4875 (license license:lgpl2.0+)))
4876
4877 (define-public glib-networking
4878 (package
4879 (name "glib-networking")
4880 (version "2.70.0")
4881 (source (origin
4882 (method url-fetch)
4883 (uri (string-append "mirror://gnome/sources/glib-networking/"
4884 (version-major+minor version) "/"
4885 "glib-networking-" version ".tar.xz"))
4886 (sha256
4887 (base32
4888 "0dbg1na239mbavn4hknkax5sns9q2dbdnqw9wcpmhv58mzkhid36"))
4889 (patches
4890 (search-patches "glib-networking-gnutls-binding.patch"))))
4891 (build-system meson-build-system)
4892 (arguments
4893 (if (target-64bit?)
4894 '()
4895 (list #:phases
4896 #~(modify-phases %standard-phases
4897 (add-after 'unpack 'work-around-32-bit-time-t
4898 (lambda _
4899 (invoke "patch" "--force" "-p1" "-i"
4900 #$(local-file
4901 (search-patch
4902 "glib-networking-32-bit-time.patch")))))))))
4903 (native-inputs
4904 `(("pkg-config" ,pkg-config)
4905 ("gettext" ,gettext-minimal)))
4906 (inputs
4907 (list glib gnutls gsettings-desktop-schemas libproxy))
4908 (home-page "https://wiki.gnome.org/Projects/GLib")
4909 (synopsis "Network extensions for GLib")
4910 (description
4911 "Glib-networking contains the implementations of certain GLib networking
4912 features that cannot be implemented directly in GLib itself because of their
4913 dependencies. Currently it contains GnuTLS and OpenSSL-based implementations of
4914 GTlsBackend, a libproxy-based implementation of GProxyResolver,
4915 GLibproxyResolver, and a GNOME GProxyResolver that uses the proxy information
4916 from the GSettings schemas in gsettings-desktop-schemas.")
4917 (license license:lgpl2.1+)))
4918
4919 (define-public rest
4920 (package
4921 (name "rest")
4922 (version "0.8.1")
4923 (source (origin
4924 (method url-fetch)
4925 (uri (string-append "mirror://gnome/sources/rest/"
4926 (version-major+minor version) "/"
4927 name "-" version ".tar.xz"))
4928 (sha256
4929 (base32
4930 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4931 (build-system gnu-build-system)
4932 (arguments
4933 '(#:tests? #f ; tests require internet connection
4934 #:configure-flags
4935 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4936 (native-inputs
4937 `(("glib-mkenums" ,glib "bin")
4938 ("gobject-introspection" ,gobject-introspection)
4939 ("pkg-config" ,pkg-config)))
4940 (propagated-inputs
4941 ;; rest-0.7.pc refers to all these.
4942 `(("glib" ,glib)
4943 ("libsoup" ,libsoup-minimal-2)
4944 ("libxml2" ,libxml2)))
4945 (home-page "https://www.gtk.org/")
4946 (synopsis "RESTful web api query library")
4947 (description
4948 "This library was designed to make it easier to access web services that
4949 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4950 libxml to ease remote use of the RESTful API.")
4951 (license license:lgpl2.1+)))
4952
4953 (define-public rest-next
4954 (package
4955 (inherit rest)
4956 (name "rest")
4957 (version "0.9.1")
4958 (source (origin
4959 (method url-fetch)
4960 (uri (string-append "mirror://gnome/sources/rest/"
4961 (version-major+minor version) "/"
4962 name "-" version ".tar.xz"))
4963 (sha256
4964 (base32
4965 "1qy2291d2vprdbbxmf0sa98izk09nl3znzzv7lckwf6f1v0sarlj"))))
4966 (build-system meson-build-system)
4967 (arguments (substitute-keyword-arguments (package-arguments rest)
4968 ((#:tests? _ #f) #t)
4969 ((#:configure-flags _)
4970 #~(list))
4971 ((#:phases phases '%standard-phases)
4972 #~(modify-phases #$phases
4973 (add-after 'unpack 'disable-problematic-tests
4974 ;; These tests require networking.
4975 (lambda _
4976 (substitute* "tests/meson.build"
4977 ((".*'flickr',.*") "")
4978 ((".*'lastfm',.*") ""))))
4979 (add-before 'check 'prepare-for-tests
4980 (lambda _
4981 (setenv "HOME" "/tmp")))))))
4982 (native-inputs
4983 (modify-inputs (package-native-inputs rest)
4984 (append gettext-minimal
4985 gi-docgen
4986 gsettings-desktop-schemas)))
4987 (inputs (list gtksourceview json-glib libadwaita))
4988 (propagated-inputs
4989 (modify-inputs (package-propagated-inputs rest)
4990 (replace "libsoup" libsoup)
4991 (append json-glib)))))
4992
4993 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
4994 (define-public libsoup-minimal
4995 (package
4996 (name "libsoup-minimal")
4997 (version "3.0.4")
4998 (source (origin
4999 (method url-fetch)
5000 (uri (string-append "mirror://gnome/sources/libsoup/"
5001 (version-major+minor version) "/"
5002 "libsoup-" version ".tar.xz"))
5003 (sha256
5004 (base32
5005 "0ysnvvfd2f6w2z6g31spqqb8wgyamixc7mryzbbpyw0z15g8plsv"))))
5006 (build-system meson-build-system)
5007 (arguments
5008 `(#:configure-flags '("-Dgtk_doc=false")
5009 #:phases
5010 (modify-phases %standard-phases
5011 (add-after 'unpack 'adjust-tests
5012 (lambda _
5013 ;; This test fails due to missing /etc/nsswitch.conf
5014 ;; in the build environment.
5015 (substitute* "tests/socket-test.c"
5016 ((".*/sockets/unconnected.*") ""))
5017
5018 ;; These fail because "subdomain.localhost" does not resolve in
5019 ;; the build environment. Moreover, the hsts-test suite fails on
5020 ;; i686-linux because of errors from `session_get_uri' like
5021 ;; "Unexpected status 200 OK (expected 301 Moved Permanently)"
5022 ;; (see: https://gitlab.gnome.org/GNOME/libsoup/-/issues/239).
5023 (substitute* "tests/meson.build"
5024 ((".*'name': 'hsts'.*") ""))
5025 (substitute* "tests/hsts-db-test.c"
5026 ((".*/hsts-db/subdomains.*") "")))))))
5027 (native-inputs
5028 (list `(,glib "bin") ;for glib-mkenums
5029 gobject-introspection
5030 intltool
5031 pkg-config
5032 python-wrapper
5033 vala
5034 curl
5035 gnutls ;for 'certtool'
5036 httpd))
5037 (propagated-inputs
5038 ;; libsoup-3.0.pc refers to all of these (except where otherwise noted)
5039 (list brotli
5040 glib
5041 glib-networking ; for GIO runtime modules
5042 libpsl
5043 nghttp2 ;for pkg-config
5044 `(,nghttp2 "lib")
5045 libxml2
5046 sqlite
5047 zlib))
5048 (inputs
5049 (list mit-krb5 samba/fixed)) ; For ntlm_auth support
5050 (home-page "https://wiki.gnome.org/Projects/libsoup")
5051 (synopsis "GLib-based HTTP Library")
5052 (description
5053 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
5054 and the GLib main loop, to integrate well with GNOME applications.")
5055 (license license:lgpl2.0+)))
5056
5057 ;;; An older variant kept to build the 'rest' package.
5058 (define-public libsoup-minimal-2
5059 (package/inherit libsoup-minimal
5060 (version "2.72.0")
5061 (source (origin
5062 (method url-fetch)
5063 (uri (string-append "mirror://gnome/sources/libsoup/"
5064 (version-major+minor version) "/"
5065 "libsoup-" version ".tar.xz"))
5066 (sha256
5067 (base32
5068 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
5069 (arguments
5070 (substitute-keyword-arguments (package-arguments libsoup-minimal)
5071 ((#:phases phases)
5072 `(modify-phases ,phases
5073 (add-after 'unpack 'disable-failing-tests
5074 (lambda _
5075 ;; Disable the SSL test, failing since 2.68 and resolved in
5076 ;; libsoup 3.
5077 (substitute* "tests/meson.build"
5078 (("[ \t]*\\['ssl', true, \\[\\]\\],") ""))))))))
5079 (native-inputs
5080 (modify-inputs (package-native-inputs libsoup-minimal)
5081 (replace "vala" vala-0.52)))))
5082
5083 (define-public libsoup
5084 (package/inherit libsoup-minimal
5085 (name "libsoup")
5086 (outputs (cons "doc" (package-outputs libsoup-minimal)))
5087 (arguments
5088 (substitute-keyword-arguments (package-arguments libsoup-minimal)
5089 ((#:configure-flags configure-flags)
5090 `(cons "-Dgtk_doc=true"
5091 (delete "-Dgtk_doc=false" ,configure-flags)))
5092 ((#:phases phases)
5093 `(modify-phases ,phases
5094 (add-after 'unpack 'patch-docbook-xml
5095 (lambda* (#:key inputs #:allow-other-keys)
5096 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
5097 "/xml/dtd/docbook")))
5098 (substitute* (find-files "docs/reference")
5099 (("http://.*/docbookx\\.dtd")
5100 (string-append xmldoc "/docbookx.dtd"))))))
5101 (add-after 'install 'move-doc
5102 (lambda* (#:key outputs #:allow-other-keys)
5103 (let ((out (assoc-ref outputs "out"))
5104 (doc (assoc-ref outputs "doc")))
5105 (mkdir-p (string-append doc "/share"))
5106 (copy-recursively (string-append out "/share/gtk-doc")
5107 (string-append doc "/share/gtk-doc"))
5108 (delete-file-recursively
5109 (string-append out "/share/gtk-doc")))))))))
5110 (native-inputs (modify-inputs (package-native-inputs libsoup-minimal)
5111 (prepend docbook-xml-4.1.2 gtk-doc)))))
5112
5113 (define-public libsecret
5114 (package
5115 (name "libsecret")
5116 (version "0.20.4")
5117 (source (origin
5118 (method url-fetch)
5119 (uri (string-append
5120 "mirror://gnome/sources/libsecret/"
5121 (version-major+minor version) "/"
5122 "libsecret-" version ".tar.xz"))
5123 (sha256
5124 (base32
5125 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
5126 (build-system gnu-build-system)
5127 (outputs '("out" "doc"))
5128 (arguments
5129 `(#:tests? #f ; FIXME: Testing hangs.
5130 #:configure-flags
5131 (list (string-append "--with-html-dir="
5132 (assoc-ref %outputs "doc")
5133 "/share/gtk-doc/html"))))
5134 (native-inputs
5135 `(("gettext" ,gettext-minimal)
5136 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
5137 ("gobject-introspection" ,gobject-introspection)
5138 ("pkg-config" ,pkg-config)
5139 ("vala" ,vala)
5140 ("xsltproc" ,libxslt)))
5141 (propagated-inputs
5142 (list glib)) ; required by libsecret-1.pc
5143 (inputs
5144 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
5145 ;; doesn't seem to affect the build result.
5146 (list docbook-xsl libgcrypt libxml2)) ; for XML_CATALOG_FILES
5147 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
5148 (synopsis "GObject bindings for \"Secret Service\" API")
5149 (description
5150 "Libsecret is a GObject based library for storing and retrieving passwords
5151 and other secrets. It communicates with the \"Secret Service\" using DBus.")
5152 (license license:lgpl2.1+)))
5153
5154 (define-public five-or-more
5155 (package
5156 (name "five-or-more")
5157 (version "3.32.3")
5158 (source
5159 (origin
5160 (method url-fetch)
5161 (uri (string-append "mirror://gnome/sources/five-or-more/"
5162 (version-major+minor version) "/"
5163 "five-or-more-" version ".tar.xz"))
5164 (sha256
5165 (base32 "1x4ys18rn37hsavivh532py2avj9686aycnn8ys29cyyxwpdf41d"))))
5166 (build-system meson-build-system)
5167 (arguments
5168 '(#:glib-or-gtk? #t
5169 #:phases
5170 (modify-phases %standard-phases
5171 (add-after 'unpack 'skip-gtk-update-icon-cache
5172 (lambda _
5173 (substitute* "meson_post_install.py"
5174 (("gtk-update-icon-cache") (which "true"))))))))
5175 (native-inputs
5176 (list appstream-glib
5177 desktop-file-utils
5178 `(,glib "bin") ; for glib-compile-resources
5179 intltool
5180 itstool
5181 pkg-config
5182 vala))
5183 (inputs
5184 (list gtk+ libgnome-games-support librsvg libxml2))
5185 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
5186 (synopsis "Logic puzzle game")
5187 (description "Five or More is a game where you try to align
5188 five or more objects of the same color and shape causing them to disappear.
5189 On every turn more objects will appear, until the board is full.
5190 Try to last as long as possible.")
5191 (license license:gpl2+)))
5192
5193 (define-public gi-docgen
5194 (package
5195 (name "gi-docgen")
5196 (version "2022.1")
5197 (source (origin
5198 (method url-fetch)
5199 (uri (pypi-uri "gi-docgen" version))
5200 (sha256
5201 (base32
5202 "1v2wspm2ld27lq1n5v5pzrmkhchfa7p7ahp8rmjm4zcdyagqf7gr"))))
5203 (build-system python-build-system)
5204 (propagated-inputs (list python-jinja2
5205 python-markdown
5206 python-markupsafe
5207 python-pygments
5208 python-toml
5209 python-typogrify))
5210 (home-page "https://gitlab.gnome.org/GNOME/gi-docgen")
5211 (synopsis "Documentation tool for GObject-based libraries")
5212 (description "GI-DocGen is a document generator for GObject-based
5213 libraries. GObject is the base type system of the GNOME project. GI-Docgen
5214 reuses the introspection data generated by GObject-based libraries to generate
5215 the API reference of these libraries, as well as other ancillary
5216 documentation.")
5217 (license license:gpl3+)))
5218
5219 (define-public gnome-mines
5220 (package
5221 (name "gnome-mines")
5222 (version "40.1")
5223 (source
5224 (origin
5225 (method url-fetch)
5226 (uri (string-append "mirror://gnome/sources/" name "/"
5227 (version-major version) "/"
5228 name "-" version ".tar.xz"))
5229 (sha256
5230 (base32 "0whjwdxhyw5bvibd9qvpm2yc5g7yhy8h3rn027kv5cqwyyryj0im"))))
5231 (build-system meson-build-system)
5232 (arguments
5233 `(#:glib-or-gtk? #t
5234 #:phases
5235 (modify-phases %standard-phases
5236 (add-after 'unpack 'skip-gtk-update-icon-cache
5237 (lambda _
5238 (substitute* "build-aux/meson_post_install.py"
5239 (("gtk-update-icon-cache") (which "true"))))))))
5240 (native-inputs
5241 (list appstream-glib
5242 desktop-file-utils
5243 gettext-minimal
5244 `(,glib "bin") ; for glib-compile-resources
5245 itstool
5246 pkg-config
5247 python-wrapper ; for meson_post_install.py
5248 vala))
5249 (inputs
5250 (list gtk+
5251 libgnome-games-support
5252 librsvg
5253 yelp))
5254 (home-page "https://wiki.gnome.org/Apps/Mines")
5255 (synopsis "Minesweeper game")
5256 (description
5257 "Mines (previously gnomine) is a puzzle game where you locate mines
5258 floating in an ocean using only your brain and a little bit of luck.")
5259 (license license:gpl2+)))
5260
5261 (define-public gnome-multi-writer
5262 (package
5263 (name "gnome-multi-writer")
5264 (version "3.35.90")
5265 (source
5266 (origin
5267 (method url-fetch)
5268 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5269 (version-major+minor version) "/"
5270 "gnome-multi-writer-" version ".tar.xz"))
5271 (sha256
5272 (base32
5273 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5274 (build-system meson-build-system)
5275 (arguments
5276 '(#:glib-or-gtk? #t
5277 #:phases
5278 (modify-phases %standard-phases
5279 (add-after 'unpack 'skip-post-install
5280 (lambda _
5281 (substitute* "meson.build"
5282 (("meson.add_install_script" &) (string-append "# " &)))
5283 #t)))))
5284 (native-inputs
5285 `(("glib:bin" ,glib "bin")
5286 ("pkg-config" ,pkg-config)))
5287 (inputs
5288 (list gtk+
5289 glib ; for gio
5290 gusb
5291 udisks
5292 libgudev
5293 libcanberra
5294 polkit))
5295 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5296 (synopsis "Write to multiple USB devices at once")
5297 (description
5298 "MultiWriter can be used to write an ISO file to multiple USB devices at
5299 once.")
5300 (license license:gpl2+)))
5301
5302 (define-public gnome-sudoku
5303 (package
5304 (name "gnome-sudoku")
5305 (version "42.0")
5306 (source
5307 (origin
5308 (method url-fetch)
5309 (uri (string-append "mirror://gnome/sources/" name "/"
5310 (version-major version) "/"
5311 name "-" version ".tar.xz"))
5312 (sha256
5313 (base32
5314 "13y2qphrj99b0lc7bh71is1f6i0jvyw8adfg8lv48sq2p3fv8bhx"))))
5315 (build-system meson-build-system)
5316 (arguments
5317 `(#:glib-or-gtk? #t
5318 #:phases
5319 (modify-phases %standard-phases
5320 (add-after 'unpack 'skip-gtk-update-icon-cache
5321 (lambda _
5322 (substitute* "build-aux/post_install.py"
5323 (("gtk-update-icon-cache") (which "true"))))))))
5324 (native-inputs
5325 (list desktop-file-utils
5326 gettext-minimal
5327 `(,glib "bin") ;for glib-compile-resources
5328 itstool
5329 libxml2
5330 pkg-config
5331 python ;for 'build-aux/post_install.py'
5332 vala))
5333 (inputs
5334 (list gtk+
5335 json-glib
5336 libgee
5337 librsvg
5338 qqwing))
5339 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5340 (synopsis "Japanese logic game")
5341 (description
5342 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5343 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5344 possible while still providing features that make playing difficult Sudoku
5345 more fun.")
5346 (license license:gpl2+)))
5347
5348 (define-public gnome-terminal
5349 (package
5350 (name "gnome-terminal")
5351 (version "3.44.1")
5352 (source
5353 (origin
5354 (method url-fetch)
5355 (uri (string-append "mirror://gnome/sources/" name "/"
5356 (version-major+minor version) "/"
5357 name "-" version ".tar.xz"))
5358 (sha256
5359 (base32
5360 "0yykb64yi1h0g65q890jf5awjr2sdvfda4xbxnmajcgj3zp20vzv"))))
5361 (build-system meson-build-system)
5362 (arguments
5363 (list
5364 #:glib-or-gtk? #t
5365 #:phases
5366 #~(modify-phases %standard-phases
5367 (add-after 'unpack 'patch-build-system
5368 ;; The build system looks for a dbus file from gnome-shell in the
5369 ;; installation tree of teh package it is configuring...
5370 (lambda* (#:key inputs #:allow-other-keys)
5371 (substitute* "src/meson.build"
5372 (("gt_prefix.*'org.gnome.ShellSearchProvider2.xml'")
5373 (format #f "'~a'" (search-input-file
5374 inputs "share/dbus-1/interfaces/\
5375 org.gnome.ShellSearchProvider2.xml"))))))
5376 (add-before 'install 'disable-gtk-update-icon-cache
5377 (lambda _
5378 (setenv "DESTDIR" "/"))))))
5379 (native-inputs
5380 (list desktop-file-utils
5381 docbook-xsl
5382 gettext-minimal
5383 `(,glib "bin")
5384 itstool
5385 libxml2
5386 libxslt
5387 pkg-config
5388 python))
5389 (propagated-inputs
5390 (list dconf))
5391 (inputs
5392 (list gnome-shell
5393 gnutls
5394 gsettings-desktop-schemas
5395 gtk+
5396 nautilus ;for extension
5397 `(,util-linux "lib")
5398 vala
5399 vte))
5400 (home-page "https://wiki.gnome.org/Apps/Terminal")
5401 (synopsis "Terminal emulator")
5402 (description
5403 "GNOME Terminal is a terminal emulator application for accessing a
5404 UNIX shell environment which can be used to run programs available on
5405 your system.
5406
5407 It supports several profiles, multiple tabs and implements several
5408 keyboard shortcuts.")
5409 (license license:gpl3+)))
5410
5411 (define-public colord-minimal
5412 (package
5413 (name "colord-minimal")
5414 (version "1.4.5")
5415 (source
5416 (origin
5417 (method url-fetch)
5418 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5419 "colord-" version ".tar.xz"))
5420 (sha256
5421 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5422 (build-system meson-build-system)
5423 (arguments
5424 '( ;; FIXME: One test fails:
5425 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5426 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5427 ;; application/x-zerosize
5428 #:tests? #f
5429 #:glib-or-gtk? #t
5430 #:configure-flags (list "-Dargyllcms_sensor=false" ;requires spotread
5431 "-Dbash_completion=false"
5432 "-Ddaemon_user=colord"
5433 "-Ddocs=false"
5434 "-Dlocalstatedir=/var"
5435 "-Dman=false"
5436 "-Dsane=true"
5437 "-Dsystemd=false") ;no systemd
5438 #:phases
5439 (modify-phases %standard-phases
5440 (add-before 'configure 'patch-build-system
5441 (lambda* (#:key outputs #:allow-other-keys)
5442 (substitute* "rules/meson.build"
5443 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5444 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))))
5445 (add-before 'configure 'set-sqlite3-file-name
5446 (lambda* (#:key inputs #:allow-other-keys)
5447 ;; "colormgr dump" works by invoking the "sqlite3" command.
5448 ;; Record its absolute file name.
5449 (let ((sqlite (assoc-ref inputs "sqlite")))
5450 (substitute* "client/cd-util.c"
5451 (("\"sqlite3\"")
5452 (string-append "\"" sqlite "/bin/sqlite3\"")))))))))
5453 (native-inputs
5454 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5455 ("gettext" ,gettext-minimal)
5456 ("pkg-config" ,pkg-config)
5457 ("vala" ,vala)))
5458 (propagated-inputs
5459 ;; colord.pc refers to all these.
5460 `(("glib" ,glib)
5461 ("lcms" ,lcms)
5462 ("udev" ,eudev)))
5463 (inputs
5464 `(("dbus-glib" ,dbus-glib)
5465 ("gobject-introspection" ,gobject-introspection)
5466 ("gusb" ,gusb-minimal)
5467 ("libgudev" ,libgudev)
5468 ("libusb" ,libusb)
5469 ("polkit" ,polkit)
5470 ("python" ,python-wrapper)
5471 ("sqlite" ,sqlite)
5472 ("sane-backends" ,sane-backends)))
5473 (home-page "https://www.freedesktop.org/software/colord/")
5474 (synopsis "Color management service")
5475 (description "Colord is a system service that makes it easy to manage,
5476 install and generate color profiles to accurately color manage input and
5477 output devices.")
5478 (license license:gpl2+)))
5479
5480 (define-public colord
5481 (package/inherit colord-minimal
5482 (name "colord")
5483 (arguments
5484 (substitute-keyword-arguments
5485 (package-arguments colord-minimal)
5486 ((#:configure-flags flags)
5487 `(begin
5488 (use-modules (srfi srfi-1))
5489 (append '("-Dbash_completion=true"
5490 "-Ddocs=true"
5491 "-Dman=true"
5492 "-Dvapi=true")
5493 (fold delete ,flags '("-Dbash_completion=false"
5494 "-Ddocs=false"
5495 "-Dman=false")))))
5496 ((#:phases phases)
5497 `(modify-phases ,phases
5498 (add-after 'unpack 'fix-bash-completion-dir
5499 (lambda* (#:key outputs #:allow-other-keys)
5500 (substitute* "data/meson.build"
5501 (("bash_completion.get_pkgconfig_variable\
5502 \\('completionsdir'\\)")
5503 (string-append "'" (assoc-ref outputs "out")
5504 "/etc/bash_completion.d'")))))))))
5505 (native-inputs
5506 (append
5507 `(("bash-completion" ,bash-completion)
5508 ("docbook-xsl-ns" ,docbook-xsl-ns)
5509 ("gtk-doc" ,gtk-doc/stable)
5510 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5511 ("libxslt" ,libxslt)
5512 ("vala" ,vala)) ;for VAPI, needed by simple-scan
5513 (package-native-inputs colord-minimal)))))
5514
5515 (define-public geoclue
5516 (package
5517 (name "geoclue")
5518 (version "2.6.0")
5519 (source
5520 (origin
5521 (method url-fetch)
5522 (uri
5523 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5524 version "/geoclue-" version ".tar.bz2"))
5525 (sha256
5526 (base32 "1854i8lih1jkks5w38xv8k5gs7s8629qjg3cg96ji0ffk35yzjfd"))
5527 (patches (search-patches "geoclue-config.patch"))))
5528 (build-system meson-build-system)
5529 (arguments
5530 '(#:configure-flags (list "-Ddbus-srv-user=geoclue")))
5531 (native-inputs
5532 (list pkg-config
5533 gobject-introspection
5534 modem-manager
5535 libnotify
5536 gtk-doc/stable
5537 gettext-minimal
5538 vala))
5539 (inputs
5540 (list avahi
5541 `(,glib "bin")
5542 glib-networking
5543 json-glib
5544 libsoup-minimal-2))
5545 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5546 (synopsis "Geolocation service")
5547 (description "Geoclue is a D-Bus service that provides location
5548 information. The primary goal of the Geoclue project is to make creating
5549 location-aware applications as simple as possible, while the secondary goal is
5550 to ensure that no application can access location information without explicit
5551 permission from user.")
5552 (license license:gpl2+)))
5553
5554 (define-public geocode-glib
5555 (package
5556 (name "geocode-glib")
5557 (version "3.26.4")
5558 (source (origin
5559 (method url-fetch)
5560 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5561 (version-major+minor version) "/"
5562 "geocode-glib-" version ".tar.xz"))
5563 (sha256
5564 (base32
5565 "1aipd82qk404qy88pyfgplzgi83db4hi51vkl54h8isqs4k6i6id"))))
5566 (build-system meson-build-system)
5567 (arguments
5568 (list
5569 #:configure-flags #~(list "-Dsoup2=false")
5570 #:phases
5571 #~(modify-phases %standard-phases
5572 ;; The tests require a bunch of locales.
5573 (add-before 'check 'set-locales
5574 (lambda* (#:key inputs #:allow-other-keys)
5575 (setenv "GUIX_LOCPATH"
5576 (search-input-directory inputs "lib/locale")))))))
5577 (native-inputs
5578 (list `(,glib "bin") ;for glib-mkenums
5579 glibc-locales ;for tests
5580 gettext-minimal
5581 gobject-introspection
5582 gtk-doc/stable
5583 pkg-config
5584 json-glib))
5585 (propagated-inputs
5586 ;; geocode-glib-2.0.pc refers to GIO.
5587 (list glib))
5588 (inputs
5589 (list libsoup))
5590 (home-page "https://github.com/GNOME/geocode-glib/")
5591 (synopsis "Geocoding and reverse-geocoding library")
5592 (description
5593 "geocode-glib is a convenience library for geocoding (finding longitude,
5594 and latitude from an address) and reverse geocoding (finding an address from
5595 coordinates) using the Nominatim service. geocode-glib caches requests for
5596 faster results and to avoid unnecessary server load.")
5597 (license license:lgpl2.0+)))
5598
5599 (define-public geocode-glib-with-libsoup2
5600 (package
5601 (inherit geocode-glib)
5602 (name "geocode-glib-with-libsoup2")
5603 (arguments (substitute-keyword-arguments (package-arguments geocode-glib)
5604 ((#:configure-flags flags ''())
5605 #~(delete "-Dsoup2=false" #$flags))))
5606 (inputs (modify-inputs (package-inputs geocode-glib)
5607 (replace "libsoup" libsoup-minimal-2)))))
5608
5609 (define-public upower
5610 (package
5611 (name "upower")
5612 (version "1.90.0")
5613 (source
5614 (origin
5615 (method git-fetch)
5616 (uri (git-reference
5617 (url "https://gitlab.freedesktop.org/upower/upower")
5618 (commit (string-append "v" version))))
5619 (file-name (git-file-name name version))
5620 (sha256
5621 (base32 "1g17rm91p8vfpjyb0k2shylrs55nccn3fa890vlk4n9s71sghbzq"))
5622 (modules '((guix build utils)))
5623 (snippet
5624 ;; Upstream commit <https://cgit.freedesktop.org/upower/commit/
5625 ;; ?id=18457c99b68786cd729b315723d680e6860d9cfa> moved
5626 ;; 'dbus-1/system.d' from etc/ to share/. However,
5627 ;; 'dbus-configuration-directory' in (gnu services dbus) expects it in
5628 ;; etc/. Thus, move it back to its previous location.
5629 #~(substitute* "src/meson.build"
5630 (("dbusdir / 'system.d'")
5631 "get_option('sysconfdir') / 'dbus-1/system.d'")
5632 ;; Avoid writing to /var during the build, this is
5633 ;; not possible in Guix!
5634 (("^install_subdir\\('does-not-exist'.*$") "")))))
5635 (build-system meson-build-system)
5636 (arguments
5637 (list
5638 #:glib-or-gtk? #t
5639 #:configure-flags
5640 #~(list "-Dsystemdsystemunitdir=no"
5641 ;; If not specified, udev will try putting history information
5642 ;; in /gnu/store.
5643 "-Dhistorydir=/var/lib/upower"
5644 (string-append "-Dudevrulesdir=" #$output "/bin/udev/rules.d"))))
5645 (native-inputs
5646 (list `(,glib "bin") ; for gdbus-codegen
5647 gobject-introspection
5648 gtk-doc
5649 intltool
5650 pkg-config
5651 python
5652 ;; For tests.
5653 python-dbus
5654 python-dbusmock
5655 python-packaging
5656 python-pygobject
5657 umockdev
5658 ;; For man pages.
5659 docbook-xsl
5660 libxslt ; for 'xsltproc'
5661 libxml2)) ; for 'XML_CATALOG_FILES'
5662 (inputs
5663 (list dbus-glib libgudev libusb))
5664 (propagated-inputs
5665 ;; In Requires of upower-glib.pc.
5666 (list glib))
5667 (home-page "https://upower.freedesktop.org/")
5668 (synopsis "System daemon for managing power devices")
5669 (description
5670 "UPower is an abstraction for enumerating power devices,
5671 listening to device events and querying history and statistics. Any
5672 application or service on the system can access the org.freedesktop.UPower
5673 service via the system message bus.")
5674 (license license:gpl2+)
5675 ;; Old versions of upower are tagged as UPOWER_0_99_13, which confuses
5676 ;; the 'generic-git' updater. Give it a little help.
5677 (properties '((release-tag-prefix . "v")
5678 (release-tag-version-delimiter . ".")))))
5679
5680 (define-public libgweather
5681 (package
5682 (name "libgweather")
5683 (version "40.0")
5684 (source (origin
5685 (method url-fetch)
5686 (uri (string-append "mirror://gnome/sources/" name "/"
5687 (version-major version) "/"
5688 name "-" version ".tar.xz"))
5689 (sha256
5690 (base32
5691 "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna"))))
5692 (build-system meson-build-system)
5693 (arguments
5694 (list
5695 #:tests? #f ;one of two tests requires network access
5696 #:configure-flags
5697 #~(list (string-append "-Dzoneinfo_dir="
5698 (search-input-directory %build-inputs
5699 "share/zoneinfo")))))
5700 (native-inputs
5701 (list gettext-minimal
5702 `(,glib "bin") ;for glib-mkenums
5703 gobject-introspection
5704 pkg-config
5705 python
5706 vala
5707 python-pygobject))
5708 (propagated-inputs
5709 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5710 ;; libsoup.
5711 (list gtk+ gdk-pixbuf libxml2 libsoup-minimal-2 geocode-glib))
5712 (inputs
5713 (list tzdata))
5714 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5715 (synopsis "Location, time zone, and weather library for GNOME")
5716 (description
5717 "libgweather is a library to access weather information from online
5718 services for numerous locations.")
5719 (license license:gpl2+)))
5720
5721 ;; libgweather no longer follows the GNOME version, and recommends changing
5722 ;; the package name in distributions to avoid accidental downgrades. See
5723 ;; <https://discourse.gnome.org/t/changes-in-libgweather-for-gnome-42/7770/2>.
5724 ;; TODO: how to prevent the updater from picking version 40?
5725 (define-public libgweather4
5726 (package
5727 (inherit libgweather)
5728 (name "libgweather4")
5729 (version "4.1.1")
5730 (source (origin
5731 (method url-fetch)
5732 (uri (string-append "mirror://gnome/sources/libgweather/"
5733 (version-major+minor version) "/"
5734 "libgweather-" version ".tar.xz"))
5735 (sha256
5736 (base32
5737 "1wh3asniv5yiqp0dsk96as2bkx72hamh3ij2md8k0is9yd7ppbjm"))))
5738 (arguments
5739 (list
5740 #:configure-flags
5741 #~(list (string-append "-Dzoneinfo_dir="
5742 (search-input-directory %build-inputs
5743 "share/zoneinfo")))
5744 #:phases
5745 #~(modify-phases %standard-phases
5746 (add-after 'unpack 'set-HOME
5747 (lambda _
5748 (setenv "HOME" "/tmp")))
5749 (add-after 'unpack 'disable-problematic-tests
5750 (lambda _
5751 (substitute* "libgweather/tests/meson.build"
5752 ;; The timezones test fails for unknown reasons (see:
5753 ;; https://gitlab.gnome.org/GNOME/libgweather/-/issues/188).
5754 ((".*'name': 'timezones'.*") "")
5755 ;; The 'metar' test is known to fail, fixed but not yet released
5756 ;; upstream (see:
5757 ;; https://gitlab.gnome.org/GNOME/libgweather/-/issues/168).
5758 ((".*'name': 'metar'.*") ""))))
5759 (delete 'check) ;move after the install phase
5760 (add-after 'install 'check
5761 (assoc-ref %standard-phases 'check)))))
5762 (native-inputs
5763 (list gettext-minimal
5764 gi-docgen
5765 `(,glib "bin") ;for glib-mkenums
5766 gobject-introspection
5767 glibc-utf8-locales
5768 gsettings-desktop-schemas
5769 pkg-config
5770 python
5771 python-pygobject
5772 vala))
5773 ;; TODO: It would be good to make the package respect TZDIR instead
5774 ;; of using a "hard coded" version of tzdata.
5775 (inputs (list tzdata))
5776 (propagated-inputs
5777 ;; gweather4.pc refers to all of these.
5778 (list geocode-glib
5779 glib
5780 json-glib
5781 libsoup
5782 libxml2))))
5783
5784 (define-public libgweather4-with-libsoup2
5785 (package
5786 (inherit libgweather4)
5787 (name "libgweather4-with-libsoup2")
5788 (arguments (substitute-keyword-arguments (package-arguments libgweather4)
5789 ((#:configure-flags flags)
5790 #~(cons "-Dsoup2=true" #$flags))))
5791 (propagated-inputs
5792 (modify-inputs (package-propagated-inputs libgweather4)
5793 (replace "geocode-glib" geocode-glib-with-libsoup2)
5794 (replace "libsoup" libsoup-minimal-2)))))
5795
5796 (define-public gnome-settings-daemon
5797 (package
5798 (name "gnome-settings-daemon")
5799 (version "42.2")
5800 (source
5801 (origin
5802 (method url-fetch)
5803 (uri (string-append "mirror://gnome/sources/" name "/"
5804 (version-major version) "/"
5805 name "-" version ".tar.xz"))
5806 (sha256
5807 (base32
5808 "005b1dvrfcyr6n4srl6c0lzr95c18prps4xm1lf2ghcfm8a9fi4w"))
5809 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5810 (build-system meson-build-system)
5811 (arguments
5812 (list
5813 #:glib-or-gtk? #t
5814 #:configure-flags
5815 #~(list (string-append "-Dudev_dir=" #$output "/lib/udev")
5816 "-Dsystemd=false"
5817 ;; Otherwise, the RUNPATH will lack the final path component.
5818 (string-append "-Dc_link_args=-Wl,-rpath=" #$output
5819 "/lib/gnome-settings-daemon-3.0"))
5820 #:phases
5821 #~(modify-phases %standard-phases
5822 (add-before 'configure 'set-baobab-file-name
5823 (lambda* (#:key inputs #:allow-other-keys)
5824 ;; Hard-code the file name of Baobab instead of looking
5825 ;; it up in $PATH. This ensures users get the "Examine"
5826 ;; button in the low disk space notification of GDM even
5827 ;; if they don't have GNOME in their main profile.
5828 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5829 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5830 (format #f "g_strdup (~s)"
5831 (search-input-file inputs "bin/baobab")))))))
5832 ;; Color management test can't reach the colord system service.
5833 #:tests? #f))
5834 (native-inputs
5835 (list docbook-xml-4.2
5836 docbook-xsl
5837 gettext-minimal
5838 `(,glib "bin") ;for glib-mkenums
5839 libxml2 ;for XML_CATALOG_FILES
5840 libxslt
5841 perl
5842 pkg-config))
5843 (inputs
5844 (list alsa-lib
5845 baobab
5846 colord
5847 cups
5848 gcr
5849 geoclue
5850 geocode-glib-with-libsoup2
5851 gnome-desktop
5852 gsettings-desktop-schemas-next
5853 lcms
5854 libcanberra
5855 libgudev
5856 libgweather4-with-libsoup2
5857 libnotify
5858 (librsvg-for-system)
5859 libwacom
5860 libx11
5861 libxtst
5862 modem-manager
5863 network-manager
5864 nss
5865 polkit
5866 pulseaudio
5867 upower
5868 wayland
5869 xf86-input-wacom))
5870 (home-page "https://www.gnome.org")
5871 (synopsis "GNOME settings daemon")
5872 (description
5873 "This package contains the daemon responsible for setting the various
5874 parameters of a GNOME session and the applications that run under it. It
5875 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5876 settings, themes, mouse settings, and startup of other daemons.")
5877 (license license:gpl2+)))
5878
5879 (define-public totem-pl-parser
5880 (package
5881 (name "totem-pl-parser")
5882 (version "3.26.6")
5883 (source (origin
5884 (method url-fetch)
5885 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5886 (version-major+minor version) "/"
5887 "totem-pl-parser-" version ".tar.xz"))
5888 (sha256
5889 (base32
5890 "075csd5x0frgf93jvhlqiwv5i0qm24zz3iw17jj7v7fgsml0zpy0"))))
5891 (build-system meson-build-system)
5892 (arguments
5893 ;; FIXME: Tests require gvfs.
5894 `(#:tests? #f))
5895 (native-inputs
5896 (list intltool
5897 `(,glib "bin") gobject-introspection pkg-config))
5898 (propagated-inputs
5899 (list glib gmime libarchive libgcrypt libxml2))
5900 (inputs
5901 (list libsoup))
5902 (home-page "https://projects.gnome.org/totem")
5903 (synopsis "Library to parse and save media playlists for GNOME")
5904 (description "Totem-pl-parser is a GObjects-based library to parse and save
5905 playlists in a variety of formats.")
5906 (license license:lgpl2.0+)))
5907
5908 (define-public aisleriot
5909 (package
5910 (name "aisleriot")
5911 (version "3.22.9")
5912 (source (origin
5913 (method url-fetch)
5914 (uri (string-append "mirror://gnome/sources/aisleriot/"
5915 (version-major+minor version) "/"
5916 "aisleriot-" version ".tar.xz"))
5917 (sha256
5918 (base32
5919 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5920 (build-system glib-or-gtk-build-system)
5921 (arguments
5922 '(#:configure-flags
5923 '("--with-platform=gtk-only"
5924 "--with-card-theme-formats=svg")))
5925 (native-inputs
5926 `(("desktop-file-utils" ,desktop-file-utils)
5927 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5928 ("intltool" ,intltool)
5929 ("itstool" ,itstool)
5930 ("pkg-config" ,pkg-config)
5931 ("xmllint" ,libxml2)))
5932 (inputs
5933 (list gtk+ guile-2.2 libcanberra librsvg))
5934 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5935 (synopsis "Solitaire card games")
5936 (description
5937 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5938 which are easy to play with the aid of a mouse.")
5939 (license license:gpl3+)))
5940
5941 (define-public amtk
5942 (package
5943 (name "amtk")
5944 (version "5.3.1")
5945 (source (origin
5946 (method url-fetch)
5947 (uri (string-append "mirror://gnome/sources/amtk/"
5948 (version-major+minor version) "/"
5949 "amtk-" version ".tar.xz"))
5950 (sha256
5951 (base32
5952 "12v3nj1bb7507ndprjggq0hpz8k719b4bwvl8sm43p3ibmn27anm"))))
5953 (build-system meson-build-system)
5954 (native-inputs
5955 (list gobject-introspection
5956 `(,glib "bin") ; for glib-mkenums
5957 gtk-doc/stable pkg-config))
5958 (inputs
5959 (list glib gtk+))
5960 (home-page "https://wiki.gnome.org/Projects/Amtk")
5961 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5962 (description
5963 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5964 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5965 both a traditional UI or a modern UI with a GtkHeaderBar.")
5966 (license license:lgpl2.1+)))
5967
5968 (define-public devhelp
5969 (package
5970 (name "devhelp")
5971 (version "41.2")
5972 (source (origin
5973 (method url-fetch)
5974 (uri (string-append "mirror://gnome/sources/" name "/"
5975 (version-major version) "/"
5976 name "-" version ".tar.xz"))
5977 (sha256
5978 (base32
5979 "1lk0gycjvs6gibhy0zs3ffkrkzrkyl5nkp7n60hgpa6syjq91apc"))))
5980 (build-system meson-build-system)
5981 (arguments
5982 `(#:glib-or-gtk? #t
5983 #:phases
5984 (modify-phases %standard-phases
5985 (add-after 'unpack 'skip-gtk-update-icon-cache
5986 ;; Don't create 'icon-theme.cache'.
5987 (lambda _
5988 (substitute* "build-aux/meson/meson_post_install.py"
5989 (("gtk-update-icon-cache") "true"))))
5990 (add-after 'unpack 'fix-devhelp-gir-inputs
5991 ;; It still mentions webkitgtk 4.0
5992 (lambda _
5993 (substitute* "devhelp/meson.build"
5994 (("'WebKit2-4.0'") "'WebKit2-4.1'")))))))
5995 (propagated-inputs
5996 (list gsettings-desktop-schemas))
5997 (native-inputs
5998 `(("intltool" ,intltool)
5999 ("itstool" ,itstool)
6000 ("gobject-introspection" ,gobject-introspection)
6001 ("glib:bin" ,glib "bin") ; for glib-mkmenus
6002 ("pkg-config" ,pkg-config)))
6003 (inputs
6004 (list amtk gsettings-desktop-schemas webkitgtk))
6005 (home-page "https://wiki.gnome.org/Apps/Devhelp")
6006 (synopsis "API documentation browser for GNOME")
6007 (description
6008 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
6009 natively with GTK-Doc (the API reference system developed for GTK+ and used
6010 throughout GNOME for API documentation).")
6011 (license license:gpl2+)))
6012
6013 (define-public devhelp-with-libsoup2
6014 (package/inherit devhelp
6015 (arguments
6016 (substitute-keyword-arguments (package-arguments devhelp)
6017 ((#:phases phases '%standard-phases)
6018 `(modify-phases %standard-phases
6019 (add-after 'unpack 'skip-gtk-update-icon-cache
6020 ;; Don't create 'icon-theme.cache'.
6021 (lambda _
6022 (substitute* "build-aux/meson/meson_post_install.py"
6023 (("gtk-update-icon-cache") "true"))))))))
6024 (inputs
6025 `(("amtk" ,amtk)
6026 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6027 ("webkitgtk" ,webkitgtk-with-libsoup2)))))
6028
6029 (define-public cogl
6030 (package
6031 (name "cogl")
6032 (version "1.22.8")
6033 (source
6034 (origin
6035 (method url-fetch)
6036 (uri (string-append "mirror://gnome/sources/cogl/"
6037 (version-major+minor version) "/"
6038 "cogl-" version ".tar.xz"))
6039 (sha256
6040 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
6041 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
6042 ;; cogl, corresponding changes may be appropriate in mutter as well.
6043 (build-system gnu-build-system)
6044 (native-inputs
6045 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6046 ("gobject-introspection" ,gobject-introspection)
6047 ("xorg-server" ,xorg-server-for-tests)
6048 ("pkg-config" ,pkg-config)))
6049 (propagated-inputs
6050 (list glib
6051 gdk-pixbuf
6052 libx11
6053 libxext
6054 libxfixes
6055 libxdamage
6056 libxcomposite
6057 libxrandr))
6058 (inputs
6059 (list mesa
6060 cairo
6061 pango
6062 gstreamer
6063 gst-plugins-base
6064 wayland))
6065 (arguments
6066 `(#:disallowed-references (,xorg-server-for-tests)
6067 #:configure-flags (list "--enable-cogl-gst"
6068 "--enable-wayland-egl-platform"
6069 "--enable-wayland-egl-server"
6070
6071 ;; Arrange to pass an absolute file name to
6072 ;; dlopen for libGL.so.
6073 (string-append "--with-gl-libname="
6074 (assoc-ref %build-inputs "mesa")
6075 "/lib/libGL.so"))
6076 #:phases
6077 (modify-phases %standard-phases
6078 (add-after 'unpack 'fix-build-with-mesa-20
6079 (lambda _
6080 ;; Work around a problem with Mesa 20 where some macros used by
6081 ;; Cogl went missing from eglext.h. This can likely be removed
6082 ;; for newer versions of Cogl or Mesa.
6083 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
6084 (substitute* '("configure"
6085 "cogl/winsys/cogl-winsys-egl-kms.c")
6086 (("#include <EGL/eglext.h>" all)
6087 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
6088 #t))
6089 (add-before 'check 'start-xorg-server
6090 (lambda* (#:key tests? inputs #:allow-other-keys)
6091 (if tests?
6092 (begin
6093 ;; The test suite requires a running X server.
6094 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
6095 (assoc-ref inputs "xorg-server")))
6096 (setenv "DISPLAY" ":1")
6097 #t)
6098 (format #t "test suite not run~%"))
6099 #t)))))
6100 (home-page "http://www.clutter-project.org")
6101 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
6102 (description
6103 "Cogl is a small library for using 3D graphics hardware to draw pretty
6104 pictures. The API departs from the flat state machine style of OpenGL and is
6105 designed to make it easy to write orthogonal components that can render
6106 without stepping on each others toes.")
6107 (license (list license:expat ; most of the code
6108 license:bsd-3 ; cogl/cogl-point-in-poly.c
6109 license:sgifreeb2.0 ; cogl-path/tesselator/
6110 license:asl2.0)))) ; examples/android/
6111
6112 (define-public clutter
6113 (package
6114 (name "clutter")
6115 (version "1.26.4")
6116 (source
6117 (origin
6118 (method url-fetch)
6119 (uri (string-append "mirror://gnome/sources/" name "/"
6120 (version-major+minor version) "/"
6121 name "-" version ".tar.xz"))
6122 (sha256
6123 (base32
6124 "1rn4cd1an6a9dfda884aqpcwcgq8dgydpqvb19nmagw4b70zlj4b"))))
6125 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
6126 ;; to clutter, corresponding changes may be appropriate in mutter as well.
6127 (build-system gnu-build-system)
6128 (outputs '("out"
6129 "doc")) ;9 MiB of gtk-doc HTML pages
6130 (native-inputs
6131 (list `(,glib "bin") ; for glib-genmarshal
6132 gobject-introspection
6133 libxslt
6134 pkg-config))
6135 (propagated-inputs
6136 (list atk
6137 cairo
6138 cogl
6139 glib
6140 gtk+
6141 json-glib
6142 libxcomposite
6143 libxdamage
6144 libxext
6145 xinput))
6146 (inputs
6147 (list eudev
6148 libxkbcommon))
6149 (arguments
6150 `(#:configure-flags (list "--enable-x11-backend=yes"
6151
6152 ;; This produces share/doc/{clutter,cally}.
6153 (string-append "--with-html-dir="
6154 (assoc-ref %outputs "doc")
6155 "/share/doc"))
6156 ;; XXX FIXME: Get test suite working. It would probably fail in the
6157 ;; same way the cogl tests fail, since clutter is based on cogl.
6158 #:tests? #f))
6159 (home-page "https://blogs.gnome.org/clutter/")
6160 (synopsis "OpenGL-based interactive canvas library")
6161 (description
6162 "Clutter is an OpenGL-based interactive canvas library, designed for
6163 creating fast, mainly 2D single window applications such as media box UIs,
6164 presentations, kiosk style applications and so on.")
6165 (license license:lgpl2.0+)))
6166
6167 (define-public clutter-gtk
6168 (package
6169 (name "clutter-gtk")
6170 (version "1.8.4")
6171 (source
6172 (origin
6173 (method url-fetch)
6174 (uri (string-append "mirror://gnome/sources/" name "/"
6175 (version-major+minor version) "/"
6176 name "-" version ".tar.xz"))
6177 (sha256
6178 (base32
6179 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
6180 (build-system gnu-build-system)
6181 (native-inputs
6182 (list pkg-config gobject-introspection))
6183 (propagated-inputs
6184 ;; clutter-gtk.pc refers to all these.
6185 (list clutter gtk+))
6186 (home-page "http://www.clutter-project.org")
6187 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
6188 (description
6189 "Clutter is an OpenGL-based interactive canvas library, designed for
6190 creating fast, mainly 2D single window applications such as media box UIs,
6191 presentations, kiosk style applications and so on.")
6192 (license license:lgpl2.0+)))
6193
6194 (define-public clutter-gst
6195 (package
6196 (name "clutter-gst")
6197 (version "3.0.27")
6198 (source
6199 (origin
6200 (method url-fetch)
6201 (uri (string-append "mirror://gnome/sources/clutter-gst/"
6202 (version-major+minor version) "/"
6203 "clutter-gst-" version ".tar.xz"))
6204 (sha256
6205 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
6206 (build-system gnu-build-system)
6207 (native-inputs
6208 (list `(,glib "bin") ; for glib-mkenums
6209 pkg-config gobject-introspection))
6210 (inputs
6211 (list clutter gstreamer gst-plugins-base))
6212 (home-page "http://www.clutter-project.org")
6213 (synopsis "Integration library for using GStreamer with Clutter")
6214 (description
6215 "Clutter-Gst is an integration library for using GStreamer with Clutter.
6216 It provides a GStreamer sink to upload frames to GL and an actor that
6217 implements the ClutterGstPlayer interface using playbin. Clutter is an
6218 OpenGL-based interactive canvas library.")
6219 (license license:lgpl2.0+)))
6220
6221 (define-public libchamplain
6222 (package
6223 (name "libchamplain")
6224 (version "0.12.20")
6225 (source (origin
6226 (method url-fetch)
6227 (uri (string-append
6228 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
6229 version ".tar.xz"))
6230 (sha256
6231 (base32
6232 "0rihpb0npqpihqcdz4w03rq6xl7jdckfqskvv9diq2hkrnzv8ch2"))))
6233 (build-system meson-build-system)
6234 (native-inputs
6235 (list gobject-introspection pkg-config vala))
6236 (propagated-inputs
6237 (list libsoup-minimal-2
6238 sqlite
6239 clutter
6240 clutter-gtk
6241 `(,glib "bin") ;glib-mkenums, etc.
6242 cairo
6243 gtk+
6244 glib))
6245 (home-page "https://projects.gnome.org/libchamplain/")
6246 (synopsis "C library providing a ClutterActor to display maps")
6247 (description
6248 "libchamplain is a C library providing a ClutterActor to display maps.
6249 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
6250 and Perl bindings are also available. It supports numerous free map sources
6251 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
6252 (license license:lgpl2.1+)))
6253
6254 (define-public gom
6255 (package
6256 (name "gom")
6257 (version "0.3.2")
6258 (source
6259 (origin
6260 (method url-fetch)
6261 (uri (string-append "mirror://gnome/sources/gom/"
6262 (version-major+minor version) "/"
6263 "gom-" version ".tar.xz"))
6264 (sha256
6265 (base32
6266 "1zaqqwwkyiswib3v1v8wafpbifpbpak0nn2kp13pizzn9bwz1s5w"))))
6267 (build-system gnu-build-system)
6268 (native-inputs
6269 (list intltool pkg-config gobject-introspection))
6270 (inputs
6271 (list glib gdk-pixbuf sqlite))
6272 ;; XXX TODO: Figure out how to run the test suite.
6273 (arguments `(#:tests? #f))
6274 (home-page "https://wiki.gnome.org/Projects/Gom")
6275 (synopsis "Object mapper from GObjects to SQLite")
6276 (description
6277 "Gom provides an object mapper from GObjects to SQLite. It helps you
6278 write applications that need to store structured data as well as make complex
6279 queries upon that data.")
6280 (license license:lgpl2.1+)))
6281
6282 (define-public libgnome-games-support
6283 (package
6284 (name "libgnome-games-support")
6285 (version "1.7.1")
6286 (source (origin
6287 (method url-fetch)
6288 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
6289 (version-major+minor version) "/"
6290 "libgnome-games-support-" version ".tar.xz"))
6291 (sha256
6292 (base32
6293 "11g1r3ppb9v8m3anks9gxf7fv1x38vmjiya3lr7zjjv328pb69d6"))))
6294 (build-system meson-build-system)
6295 (arguments
6296 '(#:glib-or-gtk? #t
6297 #:phases
6298 (modify-phases %standard-phases
6299 (add-before 'check 'pre-check
6300 (lambda _
6301 ;; Tests require a writable HOME.
6302 (setenv "HOME" (getcwd))
6303 #t)))))
6304 (native-inputs
6305 (list intltool pkg-config vala))
6306 (propagated-inputs
6307 ;; Required by libgnome-games-support-1.0.pc
6308 (list gtk+ libgee))
6309 (home-page "https://www.gnome.org/")
6310 (synopsis "Useful functionality shared among GNOME games")
6311 (description
6312 "libgnome-games-support is a small library intended for internal use by
6313 GNOME Games, but it may be used by others.")
6314 (license license:lgpl3+)))
6315
6316 (define-public gnome-klotski
6317 (package
6318 (name "gnome-klotski")
6319 (version "3.34.0")
6320 (source (origin
6321 (method url-fetch)
6322 (uri (string-append "mirror://gnome/sources/" name "/"
6323 (version-major+minor version) "/"
6324 name "-" version ".tar.xz"))
6325 (sha256
6326 (base32
6327 "0sbx0bzy32lh2c9jp8v7gz788wn9y1la8mr5a7gf7370szsl4d4f"))))
6328 (build-system meson-build-system)
6329 (arguments
6330 '(#:glib-or-gtk? #t
6331 #:phases
6332 (modify-phases %standard-phases
6333 (add-after 'unpack 'skip-gtk-update-icon-cache
6334 ;; Don't create 'icon-theme.cache'.
6335 (lambda _
6336 (substitute* "build-aux/meson_post_install.py"
6337 (("gtk-update-icon-cache") (which "true")))
6338 #t)))))
6339 (native-inputs
6340 `(("desktop-file-utils" ,desktop-file-utils)
6341 ("glib:bin" ,glib "bin") ; for glib-compile-resources
6342 ("intltool" ,intltool)
6343 ("itstool" ,itstool)
6344 ("pkg-config" ,pkg-config)
6345 ("vala" ,vala)
6346 ("xmllint" ,libxml2)))
6347 (inputs
6348 (list gtk+ libgnome-games-support librsvg))
6349 (home-page "https://wiki.gnome.org/Apps/Klotski")
6350 (synopsis "Sliding block puzzles")
6351 (description
6352 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6353 the patterned block to the area bordered by green markers. To do so, you will
6354 need to slide other blocks out of the way. Complete each puzzle in as few moves
6355 as possible!")
6356 (license license:gpl2+)))
6357
6358 (define-public grilo
6359 (package
6360 (name "grilo")
6361 (version "0.3.13")
6362 (source
6363 (origin
6364 (method url-fetch)
6365 (uri (string-append "mirror://gnome/sources/grilo/"
6366 (version-major+minor version) "/"
6367 "grilo-" version ".tar.xz"))
6368 (sha256
6369 (base32 "0ywjvh7xw4ql1q4fvl0q5n06n08pga1g1nc9l7c3x5214gr3fj6i"))))
6370 (build-system meson-build-system)
6371 (native-inputs
6372 (list `(,glib "bin") ; for glib-mkenums and glib-genmarshal
6373 intltool
6374 pkg-config
6375 gobject-introspection
6376 gtk-doc/stable
6377 vala))
6378 (inputs
6379 (list cyrus-sasl
6380 glib
6381 gtk+
6382 libxml2
6383 liboauth
6384 libsoup-minimal-2
6385 totem-pl-parser))
6386 (native-search-paths
6387 (list (search-path-specification
6388 (variable "GRL_PLUGIN_PATH")
6389 (files (list (string-append "lib/grilo-"
6390 (version-major+minor version)))))))
6391 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6392 (synopsis "Framework for discovering and browsing media")
6393 (description
6394 "Grilo is a framework focused on making media discovery and browsing easy
6395 for application developers.")
6396 (license license:lgpl2.1+)))
6397
6398 (define-public grilo-plugins
6399 (package
6400 (name "grilo-plugins")
6401 (version "0.3.13")
6402 (source
6403 (origin
6404 (method url-fetch)
6405 (uri (string-append "mirror://gnome/sources/" name "/"
6406 (version-major+minor version) "/"
6407 name "-" version ".tar.xz"))
6408 (sha256
6409 (base32 "1y10nnd711qxwgpz6spzp1rnk50fyf11kk1n71a31ab4fgb0ahqw"))))
6410 (build-system meson-build-system)
6411 (native-inputs
6412 `(("gettext" ,gettext-minimal)
6413 ("glib:bin" ,glib "bin")
6414 ("gtk+:bin" ,gtk+ "bin")
6415 ("itstool" ,itstool)
6416 ("pkg-config" ,pkg-config)))
6417 ;; TODO: ahavi, gstreamer
6418 (inputs
6419 `(("grilo" ,grilo)
6420 ;("gmime" ,gmime) ; unused
6421 ("gnome-online-accounts" ,gnome-online-accounts)
6422 ("gom" ,gom)
6423 ;("gssdp" ,gssdp) ; unused
6424 ;("gupnp" ,gupnp) ; unused
6425 ;("gupnp-av" ,gupnp-av) ; unused
6426 ("json-glib" ,json-glib)
6427 ("avahi" ,avahi)
6428 ("libgdata" ,libgdata)
6429 ("libmediaart" ,libmediaart)
6430 ;("librest" ,rest) ; unused
6431 ("libsoup" ,libsoup)
6432 ("python-pygobject" ,python-pygobject)
6433 ("totam-pl-parser" ,totem-pl-parser)
6434 ("tracker" ,tracker)
6435 ("tracker-miners" ,tracker-miners)))
6436 (arguments
6437 `(#:glib-or-gtk? #t
6438 ;;Disable lua-factory as it needs missing dependencies
6439 #:configure-flags '("-Denable-lua-factory=no")
6440 #:phases
6441 (modify-phases %standard-phases
6442 (add-before 'configure 'set-shell
6443 (lambda _
6444 (setenv "SHELL" (which "bash"))))
6445 ;; Disable the tracker test that requires the UPower daemon.
6446 (add-before 'configure 'fix-tests
6447 (lambda* (#:key inputs #:allow-other-keys)
6448 (substitute* "tests/tracker3/meson.build"
6449 (("'test_tracker3'.*") "")))))))
6450 (home-page "https://live.gnome.org/Grilo")
6451 (synopsis "Plugins for the Grilo media discovery library")
6452 (description
6453 "Grilo is a framework focused on making media discovery and browsing easy
6454 for application developers. This package provides plugins for common media
6455 discovery protocols.")
6456 (license license:lgpl2.1+)))
6457
6458 (define-public totem
6459 (package
6460 (name "totem")
6461 (version "42.0")
6462 (source
6463 (origin
6464 (method url-fetch)
6465 (uri (string-append "mirror://gnome/sources/totem/"
6466 (version-major version) "/"
6467 "totem-" version ".tar.xz"))
6468 (sha256
6469 (base32 "1az6ay7zhz2naqrzcfldx1yv2ylw1yjx76g3mqrqppwmvcflkw2a"))))
6470 (build-system meson-build-system)
6471 (native-inputs
6472 (list pkg-config
6473 desktop-file-utils
6474 gettext-minimal
6475 gobject-introspection
6476 `(,glib "bin") ;for 'glib-mkenums'
6477 itstool
6478 libxml2
6479 xorg-server-for-tests))
6480 (propagated-inputs
6481 (list dconf))
6482 (inputs
6483 (list gtk+
6484 gdk-pixbuf
6485 atk
6486 cairo
6487 dbus-glib
6488 xorgproto
6489 libxxf86vm
6490 libxtst
6491 libxrandr
6492 libxml2
6493 libsoup
6494 libpeas
6495 librsvg
6496 libhandy
6497 gnome-desktop
6498 gstreamer
6499 gst-plugins-base
6500 gst-plugins-good
6501 gsettings-desktop-schemas
6502 adwaita-icon-theme
6503 python
6504 python-pygobject
6505 totem-pl-parser
6506 grilo
6507 grilo-plugins
6508 vala))
6509 (arguments
6510 (list
6511 #:glib-or-gtk? #t
6512 ;; Disable automatic GStreamer plugin installation via PackageKit and
6513 ;; all that.
6514 #:configure-flags #~(list "-Denable-easy-codec-installation=no"
6515 ;; Do not build .a files for the plugins, it's
6516 ;; completely useless. This saves 2 MiB.
6517 "--default-library" "shared")
6518 #:phases
6519 #~(modify-phases %standard-phases
6520 (add-after 'unpack 'skip-gtk-update-icon-cache
6521 ;; Don't create 'icon-theme.cache'.
6522 (lambda _
6523 (substitute* "meson_post_install.py"
6524 (("gtk-update-icon-cache") "true"))))
6525 (add-before 'install 'disable-cache-generation
6526 (lambda _
6527 (setenv "DESTDIR" "/")))
6528 (add-before 'check 'pre-check
6529 (lambda _
6530 ;; Tests require a running X server.
6531 (system "Xvfb :1 &")
6532 (setenv "DISPLAY" ":1")))
6533 (add-after 'install 'wrap-totem
6534 (lambda* (#:key inputs outputs #:allow-other-keys)
6535 (let ((out (assoc-ref outputs "out"))
6536 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6537 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6538 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6539 (wrap-program (string-append out "/bin/totem")
6540 `("GI_TYPELIB_PATH" ":" suffix (,gi-typelib-path))
6541 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6542 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6543 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6544 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))))))))
6545 (home-page "https://wiki.gnome.org/Apps/Videos")
6546 (synopsis "Simple media player for GNOME based on GStreamer")
6547 (description "Totem is a simple yet featureful media player for GNOME
6548 which can read a large number of file formats.")
6549 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6550 ;; to be used and distributed together with GStreamer and Totem. See
6551 ;; file://COPYING in the source distribution for details.
6552 (license license:gpl2+)))
6553
6554 (define-public rhythmbox
6555 (package
6556 (name "rhythmbox")
6557 (version "3.4.4")
6558 (source (origin
6559 (method url-fetch)
6560 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6561 (version-major+minor version) "/"
6562 "rhythmbox-" version ".tar.xz"))
6563 (sha256
6564 (base32
6565 "142xcvw4l19jyr5i72nbnrihs953pvrrzcbijjn9dxmxszbv03pf"))))
6566 (build-system glib-or-gtk-build-system)
6567 (arguments
6568 `(#:configure-flags
6569 (list "--enable-lirc"
6570 "--enable-python"
6571 "--enable-vala"
6572 "--with-brasero"
6573 "--with-gudev"
6574 "--with-libsecret")
6575 #:phases
6576 (modify-phases %standard-phases
6577 (add-after
6578 'install 'wrap-rhythmbox
6579 (lambda* (#:key inputs outputs #:allow-other-keys)
6580 (let ((out (assoc-ref outputs "out"))
6581 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6582 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6583 (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))
6584 (python-path (getenv "GUIX_PYTHONPATH")))
6585 (wrap-program (string-append out "/bin/rhythmbox")
6586 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
6587 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6588 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path))
6589 `("GUIX_PYTHONPATH" ":" prefix (,python-path))))
6590 #t)))))
6591 (propagated-inputs
6592 (list dconf))
6593 (native-inputs
6594 `(("itstool" ,itstool)
6595 ("intltool" ,intltool)
6596 ("glib" ,glib "bin")
6597 ("gobject-introspection" ,gobject-introspection)
6598 ("desktop-file-utils" ,desktop-file-utils)
6599 ("pkg-config" ,pkg-config)
6600 ("xmllint" ,libxml2)))
6601 (inputs
6602 `(("json-glib" ,json-glib)
6603 ("tdb" ,tdb)
6604 ("gnome-desktop" ,gnome-desktop)
6605 ("python" ,python)
6606 ("python-pygobject" ,python-pygobject)
6607 ("vala" ,vala)
6608 ("gmime" ,gmime)
6609 ("adwaita-icon-theme" ,adwaita-icon-theme)
6610 ("grilo" ,grilo)
6611 ("grilo-plugins" ,grilo-plugins)
6612 ("gstreamer" ,gstreamer)
6613 ("gst-plugins-base" ,gst-plugins-base)
6614 ("gst-plugins-good" ,gst-plugins-good)
6615 ("totem-pl-parser" ,totem-pl-parser)
6616 ("libgudev" ,libgudev)
6617 ;;("libmtp" ,libmtp) FIXME: Not detected
6618 ("libsecret" ,libsecret)
6619 ("libsoup" ,libsoup)
6620 ("libnotify" ,libnotify)
6621 ("libpeas" ,libpeas)
6622 ("libsoup" ,libsoup-minimal-2)
6623 ("lirc" ,lirc)
6624 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6625 ;;("clutter" ,clutter)
6626 ;;("clutter-gtk" ,clutter-gtk)
6627 ;;("clutter-gst" ,clutter-gst)
6628 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
6629 ("atk" ,atk)
6630 ("pango" ,pango)
6631 ("gtk+" ,gtk+)
6632 ;; TODO:
6633 ;; * libgpod
6634 ;; * mx
6635 ("brasero" ,brasero)))
6636 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6637 (synopsis "Music player for GNOME")
6638 (description "Rhythmbox is a music playing application for GNOME. It
6639 supports playlists, song ratings, and any codecs installed through gstreamer.")
6640 (license license:gpl2+)))
6641
6642 (define-public eog
6643 (package
6644 (name "eog")
6645 (version "42.2")
6646 (source (origin
6647 (method url-fetch)
6648 (uri (string-append "mirror://gnome/sources/" name "/"
6649 (version-major version) "/"
6650 name "-" version ".tar.xz"))
6651 (sha256
6652 (base32
6653 "0ph4b05cjlkzbn8vil4hjkwvfr1cp819yi2qifp418p15rm4lk8f"))))
6654 (build-system meson-build-system)
6655 (arguments
6656 (list
6657 #:glib-or-gtk? #t
6658 #:configure-flags
6659 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6660 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
6661 #$output "/lib/eog"))
6662 #:phases
6663 #~(modify-phases %standard-phases
6664 (add-after 'unpack 'skip-gtk-update-icon-cache
6665 ;; Don't create 'icon-theme.cache'.
6666 (lambda _
6667 (substitute* "meson.build"
6668 (("gtk_update_icon_cache: true")
6669 "gtk_update_icon_cache: false"))))
6670 (add-after 'install 'wrap-eog
6671 (lambda* (#:key outputs #:allow-other-keys)
6672 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6673 (wrap-program (search-input-file outputs "bin/eog")
6674 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
6675 (propagated-inputs
6676 (list dconf))
6677 (native-inputs
6678 (list gettext-minimal
6679 itstool
6680 `(,glib "bin")
6681 gobject-introspection
6682 pkg-config
6683 libxml2))
6684 (inputs
6685 (list gnome-desktop
6686 shared-mime-info
6687 adwaita-icon-theme
6688 exempi
6689 lcms
6690 libexif
6691 libhandy
6692 libpeas
6693 libportal
6694 libjpeg-turbo
6695 librsvg
6696 gtk))
6697 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6698 (synopsis "GNOME image viewer")
6699 (description "Eye of GNOME is the GNOME image viewer. It
6700 supports image conversion, rotation, and slideshows.")
6701 (license license:gpl2+)))
6702
6703 (define-public eog-plugins
6704 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6705 ;; $DATA/eog/plugins, where DATA is one of the entries in
6706 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6707 ;; 'XDG_DATA_DIRS' appropriately set.
6708 (package
6709 (name "eog-plugins")
6710 (version "3.26.8")
6711 (source (origin
6712 (method url-fetch)
6713 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6714 (version-major+minor version) "/"
6715 "eog-plugins-" version ".tar.xz"))
6716 (sha256
6717 (base32
6718 "1dcxdjp7x092wn0iq7975f9b05ksb5kl5mxmyiqmydrja91ryw40"))))
6719 (build-system gnu-build-system)
6720 (arguments
6721 '(#:phases
6722 (modify-phases %standard-phases
6723 (add-after 'install 'fix-plugins-path
6724 ;; XXX: EOG looks its plugins in "share/eog/plugins", not in
6725 ;; "lib/eog/plugins".
6726 (lambda* (#:key outputs #:allow-other-keys)
6727 (let* ((out (assoc-ref outputs "out"))
6728 (plugins (string-append out "/share/eog/plugins")))
6729 (mkdir (dirname plugins))
6730 (symlink (string-append out "/lib/eog/plugins") plugins)))))))
6731 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6732 (synopsis "Extensions for the Eye of GNOME image viewer")
6733 (native-inputs
6734 (list pkg-config gettext-minimal))
6735 (inputs
6736 (list eog
6737 glib
6738 gtk+
6739 libpeas
6740 libexif
6741 libchamplain))
6742 (description
6743 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6744 notably:
6745
6746 @itemize
6747 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6748 @item @dfn{Map}, which displays a map of where the picture was taken on the
6749 side panel;
6750 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6751 @end itemize\n")
6752
6753 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6754 ;; long suspicious byte stream that goes to a
6755 ;; ".gresource.eog_postasa_plugin" ELF section.
6756 (license license:gpl2+)))
6757
6758 (define-public libgudev
6759 (package
6760 (name "libgudev")
6761 (version "236")
6762 (source (origin
6763 (method url-fetch)
6764 (uri (string-append "mirror://gnome/sources/" name "/"
6765 version "/" name "-" version ".tar.xz"))
6766 (sha256
6767 (base32
6768 "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
6769 (build-system meson-build-system)
6770 (native-inputs
6771 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6772 ("gobject-introspection" ,gobject-introspection)
6773 ("pkg-config" ,pkg-config)))
6774 (propagated-inputs
6775 (list glib ; in Requires of gudev-1.0.pc
6776 eudev)) ; in Requires.private of gudev-1.0.pc
6777 (inputs
6778 `(("udev" ,eudev)))
6779 (home-page "https://wiki.gnome.org/Projects/libgudev")
6780 (synopsis "GObject bindings for libudev")
6781 (description
6782 "This library provides GObject bindings for libudev. It was originally
6783 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6784 (license license:lgpl2.1+)))
6785
6786 (define-public gvfs
6787 (package
6788 (name "gvfs")
6789 (version "1.50.2")
6790 (source (origin
6791 (method url-fetch)
6792 (uri (string-append "mirror://gnome/sources/gvfs/"
6793 (version-major+minor version) "/"
6794 "gvfs-" version ".tar.xz"))
6795 (sha256
6796 (base32
6797 "0pmc0vda1ksm9l7v64h4bm8qnv16amb7nifgy0882hzg2n62pmq3"))))
6798 (build-system meson-build-system)
6799 (arguments
6800 (list #:glib-or-gtk? #t
6801 #:configure-flags
6802 #~(list "-Dsystemduserunitdir=no"
6803 "-Dtmpfilesdir=no"
6804 ;; Otherwise, the RUNPATH will lack the final path component.
6805 (string-append "-Dc_link_args=-Wl,-rpath="
6806 #$output "/lib/gvfs"))))
6807 (native-inputs
6808 (list `(,glib "bin") ;for glib-genmarshal, etc.
6809 gettext-minimal
6810 gtk-doc/stable
6811 pkg-config
6812 libxslt))
6813 (inputs
6814 (list avahi
6815 docbook-xml-4.2
6816 docbook-xsl
6817 dbus
6818 elogind
6819 fuse-3
6820 gcr
6821 glib
6822 gnome-online-accounts
6823 gsettings-desktop-schemas
6824 libarchive
6825 libbluray
6826 libcap
6827 libcdio-paranoia
6828 libgcrypt
6829 libgdata
6830 libgphoto2
6831 libgudev
6832 libimobiledevice
6833 libmtp
6834 libnfs
6835 libsecret
6836 samba
6837 libsoup
6838 libxml2
6839 openssh
6840 polkit
6841 udisks))
6842 (home-page "https://wiki.gnome.org/gvfs/")
6843 (synopsis "Userspace virtual file system for GIO")
6844 (description
6845 "GVFS is a userspace virtual file system designed to work with the I/O
6846 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS
6847 support to all applications using the GIO API. It also supports exposing the
6848 GVFS mounts to non-GIO applications using FUSE.
6849
6850 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6851 DAV, and others.")
6852 (license license:lgpl2.0+)))
6853
6854 (define-public gusb-minimal
6855 (package
6856 (name "gusb-minimal")
6857 (version "0.3.5")
6858 (source (origin
6859 (method git-fetch)
6860 (uri (git-reference
6861 (url "https://github.com/hughsie/libgusb")
6862 (commit version)))
6863 (file-name (git-file-name name version))
6864 (sha256
6865 (base32
6866 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6867 (build-system meson-build-system)
6868 (arguments
6869 `(#:tests? #f ;libusb fails to initialize. Wonder what that is.
6870 #:configure-flags
6871 (cons "-Ddocs=false"
6872 (if ,(%current-target-system)
6873 ;; Introspection data cannot currently be cross-compiled.
6874 '("-Dintrospection=false"
6875 ;; Requires introspection data.
6876 "-Dvapi=false")
6877 '()))))
6878 (native-inputs
6879 (list gobject-introspection pkg-config python vala))
6880 (propagated-inputs
6881 ;; Both of these are required by gusb.pc.
6882 (list glib libusb))
6883 (home-page "https://github.com/hughsie/libgusb")
6884 (synopsis "GLib binding for libusb1")
6885 (description
6886 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6887 asynchronous control, bulk and interrupt transfers with proper cancellation
6888 and integration into a mainloop. This makes it easy to integrate low level
6889 USB transfers with your high-level application or system daemon.")
6890 (license license:lgpl2.1+)))
6891
6892 (define-public gusb
6893 (package/inherit gusb-minimal
6894 (name "gusb")
6895 (arguments
6896 (substitute-keyword-arguments (package-arguments gusb-minimal)
6897 ((#:configure-flags flags)
6898 `(cons "-Ddocs=true"
6899 (delete "-Ddocs=false" ,flags)))))
6900 (native-inputs
6901 (cons `("gtk-doc" ,gtk-doc/stable)
6902 (package-native-inputs gusb-minimal)))))
6903
6904 (define-public simple-scan
6905 (package
6906 (name "simple-scan")
6907 (version "42.1")
6908 (source
6909 (origin
6910 (method url-fetch)
6911 (uri (string-append "mirror://gnome/sources/simple-scan/"
6912 (version-major version) "/"
6913 "simple-scan-" version ".tar.xz"))
6914 (sha256
6915 (base32 "09i23f8j3knppyxmikzfq9s09xarsgp9sqx9mfyvas8p3ihw16w5"))))
6916 (build-system meson-build-system)
6917 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6918 (arguments
6919 '(#:glib-or-gtk? #t))
6920 (native-inputs
6921 (list gettext-minimal
6922 itstool
6923 `(,glib "bin") ; glib-compile-schemas, etc.
6924 pkg-config
6925 python
6926 vala
6927 libxml2))
6928 (inputs
6929 (list gtk+
6930 zlib
6931 cairo
6932 colord
6933 gdk-pixbuf
6934 gusb
6935 libhandy
6936 sane-backends))
6937 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6938 (synopsis "Document and image scanner")
6939 (description
6940 "Document Scanner is an easy-to-use application that lets you connect your
6941 scanner and quickly capture images and documents in an appropriate format. It
6942 supports any scanner for which a suitable SANE driver is available, which is
6943 almost all of them.")
6944 (license license:gpl3+)))
6945
6946 (define-public eolie
6947 (package
6948 (name "eolie")
6949 (version "0.9.101")
6950 (source (origin
6951 (method url-fetch)
6952 (uri (string-append "https://adishatz.org/eolie/eolie-"
6953 version ".tar.xz"))
6954 (sha256
6955 (base32
6956 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6957 (build-system meson-build-system)
6958 (arguments
6959 `(#:glib-or-gtk? #t
6960 #:phases
6961 (modify-phases %standard-phases
6962 (add-after 'unpack 'skip-gtk-update-icon-cache
6963 ;; Don't create 'icon-theme.cache'.
6964 (lambda _
6965 (substitute* "meson_post_install.py"
6966 (("gtk-update-icon-cache") "true"))
6967 #t))
6968 (add-after 'wrap 'wrap-more
6969 (lambda* (#:key inputs outputs #:allow-other-keys)
6970 (let* ((out (assoc-ref outputs "out"))
6971 ;; These libraries must be on LD_LIBRARY_PATH.
6972 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6973 "atk" "gtk+" "gsettings-desktop-schemas"
6974 "gobject-introspection"))
6975 (path (string-join
6976 (map (lambda (lib)
6977 (string-append (assoc-ref inputs lib) "/lib"))
6978 libs)
6979 ":")))
6980 (wrap-program (string-append out "/bin/eolie")
6981 `("LD_LIBRARY_PATH" ":" prefix (,path))
6982 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
6983 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
6984 #t)))))
6985 (native-inputs
6986 `(("intltool" ,intltool)
6987 ("itstool" ,itstool)
6988 ("pkg-config" ,pkg-config)
6989 ("python" ,python)
6990 ("glib:bin" ,glib "bin")))
6991 (inputs
6992 `(("gobject-introspection" ,gobject-introspection)
6993 ("glib-networking" ,glib-networking)
6994 ("cairo" ,cairo)
6995 ("gtk+" ,gtk+)
6996 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
6997 ("python" ,python-wrapper)
6998 ("python-dateutil" ,python-dateutil)
6999 ("python-pyfxa" ,python-pyfxa)
7000 ("python-pygobject" ,python-pygobject)
7001 ("python-pycairo" ,python-pycairo)
7002 ("python-pycrypto" ,python-pycrypto)
7003 ("libhandy" ,libhandy)
7004 ("libsecret" ,libsecret)
7005 ("gtkspell3" ,gtkspell3)
7006 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7007 ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
7008 ("webkitgtk" ,webkitgtk)))
7009 (home-page "https://wiki.gnome.org/Apps/Eolie")
7010 (synopsis "Web browser for GNOME")
7011 (description
7012 "Eolie is a new web browser for GNOME. It features Firefox sync support,
7013 a secret password store, an adblocker, and a modern UI.")
7014 (license license:gpl3+)))
7015
7016 (define-public epiphany
7017 (package
7018 (name "epiphany")
7019 (version "42.2")
7020 (source (origin
7021 (method url-fetch)
7022 (uri (string-append "mirror://gnome/sources/epiphany/"
7023 (version-major version) "/"
7024 "epiphany-" version ".tar.xz"))
7025 (sha256
7026 (base32
7027 "0b8rhns3b58f8dnp83mm1g933aqf88d8wrfyyp7jq3fihvw2rh4j"))))
7028 (build-system meson-build-system)
7029 (arguments
7030 (list
7031 #:glib-or-gtk? #t
7032 #:phases
7033 #~(modify-phases %standard-phases
7034 (add-after 'unpack 'skip-gtk-update-icon-cache
7035 ;; Don't create 'icon-theme.cache'.
7036 (lambda _
7037 (substitute* "post_install.py"
7038 (("gtk-update-icon-cache") "true"))))
7039 (add-after 'unpack 'disable-failing-tests
7040 (lambda _
7041 (substitute* "tests/meson.build"
7042 ;; embed_shell fails, because webkitgtk apparently no longer
7043 ;; supports overriding the ftp schema web_app_utils fails due
7044 ;; to missing network access.
7045 (("(embed_shell|web_app_utils)_test,")
7046 "find_program('sh'), args: ['-c', 'exit 77'],"))))
7047 (add-before 'check 'pre-check
7048 (lambda _
7049 ;; Tests require a running X server.
7050 (system "Xvfb :1 &")
7051 (setenv "DISPLAY" ":1"))))
7052 #:configure-flags
7053 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
7054 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7055 #$output "/lib/epiphany"))))
7056 (propagated-inputs (list dconf))
7057 (native-inputs (list desktop-file-utils ; for update-desktop-database
7058 `(,glib "bin") ; for glib-mkenums
7059 intltool
7060 itstool
7061 pkg-config
7062 libxml2
7063 xorg-server-for-tests))
7064 (inputs (list avahi
7065 gcr
7066 librsvg ; for loading SVG files
7067 glib-networking
7068 gnome-desktop
7069 gsettings-desktop-schemas
7070 json-glib
7071 iso-codes
7072 libarchive
7073 libdazzle
7074 libhandy
7075 libnotify
7076 libportal
7077 libsecret
7078 libxslt
7079 nettle ; for hogweed
7080 sqlite
7081 webkitgtk-with-libsoup2))
7082 (home-page "https://wiki.gnome.org/Apps/Web")
7083 (synopsis "GNOME web browser")
7084 (description
7085 "Epiphany is a GNOME web browser targeted at non-technical users. Its
7086 principles are simplicity and standards compliance.")
7087 (license license:gpl2+)))
7088
7089 (define-public d-feet
7090 (package
7091 (name "d-feet")
7092 (version "0.3.14")
7093 (source (origin
7094 (method url-fetch)
7095 (uri (string-append "mirror://gnome/sources/" name "/"
7096 (version-major+minor version) "/"
7097 name "-" version ".tar.xz"))
7098 (sha256
7099 (base32
7100 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
7101 (build-system glib-or-gtk-build-system)
7102 (arguments
7103 '(#:out-of-source? #f ; tests need to run in the source directory.
7104 #:phases
7105 (modify-phases %standard-phases
7106 (add-before
7107 'check 'pre-check
7108 (lambda _
7109 ;; The test suite requires a running X server.
7110 (system "Xvfb :1 &")
7111 (setenv "DISPLAY" ":1")
7112 ;; Don't fail on missing '/etc/machine-id'.
7113 (setenv "DBUS_FATAL_WARNINGS" "0")
7114 ;; tests.py and window.py don't meet E402:
7115 ;; E402 module level import not at top of file
7116 (substitute* "src/tests/Makefile"
7117 (("--ignore=E123") "--ignore=E123,E402"))
7118 #t))
7119 (add-after
7120 'install 'wrap-program
7121 (lambda* (#:key outputs #:allow-other-keys)
7122 (let ((prog (string-append (assoc-ref outputs "out")
7123 "/bin/d-feet")))
7124 (wrap-program prog
7125 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
7126 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
7127 #t))))))
7128 (native-inputs
7129 `(("intltool" ,intltool)
7130 ("itstool" ,itstool)
7131 ("pkg-config" ,pkg-config)
7132 ("python-pep8" ,python-pep8)
7133 ("xmllint" ,libxml2)
7134 ("xorg-server" ,xorg-server-for-tests)))
7135 (inputs
7136 `(("gobject-introspection" ,gobject-introspection)
7137 ("gtk+" ,gtk+)
7138 ("python" ,python-wrapper)
7139 ("hicolor-icon-theme" ,hicolor-icon-theme)
7140 ("python-pygobject" ,python-pygobject)))
7141 (home-page "https://wiki.gnome.org/Apps/DFeet")
7142 (synopsis "D-Bus debugger")
7143 (description
7144 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
7145 of running programs and invoke methods on those interfaces.")
7146 (license license:gpl2+)))
7147
7148 (define-public yelp-xsl
7149 (package
7150 (name "yelp-xsl")
7151 (version "41.0")
7152 (source
7153 (origin
7154 (method url-fetch)
7155 (uri
7156 (string-append "mirror://gnome/sources/" name "/"
7157 (version-major version) "/"
7158 name "-" version ".tar.xz"))
7159 (sha256
7160 (base32 "19d46rkajvr0f04560vlrzwvac88x5j8ilvzwkawbn5vjg069kf8"))))
7161 (build-system gnu-build-system)
7162 (arguments
7163 `(#:configure-flags
7164 (list
7165 "--enable-doc")))
7166 (native-inputs
7167 `(("ducktype" ,mallard-ducktype)
7168 ("gettext" ,gettext-minimal)
7169 ("intltool" ,intltool)
7170 ("itstool" ,itstool)
7171 ("xmllint" ,libxml2)
7172 ("xsltproc" ,libxslt)))
7173 (synopsis "XSL stylesheets for Yelp")
7174 (description "Yelp-XSL is a collection of programs and data files to help
7175 you build, maintain, and distribute documentation. It provides XSLT stylesheets
7176 that can be built upon for help viewers and publishing systems. These
7177 stylesheets output JavaScript and CSS content, and reference images
7178 provided by yelp-xsl. It also redistributes copies of the jQuery and
7179 jQuery.Syntax JavaScript libraries.")
7180 (home-page "https://wiki.gnome.org/Apps/Yelp")
7181 (license
7182 (list
7183 ;; XSLT
7184 license:gpl2+
7185 ;; Images
7186 license:lgpl2.1+
7187 ;; JavaScript
7188 license:expat))))
7189
7190 (define-public yelp
7191 (package
7192 (name "yelp")
7193 (version "41.0")
7194 (source (origin
7195 (method url-fetch)
7196 (uri (string-append "mirror://gnome/sources/" name "/"
7197 (version-major version) "/"
7198 name "-" version ".tar.xz"))
7199 (sha256
7200 (base32
7201 "11shrqass8ak8m10nayqssa6sbrrxa13ffpamvqi1c0yzkxdk9r5"))))
7202 (build-system glib-or-gtk-build-system)
7203 (native-inputs
7204 (list `(,glib "bin") ; for glib-genmarshal, etc.
7205 intltool itstool pkg-config))
7206 (propagated-inputs
7207 (list dconf))
7208 (inputs
7209 (list gsettings-desktop-schemas libxslt sqlite webkitgtk yelp-xsl))
7210 (home-page "https://wiki.gnome.org/Apps/Yelp")
7211 (synopsis "GNOME help browser")
7212 (description
7213 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
7214 man, info, and HTML documents. It can locate documents according to the
7215 freedesktop.org help system specification.")
7216 (license license:gpl2+)))
7217
7218 (define-public yelp-tools
7219 (package
7220 (name "yelp-tools")
7221 (version "3.32.2")
7222 (source
7223 (origin
7224 (method url-fetch)
7225 (uri
7226 (string-append "mirror://gnome/sources/" name "/"
7227 (version-major+minor version) "/"
7228 name "-" version ".tar.xz"))
7229 (sha256
7230 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
7231 (build-system gnu-build-system)
7232 (native-inputs
7233 (list pkg-config))
7234 (inputs
7235 (list yelp-xsl))
7236 (propagated-inputs
7237 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
7238 `(("itstool" ,itstool)
7239 ("xmllint" ,libxml2)
7240 ("xsltproc" ,libxslt)))
7241 (synopsis "Yelp documentation tools")
7242 (description
7243 "Yelp-tools is a collection of scripts and build utilities to help create,
7244 manage, and publish documentation for Yelp and the web. Most of the heavy
7245 lifting is done by packages like yelp-xsl and itstool. This package just
7246 wraps things up in a developer-friendly way.")
7247 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
7248 (license license:gpl2+)))
7249
7250 (define-public libgee
7251 (package
7252 (name "libgee")
7253 (version "0.20.3")
7254 (source (origin
7255 (method url-fetch)
7256 (uri (string-append "mirror://gnome/sources/libgee/"
7257 (version-major+minor version) "/"
7258 "libgee-" version ".tar.xz"))
7259 (sha256
7260 (base32
7261 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
7262 (build-system gnu-build-system)
7263 (arguments
7264 `(#:phases
7265 (modify-phases %standard-phases
7266 (add-after 'unpack 'fix-introspection-install-dir
7267 (lambda* (#:key outputs #:allow-other-keys)
7268 (let ((out (assoc-ref outputs "out")))
7269 (substitute* "gee/Makefile.in"
7270 (("@INTROSPECTION_GIRDIR@")
7271 (string-append out "/share/gir-1.0/"))
7272 (("@INTROSPECTION_TYPELIBDIR@")
7273 (string-append out "/lib/girepository-1.0/")))))))))
7274 (native-inputs
7275 (list `(,glib "bin") pkg-config))
7276 (inputs
7277 (list glib gobject-introspection))
7278 (home-page "https://wiki.gnome.org/Projects/Libgee")
7279 (synopsis "GObject collection library")
7280 (description
7281 "Libgee is a utility library providing GObject-based interfaces and
7282 classes for commonly used data structures.")
7283 (license license:lgpl2.1+)))
7284
7285 (define-public gexiv2
7286 (package
7287 (name "gexiv2")
7288 (version "0.12.2")
7289 (source (origin
7290 (method url-fetch)
7291 (uri (string-append "mirror://gnome/sources/" name "/"
7292 (version-major+minor version) "/"
7293 name "-" version ".tar.xz"))
7294 (sha256
7295 (base32
7296 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
7297 (build-system meson-build-system)
7298 (native-inputs
7299 (list gcr
7300 `(,glib "bin") pkg-config vala))
7301 (propagated-inputs
7302 ;; Listed in "Requires" section of gexiv2.pc
7303 (list exiv2))
7304 (inputs
7305 (list glib gobject-introspection))
7306 (home-page "https://wiki.gnome.org/Projects/gexiv2")
7307 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
7308 (description
7309 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
7310 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
7311 metadata in photo and video files of various formats.")
7312 (license license:gpl2+)))
7313
7314 (define-public shotwell
7315 (package
7316 (name "shotwell")
7317 (version "0.30.16")
7318 (source (origin
7319 (method url-fetch)
7320 (uri (string-append "mirror://gnome/sources/shotwell/"
7321 (version-major+minor version) "/"
7322 "shotwell-" version ".tar.xz"))
7323 (sha256
7324 (base32
7325 "1yhqfmz49qkls4i6xaznm5ybwzv19jxsqjdic60wn0ykvbxjr269"))))
7326 (build-system meson-build-system)
7327 (arguments
7328 '(#:glib-or-gtk? #t
7329 #:phases
7330 (modify-phases %standard-phases
7331 (add-after 'unpack 'skip-gtk-update-icon-cache
7332 (lambda _
7333 (substitute* "build-aux/meson/postinstall.py"
7334 (("gtk-update-icon-cache") (which "true"))
7335 (("update-desktop-database") (which "true")))
7336 #t)))))
7337 (propagated-inputs
7338 (list dconf))
7339 (native-inputs
7340 `(("gettext" ,gettext-minimal)
7341 ("glib:bin" ,glib "bin")
7342 ("itstool" ,itstool)
7343 ("pkg-config" ,pkg-config)
7344 ("python" ,python)
7345 ("vala" ,vala)))
7346 (inputs
7347 `(("gcr" ,gcr)
7348 ("gexiv2" ,gexiv2)
7349 ("gst-plugins-base" ,gst-plugins-base)
7350 ("gstreamer" ,gstreamer)
7351 ("json-glib" ,json-glib)
7352 ("libgdata" ,libgdata)
7353 ("libgee" ,libgee)
7354 ("libgphoto2" ,libgphoto2)
7355 ("libgudev" ,libgudev)
7356 ("libraw" ,libraw)
7357 ("libxml2" ,libxml2)
7358 ("sqlite" ,sqlite)
7359 ("webkitgtk" ,webkitgtk-with-libsoup2)))
7360 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7361 (synopsis "Photo manager for GNOME 3")
7362 (description
7363 "Shotwell is a digital photo manager designed for the GNOME desktop
7364 environment. It allows you to import photos from disk or camera, organize
7365 them by keywords and events, view them in full-window or fullscreen mode, and
7366 share them with others via social networking and more.")
7367 (license license:lgpl2.1+)))
7368
7369 (define-public file-roller
7370 (package
7371 (name "file-roller")
7372 (version "3.40.0")
7373 (source (origin
7374 (method url-fetch)
7375 (uri (string-append "mirror://gnome/sources/file-roller/"
7376 (version-major+minor version) "/"
7377 "file-roller-" version ".tar.xz"))
7378 (sha256
7379 (base32
7380 "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a"))))
7381 (build-system meson-build-system)
7382 (native-inputs
7383 (list desktop-file-utils ; for update-desktop-database
7384 intltool
7385 itstool
7386 pkg-config
7387 python
7388 `(,gtk+ "bin") ; gtk-update-icon-cache
7389 `(,glib "bin")))
7390 ;; TODO: Add libnautilus.
7391 (inputs
7392 (list gtk+
7393 gdk-pixbuf
7394 json-glib
7395 libarchive
7396 libnotify
7397 nettle
7398 libxml2))
7399 (synopsis "Graphical archive manager for GNOME")
7400 (description "File Roller is an archive manager for the GNOME desktop
7401 environment that allows users to view, unpack, and create compressed archives
7402 such as gzip tarballs.")
7403 (home-page "http://fileroller.sourceforge.net/")
7404 (license license:gpl2+)))
7405
7406 (define-public gnome-session
7407 (package
7408 (name "gnome-session")
7409 (version "42.0")
7410 (source (origin
7411 (method url-fetch)
7412 (uri (string-append "mirror://gnome/sources/" name "/"
7413 (version-major version) "/"
7414 name "-" version ".tar.xz"))
7415 (patches (search-patches "gnome-session-support-elogind.patch"))
7416 (sha256
7417 (base32
7418 "1alwjqr36rd0s132qs2clwnxgilcbylps6lm41lr50mn782hdjiw"))))
7419 (arguments
7420 `(#:glib-or-gtk? #t
7421 #:phases
7422 (modify-phases %standard-phases
7423 (add-after 'install 'wrap-gnome-session
7424 (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
7425 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7426 (wrap-program (search-input-file outputs "bin/gnome-session")
7427 `("PATH" ":" prefix
7428 (,(dirname (search-input-file (or native-inputs inputs)
7429 "bin/gdbus"))))))))
7430 #:configure-flags
7431 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7432 "-Dman=false" ; FIXME: disabled because of docbook validation error
7433 "-Delogind=true"
7434 "-Dsystemd=false"
7435 "-Dsystemd_session=disable"
7436 "-Dsystemd_journal=false")))
7437 (build-system meson-build-system)
7438 (native-inputs
7439 (list docbook-xml
7440 docbook-xsl
7441 `(,glib "bin") ; for glib-compile-schemas, etc.
7442 intltool
7443 libxml2 ;for 'XML_CATALOG_FILES'
7444 libxslt
7445 pkg-config
7446 xmlto))
7447 (inputs
7448 (list elogind
7449 gnome-desktop
7450 gsettings-desktop-schemas
7451 gtk+
7452 json-glib
7453 libsm
7454 libxcomposite
7455 libxtst
7456 mesa
7457 upower
7458 xtrans))
7459 (synopsis "Session manager for GNOME")
7460 (description
7461 "This package contains the GNOME session manager, as well as a
7462 configuration program to choose applications starting on login.")
7463 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7464 (license license:gpl2+)))
7465
7466 (define-public gjs
7467 (package
7468 (name "gjs")
7469 (version "1.72.2")
7470 (source (origin
7471 (method url-fetch)
7472 (uri (string-append "mirror://gnome/sources/" name "/"
7473 (version-major+minor version) "/"
7474 name "-" version ".tar.xz"))
7475 (sha256
7476 (base32
7477 "0xrrv9lsi087yb9yf146a1aarf5yh6rf4jw9blx30zasvjdkgvnx"))
7478 (modules '((guix build utils)))
7479 (snippet
7480 '(begin
7481 (substitute* "installed-tests/scripts/testCommandLine.sh"
7482 (("Valentín") "")
7483 (("☭") ""))))))
7484 (build-system meson-build-system)
7485 (arguments
7486 '(#:configure-flags '("-Dinstalled_tests=false")
7487 #:phases
7488 (modify-phases %standard-phases
7489 (add-before 'check 'pre-check
7490 (lambda _
7491 ;; The test suite requires a running X server.
7492 (system "Xvfb :1 &")
7493 (setenv "DISPLAY" ":1")
7494
7495 ;; For the missing /etc/machine-id.
7496 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
7497 (native-inputs
7498 (list `(,glib "bin") ;for glib-compile-resources
7499 pkg-config
7500 libxml2
7501 ;; For testing
7502 dbus
7503 dconf ;required to properly store settings
7504 util-linux
7505 xorg-server-for-tests))
7506 (propagated-inputs
7507 ;; These are all in the Requires.private field of gjs-1.0.pc.
7508 (list cairo gobject-introspection mozjs-91))
7509 (inputs
7510 (list gtk+ readline))
7511 (synopsis "Javascript bindings for GNOME")
7512 (home-page "https://wiki.gnome.org/Gjs")
7513 (description
7514 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7515 javascript engine and the GObject introspection framework.")
7516 (license license:gpl2+)))
7517
7518 (define-public gedit
7519 (package
7520 (name "gedit")
7521 (version "42.2")
7522 (source (origin
7523 (method url-fetch)
7524 (uri (string-append "mirror://gnome/sources/" name "/"
7525 (version-major version) "/"
7526 name "-" version ".tar.xz"))
7527 (sha256
7528 (base32
7529 "1jlgzihi4ywvlr4xj2vbnnxzar8j3mwj0jcn8jp6dh0a3w8jjqiw"))))
7530 (build-system meson-build-system)
7531 (arguments
7532 (list
7533 #:glib-or-gtk? #t
7534 #:configure-flags
7535 ;; Otherwise, the RUNPATH will lack the final path component.
7536 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7537 #$output "/lib/gedit"))
7538 #:phases
7539 #~(modify-phases %standard-phases
7540 (add-after 'unpack 'skip-gtk-update-icon-cache
7541 ;; Don't create 'icon-theme.cache'.
7542 (lambda _
7543 (substitute* "build-aux/meson/post_install.py"
7544 (("gtk-update-icon-cache") (which "true")))))
7545 (add-after 'unpack 'do-not-invoke-git
7546 (lambda* (#:key inputs #:allow-other-keys)
7547 (substitute* "meson.build"
7548 ((".*git.*") ""))))
7549 (add-after 'install 'wrap-gedit
7550 (lambda* (#:key outputs #:allow-other-keys)
7551 (wrap-program (search-input-file outputs "bin/gedit")
7552 ;; For plugins.
7553 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
7554 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
7555 ;; For language-specs.
7556 `("XDG_DATA_DIRS" ":" prefix
7557 (,(string-append #$(this-package-input "gtksourceview")
7558 "/share")))))))))
7559 (propagated-inputs
7560 (list dconf))
7561 (native-inputs
7562 (list desktop-file-utils ;for update-desktop-database
7563 `(,glib "bin") ;for glib-mkenums, etc.
7564 gobject-introspection
7565 intltool
7566 itstool
7567 libxml2
7568 pkg-config
7569 python
7570 vala))
7571 (inputs
7572 (list adwaita-icon-theme
7573 bash-minimal
7574 glib
7575 gsettings-desktop-schemas
7576 gspell
7577 gtk+
7578 gtksourceview-4
7579 libpeas
7580 libsoup
7581 python
7582 python-pygobject))
7583 (home-page "https://wiki.gnome.org/Apps/Gedit")
7584 (synopsis "GNOME text editor")
7585 (description "While aiming at simplicity and ease of use, gedit is a
7586 powerful general purpose text editor.")
7587 (license license:gpl2+)))
7588
7589 (define-public zenity
7590 (package
7591 (name "zenity")
7592 (version "3.43.0")
7593 (source (origin
7594 (method url-fetch)
7595 (uri (string-append "mirror://gnome/sources/zenity/"
7596 (version-major+minor version) "/"
7597 "zenity-" version ".tar.xz"))
7598 (sha256
7599 (base32
7600 "0czq2vx636xbvg7zbdqkxq41zgm7v1h048awy0cgls0q1hgcmmxh"))))
7601 (build-system meson-build-system)
7602 (arguments
7603 (list #:phases #~(modify-phases %standard-phases
7604 (add-after 'unpack 'disable-gtk-update-icon-cache
7605 ;; The gtk-update-icon-cache tool is only run when
7606 ;; DESTDIR is unset.
7607 (lambda _
7608 (setenv "DESTDIR" "/"))))))
7609 (native-inputs (list gettext-minimal itstool pkg-config))
7610 (inputs (list gtk+))
7611 (synopsis "Display graphical dialog boxes from shell scripts")
7612 (home-page "https://www.gnome.org")
7613 (description
7614 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7615 to display dialog boxes from the commandline and shell scripts.")
7616 (license license:lgpl2.0+)))
7617
7618 (define-public mutter
7619 (package
7620 (name "mutter")
7621 (version "42.4")
7622 (source (origin
7623 (method url-fetch)
7624 (uri (string-append "mirror://gnome/sources/" name "/"
7625 (version-major version) "/"
7626 name "-" version ".tar.xz"))
7627 (sha256
7628 (base32
7629 "0h1ak3201mdc2qbf67fhcn801ddp33hm0f0c52zis1l7s6ipyb62"))))
7630 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7631 ;; versions of cogl and clutter. As a result, many of the inputs,
7632 ;; propagated-inputs, and configure flags used in cogl and clutter are
7633 ;; needed here as well.
7634 (build-system meson-build-system)
7635 (arguments
7636 (list
7637 #:imported-modules `(,@%meson-build-system-modules
7638 (guix build syscalls))
7639 #:modules '((guix build meson-build-system)
7640 (guix build syscalls)
7641 (guix build utils)
7642 (ice-9 match))
7643 #:glib-or-gtk? #t
7644 #:configure-flags
7645 #~(list
7646 ;; Otherwise, the RUNPATH will lack the final path component.
7647 (string-append "-Dc_link_args=-Wl,-rpath="
7648 #$output "/lib:"
7649 #$output "/lib/mutter-9")
7650 ;; Disable systemd support.
7651 "-Dsystemd=false"
7652 ;; The following flags are needed for the bundled clutter
7653 (string-append "-Dxwayland_path="
7654 (search-input-file %build-inputs "bin/Xwayland"))
7655 ;; the remaining flags are needed for the bundled cogl
7656 (string-append "-Dopengl_libname="
7657 (search-input-file %build-inputs "lib/libGL.so"))
7658 (string-append "-Dgles2_libname="
7659 (search-input-file %build-inputs "lib/libGLESv2.so"))
7660 "-Degl_device=true" ;false by default
7661 "-Dwayland_eglstream=true") ;false by default
7662 #:test-options '(list "--verbose")
7663 #:phases
7664 #~(modify-phases %standard-phases
7665 (add-after 'unpack 'adjust-runpath-linker-directives
7666 (lambda _
7667 ;; By default Mutter uses RPATH instead of RUNPATH, which our
7668 ;; customized linker script makes use of. Some libraries are
7669 ;; also installed under lib/mutter-10 and need to be added to
7670 ;; the RUNPATH.
7671 (substitute* "meson.build"
7672 (("'-Wl,--disable-new-dtags'")
7673 (string-append "'-Wl,-rpath=" #$output "/lib/mutter-10'")))))
7674 (add-after 'unpack 'patch-dlopen-calls
7675 (lambda* (#:key inputs #:allow-other-keys)
7676 (substitute* "src/wayland/meta-wayland-egl-stream.c"
7677 (("libnvidia-egl-wayland.so.1")
7678 (search-input-file inputs "lib/libnvidia-egl-wayland.so.1")))))
7679 (add-before 'configure 'set-udev-dir
7680 (lambda _
7681 (setenv "PKG_CONFIG_UDEV_UDEVDIR"
7682 (string-append #$output "/lib/udev"))))
7683 (add-after 'unpack 'disable-problematic-tests
7684 (lambda _
7685 ;; The native-headless test hangs due to attempting to use audio,
7686 ;; unavailable in the container.
7687 ;; Note: the following sed expression deletes the whole test(...)
7688 ;; expression paragraph. For an explanation, see: info '(sed)
7689 ;; Multiline techniques'.
7690 (invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//"
7691 "-i" "src/tests/meson.build")
7692 ;; Timeline tests may unexpectedly fail on missed frames, so
7693 ;; let's disable them as well.
7694 ;; See <https://gitlab.gnome.org/GNOME/mutter/-/issues/2125>
7695 (substitute* "src/tests/clutter/conform/meson.build"
7696 (("'timeline.*',") ""))))
7697 (replace 'check
7698 (lambda* (#:key tests? test-options parallel-tests?
7699 #:allow-other-keys)
7700 (when tests?
7701 ;; Setup (see the 'test-mutter' CI target at
7702 ;; https://gitlab.gnome.org/GNOME/mutter/-/raw/main/.gitlab-ci.yml).
7703 (setenv "HOME" "/tmp")
7704 (setenv "XDG_RUNTIME_DIR" (string-append (getcwd)
7705 "/runtime-dir"))
7706 (mkdir (getenv "XDG_RUNTIME_DIR"))
7707 (chmod (getenv "XDG_RUNTIME_DIR") #o700)
7708
7709 (setenv "GSETTINGS_SCHEMA_DIR" "data")
7710 (setenv "MUTTER_DEBUG_DUMMY_MODE_SPECS" "800x600@10.0")
7711 (setenv "PIPEWIRE_DEBUG" "2")
7712 (setenv "PIPEWIRE_LOG" "meson-logs/pipewire.log")
7713 (setenv "XVFB_SERVER_ARGS" "+iglx -noreset")
7714 (setenv "G_SLICE" "always-malloc")
7715 (setenv "MALLOC_CHECK" "3")
7716 (setenv "NO_AT_BRIDGE" "1")
7717 ;; This is needed, otherwise the "mutter:core+mutter/unit /
7718 ;; anonymous-file" test would fail (see:
7719 ;; https://gitlab.gnome.org/GNOME/mutter/-/issues/2017).
7720 (setenv "CI_JOB_ID" "1")
7721
7722 (invoke "glib-compile-schemas" (getenv "GSETTINGS_SCHEMA_DIR"))
7723 (mkdir-p (getenv "XDG_RUNTIME_DIR"))
7724 (chmod (getenv "XDG_RUNTIME_DIR") #o755)
7725 (invoke "pipewire" "--version") ;check for pipewire
7726 (system "pipewire &") ;always returns 0 due to forking
7727
7728 (setenv "MESON_TESTTHREADS"
7729 (if parallel-tests?
7730 (number->string (parallel-job-count))
7731 "1"))
7732 (match (primitive-fork)
7733 (0 ;child process
7734 (set-child-subreaper!)
7735 ;; Use tini so that signals are properly handled and
7736 ;; doubly-forked processes get reaped; otherwise,
7737 ;; python-dbusmock would waste time polling for the dbus
7738 ;; processes it spawns to be reaped, in vain.
7739 (apply execlp "tini" "--"
7740 "dbus-run-session" "--"
7741 "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
7742 "meson" "test" "-t" "0" "--print-errorlogs"
7743 test-options))
7744 (pid
7745 (match (waitpid pid)
7746 ((_ . status)
7747 (unless (zero? status)
7748 (error "`meson test' exited with status"
7749 status))))))))))))
7750 (native-inputs
7751 (list desktop-file-utils ;for update-desktop-database
7752 `(,glib "bin") ;for glib-compile-schemas, etc.
7753 gobject-introspection
7754 intltool
7755 pkg-config
7756 xvfb-run
7757 ;; For git build
7758 autoconf
7759 automake
7760 libtool
7761 wayland-protocols-next
7762 ;; For tests.
7763 ;; Warnings are configured to be fatal during the tests; add an icon
7764 ;; theme to please libxcursor.
7765 adwaita-icon-theme
7766 libxcursor ;for XCURSOR_PATH
7767 pipewire-0.3
7768 python
7769 python-dbus
7770 python-dbusmock
7771 tini)) ;acting as init (zombie reaper)
7772 (propagated-inputs
7773 (list gsettings-desktop-schemas-next ;required by libmutter.pc
7774 gtk+ ;required by libmutter.pc
7775 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7776 atk
7777 cairo
7778 eudev
7779 gdk-pixbuf
7780 glib
7781 json-glib
7782 libinput
7783 libx11
7784 libxcomposite
7785 libxcvt
7786 libxdamage
7787 libxext
7788 libxfixes
7789 libxkbcommon
7790 libxml2
7791 libxrandr
7792 mesa
7793 pango
7794 xinput))
7795 (inputs
7796 (list egl-wayland ;for wayland-eglstream-protocols
7797 elogind
7798 gnome-desktop
7799 gnome-settings-daemon
7800 graphene
7801 libcanberra
7802 libgudev
7803 libice
7804 libsm
7805 libwacom
7806 libxkbfile
7807 libxrandr
7808 libxtst
7809 pipewire-0.3
7810 startup-notification
7811 sysprof
7812 upower
7813 xkeyboard-config
7814 xorg-server-xwayland
7815 zenity))
7816 (synopsis "Window and compositing manager")
7817 (home-page "https://www.gnome.org")
7818 (description
7819 "Mutter is a window and compositing manager that displays and manages your
7820 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7821 Clutter toolkit with solid window-management logic inherited from the Metacity
7822 window manager.")
7823 (license license:gpl2+)))
7824
7825 (define-public gnome-online-accounts
7826 (package
7827 (name "gnome-online-accounts")
7828 (version "3.45.2")
7829 (source (origin
7830 (method url-fetch)
7831 (uri (string-append "mirror://gnome/sources/" name "/"
7832 (version-major+minor version) "/"
7833 name "-" version ".tar.xz"))
7834 (sha256
7835 (base32
7836 "15zzzndbfba8a497vxb6cmy1y22l3lfn4sx9s9r59kwzd83i6fxn"))))
7837 (build-system meson-build-system)
7838 (arguments
7839 (list
7840 #:glib-or-gtk? #t
7841 #:phases
7842 #~(modify-phases %standard-phases
7843 (add-before 'install 'disable-gtk-update-icon-cache
7844 (lambda _
7845 (setenv "DESTDIR" "/"))))))
7846 (native-inputs
7847 (list gettext-minimal
7848 `(,glib "bin") ; for glib-compile-schemas, etc.
7849 gobject-introspection
7850 libxslt
7851 pkg-config
7852 vala))
7853 (propagated-inputs
7854 (list glib ; required by goa-1.0.pc
7855 gtk+)) ; required by goa-backend-1.0.pc
7856 (inputs
7857 (list docbook-xsl
7858 gcr
7859 json-glib
7860 libsecret
7861 mit-krb5
7862 rest-next
7863 webkitgtk))
7864 (synopsis "Single sign-on framework for GNOME")
7865 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7866 (description
7867 "GNOME Online Accounts provides interfaces so that applications and
7868 libraries in GNOME can access the user's online accounts. It has providers
7869 for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare,
7870 Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7871 (license license:lgpl2.0+)))
7872
7873 (define-public gnome-online-accounts-3.44
7874 (package
7875 (inherit gnome-online-accounts)
7876 (name "gnome-online-accounts")
7877 (version "3.44.0")
7878 (source (origin
7879 (method url-fetch)
7880 (uri (string-append "mirror://gnome/sources/" name "/"
7881 (version-major+minor version) "/"
7882 name "-" version ".tar.xz"))
7883 (sha256
7884 (base32
7885 "0hkkxa3zqyl0i4kw1p3ak4alwxw4wydh9al6fzwbcdgl0r0ms79q"))))
7886 (build-system glib-or-gtk-build-system)
7887 (arguments (substitute-keyword-arguments
7888 (strip-keyword-arguments
7889 '(#:glib-or-gtk?)
7890 (package-arguments gnome-online-accounts))
7891 ((#:phases phases)
7892 #~(modify-phases #$phases
7893 (delete 'disable-gtk-update-icon-cache)))))
7894 (inputs (modify-inputs (package-inputs gnome-online-accounts)
7895 (replace "rest" rest)
7896 (replace "webkitgtk" webkitgtk-with-libsoup2)))))
7897
7898 (define-public evolution-data-server
7899 (package
7900 (name "evolution-data-server")
7901 (version "3.44.4")
7902 (source
7903 (origin
7904 (method url-fetch)
7905 (uri (string-append "mirror://gnome/sources/" name "/"
7906 (version-major+minor version) "/"
7907 name "-" version ".tar.xz"))
7908 (sha256
7909 (base32 "1sxjrjr31wqbp9g4pf6dwj8rc4mi7c5fbfd489ha92ym7246bin0"))))
7910 (build-system cmake-build-system)
7911 (arguments
7912 (list
7913 #:configure-flags
7914 #~(let* ((lib (string-append #$output "/lib"))
7915 (runpaths (map (lambda (s)
7916 (string-append lib "/evolution-data-server/" s))
7917 '("addressbook-backends" "calendar-backends"
7918 "camel-providers" "credential-modules"
7919 "registry-modules"))))
7920 (list "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7921 "-DENABLE_VALA_BINDINGS=ON"
7922 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7923 (string-append lib "/evolution-data-server;")
7924 (string-join runpaths ";"))
7925 "-DENABLE_INTROSPECTION=ON" ;required for Vala bindings
7926 "-DWITH_PHONENUMBER=ON"))
7927 #:phases
7928 #~(modify-phases %standard-phases
7929 (add-after 'unpack 'disable-failing-tests
7930 (lambda _
7931 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7932 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7933 (delete-file-recursively "tests/book-migration")
7934 (substitute* "tests/CMakeLists.txt"
7935 (("add_subdirectory\\(book-migration\\)") ""))))
7936 (add-after 'unpack 'patch-paths
7937 (lambda _
7938 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7939 "tests/libedata-book/data-test-utils.c"
7940 "tests/libedata-book/test-book-cache-utils.c"
7941 "tests/libedata-cal/test-cal-cache-utils.c")
7942 (("/bin/rm") (which "rm")))))
7943 (add-before 'configure 'dont-override-rpath
7944 (lambda _
7945 (substitute* "CMakeLists.txt"
7946 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7947 ;; Remove it so the configure flag is respected.
7948 (("SET\\(CMAKE_INSTALL_RPATH .*") "")))))))
7949 (native-inputs
7950 (list `(,glib "bin") ; for glib-mkenums, etc.
7951 gobject-introspection
7952 gperf
7953 gsettings-desktop-schemas
7954 intltool
7955 pkg-config
7956 protobuf
7957 vala
7958 python-wrapper))
7959 (propagated-inputs
7960 ;; These are all in the Requires field of .pc files.
7961 (list gtk+
7962 libical
7963 libsecret
7964 libsoup-minimal-2
7965 nss
7966 sqlite))
7967 (inputs
7968 (list bdb
7969 boost
7970 gcr
7971 gnome-online-accounts
7972 json-glib
7973 libcanberra
7974 libgweather
7975 libphonenumber
7976 mit-krb5
7977 openldap
7978 webkitgtk-with-libsoup2))
7979 (synopsis "Store address books and calendars")
7980 (home-page "https://wiki.gnome.org/Apps/Evolution")
7981 (description
7982 "This package provides a unified backend for programs that work with
7983 contacts, tasks, and calendar information. It was originally developed for
7984 Evolution (hence the name), but is now used by other packages as well.")
7985 (license license:lgpl2.0)))
7986
7987 (define-public caribou
7988 (package
7989 (name "caribou")
7990 (version "0.4.21")
7991 (source (origin
7992 (method url-fetch)
7993 (uri (string-append "mirror://gnome/sources/" name "/"
7994 (version-major+minor version) "/"
7995 name "-" version ".tar.xz"))
7996 (sha256
7997 (base32
7998 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
7999 (build-system glib-or-gtk-build-system)
8000 (arguments
8001 '(#:phases
8002 (modify-phases %standard-phases
8003 (add-before
8004 'build 'pre-build
8005 (lambda* (#:key outputs #:allow-other-keys)
8006 (let ((out (assoc-ref outputs "out")))
8007 ;; Use absolute shared library path in Caribou-1.0.typelib.
8008 (substitute* "libcaribou/Makefile"
8009 (("--shared-library=libcaribou.so")
8010 (string-append "--shared-library="
8011 out "/lib/libcaribou.so")))
8012 #t)))
8013 (add-after 'install 'wrap-programs
8014 (lambda* (#:key outputs #:allow-other-keys)
8015 (let* ((out (assoc-ref outputs "out"))
8016 (python-path (getenv "GUIX_PYTHONPATH"))
8017 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8018 (for-each
8019 (lambda (prog)
8020 (wrap-program prog
8021 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
8022 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8023 (list (string-append out "/bin/caribou-preferences")
8024 (string-append out "/libexec/antler-keyboard"))))
8025 #t)))))
8026 (native-inputs
8027 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8028 ("gobject-introspection" ,gobject-introspection)
8029 ("intltool" ,intltool)
8030 ("pkg-config" ,pkg-config)
8031 ("python" ,python)
8032 ("vala" ,vala)
8033 ("xsltproc" ,libxslt)))
8034 (propagated-inputs
8035 ;; caribou-1.0.pc refers to all these.
8036 (list libgee libxklavier libxtst gtk+))
8037 (inputs
8038 `(("clutter" ,clutter)
8039 ("dconf" ,dconf)
8040 ("gtk+-2" ,gtk+-2)
8041 ("python-pygobject" ,python-pygobject)))
8042 (synopsis "Text entry and UI navigation application")
8043 (home-page "https://wiki.gnome.org/Projects/Caribou")
8044 (description
8045 "Caribou is an input assistive technology intended for switch and pointer
8046 users.")
8047 (license license:lgpl2.1)))
8048
8049 (define-public network-manager
8050 (package
8051 (name "network-manager")
8052 (version "1.40.0")
8053 (source (origin
8054 (method url-fetch)
8055 (uri (string-append "mirror://gnome/sources/NetworkManager/"
8056 (version-major+minor version) "/"
8057 "NetworkManager-" version ".tar.xz"))
8058 (patches (search-patches "network-manager-plugin-path.patch"
8059 "network-manager-meson.patch"))
8060 (sha256
8061 (base32
8062 "00zwx7cvl8p8xv5h8yvlj2r5wycbvbqia7z4hjmmvjicpiby1rxf"))))
8063 (build-system meson-build-system)
8064 (outputs '("out"
8065 "doc")) ; 8 MiB of gtk-doc HTML
8066 (arguments
8067 (list
8068 #:configure-flags
8069 #~(list
8070 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
8071 ;; component.
8072 (string-append "-Dc_link_args=-Wl,-rpath="
8073 #$output "/lib:"
8074 #$output "/lib/NetworkManager/" #$version)
8075 "-Dsystemd_journal=false"
8076 "-Dsession_tracking=elogind"
8077 "-Dsuspend_resume=elogind"
8078 "-Dsystemdsystemunitdir=no"
8079 "-Dsession_tracking_consolekit=false"
8080 "-Ddhcpcd=no"
8081 "-Ddhcpcanon=no"
8082 "-Dcrypto=gnutls"
8083 "-Diwd=true"
8084 "-Dlibaudit=yes"
8085 "-Dqt=false"
8086 "-Ddocs=true"
8087 "--sysconfdir=/etc"
8088 "--localstatedir=/var"
8089 (string-append "-Dudev_dir="
8090 #$output "/lib/udev")
8091 (string-append "-Ddbus_conf_dir="
8092 #$output "/etc/dbus-1/system.d")
8093
8094 (string-append "-Ddhclient=" (search-input-file %build-inputs
8095 "/sbin/dhclient")))
8096 #:phases
8097 #~(modify-phases %standard-phases
8098 (add-after 'unpack 'patch-dlopen-call-to-libjansson.so
8099 (lambda* (#:key inputs #:allow-other-keys)
8100 (substitute* "src/libnm-glib-aux/nm-json-aux.c"
8101 (("(handle = dlopen\\()soname" _ head)
8102 (string-append
8103 head "\"" (search-input-file inputs
8104 "lib/libjansson.so") "\"")))))
8105 (add-before 'configure 'pre-configure
8106 (lambda _
8107 ;; These tests try to test aspects of network-manager's
8108 ;; functionality within restricted containers, but they don't
8109 ;; cope with being already in the Guix build jail as that jail
8110 ;; lacks some features that they would like to proxy over (like
8111 ;; a /sys mount).
8112 (substitute* "src/core/tests/meson.build"
8113 ((".*test-l3cfg.*") ""))
8114 (substitute* "src/core/devices/tests/meson.build"
8115 ((".*test-acd.*") "")
8116 ((".*test-lldp.*") ""))
8117 (substitute* "src/core/platform/tests/meson.build"
8118 ((".*test-address-linux.*") "")
8119 ((".*test-cleanup-linux.*") "")
8120 ((".*test-link-linux.*") "")
8121 ((".*test-lldp.*") "")
8122 ((".*test-route-linux.*") "")
8123 ((".*test-tc-linux.*") ""))))
8124 (add-after 'unpack 'patch-docbook-xml
8125 (lambda* (#:key inputs #:allow-other-keys)
8126 (substitute* (find-files "." ".*\\.(xsl|xml)")
8127 (("http://.*/docbookx\\.dtd")
8128 (search-input-file inputs "xml/dtd/docbook/docbookx.dtd")))))
8129 (add-before 'check 'pre-check
8130 (lambda _
8131 ;; For the missing /etc/machine-id.
8132 (setenv "DBUS_FATAL_WARNINGS" "0")))
8133 (add-before 'install 'no-polkit-magic
8134 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
8135 (lambda _
8136 (setenv "PKEXEC_UID" "something")))
8137 (add-after 'install 'move-doc
8138 (lambda _
8139 (mkdir-p (string-append #$output:doc "/share"))
8140 (for-each (lambda (directory)
8141 (copy-recursively (string-append #$output directory)
8142 (string-append #$output:doc
8143 directory))
8144 (delete-file-recursively
8145 (string-append #$output directory)))
8146 '("/share/doc" "/share/gtk-doc")))))))
8147 (propagated-inputs
8148 (list glib))
8149 (native-inputs
8150 (list `(,glib "bin") ; for gdbus-codegen
8151 gtk-doc/stable
8152 gobject-introspection
8153 docbook-xml
8154 docbook-xsl
8155 intltool
8156 libxslt
8157 libxml2
8158 pkg-config
8159 vala
8160 ;; For testing.
8161 python-wrapper
8162 python-dbus
8163 python-pygobject))
8164 (inputs
8165 (list curl
8166 cyrus-sasl
8167 dbus-glib
8168 dnsmasq
8169 eudev
8170 gnutls
8171 iptables
8172 isc-dhcp
8173 iwd ; wpa_supplicant alternative
8174 jansson
8175 audit
8176 libgcrypt
8177 libgudev
8178 libndp
8179 libnl
8180 libselinux
8181 libsoup
8182 mobile-broadband-provider-info
8183 modem-manager
8184 newt ;for the 'nmtui' console interface
8185 openresolv ; alternative resolv.conf manager
8186 polkit
8187 ppp
8188 readline
8189 util-linux
8190 elogind))
8191 (synopsis "Network connection manager")
8192 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8193 (description
8194 "NetworkManager is a system network service that manages your network
8195 devices and connections, attempting to keep active network connectivity when
8196 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
8197 devices, and provides VPN integration with a variety of different VPN
8198 services.")
8199 ;; “This NetworkManager project consists of the daemon, client tools, and
8200 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
8201 ;; GPL-2.0+.”
8202 (license (list license:gpl2+
8203 license:lgpl2.1+))
8204 (properties '((upstream-name . "NetworkManager")))))
8205
8206 (define-public network-manager-openvpn
8207 (package
8208 (name "network-manager-openvpn")
8209 (version "1.8.12")
8210 (source (origin
8211 (method url-fetch)
8212 (uri (string-append
8213 "mirror://gnome/sources/NetworkManager-openvpn/"
8214 (version-major+minor version)
8215 "/NetworkManager-openvpn-" version ".tar.xz"))
8216 (sha256
8217 (base32
8218 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
8219 (build-system gnu-build-system)
8220 (arguments
8221 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
8222 #:phases
8223 (modify-phases %standard-phases
8224 (add-after 'configure 'patch-path
8225 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8226 (let* ((ovpn (search-input-file inputs "/sbin/openvpn"))
8227 (modprobe (search-input-file inputs "/bin/modprobe"))
8228 (pretty-ovpn (string-append "\"" ovpn "\"")))
8229 (for-each
8230 (lambda (file)
8231 (substitute* file
8232 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
8233 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
8234 (("\"/sbin/openvpn\"") pretty-ovpn)
8235 (("/sbin/modprobe") modprobe)))
8236 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
8237 #t)))))
8238 (native-inputs
8239 (list pkg-config intltool))
8240 (inputs
8241 (list gtk+
8242 kmod
8243 openvpn
8244 network-manager
8245 libnma
8246 libsecret))
8247 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8248 (synopsis "OpenVPN plug-in for NetworkManager")
8249 (description
8250 "This extension of NetworkManager allows it to take care of connections
8251 to virtual private networks (VPNs) via OpenVPN.")
8252 (license license:gpl2+)
8253 (properties `((upstream-name . "NetworkManager-openvpn")))))
8254
8255 (define-public network-manager-vpnc
8256 (package
8257 (name "network-manager-vpnc")
8258 (version "1.2.6")
8259 (source (origin
8260 (method url-fetch)
8261 (uri (string-append
8262 "mirror://gnome/sources/NetworkManager-vpnc/"
8263 (version-major+minor version)
8264 "/NetworkManager-vpnc-" version ".tar.xz"))
8265 (sha256
8266 (base32
8267 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
8268 (build-system gnu-build-system)
8269 (arguments
8270 `(#:configure-flags '("--enable-absolute-paths"
8271 "--localstatedir=/var"
8272 ;; libnm-glib has been removed from network-manager
8273 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
8274 "--with-libnm-glib=no")
8275 #:phases
8276 (modify-phases %standard-phases
8277 (add-after 'configure 'patch-path
8278 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8279 (let* ((vpnc (search-input-file inputs "/sbin/vpnc"))
8280 (modprobe (search-input-file inputs "/bin/modprobe"))
8281 (pretty-ovpn (string-append "\"" vpnc "\"")))
8282 (substitute* "src/nm-vpnc-service.c"
8283 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
8284 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
8285 (("\"/sbin/vpnc\"") pretty-ovpn)
8286 (("/sbin/modprobe") modprobe)))
8287 #t)))))
8288 (native-inputs
8289 (list pkg-config intltool))
8290 (inputs
8291 (list gtk+
8292 kmod
8293 vpnc
8294 network-manager
8295 libnma
8296 libsecret))
8297 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8298 (synopsis "VPNC plug-in for NetworkManager")
8299 (description
8300 "Support for configuring virtual private networks based on VPNC.
8301 Compatible with Cisco VPN concentrators configured to use IPsec.")
8302 (license license:gpl2+)
8303 (properties `((upstream-name . "NetworkManager-vpnc")))))
8304
8305 (define-public network-manager-openconnect
8306 (package
8307 (name "network-manager-openconnect")
8308 (version "1.2.6")
8309 (source (origin
8310 (method url-fetch)
8311 (uri (string-append
8312 "mirror://gnome/sources/NetworkManager-openconnect/"
8313 (version-major+minor version)
8314 "/NetworkManager-openconnect-" version ".tar.xz"))
8315 (sha256
8316 (base32
8317 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
8318 (build-system gnu-build-system)
8319 (arguments
8320 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
8321 #:phases
8322 (modify-phases %standard-phases
8323 (add-after 'configure 'patch-path
8324 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8325 (let* ((openconnect (search-input-file inputs
8326 "/sbin/openconnect"))
8327 (modprobe (search-input-file inputs "/bin/modprobe"))
8328 (pretty-ovpn (string-append "\"" openconnect "\"")))
8329 (substitute* "src/nm-openconnect-service.c"
8330 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
8331 (("/sbin/modprobe") modprobe)))
8332 #t)))))
8333 (native-inputs
8334 (list intltool libnma pkg-config))
8335 (inputs
8336 (list gcr
8337 gtk+
8338 kmod
8339 libsecret
8340 libxml2
8341 lz4
8342 network-manager
8343 openconnect))
8344 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8345 (synopsis "OpenConnect plug-in for NetworkManager")
8346 (description
8347 "This extension of NetworkManager allows it to take care of connections
8348 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
8349 Cisco's AnyConnect SSL VPN.")
8350 (license license:gpl2+)
8351 (properties `((upstream-name . "NetworkManager-openconnect")
8352
8353 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
8354 ;; file refers to account "nm-openconnect". Specify it here
8355 ;; so that 'network-manager-service-type' creates it.
8356 (user-accounts . ("nm-openconnect"))))))
8357
8358 (define-public mobile-broadband-provider-info
8359 (package
8360 (name "mobile-broadband-provider-info")
8361 (version "20190116")
8362 (source (origin
8363 (method url-fetch)
8364 (uri (string-append
8365 "mirror://gnome/sources/"
8366 "mobile-broadband-provider-info/" version "/"
8367 "mobile-broadband-provider-info-" version ".tar.xz"))
8368 (sha256
8369 (base32
8370 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
8371 (build-system gnu-build-system)
8372 (arguments
8373 `(#:tests? #f)) ; no tests
8374 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8375 (synopsis "Database of broadband connection configuration")
8376 (description "Database of broadband connection configuration.")
8377 (license license:public-domain)))
8378
8379 (define-public network-manager-applet
8380 (package
8381 (name "network-manager-applet")
8382 (version "1.28.0")
8383 (source (origin
8384 (method url-fetch)
8385 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
8386 (version-major+minor version) "/"
8387 "network-manager-applet-" version ".tar.xz"))
8388 (sha256
8389 (base32
8390 "17742kgmbj9w545zwnirgr0i40zl0xzp8jx7b8c1krp93mc4h0sw"))))
8391 (build-system meson-build-system)
8392 (arguments
8393 `(#:glib-or-gtk? #t
8394 #:configure-flags
8395 '("-Dappindicator=yes")))
8396 (native-inputs
8397 (list gettext-minimal
8398 `(,glib "bin") ; for glib-compile-resources, etc.
8399 gobject-introspection
8400 gtk-doc/stable
8401 pkg-config))
8402 (propagated-inputs
8403 ;; libnm-gtk.pc refers to all these.
8404 (list dbus-glib gtk+ network-manager
8405 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8406 libnma))
8407 (inputs
8408 (list gcr
8409 libappindicator
8410 libgudev
8411 libnotify
8412 libsecret
8413 libselinux
8414 jansson ; for team support
8415 modem-manager))
8416 (synopsis "Applet for managing network connections")
8417 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8418 (description
8419 "This package contains a systray applet for NetworkManager. It displays
8420 the available networks and allows users to easily switch between them.")
8421 (license license:gpl2+)))
8422
8423 (define-public libxml++
8424 (package
8425 (name "libxml++")
8426 (version "3.2.0")
8427 (source
8428 (origin
8429 (method git-fetch)
8430 (uri (git-reference
8431 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8432 (commit version)))
8433 (file-name (git-file-name name version))
8434 (sha256
8435 (base32 "0wjz591rjlgbah7dcq8i0yn0zw9d62b7g6r0pppx81ic0cx8n8ga"))))
8436 (build-system gnu-build-system)
8437 (arguments
8438 `(#:phases
8439 (modify-phases %standard-phases
8440 (add-after 'unpack 'fix-documentation
8441 (lambda* (#:key inputs #:allow-other-keys)
8442 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
8443 "/xml/dtd/docbook"))
8444 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
8445 "/xml/xsl/docbook-xsl-"
8446 ,(package-version docbook-xsl))))
8447 (substitute* '("examples/dom_xpath/example.xml"
8448 "docs/manual/libxml++_without_code.xml")
8449 (("http://.*/docbookx\\.dtd")
8450 (string-append xmldoc "/docbookx.dtd")))
8451 (setenv "SGML_CATALOG_FILES"
8452 (string-append xmldoc "/catalog.xml"))
8453 (substitute* "docs/manual/docbook-customisation.xsl"
8454 (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
8455 (string-append xsldoc "/html/chunk.xsl")))))))))
8456 (propagated-inputs
8457 ;; libxml++-3.0.pc refers to all these.
8458 (list glibmm-2.64 libxml2))
8459 (native-inputs
8460 (list autoconf
8461 automake
8462 doxygen
8463 docbook-xml
8464 docbook-xsl
8465 graphviz ; for dot
8466 libtool
8467 libxslt
8468 mm-common
8469 perl
8470 pkg-config))
8471 (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
8472 (synopsis "C++ bindings to the libxml2 XML parser library")
8473 (description
8474 "This package provides a C++ interface to the libxml2 XML parser
8475 library.")
8476 (license license:lgpl2.1+)))
8477
8478 ;; This is the last release providing the 2.6 API, hence the name.
8479 ;; This is needed by tascam-gtk
8480 (define-public libxml++-2
8481 (package
8482 (inherit libxml++)
8483 (name "libxml++")
8484 (version "2.40.1")
8485 (source
8486 (origin
8487 (method git-fetch)
8488 (uri (git-reference
8489 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8490 (commit version)))
8491 (file-name (git-file-name name version))
8492 (sha256
8493 (base32 "0gbfi4l88w828gmyc9br11l003ylyi4vigp5d1kfgsn0k4cig3y9"))))))
8494
8495 (define-public gdm
8496 (package
8497 (name "gdm")
8498 (version "42.0")
8499 (source (origin
8500 (method url-fetch)
8501 (uri (string-append "mirror://gnome/sources/" name "/"
8502 (version-major version) "/"
8503 name "-" version ".tar.xz"))
8504 (sha256
8505 (base32
8506 "0m9qmm3vm81jmqlc30a1fb79hsr4l4lpiw0zjxww3gipd6bsqa53"))
8507 (patches
8508 (search-patches
8509 "gdm-default-session.patch"
8510 "gdm-elogind-support.patch"
8511 "gdm-remove-hardcoded-xwayland-path.patch"
8512 "gdm-wayland-session-wrapper-from-env.patch"
8513 "gdm-pass-gdk-pixbuf-loader-env.patch"))))
8514 (build-system meson-build-system)
8515 (arguments
8516 (list
8517 #:glib-or-gtk? #t
8518 #:configure-flags
8519 #~(list
8520 "-Dplymouth=disabled"
8521 "-Dsystemd-journal=false"
8522
8523 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8524 ;; instead of having to replace it (i.e., stopping the mingetty
8525 ;; service for TTY 1 before starting GDM).
8526 "-Dinitial-vt=7"
8527
8528 ;; Use elogind instead of systemd.
8529 "-Dlogind-provider=elogind"
8530 "-Dsystemdsystemunitdir=no"
8531 "-Dsystemduserunitdir=no"
8532
8533 ;; Use '/etc/environment' for locale settings instead of the
8534 ;; systemd-specific '/etc/locale.conf'.
8535 "-Dlang-file=/etc/environment"
8536
8537 (string-append "-Dudev-dir=" #$output "/lib/udev")
8538
8539 "--localstatedir=/var"
8540 (string-append "-Ddefault-path="
8541 (string-join '("/run/setuid-programs"
8542 "/run/current-system/profile/bin"
8543 "/run/current-system/profile/sbin")
8544 ":"))
8545 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8546 ;; XDG_DATA_DIRS so that it finds its schemas.
8547 "--sbindir" (string-append #$output "/bin"))
8548 #:phases
8549 #~(modify-phases %standard-phases
8550 (add-after 'unpack 'patch-paths
8551 (lambda* (#:key inputs #:allow-other-keys)
8552 (substitute* "daemon/gdm-session.c"
8553 (("dbus-run-session")
8554 (search-input-file inputs "bin/dbus-run-session")))))
8555 (add-before 'configure 'pre-configure
8556 (lambda* (#:key inputs #:allow-other-keys)
8557 ;; We don't have <systemd/sd-daemon.h>.
8558 (substitute* '("common/gdm-log.c"
8559 "daemon/gdm-server.c"
8560 "daemon/gdm-session-worker.c"
8561 "daemon/gdm-session-worker-job.c")
8562 (("#include <systemd/sd-daemon\\.h>") ""))
8563 ;; Use elogind for sd-login.
8564 (substitute* '("common/gdm-common.c"
8565 "daemon/gdm-local-display-factory.c"
8566 "daemon/gdm-manager.c"
8567 "libgdm/gdm-user-switching.c")
8568 (("#include <systemd/sd-login\\.h>")
8569 "#include <elogind/sd-login.h>"))
8570 ;; Look for system-installed sessions in
8571 ;; /run/current-system/profile/share.
8572 (substitute* '("libgdm/gdm-sessions.c"
8573 "daemon/gdm-session.c"
8574 "daemon/gdm-display.c"
8575 "daemon/gdm-launch-environment.c")
8576 (("DATADIR \"/x")
8577 "\"/run/current-system/profile/share/x")
8578 (("DATADIR \"/wayland")
8579 "\"/run/current-system/profile/share/wayland")
8580 (("DATADIR \"/gnome")
8581 "\"/run/current-system/profile/share/gnome"))
8582 (let ((propagate '("GDM_CUSTOM_CONF"
8583 "GDM_DBUS_DAEMON"
8584 "GDM_X_SERVER"
8585 "GDM_X_SESSION"
8586 ;; XXX: Remove this once GNOME Shell is
8587 ;; a dependency of GDM.
8588 "XDG_DATA_DIRS")))
8589 (substitute* "daemon/gdm-session.c"
8590 (("set_up_session_environment \\(self\\);")
8591 (apply string-append
8592 "set_up_session_environment (self);\n"
8593 (map (lambda (name)
8594 (string-append
8595 "gdm_session_set_environment_variable "
8596 "(self, \"" name "\","
8597 "g_getenv (\"" name "\"));\n"))
8598 propagate)))))
8599 ;; Find the configuration file using an environment variable.
8600 (substitute* '("common/gdm-settings.c")
8601 (("GDM_CUSTOM_CONF")
8602 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8603 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8604 " : GDM_CUSTOM_CONF)")))
8605 ;; Use service-supplied path to X.
8606 (substitute* '("daemon/gdm-server.c")
8607 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8608 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8609 (substitute* '("daemon/gdm-wayland-session.c"
8610 "daemon/gdm-x-session.c")
8611 (("\"dbus-daemon\"")
8612 "g_getenv (\"GDM_DBUS_DAEMON\")")
8613 (("X_SERVER")
8614 "g_getenv (\"GDM_X_SERVER\")")
8615 (("GDMCONFDIR \"/Xsession\"")
8616 "g_getenv (\"GDM_X_SESSION\")"))
8617 ;; Use an absolute path for GNOME Session.
8618 (substitute* "daemon/gdm-launch-environment.c"
8619 (("\"gnome-session\"")
8620 (format #f "~s"
8621 (search-input-file inputs "bin/gnome-session"))))
8622 ;; Do not automatically select the placeholder session.
8623 (substitute* "daemon/gdm-session.c"
8624 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8625 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8626 "(g_strcmp0(search_dirs[i], \""
8627 #$output "/share/gdm/BuiltInSessions/"
8628 "\") == 0 && "
8629 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8630 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8631 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))))
8632 (add-before 'install 'install-logo
8633 (lambda* (#:key inputs #:allow-other-keys)
8634 (let ((icon (search-input-file inputs "share/icons/hicolor/\
8635 scalable/apps/guix-white-icon.svg"))
8636 (schema (string-append #$output "/share/glib-2.0/schemas/\
8637 org.gnome.login-screen.gschema.override")))
8638 (mkdir-p (dirname schema))
8639 (with-output-to-file schema
8640 (lambda ()
8641 (format #t "\
8642 [org.gnome.login-screen]
8643 logo='~a'~%" icon))))))
8644 ;; GDM requires that there be at least one desktop entry
8645 ;; file. This phase installs a hidden one that simply
8646 ;; fails. This enables users to use GDM with a
8647 ;; '~/.xsession' script with no other desktop entry files.
8648 ;; See <https://bugs.gnu.org/35068>.
8649 (add-after 'install 'install-placeholder-desktop-entry
8650 (lambda _
8651 (let* ((sessions (string-append #$output
8652 "/share/gdm/BuiltInSessions"))
8653 (fail (string-append sessions "/fail.desktop")))
8654 (mkdir-p sessions)
8655 (with-output-to-file fail
8656 (lambda ()
8657 (for-each
8658 display
8659 '("[Desktop Entry]\n"
8660 "Encoding=UTF-8\n"
8661 "Type=Application\n"
8662 "Name=Fail\n"
8663 "Comment=This session fails immediately.\n"
8664 "NoDisplay=true\n"
8665 "Exec=false\n")))))))
8666 ;; GDM needs GNOME Session to run these applications. We link
8667 ;; their autostart files in `share/gdm/greeter/autostart'
8668 ;; because GDM explicitly tells GNOME Session to look there.
8669 ;;
8670 ;; XXX: GNOME Shell should be linked here too, but currently
8671 ;; GNOME Shell depends on GDM.
8672 (add-after 'install 'link-autostart-files
8673 (lambda* (#:key inputs #:allow-other-keys)
8674 (let ((autostart (string-append #$output "/share/gdm/"
8675 "greeter/autostart"))
8676 (settings #$(this-package-input "gnome-settings-daemon")))
8677 (mkdir-p autostart)
8678 (with-directory-excursion autostart
8679 (for-each (lambda (desktop)
8680 (symlink desktop (basename desktop)))
8681 (find-files
8682 (string-append settings "/etc/xdg"))))))))))
8683 (native-inputs
8684 (list `(,glib "bin") ;for glib-compile-schemas, etc.
8685 dconf
8686 gobject-introspection
8687 guix-icons
8688 intltool
8689 itstool
8690 libxml2
8691 pkg-config))
8692 (inputs
8693 (list accountsservice
8694 check ;for testing
8695 dbus
8696 elogind
8697 eudev
8698 gnome-session
8699 gnome-settings-daemon
8700 gtk+
8701 iso-codes
8702 libcanberra
8703 libgudev
8704 linux-pam))
8705 (synopsis "Display manager for GNOME")
8706 (home-page "https://wiki.gnome.org/Projects/GDM/")
8707 (description
8708 "GNOME Display Manager is a system service that is responsible for
8709 providing graphical log-ins and managing local and remote displays.")
8710 (license license:gpl2+)))
8711
8712 (define-public libgtop
8713 (package
8714 (name "libgtop")
8715 (version "2.40.0")
8716 (source (origin
8717 (method url-fetch)
8718 (uri (string-append "mirror://gnome/sources/libgtop/"
8719 (version-major+minor version) "/"
8720 "libgtop-" version ".tar.xz"))
8721 (sha256
8722 (base32
8723 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8724 (build-system gnu-build-system)
8725 (native-inputs
8726 (list gobject-introspection intltool perl pkg-config))
8727 (propagated-inputs
8728 (list glib)) ; required by libgtop-2.0.pc
8729 (synopsis "Portable system access library")
8730 (home-page "https://www.gnome.org/")
8731 (description
8732 "LibGTop is a library to get system specific data such as CPU and memory
8733 usage and information about running processes.")
8734 (license license:gpl2+)))
8735
8736 (define-public gnome-bluetooth
8737 (package
8738 (name "gnome-bluetooth")
8739 (version "42.4")
8740 (source (origin
8741 (method url-fetch)
8742 (uri (string-append "mirror://gnome/sources/gnome-bluetooth/"
8743 (version-major+minor version) "/"
8744 "gnome-bluetooth-" version ".tar.xz"))
8745 (sha256
8746 (base32
8747 "1p5wq3rh9p7fhka57qcds6lvphd26yyc18ilncx95jbcvcfcyvqx"))))
8748 (build-system meson-build-system)
8749 (native-inputs
8750 (list gettext-minimal
8751 gobject-introspection
8752 `(,glib "bin") ;for gdbus-codegen, etc.
8753 libxml2
8754 pkg-config
8755 python
8756 python-dbus))
8757 (propagated-inputs
8758 ;; These are all required by the gnome-bluetooth .pc file.
8759 (list glib
8760 gtk
8761 libadwaita))
8762 (inputs
8763 (list eudev
8764 gsound
8765 libnotify
8766 ;; TODO: Delete pango-next after it's the default.
8767 pango-next
8768 python-dbus
8769 upower))
8770 (synopsis "GNOME Bluetooth subsystem")
8771 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8772 (description
8773 "This package contains tools for managing and manipulating Bluetooth
8774 devices using the GNOME desktop.")
8775 (license license:lgpl2.1+)))
8776
8777 (define-public gnome-control-center
8778 (package
8779 (name "gnome-control-center")
8780 (version "42.3")
8781 (source (origin
8782 (method url-fetch)
8783 (uri (string-append "mirror://gnome/sources/" name "/"
8784 (version-major version) "/"
8785 name "-" version ".tar.xz"))
8786 (sha256
8787 (base32
8788 "0zhw6hcrrcpq1zjkyzr5ipznxnzd2aczrqd7n2y7xbz21mjy62nf"))))
8789 (build-system meson-build-system)
8790 (arguments
8791 (list
8792 #:glib-or-gtk? #t
8793 #:phases
8794 #~(modify-phases %standard-phases
8795 (add-before 'configure 'patch-paths
8796 (lambda* (#:key inputs #:allow-other-keys)
8797 (substitute* "panels/datetime/tz.h"
8798 (("/usr/share/zoneinfo/zone.tab")
8799 (search-input-file inputs "share/zoneinfo/zone.tab")))
8800 (substitute* "tests/datetime/test-endianess.c"
8801 (("/usr/share/locale")
8802 (search-input-directory inputs "share/locale")))
8803 (substitute* "panels/region/cc-region-panel.c"
8804 (("\"gkbd-keyboard-display")
8805 (string-append "\"" (search-input-file
8806 inputs "bin/gkbd-keyboard-display"))))
8807 (substitute* '("panels/network/net-device-bluetooth.c"
8808 "panels/network/net-device-mobile.c"
8809 "panels/network/connection-editor/net-connection-editor.c")
8810 (("\"nm-connection-editor")
8811 (string-append "\"" (search-input-file
8812 inputs "bin/nm-connection-editor"))))
8813 (substitute* "panels/user-accounts/run-passwd.c"
8814 (("/usr/bin/passwd")
8815 "/run/setuid-programs/passwd"))
8816 (substitute* "panels/info-overview/cc-info-overview-panel.c"
8817 (("DATADIR \"/gnome/gnome-version.xml\"")
8818 (format #f "~s" (search-input-file
8819 inputs "share/gnome/gnome-version.xml"))))))
8820 (add-after 'unpack 'skip-gtk-update-icon-cache
8821 ;; Don't create 'icon-theme.cache'.
8822 (lambda _
8823 (substitute* "build-aux/meson/meson_post_install.py"
8824 (("gtk-update-icon-cache") (which "true"))))))))
8825 (native-inputs
8826 (list docbook-xsl
8827 gettext-minimal
8828 `(,glib "bin") ;for glib-mkenums, etc.
8829 libxslt
8830 pkg-config
8831 python
8832 python-dbusmock
8833 xorg-server-for-tests))
8834 (inputs
8835 (list accountsservice
8836 colord-gtk
8837 cups
8838 dconf
8839 gcr
8840 gnome-bluetooth
8841 gnome-desktop
8842 gnome-online-accounts
8843 gnome-session
8844 gnome-settings-daemon
8845 gnutls
8846 grilo
8847 gsound
8848 ibus
8849 libadwaita
8850 libgnomekbd
8851 libgudev
8852 libgtop
8853 libnma
8854 libpwquality
8855 librsvg ;for loading SVG files
8856 libsecret
8857 libxml2
8858 libwacom
8859 mesa
8860 mit-krb5
8861 modem-manager
8862 network-manager-applet
8863 polkit
8864 pulseaudio
8865 samba
8866 tzdata
8867 udisks
8868 upower))
8869 (synopsis "Utilities to configure the GNOME desktop")
8870 (home-page "https://www.gnome.org/")
8871 (description
8872 "This package contains configuration applets for the GNOME desktop,
8873 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8874 properties, sound setup, desktop theme and background, user interface
8875 properties, screen resolution, and other GNOME parameters.")
8876 (license license:gpl2+)))
8877
8878 (define-public gnome-shell
8879 (package
8880 (name "gnome-shell")
8881 (version "42.4")
8882 (source (origin
8883 (method url-fetch)
8884 (uri (string-append "mirror://gnome/sources/" name "/"
8885 (version-major version) "/"
8886 name "-" version ".tar.xz"))
8887 (sha256
8888 (base32
8889 "0kn5fclciybp2fs38wd39hdz85y91pas0ckfa02pmyx91sbz4pw7"))))
8890 (build-system meson-build-system)
8891 (arguments
8892 (let ((disallowed-references
8893 (list (gexp-input glib "bin")
8894 (gexp-input libxslt)
8895 (gexp-input meson)
8896 (gexp-input ruby-sass))))
8897 (list
8898 #:glib-or-gtk? #t
8899 #:disallowed-references disallowed-references
8900 #:configure-flags
8901 #~(list "-Dsystemd=false"
8902 ;; Otherwise, the RUNPATH will lack the final path component.
8903 (string-append "-Dc_link_args=-Wl,-rpath="
8904 #$output "/lib/gnome-shell"))
8905 #:modules '((guix build meson-build-system)
8906 (guix build utils)
8907 (ice-9 match)
8908 (srfi srfi-1)
8909 (srfi srfi-26))
8910 #:phases
8911 #~(modify-phases %standard-phases
8912 (add-after 'unpack 'fix-keysdir
8913 (lambda _
8914 (let ((keysdir
8915 (string-append #$output
8916 "/share/gnome-control-center/keybindings")))
8917 (substitute* "meson.build"
8918 (("keysdir =.*")
8919 (string-append "keysdir = '" keysdir "'\n"))))))
8920 (add-after 'unpack 'skip-gtk-update-icon-cache
8921 ;; Don't create 'icon-theme.cache'.
8922 (lambda _
8923 (substitute* "meson.build"
8924 (("gtk_update_icon_cache: true")
8925 "gtk_update_icon_cache: false"))))
8926 (add-before 'configure 'record-absolute-file-names
8927 (lambda* (#:key inputs #:allow-other-keys)
8928 (let ((ibus-daemon (search-input-file inputs "bin/ibus-daemon"))
8929 (gkbd-keyboard-display
8930 (search-input-file inputs "bin/gkbd-keyboard-display")))
8931 (substitute* "js/misc/ibusManager.js"
8932 (("'ibus-daemon'")
8933 (string-append "'" ibus-daemon "'")))
8934 (substitute* "js/ui/status/keyboard.js"
8935 (("'gkbd-keyboard-display'")
8936 (string-append "'" gkbd-keyboard-display "'"))))))
8937 (add-before 'check 'pre-check
8938 (lambda* (#:key inputs #:allow-other-keys)
8939 ;; Tests require a running X server.
8940 (system "Xvfb :1 &")
8941 (setenv "DISPLAY" ":1")
8942 (setenv "HOME" "/tmp"))) ;to avoid "fatal" warnings
8943 (add-after 'install 'wrap-programs
8944 (lambda* (#:key inputs #:allow-other-keys)
8945 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8946 (python-path
8947 (string-join
8948 (filter (lambda (item)
8949 (not (any (cut string-prefix? <> item)
8950 '#$disallowed-references)))
8951 (string-split (getenv "GUIX_PYTHONPATH") #\:))
8952 ":")))
8953 (for-each
8954 (lambda (prog)
8955 (wrap-program (string-append #$output "/bin/" prog)
8956 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8957 '("gnome-shell" "gnome-extensions-app"))
8958 (substitute* (string-append #$output "/share/gnome-shell/"
8959 "org.gnome.Shell.Extensions")
8960 (("imports\\.package\\.start" all)
8961 (string-append "'" gi-typelib-path "'.split(':').forEach("
8962 "path => imports.gi.GIRepository.Repository."
8963 "prepend_search_path(path));\n"
8964 all)))
8965 (for-each
8966 (lambda (prog)
8967 (wrap-program (string-append #$output "/bin/" prog)
8968 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
8969 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8970 '("gnome-shell-perf-tool")))))
8971 (add-after 'install 'rewire
8972 (lambda* (#:key inputs #:allow-other-keys)
8973 (for-each
8974 (lambda (tool)
8975 (call-with-output-file (string-append #$output
8976 "/bin/" tool)
8977 (lambda (port)
8978 (format port "#!~a
8979 printf '~a is deprecated. Use the \"gnome-extensions\" CLI or \
8980 \"gnome-extensions-app\" instead.\\n'"
8981 (search-input-file inputs "bin/bash")
8982 tool))))
8983 '("gnome-shell-extension-tool" "gnome-shell-extension-prefs"))))
8984 (replace 'glib-or-gtk-wrap
8985 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
8986 (lambda* (#:key inputs outputs #:allow-other-keys)
8987 ;; By default glib:bin et al. would end up in the XDG_DATA_DIRS
8988 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
8989 ;; phase. Fix that since we don't need these.
8990 (wrap #:inputs
8991 (filter (match-lambda
8992 ((label . output)
8993 (not (member output
8994 '#$disallowed-references))))
8995 inputs)
8996 #:outputs outputs))))))))
8997 (native-inputs
8998 (list asciidoc
8999 gettext-minimal
9000 `(,glib "bin") ;for glib-compile-schemas, etc.
9001 desktop-file-utils ;for update-desktop-database
9002 gobject-introspection
9003 hicolor-icon-theme
9004 libxslt
9005 perl
9006 pkg-config
9007 python
9008 ruby-sass
9009 sassc
9010 ;; For tests
9011 xorg-server-for-tests))
9012 (inputs
9013 (list accountsservice
9014 caribou
9015 docbook-xsl
9016 evolution-data-server
9017 gcr
9018 gdm
9019 librsvg
9020 gjs
9021 gtk
9022 gnome-autoar
9023 gnome-bluetooth
9024 gnome-desktop
9025 gnome-settings-daemon
9026 graphene
9027 gst-plugins-base
9028 ibus
9029 libcanberra
9030 libcroco
9031 libgnomekbd ;for gkbd-keyboard-display
9032 libgweather4
9033 libnma
9034 libsoup
9035 mesa-headers
9036 mutter
9037 network-manager-applet
9038 polkit
9039 pulseaudio
9040 python-pygobject
9041 startup-notification
9042 telepathy-logger
9043 upower
9044 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
9045 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
9046 librsvg
9047 geoclue))
9048 (synopsis "Desktop shell for GNOME")
9049 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
9050 (description
9051 "GNOME Shell provides core user interface functions for the GNOME desktop,
9052 like switching to windows and launching applications.")
9053 (license license:gpl2+)))
9054
9055 (define-public gtk-vnc
9056 (package
9057 (name "gtk-vnc")
9058 (version "1.2.0")
9059 (source
9060 (origin
9061 (method url-fetch)
9062 (uri
9063 (string-append "mirror://gnome/sources/" name "/"
9064 (version-major+minor version) "/"
9065 name "-" version ".tar.xz"))
9066 (sha256
9067 (base32 "0jmr6igyzcj2wmx5v5ywaazvdz3hx6a6rys26yb4l4s71l281bvs"))))
9068 (build-system meson-build-system)
9069 (arguments
9070 `(#:meson ,meson-0.60
9071 #:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
9072 (native-inputs
9073 (append
9074 ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
9075 ;; dependency on other platforms (FIXME).
9076 (if (target-x86-64?)
9077 (list gjs)
9078 '())
9079 (list gettext-minimal
9080 `(,glib "bin")
9081 gobject-introspection
9082 node
9083 perl
9084 pkg-config
9085 python-wrapper
9086 vala)))
9087 (inputs
9088 (list cairo (librsvg-for-system)))
9089 (propagated-inputs
9090 ;; These are all in Requires or Requires.private of the .pc files.
9091 (list cyrus-sasl
9092 gdk-pixbuf
9093 glib
9094 gnutls
9095 gtk+
9096 libgcrypt
9097 libx11
9098 pulseaudio
9099 zlib))
9100 (synopsis "VNC client viewer widget for GTK+")
9101 (description "GTK-VNC is a project providing client side APIs for the RFB
9102 protocol / VNC remote desktop technology. It is built using coroutines allowing
9103 it to be completely asynchronous while remaining single threaded. It provides a
9104 core C library, and bindings for Python (PyGTK).")
9105 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
9106 (license license:lgpl2.1+)))
9107
9108 (define-public gnome-autoar
9109 (package
9110 (name "gnome-autoar")
9111 (version "0.4.3")
9112 (source (origin
9113 (method url-fetch)
9114 (uri (string-append "mirror://gnome/sources/" name "/"
9115 (version-major+minor version) "/"
9116 name "-" version ".tar.xz"))
9117 (sha256
9118 (base32
9119 "124y4j3wgb6axgfzw9f00865r033fg7b0qy9qgfsp5ilan4hgpvv"))))
9120 (build-system meson-build-system)
9121 (native-inputs
9122 (list gobject-introspection `(,glib "bin") pkg-config))
9123 (propagated-inputs
9124 (list libarchive)) ; Required by gnome-autoar-0.pc
9125 (inputs
9126 (list gtk+))
9127 (synopsis "Archives integration support for GNOME")
9128 (home-page "https://git.gnome.org/browse/gnome-autoar/")
9129 (description
9130 "GNOME Autoar is a library which makes creating and extracting archives
9131 easy, safe, and automatic.")
9132 (license license:lgpl2.1+)))
9133
9134 (define-public tracker
9135 (package
9136 (name "tracker")
9137 (version "3.3.3")
9138 (source (origin
9139 (method url-fetch)
9140 (uri (string-append "mirror://gnome/sources/tracker/"
9141 (version-major+minor version) "/"
9142 "tracker-" version ".tar.xz"))
9143 (sha256
9144 (base32
9145 "0r144kdqxdzs51qn495vablzf1zxkhkk6imrlrzj9wiqwc2gg520"))))
9146 (build-system meson-build-system)
9147 (arguments
9148 `(#:glib-or-gtk? #t
9149 #:configure-flags
9150 ;; Otherwise, the RUNPATH will lack the final path component.
9151 (list (string-append "-Dc_link_args=-Wl,-rpath="
9152 (assoc-ref %outputs "out") "/lib:"
9153 (assoc-ref %outputs "out") "/lib/tracker-3.0")
9154 "-Ddocs=false"
9155 "-Dsystemd_user_services=false")
9156 #:phases
9157 (modify-phases %standard-phases
9158 (add-before 'configure 'set-shell
9159 (lambda _
9160 (setenv "SHELL" (which "bash"))))
9161 (add-before 'configure 'fix-paths
9162 (lambda* (#:key inputs #:allow-other-keys)
9163 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9164 (file (search-input-file inputs manpage)))
9165 (substitute* "docs/manpages/meson.build"
9166 (("/etc/asciidoc[^']+")
9167 file)))))
9168 (replace 'check
9169 (lambda* (#:key tests? #:allow-other-keys)
9170 (when tests?
9171 ;; Some tests expect to write to $HOME.
9172 (setenv "HOME" "/tmp")
9173 (invoke "dbus-run-session" "--" "meson" "test"
9174 "--print-errorlogs")))))))
9175 (native-inputs
9176 (list gettext-minimal
9177 `(,glib "bin")
9178 gobject-introspection
9179 docbook-xsl
9180 docbook-xml
9181 gsettings-desktop-schemas
9182 asciidoc
9183 libxslt
9184 cmake-minimal
9185 python-pygobject
9186 gtk-doc/stable
9187 dbus
9188 pkg-config
9189 python
9190 vala))
9191 (inputs
9192 (list dbus
9193 libsoup))
9194 (propagated-inputs
9195 ;; These are in Requires or Requires.private of tracker-sparql-3.0.pc.
9196 (list glib
9197 icu4c ;libunistring gets miner-miner-fs test to fail
9198 json-glib
9199 libxml2
9200 sqlite))
9201 (synopsis "Metadata database, indexer and search tool")
9202 (home-page "https://wiki.gnome.org/Projects/Tracker")
9203 (description
9204 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
9205
9206 It is a middleware component aimed at desktop application developers who want
9207 their apps to browse and search user content. It's not designed to be used
9208 directly by desktop users, but it provides a commandline tool named
9209 @command{tracker} for the adventurous.
9210
9211 Tracker allows your application to instantly perform full-text searches across
9212 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
9213 example. This is achieved by indexing the user's home directory in the
9214 background.
9215
9216 Tracker also allows your application to query and list content that the user
9217 has stored. For example, GNOME Music displays all the music files that are
9218 found by Tracker. This means that GNOME Music doesn't need to maintain a
9219 database of its own.
9220
9221 If you need to go beyond simple searches, Tracker is also a linked data
9222 endpoint and it understands SPARQL.")
9223 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
9224 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9225 ;; libstemmer is bsd-3 and the rest is gpl2+.
9226 (license (list license:gpl2+
9227 license:bsd-3
9228 license:lgpl2.1+))))
9229
9230 (define-public tracker-miners
9231 (package
9232 (name "tracker-miners")
9233 (version "3.3.1")
9234 (source (origin
9235 (method url-fetch)
9236 (uri (string-append "mirror://gnome/sources/tracker-miners/"
9237 (version-major+minor version)
9238 "/tracker-miners-" version ".tar.xz"))
9239 (sha256
9240 (base32
9241 "151w6ljq1gk9idqfq9qs3w16vms91jnxy59c9kx6jaf0fb9cdp9y"))))
9242 (build-system meson-build-system)
9243 (arguments
9244 `(#:glib-or-gtk? #t
9245 #:configure-flags
9246 (list "-Dminer_rss=false" ; libgrss is required.
9247 ;; Ensure the RUNPATH contains all installed library locations.
9248 (string-append "-Dc_link_args=-Wl,-rpath="
9249 (assoc-ref %outputs "out")
9250 "/lib/tracker-miners-3.0")
9251 ;; TODO: Enable functional tests. Currently, the following error
9252 ;; appears:
9253 ;; Exception: The functional tests require DConf to be the default
9254 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
9255 "-Dfunctional_tests=false"
9256 "-Dsystemd_user_services=false")
9257 #:phases
9258 (modify-phases %standard-phases
9259 (add-before 'configure 'set-shell
9260 (lambda _
9261 (setenv "SHELL" (which "bash"))))
9262 (add-before 'configure 'fix-paths
9263 (lambda* (#:key inputs #:allow-other-keys)
9264 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9265 (file (search-input-file inputs manpage)))
9266 (substitute* "docs/manpages/meson.build"
9267 (("/etc/asciidoc[^']+")
9268 file)))))
9269 (add-before 'configure 'fix-tests
9270 (lambda* (#:key inputs #:allow-other-keys)
9271 ;; Disable those tests that require the functional_tests option
9272 ;; to be true and the UPower daemon to be started.
9273 (substitute* "examples/python/meson.build"
9274 (("foreach example_name:.*")
9275 "foreach example_name: []"))
9276 ;; Disable this test that is failing randomly:
9277 ;; https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/170.
9278 (substitute* "tests/libtracker-miner/meson.build"
9279 (("'miner-fs'.*")
9280 ""))))
9281 (replace 'check
9282 (lambda* (#:key tests? #:allow-other-keys)
9283 (when tests?
9284 ;; Some tests expect to write to $HOME.
9285 (setenv "HOME" "/tmp")
9286 (setenv "LANG" "en_US.UTF-8")
9287 (invoke "dbus-run-session" "--" "meson" "test"
9288 "--print-errorlogs"
9289 ;; Do not run the slow test, which fail (see:
9290 ;; https://gitlab.gnome.org/GNOME/tracker-miners
9291 ;; /-/issues/226).
9292 "--no-suite" "slow")))))))
9293 (native-inputs
9294 (list dbus
9295 intltool
9296 `(,glib "bin")
9297 docbook-xsl
9298 docbook-xml
9299 gsettings-desktop-schemas
9300 asciidoc
9301 libxslt
9302 gobject-introspection
9303 pkg-config
9304 python-pygobject))
9305 (inputs
9306 (list exempi
9307 ffmpeg
9308 flac
9309 giflib
9310 glib
9311 gstreamer
9312 icu4c
9313 json-glib
9314 libcue
9315 libexif
9316 libgsf
9317 libgxps
9318 libiptcdata
9319 libjpeg-turbo
9320 libosinfo
9321 libpng
9322 libseccomp
9323 libsoup
9324 libtiff
9325 libvorbis
9326 libxml2
9327 poppler
9328 shared-mime-info
9329 taglib
9330 totem-pl-parser
9331 tracker
9332 upower
9333 zlib))
9334 (synopsis "Metadata database, indexer and search tool")
9335 (home-page "https://wiki.gnome.org/Projects/Tracker")
9336 (description
9337 "Tracker is an advanced framework for first class objects with associated
9338 metadata and tags. It provides a one stop solution for all metadata, tags,
9339 shared object databases, search tools and indexing.")
9340 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9341 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
9342 (license (list license:gpl2+
9343 license:lgpl2.1+
9344 license:lgpl2.0+))))
9345
9346 (define-public nautilus
9347 (package
9348 (name "nautilus")
9349 (version "41.1")
9350 (source (origin
9351 (method url-fetch)
9352 (uri (string-append "mirror://gnome/sources/" name "/"
9353 (version-major version) "/"
9354 name "-" version ".tar.xz"))
9355 (sha256
9356 (base32
9357 "0bsqh241m43x3qb3z0mjakjic610ncl95zhjdgls649phnc30qry"))
9358 (patches
9359 ;; This patch is already upstream and can be removed next
9360 ;; release.
9361 (search-patches "nautilus-add-libportal-gtk3.patch"))))
9362 (build-system meson-build-system)
9363 (arguments
9364 `(#:glib-or-gtk? #t
9365 #:phases
9366 (modify-phases %standard-phases
9367 (add-after 'unpack 'make-extensible
9368 (lambda _
9369 (substitute* "src/nautilus-module.c"
9370 (("static gboolean initialized = FALSE;" all)
9371 (string-append all "
9372 const char *extension_path;
9373 char **extension_dirs, **d;
9374 ")
9375 )
9376 (("load_module_dir \\(NAUTILUS_EXTENSIONDIR\\);" all)
9377 (string-append all
9378 "
9379 extension_path = g_getenv (\"NAUTILUS_EXTENSION_PATH\");
9380 if (extension_path)
9381 {
9382 extension_dirs = g_strsplit (extension_path, \":\", -1);
9383 for (d = extension_dirs; d != NULL && *d != NULL; d++)
9384 load_module_dir(*d);
9385 g_strfreev(extension_dirs);
9386 }
9387 ")))))
9388 (add-after 'unpack 'skip-gtk-update-icon-cache
9389 ;; Don't create 'icon-theme.cache'.
9390 (lambda _
9391 (substitute* "build-aux/meson/postinstall.py"
9392 (("gtk-update-icon-cache") "true")))))
9393 ;; XXX: FAIL: check-nautilus
9394 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
9395 #:tests? #f))
9396 (native-inputs
9397 (list desktop-file-utils ; for update-desktop-database
9398 `(,glib "bin") ; for glib-mkenums, etc.
9399 gobject-introspection
9400 intltool
9401 pkg-config
9402 python))
9403 (inputs
9404 (list dconf
9405 gexiv2
9406 gvfs
9407 exempi
9408 gnome-desktop
9409 gnome-autoar
9410 gst-plugins-base
9411 json-glib
9412 libhandy
9413 libportal
9414 libseccomp
9415 libselinux
9416 libsoup-minimal-2 ; to satisfy tracker dependencies
9417 tracker
9418 tracker-miners
9419 ;; XXX: gtk+ is required by libnautilus-extension.pc
9420 ;;
9421 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
9422 ;; package. See:
9423 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
9424 gtk+
9425 libexif
9426 libxml2))
9427 (native-search-paths
9428 (list (search-path-specification
9429 (variable "NAUTILUS_EXTENSION_PATH")
9430 (files '("lib/nautilus/site-extensions")))))
9431 (synopsis "File manager for GNOME")
9432 (home-page "https://wiki.gnome.org/Apps/Nautilus")
9433 (description
9434 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
9435 design and behaviour, giving the user a simple way to navigate and manage its
9436 files.")
9437 (license license:gpl2+)))
9438
9439 (define-public baobab
9440 (package
9441 (name "baobab")
9442 (version "42.0")
9443 (source (origin
9444 (method url-fetch)
9445 (uri (string-append
9446 "mirror://gnome/sources/" name "/"
9447 (version-major version) "/"
9448 name "-" version ".tar.xz"))
9449 (sha256
9450 (base32
9451 "1p2hg8qxbvdfax9z4qjhdsxia93zrsdq58krx8zjnn5ipbkan6jb"))))
9452 (build-system meson-build-system)
9453 (arguments
9454 '(#:glib-or-gtk? #t))
9455 (native-inputs
9456 (list desktop-file-utils ;for update-desktop-database
9457 gettext-minimal
9458 `(,glib "bin")
9459 `(,gtk+ "bin") ;for gtk-update-icon-cache
9460 itstool
9461 libxml2
9462 pkg-config
9463 python
9464 vala))
9465 (inputs
9466 (list gtk libadwaita libhandy
9467 ;; XXX: Ensure pango-next is used instead of the equally propagated
9468 ;; 'pango'.
9469 pango-next))
9470 (synopsis "Disk usage analyzer for GNOME")
9471 (description
9472 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
9473 usage in the GNOME desktop environment. It can easily scan device volumes or
9474 a specific user-requested directory branch (local or remote). Once the scan
9475 is complete it provides a graphical representation of each selected folder.")
9476 (home-page "https://wiki.gnome.org/Apps/Baobab")
9477 (license license:gpl2+)))
9478
9479 (define-public gnome-backgrounds
9480 (package
9481 (name "gnome-backgrounds")
9482 (version "41.0")
9483 (source
9484 (origin
9485 (method url-fetch)
9486 (uri (string-append "mirror://gnome/sources/" name "/"
9487 (version-major version) "/"
9488 name "-" version ".tar.xz"))
9489 (sha256
9490 (base32
9491 "0i9id5z72dqddh94648zylyf41amqq5lhny8sbyg1v8v4q6sr88x"))))
9492 (build-system meson-build-system)
9493 (native-inputs (list gettext-minimal))
9494 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
9495 (synopsis "Background images for the GNOME desktop")
9496 (description
9497 "GNOME backgrounds package contains a collection of graphics files which
9498 can be used as backgrounds in the GNOME Desktop environment. Additionally,
9499 the package creates the proper framework and directory structure so that you
9500 can add your own files to the collection.")
9501 (license (list license:gpl2+
9502 license:cc-by2.0
9503 license:cc-by-sa2.0
9504 license:cc-by-sa3.0))))
9505
9506 (define-public gnome-screenshot
9507 (package
9508 (name "gnome-screenshot")
9509 (version "41.0")
9510 (source
9511 (origin
9512 (method url-fetch)
9513 (uri (string-append "mirror://gnome/sources/" name "/"
9514 (version-major version) "/"
9515 name "-" version ".tar.xz"))
9516 (sha256
9517 (base32
9518 "15wmikwk62cdi93gas77nqh4fbhlrxrncyfmcd1gfa34jbn7vnsa"))
9519 (patches
9520 (search-patches "gnome-screenshot-meson-0.60.patch"))))
9521 (build-system meson-build-system)
9522 (arguments
9523 '(#:glib-or-gtk? #t
9524 #:phases
9525 (modify-phases %standard-phases
9526 (add-after 'unpack 'skip-gtk-update-icon-cache
9527 ;; Don't create 'icon-theme.cache'.
9528 (lambda _
9529 (substitute* "build-aux/postinstall.py"
9530 (("gtk-update-icon-cache") "true")))))))
9531 (native-inputs
9532 (list appstream-glib
9533 desktop-file-utils ; for update-desktop-database
9534 gettext-minimal
9535 `(,glib "bin") ; for glib-compile-schemas, etc.
9536 pkg-config
9537 python))
9538 (inputs
9539 (list gtk+
9540 libhandy
9541 libx11
9542 libxext))
9543 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
9544 (synopsis "Take pictures of your screen")
9545 (description
9546 "GNOME Screenshot is a utility used for taking screenshots of the entire
9547 screen, a window or a user defined area of the screen, with optional
9548 beautifying border effects.")
9549 (license license:gpl2+)))
9550
9551 (define-public dconf-editor
9552 (package
9553 (name "dconf-editor")
9554 (version "3.38.3")
9555 (source
9556 (origin
9557 (method url-fetch)
9558 (uri (string-append "mirror://gnome/sources/" name "/"
9559 (version-major+minor version) "/"
9560 name "-" version ".tar.xz"))
9561 (sha256
9562 (base32
9563 "1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp"))))
9564 (build-system meson-build-system)
9565 (native-inputs
9566 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9567 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9568 ("intltool" ,intltool)
9569 ("pkg-config" ,pkg-config)
9570 ("vala" ,vala)))
9571 (inputs
9572 (list dconf gtk+ libxml2))
9573 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9574 (synopsis "Graphical editor for GNOME's dconf configuration system")
9575 (description
9576 "Dconf-editor is a graphical tool for browsing and editing the dconf
9577 configuration system for GNOME. It allows users to configure desktop
9578 software that do not provide their own configuration interface.")
9579 (license license:lgpl2.1+)))
9580
9581 (define-public gnome-default-applications
9582 (package
9583 (name "gnome-default-applications")
9584 (version "0")
9585 (build-system trivial-build-system)
9586 (source #f)
9587 (propagated-inputs
9588 (list nautilus evince))
9589 (arguments
9590 `(#:modules ((guix build utils))
9591 #:builder
9592 (begin
9593 (use-modules (guix build utils))
9594 (let* ((out (assoc-ref %outputs "out"))
9595 (apps (string-append out "/share/applications")))
9596 (mkdir-p apps)
9597 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9598 (lambda (port)
9599 (format port "[Default Applications]\n")
9600 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9601 (format port "application/pdf=evince.desktop\n")
9602 (format port "application/postscript=evince.desktop\n")))
9603 #t))))
9604 (synopsis "Default MIME type associations for the GNOME desktop")
9605 (description
9606 "Given many installed packages which might handle a given MIME type, a
9607 user running the GNOME desktop probably has some preferences: for example,
9608 that folders be opened by default by the Nautilus file manager, not the Baobab
9609 disk usage analyzer. This package establishes that set of default MIME type
9610 associations for GNOME.")
9611 (license license:gpl3+)
9612 (home-page #f)))
9613
9614 (define-public libgovirt
9615 (package
9616 (name "libgovirt")
9617 (version "0.3.8")
9618 (source (origin
9619 (method url-fetch)
9620 (uri (string-append "mirror://gnome/sources/" name "/"
9621 (version-major+minor version) "/"
9622 name "-" version ".tar.xz"))
9623 (sha256
9624 (base32
9625 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9626 (build-system glib-or-gtk-build-system)
9627 (native-inputs
9628 (list gettext-minimal
9629 `(,glib "bin")
9630 gobject-introspection
9631 gsettings-desktop-schemas
9632 `(,gtk+ "bin")
9633 pkg-config))
9634 (inputs
9635 (list glib-networking ; GIO plugin--for the tests
9636 rest))
9637 (synopsis "GoVirt Library")
9638 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9639 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9640 (license license:gpl2+)))
9641
9642 (define-public gnome-weather
9643 (package
9644 (name "gnome-weather")
9645 (version "42.0")
9646 (source (origin
9647 (method url-fetch)
9648 (uri (string-append "mirror://gnome/sources/" name "/"
9649 (version-major version) "/"
9650 name "-" version ".tar.xz"))
9651 (sha256
9652 (base32
9653 "0rdl0ywdk8jlq819wr1sbdzdvsasz11pp30fylzvprakv28yd7jp"))))
9654 (build-system meson-build-system)
9655 (arguments
9656 (list
9657 #:glib-or-gtk? #t
9658 #:phases
9659 #~(modify-phases %standard-phases
9660 (add-after 'unpack 'fix-service-file
9661 (lambda _
9662 (substitute* "data/org.gnome.Weather.service.in"
9663 (("Exec=[[:graph:]]+")
9664 (string-append "Exec=" #$output
9665 "/bin/gnome-weather")))))
9666 (add-after 'unpack 'disable-gtk-update-icon-cache
9667 (lambda _
9668 (setenv "DESTDIR" "/")))
9669 (add-after 'install 'fix-desktop-file
9670 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some
9671 ;; reason. See https://issues.guix.gnu.org/issue/39324.
9672 (lambda* (#:key outputs #:allow-other-keys)
9673 (substitute* (search-input-file
9674 outputs
9675 "share/applications/org.gnome.Weather.desktop")
9676 (("Exec=.*") "Exec=gnome-weather\n"))))
9677 (add-after 'install 'wrap
9678 (lambda* (#:key outputs #:allow-other-keys)
9679 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at
9680 ;; runtime.
9681 (wrap-program (search-input-file outputs "bin/gnome-weather")
9682 `("GI_TYPELIB_PATH" ":" prefix
9683 (,(getenv "GI_TYPELIB_PATH")))))))))
9684 (native-inputs
9685 (list gettext-minimal
9686 `(,glib "bin")
9687 gobject-introspection
9688 pkg-config))
9689 (inputs
9690 (list appstream-glib
9691 bash-minimal
9692 geoclue
9693 gjs
9694 gsettings-desktop-schemas-next
9695 gtk
9696 libadwaita
9697 libgweather4))
9698 (synopsis "Weather monitoring for GNOME desktop")
9699 (description "GNOME Weather is a small application that allows you to
9700 monitor the current weather conditions for your city, or anywhere in the
9701 world.")
9702 (home-page "https://wiki.gnome.org/Apps/Weather")
9703 (license license:gpl2+)))
9704
9705 (define-public gnome
9706 (package
9707 (name "gnome")
9708 (version (package-version gnome-shell))
9709 (source #f)
9710 (build-system trivial-build-system)
9711 (arguments '(#:builder (begin (mkdir %output) #t)))
9712 (propagated-inputs
9713 `(;; GNOME-Core-OS-Services
9714 ("accountsservice" ,accountsservice)
9715 ("network-manager" ,network-manager)
9716 ("packagekit" ,packagekit)
9717 ("upower" ,upower)
9718 ;; GNOME-Core-Shell
9719 ("adwaita-icon-theme" ,adwaita-icon-theme)
9720 ("gdm" ,gdm)
9721 ("glib-networking" ,glib-networking)
9722 ("gnome-backgrounds" ,gnome-backgrounds)
9723 ("gnome-bluetooth" ,gnome-bluetooth)
9724 ("gnome-color-manager" ,gnome-color-manager)
9725 ("gnome-control-center" ,gnome-control-center)
9726 ("gnome-desktop" ,gnome-desktop)
9727 ("gnome-initial-setup" ,gnome-initial-setup)
9728 ("gnome-keyring" ,gnome-keyring)
9729 ("gnome-menus" ,gnome-menus)
9730 ("gnome-session" ,gnome-session)
9731 ("gnome-settings-daemon" ,gnome-settings-daemon)
9732 ("gnome-shell-extensions" ,gnome-shell-extensions)
9733 ("gnome-shell" ,gnome-shell)
9734 ("gnome-themes-extra" ,gnome-themes-extra)
9735 ("gnome-user-docs" ,gnome-user-docs)
9736 ("gnome-user-share" ,gnome-user-share)
9737 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9738 ("gvfs" ,gvfs)
9739 ("mutter" ,mutter)
9740 ("orca" ,orca)
9741 ("rygel" ,rygel)
9742 ("sushi" ,sushi)
9743 ;; GNOME-Core-Utilities
9744 ("baobab" ,baobab)
9745 ("cheese" ,cheese)
9746 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9747 ;; only works on x86_64, so exclude it on other architectures.
9748 ,@(if (string-prefix? "x86_64" (%current-system))
9749 `(("eog" ,eog))
9750 '())
9751 ("epiphany" ,epiphany)
9752 ("evince" ,evince)
9753 ("file-roller" ,file-roller)
9754 ("gedit" ,gedit)
9755 ("gnome-boxes" ,gnome-boxes)
9756 ("gnome-calculator" ,gnome-calculator)
9757 ("gnome-calendar" ,gnome-calendar)
9758 ("gnome-characters" ,gnome-characters)
9759 ("gnome-clocks" ,gnome-clocks)
9760 ("gnome-contacts" ,gnome-contacts)
9761 ("gnome-disk-utility" ,gnome-disk-utility)
9762 ("gnome-font-viewer" ,gnome-font-viewer)
9763 ("gnome-maps" ,gnome-maps)
9764 ("gnome-music" ,gnome-music)
9765 ("gnome-photos" ,gnome-photos)
9766 ("gnome-screenshot" ,gnome-screenshot)
9767 ("gnome-system-monitor" ,gnome-system-monitor)
9768 ("gnome-terminal" ,gnome-terminal)
9769 ("gnome-weather" ,gnome-weather)
9770 ("nautilus" ,nautilus)
9771 ("simple-scan" ,simple-scan)
9772 ("totem" ,totem)
9773 ("tracker-miners" ,tracker-miners)
9774 ("yelp" ,yelp)
9775 ;; Others
9776 ("hicolor-icon-theme" ,hicolor-icon-theme)
9777 ("gnome-online-accounts" ,gnome-online-accounts)
9778
9779 ;; Packages not part of GNOME proper but that are needed for a good
9780 ;; experience. See <https://bugs.gnu.org/39646>.
9781 ;; XXX: Find out exactly which ones are needed and why.
9782 ("font-abattis-cantarell" ,font-abattis-cantarell)
9783 ("font-dejavu" ,font-dejavu)
9784 ("at-spi2-core" ,at-spi2-core-minimal)
9785 ("dbus" ,dbus)
9786 ("dconf" ,dconf)
9787 ("desktop-file-utils" ,desktop-file-utils)
9788 ("gnome-default-applications" ,gnome-default-applications)
9789 ("gst-plugins-base" ,gst-plugins-base)
9790 ("gst-plugins-good" ,gst-plugins-good)
9791 ("gucharmap" ,gucharmap)
9792 ("pinentry-gnome3" ,pinentry-gnome3)
9793 ("pulseaudio" ,pulseaudio)
9794 ("shared-mime-info" ,shared-mime-info)
9795 ("system-config-printer" ,system-config-printer)
9796 ("xdg-user-dirs" ,xdg-user-dirs)
9797 ("yelp" ,yelp)
9798 ("zenity" ,zenity)))
9799 (synopsis "The GNU desktop environment")
9800 (home-page "https://www.gnome.org/")
9801 (description
9802 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9803 applications for browsing the web, editing text and images, creating
9804 documents and diagrams, playing media, scanning, and much more.")
9805 (license license:gpl2+)))
9806
9807 (define-public byzanz
9808 ;; The last stable release of Byzanz was in 2011, but there have been many
9809 ;; useful commits made to the Byzanz repository since then that it would be
9810 ;; silly to use such an old release.
9811 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9812 (package
9813 (name "byzanz")
9814 (version (string-append "0.2-1." (string-take commit 7)))
9815 (source (origin
9816 (method git-fetch)
9817 (uri (git-reference
9818 (url "https://git.gnome.org/browse/byzanz")
9819 (commit commit)))
9820 (file-name (string-append name "-" version "-checkout"))
9821 (sha256
9822 (base32
9823 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9824 (build-system glib-or-gtk-build-system)
9825 (arguments
9826 '(#:phases
9827 (modify-phases %standard-phases
9828 (add-before 'bootstrap 'build-without-Werror
9829 (lambda _
9830 ;; The build system cleverly detects that we're not building from
9831 ;; a release tarball and turns on -Werror for GCC.
9832 ;; Unsurprisingly, there is a warning during compilation that
9833 ;; causes the build to fail unnecessarily, so we remove the flag.
9834 (substitute* '("configure.ac")
9835 (("-Werror") ""))
9836 #t)))))
9837 (native-inputs
9838 (list autoconf
9839 automake
9840 gnome-common
9841 intltool
9842 libtool
9843 pkg-config
9844 which))
9845 (inputs
9846 (list glib gstreamer gst-plugins-base gtk+))
9847 (synopsis "Desktop recording program")
9848 (description "Byzanz is a simple desktop recording program with a
9849 command-line interface. It can record part or all of an X display for a
9850 specified duration and save it as a GIF encoded animated image file.")
9851 (home-page "https://git.gnome.org/browse/byzanz")
9852 (license license:gpl2+))))
9853
9854 (define-public authenticator
9855 (package
9856 (name "authenticator")
9857 (version "3.32.2")
9858 (source
9859 (origin
9860 (method git-fetch)
9861 (uri (git-reference
9862 (url "https://gitlab.gnome.org/World/Authenticator")
9863 (commit version)))
9864 (file-name (git-file-name name version))
9865 (sha256
9866 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9867 (build-system meson-build-system)
9868 (arguments
9869 `(#:meson ,meson-0.59
9870 #:glib-or-gtk? #t
9871 #:phases
9872 (modify-phases %standard-phases
9873 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9874 (lambda* (#:key inputs outputs #:allow-other-keys)
9875 (let ((prog (string-append (assoc-ref outputs "out")
9876 "/bin/authenticator"))
9877 (pylib (string-append (assoc-ref outputs "out")
9878 "/lib/python"
9879 ,(version-major+minor
9880 (package-version
9881 (this-package-input "python")))
9882 "/site-packages")))
9883 (wrap-program prog
9884 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
9885 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
9886 (native-inputs
9887 (list desktop-file-utils
9888 gettext-minimal
9889 `(,glib "bin")
9890 gobject-introspection
9891 `(,gtk+ "bin")
9892 pkg-config))
9893 (inputs
9894 (list gsettings-desktop-schemas
9895 gtk+
9896 libhandy-0.0
9897 libsecret
9898 python
9899 python-beautifulsoup4
9900 python-pillow
9901 python-pyfavicon
9902 python-pygobject
9903 python-pyotp
9904 python-pyzbar
9905 yoyo-migrations
9906 zbar))
9907 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9908 (synopsis "Two-factor authentication application built for GNOME")
9909 (description
9910 "Authenticator is a two-factor authentication (2FA) application built for
9911 the GNOME desktop environment.
9912
9913 Features:
9914
9915 @itemize
9916 @item QR code scanner
9917 @item Beautiful UI
9918 @item Huge database of more than 560 supported services
9919 @item Keep your PIN tokens secure by locking the application with a password
9920 @item Automatically fetch an image for services using their favicon
9921 @item The possibility to add new services
9922 @end itemize")
9923 (license license:gpl3+)))
9924
9925 (define-public gsound
9926 (package
9927 (name "gsound")
9928 (version "1.0.3")
9929 (source (origin
9930 (method url-fetch)
9931 (uri (string-append "mirror://gnome/sources/gsound/"
9932 (version-major+minor version) "/"
9933 "gsound-" version ".tar.xz"))
9934 (sha256
9935 (base32
9936 "06l80xgykj7x1kqkjvcq06pwj2rmca458zvs053qc55x3sg06bfa"))))
9937 (build-system meson-build-system)
9938 (native-inputs
9939 (list pkg-config gobject-introspection vala))
9940 (propagated-inputs
9941 (list libcanberra)) ; in Requires.private of gsound.pc
9942 (home-page "https://wiki.gnome.org/Projects/GSound")
9943 (synopsis "GObject wrapper for libcanberra")
9944 (description
9945 "GSound is a small library for playing system sounds. It's designed to be
9946 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9947 library.")
9948 (license license:lgpl2.1+)))
9949
9950 (define-public libzapojit
9951 (package
9952 (name "libzapojit")
9953 (version "0.0.3")
9954 (source (origin
9955 (method url-fetch)
9956 (uri (string-append "mirror://gnome/sources/" name "/"
9957 (version-major+minor version) "/"
9958 name "-" version ".tar.xz"))
9959 (sha256
9960 (base32
9961 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9962 (build-system gnu-build-system)
9963 (native-inputs
9964 (list gobject-introspection intltool pkg-config))
9965 (inputs
9966 (list gnome-online-accounts json-glib rest))
9967 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9968 (synopsis "Library for accessing SkyDrive and Hotmail")
9969 (description
9970 "Libzapojit is a GLib-based library for accessing online service APIs of
9971 Microsoft SkyDrive and Hotmail, using their REST protocols.")
9972 (license license:lgpl2.1+)))
9973
9974 (define-public gnome-clocks
9975 (package
9976 (name "gnome-clocks")
9977 (version "42.0")
9978 (source (origin
9979 (method url-fetch)
9980 (uri (string-append "mirror://gnome/sources/" name "/"
9981 (version-major version) "/"
9982 name "-" version ".tar.xz"))
9983 (sha256
9984 (base32
9985 "1q3gvniwd4dkr1ghqpp05zr7qswdhaxqrn8j6bm3qbh39bdihw8f"))))
9986 (build-system meson-build-system)
9987 (arguments
9988 '(#:glib-or-gtk? #t
9989 #:phases
9990 (modify-phases %standard-phases
9991 (add-after 'unpack 'skip-gtk-update-icon-cache
9992 ;; Don't create 'icon-theme.cache'.
9993 (lambda _
9994 (substitute* "meson.build"
9995 (("gtk_update_icon_cache: true")
9996 "gtk_update_icon_cache: false")))))))
9997 (native-inputs
9998 (list desktop-file-utils
9999 gettext-minimal
10000 `(,glib "bin") ; for glib-compile-resources
10001 itstool
10002 pkg-config
10003 vala-next))
10004 (inputs
10005 (list geoclue
10006 geocode-glib-with-libsoup2
10007 glib
10008 gnome-desktop
10009 gsound
10010 gtk
10011 libadwaita
10012 libgweather4-with-libsoup2))
10013 (home-page "https://wiki.gnome.org/Apps/Clocks")
10014 (synopsis "GNOME's clock application")
10015 (description
10016 "GNOME Clocks is a simple clocks application designed to fit the GNOME
10017 desktop. It supports world clock, stop watch, alarms, and count down timer.")
10018 (license license:gpl3+)))
10019
10020 (define-public gnome-calendar
10021 (package
10022 (name "gnome-calendar")
10023 (version "42.2")
10024 (source (origin
10025 (method url-fetch)
10026 (uri (string-append "mirror://gnome/sources/" name "/"
10027 (version-major version) "/"
10028 name "-" version ".tar.xz"))
10029 (sha256
10030 (base32
10031 "1ggvnl2jnc24nzpkjvsk57vpckjzb14a7mmnk6jjm84nmqxccz5f"))))
10032 (build-system meson-build-system)
10033 (arguments
10034 `(#:glib-or-gtk? #t
10035 #:phases
10036 (modify-phases %standard-phases
10037 (add-after 'unpack 'skip-gtk-update-icon-cache
10038 ;; Don't create 'icon-theme.cache'.
10039 (lambda _
10040 (substitute* "meson.build"
10041 (("gtk_update_icon_cache: true")
10042 "gtk_update_icon_cache: false")))))))
10043 (native-inputs
10044 (list gettext-minimal
10045 `(,glib "bin") ; For glib-compile-schemas
10046 pkg-config))
10047 (inputs
10048 ;; Note: not propagating evolution-data-server-3.44 to keep profiles
10049 ;; clean from libsoup2.
10050 (list evolution-data-server-3.44
10051 geoclue
10052 geocode-glib-with-libsoup2
10053 gnome-online-accounts-3.44
10054 gsettings-desktop-schemas
10055 libadwaita
10056 libdazzle
10057 libgweather4-with-libsoup2
10058 ;; Remove pango-next when it's the default.
10059 pango-next))
10060 (home-page "https://wiki.gnome.org/Apps/Calendar")
10061 (synopsis "GNOME's calendar application")
10062 (description
10063 "GNOME Calendar is a simple calendar application designed to fit the GNOME
10064 desktop. It supports multiple calendars, month, week and year view.")
10065 (license license:gpl3+)))
10066
10067 (define-public gnome-todo
10068 (package
10069 (name "gnome-todo")
10070 (version "41.0")
10071 (source (origin
10072 (method url-fetch)
10073 (uri (string-append "mirror://gnome/sources/" name "/"
10074 (version-major version) "/"
10075 name "-" version ".tar.xz"))
10076 (sha256
10077 (base32
10078 "1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras"))
10079 (patches (search-patches "gnome-todo-libportal.patch"))))
10080 (build-system meson-build-system)
10081 (arguments
10082 (list
10083 #:glib-or-gtk? #t
10084 #:phases
10085 #~(modify-phases %standard-phases
10086 (add-after 'unpack 'skip-gtk-update-icon-cache
10087 (lambda _
10088 (substitute* "build-aux/meson/meson_post_install.py"
10089 (("gtk-update-icon-cache") "true"))))
10090 (delete 'check)
10091 (add-after 'install 'check
10092 (assoc-ref %standard-phases
10093 'check))
10094 (add-before 'check 'pre-check
10095 (lambda _
10096 (setenv "GSETTINGS_SCHEMA_DIR"
10097 (string-append #$output "/share/glib-2.0/schemas")))))))
10098 (native-inputs
10099 (list gettext-minimal
10100 gobject-introspection
10101 `(,glib "bin") ;for glib-compile-resources
10102 `(,gtk "bin") ;for gtk-update-icon-cache
10103 itstool
10104 pkg-config))
10105 (inputs
10106 (list rest ;for Todoist plugin
10107 gtk
10108 json-glib ;for Todoist plugin
10109 libadwaita
10110 evolution-data-server
10111 libical
10112 libpeas
10113 libportal
10114 python-pygobject
10115 evolution-data-server
10116 gnome-online-accounts
10117 gsettings-desktop-schemas))
10118 (home-page "https://wiki.gnome.org/Apps/Todo")
10119 (synopsis "GNOME's ToDo Application")
10120 (description "GNOME To Do is a simplistic personal task manager designed
10121 to perfectly fit the GNOME desktop.")
10122 (license license:gpl3+)))
10123
10124 (define-public gnome-dictionary
10125 (package
10126 (name "gnome-dictionary")
10127 (version "40.0")
10128 (source (origin
10129 (method url-fetch)
10130 (uri (string-append "mirror://gnome/sources/" name "/"
10131 (version-major version) "/"
10132 name "-" version ".tar.xz"))
10133 (sha256
10134 (base32
10135 "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f"))))
10136 (build-system meson-build-system)
10137 (arguments
10138 `(#:glib-or-gtk? #t
10139 #:phases
10140 (modify-phases %standard-phases
10141 (add-after 'unpack 'skip-gtk-update-icon-cache
10142 ;; Don't create 'icon-theme.cache'.
10143 (lambda _
10144 (substitute* "build-aux/meson/post-install.py"
10145 (("gtk-update-icon-cache") "true")))))))
10146 (native-inputs
10147 (list `(,glib "bin")
10148 gobject-introspection
10149 intltool
10150 itstool
10151 pkg-config
10152 libxml2))
10153 (inputs
10154 (list gsettings-desktop-schemas
10155 gtk+))
10156 (home-page "https://wiki.gnome.org/Apps/Dictionary")
10157 (synopsis "Look up words in dictionary sources")
10158 (description
10159 "GNOME Dictionary can look for the definition or translation of a word in
10160 existing databases over the internet.")
10161 (license license:gpl3+)))
10162
10163 (define-public gnome-tweaks
10164 (package
10165 (name "gnome-tweaks")
10166 (version "40.10")
10167 (source (origin
10168 (method url-fetch)
10169 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
10170 (version-major version) "/"
10171 "gnome-tweaks-" version ".tar.xz"))
10172 (patches
10173 (list (search-patch "gnome-tweaks-search-paths.patch")))
10174 (sha256
10175 (base32
10176 "1z13xy804hld9q8k0vq5y4j5jk7m0ayqzkli8jxpymwrlcrkpzfg"))))
10177 (build-system meson-build-system)
10178 (arguments
10179 (list
10180 #:glib-or-gtk? #t
10181 #:configure-flags #~(list "-Dlocalstatedir=/tmp"
10182 "-Dsysconfdir=/tmp")
10183 #:imported-modules `((guix build python-build-system)
10184 ,@%meson-build-system-modules)
10185 #:modules '((guix build meson-build-system)
10186 ((guix build python-build-system) #:prefix python:)
10187 (guix build utils))
10188 #:phases
10189 #~(modify-phases %standard-phases
10190 (add-after 'unpack 'skip-gtk-update-icon-cache
10191 ;; Don't create 'icon-theme.cache'.
10192 (lambda _
10193 (substitute* "meson-postinstall.py"
10194 (("gtk-update-icon-cache") "true"))))
10195 (add-after 'install 'wrap
10196 (assoc-ref python:%standard-phases 'wrap))
10197 (add-after 'wrap 'wrap-gi-typelib-and-python
10198 (lambda* (#:key inputs outputs #:allow-other-keys)
10199 (wrap-program (search-input-file outputs "bin/gnome-tweaks")
10200 `("GI_TYPELIB_PATH" ":" prefix
10201 (,(getenv "GI_TYPELIB_PATH")))
10202 `("GUIX_PYTHONPATH" ":" prefix
10203 (,(python:site-packages inputs outputs)))))))))
10204 (native-inputs
10205 (list `(,glib "bin") ; for glib-compile-resources, etc.
10206 gettext-minimal
10207 pkg-config))
10208 (inputs
10209 (list bash-minimal ; to execute the wrapper program
10210 gnome-desktop
10211 gtk+
10212 gobject-introspection
10213 gsettings-desktop-schemas
10214 libhandy
10215 libnotify
10216 libsoup
10217 nautilus
10218 python
10219 python-pygobject))
10220 (synopsis "Customize advanced GNOME 3 options")
10221 (home-page "https://wiki.gnome.org/Apps/Tweaks")
10222 (description
10223 "GNOME Tweaks allows adjusting advanced configuration settings in
10224 GNOME 3. This includes things like the fonts used in user interface elements,
10225 alternative user interface themes, changes in window management behavior,
10226 GNOME Shell appearance and extension, etc.")
10227 (license license:gpl3+)))
10228
10229 (define-public gnome-shell-extensions
10230 (package
10231 (name "gnome-shell-extensions")
10232 (version "42.3")
10233 (source (origin
10234 (method url-fetch)
10235 (uri (string-append "mirror://gnome/sources/" name "/"
10236 (version-major version) "/"
10237 name "-" version ".tar.xz"))
10238 (sha256
10239 (base32
10240 "1z3k4bvq8f2s0q9q7i093w4hrz289lci7xlib20aqa4z5sivxhhf"))))
10241 (build-system meson-build-system)
10242 (arguments
10243 '(#:configure-flags '("-Dextension_set=all")))
10244 (native-inputs
10245 (list `(,glib "bin")
10246 gettext-minimal
10247 pkg-config))
10248 (propagated-inputs
10249 (list glib))
10250 (synopsis "Extensions for GNOME Shell")
10251 (description "GNOME Shell extensions modify and extend GNOME Shell
10252 functionality and behavior.")
10253 (home-page "https://extensions.gnome.org/")
10254 (license license:gpl3+)))
10255
10256 (define-public folks
10257 (package
10258 (name "folks")
10259 (version "0.15.5")
10260 (source (origin
10261 (method url-fetch)
10262 (uri (string-append
10263 "mirror://gnome/sources/folks/"
10264 (version-major+minor version) "/"
10265 "folks-" version ".tar.xz"))
10266 (sha256
10267 (base32
10268 "11lhfn6b7gml4ckj2dkm6g889j21wpvj90srwjp85k9hcf4qmzqg"))))
10269 (build-system meson-build-system)
10270 (arguments
10271 '(#:phases
10272 (modify-phases %standard-phases
10273 (add-after 'unpack 'skip-gtk-update-icon-cache
10274 ;; Don't create 'icon-theme.cache'.
10275 (lambda _
10276 (substitute* "meson_post_install.py"
10277 (("gtk-update-icon-cache") "true")))))))
10278 (inputs
10279 (list bdb
10280 dbus-glib
10281 evolution-data-server
10282 glib
10283 libgee
10284 readline
10285 telepathy-glib))
10286 (native-inputs
10287 (list gettext-minimal
10288 `(,glib "bin")
10289 gobject-introspection
10290 python-dbusmock
10291 pkg-config
10292 python
10293 vala))
10294 (synopsis "Library to aggregate data about people")
10295 (description "Libfolks is a library that aggregates information about people
10296 from multiple sources (e.g., Telepathy connection managers for IM contacts,
10297 Evolution Data Server for local contacts, libsocialweb for web service contacts,
10298 etc.) to create metacontacts. It's written in Vala, which generates C code when
10299 compiled.")
10300 (home-page "https://wiki.gnome.org/Projects/Folks")
10301 (license license:lgpl2.1+)))
10302
10303 (define-public gfbgraph
10304 (package
10305 (name "gfbgraph")
10306 (version "0.2.4")
10307 (source (origin
10308 (method url-fetch)
10309 (uri (string-append
10310 "mirror://gnome/sources/gfbgraph/"
10311 (version-major+minor version) "/"
10312 "gfbgraph-" version ".tar.xz"))
10313 (sha256
10314 (base32
10315 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
10316 (build-system glib-or-gtk-build-system)
10317 (arguments
10318 `(#:tests? #f ; tests appear to require the network
10319 #:configure-flags '("--disable-static"
10320 "--enable-gtk-doc"
10321 "--enable-introspection")))
10322 (native-inputs
10323 (list gobject-introspection
10324 gtk-doc/stable
10325 pkg-config
10326 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
10327 autoconf
10328 automake
10329 libtool
10330 which))
10331 (inputs
10332 `(("json-glib" ,json-glib)
10333 ("gnome-online-accounts" ,gnome-online-accounts)
10334 ("rest" ,rest)))
10335 (synopsis "GLib/GObject wrapper for the Facebook API")
10336 (description "This library allows you to use the Facebook API from
10337 GLib/GObject code.")
10338 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
10339 (license license:lgpl2.1+)))
10340
10341 (define-public libgnomekbd
10342 (package
10343 (name "libgnomekbd")
10344 (version "3.28.0")
10345 (source (origin
10346 (method url-fetch)
10347 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
10348 (version-major+minor version) "/"
10349 "libgnomekbd-" version ".tar.xz"))
10350 (sha256
10351 (base32
10352 "1jarhq9crhq0wfnbcz7x3hgxbkan98ax3p2jwcgzj9jc7r27l1dk"))))
10353 (build-system gnu-build-system)
10354 (native-inputs
10355 (list autoconf
10356 automake
10357 `(,glib "bin")
10358 libtool
10359 pkg-config
10360 gettext-minimal
10361 gobject-introspection))
10362 (propagated-inputs
10363 ;; Referred to in .h files and .pc.
10364 (list glib
10365 gtk+
10366 libxklavier))
10367 (home-page "https://www.gnome.org")
10368 (synopsis "GNOME keyboard configuration library")
10369 (description
10370 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
10371 environment, which can notably display keyboard layouts.")
10372 (license license:lgpl2.0+)))
10373
10374 ;;; This package is no longer maintained:
10375 ;;; https://wiki.gnome.org/Attic/LibUnique
10376 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
10377 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
10378 (define-public libunique
10379 (package
10380 (name "libunique")
10381 (version "3.0.2")
10382 (source (origin
10383 (method url-fetch)
10384 (uri (string-append "mirror://gnome/sources/" name "/"
10385 (version-major+minor version) "/"
10386 name "-" version ".tar.xz"))
10387 (sha256
10388 (base32
10389 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
10390 (build-system glib-or-gtk-build-system)
10391 (arguments
10392 `(#:configure-flags '("--disable-static"
10393 "--disable-dbus" ; use gdbus
10394 "--enable-introspection")))
10395 (native-inputs
10396 `(("pkg-config" ,pkg-config)
10397 ("gobject-introspection" ,gobject-introspection)
10398 ("glib:bin" ,glib "bin")
10399 ("gtk-doc" ,gtk-doc/stable)))
10400 (propagated-inputs
10401 ;; Referred to in .h files and .pc.
10402 (list gtk+))
10403 (home-page "https://wiki.gnome.org/Attic/LibUnique")
10404 (synopsis "Library for writing single instance applications")
10405 (description
10406 "Libunique is a library for writing single instance applications. If you
10407 launch a single instance application twice, the second instance will either just
10408 quit or will send a message to the running instance. Libunique makes it easy to
10409 write this kind of application, by providing a base class, taking care of all
10410 the IPC machinery needed to send messages to a running instance, and also
10411 handling the startup notification side.")
10412 (license license:lgpl2.1+)))
10413
10414 (define-public gnome-calculator
10415 (package
10416 (name "gnome-calculator")
10417 (version "42.2")
10418 (source
10419 (origin
10420 (method url-fetch)
10421 (uri (string-append "mirror://gnome/sources/" name "/"
10422 (version-major version) "/"
10423 name "-" version ".tar.xz"))
10424 (sha256
10425 (base32
10426 "1866qn0r9xp7b7j1436kry2k3bdh9ikhz2wm41jxcn1nljyb3nik"))))
10427 (build-system meson-build-system)
10428 (arguments
10429 '(#:glib-or-gtk? #t
10430 #:phases
10431 (modify-phases %standard-phases
10432 (add-after 'unpack 'skip-gtk-update-icon-cache
10433 (lambda _
10434 (substitute* "meson.build"
10435 (("gtk_update_icon_cache: true")
10436 "gtk_update_icon_cache: false"))))
10437 (add-before 'check 'pre-check
10438 (lambda _
10439 ;; Tests require a writable HOME.
10440 (setenv "HOME" (getcwd)))))))
10441 (native-inputs
10442 (list gettext-minimal
10443 `(,glib "bin") ;for glib-compile-schemas, gio-2.0.
10444 itstool
10445 pkg-config
10446 python
10447 vala))
10448 (inputs
10449 (list gsettings-desktop-schemas-next
10450 gtksourceview
10451 libadwaita
10452 libgee
10453 libhandy
10454 libsoup-minimal-2
10455 libxml2
10456 mpc
10457 mpfr))
10458 (home-page "https://wiki.gnome.org/Apps/Calculator")
10459 (synopsis "Desktop calculator")
10460 (description
10461 "Calculator is an application that solves mathematical equations and
10462 is suitable as a default application in a Desktop environment.")
10463 (license license:gpl3)))
10464
10465 (define-public xpad
10466 (package
10467 (name "xpad")
10468 (version "5.8.0")
10469 (source
10470 (origin
10471 (method url-fetch)
10472 (uri (string-append "https://launchpad.net/xpad/trunk/"
10473 version "/+download/"
10474 name "-" version ".tar.bz2"))
10475 (sha256
10476 (base32
10477 "1sc2dz4yxx6glnqpnhiby85g2blnsfn8d3fvbaqhdi2hi0q54q7j"))))
10478 (build-system gnu-build-system)
10479 (native-inputs
10480 (list autoconf automake
10481 `(,gtk+ "bin") intltool pkg-config))
10482 (inputs
10483 (list gtksourceview libsm))
10484 (home-page "https://wiki.gnome.org/Apps/Xpad")
10485 (synopsis "Virtual sticky note")
10486 (description
10487 "Xpad is a sticky note that strives to be simple, fault tolerant,
10488 and customizable. Xpad consists of independent pad windows, each is
10489 basically a text box in which notes can be written.")
10490 (license license:gpl3+)))
10491
10492 (define-public gucharmap
10493 (let ((unicode-files
10494 '(("Blocks.txt"
10495 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
10496 ("DerivedAge.txt"
10497 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
10498 ("NamesList.txt"
10499 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
10500 ("Scripts.txt"
10501 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
10502 ("UnicodeData.txt"
10503 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
10504 ("Unihan.zip"
10505 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
10506 (package
10507 (name "gucharmap")
10508 (version "12.0.1")
10509 (source
10510 (origin
10511 (method url-fetch)
10512 (uri (string-append "mirror://gnome/sources/" name "/"
10513 (version-major+minor version) "/"
10514 name "-" version ".tar.xz"))
10515 (sha256
10516 (base32
10517 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
10518 (build-system glib-or-gtk-build-system)
10519 (arguments
10520 `(#:modules ((ice-9 match)
10521 (guix build glib-or-gtk-build-system)
10522 (guix build utils))
10523 #:configure-flags
10524 (list "--with-unicode-data=../unicode-data")
10525 #:phases
10526 (modify-phases %standard-phases
10527 (add-after 'unpack 'prepare-unicode-data
10528 (lambda* (#:key inputs #:allow-other-keys)
10529 (mkdir-p "../unicode-data")
10530 (with-directory-excursion "../unicode-data"
10531 (for-each (match-lambda
10532 ((file _)
10533 (install-file (assoc-ref inputs file) ".")))
10534 ',unicode-files))
10535 #t)))))
10536 (native-inputs
10537 `(("desktop-file-utils" ,desktop-file-utils)
10538 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
10539 ("gobject-introspection" ,gobject-introspection)
10540 ("intltool" ,intltool)
10541 ("itstool" ,itstool)
10542 ("pkg-config" ,pkg-config)
10543 ,@(map (match-lambda
10544 ((file hash)
10545 `(,file
10546 ,(origin
10547 (method url-fetch)
10548 (uri (string-append
10549 "http://www.unicode.org/Public/12.0.0/ucd/"
10550 file))
10551 (sha256 (base32 hash))))))
10552 unicode-files)
10553 ("unzip" ,unzip)))
10554 (inputs
10555 `(("gtk+" ,gtk+)
10556 ("xmllint" ,libxml2)))
10557 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
10558 (synopsis "Unicode character picker and font browser")
10559 (description
10560 "This program allows you to browse through all the available Unicode
10561 characters and categories for the installed fonts, and to examine their
10562 detailed properties. It is an easy way to find the character you might
10563 only know by its Unicode name or code point.")
10564 (license license:gpl3+))))
10565
10566 (define-public gcolor3
10567 (package
10568 (name "gcolor3")
10569 (version "2.4.0")
10570 (source
10571 (origin
10572 (method git-fetch)
10573 (uri (git-reference
10574 (url "https://gitlab.gnome.org/World/gcolor3")
10575 (commit (string-append "v" version))))
10576 (file-name (git-file-name name version))
10577 (sha256
10578 (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc"))
10579 ;; XXX: Remove when upgrading
10580 (patches (search-patches "gcolor3-update-libportal-usage.patch"))))
10581 (build-system meson-build-system)
10582 (arguments
10583 `(#:glib-or-gtk? #t))
10584 (native-inputs
10585 (list desktop-file-utils gettext-minimal
10586 `(,glib "bin")
10587 `(,gtk+ "bin") pkg-config))
10588 (inputs
10589 (list gsettings-desktop-schemas gtk+ libportal))
10590 (home-page "https://www.hjdskes.nl/projects/gcolor3/")
10591 (synopsis "Simple color chooser written in GTK3")
10592 (description "Color Picker is a simple color chooser written in GTK3. It
10593 supports both X and Wayland display servers.")
10594 (license license:gpl2+)))
10595
10596 (define-public bluefish
10597 (package
10598 (name "bluefish")
10599 (version "2.2.12")
10600 (source
10601 (origin
10602 (method url-fetch)
10603 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
10604 "bluefish-" version ".tar.gz"))
10605 (sha256
10606 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
10607 (build-system gnu-build-system)
10608 (native-inputs
10609 (list desktop-file-utils intltool pkg-config))
10610 (inputs
10611 (list enchant gtk+ python-wrapper libxml2 gucharmap))
10612 (home-page "http://bluefish.openoffice.nl")
10613 (synopsis "Web development studio")
10614 (description
10615 "Bluefish is an editor aimed at programmers and web developers,
10616 with many options to write web sites, scripts and other code.
10617 Bluefish supports many programming and markup languages.")
10618 (license license:gpl3+)))
10619
10620 (define-public gnome-system-monitor
10621 (package
10622 (name "gnome-system-monitor")
10623 (version "42.0")
10624 (source
10625 (origin
10626 (method url-fetch)
10627 (uri (string-append "mirror://gnome/sources/" name "/"
10628 (version-major version) "/"
10629 name "-" version ".tar.xz"))
10630 (sha256
10631 (base32
10632 "1p3mq32pfd9260aql5nys806g0c4nrswacwqs8ms40920ci9s8qk"))))
10633 (build-system meson-build-system)
10634 (arguments
10635 '(#:glib-or-gtk? #t
10636 #:configure-flags '("-Dsystemd=false")))
10637 (native-inputs
10638 (list `(,glib "bin") ;for glib-mkenums.
10639 `(,gtk+ "bin") ;gtk-update-icon-cache
10640 intltool
10641 itstool
10642 libgtop
10643 polkit
10644 pkg-config))
10645 (inputs
10646 (list gdk-pixbuf ;for loading SVG files.
10647 gtk+
10648 gtkmm-3
10649 libhandy
10650 librsvg
10651 libxml2
10652 libwnck))
10653 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10654 (synopsis "Process viewer and system resource monitor for GNOME")
10655 (description
10656 "GNOME System Monitor is a GNOME process viewer and system monitor with
10657 an attractive, easy-to-use interface. It has features, such as a tree view
10658 for process dependencies, icons for processes, the ability to hide processes,
10659 graphical time histories of CPU/memory/swap usage and the ability to
10660 kill/reinice processes.")
10661 (license license:gpl2+)))
10662
10663 (define-public python-pyatspi
10664 (package
10665 (name "python-pyatspi")
10666 (version "2.34.0")
10667 (source (origin
10668 (method url-fetch)
10669 (uri (string-append
10670 "mirror://gnome/sources/pyatspi/"
10671 (version-major+minor version)
10672 "/pyatspi-" version ".tar.xz"))
10673 (sha256
10674 (base32
10675 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10676 (build-system gnu-build-system)
10677 (arguments
10678 `(#:phases
10679 (modify-phases %standard-phases
10680 (add-before 'build 'fix-atk-load
10681 (lambda _
10682 (substitute* "pyatspi/__init__.py"
10683 (("from gi.repository import Atspi")
10684 "gi.require_version('Gtk', '3.0')
10685 from gi.repository import Gtk
10686 from gi.repository import Atspi"))
10687 #t)))))
10688 (native-inputs
10689 (list pkg-config))
10690 (inputs
10691 (list python))
10692 (propagated-inputs
10693 (list python-pygobject))
10694 (synopsis "Python client bindings for D-Bus AT-SPI")
10695 (home-page "https://wiki.linuxfoundation.org/accessibility\
10696 /atk/at-spi/at-spi_on_d-bus")
10697 (description
10698 "This package includes a python client library for the AT-SPI D-Bus
10699 accessibility infrastructure.")
10700 (license license:lgpl2.0)
10701 (properties '((upstream-name . "pyatspi")))))
10702
10703 (define-public orca
10704 (package
10705 (name "orca")
10706 (version "41.0")
10707 (source (origin
10708 (method url-fetch)
10709 (uri (string-append
10710 "mirror://gnome/sources/" name "/"
10711 (version-major version) "/"
10712 name "-" version ".tar.xz"))
10713 (sha256
10714 (base32
10715 "1gflnsv6d5qn5rh1f16yfa0q0yv8yvd0l5lbwrsdg7z18lafb5vn"))))
10716 (build-system glib-or-gtk-build-system)
10717 (arguments
10718 '(#:phases
10719 (modify-phases %standard-phases
10720 (add-before 'configure 'qualify-xkbcomp
10721 (lambda* (#:key inputs #:allow-other-keys)
10722 (let ((xkbcomp (string-append
10723 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10724 (substitute* "src/orca/orca.py"
10725 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))))
10726 (add-after 'install 'wrap-orca
10727 (lambda* (#:key outputs #:allow-other-keys)
10728 (let* ((out (assoc-ref outputs "out"))
10729 (prog (string-append out "/bin/orca")))
10730 (wrap-program prog
10731 `("GI_TYPELIB_PATH" ":" prefix
10732 (,(getenv "GI_TYPELIB_PATH")))
10733 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10734 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10735 `("GUIX_PYTHONPATH" ":" prefix
10736 (,(getenv "GUIX_PYTHONPATH"))))))))))
10737 (native-inputs
10738 (list intltool
10739 itstool
10740 pkg-config
10741 libxml2))
10742 (inputs
10743 (list at-spi2-atk
10744 gsettings-desktop-schemas
10745 gstreamer
10746 gst-plugins-base
10747 gst-plugins-good
10748 gtk+
10749 python
10750 python-pygobject
10751 python-pyatspi
10752 speech-dispatcher
10753 xkbcomp))
10754 (synopsis
10755 "Screen reader for individuals who are blind or visually impaired")
10756 (home-page "https://wiki.gnome.org/Projects/Orca")
10757 (description
10758 "Orca is a screen reader that provides access to the graphical desktop
10759 via speech and refreshable braille. Orca works with applications and toolkits
10760 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10761 (license license:lgpl2.1+)))
10762
10763 (define-public gspell
10764 (package
10765 (name "gspell")
10766 (version "1.8.2")
10767 (source (origin
10768 (method url-fetch)
10769 (uri (string-append "mirror://gnome/sources/" name "/"
10770 (version-major+minor version) "/"
10771 name "-" version ".tar.xz"))
10772 (sha256
10773 (base32
10774 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10775 (patches (search-patches "gspell-dash-test.patch"))))
10776 (build-system glib-or-gtk-build-system)
10777 (arguments
10778 '(#:configure-flags (list "--enable-vala")
10779 #:phases
10780 (modify-phases %standard-phases
10781 (add-before 'check 'pre-check
10782 (lambda* (#:key inputs #:allow-other-keys)
10783 ;; Tests require a running X server.
10784 (system "Xvfb :1 &")
10785 (setenv "DISPLAY" ":1")
10786
10787 ;; For the missing /etc/machine-id.
10788 (setenv "DBUS_FATAL_WARNINGS" "0")
10789
10790 ;; Allow Enchant and its Aspell backend to find the en_US
10791 ;; dictionary.
10792 (setenv "ASPELL_DICT_DIR"
10793 (search-input-directory inputs "/lib/aspell")))))))
10794 (inputs
10795 (list iso-codes))
10796 (native-inputs
10797 `(("glib" ,glib "bin")
10798 ("gobject-introspection" ,gobject-introspection)
10799 ("pkg-config" ,pkg-config)
10800 ("vala" ,vala) ;for VAPI, needed by Geary
10801 ("xmllint" ,libxml2)
10802
10803 ;; For tests.
10804 ("aspell-dict-en" ,aspell-dict-en)
10805 ("xorg-server" ,xorg-server-for-tests)))
10806 (propagated-inputs
10807 ;; Referred by .pc file.
10808 (list enchant glib gtk+))
10809 (home-page "https://wiki.gnome.org/Projects/gspell")
10810 (synopsis "GNOME's alternative spell checker")
10811 (description
10812 "gspell provides a flexible API to add spell-checking to a GTK+
10813 application. It provides a GObject API, spell-checking to text entries and
10814 text views, and buttons to choose the language.")
10815 (license license:gpl2+)))
10816
10817 (define-public gnome-planner
10818 (package
10819 (name "gnome-planner")
10820 (version "0.14.6")
10821 (source (origin
10822 (method url-fetch)
10823 (uri (string-append "mirror://gnome/sources/planner/"
10824 (version-major+minor version) "/planner-"
10825 version ".tar.xz"))
10826 (sha256
10827 (base32
10828 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10829 (build-system glib-or-gtk-build-system)
10830 (arguments
10831 ;; Disable the Python bindings because the Planner program functions
10832 ;; without them, and (as of 2017-06-13) we have not packaged all of
10833 ;; packages that are necessary for building the Python bindings.
10834 `(#:configure-flags
10835 (list "--disable-python"
10836 ,@(if (string=? "aarch64-linux" (%current-system))
10837 '("--build=aarch64-unknown-linux-gnu")
10838 '()))))
10839 (inputs
10840 (list libgnomecanvas
10841 libgnomeui
10842 libglade
10843 gnome-vfs
10844 gconf
10845 libxml2
10846 libxslt
10847 gtk+
10848 glib))
10849 (native-inputs
10850 (list intltool scrollkeeper pkg-config))
10851 (home-page "https://wiki.gnome.org/Apps/Planner")
10852 (synopsis "Project management software for the GNOME desktop")
10853 (description
10854 "GNOME Planner is a project management tool based on the Work Breakdown
10855 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10856 the resources, tasks, and constraints that you define, Planner generates
10857 various views into a project. For example, Planner can show a Gantt chart of
10858 the project. It can show a detailed summary of tasks including their
10859 duration, cost, and current progress. It can also show a report of resource
10860 utilization that highlights under-utilized and over-utilized resources. These
10861 views can be printed as PDF or PostScript files, or exported to HTML.")
10862 (license license:gpl2+)))
10863
10864 (define-public lollypop
10865 (package
10866 (name "lollypop")
10867 (version "1.4.24")
10868 (source
10869 (origin
10870 (method url-fetch)
10871 (uri (string-append "https://adishatz.org/lollypop/"
10872 "lollypop-" version ".tar.xz"))
10873 (sha256
10874 (base32 "10cw3x75siibmnbh4zhfmf2vd08fqjs3lj3l4wpk6zj9h22ncfxw"))))
10875 (build-system meson-build-system)
10876 (arguments
10877 `(#:imported-modules
10878 (,@%meson-build-system-modules
10879 (guix build python-build-system))
10880 #:modules
10881 ((guix build meson-build-system)
10882 ((guix build python-build-system) #:prefix python:)
10883 (guix build utils))
10884 #:glib-or-gtk? #t
10885 #:tests? #f ; no test suite
10886 #:phases
10887 (modify-phases %standard-phases
10888 (add-after 'install 'wrap-program
10889 (lambda* (#:key outputs #:allow-other-keys)
10890 (let ((out (assoc-ref outputs "out"))
10891 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10892 (wrap-program (string-append out "/bin/lollypop")
10893 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10894 #t))
10895 (add-after 'install 'wrap-python
10896 (assoc-ref python:%standard-phases 'wrap)))))
10897 (native-inputs
10898 `(("gettext" ,gettext-minimal)
10899 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10900 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10901 ("pkg-config" ,pkg-config)))
10902 (inputs
10903 `(("glib-networking" ,glib-networking)
10904 ("gobject-introspection" ,gobject-introspection)
10905 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10906 ("gst-plugins-base" ,gst-plugins-base)
10907 ("libnotify" ,libnotify)
10908 ("libsecret" ,libsecret)
10909 ("libhandy" ,libhandy)
10910 ("libsoup" ,libsoup-minimal-2)
10911 ("python" ,python)
10912 ("python-beautifulsoup4" ,python-beautifulsoup4)
10913 ("python-gst" ,python-gst)
10914 ("python-pil" ,python-pillow)
10915 ("python-pycairo" ,python-pycairo)
10916 ("python-pygobject" ,python-pygobject)
10917 ("python-pylast" ,python-pylast)
10918 ("totem-pl-parser" ,totem-pl-parser)
10919 ("webkitgtk" ,webkitgtk)))
10920 (propagated-inputs
10921 (list ;; gst-plugins-base is required to start Lollypop,
10922 ;; the others are required to play streaming.
10923 gst-plugins-good gst-plugins-ugly))
10924 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10925 (synopsis "GNOME music playing application")
10926 (description
10927 "Lollypop is a music player designed to play well with GNOME desktop.
10928 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10929 from artists and tracks from the web. It also fetches cover artworks
10930 automatically and it can stream songs from online music services and charts.")
10931 (license license:gpl3+)))
10932
10933 (define-public gnome-video-effects
10934 (package
10935 (name "gnome-video-effects")
10936 (version "0.5.0")
10937 (source (origin
10938 (method url-fetch)
10939 (uri (string-append "mirror://gnome/sources/" name "/"
10940 (version-major+minor version) "/" name "-"
10941 version ".tar.xz"))
10942 (sha256
10943 (base32
10944 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10945 (build-system meson-build-system)
10946 (native-inputs
10947 (list gettext-minimal pkg-config))
10948 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10949 (synopsis "Video effects for Cheese and other GNOME applications")
10950 (description
10951 "A collection of GStreamer video filters and effects to be used in
10952 photo-booth-like software, such as Cheese.")
10953 (license license:gpl2+)))
10954
10955 (define-public cheese
10956 (package
10957 (name "cheese")
10958 (version "41.0")
10959 (source (origin
10960 (method url-fetch)
10961 (uri (string-append "mirror://gnome/sources/" name "/"
10962 (version-major version) "/" name "-"
10963 version ".tar.xz"))
10964 (sha256
10965 (base32
10966 "1y92glc0d6w323x2bdbc0gdh1jdffvkbv6cwlwm1rx0wgvv1svqh"))))
10967 (arguments
10968 `(#:glib-or-gtk? #t
10969 #:meson ,meson-0.60
10970 ;; Tests require GDK.
10971 #:tests? #f
10972 #:phases
10973 (modify-phases %standard-phases
10974 (add-after 'unpack 'skip-gtk-update-icon-cache
10975 (lambda _
10976 ;; Don't create 'icon-theme.cache'
10977 (substitute* "meson_post_install.py"
10978 (("gtk-update-icon-cache") (which "true")))
10979 #t))
10980 (add-after 'install 'wrap-cheese
10981 (lambda* (#:key inputs outputs #:allow-other-keys)
10982 (let ((out (assoc-ref outputs "out"))
10983 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
10984 (wrap-program (string-append out "/bin/cheese")
10985 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
10986 #t)))))
10987 (build-system meson-build-system)
10988 (native-inputs
10989 (list docbook-xsl
10990 docbook-xml-4.3
10991 gettext-minimal
10992 `(,glib "bin")
10993 gtk-doc/stable
10994 itstool
10995 libxml2
10996 libxslt
10997 pkg-config
10998 vala))
10999 (propagated-inputs
11000 (list gnome-video-effects
11001 clutter
11002 clutter-gst
11003 clutter-gtk
11004 libcanberra
11005 gdk-pixbuf
11006 glib
11007 gstreamer))
11008 (inputs
11009 (list gnome-desktop
11010 gobject-introspection
11011 gst-plugins-base
11012 gst-plugins-good
11013 gst-plugins-bad
11014 gtk+
11015 libx11
11016 libxtst))
11017 (home-page "https://wiki.gnome.org/Apps/Cheese")
11018 (synopsis "Webcam photo booth software for GNOME")
11019 (description
11020 "Cheese uses your webcam to take photos and videos. Cheese can also
11021 apply fancy special effects and lets you share the fun with others.")
11022 (license license:gpl2+)))
11023
11024 (define-public passwordsafe
11025 (package
11026 (name "passwordsafe")
11027 (version "5.1")
11028 (source
11029 (origin
11030 (method git-fetch)
11031 (uri (git-reference
11032 (url "https://gitlab.gnome.org/World/secrets")
11033 (commit version)))
11034 (file-name (git-file-name name version))
11035 (sha256
11036 (base32 "0kd43j6i017wdsqj6d5gnxhfv4ijnh3xahlw7md2gh51i8p682j6"))))
11037 (build-system meson-build-system)
11038 (arguments
11039 (list #:glib-or-gtk? #t
11040 #:meson meson-0.59
11041 #:phases
11042 #~(modify-phases %standard-phases
11043 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11044 (lambda* (#:key outputs #:allow-other-keys)
11045 (let ((prog (string-append #$output
11046 "/bin/gnome-passwordsafe"))
11047 (pylib (string-append
11048 #$output "/lib/python"
11049 #$(version-major+minor
11050 (package-version (this-package-input "python")))
11051 "/site-packages")))
11052 (wrap-program prog
11053 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11054 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11055 (native-inputs
11056 (list desktop-file-utils
11057 gettext-minimal
11058 `(,glib "bin")
11059 gobject-introspection
11060 `(,gtk+ "bin")
11061 pkg-config))
11062 (inputs
11063 (list glib
11064 gsettings-desktop-schemas
11065 gtk+
11066 libhandy
11067 libpwquality
11068 python
11069 python-pygobject
11070 python-pykeepass))
11071 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
11072 (synopsis "Password manager for the GNOME desktop")
11073 (description
11074 "Password Safe is a password manager which makes use of the KeePass v4
11075 format. It integrates perfectly with the GNOME desktop and provides an easy
11076 and uncluttered interface for the management of password databases.")
11077 (license license:gpl3+)))
11078
11079 (define-public sound-juicer
11080 (package
11081 (name "sound-juicer")
11082 (version "3.24.0")
11083 (source
11084 (origin
11085 (method url-fetch)
11086 (uri (string-append "mirror://gnome/sources/" name "/"
11087 (version-major+minor version) "/"
11088 name "-" version ".tar.xz"))
11089 (sha256
11090 (base32
11091 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
11092 (build-system glib-or-gtk-build-system)
11093 (native-inputs
11094 (list desktop-file-utils intltool itstool pkg-config libxml2))
11095 (inputs
11096 (list gtk+
11097 gsettings-desktop-schemas
11098 gstreamer
11099 gst-plugins-base
11100 gst-plugins-good
11101 iso-codes
11102 brasero
11103 libcanberra
11104 libdiscid
11105 libmusicbrainz
11106 neon))
11107 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
11108 (synopsis "Audio music cd ripper")
11109 (description "Sound Juicer extracts audio from compact discs and convert it
11110 into audio files that a personal computer or digital audio player can play.
11111 It supports ripping to any audio codec supported by a GStreamer plugin, such as
11112 mp3, Ogg Vorbis and FLAC")
11113 (license license:gpl2+)))
11114
11115 (define-public soundconverter
11116 (package
11117 (name "soundconverter")
11118 (version "3.0.2")
11119 (source
11120 (origin
11121 (method url-fetch)
11122 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
11123 version "/+download/"
11124 "soundconverter-" version ".tar.xz"))
11125
11126 (sha256
11127 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
11128 (build-system glib-or-gtk-build-system)
11129 (arguments
11130 `(#:imported-modules ((guix build python-build-system)
11131 (guix build glib-or-gtk-build-system)
11132 ,@%gnu-build-system-modules)
11133
11134 #:modules ((guix build glib-or-gtk-build-system)
11135 (guix build utils)
11136 ((guix build gnu-build-system) #:prefix gnu:)
11137 ((guix build python-build-system) #:prefix python:))
11138
11139 #:phases
11140 (modify-phases %standard-phases
11141 (add-after 'install 'wrap-soundconverter-for-python
11142 (assoc-ref python:%standard-phases 'wrap))
11143 (add-after 'install 'wrap-soundconverter
11144 (lambda* (#:key inputs outputs #:allow-other-keys)
11145 (let ((out (assoc-ref outputs "out"))
11146 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
11147 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
11148 (wrap-program (string-append out "/bin/soundconverter")
11149 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
11150 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
11151 #t)))))
11152 (native-inputs
11153 `(("intltool" ,intltool)
11154 ("pkg-config" ,pkg-config)
11155 ("glib:bin" ,glib "bin")))
11156 (inputs
11157 (list gtk+ python python-pygobject gstreamer gst-plugins-base))
11158 (home-page "https://soundconverter.org/")
11159 (synopsis "Convert between audio formats with a graphical interface")
11160 (description
11161 "SoundConverter supports converting between many audio formats including
11162 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
11163 configurable file renaming.")
11164 (license license:gpl3)))
11165
11166 (define-public workrave
11167 (package
11168 (name "workrave")
11169 (version "1.10.50")
11170 (source
11171 (origin
11172 (method git-fetch)
11173 (uri (git-reference
11174 (url "https://github.com/rcaelers/workrave")
11175 (commit (string-append "v" (string-map
11176 (match-lambda (#\. #\_) (chr chr))
11177 version)))))
11178 (file-name (git-file-name name version))
11179 (sha256
11180 (base32 "0fj3fqmdn4nsjgvbbvzpxw2mgiihcr1zpb08amg2p6hg9n11y9bx"))))
11181 (build-system glib-or-gtk-build-system)
11182 (arguments
11183 ;; The only tests are maintainer tests (in po/), which fail.
11184 `(#:tests? #f))
11185 (inputs (list glib
11186 gtk+
11187 gdk-pixbuf
11188 gtkmm-3
11189 glibmm
11190 libx11
11191 libxtst
11192 dconf
11193 libice
11194 libsm
11195 libxscrnsaver))
11196 (native-inputs `(("boost" ,boost)
11197 ("pkg-config" ,pkg-config)
11198 ("gettext" ,gettext-minimal)
11199 ("autoconf" ,autoconf)
11200 ("autoconf-archive" , autoconf-archive)
11201 ("automake" ,automake)
11202 ("libtool" ,libtool)
11203 ("intltool" ,intltool)
11204 ("gobject-introspection" ,gobject-introspection)
11205 ("python3" ,python-3)
11206 ("python-jinja2" ,python-jinja2)))
11207 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
11208 (description
11209 "Workrave is a program that assists in the recovery and prevention of
11210 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
11211 micro-pauses and rest breaks, and restricts you to your daily limit.")
11212 (home-page "http://www.workrave.org")
11213 (license license:gpl3+)))
11214
11215 (define-public ghex
11216 (package
11217 (name "ghex")
11218 (version "3.18.4")
11219 (source (origin
11220 (method url-fetch)
11221 (uri (string-append "mirror://gnome/sources/ghex/"
11222 (version-major+minor version) "/"
11223 "ghex-" version ".tar.xz"))
11224 (sha256
11225 (base32
11226 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
11227 (build-system meson-build-system)
11228 (arguments
11229 '(#:glib-or-gtk? #t
11230 #:phases
11231 (modify-phases %standard-phases
11232 (add-after 'unpack 'skip-gtk-update-icon-cache
11233 ;; Don't create 'icon-theme.cache'.
11234 (lambda _
11235 (substitute* "meson_post_install.py"
11236 (("gtk-update-icon-cache") (which "true")))
11237 #t)))))
11238 (native-inputs
11239 `(("pkg-config" ,pkg-config)
11240 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
11241 ("gnome-common" ,gnome-common)
11242 ("which" ,which)
11243 ("intltool" ,intltool)
11244 ("yelp-tools" ,yelp-tools)
11245 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
11246 (inputs
11247 `(("atk" ,atk)
11248 ("gtk" ,gtk+)))
11249 (synopsis "GNOME hexadecimal editor")
11250 (description "The GHex program can view and edit files in two ways:
11251 hexadecimal or ASCII. It is useful for editing binary files in general.")
11252 (home-page "https://wiki.gnome.org/Apps/Ghex")
11253 (license license:gpl2)))
11254
11255 (define-public libdazzle
11256 (package
11257 (name "libdazzle")
11258 (version "3.44.0")
11259 (source (origin
11260 (method url-fetch)
11261 (uri (string-append "mirror://gnome/sources/libdazzle/"
11262 (version-major+minor version) "/"
11263 "libdazzle-" version ".tar.xz"))
11264 (sha256
11265 (base32
11266 "1blfs61ifv4fywl0wbr1cm3rvmgrv06yiqajbnq0qs72nrgf9lrw"))))
11267 (build-system meson-build-system)
11268 (arguments
11269 `(#:phases
11270 (modify-phases %standard-phases
11271 (add-before 'check 'pre-check
11272 (lambda _
11273 ;; Tests require a running X server.
11274 (system "Xvfb :1 &")
11275 (setenv "DISPLAY" ":1"))))))
11276 (native-inputs
11277 (list `(,glib "bin") ; glib-compile-resources
11278 gobject-introspection
11279 pkg-config
11280 ;; For tests.
11281 xorg-server-for-tests
11282 vala))
11283 (inputs
11284 (list glib
11285 gtk+))
11286 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
11287 (synopsis "Companion library to GObject and Gtk+")
11288 (description "The libdazzle library is a companion library to GObject and
11289 Gtk+. It provides various features that the authors wish were in the
11290 underlying library but cannot for various reasons. In most cases, they are
11291 wildly out of scope for those libraries. In other cases, they are not quite
11292 generic enough to work for everyone.")
11293 (license license:gpl3+)))
11294
11295 (define-public evolution
11296 (package
11297 (name "evolution")
11298 (version "3.42.1")
11299 (source (origin
11300 (method url-fetch)
11301 (uri (string-append "mirror://gnome/sources/evolution/"
11302 (version-major+minor version) "/"
11303 "evolution-" version ".tar.xz"))
11304 (sha256
11305 (base32
11306 "0igfzapdvgfx2gnpwfkjfkn7l5j186wk88ni39vqas1sl7ijlls6"))))
11307 (build-system cmake-build-system)
11308 (arguments
11309 `(#:imported-modules (,@%cmake-build-system-modules
11310 (guix build glib-or-gtk-build-system))
11311 #:modules ((guix build cmake-build-system)
11312 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11313 (guix build utils))
11314 #:configure-flags
11315 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
11316 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
11317 ; in four years and cannot be built.
11318 #:phases
11319 (modify-phases %standard-phases
11320 ;; The build system attempts to install user interface modules to the
11321 ;; output directory of the "evolution-data-server" package. This
11322 ;; change redirects that change.
11323 (add-after 'unpack 'patch-ui-module-dir
11324 (lambda* (#:key outputs #:allow-other-keys)
11325 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
11326 (("\\$\\{edsuimoduledir\\}")
11327 (string-append (assoc-ref outputs "out")
11328 "/lib/evolution-data-server/ui-modules")))))
11329 (add-after 'install 'glib-or-gtk-compile-schemas
11330 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
11331 (add-after 'install 'glib-or-gtk-wrap
11332 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11333 (native-inputs
11334 (list `(,glib "bin") ; glib-mkenums
11335 pkg-config intltool itstool))
11336 (inputs
11337 `(("enchant" ,enchant)
11338 ("evolution-data-server" ,evolution-data-server) ; must be the same version
11339 ("gcr" ,gcr)
11340 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11341 ("gnome-autoar" ,gnome-autoar)
11342 ("gnome-desktop" ,gnome-desktop)
11343 ("gspell" ,gspell)
11344 ("highlight" ,highlight)
11345 ("libcanberra" ,libcanberra)
11346 ("libgweather" ,libgweather)
11347 ("libnotify" ,libnotify)
11348 ("libsoup" ,libsoup)
11349 ("nss" ,nss)
11350 ("openldap" ,openldap)
11351 ("webkitgtk" ,webkitgtk-with-libsoup2) ; because of evolution-data-server
11352 ("ytnef" ,ytnef)))
11353 (home-page "https://gitlab.gnome.org/GNOME/evolution")
11354 (synopsis "Manage your email, contacts and schedule")
11355 (description "Evolution is a personal information management application
11356 that provides integrated mail, calendaring and address book
11357 functionality.")
11358 ;; See COPYING for details.
11359 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
11360 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
11361 license:lgpl2.1+)))) ; smime/lib/*
11362
11363 (define-public gthumb
11364 (package
11365 (name "gthumb")
11366 (version "3.12.2")
11367 (source (origin
11368 (method url-fetch)
11369 (uri (string-append "mirror://gnome/sources/gthumb/"
11370 (version-major+minor version) "/"
11371 "gthumb-" version ".tar.xz"))
11372 (sha256
11373 (base32
11374 "09flm8s6jrvfya2ypw5873mnnani8ssy7wdv3ra1cljk4bjszy4p"))))
11375 (build-system meson-build-system)
11376 (arguments
11377 `(#:glib-or-gtk? #t
11378 #:configure-flags
11379 ;; Ensure the RUNPATH contains all installed library locations.
11380 (list (string-append "-Dc_link_args=-Wl,-rpath="
11381 (assoc-ref %outputs "out")
11382 "/lib/gthumb/extensions")
11383 (string-append "-Dcpp_link_args=-Wl,-rpath="
11384 (assoc-ref %outputs "out")
11385 "/lib/gthumb/extensions"))))
11386 (native-inputs
11387 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11388 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11389 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11390 ("intltool" ,intltool)
11391 ("itstool" ,itstool)
11392 ("pkg-config" ,pkg-config)
11393 ("python" ,python)))
11394 (inputs
11395 `(("clutter" ,clutter)
11396 ("clutter-gst" ,clutter-gst)
11397 ("clutter-gtk" ,clutter-gtk)
11398 ("colord" ,colord)
11399 ("exiv2" ,exiv2)
11400 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11401 ("gstreamer" ,gstreamer)
11402 ("gtk" ,gtk+)
11403 ("libheif" ,libheif)
11404 ("libjpeg" ,libjpeg-turbo)
11405 ("libraw" ,libraw)
11406 ("librsvg" ,librsvg)
11407 ("libtiff" ,libtiff)
11408 ("libwebp" ,libwebp)))
11409 (home-page "https://wiki.gnome.org/Apps/Gthumb")
11410 (synopsis "GNOME image viewer and browser")
11411 (description "GThumb is an image viewer, browser, organizer, editor and
11412 advanced image management tool")
11413 (license license:gpl2+)))
11414
11415 (define-public terminator
11416 (package
11417 (name "terminator")
11418 (version "2.1.1")
11419 (source
11420 (origin
11421 (method url-fetch)
11422 (uri (string-append "https://github.com/gnome-terminator/terminator/"
11423 "releases/download/v" version "/"
11424 name "-" version ".tar.gz"))
11425 (sha256
11426 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
11427 (build-system python-build-system)
11428 (native-inputs
11429 `(("gettext" ,gettext-minimal)
11430 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11431 ("gobject-introspection" ,gobject-introspection)
11432 ("intltool" ,intltool)
11433 ("pkg-config" ,pkg-config)
11434 ("python-psutil" ,python-psutil)
11435 ("python-pytest-runner" ,python-pytest-runner)
11436 ("python-pytest" ,python-pytest)))
11437 (inputs
11438 `(("cairo" ,cairo)
11439 ("dbus-glib" ,dbus-glib)
11440 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11441 ("gtk+" ,gtk+)
11442 ("python" ,python-wrapper)
11443 ("python-dbus" ,python-dbus)
11444 ("python-notify2" ,python-notify2)
11445 ("python-pycairo" ,python-pycairo)
11446 ("python-pygobject" ,python-pygobject)
11447 ("vte" ,vte)))
11448 (propagated-inputs
11449 (list python-configobj))
11450 (arguments
11451 ;; One test out of 28 fails due to dbus-python and python-notify; skip
11452 ;; tests.
11453 `(#:tests? #f
11454 #:imported-modules ((guix build glib-or-gtk-build-system)
11455 ,@%python-build-system-modules)
11456 #:modules ((guix build python-build-system)
11457 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11458 (guix build utils))
11459 #:phases
11460 (modify-phases %standard-phases
11461 (add-after 'unpack 'handle-dbus-python
11462 (lambda _
11463 ;; python-dbus cannot be found but it's really there. See
11464 ;; https://github.com/SpotlightKid/jack-select/issues/2
11465 (substitute* "setup.py"
11466 (("'dbus-python',") ""))))
11467 (add-after 'install 'wrap-program
11468 (lambda* (#:key outputs #:allow-other-keys)
11469 (let ((prog (string-append (assoc-ref outputs "out")
11470 "/bin/terminator"))
11471 (pylib (string-append (assoc-ref outputs "out")
11472 "/lib/python"
11473 ,(version-major+minor
11474 (package-version python))
11475 "/site-packages")))
11476 (wrap-program prog
11477 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11478 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
11479 (add-after 'wrap-program 'glib-or-gtk-wrap
11480 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11481 (home-page "https://gnome-terminator.org/")
11482 (synopsis "Store and run multiple GNOME terminals in one window")
11483 (description
11484 "Terminator allows you to run multiple GNOME terminals in a grid and
11485 tabs, and it supports drag and drop re-ordering of terminals.")
11486 (license license:gpl2)))
11487
11488 (define-public libhandy
11489 (package
11490 (name "libhandy")
11491 (version "1.7.90")
11492 (source
11493 (origin
11494 (method git-fetch)
11495 (uri (git-reference
11496 (url "https://gitlab.gnome.org/GNOME/libhandy")
11497 (commit version)))
11498 (file-name (git-file-name name version))
11499 (sha256
11500 (base32 "1z8sbx7g19c1p8dy0sn0l25qfvrd2j28h269lsqm1y98r818h2k1"))))
11501 (build-system meson-build-system)
11502 (arguments
11503 `(#:configure-flags
11504 '("-Dglade_catalog=enabled"
11505 ;; XXX: Generating the documentation fails because the
11506 ;; libhandy.devhelp2 document cannot be created. This seems to be
11507 ;; caused by a problem during the XSL transformation.
11508 "-Dgtk_doc=false")
11509 #:phases
11510 (modify-phases %standard-phases
11511 (add-after 'unpack 'patch-docbook-xml
11512 (lambda* (#:key inputs #:allow-other-keys)
11513 (for-each
11514 (lambda (file)
11515 (substitute* file
11516 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
11517 (search-input-file inputs
11518 "/xml/dtd/docbook/docbookx.dtd"))))
11519 (find-files "doc" "\\.xml"))))
11520 (add-before 'check 'pre-check
11521 (lambda _
11522 ;; Tests require a running X server.
11523 (system "Xvfb :1 &")
11524 (setenv "DISPLAY" ":1"))))))
11525 (inputs
11526 (list gtk+ glade3))
11527 (native-inputs
11528 (list gobject-introspection ; for g-ir-scanner
11529 `(,glib "bin")
11530 vala
11531 libxml2
11532 libxslt
11533 docbook-xsl
11534 docbook-xml-4.3
11535 gtk-doc/stable
11536 pkg-config
11537 gettext-minimal
11538
11539 ;; Test suite dependencies.
11540 hicolor-icon-theme
11541 xorg-server-for-tests))
11542 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11543 (synopsis "Library full of GTK+ widgets for mobile phones")
11544 (description "The aim of the handy library is to help with developing user
11545 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11546 for usage on small and big screens.")
11547 (license license:lgpl2.1+)))
11548
11549 (define-public libhandy-0.0
11550 (package
11551 (inherit libhandy)
11552 (version "0.0.13")
11553 (source
11554 (origin
11555 (method git-fetch)
11556 (uri (git-reference
11557 (url "https://gitlab.gnome.org/GNOME/libhandy")
11558 (commit (string-append "v" version))))
11559 (file-name (git-file-name "libhandy" version))
11560 (sha256
11561 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11562 (arguments
11563 (substitute-keyword-arguments (package-arguments libhandy)
11564 ((#:configure-flags flags)
11565 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11566
11567 (define-public libgit2-glib
11568 (package
11569 (name "libgit2-glib")
11570 (version "1.0.0.1")
11571 (source (origin
11572 (method url-fetch)
11573 (uri (string-append "mirror://gnome/sources/" name "/"
11574 (version-major+minor version) "/"
11575 name "-" version ".tar.xz"))
11576 (sha256
11577 (base32
11578 "0mrb21cgqmbhbxqxwx76yry1ifqj1k4vy6455n6s034m6rlms2j6"))))
11579 (build-system meson-build-system)
11580 (native-inputs
11581 (list `(,glib "bin") ;; For glib-mkenums
11582 gobject-introspection
11583 pkg-config
11584 python-pygobject
11585 python-wrapper
11586 vala))
11587 (inputs
11588 (list glib libssh2))
11589 (propagated-inputs
11590 (list ;; In Requires of libgit2-glib.pc.
11591 libgit2))
11592 (synopsis "GLib wrapper around the libgit2 Git access library")
11593 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11594 access library. It only implements the core plumbing functions, not really the
11595 higher level porcelain stuff.")
11596 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11597 (license license:gpl2+)))
11598
11599 (define-public gitg
11600 (package
11601 (name "gitg")
11602 (version "41")
11603 (source (origin
11604 (method url-fetch)
11605 (uri (string-append "mirror://gnome/sources/" name "/"
11606 (version-major version) "/"
11607 name "-" version ".tar.xz"))
11608 (sha256
11609 (base32
11610 "0aa6djcf7rjw0q688mfy47k67bbjpnx6aw1xs94abfhgn6gipdkz"))))
11611 (build-system meson-build-system)
11612 (arguments
11613 (list
11614 #:glib-or-gtk? #t
11615 #:phases
11616 #~(modify-phases %standard-phases
11617 (add-after 'unpack 'disable-post-install-partially
11618 (lambda _
11619 (substitute* "meson_post_install.py"
11620 (("'python'") ; there are no python sources to compile
11621 (string-append "'" (which "true") "'"))
11622 (("gtk-update-icon-cache") (which "true")))))
11623 (add-after 'unpack 'fix-test-sources
11624 (lambda _
11625 (substitute* "tests/libgitg/test-commit.vala"
11626 (("/bin/bash") (which "bash")))))
11627 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11628 (lambda* (#:key outputs #:allow-other-keys)
11629 (let ((prog (string-append #$output "/bin/gitg")))
11630 (wrap-program prog
11631 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11632 (inputs
11633 (list glib
11634 gsettings-desktop-schemas
11635 gspell
11636 gtk+
11637 gtksourceview
11638 json-glib
11639 libdazzle
11640 libgee
11641 libgit2-glib
11642 libpeas
11643 libsecret
11644 libsoup-minimal-2
11645 libxml2))
11646 (native-inputs
11647 (list `(,glib "bin")
11648 `(,gtk+ "bin")
11649 gobject-introspection
11650 intltool
11651 pkg-config
11652 python
11653 vala))
11654 (synopsis "Graphical user interface for git")
11655 (description
11656 "gitg is a graphical user interface for git. It aims at being a small,
11657 fast and convenient tool to visualize the history of git repositories.
11658 Besides visualization, gitg also provides several utilities to manage your
11659 repository and commit your work.")
11660 (home-page "https://wiki.gnome.org/Apps/Gitg")
11661 (license license:gpl2+)))
11662
11663 (define-public gamin
11664 (package
11665 (name "gamin")
11666 (version "0.1.10")
11667 (source (origin
11668 (method url-fetch)
11669 (uri (string-append "mirror://gnome/sources/" name "/"
11670 (version-major+minor version) "/"
11671 name "-" version ".tar.bz2"))
11672 (sha256
11673 (base32
11674 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11675 (build-system gnu-build-system)
11676 (arguments
11677 `(#:phases
11678 (modify-phases %standard-phases
11679 ;; The 'config.sub' is too old to recognise aarch64.
11680 ,@(if (and=> (%current-target-system) target-aarch64?)
11681 `((add-after 'unpack 'replace-config.sub
11682 (lambda _
11683 (delete-file "config.sub")
11684 (symlink (which "config.sub") "config.sub"))))
11685 '())
11686 (add-after 'unpack 'remove-deprecated-macro
11687 (lambda _
11688 (substitute* '("server/gam_node.c"
11689 "server/gam_subscription.h"
11690 "server/gam_node.h"
11691 "server/gam_subscription.c")
11692 (("G_CONST_RETURN") "const"))
11693 #t))
11694 ;; The configure script runs a test program unconditionally,
11695 ;; without an option to manually set the test result.
11696 ;; Override this test anyway.
11697 ,@(if (%current-target-system)
11698 `((add-after 'bootstrap 'set-have-abstract-sockets
11699 (lambda _
11700 (define in-abstract-sockets-test? #f)
11701 (substitute* "configure"
11702 (("^#### Abstract sockets\n$")
11703 (set! in-abstract-sockets-test? #t)
11704 "#### Abstract sockets\n")
11705 (("^have_abstract_sockets=no\n$")
11706 (set! in-abstract-sockets-test? #f)
11707 ;; ‘Abstract sockets’ appear to be Linux-only.
11708 (string-append "have_abstract_sockets="
11709 ,(if (target-linux?)
11710 "yes"
11711 "no")
11712 "\nif false; then\nif false; then :\n"))
11713 (("^(.*\n)$" line)
11714 (if in-abstract-sockets-test?
11715 "" ; delete
11716 line))))))
11717 '()))))
11718 (inputs
11719 (list glib))
11720 (native-inputs
11721 `(("pkg-config" ,pkg-config)
11722 ,@(if (and=> (%current-target-system) target-aarch64?)
11723 `(("config" ,config))
11724 '())))
11725 (home-page "https://people.gnome.org/~veillard/gamin/")
11726 (synopsis "File alteration monitor")
11727 (description
11728 "Gamin is a file and directory monitoring system defined to be a subset
11729 of the FAM (File Alteration Monitor) system. This is a service provided by a
11730 library which detects when a file or a directory has been modified.")
11731 (license license:gpl2+)))
11732
11733 (define-public gnome-mahjongg
11734 (package
11735 (name "gnome-mahjongg")
11736 (version "3.38.3")
11737 (source (origin
11738 (method url-fetch)
11739 (uri (string-append "mirror://gnome/sources/" name "/"
11740 (version-major+minor version) "/" name "-"
11741 version ".tar.xz"))
11742 (sha256
11743 (base32
11744 "144ia3zn9rhwa1xbdkvsz6m0dsysl6mxvqw9bnrlh845hmyy9cfj"))))
11745 (build-system meson-build-system)
11746 (arguments
11747 `(#:meson ,meson-0.59
11748 #:glib-or-gtk? #t))
11749 (native-inputs
11750 `(("appstream-glib" ,appstream-glib)
11751 ("gettext" ,gettext-minimal)
11752 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11753 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11754 ("itstool" ,itstool)
11755 ("pkg-config" ,pkg-config)
11756 ("vala" ,vala)))
11757 (propagated-inputs
11758 (list dconf))
11759 (inputs
11760 (list glib gtk+))
11761 (synopsis "Mahjongg tile-matching game")
11762 (description "GNOME Mahjongg is a game based on the classic Chinese
11763 tile-matching game Mahjongg. It features multiple board layouts, tile themes,
11764 and a high score table.")
11765 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11766 (license license:gpl2+)))
11767
11768 (define-public gnome-themes-extra
11769 (package
11770 (name "gnome-themes-extra")
11771 (version "3.28")
11772 (source
11773 (origin
11774 (method url-fetch)
11775 (uri (string-append "mirror://gnome/sources/" name "/"
11776 (version-major+minor version) "/" name "-"
11777 version ".tar.xz"))
11778 (sha256
11779 (base32
11780 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11781 (build-system gnu-build-system)
11782 (arguments
11783 '(#:configure-flags
11784 ;; Don't create 'icon-theme.cache'.
11785 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11786 (true (string-append coreutils "/bin/true")))
11787 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11788 (native-inputs
11789 `(("glib:bin" ,glib "bin")
11790 ("intltool" ,intltool)
11791 ("pkg-config" ,pkg-config)))
11792 (inputs
11793 `(("glib" ,glib)
11794 ("gtk+" ,gtk+)
11795 ("gtk+-2" ,gtk+-2)
11796 ("librsvg" ,librsvg)
11797 ("libxml2" ,libxml2)))
11798 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11799 (synopsis "GNOME Extra Themes")
11800 (description "This package provides themes and related elements that don't
11801 really fit in other upstream packages. It offers legacy support for GTK+ 2
11802 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11803 index files needed for Adwaita to be used outside of GNOME.")
11804 (license license:lgpl2.1+)))
11805
11806 (define-public gnome-themes-standard
11807 (deprecated-package "gnome-themes-standard" gnome-themes-extra))
11808
11809 (define-public gnote
11810 (package
11811 (name "gnote")
11812 (version "41.2")
11813 (source
11814 (origin
11815 (method url-fetch)
11816 (uri (string-append "mirror://gnome/sources/" name "/"
11817 (version-major version) "/"
11818 "gnote-" version ".tar.xz"))
11819 (sha256
11820 (base32 "0gs2j988rwfrxckb8qxlkyxnvqsv30q32myqish6hssfa51yzc11"))))
11821 (build-system meson-build-system)
11822 (arguments
11823 `(#:glib-or-gtk? #t
11824 #:phases (modify-phases %standard-phases
11825 (add-after 'unpack 'skip-gtk-update-icon-cache
11826 ;; Don't create 'icon-theme.cache'.
11827 (lambda _
11828 (substitute* "post-install.py"
11829 (("gtk-update-icon-cache") "true")))))))
11830 (native-inputs
11831 (list desktop-file-utils
11832 `(,glib "bin")
11833 gobject-introspection
11834 intltool
11835 itstool
11836 pkg-config
11837 python))
11838 (inputs
11839 (list glibmm
11840 gsettings-desktop-schemas
11841 gspell
11842 gtk+
11843 gtkmm-3
11844 libsecret
11845 `(,util-linux "lib")
11846 libxml2
11847 libxslt))
11848 (synopsis "Note-taking application for the GNOME desktop")
11849 (description "Gnote is a note-taking application written for the GNOME
11850 desktop environment.")
11851 (home-page "https://wiki.gnome.org/Apps/Gnote")
11852 (license license:gpl3+)))
11853
11854 (define-public polari
11855 (package
11856 (name "polari")
11857 (version "41.0")
11858 (source (origin
11859 (method url-fetch)
11860 (uri (string-append "mirror://gnome/sources/polari/"
11861 (version-major version)
11862 "/polari-" version ".tar.xz"))
11863 (sha256
11864 (base32
11865 "1ss0x8idwar1q9p9535kzqb8idy7k2r48vrbjiyccw03cs0mzc53"))))
11866 (build-system meson-build-system)
11867 (arguments
11868 `(#:glib-or-gtk? #t
11869 #:phases
11870 (modify-phases %standard-phases
11871 (add-after 'unpack 'skip-gtk-update-icon-cache
11872 (lambda _
11873 (substitute* "meson/meson-postinstall.sh"
11874 (("gtk-update-icon-cache") (which "true")))))
11875 (add-after 'install 'fix-desktop-file
11876 ;; Hardcode launcher to be on the safe side
11877 (lambda* (#:key outputs #:allow-other-keys)
11878 (let ((out (assoc-ref outputs "out")))
11879 (substitute* (string-append out "/share/applications/"
11880 "org.gnome.Polari.desktop")
11881 (("Exec=.*") (string-append "Exec=" out "/bin/polari\n"))))))
11882 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11883 (lambda* (#:key outputs #:allow-other-keys)
11884 (let ((prog (string-append (assoc-ref outputs "out")
11885 "/bin/polari")))
11886 (wrap-program prog
11887 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11888 (inputs
11889 (list glib
11890 gsettings-desktop-schemas
11891 gspell
11892 gtk
11893 gjs
11894 libsecret
11895 libsoup-minimal-2
11896 telepathy-glib
11897 telepathy-logger))
11898 (native-inputs
11899 (list `(,glib "bin")
11900 gobject-introspection
11901 intltool
11902 pkg-config
11903 yelp-tools))
11904 (propagated-inputs
11905 (list telepathy-idle telepathy-mission-control))
11906 (synopsis "Simple IRC Client")
11907 (description
11908 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11909 integrate seamlessly with the GNOME desktop.")
11910 (home-page "https://wiki.gnome.org/Apps/Polari")
11911 (license license:gpl2+)))
11912
11913 (define-public gnome-boxes
11914 (package
11915 (name "gnome-boxes")
11916 (version "42.3")
11917 (source
11918 (origin
11919 (method url-fetch)
11920 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11921 (version-major version) "/"
11922 "gnome-boxes-" version ".tar.xz"))
11923 (sha256
11924 (base32 "1lv0bdh935qj6wkv3ixg2pcv8yrapj79z02gw4fal3rhz3xggvsn"))))
11925 (build-system meson-build-system)
11926 (arguments
11927 (list #:glib-or-gtk? #t
11928 #:configure-flags #~(list "-Drdp=false"
11929 (string-append "-Dc_link_args=-Wl,-rpath="
11930 #$output
11931 "/lib/gnome-boxes"))
11932 #:phases #~(modify-phases %standard-phases
11933 (add-after 'unpack 'disable-gtk-update-icon-cache
11934 (lambda _
11935 (setenv "DESTDIR" "/"))))))
11936 (native-inputs
11937 (list desktop-file-utils ;for update-desktop-database
11938 gettext-minimal
11939 `(,glib "bin") ;for glib-compile-resources
11940 itstool
11941 pkg-config
11942 python
11943 vala))
11944 (inputs
11945 (list glib-networking ;for TLS support
11946 gsettings-desktop-schemas
11947 gtk+
11948 gtk-vnc
11949 gtksourceview
11950 json-glib
11951 libarchive
11952 libgudev
11953 libhandy
11954 libosinfo
11955 libsecret
11956 libsoup-minimal-2
11957 libusb
11958 libvirt
11959 libvirt-glib
11960 libxml2
11961 sparql-query
11962 spice-gtk
11963 tracker
11964 vte
11965 webkitgtk-with-libsoup2)) ;for webkit2gtk-4.0
11966 (home-page "https://wiki.gnome.org/Apps/Boxes")
11967 (synopsis "View, access, and manage remote and virtual systems")
11968 (description "GNOME Boxes is a simple application to view, access, and
11969 manage remote and virtual systems. Note that this application requires the
11970 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11971 @command{info '(guix) Virtualization Services'} to learn how to configure
11972 these services on the Guix System.")
11973 (license (list
11974 ;; For data/icons/empty-boxes.png.
11975 license:cc-by2.0
11976 ;; For all others.
11977 license:lgpl2.0+))))
11978
11979 (define-public geary
11980 (package
11981 (name "geary")
11982 (version "40.0")
11983 (source (origin
11984 (method git-fetch)
11985 (uri (git-reference
11986 (url "https://gitlab.gnome.org/GNOME/geary.git")
11987 (commit (string-append "gnome-" version))))
11988 (file-name (git-file-name name version))
11989 (sha256
11990 (base32
11991 "04hvw86r8sczvjm1z3ls5y5y5h6nyfb648rjkfx05ib00mqq5v1x"))))
11992 (build-system meson-build-system)
11993 (arguments
11994 `(#:glib-or-gtk? #t
11995 #:configure-flags
11996 '("-Dprofile=release")
11997 #:phases (modify-phases %standard-phases
11998 (add-after 'unpack 'disable-failing-tests
11999 (lambda _
12000 (substitute* "test/test-client.vala"
12001 (("client.add_suite\\(new Application.CertificateManagerTest\\(\\).suite\\);")
12002 ""))))
12003 (add-after 'unpack 'generate-vapis
12004 (lambda* (#:key inputs #:allow-other-keys)
12005 ;; It’s not possible to generate the GMime vapi, because
12006 ;; there’s custom metadata that gmime didn’t
12007 ;; install. Thus, the vapi should be built and installed
12008 ;; with gmime.
12009 (define gmime
12010 (assoc-ref inputs "gmime"))
12011 (copy-file (string-append gmime "/share/vala/vapi/gmime-3.0.vapi")
12012 "bindings/vapi/gmime-3.0.vapi")))
12013 (add-after 'unpack 'disable-postinstall-script
12014 (lambda _
12015 (substitute* "build-aux/post_install.py"
12016 (("gtk-update-icon-cache")
12017 "true"))))
12018 (add-before 'check 'setup-home
12019 (lambda _
12020 ;; Tests require a writable HOME.
12021 (setenv "HOME" (getcwd))))
12022 (add-before 'check 'setup-xvfb
12023 (lambda _
12024 (system "Xvfb :1 &")
12025 (setenv "DISPLAY" ":1"))))))
12026 (inputs
12027 (list enchant
12028 folks
12029 gcr
12030 glib
12031 gmime
12032 gnome-online-accounts
12033 gsettings-desktop-schemas
12034 gspell
12035 gsound
12036 gtk+
12037 iso-codes
12038 json-glib
12039 libcanberra
12040 libgee
12041 libhandy
12042 libpeas
12043 libsecret
12044 libstemmer
12045 libunwind
12046 sqlite
12047 webkitgtk-with-libsoup2
12048 ytnef))
12049 (native-inputs
12050 (list appstream-glib
12051 cmake-minimal
12052 desktop-file-utils
12053 gettext-minimal
12054 glib
12055 `(,glib "bin")
12056 gmime
12057 gobject-introspection
12058 gsettings-desktop-schemas
12059 itstool
12060 libarchive
12061 libxml2
12062 pkg-config
12063 python-minimal
12064 vala
12065 xorg-server-for-tests))
12066 (synopsis "GNOME email application built around conversations")
12067 (description
12068 "Geary collects related messages together into conversations,
12069 making it easy to find and follow your discussions. Full-text and keyword
12070 search makes it easy to find the email you are looking for. Geary's
12071 full-featured composer lets you send rich, styled text with images, links, and
12072 lists, but also send lightweight, easy to read text messages. Geary
12073 automatically picks up your existing GNOME Online Accounts, and adding more is
12074 easy. Geary has a clean, fast, modern interface that works like you want it
12075 to.")
12076 (home-page "https://wiki.gnome.org/Apps/Geary")
12077 (license (list
12078 ;; geary
12079 license:lgpl2.1+
12080 ;; icons
12081 license:cc-by3.0
12082 license:cc-by-sa3.0
12083 license:public-domain
12084 ;; snowball
12085 license:bsd-2))))
12086
12087 (define-public glabels
12088 (package
12089 (name "glabels")
12090 (version "3.4.1")
12091 (source
12092 (origin
12093 (method url-fetch)
12094 (uri (string-append "mirror://gnome/sources/" name "/"
12095 (version-major+minor version) "/"
12096 "glabels-" version ".tar.xz"))
12097 (sha256
12098 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
12099 (build-system glib-or-gtk-build-system)
12100 (native-inputs
12101 `(("gettext" ,gettext-minimal)
12102 ("glib:bin" ,glib "bin")
12103 ("intltool" ,intltool)
12104 ("itstool" ,itstool)
12105 ("pkg-config" ,pkg-config)))
12106 (inputs
12107 (list gtk+ librsvg libxml2))
12108 (arguments
12109 `(#:configure-flags '("CFLAGS=-fcommon")))
12110 (home-page "https://glabels.org/")
12111 (synopsis "Program for creating labels and business cards")
12112 (description
12113 "gLabels is a program for creating labels and business cards. It is
12114 designed to work with various laser/ink-jet peel-off label and business
12115 card sheets that you’ll find at most office supply stores.")
12116 (license license:gpl3+)))
12117
12118 (define-public gnome-latex
12119 (package
12120 (name "gnome-latex")
12121 (version "3.41.2")
12122 (source
12123 (origin
12124 (method url-fetch)
12125 (uri (string-append "mirror://gnome/sources/" name "/"
12126 (version-major+minor version) "/"
12127 "gnome-latex-" version ".tar.xz"))
12128 (sha256
12129 (base32 "0cynhmrn99f4f3kddczsc58ak4b9sv2zkfbcyz7z16848nhz047k"))))
12130 (build-system glib-or-gtk-build-system)
12131 (native-inputs
12132 (list gettext-minimal
12133 `(,glib "bin")
12134 gobject-introspection
12135 gtk-doc/stable
12136 itstool
12137 pkg-config
12138 vala))
12139 (inputs
12140 (list dconf
12141 glib
12142 gspell
12143 libgee
12144 tepl
12145 uchardet))
12146 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
12147 (synopsis "LaTeX editor for the GNOME desktop")
12148 (description
12149 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
12150 such as build tools, completion of LaTeX commands, structure navigation,
12151 symbol tables, document templates, project management, spell-checking, menus
12152 and toolbars.")
12153 (license license:gpl3+)))
12154
12155 (define-public setzer
12156 (package
12157 (name "setzer")
12158 (version "0.4.1")
12159 (source
12160 (origin
12161 (method git-fetch)
12162 (uri (git-reference
12163 (url "https://github.com/cvfosammmm/Setzer")
12164 (commit (string-append "v" version))))
12165 (file-name (git-file-name name version))
12166 (sha256
12167 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
12168 (build-system meson-build-system)
12169 (arguments
12170 `(#:glib-or-gtk? #t
12171 #:phases
12172 (modify-phases %standard-phases
12173 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12174 (lambda* (#:key outputs #:allow-other-keys)
12175 (let ((prog (string-append (assoc-ref outputs "out")
12176 "/bin/setzer"))
12177 (pylib (string-append (assoc-ref outputs "out")
12178 "/lib/python"
12179 ,(version-major+minor
12180 (package-version python))
12181 "/site-packages")))
12182 (wrap-program prog
12183 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12184 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12185 #t))))))
12186 (native-inputs
12187 `(("desktop-file-utils" ,desktop-file-utils)
12188 ("gettext" ,gettext-minimal)
12189 ("glib:bin" ,glib "bin")
12190 ("gobject-introspection" ,gobject-introspection)
12191 ("gtk+:bin" ,gtk+ "bin")
12192 ("python-wrapper" ,python-wrapper)))
12193 (inputs
12194 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12195 ("gspell" ,gspell)
12196 ("gtk+" ,gtk+)
12197 ("gtksourceview" ,gtksourceview)
12198 ("pango" ,pango)
12199 ("poppler" ,poppler)
12200 ("python-pdfminer" ,python-pdfminer-six)
12201 ("python-pycairo" ,python-pycairo)
12202 ("python-pygobject" ,python-pygobject)
12203 ("python-pyxdg" ,python-pyxdg)
12204 ("webkitgtk" ,webkitgtk)
12205 ("xdg-utils" ,xdg-utils)))
12206 (home-page "https://www.cvfosammmm.org/setzer/")
12207 (synopsis "LaTeX editor written in Python with GTK+")
12208 (description
12209 "Setzer is a simple yet full-featured LaTeX editor written in Python with
12210 GTK+. It integrates well with the GNOME desktop environment.")
12211 (license license:gpl3+)))
12212
12213 (define-public apostrophe
12214 (package
12215 (name "apostrophe")
12216 (version "2.5")
12217 (source (origin
12218 (method git-fetch)
12219 (uri (git-reference
12220 (url "https://gitlab.gnome.org/somas/apostrophe")
12221 (commit (string-append "v" version))))
12222 (file-name (git-file-name name version))
12223 (sha256
12224 (base32
12225 "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp"))))
12226 (build-system meson-build-system)
12227 (arguments
12228 `(#:glib-or-gtk? #t
12229 #:meson ,meson-0.59 ;fails with 0.60
12230 #:phases
12231 (modify-phases %standard-phases
12232 (add-after 'unpack 'patch-meson
12233 (lambda _
12234 (substitute* "build-aux/meson_post_install.py"
12235 (("gtk-update-icon-cache") "true"))))
12236 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12237 (lambda* (#:key inputs outputs #:allow-other-keys)
12238 (let ((prog (string-append (assoc-ref outputs "out")
12239 "/bin/apostrophe"))
12240 (pylib (string-append (assoc-ref outputs "out")
12241 "/lib/python"
12242 ,(version-major+minor
12243 (package-version
12244 (this-package-input "python")))
12245 "/site-packages")))
12246 (wrap-program prog
12247 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12248 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
12249 `("PATH" prefix (,(dirname
12250 (search-input-file inputs
12251 "/bin/pandoc")))))))))))
12252 (inputs
12253 (list glib
12254 gobject-introspection
12255 gspell
12256 gtk+
12257 libhandy
12258 pandoc
12259 python
12260 python-chardet
12261 python-levenshtein
12262 python-regex
12263 python-pycairo
12264 python-pygobject
12265 python-pyenchant
12266 python-pypandoc
12267 webkitgtk-with-libsoup2))
12268 (native-inputs
12269 (list gettext-minimal
12270 `(,glib "bin")
12271 pkg-config
12272 sassc))
12273 (home-page "https://gitlab.gnome.org/somas/apostrophe")
12274 (synopsis "Markdown editor written in Python with GTK+")
12275 (description "Apostrophe is a GTK+ based distraction-free Markdown editor.
12276 It uses pandoc as back-end for parsing Markdown.")
12277 (license license:gpl3)))
12278
12279 (define-public libratbag
12280 (package
12281 (name "libratbag")
12282 (version "0.16")
12283 (source
12284 (origin
12285 (method git-fetch)
12286 (uri (git-reference
12287 (url "https://github.com/libratbag/libratbag")
12288 (commit (string-append "v" version))))
12289 (file-name (git-file-name name version))
12290 (sha256
12291 (base32 "0jjf6xc3a37icp5dvbxla3ai9is2ns31m0llbfq1bmb6dk8cd4n0"))))
12292 (build-system meson-build-system)
12293 (arguments
12294 `(#:configure-flags
12295 (list "-Dsystemd=false"
12296 "-Dlogind-provider=elogind"
12297 ,@(if (not (package? (this-package-native-input "valgrind")))
12298 `("-Dtests=false") ; Some tests still run.
12299 `()))
12300 #:phases
12301 (modify-phases %standard-phases
12302 (add-after 'install 'wrap
12303 (lambda* (#:key inputs outputs #:allow-other-keys)
12304 (let* ((out (assoc-ref outputs "out"))
12305 (site (string-append
12306 "/lib/python"
12307 ,(version-major+minor (package-version python))
12308 "/site-packages"))
12309 (evdev (string-append
12310 (assoc-ref inputs "python-evdev") site))
12311 (pygo (string-append
12312 (assoc-ref inputs "python-pygobject") site))
12313 (python-wrap
12314 `("GUIX_PYTHONPATH" = (,evdev ,pygo))))
12315 (wrap-program (string-append out "/bin/" "ratbagctl")
12316 python-wrap)
12317 #t))))))
12318 (native-inputs
12319 (append
12320 (list check pkg-config swig)
12321 (if (member (%current-system) (package-supported-systems valgrind))
12322 (list valgrind)
12323 '())))
12324 (inputs
12325 `(("glib" ,glib)
12326 ("json-glib" ,json-glib)
12327 ("libevdev" ,libevdev)
12328 ("libsystemd" ,elogind)
12329 ("libunistring" ,libunistring)
12330 ("python" ,python)
12331 ("python-evdev" ,python-evdev)
12332 ("python-pygobject" ,python-pygobject)
12333 ("udev" ,eudev)))
12334 (home-page "https://github.com/libratbag/libratbag")
12335 (synopsis "DBus daemon and utility for configuring gaming mice")
12336 (description "libratbag provides @command{ratbagd}, a DBus daemon to
12337 configure input devices, mainly gaming mice. The daemon provides a generic
12338 way to access the various features exposed by these mice and abstracts away
12339 hardware-specific and kernel-specific quirks. There is also the
12340 @command{ratbagctl} command line interface for configuring devices.
12341
12342 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
12343 Steelseries.
12344
12345 The ratbagd DBus service can be enabled by adding the following service to
12346 your operating-system definition:
12347
12348 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12349 (license license:expat)))
12350
12351 (define-public piper
12352 (package
12353 (name "piper")
12354 (version "0.7")
12355 (source
12356 (origin
12357 (method git-fetch)
12358 (uri (git-reference
12359 (url "https://github.com/libratbag/piper")
12360 (commit version)))
12361 (sha256
12362 (base32 "0jsvfy0ihdcgnqljfgs41lys1nlz18qvsa0a8ndx3pyr41f8w8wf"))
12363 (file-name (git-file-name name version))))
12364 (build-system meson-build-system)
12365 (native-inputs
12366 (list appstream
12367 gettext-minimal
12368 `(,glib "bin")
12369 gobject-introspection
12370 pkg-config
12371 python-flake8))
12372 (inputs
12373 (list adwaita-icon-theme
12374 gtk+
12375 `(,gtk+ "bin")
12376 libratbag
12377 python
12378 python-evdev
12379 python-lxml
12380 python-pycairo
12381 python-pygobject))
12382 (arguments
12383 (list #:glib-or-gtk? #t
12384 #:phases
12385 #~(modify-phases %standard-phases
12386 (add-after 'unpack 'dont-update-gtk-icon-cache
12387 (lambda _
12388 (substitute* "meson.build"
12389 (("meson.add_install_script('meson_install.sh')") ""))))
12390 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12391 (lambda _
12392 (let ((pylib (string-append #$output
12393 "/lib/python"
12394 #$(version-major+minor
12395 (package-version python))
12396 "/site-packages")))
12397 (wrap-program
12398 (string-append #$output "/bin/piper")
12399 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12400 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
12401 (add-before 'check 'flake8-config
12402 (lambda _
12403 ;; Make sure the tests use the local flake8 config
12404 (symlink (string-append #$source "/.flake8") ".flake8"))))))
12405 (home-page "https://github.com/libratbag/piper/")
12406 (synopsis "Configure bindings and LEDs on gaming mice")
12407 (description "Piper is a GTK+ application for configuring gaming mice with
12408 onboard configuration for key bindings via libratbag. Piper requires
12409 a @command{ratbagd} daemon running with root privileges. It can be run
12410 manually as root, but is preferably configured as a DBus service that can
12411 launch on demand. This can be configured by enabling the following service,
12412 provided there is a DBus service present:
12413
12414 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12415 (license license:gpl2)))
12416
12417 (define-public parlatype
12418 (package
12419 (name "parlatype")
12420 (version "3.1")
12421 (source
12422 (origin
12423 (method git-fetch)
12424 (uri (git-reference
12425 (url "https://github.com/gkarsay/parlatype")
12426 (commit (string-append "v" version))))
12427 (file-name (git-file-name name version))
12428 (sha256
12429 (base32 "0cqrzbkyksfsm57riirmjkwf2nf2dgl1xpps1wvqxpij475qcb9b"))))
12430 (build-system meson-build-system)
12431 (arguments
12432 `(#:glib-or-gtk? #t
12433 #:tests? #f ;require internet access
12434 #:phases
12435 (modify-phases %standard-phases
12436 (add-after 'unpack 'skip-gtk-update-icon-cache
12437 (lambda _
12438 (substitute* "data/meson_post_install.py"
12439 (("gtk-update-icon-cache") "true"))))
12440 (add-after 'install 'wrap-parlatype
12441 ;; Add gstreamer plugin provided in this package to system's
12442 ;; plugins.
12443 (lambda* (#:key outputs #:allow-other-keys)
12444 (let* ((out (assoc-ref outputs "out"))
12445 (gst-plugin-path (string-append
12446 out "/lib/gstreamer-1.0/"
12447 ":"
12448 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
12449 (wrap-program (string-append out "/bin/parlatype")
12450 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path)))))))))
12451 (native-inputs
12452 (list appstream-glib
12453 desktop-file-utils ;for desktop-file-validate
12454 gettext-minimal
12455 `(,glib "bin") ;for glib-compile-resources
12456 pkg-config
12457 yelp-tools))
12458 (inputs
12459 (list gst-plugins-base
12460 gst-plugins-good
12461 gstreamer
12462 gtk+
12463 iso-codes
12464 pocketsphinx
12465 pulseaudio
12466 sphinxbase))
12467 (home-page "https://www.parlatype.org")
12468 (synopsis "GNOME audio player for transcription")
12469 (description "Parlatype is an audio player for the GNOME desktop
12470 environment. Its main purpose is the manual transcription of spoken
12471 audio files.")
12472 (license license:gpl3+)))
12473
12474 (define-public jsonrpc-glib
12475 (package
12476 (name "jsonrpc-glib")
12477 (version "3.34.0")
12478 (source (origin
12479 (method url-fetch)
12480 (uri (string-append "mirror://gnome/sources/" name "/"
12481 (version-major+minor version) "/"
12482 name "-" version ".tar.xz"))
12483 (sha256
12484 (base32
12485 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
12486 (build-system meson-build-system)
12487 (inputs
12488 (list json-glib glib))
12489 (native-inputs
12490 (list pkg-config
12491 `(,glib "bin") ; for glib-genmarshal, etc.
12492 gobject-introspection vala))
12493 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
12494 (synopsis "JSON-RPC library for GLib")
12495 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
12496 peers in either a synchronous or asynchronous fashion. It also allows
12497 communicating using the GVariant serialization format instead of JSON when
12498 both peers support it. You might want that when communicating on a single
12499 host to avoid parser overhead and memory-allocator fragmentation.")
12500 (license license:lgpl2.1+)))
12501
12502 (define-public feedbackd
12503 (package
12504 (name "feedbackd")
12505 (version "0.0.0+git20200527")
12506 (source (origin
12507 (method git-fetch)
12508 (uri (git-reference
12509 (url "https://source.puri.sm/Librem5/feedbackd.git")
12510 (commit (string-append "v" version))))
12511 (file-name (git-file-name name version))
12512 (sha256
12513 (base32
12514 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
12515 (build-system meson-build-system)
12516 (native-inputs
12517 (list `(,glib "bin") gobject-introspection pkg-config vala))
12518 (inputs
12519 (list dbus gsound json-glib libgudev))
12520 (propagated-inputs
12521 (list glib)) ; in Requires of libfeedback-0.0.pc
12522 (synopsis "Haptic/visual/audio feedback via DBus")
12523 (description "Feedbackd provides a DBus daemon to act on events to provide
12524 haptic, visual and audio feedback. It offers the libfeedbackd library and
12525 GObject introspection bindings.")
12526 (home-page "https://source.puri.sm/Librem5/feedbackd")
12527 (license (list license:lgpl2.1+ ; libfeedbackd
12528 license:lgpl3+)))) ; the rest
12529
12530 (define-public sysprof
12531 (package
12532 (name "sysprof")
12533 (version "3.44.0")
12534 (source
12535 (origin
12536 (method url-fetch)
12537 (uri (string-append "mirror://gnome/sources/sysprof/"
12538 (version-major+minor version) "/"
12539 "sysprof-" version ".tar.xz"))
12540 (sha256
12541 (base32 "0nq0icbln0ryqzlybr7wyl19mhr3vkqzs6wasn430fwpf5drypdb"))))
12542 (build-system meson-build-system)
12543 (arguments
12544 (list
12545 #:configure-flags
12546 #~(list (string-append "-Dsystemdunitdir=" #$output "/share/systemd"))
12547 #:phases
12548 #~(modify-phases %standard-phases
12549 (add-after 'unpack 'patch-install-script
12550 (lambda _
12551 (substitute* "build-aux/meson/post_install.sh"
12552 (("gtk-update-icon-cache") "true")
12553 (("update-desktop-database") "true")))))))
12554 (propagated-inputs
12555 (list polkit))
12556 (inputs
12557 (list glib
12558 gtk+
12559 json-glib
12560 libdazzle
12561 libunwind
12562 polkit))
12563 (native-inputs
12564 (list gettext-minimal
12565 `(,glib "bin") ;for gdbus-codegen, etc.
12566 itstool
12567 pkg-config
12568 libxml2))
12569 ;; This home page is so woefully out of date as to be essentially useless.
12570 ;; (home-page "http://www.sysprof.com")
12571 (home-page "https://wiki.gnome.org/Apps/Sysprof")
12572 (synopsis "System-wide performance profiler for GNU/Linux")
12573 (description
12574 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
12575 GNU/Linux system including the kernel and all user-space applications. This
12576 helps find the function(s) in which a program spends most of its time.
12577
12578 It uses the kernel's built-in @code{ptrace} feature and handles shared
12579 libraries. Applications do not need to be recompiled--or even restarted.")
12580 (license license:gpl3+)))
12581
12582 (define-public gnome-builder
12583 (package
12584 (name "gnome-builder")
12585 (version "41.2")
12586 (source (origin
12587 (method url-fetch)
12588 (uri (string-append "mirror://gnome/sources/" name "/"
12589 (version-major version) "/"
12590 name "-" version ".tar.xz"))
12591 (sha256
12592 (base32
12593 "04p031i999dccbnlbysmr6f93x7dji7b559j6yhdsqbqgxb7ncan"))
12594 (patches
12595 (search-patches "gnome-builder-update-libportal.patch"))))
12596 (build-system meson-build-system)
12597 (arguments
12598 (list
12599 #:glib-or-gtk? #t ;To wrap binaries and compile schemas
12600 #:configure-flags
12601 #~(list "-Dnetwork_tests=false"
12602 ;; TODO: Enable all plugins...
12603 ;; Flatpak plugin wants libsoup 2
12604 "-Dplugin_flatpak=false"
12605 ;; ... except this one.
12606 "-Dplugin_update_manager=false")
12607 #:phases
12608 #~(modify-phases %standard-phases
12609 (add-after 'unpack 'patch-meson
12610 (lambda* (#:key inputs #:allow-other-keys)
12611 (substitute* "build-aux/meson/post_install.py"
12612 (("gtk-update-icon-cache") "true")
12613 (("update-desktop-database") "true"))
12614 (substitute* "src/libide/meson.build"
12615 (("/usr/lib") (string-append (assoc-ref inputs
12616 "python-pygobject")
12617 "/lib")))))
12618 (add-after 'configure 'fix-ninja
12619 (lambda _
12620 ;; #43296: meson(?) incorrectly assumes we want to link
12621 ;; this PIE against a static libselinux.
12622 (substitute* "build.ninja"
12623 (("libselinux\\.a") "libselinux.so"))))
12624 (add-before 'check 'pre-check
12625 (lambda _
12626 (system "Xvfb :1 &")
12627 (setenv "DISPLAY" ":1"))))))
12628 (inputs (list cmark
12629 clang
12630 devhelp-with-libsoup2
12631 glade3
12632 gspell
12633 gtk+
12634 json-glib
12635 jsonrpc-glib
12636 libdazzle
12637 libgit2-glib
12638 libpeas
12639 libportal
12640 libsoup-minimal-2
12641 llvm
12642 python
12643 python-pygobject
12644 sysprof
12645 template-glib
12646 vte
12647 webkitgtk-with-libsoup2))
12648 (propagated-inputs (list gtksourceview)) ; needed for settings
12649 (native-inputs (list desktop-file-utils ; for desktop-file-validate
12650 `(,glib "bin")
12651 gettext-minimal
12652 pkg-config
12653 python ; for meson scripts
12654 vala
12655 xorg-server-for-tests))
12656 (home-page "https://wiki.gnome.org/Apps/Builder")
12657 (synopsis "Toolsmith for GNOME-based applications")
12658 (description
12659 "Builder aims to be an integrated development environment (IDE) for
12660 writing GNOME-based software. It features fuzzy search, auto-completion,
12661 a mini code map, documentation browsing, Git integration, an integrated
12662 profiler via Sysprof, debugging support, and more.")
12663 (license license:gpl3+)))
12664
12665 (define-public komikku
12666 (package
12667 (name "komikku")
12668 (version "0.41.0")
12669 (source
12670 (origin
12671 (method git-fetch)
12672 (uri (git-reference
12673 (url "https://gitlab.com/valos/Komikku/")
12674 (commit (string-append "v" version))))
12675 (file-name (git-file-name name version))
12676 (sha256
12677 (base32
12678 "17r059srxrx26w40swy47pdpyigyjdczp8550g4rfh86qs3ld4il"))))
12679 (build-system meson-build-system)
12680 (arguments
12681 `(#:glib-or-gtk? #t
12682 #:phases
12683 (modify-phases %standard-phases
12684 (add-after 'unpack 'patch-sources
12685 (lambda _
12686 (substitute* "komikku/utils.py"
12687 (("from komikku\\.servers import get_servers_list")
12688 ;; code following that line should migrate old databases
12689 ;; but the line itself results in an import error
12690 "return data_dir_path"))))
12691 (add-after 'unpack 'skip-gtk-update-icon-cache
12692 (lambda _
12693 (substitute* "meson_post_install.py"
12694 (("gtk-update-icon-cache") (which "true")))
12695 #t))
12696 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12697 (lambda* (#:key outputs #:allow-other-keys)
12698 (let ((prog (string-append (assoc-ref outputs "out")
12699 "/bin/komikku")))
12700 (wrap-program prog
12701 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
12702 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12703 #t))))))
12704 (inputs
12705 (list gtk+
12706 libhandy
12707 libnotify
12708 libsecret
12709 python
12710 python-beautifulsoup4
12711 python-brotli
12712 python-cloudscraper
12713 python-dateparser
12714 python-keyring
12715 python-lxml
12716 python-magic
12717 python-natsort
12718 python-pillow
12719 python-pure-protobuf
12720 python-pycairo
12721 python-pygobject
12722 python-requests
12723 python-unidecode
12724 webkitgtk-with-libsoup2))
12725 (native-inputs
12726 (list desktop-file-utils
12727 gettext-minimal
12728 `(,glib "bin")
12729 gobject-introspection
12730 pkg-config))
12731 (home-page "https://gitlab.com/valos/Komikku")
12732 (synopsis "Manga reader for GNOME")
12733 (description "Komikku is an online/offline manga reader for GNOME,
12734 developed with the aim of being used with the Librem 5 phone.")
12735 (license license:gpl3+)))
12736
12737 (define-public libgda
12738 (package
12739 (name "libgda")
12740 (version "6.0.0")
12741 (source
12742 (origin
12743 (method url-fetch)
12744 (uri (string-append "mirror://gnome/sources/" name "/"
12745 (version-major+minor version) "/"
12746 name "-" version ".tar.xz"))
12747 (sha256
12748 (base32 "0w564z7krgjk19r39mi5qn4kggpdg9ggbyn9pb4aavb61r14npwr"))
12749 (patches (search-patches "libgda-cve-2021-39359.patch"
12750 "libgda-fix-build.patch"
12751 "libgda-fix-missing-initialization.patch"
12752 "libgda-skip-postgresql-tests.patch"))))
12753 (build-system meson-build-system)
12754 (native-inputs
12755 (list intltool
12756 iso-codes
12757 `(,glib "bin")
12758 gnome-common
12759 gettext-minimal
12760 gobject-introspection
12761 gtk-doc/stable
12762 pkg-config
12763 python
12764 vala
12765 yelp-tools))
12766 (inputs
12767 (list json-glib
12768 glib
12769 glade3
12770 gtk+
12771 libsecret
12772 libxslt
12773 openssl
12774 sqlite
12775 vala))
12776 (propagated-inputs
12777 (list libxml2)) ; required by libgda-5.0.pc
12778 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12779 (synopsis "Uniform data access")
12780 (description
12781 "GNU Data Access (GDA) is an attempt to provide uniform access to
12782 different kinds of data sources (databases, information servers, mail spools,
12783 etc). It is a complete architecture that provides all you need to access
12784 your data.")
12785 (license license:lgpl2.1+)))
12786
12787 (define-public gtranslator
12788 (package
12789 (name "gtranslator")
12790 (version "42.0")
12791 (source (origin
12792 (method url-fetch)
12793 (uri (string-append "mirror://gnome/sources/" name "/"
12794 (version-major version) "/"
12795 name "-" version ".tar.xz"))
12796 (sha256
12797 (base32
12798 "0fzi48s3wz9mf6c1ndpkby83bgshgn2116nqjq31n1j3wszvqrra"))))
12799 (build-system meson-build-system)
12800 (arguments
12801 (list #:build-type "release" ;otherwise it tries to fetch stuff via git
12802 #:glib-or-gtk? #t
12803 #:phases
12804 #~(modify-phases %standard-phases
12805 (add-after 'unpack 'skip-gtk-update-icon-cache
12806 (lambda _
12807 (substitute* "build-aux/meson/meson_post_install.py"
12808 (("gtk-update-icon-cache") (which "true"))))))))
12809 (native-inputs
12810 (list `(,glib-next "bin")
12811 gettext-minimal
12812 itstool
12813 pkg-config))
12814 (inputs
12815 (list json-glib
12816 jsonrpc-glib
12817 gettext-minimal
12818 glib-next
12819 gsettings-desktop-schemas
12820 gspell
12821 libgda
12822 libhandy
12823 libsoup
12824 pango-next))
12825 (propagated-inputs
12826 (list gtksourceview-4)) ; required for source view
12827 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12828 (synopsis "Translation making program")
12829 (description
12830 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12831 for the GNOME 3.x platform with many features. It aims to be a very complete
12832 editing environment for translation issues within the GNU gettext/GNOME desktop
12833 world.")
12834 (license license:gpl3+)))
12835
12836
12837 (define-public ocrfeeder
12838 (package
12839 (name "ocrfeeder")
12840 (version "0.8.5")
12841 (source (origin
12842 (method url-fetch)
12843 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12844 (version-major+minor version) "/"
12845 "ocrfeeder-" version ".tar.xz"))
12846 (sha256
12847 (base32
12848 "1vaaphzk6zn7pp2x9scphdzlbsma910wnbhd9xry50nx95cjlgdh"))))
12849 (build-system gnu-build-system)
12850 (arguments
12851 `(#:phases
12852 (modify-phases %standard-phases
12853 (add-after
12854 'install 'wrap-program
12855 (lambda* (#:key outputs #:allow-other-keys)
12856 (let ((prog (string-append (assoc-ref outputs "out")
12857 "/bin/" "ocrfeeder"))
12858 (pylib (string-append (assoc-ref outputs "out")
12859 "/lib/python"
12860 ,(version-major+minor
12861 (package-version python))
12862 "/site-packages")))
12863 (wrap-program prog
12864 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12865 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
12866 (native-inputs
12867 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12868 ("gobject-introspection" ,gobject-introspection)
12869 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12870 ("intltool" ,intltool)
12871 ("itstool" ,itstool)
12872 ("pkg-config" ,pkg-config)
12873 ("xmllint" ,libxml2)))
12874 (inputs
12875 `(("enchant" ,enchant)
12876 ("glib" ,glib)
12877 ("goocanvas" ,goocanvas)
12878 ("gtk" ,gtk+)
12879 ("gtkspell3" ,gtkspell3)
12880 ("libjpeg" ,libjpeg-turbo)
12881 ("libtiff" ,libtiff)
12882 ("libraw" ,libraw)
12883 ("ocrad" ,ocrad)
12884 ("python" ,python-wrapper)
12885 ("python-pygobject" ,python-pygobject)
12886 ("python-odfpy" ,python-odfpy)
12887 ("python-pillow" ,python-pillow)
12888 ("python-pyenchant" ,python-pyenchant)
12889 ("python-reportlab" ,python-reportlab)
12890 ("python-sane" ,python-sane)
12891 ("sane-backends" ,sane-backends)
12892 ("tesseract-ocr" ,tesseract-ocr)))
12893 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12894 (synopsis "Complete OCR Suite")
12895 (description "OCRFeeder is a complete Optical Character Recognition and
12896 Document Analysis and Recognition program.")
12897 (license license:gpl3+)))
12898
12899 (define-public libadwaita
12900 (package
12901 (name "libadwaita")
12902 (version "1.2.rc")
12903 (source (origin
12904 (method url-fetch)
12905 (uri (string-append "mirror://gnome/sources/libadwaita/"
12906 (version-major+minor version) "/"
12907 "libadwaita-" version ".tar.xz"))
12908 (sha256
12909 (base32
12910 "1syg7fkpcsw0q6fy3g79myb9m9bvrnh3rjrm6g4bfg1pnlqf1w22"))))
12911 (build-system meson-build-system)
12912 (arguments
12913 `(#:phases
12914 (modify-phases %standard-phases
12915 (add-before 'check 'pre-check
12916 (lambda* (#:key inputs #:allow-other-keys)
12917 ;; Tests require a running X server.
12918 (system "Xvfb :1 &")
12919 (setenv "DISPLAY" ":1"))))))
12920 (native-inputs
12921 (list gettext-minimal
12922 `(,glib "bin")
12923 gobject-introspection
12924 gtk-doc/stable
12925 pkg-config
12926 sassc
12927 vala
12928 xorg-server-for-tests))
12929 (propagated-inputs
12930 (list gtk)) ;libadwaita-1.pc 'Requires' it
12931 (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
12932 (synopsis "Building blocks for GNOME applications")
12933 (description
12934 "@code{libadwaita} offers widgets and objects to build GNOME
12935 applications scaling from desktop workstations to mobile phones. It is the
12936 successor of @code{libhandy} for GTK4.")
12937 (license license:lgpl2.1+)))
12938
12939 (define-public gnome-power-manager
12940 (package
12941 (name "gnome-power-manager")
12942 (version "3.32.0")
12943 (source (origin
12944 (method url-fetch)
12945 (uri (string-append "mirror://gnome/sources/" name "/"
12946 (version-major+minor version) "/"
12947 name "-" version ".tar.xz"))
12948 (sha256
12949 (base32
12950 "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g"))))
12951 (build-system meson-build-system)
12952 (inputs
12953 (list upower gtk+ gsettings-desktop-schemas adwaita-icon-theme))
12954 (native-inputs
12955 (list desktop-file-utils
12956 `(,glib "bin") gettext-minimal pkg-config))
12957 (home-page "https://gitlab.gnome.org/GNOME/gnome-power-manager")
12958 (synopsis "Power management daemon for the GNOME desktop")
12959 (description "@code{gnome-power-manager} is a tool for viewing present and
12960 historical battery usage and related statistics.")
12961 (license license:gpl2)))
12962
12963 (define-public xffm+
12964 (package
12965 (name "xffm+")
12966 (version "0.94")
12967 (source (origin
12968 (method url-fetch)
12969 (uri (string-append "mirror://sourceforge/xffm/xffm+/xffm+-"
12970 version ".tar.bz2"))
12971 (sha256
12972 (base32
12973 "0gwbgmjzlgv9ba95cgaigjnc9njzi7qznhvzp0qrnnlq3nbcm1k1"))))
12974 (build-system cmake-build-system)
12975 (arguments
12976 `(#:tests? #f ; No tests exist
12977 #:configure-flags
12978 (let ((shared-mime-info (assoc-ref %build-inputs "shared-mime-info"))
12979 (out (assoc-ref %outputs "out")))
12980 (list (string-append "-DFREEDESKTOP_GLOBS=" shared-mime-info
12981 "/share/mime/globs")
12982 (string-append "-DFREEDESKTOP_ALIAS=" shared-mime-info
12983 "/share/mime/aliases")
12984 (string-append "-DFREEDESKTOP_ICONS=" shared-mime-info
12985 "/share/mime/generic-icons")
12986 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
12987 (string-append "-DPREFIX_BIN=" out "/bin")))
12988 #:phases
12989 (modify-phases %standard-phases
12990 (add-after 'unpack 'patch-installation-destination
12991 (lambda* (#:key outputs #:allow-other-keys)
12992 (substitute* "CMakeLists.txt"
12993 ;; This is done so we can override.
12994 (("^set.CMAKE_INSTALL_PREFIX") "set(QCMAKE_INSTALL_PREFIX")
12995 ;; This is done so we can override.
12996 (("`set.PREFIX_BIN") "set(QPREFIX_BIN")))))))
12997 (native-inputs
12998 (list cmake pkg-config intltool gnu-gettext))
12999 (inputs
13000 (list glib gtk+ libx11 libsm libxv libxaw libxcb libxkbfile
13001 shared-mime-info))
13002 (synopsis "File manager")
13003 (description "This package provides a graphical file manager.")
13004 (home-page "http://xffm.org/")
13005 (license license:gpl3+)
13006 (properties '((upstream-name . "xffm")))))