gnu: sound-juicer: Update to 3.38.0.
[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.12.0")
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 "1rj8j2nz835slqs09bfp6hmyyf6v5azwjzin7v9jhmmwhmpvjlrx"))))
1452 (build-system meson-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.14.1")
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 "0kry7arwmvs8b4175wia3l0s02ap1shq68f29g2xjrhc9g6f175p"))))
1484 (build-system meson-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.6")
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 "05vzcxm8fqizz77qzdxlsqb5lsqzc4681sy8z63haf6vswjm1g63"))))
1513 (build-system meson-build-system)
1514 (native-inputs
1515 (list `(,glib "bin")
1516 gettext-minimal
1517 gobject-introspection
1518 pkg-config
1519 vala))
1520 (inputs
1521 (list gdk-pixbuf))
1522 (synopsis "Media art library for the GNOME desktop")
1523 (description
1524 "The libmediaart library is the foundation for media art caching,
1525 extraction, and lookup for applications on the desktop.")
1526 (home-page "https://gitlab.gnome.org/GNOME/libmediaart")
1527 (license license:lgpl2.1+)))
1528
1529 (define-public gnome-initial-setup
1530 (package
1531 (name "gnome-initial-setup")
1532 (version "42.2")
1533 (source (origin
1534 (method url-fetch)
1535 (uri (string-append "mirror://gnome/sources/gnome-initial-setup/"
1536 (version-major version)
1537 "/gnome-initial-setup-" version ".tar.xz"))
1538 (sha256
1539 (base32
1540 "0yxy39a7d2whphd0jskvra5q8zy4v7m7lziy5fxibgls4j5xk0sd"))))
1541 (build-system meson-build-system)
1542 (arguments
1543 (list
1544 #:configure-flags #~(list "-Dsystemd=false")
1545 #:glib-or-gtk? #t
1546 #:phases
1547 #~(modify-phases %standard-phases
1548 (add-after 'unpack 'set-gkbd-file-name
1549 (lambda* (#:key inputs #:allow-other-keys)
1550 ;; Allow the "Preview" button in the keyboard layout
1551 ;; selection dialog to display the layout.
1552 (substitute* "gnome-initial-setup/pages/keyboard/cc-input-chooser.c"
1553 (("\"gkbd-keyboard-display")
1554 (string-append "\"" (search-input-file
1555 inputs
1556 "bin/gkbd-keyboard-display")))))))))
1557 (native-inputs
1558 (list gettext-minimal
1559 `(,glib "bin")
1560 gobject-introspection
1561 pkg-config))
1562 (inputs
1563 (list accountsservice
1564 cheese
1565 elogind
1566 gdm
1567 geoclue
1568 gnome-desktop
1569 gnome-online-accounts-3.44
1570 gstreamer
1571 ibus
1572 json-glib
1573 mit-krb5
1574 libgnomekbd
1575 libgweather4-with-libsoup2
1576 libhandy
1577 libnma
1578 libpwquality
1579 libsecret
1580 network-manager
1581 packagekit
1582 polkit
1583 rest
1584 upower
1585 webkitgtk-with-libsoup2))
1586 (synopsis "Initial setup wizard for GNOME desktop")
1587 (description "This package provides a set-up wizard when a
1588 user logs into GNOME for the first time. It typically provides a
1589 tour of all gnome components and allows the user to set them up.")
1590 (home-page "https://gitlab.gnome.org/GNOME/gnome-initial-setup")
1591 (license license:gpl2)))
1592
1593 (define-public gnome-user-share
1594 (package
1595 (name "gnome-user-share")
1596 (version "3.34.0")
1597 (source (origin
1598 (method url-fetch)
1599 (uri (string-append "mirror://gnome/sources/" name "/"
1600 (version-major+minor version) "/"
1601 name "-" version ".tar.xz"))
1602 (sha256
1603 (base32
1604 "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x"))))
1605 (build-system meson-build-system)
1606 (arguments
1607 `(#:glib-or-gtk? #t
1608 #:meson ,meson-0.60
1609 #:configure-flags
1610 `("-Dsystemduserunitdir=/tmp/empty"
1611 ;; Enable nautilus extension for file sharing.
1612 "-Dnautilus_extension=true")))
1613 (native-inputs
1614 `(("gettext" ,gettext-minimal)
1615 ("glib:bin" ,glib "bin")
1616 ("gobject-introspection" ,gobject-introspection)
1617 ("gtk+:bin" ,gtk+ "bin")
1618 ("pkg-config" ,pkg-config)
1619 ("yelp-tools" ,yelp-tools)))
1620 (inputs
1621 (list glib
1622 gnome-bluetooth
1623 gtk+
1624 libcanberra
1625 libnotify
1626 nautilus)) ; For nautilus extension.
1627 (synopsis "File sharing for GNOME desktop")
1628 (description "GNOME User Share is a small package that binds together
1629 various free software projects to bring easy to use user-level file
1630 sharing to the masses.")
1631 (home-page "https://gitlab.gnome.org/GNOME/gnome-user-share")
1632 (license license:gpl2+)))
1633
1634 (define-public sushi
1635 (package
1636 (name "sushi")
1637 (version "42.0")
1638 (source (origin
1639 (method url-fetch)
1640 (uri (string-append "mirror://gnome/sources/" name "/"
1641 (version-major version) "/"
1642 name "-" version ".tar.xz"))
1643 (sha256
1644 (base32
1645 "0848gidl0ab8i5pa70mv8jzchmd9kqa8sn1lg977hyasyixdpn25"))))
1646 (build-system meson-build-system)
1647 (arguments
1648 `(#:glib-or-gtk? #t
1649 #:phases
1650 (modify-phases %standard-phases
1651 (add-after 'glib-or-gtk-wrap 'wrap-typelib
1652 (lambda* (#:key outputs #:allow-other-keys)
1653 (let ((prog (string-append (assoc-ref outputs "out")
1654 "/bin/sushi")))
1655 ;; Put existing typelibs before sushi's deps, so as to
1656 ;; correctly infer gdk-pixbuf.
1657 (wrap-program prog
1658 `("GI_TYPELIB_PATH" suffix
1659 (,(getenv "GI_TYPELIB_PATH"))))))))))
1660 (native-inputs
1661 (list `(,glib "bin")
1662 gettext-minimal
1663 gobject-introspection
1664 pkg-config))
1665 (inputs
1666 (list bash-minimal
1667 clutter
1668 clutter-gst
1669 clutter-gtk
1670 evince ; For file previewing.
1671 freetype
1672 gdk-pixbuf
1673 gjs
1674 gst-plugins-base
1675 gstreamer
1676 gtksourceview-4
1677 harfbuzz
1678 libepoxy
1679 libmusicbrainz
1680 libxml2
1681 neon
1682 webkitgtk))
1683 (synopsis "File previewer for the GNOME desktop")
1684 (description "Sushi is a DBus-activated service that allows applications
1685 to preview files on the GNOME desktop.")
1686 (home-page "https://gitlab.gnome.org/GNOME/sushi")
1687 (license license:gpl2+)))
1688
1689 (define-public rygel
1690 (package
1691 (name "rygel")
1692 (version "0.41.2")
1693 (source (origin
1694 (method url-fetch)
1695 (uri (string-append "mirror://gnome/sources/" name "/"
1696 (version-major+minor version) "/"
1697 name "-" version ".tar.xz"))
1698 (sha256
1699 (base32
1700 "0wivd60hn115ar3hsrsa595kpxzp8gwq30ksh32qlq8j9dhlq65i"))))
1701 (build-system meson-build-system)
1702 (arguments
1703 ;; Disable the tracker plugin.
1704 '(#:configure-flags
1705 (list "-Dplugins=external,gst-launch,lms,media-export,
1706 mpris,playbin,ruih,tracker3")))
1707 (native-inputs
1708 (list gettext-minimal
1709 `(,glib "bin") ; for glib-compile-schemas, etc.
1710 gobject-introspection
1711 gtk-doc/stable
1712 pkg-config
1713 python
1714 vala
1715 docbook-xml
1716 docbook-xsl
1717 libxslt))
1718 (inputs
1719 (list gdk-pixbuf
1720 gssdp
1721 gstreamer
1722 gst-plugins-base
1723 gst-editing-services
1724 gtk+
1725 gupnp
1726 gupnp-av
1727 gupnp-dlna
1728 json-glib
1729 libgee
1730 libmediaart
1731 libsoup
1732 libxslt
1733 libunistring
1734 tracker))
1735 (synopsis "Share audio, video, and pictures with other devices")
1736 (description
1737 "Rygel is a home media solution (@dfn{UPnP AV MediaServer and
1738 MediaRenderer}) for GNOME that allows you to easily share audio, video, and
1739 pictures, and to control a media player on your home network.
1740
1741 Rygel achieves interoperability with other devices by trying to conform to the
1742 strict requirements of DLNA and by converting media on-the-fly to formats that
1743 client devices can handle.")
1744 (home-page "https://wiki.gnome.org/Projects/Rygel")
1745 (license (list
1746 ;; For logo (data/icons/*).
1747 license:cc-by-sa3.0
1748 ;; For all others.
1749 license:lgpl2.1+))))
1750
1751 (define-public libnma
1752 (package
1753 (name "libnma")
1754 (version "1.10.2")
1755 (source (origin
1756 (method url-fetch)
1757 (uri (string-append "mirror://gnome/sources/" name "/"
1758 (version-major+minor version) "/"
1759 name "-" version ".tar.xz"))
1760 (sha256
1761 (base32
1762 "0h095a26w3sgbspsf7wzz8ddg62j3jb9ckrrv41k7cdp0k2dkhsg"))))
1763 (build-system meson-build-system)
1764 (arguments
1765 `(#:configure-flags (list "-Dlibnma_gtk4=true")
1766 #:phases
1767 (modify-phases %standard-phases
1768 (add-after 'unpack 'patch-docbook-xml
1769 (lambda* (#:key inputs #:allow-other-keys)
1770 (substitute* "libnma-docs.xml"
1771 (("http://.*/docbookx\\.dtd")
1772 (search-input-file
1773 inputs "xml/dtd/docbook/docbookx.dtd"))))))))
1774 (native-inputs
1775 (list docbook-xml-4.3
1776 gettext-minimal
1777 `(,glib "bin")
1778 gtk-doc/stable
1779 gobject-introspection
1780 pkg-config
1781 vala))
1782 (inputs
1783 (list gcr
1784 gtk
1785 iso-codes
1786 mobile-broadband-provider-info
1787 network-manager))
1788 (synopsis "Network Manager's applet library")
1789 (description "Libnma is an applet library for Network Manager. It was
1790 initially part of network-manager-applet and has now become a separate
1791 project.")
1792 (home-page "https://gitlab.gnome.org/GNOME/libnma")
1793 ;; Some files carry the "GPL-2.0+" SPDX identifier while others say
1794 ;; "LGPL-2.1+".
1795 (license license:gpl2+)))
1796
1797 (define-public gnome-menus
1798 (package
1799 (name "gnome-menus")
1800 (version "3.36.0")
1801 (source (origin
1802 (method url-fetch)
1803 (uri (string-append "mirror://gnome/sources/gnome-menus/"
1804 (version-major+minor version) "/"
1805 name "-" version ".tar.xz"))
1806 (sha256
1807 (base32
1808 "07xvaf8s0fiv0035nk8zpzymn5www76w2a1vflrgqmp9plw8yd6r"))))
1809 (build-system gnu-build-system)
1810 (native-inputs
1811 (list gettext-minimal glib pkg-config))
1812 (synopsis "Menu support for GNOME desktop")
1813 (description "GNOME Menus contains the libgnome-menu library, the layout
1814 configuration files for the GNOME menu, as well as a simple menu editor.")
1815 (home-page "https://gitlab.gnome.org/GNOME/gnome-menus")
1816 (license license:lgpl2.0+)))
1817
1818 (define-public deja-dup
1819 (package
1820 (name "deja-dup")
1821 (version "43.4")
1822 (source (origin
1823 (method url-fetch)
1824 (uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
1825 version "/deja-dup-" version ".tar.bz2"))
1826 (sha256
1827 (base32
1828 "1mr2g009w0zm5rj8dg1k77c7zdwylih2yszm8vh8wkw6al6bzfh3"))))
1829 (build-system meson-build-system)
1830 (arguments
1831 `(#:glib-or-gtk? #t
1832 #:configure-flags
1833 (list
1834 ;; Otherwise, the RUNPATH will lack the final path component.
1835 (string-append "-Dc_link_args=-Wl,-rpath="
1836 (assoc-ref %outputs "out") "/lib/deja-dup"))
1837 #:phases
1838 (modify-phases %standard-phases
1839 (add-after 'unpack 'patch-paths
1840 (lambda* (#:key inputs #:allow-other-keys)
1841 (let ((python (assoc-ref inputs "python")))
1842 (substitute* '("libdeja/duplicity/DuplicityInstance.vala"
1843 "libdeja/tests/scripts/instance-error.test")
1844 (("/bin/rm")
1845 (which "rm")))
1846 (substitute* "libdeja/tests/runner.vala"
1847 (("/bin/sh")
1848 (which "sh")))
1849 (substitute* "libdeja/tests/scripts/instance-error.test"
1850 (("`which python3`")
1851 (string-append python "/bin/python3"))))))
1852 (add-after 'unpack 'patch-libgpg-error
1853 (lambda* (#:key inputs #:allow-other-keys)
1854 (let ((libgpg-error (assoc-ref inputs "libgpg-error")))
1855 (substitute* "meson.build"
1856 (("(gpgerror_libs = ).*" _ var)
1857 (format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))))
1858 (add-after 'install 'wrap-program
1859 (lambda* (#:key inputs outputs #:allow-other-keys)
1860 ;; Add duplicity to the search path
1861 (wrap-program (string-append (assoc-ref outputs "out")
1862 "/bin/deja-dup")
1863 `("PATH" ":" prefix
1864 (,(string-append (assoc-ref inputs "duplicity") "/bin")))))))))
1865 (inputs
1866 (list bash-minimal
1867 duplicity
1868 gsettings-desktop-schemas
1869 gtk
1870 json-glib
1871 libadwaita
1872 libgpg-error
1873 libnotify
1874 libsecret
1875 libsoup
1876 libhandy
1877 packagekit
1878 python
1879 python-pygobject))
1880 (native-inputs
1881 (list appstream-glib
1882 desktop-file-utils
1883 gettext-minimal
1884 `(,glib "bin") ;for glib-compile-schemas
1885 gobject-introspection
1886 `(,gtk "bin") ;for gtk-update-icon-cache
1887 itstool
1888 pkg-config
1889 vala))
1890 (home-page "https://wiki.gnome.org/Apps/DejaDup")
1891 (synopsis "Simple backup tool, for regular encrypted backups")
1892 (description
1893 "Déjà Dup is a simple backup tool, for regular encrypted backups. It
1894 uses duplicity as the backend, which supports incremental backups and storage
1895 either on a local, or remote machine via a number of methods.")
1896 (license license:gpl3+)))
1897
1898 (define-public gnome-commander
1899 (package
1900 (name "gnome-commander")
1901 (version "1.14.3")
1902 (source
1903 (origin
1904 (method url-fetch)
1905 (uri (string-append "mirror://gnome/sources/" name "/"
1906 (version-major+minor version) "/"
1907 "gnome-commander-" version ".tar.xz"))
1908 (sha256
1909 (base32 "0yzx9slg632iflw9p96nlh9i50dhacq7hrzpkj8b48mr1zkxrn3q"))))
1910 (build-system glib-or-gtk-build-system)
1911 (native-inputs
1912 (list desktop-file-utils
1913 flex
1914 gettext-minimal
1915 `(,glib "bin")
1916 gobject-introspection
1917 googletest
1918 intltool
1919 itstool
1920 libtool
1921 pkg-config))
1922 (inputs
1923 (list gconf glib gtk+-2 libxml2))
1924 (home-page "https://gcmd.github.io/")
1925 (synopsis "Two-pane graphical file manager for the GNOME desktop")
1926 (description
1927 "GNOME Commander is a two-pane graphical file manager using GNOME
1928 libraries. It aims to fulfill the demands of more advanced users who
1929 like to focus on file management, their work through special applications
1930 and running smart commands.")
1931 (license license:gpl2+)))
1932
1933 (define-public gnome-user-docs
1934 (package
1935 (name "gnome-user-docs")
1936 (version "42.0")
1937 (source
1938 (origin
1939 (method url-fetch)
1940 (uri (string-append "mirror://gnome/sources/gnome-user-docs/"
1941 (version-major version)
1942 "/gnome-user-docs-" version ".tar.xz"))
1943 (sha256
1944 (base32 "01g9smkk2sj3yrih2wjn6vx9av855n7w6nqf9wpxvfq086h7vcmj"))))
1945 (build-system gnu-build-system)
1946 (native-inputs
1947 (list gettext-minimal itstool pkg-config libxml2))
1948 (synopsis "User documentation for the GNOME desktop")
1949 (description
1950 "The GNOME User Documentation explains how to use the GNOME desktop and its
1951 components. It covers usage and setup of the core GNOME programs by end-users
1952 and system administrators.")
1953 (home-page "https://live.gnome.org/DocumentationProject")
1954 (license license:cc-by3.0)))
1955
1956 (define-public dia
1957 ;; This version from GNOME's repository includes fixes for compiling with
1958 ;; recent versions of the build tools. The latest activity on the
1959 ;; pre-GNOME version has been in 2014, while GNOME has continued applying
1960 ;; fixes since.
1961 (let ((commit "0997887d97f01be28bf3886dfd3e2002de437930")
1962 (revision "3"))
1963 (package
1964 (name "dia")
1965 (version (git-version "0.97.3" revision commit))
1966 (source (origin
1967 (method git-fetch)
1968 (uri (git-reference
1969 (url "https://gitlab.gnome.org/GNOME/dia.git/")
1970 (commit commit)))
1971 (file-name (git-file-name name version))
1972 (sha256
1973 (base32
1974 "199b4n1jydg1g9lnz0r8xx67h7s2ac2lfj89zp015lbs0qqfkmsh"))))
1975 (build-system meson-build-system)
1976 ;; XXX: Parallel builds may cause: [74/566] [...]
1977 ;; fatal error: dia-lib-enums.h: No such file or directory
1978 (arguments '(#:parallel-build? #f))
1979 (inputs
1980 (list graphene
1981 gtk+-2
1982 libxml2
1983 libxslt
1984
1985 ;; XXX: PDF plugin fails to build with poppler 21.07.0.
1986 ;; poppler
1987
1988 python))
1989 (native-inputs
1990 (list appstream-glib docbook-xsl
1991 `(,glib "bin") gettext-minimal pkg-config))
1992 (home-page "https://wiki.gnome.org/Apps/Dia")
1993 (synopsis "Diagram creation for GNOME")
1994 (description "Dia can be used to draw different types of diagrams, and
1995 includes support for UML static structure diagrams (class diagrams), entity
1996 relationship modeling, and network diagrams. The program supports various file
1997 formats like PNG, SVG, PDF and EPS.")
1998 (license license:gpl2+))))
1999
2000 (define-public libgdata
2001 (package
2002 (name "libgdata")
2003 (version "0.18.1")
2004 (source (origin
2005 (method url-fetch)
2006 (uri (string-append "mirror://gnome/sources/" name "/"
2007 (version-major+minor version) "/"
2008 name "-" version ".tar.xz"))
2009 (sha256
2010 (base32
2011 "1iq4d1qy0vkmy29xvr13dgz4pxvn5v3yi2swryld0ajinvp951fx"))))
2012 (build-system meson-build-system)
2013 (arguments
2014 '(#:phases
2015 (modify-phases %standard-phases
2016 (add-before 'check 'set-home-for-tests
2017 (lambda _
2018 (setenv "HOME" "/tmp"))))))
2019 (native-inputs
2020 `(("glib:bin" ,glib "bin")
2021 ("gobject-introspection" ,gobject-introspection)
2022 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
2023 ("intltool" ,intltool)
2024 ("pkg-config" ,pkg-config)
2025 ("uhttpmock" ,uhttpmock)))
2026 (inputs
2027 (list cyrus-sasl glib-networking vala))
2028 (propagated-inputs
2029 `(("gcr" ,gcr)
2030 ("glib" ,glib)
2031 ("gnome-online-accounts" ,gnome-online-accounts)
2032 ("json-glib" ,json-glib)
2033 ("liboauth" ,liboauth)
2034 ("libsoup" ,libsoup-minimal-2)
2035 ("libxml2" ,libxml2)))
2036 (home-page "https://wiki.gnome.org/Projects/libgdata")
2037 (synopsis "Library for accessing online service APIs")
2038 (description
2039 "libgdata is a GLib-based library for accessing online service APIs using
2040 the GData protocol — most notably, Google's services. It provides APIs to
2041 access the common Google services, and has full asynchronous support.")
2042 (license license:lgpl2.1+)))
2043
2044 (define-public libgxps
2045 (package
2046 (name "libgxps")
2047 (version "0.3.2")
2048 (source (origin
2049 (method url-fetch)
2050 (uri (string-append "mirror://gnome/sources/" name "/"
2051 (version-major+minor version) "/"
2052 name "-" version ".tar.xz"))
2053 (sha256
2054 (base32
2055 "07156nj7yrp3h9zyzx6mjwxwmfijialb4gi5d6dwyp53arr8c9vd"))))
2056 (build-system meson-build-system)
2057 (native-inputs
2058 (list gobject-introspection pkg-config))
2059 (inputs
2060 (list gtk+ libjpeg-turbo lcms libtiff))
2061 (propagated-inputs
2062 ;; In Requires of libgxps.pc.
2063 (list cairo glib libarchive))
2064 (home-page "https://wiki.gnome.org/Projects/libgxps")
2065 (synopsis "GObject-based library for handling and rendering XPS documents")
2066 (description
2067 "libgxps is a GObject-based library for handling and rendering XPS
2068 documents. This package also contains binaries that can convert XPS documents
2069 to other formats.")
2070 (license license:lgpl2.1+)))
2071
2072 (define-public gnome-characters
2073 (package
2074 (name "gnome-characters")
2075 (version "42.0")
2076 (source
2077 (origin
2078 (method url-fetch)
2079 (uri (string-append "mirror://gnome/sources/"
2080 "gnome-characters/" (version-major version)
2081 "/gnome-characters-" version ".tar.xz"))
2082 (sha256
2083 (base32
2084 "1y40g7k7yyzikbbxhf69q4c0221lga1cli1p617v99pq2swgz82x"))))
2085 (build-system meson-build-system)
2086 (arguments
2087 (list
2088 #:glib-or-gtk? #t
2089 #:phases #~(modify-phases %standard-phases
2090 (add-after 'unpack 'disable-gtk-update-icon-cache
2091 (lambda _
2092 (setenv "DESTDIR" "/")))
2093 (add-after 'install 'wrap
2094 (lambda* (#:key outputs #:allow-other-keys)
2095 ;; GNOME Characters needs Typelib files from GTK and
2096 ;; gnome-desktop.
2097 (wrap-program (search-input-file outputs
2098 "bin/gnome-characters")
2099 `("GI_TYPELIB_PATH" ":" prefix
2100 (,(getenv "GI_TYPELIB_PATH")))))))))
2101 (native-inputs
2102 (list gettext-minimal
2103 `(,glib "bin")
2104 pkg-config
2105 python-minimal))
2106 (inputs
2107 (list gjs
2108 gnome-desktop
2109 gtk
2110 libadwaita
2111 libhandy
2112 libunistring))
2113 (home-page "https://wiki.gnome.org/Apps/CharacterMap")
2114 (synopsis "Find and insert unusual characters")
2115 (description "Characters is a simple utility application to find
2116 and insert unusual characters. It allows you to quickly find the
2117 character you are looking for by searching for keywords.")
2118 (license license:bsd-3)))
2119
2120 (define-public gnome-common
2121 (package
2122 (name "gnome-common")
2123 (version "3.18.0")
2124 (source
2125 (origin
2126 (method url-fetch)
2127 (uri (string-append "mirror://gnome/sources/" name "/"
2128 (version-major+minor version) "/"
2129 name "-" version ".tar.xz"))
2130 (sha256
2131 (base32
2132 "1kzqi8qvh5p1zncj8msazlmvcwsczjz2hqxp4x2y0mg718vrwmi2"))))
2133 (build-system gnu-build-system)
2134 (home-page "https://www.gnome.org/")
2135 (synopsis "Bootstrap GNOME modules built from Git")
2136 (description "gnome-common contains various files needed to bootstrap
2137 GNOME modules built from Git. It contains a common \"autogen.sh\" script that
2138 can be used to configure a source directory checked out from Git and some
2139 commonly used macros.")
2140 (license license:gpl2+)))
2141
2142 (define-public gnome-contacts
2143 (package
2144 (name "gnome-contacts")
2145 (version "42.0")
2146 (source (origin
2147 (method url-fetch)
2148 (uri (string-append "mirror://gnome/sources/gnome-contacts/"
2149 (version-major version) "/"
2150 name "-" version ".tar.xz"))
2151 (sha256
2152 (base32
2153 "05jj5kiab13crm18r166w7h31jpny7f3px98q7d2ix93vj7w60l8"))))
2154 (build-system meson-build-system)
2155 (arguments
2156 `(#:glib-or-gtk? #t
2157 #:phases
2158 (modify-phases %standard-phases
2159 (add-after 'unpack 'skip-gtk-update-icon-cache
2160 (lambda _
2161 (substitute* "meson.build"
2162 (("gtk_update_icon_cache: true")
2163 "gtk_update_icon_cache: false")))))))
2164 (native-inputs
2165 (list desktop-file-utils
2166 docbook-xml
2167 docbook-xml-4.2
2168 docbook-xsl
2169 gettext-minimal
2170 `(,glib "bin")
2171 gobject-introspection
2172 libxslt
2173 pkg-config))
2174 (inputs
2175 (list evolution-data-server-3.44
2176 gnome-desktop
2177 gnome-online-accounts-3.44
2178 gst-plugins-base
2179 gtk
2180 libadwaita
2181 libgee
2182 libhandy
2183 libportal
2184 telepathy-glib
2185 vala))
2186 (propagated-inputs
2187 (list folks-with-libsoup2
2188 telepathy-mission-control))
2189 (synopsis "GNOME's integrated address book")
2190 (description
2191 "GNOME Contacts organizes your contact information from online and
2192 offline sources, providing a centralized place for managing your contacts.")
2193 (home-page "https://wiki.gnome.org/Apps/Contacts")
2194 (license license:gpl2+)))
2195
2196 (define-public gnome-desktop
2197 (package
2198 (name "gnome-desktop")
2199 (version "42.4")
2200 (source
2201 (origin
2202 (method url-fetch)
2203 (uri (string-append "mirror://gnome/sources/" name "/"
2204 (version-major version) "/"
2205 name "-" version ".tar.xz"))
2206 (sha256
2207 (base32
2208 "09ddr5fzhh02fcn7xl1wy18qfsdqryd5msl2nbhdnsbr0vawkqhw"))))
2209 (build-system meson-build-system)
2210 (arguments
2211 '(#:phases
2212 (modify-phases %standard-phases
2213 (add-before 'configure 'patch-path
2214 (lambda* (#:key inputs #:allow-other-keys)
2215 (substitute* "libgnome-desktop/gnome-languages.c"
2216 (("\"locale\"")
2217 (format #f "~s" (search-input-file inputs "bin/locale"))))))
2218 (add-before 'configure 'patch-bubblewrap
2219 (lambda* (#:key inputs #:allow-other-keys)
2220 (substitute* "libgnome-desktop/gnome-desktop-thumbnail-script.c"
2221 (("\"bwrap\",")
2222 (string-append "\"" (which "bwrap") "\","))
2223 (("\"--ro-bind\", \"/usr\", \"/usr\",")
2224 (string-append "\"--ro-bind\", \""
2225 (%store-directory)
2226 "\", \""
2227 (%store-directory)
2228 "\","))
2229 (("\"--ro-bind\", \"/etc/ld.so.cache\", \"/etc/ld.so.cache\",")
2230 ""))))
2231 (add-before 'check 'pre-check
2232 (lambda* (#:key inputs #:allow-other-keys)
2233 ;; Tests require a running X server and locales.
2234 (system "Xvfb :1 &")
2235 (setenv "DISPLAY" ":1")
2236 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
2237 (setenv "XDG_CONFIG_HOME" "/tmp")
2238 (setenv "GUIX_LOCPATH"
2239 (search-input-directory inputs
2240 "lib/locale")))))))
2241 (native-inputs
2242 (list `(,glib "bin") ;for gdbus-codegen
2243 glibc-locales ;for tests
2244 gobject-introspection
2245 itstool
2246 intltool
2247 pkg-config
2248 libxml2
2249 xorg-server-for-tests))
2250 (propagated-inputs
2251 ;; Required by gnome-desktop-3.0.pc.
2252 (list gsettings-desktop-schemas-next
2253 gtk
2254 gtk+
2255 iso-codes
2256 libseccomp
2257 libx11
2258 xkeyboard-config))
2259 (inputs
2260 (list bubblewrap
2261 gdk-pixbuf
2262 glib
2263 libxext
2264 libxkbfile
2265 libxrandr))
2266 (home-page "https://www.gnome.org/")
2267 (synopsis
2268 "Libgnome-desktop, gnome-about, and desktop-wide documents")
2269 (description
2270 "The libgnome-desktop library provides API shared by several applications
2271 on the desktop, but that cannot live in the platform for various reasons.
2272 There is no API or ABI guarantee, although we are doing our best to provide
2273 stability. Documentation for the API is available with gtk-doc.
2274
2275 The gnome-about program helps find which version of GNOME is installed.")
2276 ; Some bits under the LGPL.
2277 (license license:gpl2+)))
2278
2279 (define-public gnome-disk-utility
2280 (package
2281 (name "gnome-disk-utility")
2282 (version "42.0")
2283 (source (origin
2284 (method url-fetch)
2285 (uri (string-append "mirror://gnome/sources/" name "/"
2286 (version-major version) "/"
2287 name "-" version ".tar.xz"))
2288 (sha256
2289 (base32
2290 "02q906gn420xbf1f0apazryzqfv5b1ammz1vrci66hk79m2n8r8v"))))
2291 (build-system meson-build-system)
2292 (arguments
2293 `(#:configure-flags '("-Dlogind=libelogind")
2294 #:phases
2295 (modify-phases %standard-phases
2296 (add-after 'unpack 'skip-gtk-update-icon-cache
2297 ;; Don't create 'icon-theme.cache'.
2298 (lambda _
2299 (substitute* "meson_post_install.py"
2300 (("gtk-update-icon-cache") "true")))))))
2301 (native-inputs
2302 (list docbook-xml
2303 docbook-xsl
2304 `(,glib "bin")
2305 gettext-minimal
2306 pkg-config
2307 libxml2
2308 libxslt))
2309 (inputs
2310 (list elogind
2311 glib
2312 appstream-glib
2313 gnome-settings-daemon
2314 gtk+
2315 libcanberra
2316 libdvdread
2317 libhandy
2318 libnotify
2319 libpwquality
2320 libsecret
2321 udisks))
2322 (home-page "https://git.gnome.org/browse/gnome-disk-utility")
2323 (synopsis "Disk management utility for GNOME")
2324 (description "Disk management utility for GNOME.")
2325 (license license:gpl2+)))
2326
2327 (define-public gnome-font-viewer
2328 (package
2329 (name "gnome-font-viewer")
2330 (version "42.0")
2331 (source (origin
2332 (method url-fetch)
2333 (uri (string-append "mirror://gnome/sources/gnome-font-viewer/"
2334 (version-major version)
2335 "/gnome-font-viewer-" version ".tar.xz"))
2336 (sha256
2337 (base32
2338 "1k4dhk5dmkpxb5xpr9vrl7k2fdpi2fidzni1l2hhb891zzgvi8ng"))))
2339 (build-system meson-build-system)
2340 (arguments
2341 (list
2342 #:phases
2343 #~(modify-phases %standard-phases
2344 (add-after 'unpack 'patch-post-install-script
2345 (lambda _
2346 (substitute* "meson-postinstall.sh"
2347 (("update-desktop-database") (which "true")))))
2348 (add-after 'install 'patch-thumbnailer
2349 (lambda* (#:key outputs #:allow-other-keys)
2350 (substitute*
2351 (search-input-file
2352 outputs "share/thumbnailers/gnome-font-viewer.thumbnailer")
2353 (("gnome-thumbnail-font")
2354 (search-input-file outputs "bin/gnome-thumbnail-font"))))))))
2355 (native-inputs
2356 (list gettext-minimal
2357 `(,glib "bin")
2358 pkg-config))
2359 (inputs
2360 (list glib
2361 gnome-desktop
2362 gtk
2363 libadwaita
2364 libhandy
2365 libxml2))
2366 (home-page "https://gitlab.gnome.org/GNOME/gnome-font-viewer")
2367 (synopsis "GNOME Fonts")
2368 (description "Application to show you the fonts installed on your computer
2369 for your use as thumbnails. Selecting any thumbnails shows the full view of how
2370 the font would look under various sizes.")
2371 (license license:gpl2+)))
2372
2373 (define-public gcr
2374 (package
2375 (name "gcr")
2376 (version "3.41.1")
2377 (source (origin
2378 (method url-fetch)
2379 (uri (string-append "mirror://gnome/sources/" name "/"
2380 (version-major+minor version) "/"
2381 name "-" version ".tar.xz"))
2382 (sha256
2383 (base32
2384 "0kx2pv272p0qc0nq1287gciyn34d95yxg41vq3lzxfzyqaijhwdv"))))
2385 (build-system meson-build-system)
2386 (arguments
2387 (list
2388 #:phases
2389 #~(modify-phases %standard-phases
2390 (add-after 'unpack 'remove-fatal-warnings-option
2391 ;; Otherwise, the gi-docgen tool would fail because of the
2392 ;; "Fontconfig error: No writable cache directories" warnings.
2393 (lambda _
2394 (substitute* (find-files "." "^meson\\.build$")
2395 ((".*'--fatal-warnings',.*") ""))))
2396 (add-after 'unpack 'skip-gtk-update-icon-cache
2397 ;; Don't create 'icon-theme.cache'.
2398 (lambda _
2399 (substitute* "meson_post_install.py"
2400 (("gtk-update-icon-cache") "true"))))
2401 (add-before 'check 'pre-check
2402 (lambda _
2403 ;; Some tests expect to write to $HOME.
2404 (setenv "HOME" "/tmp")))
2405 (replace 'check
2406 (lambda* (#:key parallel-tests? tests? #:allow-other-keys)
2407 (when tests?
2408 (setenv "MESON_TESTTHREADS"
2409 (if parallel-tests?
2410 (number->string (parallel-job-count))
2411 "1"))
2412 ;; Work around the "mock prompter couldn't get session bus
2413 ;; address: Cannot spawn a message bus without a machine-id"
2414 ;; error by manually creating the session bus via
2415 ;; 'dbus-run-session'.
2416 (invoke "dbus-run-session" "--"
2417 "meson" "test" "-t" "0")))))))
2418 (inputs
2419 (list dbus
2420 gnupg
2421 libgcrypt
2422 libsecret))
2423 (native-inputs
2424 (list gettext-minimal
2425 gi-docgen
2426 `(,glib "bin")
2427 gobject-introspection
2428 gtk-doc
2429 libxml2
2430 libxslt
2431 openssh
2432 pkg-config
2433 python-wrapper
2434 vala))
2435 ;; mentioned in gck.pc, gcr.pc and gcr-ui.pc
2436 (propagated-inputs
2437 (list glib
2438 gtk+
2439 p11-kit))
2440 (home-page "https://www.gnome.org")
2441 (synopsis "Libraries for displaying certificates and accessing key stores")
2442 (description
2443 "The GCR package contains libraries used for displaying certificates and
2444 accessing key stores. It also provides the viewer for crypto files on the
2445 GNOME Desktop.")
2446 (license license:lgpl2.1+)))
2447
2448 (define-public gdl
2449 (package
2450 (name "gdl")
2451 (version "3.34.0")
2452 (source (origin
2453 (method git-fetch)
2454 (uri (git-reference
2455 (url "https://gitlab.gnome.org/GNOME/gdl.git")
2456 (commit (string-append "GDL_" (string-map (match-lambda
2457 (#\. #\_)
2458 (c c))
2459 version)))))
2460 (file-name (git-file-name name version))
2461 (sha256
2462 (base32
2463 "154qcr0x6f68f4q526y87imv0rscmp34n47nk1pp82rsq52h2zna"))))
2464 (build-system gnu-build-system)
2465 (native-inputs
2466 (list autoconf
2467 automake
2468 `(,glib "bin") ; for glib-genmarshal, etc.
2469 gnome-common
2470 gtk-doc/stable
2471 intltool
2472 pkg-config
2473 libtool
2474 which))
2475 (inputs
2476 (list libxml2))
2477 (propagated-inputs
2478 ;; The gdl-3.0.pc file 'Requires' GTK+.
2479 (list gtk+))
2480 (home-page "https://gitlab.gnome.org/GNOME/gdl/")
2481 (synopsis "GNOME docking library")
2482 (description "This library provides docking features for gtk+.")
2483 (license license:lgpl2.1+)))
2484
2485 ;;; A minimal variant used to break a cycle with Inkscape.
2486 (define-public gdl-minimal
2487 (package/inherit gdl
2488 (name "gdl-minimal")
2489 (arguments
2490 '(#:phases
2491 (modify-phases %standard-phases
2492 (add-after 'unpack 'disable-doc-generation
2493 ;; XXX: There is no easy way to disable generating the
2494 ;; documentation.
2495 (lambda _
2496 (substitute* "configure.in"
2497 (("GTK_DOC_CHECK.*") "")
2498 (("docs/.*") ""))
2499 (substitute* "Makefile.am"
2500 (("gdl docs po") "gdl po"))
2501 #t)))))
2502 (native-inputs (alist-delete "gtk-doc" (package-native-inputs gdl)))))
2503
2504 (define-public libgnome-keyring
2505 (package
2506 (name "libgnome-keyring")
2507 (version "3.12.0")
2508 (source (origin
2509 (method url-fetch)
2510 (uri (string-append "mirror://gnome/sources/" name "/"
2511 (version-major+minor version) "/"
2512 name "-" version ".tar.xz"))
2513 (sha256
2514 (base32
2515 "10vpjhgbjm7z2djy04qakd02qlzpd02xnbfjhk2aqwjzn3xpihf4"))))
2516 (build-system gnu-build-system)
2517 (inputs
2518 (list libgcrypt dbus))
2519 (native-inputs
2520 (list pkg-config
2521 `(,glib "bin") intltool))
2522 (propagated-inputs
2523 ;; Referred to in .h files and .pc.
2524 (list glib))
2525 (home-page "https://www.gnome.org")
2526 (synopsis "Accessing passwords from the GNOME keyring")
2527 (description
2528 "Client library to access passwords from the GNOME keyring.")
2529
2530 ;; Though a couple of files are LGPLv2.1+.
2531 (license license:lgpl2.0+)))
2532
2533 (define-public gnome-keyring
2534 (package
2535 (name "gnome-keyring")
2536 (version "42.1")
2537 (source (origin
2538 (method url-fetch)
2539 (uri (string-append "mirror://gnome/sources/" name "/"
2540 (version-major version) "/"
2541 name "-" version ".tar.xz"))
2542 (sha256
2543 (base32
2544 "1rp38v4s9116ivycp27w806wihqid48gk3p0czzbg9knri0d1x67"))))
2545 (build-system gnu-build-system)
2546 (arguments
2547 (list
2548 #:configure-flags
2549 #~(list
2550 (string-append "--with-pkcs11-config="
2551 #$output "/share/p11-kit/modules/")
2552 (string-append "--with-pkcs11-modules="
2553 #$output "/share/p11-kit/modules/"))
2554 #:phases
2555 #~(modify-phases %standard-phases
2556 (add-after 'unpack 'fix-/bin/sh-reference
2557 (lambda _
2558 (substitute* "po/Makefile.in.in"
2559 (("/bin/sh") (which "sh")))))
2560 (delete 'check)
2561 (add-after 'install 'check
2562 (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
2563 (when tests?
2564 (setenv "HOME" "/tmp") ;some tests require a writable HOME
2565 (setenv "XDG_DATA_DIRS" (string-append (getenv "XDG_DATA_DIRS")
2566 ":" #$output "/share"))
2567 (invoke "dbus-run-session" "make" "check" "-j"
2568 (if parallel-tests?
2569 (number->string (parallel-job-count))
2570 "1"))))))))
2571 (inputs
2572 (list dbus
2573 gcr
2574 libgcrypt
2575 linux-pam
2576 openssh))
2577 (native-inputs
2578 (list dbus ;for tests
2579 docbook-xml-4.3
2580 docbook-xml
2581 docbook-xsl
2582 gettext-minimal
2583 `(,glib "bin")
2584 glib ;for m4 macros
2585 libxml2 ;for XML_CATALOG_FILES
2586 libxslt ;for documentation
2587 pkg-config
2588 python-wrapper)) ;for tests
2589 (propagated-inputs
2590 (list gcr))
2591 (home-page "https://www.gnome.org")
2592 (synopsis "Daemon to store passwords and encryption keys")
2593 (description
2594 "@command{gnome-keyring} is a program that keeps passwords and other
2595 secrets for users. It is run as a daemon in the session, similar to
2596 @command{ssh-agent}, and other applications locate it via an environment
2597 variable or D-Bus.
2598
2599 The program can manage several keyrings, each with its own master password,
2600 and there is also a session keyring which is never stored to disk, but
2601 forgotten when the session ends.")
2602 (license license:lgpl2.1+)))
2603
2604 (define-public evince
2605 (package
2606 (name "evince")
2607 (version "42.3")
2608 (source (origin
2609 (method url-fetch)
2610 (uri "mirror://gnome/sources/evince/42/evince-42.3.tar.xz")
2611 (sha256
2612 (base32
2613 "0pk42icnf4kdcaqaj17mcf4sxi82h1fdg2ds2zdrcv4lbj2czbj9"))))
2614 (build-system meson-build-system)
2615 (arguments
2616 `(#:glib-or-gtk? #t
2617 #:build-type "release"
2618 #:configure-flags '("-Dnautilus=false")
2619 #:phases
2620 (modify-phases %standard-phases
2621 (add-after 'unpack 'skip-gtk-update-icon-cache
2622 ;; Don't create 'icon-theme.cache'.
2623 (lambda _
2624 (substitute* "meson_post_install.py"
2625 (("gtk-update-icon-cache") "true")))))))
2626 (inputs
2627 (list libarchive
2628 libgxps
2629 libspectre
2630 djvulibre
2631 ghostscript
2632 poppler
2633 libtiff
2634 texlive-libkpathsea ; for DVI support
2635 gnome-desktop
2636 gsettings-desktop-schemas
2637 gspell
2638 libgnome-keyring
2639 adwaita-icon-theme
2640 gdk-pixbuf
2641 atk
2642 pango
2643 gtk+
2644 glib
2645 libxml2
2646 libsm
2647 libice
2648 shared-mime-info
2649 dconf
2650 libcanberra
2651 libsecret
2652 libhandy))
2653 (native-inputs
2654 (list itstool
2655 gettext-minimal
2656 gi-docgen
2657 `(,glib "bin")
2658 gobject-introspection
2659 pkg-config
2660 libxml2))
2661 (home-page " https://wiki.gnome.org/Apps")
2662 (synopsis "GNOME's document viewer")
2663 (description
2664 "Evince is a document viewer for multiple document formats. It
2665 currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
2666 of Evince is to replace the multiple document viewers that exist
2667 on the GNOME Desktop with a single simple application.")
2668 (license license:gpl2+)))
2669
2670 (define-public gsettings-desktop-schemas
2671 (package
2672 (name "gsettings-desktop-schemas")
2673 (version "41.0")
2674 (source
2675 (origin
2676 (method url-fetch)
2677 (uri (string-append "mirror://gnome/sources/" name "/"
2678 (version-major version) "/"
2679 name "-" version ".tar.xz"))
2680 (sha256
2681 (base32
2682 "1v9jagk679m01nji0acirynxinziv036618c7xc49l4nwmr9ja3p"))))
2683 (build-system meson-build-system)
2684 (arguments
2685 `(#:phases (modify-phases %standard-phases
2686 (add-after 'unpack 'patch-schemas
2687 (lambda* (#:key inputs #:allow-other-keys)
2688 (substitute* (find-files "schemas"
2689 "\\.gschema\\.xml\\.in$")
2690 ;; Provide the correct file name of the default
2691 ;; GNOME background, 'adwaita-timed.xml'.
2692 (("@datadir@/backgrounds/gnome")
2693 (search-input-directory inputs
2694 "/share/backgrounds/gnome"))
2695 ;; Do not reference fonts, that may not exist.
2696 (("'Source Code Pro 10'") "'Monospace 11'")))))))
2697 (inputs (list glib gnome-backgrounds))
2698 (native-inputs (list gettext-minimal
2699 `(,glib "bin") ;glib-compile-schemas, etc.
2700 gobject-introspection
2701 pkg-config
2702 python)) ;for build-aux/meson/post-install.py
2703 (home-page "https://launchpad.net/gsettings-desktop-schemas")
2704 (synopsis "GNOME settings for various desktop components")
2705 (description "Gsettings-desktop-schemas contains a collection of GSettings
2706 schemas for settings shared by various components of the GNOME desktop.")
2707 (license license:lgpl2.1+)))
2708
2709 (define-public gsettings-desktop-schemas-next
2710 (package
2711 (inherit gsettings-desktop-schemas)
2712 (name "gsettings-desktop-schemas-next") ;to avoid propagation conflicts
2713 (version "42.0")
2714 (source
2715 (origin
2716 (method url-fetch)
2717 (uri (string-append "mirror://gnome/sources/" name "/"
2718 (version-major version) "/"
2719 name "-" version ".tar.xz"))
2720 (sha256
2721 (base32
2722 "1li3fcqwnw20f4j0i21i88fygm0hli8gmzkn4apgf8ynkrd371k6"))))))
2723
2724 (define-public python-liblarch
2725 (package
2726 (name "python-liblarch")
2727 (version "3.2.0")
2728 (source (origin
2729 (method git-fetch)
2730 (uri (git-reference
2731 (url "https://github.com/getting-things-gnome/liblarch")
2732 (commit (string-append "v" version))))
2733 (file-name (git-file-name name version))
2734 (sha256
2735 (base32
2736 "125rmrdbc84lapfh8c77zxnmwas20xdfamqmilhv1smkxn2q4sh3"))))
2737 (build-system python-build-system)
2738 (arguments
2739 `(#:phases (modify-phases %standard-phases
2740 (add-before 'check 'start-xserver
2741 (lambda* (#:key inputs #:allow-other-keys)
2742 (system (format #f "~a/bin/Xvfb :1 &"
2743 (assoc-ref inputs "xorg-server")))
2744 (setenv "DISPLAY" ":1"))))))
2745 (native-inputs (list xorg-server-for-tests))
2746 (inputs (list gtk+))
2747 (propagated-inputs (list python-pygobject))
2748 (home-page "https://wiki.gnome.org/Projects/liblarch")
2749 (synopsis "Library to easily handle complex data structures")
2750 (description
2751 "Liblarch is a Python library built to easily handle data structures such
2752 as lists, trees and acyclic graphs. There's also a GTK binding that will
2753 allow you to use your data structure in a @code{Gtk.Treeview}.
2754
2755 Liblarch support multiple views of one data structure and complex filtering.
2756 That way, you have a clear separation between your data themselves (Model)
2757 and how they are displayed (View).")
2758 (license license:lgpl3+)))
2759
2760 (define-public gtg
2761 (package
2762 (name "gtg")
2763 (version "0.6")
2764 (source
2765 (origin
2766 (method git-fetch)
2767 (uri (git-reference
2768 (url "https://github.com/getting-things-gnome/gtg")
2769 (commit (string-append "v" version))))
2770 (file-name (git-file-name name version))
2771 (sha256
2772 (base32 "1wcivqp4z3a2jdr2wdrldzwy9v6hlfp5sk0pmh80znlgvl7q3jiv"))))
2773 (build-system meson-build-system)
2774 (arguments
2775 (list
2776 #:glib-or-gtk? #t
2777 #:imported-modules `(,@%meson-build-system-modules
2778 (guix build python-build-system))
2779 #:modules '((guix build meson-build-system)
2780 ((guix build python-build-system) #:prefix python:)
2781 (guix build utils))
2782 #:phases
2783 #~(modify-phases %standard-phases
2784 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
2785 (lambda* (#:key inputs outputs #:allow-other-keys)
2786 (wrap-program (search-input-file outputs "bin/gtg")
2787 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
2788 ,(python:site-packages inputs outputs)))
2789 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
2790 (native-inputs
2791 (list desktop-file-utils
2792 gettext-minimal
2793 `(,glib "bin")
2794 gobject-introspection
2795 pkg-config
2796 python))
2797 (inputs
2798 (list bash-minimal
2799 librsvg
2800 gsettings-desktop-schemas
2801 gtk+
2802 pango
2803 python
2804 python-dbus
2805 python-liblarch
2806 python-lxml
2807 python-pycairo
2808 python-pygobject
2809 python-pyxdg))
2810 (home-page "https://wiki.gnome.org/Apps/GTG")
2811 (synopsis "Personal organizer for the GNOME desktop")
2812 (description
2813 "Getting Things GNOME! (GTG) is a personal tasks and TODO list items
2814 organizer for the GNOME desktop environment inspired by the Getting Things
2815 Done (GTD) methodology. GTG is designed with flexibility, adaptability,
2816 and ease of use in mind so it can be used as more than just GTD software.
2817 GTG is intended to help you track everything you need to do and need to
2818 know, from small tasks to large projects.")
2819 (license license:gpl3+)))
2820
2821 (define-public icon-naming-utils
2822 (package
2823 (name "icon-naming-utils")
2824 (version "0.8.90")
2825 (source
2826 (origin
2827 (method url-fetch)
2828 (uri (string-append "https://tango.freedesktop.org/releases/icon-naming-utils-"
2829 version ".tar.bz2"))
2830 (sha256
2831 (base32
2832 "1mc3v28fdfqanx3lqx233vcr4glb4c2376k0kx2v91a4vxwqcdxi"))))
2833 (build-system gnu-build-system)
2834 (inputs
2835 (list perl perl-xml-simple))
2836 (arguments
2837 '(#:phases
2838 (modify-phases %standard-phases
2839 (add-after 'install 'set-load-paths
2840 ;; Tell 'icon-name-mapping' where XML::Simple is.
2841 (lambda* (#:key outputs #:allow-other-keys)
2842 (let* ((out (assoc-ref outputs "out"))
2843 (prog (string-append out "/libexec/icon-name-mapping")))
2844 (wrap-program
2845 prog
2846 `("PERL5LIB" = ,(list (getenv "PERL5LIB")))))
2847 #t)))))
2848 (home-page "http://tango.freedesktop.org/Standard_Icon_Naming_Specification")
2849 (synopsis
2850 "Utility to implement the Freedesktop Icon Naming Specification")
2851 (description
2852 "To help with the transition to the Freedesktop Icon Naming
2853 Specification, the icon naming utility maps the icon names used by the
2854 GNOME and KDE desktops to the icon names proposed in the specification.")
2855 (license license:lgpl2.1+)))
2856
2857 (define-public adwaita-icon-theme
2858 (package
2859 (name "adwaita-icon-theme")
2860 (version "42.0")
2861 (source (origin
2862 (method url-fetch)
2863 (uri (string-append "mirror://gnome/sources/" name "/"
2864 (version-major version) "/"
2865 name "-" version ".tar.xz"))
2866 (sha256
2867 (base32
2868 "1q5i31zd5jzr12p6vn831afwnzbzf6x73wna1y86drnyr2nvb1ay"))))
2869 (build-system gnu-build-system)
2870 (arguments
2871 (list #:make-flags
2872 ;; Don't create 'icon-theme.cache'.
2873 #~(list "GTK_UPDATE_ICON_CACHE=")))
2874 (native-inputs
2875 ;; The following requires the SVG pixbuf loader, provided by librsvg,
2876 ;; available on x86_64 only.
2877 `(,@(if (target-64bit?)
2878 `((,gtk+ "bin")) ;for gtk-encode-symbolic-svg
2879 '())))
2880 (home-page "https://gitlab.gnome.org/GNOME/adwaita-icon-theme")
2881 (synopsis "GNOME icon theme")
2882 (description "Icons for the GNOME desktop.")
2883 (license license:lgpl3))) ; or Creative Commons BY-SA 3.0
2884
2885 (define-public gnome-icon-theme
2886 (deprecated-package "gnome-icon-theme" adwaita-icon-theme))
2887
2888 (define-public tango-icon-theme
2889 (package
2890 (name "tango-icon-theme")
2891 (version "0.8.90")
2892 (source (origin
2893 (method url-fetch)
2894 (uri (string-append "http://tango.freedesktop.org/releases/"
2895 "tango-icon-theme-" version ".tar.bz2"))
2896 (sha256
2897 (base32
2898 "034r9s944b4yikyfgn602yv7s54wdzlq0qfvqh52b9x6kbx08h79"))))
2899 (build-system gnu-build-system)
2900 (native-inputs
2901 (list icon-naming-utils intltool imagemagick pkg-config))
2902 (home-page "http://tango-project.org/")
2903 (synopsis "Tango icon theme")
2904 (description "This is an icon theme that follows the Tango visual
2905 guidelines.")
2906 (license license:public-domain)))
2907
2908 (define-public shared-mime-info
2909 (package
2910 (name "shared-mime-info")
2911 (version "1.15")
2912 (source (origin
2913 (method url-fetch)
2914 (uri (string-append
2915 "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
2916 "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
2917 ".tar.xz"))
2918 (sha256
2919 (base32
2920 "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
2921 (build-system gnu-build-system)
2922 (arguments
2923 ;; The build system appears not to be parallel-safe.
2924 '(#:parallel-build? #f))
2925 (inputs
2926 (list glib libxml2))
2927 (native-inputs
2928 `(("gettext" ,gettext-minimal)
2929 ("itstool" ,itstool)
2930 ("pkg-config" ,pkg-config)))
2931 (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
2932 (synopsis "Database of common MIME types")
2933 (description
2934 "The shared-mime-info package contains the core database of common types
2935 and the update-mime-database command used to extend it. It requires glib2 to
2936 be installed for building the update command. Additionally, it uses intltool
2937 for translations, though this is only a dependency for the maintainers. This
2938 database is translated at Transifex.")
2939 (license license:gpl2+)))
2940
2941 (define-public system-config-printer
2942 (package
2943 (name "system-config-printer")
2944 (version "1.5.16")
2945 (source
2946 (origin
2947 (method url-fetch)
2948 (uri (string-append
2949 "https://github.com/OpenPrinting/system-config-printer/releases/"
2950 "download/v" version
2951 "/system-config-printer-" version ".tar.xz"))
2952 (sha256
2953 (base32 "1z9pvgifj5c87csnqz10qybbcayh3ak9m606f63ifkvyjh4q9jnb"))))
2954 (build-system glib-or-gtk-build-system)
2955 (arguments
2956 (list
2957 #:imported-modules `((guix build python-build-system)
2958 ,@%glib-or-gtk-build-system-modules)
2959 #:phases
2960 #~(modify-phases %standard-phases
2961 (add-after 'unpack 'patch-build-files
2962 (lambda _
2963 (substitute* "configure.ac"
2964 (("AC_INIT.*" all)
2965 (string-append all "\nAC_CONFIG_MACRO_DIR([m4])\n"))
2966 ;; XXX: AX macros appear unavailable
2967 (("AX_REQUIRE_DEFINED.*") ""))
2968 ;; The Makefile generates some scripts, so set a valid shebang
2969 (substitute* "Makefile.am"
2970 (("/bin/bash") (which "bash")))
2971 (delete-file "configure")))
2972 (add-after 'unpack 'patch-docbook-xml
2973 (lambda* (#:key inputs #:allow-other-keys)
2974 ;; Modify the man XML otherwise xmlto tries to access the network
2975 (substitute* "man/system-config-printer.xml"
2976 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
2977 (string-append (assoc-ref inputs "docbook-xml")
2978 "/xml/dtd/docbook/")))))
2979 (add-after 'install 'add-install-to-pythonpath
2980 (@@ (guix build python-build-system) add-install-to-pythonpath))
2981 (add-after 'add-install-to-pythonpath 'wrap-for-python
2982 (@@ (guix build python-build-system) wrap))
2983 (add-after 'install 'wrap
2984 (lambda* (#:key outputs #:allow-other-keys)
2985 (let ((out (assoc-ref outputs "out"))
2986 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
2987 (for-each
2988 (lambda (program)
2989 (wrap-program program
2990 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
2991 (map (lambda (name)
2992 (string-append out "/bin/" name))
2993 '("system-config-printer"
2994 "system-config-printer-applet"
2995 "install-printerdriver"
2996 "scp-dbus-service")))))))))
2997 (inputs
2998 (list gsettings-desktop-schemas
2999 gobject-introspection
3000 python
3001 cups
3002 gtk+
3003 python-dbus
3004 python-pygobject
3005 python-pycups
3006 python-requests
3007 python-pycairo
3008 libnotify
3009 packagekit))
3010 (native-inputs
3011 (list pkg-config
3012 desktop-file-utils
3013 glib
3014 autoconf
3015 automake
3016 gettext-minimal
3017 xmlto
3018 docbook-xml-4.1.2
3019 docbook-xsl
3020 libxml2))
3021 (home-page "https://github.com/zdohnal/system-config-printer")
3022 (synopsis "CUPS administration tool")
3023 (description
3024 "system-config-printer is a CUPS administration tool. It's written in
3025 Python using GTK+, and uses the @acronym{IPP, Internet Printing Protocol} when
3026 configuring CUPS.")
3027 (license license:gpl2+)))
3028
3029 (define-public hicolor-icon-theme
3030 (package
3031 (name "hicolor-icon-theme")
3032 (version "0.17")
3033 (source
3034 (origin
3035 (method url-fetch)
3036 (uri (string-append "https://icon-theme.freedesktop.org/releases/"
3037 "hicolor-icon-theme-" version ".tar.xz"))
3038 (sha256
3039 (base32
3040 "1n59i3al3zx6p90ff0l43gzpzmlqnzm6hf5cryxqrlbi48sq8x1i"))))
3041 (build-system gnu-build-system)
3042 (arguments
3043 `(#:tests? #f)) ; no check target
3044 (home-page "https://icon-theme.freedesktop.org/releases/")
3045 (synopsis
3046 "Freedesktop icon theme")
3047 (description
3048 "Freedesktop icon theme.")
3049 (license license:gpl2)))
3050
3051 (define-public libnotify
3052 (package
3053 (name "libnotify")
3054 (version "0.7.9")
3055 (source
3056 (origin
3057 (method url-fetch)
3058 (uri (string-append "mirror://gnome/sources/" name "/"
3059 (version-major+minor version) "/"
3060 name "-" version ".tar.xz"))
3061 (sha256
3062 (base32
3063 "0qa7cx6ra5hwqnxw95b9svgjg5q6ynm8y843iqjszxvds5z53h36"))))
3064 (build-system meson-build-system)
3065 (arguments
3066 `(#:phases
3067 (modify-phases %standard-phases
3068 (add-after 'unpack 'fix-docbook
3069 (lambda* (#:key inputs #:allow-other-keys)
3070 ;; Don't attempt to download XSL schema.
3071 (substitute* "meson.build"
3072 (("http://docbook.sourceforge.net/release/xsl-ns/current\
3073 /manpages/docbook.xsl")
3074 (string-append (assoc-ref inputs "docbook-xsl")
3075 "/xml/xsl/docbook-xsl-"
3076 ,(package-version docbook-xsl)
3077 "/manpages/docbook.xsl")))
3078 #t)))))
3079 (propagated-inputs
3080 (list ;; In Requires of libnotify.pc.
3081 gdk-pixbuf glib))
3082 (inputs
3083 (list gtk+ libpng))
3084 (native-inputs
3085 `(("pkg-config" ,pkg-config)
3086 ("glib" ,glib "bin")
3087 ("gobject-introspection" ,gobject-introspection)
3088
3089 ;; For the documentation.
3090 ("gtk-doc" ,gtk-doc/stable)
3091 ("xsltproc" ,libxslt)
3092 ("docbook-xsl" ,docbook-xsl)))
3093 (home-page "https://developer-next.gnome.org/libnotify/")
3094 (synopsis
3095 "GNOME desktop notification library")
3096 (description
3097 "Libnotify is a library that sends desktop notifications to a
3098 notification daemon, as defined in the Desktop Notifications spec. These
3099 notifications can be used to inform the user about an event or display
3100 some form of information without getting in the user's way.")
3101 (license license:lgpl2.1+)))
3102
3103 (define-public libpeas
3104 (package
3105 (name "libpeas")
3106 (version "1.32.0")
3107 (source
3108 (origin
3109 (method url-fetch)
3110 (uri (string-append "mirror://gnome/sources/" name "/"
3111 (version-major+minor version) "/"
3112 name "-" version ".tar.xz"))
3113 (sha256
3114 (base32
3115 "03ixrhfkywcb409dd0hybyb6i291phwy8si4kc17g29fl07m49fn"))))
3116 (build-system meson-build-system)
3117 (arguments
3118 '(#:phases
3119 (modify-phases %standard-phases
3120 (add-before 'check 'start-xserver
3121 (lambda* (#:key inputs #:allow-other-keys)
3122 (let ((disp ":1"))
3123 (setenv "DISPLAY" disp)
3124 (setenv "XDG_CACHE_HOME" "/tmp/xdg-cache")
3125 (setenv "XDG_CONFIG_HOME" "/tmp")
3126 ;; Tests require a running X server.
3127 (system (format #f "~a ~a &"
3128 (search-input-file inputs "bin/Xvfb")
3129 disp))))))))
3130 (inputs
3131 (list gtk+
3132 glade3
3133 python
3134 python-pygobject))
3135 (native-inputs
3136 (list pkg-config
3137 gettext-minimal
3138 `(,glib "bin")
3139 gobject-introspection
3140 xorg-server-for-tests))
3141 (propagated-inputs
3142 ;; The .pc file "Requires" gobject-introspection.
3143 (list gobject-introspection))
3144 (home-page "https://wiki.gnome.org/Projects/Libpeas")
3145 (synopsis "GObject plugin system")
3146 (description
3147 "Libpeas is a gobject-based plugin engine, targeted at giving every
3148 application the chance to assume its own extensibility. It also has a set of
3149 features including, but not limited to: multiple extension points; on-demand
3150 (lazy) programming language support for C, Python and JS; simplicity of the
3151 API.")
3152 (license license:lgpl2.0+)))
3153
3154 (define-public gtkglext
3155 (package
3156 (name "gtkglext")
3157 (version "1.2.0")
3158 (source (origin
3159 (method url-fetch)
3160 (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/"
3161 version "/gtkglext-" version ".tar.gz"))
3162 (sha256
3163 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5"))
3164 (patches (search-patches
3165 "gtkglext-disable-disable-deprecated.patch"))))
3166 (build-system gnu-build-system)
3167 (arguments
3168 `(#:phases
3169 (modify-phases %standard-phases
3170 ;; Fix a collision between a local variable and a definition from
3171 ;; glibc's string.h.
3172 (add-after 'unpack 'fix-collision
3173 (lambda _
3174 (substitute* "gdk/gdkglshapes.c"
3175 ((" index") " triangle_index"))
3176 #t)))))
3177 (inputs (list gtk+-2 mesa glu libx11 libxt))
3178 (native-inputs (list pkg-config
3179 `(,glib "bin")))
3180 (propagated-inputs (list pangox-compat))
3181 (home-page "https://projects.gnome.org/gtkglext")
3182 (synopsis "OpenGL extension to GTK+")
3183 (description "GtkGLExt is an OpenGL extension to GTK+. It provides
3184 additional GDK objects which support OpenGL rendering in GTK+ and GtkWidget
3185 API add-ons to make GTK+ widgets OpenGL-capable.")
3186 (license license:lgpl2.1+)))
3187
3188 (define-public glade3
3189 (package
3190 (name "glade")
3191 (version "3.40.0")
3192 (source (origin
3193 (method url-fetch)
3194 (uri (string-append "mirror://gnome/sources/" name "/"
3195 (version-major+minor version) "/"
3196 name "-" version ".tar.xz"))
3197 (sha256
3198 (base32
3199 "171x7vshhw0nqgnhkcaqfylpr5qrmhclwmkva6wjm5s9m2pavj9i"))))
3200 (build-system meson-build-system)
3201 (arguments
3202 (list
3203 #:meson meson-0.60
3204 #:phases
3205 #~(modify-phases %standard-phases
3206 (add-after 'unpack 'skip-gtk-update-icon-cache
3207 ;; Don't create 'icon-theme.cache'.
3208 (lambda _
3209 (substitute* "meson_post_install.py"
3210 (("gtk-update-icon-cache") "true"))))
3211
3212 #$@(if (this-package-input "gjs")
3213 '()
3214 '((add-after 'unpack 'skip-gjs-test
3215 (lambda _
3216 ;; When the optional dependency on GJS is missing, skip
3217 ;; the GJS plugin tests.
3218 (substitute* "tests/modules.c"
3219 (("g_test_add.*JavaScript.*" all)
3220 (string-append "// " all "\n")))
3221 (delete-file "tests/catalogs/gjsplugin.xml")))))
3222 (add-before 'check 'pre-check
3223 (lambda _
3224 (setenv "HOME" "/tmp")
3225 ;; Tests require a running X server.
3226 (system "Xvfb :1 &")
3227 (setenv "DISPLAY" ":1"))))))
3228 (inputs
3229 (append
3230 ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
3231 ;; dependency on other platforms (FIXME).
3232 (if (target-x86-64?)
3233 (list gjs)
3234 '())
3235 (list gtk+ libxml2)))
3236 (native-inputs
3237 (list docbook-xml-4.2
3238 docbook-xsl
3239 gettext-minimal
3240 `(,glib "bin")
3241 gobject-introspection
3242 hicolor-icon-theme
3243 itstool
3244 libxml2 ;for XML_CATALOG_FILES
3245 libxslt ;for xsltproc
3246 python
3247 python-pygobject
3248 pkg-config
3249 xorg-server-for-tests))
3250 (home-page "https://glade.gnome.org")
3251 (synopsis "GTK+ rapid application development tool")
3252 (description "Glade is a rapid application development (RAD) tool to
3253 enable quick & easy development of user interfaces for the GTK+ toolkit and
3254 the GNOME desktop environment.")
3255 (license license:lgpl2.0+)
3256 (native-search-paths (list (search-path-specification
3257 (variable "GLADE_CATALOG_SEARCH_PATH")
3258 (files '("share/glade/catalogs")))
3259 (search-path-specification
3260 (variable "GLADE_MODULE_SEARCH_PATH")
3261 (files '("lib/glade/modules")))))))
3262
3263 (define-public blueprint-compiler
3264 (package
3265 (name "blueprint-compiler")
3266 (version "0.4.0")
3267 (source (origin
3268 (method git-fetch)
3269 (uri (git-reference
3270 (url
3271 "https://gitlab.gnome.org/jwestman/blueprint-compiler")
3272 (commit (string-append "v" version))))
3273 (file-name (string-append name "-" version "-checkout"))
3274 (sha256
3275 (base32
3276 "0hj7f4xhwjc4x32r3lswwclbw37fw3spy806g4plkmym25hz4ydy"))))
3277 (build-system meson-build-system)
3278 (native-inputs (list gtk python-pygobject python))
3279 (inputs (list python))
3280 (synopsis "Template markup language")
3281 (description
3282 "Blueprint is a markup language for GTK user interfaces. Internally, it
3283 compiles to GTKBuilder XML.")
3284 (home-page "https://gitlab.gnome.org/jwestman/blueprint-compiler")
3285 (license license:lgpl3+)))
3286
3287 (define-public cambalache
3288 (package
3289 (name "cambalache")
3290 (version "0.10.3")
3291 (source (origin
3292 (method git-fetch)
3293 (uri (git-reference
3294 (url "https://gitlab.gnome.org/jpu/cambalache")
3295 (commit version)))
3296 (file-name (git-file-name name version))
3297 (sha256
3298 (base32 "1nq9bvly4dm1xnh90z3b4c5455qpdgm3jgz2155vg2ai23f22vsy"))))
3299 (build-system meson-build-system)
3300 (arguments
3301 (list
3302 #:glib-or-gtk? #t
3303 #:imported-modules `((guix build python-build-system)
3304 ,@%meson-build-system-modules)
3305 #:modules '((guix build meson-build-system)
3306 ((guix build python-build-system) #:prefix python:)
3307 (guix build utils))
3308 #:phases
3309 #~(modify-phases %standard-phases
3310 (add-after 'unpack 'patch-source
3311 (lambda* (#:key inputs #:allow-other-keys)
3312 (substitute* "cambalache/cmb_view.py"
3313 (("GLib\\.find_program_in_path\\('(.*)'\\)" all cmd)
3314 (format #f "~s" (search-input-file
3315 inputs (string-append "bin/" cmd)))))))
3316 (add-after 'unpack 'patch-build
3317 (lambda _
3318 (substitute* "postinstall.py"
3319 (("update-desktop-database") "true"))))
3320 (add-after 'wrap 'python-wrap (assoc-ref python:%standard-phases 'wrap))
3321 (delete 'check)
3322 (add-after 'install 'add-install-to-pythonpath
3323 (assoc-ref python:%standard-phases 'add-install-to-pythonpath))
3324 (add-after 'add-install-to-pythonpath 'pre-check
3325 (lambda _
3326 (system "Xvfb :1 &")
3327 (setenv "DISPLAY" ":1")))
3328 (add-after 'pre-check 'check
3329 (lambda* (#:key tests? #:allow-other-keys)
3330 (when tests?
3331 (with-directory-excursion ".."
3332 (invoke "python3" "-m" "pytest")))))
3333 (add-after 'glib-or-gtk-wrap 'wrap-typelib
3334 (lambda _
3335 (for-each
3336 (lambda (prog)
3337 (unless (wrapped-program? prog)
3338 (wrap-program prog
3339 `("GI_TYPELIB_PATH" suffix
3340 (,(string-append #$output "/lib/girepository-1.0")
3341 ,(getenv "GI_TYPELIB_PATH")))
3342 ;; icons and schemas
3343 `("XDG_DATA_DIRS" suffix
3344 #$(map
3345 (lambda (input)
3346 (file-append (this-package-input input) "/share"))
3347 '("adwaita-icon-theme" "hicolor-icon-theme"
3348 "gsettings-desktop-schemas")))
3349 ;; Wrapping GDK_PIXBUF_MODULE_FILE allows Cambalache to
3350 ;; load its own icons in pure environments.
3351 `("GDK_PIXBUF_MODULE_FILE" =
3352 (,(getenv "GDK_PIXBUF_MODULE_FILE"))))))
3353 (find-files (string-append #$output "/bin"))))))))
3354 (inputs
3355 (list bash-minimal
3356 adwaita-icon-theme hicolor-icon-theme
3357 gsettings-desktop-schemas
3358 gtk
3359 `(,gtk+ "bin") ; broadwayd
3360 `(,gtk "bin")
3361 libadwaita
3362 libhandy
3363 (librsvg-for-system)
3364 python
3365 python-pygobject
3366 python-lxml
3367 webkitgtk-with-libsoup2))
3368 (native-inputs (list `(,glib "bin") gobject-introspection
3369 gettext-minimal pkg-config
3370 python-pytest xorg-server-for-tests))
3371 (home-page "https://gitlab.gnome.org/jpu/cambalache")
3372 (synopsis "Rapid application development tool")
3373 (description "Cambalache is a rapid application development (RAD) tool for
3374 Gtk 4 and 3 with a clear model-view-controller (MVC) design and
3375 data model first philosophy.")
3376 (license (list license:lgpl2.1
3377 license:gpl2)))) ; tools
3378
3379 (define-public libcroco
3380 (package
3381 (name "libcroco")
3382 (version "0.6.13")
3383 (source (origin
3384 (method url-fetch)
3385 (uri (string-append "mirror://gnome/sources/" name "/"
3386 (version-major+minor version) "/"
3387 name "-" version ".tar.xz"))
3388 (patches (search-patches "libcroco-CVE-2020-12825.patch"))
3389 (sha256
3390 (base32
3391 "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn"))))
3392 (build-system gnu-build-system)
3393 (native-inputs
3394 (list pkg-config))
3395 (inputs
3396 (list glib libxml2 zlib))
3397 (home-page "https://github.com/GNOME/libcroco")
3398 (synopsis "CSS2 parsing and manipulation library")
3399 (description
3400 "Libcroco is a standalone CSS2 parsing and manipulation library.
3401 The parser provides a low level event driven SAC-like API and a CSS object
3402 model like API. Libcroco provides a CSS2 selection engine and an experimental
3403 XML/CSS rendering engine.")
3404
3405 ;; LGPLv2.1-only.
3406 (license license:lgpl2.1)))
3407
3408 (define-public libgsf
3409 (package
3410 (name "libgsf")
3411 (version "1.14.50")
3412 (source (origin
3413 (method url-fetch)
3414 (uri (string-append "mirror://gnome/sources/" name "/"
3415 (version-major+minor version) "/"
3416 name "-" version ".tar.xz"))
3417 (sha256
3418 (base32
3419 "0llf5rpg2rg9pdz8j38dl5z82zi9kmsn639wb2fhcfc3fz820v3f"))))
3420 (build-system glib-or-gtk-build-system)
3421 (outputs '("out" "bin" "doc"))
3422 (arguments
3423 (list
3424 #:configure-flags
3425 #~(list
3426 "--disable-static"
3427 "--enable-introspection"
3428 (string-append "--with-gir-dir=" #$output
3429 "/share/gir-"
3430 #$(version-major
3431 (package-version gobject-introspection))
3432 ".0")
3433 (string-append "--with-typelib-dir=" #$output
3434 "/lib/girepository-"
3435 #$(version-major
3436 (package-version gobject-introspection))
3437 ".0")
3438 (string-append "--with-html-dir=" #$output
3439 "/share/gtk-doc/html")
3440 "--with-zlib"
3441 "--with-bz2")
3442 #:phases
3443 #~(modify-phases %standard-phases
3444 (add-after 'unpack 'patch-docbook-xml
3445 (lambda* (#:key native-inputs inputs #:allow-other-keys)
3446 (with-directory-excursion "doc"
3447 (substitute* "gsf-docs.xml"
3448 (("http://www.oasis-open.org/docbook/xml/4.5/")
3449 (search-input-directory (or native-inputs inputs)
3450 "xml/dtd/docbook")))))))))
3451 (native-inputs
3452 (list docbook-xml
3453 gettext-minimal
3454 gobject-introspection
3455 perl
3456 perl-xml-parser
3457 pkg-config
3458 python-wrapper))
3459 (inputs
3460 (list bzip2
3461 gdk-pixbuf
3462 zlib))
3463 (propagated-inputs
3464 (list glib
3465 libxml2))
3466 (synopsis "G Structured File Library")
3467 (description "Libgsf aims to provide an efficient extensible I/O abstraction
3468 for dealing with different structured file formats.")
3469 (home-page "https://gitlab.gnome.org/GNOME/libgsf")
3470 (license
3471 (list license:lgpl2.1+ ;library
3472 license:lgpl2.0+)))) ;others
3473
3474 (define-public librsvg
3475 (package
3476 (name "librsvg")
3477 (version "2.50.7")
3478 (source (origin
3479 (method url-fetch)
3480 (uri (string-append "mirror://gnome/sources/librsvg/"
3481 (version-major+minor version) "/"
3482 "librsvg-" version ".tar.xz"))
3483 (sha256
3484 (base32
3485 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3486 (modules '((guix build utils)))
3487 (snippet
3488 '(begin (delete-file-recursively "vendor")))))
3489 (build-system cargo-build-system)
3490 (outputs '("out" "doc" "debug"))
3491 (arguments
3492 `(#:install-source? #f
3493 #:modules
3494 ((guix build cargo-build-system)
3495 (guix build utils)
3496 ((guix build gnu-build-system) #:prefix gnu:))
3497 #:cargo-inputs
3498 (("rust-bitflags" ,rust-bitflags-1)
3499 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3500 ("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.9)
3501 ("rust-cast" ,rust-cast-0.2)
3502 ("rust-cssparser" ,rust-cssparser-0.27)
3503 ("rust-data-url" ,rust-data-url-0.1)
3504 ("rust-encoding" ,rust-encoding-0.2)
3505 ("rust-float-cmp" ,rust-float-cmp-0.8)
3506 ("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.8)
3507 ("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.9)
3508 ("rust-gio" ,rust-gio-0.8)
3509 ("rust-gio-sys" ,rust-gio-sys-0.9)
3510 ("rust-glib" ,rust-glib-0.9)
3511 ("rust-glib-sys" ,rust-glib-sys-0.9)
3512 ("rust-gobject-sys" ,rust-gobject-sys-0.9)
3513 ("rust-itertools" ,rust-itertools-0.9)
3514 ("rust-language-tags" ,rust-language-tags-0.2)
3515 ("rust-libc" ,rust-libc-0.2)
3516 ("rust-locale-config" ,rust-locale-config-0.3)
3517 ("rust-markup5ever" ,rust-markup5ever-0.10)
3518 ("rust-nalgebra" ,rust-nalgebra-0.21)
3519 ("rust-num-traits" ,rust-num-traits-0.2)
3520 ("rust-once-cell" ,rust-once-cell-1)
3521 ("rust-pkg-config" ,rust-pkg-config-0.3)
3522 ("rust-pango" ,rust-pango-0.8)
3523 ("rust-pango-sys" ,rust-pango-sys-0.9)
3524 ("rust-pangocairo" ,rust-pangocairo-0.9)
3525 ("rust-rayon" ,rust-rayon-1)
3526 ("rust-rctree" ,rust-rctree-0.3)
3527 ("rust-rgb" ,rust-rgb-0.8)
3528 ("rust-regex" ,rust-regex-1)
3529 ("rust-selectors" ,rust-selectors-0.22)
3530 ("rust-string-cache" ,rust-string-cache-0.8)
3531 ("rust-tinyvec" ,rust-tinyvec-0.3)
3532 ("rust-url" ,rust-url-2)
3533 ("rust-xml5ever" ,rust-xml5ever-0.16))
3534 #:cargo-development-inputs
3535 (("rust-assert-cmd" ,rust-assert-cmd-1)
3536 ("rust-cairo-rs" ,rust-cairo-rs-0.8)
3537 ("rust-chrono" ,rust-chrono-0.4)
3538 ("rust-criterion" ,rust-criterion-0.3)
3539 ("rust-float-cmp" ,rust-float-cmp-0.8)
3540 ("rust-lopdf" ,rust-lopdf-0.26)
3541 ("rust-png" ,rust-png-0.16)
3542 ("rust-predicates" ,rust-predicates-1)
3543 ("rust-tempfile" ,rust-tempfile-3))
3544 #:phases
3545 (modify-phases %standard-phases
3546 (add-after 'unpack 'patch-docbook-xml
3547 (lambda* (#:key inputs #:allow-other-keys)
3548 (with-directory-excursion "doc"
3549 (substitute* "rsvg-docs.xml"
3550 (("http://www.oasis-open.org/docbook/xml/4.3/")
3551 (string-append (assoc-ref inputs "docbook-xml")
3552 "/xml/dtd/docbook/"))))))
3553 (add-after 'unpack 'prepare-for-build
3554 (lambda _
3555 ;; In lieu of #:make-flags
3556 (setenv "CC" ,(cc-for-target))
3557 ;; Something about the build environment resists building
3558 ;; successfully with the '--locked' flag.
3559 (substitute* '("Makefile.am" "Makefile.in")
3560 (("--locked") ""))))
3561 (add-before 'configure 'pre-configure
3562 (lambda* (#:key outputs #:allow-other-keys)
3563 (substitute* "gdk-pixbuf-loader/Makefile.in"
3564 ;; By default the gdk-pixbuf loader is installed under
3565 ;; gdk-pixbuf's prefix. Work around that.
3566 (("gdk_pixbuf_moduledir = .*$")
3567 (string-append "gdk_pixbuf_moduledir = "
3568 "$(prefix)/"
3569 ,(dirname %gdk-pixbuf-loaders-cache-file) "/"
3570 "loaders\n")))
3571 (substitute* "configure"
3572 (("gdk_pixbuf_cache_file=.*")
3573 (string-append "gdk_pixbuf_cache_file="
3574 (assoc-ref outputs "out") "/"
3575 ,%gdk-pixbuf-loaders-cache-file "\n")))))
3576 (add-after 'configure 'gnu-configure
3577 (lambda* (#:key outputs #:allow-other-keys #:rest args)
3578 (apply (assoc-ref gnu:%standard-phases 'configure)
3579 #:configure-flags
3580 (list "--disable-static"
3581 "--enable-vala"
3582 (string-append "--with-html-dir="
3583 (assoc-ref outputs "doc")
3584 "/share/gtk-doc/html"))
3585 args)))
3586 (add-after 'configure 'dont-vendor-self
3587 (lambda* (#:key vendor-dir #:allow-other-keys)
3588 ;; Don't keep the whole tarball in the vendor directory
3589 (delete-file-recursively
3590 (string-append vendor-dir "/" ,name "-" ,version ".tar.xz"))))
3591 (replace 'build
3592 (assoc-ref gnu:%standard-phases 'build))
3593 (add-before 'check 'ignore-failing-tests
3594 ;; stderr=```/tmp/guix-build-.../librsvg-2.50.1/rsvg-convert: line 150: ls: command not found
3595 (lambda _
3596 (substitute* "tests/src/cmdline/rsvg_convert.rs"
3597 (("fn background_color_option_invalid_color_yields_error" all)
3598 (string-append "#[ignore] " all))
3599 (("fn empty_input_yields_error" all)
3600 (string-append "#[ignore] " all))
3601 (("fn empty_svg_yields_error" all)
3602 (string-append "#[ignore] " all))
3603 (("fn env_source_data_epoch_empty" all)
3604 (string-append "#[ignore] " all))
3605 (("fn env_source_data_epoch_no_digits" all)
3606 (string-append "#[ignore] " all))
3607 (("fn env_source_data_epoch_trailing_garbage" all)
3608 (string-append "#[ignore] " all))
3609 (("fn export_id_option_error" all)
3610 (string-append "#[ignore] " all))
3611 (("fn huge_zoom_factor_yields_error" all)
3612 (string-append "#[ignore] " all))
3613 (("fn multiple_input_files_not_allowed_for_png_output" all)
3614 (string-append "#[ignore] " all))
3615 (("fn stylesheet_option_error" all)
3616 (string-append "#[ignore] " all)))))
3617 (replace 'check
3618 (lambda* args
3619 ((assoc-ref gnu:%standard-phases 'check)
3620 #:test-target "check")))
3621 (replace 'install
3622 (assoc-ref gnu:%standard-phases 'install)))))
3623 (native-inputs
3624 (list docbook-xml-4.3
3625 `(,glib "bin")
3626 gobject-introspection
3627 pkg-config
3628 vala))
3629 (inputs
3630 (list freetype harfbuzz libxml2 pango))
3631 (propagated-inputs
3632 (list cairo gdk-pixbuf glib))
3633 (synopsis "SVG rendering library")
3634 (description "Librsvg is a library to render SVG images to Cairo surfaces.
3635 GNOME uses this to render SVG icons. Outside of GNOME, other desktop
3636 environments use it for similar purposes. Wikimedia uses it for Wikipedia's SVG
3637 diagrams.")
3638 (home-page "https://wiki.gnome.org/LibRsvg")
3639 (license license:lgpl2.1+)))
3640
3641 ;; This copy of librsvg uses the bundled rust libraries. It is useful for
3642 ;; packages which have too many dependencies to be rebuilt as frequently
3643 ;; as the rust inputs are updated.
3644 ;; TODO: Remove this package and use packaged rust libraries!
3645 (define-public librsvg-bootstrap
3646 (package
3647 (inherit librsvg)
3648 (name "librsvg")
3649 (version "2.50.7")
3650 (source (origin
3651 (method url-fetch)
3652 (uri (string-append "mirror://gnome/sources/librsvg/"
3653 (version-major+minor version) "/"
3654 "librsvg-" version ".tar.xz"))
3655 (sha256
3656 (base32
3657 "1g3f8byg5w08fx1bka12mmpl59v6a4q2p827w6m2la6mijq63yzz"))
3658 (modules '((guix build utils)))
3659 (snippet
3660 '(begin
3661 (for-each delete-file (find-files "vendor" "\\.a$"))))))
3662 (arguments
3663 (substitute-keyword-arguments (package-arguments librsvg)
3664 ((#:vendor-dir _ "vendor") "vendor")
3665 ((#:cargo-inputs _) '())
3666 ((#:cargo-development-inputs _) '())))
3667 (properties '((hidden? . #t)))))
3668
3669 (define-public librsvg-2.40
3670 ;; This is the last version implemented in C.
3671 (package
3672 (inherit librsvg)
3673 (version "2.40.21")
3674 (source (origin
3675 (method url-fetch)
3676 (uri (string-append "mirror://gnome/sources/librsvg/"
3677 (version-major+minor version)
3678 "/librsvg-" version ".tar.xz"))
3679 (sha256
3680 (base32
3681 "1fljkag2gr7c4k5mn798lgf9903xslz8h51bgvl89nnay42qjqpp"))))
3682 (build-system gnu-build-system)
3683 (arguments
3684 `(#:configure-flags (list "--disable-static")
3685 #:phases
3686 (modify-phases %standard-phases
3687 (add-before 'configure 'pre-configure
3688 (lambda* (#:key inputs #:allow-other-keys)
3689 (substitute* "gdk-pixbuf-loader/Makefile.in"
3690 ;; By default the gdk-pixbuf loader is installed under
3691 ;; gdk-pixbuf's prefix. Work around that.
3692 (("gdk_pixbuf_moduledir = .*$")
3693 (string-append "gdk_pixbuf_moduledir = "
3694 "$(prefix)/lib/gdk-pixbuf-2.0/2.10.0/"
3695 "loaders\n"))
3696 ;; Drop the 'loaders.cache' file, it's in gdk-pixbuf+svg.
3697 (("gdk_pixbuf_cache_file = .*$")
3698 "gdk_pixbuf_cache_file = $(TMPDIR)/loaders.cache\n"))
3699 #t))
3700 (add-before 'check 'remove-failing-tests
3701 (lambda _
3702 (with-directory-excursion "tests/fixtures/reftests"
3703 (for-each delete-file
3704 '(;; This test fails on i686:
3705 "svg1.1/masking-path-04-b.svg"
3706 ;; This test fails on armhf:
3707 "svg1.1/masking-mask-01-b.svg"
3708 ;; This test fails on aarch64:
3709 "bugs/777834-empty-text-children.svg"
3710
3711 ;; These two tests fail due to slightly different
3712 ;; text rendering (different kerning or similar),
3713 ;; nothing alarming.
3714 "bugs/340047.svg"
3715 "bugs/749415.svg"))))))))
3716 (native-inputs
3717 (list pkg-config
3718 `(,glib "bin") ; glib-mkenums, etc.
3719 gobject-introspection)) ; g-ir-compiler, etc.
3720 (inputs
3721 (list pango libcroco libxml2))
3722 (propagated-inputs
3723 ;; librsvg-2.0.pc refers to all of that.
3724 (list cairo gdk-pixbuf glib))
3725 (synopsis "Render SVG files using Cairo (ancient C version)")
3726 (properties '((hidden? . #t)))))
3727
3728 (define* (librsvg-for-system #:optional
3729 (system (or (%current-target-system)
3730 (%current-system))))
3731 ;; Since librsvg 2.50 depends on Rust, and Rust is only correctly supported
3732 ;; on x86_64 so far, use the ancient C version on other platforms (FIXME).
3733 (if (string-prefix? "x86_64-" system)
3734 librsvg
3735 librsvg-2.40))
3736
3737 (export librsvg-for-system)
3738
3739 (define-public libidl
3740 (package
3741 (name "libidl")
3742 (version "0.8.14")
3743 (source (origin
3744 (method url-fetch)
3745 (uri (string-append "mirror://gnome/sources/libIDL/"
3746 (version-major+minor version) "/"
3747 "libIDL-" version ".tar.bz2"))
3748 (sha256
3749 (base32
3750 "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5"))))
3751 (build-system gnu-build-system)
3752 (inputs (list glib))
3753 (native-inputs
3754 (list pkg-config flex bison))
3755 (home-page "http://freecode.com/projects/libidl")
3756 (synopsis "Create trees of CORBA Interface Definition Language files")
3757 (description "Libidl is a library for creating trees of CORBA Interface
3758 Definition Language (idl) files, which is a specification for defining
3759 portable interfaces. libidl was initially written for orbit (the orb from the
3760 GNOME project, and the primary means of libidl distribution). However, the
3761 functionality was designed to be as reusable and portable as possible.")
3762 (properties `((upstream-name . "libIDL")))
3763 (license license:lgpl2.0+)))
3764
3765
3766 (define-public orbit2
3767 (package
3768 (name "orbit2")
3769 (version "2.14.19")
3770 (source (origin
3771 (method url-fetch)
3772 (uri (let ((upstream-name "ORBit2"))
3773 (string-append "mirror://gnome/sources/" upstream-name "/"
3774 (version-major+minor version) "/"
3775 upstream-name "-" version ".tar.bz2")))
3776 (sha256
3777 (base32
3778 "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam"))))
3779 (build-system gnu-build-system)
3780 (arguments
3781 `(;; The "timeout-server" test hangs when run in parallel.
3782 #:parallel-tests? #f
3783 #:configure-flags
3784 '(;; We don't need static libraries, plus they don't build reproducibly
3785 ;; (non-deterministic ordering of .o files in the archive.)
3786 "--disable-static"
3787
3788 ;; The programmer kindly gives us a hook to turn off deprecation
3789 ;; warnings ...
3790 "DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3791 ;; ... which they then completly ignore !!
3792 #:phases
3793 (modify-phases %standard-phases
3794 (add-after 'unpack 'fix-parallel-build
3795 ;; Parallel build fails because of a failed dependency,
3796 ;; https://bugzilla.gnome.org/show_bug.cgi?id=732274
3797 (lambda _
3798 (substitute* "src/services/name/Makefile.am"
3799 (("orbit_name_server_2_DEPENDENCIES = \\$(DEPS) CosNaming.h")
3800 "orbit_name_server_2_DEPENDENCIES = \
3801 $(DEPS) CosNaming.h libname-server-2.a"))))
3802 (add-before 'configure 'ignore-deprecations
3803 (lambda _
3804 (substitute* "linc2/src/Makefile.in"
3805 (("-DG_DISABLE_DEPRECATED")
3806 "-DGLIB_DISABLE_DEPRECATION_WARNINGS")))))))
3807 (inputs (list glib libidl))
3808 (native-inputs
3809 (list pkg-config))
3810 (home-page "https://projects.gnome.org/orbit2/")
3811 (synopsis "CORBA 2.4-compliant Object Request Broker")
3812 (description "ORBit2 is a CORBA 2.4-compliant Object Request Broker (orb)
3813 featuring mature C, C++ and Python bindings.")
3814 ;; Licence notice is unclear. The Web page simply say "GPL" without giving
3815 ;; a version. SOME of the code files have licence notices for GPLv2+.
3816 ;; The tarball contains files of the text of GPLv2 and LGPLv2.
3817 (license license:gpl2+)
3818 (properties `((upstream-name . "ORBit2")))))
3819
3820
3821 (define-public libbonobo
3822 (package
3823 (name "libbonobo")
3824 (version "2.32.1")
3825 (source (origin
3826 (method url-fetch)
3827 (uri (string-append "mirror://gnome/sources/" name "/"
3828 (version-major+minor version)
3829 "/" name "-" version ".tar.bz2"))
3830 (sha256
3831 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i"))
3832 (patches (search-patches
3833 "libbonobo-activation-test-race.patch"))))
3834 (build-system gnu-build-system)
3835 (arguments
3836 ;; The programmer kindly gives us a hook to turn off deprecation warnings ...
3837 `(#:configure-flags
3838 '("DISABLE_DEPRECATED_CFLAGS=-DGLIB_DISABLE_DEPRECATION_WARNINGS")
3839 ;; ... which they then completly ignore !!
3840 #:phases
3841 (modify-phases %standard-phases
3842 (add-before 'configure 'ignore-deprecations
3843 (lambda _
3844 (substitute* "activation-server/Makefile.in"
3845 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3846 #t)))
3847
3848 ;; There's apparently a race condition between the server stub
3849 ;; generation and linking of the example under 'samples/echo' that can
3850 ;; lead do undefined references when building in parallel, as reported
3851 ;; at <https://forums.gentoo.org/viewtopic-t-223376-start-550.html>.
3852 ;; Thus, disable parallel builds.
3853 #:parallel-build? #f))
3854 (inputs (list popt libxml2))
3855 ;; The following are Required by the .pc file
3856 (propagated-inputs
3857 (list glib orbit2))
3858 (native-inputs
3859 (list intltool
3860 pkg-config
3861 `(,glib "bin") ; for glib-genmarshal, etc.
3862 flex
3863 bison))
3864 (home-page "https://developer.gnome.org/libbonobo/")
3865 (synopsis "Framework for creating reusable components for use in GNOME applications")
3866 (description "Bonobo is a framework for creating reusable components for
3867 use in GNOME applications, built on top of CORBA.")
3868 ;; Licence not explicitly stated. Source files contain no licence notices.
3869 ;; Tarball contains text of both GPLv2 and LGPLv2
3870 ;; GPLv2 covers both conditions
3871 (license license:gpl2+)))
3872
3873
3874 (define-public gconf
3875 (package
3876 (name "gconf")
3877 (version "3.2.6")
3878 (source (origin
3879 (method url-fetch)
3880 (uri
3881 (let ((upstream-name "GConf"))
3882 (string-append "mirror://gnome/sources/" upstream-name "/"
3883 (version-major+minor version) "/"
3884 upstream-name "-" version ".tar.xz")))
3885 (sha256
3886 (base32 "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"))))
3887 (build-system gnu-build-system)
3888 (inputs (list dbus-glib libxml2))
3889 (propagated-inputs (list glib ; referred to in the .pc file
3890 orbit2))
3891 (native-inputs
3892 (list intltool
3893 `(,glib "bin") ; for glib-genmarshal, etc.
3894 pkg-config))
3895 (home-page "https://projects.gnome.org/gconf/")
3896 (synopsis "Store application preferences")
3897 (description "Gconf is a system for storing application preferences. It
3898 is intended for user preferences; not arbitrary data storage.")
3899 (license license:lgpl2.0+)
3900 (properties '((upstream-name . "GConf")))))
3901
3902
3903 (define-public gnome-mime-data
3904 (package
3905 (name "gnome-mime-data")
3906 (version "2.18.0")
3907 (source (origin
3908 (method url-fetch)
3909 (uri (string-append "mirror://gnome/sources/" name "/"
3910 (version-major+minor version) "/"
3911 name "-" version ".tar.bz2"))
3912 (sha256
3913 (base32
3914 "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p"))))
3915 (build-system gnu-build-system)
3916 (native-inputs
3917 (list perl intltool))
3918 (arguments
3919 '(#:phases (modify-phases %standard-phases
3920 (add-after 'configure 'use-our-intltool
3921 (lambda _
3922 ;; Do not use the bundled intltool commands, which lack
3923 ;; the "dotless @INC" fixes of our 'intltool' package.
3924 (substitute* (find-files "." "^Makefile$")
3925 (("^INTLTOOL_(EXTRACT|UPDATE|MERGE) = .*$" _ tool)
3926 (string-append "INTLTOOL_" tool " = intltool-"
3927 (string-downcase tool) "\n")))
3928 #t)))))
3929 (home-page "https://www.gnome.org")
3930 (synopsis "Base MIME and Application database for GNOME")
3931 (description "GNOME Mime Data is a module which contains the base MIME
3932 and Application database for GNOME. The data stored by this module is
3933 designed to be accessed through the MIME functions in GnomeVFS.")
3934 (license license:gpl2+)))
3935
3936
3937 (define-public gnome-vfs
3938 (package
3939 (name "gnome-vfs")
3940 (version "2.24.4")
3941 (source (origin
3942 (method url-fetch)
3943 (uri (string-append "mirror://gnome/sources/" name "/"
3944 (version-major+minor version) "/"
3945 name "-" version ".tar.bz2"))
3946 (sha256
3947 (base32
3948 "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2"))))
3949 (build-system gnu-build-system)
3950 (arguments
3951 `(#:phases
3952 (modify-phases %standard-phases
3953 (add-before 'configure 'ignore-deprecations
3954 (lambda _
3955 (substitute* '("libgnomevfs/Makefile.in"
3956 "daemon/Makefile.in")
3957 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3958 #t))
3959 (add-before 'configure 'patch-test-async-cancel-to-never-fail
3960 (lambda _
3961 (substitute* "test/test-async-cancel.c"
3962 (("EXIT_FAILURE") "77"))
3963 #t)))))
3964 (inputs (list libxml2 dbus-glib gconf gnome-mime-data zlib))
3965 (native-inputs
3966 (list `(,glib "bin") ; for glib-mkenums, etc.
3967 intltool pkg-config))
3968 (home-page "https://developer.gnome.org/gnome-vfs/")
3969 (synopsis "Access files and folders in GNOME applications")
3970 (description
3971 "GnomeVFS is the core library used to access files and folders in GNOME
3972 applications. It provides a file system abstraction which allows applications
3973 to access local and remote files with a single consistent API.")
3974 (license license:lgpl2.0+)))
3975
3976
3977
3978 (define-public libgnome
3979 (package
3980 (name "libgnome")
3981 (version "2.32.1")
3982 (source (origin
3983 (method url-fetch)
3984 (uri (string-append "mirror://gnome/sources/" name "/"
3985 (version-major+minor version) "/"
3986 name "-" version ".tar.bz2"))
3987 (sha256
3988 (base32
3989 "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj"))
3990 (patches (search-patches "libgnome-encoding.patch"))))
3991 (build-system gnu-build-system)
3992 (arguments
3993 `(#:phases
3994 (modify-phases %standard-phases
3995 (add-before 'configure 'enable-deprecated
3996 (lambda _
3997 (substitute* "libgnome/Makefile.in"
3998 (("-DG_DISABLE_DEPRECATED") "-DGLIB_DISABLE_DEPRECATION_WARNINGS"))
3999 #t)))))
4000 (inputs (list libxml2))
4001 (native-inputs
4002 (list `(,glib "bin") ; for glib-mkenums, etc.
4003 intltool pkg-config))
4004 ;; The following are listed as Required in the .pc file
4005 ;; (except for libcanberra -- which seems to be oversight on the part
4006 ;; of the upstream developers -- anything that links against libgnome,
4007 ;; must also link against libcanberra
4008 (propagated-inputs
4009 (list libcanberra libbonobo gconf gnome-vfs popt)) ;gnome-program.h includes popt.h
4010 (home-page "https://developer.gnome.org/libgnome/")
4011 (synopsis "Useful routines for building applications")
4012 (description "The libgnome library provides a number of useful routines
4013 for building modern applications, including session management, activation of
4014 files and URIs, and displaying help.")
4015 (license license:lgpl2.0+)))
4016
4017
4018 (define-public libart-lgpl
4019 (package
4020 (name "libart-lgpl")
4021 (version "2.3.21")
4022 (source (origin
4023 (method url-fetch)
4024 (uri (let ((upstream-name "libart_lgpl"))
4025 (string-append "mirror://gnome/sources/" upstream-name "/"
4026 (version-major+minor version) "/"
4027 upstream-name "-" version ".tar.bz2")))
4028 (sha256
4029 (base32
4030 "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx"))))
4031 (build-system gnu-build-system)
4032 (native-inputs
4033 (list pkg-config))
4034 (home-page "https://people.gnome.org/~mathieu/libart")
4035 (synopsis "2D drawing library")
4036 (description "Libart is a 2D drawing library intended as a
4037 high-quality vector-based 2D library with antialiasing and alpha composition.")
4038 (license license:lgpl2.0+)))
4039
4040
4041
4042 (define-public libgnomecanvas
4043 (package
4044 (name "libgnomecanvas")
4045 (version "2.30.3")
4046 (source (origin
4047 (method url-fetch)
4048 (uri (string-append "mirror://gnome/sources/" name "/"
4049 (version-major+minor version) "/"
4050 name "-" version ".tar.gz"))
4051 (sha256
4052 (base32
4053 "1nhnq4lfkk8ljkdafscwaggx0h95mq0rxnd7zgqyq0xb6kkqbjm8"))))
4054 (build-system gnu-build-system)
4055 ;; Mentioned as Required in the .pc file
4056 (propagated-inputs (list libart-lgpl gtk+-2))
4057 (native-inputs
4058 (list intltool
4059 `(,glib "bin") ; for glib-genmarshal, etc.
4060 pkg-config))
4061 (home-page "https://developer.gnome.org/libgnomecanvas/")
4062 (synopsis "Flexible widget for creating interactive structured graphics")
4063 (description "The GnomeCanvas widget provides a flexible widget for
4064 creating interactive structured graphics.")
4065 (license license:lgpl2.0+)))
4066
4067 (define-public libgnomecanvasmm
4068 (package
4069 (name "libgnomecanvasmm")
4070 (version "2.26.0")
4071 (source (origin
4072 (method url-fetch)
4073 (uri (string-append "mirror://gnome/sources/" name "/"
4074 (version-major+minor version) "/"
4075 name "-" version ".tar.bz2"))
4076 (sha256
4077 (base32
4078 "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
4079 (build-system gnu-build-system)
4080 (propagated-inputs (list libgnomecanvas))
4081 (native-inputs
4082 (list gtkmm-2 pkg-config))
4083 (home-page "https://gtkmm.org")
4084 (synopsis "C++ bindings to the GNOME Canvas library")
4085 (description "C++ bindings to the GNOME Canvas library.")
4086 (license license:lgpl2.0+)))
4087
4088 (define-public libgnomeui
4089 (package
4090 (name "libgnomeui")
4091 (version "2.24.5")
4092 (source (origin
4093 (method url-fetch)
4094 (uri (string-append "mirror://gnome/sources/" name "/"
4095 (version-major+minor version) "/"
4096 name "-" version ".tar.bz2"))
4097 (patches (search-patches "libgnomeui-utf8.patch"))
4098 (sha256
4099 (base32
4100 "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf"))))
4101 (build-system gnu-build-system)
4102 ;; Mentioned as Required in the .pc file
4103 (propagated-inputs (list libbonoboui libgnome libgnomecanvas
4104 libgnome-keyring))
4105 (inputs (list libjpeg-turbo popt libbonobo libxml2 libglade))
4106 (native-inputs
4107 (list `(,glib "bin") ; for glib-mkenums, etc.
4108 intltool pkg-config))
4109 (home-page "https://developer.gnome.org/libgnomeui/")
4110 (synopsis "Additional widgets for applications")
4111 (description "The libgnomeui library provides additional widgets for
4112 applications. Many of the widgets from libgnomeui have already been
4113 ported to GTK+.")
4114 (license license:lgpl2.0+)))
4115
4116 (define-public libglade
4117 (package
4118 (name "libglade")
4119 (version "2.6.4")
4120 (source (origin
4121 (method url-fetch)
4122 (uri (string-append "mirror://gnome/sources/" name "/"
4123 (version-major+minor version) "/"
4124 name "-" version ".tar.bz2"))
4125 (sha256
4126 (base32
4127 "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4"))))
4128 (build-system gnu-build-system)
4129 (inputs
4130 (list python)) ;; needed for the optional libglade-convert program
4131 (propagated-inputs
4132 (list gtk+-2 libxml2)) ; required by libglade-2.0.pc
4133 (native-inputs
4134 (list pkg-config))
4135 (home-page "https://developer.gnome.org/libglade")
4136 (synopsis "Load glade interfaces and access the glade built widgets")
4137 (description "Libglade is a library that provides interfaces for loading
4138 graphical interfaces described in glade files and for accessing the
4139 widgets built in the loading process.")
4140 (license license:gpl2+))) ; This is correct. GPL not LGPL
4141
4142 (define-public libbonoboui
4143 (package
4144 (name "libbonoboui")
4145 (version "2.24.5")
4146 (source (origin
4147 (method url-fetch)
4148 (uri (string-append "mirror://gnome/sources/" name "/"
4149 (version-major+minor version) "/"
4150 name "-" version ".tar.bz2"))
4151 (sha256
4152 (base32
4153 "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs"))))
4154 (build-system gnu-build-system)
4155 (arguments
4156 `(#:phases
4157 (modify-phases %standard-phases
4158 (add-before 'check 'start-xserver
4159 (lambda* (#:key inputs #:allow-other-keys)
4160 (let ((xorg-server (assoc-ref inputs "xorg-server"))
4161 (disp ":1"))
4162
4163 (setenv "HOME" (getcwd))
4164 (setenv "DISPLAY" disp)
4165 ;; There must be a running X server and make check doesn't start one.
4166 ;; Therefore we must do it.
4167 (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp)))))))))
4168 ;; Mentioned as Required by the .pc file
4169 (propagated-inputs (list libxml2))
4170 (inputs
4171 (list popt pangox-compat libgnome libgnomecanvas libglade))
4172 (native-inputs
4173 (list `(,glib "bin") ; for glib-genmarshal, etc.
4174 intltool
4175 xorg-server-for-tests ; For running the tests
4176 pkg-config))
4177 (home-page "https://developer.gnome.org/libbonoboui/")
4178 (synopsis "Some user interface controls using Bonobo")
4179 (description "The Bonobo UI library provides a number of user interface
4180 controls using the Bonobo component framework.")
4181 (license license:lgpl2.0+)))
4182
4183 (define-public libwnck
4184 (package
4185 (name "libwnck")
4186 (version "40.1")
4187 (source (origin
4188 (method url-fetch)
4189 (uri (string-append "mirror://gnome/sources/" name "/"
4190 (version-major version) "/"
4191 name "-" version ".tar.xz"))
4192 (sha256
4193 (base32
4194 "04b63mh2i7kpq0iymx6fkyzdx8laymw3da2s0wsbwgzg2jhly4q3"))))
4195 (build-system meson-build-system)
4196 (native-inputs
4197 (list gettext-minimal
4198 `(,glib "bin") ;for glib-mkenums
4199 gobject-introspection ;for g-ir-scanner
4200 pkg-config))
4201 (propagated-inputs
4202 (list gtk+
4203 libxres
4204 startup-notification))
4205 (home-page "https://gitlab.gnome.org/GNOME/libwnck/")
4206 (synopsis "Window Navigator Construction Kit")
4207 (description
4208 "Libwnck is the Window Navigator Construction Kit, a library for use in
4209 writing pagers, tasklists, and more generally applications that are dealing
4210 with window management. It tries hard to respect the Extended Window Manager
4211 Hints specification (EWMH).")
4212 (license license:lgpl2.0+)))
4213
4214 ;; stable version for gtk2, required by xfwm4.
4215 (define-public libwnck-2
4216 (package (inherit libwnck)
4217 (name "libwnck")
4218 (version "2.30.7")
4219 (source (origin
4220 (method url-fetch)
4221 (uri (string-append "mirror://gnome/sources/" name "/"
4222 (version-major+minor version) "/"
4223 name "-" version ".tar.xz"))
4224 (sha256
4225 (base32
4226 "15713yl0f8f3p99jzqqfmbicrdswd3vwpx7r3bkf1bgh6d9lvs4b"))))
4227 (build-system gnu-build-system)
4228 (native-inputs
4229 (list pkg-config intltool))
4230 (propagated-inputs
4231 (list gtk+-2 libxres startup-notification))))
4232
4233 (define-public goffice
4234 (package
4235 (name "goffice")
4236 (version "0.10.52")
4237 (source
4238 (origin
4239 (method url-fetch)
4240 (uri (string-append "mirror://gnome/sources/goffice/"
4241 (version-major+minor version) "/"
4242 "goffice-" version ".tar.xz"))
4243 (sha256
4244 (base32 "0344k0ffndd79as3c4nfq3mia7mrds6aq2jg76drdw3h8gcyzfb0"))))
4245 (build-system gnu-build-system)
4246 (outputs '("out"
4247 "doc")) ; 4.0 MiB of gtk-doc
4248 (arguments
4249 '(#:configure-flags (list (string-append "--with-html-dir="
4250 (assoc-ref %outputs "doc")
4251 "/share/gtk-doc/html"))))
4252 (inputs
4253 (list gtk+ libgsf librsvg libxslt libxml2))
4254 (native-inputs
4255 (list intltool `(,glib "bin") pkg-config))
4256 (home-page "https://developer.gnome.org/goffice/")
4257 (synopsis "Document-centric objects and utilities")
4258 (description "A GLib/GTK+ set of document-centric objects and utilities.")
4259 (license
4260 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4261 ;; Note: NOT LGPL
4262 (list license:gpl2 license:gpl3))))
4263
4264 (define-public goffice-0.8
4265 (package (inherit goffice)
4266 (version "0.8.17")
4267 (source (origin
4268 (method url-fetch)
4269 (uri (string-append "mirror://gnome/sources/" (package-name goffice) "/"
4270 (version-major+minor version) "/"
4271 (package-name goffice) "-" version ".tar.xz"))
4272 (sha256
4273 (base32 "05fvzbs5bin05bbsr4dp79aiva3lnq0a3a40zq55i13vnsz70l0n"))))
4274 (arguments
4275 `(#:phases
4276 (modify-phases %standard-phases
4277 (add-after 'unpack 'fix-pcre-check
4278 (lambda _
4279 ;; Only glib.h can be included directly. See
4280 ;; https://bugzilla.gnome.org/show_bug.cgi?id=670316
4281 (substitute* "configure"
4282 (("glib/gregex\\.h") "glib.h")) #t)))
4283
4284 ,@(package-arguments goffice)))
4285 (propagated-inputs
4286 ;; libgoffice-0.8.pc mentions libgsf-1
4287 (list libgsf))
4288 (inputs
4289 `(("gtk" ,gtk+-2)
4290 ,@(alist-delete "gtk" (package-inputs goffice))))))
4291
4292 (define-public gnumeric
4293 (package
4294 (name "gnumeric")
4295 (version "1.12.52")
4296 (source (origin
4297 (method url-fetch)
4298 (uri (string-append "mirror://gnome/sources/gnumeric/"
4299 (version-major+minor version) "/"
4300 "gnumeric-" version ".tar.xz"))
4301 (sha256
4302 (base32
4303 "0fw201j0sks95wgvns3vydgprhwf6z4v4xb2a0ldi892k8277kvk"))))
4304 (build-system glib-or-gtk-build-system)
4305 (arguments
4306 `(;; The gnumeric developers don't worry much about failing tests.
4307 ;; See https://bugzilla.gnome.org/show_bug.cgi?id=732387
4308 #:tests? #f
4309 #:phases
4310 (modify-phases %standard-phases
4311 (add-before
4312 'configure 'pre-conf
4313 (lambda* (#:key outputs #:allow-other-keys)
4314 ;; Make install tries to write into the directory of goffice
4315 ;; I am informed that this only affects the possibility to embed a
4316 ;; spreadsheet inside an Abiword document. So presumably when we
4317 ;; package Abiword we'll have to refer it to this directory.
4318 (substitute* "configure"
4319 (("^GOFFICE_PLUGINS_DIR=.*")
4320 (string-append "GOFFICE_PLUGINS_DIR="
4321 (assoc-ref outputs "out")
4322 "/goffice/plugins"))))))))
4323 (inputs
4324 (list glib
4325 gtk+
4326 goffice
4327 libgsf
4328 librsvg
4329 libxml2
4330 libxslt
4331 python
4332 python-pygobject
4333 zlib))
4334 (native-inputs
4335 (list bison
4336 docbook-xml
4337 `(,glib "bin")
4338 intltool
4339 itstool
4340 pkg-config))
4341 (home-page "http://www.gnumeric.org")
4342 (synopsis "Spreadsheet application")
4343 (description
4344 "GNUmeric is a GNU spreadsheet application, running under GNOME. It is
4345 interoperable with other spreadsheet applications. It has a vast array of
4346 features beyond typical spreadsheet functionality, such as support for linear
4347 and non-linear solvers, statistical analysis, and telecommunication
4348 engineering.")
4349 (license
4350 ;; Dual licensed under GPLv2 or GPLv3 (both without "or later")
4351 (list license:gpl2 license:gpl3))))
4352
4353 (define-public drawing
4354 (package
4355 (name "drawing")
4356 (version "1.0.1")
4357 (source
4358 (origin
4359 (method git-fetch)
4360 (uri (git-reference
4361 (url "https://github.com/maoschanz/drawing")
4362 (commit version)))
4363 (file-name (git-file-name name version))
4364 (sha256
4365 (base32 "12xb522i7dxshw2ig12ald750fynlxan1lwz6gsxfa9p4ap2qypn"))))
4366 (build-system meson-build-system)
4367 (arguments
4368 (list
4369 #:glib-or-gtk? #t
4370 #:imported-modules `(,@%meson-build-system-modules
4371 (guix build python-build-system))
4372 #:modules '((guix build meson-build-system)
4373 ((guix build python-build-system) #:prefix python:)
4374 (guix build utils))
4375 #:phases
4376 #~(modify-phases %standard-phases
4377 (add-after 'unpack 'disable-postinstall-script
4378 (lambda _
4379 (setenv "DESTDIR" "/")))
4380 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
4381 (lambda* (#:key inputs outputs #:allow-other-keys)
4382 (wrap-program (search-input-file outputs "bin/drawing")
4383 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
4384 ,(python:site-packages inputs outputs)))
4385 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
4386 (native-inputs
4387 (list desktop-file-utils
4388 gettext-minimal
4389 `(,glib "bin")
4390 gobject-introspection
4391 itstool
4392 pkg-config
4393 python))
4394 (inputs
4395 (list bash-minimal
4396 librsvg
4397 gsettings-desktop-schemas
4398 gtk+
4399 pango
4400 python
4401 python-pycairo
4402 python-pygobject))
4403 (home-page "https://maoschanz.github.io/drawing/")
4404 (synopsis "Basic image editor for GNOME")
4405 (description
4406 "Drawing is a basic image editor aiming at the GNOME desktop.")
4407 (license license:gpl3+)))
4408
4409 (define-public seahorse
4410 (package
4411 (name "seahorse")
4412 (version "42.0")
4413 (source
4414 (origin
4415 (method url-fetch)
4416 (uri (string-append "mirror://gnome/sources/" name "/"
4417 (version-major version) "/" name "-"
4418 version ".tar.xz"))
4419 (sha256
4420 (base32 "0c6nafhn4gcjwd1xbs5bjq9785114fc0pbhxbwp7wynyz3msq365"))))
4421 (build-system meson-build-system)
4422 (arguments
4423 '(#:glib-or-gtk? #t
4424 #:phases
4425 (modify-phases %standard-phases
4426 (add-after 'unpack 'skip-gtk-update-icon-cache
4427 ;; Don't create 'icon-theme.cache'.
4428 (lambda _
4429 (substitute* "build-aux/meson_post_install.py"
4430 (("gtk-update-icon-cache") "true"))))
4431 (add-before 'check 'pre-check
4432 (lambda _
4433 ;; Tests require a writable HOME.
4434 (setenv "HOME" (getcwd)))))))
4435 (inputs
4436 (list gtk+
4437 gcr
4438 gnupg
4439 gpgme
4440 openldap
4441 openssh
4442 avahi
4443 libhandy
4444 libpwquality
4445 libsecret
4446 libsoup-minimal-2))
4447 (native-inputs
4448 (list gettext-minimal
4449 `(,glib "bin")
4450 itstool
4451 pkg-config
4452 python
4453 vala
4454 libxml2))
4455 (home-page "https://wiki.gnome.org/Apps/Seahorse")
4456 (synopsis "Manage encryption keys and passwords in the GNOME keyring")
4457 (description
4458 "Seahorse is a GNOME application for managing encryption keys and
4459 passwords in the GNOME keyring.")
4460 (license license:gpl2+)))
4461
4462 (define-public vala
4463 (package
4464 (name "vala")
4465 (version "0.54.2")
4466 (source (origin
4467 (method url-fetch)
4468 (uri (string-append "mirror://gnome/sources/vala/"
4469 (version-major+minor version) "/"
4470 "vala-" version ".tar.xz"))
4471 (sha256
4472 (base32
4473 "048k5c6c6y7jyb961krnrb7m0kghr0yrkpnfx3j5ckbx652yfkc8"))))
4474 (build-system glib-or-gtk-build-system)
4475 (arguments
4476 '(#:configure-flags '("--enable-coverage")
4477 #:phases
4478 (modify-phases %standard-phases
4479 (add-after 'unpack 'patch-docbook-xml
4480 (lambda* (#:key inputs #:allow-other-keys)
4481 (with-directory-excursion "doc/manual"
4482 (substitute* '("manual.xml" "version.xml.in")
4483 (("http://www.oasis-open.org/docbook/xml/4.4/")
4484 (string-append (assoc-ref inputs "docbook-xml")
4485 "/xml/dtd/docbook/"))))))
4486 (add-before 'check 'pre-check
4487 (lambda _
4488 (setenv "CC" "gcc")
4489 (substitute* "valadoc/tests/libvaladoc\
4490 /tests-extra-environment.sh"
4491 (("export PKG_CONFIG_PATH=" m)
4492 (string-append m "$PKG_CONFIG_PATH:"))))))))
4493 (native-inputs
4494 `(("bison" ,bison)
4495 ("dbus" ,dbus) ; for dbus tests
4496 ("docbook-xml" ,docbook-xml-4.4)
4497 ("docbook-xsl" ,docbook-xsl)
4498 ("flex" ,flex)
4499 ("gobject-introspection" ,gobject-introspection) ; for gir tests
4500 ("help2man" ,help2man)
4501 ("perl" ,perl)
4502 ("pkg-config" ,pkg-config)
4503 ("xsltproc" ,libxslt)))
4504 (propagated-inputs
4505 `(("glib" ,glib) ; required by libvala-0.40.pc
4506 ("libgvc" ,graphviz)))
4507 (home-page "https://wiki.gnome.org/Projects/Vala/")
4508 (synopsis "Compiler using the GObject type system")
4509 (description "Vala is a programming language using modern high level
4510 abstractions without imposing additional runtime requirements and without using
4511 a different ABI compared to applications and libraries written in C. Vala uses
4512 the GObject type system and has additional code generation routines that make
4513 targeting the GNOME stack simple.")
4514 (license license:lgpl2.1+)))
4515
4516 (define-public vala-next
4517 (package
4518 (inherit vala)
4519 (version "0.56.3")
4520 (source (origin
4521 (method url-fetch)
4522 (uri (string-append "mirror://gnome/sources/vala/"
4523 (version-major+minor version) "/"
4524 "vala-" version ".tar.xz"))
4525 (sha256
4526 (base32
4527 "1gwrnr0d0bqkh6m4bgz39mh3pcswcj43hyijlwgwp2bvpwhn41p1"))))
4528 (arguments
4529 (list
4530 #:configure-flags #~(list "CC=gcc" "--enable-coverage")
4531 #:phases
4532 #~(modify-phases %standard-phases
4533 (add-after 'unpack 'use-gcc-by-default
4534 (lambda _
4535 (substitute* "codegen/valaccodecompiler.c"
4536 (("cc_command = \"cc\"")
4537 "cc_command = \"gcc\""))))
4538 (add-after 'unpack 'patch-docbook-xml
4539 (lambda* (#:key inputs #:allow-other-keys)
4540 (with-directory-excursion "doc/manual"
4541 (substitute* '("manual.xml" "version.xml.in")
4542 (("http://www.oasis-open.org/docbook/xml/4.4/")
4543 (search-input-directory inputs "xml/dtd/docbook"))))))
4544 (add-before 'check 'pre-check
4545 (lambda _
4546 (substitute* "valadoc/tests/libvaladoc/tests-extra-environment.sh"
4547 (("export PKG_CONFIG_PATH=" m)
4548 (string-append m "$PKG_CONFIG_PATH:")))))
4549 ;; Wrapping the binaries breaks vala's behavior adaptations based on
4550 ;; the file name of the program executed (vala: compile and execute,
4551 ;; valac: compile into a binary).
4552 (delete 'glib-or-gtk-wrap))))))
4553
4554 ;;; An older variant kept to build libsoup-minimal-2.
4555 (define-public vala-0.52
4556 (package/inherit vala
4557 (version "0.52.0")
4558 (source (origin
4559 (method url-fetch)
4560 (uri (string-append "mirror://gnome/sources/vala/"
4561 (version-major+minor version) "/"
4562 "vala-" version ".tar.xz"))
4563 (sha256
4564 (base32
4565 "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))))
4566
4567 (define-public vte
4568 (package
4569 (name "vte")
4570 (version "0.69.99")
4571 (source (origin
4572 (method url-fetch)
4573 (uri (string-append "mirror://gnome/sources/vte/"
4574 (version-major+minor version) "/"
4575 "vte-" version ".tar.xz"))
4576 (sha256
4577 (base32
4578 "1v3i38yrjhc48nvs1g333s3q709mq824qq0k2fnsmrrwv15c3cg9"))))
4579 (build-system meson-build-system)
4580 (arguments
4581 (list #:configure-flags #~(list "-Dvapi=true"
4582 "-D_systemd=false")))
4583 (native-inputs
4584 (list pkg-config
4585 gettext-minimal
4586 vala
4587 gobject-introspection
4588 `(,glib "bin") ; for glib-genmarshal, etc.
4589 gperf
4590 python
4591 libxml2))
4592 (propagated-inputs
4593 (list gtk+ ; required by vte-2.91.pc
4594 gnutls ; ditto
4595 pcre2)) ; ditto
4596 (home-page "https://www.gnome.org/")
4597 (synopsis "Virtual Terminal Emulator")
4598 (description
4599 "VTE is a library (libvte) implementing a terminal emulator widget for
4600 GTK+, and a minimal sample application (vte) using that. Vte is mainly used in
4601 gnome-terminal, but can also be used to embed a console/terminal in games,
4602 editors, IDEs, etc.")
4603 (license license:lgpl2.1+)))
4604
4605 (define-public vte-ng
4606 (package
4607 (inherit vte)
4608 (name "vte-ng")
4609 (version "0.59.0")
4610 (home-page "https://github.com/thestinger/vte-ng")
4611 (source (origin
4612 (method git-fetch)
4613 (uri (git-reference (url home-page) (commit version)))
4614 (file-name (git-file-name name version))
4615 (sha256
4616 (base32
4617 "03ffhjc0fq9p25y1b2c0a51jn7y2bc0acxsgymhcb3pyijc8ykjm"))))
4618 (build-system meson-build-system)
4619 (arguments
4620 (list #:configure-flags #~(list "-Ddocs=false")))
4621 (synopsis "Enhanced VTE terminal widget")
4622 (description
4623 "VTE is a library (libvte) implementing a terminal emulator widget for
4624 GTK+, this fork provides additional functions exposed for keyboard text
4625 selection and URL hints.")))
4626
4627 ;; Stable version for gtk2, required by gnurobots and lxterminal as of 2020-07.
4628 (define-public vte/gtk+-2
4629 (package (inherit vte)
4630 (name "vte")
4631 (version "0.28.2")
4632 (source (origin
4633 (method url-fetch)
4634 (uri (string-append "mirror://gnome/sources/" name "/"
4635 (version-major+minor version) "/"
4636 name "-" version ".tar.xz"))
4637 (sha256
4638 (base32
4639 "1bmhahkf8wdsra9whd3k5l5z4rv7r58ksr8mshzajgq2ma0hpkw6"))
4640 (patches (search-patches
4641 "vte-CVE-2012-2738-pt1.patch"
4642 "vte-CVE-2012-2738-pt2.patch"))))
4643 (build-system gnu-build-system)
4644 (arguments
4645 '(#:configure-flags '("--disable-python")))
4646 (native-inputs
4647 (list pkg-config intltool
4648 `(,glib "bin"))) ; for glib-genmarshal, etc.
4649 (propagated-inputs
4650 (list gtk+-2 ; required by libvte.pc
4651 ncurses)))) ; required by libvte.la
4652
4653 (define-public vinagre
4654 (package
4655 (name "vinagre")
4656 (version "3.22.0")
4657 (source (origin
4658 (method url-fetch)
4659 (uri (string-append "mirror://gnome/sources/" name "/"
4660 (version-major+minor version) "/"
4661 name "-" version ".tar.xz"))
4662 (patches (search-patches "vinagre-newer-freerdp.patch"
4663 "vinagre-newer-rdp-parameters.patch"))
4664 (sha256
4665 (base32
4666 "10jya3jyrm18nbw3v410gbkc7677bqamax44pzgd3j15randn76d"))))
4667 (build-system glib-or-gtk-build-system)
4668 (arguments
4669 ;; Disable -Werror and such, to avoid build failures on compilation
4670 ;; warnings.
4671 '(#:configure-flags '("--enable-compile-warnings=minimum"
4672 "CFLAGS=-O2 -g -fcommon")
4673 #:phases
4674 (modify-phases %standard-phases
4675 (add-before 'install 'skip-gtk-update-icon-cache
4676 (lambda _
4677 ;; Don't create 'icon-theme.cache'
4678 (substitute* (find-files "." "^Makefile$")
4679 (("gtk-update-icon-cache") (which "true")))
4680 #t))
4681 (add-after 'unpack 'patch-configure
4682 (lambda _
4683 (substitute* "configure"
4684 (("freerdp") "freerdp2"))
4685 #t)))))
4686 (native-inputs
4687 `(("pkg-config" ,pkg-config)
4688 ("intltool" ,intltool)
4689 ("itstool" ,itstool)
4690 ("glib-bin" ,glib "bin"))) ;for glib-compile-schemas
4691 (inputs
4692 (list libxml2
4693 gtk-vnc
4694 gnome-keyring
4695 libsecret
4696 freerdp
4697 spice
4698 spice-gtk
4699 telepathy-glib
4700 vte))
4701 (home-page "https://wiki.gnome.org/Apps/Vinagre")
4702 (synopsis "Remote desktop viewer for GNOME")
4703 (description "Vinagre is a remote display client supporting the VNC, SPICE
4704 and RDP protocols.")
4705 (license license:gpl3+)))
4706
4707 (define-public dconf
4708 (package
4709 (name "dconf")
4710 (version "0.40.0")
4711 (source (origin
4712 (method url-fetch)
4713 (uri (string-append
4714 "mirror://gnome/sources/" name "/"
4715 (version-major+minor version) "/"
4716 name "-" version ".tar.xz"))
4717 (sha256
4718 (base32
4719 "0cs5nayg080y8pb9b7qccm1ni8wkicdmqp1jsgc22110r6j24zyg"))))
4720 (build-system meson-build-system)
4721 (propagated-inputs
4722 ;; In Requires of dconf.pc.
4723 (list glib))
4724 (inputs
4725 (list gtk+ dbus))
4726 (native-inputs
4727 `(("bash-completion" ,bash-completion)
4728 ("libxslt" ,libxslt) ;for xsltproc
4729 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
4730 ("docbook-xml" ,docbook-xml-4.2)
4731 ("docbook-xsl" ,docbook-xsl)
4732 ("glib:bin" ,glib "bin")
4733 ("gtk-doc" ,gtk-doc/stable)
4734 ("pkg-config" ,pkg-config)
4735 ("python" ,python)
4736 ("vala" ,vala)))
4737 (arguments
4738 `(#:glib-or-gtk? #t
4739 #:configure-flags '("-Dgtk_doc=true")
4740 #:phases (modify-phases %standard-phases
4741 (add-after 'unpack 'increase-test-timeout
4742 (lambda _
4743 ;; On big-memory systems, the engine test may take
4744 ;; much longer than the default of 30 seconds.
4745 (substitute* "tests/meson.build"
4746 (("test\\(unit_test\\[0\\], exe" all)
4747 (string-append all ", timeout: 300"))))))))
4748 (home-page "https://developer.gnome.org/dconf/")
4749 (synopsis "Low-level GNOME configuration system")
4750 (description "Dconf is a low-level configuration system. Its main purpose
4751 is to provide a backend to GSettings on platforms that don't already have
4752 configuration storage systems.")
4753 (license license:lgpl2.1+)))
4754
4755 (define-public json-glib-minimal
4756 (package
4757 (name "json-glib-minimal")
4758 (version "1.6.2")
4759 (source (origin
4760 (method url-fetch)
4761 (uri (string-append "mirror://gnome/sources/json-glib/"
4762 (version-major+minor version)
4763 "/json-glib-" version ".tar.xz"))
4764 (sha256
4765 (base32
4766 "092g2dyy1hhl0ix9kp33wcab0pg1qicnsv0cj5ms9g9qs336cgd3"))))
4767 (build-system meson-build-system)
4768 (arguments
4769 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
4770 (native-inputs
4771 `(("gettext" ,gettext-minimal)
4772 ("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal
4773 ("pkg-config" ,pkg-config)))
4774 (inputs
4775 (list bash-minimal))
4776 (propagated-inputs
4777 (list glib)) ;according to json-glib-1.0.pc
4778 (home-page "https://wiki.gnome.org/Projects/JsonGlib")
4779 (synopsis "Glib and GObject implementation of JSON")
4780 (description "JSON-GLib is a library providing serialization and
4781 described by RFC 4627. It implements a full JSON parser and generator using
4782 GLib and GObject, and integrates JSON with GLib data types.")
4783 (license license:lgpl2.1+)))
4784
4785 (define-public json-glib
4786 (package/inherit json-glib-minimal
4787 (name "json-glib")
4788 (outputs (cons "doc" (package-outputs json-glib-minimal)))
4789 (arguments
4790 (substitute-keyword-arguments (package-arguments json-glib-minimal)
4791 ((#:configure-flags _)
4792 `(list "-Ddocs=true"
4793 "-Dman=true"
4794 ,@(if (%current-target-system)
4795 ;; If enabled, gtkdoc-scangobj will try to execute a
4796 ;; cross-compiled binary.
4797 '("-Dgtk_doc=disabled"
4798 ;; Trying to build introspection data when cross-compiling
4799 ;; causes errors during linking.
4800 "-Dintrospection=disabled")
4801 '())))
4802 ((#:phases phases '%standard-phases)
4803 `(modify-phases ,phases
4804 (add-after 'unpack 'patch-docbook
4805 (lambda* (#:key native-inputs inputs #:allow-other-keys)
4806 (with-directory-excursion "doc"
4807 (substitute* (find-files "." "\\.xml$")
4808 (("http://www.oasis-open.org/docbook/xml/4\\.3/")
4809 (string-append (assoc-ref (or native-inputs inputs)
4810 "docbook-xml")
4811 "/xml/dtd/docbook/")))
4812 (substitute* "meson.build"
4813 (("http://docbook.sourceforge.net/release/xsl/current/")
4814 (string-append (assoc-ref (or native-inputs inputs)
4815 "docbook-xsl")
4816 "/xml/xsl/docbook-xsl-1.79.2/"))))))
4817 ;; When cross-compiling, there are no docs to move.
4818 ,(if (%current-target-system)
4819 '(add-after 'install 'stub-docs
4820 (lambda* (#:key outputs #:allow-other-keys)
4821 ;; The daemon doesn't like empty output paths.
4822 (mkdir (assoc-ref outputs "doc"))))
4823 '(add-after 'install 'move-docs
4824 (lambda* (#:key outputs #:allow-other-keys)
4825 (let* ((out (assoc-ref outputs "out"))
4826 (doc (assoc-ref outputs "doc")))
4827 (mkdir-p (string-append doc "/share"))
4828 (rename-file
4829 (string-append out "/share/gtk-doc")
4830 (string-append doc "/share/gtk-doc"))))))))))
4831 (native-inputs
4832 (append
4833 `(("docbook-xml" ,docbook-xml-4.3)
4834 ("docbook-xsl" ,docbook-xsl)
4835 ("gobject-introspection" ,gobject-introspection)
4836 ("gtk-doc" ,gtk-doc)
4837 ("xsltproc" ,libxslt))
4838 (package-native-inputs json-glib-minimal)))))
4839
4840 (define-public libxklavier
4841 (package
4842 (name "libxklavier")
4843 (version "5.4")
4844 (source (origin
4845 ;; Note: There's no tarball at ftp.gnome.org for this version.
4846 (method git-fetch)
4847 (uri (git-reference
4848 (url "https://anongit.freedesktop.org/git/libxklavier")
4849 (commit (string-append "libxklavier-" version))))
4850 (sha256
4851 (base32
4852 "1w1x5mrgly2ldiw3q2r6y620zgd89gk7n90ja46775lhaswxzv7a"))
4853 (file-name (git-file-name name version))))
4854 (build-system gnu-build-system)
4855 (arguments
4856 '(#:configure-flags
4857 (list (string-append "--with-xkb-base="
4858 (assoc-ref %build-inputs "xkeyboard-config")
4859 "/share/X11/xkb")
4860 "--disable-xmodmap-support")))
4861 (native-inputs
4862 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
4863 ("gobject-introspection" ,gobject-introspection)
4864 ("pkg-config" ,pkg-config)
4865 ("gtk-doc" ,gtk-doc/stable)
4866 ("intltool" ,intltool)
4867 ("which" ,which)
4868 ("autoconf" ,autoconf)
4869 ("automake" ,automake)
4870 ("libtool" ,libtool)))
4871 (propagated-inputs
4872 ;; Required by libxklavier.pc.
4873 (list glib libxml2))
4874 (inputs
4875 (list iso-codes libxi libxkbfile xkbcomp xkeyboard-config))
4876 (home-page "https://www.freedesktop.org/wiki/Software/LibXklavier/")
4877 (synopsis "High-level API for X Keyboard Extension")
4878 (description
4879 "LibXklavier is a library providing high-level API for X Keyboard
4880 Extension known as XKB. This library is intended to support XFree86 and other
4881 commercial X servers. It is useful for creating XKB-related software (layout
4882 indicators etc).")
4883 (license license:lgpl2.0+)))
4884
4885 (define-public glib-networking
4886 (package
4887 (name "glib-networking")
4888 (version "2.70.0")
4889 (source (origin
4890 (method url-fetch)
4891 (uri (string-append "mirror://gnome/sources/glib-networking/"
4892 (version-major+minor version) "/"
4893 "glib-networking-" version ".tar.xz"))
4894 (sha256
4895 (base32
4896 "0dbg1na239mbavn4hknkax5sns9q2dbdnqw9wcpmhv58mzkhid36"))
4897 (patches
4898 (search-patches "glib-networking-gnutls-binding.patch"))))
4899 (build-system meson-build-system)
4900 (arguments
4901 (if (target-64bit?)
4902 '()
4903 (list #:phases
4904 #~(modify-phases %standard-phases
4905 (add-after 'unpack 'work-around-32-bit-time-t
4906 (lambda _
4907 (invoke "patch" "--force" "-p1" "-i"
4908 #$(local-file
4909 (search-patch
4910 "glib-networking-32-bit-time.patch")))))))))
4911 (native-inputs
4912 `(("pkg-config" ,pkg-config)
4913 ("gettext" ,gettext-minimal)))
4914 (inputs
4915 (list glib gnutls gsettings-desktop-schemas libproxy))
4916 (home-page "https://wiki.gnome.org/Projects/GLib")
4917 (synopsis "Network extensions for GLib")
4918 (description
4919 "Glib-networking contains the implementations of certain GLib networking
4920 features that cannot be implemented directly in GLib itself because of their
4921 dependencies. Currently it contains GnuTLS and OpenSSL-based implementations of
4922 GTlsBackend, a libproxy-based implementation of GProxyResolver,
4923 GLibproxyResolver, and a GNOME GProxyResolver that uses the proxy information
4924 from the GSettings schemas in gsettings-desktop-schemas.")
4925 (license license:lgpl2.1+)))
4926
4927 (define-public rest
4928 (package
4929 (name "rest")
4930 (version "0.8.1")
4931 (source (origin
4932 (method url-fetch)
4933 (uri (string-append "mirror://gnome/sources/rest/"
4934 (version-major+minor version) "/"
4935 name "-" version ".tar.xz"))
4936 (sha256
4937 (base32
4938 "1j81bgqmd55s5lxyaxcplym9n6xywcs1cm9wmvafsg2xiv9sl4q5"))))
4939 (build-system gnu-build-system)
4940 (arguments
4941 '(#:tests? #f ; tests require internet connection
4942 #:configure-flags
4943 '("--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt")))
4944 (native-inputs
4945 `(("glib-mkenums" ,glib "bin")
4946 ("gobject-introspection" ,gobject-introspection)
4947 ("pkg-config" ,pkg-config)))
4948 (propagated-inputs
4949 ;; rest-0.7.pc refers to all these.
4950 `(("glib" ,glib)
4951 ("libsoup" ,libsoup-minimal-2)
4952 ("libxml2" ,libxml2)))
4953 (home-page "https://www.gtk.org/")
4954 (synopsis "RESTful web api query library")
4955 (description
4956 "This library was designed to make it easier to access web services that
4957 claim to be \"RESTful\". It includes convenience wrappers for libsoup and
4958 libxml to ease remote use of the RESTful API.")
4959 (license license:lgpl2.1+)))
4960
4961 (define-public rest-next
4962 (package
4963 (inherit rest)
4964 (name "rest")
4965 (version "0.9.1")
4966 (source (origin
4967 (method url-fetch)
4968 (uri (string-append "mirror://gnome/sources/rest/"
4969 (version-major+minor version) "/"
4970 name "-" version ".tar.xz"))
4971 (sha256
4972 (base32
4973 "1qy2291d2vprdbbxmf0sa98izk09nl3znzzv7lckwf6f1v0sarlj"))))
4974 (build-system meson-build-system)
4975 (arguments (substitute-keyword-arguments (package-arguments rest)
4976 ((#:tests? _ #f) #t)
4977 ((#:configure-flags _)
4978 #~(list))
4979 ((#:phases phases '%standard-phases)
4980 #~(modify-phases #$phases
4981 (add-after 'unpack 'disable-problematic-tests
4982 ;; These tests require networking.
4983 (lambda _
4984 (substitute* "tests/meson.build"
4985 ((".*'flickr',.*") "")
4986 ((".*'lastfm',.*") ""))))
4987 (add-before 'check 'prepare-for-tests
4988 (lambda _
4989 (setenv "HOME" "/tmp")))))))
4990 (native-inputs
4991 (modify-inputs (package-native-inputs rest)
4992 (append gettext-minimal
4993 gi-docgen
4994 gsettings-desktop-schemas)))
4995 (inputs (list gtksourceview json-glib libadwaita))
4996 (propagated-inputs
4997 (modify-inputs (package-propagated-inputs rest)
4998 (replace "libsoup" libsoup)
4999 (append json-glib)))))
5000
5001 ;;; A minimal version of libsoup used to prevent a cycle with Inkscape.
5002 (define-public libsoup-minimal
5003 (package
5004 (name "libsoup-minimal")
5005 (version "3.0.4")
5006 (source (origin
5007 (method url-fetch)
5008 (uri (string-append "mirror://gnome/sources/libsoup/"
5009 (version-major+minor version) "/"
5010 "libsoup-" version ".tar.xz"))
5011 (sha256
5012 (base32
5013 "0ysnvvfd2f6w2z6g31spqqb8wgyamixc7mryzbbpyw0z15g8plsv"))))
5014 (build-system meson-build-system)
5015 (arguments
5016 `(#:configure-flags '("-Dgtk_doc=false")
5017 #:phases
5018 (modify-phases %standard-phases
5019 (add-after 'unpack 'adjust-tests
5020 (lambda _
5021 ;; This test fails due to missing /etc/nsswitch.conf
5022 ;; in the build environment.
5023 (substitute* "tests/socket-test.c"
5024 ((".*/sockets/unconnected.*") ""))
5025
5026 ;; These fail because "subdomain.localhost" does not resolve in
5027 ;; the build environment. Moreover, the hsts-test suite fails on
5028 ;; i686-linux because of errors from `session_get_uri' like
5029 ;; "Unexpected status 200 OK (expected 301 Moved Permanently)"
5030 ;; (see: https://gitlab.gnome.org/GNOME/libsoup/-/issues/239).
5031 (substitute* "tests/meson.build"
5032 ((".*'name': 'hsts'.*") ""))
5033 (substitute* "tests/hsts-db-test.c"
5034 ((".*/hsts-db/subdomains.*") "")))))))
5035 (native-inputs
5036 (list `(,glib "bin") ;for glib-mkenums
5037 gobject-introspection
5038 intltool
5039 pkg-config
5040 python-wrapper
5041 vala
5042 curl
5043 gnutls ;for 'certtool'
5044 httpd))
5045 (propagated-inputs
5046 ;; libsoup-3.0.pc refers to all of these (except where otherwise noted)
5047 (list brotli
5048 glib
5049 glib-networking ; for GIO runtime modules
5050 libpsl
5051 nghttp2 ;for pkg-config
5052 `(,nghttp2 "lib")
5053 libxml2
5054 sqlite
5055 zlib))
5056 (inputs
5057 (list mit-krb5 samba/fixed)) ; For ntlm_auth support
5058 (home-page "https://wiki.gnome.org/Projects/libsoup")
5059 (synopsis "GLib-based HTTP Library")
5060 (description
5061 "LibSoup is an HTTP client/server library for GNOME. It uses GObjects
5062 and the GLib main loop, to integrate well with GNOME applications.")
5063 (license license:lgpl2.0+)))
5064
5065 ;;; An older variant kept to build the 'rest' package.
5066 (define-public libsoup-minimal-2
5067 (package/inherit libsoup-minimal
5068 (version "2.72.0")
5069 (source (origin
5070 (method url-fetch)
5071 (uri (string-append "mirror://gnome/sources/libsoup/"
5072 (version-major+minor version) "/"
5073 "libsoup-" version ".tar.xz"))
5074 (sha256
5075 (base32
5076 "11skbyw2pw32178q3h8pi7xqa41b2x4k6q4k9f75zxmh8s23y30p"))))
5077 (arguments
5078 (substitute-keyword-arguments (package-arguments libsoup-minimal)
5079 ((#:phases phases)
5080 `(modify-phases ,phases
5081 (add-after 'unpack 'disable-failing-tests
5082 (lambda _
5083 ;; Disable the SSL test, failing since 2.68 and resolved in
5084 ;; libsoup 3.
5085 (substitute* "tests/meson.build"
5086 (("[ \t]*\\['ssl', true, \\[\\]\\],") ""))))))))
5087 (native-inputs
5088 (modify-inputs (package-native-inputs libsoup-minimal)
5089 (replace "vala" vala-0.52)))))
5090
5091 (define-public libsoup
5092 (package/inherit libsoup-minimal
5093 (name "libsoup")
5094 (outputs (cons "doc" (package-outputs libsoup-minimal)))
5095 (arguments
5096 (substitute-keyword-arguments (package-arguments libsoup-minimal)
5097 ((#:configure-flags configure-flags)
5098 `(cons "-Dgtk_doc=true"
5099 (delete "-Dgtk_doc=false" ,configure-flags)))
5100 ((#:phases phases)
5101 `(modify-phases ,phases
5102 (add-after 'unpack 'patch-docbook-xml
5103 (lambda* (#:key inputs #:allow-other-keys)
5104 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
5105 "/xml/dtd/docbook")))
5106 (substitute* (find-files "docs/reference")
5107 (("http://.*/docbookx\\.dtd")
5108 (string-append xmldoc "/docbookx.dtd"))))))
5109 (add-after 'install 'move-doc
5110 (lambda* (#:key outputs #:allow-other-keys)
5111 (let ((out (assoc-ref outputs "out"))
5112 (doc (assoc-ref outputs "doc")))
5113 (mkdir-p (string-append doc "/share"))
5114 (copy-recursively (string-append out "/share/gtk-doc")
5115 (string-append doc "/share/gtk-doc"))
5116 (delete-file-recursively
5117 (string-append out "/share/gtk-doc")))))))))
5118 (native-inputs (modify-inputs (package-native-inputs libsoup-minimal)
5119 (prepend docbook-xml-4.1.2 gtk-doc)))))
5120
5121 (define-public libsecret
5122 (package
5123 (name "libsecret")
5124 (version "0.20.4")
5125 (source (origin
5126 (method url-fetch)
5127 (uri (string-append
5128 "mirror://gnome/sources/libsecret/"
5129 (version-major+minor version) "/"
5130 "libsecret-" version ".tar.xz"))
5131 (sha256
5132 (base32
5133 "0a4xnfmraxchd9cq5ai66j12jv2vrgjmaaxz25kl031jvda4qnij"))))
5134 (build-system gnu-build-system)
5135 (outputs '("out" "doc"))
5136 (arguments
5137 `(#:tests? #f ; FIXME: Testing hangs.
5138 #:configure-flags
5139 (list (string-append "--with-html-dir="
5140 (assoc-ref %outputs "doc")
5141 "/share/gtk-doc/html"))))
5142 (native-inputs
5143 `(("gettext" ,gettext-minimal)
5144 ("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
5145 ("gobject-introspection" ,gobject-introspection)
5146 ("pkg-config" ,pkg-config)
5147 ("vala" ,vala)
5148 ("xsltproc" ,libxslt)))
5149 (propagated-inputs
5150 (list glib)) ; required by libsecret-1.pc
5151 (inputs
5152 ;; The ‘build’ phase complains about missing docbook-xml-4.2 but adding it
5153 ;; doesn't seem to affect the build result.
5154 (list docbook-xsl libgcrypt libxml2)) ; for XML_CATALOG_FILES
5155 (home-page "https://wiki.gnome.org/Projects/Libsecret/")
5156 (synopsis "GObject bindings for \"Secret Service\" API")
5157 (description
5158 "Libsecret is a GObject based library for storing and retrieving passwords
5159 and other secrets. It communicates with the \"Secret Service\" using DBus.")
5160 (license license:lgpl2.1+)))
5161
5162 (define-public five-or-more
5163 (package
5164 (name "five-or-more")
5165 (version "3.32.3")
5166 (source
5167 (origin
5168 (method url-fetch)
5169 (uri (string-append "mirror://gnome/sources/five-or-more/"
5170 (version-major+minor version) "/"
5171 "five-or-more-" version ".tar.xz"))
5172 (sha256
5173 (base32 "1x4ys18rn37hsavivh532py2avj9686aycnn8ys29cyyxwpdf41d"))))
5174 (build-system meson-build-system)
5175 (arguments
5176 '(#:glib-or-gtk? #t
5177 #:phases
5178 (modify-phases %standard-phases
5179 (add-after 'unpack 'skip-gtk-update-icon-cache
5180 (lambda _
5181 (substitute* "meson_post_install.py"
5182 (("gtk-update-icon-cache") (which "true"))))))))
5183 (native-inputs
5184 (list appstream-glib
5185 desktop-file-utils
5186 `(,glib "bin") ; for glib-compile-resources
5187 intltool
5188 itstool
5189 pkg-config
5190 vala))
5191 (inputs
5192 (list gtk+ libgnome-games-support librsvg libxml2))
5193 (home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
5194 (synopsis "Logic puzzle game")
5195 (description "Five or More is a game where you try to align
5196 five or more objects of the same color and shape causing them to disappear.
5197 On every turn more objects will appear, until the board is full.
5198 Try to last as long as possible.")
5199 (license license:gpl2+)))
5200
5201 (define-public gi-docgen
5202 (package
5203 (name "gi-docgen")
5204 (version "2022.1")
5205 (source (origin
5206 (method url-fetch)
5207 (uri (pypi-uri "gi-docgen" version))
5208 (sha256
5209 (base32
5210 "1v2wspm2ld27lq1n5v5pzrmkhchfa7p7ahp8rmjm4zcdyagqf7gr"))))
5211 (build-system python-build-system)
5212 (propagated-inputs (list python-jinja2
5213 python-markdown
5214 python-markupsafe
5215 python-pygments
5216 python-toml
5217 python-typogrify))
5218 (home-page "https://gitlab.gnome.org/GNOME/gi-docgen")
5219 (synopsis "Documentation tool for GObject-based libraries")
5220 (description "GI-DocGen is a document generator for GObject-based
5221 libraries. GObject is the base type system of the GNOME project. GI-Docgen
5222 reuses the introspection data generated by GObject-based libraries to generate
5223 the API reference of these libraries, as well as other ancillary
5224 documentation.")
5225 (license license:gpl3+)))
5226
5227 (define-public gnome-mines
5228 (package
5229 (name "gnome-mines")
5230 (version "40.1")
5231 (source
5232 (origin
5233 (method url-fetch)
5234 (uri (string-append "mirror://gnome/sources/" name "/"
5235 (version-major version) "/"
5236 name "-" version ".tar.xz"))
5237 (sha256
5238 (base32 "0whjwdxhyw5bvibd9qvpm2yc5g7yhy8h3rn027kv5cqwyyryj0im"))))
5239 (build-system meson-build-system)
5240 (arguments
5241 `(#:glib-or-gtk? #t
5242 #:phases
5243 (modify-phases %standard-phases
5244 (add-after 'unpack 'skip-gtk-update-icon-cache
5245 (lambda _
5246 (substitute* "build-aux/meson_post_install.py"
5247 (("gtk-update-icon-cache") (which "true"))))))))
5248 (native-inputs
5249 (list appstream-glib
5250 desktop-file-utils
5251 gettext-minimal
5252 `(,glib "bin") ; for glib-compile-resources
5253 itstool
5254 pkg-config
5255 python-wrapper ; for meson_post_install.py
5256 vala))
5257 (inputs
5258 (list gtk+
5259 libgnome-games-support
5260 librsvg
5261 yelp))
5262 (home-page "https://wiki.gnome.org/Apps/Mines")
5263 (synopsis "Minesweeper game")
5264 (description
5265 "Mines (previously gnomine) is a puzzle game where you locate mines
5266 floating in an ocean using only your brain and a little bit of luck.")
5267 (license license:gpl2+)))
5268
5269 (define-public gnome-multi-writer
5270 (package
5271 (name "gnome-multi-writer")
5272 (version "3.35.90")
5273 (source
5274 (origin
5275 (method url-fetch)
5276 (uri (string-append "mirror://gnome/sources/gnome-multi-writer/"
5277 (version-major+minor version) "/"
5278 "gnome-multi-writer-" version ".tar.xz"))
5279 (sha256
5280 (base32
5281 "07vgzjjdrxcp7h73z13h9agafxb4vmqx5i81bcfyw0ilw9kkdzmp"))))
5282 (build-system meson-build-system)
5283 (arguments
5284 '(#:glib-or-gtk? #t
5285 #:phases
5286 (modify-phases %standard-phases
5287 (add-after 'unpack 'skip-post-install
5288 (lambda _
5289 (substitute* "meson.build"
5290 (("meson.add_install_script" &) (string-append "# " &)))
5291 #t)))))
5292 (native-inputs
5293 `(("glib:bin" ,glib "bin")
5294 ("pkg-config" ,pkg-config)))
5295 (inputs
5296 (list gtk+
5297 glib ; for gio
5298 gusb
5299 udisks
5300 libgudev
5301 libcanberra
5302 polkit))
5303 (home-page "https://wiki.gnome.org/Apps/MultiWriter")
5304 (synopsis "Write to multiple USB devices at once")
5305 (description
5306 "MultiWriter can be used to write an ISO file to multiple USB devices at
5307 once.")
5308 (license license:gpl2+)))
5309
5310 (define-public gnome-sudoku
5311 (package
5312 (name "gnome-sudoku")
5313 (version "42.0")
5314 (source
5315 (origin
5316 (method url-fetch)
5317 (uri (string-append "mirror://gnome/sources/" name "/"
5318 (version-major version) "/"
5319 name "-" version ".tar.xz"))
5320 (sha256
5321 (base32
5322 "13y2qphrj99b0lc7bh71is1f6i0jvyw8adfg8lv48sq2p3fv8bhx"))))
5323 (build-system meson-build-system)
5324 (arguments
5325 `(#:glib-or-gtk? #t
5326 #:phases
5327 (modify-phases %standard-phases
5328 (add-after 'unpack 'skip-gtk-update-icon-cache
5329 (lambda _
5330 (substitute* "build-aux/post_install.py"
5331 (("gtk-update-icon-cache") (which "true"))))))))
5332 (native-inputs
5333 (list desktop-file-utils
5334 gettext-minimal
5335 `(,glib "bin") ;for glib-compile-resources
5336 itstool
5337 libxml2
5338 pkg-config
5339 python ;for 'build-aux/post_install.py'
5340 vala))
5341 (inputs
5342 (list gtk+
5343 json-glib
5344 libgee
5345 librsvg
5346 qqwing))
5347 (home-page "https://wiki.gnome.org/Apps/Sudoku")
5348 (synopsis "Japanese logic game")
5349 (description
5350 "Sudoku is a Japanese logic game that exploded in popularity in 2005.
5351 GNOME Sudoku is meant to have an interface as simple and unobstrusive as
5352 possible while still providing features that make playing difficult Sudoku
5353 more fun.")
5354 (license license:gpl2+)))
5355
5356 (define-public gnome-terminal
5357 (package
5358 (name "gnome-terminal")
5359 (version "3.44.1")
5360 (source
5361 (origin
5362 (method url-fetch)
5363 (uri (string-append "mirror://gnome/sources/" name "/"
5364 (version-major+minor version) "/"
5365 name "-" version ".tar.xz"))
5366 (sha256
5367 (base32
5368 "0yykb64yi1h0g65q890jf5awjr2sdvfda4xbxnmajcgj3zp20vzv"))))
5369 (build-system meson-build-system)
5370 (arguments
5371 (list
5372 #:glib-or-gtk? #t
5373 #:phases
5374 #~(modify-phases %standard-phases
5375 (add-after 'unpack 'patch-build-system
5376 ;; The build system looks for a dbus file from gnome-shell in the
5377 ;; installation tree of teh package it is configuring...
5378 (lambda* (#:key inputs #:allow-other-keys)
5379 (substitute* "src/meson.build"
5380 (("gt_prefix.*'org.gnome.ShellSearchProvider2.xml'")
5381 (format #f "'~a'" (search-input-file
5382 inputs "share/dbus-1/interfaces/\
5383 org.gnome.ShellSearchProvider2.xml"))))))
5384 (add-before 'install 'disable-gtk-update-icon-cache
5385 (lambda _
5386 (setenv "DESTDIR" "/"))))))
5387 (native-inputs
5388 (list desktop-file-utils
5389 docbook-xsl
5390 gettext-minimal
5391 `(,glib "bin")
5392 itstool
5393 libxml2
5394 libxslt
5395 pkg-config
5396 python))
5397 (propagated-inputs
5398 (list dconf))
5399 (inputs
5400 (list gnome-shell
5401 gnutls
5402 gsettings-desktop-schemas
5403 gtk+
5404 nautilus ;for extension
5405 `(,util-linux "lib")
5406 vala
5407 vte))
5408 (home-page "https://wiki.gnome.org/Apps/Terminal")
5409 (synopsis "Terminal emulator")
5410 (description
5411 "GNOME Terminal is a terminal emulator application for accessing a
5412 UNIX shell environment which can be used to run programs available on
5413 your system.
5414
5415 It supports several profiles, multiple tabs and implements several
5416 keyboard shortcuts.")
5417 (license license:gpl3+)))
5418
5419 (define-public colord-minimal
5420 (package
5421 (name "colord-minimal")
5422 (version "1.4.5")
5423 (source
5424 (origin
5425 (method url-fetch)
5426 (uri (string-append "https://www.freedesktop.org/software/colord/releases/"
5427 "colord-" version ".tar.xz"))
5428 (sha256
5429 (base32 "05sydi6qqqx1rrqwnga1vbg9srkf89wdcfw5w4p4m7r37m2flx5p"))))
5430 (build-system meson-build-system)
5431 (arguments
5432 '( ;; FIXME: One test fails:
5433 ;; /colord/icc-store (in lib/colord/colord-self-test-private):
5434 ;; Incorrect content type for /tmp/colord-vkve/already-exists.icc, got
5435 ;; application/x-zerosize
5436 #:tests? #f
5437 #:glib-or-gtk? #t
5438 #:configure-flags (list "-Dargyllcms_sensor=false" ;requires spotread
5439 "-Dbash_completion=false"
5440 "-Ddaemon_user=colord"
5441 "-Ddocs=false"
5442 "-Dlocalstatedir=/var"
5443 "-Dman=false"
5444 "-Dsane=true"
5445 "-Dsystemd=false") ;no systemd
5446 #:phases
5447 (modify-phases %standard-phases
5448 (add-before 'configure 'patch-build-system
5449 (lambda* (#:key outputs #:allow-other-keys)
5450 (substitute* "rules/meson.build"
5451 (("udev.get_pkgconfig_variable\\('udevdir'\\)")
5452 (string-append "'" (assoc-ref outputs "out") "/lib/udev'")))))
5453 (add-before 'configure 'set-sqlite3-file-name
5454 (lambda* (#:key inputs #:allow-other-keys)
5455 ;; "colormgr dump" works by invoking the "sqlite3" command.
5456 ;; Record its absolute file name.
5457 (let ((sqlite (assoc-ref inputs "sqlite")))
5458 (substitute* "client/cd-util.c"
5459 (("\"sqlite3\"")
5460 (string-append "\"" sqlite "/bin/sqlite3\"")))))))))
5461 (native-inputs
5462 `(("glib:bin" ,glib "bin") ; for glib-compile-resources, etc.
5463 ("gettext" ,gettext-minimal)
5464 ("pkg-config" ,pkg-config)
5465 ("vala" ,vala)))
5466 (propagated-inputs
5467 ;; colord.pc refers to all these.
5468 `(("glib" ,glib)
5469 ("lcms" ,lcms)
5470 ("udev" ,eudev)))
5471 (inputs
5472 `(("dbus-glib" ,dbus-glib)
5473 ("gobject-introspection" ,gobject-introspection)
5474 ("gusb" ,gusb-minimal)
5475 ("libgudev" ,libgudev)
5476 ("libusb" ,libusb)
5477 ("polkit" ,polkit)
5478 ("python" ,python-wrapper)
5479 ("sqlite" ,sqlite)
5480 ("sane-backends" ,sane-backends)))
5481 (home-page "https://www.freedesktop.org/software/colord/")
5482 (synopsis "Color management service")
5483 (description "Colord is a system service that makes it easy to manage,
5484 install and generate color profiles to accurately color manage input and
5485 output devices.")
5486 (license license:gpl2+)))
5487
5488 (define-public colord
5489 (package/inherit colord-minimal
5490 (name "colord")
5491 (arguments
5492 (substitute-keyword-arguments
5493 (package-arguments colord-minimal)
5494 ((#:configure-flags flags)
5495 `(begin
5496 (use-modules (srfi srfi-1))
5497 (append '("-Dbash_completion=true"
5498 "-Ddocs=true"
5499 "-Dman=true"
5500 "-Dvapi=true")
5501 (fold delete ,flags '("-Dbash_completion=false"
5502 "-Ddocs=false"
5503 "-Dman=false")))))
5504 ((#:phases phases)
5505 `(modify-phases ,phases
5506 (add-after 'unpack 'fix-bash-completion-dir
5507 (lambda* (#:key outputs #:allow-other-keys)
5508 (substitute* "data/meson.build"
5509 (("bash_completion.get_pkgconfig_variable\
5510 \\('completionsdir'\\)")
5511 (string-append "'" (assoc-ref outputs "out")
5512 "/etc/bash_completion.d'")))))))))
5513 (native-inputs
5514 (append
5515 `(("bash-completion" ,bash-completion)
5516 ("docbook-xsl-ns" ,docbook-xsl-ns)
5517 ("gtk-doc" ,gtk-doc/stable)
5518 ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
5519 ("libxslt" ,libxslt)
5520 ("vala" ,vala)) ;for VAPI, needed by simple-scan
5521 (package-native-inputs colord-minimal)))))
5522
5523 (define-public geoclue
5524 (package
5525 (name "geoclue")
5526 (version "2.6.0")
5527 (source
5528 (origin
5529 (method url-fetch)
5530 (uri
5531 (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
5532 version "/geoclue-" version ".tar.bz2"))
5533 (sha256
5534 (base32 "1854i8lih1jkks5w38xv8k5gs7s8629qjg3cg96ji0ffk35yzjfd"))
5535 (patches (search-patches "geoclue-config.patch"))))
5536 (build-system meson-build-system)
5537 (arguments
5538 '(#:configure-flags (list "-Ddbus-srv-user=geoclue")))
5539 (native-inputs
5540 (list pkg-config
5541 gobject-introspection
5542 modem-manager
5543 libnotify
5544 gtk-doc/stable
5545 gettext-minimal
5546 vala))
5547 (inputs
5548 (list avahi
5549 `(,glib "bin")
5550 glib-networking
5551 json-glib
5552 libsoup-minimal-2))
5553 (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
5554 (synopsis "Geolocation service")
5555 (description "Geoclue is a D-Bus service that provides location
5556 information. The primary goal of the Geoclue project is to make creating
5557 location-aware applications as simple as possible, while the secondary goal is
5558 to ensure that no application can access location information without explicit
5559 permission from user.")
5560 (license license:gpl2+)))
5561
5562 (define-public geocode-glib
5563 (package
5564 (name "geocode-glib")
5565 (version "3.26.4")
5566 (source (origin
5567 (method url-fetch)
5568 (uri (string-append "mirror://gnome/sources/geocode-glib/"
5569 (version-major+minor version) "/"
5570 "geocode-glib-" version ".tar.xz"))
5571 (sha256
5572 (base32
5573 "1aipd82qk404qy88pyfgplzgi83db4hi51vkl54h8isqs4k6i6id"))))
5574 (build-system meson-build-system)
5575 (arguments
5576 (list
5577 #:configure-flags #~(list "-Dsoup2=false")
5578 #:phases
5579 #~(modify-phases %standard-phases
5580 ;; The tests require a bunch of locales.
5581 (add-before 'check 'set-locales
5582 (lambda* (#:key inputs #:allow-other-keys)
5583 (setenv "GUIX_LOCPATH"
5584 (search-input-directory inputs "lib/locale")))))))
5585 (native-inputs
5586 (list `(,glib "bin") ;for glib-mkenums
5587 glibc-locales ;for tests
5588 gettext-minimal
5589 gobject-introspection
5590 gtk-doc/stable
5591 pkg-config
5592 json-glib))
5593 (propagated-inputs
5594 ;; geocode-glib-2.0.pc refers to GIO.
5595 (list glib))
5596 (inputs
5597 (list libsoup))
5598 (home-page "https://github.com/GNOME/geocode-glib/")
5599 (synopsis "Geocoding and reverse-geocoding library")
5600 (description
5601 "geocode-glib is a convenience library for geocoding (finding longitude,
5602 and latitude from an address) and reverse geocoding (finding an address from
5603 coordinates) using the Nominatim service. geocode-glib caches requests for
5604 faster results and to avoid unnecessary server load.")
5605 (license license:lgpl2.0+)))
5606
5607 (define-public geocode-glib-with-libsoup2
5608 (package
5609 (inherit geocode-glib)
5610 (name "geocode-glib-with-libsoup2")
5611 (arguments (substitute-keyword-arguments (package-arguments geocode-glib)
5612 ((#:configure-flags flags ''())
5613 #~(delete "-Dsoup2=false" #$flags))))
5614 (inputs (modify-inputs (package-inputs geocode-glib)
5615 (replace "libsoup" libsoup-minimal-2)))))
5616
5617 (define-public upower
5618 (package
5619 (name "upower")
5620 (version "1.90.0")
5621 (source
5622 (origin
5623 (method git-fetch)
5624 (uri (git-reference
5625 (url "https://gitlab.freedesktop.org/upower/upower")
5626 (commit (string-append "v" version))))
5627 (file-name (git-file-name name version))
5628 (sha256
5629 (base32 "1g17rm91p8vfpjyb0k2shylrs55nccn3fa890vlk4n9s71sghbzq"))
5630 (modules '((guix build utils)))
5631 (snippet
5632 ;; Upstream commit <https://cgit.freedesktop.org/upower/commit/
5633 ;; ?id=18457c99b68786cd729b315723d680e6860d9cfa> moved
5634 ;; 'dbus-1/system.d' from etc/ to share/. However,
5635 ;; 'dbus-configuration-directory' in (gnu services dbus) expects it in
5636 ;; etc/. Thus, move it back to its previous location.
5637 #~(substitute* "src/meson.build"
5638 (("dbusdir / 'system.d'")
5639 "get_option('sysconfdir') / 'dbus-1/system.d'")
5640 ;; Avoid writing to /var during the build, this is
5641 ;; not possible in Guix!
5642 (("^install_subdir\\('does-not-exist'.*$") "")))))
5643 (build-system meson-build-system)
5644 (arguments
5645 (list
5646 #:glib-or-gtk? #t
5647 #:configure-flags
5648 #~(list "-Dsystemdsystemunitdir=no"
5649 ;; If not specified, udev will try putting history information
5650 ;; in /gnu/store.
5651 "-Dhistorydir=/var/lib/upower"
5652 (string-append "-Dudevrulesdir=" #$output "/bin/udev/rules.d"))))
5653 (native-inputs
5654 (list `(,glib "bin") ; for gdbus-codegen
5655 gobject-introspection
5656 gtk-doc
5657 intltool
5658 pkg-config
5659 python
5660 ;; For tests.
5661 python-dbus
5662 python-dbusmock
5663 python-packaging
5664 python-pygobject
5665 umockdev
5666 ;; For man pages.
5667 docbook-xsl
5668 libxslt ; for 'xsltproc'
5669 libxml2)) ; for 'XML_CATALOG_FILES'
5670 (inputs
5671 (list dbus-glib libgudev libusb))
5672 (propagated-inputs
5673 ;; In Requires of upower-glib.pc.
5674 (list glib))
5675 (home-page "https://upower.freedesktop.org/")
5676 (synopsis "System daemon for managing power devices")
5677 (description
5678 "UPower is an abstraction for enumerating power devices,
5679 listening to device events and querying history and statistics. Any
5680 application or service on the system can access the org.freedesktop.UPower
5681 service via the system message bus.")
5682 (license license:gpl2+)
5683 ;; Old versions of upower are tagged as UPOWER_0_99_13, which confuses
5684 ;; the 'generic-git' updater. Give it a little help.
5685 (properties '((release-tag-prefix . "v")
5686 (release-tag-version-delimiter . ".")))))
5687
5688 (define-public libgweather
5689 (package
5690 (name "libgweather")
5691 (version "40.0")
5692 (source (origin
5693 (method url-fetch)
5694 (uri (string-append "mirror://gnome/sources/" name "/"
5695 (version-major version) "/"
5696 name "-" version ".tar.xz"))
5697 (sha256
5698 (base32
5699 "1rkf4yv43qcahyx7bismdv6z2vh5azdnm1fqfmnzrada9cm8ykna"))))
5700 (build-system meson-build-system)
5701 (arguments
5702 (list
5703 #:tests? #f ;one of two tests requires network access
5704 #:configure-flags
5705 #~(list (string-append "-Dzoneinfo_dir="
5706 (search-input-directory %build-inputs
5707 "share/zoneinfo")))))
5708 (native-inputs
5709 (list gettext-minimal
5710 `(,glib "bin") ;for glib-mkenums
5711 gobject-introspection
5712 pkg-config
5713 python
5714 vala
5715 python-pygobject))
5716 (propagated-inputs
5717 ;; gweather-3.0.pc refers to GTK+, GDK-Pixbuf, GLib/GObject, libxml, and
5718 ;; libsoup.
5719 (list gtk+ gdk-pixbuf libxml2 libsoup-minimal-2 geocode-glib))
5720 (inputs
5721 (list tzdata))
5722 (home-page "https://wiki.gnome.org/action/show/Projects/LibGWeather")
5723 (synopsis "Location, time zone, and weather library for GNOME")
5724 (description
5725 "libgweather is a library to access weather information from online
5726 services for numerous locations.")
5727 (license license:gpl2+)))
5728
5729 ;; libgweather no longer follows the GNOME version, and recommends changing
5730 ;; the package name in distributions to avoid accidental downgrades. See
5731 ;; <https://discourse.gnome.org/t/changes-in-libgweather-for-gnome-42/7770/2>.
5732 ;; TODO: how to prevent the updater from picking version 40?
5733 (define-public libgweather4
5734 (package
5735 (inherit libgweather)
5736 (name "libgweather4")
5737 (version "4.1.1")
5738 (source (origin
5739 (method url-fetch)
5740 (uri (string-append "mirror://gnome/sources/libgweather/"
5741 (version-major+minor version) "/"
5742 "libgweather-" version ".tar.xz"))
5743 (sha256
5744 (base32
5745 "1wh3asniv5yiqp0dsk96as2bkx72hamh3ij2md8k0is9yd7ppbjm"))))
5746 (arguments
5747 (list
5748 #:configure-flags
5749 #~(list (string-append "-Dzoneinfo_dir="
5750 (search-input-directory %build-inputs
5751 "share/zoneinfo")))
5752 #:phases
5753 #~(modify-phases %standard-phases
5754 (add-after 'unpack 'set-HOME
5755 (lambda _
5756 (setenv "HOME" "/tmp")))
5757 (add-after 'unpack 'disable-problematic-tests
5758 (lambda _
5759 (substitute* "libgweather/tests/meson.build"
5760 ;; The timezones test fails for unknown reasons (see:
5761 ;; https://gitlab.gnome.org/GNOME/libgweather/-/issues/188).
5762 ((".*'name': 'timezones'.*") "")
5763 ;; The 'metar' test is known to fail, fixed but not yet released
5764 ;; upstream (see:
5765 ;; https://gitlab.gnome.org/GNOME/libgweather/-/issues/168).
5766 ((".*'name': 'metar'.*") ""))))
5767 (delete 'check) ;move after the install phase
5768 (add-after 'install 'check
5769 (assoc-ref %standard-phases 'check)))))
5770 (native-inputs
5771 (list gettext-minimal
5772 gi-docgen
5773 `(,glib "bin") ;for glib-mkenums
5774 gobject-introspection
5775 glibc-utf8-locales
5776 gsettings-desktop-schemas
5777 pkg-config
5778 python
5779 python-pygobject
5780 vala))
5781 ;; TODO: It would be good to make the package respect TZDIR instead
5782 ;; of using a "hard coded" version of tzdata.
5783 (inputs (list tzdata))
5784 (propagated-inputs
5785 ;; gweather4.pc refers to all of these.
5786 (list geocode-glib
5787 glib
5788 json-glib
5789 libsoup
5790 libxml2))))
5791
5792 (define-public libgweather4-with-libsoup2
5793 (package
5794 (inherit libgweather4)
5795 (name "libgweather4-with-libsoup2")
5796 (arguments (substitute-keyword-arguments (package-arguments libgweather4)
5797 ((#:configure-flags flags)
5798 #~(cons "-Dsoup2=true" #$flags))))
5799 (propagated-inputs
5800 (modify-inputs (package-propagated-inputs libgweather4)
5801 (replace "geocode-glib" geocode-glib-with-libsoup2)
5802 (replace "libsoup" libsoup-minimal-2)))))
5803
5804 (define-public gnome-settings-daemon
5805 (package
5806 (name "gnome-settings-daemon")
5807 (version "42.2")
5808 (source
5809 (origin
5810 (method url-fetch)
5811 (uri (string-append "mirror://gnome/sources/" name "/"
5812 (version-major version) "/"
5813 name "-" version ".tar.xz"))
5814 (sha256
5815 (base32
5816 "005b1dvrfcyr6n4srl6c0lzr95c18prps4xm1lf2ghcfm8a9fi4w"))
5817 (patches (search-patches "gnome-settings-daemon-gc.patch"))))
5818 (build-system meson-build-system)
5819 (arguments
5820 (list
5821 #:glib-or-gtk? #t
5822 #:configure-flags
5823 #~(list (string-append "-Dudev_dir=" #$output "/lib/udev")
5824 "-Dsystemd=false"
5825 ;; Otherwise, the RUNPATH will lack the final path component.
5826 (string-append "-Dc_link_args=-Wl,-rpath=" #$output
5827 "/lib/gnome-settings-daemon-3.0"))
5828 #:phases
5829 #~(modify-phases %standard-phases
5830 (add-before 'configure 'set-baobab-file-name
5831 (lambda* (#:key inputs #:allow-other-keys)
5832 ;; Hard-code the file name of Baobab instead of looking
5833 ;; it up in $PATH. This ensures users get the "Examine"
5834 ;; button in the low disk space notification of GDM even
5835 ;; if they don't have GNOME in their main profile.
5836 (substitute* "plugins/housekeeping/gsd-disk-space.c"
5837 (("g_find_program_in_path \\(DISK_SPACE_ANALYZER\\)")
5838 (format #f "g_strdup (~s)"
5839 (search-input-file inputs "bin/baobab")))))))
5840 ;; Color management test can't reach the colord system service.
5841 #:tests? #f))
5842 (native-inputs
5843 (list docbook-xml-4.2
5844 docbook-xsl
5845 gettext-minimal
5846 `(,glib "bin") ;for glib-mkenums
5847 libxml2 ;for XML_CATALOG_FILES
5848 libxslt
5849 perl
5850 pkg-config))
5851 (inputs
5852 (list alsa-lib
5853 baobab
5854 colord
5855 cups
5856 gcr
5857 geoclue
5858 geocode-glib-with-libsoup2
5859 gnome-desktop
5860 gsettings-desktop-schemas-next
5861 lcms
5862 libcanberra
5863 libgudev
5864 libgweather4-with-libsoup2
5865 libnotify
5866 (librsvg-for-system)
5867 libwacom
5868 libx11
5869 libxtst
5870 modem-manager
5871 network-manager
5872 nss
5873 polkit
5874 pulseaudio
5875 upower
5876 wayland
5877 xf86-input-wacom))
5878 (home-page "https://www.gnome.org")
5879 (synopsis "GNOME settings daemon")
5880 (description
5881 "This package contains the daemon responsible for setting the various
5882 parameters of a GNOME session and the applications that run under it. It
5883 handles settings such keyboard layout, shortcuts, and accessibility, clipboard
5884 settings, themes, mouse settings, and startup of other daemons.")
5885 (license license:gpl2+)))
5886
5887 (define-public totem-pl-parser
5888 (package
5889 (name "totem-pl-parser")
5890 (version "3.26.6")
5891 (source (origin
5892 (method url-fetch)
5893 (uri (string-append "mirror://gnome/sources/totem-pl-parser/"
5894 (version-major+minor version) "/"
5895 "totem-pl-parser-" version ".tar.xz"))
5896 (sha256
5897 (base32
5898 "075csd5x0frgf93jvhlqiwv5i0qm24zz3iw17jj7v7fgsml0zpy0"))))
5899 (build-system meson-build-system)
5900 (arguments
5901 ;; FIXME: Tests require gvfs.
5902 `(#:tests? #f))
5903 (native-inputs
5904 (list intltool
5905 `(,glib "bin") gobject-introspection pkg-config))
5906 (propagated-inputs
5907 (list glib gmime libarchive libgcrypt libxml2))
5908 (inputs
5909 (list libsoup))
5910 (home-page "https://projects.gnome.org/totem")
5911 (synopsis "Library to parse and save media playlists for GNOME")
5912 (description "Totem-pl-parser is a GObjects-based library to parse and save
5913 playlists in a variety of formats.")
5914 (license license:lgpl2.0+)))
5915
5916 (define-public aisleriot
5917 (package
5918 (name "aisleriot")
5919 (version "3.22.9")
5920 (source (origin
5921 (method url-fetch)
5922 (uri (string-append "mirror://gnome/sources/aisleriot/"
5923 (version-major+minor version) "/"
5924 "aisleriot-" version ".tar.xz"))
5925 (sha256
5926 (base32
5927 "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji"))))
5928 (build-system glib-or-gtk-build-system)
5929 (arguments
5930 '(#:configure-flags
5931 '("--with-platform=gtk-only"
5932 "--with-card-theme-formats=svg")))
5933 (native-inputs
5934 `(("desktop-file-utils" ,desktop-file-utils)
5935 ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
5936 ("intltool" ,intltool)
5937 ("itstool" ,itstool)
5938 ("pkg-config" ,pkg-config)
5939 ("xmllint" ,libxml2)))
5940 (inputs
5941 (list gtk+ guile-2.2 libcanberra librsvg))
5942 (home-page "https://wiki.gnome.org/Apps/Aisleriot")
5943 (synopsis "Solitaire card games")
5944 (description
5945 "Aisleriot (also known as Solitaire or sol) is a collection of card games
5946 which are easy to play with the aid of a mouse.")
5947 (license license:gpl3+)))
5948
5949 (define-public amtk
5950 (package
5951 (name "amtk")
5952 (version "5.5.1")
5953 (source (origin
5954 (method url-fetch)
5955 (uri (string-append "mirror://gnome/sources/amtk/"
5956 (version-major+minor version) "/"
5957 "amtk-" version ".tar.xz"))
5958 (sha256
5959 (base32
5960 "176vplk3inf0pp0prma8478hp0yhziq0krp5a9l47hg22z86v2gc"))))
5961 (build-system meson-build-system)
5962 (native-inputs
5963 (list gobject-introspection
5964 `(,glib "bin") ; for glib-mkenums
5965 gtk-doc/stable pkg-config))
5966 (inputs
5967 (list glib gtk+))
5968 (home-page "https://wiki.gnome.org/Projects/Amtk")
5969 (synopsis "Actions, Menus and Toolbars Kit for GTK+ applications")
5970 (description
5971 "Amtk is the acronym for @acronym{Amtk, Actions Menus and Toolbars Kit}.
5972 It is a basic GtkUIManager replacement based on GAction. It is suitable for
5973 both a traditional UI or a modern UI with a GtkHeaderBar.")
5974 (license license:lgpl2.1+)))
5975
5976 (define-public devhelp
5977 (package
5978 (name "devhelp")
5979 (version "41.3")
5980 (source (origin
5981 (method url-fetch)
5982 (uri (string-append "mirror://gnome/sources/" name "/"
5983 (version-major version) "/"
5984 name "-" version ".tar.xz"))
5985 (sha256
5986 (base32
5987 "1rxn6kciyfdhnjrcjyf02cn3rki2xgwb4wrg5plbzjvpqasq66ml"))))
5988 (build-system meson-build-system)
5989 (arguments
5990 `(#:glib-or-gtk? #t
5991 #:phases
5992 (modify-phases %standard-phases
5993 (add-after 'unpack 'skip-gtk-update-icon-cache
5994 ;; Don't create 'icon-theme.cache'.
5995 (lambda _
5996 (substitute* "build-aux/meson/meson_post_install.py"
5997 (("gtk-update-icon-cache") "true")))))))
5998 (propagated-inputs
5999 (list gsettings-desktop-schemas))
6000 (native-inputs
6001 (list gettext-minimal
6002 gobject-introspection
6003 `(,glib "bin") ; for glib-mkmenus
6004 itstool
6005 pkg-config))
6006 (inputs
6007 (list amtk
6008 webkitgtk))
6009 (home-page "https://wiki.gnome.org/Apps/Devhelp")
6010 (synopsis "API documentation browser for GNOME")
6011 (description
6012 "Devhelp is an API documentation browser for GTK+ and GNOME. It works
6013 natively with GTK-Doc (the API reference system developed for GTK+ and used
6014 throughout GNOME for API documentation).")
6015 (license license:gpl2+)))
6016
6017 (define-public devhelp-with-libsoup2
6018 (package/inherit devhelp
6019 (inputs (modify-inputs (package-inputs devhelp)
6020 (replace "webkitgtk" webkitgtk-with-libsoup2)))))
6021
6022 (define-public cogl
6023 (package
6024 (name "cogl")
6025 (version "1.22.8")
6026 (source
6027 (origin
6028 (method url-fetch)
6029 (uri (string-append "mirror://gnome/sources/cogl/"
6030 (version-major+minor version) "/"
6031 "cogl-" version ".tar.xz"))
6032 (sha256
6033 (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
6034 ;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
6035 ;; cogl, corresponding changes may be appropriate in mutter as well.
6036 (build-system gnu-build-system)
6037 (native-inputs
6038 `(("glib:bin" ,glib "bin") ; for glib-mkenums
6039 ("gobject-introspection" ,gobject-introspection)
6040 ("xorg-server" ,xorg-server-for-tests)
6041 ("pkg-config" ,pkg-config)))
6042 (propagated-inputs
6043 (list glib
6044 gdk-pixbuf
6045 libx11
6046 libxext
6047 libxfixes
6048 libxdamage
6049 libxcomposite
6050 libxrandr))
6051 (inputs
6052 (list mesa
6053 cairo
6054 pango
6055 gstreamer
6056 gst-plugins-base
6057 wayland))
6058 (arguments
6059 `(#:disallowed-references (,xorg-server-for-tests)
6060 #:configure-flags (list "--enable-cogl-gst"
6061 "--enable-wayland-egl-platform"
6062 "--enable-wayland-egl-server"
6063
6064 ;; Arrange to pass an absolute file name to
6065 ;; dlopen for libGL.so.
6066 (string-append "--with-gl-libname="
6067 (assoc-ref %build-inputs "mesa")
6068 "/lib/libGL.so"))
6069 #:phases
6070 (modify-phases %standard-phases
6071 (add-after 'unpack 'fix-build-with-mesa-20
6072 (lambda _
6073 ;; Work around a problem with Mesa 20 where some macros used by
6074 ;; Cogl went missing from eglext.h. This can likely be removed
6075 ;; for newer versions of Cogl or Mesa.
6076 ;; https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/19
6077 (substitute* '("configure"
6078 "cogl/winsys/cogl-winsys-egl-kms.c")
6079 (("#include <EGL/eglext.h>" all)
6080 (string-append all "\n#include <EGL/eglmesaext.h>\n")))
6081 #t))
6082 (add-before 'check 'start-xorg-server
6083 (lambda* (#:key tests? inputs #:allow-other-keys)
6084 (if tests?
6085 (begin
6086 ;; The test suite requires a running X server.
6087 (system (format #f "~a/bin/Xvfb :1 +extension GLX &"
6088 (assoc-ref inputs "xorg-server")))
6089 (setenv "DISPLAY" ":1")
6090 #t)
6091 (format #t "test suite not run~%"))
6092 #t)))))
6093 (home-page "http://www.clutter-project.org")
6094 (synopsis "Object oriented GL/GLES Abstraction/Utility Layer")
6095 (description
6096 "Cogl is a small library for using 3D graphics hardware to draw pretty
6097 pictures. The API departs from the flat state machine style of OpenGL and is
6098 designed to make it easy to write orthogonal components that can render
6099 without stepping on each others toes.")
6100 (license (list license:expat ; most of the code
6101 license:bsd-3 ; cogl/cogl-point-in-poly.c
6102 license:sgifreeb2.0 ; cogl-path/tesselator/
6103 license:asl2.0)))) ; examples/android/
6104
6105 (define-public clutter
6106 (package
6107 (name "clutter")
6108 (version "1.26.4")
6109 (source
6110 (origin
6111 (method url-fetch)
6112 (uri (string-append "mirror://gnome/sources/" name "/"
6113 (version-major+minor version) "/"
6114 name "-" version ".tar.xz"))
6115 (sha256
6116 (base32
6117 "1rn4cd1an6a9dfda884aqpcwcgq8dgydpqvb19nmagw4b70zlj4b"))))
6118 ;; NOTE: mutter exports a bundled fork of clutter, so when making changes
6119 ;; to clutter, corresponding changes may be appropriate in mutter as well.
6120 (build-system gnu-build-system)
6121 (outputs '("out"
6122 "doc")) ;9 MiB of gtk-doc HTML pages
6123 (native-inputs
6124 (list `(,glib "bin") ; for glib-genmarshal
6125 gobject-introspection
6126 libxslt
6127 pkg-config))
6128 (propagated-inputs
6129 (list atk
6130 cairo
6131 cogl
6132 glib
6133 gtk+
6134 json-glib
6135 libxcomposite
6136 libxdamage
6137 libxext
6138 xinput))
6139 (inputs
6140 (list eudev
6141 libxkbcommon))
6142 (arguments
6143 `(#:configure-flags (list "--enable-x11-backend=yes"
6144
6145 ;; This produces share/doc/{clutter,cally}.
6146 (string-append "--with-html-dir="
6147 (assoc-ref %outputs "doc")
6148 "/share/doc"))
6149 ;; XXX FIXME: Get test suite working. It would probably fail in the
6150 ;; same way the cogl tests fail, since clutter is based on cogl.
6151 #:tests? #f))
6152 (home-page "https://blogs.gnome.org/clutter/")
6153 (synopsis "OpenGL-based interactive canvas library")
6154 (description
6155 "Clutter is an OpenGL-based interactive canvas library, designed for
6156 creating fast, mainly 2D single window applications such as media box UIs,
6157 presentations, kiosk style applications and so on.")
6158 (license license:lgpl2.0+)))
6159
6160 (define-public clutter-gtk
6161 (package
6162 (name "clutter-gtk")
6163 (version "1.8.4")
6164 (source
6165 (origin
6166 (method url-fetch)
6167 (uri (string-append "mirror://gnome/sources/" name "/"
6168 (version-major+minor version) "/"
6169 name "-" version ".tar.xz"))
6170 (sha256
6171 (base32
6172 "01ibniy4ich0fgpam53q252idm7f4fn5xg5qvizcfww90gn9652j"))))
6173 (build-system gnu-build-system)
6174 (native-inputs
6175 (list pkg-config gobject-introspection))
6176 (propagated-inputs
6177 ;; clutter-gtk.pc refers to all these.
6178 (list clutter gtk+))
6179 (home-page "http://www.clutter-project.org")
6180 (synopsis "OpenGL-based interactive canvas library GTK+ widget")
6181 (description
6182 "Clutter is an OpenGL-based interactive canvas library, designed for
6183 creating fast, mainly 2D single window applications such as media box UIs,
6184 presentations, kiosk style applications and so on.")
6185 (license license:lgpl2.0+)))
6186
6187 (define-public clutter-gst
6188 (package
6189 (name "clutter-gst")
6190 (version "3.0.27")
6191 (source
6192 (origin
6193 (method url-fetch)
6194 (uri (string-append "mirror://gnome/sources/clutter-gst/"
6195 (version-major+minor version) "/"
6196 "clutter-gst-" version ".tar.xz"))
6197 (sha256
6198 (base32 "17czmpl92dzi4h3rn5rishk015yi3jwiw29zv8qan94xcmnbssgy"))))
6199 (build-system gnu-build-system)
6200 (native-inputs
6201 (list `(,glib "bin") ; for glib-mkenums
6202 pkg-config gobject-introspection))
6203 (inputs
6204 (list clutter gstreamer gst-plugins-base))
6205 (home-page "http://www.clutter-project.org")
6206 (synopsis "Integration library for using GStreamer with Clutter")
6207 (description
6208 "Clutter-Gst is an integration library for using GStreamer with Clutter.
6209 It provides a GStreamer sink to upload frames to GL and an actor that
6210 implements the ClutterGstPlayer interface using playbin. Clutter is an
6211 OpenGL-based interactive canvas library.")
6212 (license license:lgpl2.0+)))
6213
6214 (define-public libchamplain
6215 (package
6216 (name "libchamplain")
6217 (version "0.12.20")
6218 (source (origin
6219 (method url-fetch)
6220 (uri (string-append
6221 "mirror://gnome/sources/libchamplain/0.12/libchamplain-"
6222 version ".tar.xz"))
6223 (sha256
6224 (base32
6225 "0rihpb0npqpihqcdz4w03rq6xl7jdckfqskvv9diq2hkrnzv8ch2"))))
6226 (build-system meson-build-system)
6227 (native-inputs
6228 (list gobject-introspection pkg-config vala))
6229 (propagated-inputs
6230 (list libsoup-minimal-2
6231 sqlite
6232 clutter
6233 clutter-gtk
6234 `(,glib "bin") ;glib-mkenums, etc.
6235 cairo
6236 gtk+
6237 glib))
6238 (home-page "https://projects.gnome.org/libchamplain/")
6239 (synopsis "C library providing a ClutterActor to display maps")
6240 (description
6241 "libchamplain is a C library providing a ClutterActor to display maps.
6242 It also provides a Gtk+ widget to display maps in Gtk+ applications. Python
6243 and Perl bindings are also available. It supports numerous free map sources
6244 such as OpenStreetMap, OpenCycleMap, OpenAerialMap, and Maps for free.")
6245 (license license:lgpl2.1+)))
6246
6247 (define-public gom
6248 (package
6249 (name "gom")
6250 (version "0.4")
6251 (source
6252 (origin
6253 (method url-fetch)
6254 (uri (string-append "mirror://gnome/sources/gom/"
6255 (version-major+minor version) "/"
6256 "gom-" version ".tar.xz"))
6257 (sha256
6258 (base32
6259 "17ca07hpg7dqxjn0jpqim3xqcmplk2a87wbwrrlq3dd3m8381l38"))))
6260 (build-system meson-build-system)
6261 (arguments
6262 (list
6263 #:imported-modules `(,@%meson-build-system-modules
6264 (guix build python-build-system))
6265 #:modules '((guix build meson-build-system)
6266 ((guix build python-build-system) #:prefix python:)
6267 (guix build utils))
6268 #:configure-flags
6269 #~(list (string-append "-Dpygobject-override-dir="
6270 (python:site-packages %build-inputs %outputs)
6271 "/gi/overrides"))))
6272 (native-inputs
6273 (list gettext-minimal
6274 gobject-introspection
6275 pkg-config
6276 python
6277 python-pygobject))
6278 (inputs
6279 (list glib
6280 gdk-pixbuf
6281 sqlite))
6282 (home-page "https://wiki.gnome.org/Projects/Gom")
6283 (synopsis "Object mapper from GObjects to SQLite")
6284 (description
6285 "Gom provides an object mapper from GObjects to SQLite. It helps you
6286 write applications that need to store structured data as well as make complex
6287 queries upon that data.")
6288 (license license:lgpl2.1+)))
6289
6290 (define-public libgnome-games-support
6291 (package
6292 (name "libgnome-games-support")
6293 (version "2.0.0")
6294 (source
6295 (origin
6296 (method url-fetch)
6297 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
6298 (version-major+minor version) "/"
6299 "libgnome-games-support-" version ".tar.xz"))
6300 (sha256
6301 (base32
6302 "196jaga70r16bzypv4z07mnwr0xcm93gc91kxygcpp9fwdpiz0jk"))))
6303 (build-system meson-build-system)
6304 (arguments
6305 '(#:glib-or-gtk? #t
6306 #:phases
6307 (modify-phases %standard-phases
6308 (add-before 'check 'pre-check
6309 (lambda _
6310 ;; Tests require a writable HOME.
6311 (setenv "HOME" (getcwd)))))))
6312 (native-inputs
6313 (list intltool pkg-config vala))
6314 (propagated-inputs
6315 ;; Required by libgnome-games-support-1.0.pc
6316 (list gtk libgee))
6317 (home-page "https://www.gnome.org/")
6318 (synopsis "Useful functionality shared among GNOME games")
6319 (description
6320 "libgnome-games-support is a small library intended for internal use by
6321 GNOME Games, but it may be used by others.")
6322 (license license:lgpl3+)))
6323
6324 (define-public libgnome-games-support-1
6325 (package
6326 (inherit libgnome-games-support)
6327 (version "1.8.2")
6328 (source
6329 (origin
6330 (method url-fetch)
6331 (uri (string-append "mirror://gnome/sources/libgnome-games-support/"
6332 (version-major+minor version) "/"
6333 "libgnome-games-support-" version ".tar.xz"))
6334 (sha256
6335 (base32
6336 "0zggsg7h9nlcwwjcqc13pdjza17iiww325r3q0d76f5hlw24chr8"))))
6337 (propagated-inputs (modify-inputs (package-propagated-inputs
6338 libgnome-games-support)
6339 (replace "gtk" gtk+)))))
6340
6341 (define-public gnome-klotski
6342 (package
6343 (name "gnome-klotski")
6344 (version "3.38.2")
6345 (source (origin
6346 (method url-fetch)
6347 (uri (string-append "mirror://gnome/sources/" name "/"
6348 (version-major+minor version) "/"
6349 name "-" version ".tar.xz"))
6350 (sha256
6351 (base32
6352 "1qm01hdd5yp8chig62bj10912vclbdvywwczs84sfg4zci2phqwi"))))
6353 (build-system meson-build-system)
6354 (arguments
6355 '(#:glib-or-gtk? #t
6356 #:phases
6357 (modify-phases %standard-phases
6358 (add-after 'unpack 'skip-gtk-update-icon-cache
6359 ;; Don't create 'icon-theme.cache'.
6360 (lambda _
6361 (substitute* "build-aux/meson_post_install.py"
6362 (("gtk-update-icon-cache") (which "true"))))))))
6363 (native-inputs
6364 (list desktop-file-utils
6365 `(,glib "bin") ; for glib-compile-resources
6366 intltool
6367 itstool
6368 pkg-config
6369 vala
6370 libxml2))
6371 (inputs
6372 (list gtk+
6373 libgnome-games-support-1
6374 librsvg))
6375 (home-page "https://wiki.gnome.org/Apps/Klotski")
6376 (synopsis "Sliding block puzzles")
6377 (description
6378 "GNOME Klotski is a set of block sliding puzzles. The objective is to move
6379 the patterned block to the area bordered by green markers. To do so, you will
6380 need to slide other blocks out of the way. Complete each puzzle in as few moves
6381 as possible!")
6382 (license license:gpl2+)))
6383
6384 (define-public grilo
6385 (package
6386 (name "grilo")
6387 (version "0.3.15")
6388 (source
6389 (origin
6390 (method url-fetch)
6391 (uri (string-append "mirror://gnome/sources/grilo/"
6392 (version-major+minor version) "/"
6393 "grilo-" version ".tar.xz"))
6394 (sha256
6395 (base32 "0bbvaxw2das8826663z23y0acbdmcvggwdh64ws9jrk56vvsqlpk"))))
6396 (build-system meson-build-system)
6397 (arguments
6398 (list #:phases #~(modify-phases %standard-phases
6399 (add-before 'unpack 'set-HOME
6400 (lambda _
6401 ;; Tests require write access to HOME.
6402 (setenv "HOME" "/tmp"))))))
6403 (native-inputs
6404 (list `(,glib "bin") ; for glib-mkenums and glib-genmarshal
6405 gettext-minimal
6406 gsettings-desktop-schemas
6407 pkg-config
6408 gobject-introspection
6409 gtk-doc/stable
6410 vala))
6411 (inputs
6412 (list cyrus-sasl
6413 glib
6414 gtk+
6415 liboauth
6416 libsoup
6417 libxml2
6418 totem-pl-parser))
6419 (native-search-paths
6420 (list (search-path-specification
6421 (variable "GRL_PLUGIN_PATH")
6422 (files (list (string-append "lib/grilo-"
6423 (version-major+minor version)))))))
6424 (home-page "https://wiki.gnome.org/action/show/Projects/Grilo")
6425 (synopsis "Framework for discovering and browsing media")
6426 (description
6427 "Grilo is a framework focused on making media discovery and browsing easy
6428 for application developers.")
6429 (license license:lgpl2.1+)))
6430
6431 (define-public grilo-plugins
6432 (package
6433 (name "grilo-plugins")
6434 (version "0.3.15")
6435 (source
6436 (origin
6437 (method url-fetch)
6438 (uri (string-append "mirror://gnome/sources/" name "/"
6439 (version-major+minor version) "/"
6440 name "-" version ".tar.xz"))
6441 (sha256
6442 (base32 "0cxbxg7i9qd1pyfjj7c15x9lawvaw5608jk2apcrac7rakcw6645"))))
6443 (build-system meson-build-system)
6444 (native-inputs
6445 (list gettext-minimal
6446 ;; Gstreamer plugins are required for tests.
6447 gst-plugins-good
6448 gst-plugins-bad
6449 `(,glib "bin")
6450 itstool
6451 pkg-config))
6452 (inputs
6453 (list avahi
6454 grilo
6455 gnome-online-accounts
6456 gom
6457 gstreamer
6458 json-glib
6459 avahi
6460 libgdata
6461 libmediaart
6462 libsoup
6463 python-pygobject
6464 totem-pl-parser
6465 tracker
6466 tracker-miners))
6467 (arguments
6468 `(#:glib-or-gtk? #t
6469 ;;Disable lua-factory as it needs missing dependencies
6470 #:configure-flags '("-Denable-lua-factory=no")
6471 #:phases
6472 (modify-phases %standard-phases
6473 (add-before 'configure 'set-shell
6474 (lambda _
6475 (setenv "SHELL" (which "bash"))))
6476 ;; Disable the tracker test that requires the UPower daemon.
6477 (add-before 'configure 'fix-tests
6478 (lambda* (#:key inputs #:allow-other-keys)
6479 (substitute* "tests/tracker3/meson.build"
6480 (("'test_tracker3'.*") "")))))))
6481 (home-page "https://live.gnome.org/Grilo")
6482 (synopsis "Plugins for the Grilo media discovery library")
6483 (description
6484 "Grilo is a framework focused on making media discovery and browsing easy
6485 for application developers. This package provides plugins for common media
6486 discovery protocols.")
6487 (license license:lgpl2.1+)))
6488
6489 (define-public totem
6490 (package
6491 (name "totem")
6492 (version "42.0")
6493 (source
6494 (origin
6495 (method url-fetch)
6496 (uri (string-append "mirror://gnome/sources/totem/"
6497 (version-major version) "/"
6498 "totem-" version ".tar.xz"))
6499 (sha256
6500 (base32 "1az6ay7zhz2naqrzcfldx1yv2ylw1yjx76g3mqrqppwmvcflkw2a"))))
6501 (build-system meson-build-system)
6502 (native-inputs
6503 (list pkg-config
6504 desktop-file-utils
6505 gettext-minimal
6506 gobject-introspection
6507 `(,glib "bin") ;for 'glib-mkenums'
6508 itstool
6509 libxml2
6510 xorg-server-for-tests))
6511 (propagated-inputs
6512 (list dconf))
6513 (inputs
6514 (list gtk+
6515 gdk-pixbuf
6516 atk
6517 cairo
6518 dbus-glib
6519 xorgproto
6520 libxxf86vm
6521 libxtst
6522 libxrandr
6523 libxml2
6524 libsoup
6525 libpeas
6526 librsvg
6527 libhandy
6528 gnome-desktop
6529 gstreamer
6530 gst-plugins-base
6531 gst-plugins-good
6532 gsettings-desktop-schemas
6533 adwaita-icon-theme
6534 python
6535 python-pygobject
6536 totem-pl-parser
6537 grilo
6538 grilo-plugins
6539 vala))
6540 (arguments
6541 (list
6542 #:glib-or-gtk? #t
6543 ;; Disable automatic GStreamer plugin installation via PackageKit and
6544 ;; all that.
6545 #:configure-flags #~(list "-Denable-easy-codec-installation=no"
6546 ;; Do not build .a files for the plugins, it's
6547 ;; completely useless. This saves 2 MiB.
6548 "--default-library" "shared")
6549 #:phases
6550 #~(modify-phases %standard-phases
6551 (add-after 'unpack 'skip-gtk-update-icon-cache
6552 ;; Don't create 'icon-theme.cache'.
6553 (lambda _
6554 (substitute* "meson_post_install.py"
6555 (("gtk-update-icon-cache") "true"))))
6556 (add-before 'install 'disable-cache-generation
6557 (lambda _
6558 (setenv "DESTDIR" "/")))
6559 (add-before 'check 'pre-check
6560 (lambda _
6561 ;; Tests require a running X server.
6562 (system "Xvfb :1 &")
6563 (setenv "DISPLAY" ":1")))
6564 (add-after 'install 'wrap-totem
6565 (lambda* (#:key inputs outputs #:allow-other-keys)
6566 (let ((out (assoc-ref outputs "out"))
6567 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
6568 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
6569 (grl-plugin-path (getenv "GRL_PLUGIN_PATH")))
6570 (wrap-program (string-append out "/bin/totem")
6571 `("GI_TYPELIB_PATH" ":" suffix (,gi-typelib-path))
6572 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
6573 `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))
6574 (wrap-program (string-append out "/bin/totem-video-thumbnailer")
6575 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))))))))
6576 (home-page "https://wiki.gnome.org/Apps/Videos")
6577 (synopsis "Simple media player for GNOME based on GStreamer")
6578 (description "Totem is a simple yet featureful media player for GNOME
6579 which can read a large number of file formats.")
6580 ;; GPL2+ with an exception clause for non-GPL compatible GStreamer plugins
6581 ;; to be used and distributed together with GStreamer and Totem. See
6582 ;; file://COPYING in the source distribution for details.
6583 (license license:gpl2+)))
6584
6585 (define-public rhythmbox
6586 (package
6587 (name "rhythmbox")
6588 (version "3.4.6")
6589 (source (origin
6590 (method url-fetch)
6591 (uri (string-append "mirror://gnome/sources/rhythmbox/"
6592 (version-major+minor version) "/"
6593 "rhythmbox-" version ".tar.xz"))
6594 (sha256
6595 (base32
6596 "0d5hbsdk2p8w567mfzy4kk8xn4d227hrbyy857li3r2mrq884mpr"))))
6597 (build-system meson-build-system)
6598 (arguments
6599 (list
6600 #:glib-or-gtk? #t
6601 #:phases
6602 #~(modify-phases %standard-phases
6603 (add-after 'unpack 'skip-gtk-update-icon-cache
6604 (lambda _
6605 (substitute* "meson.build"
6606 (("gtk_update_icon_cache: true")
6607 "gtk_update_icon_cache: false"))))
6608 (add-after 'install 'wrap-rhythmbox
6609 (lambda* (#:key outputs #:allow-other-keys)
6610 (wrap-program (search-input-file outputs "bin/rhythmbox")
6611 `("GI_TYPELIB_PATH" ":" prefix
6612 (,(getenv "GI_TYPELIB_PATH")))
6613 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
6614 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
6615 `("GRL_PLUGIN_PATH" ":" prefix
6616 (,(getenv "GRL_PLUGIN_PATH")))
6617 `("GUIX_PYTHONPATH" ":" prefix
6618 (,(getenv "GUIX_PYTHONPATH")))))))))
6619 (propagated-inputs
6620 (list dconf))
6621 (native-inputs
6622 (list desktop-file-utils
6623 gettext-minimal
6624 gobject-introspection
6625 `(,glib "bin")
6626 itstool
6627 pkg-config
6628 vala))
6629 (inputs
6630 ;; TODO:
6631 ;; * libgpod
6632 ;; * mx
6633 ;; TODO: clutter* only used by visualizer plugin, which also requires mx
6634 ;;clutter
6635 ;;clutter-gtk
6636 ;;clutter-gst
6637 (list adwaita-icon-theme
6638 atk
6639 bash-minimal
6640 brasero
6641 json-glib
6642 gmime
6643 gnome-desktop
6644 grilo
6645 grilo-plugins
6646 gsettings-desktop-schemas
6647 gst-plugins-base
6648 gst-plugins-good
6649 gstreamer
6650 gtk+
6651 libgudev
6652 libnotify
6653 libpeas
6654 libsecret
6655 libmtp
6656 libsoup-minimal-2
6657 libxml2
6658 lirc
6659 pango
6660 python
6661 python-pygobject
6662 tdb
6663 totem-pl-parser))
6664 (home-page "https://wiki.gnome.org/Apps/Rhythmbox")
6665 (synopsis "Music player for GNOME")
6666 (description "Rhythmbox is a music playing application for GNOME. It
6667 supports playlists, song ratings, and any codecs installed through gstreamer.")
6668 (license license:gpl2+)))
6669
6670 (define-public eog
6671 (package
6672 (name "eog")
6673 (version "42.3")
6674 (source (origin
6675 (method url-fetch)
6676 (uri (string-append "mirror://gnome/sources/" name "/"
6677 (version-major version) "/"
6678 name "-" version ".tar.xz"))
6679 (sha256
6680 (base32
6681 "0fpl8wz1j10r59m20d61b7wmp8ga48dd7svqv1a2ip66ig1b7h9h"))))
6682 (build-system meson-build-system)
6683 (arguments
6684 (list
6685 #:glib-or-gtk? #t
6686 #:configure-flags
6687 ;; Otherwise, the RUNPATH will lack the final 'eog' path component.
6688 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
6689 #$output "/lib/eog"))
6690 #:phases
6691 #~(modify-phases %standard-phases
6692 (add-after 'unpack 'skip-gtk-update-icon-cache
6693 ;; Don't create 'icon-theme.cache'.
6694 (lambda _
6695 (substitute* "meson.build"
6696 (("gtk_update_icon_cache: true")
6697 "gtk_update_icon_cache: false"))))
6698 (add-after 'install 'wrap-eog
6699 (lambda* (#:key outputs #:allow-other-keys)
6700 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
6701 (wrap-program (search-input-file outputs "bin/eog")
6702 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))))
6703 (propagated-inputs
6704 (list dconf
6705 libhandy)) ;libhandy is required by eog.pc
6706 (native-inputs
6707 (list gettext-minimal
6708 `(,glib "bin")
6709 gobject-introspection
6710 itstool
6711 libxml2
6712 pkg-config))
6713 (inputs
6714 (list adwaita-icon-theme
6715 bash-minimal
6716 exempi
6717 gnome-desktop
6718 gtk
6719 lcms
6720 libexif
6721 libjpeg-turbo
6722 libpeas
6723 libportal
6724 librsvg
6725 shared-mime-info))
6726 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6727 (synopsis "GNOME image viewer")
6728 (description "Eye of GNOME is the GNOME image viewer. It
6729 supports image conversion, rotation, and slideshows.")
6730 (license license:gpl2+)))
6731
6732 (define-public eog-plugins
6733 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6734 ;; $DATA/eog/plugins, where DATA is one of the entries in
6735 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6736 ;; 'XDG_DATA_DIRS' appropriately set.
6737 (package
6738 (name "eog-plugins")
6739 (version "42.1")
6740 (source (origin
6741 (method url-fetch)
6742 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6743 (version-major+minor version) "/"
6744 "eog-plugins-" version ".tar.xz"))
6745 (sha256
6746 (base32
6747 "0prymlrfh66p03va5aj30wazshp7bn80gzcsj9dgsmss2k512wlb"))))
6748 (build-system meson-build-system)
6749 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6750 (synopsis "Extensions for the Eye of GNOME image viewer")
6751 (native-inputs
6752 (list gettext-minimal
6753 pkg-config
6754 python))
6755 (inputs
6756 (list eog
6757 glib
6758 gtk+
6759 libchamplain
6760 libexif
6761 libgdata
6762 libpeas))
6763 (description
6764 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6765 notably:
6766
6767 @itemize
6768 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6769 @item @dfn{Map}, which displays a map of where the picture was taken on the
6770 side panel;
6771 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6772 @end itemize\n")
6773
6774 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6775 ;; long suspicious byte stream that goes to a
6776 ;; ".gresource.eog_postasa_plugin" ELF section.
6777 (license license:gpl2+)))
6778
6779 (define-public libgudev
6780 (package
6781 (name "libgudev")
6782 (version "236")
6783 (source (origin
6784 (method url-fetch)
6785 (uri (string-append "mirror://gnome/sources/" name "/"
6786 version "/" name "-" version ".tar.xz"))
6787 (sha256
6788 (base32
6789 "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
6790 (build-system meson-build-system)
6791 (native-inputs
6792 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6793 ("gobject-introspection" ,gobject-introspection)
6794 ("pkg-config" ,pkg-config)))
6795 (propagated-inputs
6796 (list glib ; in Requires of gudev-1.0.pc
6797 eudev)) ; in Requires.private of gudev-1.0.pc
6798 (inputs
6799 `(("udev" ,eudev)))
6800 (home-page "https://wiki.gnome.org/Projects/libgudev")
6801 (synopsis "GObject bindings for libudev")
6802 (description
6803 "This library provides GObject bindings for libudev. It was originally
6804 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6805 (license license:lgpl2.1+)))
6806
6807 (define-public gvfs
6808 (package
6809 (name "gvfs")
6810 (version "1.50.2")
6811 (source (origin
6812 (method url-fetch)
6813 (uri (string-append "mirror://gnome/sources/gvfs/"
6814 (version-major+minor version) "/"
6815 "gvfs-" version ".tar.xz"))
6816 (sha256
6817 (base32
6818 "0pmc0vda1ksm9l7v64h4bm8qnv16amb7nifgy0882hzg2n62pmq3"))))
6819 (build-system meson-build-system)
6820 (arguments
6821 (list #:glib-or-gtk? #t
6822 #:configure-flags
6823 #~(list "-Dsystemduserunitdir=no"
6824 "-Dtmpfilesdir=no"
6825 ;; Otherwise, the RUNPATH will lack the final path component.
6826 (string-append "-Dc_link_args=-Wl,-rpath="
6827 #$output "/lib/gvfs"))))
6828 (native-inputs
6829 (list `(,glib "bin") ;for glib-genmarshal, etc.
6830 gettext-minimal
6831 gtk-doc/stable
6832 pkg-config
6833 libxslt))
6834 (inputs
6835 (list avahi
6836 docbook-xml-4.2
6837 docbook-xsl
6838 dbus
6839 elogind
6840 fuse-3
6841 gcr
6842 glib
6843 gnome-online-accounts
6844 gsettings-desktop-schemas
6845 libarchive
6846 libbluray
6847 libcap
6848 libcdio-paranoia
6849 libgcrypt
6850 libgdata
6851 libgphoto2
6852 libgudev
6853 libimobiledevice
6854 libmtp
6855 libnfs
6856 libsecret
6857 samba
6858 libsoup
6859 libxml2
6860 openssh
6861 polkit
6862 udisks))
6863 (home-page "https://wiki.gnome.org/gvfs/")
6864 (synopsis "Userspace virtual file system for GIO")
6865 (description
6866 "GVFS is a userspace virtual file system designed to work with the I/O
6867 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS
6868 support to all applications using the GIO API. It also supports exposing the
6869 GVFS mounts to non-GIO applications using FUSE.
6870
6871 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6872 DAV, and others.")
6873 (license license:lgpl2.0+)))
6874
6875 (define-public gusb-minimal
6876 (package
6877 (name "gusb-minimal")
6878 (version "0.3.5")
6879 (source (origin
6880 (method git-fetch)
6881 (uri (git-reference
6882 (url "https://github.com/hughsie/libgusb")
6883 (commit version)))
6884 (file-name (git-file-name name version))
6885 (sha256
6886 (base32
6887 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6888 (build-system meson-build-system)
6889 (arguments
6890 `(#:tests? #f ;libusb fails to initialize. Wonder what that is.
6891 #:configure-flags
6892 (cons "-Ddocs=false"
6893 (if ,(%current-target-system)
6894 ;; Introspection data cannot currently be cross-compiled.
6895 '("-Dintrospection=false"
6896 ;; Requires introspection data.
6897 "-Dvapi=false")
6898 '()))))
6899 (native-inputs
6900 (list gobject-introspection pkg-config python vala))
6901 (propagated-inputs
6902 ;; Both of these are required by gusb.pc.
6903 (list glib libusb))
6904 (home-page "https://github.com/hughsie/libgusb")
6905 (synopsis "GLib binding for libusb1")
6906 (description
6907 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6908 asynchronous control, bulk and interrupt transfers with proper cancellation
6909 and integration into a mainloop. This makes it easy to integrate low level
6910 USB transfers with your high-level application or system daemon.")
6911 (license license:lgpl2.1+)))
6912
6913 (define-public gusb
6914 (package/inherit gusb-minimal
6915 (name "gusb")
6916 (arguments
6917 (substitute-keyword-arguments (package-arguments gusb-minimal)
6918 ((#:configure-flags flags)
6919 `(cons "-Ddocs=true"
6920 (delete "-Ddocs=false" ,flags)))))
6921 (native-inputs
6922 (cons `("gtk-doc" ,gtk-doc/stable)
6923 (package-native-inputs gusb-minimal)))))
6924
6925 (define-public simple-scan
6926 (package
6927 (name "simple-scan")
6928 (version "42.1")
6929 (source
6930 (origin
6931 (method url-fetch)
6932 (uri (string-append "mirror://gnome/sources/simple-scan/"
6933 (version-major version) "/"
6934 "simple-scan-" version ".tar.xz"))
6935 (sha256
6936 (base32 "09i23f8j3knppyxmikzfq9s09xarsgp9sqx9mfyvas8p3ihw16w5"))))
6937 (build-system meson-build-system)
6938 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6939 (arguments
6940 '(#:glib-or-gtk? #t))
6941 (native-inputs
6942 (list gettext-minimal
6943 itstool
6944 `(,glib "bin") ; glib-compile-schemas, etc.
6945 pkg-config
6946 python
6947 vala
6948 libxml2))
6949 (inputs
6950 (list gtk+
6951 zlib
6952 cairo
6953 colord
6954 gdk-pixbuf
6955 gusb
6956 libhandy
6957 sane-backends))
6958 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6959 (synopsis "Document and image scanner")
6960 (description
6961 "Document Scanner is an easy-to-use application that lets you connect your
6962 scanner and quickly capture images and documents in an appropriate format. It
6963 supports any scanner for which a suitable SANE driver is available, which is
6964 almost all of them.")
6965 (license license:gpl3+)))
6966
6967 (define-public eolie
6968 (package
6969 (name "eolie")
6970 (version "0.9.101")
6971 (source (origin
6972 (method url-fetch)
6973 (uri (string-append "https://adishatz.org/eolie/eolie-"
6974 version ".tar.xz"))
6975 (sha256
6976 (base32
6977 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6978 (build-system meson-build-system)
6979 (arguments
6980 `(#:glib-or-gtk? #t
6981 #:phases
6982 (modify-phases %standard-phases
6983 (add-after 'unpack 'skip-gtk-update-icon-cache
6984 ;; Don't create 'icon-theme.cache'.
6985 (lambda _
6986 (substitute* "meson_post_install.py"
6987 (("gtk-update-icon-cache") "true"))
6988 #t))
6989 (add-after 'wrap 'wrap-more
6990 (lambda* (#:key inputs outputs #:allow-other-keys)
6991 (let* ((out (assoc-ref outputs "out"))
6992 ;; These libraries must be on LD_LIBRARY_PATH.
6993 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
6994 "atk" "gtk+" "gsettings-desktop-schemas"
6995 "gobject-introspection"))
6996 (path (string-join
6997 (map (lambda (lib)
6998 (string-append (assoc-ref inputs lib) "/lib"))
6999 libs)
7000 ":")))
7001 (wrap-program (string-append out "/bin/eolie")
7002 `("LD_LIBRARY_PATH" ":" prefix (,path))
7003 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
7004 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
7005 #t)))))
7006 (native-inputs
7007 `(("intltool" ,intltool)
7008 ("itstool" ,itstool)
7009 ("pkg-config" ,pkg-config)
7010 ("python" ,python)
7011 ("glib:bin" ,glib "bin")))
7012 (inputs
7013 `(("gobject-introspection" ,gobject-introspection)
7014 ("glib-networking" ,glib-networking)
7015 ("cairo" ,cairo)
7016 ("gtk+" ,gtk+)
7017 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
7018 ("python" ,python-wrapper)
7019 ("python-dateutil" ,python-dateutil)
7020 ("python-pyfxa" ,python-pyfxa)
7021 ("python-pygobject" ,python-pygobject)
7022 ("python-pycairo" ,python-pycairo)
7023 ("python-pycrypto" ,python-pycrypto)
7024 ("libhandy" ,libhandy)
7025 ("libsecret" ,libsecret)
7026 ("gtkspell3" ,gtkspell3)
7027 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7028 ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
7029 ("webkitgtk" ,webkitgtk)))
7030 (home-page "https://wiki.gnome.org/Apps/Eolie")
7031 (synopsis "Web browser for GNOME")
7032 (description
7033 "Eolie is a new web browser for GNOME. It features Firefox sync support,
7034 a secret password store, an adblocker, and a modern UI.")
7035 (license license:gpl3+)))
7036
7037 (define-public epiphany
7038 (package
7039 (name "epiphany")
7040 (version "42.4")
7041 (source (origin
7042 (method url-fetch)
7043 (uri (string-append "mirror://gnome/sources/epiphany/"
7044 (version-major version) "/"
7045 "epiphany-" version ".tar.xz"))
7046 (sha256
7047 (base32
7048 "0q08ixzgp341g5pq6rfy5q75m9bvddvl8na3qa5v5vi056nkh29p"))))
7049 (build-system meson-build-system)
7050 (arguments
7051 (list
7052 #:glib-or-gtk? #t
7053 #:phases
7054 #~(modify-phases %standard-phases
7055 (add-after 'unpack 'skip-gtk-update-icon-cache
7056 ;; Don't create 'icon-theme.cache'.
7057 (lambda _
7058 (substitute* "post_install.py"
7059 (("gtk-update-icon-cache") "true"))))
7060 (add-after 'unpack 'disable-failing-tests
7061 (lambda _
7062 (substitute* "tests/meson.build"
7063 ;; embed_shell fails, because webkitgtk apparently no longer
7064 ;; supports overriding the ftp schema web_app_utils fails due
7065 ;; to missing network access.
7066 (("(embed_shell|web_app_utils)_test,")
7067 "find_program('sh'), args: ['-c', 'exit 77'],"))))
7068 (add-before 'check 'pre-check
7069 (lambda _
7070 ;; Tests require a running X server.
7071 (system "Xvfb :1 &")
7072 (setenv "DISPLAY" ":1"))))
7073 #:configure-flags
7074 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
7075 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7076 #$output "/lib/epiphany")
7077 "-Dsoup2=disabled"))) ;use libsoup 3
7078 (propagated-inputs (list dconf))
7079 (native-inputs
7080 (list desktop-file-utils ; for update-desktop-database
7081 gettext-minimal
7082 `(,glib "bin") ; for glib-mkenums
7083 itstool
7084 pkg-config
7085 libxml2
7086 xorg-server-for-tests))
7087 (inputs
7088 (list avahi
7089 gcr
7090 glib-networking
7091 gnome-desktop
7092 gsettings-desktop-schemas
7093 iso-codes
7094 json-glib
7095 libarchive
7096 libdazzle
7097 libhandy
7098 libnotify
7099 libportal
7100 librsvg ; for loading SVG files
7101 libsecret
7102 libsoup
7103 libxslt
7104 nettle ; for hogweed
7105 sqlite
7106 webkitgtk))
7107 (home-page "https://wiki.gnome.org/Apps/Web")
7108 (synopsis "GNOME web browser")
7109 (description
7110 "Epiphany is a GNOME web browser targeted at non-technical users. Its
7111 principles are simplicity and standards compliance.")
7112 (license license:gpl2+)))
7113
7114 (define-public d-feet
7115 (package
7116 (name "d-feet")
7117 (version "0.3.16")
7118 (source (origin
7119 (method url-fetch)
7120 (uri (string-append "mirror://gnome/sources/" name "/"
7121 (version-major+minor version) "/"
7122 name "-" version ".tar.xz"))
7123 (sha256
7124 (base32
7125 "1jqw5ndpgyb0zxh0g21ai1911lfrm56vz18xbccfqm4sk95wwcw7"))))
7126 (build-system meson-build-system)
7127 (arguments
7128 (list
7129 #:glib-or-gtk? #t
7130 #:phases
7131 #~(modify-phases %standard-phases
7132 (add-before 'check 'pre-check
7133 (lambda _
7134 ;; The test suite requires a running X server.
7135 (system "Xvfb :1 &")
7136 (setenv "DISPLAY" ":1")))
7137 (add-before 'install 'disable-gtk-update-icon-cache
7138 (lambda _
7139 (setenv "DESTDIR" "/")))
7140 (add-after 'install 'wrap-program
7141 (lambda* (#:key outputs #:allow-other-keys)
7142 (wrap-program (search-input-file outputs "bin/d-feet")
7143 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
7144 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
7145 (native-inputs
7146 (list `(,glib "bin")
7147 intltool
7148 itstool
7149 libxml2
7150 pkg-config
7151 python-pep8
7152 xorg-server-for-tests))
7153 (inputs
7154 (list gobject-introspection
7155 gtk+
7156 python-wrapper
7157 python-pygobject))
7158 (home-page "https://wiki.gnome.org/Apps/DFeet")
7159 (synopsis "D-Bus debugger")
7160 (description
7161 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
7162 of running programs and invoke methods on those interfaces.")
7163 (license license:gpl2+)))
7164
7165 (define-public yelp-xsl
7166 (package
7167 (name "yelp-xsl")
7168 (version "41.0")
7169 (source
7170 (origin
7171 (method url-fetch)
7172 (uri
7173 (string-append "mirror://gnome/sources/" name "/"
7174 (version-major version) "/"
7175 name "-" version ".tar.xz"))
7176 (sha256
7177 (base32 "19d46rkajvr0f04560vlrzwvac88x5j8ilvzwkawbn5vjg069kf8"))))
7178 (build-system gnu-build-system)
7179 (arguments
7180 `(#:configure-flags
7181 (list
7182 "--enable-doc")))
7183 (native-inputs
7184 `(("ducktype" ,mallard-ducktype)
7185 ("gettext" ,gettext-minimal)
7186 ("intltool" ,intltool)
7187 ("itstool" ,itstool)
7188 ("xmllint" ,libxml2)
7189 ("xsltproc" ,libxslt)))
7190 (synopsis "XSL stylesheets for Yelp")
7191 (description "Yelp-XSL is a collection of programs and data files to help
7192 you build, maintain, and distribute documentation. It provides XSLT stylesheets
7193 that can be built upon for help viewers and publishing systems. These
7194 stylesheets output JavaScript and CSS content, and reference images
7195 provided by yelp-xsl. It also redistributes copies of the jQuery and
7196 jQuery.Syntax JavaScript libraries.")
7197 (home-page "https://wiki.gnome.org/Apps/Yelp")
7198 (license
7199 (list
7200 ;; XSLT
7201 license:gpl2+
7202 ;; Images
7203 license:lgpl2.1+
7204 ;; JavaScript
7205 license:expat))))
7206
7207 (define-public yelp
7208 (package
7209 (name "yelp")
7210 (version "42.1")
7211 (source (origin
7212 (method url-fetch)
7213 (uri (string-append "mirror://gnome/sources/" name "/"
7214 (version-major version) "/"
7215 name "-" version ".tar.xz"))
7216 (sha256
7217 (base32
7218 "0h9vf4fx056imjf8ibmn03wg1c3hniipy1nsm2jqi62lp1m19c95"))))
7219 (build-system glib-or-gtk-build-system)
7220 (native-inputs
7221 (list `(,glib "bin") ; for glib-genmarshal, etc.
7222 intltool
7223 itstool
7224 pkg-config))
7225 (propagated-inputs
7226 (list dconf))
7227 (inputs
7228 (list gsettings-desktop-schemas
7229 libhandy
7230 libxslt
7231 sqlite
7232 webkitgtk
7233 yelp-xsl))
7234 (home-page "https://wiki.gnome.org/Apps/Yelp")
7235 (synopsis "GNOME help browser")
7236 (description
7237 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
7238 man, info, and HTML documents. It can locate documents according to the
7239 freedesktop.org help system specification.")
7240 (license license:gpl2+)))
7241
7242 (define-public yelp-tools
7243 (package
7244 (name "yelp-tools")
7245 (version "3.32.2")
7246 (source
7247 (origin
7248 (method url-fetch)
7249 (uri
7250 (string-append "mirror://gnome/sources/" name "/"
7251 (version-major+minor version) "/"
7252 name "-" version ".tar.xz"))
7253 (sha256
7254 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
7255 (build-system gnu-build-system)
7256 (native-inputs
7257 (list pkg-config))
7258 (inputs
7259 (list yelp-xsl))
7260 (propagated-inputs
7261 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
7262 `(("itstool" ,itstool)
7263 ("xmllint" ,libxml2)
7264 ("xsltproc" ,libxslt)))
7265 (synopsis "Yelp documentation tools")
7266 (description
7267 "Yelp-tools is a collection of scripts and build utilities to help create,
7268 manage, and publish documentation for Yelp and the web. Most of the heavy
7269 lifting is done by packages like yelp-xsl and itstool. This package just
7270 wraps things up in a developer-friendly way.")
7271 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
7272 (license license:gpl2+)))
7273
7274 (define-public libgee
7275 (package
7276 (name "libgee")
7277 (version "0.20.5")
7278 (source (origin
7279 (method url-fetch)
7280 (uri (string-append "mirror://gnome/sources/libgee/"
7281 (version-major+minor version) "/"
7282 "libgee-" version ".tar.xz"))
7283 (sha256
7284 (base32
7285 "060mbj6ihca315a6wqj47mfzm2881azwm5bl0vwjg9ymay4km1ii"))))
7286 (build-system gnu-build-system)
7287 (arguments
7288 (list
7289 #:phases
7290 #~(modify-phases %standard-phases
7291 (add-after 'unpack 'fix-introspection-install-dir
7292 (lambda _
7293 (substitute* "gee/Makefile.in"
7294 (("@INTROSPECTION_GIRDIR@")
7295 (string-append #$output "/share/gir-1.0/"))
7296 (("@INTROSPECTION_TYPELIBDIR@")
7297 (string-append #$output "/lib/girepository-1.0/"))))))))
7298 (native-inputs
7299 (list `(,glib "bin") pkg-config))
7300 (inputs
7301 (list glib gobject-introspection))
7302 (home-page "https://wiki.gnome.org/Projects/Libgee")
7303 (synopsis "GObject collection library")
7304 (description
7305 "Libgee is a utility library providing GObject-based interfaces and
7306 classes for commonly used data structures.")
7307 (license license:lgpl2.1+)))
7308
7309 (define-public gexiv2
7310 (package
7311 (name "gexiv2")
7312 (version "0.14.0")
7313 (source (origin
7314 (method url-fetch)
7315 (uri (string-append "mirror://gnome/sources/" name "/"
7316 (version-major+minor version) "/"
7317 name "-" version ".tar.xz"))
7318 (sha256
7319 (base32
7320 "17nnsslj2wpizpx742w5lxdzcz5mx6jmsqcrli7zddi0zyk7k0p5"))))
7321 (build-system meson-build-system)
7322 (arguments
7323 (list
7324 #:imported-modules `(,@%meson-build-system-modules
7325 (guix build python-build-system))
7326 #:modules '((guix build meson-build-system)
7327 ((guix build python-build-system) #:prefix python:)
7328 (guix build utils))
7329 #:configure-flags
7330 #~(list (string-append "-Dpython3_girdir="
7331 (python:site-packages %build-inputs %outputs)
7332 "/gi/overrides"))))
7333 (native-inputs
7334 (list gcr
7335 `(,glib "bin")
7336 pkg-config
7337 python
7338 python-pygobject
7339 vala))
7340 (propagated-inputs
7341 ;; Listed in "Requires" section of gexiv2.pc
7342 (list exiv2))
7343 (inputs
7344 (list glib
7345 gobject-introspection))
7346 (home-page "https://wiki.gnome.org/Projects/gexiv2")
7347 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
7348 (description
7349 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
7350 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
7351 metadata in photo and video files of various formats.")
7352 (license license:gpl2+)))
7353
7354 (define-public shotwell
7355 (package
7356 (name "shotwell")
7357 (version "0.31.5")
7358 (source (origin
7359 (method url-fetch)
7360 (uri (string-append "mirror://gnome/sources/shotwell/"
7361 (version-major+minor version) "/"
7362 "shotwell-" version ".tar.xz"))
7363 (sha256
7364 (base32
7365 "06awlix23y1cd89n6v9vip48cg08fjq8v6zaw38k5clrrv38y11v"))))
7366 (build-system meson-build-system)
7367 (arguments
7368 '(#:glib-or-gtk? #t
7369 #:phases
7370 (modify-phases %standard-phases
7371 (add-after 'unpack 'skip-gtk-update-icon-cache
7372 (lambda _
7373 (substitute* "build-aux/meson/postinstall.py"
7374 (("gtk-update-icon-cache") (which "true"))
7375 (("update-desktop-database") (which "true"))))))))
7376 (propagated-inputs
7377 (list dconf))
7378 (native-inputs
7379 (list gettext-minimal
7380 `(,glib "bin")
7381 itstool
7382 pkg-config
7383 python
7384 vala-next))
7385 (inputs
7386 (list gcr
7387 gexiv2
7388 gst-plugins-base
7389 gstreamer
7390 json-glib
7391 libgdata
7392 libgee
7393 libgphoto2
7394 libgudev
7395 libraw
7396 libsecret
7397 libwebp
7398 libxml2
7399 sqlite
7400 webkitgtk))
7401 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7402 (synopsis "Photo manager for GNOME 3")
7403 (description
7404 "Shotwell is a digital photo manager designed for the GNOME desktop
7405 environment. It allows you to import photos from disk or camera, organize
7406 them by keywords and events, view them in full-window or fullscreen mode, and
7407 share them with others via social networking and more.")
7408 (license license:lgpl2.1+)))
7409
7410 (define-public file-roller
7411 (package
7412 (name "file-roller")
7413 (version "3.42.0")
7414 (source (origin
7415 (method url-fetch)
7416 (uri (string-append "mirror://gnome/sources/file-roller/"
7417 (version-major+minor version) "/"
7418 "file-roller-" version ".tar.xz"))
7419 (sha256
7420 (base32
7421 "1iq24g2z7kf1a6kn9asp96lc59r8pxxjvcmm5r7zy47cadnqwhqw"))))
7422 (build-system meson-build-system)
7423 (arguments
7424 (list #:glib-or-gtk? #t
7425 #:phases #~(modify-phases %standard-phases
7426 (add-before 'install 'disable-gtk-update-icon-cache
7427 (lambda _
7428 (setenv "DESTDIR" "/"))))))
7429 (native-inputs
7430 (list desktop-file-utils
7431 gettext-minimal
7432 `(,glib "bin")
7433 itstool
7434 pkg-config
7435 python))
7436 ;; TODO: Add libnautilus.
7437 (inputs
7438 (list gtk+
7439 json-glib
7440 libarchive
7441 libhandy
7442 libnotify
7443 nettle
7444 libxml2))
7445 (synopsis "Graphical archive manager for GNOME")
7446 (description "File Roller is an archive manager for the GNOME desktop
7447 environment that allows users to view, unpack, and create compressed archives
7448 such as gzip tarballs.")
7449 (home-page "http://fileroller.sourceforge.net/")
7450 (license license:gpl2+)))
7451
7452 (define-public gnome-session
7453 (package
7454 (name "gnome-session")
7455 (version "42.0")
7456 (source (origin
7457 (method url-fetch)
7458 (uri (string-append "mirror://gnome/sources/" name "/"
7459 (version-major version) "/"
7460 name "-" version ".tar.xz"))
7461 (patches (search-patches "gnome-session-support-elogind.patch"))
7462 (sha256
7463 (base32
7464 "1alwjqr36rd0s132qs2clwnxgilcbylps6lm41lr50mn782hdjiw"))))
7465 (arguments
7466 `(#:glib-or-gtk? #t
7467 #:phases
7468 (modify-phases %standard-phases
7469 (add-after 'install 'wrap-gnome-session
7470 (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
7471 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7472 (wrap-program (search-input-file outputs "bin/gnome-session")
7473 `("PATH" ":" prefix
7474 (,(dirname (search-input-file (or native-inputs inputs)
7475 "bin/gdbus"))))))))
7476 #:configure-flags
7477 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7478 "-Dman=false" ; FIXME: disabled because of docbook validation error
7479 "-Delogind=true"
7480 "-Dsystemd=false"
7481 "-Dsystemd_session=disable"
7482 "-Dsystemd_journal=false")))
7483 (build-system meson-build-system)
7484 (native-inputs
7485 (list docbook-xml
7486 docbook-xsl
7487 `(,glib "bin") ; for glib-compile-schemas, etc.
7488 intltool
7489 libxml2 ;for 'XML_CATALOG_FILES'
7490 libxslt
7491 pkg-config
7492 xmlto))
7493 (inputs
7494 (list elogind
7495 gnome-desktop
7496 gsettings-desktop-schemas
7497 gtk+
7498 json-glib
7499 libsm
7500 libxcomposite
7501 libxtst
7502 mesa
7503 upower
7504 xtrans))
7505 (synopsis "Session manager for GNOME")
7506 (description
7507 "This package contains the GNOME session manager, as well as a
7508 configuration program to choose applications starting on login.")
7509 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7510 (license license:gpl2+)))
7511
7512 (define-public gjs
7513 (package
7514 (name "gjs")
7515 (version "1.72.2")
7516 (source (origin
7517 (method url-fetch)
7518 (uri (string-append "mirror://gnome/sources/" name "/"
7519 (version-major+minor version) "/"
7520 name "-" version ".tar.xz"))
7521 (sha256
7522 (base32
7523 "0xrrv9lsi087yb9yf146a1aarf5yh6rf4jw9blx30zasvjdkgvnx"))
7524 (modules '((guix build utils)))
7525 (snippet
7526 '(begin
7527 (substitute* "installed-tests/scripts/testCommandLine.sh"
7528 (("Valentín") "")
7529 (("☭") ""))))))
7530 (build-system meson-build-system)
7531 (arguments
7532 '(#:configure-flags '("-Dinstalled_tests=false")
7533 #:phases
7534 (modify-phases %standard-phases
7535 (add-before 'check 'pre-check
7536 (lambda _
7537 ;; The test suite requires a running X server.
7538 (system "Xvfb :1 &")
7539 (setenv "DISPLAY" ":1")
7540
7541 ;; For the missing /etc/machine-id.
7542 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
7543 (native-inputs
7544 (list `(,glib "bin") ;for glib-compile-resources
7545 pkg-config
7546 libxml2
7547 ;; For testing
7548 dbus
7549 dconf ;required to properly store settings
7550 util-linux
7551 xorg-server-for-tests))
7552 (propagated-inputs
7553 ;; These are all in the Requires.private field of gjs-1.0.pc.
7554 (list cairo gobject-introspection mozjs-91))
7555 (inputs
7556 (list gtk+ readline))
7557 (synopsis "Javascript bindings for GNOME")
7558 (home-page "https://wiki.gnome.org/Gjs")
7559 (description
7560 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7561 javascript engine and the GObject introspection framework.")
7562 (license license:gpl2+)))
7563
7564 (define-public gedit
7565 (package
7566 (name "gedit")
7567 (version "42.2")
7568 (source (origin
7569 (method url-fetch)
7570 (uri (string-append "mirror://gnome/sources/" name "/"
7571 (version-major version) "/"
7572 name "-" version ".tar.xz"))
7573 (sha256
7574 (base32
7575 "1jlgzihi4ywvlr4xj2vbnnxzar8j3mwj0jcn8jp6dh0a3w8jjqiw"))))
7576 (build-system meson-build-system)
7577 (arguments
7578 (list
7579 #:glib-or-gtk? #t
7580 #:configure-flags
7581 ;; Otherwise, the RUNPATH will lack the final path component.
7582 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7583 #$output "/lib/gedit"))
7584 #:phases
7585 #~(modify-phases %standard-phases
7586 (add-after 'unpack 'skip-gtk-update-icon-cache
7587 ;; Don't create 'icon-theme.cache'.
7588 (lambda _
7589 (substitute* "build-aux/meson/post_install.py"
7590 (("gtk-update-icon-cache") (which "true")))))
7591 (add-after 'unpack 'do-not-invoke-git
7592 (lambda* (#:key inputs #:allow-other-keys)
7593 (substitute* "meson.build"
7594 ((".*git.*") ""))))
7595 (add-after 'install 'wrap-gedit
7596 (lambda* (#:key outputs #:allow-other-keys)
7597 (wrap-program (search-input-file outputs "bin/gedit")
7598 ;; For plugins.
7599 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
7600 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
7601 ;; For language-specs.
7602 `("XDG_DATA_DIRS" ":" prefix
7603 (,(string-append #$(this-package-input "gtksourceview")
7604 "/share")))))))))
7605 (propagated-inputs
7606 (list dconf))
7607 (native-inputs
7608 (list desktop-file-utils ;for update-desktop-database
7609 `(,glib "bin") ;for glib-mkenums, etc.
7610 gobject-introspection
7611 intltool
7612 itstool
7613 libxml2
7614 pkg-config
7615 python
7616 vala))
7617 (inputs
7618 (list adwaita-icon-theme
7619 bash-minimal
7620 glib
7621 gsettings-desktop-schemas
7622 gspell
7623 gtk+
7624 gtksourceview-4
7625 libpeas
7626 libsoup
7627 python
7628 python-pygobject))
7629 (home-page "https://wiki.gnome.org/Apps/Gedit")
7630 (synopsis "GNOME text editor")
7631 (description "While aiming at simplicity and ease of use, gedit is a
7632 powerful general purpose text editor.")
7633 (license license:gpl2+)))
7634
7635 (define-public zenity
7636 (package
7637 (name "zenity")
7638 (version "3.43.0")
7639 (source (origin
7640 (method url-fetch)
7641 (uri (string-append "mirror://gnome/sources/zenity/"
7642 (version-major+minor version) "/"
7643 "zenity-" version ".tar.xz"))
7644 (sha256
7645 (base32
7646 "0czq2vx636xbvg7zbdqkxq41zgm7v1h048awy0cgls0q1hgcmmxh"))))
7647 (build-system meson-build-system)
7648 (arguments
7649 (list #:phases #~(modify-phases %standard-phases
7650 (add-after 'unpack 'disable-gtk-update-icon-cache
7651 ;; The gtk-update-icon-cache tool is only run when
7652 ;; DESTDIR is unset.
7653 (lambda _
7654 (setenv "DESTDIR" "/"))))))
7655 (native-inputs (list gettext-minimal itstool pkg-config))
7656 (inputs (list gtk+))
7657 (synopsis "Display graphical dialog boxes from shell scripts")
7658 (home-page "https://www.gnome.org")
7659 (description
7660 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7661 to display dialog boxes from the commandline and shell scripts.")
7662 (license license:lgpl2.0+)))
7663
7664 (define-public mutter
7665 (package
7666 (name "mutter")
7667 (version "42.4")
7668 (source (origin
7669 (method url-fetch)
7670 (uri (string-append "mirror://gnome/sources/" name "/"
7671 (version-major version) "/"
7672 name "-" version ".tar.xz"))
7673 (sha256
7674 (base32
7675 "0h1ak3201mdc2qbf67fhcn801ddp33hm0f0c52zis1l7s6ipyb62"))))
7676 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7677 ;; versions of cogl and clutter. As a result, many of the inputs,
7678 ;; propagated-inputs, and configure flags used in cogl and clutter are
7679 ;; needed here as well.
7680 (build-system meson-build-system)
7681 (arguments
7682 (list
7683 #:imported-modules `(,@%meson-build-system-modules
7684 (guix build syscalls))
7685 #:modules '((guix build meson-build-system)
7686 (guix build syscalls)
7687 (guix build utils)
7688 (ice-9 match))
7689 #:glib-or-gtk? #t
7690 #:configure-flags
7691 #~(list
7692 ;; Otherwise, the RUNPATH will lack the final path component.
7693 (string-append "-Dc_link_args=-Wl,-rpath="
7694 #$output "/lib:"
7695 #$output "/lib/mutter-9")
7696 ;; Disable systemd support.
7697 "-Dsystemd=false"
7698 ;; The following flags are needed for the bundled clutter
7699 (string-append "-Dxwayland_path="
7700 (search-input-file %build-inputs "bin/Xwayland"))
7701 ;; the remaining flags are needed for the bundled cogl
7702 (string-append "-Dopengl_libname="
7703 (search-input-file %build-inputs "lib/libGL.so"))
7704 (string-append "-Dgles2_libname="
7705 (search-input-file %build-inputs "lib/libGLESv2.so"))
7706 "-Degl_device=true" ;false by default
7707 "-Dwayland_eglstream=true") ;false by default
7708 #:test-options '(list "--verbose")
7709 #:phases
7710 #~(modify-phases %standard-phases
7711 (add-after 'unpack 'adjust-runpath-linker-directives
7712 (lambda _
7713 ;; By default Mutter uses RPATH instead of RUNPATH, which our
7714 ;; customized linker script makes use of. Some libraries are
7715 ;; also installed under lib/mutter-10 and need to be added to
7716 ;; the RUNPATH.
7717 (substitute* "meson.build"
7718 (("'-Wl,--disable-new-dtags'")
7719 (string-append "'-Wl,-rpath=" #$output "/lib/mutter-10'")))))
7720 (add-after 'unpack 'patch-dlopen-calls
7721 (lambda* (#:key inputs #:allow-other-keys)
7722 (substitute* "src/wayland/meta-wayland-egl-stream.c"
7723 (("libnvidia-egl-wayland.so.1")
7724 (search-input-file inputs "lib/libnvidia-egl-wayland.so.1")))))
7725 (add-before 'configure 'set-udev-dir
7726 (lambda _
7727 (setenv "PKG_CONFIG_UDEV_UDEVDIR"
7728 (string-append #$output "/lib/udev"))))
7729 (add-after 'unpack 'disable-problematic-tests
7730 (lambda _
7731 ;; The native-headless test hangs due to attempting to use audio,
7732 ;; unavailable in the container.
7733 ;; Note: the following sed expression deletes the whole test(...)
7734 ;; expression paragraph. For an explanation, see: info '(sed)
7735 ;; Multiline techniques'.
7736 (invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//"
7737 "-i" "src/tests/meson.build")
7738 ;; Timeline tests may unexpectedly fail on missed frames, so
7739 ;; let's disable them as well.
7740 ;; See <https://gitlab.gnome.org/GNOME/mutter/-/issues/2125>
7741 (substitute* "src/tests/clutter/conform/meson.build"
7742 (("'timeline.*',") ""))))
7743 (replace 'check
7744 (lambda* (#:key tests? test-options parallel-tests?
7745 #:allow-other-keys)
7746 (when tests?
7747 ;; Setup (see the 'test-mutter' CI target at
7748 ;; https://gitlab.gnome.org/GNOME/mutter/-/raw/main/.gitlab-ci.yml).
7749 (setenv "HOME" "/tmp")
7750 (setenv "XDG_RUNTIME_DIR" (string-append (getcwd)
7751 "/runtime-dir"))
7752 (mkdir (getenv "XDG_RUNTIME_DIR"))
7753 (chmod (getenv "XDG_RUNTIME_DIR") #o700)
7754
7755 (setenv "GSETTINGS_SCHEMA_DIR" "data")
7756 (setenv "MUTTER_DEBUG_DUMMY_MODE_SPECS" "800x600@10.0")
7757 (setenv "PIPEWIRE_DEBUG" "2")
7758 (setenv "PIPEWIRE_LOG" "meson-logs/pipewire.log")
7759 (setenv "XVFB_SERVER_ARGS" "+iglx -noreset")
7760 (setenv "G_SLICE" "always-malloc")
7761 (setenv "MALLOC_CHECK" "3")
7762 (setenv "NO_AT_BRIDGE" "1")
7763 ;; This is needed, otherwise the "mutter:core+mutter/unit /
7764 ;; anonymous-file" test would fail (see:
7765 ;; https://gitlab.gnome.org/GNOME/mutter/-/issues/2017).
7766 (setenv "CI_JOB_ID" "1")
7767
7768 (invoke "glib-compile-schemas" (getenv "GSETTINGS_SCHEMA_DIR"))
7769 (mkdir-p (getenv "XDG_RUNTIME_DIR"))
7770 (chmod (getenv "XDG_RUNTIME_DIR") #o755)
7771 (invoke "pipewire" "--version") ;check for pipewire
7772 (system "pipewire &") ;always returns 0 due to forking
7773
7774 (setenv "MESON_TESTTHREADS"
7775 (if parallel-tests?
7776 (number->string (parallel-job-count))
7777 "1"))
7778 (match (primitive-fork)
7779 (0 ;child process
7780 (set-child-subreaper!)
7781 ;; Use tini so that signals are properly handled and
7782 ;; doubly-forked processes get reaped; otherwise,
7783 ;; python-dbusmock would waste time polling for the dbus
7784 ;; processes it spawns to be reaped, in vain.
7785 (apply execlp "tini" "--"
7786 "dbus-run-session" "--"
7787 "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
7788 "meson" "test" "-t" "0" "--print-errorlogs"
7789 test-options))
7790 (pid
7791 (match (waitpid pid)
7792 ((_ . status)
7793 (unless (zero? status)
7794 (error "`meson test' exited with status"
7795 status))))))))))))
7796 (native-inputs
7797 (list desktop-file-utils ;for update-desktop-database
7798 `(,glib "bin") ;for glib-compile-schemas, etc.
7799 gobject-introspection
7800 intltool
7801 pkg-config
7802 xvfb-run
7803 ;; For git build
7804 autoconf
7805 automake
7806 libtool
7807 wayland-protocols-next
7808 ;; For tests.
7809 ;; Warnings are configured to be fatal during the tests; add an icon
7810 ;; theme to please libxcursor.
7811 adwaita-icon-theme
7812 libxcursor ;for XCURSOR_PATH
7813 pipewire-0.3
7814 python
7815 python-dbus
7816 python-dbusmock
7817 tini)) ;acting as init (zombie reaper)
7818 (propagated-inputs
7819 (list gsettings-desktop-schemas-next ;required by libmutter.pc
7820 gtk+ ;required by libmutter.pc
7821 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7822 atk
7823 cairo
7824 eudev
7825 gdk-pixbuf
7826 glib
7827 json-glib
7828 libinput
7829 libx11
7830 libxcomposite
7831 libxcvt
7832 libxdamage
7833 libxext
7834 libxfixes
7835 libxkbcommon
7836 libxml2
7837 libxrandr
7838 mesa
7839 pango
7840 xinput))
7841 (inputs
7842 (list egl-wayland ;for wayland-eglstream-protocols
7843 elogind
7844 gnome-desktop
7845 gnome-settings-daemon
7846 graphene
7847 libcanberra
7848 libgudev
7849 libice
7850 libsm
7851 libwacom
7852 libxkbfile
7853 libxrandr
7854 libxtst
7855 pipewire-0.3
7856 startup-notification
7857 sysprof
7858 upower
7859 xkeyboard-config
7860 xorg-server-xwayland
7861 zenity))
7862 (synopsis "Window and compositing manager")
7863 (home-page "https://www.gnome.org")
7864 (description
7865 "Mutter is a window and compositing manager that displays and manages your
7866 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7867 Clutter toolkit with solid window-management logic inherited from the Metacity
7868 window manager.")
7869 (license license:gpl2+)))
7870
7871 (define-public gnome-online-accounts
7872 (package
7873 (name "gnome-online-accounts")
7874 (version "3.45.2")
7875 (source (origin
7876 (method url-fetch)
7877 (uri (string-append "mirror://gnome/sources/" name "/"
7878 (version-major+minor version) "/"
7879 name "-" version ".tar.xz"))
7880 (sha256
7881 (base32
7882 "15zzzndbfba8a497vxb6cmy1y22l3lfn4sx9s9r59kwzd83i6fxn"))))
7883 (build-system meson-build-system)
7884 (arguments
7885 (list
7886 #:glib-or-gtk? #t
7887 #:phases
7888 #~(modify-phases %standard-phases
7889 (add-before 'install 'disable-gtk-update-icon-cache
7890 (lambda _
7891 (setenv "DESTDIR" "/"))))))
7892 (native-inputs
7893 (list gettext-minimal
7894 `(,glib "bin") ; for glib-compile-schemas, etc.
7895 gobject-introspection
7896 libxslt
7897 pkg-config
7898 vala))
7899 (propagated-inputs
7900 (list glib ; required by goa-1.0.pc
7901 gtk+)) ; required by goa-backend-1.0.pc
7902 (inputs
7903 (list docbook-xsl
7904 gcr
7905 json-glib
7906 libsecret
7907 mit-krb5
7908 rest-next
7909 webkitgtk))
7910 (synopsis "Single sign-on framework for GNOME")
7911 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7912 (description
7913 "GNOME Online Accounts provides interfaces so that applications and
7914 libraries in GNOME can access the user's online accounts. It has providers
7915 for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare,
7916 Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7917 (license license:lgpl2.0+)))
7918
7919 (define-public gnome-online-accounts-3.44
7920 (package
7921 (inherit gnome-online-accounts)
7922 (name "gnome-online-accounts")
7923 (version "3.44.0")
7924 (source (origin
7925 (method url-fetch)
7926 (uri (string-append "mirror://gnome/sources/" name "/"
7927 (version-major+minor version) "/"
7928 name "-" version ".tar.xz"))
7929 (sha256
7930 (base32
7931 "0hkkxa3zqyl0i4kw1p3ak4alwxw4wydh9al6fzwbcdgl0r0ms79q"))))
7932 (build-system glib-or-gtk-build-system)
7933 (arguments (substitute-keyword-arguments
7934 (strip-keyword-arguments
7935 '(#:glib-or-gtk?)
7936 (package-arguments gnome-online-accounts))
7937 ((#:phases phases)
7938 #~(modify-phases #$phases
7939 (delete 'disable-gtk-update-icon-cache)))))
7940 (inputs (modify-inputs (package-inputs gnome-online-accounts)
7941 (replace "rest" rest)
7942 (replace "webkitgtk" webkitgtk-with-libsoup2)))))
7943
7944 (define-public evolution-data-server
7945 (package
7946 (name "evolution-data-server")
7947 (version "3.44.4")
7948 (source
7949 (origin
7950 (method url-fetch)
7951 (uri (string-append "mirror://gnome/sources/" name "/"
7952 (version-major+minor version) "/"
7953 name "-" version ".tar.xz"))
7954 (sha256
7955 (base32 "1sxjrjr31wqbp9g4pf6dwj8rc4mi7c5fbfd489ha92ym7246bin0"))))
7956 (build-system cmake-build-system)
7957 (arguments
7958 (list
7959 #:configure-flags
7960 #~(let* ((lib (string-append #$output "/lib"))
7961 (runpaths (map (lambda (s)
7962 (string-append lib "/evolution-data-server/" s))
7963 '("addressbook-backends" "calendar-backends"
7964 "camel-providers" "credential-modules"
7965 "registry-modules"))))
7966 (list "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7967 "-DENABLE_VALA_BINDINGS=ON"
7968 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7969 (string-append lib "/evolution-data-server;")
7970 (string-join runpaths ";"))
7971 "-DENABLE_INTROSPECTION=ON" ;required for Vala bindings
7972 "-DWITH_PHONENUMBER=ON"))
7973 #:phases
7974 #~(modify-phases %standard-phases
7975 (add-after 'unpack 'disable-failing-tests
7976 (lambda _
7977 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7978 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7979 (delete-file-recursively "tests/book-migration")
7980 (substitute* "tests/CMakeLists.txt"
7981 (("add_subdirectory\\(book-migration\\)") ""))))
7982 (add-after 'unpack 'patch-paths
7983 (lambda _
7984 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7985 "tests/libedata-book/data-test-utils.c"
7986 "tests/libedata-book/test-book-cache-utils.c"
7987 "tests/libedata-cal/test-cal-cache-utils.c")
7988 (("/bin/rm") (which "rm")))))
7989 (add-before 'configure 'dont-override-rpath
7990 (lambda _
7991 (substitute* "CMakeLists.txt"
7992 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7993 ;; Remove it so the configure flag is respected.
7994 (("SET\\(CMAKE_INSTALL_RPATH .*") "")))))))
7995 (native-inputs
7996 (list `(,glib "bin") ; for glib-mkenums, etc.
7997 gobject-introspection
7998 gperf
7999 gsettings-desktop-schemas
8000 intltool
8001 pkg-config
8002 protobuf
8003 vala
8004 python-wrapper))
8005 (propagated-inputs
8006 ;; These are all in the Requires field of .pc files.
8007 (list gtk+
8008 libical
8009 libsecret
8010 libsoup-minimal-2
8011 nss
8012 sqlite))
8013 (inputs
8014 (list bdb
8015 boost
8016 gcr
8017 gnome-online-accounts
8018 json-glib
8019 libcanberra
8020 libgweather
8021 libphonenumber
8022 mit-krb5
8023 openldap
8024 webkitgtk-with-libsoup2))
8025 (synopsis "Store address books and calendars")
8026 (home-page "https://wiki.gnome.org/Apps/Evolution")
8027 (description
8028 "This package provides a unified backend for programs that work with
8029 contacts, tasks, and calendar information. It was originally developed for
8030 Evolution (hence the name), but is now used by other packages as well.")
8031 (license license:lgpl2.0)))
8032
8033 (define-public caribou
8034 (package
8035 (name "caribou")
8036 (version "0.4.21")
8037 (source (origin
8038 (method url-fetch)
8039 (uri (string-append "mirror://gnome/sources/" name "/"
8040 (version-major+minor version) "/"
8041 name "-" version ".tar.xz"))
8042 (sha256
8043 (base32
8044 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
8045 (build-system glib-or-gtk-build-system)
8046 (arguments
8047 '(#:phases
8048 (modify-phases %standard-phases
8049 (add-before
8050 'build 'pre-build
8051 (lambda* (#:key outputs #:allow-other-keys)
8052 (let ((out (assoc-ref outputs "out")))
8053 ;; Use absolute shared library path in Caribou-1.0.typelib.
8054 (substitute* "libcaribou/Makefile"
8055 (("--shared-library=libcaribou.so")
8056 (string-append "--shared-library="
8057 out "/lib/libcaribou.so")))
8058 #t)))
8059 (add-after 'install 'wrap-programs
8060 (lambda* (#:key outputs #:allow-other-keys)
8061 (let* ((out (assoc-ref outputs "out"))
8062 (python-path (getenv "GUIX_PYTHONPATH"))
8063 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8064 (for-each
8065 (lambda (prog)
8066 (wrap-program prog
8067 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
8068 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8069 (list (string-append out "/bin/caribou-preferences")
8070 (string-append out "/libexec/antler-keyboard"))))
8071 #t)))))
8072 (native-inputs
8073 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8074 ("gobject-introspection" ,gobject-introspection)
8075 ("intltool" ,intltool)
8076 ("pkg-config" ,pkg-config)
8077 ("python" ,python)
8078 ("vala" ,vala)
8079 ("xsltproc" ,libxslt)))
8080 (propagated-inputs
8081 ;; caribou-1.0.pc refers to all these.
8082 (list libgee libxklavier libxtst gtk+))
8083 (inputs
8084 `(("clutter" ,clutter)
8085 ("dconf" ,dconf)
8086 ("gtk+-2" ,gtk+-2)
8087 ("python-pygobject" ,python-pygobject)))
8088 (synopsis "Text entry and UI navigation application")
8089 (home-page "https://wiki.gnome.org/Projects/Caribou")
8090 (description
8091 "Caribou is an input assistive technology intended for switch and pointer
8092 users.")
8093 (license license:lgpl2.1)))
8094
8095 (define-public network-manager
8096 (package
8097 (name "network-manager")
8098 (version "1.41.2")
8099 (source (origin
8100 (method url-fetch)
8101 (uri (string-append "mirror://gnome/sources/NetworkManager/"
8102 (version-major+minor version) "/"
8103 "NetworkManager-" version ".tar.xz"))
8104 (patches (search-patches "network-manager-plugin-path.patch"
8105 "network-manager-meson.patch"))
8106 (sha256
8107 (base32
8108 "0v5a5fw1zwa94ksz6d7hyj14wwdxzmswgm81ryhxmyn3nrcf1akg"))))
8109 (build-system meson-build-system)
8110 (outputs '("out"
8111 "doc")) ; 8 MiB of gtk-doc HTML
8112 (arguments
8113 (list
8114 #:configure-flags
8115 #~(list
8116 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
8117 ;; component.
8118 (string-append "-Dc_link_args=-Wl,-rpath="
8119 #$output "/lib:"
8120 #$output "/lib/NetworkManager/" #$version)
8121 "-Dsystemd_journal=false"
8122 "-Dsession_tracking=elogind"
8123 "-Dsuspend_resume=elogind"
8124 "-Dsystemdsystemunitdir=no"
8125 "-Dsession_tracking_consolekit=false"
8126 "-Ddhcpcd=no"
8127 "-Ddhcpcanon=no"
8128 "-Dcrypto=gnutls"
8129 "-Diwd=true"
8130 "-Dlibaudit=yes"
8131 "-Dqt=false"
8132 "-Ddocs=true"
8133 "--sysconfdir=/etc"
8134 "--localstatedir=/var"
8135 (string-append "-Dudev_dir="
8136 #$output "/lib/udev")
8137 (string-append "-Ddbus_conf_dir="
8138 #$output "/etc/dbus-1/system.d")
8139
8140 (string-append "-Ddhclient=" (search-input-file %build-inputs
8141 "/sbin/dhclient")))
8142 #:phases
8143 #~(modify-phases %standard-phases
8144 (add-after 'unpack 'patch-dlopen-call-to-libjansson.so
8145 (lambda* (#:key inputs #:allow-other-keys)
8146 (substitute* "src/libnm-glib-aux/nm-json-aux.c"
8147 (("(handle = dlopen\\()soname" _ head)
8148 (string-append
8149 head "\"" (search-input-file inputs
8150 "lib/libjansson.so") "\"")))))
8151 (add-before 'configure 'pre-configure
8152 (lambda _
8153 ;; These tests try to test aspects of network-manager's
8154 ;; functionality within restricted containers, but they don't
8155 ;; cope with being already in the Guix build jail as that jail
8156 ;; lacks some features that they would like to proxy over (like
8157 ;; a /sys mount).
8158 (substitute* "src/core/tests/meson.build"
8159 ((".*test-l3cfg.*") ""))
8160 (substitute* "src/core/devices/tests/meson.build"
8161 ((".*test-acd.*") "")
8162 ((".*test-lldp.*") ""))
8163 (substitute* "src/core/platform/tests/meson.build"
8164 ((".*test-address-linux.*") "")
8165 ((".*test-cleanup-linux.*") "")
8166 ((".*test-link-linux.*") "")
8167 ((".*test-lldp.*") "")
8168 ((".*test-route-linux.*") "")
8169 ((".*test-tc-linux.*") ""))))
8170 (add-after 'unpack 'patch-docbook-xml
8171 (lambda* (#:key inputs #:allow-other-keys)
8172 (substitute* (find-files "." ".*\\.(xsl|xml)")
8173 (("http://.*/docbookx\\.dtd")
8174 (search-input-file inputs "xml/dtd/docbook/docbookx.dtd")))))
8175 (add-before 'check 'pre-check
8176 (lambda _
8177 ;; For the missing /etc/machine-id.
8178 (setenv "DBUS_FATAL_WARNINGS" "0")))
8179 (add-before 'install 'no-polkit-magic
8180 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
8181 (lambda _
8182 (setenv "PKEXEC_UID" "something")))
8183 (add-after 'install 'move-doc
8184 (lambda _
8185 (mkdir-p (string-append #$output:doc "/share"))
8186 (for-each (lambda (directory)
8187 (copy-recursively (string-append #$output directory)
8188 (string-append #$output:doc
8189 directory))
8190 (delete-file-recursively
8191 (string-append #$output directory)))
8192 '("/share/doc" "/share/gtk-doc")))))))
8193 (propagated-inputs
8194 (list glib))
8195 (native-inputs
8196 (list docbook-xml
8197 docbook-xsl
8198 gettext-minimal
8199 `(,glib "bin") ;for gdbus-codegen
8200 gobject-introspection
8201 gtk-doc/stable
8202 libxml2
8203 libxslt
8204 perl
8205 pkg-config
8206 python-dbus
8207 python-pygobject
8208 python-wrapper
8209 vala))
8210 (inputs
8211 (list audit
8212 curl
8213 cyrus-sasl
8214 dbus-glib
8215 dnsmasq
8216 elogind
8217 eudev
8218 gnutls
8219 iptables
8220 isc-dhcp
8221 iwd ;wpa_supplicant alternative
8222 jansson
8223 libgcrypt
8224 libgudev
8225 libndp
8226 libnl
8227 libpsl
8228 libselinux
8229 mobile-broadband-provider-info
8230 modem-manager
8231 newt ;for the 'nmtui' console interface
8232 openresolv ;alternative resolv.conf manager
8233 polkit
8234 ppp
8235 readline
8236 util-linux))
8237 (synopsis "Network connection manager")
8238 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8239 (description
8240 "NetworkManager is a system network service that manages your network
8241 devices and connections, attempting to keep active network connectivity when
8242 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
8243 devices, and provides VPN integration with a variety of different VPN
8244 services.")
8245 ;; “This NetworkManager project consists of the daemon, client tools, and
8246 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
8247 ;; GPL-2.0+.”
8248 (license (list license:gpl2+
8249 license:lgpl2.1+))
8250 (properties '((upstream-name . "NetworkManager")))))
8251
8252 (define-public network-manager-openvpn
8253 (package
8254 (name "network-manager-openvpn")
8255 (version "1.10.0")
8256 (source (origin
8257 (method url-fetch)
8258 (uri (string-append
8259 "mirror://gnome/sources/NetworkManager-openvpn/"
8260 (version-major+minor version)
8261 "/NetworkManager-openvpn-" version ".tar.xz"))
8262 (sha256
8263 (base32
8264 "00fiyjbp42pdv5h2vdkzxd2rw32ikcinjgxrzdxak61kgw8d8iap"))))
8265 (build-system gnu-build-system)
8266 (arguments
8267 (list
8268 #:configure-flags #~(list "--enable-absolute-paths"
8269 "--localstatedir=/var"
8270 "--with-gtk4=yes")
8271 #:phases
8272 #~(modify-phases %standard-phases
8273 (add-after 'configure 'patch-path
8274 (lambda* (#:key inputs #:allow-other-keys #:rest args)
8275 (let* ((ovpn (search-input-file inputs "/sbin/openvpn"))
8276 (modprobe (search-input-file inputs "/bin/modprobe"))
8277 (pretty-ovpn (string-append "\"" ovpn "\"")))
8278 (for-each
8279 (lambda (file)
8280 (substitute* file
8281 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
8282 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
8283 (("\"/sbin/openvpn\"") pretty-ovpn)
8284 (("/sbin/modprobe") modprobe)))
8285 '("src/nm-openvpn-service.c"
8286 "properties/nm-openvpn-editor.c"))))))))
8287 (native-inputs
8288 (list intltool
8289 `(,glib "bin")
8290 pkg-config))
8291 (inputs
8292 (list gtk+
8293 gtk
8294 kmod
8295 libnma
8296 libsecret
8297 network-manager
8298 openvpn
8299 pango-next)) ;remove after it's the default
8300 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8301 (synopsis "OpenVPN plug-in for NetworkManager")
8302 (description
8303 "This extension of NetworkManager allows it to take care of connections
8304 to virtual private networks (VPNs) via OpenVPN.")
8305 (license license:gpl2+)
8306 (properties `((upstream-name . "NetworkManager-openvpn")))))
8307
8308 (define-public network-manager-vpnc
8309 (package
8310 (name "network-manager-vpnc")
8311 (version "1.2.8")
8312 (source (origin
8313 (method url-fetch)
8314 (uri (string-append
8315 "mirror://gnome/sources/NetworkManager-vpnc/"
8316 (version-major+minor version)
8317 "/NetworkManager-vpnc-" version ".tar.xz"))
8318 (sha256
8319 (base32
8320 "1k7vkalslzmz8zvfy76k7z10b9krm7da917gwzyw7zf8afm32pnn"))))
8321 (build-system gnu-build-system)
8322 (arguments
8323 `(#:configure-flags '("--enable-absolute-paths"
8324 "--localstatedir=/var"
8325 "--with-gtk4=yes")
8326 #:phases
8327 (modify-phases %standard-phases
8328 (add-after 'configure 'patch-path
8329 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8330 (let* ((vpnc (search-input-file inputs "/sbin/vpnc"))
8331 (modprobe (search-input-file inputs "/bin/modprobe"))
8332 (pretty-ovpn (string-append "\"" vpnc "\"")))
8333 (substitute* "src/nm-vpnc-service.c"
8334 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
8335 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
8336 (("\"/sbin/vpnc\"") pretty-ovpn)
8337 (("/sbin/modprobe") modprobe))))))))
8338 (native-inputs
8339 (list `(,glib "bin")
8340 intltool
8341 pkg-config))
8342 (inputs
8343 (list gtk+
8344 gtk
8345 kmod
8346 vpnc
8347 network-manager
8348 libnma
8349 libsecret
8350 pango-next)) ;TODO: remove after it's the default
8351 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8352 (synopsis "VPNC plug-in for NetworkManager")
8353 (description
8354 "Support for configuring virtual private networks based on VPNC.
8355 Compatible with Cisco VPN concentrators configured to use IPsec.")
8356 (license license:gpl2+)
8357 (properties `((upstream-name . "NetworkManager-vpnc")))))
8358
8359 (define-public network-manager-openconnect
8360 (package
8361 (name "network-manager-openconnect")
8362 (version "1.2.8")
8363 (source (origin
8364 (method url-fetch)
8365 (uri (string-append
8366 "mirror://gnome/sources/NetworkManager-openconnect/"
8367 (version-major+minor version)
8368 "/NetworkManager-openconnect-" version ".tar.xz"))
8369 (sha256
8370 (base32
8371 "1k6d6cv2c9v8gf0f2js6cklr3ijhaanbz0nhvlwy5n42bmwamvax"))))
8372 (build-system gnu-build-system)
8373 (arguments
8374 `(#:configure-flags '("--enable-absolute-paths"
8375 "--localstatedir=/var"
8376 "--with-gtk4=yes")
8377 #:phases
8378 (modify-phases %standard-phases
8379 (add-after 'configure 'patch-path
8380 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8381 (let* ((openconnect (search-input-file inputs
8382 "/sbin/openconnect"))
8383 (modprobe (search-input-file inputs "/bin/modprobe"))
8384 (pretty-ovpn (string-append "\"" openconnect "\"")))
8385 (substitute* "src/nm-openconnect-service.c"
8386 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
8387 (("/sbin/modprobe") modprobe))))))))
8388 (native-inputs
8389 (list `(,glib "bin")
8390 intltool
8391 libnma
8392 pkg-config))
8393 (inputs
8394 (list gcr
8395 gtk
8396 gtk+
8397 kmod
8398 libsecret
8399 libxml2
8400 lz4
8401 network-manager
8402 openconnect
8403 pango-next)) ;TODO: remove after it's the default
8404 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8405 (synopsis "OpenConnect plug-in for NetworkManager")
8406 (description
8407 "This extension of NetworkManager allows it to take care of connections
8408 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
8409 Cisco's AnyConnect SSL VPN.")
8410 (license license:gpl2+)
8411 (properties `((upstream-name . "NetworkManager-openconnect")
8412
8413 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
8414 ;; file refers to account "nm-openconnect". Specify it here
8415 ;; so that 'network-manager-service-type' creates it.
8416 (user-accounts . ("nm-openconnect"))))))
8417
8418 (define-public mobile-broadband-provider-info
8419 (package
8420 (name "mobile-broadband-provider-info")
8421 (version "20220725")
8422 (source (origin
8423 (method url-fetch)
8424 (uri (string-append
8425 "mirror://gnome/sources/"
8426 "mobile-broadband-provider-info/" version "/"
8427 "mobile-broadband-provider-info-" version ".tar.xz"))
8428 (sha256
8429 (base32
8430 "1k9acdnl4mr6aqh11xbklv2gyww82jddaqmw4aqdzwl7q80swia8"))))
8431 (build-system gnu-build-system)
8432 (arguments
8433 `(#:tests? #f)) ; no tests
8434 (native-inputs (list libxslt))
8435 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8436 (synopsis "Database of broadband connection configuration")
8437 (description "Database of broadband connection configuration.")
8438 (license license:public-domain)))
8439
8440 (define-public network-manager-applet
8441 (package
8442 (name "network-manager-applet")
8443 (version "1.28.0")
8444 (source (origin
8445 (method url-fetch)
8446 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
8447 (version-major+minor version) "/"
8448 "network-manager-applet-" version ".tar.xz"))
8449 (sha256
8450 (base32
8451 "17742kgmbj9w545zwnirgr0i40zl0xzp8jx7b8c1krp93mc4h0sw"))))
8452 (build-system meson-build-system)
8453 (arguments
8454 `(#:glib-or-gtk? #t
8455 #:configure-flags
8456 '("-Dappindicator=yes")))
8457 (native-inputs
8458 (list gettext-minimal
8459 `(,glib "bin") ; for glib-compile-resources, etc.
8460 gobject-introspection
8461 gtk-doc/stable
8462 pkg-config))
8463 (propagated-inputs
8464 ;; libnm-gtk.pc refers to all these.
8465 (list dbus-glib gtk+ network-manager
8466 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8467 libnma))
8468 (inputs
8469 (list gcr
8470 libappindicator
8471 libgudev
8472 libnotify
8473 libsecret
8474 libselinux
8475 jansson ; for team support
8476 modem-manager))
8477 (synopsis "Applet for managing network connections")
8478 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8479 (description
8480 "This package contains a systray applet for NetworkManager. It displays
8481 the available networks and allows users to easily switch between them.")
8482 (license license:gpl2+)))
8483
8484 (define-public libxml++
8485 (package
8486 (name "libxml++")
8487 (version "5.0.2")
8488 (source
8489 (origin
8490 (method git-fetch)
8491 (uri (git-reference
8492 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8493 (commit version)))
8494 (file-name (git-file-name name version))
8495 (sha256
8496 (base32 "13jlhz57yjxapplflm8aarczxv6ll3d336y1446mr5n4ylkcc1xz"))))
8497 (build-system gnu-build-system)
8498 (arguments
8499 (list
8500 #:phases
8501 #~(modify-phases %standard-phases
8502 (add-after 'unpack 'fix-documentation
8503 (lambda* (#:key native-inputs inputs #:allow-other-keys)
8504 (let* ((xsl-version #$(package-version docbook-xsl))
8505 (xsldoc (string-append "xml/xsl/docbook-xsl-"
8506 xsl-version)))
8507 (substitute* '("examples/dom_xpath/example.xml"
8508 "docs/manual/libxml++_without_code.xml")
8509 (("http://.*/docbookx\\.dtd")
8510 (search-input-file (or native-inputs inputs)
8511 "xml/dtd/docbook/docbookx.dtd")))
8512 (setenv "SGML_CATALOG_FILES"
8513 (search-input-file (or native-inputs inputs)
8514 (string-append
8515 xsldoc "/catalog.xml")))
8516 (substitute* "docs/manual/docbook-customisation.xsl"
8517 (("http://docbook.sourceforge.net/release/xsl\
8518 /current/html/chunk.xsl")
8519 (search-input-file (or native-inputs inputs)
8520 (string-append xsldoc
8521 "/html/chunk.xsl"))))))))))
8522 (propagated-inputs
8523 (list libxml2)) ;required by .pc file
8524 (native-inputs
8525 (list autoconf
8526 automake
8527 doxygen
8528 docbook-xml
8529 docbook-xsl
8530 graphviz ;for dot
8531 libtool
8532 libxslt
8533 mm-common
8534 perl
8535 pkg-config))
8536 (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
8537 (synopsis "C++ bindings to the libxml2 XML parser library")
8538 (description
8539 "This package provides a C++ interface to the libxml2 XML parser
8540 library.")
8541 (license license:lgpl2.1+)))
8542
8543 ;; This is the last release providing the 2.6 API, hence the name.
8544 ;; This is needed by tascam-gtk
8545 (define-public libxml++-2
8546 (package
8547 (inherit libxml++)
8548 (name "libxml++")
8549 (version "2.42.2")
8550 (source
8551 (origin
8552 (method git-fetch)
8553 (uri (git-reference
8554 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8555 (commit version)))
8556 (file-name (git-file-name name version))
8557 (sha256
8558 (base32 "05slsbhc25z7kwlc28ydl3dfyp7rgbmz1fxj9z6gcvpg3hkghj2m"))))
8559 (propagated-inputs (modify-inputs (package-propagated-inputs libxml++)
8560 (append glibmm-2.64)))))
8561
8562 (define-public gdm
8563 (package
8564 (name "gdm")
8565 (version "42.0")
8566 (source (origin
8567 (method url-fetch)
8568 (uri (string-append "mirror://gnome/sources/" name "/"
8569 (version-major version) "/"
8570 name "-" version ".tar.xz"))
8571 (sha256
8572 (base32
8573 "0m9qmm3vm81jmqlc30a1fb79hsr4l4lpiw0zjxww3gipd6bsqa53"))
8574 (patches
8575 (search-patches
8576 "gdm-default-session.patch"
8577 "gdm-elogind-support.patch"
8578 "gdm-remove-hardcoded-xwayland-path.patch"
8579 "gdm-wayland-session-wrapper-from-env.patch"
8580 "gdm-pass-gdk-pixbuf-loader-env.patch"))))
8581 (build-system meson-build-system)
8582 (arguments
8583 (list
8584 #:glib-or-gtk? #t
8585 #:configure-flags
8586 #~(list
8587 "-Dplymouth=disabled"
8588 "-Dsystemd-journal=false"
8589
8590 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8591 ;; instead of having to replace it (i.e., stopping the mingetty
8592 ;; service for TTY 1 before starting GDM).
8593 "-Dinitial-vt=7"
8594
8595 ;; Use elogind instead of systemd.
8596 "-Dlogind-provider=elogind"
8597 "-Dsystemdsystemunitdir=no"
8598 "-Dsystemduserunitdir=no"
8599
8600 ;; Use '/etc/environment' for locale settings instead of the
8601 ;; systemd-specific '/etc/locale.conf'.
8602 "-Dlang-file=/etc/environment"
8603
8604 (string-append "-Dudev-dir=" #$output "/lib/udev")
8605
8606 "--localstatedir=/var"
8607 (string-append "-Ddefault-path="
8608 (string-join '("/run/setuid-programs"
8609 "/run/current-system/profile/bin"
8610 "/run/current-system/profile/sbin")
8611 ":"))
8612 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8613 ;; XDG_DATA_DIRS so that it finds its schemas.
8614 "--sbindir" (string-append #$output "/bin"))
8615 #:phases
8616 #~(modify-phases %standard-phases
8617 (add-after 'unpack 'patch-paths
8618 (lambda* (#:key inputs #:allow-other-keys)
8619 (substitute* "daemon/gdm-session.c"
8620 (("dbus-run-session")
8621 (search-input-file inputs "bin/dbus-run-session")))))
8622 (add-before 'configure 'pre-configure
8623 (lambda* (#:key inputs #:allow-other-keys)
8624 ;; We don't have <systemd/sd-daemon.h>.
8625 (substitute* '("common/gdm-log.c"
8626 "daemon/gdm-server.c"
8627 "daemon/gdm-session-worker.c"
8628 "daemon/gdm-session-worker-job.c")
8629 (("#include <systemd/sd-daemon\\.h>") ""))
8630 ;; Use elogind for sd-login.
8631 (substitute* '("common/gdm-common.c"
8632 "daemon/gdm-local-display-factory.c"
8633 "daemon/gdm-manager.c"
8634 "libgdm/gdm-user-switching.c")
8635 (("#include <systemd/sd-login\\.h>")
8636 "#include <elogind/sd-login.h>"))
8637 ;; Look for system-installed sessions in
8638 ;; /run/current-system/profile/share.
8639 (substitute* '("libgdm/gdm-sessions.c"
8640 "daemon/gdm-session.c"
8641 "daemon/gdm-display.c"
8642 "daemon/gdm-launch-environment.c")
8643 (("DATADIR \"/x")
8644 "\"/run/current-system/profile/share/x")
8645 (("DATADIR \"/wayland")
8646 "\"/run/current-system/profile/share/wayland")
8647 (("DATADIR \"/gnome")
8648 "\"/run/current-system/profile/share/gnome"))
8649 (let ((propagate '("GDM_CUSTOM_CONF"
8650 "GDM_DBUS_DAEMON"
8651 "GDM_X_SERVER"
8652 "GDM_X_SESSION"
8653 ;; XXX: Remove this once GNOME Shell is
8654 ;; a dependency of GDM.
8655 "XDG_DATA_DIRS")))
8656 (substitute* "daemon/gdm-session.c"
8657 (("set_up_session_environment \\(self\\);")
8658 (apply string-append
8659 "set_up_session_environment (self);\n"
8660 (map (lambda (name)
8661 (string-append
8662 "gdm_session_set_environment_variable "
8663 "(self, \"" name "\","
8664 "g_getenv (\"" name "\"));\n"))
8665 propagate)))))
8666 ;; Find the configuration file using an environment variable.
8667 (substitute* '("common/gdm-settings.c")
8668 (("GDM_CUSTOM_CONF")
8669 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8670 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8671 " : GDM_CUSTOM_CONF)")))
8672 ;; Use service-supplied path to X.
8673 (substitute* '("daemon/gdm-server.c")
8674 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8675 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8676 (substitute* '("daemon/gdm-wayland-session.c"
8677 "daemon/gdm-x-session.c")
8678 (("\"dbus-daemon\"")
8679 "g_getenv (\"GDM_DBUS_DAEMON\")")
8680 (("X_SERVER")
8681 "g_getenv (\"GDM_X_SERVER\")")
8682 (("GDMCONFDIR \"/Xsession\"")
8683 "g_getenv (\"GDM_X_SESSION\")"))
8684 ;; Use an absolute path for GNOME Session.
8685 (substitute* "daemon/gdm-launch-environment.c"
8686 (("\"gnome-session\"")
8687 (format #f "~s"
8688 (search-input-file inputs "bin/gnome-session"))))
8689 ;; Do not automatically select the placeholder session.
8690 (substitute* "daemon/gdm-session.c"
8691 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8692 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8693 "(g_strcmp0(search_dirs[i], \""
8694 #$output "/share/gdm/BuiltInSessions/"
8695 "\") == 0 && "
8696 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8697 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8698 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))))
8699 (add-before 'install 'install-logo
8700 (lambda* (#:key inputs #:allow-other-keys)
8701 (let ((icon (search-input-file inputs "share/icons/hicolor/\
8702 scalable/apps/guix-white-icon.svg"))
8703 (schema (string-append #$output "/share/glib-2.0/schemas/\
8704 org.gnome.login-screen.gschema.override")))
8705 (mkdir-p (dirname schema))
8706 (with-output-to-file schema
8707 (lambda ()
8708 (format #t "\
8709 [org.gnome.login-screen]
8710 logo='~a'~%" icon))))))
8711 ;; GDM requires that there be at least one desktop entry
8712 ;; file. This phase installs a hidden one that simply
8713 ;; fails. This enables users to use GDM with a
8714 ;; '~/.xsession' script with no other desktop entry files.
8715 ;; See <https://bugs.gnu.org/35068>.
8716 (add-after 'install 'install-placeholder-desktop-entry
8717 (lambda _
8718 (let* ((sessions (string-append #$output
8719 "/share/gdm/BuiltInSessions"))
8720 (fail (string-append sessions "/fail.desktop")))
8721 (mkdir-p sessions)
8722 (with-output-to-file fail
8723 (lambda ()
8724 (for-each
8725 display
8726 '("[Desktop Entry]\n"
8727 "Encoding=UTF-8\n"
8728 "Type=Application\n"
8729 "Name=Fail\n"
8730 "Comment=This session fails immediately.\n"
8731 "NoDisplay=true\n"
8732 "Exec=false\n")))))))
8733 ;; GDM needs GNOME Session to run these applications. We link
8734 ;; their autostart files in `share/gdm/greeter/autostart'
8735 ;; because GDM explicitly tells GNOME Session to look there.
8736 ;;
8737 ;; XXX: GNOME Shell should be linked here too, but currently
8738 ;; GNOME Shell depends on GDM.
8739 (add-after 'install 'link-autostart-files
8740 (lambda* (#:key inputs #:allow-other-keys)
8741 (let ((autostart (string-append #$output "/share/gdm/"
8742 "greeter/autostart"))
8743 (settings #$(this-package-input "gnome-settings-daemon")))
8744 (mkdir-p autostart)
8745 (with-directory-excursion autostart
8746 (for-each (lambda (desktop)
8747 (symlink desktop (basename desktop)))
8748 (find-files
8749 (string-append settings "/etc/xdg"))))))))))
8750 (native-inputs
8751 (list `(,glib "bin") ;for glib-compile-schemas, etc.
8752 dconf
8753 gobject-introspection
8754 guix-icons
8755 intltool
8756 itstool
8757 libxml2
8758 pkg-config))
8759 (inputs
8760 (list accountsservice
8761 check ;for testing
8762 dbus
8763 elogind
8764 eudev
8765 gnome-session
8766 gnome-settings-daemon
8767 gtk+
8768 iso-codes
8769 libcanberra
8770 libgudev
8771 linux-pam))
8772 (synopsis "Display manager for GNOME")
8773 (home-page "https://wiki.gnome.org/Projects/GDM/")
8774 (description
8775 "GNOME Display Manager is a system service that is responsible for
8776 providing graphical log-ins and managing local and remote displays.")
8777 (license license:gpl2+)))
8778
8779 (define-public libgtop
8780 (package
8781 (name "libgtop")
8782 (version "2.40.0")
8783 (source (origin
8784 (method url-fetch)
8785 (uri (string-append "mirror://gnome/sources/libgtop/"
8786 (version-major+minor version) "/"
8787 "libgtop-" version ".tar.xz"))
8788 (sha256
8789 (base32
8790 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8791 (build-system gnu-build-system)
8792 (native-inputs
8793 (list gobject-introspection intltool perl pkg-config))
8794 (propagated-inputs
8795 (list glib)) ; required by libgtop-2.0.pc
8796 (synopsis "Portable system access library")
8797 (home-page "https://www.gnome.org/")
8798 (description
8799 "LibGTop is a library to get system specific data such as CPU and memory
8800 usage and information about running processes.")
8801 (license license:gpl2+)))
8802
8803 (define-public gnome-bluetooth
8804 (package
8805 (name "gnome-bluetooth")
8806 (version "42.4")
8807 (source (origin
8808 (method url-fetch)
8809 (uri (string-append "mirror://gnome/sources/gnome-bluetooth/"
8810 (version-major+minor version) "/"
8811 "gnome-bluetooth-" version ".tar.xz"))
8812 (sha256
8813 (base32
8814 "1p5wq3rh9p7fhka57qcds6lvphd26yyc18ilncx95jbcvcfcyvqx"))))
8815 (build-system meson-build-system)
8816 (native-inputs
8817 (list gettext-minimal
8818 gobject-introspection
8819 `(,glib "bin") ;for gdbus-codegen, etc.
8820 libxml2
8821 pkg-config
8822 python
8823 python-dbus))
8824 (propagated-inputs
8825 ;; These are all required by the gnome-bluetooth .pc file.
8826 (list glib
8827 gtk
8828 libadwaita))
8829 (inputs
8830 (list eudev
8831 gsound
8832 libnotify
8833 ;; TODO: Delete pango-next after it's the default.
8834 pango-next
8835 python-dbus
8836 upower))
8837 (synopsis "GNOME Bluetooth subsystem")
8838 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8839 (description
8840 "This package contains tools for managing and manipulating Bluetooth
8841 devices using the GNOME desktop.")
8842 (license license:lgpl2.1+)))
8843
8844 (define-public gnome-control-center
8845 (package
8846 (name "gnome-control-center")
8847 (version "42.3")
8848 (source (origin
8849 (method url-fetch)
8850 (uri (string-append "mirror://gnome/sources/" name "/"
8851 (version-major version) "/"
8852 name "-" version ".tar.xz"))
8853 (sha256
8854 (base32
8855 "0zhw6hcrrcpq1zjkyzr5ipznxnzd2aczrqd7n2y7xbz21mjy62nf"))))
8856 (build-system meson-build-system)
8857 (arguments
8858 (list
8859 #:glib-or-gtk? #t
8860 #:phases
8861 #~(modify-phases %standard-phases
8862 (add-before 'configure 'patch-paths
8863 (lambda* (#:key inputs #:allow-other-keys)
8864 (substitute* "panels/datetime/tz.h"
8865 (("/usr/share/zoneinfo/zone.tab")
8866 (search-input-file inputs "share/zoneinfo/zone.tab")))
8867 (substitute* "tests/datetime/test-endianess.c"
8868 (("/usr/share/locale")
8869 (search-input-directory inputs "share/locale")))
8870 (substitute* "panels/region/cc-region-panel.c"
8871 (("\"gkbd-keyboard-display")
8872 (string-append "\"" (search-input-file
8873 inputs "bin/gkbd-keyboard-display"))))
8874 (substitute* '("panels/network/net-device-bluetooth.c"
8875 "panels/network/net-device-mobile.c"
8876 "panels/network/connection-editor/net-connection-editor.c")
8877 (("\"nm-connection-editor")
8878 (string-append "\"" (search-input-file
8879 inputs "bin/nm-connection-editor"))))
8880 (substitute* "panels/user-accounts/run-passwd.c"
8881 (("/usr/bin/passwd")
8882 "/run/setuid-programs/passwd"))
8883 (substitute* "panels/info-overview/cc-info-overview-panel.c"
8884 (("DATADIR \"/gnome/gnome-version.xml\"")
8885 (format #f "~s" (search-input-file
8886 inputs "share/gnome/gnome-version.xml"))))))
8887 (add-after 'unpack 'skip-gtk-update-icon-cache
8888 ;; Don't create 'icon-theme.cache'.
8889 (lambda _
8890 (substitute* "build-aux/meson/meson_post_install.py"
8891 (("gtk-update-icon-cache") (which "true"))))))))
8892 (native-inputs
8893 (list docbook-xsl
8894 gettext-minimal
8895 `(,glib "bin") ;for glib-mkenums, etc.
8896 libxslt
8897 pkg-config
8898 python
8899 python-dbusmock
8900 xorg-server-for-tests))
8901 (inputs
8902 (list accountsservice
8903 colord-gtk
8904 cups
8905 dconf
8906 gcr
8907 gnome-bluetooth
8908 gnome-desktop
8909 gnome-online-accounts
8910 gnome-session
8911 gnome-settings-daemon
8912 gnutls
8913 grilo
8914 gsound
8915 ibus
8916 libadwaita
8917 libgnomekbd
8918 libgudev
8919 libgtop
8920 libnma
8921 libpwquality
8922 librsvg ;for loading SVG files
8923 libsecret
8924 libxml2
8925 libwacom
8926 mesa
8927 mit-krb5
8928 modem-manager
8929 network-manager-applet
8930 polkit
8931 pulseaudio
8932 samba
8933 tzdata
8934 udisks
8935 upower))
8936 (synopsis "Utilities to configure the GNOME desktop")
8937 (home-page "https://www.gnome.org/")
8938 (description
8939 "This package contains configuration applets for the GNOME desktop,
8940 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8941 properties, sound setup, desktop theme and background, user interface
8942 properties, screen resolution, and other GNOME parameters.")
8943 (license license:gpl2+)))
8944
8945 (define-public gnome-shell
8946 (package
8947 (name "gnome-shell")
8948 (version "42.4")
8949 (source (origin
8950 (method url-fetch)
8951 (uri (string-append "mirror://gnome/sources/" name "/"
8952 (version-major version) "/"
8953 name "-" version ".tar.xz"))
8954 (sha256
8955 (base32
8956 "0kn5fclciybp2fs38wd39hdz85y91pas0ckfa02pmyx91sbz4pw7"))))
8957 (build-system meson-build-system)
8958 (arguments
8959 (let ((disallowed-references
8960 (list (gexp-input glib "bin")
8961 (gexp-input libxslt)
8962 (gexp-input meson)
8963 (gexp-input ruby-sass))))
8964 (list
8965 #:glib-or-gtk? #t
8966 #:disallowed-references disallowed-references
8967 #:configure-flags
8968 #~(list "-Dsystemd=false"
8969 ;; Otherwise, the RUNPATH will lack the final path component.
8970 (string-append "-Dc_link_args=-Wl,-rpath="
8971 #$output "/lib/gnome-shell"))
8972 #:modules '((guix build meson-build-system)
8973 (guix build utils)
8974 (ice-9 match)
8975 (srfi srfi-1)
8976 (srfi srfi-26))
8977 #:phases
8978 #~(modify-phases %standard-phases
8979 (add-after 'unpack 'fix-keysdir
8980 (lambda _
8981 (let ((keysdir
8982 (string-append #$output
8983 "/share/gnome-control-center/keybindings")))
8984 (substitute* "meson.build"
8985 (("keysdir =.*")
8986 (string-append "keysdir = '" keysdir "'\n"))))))
8987 (add-after 'unpack 'skip-gtk-update-icon-cache
8988 ;; Don't create 'icon-theme.cache'.
8989 (lambda _
8990 (substitute* "meson.build"
8991 (("gtk_update_icon_cache: true")
8992 "gtk_update_icon_cache: false"))))
8993 (add-before 'configure 'record-absolute-file-names
8994 (lambda* (#:key inputs #:allow-other-keys)
8995 (let ((ibus-daemon (search-input-file inputs "bin/ibus-daemon"))
8996 (gkbd-keyboard-display
8997 (search-input-file inputs "bin/gkbd-keyboard-display")))
8998 (substitute* "js/misc/ibusManager.js"
8999 (("'ibus-daemon'")
9000 (string-append "'" ibus-daemon "'")))
9001 (substitute* "js/ui/status/keyboard.js"
9002 (("'gkbd-keyboard-display'")
9003 (string-append "'" gkbd-keyboard-display "'"))))))
9004 (add-before 'check 'pre-check
9005 (lambda* (#:key inputs #:allow-other-keys)
9006 ;; Tests require a running X server.
9007 (system "Xvfb :1 &")
9008 (setenv "DISPLAY" ":1")
9009 (setenv "HOME" "/tmp"))) ;to avoid "fatal" warnings
9010 (add-after 'install 'wrap-programs
9011 (lambda* (#:key inputs #:allow-other-keys)
9012 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH"))
9013 (python-path
9014 (string-join
9015 (filter (lambda (item)
9016 (not (any (cut string-prefix? <> item)
9017 '#$disallowed-references)))
9018 (string-split (getenv "GUIX_PYTHONPATH") #\:))
9019 ":")))
9020 (for-each
9021 (lambda (prog)
9022 (wrap-program (string-append #$output "/bin/" prog)
9023 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9024 '("gnome-shell" "gnome-extensions-app"))
9025 (substitute* (string-append #$output "/share/gnome-shell/"
9026 "org.gnome.Shell.Extensions")
9027 (("imports\\.package\\.start" all)
9028 (string-append "'" gi-typelib-path "'.split(':').forEach("
9029 "path => imports.gi.GIRepository.Repository."
9030 "prepend_search_path(path));\n"
9031 all)))
9032 (for-each
9033 (lambda (prog)
9034 (wrap-program (string-append #$output "/bin/" prog)
9035 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
9036 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
9037 '("gnome-shell-perf-tool")))))
9038 (add-after 'install 'rewire
9039 (lambda* (#:key inputs #:allow-other-keys)
9040 (for-each
9041 (lambda (tool)
9042 (call-with-output-file (string-append #$output
9043 "/bin/" tool)
9044 (lambda (port)
9045 (format port "#!~a
9046 printf '~a is deprecated. Use the \"gnome-extensions\" CLI or \
9047 \"gnome-extensions-app\" instead.\\n'"
9048 (search-input-file inputs "bin/bash")
9049 tool))))
9050 '("gnome-shell-extension-tool" "gnome-shell-extension-prefs"))))
9051 (replace 'glib-or-gtk-wrap
9052 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
9053 (lambda* (#:key inputs outputs #:allow-other-keys)
9054 ;; By default glib:bin et al. would end up in the XDG_DATA_DIRS
9055 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
9056 ;; phase. Fix that since we don't need these.
9057 (wrap #:inputs
9058 (filter (match-lambda
9059 ((label . output)
9060 (not (member output
9061 '#$disallowed-references))))
9062 inputs)
9063 #:outputs outputs))))))))
9064 (native-inputs
9065 (list asciidoc
9066 gettext-minimal
9067 `(,glib "bin") ;for glib-compile-schemas, etc.
9068 desktop-file-utils ;for update-desktop-database
9069 gobject-introspection
9070 hicolor-icon-theme
9071 libxslt
9072 perl
9073 pkg-config
9074 python
9075 ruby-sass
9076 sassc
9077 ;; For tests
9078 xorg-server-for-tests))
9079 (inputs
9080 (list accountsservice
9081 caribou
9082 docbook-xsl
9083 evolution-data-server
9084 gcr
9085 gdm
9086 librsvg
9087 gjs
9088 gtk
9089 gnome-autoar
9090 gnome-bluetooth
9091 gnome-desktop
9092 gnome-settings-daemon
9093 graphene
9094 gst-plugins-base
9095 ibus
9096 libcanberra
9097 libcroco
9098 libgnomekbd ;for gkbd-keyboard-display
9099 libgweather4
9100 libnma
9101 libsoup
9102 mesa-headers
9103 mutter
9104 network-manager-applet
9105 polkit
9106 pulseaudio
9107 python-pygobject
9108 startup-notification
9109 telepathy-logger
9110 upower
9111 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
9112 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
9113 librsvg
9114 geoclue))
9115 (synopsis "Desktop shell for GNOME")
9116 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
9117 (description
9118 "GNOME Shell provides core user interface functions for the GNOME desktop,
9119 like switching to windows and launching applications.")
9120 (license license:gpl2+)))
9121
9122 (define-public gtk-vnc
9123 (package
9124 (name "gtk-vnc")
9125 (version "1.3.1")
9126 (source
9127 (origin
9128 (method url-fetch)
9129 (uri
9130 (string-append "mirror://gnome/sources/" name "/"
9131 (version-major+minor version) "/"
9132 name "-" version ".tar.xz"))
9133 (sha256
9134 (base32 "1kpih1gnp3hmsx4l6pig10zn7gd3s5fwm0k6icax0n859sn669si"))))
9135 (build-system meson-build-system)
9136 (arguments
9137 `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
9138 (native-inputs
9139 (append
9140 ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
9141 ;; dependency on other platforms (FIXME).
9142 (if (target-x86-64?)
9143 (list gjs)
9144 '())
9145 (list gettext-minimal
9146 `(,glib "bin")
9147 gobject-introspection
9148 node
9149 perl
9150 pkg-config
9151 python-wrapper
9152 vala)))
9153 (inputs
9154 (list cairo
9155 (librsvg-for-system)))
9156 (propagated-inputs
9157 ;; These are all in Requires or Requires.private of the .pc files.
9158 (list cyrus-sasl
9159 gdk-pixbuf
9160 glib
9161 gnutls
9162 gtk+
9163 libgcrypt
9164 libx11
9165 pulseaudio
9166 zlib))
9167 (synopsis "VNC client viewer widget for GTK+")
9168 (description "GTK-VNC is a project providing client side APIs for the RFB
9169 protocol / VNC remote desktop technology. It is built using coroutines allowing
9170 it to be completely asynchronous while remaining single threaded. It provides a
9171 core C library, and bindings for Python (PyGTK).")
9172 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
9173 (license license:lgpl2.1+)))
9174
9175 (define-public gnome-autoar
9176 (package
9177 (name "gnome-autoar")
9178 (version "0.4.3")
9179 (source (origin
9180 (method url-fetch)
9181 (uri (string-append "mirror://gnome/sources/" name "/"
9182 (version-major+minor version) "/"
9183 name "-" version ".tar.xz"))
9184 (sha256
9185 (base32
9186 "124y4j3wgb6axgfzw9f00865r033fg7b0qy9qgfsp5ilan4hgpvv"))))
9187 (build-system meson-build-system)
9188 (native-inputs
9189 (list gobject-introspection `(,glib "bin") pkg-config))
9190 (propagated-inputs
9191 (list libarchive)) ; Required by gnome-autoar-0.pc
9192 (inputs
9193 (list gtk+))
9194 (synopsis "Archives integration support for GNOME")
9195 (home-page "https://git.gnome.org/browse/gnome-autoar/")
9196 (description
9197 "GNOME Autoar is a library which makes creating and extracting archives
9198 easy, safe, and automatic.")
9199 (license license:lgpl2.1+)))
9200
9201 (define-public tracker
9202 (package
9203 (name "tracker")
9204 (version "3.3.3")
9205 (source (origin
9206 (method url-fetch)
9207 (uri (string-append "mirror://gnome/sources/tracker/"
9208 (version-major+minor version) "/"
9209 "tracker-" version ".tar.xz"))
9210 (sha256
9211 (base32
9212 "0r144kdqxdzs51qn495vablzf1zxkhkk6imrlrzj9wiqwc2gg520"))))
9213 (build-system meson-build-system)
9214 (arguments
9215 `(#:glib-or-gtk? #t
9216 #:configure-flags
9217 ;; Otherwise, the RUNPATH will lack the final path component.
9218 (list (string-append "-Dc_link_args=-Wl,-rpath="
9219 (assoc-ref %outputs "out") "/lib:"
9220 (assoc-ref %outputs "out") "/lib/tracker-3.0")
9221 "-Ddocs=false"
9222 "-Dsystemd_user_services=false")
9223 #:phases
9224 (modify-phases %standard-phases
9225 (add-after 'unpack 'patch-paths
9226 (lambda* (#:key inputs #:allow-other-keys)
9227 (substitute* "utils/trackertestutils/__main__.py"
9228 (("/bin/bash")
9229 (search-input-file inputs "bin/bash")))))
9230 (add-before 'configure 'set-shell
9231 (lambda _
9232 (setenv "SHELL" (which "bash"))))
9233 (add-before 'configure 'fix-paths
9234 (lambda* (#:key inputs #:allow-other-keys)
9235 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9236 (file (search-input-file inputs manpage)))
9237 (substitute* "docs/manpages/meson.build"
9238 (("/etc/asciidoc[^']+")
9239 file)))))
9240 (replace 'check
9241 (lambda* (#:key tests? #:allow-other-keys)
9242 (when tests?
9243 ;; Some tests expect to write to $HOME.
9244 (setenv "HOME" "/tmp")
9245 (invoke "dbus-run-session" "--" "meson" "test"
9246 "--print-errorlogs")))))))
9247 (native-inputs
9248 (list gettext-minimal
9249 `(,glib "bin")
9250 glibc-utf8-locales
9251 gobject-introspection
9252 docbook-xsl
9253 docbook-xml
9254 gsettings-desktop-schemas
9255 asciidoc
9256 libxslt
9257 cmake-minimal
9258 python-pygobject
9259 gtk-doc/stable
9260 dbus
9261 pkg-config
9262 python
9263 vala))
9264 (inputs
9265 (list bash-minimal
9266 dbus
9267 libsoup))
9268 (propagated-inputs
9269 ;; These are in Requires or Requires.private of tracker-sparql-3.0.pc.
9270 (list glib
9271 icu4c ;libunistring gets miner-miner-fs test to fail
9272 json-glib
9273 libxml2
9274 sqlite))
9275 (synopsis "Metadata database, indexer and search tool")
9276 (home-page "https://wiki.gnome.org/Projects/Tracker")
9277 (description
9278 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
9279
9280 It is a middleware component aimed at desktop application developers who want
9281 their apps to browse and search user content. It's not designed to be used
9282 directly by desktop users, but it provides a commandline tool named
9283 @command{tracker} for the adventurous.
9284
9285 Tracker allows your application to instantly perform full-text searches across
9286 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
9287 example. This is achieved by indexing the user's home directory in the
9288 background.
9289
9290 Tracker also allows your application to query and list content that the user
9291 has stored. For example, GNOME Music displays all the music files that are
9292 found by Tracker. This means that GNOME Music doesn't need to maintain a
9293 database of its own.
9294
9295 If you need to go beyond simple searches, Tracker is also a linked data
9296 endpoint and it understands SPARQL.")
9297 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
9298 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9299 ;; libstemmer is bsd-3 and the rest is gpl2+.
9300 (license (list license:gpl2+
9301 license:bsd-3
9302 license:lgpl2.1+))))
9303
9304 (define-public tracker-miners
9305 (package
9306 (name "tracker-miners")
9307 (version "3.3.1")
9308 (source (origin
9309 (method url-fetch)
9310 (uri (string-append "mirror://gnome/sources/tracker-miners/"
9311 (version-major+minor version)
9312 "/tracker-miners-" version ".tar.xz"))
9313 (sha256
9314 (base32
9315 "151w6ljq1gk9idqfq9qs3w16vms91jnxy59c9kx6jaf0fb9cdp9y"))))
9316 (build-system meson-build-system)
9317 (arguments
9318 `(#:glib-or-gtk? #t
9319 #:configure-flags
9320 (list "-Dminer_rss=false" ; libgrss is required.
9321 ;; Ensure the RUNPATH contains all installed library locations.
9322 (string-append "-Dc_link_args=-Wl,-rpath="
9323 (assoc-ref %outputs "out")
9324 "/lib/tracker-miners-3.0")
9325 ;; TODO: Enable functional tests. Currently, the following error
9326 ;; appears:
9327 ;; Exception: The functional tests require DConf to be the default
9328 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
9329 "-Dfunctional_tests=false"
9330 "-Dsystemd_user_services=false")
9331 #:phases
9332 (modify-phases %standard-phases
9333 (add-before 'configure 'set-shell
9334 (lambda _
9335 (setenv "SHELL" (which "bash"))))
9336 (add-before 'configure 'fix-paths
9337 (lambda* (#:key inputs #:allow-other-keys)
9338 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9339 (file (search-input-file inputs manpage)))
9340 (substitute* "docs/manpages/meson.build"
9341 (("/etc/asciidoc[^']+")
9342 file)))))
9343 (add-before 'configure 'fix-tests
9344 (lambda* (#:key inputs #:allow-other-keys)
9345 ;; Disable those tests that require the functional_tests option
9346 ;; to be true and the UPower daemon to be started.
9347 (substitute* "examples/python/meson.build"
9348 (("foreach example_name:.*")
9349 "foreach example_name: []"))
9350 ;; Disable this test that is failing randomly:
9351 ;; https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/170.
9352 (substitute* "tests/libtracker-miner/meson.build"
9353 (("'miner-fs'.*")
9354 ""))))
9355 (replace 'check
9356 (lambda* (#:key tests? #:allow-other-keys)
9357 (when tests?
9358 ;; Some tests expect to write to $HOME.
9359 (setenv "HOME" "/tmp")
9360 (setenv "LANG" "en_US.UTF-8")
9361 (invoke "dbus-run-session" "--" "meson" "test"
9362 "--print-errorlogs"
9363 ;; Do not run the slow test, which fail (see:
9364 ;; https://gitlab.gnome.org/GNOME/tracker-miners
9365 ;; /-/issues/226).
9366 "--no-suite" "slow")))))))
9367 (native-inputs
9368 (list dbus
9369 intltool
9370 `(,glib "bin")
9371 docbook-xsl
9372 docbook-xml
9373 gsettings-desktop-schemas
9374 asciidoc
9375 libxslt
9376 gobject-introspection
9377 pkg-config
9378 python-pygobject))
9379 (inputs
9380 (list exempi
9381 ffmpeg
9382 flac
9383 giflib
9384 glib
9385 gstreamer
9386 icu4c
9387 json-glib
9388 libcue
9389 libexif
9390 libgsf
9391 libgxps
9392 libiptcdata
9393 libjpeg-turbo
9394 libosinfo
9395 libpng
9396 libseccomp
9397 libsoup
9398 libtiff
9399 libvorbis
9400 libxml2
9401 poppler
9402 shared-mime-info
9403 taglib
9404 totem-pl-parser
9405 tracker
9406 upower
9407 zlib))
9408 (synopsis "Metadata database, indexer and search tool")
9409 (home-page "https://wiki.gnome.org/Projects/Tracker")
9410 (description
9411 "Tracker is an advanced framework for first class objects with associated
9412 metadata and tags. It provides a one stop solution for all metadata, tags,
9413 shared object databases, search tools and indexing.")
9414 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9415 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
9416 (license (list license:gpl2+
9417 license:lgpl2.1+
9418 license:lgpl2.0+))))
9419
9420 (define-public nautilus
9421 (package
9422 (name "nautilus")
9423 (version "42.2")
9424 (source (origin
9425 (method url-fetch)
9426 (uri (string-append "mirror://gnome/sources/" name "/"
9427 (version-major version) "/"
9428 name "-" version ".tar.xz"))
9429 (sha256
9430 (base32
9431 "1cncyiyh79w1id6a6s2f0rxmgwl65lp4ml4afa0z35jrnwp2s8cr"))
9432 (patches
9433 (search-patches "nautilus-disable-tracker-tests.patch"))))
9434 (build-system meson-build-system)
9435 (arguments
9436 (list
9437 #:glib-or-gtk? #t
9438 #:phases
9439 #~(modify-phases %standard-phases
9440 (add-after 'unpack 'make-extensible
9441 (lambda _
9442 (substitute* "src/nautilus-module.c"
9443 (("static gboolean initialized = FALSE;" all)
9444 (string-append all "
9445 const char *extension_path;
9446 char **extension_dirs, **d;
9447 ")
9448 )
9449 (("load_module_dir \\(NAUTILUS_EXTENSIONDIR\\);" all)
9450 (string-append all
9451 "
9452 extension_path = g_getenv (\"NAUTILUS_EXTENSION_PATH\");
9453 if (extension_path)
9454 {
9455 extension_dirs = g_strsplit (extension_path, \":\", -1);
9456 for (d = extension_dirs; d != NULL && *d != NULL; d++)
9457 load_module_dir(*d);
9458 g_strfreev(extension_dirs);
9459 }
9460 ")))))
9461 (add-after 'unpack 'skip-gtk-update-icon-cache
9462 ;; Don't create 'icon-theme.cache'.
9463 (lambda _
9464 (substitute* "build-aux/meson/postinstall.py"
9465 (("gtk-update-icon-cache") "true"))))
9466 (delete 'check)
9467 (add-after 'install 'check
9468 (assoc-ref %standard-phases 'check))
9469 (add-before 'check 'pre-check
9470 (lambda _
9471 (setenv "HOME" "/tmp") ;some tests require a writable HOME
9472 (setenv "XDG_DATA_DIRS"
9473 (string-append (getenv "XDG_DATA_DIRS")
9474 ":" #$output "/share")))))))
9475 (native-inputs
9476 (list desktop-file-utils ;for update-desktop-database
9477 `(,glib "bin") ;for glib-mkenums, etc.
9478 gettext-minimal
9479 gobject-introspection
9480 pkg-config
9481 python
9482 python-pygobject))
9483 (inputs
9484 (list dconf
9485 gexiv2
9486 gvfs
9487 exempi
9488 gnome-desktop
9489 gnome-autoar
9490 gst-plugins-base
9491 json-glib
9492 libhandy
9493 libportal
9494 libseccomp
9495 libselinux
9496 tracker
9497 tracker-miners
9498 ;; XXX: gtk+ is required by libnautilus-extension.pc
9499 ;;
9500 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
9501 ;; package. See:
9502 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
9503 gtk+
9504 libexif
9505 libxml2))
9506 (native-search-paths
9507 (list (search-path-specification
9508 (variable "NAUTILUS_EXTENSION_PATH")
9509 (files '("lib/nautilus/site-extensions")))))
9510 (synopsis "File manager for GNOME")
9511 (home-page "https://wiki.gnome.org/Apps/Nautilus")
9512 (description
9513 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
9514 design and behaviour, giving the user a simple way to navigate and manage its
9515 files.")
9516 (license license:gpl2+)))
9517
9518 (define-public baobab
9519 (package
9520 (name "baobab")
9521 (version "42.0")
9522 (source (origin
9523 (method url-fetch)
9524 (uri (string-append
9525 "mirror://gnome/sources/" name "/"
9526 (version-major version) "/"
9527 name "-" version ".tar.xz"))
9528 (sha256
9529 (base32
9530 "1p2hg8qxbvdfax9z4qjhdsxia93zrsdq58krx8zjnn5ipbkan6jb"))))
9531 (build-system meson-build-system)
9532 (arguments
9533 '(#:glib-or-gtk? #t))
9534 (native-inputs
9535 (list desktop-file-utils ;for update-desktop-database
9536 gettext-minimal
9537 `(,glib "bin")
9538 `(,gtk+ "bin") ;for gtk-update-icon-cache
9539 itstool
9540 libxml2
9541 pkg-config
9542 python
9543 vala))
9544 (inputs
9545 (list gtk libadwaita libhandy
9546 ;; XXX: Ensure pango-next is used instead of the equally propagated
9547 ;; 'pango'.
9548 pango-next))
9549 (synopsis "Disk usage analyzer for GNOME")
9550 (description
9551 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
9552 usage in the GNOME desktop environment. It can easily scan device volumes or
9553 a specific user-requested directory branch (local or remote). Once the scan
9554 is complete it provides a graphical representation of each selected folder.")
9555 (home-page "https://wiki.gnome.org/Apps/Baobab")
9556 (license license:gpl2+)))
9557
9558 (define-public gnome-backgrounds
9559 (package
9560 (name "gnome-backgrounds")
9561 (version "41.0")
9562 (source
9563 (origin
9564 (method url-fetch)
9565 (uri (string-append "mirror://gnome/sources/" name "/"
9566 (version-major version) "/"
9567 name "-" version ".tar.xz"))
9568 (sha256
9569 (base32
9570 "0i9id5z72dqddh94648zylyf41amqq5lhny8sbyg1v8v4q6sr88x"))))
9571 (build-system meson-build-system)
9572 (native-inputs (list gettext-minimal))
9573 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
9574 (synopsis "Background images for the GNOME desktop")
9575 (description
9576 "GNOME backgrounds package contains a collection of graphics files which
9577 can be used as backgrounds in the GNOME Desktop environment. Additionally,
9578 the package creates the proper framework and directory structure so that you
9579 can add your own files to the collection.")
9580 (license (list license:gpl2+
9581 license:cc-by2.0
9582 license:cc-by-sa2.0
9583 license:cc-by-sa3.0))))
9584
9585 (define-public gnome-screenshot
9586 (package
9587 (name "gnome-screenshot")
9588 (version "41.0")
9589 (source
9590 (origin
9591 (method url-fetch)
9592 (uri (string-append "mirror://gnome/sources/" name "/"
9593 (version-major version) "/"
9594 name "-" version ".tar.xz"))
9595 (sha256
9596 (base32
9597 "15wmikwk62cdi93gas77nqh4fbhlrxrncyfmcd1gfa34jbn7vnsa"))
9598 (patches
9599 (search-patches "gnome-screenshot-meson-0.60.patch"))))
9600 (build-system meson-build-system)
9601 (arguments
9602 '(#:glib-or-gtk? #t
9603 #:phases
9604 (modify-phases %standard-phases
9605 (add-after 'unpack 'skip-gtk-update-icon-cache
9606 ;; Don't create 'icon-theme.cache'.
9607 (lambda _
9608 (substitute* "build-aux/postinstall.py"
9609 (("gtk-update-icon-cache") "true")))))))
9610 (native-inputs
9611 (list appstream-glib
9612 desktop-file-utils ; for update-desktop-database
9613 gettext-minimal
9614 `(,glib "bin") ; for glib-compile-schemas, etc.
9615 pkg-config
9616 python))
9617 (inputs
9618 (list gtk+
9619 libhandy
9620 libx11
9621 libxext))
9622 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
9623 (synopsis "Take pictures of your screen")
9624 (description
9625 "GNOME Screenshot is a utility used for taking screenshots of the entire
9626 screen, a window or a user defined area of the screen, with optional
9627 beautifying border effects.")
9628 (license license:gpl2+)))
9629
9630 (define-public dconf-editor
9631 (package
9632 (name "dconf-editor")
9633 (version "3.38.3")
9634 (source
9635 (origin
9636 (method url-fetch)
9637 (uri (string-append "mirror://gnome/sources/" name "/"
9638 (version-major+minor version) "/"
9639 name "-" version ".tar.xz"))
9640 (sha256
9641 (base32
9642 "1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp"))))
9643 (build-system meson-build-system)
9644 (native-inputs
9645 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9646 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9647 ("intltool" ,intltool)
9648 ("pkg-config" ,pkg-config)
9649 ("vala" ,vala)))
9650 (inputs
9651 (list dconf gtk+ libxml2))
9652 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9653 (synopsis "Graphical editor for GNOME's dconf configuration system")
9654 (description
9655 "Dconf-editor is a graphical tool for browsing and editing the dconf
9656 configuration system for GNOME. It allows users to configure desktop
9657 software that do not provide their own configuration interface.")
9658 (license license:lgpl2.1+)))
9659
9660 (define-public gnome-default-applications
9661 (package
9662 (name "gnome-default-applications")
9663 (version "0")
9664 (build-system trivial-build-system)
9665 (source #f)
9666 (propagated-inputs
9667 (list nautilus evince))
9668 (arguments
9669 `(#:modules ((guix build utils))
9670 #:builder
9671 (begin
9672 (use-modules (guix build utils))
9673 (let* ((out (assoc-ref %outputs "out"))
9674 (apps (string-append out "/share/applications")))
9675 (mkdir-p apps)
9676 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9677 (lambda (port)
9678 (format port "[Default Applications]\n")
9679 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9680 (format port "application/pdf=evince.desktop\n")
9681 (format port "application/postscript=evince.desktop\n")))
9682 #t))))
9683 (synopsis "Default MIME type associations for the GNOME desktop")
9684 (description
9685 "Given many installed packages which might handle a given MIME type, a
9686 user running the GNOME desktop probably has some preferences: for example,
9687 that folders be opened by default by the Nautilus file manager, not the Baobab
9688 disk usage analyzer. This package establishes that set of default MIME type
9689 associations for GNOME.")
9690 (license license:gpl3+)
9691 (home-page #f)))
9692
9693 (define-public libgovirt
9694 (package
9695 (name "libgovirt")
9696 (version "0.3.9")
9697 (source (origin
9698 (method url-fetch)
9699 (uri (string-append "mirror://gnome/sources/" name "/"
9700 (version-major+minor version) "/"
9701 name "-" version ".tar.xz"))
9702 (sha256
9703 (base32
9704 "0z118di7cg654f5zb8xn5w60ghgqngsc1p7izr1pw01dkxbw6bxi"))))
9705 (build-system meson-build-system)
9706 (arguments
9707 (list #:glib-or-gtk? #t
9708 #:phases #~(modify-phases %standard-phases
9709 (add-after 'unpack 'set-home
9710 (lambda _
9711 ;; The tests require a writable HOME.
9712 (setenv "HOME" "/tmp"))))))
9713 (native-inputs
9714 (list gettext-minimal
9715 `(,glib "bin")
9716 glib-networking ; GIO plugin--for the tests
9717 gobject-introspection
9718 gsettings-desktop-schemas
9719 pkg-config))
9720 (inputs
9721 (list rest-next))
9722 (synopsis "GoVirt Library")
9723 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9724 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9725 (license license:gpl2+)))
9726
9727 (define-public gnome-weather
9728 (package
9729 (name "gnome-weather")
9730 (version "42.0")
9731 (source (origin
9732 (method url-fetch)
9733 (uri (string-append "mirror://gnome/sources/" name "/"
9734 (version-major version) "/"
9735 name "-" version ".tar.xz"))
9736 (sha256
9737 (base32
9738 "0rdl0ywdk8jlq819wr1sbdzdvsasz11pp30fylzvprakv28yd7jp"))))
9739 (build-system meson-build-system)
9740 (arguments
9741 (list
9742 #:glib-or-gtk? #t
9743 #:phases
9744 #~(modify-phases %standard-phases
9745 (add-after 'unpack 'fix-service-file
9746 (lambda _
9747 (substitute* "data/org.gnome.Weather.service.in"
9748 (("Exec=[[:graph:]]+")
9749 (string-append "Exec=" #$output
9750 "/bin/gnome-weather")))))
9751 (add-after 'unpack 'disable-gtk-update-icon-cache
9752 (lambda _
9753 (setenv "DESTDIR" "/")))
9754 (add-after 'install 'fix-desktop-file
9755 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some
9756 ;; reason. See https://issues.guix.gnu.org/issue/39324.
9757 (lambda* (#:key outputs #:allow-other-keys)
9758 (substitute* (search-input-file
9759 outputs
9760 "share/applications/org.gnome.Weather.desktop")
9761 (("Exec=.*") "Exec=gnome-weather\n"))))
9762 (add-after 'install 'wrap
9763 (lambda* (#:key outputs #:allow-other-keys)
9764 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at
9765 ;; runtime.
9766 (wrap-program (search-input-file outputs "bin/gnome-weather")
9767 `("GI_TYPELIB_PATH" ":" prefix
9768 (,(getenv "GI_TYPELIB_PATH")))))))))
9769 (native-inputs
9770 (list gettext-minimal
9771 `(,glib "bin")
9772 gobject-introspection
9773 pkg-config))
9774 (inputs
9775 (list appstream-glib
9776 bash-minimal
9777 geoclue
9778 gjs
9779 gsettings-desktop-schemas-next
9780 gtk
9781 libadwaita
9782 libgweather4))
9783 (synopsis "Weather monitoring for GNOME desktop")
9784 (description "GNOME Weather is a small application that allows you to
9785 monitor the current weather conditions for your city, or anywhere in the
9786 world.")
9787 (home-page "https://wiki.gnome.org/Apps/Weather")
9788 (license license:gpl2+)))
9789
9790 (define-public gnome
9791 (package
9792 (name "gnome")
9793 (version (package-version gnome-shell))
9794 (source #f)
9795 (build-system trivial-build-system)
9796 (arguments '(#:builder (begin (mkdir %output) #t)))
9797 (propagated-inputs
9798 `(;; GNOME-Core-OS-Services
9799 ("accountsservice" ,accountsservice)
9800 ("network-manager" ,network-manager)
9801 ("packagekit" ,packagekit)
9802 ("upower" ,upower)
9803 ;; GNOME-Core-Shell
9804 ("adwaita-icon-theme" ,adwaita-icon-theme)
9805 ("gdm" ,gdm)
9806 ("glib-networking" ,glib-networking)
9807 ("gnome-backgrounds" ,gnome-backgrounds)
9808 ("gnome-bluetooth" ,gnome-bluetooth)
9809 ("gnome-color-manager" ,gnome-color-manager)
9810 ("gnome-control-center" ,gnome-control-center)
9811 ("gnome-desktop" ,gnome-desktop)
9812 ("gnome-initial-setup" ,gnome-initial-setup)
9813 ("gnome-keyring" ,gnome-keyring)
9814 ("gnome-menus" ,gnome-menus)
9815 ("gnome-session" ,gnome-session)
9816 ("gnome-settings-daemon" ,gnome-settings-daemon)
9817 ("gnome-shell-extensions" ,gnome-shell-extensions)
9818 ("gnome-shell" ,gnome-shell)
9819 ("gnome-themes-extra" ,gnome-themes-extra)
9820 ("gnome-user-docs" ,gnome-user-docs)
9821 ("gnome-user-share" ,gnome-user-share)
9822 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9823 ("gvfs" ,gvfs)
9824 ("mutter" ,mutter)
9825 ("orca" ,orca)
9826 ("rygel" ,rygel)
9827 ("sushi" ,sushi)
9828 ;; GNOME-Core-Utilities
9829 ("baobab" ,baobab)
9830 ("cheese" ,cheese)
9831 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9832 ;; only works on x86_64, so exclude it on other architectures.
9833 ,@(if (string-prefix? "x86_64" (%current-system))
9834 `(("eog" ,eog))
9835 '())
9836 ("epiphany" ,epiphany)
9837 ("evince" ,evince)
9838 ("file-roller" ,file-roller)
9839 ("gedit" ,gedit)
9840 ("gnome-boxes" ,gnome-boxes)
9841 ("gnome-calculator" ,gnome-calculator)
9842 ("gnome-calendar" ,gnome-calendar)
9843 ("gnome-characters" ,gnome-characters)
9844 ("gnome-clocks" ,gnome-clocks)
9845 ("gnome-contacts" ,gnome-contacts)
9846 ("gnome-disk-utility" ,gnome-disk-utility)
9847 ("gnome-font-viewer" ,gnome-font-viewer)
9848 ("gnome-maps" ,gnome-maps)
9849 ("gnome-music" ,gnome-music)
9850 ("gnome-photos" ,gnome-photos)
9851 ("gnome-screenshot" ,gnome-screenshot)
9852 ("gnome-system-monitor" ,gnome-system-monitor)
9853 ("gnome-terminal" ,gnome-terminal)
9854 ("gnome-weather" ,gnome-weather)
9855 ("nautilus" ,nautilus)
9856 ("simple-scan" ,simple-scan)
9857 ("totem" ,totem)
9858 ("tracker-miners" ,tracker-miners)
9859 ("yelp" ,yelp)
9860 ;; Others
9861 ("hicolor-icon-theme" ,hicolor-icon-theme)
9862 ("gnome-online-accounts" ,gnome-online-accounts)
9863
9864 ;; Packages not part of GNOME proper but that are needed for a good
9865 ;; experience. See <https://bugs.gnu.org/39646>.
9866 ;; XXX: Find out exactly which ones are needed and why.
9867 ("font-abattis-cantarell" ,font-abattis-cantarell)
9868 ("font-dejavu" ,font-dejavu)
9869 ("at-spi2-core" ,at-spi2-core-minimal)
9870 ("dbus" ,dbus)
9871 ("dconf" ,dconf)
9872 ("desktop-file-utils" ,desktop-file-utils)
9873 ("gnome-default-applications" ,gnome-default-applications)
9874 ("gst-plugins-base" ,gst-plugins-base)
9875 ("gst-plugins-good" ,gst-plugins-good)
9876 ("gucharmap" ,gucharmap)
9877 ("pinentry-gnome3" ,pinentry-gnome3)
9878 ("pulseaudio" ,pulseaudio)
9879 ("shared-mime-info" ,shared-mime-info)
9880 ("system-config-printer" ,system-config-printer)
9881 ("xdg-user-dirs" ,xdg-user-dirs)
9882 ("yelp" ,yelp)
9883 ("zenity" ,zenity)))
9884 (synopsis "The GNU desktop environment")
9885 (home-page "https://www.gnome.org/")
9886 (description
9887 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9888 applications for browsing the web, editing text and images, creating
9889 documents and diagrams, playing media, scanning, and much more.")
9890 (license license:gpl2+)))
9891
9892 (define-public byzanz
9893 ;; The last stable release of Byzanz was in 2011, but there have been many
9894 ;; useful commits made to the Byzanz repository since then that it would be
9895 ;; silly to use such an old release.
9896 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9897 (package
9898 (name "byzanz")
9899 (version (string-append "0.2-1." (string-take commit 7)))
9900 (source (origin
9901 (method git-fetch)
9902 (uri (git-reference
9903 (url "https://git.gnome.org/browse/byzanz")
9904 (commit commit)))
9905 (file-name (string-append name "-" version "-checkout"))
9906 (sha256
9907 (base32
9908 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9909 (build-system glib-or-gtk-build-system)
9910 (arguments
9911 '(#:phases
9912 (modify-phases %standard-phases
9913 (add-before 'bootstrap 'build-without-Werror
9914 (lambda _
9915 ;; The build system cleverly detects that we're not building from
9916 ;; a release tarball and turns on -Werror for GCC.
9917 ;; Unsurprisingly, there is a warning during compilation that
9918 ;; causes the build to fail unnecessarily, so we remove the flag.
9919 (substitute* '("configure.ac")
9920 (("-Werror") ""))
9921 #t)))))
9922 (native-inputs
9923 (list autoconf
9924 automake
9925 gnome-common
9926 intltool
9927 libtool
9928 pkg-config
9929 which))
9930 (inputs
9931 (list glib gstreamer gst-plugins-base gtk+))
9932 (synopsis "Desktop recording program")
9933 (description "Byzanz is a simple desktop recording program with a
9934 command-line interface. It can record part or all of an X display for a
9935 specified duration and save it as a GIF encoded animated image file.")
9936 (home-page "https://git.gnome.org/browse/byzanz")
9937 (license license:gpl2+))))
9938
9939 (define-public authenticator
9940 (package
9941 (name "authenticator")
9942 (version "3.32.2")
9943 (source
9944 (origin
9945 (method git-fetch)
9946 (uri (git-reference
9947 (url "https://gitlab.gnome.org/World/Authenticator")
9948 (commit version)))
9949 (file-name (git-file-name name version))
9950 (sha256
9951 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9952 (build-system meson-build-system)
9953 (arguments
9954 `(#:meson ,meson-0.59
9955 #:glib-or-gtk? #t
9956 #:phases
9957 (modify-phases %standard-phases
9958 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9959 (lambda* (#:key inputs outputs #:allow-other-keys)
9960 (let ((prog (string-append (assoc-ref outputs "out")
9961 "/bin/authenticator"))
9962 (pylib (string-append (assoc-ref outputs "out")
9963 "/lib/python"
9964 ,(version-major+minor
9965 (package-version
9966 (this-package-input "python")))
9967 "/site-packages")))
9968 (wrap-program prog
9969 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
9970 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
9971 (native-inputs
9972 (list desktop-file-utils
9973 gettext-minimal
9974 `(,glib "bin")
9975 gobject-introspection
9976 `(,gtk+ "bin")
9977 pkg-config))
9978 (inputs
9979 (list gsettings-desktop-schemas
9980 gtk+
9981 libhandy-0.0
9982 libsecret
9983 python
9984 python-beautifulsoup4
9985 python-pillow
9986 python-pyfavicon
9987 python-pygobject
9988 python-pyotp
9989 python-pyzbar
9990 yoyo-migrations
9991 zbar))
9992 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9993 (synopsis "Two-factor authentication application built for GNOME")
9994 (description
9995 "Authenticator is a two-factor authentication (2FA) application built for
9996 the GNOME desktop environment.
9997
9998 Features:
9999
10000 @itemize
10001 @item QR code scanner
10002 @item Beautiful UI
10003 @item Huge database of more than 560 supported services
10004 @item Keep your PIN tokens secure by locking the application with a password
10005 @item Automatically fetch an image for services using their favicon
10006 @item The possibility to add new services
10007 @end itemize")
10008 (license license:gpl3+)))
10009
10010 (define-public gsound
10011 (package
10012 (name "gsound")
10013 (version "1.0.3")
10014 (source (origin
10015 (method url-fetch)
10016 (uri (string-append "mirror://gnome/sources/gsound/"
10017 (version-major+minor version) "/"
10018 "gsound-" version ".tar.xz"))
10019 (sha256
10020 (base32
10021 "06l80xgykj7x1kqkjvcq06pwj2rmca458zvs053qc55x3sg06bfa"))))
10022 (build-system meson-build-system)
10023 (native-inputs
10024 (list pkg-config gobject-introspection vala))
10025 (propagated-inputs
10026 (list libcanberra)) ; in Requires.private of gsound.pc
10027 (home-page "https://wiki.gnome.org/Projects/GSound")
10028 (synopsis "GObject wrapper for libcanberra")
10029 (description
10030 "GSound is a small library for playing system sounds. It's designed to be
10031 used via GObject Introspection, and is a thin wrapper around the libcanberra C
10032 library.")
10033 (license license:lgpl2.1+)))
10034
10035 (define-public libzapojit
10036 (package
10037 (name "libzapojit")
10038 (version "0.0.3")
10039 (source (origin
10040 (method url-fetch)
10041 (uri (string-append "mirror://gnome/sources/" name "/"
10042 (version-major+minor version) "/"
10043 name "-" version ".tar.xz"))
10044 (sha256
10045 (base32
10046 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
10047 (build-system gnu-build-system)
10048 (native-inputs
10049 (list gobject-introspection intltool pkg-config))
10050 (inputs
10051 (list gnome-online-accounts json-glib rest))
10052 (home-page "https://wiki.gnome.org/Projects/Zapojit")
10053 (synopsis "Library for accessing SkyDrive and Hotmail")
10054 (description
10055 "Libzapojit is a GLib-based library for accessing online service APIs of
10056 Microsoft SkyDrive and Hotmail, using their REST protocols.")
10057 (license license:lgpl2.1+)))
10058
10059 (define-public gnome-clocks
10060 (package
10061 (name "gnome-clocks")
10062 (version "42.0")
10063 (source (origin
10064 (method url-fetch)
10065 (uri (string-append "mirror://gnome/sources/" name "/"
10066 (version-major version) "/"
10067 name "-" version ".tar.xz"))
10068 (sha256
10069 (base32
10070 "1q3gvniwd4dkr1ghqpp05zr7qswdhaxqrn8j6bm3qbh39bdihw8f"))))
10071 (build-system meson-build-system)
10072 (arguments
10073 '(#:glib-or-gtk? #t
10074 #:phases
10075 (modify-phases %standard-phases
10076 (add-after 'unpack 'skip-gtk-update-icon-cache
10077 ;; Don't create 'icon-theme.cache'.
10078 (lambda _
10079 (substitute* "meson.build"
10080 (("gtk_update_icon_cache: true")
10081 "gtk_update_icon_cache: false")))))))
10082 (native-inputs
10083 (list desktop-file-utils
10084 gettext-minimal
10085 `(,glib "bin") ; for glib-compile-resources
10086 itstool
10087 pkg-config
10088 vala-next))
10089 (inputs
10090 (list geoclue
10091 geocode-glib-with-libsoup2
10092 glib
10093 gnome-desktop
10094 gsound
10095 gtk
10096 libadwaita
10097 libgweather4-with-libsoup2))
10098 (home-page "https://wiki.gnome.org/Apps/Clocks")
10099 (synopsis "GNOME's clock application")
10100 (description
10101 "GNOME Clocks is a simple clocks application designed to fit the GNOME
10102 desktop. It supports world clock, stop watch, alarms, and count down timer.")
10103 (license license:gpl3+)))
10104
10105 (define-public gnome-calendar
10106 (package
10107 (name "gnome-calendar")
10108 (version "42.2")
10109 (source (origin
10110 (method url-fetch)
10111 (uri (string-append "mirror://gnome/sources/" name "/"
10112 (version-major version) "/"
10113 name "-" version ".tar.xz"))
10114 (sha256
10115 (base32
10116 "1ggvnl2jnc24nzpkjvsk57vpckjzb14a7mmnk6jjm84nmqxccz5f"))))
10117 (build-system meson-build-system)
10118 (arguments
10119 `(#:glib-or-gtk? #t
10120 #:phases
10121 (modify-phases %standard-phases
10122 (add-after 'unpack 'skip-gtk-update-icon-cache
10123 ;; Don't create 'icon-theme.cache'.
10124 (lambda _
10125 (substitute* "meson.build"
10126 (("gtk_update_icon_cache: true")
10127 "gtk_update_icon_cache: false")))))))
10128 (native-inputs
10129 (list gettext-minimal
10130 `(,glib "bin") ; For glib-compile-schemas
10131 pkg-config))
10132 (inputs
10133 ;; Note: not propagating evolution-data-server-3.44 to keep profiles
10134 ;; clean from libsoup2.
10135 (list evolution-data-server-3.44
10136 geoclue
10137 geocode-glib-with-libsoup2
10138 gnome-online-accounts-3.44
10139 gsettings-desktop-schemas
10140 libadwaita
10141 libdazzle
10142 libgweather4-with-libsoup2
10143 ;; Remove pango-next when it's the default.
10144 pango-next))
10145 (home-page "https://wiki.gnome.org/Apps/Calendar")
10146 (synopsis "GNOME's calendar application")
10147 (description
10148 "GNOME Calendar is a simple calendar application designed to fit the GNOME
10149 desktop. It supports multiple calendars, month, week and year view.")
10150 (license license:gpl3+)))
10151
10152 (define-public gnome-todo
10153 (package
10154 (name "gnome-todo")
10155 (version "41.0")
10156 (source (origin
10157 (method url-fetch)
10158 (uri (string-append "mirror://gnome/sources/" name "/"
10159 (version-major version) "/"
10160 name "-" version ".tar.xz"))
10161 (sha256
10162 (base32
10163 "1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras"))
10164 (patches (search-patches "gnome-todo-libportal.patch"))))
10165 (build-system meson-build-system)
10166 (arguments
10167 (list
10168 #:glib-or-gtk? #t
10169 #:phases
10170 #~(modify-phases %standard-phases
10171 (add-after 'unpack 'skip-gtk-update-icon-cache
10172 (lambda _
10173 (substitute* "build-aux/meson/meson_post_install.py"
10174 (("gtk-update-icon-cache") "true"))))
10175 (delete 'check)
10176 (add-after 'install 'check
10177 (assoc-ref %standard-phases
10178 'check))
10179 (add-before 'check 'pre-check
10180 (lambda _
10181 (setenv "GSETTINGS_SCHEMA_DIR"
10182 (string-append #$output "/share/glib-2.0/schemas")))))))
10183 (native-inputs
10184 (list gettext-minimal
10185 gobject-introspection
10186 `(,glib "bin") ;for glib-compile-resources
10187 `(,gtk "bin") ;for gtk-update-icon-cache
10188 itstool
10189 pkg-config))
10190 (inputs
10191 (list rest ;for Todoist plugin
10192 gtk
10193 json-glib ;for Todoist plugin
10194 libadwaita
10195 evolution-data-server
10196 libical
10197 libpeas
10198 libportal
10199 python-pygobject
10200 evolution-data-server
10201 gnome-online-accounts
10202 gsettings-desktop-schemas))
10203 (home-page "https://wiki.gnome.org/Apps/Todo")
10204 (synopsis "GNOME's ToDo Application")
10205 (description "GNOME To Do is a simplistic personal task manager designed
10206 to perfectly fit the GNOME desktop.")
10207 (license license:gpl3+)))
10208
10209 (define-public gnome-dictionary
10210 (package
10211 (name "gnome-dictionary")
10212 (version "40.0")
10213 (source (origin
10214 (method url-fetch)
10215 (uri (string-append "mirror://gnome/sources/" name "/"
10216 (version-major version) "/"
10217 name "-" version ".tar.xz"))
10218 (sha256
10219 (base32
10220 "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f"))))
10221 (build-system meson-build-system)
10222 (arguments
10223 `(#:glib-or-gtk? #t
10224 #:phases
10225 (modify-phases %standard-phases
10226 (add-after 'unpack 'skip-gtk-update-icon-cache
10227 ;; Don't create 'icon-theme.cache'.
10228 (lambda _
10229 (substitute* "build-aux/meson/post-install.py"
10230 (("gtk-update-icon-cache") "true")))))))
10231 (native-inputs
10232 (list `(,glib "bin")
10233 gobject-introspection
10234 intltool
10235 itstool
10236 pkg-config
10237 libxml2))
10238 (inputs
10239 (list gsettings-desktop-schemas
10240 gtk+))
10241 (home-page "https://wiki.gnome.org/Apps/Dictionary")
10242 (synopsis "Look up words in dictionary sources")
10243 (description
10244 "GNOME Dictionary can look for the definition or translation of a word in
10245 existing databases over the internet.")
10246 (license license:gpl3+)))
10247
10248 (define-public gnome-tweaks
10249 (package
10250 (name "gnome-tweaks")
10251 (version "40.10")
10252 (source (origin
10253 (method url-fetch)
10254 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
10255 (version-major version) "/"
10256 "gnome-tweaks-" version ".tar.xz"))
10257 (patches
10258 (list (search-patch "gnome-tweaks-search-paths.patch")))
10259 (sha256
10260 (base32
10261 "1z13xy804hld9q8k0vq5y4j5jk7m0ayqzkli8jxpymwrlcrkpzfg"))))
10262 (build-system meson-build-system)
10263 (arguments
10264 (list
10265 #:glib-or-gtk? #t
10266 #:configure-flags #~(list "-Dlocalstatedir=/tmp"
10267 "-Dsysconfdir=/tmp")
10268 #:imported-modules `((guix build python-build-system)
10269 ,@%meson-build-system-modules)
10270 #:modules '((guix build meson-build-system)
10271 ((guix build python-build-system) #:prefix python:)
10272 (guix build utils))
10273 #:phases
10274 #~(modify-phases %standard-phases
10275 (add-after 'unpack 'skip-gtk-update-icon-cache
10276 ;; Don't create 'icon-theme.cache'.
10277 (lambda _
10278 (substitute* "meson-postinstall.py"
10279 (("gtk-update-icon-cache") "true"))))
10280 (add-after 'install 'wrap
10281 (assoc-ref python:%standard-phases 'wrap))
10282 (add-after 'wrap 'wrap-gi-typelib-and-python
10283 (lambda* (#:key inputs outputs #:allow-other-keys)
10284 (wrap-program (search-input-file outputs "bin/gnome-tweaks")
10285 `("GI_TYPELIB_PATH" ":" prefix
10286 (,(getenv "GI_TYPELIB_PATH")))
10287 `("GUIX_PYTHONPATH" ":" prefix
10288 (,(python:site-packages inputs outputs)))))))))
10289 (native-inputs
10290 (list `(,glib "bin") ; for glib-compile-resources, etc.
10291 gettext-minimal
10292 pkg-config))
10293 (inputs
10294 (list bash-minimal ; to execute the wrapper program
10295 gnome-desktop
10296 gtk+
10297 gobject-introspection
10298 gsettings-desktop-schemas
10299 libhandy
10300 libnotify
10301 libsoup
10302 nautilus
10303 python
10304 python-pygobject))
10305 (synopsis "Customize advanced GNOME 3 options")
10306 (home-page "https://wiki.gnome.org/Apps/Tweaks")
10307 (description
10308 "GNOME Tweaks allows adjusting advanced configuration settings in
10309 GNOME 3. This includes things like the fonts used in user interface elements,
10310 alternative user interface themes, changes in window management behavior,
10311 GNOME Shell appearance and extension, etc.")
10312 (license license:gpl3+)))
10313
10314 (define-public gnome-shell-extensions
10315 (package
10316 (name "gnome-shell-extensions")
10317 (version "42.3")
10318 (source (origin
10319 (method url-fetch)
10320 (uri (string-append "mirror://gnome/sources/" name "/"
10321 (version-major version) "/"
10322 name "-" version ".tar.xz"))
10323 (sha256
10324 (base32
10325 "1z3k4bvq8f2s0q9q7i093w4hrz289lci7xlib20aqa4z5sivxhhf"))))
10326 (build-system meson-build-system)
10327 (arguments
10328 '(#:configure-flags '("-Dextension_set=all")))
10329 (native-inputs
10330 (list `(,glib "bin")
10331 gettext-minimal
10332 pkg-config))
10333 (propagated-inputs
10334 (list glib))
10335 (synopsis "Extensions for GNOME Shell")
10336 (description "GNOME Shell extensions modify and extend GNOME Shell
10337 functionality and behavior.")
10338 (home-page "https://extensions.gnome.org/")
10339 (license license:gpl3+)))
10340
10341 (define-public folks
10342 (package
10343 (name "folks")
10344 (version "0.15.5")
10345 (source (origin
10346 (method url-fetch)
10347 (uri (string-append
10348 "mirror://gnome/sources/folks/"
10349 (version-major+minor version) "/"
10350 "folks-" version ".tar.xz"))
10351 (sha256
10352 (base32
10353 "11lhfn6b7gml4ckj2dkm6g889j21wpvj90srwjp85k9hcf4qmzqg"))))
10354 (build-system meson-build-system)
10355 (arguments
10356 '(#:phases
10357 (modify-phases %standard-phases
10358 (add-after 'unpack 'skip-gtk-update-icon-cache
10359 ;; Don't create 'icon-theme.cache'.
10360 (lambda _
10361 (substitute* "meson_post_install.py"
10362 (("gtk-update-icon-cache") "true")))))))
10363 (inputs
10364 (list bdb
10365 dbus-glib
10366 evolution-data-server
10367 glib
10368 libgee
10369 readline
10370 telepathy-glib))
10371 (native-inputs
10372 (list gettext-minimal
10373 `(,glib "bin")
10374 gobject-introspection
10375 python-dbusmock
10376 pkg-config
10377 python
10378 vala))
10379 (synopsis "Library to aggregate data about people")
10380 (description "Libfolks is a library that aggregates information about people
10381 from multiple sources (e.g., Telepathy connection managers for IM contacts,
10382 Evolution Data Server for local contacts, libsocialweb for web service contacts,
10383 etc.) to create metacontacts. It's written in Vala, which generates C code when
10384 compiled.")
10385 (home-page "https://wiki.gnome.org/Projects/Folks")
10386 (license license:lgpl2.1+)))
10387
10388 (define-public gfbgraph
10389 (package
10390 (name "gfbgraph")
10391 (version "0.2.5")
10392 (source (origin
10393 (method url-fetch)
10394 (uri (string-append
10395 "mirror://gnome/sources/gfbgraph/"
10396 (version-major+minor version) "/"
10397 "gfbgraph-" version ".tar.xz"))
10398 (sha256
10399 (base32
10400 "1qq3cryhby50xms8zh4s6fmw5p0i7dpg1wvsz5ni78cbyyrq3cww"))))
10401 (build-system glib-or-gtk-build-system)
10402 (arguments
10403 `(#:configure-flags '("--disable-static")))
10404 (native-inputs
10405 (list gobject-introspection
10406 gtk-doc/stable
10407 pkg-config))
10408 (inputs
10409 (list gnome-online-accounts
10410 json-glib
10411 rest))
10412 (synopsis "GLib/GObject wrapper for the Facebook API")
10413 (description "This library allows you to use the Facebook API from
10414 GLib/GObject code.")
10415 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
10416 (license license:lgpl2.1+)))
10417
10418 (define-public libgnomekbd
10419 (package
10420 (name "libgnomekbd")
10421 (version "3.28.1")
10422 (source (origin
10423 (method url-fetch)
10424 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
10425 (version-major+minor version) "/"
10426 "libgnomekbd-" version ".tar.xz"))
10427 (sha256
10428 (base32
10429 "0w78ix6f52xv0hw1h6fzqh47pk1fwr077agma19hdh3kdmb5kp12"))))
10430 (build-system gnu-build-system)
10431 (native-inputs
10432 (list autoconf
10433 automake
10434 `(,glib "bin")
10435 libtool
10436 pkg-config
10437 gettext-minimal
10438 gobject-introspection))
10439 (propagated-inputs
10440 ;; Referred to in .h files and .pc.
10441 (list glib
10442 gtk+
10443 libxklavier))
10444 (home-page "https://www.gnome.org")
10445 (synopsis "GNOME keyboard configuration library")
10446 (description
10447 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
10448 environment, which can notably display keyboard layouts.")
10449 (license license:lgpl2.0+)))
10450
10451 ;;; This package is no longer maintained:
10452 ;;; https://wiki.gnome.org/Attic/LibUnique
10453 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
10454 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
10455 (define-public libunique
10456 (package
10457 (name "libunique")
10458 (version "3.0.2")
10459 (source (origin
10460 (method url-fetch)
10461 (uri (string-append "mirror://gnome/sources/" name "/"
10462 (version-major+minor version) "/"
10463 name "-" version ".tar.xz"))
10464 (sha256
10465 (base32
10466 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
10467 (build-system glib-or-gtk-build-system)
10468 (arguments
10469 `(#:configure-flags '("--disable-static"
10470 "--disable-dbus" ; use gdbus
10471 "--enable-introspection")))
10472 (native-inputs
10473 `(("pkg-config" ,pkg-config)
10474 ("gobject-introspection" ,gobject-introspection)
10475 ("glib:bin" ,glib "bin")
10476 ("gtk-doc" ,gtk-doc/stable)))
10477 (propagated-inputs
10478 ;; Referred to in .h files and .pc.
10479 (list gtk+))
10480 (home-page "https://wiki.gnome.org/Attic/LibUnique")
10481 (synopsis "Library for writing single instance applications")
10482 (description
10483 "Libunique is a library for writing single instance applications. If you
10484 launch a single instance application twice, the second instance will either just
10485 quit or will send a message to the running instance. Libunique makes it easy to
10486 write this kind of application, by providing a base class, taking care of all
10487 the IPC machinery needed to send messages to a running instance, and also
10488 handling the startup notification side.")
10489 (license license:lgpl2.1+)))
10490
10491 (define-public gnome-calculator
10492 (package
10493 (name "gnome-calculator")
10494 (version "42.2")
10495 (source
10496 (origin
10497 (method url-fetch)
10498 (uri (string-append "mirror://gnome/sources/" name "/"
10499 (version-major version) "/"
10500 name "-" version ".tar.xz"))
10501 (sha256
10502 (base32
10503 "1866qn0r9xp7b7j1436kry2k3bdh9ikhz2wm41jxcn1nljyb3nik"))))
10504 (build-system meson-build-system)
10505 (arguments
10506 '(#:glib-or-gtk? #t
10507 #:phases
10508 (modify-phases %standard-phases
10509 (add-after 'unpack 'skip-gtk-update-icon-cache
10510 (lambda _
10511 (substitute* "meson.build"
10512 (("gtk_update_icon_cache: true")
10513 "gtk_update_icon_cache: false"))))
10514 (add-before 'check 'pre-check
10515 (lambda _
10516 ;; Tests require a writable HOME.
10517 (setenv "HOME" (getcwd)))))))
10518 (native-inputs
10519 (list gettext-minimal
10520 `(,glib "bin") ;for glib-compile-schemas, gio-2.0.
10521 itstool
10522 pkg-config
10523 python
10524 vala))
10525 (inputs
10526 (list gsettings-desktop-schemas-next
10527 gtksourceview
10528 libadwaita
10529 libgee
10530 libhandy
10531 libsoup-minimal-2
10532 libxml2
10533 mpc
10534 mpfr))
10535 (home-page "https://wiki.gnome.org/Apps/Calculator")
10536 (synopsis "Desktop calculator")
10537 (description
10538 "Calculator is an application that solves mathematical equations and
10539 is suitable as a default application in a Desktop environment.")
10540 (license license:gpl3)))
10541
10542 (define-public xpad
10543 (package
10544 (name "xpad")
10545 (version "5.8.0")
10546 (source
10547 (origin
10548 (method url-fetch)
10549 (uri (string-append "https://launchpad.net/xpad/trunk/"
10550 version "/+download/"
10551 name "-" version ".tar.bz2"))
10552 (sha256
10553 (base32
10554 "1sc2dz4yxx6glnqpnhiby85g2blnsfn8d3fvbaqhdi2hi0q54q7j"))))
10555 (build-system gnu-build-system)
10556 (native-inputs
10557 (list autoconf automake
10558 `(,gtk+ "bin") intltool pkg-config))
10559 (inputs
10560 (list gtksourceview libsm))
10561 (home-page "https://wiki.gnome.org/Apps/Xpad")
10562 (synopsis "Virtual sticky note")
10563 (description
10564 "Xpad is a sticky note that strives to be simple, fault tolerant,
10565 and customizable. Xpad consists of independent pad windows, each is
10566 basically a text box in which notes can be written.")
10567 (license license:gpl3+)))
10568
10569 (define-public gucharmap
10570 (let ((unicode-files
10571 '(("Blocks.txt"
10572 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
10573 ("DerivedAge.txt"
10574 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
10575 ("NamesList.txt"
10576 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
10577 ("Scripts.txt"
10578 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
10579 ("UnicodeData.txt"
10580 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
10581 ("Unihan.zip"
10582 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
10583 (package
10584 (name "gucharmap")
10585 (version "12.0.1")
10586 (source
10587 (origin
10588 (method url-fetch)
10589 (uri (string-append "mirror://gnome/sources/" name "/"
10590 (version-major+minor version) "/"
10591 name "-" version ".tar.xz"))
10592 (sha256
10593 (base32
10594 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
10595 (build-system glib-or-gtk-build-system)
10596 (arguments
10597 `(#:modules ((ice-9 match)
10598 (guix build glib-or-gtk-build-system)
10599 (guix build utils))
10600 #:configure-flags
10601 (list "--with-unicode-data=../unicode-data")
10602 #:phases
10603 (modify-phases %standard-phases
10604 (add-after 'unpack 'prepare-unicode-data
10605 (lambda* (#:key inputs #:allow-other-keys)
10606 (mkdir-p "../unicode-data")
10607 (with-directory-excursion "../unicode-data"
10608 (for-each (match-lambda
10609 ((file _)
10610 (install-file (assoc-ref inputs file) ".")))
10611 ',unicode-files))
10612 #t)))))
10613 (native-inputs
10614 `(("desktop-file-utils" ,desktop-file-utils)
10615 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
10616 ("gobject-introspection" ,gobject-introspection)
10617 ("intltool" ,intltool)
10618 ("itstool" ,itstool)
10619 ("pkg-config" ,pkg-config)
10620 ,@(map (match-lambda
10621 ((file hash)
10622 `(,file
10623 ,(origin
10624 (method url-fetch)
10625 (uri (string-append
10626 "http://www.unicode.org/Public/12.0.0/ucd/"
10627 file))
10628 (sha256 (base32 hash))))))
10629 unicode-files)
10630 ("unzip" ,unzip)))
10631 (inputs
10632 `(("gtk+" ,gtk+)
10633 ("xmllint" ,libxml2)))
10634 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
10635 (synopsis "Unicode character picker and font browser")
10636 (description
10637 "This program allows you to browse through all the available Unicode
10638 characters and categories for the installed fonts, and to examine their
10639 detailed properties. It is an easy way to find the character you might
10640 only know by its Unicode name or code point.")
10641 (license license:gpl3+))))
10642
10643 (define-public gcolor3
10644 (package
10645 (name "gcolor3")
10646 (version "2.4.0")
10647 (source
10648 (origin
10649 (method git-fetch)
10650 (uri (git-reference
10651 (url "https://gitlab.gnome.org/World/gcolor3")
10652 (commit (string-append "v" version))))
10653 (file-name (git-file-name name version))
10654 (sha256
10655 (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc"))
10656 ;; XXX: Remove when upgrading
10657 (patches (search-patches "gcolor3-update-libportal-usage.patch"))))
10658 (build-system meson-build-system)
10659 (arguments
10660 `(#:glib-or-gtk? #t))
10661 (native-inputs
10662 (list desktop-file-utils gettext-minimal
10663 `(,glib "bin")
10664 `(,gtk+ "bin") pkg-config))
10665 (inputs
10666 (list gsettings-desktop-schemas gtk+ libportal))
10667 (home-page "https://www.hjdskes.nl/projects/gcolor3/")
10668 (synopsis "Simple color chooser written in GTK3")
10669 (description "Color Picker is a simple color chooser written in GTK3. It
10670 supports both X and Wayland display servers.")
10671 (license license:gpl2+)))
10672
10673 (define-public bluefish
10674 (package
10675 (name "bluefish")
10676 (version "2.2.12")
10677 (source
10678 (origin
10679 (method url-fetch)
10680 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
10681 "bluefish-" version ".tar.gz"))
10682 (sha256
10683 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
10684 (build-system gnu-build-system)
10685 (native-inputs
10686 (list desktop-file-utils intltool pkg-config))
10687 (inputs
10688 (list enchant gtk+ python-wrapper libxml2 gucharmap))
10689 (home-page "http://bluefish.openoffice.nl")
10690 (synopsis "Web development studio")
10691 (description
10692 "Bluefish is an editor aimed at programmers and web developers,
10693 with many options to write web sites, scripts and other code.
10694 Bluefish supports many programming and markup languages.")
10695 (license license:gpl3+)))
10696
10697 (define-public gnome-system-monitor
10698 (package
10699 (name "gnome-system-monitor")
10700 (version "42.0")
10701 (source
10702 (origin
10703 (method url-fetch)
10704 (uri (string-append "mirror://gnome/sources/" name "/"
10705 (version-major version) "/"
10706 name "-" version ".tar.xz"))
10707 (sha256
10708 (base32
10709 "1p3mq32pfd9260aql5nys806g0c4nrswacwqs8ms40920ci9s8qk"))))
10710 (build-system meson-build-system)
10711 (arguments
10712 '(#:glib-or-gtk? #t
10713 #:configure-flags '("-Dsystemd=false")))
10714 (native-inputs
10715 (list `(,glib "bin") ;for glib-mkenums.
10716 `(,gtk+ "bin") ;gtk-update-icon-cache
10717 intltool
10718 itstool
10719 libgtop
10720 polkit
10721 pkg-config))
10722 (inputs
10723 (list gdk-pixbuf ;for loading SVG files.
10724 gtk+
10725 gtkmm-3
10726 libhandy
10727 librsvg
10728 libxml2
10729 libwnck))
10730 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10731 (synopsis "Process viewer and system resource monitor for GNOME")
10732 (description
10733 "GNOME System Monitor is a GNOME process viewer and system monitor with
10734 an attractive, easy-to-use interface. It has features, such as a tree view
10735 for process dependencies, icons for processes, the ability to hide processes,
10736 graphical time histories of CPU/memory/swap usage and the ability to
10737 kill/reinice processes.")
10738 (license license:gpl2+)))
10739
10740 (define-public python-pyatspi
10741 (package
10742 (name "python-pyatspi")
10743 (version "2.45.90")
10744 (source (origin
10745 (method url-fetch)
10746 (uri (string-append
10747 "mirror://gnome/sources/pyatspi/"
10748 (version-major+minor version)
10749 "/pyatspi-" version ".tar.xz"))
10750 (sha256
10751 (base32
10752 "1fggihg4xmwia0xgjkcraiqk76jvyrj1pcsw99rjh4yn3kygisrh"))))
10753 (build-system gnu-build-system)
10754 (arguments
10755 `(#:phases
10756 (modify-phases %standard-phases
10757 (add-before 'build 'fix-atk-load
10758 (lambda _
10759 (substitute* "pyatspi/__init__.py"
10760 (("from gi.repository import Atspi")
10761 "gi.require_version('Gtk', '3.0')
10762 from gi.repository import Gtk
10763 from gi.repository import Atspi")))))))
10764 (native-inputs
10765 (list pkg-config))
10766 (inputs
10767 (list python))
10768 (propagated-inputs
10769 (list python-pygobject))
10770 (synopsis "Python client bindings for D-Bus AT-SPI")
10771 (home-page "https://wiki.linuxfoundation.org/accessibility\
10772 /atk/at-spi/at-spi_on_d-bus")
10773 (description
10774 "This package includes a python client library for the AT-SPI D-Bus
10775 accessibility infrastructure.")
10776 (license license:lgpl2.0)
10777 (properties '((upstream-name . "pyatspi")))))
10778
10779 (define-public orca
10780 (package
10781 (name "orca")
10782 (version "42.3")
10783 (source (origin
10784 (method url-fetch)
10785 (uri (string-append
10786 "mirror://gnome/sources/" name "/"
10787 (version-major version) "/"
10788 name "-" version ".tar.xz"))
10789 (sha256
10790 (base32
10791 "097pyav3z5ssic8vwd7v1s7vynpycdpyfr324rr6c7mfzq5vmp7s"))))
10792 (build-system glib-or-gtk-build-system)
10793 (arguments
10794 '(#:phases
10795 (modify-phases %standard-phases
10796 (add-before 'configure 'qualify-xkbcomp
10797 (lambda* (#:key inputs #:allow-other-keys)
10798 (let ((xkbcomp (string-append
10799 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10800 (substitute* "src/orca/orca.py"
10801 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))))
10802 (add-after 'install 'wrap-orca
10803 (lambda* (#:key outputs #:allow-other-keys)
10804 (wrap-program (search-input-file outputs "bin/orca")
10805 `("GI_TYPELIB_PATH" ":" prefix
10806 (,(getenv "GI_TYPELIB_PATH")))
10807 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10808 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10809 `("GUIX_PYTHONPATH" ":" prefix
10810 (,(getenv "GUIX_PYTHONPATH")))))))))
10811 (native-inputs
10812 (list gettext-minimal
10813 itstool
10814 pkg-config
10815 libxml2))
10816 (inputs
10817 (list at-spi2-atk
10818 bash-minimal
10819 gsettings-desktop-schemas
10820 gstreamer
10821 gst-plugins-base
10822 gst-plugins-good
10823 gtk+
10824 python
10825 python-pygobject
10826 python-pyatspi
10827 speech-dispatcher
10828 xkbcomp))
10829 (synopsis
10830 "Screen reader for individuals who are blind or visually impaired")
10831 (home-page "https://wiki.gnome.org/Projects/Orca")
10832 (description
10833 "Orca is a screen reader that provides access to the graphical desktop
10834 via speech and refreshable braille. Orca works with applications and toolkits
10835 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10836 (license license:lgpl2.1+)))
10837
10838 (define-public gspell
10839 (package
10840 (name "gspell")
10841 (version "1.11.1")
10842 (source (origin
10843 (method url-fetch)
10844 (uri (string-append "mirror://gnome/sources/" name "/"
10845 (version-major+minor version) "/"
10846 name "-" version ".tar.xz"))
10847 (sha256
10848 (base32
10849 "14h2w0yzqwaw5dykmhh21sy2c96g17waahg2lxc52xqiyzis8spg"))))
10850 (build-system glib-or-gtk-build-system)
10851 (arguments
10852 '(#:configure-flags (list "--enable-vala")
10853 #:phases
10854 (modify-phases %standard-phases
10855 (add-after 'unpack 'disable-problematic-tests
10856 (lambda _
10857 (substitute* "testsuite/test-checker.c"
10858 ;; This test is known to fail with Aspell, as a comment
10859 ;; mentions it. Disable it.
10860 ((".*g_test_add_func.*test_dashes.*") ""))))
10861 (add-before 'check 'pre-check
10862 (lambda* (#:key inputs #:allow-other-keys)
10863 ;; Tests require a running X server.
10864 (system "Xvfb :1 &")
10865 (setenv "DISPLAY" ":1")
10866
10867 ;; For the missing /etc/machine-id.
10868 (setenv "DBUS_FATAL_WARNINGS" "0")
10869
10870 ;; Allow Enchant and its Aspell backend to find the en_US
10871 ;; dictionary.
10872 (setenv "ASPELL_DICT_DIR"
10873 (search-input-directory inputs "/lib/aspell")))))))
10874 (inputs
10875 (list iso-codes))
10876 (native-inputs
10877 (list `(,glib "bin")
10878 gobject-introspection
10879 pkg-config
10880 vala ;for VAPI, needed by Geary
10881 libxml2
10882
10883 ;; For tests.
10884 aspell-dict-en
10885 xorg-server-for-tests))
10886 (propagated-inputs
10887 ;; Referred by .pc file.
10888 (list enchant
10889 glib
10890 gtk+))
10891 (home-page "https://wiki.gnome.org/Projects/gspell")
10892 (synopsis "GNOME's alternative spell checker")
10893 (description
10894 "gspell provides a flexible API to add spell-checking to a GTK+
10895 application. It provides a GObject API, spell-checking to text entries and
10896 text views, and buttons to choose the language.")
10897 (license license:gpl2+)))
10898
10899 (define-public gnome-planner
10900 (package
10901 (name "gnome-planner")
10902 (version "0.14.6")
10903 (source (origin
10904 (method url-fetch)
10905 (uri (string-append "mirror://gnome/sources/planner/"
10906 (version-major+minor version) "/planner-"
10907 version ".tar.xz"))
10908 (sha256
10909 (base32
10910 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10911 (build-system glib-or-gtk-build-system)
10912 (arguments
10913 ;; Disable the Python bindings because the Planner program functions
10914 ;; without them, and (as of 2017-06-13) we have not packaged all of
10915 ;; packages that are necessary for building the Python bindings.
10916 `(#:configure-flags
10917 (list "--disable-python"
10918 ,@(if (string=? "aarch64-linux" (%current-system))
10919 '("--build=aarch64-unknown-linux-gnu")
10920 '()))))
10921 (inputs
10922 (list libgnomecanvas
10923 libgnomeui
10924 libglade
10925 gnome-vfs
10926 gconf
10927 libxml2
10928 libxslt
10929 gtk+
10930 glib))
10931 (native-inputs
10932 (list intltool scrollkeeper pkg-config))
10933 (home-page "https://wiki.gnome.org/Apps/Planner")
10934 (synopsis "Project management software for the GNOME desktop")
10935 (description
10936 "GNOME Planner is a project management tool based on the Work Breakdown
10937 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10938 the resources, tasks, and constraints that you define, Planner generates
10939 various views into a project. For example, Planner can show a Gantt chart of
10940 the project. It can show a detailed summary of tasks including their
10941 duration, cost, and current progress. It can also show a report of resource
10942 utilization that highlights under-utilized and over-utilized resources. These
10943 views can be printed as PDF or PostScript files, or exported to HTML.")
10944 (license license:gpl2+)))
10945
10946 (define-public lollypop
10947 (package
10948 (name "lollypop")
10949 (version "1.4.35")
10950 (source
10951 (origin
10952 (method url-fetch)
10953 (uri (string-append "https://adishatz.org/lollypop/"
10954 "lollypop-" version ".tar.xz"))
10955 (sha256
10956 (base32 "0rvwj18x1gs7fgvniijzvlmgmzcgr7il22zclzsn5nkl8xbwgzk0"))))
10957 (build-system meson-build-system)
10958 (arguments
10959 `(#:imported-modules (,@%meson-build-system-modules
10960 (guix build python-build-system))
10961 #:modules ((guix build meson-build-system)
10962 ((guix build python-build-system) #:prefix python:)
10963 (guix build utils))
10964 #:glib-or-gtk? #t
10965 #:phases
10966 (modify-phases %standard-phases
10967 (add-after 'unpack 'disable-gtk-update-icon-cache
10968 (lambda _
10969 (setenv "DESTDIR" "/")))
10970 (add-after 'install 'wrap-program
10971 (lambda* (#:key outputs #:allow-other-keys)
10972 (wrap-program (search-input-file outputs "bin/lollypop")
10973 `("GI_TYPELIB_PATH" ":" prefix
10974 (,(getenv "GI_TYPELIB_PATH"))))))
10975 (add-after 'install 'wrap-python
10976 (assoc-ref python:%standard-phases 'wrap)))))
10977 (native-inputs
10978 (list gettext-minimal
10979 `(,glib "bin") ; For glib-compile-resources
10980 pkg-config))
10981 (inputs
10982 (list bash-minimal
10983 glib-networking
10984 gobject-introspection
10985 gsettings-desktop-schemas
10986 gst-plugins-base
10987 libnotify
10988 libsecret
10989 libhandy
10990 libsoup-minimal-2
10991 python
10992 python-beautifulsoup4
10993 python-gst
10994 python-pillow
10995 python-pycairo
10996 python-pygobject
10997 python-pylast
10998 totem-pl-parser
10999 webkitgtk))
11000 (propagated-inputs
11001 (list gst-plugins-good ;required to start lollypop
11002 gst-plugins-ugly)) ;required for streaming
11003 (home-page "https://wiki.gnome.org/Apps/Lollypop")
11004 (synopsis "GNOME music playing application")
11005 (description
11006 "Lollypop is a music player designed to play well with GNOME desktop.
11007 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
11008 from artists and tracks from the web. It also fetches cover artworks
11009 automatically and it can stream songs from online music services and charts.")
11010 (license license:gpl3+)))
11011
11012 (define-public gnome-video-effects
11013 (package
11014 (name "gnome-video-effects")
11015 (version "0.5.0")
11016 (source (origin
11017 (method url-fetch)
11018 (uri (string-append "mirror://gnome/sources/" name "/"
11019 (version-major+minor version) "/" name "-"
11020 version ".tar.xz"))
11021 (sha256
11022 (base32
11023 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
11024 (build-system meson-build-system)
11025 (native-inputs
11026 (list gettext-minimal pkg-config))
11027 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
11028 (synopsis "Video effects for Cheese and other GNOME applications")
11029 (description
11030 "A collection of GStreamer video filters and effects to be used in
11031 photo-booth-like software, such as Cheese.")
11032 (license license:gpl2+)))
11033
11034 (define-public cheese
11035 (package
11036 (name "cheese")
11037 (version "41.1")
11038 (source (origin
11039 (method url-fetch)
11040 (uri (string-append "mirror://gnome/sources/" name "/"
11041 (version-major version) "/" name "-"
11042 version ".tar.xz"))
11043 (sha256
11044 (base32
11045 "0iz5cwndl65j13z5pmv0ansln2lyii0h82q775jgc3vk53560aaj"))))
11046 (arguments
11047 `(#:glib-or-gtk? #t
11048 #:phases
11049 (modify-phases %standard-phases
11050 (add-after 'unpack 'skip-gtk-update-icon-cache
11051 (lambda _
11052 ;; Don't create 'icon-theme.cache'
11053 (substitute* "meson_post_install.py"
11054 (("gtk-update-icon-cache") (which "true")))))
11055 (add-after 'install 'wrap-cheese
11056 (lambda* (#:key inputs outputs #:allow-other-keys)
11057 (wrap-program (search-input-file outputs "bin/cheese")
11058 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
11059 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))))))))
11060 (build-system meson-build-system)
11061 (native-inputs
11062 (list docbook-xsl
11063 docbook-xml-4.3
11064 gettext-minimal
11065 `(,glib "bin")
11066 gobject-introspection
11067 gtk-doc/stable
11068 itstool
11069 libxml2
11070 libxslt
11071 pkg-config
11072 vala))
11073 (propagated-inputs
11074 (list bash-minimal
11075 gnome-video-effects
11076 clutter
11077 clutter-gst
11078 clutter-gtk
11079 libcanberra
11080 gdk-pixbuf
11081 glib
11082 gstreamer))
11083 (inputs
11084 (list gnome-desktop
11085 gst-plugins-base
11086 gst-plugins-good
11087 gst-plugins-bad
11088 gtk+
11089 libx11
11090 libxtst))
11091 (home-page "https://wiki.gnome.org/Apps/Cheese")
11092 (synopsis "Webcam photo booth software for GNOME")
11093 (description
11094 "Cheese uses your webcam to take photos and videos. Cheese can also
11095 apply fancy special effects and lets you share the fun with others.")
11096 (license license:gpl2+)))
11097
11098 (define-public secrets
11099 (package
11100 (name "secrets")
11101 (version "6.5")
11102 (source
11103 (origin
11104 (method git-fetch)
11105 (uri (git-reference
11106 (url "https://gitlab.gnome.org/World/secrets")
11107 (commit version)))
11108 (file-name (git-file-name name version))
11109 (sha256
11110 (base32 "11jd9f0d3fyrs29p8cyzb6i2ib6mzhwwvjnznl55gkggrgnrcb8z"))))
11111 (build-system meson-build-system)
11112 (arguments
11113 (list
11114 #:glib-or-gtk? #t
11115 #:imported-modules `(,@%meson-build-system-modules
11116 (guix build python-build-system))
11117 #:modules '((guix build meson-build-system)
11118 ((guix build python-build-system) #:prefix python:)
11119 (guix build utils))
11120 #:phases
11121 #~(modify-phases %standard-phases
11122 (add-after 'unpack 'disable-postinstall-script
11123 (lambda _
11124 (substitute* "meson.build"
11125 (("gtk_update_icon_cache: true")
11126 "gtk_update_icon_cache: false"))
11127 (setenv "DESTDIR" "/")))
11128 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11129 (lambda* (#:key inputs outputs #:allow-other-keys)
11130 (wrap-program (search-input-file outputs "bin/secrets")
11131 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
11132 ,(python:site-packages inputs outputs)))
11133 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
11134 (native-inputs
11135 (list desktop-file-utils
11136 gettext-minimal
11137 `(,glib "bin")
11138 gobject-introspection
11139 pkg-config))
11140 (inputs
11141 (list bash-minimal
11142 glib
11143 gsettings-desktop-schemas
11144 gtk
11145 libadwaita
11146 libhandy
11147 libpwquality
11148 python
11149 python-pygobject
11150 python-pykeepass
11151 python-pyotp))
11152 (home-page "https://gitlab.gnome.org/World/secrets")
11153 (synopsis "Password manager for the GNOME desktop")
11154 (description
11155 "Secrets is a password manager which makes use of the KeePass v4
11156 format. It integrates perfectly with the GNOME desktop and provides an easy
11157 and uncluttered interface for the management of password databases.")
11158 (license license:gpl3+)))
11159
11160 (define-public passwordsafe
11161 (deprecated-package "passwordsafe" secrets))
11162
11163 (define-public sound-juicer
11164 (package
11165 (name "sound-juicer")
11166 (version "3.38.0")
11167 (source
11168 (origin
11169 (method url-fetch)
11170 (uri (string-append "mirror://gnome/sources/" name "/"
11171 (version-major+minor version) "/"
11172 name "-" version ".tar.xz"))
11173 (sha256
11174 (base32
11175 "08d5d81rz9sj3m5paw8fwbgxmhlbr7bcjdzpmzj832qvg8smydxf"))))
11176 (build-system meson-build-system)
11177 (arguments
11178 (list
11179 #:glib-or-gtk? #t
11180 #:phases #~(modify-phases %standard-phases
11181 (add-after 'unpack 'disable-gtk-update-icon-cache
11182 (lambda _
11183 (setenv "DESTDIR" "/"))))))
11184 (native-inputs
11185 (list desktop-file-utils
11186 gettext-minimal
11187 `(,glib "bin")
11188 itstool
11189 libxml2
11190 pkg-config
11191 python))
11192 (inputs
11193 (list brasero
11194 gsettings-desktop-schemas
11195 gst-plugins-base
11196 gst-plugins-good
11197 gstreamer
11198 gtk+
11199 iso-codes
11200 libcanberra
11201 libdiscid
11202 libmusicbrainz
11203 neon))
11204 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
11205 (synopsis "Audio music cd ripper")
11206 (description "Sound Juicer extracts audio from compact discs and convert it
11207 into audio files that a personal computer or digital audio player can play.
11208 It supports ripping to any audio codec supported by a GStreamer plugin, such as
11209 mp3, Ogg Vorbis and FLAC")
11210 (license license:gpl2+)))
11211
11212 (define-public soundconverter
11213 (package
11214 (name "soundconverter")
11215 (version "3.0.2")
11216 (source
11217 (origin
11218 (method url-fetch)
11219 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
11220 version "/+download/"
11221 "soundconverter-" version ".tar.xz"))
11222
11223 (sha256
11224 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
11225 (build-system glib-or-gtk-build-system)
11226 (arguments
11227 `(#:imported-modules ((guix build python-build-system)
11228 (guix build glib-or-gtk-build-system)
11229 ,@%gnu-build-system-modules)
11230
11231 #:modules ((guix build glib-or-gtk-build-system)
11232 (guix build utils)
11233 ((guix build gnu-build-system) #:prefix gnu:)
11234 ((guix build python-build-system) #:prefix python:))
11235
11236 #:phases
11237 (modify-phases %standard-phases
11238 (add-after 'install 'wrap-soundconverter-for-python
11239 (assoc-ref python:%standard-phases 'wrap))
11240 (add-after 'install 'wrap-soundconverter
11241 (lambda* (#:key inputs outputs #:allow-other-keys)
11242 (let ((out (assoc-ref outputs "out"))
11243 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
11244 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
11245 (wrap-program (string-append out "/bin/soundconverter")
11246 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
11247 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
11248 #t)))))
11249 (native-inputs
11250 `(("intltool" ,intltool)
11251 ("pkg-config" ,pkg-config)
11252 ("glib:bin" ,glib "bin")))
11253 (inputs
11254 (list gtk+ python python-pygobject gstreamer gst-plugins-base))
11255 (home-page "https://soundconverter.org/")
11256 (synopsis "Convert between audio formats with a graphical interface")
11257 (description
11258 "SoundConverter supports converting between many audio formats including
11259 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
11260 configurable file renaming.")
11261 (license license:gpl3)))
11262
11263 (define-public workrave
11264 (package
11265 (name "workrave")
11266 (version "1.10.50")
11267 (source
11268 (origin
11269 (method git-fetch)
11270 (uri (git-reference
11271 (url "https://github.com/rcaelers/workrave")
11272 (commit (string-append "v" (string-map
11273 (match-lambda (#\. #\_) (chr chr))
11274 version)))))
11275 (file-name (git-file-name name version))
11276 (sha256
11277 (base32 "0fj3fqmdn4nsjgvbbvzpxw2mgiihcr1zpb08amg2p6hg9n11y9bx"))))
11278 (build-system glib-or-gtk-build-system)
11279 (arguments
11280 ;; The only tests are maintainer tests (in po/), which fail.
11281 `(#:tests? #f))
11282 (inputs (list glib
11283 gtk+
11284 gdk-pixbuf
11285 gtkmm-3
11286 glibmm
11287 libx11
11288 libxtst
11289 dconf
11290 libice
11291 libsm
11292 libxscrnsaver))
11293 (native-inputs `(("boost" ,boost)
11294 ("pkg-config" ,pkg-config)
11295 ("gettext" ,gettext-minimal)
11296 ("autoconf" ,autoconf)
11297 ("autoconf-archive" , autoconf-archive)
11298 ("automake" ,automake)
11299 ("libtool" ,libtool)
11300 ("intltool" ,intltool)
11301 ("gobject-introspection" ,gobject-introspection)
11302 ("python3" ,python-3)
11303 ("python-jinja2" ,python-jinja2)))
11304 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
11305 (description
11306 "Workrave is a program that assists in the recovery and prevention of
11307 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
11308 micro-pauses and rest breaks, and restricts you to your daily limit.")
11309 (home-page "http://www.workrave.org")
11310 (license license:gpl3+)))
11311
11312 (define-public ghex
11313 (package
11314 (name "ghex")
11315 (version "3.18.4")
11316 (source (origin
11317 (method url-fetch)
11318 (uri (string-append "mirror://gnome/sources/ghex/"
11319 (version-major+minor version) "/"
11320 "ghex-" version ".tar.xz"))
11321 (sha256
11322 (base32
11323 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
11324 (build-system meson-build-system)
11325 (arguments
11326 '(#:glib-or-gtk? #t
11327 #:phases
11328 (modify-phases %standard-phases
11329 (add-after 'unpack 'skip-gtk-update-icon-cache
11330 ;; Don't create 'icon-theme.cache'.
11331 (lambda _
11332 (substitute* "meson_post_install.py"
11333 (("gtk-update-icon-cache") (which "true")))
11334 #t)))))
11335 (native-inputs
11336 `(("pkg-config" ,pkg-config)
11337 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
11338 ("gnome-common" ,gnome-common)
11339 ("which" ,which)
11340 ("intltool" ,intltool)
11341 ("yelp-tools" ,yelp-tools)
11342 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
11343 (inputs
11344 `(("atk" ,atk)
11345 ("gtk" ,gtk+)))
11346 (synopsis "GNOME hexadecimal editor")
11347 (description "The GHex program can view and edit files in two ways:
11348 hexadecimal or ASCII. It is useful for editing binary files in general.")
11349 (home-page "https://wiki.gnome.org/Apps/Ghex")
11350 (license license:gpl2)))
11351
11352 (define-public libdazzle
11353 (package
11354 (name "libdazzle")
11355 (version "3.44.0")
11356 (source (origin
11357 (method url-fetch)
11358 (uri (string-append "mirror://gnome/sources/libdazzle/"
11359 (version-major+minor version) "/"
11360 "libdazzle-" version ".tar.xz"))
11361 (sha256
11362 (base32
11363 "1blfs61ifv4fywl0wbr1cm3rvmgrv06yiqajbnq0qs72nrgf9lrw"))))
11364 (build-system meson-build-system)
11365 (arguments
11366 `(#:phases
11367 (modify-phases %standard-phases
11368 (add-before 'check 'pre-check
11369 (lambda _
11370 ;; Tests require a running X server.
11371 (system "Xvfb :1 &")
11372 (setenv "DISPLAY" ":1"))))))
11373 (native-inputs
11374 (list `(,glib "bin") ; glib-compile-resources
11375 gobject-introspection
11376 pkg-config
11377 ;; For tests.
11378 xorg-server-for-tests
11379 vala))
11380 (inputs
11381 (list glib
11382 gtk+))
11383 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
11384 (synopsis "Companion library to GObject and Gtk+")
11385 (description "The libdazzle library is a companion library to GObject and
11386 Gtk+. It provides various features that the authors wish were in the
11387 underlying library but cannot for various reasons. In most cases, they are
11388 wildly out of scope for those libraries. In other cases, they are not quite
11389 generic enough to work for everyone.")
11390 (license license:gpl3+)))
11391
11392 (define-public evolution
11393 (package
11394 (name "evolution")
11395 (version "3.42.1")
11396 (source (origin
11397 (method url-fetch)
11398 (uri (string-append "mirror://gnome/sources/evolution/"
11399 (version-major+minor version) "/"
11400 "evolution-" version ".tar.xz"))
11401 (sha256
11402 (base32
11403 "0igfzapdvgfx2gnpwfkjfkn7l5j186wk88ni39vqas1sl7ijlls6"))))
11404 (build-system cmake-build-system)
11405 (arguments
11406 `(#:imported-modules (,@%cmake-build-system-modules
11407 (guix build glib-or-gtk-build-system))
11408 #:modules ((guix build cmake-build-system)
11409 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11410 (guix build utils))
11411 #:configure-flags
11412 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
11413 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
11414 ; in four years and cannot be built.
11415 #:phases
11416 (modify-phases %standard-phases
11417 ;; The build system attempts to install user interface modules to the
11418 ;; output directory of the "evolution-data-server" package. This
11419 ;; change redirects that change.
11420 (add-after 'unpack 'patch-ui-module-dir
11421 (lambda* (#:key outputs #:allow-other-keys)
11422 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
11423 (("\\$\\{edsuimoduledir\\}")
11424 (string-append (assoc-ref outputs "out")
11425 "/lib/evolution-data-server/ui-modules")))))
11426 (add-after 'install 'glib-or-gtk-compile-schemas
11427 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
11428 (add-after 'install 'glib-or-gtk-wrap
11429 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11430 (native-inputs
11431 (list `(,glib "bin") ; glib-mkenums
11432 pkg-config intltool itstool))
11433 (inputs
11434 `(("enchant" ,enchant)
11435 ("evolution-data-server" ,evolution-data-server) ; must be the same version
11436 ("gcr" ,gcr)
11437 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11438 ("gnome-autoar" ,gnome-autoar)
11439 ("gnome-desktop" ,gnome-desktop)
11440 ("gspell" ,gspell)
11441 ("highlight" ,highlight)
11442 ("libcanberra" ,libcanberra)
11443 ("libgweather" ,libgweather)
11444 ("libnotify" ,libnotify)
11445 ("libsoup" ,libsoup)
11446 ("nss" ,nss)
11447 ("openldap" ,openldap)
11448 ("webkitgtk" ,webkitgtk-with-libsoup2) ; because of evolution-data-server
11449 ("ytnef" ,ytnef)))
11450 (home-page "https://gitlab.gnome.org/GNOME/evolution")
11451 (synopsis "Manage your email, contacts and schedule")
11452 (description "Evolution is a personal information management application
11453 that provides integrated mail, calendaring and address book
11454 functionality.")
11455 ;; See COPYING for details.
11456 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
11457 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
11458 license:lgpl2.1+)))) ; smime/lib/*
11459
11460 (define-public gthumb
11461 (package
11462 (name "gthumb")
11463 (version "3.12.2")
11464 (source (origin
11465 (method url-fetch)
11466 (uri (string-append "mirror://gnome/sources/gthumb/"
11467 (version-major+minor version) "/"
11468 "gthumb-" version ".tar.xz"))
11469 (sha256
11470 (base32
11471 "09flm8s6jrvfya2ypw5873mnnani8ssy7wdv3ra1cljk4bjszy4p"))))
11472 (build-system meson-build-system)
11473 (arguments
11474 `(#:glib-or-gtk? #t
11475 #:configure-flags
11476 ;; Ensure the RUNPATH contains all installed library locations.
11477 (list (string-append "-Dc_link_args=-Wl,-rpath="
11478 (assoc-ref %outputs "out")
11479 "/lib/gthumb/extensions")
11480 (string-append "-Dcpp_link_args=-Wl,-rpath="
11481 (assoc-ref %outputs "out")
11482 "/lib/gthumb/extensions"))))
11483 (native-inputs
11484 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11485 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11486 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11487 ("intltool" ,intltool)
11488 ("itstool" ,itstool)
11489 ("pkg-config" ,pkg-config)
11490 ("python" ,python)))
11491 (inputs
11492 `(("clutter" ,clutter)
11493 ("clutter-gst" ,clutter-gst)
11494 ("clutter-gtk" ,clutter-gtk)
11495 ("colord" ,colord)
11496 ("exiv2" ,exiv2)
11497 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11498 ("gstreamer" ,gstreamer)
11499 ("gtk" ,gtk+)
11500 ("libheif" ,libheif)
11501 ("libjpeg" ,libjpeg-turbo)
11502 ("libraw" ,libraw)
11503 ("librsvg" ,librsvg)
11504 ("libtiff" ,libtiff)
11505 ("libwebp" ,libwebp)))
11506 (home-page "https://wiki.gnome.org/Apps/Gthumb")
11507 (synopsis "GNOME image viewer and browser")
11508 (description "GThumb is an image viewer, browser, organizer, editor and
11509 advanced image management tool")
11510 (license license:gpl2+)))
11511
11512 (define-public terminator
11513 (package
11514 (name "terminator")
11515 (version "2.1.1")
11516 (source
11517 (origin
11518 (method url-fetch)
11519 (uri (string-append "https://github.com/gnome-terminator/terminator/"
11520 "releases/download/v" version "/"
11521 name "-" version ".tar.gz"))
11522 (sha256
11523 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
11524 (build-system python-build-system)
11525 (native-inputs
11526 `(("gettext" ,gettext-minimal)
11527 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11528 ("gobject-introspection" ,gobject-introspection)
11529 ("intltool" ,intltool)
11530 ("pkg-config" ,pkg-config)
11531 ("python-psutil" ,python-psutil)
11532 ("python-pytest-runner" ,python-pytest-runner)
11533 ("python-pytest" ,python-pytest)))
11534 (inputs
11535 `(("cairo" ,cairo)
11536 ("dbus-glib" ,dbus-glib)
11537 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11538 ("gtk+" ,gtk+)
11539 ("python" ,python-wrapper)
11540 ("python-dbus" ,python-dbus)
11541 ("python-notify2" ,python-notify2)
11542 ("python-pycairo" ,python-pycairo)
11543 ("python-pygobject" ,python-pygobject)
11544 ("vte" ,vte)))
11545 (propagated-inputs
11546 (list python-configobj))
11547 (arguments
11548 ;; One test out of 28 fails due to dbus-python and python-notify; skip
11549 ;; tests.
11550 `(#:tests? #f
11551 #:imported-modules ((guix build glib-or-gtk-build-system)
11552 ,@%python-build-system-modules)
11553 #:modules ((guix build python-build-system)
11554 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11555 (guix build utils))
11556 #:phases
11557 (modify-phases %standard-phases
11558 (add-after 'unpack 'handle-dbus-python
11559 (lambda _
11560 ;; python-dbus cannot be found but it's really there. See
11561 ;; https://github.com/SpotlightKid/jack-select/issues/2
11562 (substitute* "setup.py"
11563 (("'dbus-python',") ""))))
11564 (add-after 'install 'wrap-program
11565 (lambda* (#:key outputs #:allow-other-keys)
11566 (let ((prog (string-append (assoc-ref outputs "out")
11567 "/bin/terminator"))
11568 (pylib (string-append (assoc-ref outputs "out")
11569 "/lib/python"
11570 ,(version-major+minor
11571 (package-version python))
11572 "/site-packages")))
11573 (wrap-program prog
11574 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11575 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
11576 (add-after 'wrap-program 'glib-or-gtk-wrap
11577 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11578 (home-page "https://gnome-terminator.org/")
11579 (synopsis "Store and run multiple GNOME terminals in one window")
11580 (description
11581 "Terminator allows you to run multiple GNOME terminals in a grid and
11582 tabs, and it supports drag and drop re-ordering of terminals.")
11583 (license license:gpl2)))
11584
11585 (define-public libhandy
11586 (package
11587 (name "libhandy")
11588 (version "1.7.90")
11589 (source
11590 (origin
11591 (method git-fetch)
11592 (uri (git-reference
11593 (url "https://gitlab.gnome.org/GNOME/libhandy")
11594 (commit version)))
11595 (file-name (git-file-name name version))
11596 (sha256
11597 (base32 "1z8sbx7g19c1p8dy0sn0l25qfvrd2j28h269lsqm1y98r818h2k1"))))
11598 (build-system meson-build-system)
11599 (arguments
11600 `(#:configure-flags
11601 '("-Dglade_catalog=enabled"
11602 ;; XXX: Generating the documentation fails because the
11603 ;; libhandy.devhelp2 document cannot be created. This seems to be
11604 ;; caused by a problem during the XSL transformation.
11605 "-Dgtk_doc=false")
11606 #:phases
11607 (modify-phases %standard-phases
11608 (add-after 'unpack 'patch-docbook-xml
11609 (lambda* (#:key inputs #:allow-other-keys)
11610 (for-each
11611 (lambda (file)
11612 (substitute* file
11613 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
11614 (search-input-file inputs
11615 "/xml/dtd/docbook/docbookx.dtd"))))
11616 (find-files "doc" "\\.xml"))))
11617 (add-before 'check 'pre-check
11618 (lambda _
11619 ;; Tests require a running X server.
11620 (system "Xvfb :1 &")
11621 (setenv "DISPLAY" ":1"))))))
11622 (inputs
11623 (list gtk+ glade3))
11624 (native-inputs
11625 (list gobject-introspection ; for g-ir-scanner
11626 `(,glib "bin")
11627 vala
11628 libxml2
11629 libxslt
11630 docbook-xsl
11631 docbook-xml-4.3
11632 gtk-doc/stable
11633 pkg-config
11634 gettext-minimal
11635
11636 ;; Test suite dependencies.
11637 hicolor-icon-theme
11638 xorg-server-for-tests))
11639 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11640 (synopsis "Library full of GTK+ widgets for mobile phones")
11641 (description "The aim of the handy library is to help with developing user
11642 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11643 for usage on small and big screens.")
11644 (license license:lgpl2.1+)))
11645
11646 (define-public libhandy-0.0
11647 (package
11648 (inherit libhandy)
11649 (version "0.0.13")
11650 (source
11651 (origin
11652 (method git-fetch)
11653 (uri (git-reference
11654 (url "https://gitlab.gnome.org/GNOME/libhandy")
11655 (commit (string-append "v" version))))
11656 (file-name (git-file-name "libhandy" version))
11657 (sha256
11658 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11659 (arguments
11660 (substitute-keyword-arguments (package-arguments libhandy)
11661 ((#:configure-flags flags)
11662 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11663
11664 (define-public libgit2-glib
11665 (package
11666 (name "libgit2-glib")
11667 (version "1.0.0.1")
11668 (source (origin
11669 (method url-fetch)
11670 (uri (string-append "mirror://gnome/sources/" name "/"
11671 (version-major+minor version) "/"
11672 name "-" version ".tar.xz"))
11673 (sha256
11674 (base32
11675 "0mrb21cgqmbhbxqxwx76yry1ifqj1k4vy6455n6s034m6rlms2j6"))))
11676 (build-system meson-build-system)
11677 (native-inputs
11678 (list `(,glib "bin") ;; For glib-mkenums
11679 gobject-introspection
11680 pkg-config
11681 python-pygobject
11682 python-wrapper
11683 vala))
11684 (inputs
11685 (list glib libssh2))
11686 (propagated-inputs
11687 (list ;; In Requires of libgit2-glib.pc.
11688 libgit2))
11689 (synopsis "GLib wrapper around the libgit2 Git access library")
11690 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11691 access library. It only implements the core plumbing functions, not really the
11692 higher level porcelain stuff.")
11693 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11694 (license license:gpl2+)))
11695
11696 (define-public gitg
11697 (package
11698 (name "gitg")
11699 (version "41")
11700 (source (origin
11701 (method url-fetch)
11702 (uri (string-append "mirror://gnome/sources/" name "/"
11703 (version-major version) "/"
11704 name "-" version ".tar.xz"))
11705 (sha256
11706 (base32
11707 "0aa6djcf7rjw0q688mfy47k67bbjpnx6aw1xs94abfhgn6gipdkz"))))
11708 (build-system meson-build-system)
11709 (arguments
11710 (list
11711 #:glib-or-gtk? #t
11712 #:phases
11713 #~(modify-phases %standard-phases
11714 (add-after 'unpack 'disable-post-install-partially
11715 (lambda _
11716 (substitute* "meson_post_install.py"
11717 (("'python'") ; there are no python sources to compile
11718 (string-append "'" (which "true") "'"))
11719 (("gtk-update-icon-cache") (which "true")))))
11720 (add-after 'unpack 'fix-test-sources
11721 (lambda _
11722 (substitute* "tests/libgitg/test-commit.vala"
11723 (("/bin/bash") (which "bash")))))
11724 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11725 (lambda* (#:key outputs #:allow-other-keys)
11726 (let ((prog (string-append #$output "/bin/gitg")))
11727 (wrap-program prog
11728 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11729 (inputs
11730 (list glib
11731 gsettings-desktop-schemas
11732 gspell
11733 gtk+
11734 gtksourceview
11735 json-glib
11736 libdazzle
11737 libgee
11738 libgit2-glib
11739 libpeas
11740 libsecret
11741 libsoup-minimal-2
11742 libxml2))
11743 (native-inputs
11744 (list `(,glib "bin")
11745 `(,gtk+ "bin")
11746 gobject-introspection
11747 intltool
11748 pkg-config
11749 python
11750 vala))
11751 (synopsis "Graphical user interface for git")
11752 (description
11753 "gitg is a graphical user interface for git. It aims at being a small,
11754 fast and convenient tool to visualize the history of git repositories.
11755 Besides visualization, gitg also provides several utilities to manage your
11756 repository and commit your work.")
11757 (home-page "https://wiki.gnome.org/Apps/Gitg")
11758 (license license:gpl2+)))
11759
11760 (define-public gamin
11761 (package
11762 (name "gamin")
11763 (version "0.1.10")
11764 (source (origin
11765 (method url-fetch)
11766 (uri (string-append "mirror://gnome/sources/" name "/"
11767 (version-major+minor version) "/"
11768 name "-" version ".tar.bz2"))
11769 (sha256
11770 (base32
11771 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11772 (build-system gnu-build-system)
11773 (arguments
11774 `(#:phases
11775 (modify-phases %standard-phases
11776 ;; The 'config.sub' is too old to recognise aarch64.
11777 ,@(if (and=> (%current-target-system) target-aarch64?)
11778 `((add-after 'unpack 'replace-config.sub
11779 (lambda _
11780 (delete-file "config.sub")
11781 (symlink (which "config.sub") "config.sub"))))
11782 '())
11783 (add-after 'unpack 'remove-deprecated-macro
11784 (lambda _
11785 (substitute* '("server/gam_node.c"
11786 "server/gam_subscription.h"
11787 "server/gam_node.h"
11788 "server/gam_subscription.c")
11789 (("G_CONST_RETURN") "const"))
11790 #t))
11791 ;; The configure script runs a test program unconditionally,
11792 ;; without an option to manually set the test result.
11793 ;; Override this test anyway.
11794 ,@(if (%current-target-system)
11795 `((add-after 'bootstrap 'set-have-abstract-sockets
11796 (lambda _
11797 (define in-abstract-sockets-test? #f)
11798 (substitute* "configure"
11799 (("^#### Abstract sockets\n$")
11800 (set! in-abstract-sockets-test? #t)
11801 "#### Abstract sockets\n")
11802 (("^have_abstract_sockets=no\n$")
11803 (set! in-abstract-sockets-test? #f)
11804 ;; ‘Abstract sockets’ appear to be Linux-only.
11805 (string-append "have_abstract_sockets="
11806 ,(if (target-linux?)
11807 "yes"
11808 "no")
11809 "\nif false; then\nif false; then :\n"))
11810 (("^(.*\n)$" line)
11811 (if in-abstract-sockets-test?
11812 "" ; delete
11813 line))))))
11814 '()))))
11815 (inputs
11816 (list glib))
11817 (native-inputs
11818 `(("pkg-config" ,pkg-config)
11819 ,@(if (and=> (%current-target-system) target-aarch64?)
11820 `(("config" ,config))
11821 '())))
11822 (home-page "https://people.gnome.org/~veillard/gamin/")
11823 (synopsis "File alteration monitor")
11824 (description
11825 "Gamin is a file and directory monitoring system defined to be a subset
11826 of the FAM (File Alteration Monitor) system. This is a service provided by a
11827 library which detects when a file or a directory has been modified.")
11828 (license license:gpl2+)))
11829
11830 (define-public gnome-mahjongg
11831 (package
11832 (name "gnome-mahjongg")
11833 (version "3.38.3")
11834 (source (origin
11835 (method url-fetch)
11836 (uri (string-append "mirror://gnome/sources/" name "/"
11837 (version-major+minor version) "/" name "-"
11838 version ".tar.xz"))
11839 (sha256
11840 (base32
11841 "144ia3zn9rhwa1xbdkvsz6m0dsysl6mxvqw9bnrlh845hmyy9cfj"))))
11842 (build-system meson-build-system)
11843 (arguments
11844 `(#:meson ,meson-0.59
11845 #:glib-or-gtk? #t))
11846 (native-inputs
11847 `(("appstream-glib" ,appstream-glib)
11848 ("gettext" ,gettext-minimal)
11849 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11850 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11851 ("itstool" ,itstool)
11852 ("pkg-config" ,pkg-config)
11853 ("vala" ,vala)))
11854 (propagated-inputs
11855 (list dconf))
11856 (inputs
11857 (list glib gtk+))
11858 (synopsis "Mahjongg tile-matching game")
11859 (description "GNOME Mahjongg is a game based on the classic Chinese
11860 tile-matching game Mahjongg. It features multiple board layouts, tile themes,
11861 and a high score table.")
11862 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11863 (license license:gpl2+)))
11864
11865 (define-public gnome-themes-extra
11866 (package
11867 (name "gnome-themes-extra")
11868 (version "3.28")
11869 (source
11870 (origin
11871 (method url-fetch)
11872 (uri (string-append "mirror://gnome/sources/" name "/"
11873 (version-major+minor version) "/" name "-"
11874 version ".tar.xz"))
11875 (sha256
11876 (base32
11877 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11878 (build-system gnu-build-system)
11879 (arguments
11880 '(#:configure-flags
11881 ;; Don't create 'icon-theme.cache'.
11882 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11883 (true (string-append coreutils "/bin/true")))
11884 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11885 (native-inputs
11886 `(("glib:bin" ,glib "bin")
11887 ("intltool" ,intltool)
11888 ("pkg-config" ,pkg-config)))
11889 (inputs
11890 `(("glib" ,glib)
11891 ("gtk+" ,gtk+)
11892 ("gtk+-2" ,gtk+-2)
11893 ("librsvg" ,librsvg)
11894 ("libxml2" ,libxml2)))
11895 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11896 (synopsis "GNOME Extra Themes")
11897 (description "This package provides themes and related elements that don't
11898 really fit in other upstream packages. It offers legacy support for GTK+ 2
11899 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11900 index files needed for Adwaita to be used outside of GNOME.")
11901 (license license:lgpl2.1+)))
11902
11903 (define-public gnome-themes-standard
11904 (deprecated-package "gnome-themes-standard" gnome-themes-extra))
11905
11906 (define-public gnote
11907 (package
11908 (name "gnote")
11909 (version "41.2")
11910 (source
11911 (origin
11912 (method url-fetch)
11913 (uri (string-append "mirror://gnome/sources/" name "/"
11914 (version-major version) "/"
11915 "gnote-" version ".tar.xz"))
11916 (sha256
11917 (base32 "0gs2j988rwfrxckb8qxlkyxnvqsv30q32myqish6hssfa51yzc11"))))
11918 (build-system meson-build-system)
11919 (arguments
11920 `(#:glib-or-gtk? #t
11921 #:phases (modify-phases %standard-phases
11922 (add-after 'unpack 'skip-gtk-update-icon-cache
11923 ;; Don't create 'icon-theme.cache'.
11924 (lambda _
11925 (substitute* "post-install.py"
11926 (("gtk-update-icon-cache") "true")))))))
11927 (native-inputs
11928 (list desktop-file-utils
11929 `(,glib "bin")
11930 gobject-introspection
11931 intltool
11932 itstool
11933 pkg-config
11934 python))
11935 (inputs
11936 (list glibmm
11937 gsettings-desktop-schemas
11938 gspell
11939 gtk+
11940 gtkmm-3
11941 libsecret
11942 `(,util-linux "lib")
11943 libxml2
11944 libxslt))
11945 (synopsis "Note-taking application for the GNOME desktop")
11946 (description "Gnote is a note-taking application written for the GNOME
11947 desktop environment.")
11948 (home-page "https://wiki.gnome.org/Apps/Gnote")
11949 (license license:gpl3+)))
11950
11951 (define-public polari
11952 (package
11953 (name "polari")
11954 (version "41.0")
11955 (source (origin
11956 (method url-fetch)
11957 (uri (string-append "mirror://gnome/sources/polari/"
11958 (version-major version)
11959 "/polari-" version ".tar.xz"))
11960 (sha256
11961 (base32
11962 "1ss0x8idwar1q9p9535kzqb8idy7k2r48vrbjiyccw03cs0mzc53"))))
11963 (build-system meson-build-system)
11964 (arguments
11965 `(#:glib-or-gtk? #t
11966 #:phases
11967 (modify-phases %standard-phases
11968 (add-after 'unpack 'skip-gtk-update-icon-cache
11969 (lambda _
11970 (substitute* "meson/meson-postinstall.sh"
11971 (("gtk-update-icon-cache") (which "true")))))
11972 (add-after 'install 'fix-desktop-file
11973 ;; Hardcode launcher to be on the safe side
11974 (lambda* (#:key outputs #:allow-other-keys)
11975 (let ((out (assoc-ref outputs "out")))
11976 (substitute* (string-append out "/share/applications/"
11977 "org.gnome.Polari.desktop")
11978 (("Exec=.*") (string-append "Exec=" out "/bin/polari\n"))))))
11979 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11980 (lambda* (#:key outputs #:allow-other-keys)
11981 (let ((prog (string-append (assoc-ref outputs "out")
11982 "/bin/polari")))
11983 (wrap-program prog
11984 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11985 (inputs
11986 (list glib
11987 gsettings-desktop-schemas
11988 gspell
11989 gtk
11990 gjs
11991 libsecret
11992 libsoup-minimal-2
11993 telepathy-glib
11994 telepathy-logger))
11995 (native-inputs
11996 (list `(,glib "bin")
11997 gobject-introspection
11998 intltool
11999 pkg-config
12000 yelp-tools))
12001 (propagated-inputs
12002 (list telepathy-idle telepathy-mission-control))
12003 (synopsis "Simple IRC Client")
12004 (description
12005 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
12006 integrate seamlessly with the GNOME desktop.")
12007 (home-page "https://wiki.gnome.org/Apps/Polari")
12008 (license license:gpl2+)))
12009
12010 (define-public gnome-boxes
12011 (package
12012 (name "gnome-boxes")
12013 (version "42.3")
12014 (source
12015 (origin
12016 (method url-fetch)
12017 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
12018 (version-major version) "/"
12019 "gnome-boxes-" version ".tar.xz"))
12020 (sha256
12021 (base32 "1lv0bdh935qj6wkv3ixg2pcv8yrapj79z02gw4fal3rhz3xggvsn"))))
12022 (build-system meson-build-system)
12023 (arguments
12024 (list #:glib-or-gtk? #t
12025 #:configure-flags #~(list "-Drdp=false"
12026 (string-append "-Dc_link_args=-Wl,-rpath="
12027 #$output
12028 "/lib/gnome-boxes"))
12029 #:phases #~(modify-phases %standard-phases
12030 (add-after 'unpack 'disable-gtk-update-icon-cache
12031 (lambda _
12032 (setenv "DESTDIR" "/"))))))
12033 (native-inputs
12034 (list desktop-file-utils ;for update-desktop-database
12035 gettext-minimal
12036 `(,glib "bin") ;for glib-compile-resources
12037 itstool
12038 pkg-config
12039 python
12040 vala))
12041 (inputs
12042 (list glib-networking ;for TLS support
12043 gsettings-desktop-schemas
12044 gtk+
12045 gtk-vnc
12046 gtksourceview
12047 json-glib
12048 libarchive
12049 libgudev
12050 libhandy
12051 libosinfo
12052 libsecret
12053 libsoup-minimal-2
12054 libusb
12055 libvirt
12056 libvirt-glib
12057 libxml2
12058 sparql-query
12059 spice-gtk
12060 tracker
12061 vte
12062 webkitgtk-with-libsoup2)) ;for webkit2gtk-4.0
12063 (home-page "https://wiki.gnome.org/Apps/Boxes")
12064 (synopsis "View, access, and manage remote and virtual systems")
12065 (description "GNOME Boxes is a simple application to view, access, and
12066 manage remote and virtual systems. Note that this application requires the
12067 @code{libvirt} and @code{virtlog} daemons to run. Use the command
12068 @command{info '(guix) Virtualization Services'} to learn how to configure
12069 these services on the Guix System.")
12070 (license (list
12071 ;; For data/icons/empty-boxes.png.
12072 license:cc-by2.0
12073 ;; For all others.
12074 license:lgpl2.0+))))
12075
12076 (define-public geary
12077 (package
12078 (name "geary")
12079 (version "40.0")
12080 (source (origin
12081 (method git-fetch)
12082 (uri (git-reference
12083 (url "https://gitlab.gnome.org/GNOME/geary.git")
12084 (commit (string-append "gnome-" version))))
12085 (file-name (git-file-name name version))
12086 (sha256
12087 (base32
12088 "04hvw86r8sczvjm1z3ls5y5y5h6nyfb648rjkfx05ib00mqq5v1x"))))
12089 (build-system meson-build-system)
12090 (arguments
12091 `(#:glib-or-gtk? #t
12092 #:configure-flags
12093 '("-Dprofile=release")
12094 #:phases (modify-phases %standard-phases
12095 (add-after 'unpack 'disable-failing-tests
12096 (lambda _
12097 (substitute* "test/test-client.vala"
12098 (("client.add_suite\\(new Application.CertificateManagerTest\\(\\).suite\\);")
12099 ""))))
12100 (add-after 'unpack 'generate-vapis
12101 (lambda* (#:key inputs #:allow-other-keys)
12102 ;; It’s not possible to generate the GMime vapi, because
12103 ;; there’s custom metadata that gmime didn’t
12104 ;; install. Thus, the vapi should be built and installed
12105 ;; with gmime.
12106 (define gmime
12107 (assoc-ref inputs "gmime"))
12108 (copy-file (string-append gmime "/share/vala/vapi/gmime-3.0.vapi")
12109 "bindings/vapi/gmime-3.0.vapi")))
12110 (add-after 'unpack 'disable-postinstall-script
12111 (lambda _
12112 (substitute* "build-aux/post_install.py"
12113 (("gtk-update-icon-cache")
12114 "true"))))
12115 (add-before 'check 'setup-home
12116 (lambda _
12117 ;; Tests require a writable HOME.
12118 (setenv "HOME" (getcwd))))
12119 (add-before 'check 'setup-xvfb
12120 (lambda _
12121 (system "Xvfb :1 &")
12122 (setenv "DISPLAY" ":1"))))))
12123 (inputs
12124 (list enchant
12125 folks
12126 gcr
12127 glib
12128 gmime
12129 gnome-online-accounts
12130 gsettings-desktop-schemas
12131 gspell
12132 gsound
12133 gtk+
12134 iso-codes
12135 json-glib
12136 libcanberra
12137 libgee
12138 libhandy
12139 libpeas
12140 libsecret
12141 libstemmer
12142 libunwind
12143 sqlite
12144 webkitgtk-with-libsoup2
12145 ytnef))
12146 (native-inputs
12147 (list appstream-glib
12148 cmake-minimal
12149 desktop-file-utils
12150 gettext-minimal
12151 glib
12152 `(,glib "bin")
12153 gmime
12154 gobject-introspection
12155 gsettings-desktop-schemas
12156 itstool
12157 libarchive
12158 libxml2
12159 pkg-config
12160 python-minimal
12161 vala
12162 xorg-server-for-tests))
12163 (synopsis "GNOME email application built around conversations")
12164 (description
12165 "Geary collects related messages together into conversations,
12166 making it easy to find and follow your discussions. Full-text and keyword
12167 search makes it easy to find the email you are looking for. Geary's
12168 full-featured composer lets you send rich, styled text with images, links, and
12169 lists, but also send lightweight, easy to read text messages. Geary
12170 automatically picks up your existing GNOME Online Accounts, and adding more is
12171 easy. Geary has a clean, fast, modern interface that works like you want it
12172 to.")
12173 (home-page "https://wiki.gnome.org/Apps/Geary")
12174 (license (list
12175 ;; geary
12176 license:lgpl2.1+
12177 ;; icons
12178 license:cc-by3.0
12179 license:cc-by-sa3.0
12180 license:public-domain
12181 ;; snowball
12182 license:bsd-2))))
12183
12184 (define-public glabels
12185 (package
12186 (name "glabels")
12187 (version "3.4.1")
12188 (source
12189 (origin
12190 (method url-fetch)
12191 (uri (string-append "mirror://gnome/sources/" name "/"
12192 (version-major+minor version) "/"
12193 "glabels-" version ".tar.xz"))
12194 (sha256
12195 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
12196 (build-system glib-or-gtk-build-system)
12197 (native-inputs
12198 `(("gettext" ,gettext-minimal)
12199 ("glib:bin" ,glib "bin")
12200 ("intltool" ,intltool)
12201 ("itstool" ,itstool)
12202 ("pkg-config" ,pkg-config)))
12203 (inputs
12204 (list gtk+ librsvg libxml2))
12205 (arguments
12206 `(#:configure-flags '("CFLAGS=-fcommon")))
12207 (home-page "https://glabels.org/")
12208 (synopsis "Program for creating labels and business cards")
12209 (description
12210 "gLabels is a program for creating labels and business cards. It is
12211 designed to work with various laser/ink-jet peel-off label and business
12212 card sheets that you’ll find at most office supply stores.")
12213 (license license:gpl3+)))
12214
12215 (define-public gnome-latex
12216 (package
12217 (name "gnome-latex")
12218 (version "3.41.2")
12219 (source
12220 (origin
12221 (method url-fetch)
12222 (uri (string-append "mirror://gnome/sources/" name "/"
12223 (version-major+minor version) "/"
12224 "gnome-latex-" version ".tar.xz"))
12225 (sha256
12226 (base32 "0cynhmrn99f4f3kddczsc58ak4b9sv2zkfbcyz7z16848nhz047k"))))
12227 (build-system glib-or-gtk-build-system)
12228 (native-inputs
12229 (list gettext-minimal
12230 `(,glib "bin")
12231 gobject-introspection
12232 gtk-doc/stable
12233 itstool
12234 pkg-config
12235 vala))
12236 (inputs
12237 (list dconf
12238 glib
12239 gspell
12240 libgee
12241 tepl
12242 uchardet))
12243 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
12244 (synopsis "LaTeX editor for the GNOME desktop")
12245 (description
12246 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
12247 such as build tools, completion of LaTeX commands, structure navigation,
12248 symbol tables, document templates, project management, spell-checking, menus
12249 and toolbars.")
12250 (license license:gpl3+)))
12251
12252 (define-public setzer
12253 (package
12254 (name "setzer")
12255 (version "0.4.1")
12256 (source
12257 (origin
12258 (method git-fetch)
12259 (uri (git-reference
12260 (url "https://github.com/cvfosammmm/Setzer")
12261 (commit (string-append "v" version))))
12262 (file-name (git-file-name name version))
12263 (sha256
12264 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
12265 (build-system meson-build-system)
12266 (arguments
12267 `(#:glib-or-gtk? #t
12268 #:phases
12269 (modify-phases %standard-phases
12270 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12271 (lambda* (#:key outputs #:allow-other-keys)
12272 (let ((prog (string-append (assoc-ref outputs "out")
12273 "/bin/setzer"))
12274 (pylib (string-append (assoc-ref outputs "out")
12275 "/lib/python"
12276 ,(version-major+minor
12277 (package-version python))
12278 "/site-packages")))
12279 (wrap-program prog
12280 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12281 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12282 #t))))))
12283 (native-inputs
12284 `(("desktop-file-utils" ,desktop-file-utils)
12285 ("gettext" ,gettext-minimal)
12286 ("glib:bin" ,glib "bin")
12287 ("gobject-introspection" ,gobject-introspection)
12288 ("gtk+:bin" ,gtk+ "bin")
12289 ("python-wrapper" ,python-wrapper)))
12290 (inputs
12291 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12292 ("gspell" ,gspell)
12293 ("gtk+" ,gtk+)
12294 ("gtksourceview" ,gtksourceview)
12295 ("pango" ,pango)
12296 ("poppler" ,poppler)
12297 ("python-pdfminer" ,python-pdfminer-six)
12298 ("python-pycairo" ,python-pycairo)
12299 ("python-pygobject" ,python-pygobject)
12300 ("python-pyxdg" ,python-pyxdg)
12301 ("webkitgtk" ,webkitgtk)
12302 ("xdg-utils" ,xdg-utils)))
12303 (home-page "https://www.cvfosammmm.org/setzer/")
12304 (synopsis "LaTeX editor written in Python with GTK+")
12305 (description
12306 "Setzer is a simple yet full-featured LaTeX editor written in Python with
12307 GTK+. It integrates well with the GNOME desktop environment.")
12308 (license license:gpl3+)))
12309
12310 (define-public apostrophe
12311 (package
12312 (name "apostrophe")
12313 (version "2.5")
12314 (source (origin
12315 (method git-fetch)
12316 (uri (git-reference
12317 (url "https://gitlab.gnome.org/somas/apostrophe")
12318 (commit (string-append "v" version))))
12319 (file-name (git-file-name name version))
12320 (sha256
12321 (base32
12322 "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp"))))
12323 (build-system meson-build-system)
12324 (arguments
12325 `(#:glib-or-gtk? #t
12326 #:meson ,meson-0.59 ;fails with 0.60
12327 #:phases
12328 (modify-phases %standard-phases
12329 (add-after 'unpack 'patch-meson
12330 (lambda _
12331 (substitute* "build-aux/meson_post_install.py"
12332 (("gtk-update-icon-cache") "true"))))
12333 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12334 (lambda* (#:key inputs outputs #:allow-other-keys)
12335 (let ((prog (string-append (assoc-ref outputs "out")
12336 "/bin/apostrophe"))
12337 (pylib (string-append (assoc-ref outputs "out")
12338 "/lib/python"
12339 ,(version-major+minor
12340 (package-version
12341 (this-package-input "python")))
12342 "/site-packages")))
12343 (wrap-program prog
12344 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12345 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
12346 `("PATH" prefix (,(dirname
12347 (search-input-file inputs
12348 "/bin/pandoc")))))))))))
12349 (inputs
12350 (list glib
12351 gobject-introspection
12352 gspell
12353 gtk+
12354 libhandy
12355 pandoc
12356 python
12357 python-chardet
12358 python-levenshtein
12359 python-regex
12360 python-pycairo
12361 python-pygobject
12362 python-pyenchant
12363 python-pypandoc
12364 webkitgtk-with-libsoup2))
12365 (native-inputs
12366 (list gettext-minimal
12367 `(,glib "bin")
12368 pkg-config
12369 sassc))
12370 (home-page "https://gitlab.gnome.org/somas/apostrophe")
12371 (synopsis "Markdown editor written in Python with GTK+")
12372 (description "Apostrophe is a GTK+ based distraction-free Markdown editor.
12373 It uses pandoc as back-end for parsing Markdown.")
12374 (license license:gpl3)))
12375
12376 (define-public libratbag
12377 (package
12378 (name "libratbag")
12379 (version "0.16")
12380 (source
12381 (origin
12382 (method git-fetch)
12383 (uri (git-reference
12384 (url "https://github.com/libratbag/libratbag")
12385 (commit (string-append "v" version))))
12386 (file-name (git-file-name name version))
12387 (sha256
12388 (base32 "0jjf6xc3a37icp5dvbxla3ai9is2ns31m0llbfq1bmb6dk8cd4n0"))))
12389 (build-system meson-build-system)
12390 (arguments
12391 `(#:configure-flags
12392 (list "-Dsystemd=false"
12393 "-Dlogind-provider=elogind"
12394 ,@(if (not (package? (this-package-native-input "valgrind")))
12395 `("-Dtests=false") ; Some tests still run.
12396 `()))
12397 #:phases
12398 (modify-phases %standard-phases
12399 (add-after 'install 'wrap
12400 (lambda* (#:key inputs outputs #:allow-other-keys)
12401 (let* ((out (assoc-ref outputs "out"))
12402 (site (string-append
12403 "/lib/python"
12404 ,(version-major+minor (package-version python))
12405 "/site-packages"))
12406 (evdev (string-append
12407 (assoc-ref inputs "python-evdev") site))
12408 (pygo (string-append
12409 (assoc-ref inputs "python-pygobject") site))
12410 (python-wrap
12411 `("GUIX_PYTHONPATH" = (,evdev ,pygo))))
12412 (wrap-program (string-append out "/bin/" "ratbagctl")
12413 python-wrap)
12414 #t))))))
12415 (native-inputs
12416 (append
12417 (list check pkg-config swig)
12418 (if (member (%current-system) (package-supported-systems valgrind))
12419 (list valgrind)
12420 '())))
12421 (inputs
12422 `(("glib" ,glib)
12423 ("json-glib" ,json-glib)
12424 ("libevdev" ,libevdev)
12425 ("libsystemd" ,elogind)
12426 ("libunistring" ,libunistring)
12427 ("python" ,python)
12428 ("python-evdev" ,python-evdev)
12429 ("python-pygobject" ,python-pygobject)
12430 ("udev" ,eudev)))
12431 (home-page "https://github.com/libratbag/libratbag")
12432 (synopsis "DBus daemon and utility for configuring gaming mice")
12433 (description "libratbag provides @command{ratbagd}, a DBus daemon to
12434 configure input devices, mainly gaming mice. The daemon provides a generic
12435 way to access the various features exposed by these mice and abstracts away
12436 hardware-specific and kernel-specific quirks. There is also the
12437 @command{ratbagctl} command line interface for configuring devices.
12438
12439 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
12440 Steelseries.
12441
12442 The ratbagd DBus service can be enabled by adding the following service to
12443 your operating-system definition:
12444
12445 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12446 (license license:expat)))
12447
12448 (define-public piper
12449 (package
12450 (name "piper")
12451 (version "0.7")
12452 (source
12453 (origin
12454 (method git-fetch)
12455 (uri (git-reference
12456 (url "https://github.com/libratbag/piper")
12457 (commit version)))
12458 (sha256
12459 (base32 "0jsvfy0ihdcgnqljfgs41lys1nlz18qvsa0a8ndx3pyr41f8w8wf"))
12460 (file-name (git-file-name name version))))
12461 (build-system meson-build-system)
12462 (native-inputs
12463 (list appstream
12464 gettext-minimal
12465 `(,glib "bin")
12466 gobject-introspection
12467 pkg-config
12468 python-flake8))
12469 (inputs
12470 (list adwaita-icon-theme
12471 gtk+
12472 `(,gtk+ "bin")
12473 libratbag
12474 python
12475 python-evdev
12476 python-lxml
12477 python-pycairo
12478 python-pygobject))
12479 (arguments
12480 (list #:glib-or-gtk? #t
12481 #:phases
12482 #~(modify-phases %standard-phases
12483 (add-after 'unpack 'dont-update-gtk-icon-cache
12484 (lambda _
12485 (substitute* "meson.build"
12486 (("meson.add_install_script('meson_install.sh')") ""))))
12487 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12488 (lambda _
12489 (let ((pylib (string-append #$output
12490 "/lib/python"
12491 #$(version-major+minor
12492 (package-version python))
12493 "/site-packages")))
12494 (wrap-program
12495 (string-append #$output "/bin/piper")
12496 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12497 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
12498 (add-before 'check 'flake8-config
12499 (lambda _
12500 ;; Make sure the tests use the local flake8 config
12501 (symlink (string-append #$source "/.flake8") ".flake8"))))))
12502 (home-page "https://github.com/libratbag/piper/")
12503 (synopsis "Configure bindings and LEDs on gaming mice")
12504 (description "Piper is a GTK+ application for configuring gaming mice with
12505 onboard configuration for key bindings via libratbag. Piper requires
12506 a @command{ratbagd} daemon running with root privileges. It can be run
12507 manually as root, but is preferably configured as a DBus service that can
12508 launch on demand. This can be configured by enabling the following service,
12509 provided there is a DBus service present:
12510
12511 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12512 (license license:gpl2)))
12513
12514 (define-public parlatype
12515 (package
12516 (name "parlatype")
12517 (version "3.1")
12518 (source
12519 (origin
12520 (method git-fetch)
12521 (uri (git-reference
12522 (url "https://github.com/gkarsay/parlatype")
12523 (commit (string-append "v" version))))
12524 (file-name (git-file-name name version))
12525 (sha256
12526 (base32 "0cqrzbkyksfsm57riirmjkwf2nf2dgl1xpps1wvqxpij475qcb9b"))))
12527 (build-system meson-build-system)
12528 (arguments
12529 `(#:glib-or-gtk? #t
12530 #:tests? #f ;require internet access
12531 #:phases
12532 (modify-phases %standard-phases
12533 (add-after 'unpack 'skip-gtk-update-icon-cache
12534 (lambda _
12535 (substitute* "data/meson_post_install.py"
12536 (("gtk-update-icon-cache") "true"))))
12537 (add-after 'install 'wrap-parlatype
12538 ;; Add gstreamer plugin provided in this package to system's
12539 ;; plugins.
12540 (lambda* (#:key outputs #:allow-other-keys)
12541 (let* ((out (assoc-ref outputs "out"))
12542 (gst-plugin-path (string-append
12543 out "/lib/gstreamer-1.0/"
12544 ":"
12545 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
12546 (wrap-program (string-append out "/bin/parlatype")
12547 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path)))))))))
12548 (native-inputs
12549 (list appstream-glib
12550 desktop-file-utils ;for desktop-file-validate
12551 gettext-minimal
12552 `(,glib "bin") ;for glib-compile-resources
12553 pkg-config
12554 yelp-tools))
12555 (inputs
12556 (list gst-plugins-base
12557 gst-plugins-good
12558 gstreamer
12559 gtk+
12560 iso-codes
12561 pocketsphinx
12562 pulseaudio
12563 sphinxbase))
12564 (home-page "https://www.parlatype.org")
12565 (synopsis "GNOME audio player for transcription")
12566 (description "Parlatype is an audio player for the GNOME desktop
12567 environment. Its main purpose is the manual transcription of spoken
12568 audio files.")
12569 (license license:gpl3+)))
12570
12571 (define-public jsonrpc-glib
12572 (package
12573 (name "jsonrpc-glib")
12574 (version "3.34.0")
12575 (source (origin
12576 (method url-fetch)
12577 (uri (string-append "mirror://gnome/sources/" name "/"
12578 (version-major+minor version) "/"
12579 name "-" version ".tar.xz"))
12580 (sha256
12581 (base32
12582 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
12583 (build-system meson-build-system)
12584 (inputs
12585 (list json-glib glib))
12586 (native-inputs
12587 (list pkg-config
12588 `(,glib "bin") ; for glib-genmarshal, etc.
12589 gobject-introspection vala))
12590 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
12591 (synopsis "JSON-RPC library for GLib")
12592 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
12593 peers in either a synchronous or asynchronous fashion. It also allows
12594 communicating using the GVariant serialization format instead of JSON when
12595 both peers support it. You might want that when communicating on a single
12596 host to avoid parser overhead and memory-allocator fragmentation.")
12597 (license license:lgpl2.1+)))
12598
12599 (define-public feedbackd
12600 (package
12601 (name "feedbackd")
12602 (version "0.0.0+git20200527")
12603 (source (origin
12604 (method git-fetch)
12605 (uri (git-reference
12606 (url "https://source.puri.sm/Librem5/feedbackd.git")
12607 (commit (string-append "v" version))))
12608 (file-name (git-file-name name version))
12609 (sha256
12610 (base32
12611 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
12612 (build-system meson-build-system)
12613 (native-inputs
12614 (list `(,glib "bin") gobject-introspection pkg-config vala))
12615 (inputs
12616 (list dbus gsound json-glib libgudev))
12617 (propagated-inputs
12618 (list glib)) ; in Requires of libfeedback-0.0.pc
12619 (synopsis "Haptic/visual/audio feedback via DBus")
12620 (description "Feedbackd provides a DBus daemon to act on events to provide
12621 haptic, visual and audio feedback. It offers the libfeedbackd library and
12622 GObject introspection bindings.")
12623 (home-page "https://source.puri.sm/Librem5/feedbackd")
12624 (license (list license:lgpl2.1+ ; libfeedbackd
12625 license:lgpl3+)))) ; the rest
12626
12627 (define-public sysprof
12628 (package
12629 (name "sysprof")
12630 (version "3.44.0")
12631 (source
12632 (origin
12633 (method url-fetch)
12634 (uri (string-append "mirror://gnome/sources/sysprof/"
12635 (version-major+minor version) "/"
12636 "sysprof-" version ".tar.xz"))
12637 (sha256
12638 (base32 "0nq0icbln0ryqzlybr7wyl19mhr3vkqzs6wasn430fwpf5drypdb"))))
12639 (build-system meson-build-system)
12640 (arguments
12641 (list
12642 #:configure-flags
12643 #~(list (string-append "-Dsystemdunitdir=" #$output "/share/systemd"))
12644 #:phases
12645 #~(modify-phases %standard-phases
12646 (add-after 'unpack 'patch-install-script
12647 (lambda _
12648 (substitute* "build-aux/meson/post_install.sh"
12649 (("gtk-update-icon-cache") "true")
12650 (("update-desktop-database") "true")))))))
12651 (propagated-inputs
12652 (list polkit))
12653 (inputs
12654 (list glib
12655 gtk+
12656 json-glib
12657 libdazzle
12658 libunwind
12659 polkit))
12660 (native-inputs
12661 (list gettext-minimal
12662 `(,glib "bin") ;for gdbus-codegen, etc.
12663 itstool
12664 pkg-config
12665 libxml2))
12666 ;; This home page is so woefully out of date as to be essentially useless.
12667 ;; (home-page "http://www.sysprof.com")
12668 (home-page "https://wiki.gnome.org/Apps/Sysprof")
12669 (synopsis "System-wide performance profiler for GNU/Linux")
12670 (description
12671 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
12672 GNU/Linux system including the kernel and all user-space applications. This
12673 helps find the function(s) in which a program spends most of its time.
12674
12675 It uses the kernel's built-in @code{ptrace} feature and handles shared
12676 libraries. Applications do not need to be recompiled--or even restarted.")
12677 (license license:gpl3+)))
12678
12679 (define-public gnome-builder
12680 (package
12681 (name "gnome-builder")
12682 (version "41.2")
12683 (source (origin
12684 (method url-fetch)
12685 (uri (string-append "mirror://gnome/sources/" name "/"
12686 (version-major version) "/"
12687 name "-" version ".tar.xz"))
12688 (sha256
12689 (base32
12690 "04p031i999dccbnlbysmr6f93x7dji7b559j6yhdsqbqgxb7ncan"))
12691 (patches
12692 (search-patches "gnome-builder-update-libportal.patch"))))
12693 (build-system meson-build-system)
12694 (arguments
12695 (list
12696 #:glib-or-gtk? #t ;To wrap binaries and compile schemas
12697 #:configure-flags
12698 #~(list "-Dnetwork_tests=false"
12699 ;; TODO: Enable all plugins...
12700 ;; Flatpak plugin wants libsoup 2
12701 "-Dplugin_flatpak=false"
12702 ;; ... except this one.
12703 "-Dplugin_update_manager=false")
12704 #:phases
12705 #~(modify-phases %standard-phases
12706 (add-after 'unpack 'patch-meson
12707 (lambda* (#:key inputs #:allow-other-keys)
12708 (substitute* "build-aux/meson/post_install.py"
12709 (("gtk-update-icon-cache") "true")
12710 (("update-desktop-database") "true"))
12711 (substitute* "src/libide/meson.build"
12712 (("/usr/lib") (string-append (assoc-ref inputs
12713 "python-pygobject")
12714 "/lib")))))
12715 (add-after 'configure 'fix-ninja
12716 (lambda _
12717 ;; #43296: meson(?) incorrectly assumes we want to link
12718 ;; this PIE against a static libselinux.
12719 (substitute* "build.ninja"
12720 (("libselinux\\.a") "libselinux.so"))))
12721 (add-before 'check 'pre-check
12722 (lambda _
12723 (system "Xvfb :1 &")
12724 (setenv "DISPLAY" ":1"))))))
12725 (inputs (list cmark
12726 clang
12727 devhelp-with-libsoup2
12728 glade3
12729 gspell
12730 gtk+
12731 json-glib
12732 jsonrpc-glib
12733 libdazzle
12734 libgit2-glib
12735 libpeas
12736 libportal
12737 libsoup-minimal-2
12738 llvm
12739 python
12740 python-pygobject
12741 sysprof
12742 template-glib
12743 vte
12744 webkitgtk-with-libsoup2))
12745 (propagated-inputs (list gtksourceview)) ; needed for settings
12746 (native-inputs (list desktop-file-utils ; for desktop-file-validate
12747 `(,glib "bin")
12748 gettext-minimal
12749 pkg-config
12750 python ; for meson scripts
12751 vala
12752 xorg-server-for-tests))
12753 (home-page "https://wiki.gnome.org/Apps/Builder")
12754 (synopsis "Toolsmith for GNOME-based applications")
12755 (description
12756 "Builder aims to be an integrated development environment (IDE) for
12757 writing GNOME-based software. It features fuzzy search, auto-completion,
12758 a mini code map, documentation browsing, Git integration, an integrated
12759 profiler via Sysprof, debugging support, and more.")
12760 (license license:gpl3+)))
12761
12762 (define-public komikku
12763 (package
12764 (name "komikku")
12765 (version "0.41.0")
12766 (source
12767 (origin
12768 (method git-fetch)
12769 (uri (git-reference
12770 (url "https://gitlab.com/valos/Komikku/")
12771 (commit (string-append "v" version))))
12772 (file-name (git-file-name name version))
12773 (sha256
12774 (base32
12775 "17r059srxrx26w40swy47pdpyigyjdczp8550g4rfh86qs3ld4il"))))
12776 (build-system meson-build-system)
12777 (arguments
12778 `(#:glib-or-gtk? #t
12779 #:phases
12780 (modify-phases %standard-phases
12781 (add-after 'unpack 'patch-sources
12782 (lambda _
12783 (substitute* "komikku/utils.py"
12784 (("from komikku\\.servers import get_servers_list")
12785 ;; code following that line should migrate old databases
12786 ;; but the line itself results in an import error
12787 "return data_dir_path"))))
12788 (add-after 'unpack 'skip-gtk-update-icon-cache
12789 (lambda _
12790 (substitute* "meson_post_install.py"
12791 (("gtk-update-icon-cache") (which "true")))))
12792 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12793 (lambda* (#:key outputs #:allow-other-keys)
12794 (wrap-program (search-input-file outputs "bin/komikku")
12795 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
12796 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
12797 (inputs
12798 (list bash-minimal
12799 gtk+
12800 libhandy
12801 libnotify
12802 libsecret
12803 python
12804 python-beautifulsoup4
12805 python-brotli
12806 python-cloudscraper
12807 python-dateparser
12808 python-keyring
12809 python-lxml
12810 python-magic
12811 python-natsort
12812 python-pillow
12813 python-pure-protobuf
12814 python-pycairo
12815 python-pygobject
12816 python-requests
12817 python-unidecode
12818 webkitgtk-with-libsoup2))
12819 (native-inputs
12820 (list desktop-file-utils
12821 gettext-minimal
12822 `(,glib "bin")
12823 gobject-introspection
12824 pkg-config))
12825 (home-page "https://gitlab.com/valos/Komikku")
12826 (synopsis "Manga reader for GNOME")
12827 (description "Komikku is an online/offline manga reader for GNOME,
12828 developed with the aim of being used with the Librem 5 phone.")
12829 (license license:gpl3+)))
12830
12831 (define-public libgda
12832 (package
12833 (name "libgda")
12834 (version "6.0.0")
12835 (source
12836 (origin
12837 (method url-fetch)
12838 (uri (string-append "mirror://gnome/sources/" name "/"
12839 (version-major+minor version) "/"
12840 name "-" version ".tar.xz"))
12841 (sha256
12842 (base32 "0w564z7krgjk19r39mi5qn4kggpdg9ggbyn9pb4aavb61r14npwr"))
12843 (patches (search-patches "libgda-cve-2021-39359.patch"
12844 "libgda-fix-build.patch"
12845 "libgda-fix-missing-initialization.patch"
12846 "libgda-skip-postgresql-tests.patch"))))
12847 (build-system meson-build-system)
12848 (native-inputs
12849 (list intltool
12850 iso-codes
12851 `(,glib "bin")
12852 gnome-common
12853 gettext-minimal
12854 gobject-introspection
12855 gtk-doc/stable
12856 pkg-config
12857 python
12858 vala
12859 yelp-tools))
12860 (inputs
12861 (list json-glib
12862 glib
12863 glade3
12864 gtk+
12865 libsecret
12866 libxslt
12867 openssl
12868 sqlite
12869 vala))
12870 (propagated-inputs
12871 (list libxml2)) ; required by libgda-5.0.pc
12872 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12873 (synopsis "Uniform data access")
12874 (description
12875 "GNU Data Access (GDA) is an attempt to provide uniform access to
12876 different kinds of data sources (databases, information servers, mail spools,
12877 etc). It is a complete architecture that provides all you need to access
12878 your data.")
12879 (license license:lgpl2.1+)))
12880
12881 (define-public gtranslator
12882 (package
12883 (name "gtranslator")
12884 (version "42.0")
12885 (source (origin
12886 (method url-fetch)
12887 (uri (string-append "mirror://gnome/sources/" name "/"
12888 (version-major version) "/"
12889 name "-" version ".tar.xz"))
12890 (sha256
12891 (base32
12892 "0fzi48s3wz9mf6c1ndpkby83bgshgn2116nqjq31n1j3wszvqrra"))))
12893 (build-system meson-build-system)
12894 (arguments
12895 (list #:build-type "release" ;otherwise it tries to fetch stuff via git
12896 #:glib-or-gtk? #t
12897 #:phases
12898 #~(modify-phases %standard-phases
12899 (add-after 'unpack 'skip-gtk-update-icon-cache
12900 (lambda _
12901 (substitute* "build-aux/meson/meson_post_install.py"
12902 (("gtk-update-icon-cache") (which "true"))))))))
12903 (native-inputs
12904 (list `(,glib-next "bin")
12905 gettext-minimal
12906 itstool
12907 pkg-config))
12908 (inputs
12909 (list json-glib
12910 jsonrpc-glib
12911 gettext-minimal
12912 glib-next
12913 gsettings-desktop-schemas
12914 gspell
12915 libgda
12916 libhandy
12917 libsoup
12918 pango-next))
12919 (propagated-inputs
12920 (list gtksourceview-4)) ; required for source view
12921 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12922 (synopsis "Translation making program")
12923 (description
12924 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12925 for the GNOME 3.x platform with many features. It aims to be a very complete
12926 editing environment for translation issues within the GNU gettext/GNOME desktop
12927 world.")
12928 (license license:gpl3+)))
12929
12930
12931 (define-public ocrfeeder
12932 (package
12933 (name "ocrfeeder")
12934 (version "0.8.5")
12935 (source (origin
12936 (method url-fetch)
12937 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12938 (version-major+minor version) "/"
12939 "ocrfeeder-" version ".tar.xz"))
12940 (sha256
12941 (base32
12942 "1vaaphzk6zn7pp2x9scphdzlbsma910wnbhd9xry50nx95cjlgdh"))))
12943 (build-system gnu-build-system)
12944 (arguments
12945 `(#:phases
12946 (modify-phases %standard-phases
12947 (add-after
12948 'install 'wrap-program
12949 (lambda* (#:key outputs #:allow-other-keys)
12950 (let ((prog (string-append (assoc-ref outputs "out")
12951 "/bin/" "ocrfeeder"))
12952 (pylib (string-append (assoc-ref outputs "out")
12953 "/lib/python"
12954 ,(version-major+minor
12955 (package-version python))
12956 "/site-packages")))
12957 (wrap-program prog
12958 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12959 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
12960 (native-inputs
12961 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12962 ("gobject-introspection" ,gobject-introspection)
12963 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12964 ("intltool" ,intltool)
12965 ("itstool" ,itstool)
12966 ("pkg-config" ,pkg-config)
12967 ("xmllint" ,libxml2)))
12968 (inputs
12969 `(("enchant" ,enchant)
12970 ("glib" ,glib)
12971 ("goocanvas" ,goocanvas)
12972 ("gtk" ,gtk+)
12973 ("gtkspell3" ,gtkspell3)
12974 ("libjpeg" ,libjpeg-turbo)
12975 ("libtiff" ,libtiff)
12976 ("libraw" ,libraw)
12977 ("ocrad" ,ocrad)
12978 ("python" ,python-wrapper)
12979 ("python-pygobject" ,python-pygobject)
12980 ("python-odfpy" ,python-odfpy)
12981 ("python-pillow" ,python-pillow)
12982 ("python-pyenchant" ,python-pyenchant)
12983 ("python-reportlab" ,python-reportlab)
12984 ("python-sane" ,python-sane)
12985 ("sane-backends" ,sane-backends)
12986 ("tesseract-ocr" ,tesseract-ocr)))
12987 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12988 (synopsis "Complete OCR Suite")
12989 (description "OCRFeeder is a complete Optical Character Recognition and
12990 Document Analysis and Recognition program.")
12991 (license license:gpl3+)))
12992
12993 (define-public libadwaita
12994 (package
12995 (name "libadwaita")
12996 (version "1.2.rc")
12997 (source (origin
12998 (method url-fetch)
12999 (uri (string-append "mirror://gnome/sources/libadwaita/"
13000 (version-major+minor version) "/"
13001 "libadwaita-" version ".tar.xz"))
13002 (sha256
13003 (base32
13004 "1syg7fkpcsw0q6fy3g79myb9m9bvrnh3rjrm6g4bfg1pnlqf1w22"))))
13005 (build-system meson-build-system)
13006 (arguments
13007 `(#:phases
13008 (modify-phases %standard-phases
13009 (add-before 'check 'pre-check
13010 (lambda* (#:key inputs #:allow-other-keys)
13011 ;; Tests require a running X server.
13012 (system "Xvfb :1 &")
13013 (setenv "DISPLAY" ":1"))))))
13014 (native-inputs
13015 (list gettext-minimal
13016 `(,glib "bin")
13017 gobject-introspection
13018 gtk-doc/stable
13019 pkg-config
13020 sassc
13021 vala
13022 xorg-server-for-tests))
13023 (propagated-inputs
13024 (list gtk)) ;libadwaita-1.pc 'Requires' it
13025 (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
13026 (synopsis "Building blocks for GNOME applications")
13027 (description
13028 "@code{libadwaita} offers widgets and objects to build GNOME
13029 applications scaling from desktop workstations to mobile phones. It is the
13030 successor of @code{libhandy} for GTK4.")
13031 (license license:lgpl2.1+)))
13032
13033 (define-public gnome-power-manager
13034 (package
13035 (name "gnome-power-manager")
13036 (version "3.32.0")
13037 (source (origin
13038 (method url-fetch)
13039 (uri (string-append "mirror://gnome/sources/" name "/"
13040 (version-major+minor version) "/"
13041 name "-" version ".tar.xz"))
13042 (sha256
13043 (base32
13044 "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g"))))
13045 (build-system meson-build-system)
13046 (inputs
13047 (list upower gtk+ gsettings-desktop-schemas adwaita-icon-theme))
13048 (native-inputs
13049 (list desktop-file-utils
13050 `(,glib "bin") gettext-minimal pkg-config))
13051 (home-page "https://gitlab.gnome.org/GNOME/gnome-power-manager")
13052 (synopsis "Power management daemon for the GNOME desktop")
13053 (description "@code{gnome-power-manager} is a tool for viewing present and
13054 historical battery usage and related statistics.")
13055 (license license:gpl2)))
13056
13057 (define-public xffm+
13058 (package
13059 (name "xffm+")
13060 (version "0.94")
13061 (source (origin
13062 (method url-fetch)
13063 (uri (string-append "mirror://sourceforge/xffm/xffm+/xffm+-"
13064 version ".tar.bz2"))
13065 (sha256
13066 (base32
13067 "0gwbgmjzlgv9ba95cgaigjnc9njzi7qznhvzp0qrnnlq3nbcm1k1"))))
13068 (build-system cmake-build-system)
13069 (arguments
13070 `(#:tests? #f ; No tests exist
13071 #:configure-flags
13072 (let ((shared-mime-info (assoc-ref %build-inputs "shared-mime-info"))
13073 (out (assoc-ref %outputs "out")))
13074 (list (string-append "-DFREEDESKTOP_GLOBS=" shared-mime-info
13075 "/share/mime/globs")
13076 (string-append "-DFREEDESKTOP_ALIAS=" shared-mime-info
13077 "/share/mime/aliases")
13078 (string-append "-DFREEDESKTOP_ICONS=" shared-mime-info
13079 "/share/mime/generic-icons")
13080 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
13081 (string-append "-DPREFIX_BIN=" out "/bin")))
13082 #:phases
13083 (modify-phases %standard-phases
13084 (add-after 'unpack 'patch-installation-destination
13085 (lambda* (#:key outputs #:allow-other-keys)
13086 (substitute* "CMakeLists.txt"
13087 ;; This is done so we can override.
13088 (("^set.CMAKE_INSTALL_PREFIX") "set(QCMAKE_INSTALL_PREFIX")
13089 ;; This is done so we can override.
13090 (("`set.PREFIX_BIN") "set(QPREFIX_BIN")))))))
13091 (native-inputs
13092 (list cmake pkg-config intltool gnu-gettext))
13093 (inputs
13094 (list glib gtk+ libx11 libsm libxv libxaw libxcb libxkbfile
13095 shared-mime-info))
13096 (synopsis "File manager")
13097 (description "This package provides a graphical file manager.")
13098 (home-page "http://xffm.org/")
13099 (license license:gpl3+)
13100 (properties '((upstream-name . "xffm")))))