gnu: lollypop: Update to 1.4.35 and enable tests.
[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.0")
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 "1y92glc0d6w323x2bdbc0gdh1jdffvkbv6cwlwm1rx0wgvv1svqh"))))
11046 (arguments
11047 `(#:glib-or-gtk? #t
11048 #:meson ,meson-0.60
11049 ;; Tests require GDK.
11050 #:tests? #f
11051 #:phases
11052 (modify-phases %standard-phases
11053 (add-after 'unpack 'skip-gtk-update-icon-cache
11054 (lambda _
11055 ;; Don't create 'icon-theme.cache'
11056 (substitute* "meson_post_install.py"
11057 (("gtk-update-icon-cache") (which "true")))
11058 #t))
11059 (add-after 'install 'wrap-cheese
11060 (lambda* (#:key inputs outputs #:allow-other-keys)
11061 (let ((out (assoc-ref outputs "out"))
11062 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
11063 (wrap-program (string-append out "/bin/cheese")
11064 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
11065 #t)))))
11066 (build-system meson-build-system)
11067 (native-inputs
11068 (list docbook-xsl
11069 docbook-xml-4.3
11070 gettext-minimal
11071 `(,glib "bin")
11072 gtk-doc/stable
11073 itstool
11074 libxml2
11075 libxslt
11076 pkg-config
11077 vala))
11078 (propagated-inputs
11079 (list gnome-video-effects
11080 clutter
11081 clutter-gst
11082 clutter-gtk
11083 libcanberra
11084 gdk-pixbuf
11085 glib
11086 gstreamer))
11087 (inputs
11088 (list gnome-desktop
11089 gobject-introspection
11090 gst-plugins-base
11091 gst-plugins-good
11092 gst-plugins-bad
11093 gtk+
11094 libx11
11095 libxtst))
11096 (home-page "https://wiki.gnome.org/Apps/Cheese")
11097 (synopsis "Webcam photo booth software for GNOME")
11098 (description
11099 "Cheese uses your webcam to take photos and videos. Cheese can also
11100 apply fancy special effects and lets you share the fun with others.")
11101 (license license:gpl2+)))
11102
11103 (define-public passwordsafe
11104 (package
11105 (name "passwordsafe")
11106 (version "5.1")
11107 (source
11108 (origin
11109 (method git-fetch)
11110 (uri (git-reference
11111 (url "https://gitlab.gnome.org/World/secrets")
11112 (commit version)))
11113 (file-name (git-file-name name version))
11114 (sha256
11115 (base32 "0kd43j6i017wdsqj6d5gnxhfv4ijnh3xahlw7md2gh51i8p682j6"))))
11116 (build-system meson-build-system)
11117 (arguments
11118 (list #:glib-or-gtk? #t
11119 #:meson meson-0.59
11120 #:phases
11121 #~(modify-phases %standard-phases
11122 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11123 (lambda* (#:key outputs #:allow-other-keys)
11124 (let ((prog (string-append #$output
11125 "/bin/gnome-passwordsafe"))
11126 (pylib (string-append
11127 #$output "/lib/python"
11128 #$(version-major+minor
11129 (package-version (this-package-input "python")))
11130 "/site-packages")))
11131 (wrap-program prog
11132 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
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 `(,gtk+ "bin")
11140 pkg-config))
11141 (inputs
11142 (list glib
11143 gsettings-desktop-schemas
11144 gtk+
11145 libhandy
11146 libpwquality
11147 python
11148 python-pygobject
11149 python-pykeepass))
11150 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
11151 (synopsis "Password manager for the GNOME desktop")
11152 (description
11153 "Password Safe is a password manager which makes use of the KeePass v4
11154 format. It integrates perfectly with the GNOME desktop and provides an easy
11155 and uncluttered interface for the management of password databases.")
11156 (license license:gpl3+)))
11157
11158 (define-public sound-juicer
11159 (package
11160 (name "sound-juicer")
11161 (version "3.24.0")
11162 (source
11163 (origin
11164 (method url-fetch)
11165 (uri (string-append "mirror://gnome/sources/" name "/"
11166 (version-major+minor version) "/"
11167 name "-" version ".tar.xz"))
11168 (sha256
11169 (base32
11170 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
11171 (build-system glib-or-gtk-build-system)
11172 (native-inputs
11173 (list desktop-file-utils intltool itstool pkg-config libxml2))
11174 (inputs
11175 (list gtk+
11176 gsettings-desktop-schemas
11177 gstreamer
11178 gst-plugins-base
11179 gst-plugins-good
11180 iso-codes
11181 brasero
11182 libcanberra
11183 libdiscid
11184 libmusicbrainz
11185 neon))
11186 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
11187 (synopsis "Audio music cd ripper")
11188 (description "Sound Juicer extracts audio from compact discs and convert it
11189 into audio files that a personal computer or digital audio player can play.
11190 It supports ripping to any audio codec supported by a GStreamer plugin, such as
11191 mp3, Ogg Vorbis and FLAC")
11192 (license license:gpl2+)))
11193
11194 (define-public soundconverter
11195 (package
11196 (name "soundconverter")
11197 (version "3.0.2")
11198 (source
11199 (origin
11200 (method url-fetch)
11201 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
11202 version "/+download/"
11203 "soundconverter-" version ".tar.xz"))
11204
11205 (sha256
11206 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
11207 (build-system glib-or-gtk-build-system)
11208 (arguments
11209 `(#:imported-modules ((guix build python-build-system)
11210 (guix build glib-or-gtk-build-system)
11211 ,@%gnu-build-system-modules)
11212
11213 #:modules ((guix build glib-or-gtk-build-system)
11214 (guix build utils)
11215 ((guix build gnu-build-system) #:prefix gnu:)
11216 ((guix build python-build-system) #:prefix python:))
11217
11218 #:phases
11219 (modify-phases %standard-phases
11220 (add-after 'install 'wrap-soundconverter-for-python
11221 (assoc-ref python:%standard-phases 'wrap))
11222 (add-after 'install 'wrap-soundconverter
11223 (lambda* (#:key inputs outputs #:allow-other-keys)
11224 (let ((out (assoc-ref outputs "out"))
11225 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
11226 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
11227 (wrap-program (string-append out "/bin/soundconverter")
11228 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
11229 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
11230 #t)))))
11231 (native-inputs
11232 `(("intltool" ,intltool)
11233 ("pkg-config" ,pkg-config)
11234 ("glib:bin" ,glib "bin")))
11235 (inputs
11236 (list gtk+ python python-pygobject gstreamer gst-plugins-base))
11237 (home-page "https://soundconverter.org/")
11238 (synopsis "Convert between audio formats with a graphical interface")
11239 (description
11240 "SoundConverter supports converting between many audio formats including
11241 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
11242 configurable file renaming.")
11243 (license license:gpl3)))
11244
11245 (define-public workrave
11246 (package
11247 (name "workrave")
11248 (version "1.10.50")
11249 (source
11250 (origin
11251 (method git-fetch)
11252 (uri (git-reference
11253 (url "https://github.com/rcaelers/workrave")
11254 (commit (string-append "v" (string-map
11255 (match-lambda (#\. #\_) (chr chr))
11256 version)))))
11257 (file-name (git-file-name name version))
11258 (sha256
11259 (base32 "0fj3fqmdn4nsjgvbbvzpxw2mgiihcr1zpb08amg2p6hg9n11y9bx"))))
11260 (build-system glib-or-gtk-build-system)
11261 (arguments
11262 ;; The only tests are maintainer tests (in po/), which fail.
11263 `(#:tests? #f))
11264 (inputs (list glib
11265 gtk+
11266 gdk-pixbuf
11267 gtkmm-3
11268 glibmm
11269 libx11
11270 libxtst
11271 dconf
11272 libice
11273 libsm
11274 libxscrnsaver))
11275 (native-inputs `(("boost" ,boost)
11276 ("pkg-config" ,pkg-config)
11277 ("gettext" ,gettext-minimal)
11278 ("autoconf" ,autoconf)
11279 ("autoconf-archive" , autoconf-archive)
11280 ("automake" ,automake)
11281 ("libtool" ,libtool)
11282 ("intltool" ,intltool)
11283 ("gobject-introspection" ,gobject-introspection)
11284 ("python3" ,python-3)
11285 ("python-jinja2" ,python-jinja2)))
11286 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
11287 (description
11288 "Workrave is a program that assists in the recovery and prevention of
11289 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
11290 micro-pauses and rest breaks, and restricts you to your daily limit.")
11291 (home-page "http://www.workrave.org")
11292 (license license:gpl3+)))
11293
11294 (define-public ghex
11295 (package
11296 (name "ghex")
11297 (version "3.18.4")
11298 (source (origin
11299 (method url-fetch)
11300 (uri (string-append "mirror://gnome/sources/ghex/"
11301 (version-major+minor version) "/"
11302 "ghex-" version ".tar.xz"))
11303 (sha256
11304 (base32
11305 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
11306 (build-system meson-build-system)
11307 (arguments
11308 '(#:glib-or-gtk? #t
11309 #:phases
11310 (modify-phases %standard-phases
11311 (add-after 'unpack 'skip-gtk-update-icon-cache
11312 ;; Don't create 'icon-theme.cache'.
11313 (lambda _
11314 (substitute* "meson_post_install.py"
11315 (("gtk-update-icon-cache") (which "true")))
11316 #t)))))
11317 (native-inputs
11318 `(("pkg-config" ,pkg-config)
11319 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
11320 ("gnome-common" ,gnome-common)
11321 ("which" ,which)
11322 ("intltool" ,intltool)
11323 ("yelp-tools" ,yelp-tools)
11324 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
11325 (inputs
11326 `(("atk" ,atk)
11327 ("gtk" ,gtk+)))
11328 (synopsis "GNOME hexadecimal editor")
11329 (description "The GHex program can view and edit files in two ways:
11330 hexadecimal or ASCII. It is useful for editing binary files in general.")
11331 (home-page "https://wiki.gnome.org/Apps/Ghex")
11332 (license license:gpl2)))
11333
11334 (define-public libdazzle
11335 (package
11336 (name "libdazzle")
11337 (version "3.44.0")
11338 (source (origin
11339 (method url-fetch)
11340 (uri (string-append "mirror://gnome/sources/libdazzle/"
11341 (version-major+minor version) "/"
11342 "libdazzle-" version ".tar.xz"))
11343 (sha256
11344 (base32
11345 "1blfs61ifv4fywl0wbr1cm3rvmgrv06yiqajbnq0qs72nrgf9lrw"))))
11346 (build-system meson-build-system)
11347 (arguments
11348 `(#:phases
11349 (modify-phases %standard-phases
11350 (add-before 'check 'pre-check
11351 (lambda _
11352 ;; Tests require a running X server.
11353 (system "Xvfb :1 &")
11354 (setenv "DISPLAY" ":1"))))))
11355 (native-inputs
11356 (list `(,glib "bin") ; glib-compile-resources
11357 gobject-introspection
11358 pkg-config
11359 ;; For tests.
11360 xorg-server-for-tests
11361 vala))
11362 (inputs
11363 (list glib
11364 gtk+))
11365 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
11366 (synopsis "Companion library to GObject and Gtk+")
11367 (description "The libdazzle library is a companion library to GObject and
11368 Gtk+. It provides various features that the authors wish were in the
11369 underlying library but cannot for various reasons. In most cases, they are
11370 wildly out of scope for those libraries. In other cases, they are not quite
11371 generic enough to work for everyone.")
11372 (license license:gpl3+)))
11373
11374 (define-public evolution
11375 (package
11376 (name "evolution")
11377 (version "3.42.1")
11378 (source (origin
11379 (method url-fetch)
11380 (uri (string-append "mirror://gnome/sources/evolution/"
11381 (version-major+minor version) "/"
11382 "evolution-" version ".tar.xz"))
11383 (sha256
11384 (base32
11385 "0igfzapdvgfx2gnpwfkjfkn7l5j186wk88ni39vqas1sl7ijlls6"))))
11386 (build-system cmake-build-system)
11387 (arguments
11388 `(#:imported-modules (,@%cmake-build-system-modules
11389 (guix build glib-or-gtk-build-system))
11390 #:modules ((guix build cmake-build-system)
11391 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11392 (guix build utils))
11393 #:configure-flags
11394 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
11395 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
11396 ; in four years and cannot be built.
11397 #:phases
11398 (modify-phases %standard-phases
11399 ;; The build system attempts to install user interface modules to the
11400 ;; output directory of the "evolution-data-server" package. This
11401 ;; change redirects that change.
11402 (add-after 'unpack 'patch-ui-module-dir
11403 (lambda* (#:key outputs #:allow-other-keys)
11404 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
11405 (("\\$\\{edsuimoduledir\\}")
11406 (string-append (assoc-ref outputs "out")
11407 "/lib/evolution-data-server/ui-modules")))))
11408 (add-after 'install 'glib-or-gtk-compile-schemas
11409 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
11410 (add-after 'install 'glib-or-gtk-wrap
11411 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11412 (native-inputs
11413 (list `(,glib "bin") ; glib-mkenums
11414 pkg-config intltool itstool))
11415 (inputs
11416 `(("enchant" ,enchant)
11417 ("evolution-data-server" ,evolution-data-server) ; must be the same version
11418 ("gcr" ,gcr)
11419 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11420 ("gnome-autoar" ,gnome-autoar)
11421 ("gnome-desktop" ,gnome-desktop)
11422 ("gspell" ,gspell)
11423 ("highlight" ,highlight)
11424 ("libcanberra" ,libcanberra)
11425 ("libgweather" ,libgweather)
11426 ("libnotify" ,libnotify)
11427 ("libsoup" ,libsoup)
11428 ("nss" ,nss)
11429 ("openldap" ,openldap)
11430 ("webkitgtk" ,webkitgtk-with-libsoup2) ; because of evolution-data-server
11431 ("ytnef" ,ytnef)))
11432 (home-page "https://gitlab.gnome.org/GNOME/evolution")
11433 (synopsis "Manage your email, contacts and schedule")
11434 (description "Evolution is a personal information management application
11435 that provides integrated mail, calendaring and address book
11436 functionality.")
11437 ;; See COPYING for details.
11438 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
11439 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
11440 license:lgpl2.1+)))) ; smime/lib/*
11441
11442 (define-public gthumb
11443 (package
11444 (name "gthumb")
11445 (version "3.12.2")
11446 (source (origin
11447 (method url-fetch)
11448 (uri (string-append "mirror://gnome/sources/gthumb/"
11449 (version-major+minor version) "/"
11450 "gthumb-" version ".tar.xz"))
11451 (sha256
11452 (base32
11453 "09flm8s6jrvfya2ypw5873mnnani8ssy7wdv3ra1cljk4bjszy4p"))))
11454 (build-system meson-build-system)
11455 (arguments
11456 `(#:glib-or-gtk? #t
11457 #:configure-flags
11458 ;; Ensure the RUNPATH contains all installed library locations.
11459 (list (string-append "-Dc_link_args=-Wl,-rpath="
11460 (assoc-ref %outputs "out")
11461 "/lib/gthumb/extensions")
11462 (string-append "-Dcpp_link_args=-Wl,-rpath="
11463 (assoc-ref %outputs "out")
11464 "/lib/gthumb/extensions"))))
11465 (native-inputs
11466 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11467 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11468 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11469 ("intltool" ,intltool)
11470 ("itstool" ,itstool)
11471 ("pkg-config" ,pkg-config)
11472 ("python" ,python)))
11473 (inputs
11474 `(("clutter" ,clutter)
11475 ("clutter-gst" ,clutter-gst)
11476 ("clutter-gtk" ,clutter-gtk)
11477 ("colord" ,colord)
11478 ("exiv2" ,exiv2)
11479 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11480 ("gstreamer" ,gstreamer)
11481 ("gtk" ,gtk+)
11482 ("libheif" ,libheif)
11483 ("libjpeg" ,libjpeg-turbo)
11484 ("libraw" ,libraw)
11485 ("librsvg" ,librsvg)
11486 ("libtiff" ,libtiff)
11487 ("libwebp" ,libwebp)))
11488 (home-page "https://wiki.gnome.org/Apps/Gthumb")
11489 (synopsis "GNOME image viewer and browser")
11490 (description "GThumb is an image viewer, browser, organizer, editor and
11491 advanced image management tool")
11492 (license license:gpl2+)))
11493
11494 (define-public terminator
11495 (package
11496 (name "terminator")
11497 (version "2.1.1")
11498 (source
11499 (origin
11500 (method url-fetch)
11501 (uri (string-append "https://github.com/gnome-terminator/terminator/"
11502 "releases/download/v" version "/"
11503 name "-" version ".tar.gz"))
11504 (sha256
11505 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
11506 (build-system python-build-system)
11507 (native-inputs
11508 `(("gettext" ,gettext-minimal)
11509 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11510 ("gobject-introspection" ,gobject-introspection)
11511 ("intltool" ,intltool)
11512 ("pkg-config" ,pkg-config)
11513 ("python-psutil" ,python-psutil)
11514 ("python-pytest-runner" ,python-pytest-runner)
11515 ("python-pytest" ,python-pytest)))
11516 (inputs
11517 `(("cairo" ,cairo)
11518 ("dbus-glib" ,dbus-glib)
11519 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11520 ("gtk+" ,gtk+)
11521 ("python" ,python-wrapper)
11522 ("python-dbus" ,python-dbus)
11523 ("python-notify2" ,python-notify2)
11524 ("python-pycairo" ,python-pycairo)
11525 ("python-pygobject" ,python-pygobject)
11526 ("vte" ,vte)))
11527 (propagated-inputs
11528 (list python-configobj))
11529 (arguments
11530 ;; One test out of 28 fails due to dbus-python and python-notify; skip
11531 ;; tests.
11532 `(#:tests? #f
11533 #:imported-modules ((guix build glib-or-gtk-build-system)
11534 ,@%python-build-system-modules)
11535 #:modules ((guix build python-build-system)
11536 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11537 (guix build utils))
11538 #:phases
11539 (modify-phases %standard-phases
11540 (add-after 'unpack 'handle-dbus-python
11541 (lambda _
11542 ;; python-dbus cannot be found but it's really there. See
11543 ;; https://github.com/SpotlightKid/jack-select/issues/2
11544 (substitute* "setup.py"
11545 (("'dbus-python',") ""))))
11546 (add-after 'install 'wrap-program
11547 (lambda* (#:key outputs #:allow-other-keys)
11548 (let ((prog (string-append (assoc-ref outputs "out")
11549 "/bin/terminator"))
11550 (pylib (string-append (assoc-ref outputs "out")
11551 "/lib/python"
11552 ,(version-major+minor
11553 (package-version python))
11554 "/site-packages")))
11555 (wrap-program prog
11556 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11557 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
11558 (add-after 'wrap-program 'glib-or-gtk-wrap
11559 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11560 (home-page "https://gnome-terminator.org/")
11561 (synopsis "Store and run multiple GNOME terminals in one window")
11562 (description
11563 "Terminator allows you to run multiple GNOME terminals in a grid and
11564 tabs, and it supports drag and drop re-ordering of terminals.")
11565 (license license:gpl2)))
11566
11567 (define-public libhandy
11568 (package
11569 (name "libhandy")
11570 (version "1.7.90")
11571 (source
11572 (origin
11573 (method git-fetch)
11574 (uri (git-reference
11575 (url "https://gitlab.gnome.org/GNOME/libhandy")
11576 (commit version)))
11577 (file-name (git-file-name name version))
11578 (sha256
11579 (base32 "1z8sbx7g19c1p8dy0sn0l25qfvrd2j28h269lsqm1y98r818h2k1"))))
11580 (build-system meson-build-system)
11581 (arguments
11582 `(#:configure-flags
11583 '("-Dglade_catalog=enabled"
11584 ;; XXX: Generating the documentation fails because the
11585 ;; libhandy.devhelp2 document cannot be created. This seems to be
11586 ;; caused by a problem during the XSL transformation.
11587 "-Dgtk_doc=false")
11588 #:phases
11589 (modify-phases %standard-phases
11590 (add-after 'unpack 'patch-docbook-xml
11591 (lambda* (#:key inputs #:allow-other-keys)
11592 (for-each
11593 (lambda (file)
11594 (substitute* file
11595 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
11596 (search-input-file inputs
11597 "/xml/dtd/docbook/docbookx.dtd"))))
11598 (find-files "doc" "\\.xml"))))
11599 (add-before 'check 'pre-check
11600 (lambda _
11601 ;; Tests require a running X server.
11602 (system "Xvfb :1 &")
11603 (setenv "DISPLAY" ":1"))))))
11604 (inputs
11605 (list gtk+ glade3))
11606 (native-inputs
11607 (list gobject-introspection ; for g-ir-scanner
11608 `(,glib "bin")
11609 vala
11610 libxml2
11611 libxslt
11612 docbook-xsl
11613 docbook-xml-4.3
11614 gtk-doc/stable
11615 pkg-config
11616 gettext-minimal
11617
11618 ;; Test suite dependencies.
11619 hicolor-icon-theme
11620 xorg-server-for-tests))
11621 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11622 (synopsis "Library full of GTK+ widgets for mobile phones")
11623 (description "The aim of the handy library is to help with developing user
11624 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11625 for usage on small and big screens.")
11626 (license license:lgpl2.1+)))
11627
11628 (define-public libhandy-0.0
11629 (package
11630 (inherit libhandy)
11631 (version "0.0.13")
11632 (source
11633 (origin
11634 (method git-fetch)
11635 (uri (git-reference
11636 (url "https://gitlab.gnome.org/GNOME/libhandy")
11637 (commit (string-append "v" version))))
11638 (file-name (git-file-name "libhandy" version))
11639 (sha256
11640 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11641 (arguments
11642 (substitute-keyword-arguments (package-arguments libhandy)
11643 ((#:configure-flags flags)
11644 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11645
11646 (define-public libgit2-glib
11647 (package
11648 (name "libgit2-glib")
11649 (version "1.0.0.1")
11650 (source (origin
11651 (method url-fetch)
11652 (uri (string-append "mirror://gnome/sources/" name "/"
11653 (version-major+minor version) "/"
11654 name "-" version ".tar.xz"))
11655 (sha256
11656 (base32
11657 "0mrb21cgqmbhbxqxwx76yry1ifqj1k4vy6455n6s034m6rlms2j6"))))
11658 (build-system meson-build-system)
11659 (native-inputs
11660 (list `(,glib "bin") ;; For glib-mkenums
11661 gobject-introspection
11662 pkg-config
11663 python-pygobject
11664 python-wrapper
11665 vala))
11666 (inputs
11667 (list glib libssh2))
11668 (propagated-inputs
11669 (list ;; In Requires of libgit2-glib.pc.
11670 libgit2))
11671 (synopsis "GLib wrapper around the libgit2 Git access library")
11672 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11673 access library. It only implements the core plumbing functions, not really the
11674 higher level porcelain stuff.")
11675 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11676 (license license:gpl2+)))
11677
11678 (define-public gitg
11679 (package
11680 (name "gitg")
11681 (version "41")
11682 (source (origin
11683 (method url-fetch)
11684 (uri (string-append "mirror://gnome/sources/" name "/"
11685 (version-major version) "/"
11686 name "-" version ".tar.xz"))
11687 (sha256
11688 (base32
11689 "0aa6djcf7rjw0q688mfy47k67bbjpnx6aw1xs94abfhgn6gipdkz"))))
11690 (build-system meson-build-system)
11691 (arguments
11692 (list
11693 #:glib-or-gtk? #t
11694 #:phases
11695 #~(modify-phases %standard-phases
11696 (add-after 'unpack 'disable-post-install-partially
11697 (lambda _
11698 (substitute* "meson_post_install.py"
11699 (("'python'") ; there are no python sources to compile
11700 (string-append "'" (which "true") "'"))
11701 (("gtk-update-icon-cache") (which "true")))))
11702 (add-after 'unpack 'fix-test-sources
11703 (lambda _
11704 (substitute* "tests/libgitg/test-commit.vala"
11705 (("/bin/bash") (which "bash")))))
11706 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11707 (lambda* (#:key outputs #:allow-other-keys)
11708 (let ((prog (string-append #$output "/bin/gitg")))
11709 (wrap-program prog
11710 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11711 (inputs
11712 (list glib
11713 gsettings-desktop-schemas
11714 gspell
11715 gtk+
11716 gtksourceview
11717 json-glib
11718 libdazzle
11719 libgee
11720 libgit2-glib
11721 libpeas
11722 libsecret
11723 libsoup-minimal-2
11724 libxml2))
11725 (native-inputs
11726 (list `(,glib "bin")
11727 `(,gtk+ "bin")
11728 gobject-introspection
11729 intltool
11730 pkg-config
11731 python
11732 vala))
11733 (synopsis "Graphical user interface for git")
11734 (description
11735 "gitg is a graphical user interface for git. It aims at being a small,
11736 fast and convenient tool to visualize the history of git repositories.
11737 Besides visualization, gitg also provides several utilities to manage your
11738 repository and commit your work.")
11739 (home-page "https://wiki.gnome.org/Apps/Gitg")
11740 (license license:gpl2+)))
11741
11742 (define-public gamin
11743 (package
11744 (name "gamin")
11745 (version "0.1.10")
11746 (source (origin
11747 (method url-fetch)
11748 (uri (string-append "mirror://gnome/sources/" name "/"
11749 (version-major+minor version) "/"
11750 name "-" version ".tar.bz2"))
11751 (sha256
11752 (base32
11753 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11754 (build-system gnu-build-system)
11755 (arguments
11756 `(#:phases
11757 (modify-phases %standard-phases
11758 ;; The 'config.sub' is too old to recognise aarch64.
11759 ,@(if (and=> (%current-target-system) target-aarch64?)
11760 `((add-after 'unpack 'replace-config.sub
11761 (lambda _
11762 (delete-file "config.sub")
11763 (symlink (which "config.sub") "config.sub"))))
11764 '())
11765 (add-after 'unpack 'remove-deprecated-macro
11766 (lambda _
11767 (substitute* '("server/gam_node.c"
11768 "server/gam_subscription.h"
11769 "server/gam_node.h"
11770 "server/gam_subscription.c")
11771 (("G_CONST_RETURN") "const"))
11772 #t))
11773 ;; The configure script runs a test program unconditionally,
11774 ;; without an option to manually set the test result.
11775 ;; Override this test anyway.
11776 ,@(if (%current-target-system)
11777 `((add-after 'bootstrap 'set-have-abstract-sockets
11778 (lambda _
11779 (define in-abstract-sockets-test? #f)
11780 (substitute* "configure"
11781 (("^#### Abstract sockets\n$")
11782 (set! in-abstract-sockets-test? #t)
11783 "#### Abstract sockets\n")
11784 (("^have_abstract_sockets=no\n$")
11785 (set! in-abstract-sockets-test? #f)
11786 ;; ‘Abstract sockets’ appear to be Linux-only.
11787 (string-append "have_abstract_sockets="
11788 ,(if (target-linux?)
11789 "yes"
11790 "no")
11791 "\nif false; then\nif false; then :\n"))
11792 (("^(.*\n)$" line)
11793 (if in-abstract-sockets-test?
11794 "" ; delete
11795 line))))))
11796 '()))))
11797 (inputs
11798 (list glib))
11799 (native-inputs
11800 `(("pkg-config" ,pkg-config)
11801 ,@(if (and=> (%current-target-system) target-aarch64?)
11802 `(("config" ,config))
11803 '())))
11804 (home-page "https://people.gnome.org/~veillard/gamin/")
11805 (synopsis "File alteration monitor")
11806 (description
11807 "Gamin is a file and directory monitoring system defined to be a subset
11808 of the FAM (File Alteration Monitor) system. This is a service provided by a
11809 library which detects when a file or a directory has been modified.")
11810 (license license:gpl2+)))
11811
11812 (define-public gnome-mahjongg
11813 (package
11814 (name "gnome-mahjongg")
11815 (version "3.38.3")
11816 (source (origin
11817 (method url-fetch)
11818 (uri (string-append "mirror://gnome/sources/" name "/"
11819 (version-major+minor version) "/" name "-"
11820 version ".tar.xz"))
11821 (sha256
11822 (base32
11823 "144ia3zn9rhwa1xbdkvsz6m0dsysl6mxvqw9bnrlh845hmyy9cfj"))))
11824 (build-system meson-build-system)
11825 (arguments
11826 `(#:meson ,meson-0.59
11827 #:glib-or-gtk? #t))
11828 (native-inputs
11829 `(("appstream-glib" ,appstream-glib)
11830 ("gettext" ,gettext-minimal)
11831 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11832 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11833 ("itstool" ,itstool)
11834 ("pkg-config" ,pkg-config)
11835 ("vala" ,vala)))
11836 (propagated-inputs
11837 (list dconf))
11838 (inputs
11839 (list glib gtk+))
11840 (synopsis "Mahjongg tile-matching game")
11841 (description "GNOME Mahjongg is a game based on the classic Chinese
11842 tile-matching game Mahjongg. It features multiple board layouts, tile themes,
11843 and a high score table.")
11844 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11845 (license license:gpl2+)))
11846
11847 (define-public gnome-themes-extra
11848 (package
11849 (name "gnome-themes-extra")
11850 (version "3.28")
11851 (source
11852 (origin
11853 (method url-fetch)
11854 (uri (string-append "mirror://gnome/sources/" name "/"
11855 (version-major+minor version) "/" name "-"
11856 version ".tar.xz"))
11857 (sha256
11858 (base32
11859 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11860 (build-system gnu-build-system)
11861 (arguments
11862 '(#:configure-flags
11863 ;; Don't create 'icon-theme.cache'.
11864 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11865 (true (string-append coreutils "/bin/true")))
11866 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11867 (native-inputs
11868 `(("glib:bin" ,glib "bin")
11869 ("intltool" ,intltool)
11870 ("pkg-config" ,pkg-config)))
11871 (inputs
11872 `(("glib" ,glib)
11873 ("gtk+" ,gtk+)
11874 ("gtk+-2" ,gtk+-2)
11875 ("librsvg" ,librsvg)
11876 ("libxml2" ,libxml2)))
11877 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11878 (synopsis "GNOME Extra Themes")
11879 (description "This package provides themes and related elements that don't
11880 really fit in other upstream packages. It offers legacy support for GTK+ 2
11881 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11882 index files needed for Adwaita to be used outside of GNOME.")
11883 (license license:lgpl2.1+)))
11884
11885 (define-public gnome-themes-standard
11886 (deprecated-package "gnome-themes-standard" gnome-themes-extra))
11887
11888 (define-public gnote
11889 (package
11890 (name "gnote")
11891 (version "41.2")
11892 (source
11893 (origin
11894 (method url-fetch)
11895 (uri (string-append "mirror://gnome/sources/" name "/"
11896 (version-major version) "/"
11897 "gnote-" version ".tar.xz"))
11898 (sha256
11899 (base32 "0gs2j988rwfrxckb8qxlkyxnvqsv30q32myqish6hssfa51yzc11"))))
11900 (build-system meson-build-system)
11901 (arguments
11902 `(#:glib-or-gtk? #t
11903 #:phases (modify-phases %standard-phases
11904 (add-after 'unpack 'skip-gtk-update-icon-cache
11905 ;; Don't create 'icon-theme.cache'.
11906 (lambda _
11907 (substitute* "post-install.py"
11908 (("gtk-update-icon-cache") "true")))))))
11909 (native-inputs
11910 (list desktop-file-utils
11911 `(,glib "bin")
11912 gobject-introspection
11913 intltool
11914 itstool
11915 pkg-config
11916 python))
11917 (inputs
11918 (list glibmm
11919 gsettings-desktop-schemas
11920 gspell
11921 gtk+
11922 gtkmm-3
11923 libsecret
11924 `(,util-linux "lib")
11925 libxml2
11926 libxslt))
11927 (synopsis "Note-taking application for the GNOME desktop")
11928 (description "Gnote is a note-taking application written for the GNOME
11929 desktop environment.")
11930 (home-page "https://wiki.gnome.org/Apps/Gnote")
11931 (license license:gpl3+)))
11932
11933 (define-public polari
11934 (package
11935 (name "polari")
11936 (version "41.0")
11937 (source (origin
11938 (method url-fetch)
11939 (uri (string-append "mirror://gnome/sources/polari/"
11940 (version-major version)
11941 "/polari-" version ".tar.xz"))
11942 (sha256
11943 (base32
11944 "1ss0x8idwar1q9p9535kzqb8idy7k2r48vrbjiyccw03cs0mzc53"))))
11945 (build-system meson-build-system)
11946 (arguments
11947 `(#:glib-or-gtk? #t
11948 #:phases
11949 (modify-phases %standard-phases
11950 (add-after 'unpack 'skip-gtk-update-icon-cache
11951 (lambda _
11952 (substitute* "meson/meson-postinstall.sh"
11953 (("gtk-update-icon-cache") (which "true")))))
11954 (add-after 'install 'fix-desktop-file
11955 ;; Hardcode launcher to be on the safe side
11956 (lambda* (#:key outputs #:allow-other-keys)
11957 (let ((out (assoc-ref outputs "out")))
11958 (substitute* (string-append out "/share/applications/"
11959 "org.gnome.Polari.desktop")
11960 (("Exec=.*") (string-append "Exec=" out "/bin/polari\n"))))))
11961 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11962 (lambda* (#:key outputs #:allow-other-keys)
11963 (let ((prog (string-append (assoc-ref outputs "out")
11964 "/bin/polari")))
11965 (wrap-program prog
11966 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11967 (inputs
11968 (list glib
11969 gsettings-desktop-schemas
11970 gspell
11971 gtk
11972 gjs
11973 libsecret
11974 libsoup-minimal-2
11975 telepathy-glib
11976 telepathy-logger))
11977 (native-inputs
11978 (list `(,glib "bin")
11979 gobject-introspection
11980 intltool
11981 pkg-config
11982 yelp-tools))
11983 (propagated-inputs
11984 (list telepathy-idle telepathy-mission-control))
11985 (synopsis "Simple IRC Client")
11986 (description
11987 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11988 integrate seamlessly with the GNOME desktop.")
11989 (home-page "https://wiki.gnome.org/Apps/Polari")
11990 (license license:gpl2+)))
11991
11992 (define-public gnome-boxes
11993 (package
11994 (name "gnome-boxes")
11995 (version "42.3")
11996 (source
11997 (origin
11998 (method url-fetch)
11999 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
12000 (version-major version) "/"
12001 "gnome-boxes-" version ".tar.xz"))
12002 (sha256
12003 (base32 "1lv0bdh935qj6wkv3ixg2pcv8yrapj79z02gw4fal3rhz3xggvsn"))))
12004 (build-system meson-build-system)
12005 (arguments
12006 (list #:glib-or-gtk? #t
12007 #:configure-flags #~(list "-Drdp=false"
12008 (string-append "-Dc_link_args=-Wl,-rpath="
12009 #$output
12010 "/lib/gnome-boxes"))
12011 #:phases #~(modify-phases %standard-phases
12012 (add-after 'unpack 'disable-gtk-update-icon-cache
12013 (lambda _
12014 (setenv "DESTDIR" "/"))))))
12015 (native-inputs
12016 (list desktop-file-utils ;for update-desktop-database
12017 gettext-minimal
12018 `(,glib "bin") ;for glib-compile-resources
12019 itstool
12020 pkg-config
12021 python
12022 vala))
12023 (inputs
12024 (list glib-networking ;for TLS support
12025 gsettings-desktop-schemas
12026 gtk+
12027 gtk-vnc
12028 gtksourceview
12029 json-glib
12030 libarchive
12031 libgudev
12032 libhandy
12033 libosinfo
12034 libsecret
12035 libsoup-minimal-2
12036 libusb
12037 libvirt
12038 libvirt-glib
12039 libxml2
12040 sparql-query
12041 spice-gtk
12042 tracker
12043 vte
12044 webkitgtk-with-libsoup2)) ;for webkit2gtk-4.0
12045 (home-page "https://wiki.gnome.org/Apps/Boxes")
12046 (synopsis "View, access, and manage remote and virtual systems")
12047 (description "GNOME Boxes is a simple application to view, access, and
12048 manage remote and virtual systems. Note that this application requires the
12049 @code{libvirt} and @code{virtlog} daemons to run. Use the command
12050 @command{info '(guix) Virtualization Services'} to learn how to configure
12051 these services on the Guix System.")
12052 (license (list
12053 ;; For data/icons/empty-boxes.png.
12054 license:cc-by2.0
12055 ;; For all others.
12056 license:lgpl2.0+))))
12057
12058 (define-public geary
12059 (package
12060 (name "geary")
12061 (version "40.0")
12062 (source (origin
12063 (method git-fetch)
12064 (uri (git-reference
12065 (url "https://gitlab.gnome.org/GNOME/geary.git")
12066 (commit (string-append "gnome-" version))))
12067 (file-name (git-file-name name version))
12068 (sha256
12069 (base32
12070 "04hvw86r8sczvjm1z3ls5y5y5h6nyfb648rjkfx05ib00mqq5v1x"))))
12071 (build-system meson-build-system)
12072 (arguments
12073 `(#:glib-or-gtk? #t
12074 #:configure-flags
12075 '("-Dprofile=release")
12076 #:phases (modify-phases %standard-phases
12077 (add-after 'unpack 'disable-failing-tests
12078 (lambda _
12079 (substitute* "test/test-client.vala"
12080 (("client.add_suite\\(new Application.CertificateManagerTest\\(\\).suite\\);")
12081 ""))))
12082 (add-after 'unpack 'generate-vapis
12083 (lambda* (#:key inputs #:allow-other-keys)
12084 ;; It’s not possible to generate the GMime vapi, because
12085 ;; there’s custom metadata that gmime didn’t
12086 ;; install. Thus, the vapi should be built and installed
12087 ;; with gmime.
12088 (define gmime
12089 (assoc-ref inputs "gmime"))
12090 (copy-file (string-append gmime "/share/vala/vapi/gmime-3.0.vapi")
12091 "bindings/vapi/gmime-3.0.vapi")))
12092 (add-after 'unpack 'disable-postinstall-script
12093 (lambda _
12094 (substitute* "build-aux/post_install.py"
12095 (("gtk-update-icon-cache")
12096 "true"))))
12097 (add-before 'check 'setup-home
12098 (lambda _
12099 ;; Tests require a writable HOME.
12100 (setenv "HOME" (getcwd))))
12101 (add-before 'check 'setup-xvfb
12102 (lambda _
12103 (system "Xvfb :1 &")
12104 (setenv "DISPLAY" ":1"))))))
12105 (inputs
12106 (list enchant
12107 folks
12108 gcr
12109 glib
12110 gmime
12111 gnome-online-accounts
12112 gsettings-desktop-schemas
12113 gspell
12114 gsound
12115 gtk+
12116 iso-codes
12117 json-glib
12118 libcanberra
12119 libgee
12120 libhandy
12121 libpeas
12122 libsecret
12123 libstemmer
12124 libunwind
12125 sqlite
12126 webkitgtk-with-libsoup2
12127 ytnef))
12128 (native-inputs
12129 (list appstream-glib
12130 cmake-minimal
12131 desktop-file-utils
12132 gettext-minimal
12133 glib
12134 `(,glib "bin")
12135 gmime
12136 gobject-introspection
12137 gsettings-desktop-schemas
12138 itstool
12139 libarchive
12140 libxml2
12141 pkg-config
12142 python-minimal
12143 vala
12144 xorg-server-for-tests))
12145 (synopsis "GNOME email application built around conversations")
12146 (description
12147 "Geary collects related messages together into conversations,
12148 making it easy to find and follow your discussions. Full-text and keyword
12149 search makes it easy to find the email you are looking for. Geary's
12150 full-featured composer lets you send rich, styled text with images, links, and
12151 lists, but also send lightweight, easy to read text messages. Geary
12152 automatically picks up your existing GNOME Online Accounts, and adding more is
12153 easy. Geary has a clean, fast, modern interface that works like you want it
12154 to.")
12155 (home-page "https://wiki.gnome.org/Apps/Geary")
12156 (license (list
12157 ;; geary
12158 license:lgpl2.1+
12159 ;; icons
12160 license:cc-by3.0
12161 license:cc-by-sa3.0
12162 license:public-domain
12163 ;; snowball
12164 license:bsd-2))))
12165
12166 (define-public glabels
12167 (package
12168 (name "glabels")
12169 (version "3.4.1")
12170 (source
12171 (origin
12172 (method url-fetch)
12173 (uri (string-append "mirror://gnome/sources/" name "/"
12174 (version-major+minor version) "/"
12175 "glabels-" version ".tar.xz"))
12176 (sha256
12177 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
12178 (build-system glib-or-gtk-build-system)
12179 (native-inputs
12180 `(("gettext" ,gettext-minimal)
12181 ("glib:bin" ,glib "bin")
12182 ("intltool" ,intltool)
12183 ("itstool" ,itstool)
12184 ("pkg-config" ,pkg-config)))
12185 (inputs
12186 (list gtk+ librsvg libxml2))
12187 (arguments
12188 `(#:configure-flags '("CFLAGS=-fcommon")))
12189 (home-page "https://glabels.org/")
12190 (synopsis "Program for creating labels and business cards")
12191 (description
12192 "gLabels is a program for creating labels and business cards. It is
12193 designed to work with various laser/ink-jet peel-off label and business
12194 card sheets that you’ll find at most office supply stores.")
12195 (license license:gpl3+)))
12196
12197 (define-public gnome-latex
12198 (package
12199 (name "gnome-latex")
12200 (version "3.41.2")
12201 (source
12202 (origin
12203 (method url-fetch)
12204 (uri (string-append "mirror://gnome/sources/" name "/"
12205 (version-major+minor version) "/"
12206 "gnome-latex-" version ".tar.xz"))
12207 (sha256
12208 (base32 "0cynhmrn99f4f3kddczsc58ak4b9sv2zkfbcyz7z16848nhz047k"))))
12209 (build-system glib-or-gtk-build-system)
12210 (native-inputs
12211 (list gettext-minimal
12212 `(,glib "bin")
12213 gobject-introspection
12214 gtk-doc/stable
12215 itstool
12216 pkg-config
12217 vala))
12218 (inputs
12219 (list dconf
12220 glib
12221 gspell
12222 libgee
12223 tepl
12224 uchardet))
12225 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
12226 (synopsis "LaTeX editor for the GNOME desktop")
12227 (description
12228 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
12229 such as build tools, completion of LaTeX commands, structure navigation,
12230 symbol tables, document templates, project management, spell-checking, menus
12231 and toolbars.")
12232 (license license:gpl3+)))
12233
12234 (define-public setzer
12235 (package
12236 (name "setzer")
12237 (version "0.4.1")
12238 (source
12239 (origin
12240 (method git-fetch)
12241 (uri (git-reference
12242 (url "https://github.com/cvfosammmm/Setzer")
12243 (commit (string-append "v" version))))
12244 (file-name (git-file-name name version))
12245 (sha256
12246 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
12247 (build-system meson-build-system)
12248 (arguments
12249 `(#:glib-or-gtk? #t
12250 #:phases
12251 (modify-phases %standard-phases
12252 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12253 (lambda* (#:key outputs #:allow-other-keys)
12254 (let ((prog (string-append (assoc-ref outputs "out")
12255 "/bin/setzer"))
12256 (pylib (string-append (assoc-ref outputs "out")
12257 "/lib/python"
12258 ,(version-major+minor
12259 (package-version python))
12260 "/site-packages")))
12261 (wrap-program prog
12262 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12263 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12264 #t))))))
12265 (native-inputs
12266 `(("desktop-file-utils" ,desktop-file-utils)
12267 ("gettext" ,gettext-minimal)
12268 ("glib:bin" ,glib "bin")
12269 ("gobject-introspection" ,gobject-introspection)
12270 ("gtk+:bin" ,gtk+ "bin")
12271 ("python-wrapper" ,python-wrapper)))
12272 (inputs
12273 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12274 ("gspell" ,gspell)
12275 ("gtk+" ,gtk+)
12276 ("gtksourceview" ,gtksourceview)
12277 ("pango" ,pango)
12278 ("poppler" ,poppler)
12279 ("python-pdfminer" ,python-pdfminer-six)
12280 ("python-pycairo" ,python-pycairo)
12281 ("python-pygobject" ,python-pygobject)
12282 ("python-pyxdg" ,python-pyxdg)
12283 ("webkitgtk" ,webkitgtk)
12284 ("xdg-utils" ,xdg-utils)))
12285 (home-page "https://www.cvfosammmm.org/setzer/")
12286 (synopsis "LaTeX editor written in Python with GTK+")
12287 (description
12288 "Setzer is a simple yet full-featured LaTeX editor written in Python with
12289 GTK+. It integrates well with the GNOME desktop environment.")
12290 (license license:gpl3+)))
12291
12292 (define-public apostrophe
12293 (package
12294 (name "apostrophe")
12295 (version "2.5")
12296 (source (origin
12297 (method git-fetch)
12298 (uri (git-reference
12299 (url "https://gitlab.gnome.org/somas/apostrophe")
12300 (commit (string-append "v" version))))
12301 (file-name (git-file-name name version))
12302 (sha256
12303 (base32
12304 "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp"))))
12305 (build-system meson-build-system)
12306 (arguments
12307 `(#:glib-or-gtk? #t
12308 #:meson ,meson-0.59 ;fails with 0.60
12309 #:phases
12310 (modify-phases %standard-phases
12311 (add-after 'unpack 'patch-meson
12312 (lambda _
12313 (substitute* "build-aux/meson_post_install.py"
12314 (("gtk-update-icon-cache") "true"))))
12315 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12316 (lambda* (#:key inputs outputs #:allow-other-keys)
12317 (let ((prog (string-append (assoc-ref outputs "out")
12318 "/bin/apostrophe"))
12319 (pylib (string-append (assoc-ref outputs "out")
12320 "/lib/python"
12321 ,(version-major+minor
12322 (package-version
12323 (this-package-input "python")))
12324 "/site-packages")))
12325 (wrap-program prog
12326 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12327 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
12328 `("PATH" prefix (,(dirname
12329 (search-input-file inputs
12330 "/bin/pandoc")))))))))))
12331 (inputs
12332 (list glib
12333 gobject-introspection
12334 gspell
12335 gtk+
12336 libhandy
12337 pandoc
12338 python
12339 python-chardet
12340 python-levenshtein
12341 python-regex
12342 python-pycairo
12343 python-pygobject
12344 python-pyenchant
12345 python-pypandoc
12346 webkitgtk-with-libsoup2))
12347 (native-inputs
12348 (list gettext-minimal
12349 `(,glib "bin")
12350 pkg-config
12351 sassc))
12352 (home-page "https://gitlab.gnome.org/somas/apostrophe")
12353 (synopsis "Markdown editor written in Python with GTK+")
12354 (description "Apostrophe is a GTK+ based distraction-free Markdown editor.
12355 It uses pandoc as back-end for parsing Markdown.")
12356 (license license:gpl3)))
12357
12358 (define-public libratbag
12359 (package
12360 (name "libratbag")
12361 (version "0.16")
12362 (source
12363 (origin
12364 (method git-fetch)
12365 (uri (git-reference
12366 (url "https://github.com/libratbag/libratbag")
12367 (commit (string-append "v" version))))
12368 (file-name (git-file-name name version))
12369 (sha256
12370 (base32 "0jjf6xc3a37icp5dvbxla3ai9is2ns31m0llbfq1bmb6dk8cd4n0"))))
12371 (build-system meson-build-system)
12372 (arguments
12373 `(#:configure-flags
12374 (list "-Dsystemd=false"
12375 "-Dlogind-provider=elogind"
12376 ,@(if (not (package? (this-package-native-input "valgrind")))
12377 `("-Dtests=false") ; Some tests still run.
12378 `()))
12379 #:phases
12380 (modify-phases %standard-phases
12381 (add-after 'install 'wrap
12382 (lambda* (#:key inputs outputs #:allow-other-keys)
12383 (let* ((out (assoc-ref outputs "out"))
12384 (site (string-append
12385 "/lib/python"
12386 ,(version-major+minor (package-version python))
12387 "/site-packages"))
12388 (evdev (string-append
12389 (assoc-ref inputs "python-evdev") site))
12390 (pygo (string-append
12391 (assoc-ref inputs "python-pygobject") site))
12392 (python-wrap
12393 `("GUIX_PYTHONPATH" = (,evdev ,pygo))))
12394 (wrap-program (string-append out "/bin/" "ratbagctl")
12395 python-wrap)
12396 #t))))))
12397 (native-inputs
12398 (append
12399 (list check pkg-config swig)
12400 (if (member (%current-system) (package-supported-systems valgrind))
12401 (list valgrind)
12402 '())))
12403 (inputs
12404 `(("glib" ,glib)
12405 ("json-glib" ,json-glib)
12406 ("libevdev" ,libevdev)
12407 ("libsystemd" ,elogind)
12408 ("libunistring" ,libunistring)
12409 ("python" ,python)
12410 ("python-evdev" ,python-evdev)
12411 ("python-pygobject" ,python-pygobject)
12412 ("udev" ,eudev)))
12413 (home-page "https://github.com/libratbag/libratbag")
12414 (synopsis "DBus daemon and utility for configuring gaming mice")
12415 (description "libratbag provides @command{ratbagd}, a DBus daemon to
12416 configure input devices, mainly gaming mice. The daemon provides a generic
12417 way to access the various features exposed by these mice and abstracts away
12418 hardware-specific and kernel-specific quirks. There is also the
12419 @command{ratbagctl} command line interface for configuring devices.
12420
12421 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
12422 Steelseries.
12423
12424 The ratbagd DBus service can be enabled by adding the following service to
12425 your operating-system definition:
12426
12427 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12428 (license license:expat)))
12429
12430 (define-public piper
12431 (package
12432 (name "piper")
12433 (version "0.7")
12434 (source
12435 (origin
12436 (method git-fetch)
12437 (uri (git-reference
12438 (url "https://github.com/libratbag/piper")
12439 (commit version)))
12440 (sha256
12441 (base32 "0jsvfy0ihdcgnqljfgs41lys1nlz18qvsa0a8ndx3pyr41f8w8wf"))
12442 (file-name (git-file-name name version))))
12443 (build-system meson-build-system)
12444 (native-inputs
12445 (list appstream
12446 gettext-minimal
12447 `(,glib "bin")
12448 gobject-introspection
12449 pkg-config
12450 python-flake8))
12451 (inputs
12452 (list adwaita-icon-theme
12453 gtk+
12454 `(,gtk+ "bin")
12455 libratbag
12456 python
12457 python-evdev
12458 python-lxml
12459 python-pycairo
12460 python-pygobject))
12461 (arguments
12462 (list #:glib-or-gtk? #t
12463 #:phases
12464 #~(modify-phases %standard-phases
12465 (add-after 'unpack 'dont-update-gtk-icon-cache
12466 (lambda _
12467 (substitute* "meson.build"
12468 (("meson.add_install_script('meson_install.sh')") ""))))
12469 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12470 (lambda _
12471 (let ((pylib (string-append #$output
12472 "/lib/python"
12473 #$(version-major+minor
12474 (package-version python))
12475 "/site-packages")))
12476 (wrap-program
12477 (string-append #$output "/bin/piper")
12478 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12479 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
12480 (add-before 'check 'flake8-config
12481 (lambda _
12482 ;; Make sure the tests use the local flake8 config
12483 (symlink (string-append #$source "/.flake8") ".flake8"))))))
12484 (home-page "https://github.com/libratbag/piper/")
12485 (synopsis "Configure bindings and LEDs on gaming mice")
12486 (description "Piper is a GTK+ application for configuring gaming mice with
12487 onboard configuration for key bindings via libratbag. Piper requires
12488 a @command{ratbagd} daemon running with root privileges. It can be run
12489 manually as root, but is preferably configured as a DBus service that can
12490 launch on demand. This can be configured by enabling the following service,
12491 provided there is a DBus service present:
12492
12493 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12494 (license license:gpl2)))
12495
12496 (define-public parlatype
12497 (package
12498 (name "parlatype")
12499 (version "3.1")
12500 (source
12501 (origin
12502 (method git-fetch)
12503 (uri (git-reference
12504 (url "https://github.com/gkarsay/parlatype")
12505 (commit (string-append "v" version))))
12506 (file-name (git-file-name name version))
12507 (sha256
12508 (base32 "0cqrzbkyksfsm57riirmjkwf2nf2dgl1xpps1wvqxpij475qcb9b"))))
12509 (build-system meson-build-system)
12510 (arguments
12511 `(#:glib-or-gtk? #t
12512 #:tests? #f ;require internet access
12513 #:phases
12514 (modify-phases %standard-phases
12515 (add-after 'unpack 'skip-gtk-update-icon-cache
12516 (lambda _
12517 (substitute* "data/meson_post_install.py"
12518 (("gtk-update-icon-cache") "true"))))
12519 (add-after 'install 'wrap-parlatype
12520 ;; Add gstreamer plugin provided in this package to system's
12521 ;; plugins.
12522 (lambda* (#:key outputs #:allow-other-keys)
12523 (let* ((out (assoc-ref outputs "out"))
12524 (gst-plugin-path (string-append
12525 out "/lib/gstreamer-1.0/"
12526 ":"
12527 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
12528 (wrap-program (string-append out "/bin/parlatype")
12529 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path)))))))))
12530 (native-inputs
12531 (list appstream-glib
12532 desktop-file-utils ;for desktop-file-validate
12533 gettext-minimal
12534 `(,glib "bin") ;for glib-compile-resources
12535 pkg-config
12536 yelp-tools))
12537 (inputs
12538 (list gst-plugins-base
12539 gst-plugins-good
12540 gstreamer
12541 gtk+
12542 iso-codes
12543 pocketsphinx
12544 pulseaudio
12545 sphinxbase))
12546 (home-page "https://www.parlatype.org")
12547 (synopsis "GNOME audio player for transcription")
12548 (description "Parlatype is an audio player for the GNOME desktop
12549 environment. Its main purpose is the manual transcription of spoken
12550 audio files.")
12551 (license license:gpl3+)))
12552
12553 (define-public jsonrpc-glib
12554 (package
12555 (name "jsonrpc-glib")
12556 (version "3.34.0")
12557 (source (origin
12558 (method url-fetch)
12559 (uri (string-append "mirror://gnome/sources/" name "/"
12560 (version-major+minor version) "/"
12561 name "-" version ".tar.xz"))
12562 (sha256
12563 (base32
12564 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
12565 (build-system meson-build-system)
12566 (inputs
12567 (list json-glib glib))
12568 (native-inputs
12569 (list pkg-config
12570 `(,glib "bin") ; for glib-genmarshal, etc.
12571 gobject-introspection vala))
12572 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
12573 (synopsis "JSON-RPC library for GLib")
12574 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
12575 peers in either a synchronous or asynchronous fashion. It also allows
12576 communicating using the GVariant serialization format instead of JSON when
12577 both peers support it. You might want that when communicating on a single
12578 host to avoid parser overhead and memory-allocator fragmentation.")
12579 (license license:lgpl2.1+)))
12580
12581 (define-public feedbackd
12582 (package
12583 (name "feedbackd")
12584 (version "0.0.0+git20200527")
12585 (source (origin
12586 (method git-fetch)
12587 (uri (git-reference
12588 (url "https://source.puri.sm/Librem5/feedbackd.git")
12589 (commit (string-append "v" version))))
12590 (file-name (git-file-name name version))
12591 (sha256
12592 (base32
12593 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
12594 (build-system meson-build-system)
12595 (native-inputs
12596 (list `(,glib "bin") gobject-introspection pkg-config vala))
12597 (inputs
12598 (list dbus gsound json-glib libgudev))
12599 (propagated-inputs
12600 (list glib)) ; in Requires of libfeedback-0.0.pc
12601 (synopsis "Haptic/visual/audio feedback via DBus")
12602 (description "Feedbackd provides a DBus daemon to act on events to provide
12603 haptic, visual and audio feedback. It offers the libfeedbackd library and
12604 GObject introspection bindings.")
12605 (home-page "https://source.puri.sm/Librem5/feedbackd")
12606 (license (list license:lgpl2.1+ ; libfeedbackd
12607 license:lgpl3+)))) ; the rest
12608
12609 (define-public sysprof
12610 (package
12611 (name "sysprof")
12612 (version "3.44.0")
12613 (source
12614 (origin
12615 (method url-fetch)
12616 (uri (string-append "mirror://gnome/sources/sysprof/"
12617 (version-major+minor version) "/"
12618 "sysprof-" version ".tar.xz"))
12619 (sha256
12620 (base32 "0nq0icbln0ryqzlybr7wyl19mhr3vkqzs6wasn430fwpf5drypdb"))))
12621 (build-system meson-build-system)
12622 (arguments
12623 (list
12624 #:configure-flags
12625 #~(list (string-append "-Dsystemdunitdir=" #$output "/share/systemd"))
12626 #:phases
12627 #~(modify-phases %standard-phases
12628 (add-after 'unpack 'patch-install-script
12629 (lambda _
12630 (substitute* "build-aux/meson/post_install.sh"
12631 (("gtk-update-icon-cache") "true")
12632 (("update-desktop-database") "true")))))))
12633 (propagated-inputs
12634 (list polkit))
12635 (inputs
12636 (list glib
12637 gtk+
12638 json-glib
12639 libdazzle
12640 libunwind
12641 polkit))
12642 (native-inputs
12643 (list gettext-minimal
12644 `(,glib "bin") ;for gdbus-codegen, etc.
12645 itstool
12646 pkg-config
12647 libxml2))
12648 ;; This home page is so woefully out of date as to be essentially useless.
12649 ;; (home-page "http://www.sysprof.com")
12650 (home-page "https://wiki.gnome.org/Apps/Sysprof")
12651 (synopsis "System-wide performance profiler for GNU/Linux")
12652 (description
12653 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
12654 GNU/Linux system including the kernel and all user-space applications. This
12655 helps find the function(s) in which a program spends most of its time.
12656
12657 It uses the kernel's built-in @code{ptrace} feature and handles shared
12658 libraries. Applications do not need to be recompiled--or even restarted.")
12659 (license license:gpl3+)))
12660
12661 (define-public gnome-builder
12662 (package
12663 (name "gnome-builder")
12664 (version "41.2")
12665 (source (origin
12666 (method url-fetch)
12667 (uri (string-append "mirror://gnome/sources/" name "/"
12668 (version-major version) "/"
12669 name "-" version ".tar.xz"))
12670 (sha256
12671 (base32
12672 "04p031i999dccbnlbysmr6f93x7dji7b559j6yhdsqbqgxb7ncan"))
12673 (patches
12674 (search-patches "gnome-builder-update-libportal.patch"))))
12675 (build-system meson-build-system)
12676 (arguments
12677 (list
12678 #:glib-or-gtk? #t ;To wrap binaries and compile schemas
12679 #:configure-flags
12680 #~(list "-Dnetwork_tests=false"
12681 ;; TODO: Enable all plugins...
12682 ;; Flatpak plugin wants libsoup 2
12683 "-Dplugin_flatpak=false"
12684 ;; ... except this one.
12685 "-Dplugin_update_manager=false")
12686 #:phases
12687 #~(modify-phases %standard-phases
12688 (add-after 'unpack 'patch-meson
12689 (lambda* (#:key inputs #:allow-other-keys)
12690 (substitute* "build-aux/meson/post_install.py"
12691 (("gtk-update-icon-cache") "true")
12692 (("update-desktop-database") "true"))
12693 (substitute* "src/libide/meson.build"
12694 (("/usr/lib") (string-append (assoc-ref inputs
12695 "python-pygobject")
12696 "/lib")))))
12697 (add-after 'configure 'fix-ninja
12698 (lambda _
12699 ;; #43296: meson(?) incorrectly assumes we want to link
12700 ;; this PIE against a static libselinux.
12701 (substitute* "build.ninja"
12702 (("libselinux\\.a") "libselinux.so"))))
12703 (add-before 'check 'pre-check
12704 (lambda _
12705 (system "Xvfb :1 &")
12706 (setenv "DISPLAY" ":1"))))))
12707 (inputs (list cmark
12708 clang
12709 devhelp-with-libsoup2
12710 glade3
12711 gspell
12712 gtk+
12713 json-glib
12714 jsonrpc-glib
12715 libdazzle
12716 libgit2-glib
12717 libpeas
12718 libportal
12719 libsoup-minimal-2
12720 llvm
12721 python
12722 python-pygobject
12723 sysprof
12724 template-glib
12725 vte
12726 webkitgtk-with-libsoup2))
12727 (propagated-inputs (list gtksourceview)) ; needed for settings
12728 (native-inputs (list desktop-file-utils ; for desktop-file-validate
12729 `(,glib "bin")
12730 gettext-minimal
12731 pkg-config
12732 python ; for meson scripts
12733 vala
12734 xorg-server-for-tests))
12735 (home-page "https://wiki.gnome.org/Apps/Builder")
12736 (synopsis "Toolsmith for GNOME-based applications")
12737 (description
12738 "Builder aims to be an integrated development environment (IDE) for
12739 writing GNOME-based software. It features fuzzy search, auto-completion,
12740 a mini code map, documentation browsing, Git integration, an integrated
12741 profiler via Sysprof, debugging support, and more.")
12742 (license license:gpl3+)))
12743
12744 (define-public komikku
12745 (package
12746 (name "komikku")
12747 (version "0.41.0")
12748 (source
12749 (origin
12750 (method git-fetch)
12751 (uri (git-reference
12752 (url "https://gitlab.com/valos/Komikku/")
12753 (commit (string-append "v" version))))
12754 (file-name (git-file-name name version))
12755 (sha256
12756 (base32
12757 "17r059srxrx26w40swy47pdpyigyjdczp8550g4rfh86qs3ld4il"))))
12758 (build-system meson-build-system)
12759 (arguments
12760 `(#:glib-or-gtk? #t
12761 #:phases
12762 (modify-phases %standard-phases
12763 (add-after 'unpack 'patch-sources
12764 (lambda _
12765 (substitute* "komikku/utils.py"
12766 (("from komikku\\.servers import get_servers_list")
12767 ;; code following that line should migrate old databases
12768 ;; but the line itself results in an import error
12769 "return data_dir_path"))))
12770 (add-after 'unpack 'skip-gtk-update-icon-cache
12771 (lambda _
12772 (substitute* "meson_post_install.py"
12773 (("gtk-update-icon-cache") (which "true")))))
12774 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12775 (lambda* (#:key outputs #:allow-other-keys)
12776 (wrap-program (search-input-file outputs "bin/komikku")
12777 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
12778 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
12779 (inputs
12780 (list bash-minimal
12781 gtk+
12782 libhandy
12783 libnotify
12784 libsecret
12785 python
12786 python-beautifulsoup4
12787 python-brotli
12788 python-cloudscraper
12789 python-dateparser
12790 python-keyring
12791 python-lxml
12792 python-magic
12793 python-natsort
12794 python-pillow
12795 python-pure-protobuf
12796 python-pycairo
12797 python-pygobject
12798 python-requests
12799 python-unidecode
12800 webkitgtk-with-libsoup2))
12801 (native-inputs
12802 (list desktop-file-utils
12803 gettext-minimal
12804 `(,glib "bin")
12805 gobject-introspection
12806 pkg-config))
12807 (home-page "https://gitlab.com/valos/Komikku")
12808 (synopsis "Manga reader for GNOME")
12809 (description "Komikku is an online/offline manga reader for GNOME,
12810 developed with the aim of being used with the Librem 5 phone.")
12811 (license license:gpl3+)))
12812
12813 (define-public libgda
12814 (package
12815 (name "libgda")
12816 (version "6.0.0")
12817 (source
12818 (origin
12819 (method url-fetch)
12820 (uri (string-append "mirror://gnome/sources/" name "/"
12821 (version-major+minor version) "/"
12822 name "-" version ".tar.xz"))
12823 (sha256
12824 (base32 "0w564z7krgjk19r39mi5qn4kggpdg9ggbyn9pb4aavb61r14npwr"))
12825 (patches (search-patches "libgda-cve-2021-39359.patch"
12826 "libgda-fix-build.patch"
12827 "libgda-fix-missing-initialization.patch"
12828 "libgda-skip-postgresql-tests.patch"))))
12829 (build-system meson-build-system)
12830 (native-inputs
12831 (list intltool
12832 iso-codes
12833 `(,glib "bin")
12834 gnome-common
12835 gettext-minimal
12836 gobject-introspection
12837 gtk-doc/stable
12838 pkg-config
12839 python
12840 vala
12841 yelp-tools))
12842 (inputs
12843 (list json-glib
12844 glib
12845 glade3
12846 gtk+
12847 libsecret
12848 libxslt
12849 openssl
12850 sqlite
12851 vala))
12852 (propagated-inputs
12853 (list libxml2)) ; required by libgda-5.0.pc
12854 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12855 (synopsis "Uniform data access")
12856 (description
12857 "GNU Data Access (GDA) is an attempt to provide uniform access to
12858 different kinds of data sources (databases, information servers, mail spools,
12859 etc). It is a complete architecture that provides all you need to access
12860 your data.")
12861 (license license:lgpl2.1+)))
12862
12863 (define-public gtranslator
12864 (package
12865 (name "gtranslator")
12866 (version "42.0")
12867 (source (origin
12868 (method url-fetch)
12869 (uri (string-append "mirror://gnome/sources/" name "/"
12870 (version-major version) "/"
12871 name "-" version ".tar.xz"))
12872 (sha256
12873 (base32
12874 "0fzi48s3wz9mf6c1ndpkby83bgshgn2116nqjq31n1j3wszvqrra"))))
12875 (build-system meson-build-system)
12876 (arguments
12877 (list #:build-type "release" ;otherwise it tries to fetch stuff via git
12878 #:glib-or-gtk? #t
12879 #:phases
12880 #~(modify-phases %standard-phases
12881 (add-after 'unpack 'skip-gtk-update-icon-cache
12882 (lambda _
12883 (substitute* "build-aux/meson/meson_post_install.py"
12884 (("gtk-update-icon-cache") (which "true"))))))))
12885 (native-inputs
12886 (list `(,glib-next "bin")
12887 gettext-minimal
12888 itstool
12889 pkg-config))
12890 (inputs
12891 (list json-glib
12892 jsonrpc-glib
12893 gettext-minimal
12894 glib-next
12895 gsettings-desktop-schemas
12896 gspell
12897 libgda
12898 libhandy
12899 libsoup
12900 pango-next))
12901 (propagated-inputs
12902 (list gtksourceview-4)) ; required for source view
12903 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12904 (synopsis "Translation making program")
12905 (description
12906 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12907 for the GNOME 3.x platform with many features. It aims to be a very complete
12908 editing environment for translation issues within the GNU gettext/GNOME desktop
12909 world.")
12910 (license license:gpl3+)))
12911
12912
12913 (define-public ocrfeeder
12914 (package
12915 (name "ocrfeeder")
12916 (version "0.8.5")
12917 (source (origin
12918 (method url-fetch)
12919 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12920 (version-major+minor version) "/"
12921 "ocrfeeder-" version ".tar.xz"))
12922 (sha256
12923 (base32
12924 "1vaaphzk6zn7pp2x9scphdzlbsma910wnbhd9xry50nx95cjlgdh"))))
12925 (build-system gnu-build-system)
12926 (arguments
12927 `(#:phases
12928 (modify-phases %standard-phases
12929 (add-after
12930 'install 'wrap-program
12931 (lambda* (#:key outputs #:allow-other-keys)
12932 (let ((prog (string-append (assoc-ref outputs "out")
12933 "/bin/" "ocrfeeder"))
12934 (pylib (string-append (assoc-ref outputs "out")
12935 "/lib/python"
12936 ,(version-major+minor
12937 (package-version python))
12938 "/site-packages")))
12939 (wrap-program prog
12940 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12941 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
12942 (native-inputs
12943 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12944 ("gobject-introspection" ,gobject-introspection)
12945 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12946 ("intltool" ,intltool)
12947 ("itstool" ,itstool)
12948 ("pkg-config" ,pkg-config)
12949 ("xmllint" ,libxml2)))
12950 (inputs
12951 `(("enchant" ,enchant)
12952 ("glib" ,glib)
12953 ("goocanvas" ,goocanvas)
12954 ("gtk" ,gtk+)
12955 ("gtkspell3" ,gtkspell3)
12956 ("libjpeg" ,libjpeg-turbo)
12957 ("libtiff" ,libtiff)
12958 ("libraw" ,libraw)
12959 ("ocrad" ,ocrad)
12960 ("python" ,python-wrapper)
12961 ("python-pygobject" ,python-pygobject)
12962 ("python-odfpy" ,python-odfpy)
12963 ("python-pillow" ,python-pillow)
12964 ("python-pyenchant" ,python-pyenchant)
12965 ("python-reportlab" ,python-reportlab)
12966 ("python-sane" ,python-sane)
12967 ("sane-backends" ,sane-backends)
12968 ("tesseract-ocr" ,tesseract-ocr)))
12969 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12970 (synopsis "Complete OCR Suite")
12971 (description "OCRFeeder is a complete Optical Character Recognition and
12972 Document Analysis and Recognition program.")
12973 (license license:gpl3+)))
12974
12975 (define-public libadwaita
12976 (package
12977 (name "libadwaita")
12978 (version "1.2.rc")
12979 (source (origin
12980 (method url-fetch)
12981 (uri (string-append "mirror://gnome/sources/libadwaita/"
12982 (version-major+minor version) "/"
12983 "libadwaita-" version ".tar.xz"))
12984 (sha256
12985 (base32
12986 "1syg7fkpcsw0q6fy3g79myb9m9bvrnh3rjrm6g4bfg1pnlqf1w22"))))
12987 (build-system meson-build-system)
12988 (arguments
12989 `(#:phases
12990 (modify-phases %standard-phases
12991 (add-before 'check 'pre-check
12992 (lambda* (#:key inputs #:allow-other-keys)
12993 ;; Tests require a running X server.
12994 (system "Xvfb :1 &")
12995 (setenv "DISPLAY" ":1"))))))
12996 (native-inputs
12997 (list gettext-minimal
12998 `(,glib "bin")
12999 gobject-introspection
13000 gtk-doc/stable
13001 pkg-config
13002 sassc
13003 vala
13004 xorg-server-for-tests))
13005 (propagated-inputs
13006 (list gtk)) ;libadwaita-1.pc 'Requires' it
13007 (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
13008 (synopsis "Building blocks for GNOME applications")
13009 (description
13010 "@code{libadwaita} offers widgets and objects to build GNOME
13011 applications scaling from desktop workstations to mobile phones. It is the
13012 successor of @code{libhandy} for GTK4.")
13013 (license license:lgpl2.1+)))
13014
13015 (define-public gnome-power-manager
13016 (package
13017 (name "gnome-power-manager")
13018 (version "3.32.0")
13019 (source (origin
13020 (method url-fetch)
13021 (uri (string-append "mirror://gnome/sources/" name "/"
13022 (version-major+minor version) "/"
13023 name "-" version ".tar.xz"))
13024 (sha256
13025 (base32
13026 "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g"))))
13027 (build-system meson-build-system)
13028 (inputs
13029 (list upower gtk+ gsettings-desktop-schemas adwaita-icon-theme))
13030 (native-inputs
13031 (list desktop-file-utils
13032 `(,glib "bin") gettext-minimal pkg-config))
13033 (home-page "https://gitlab.gnome.org/GNOME/gnome-power-manager")
13034 (synopsis "Power management daemon for the GNOME desktop")
13035 (description "@code{gnome-power-manager} is a tool for viewing present and
13036 historical battery usage and related statistics.")
13037 (license license:gpl2)))
13038
13039 (define-public xffm+
13040 (package
13041 (name "xffm+")
13042 (version "0.94")
13043 (source (origin
13044 (method url-fetch)
13045 (uri (string-append "mirror://sourceforge/xffm/xffm+/xffm+-"
13046 version ".tar.bz2"))
13047 (sha256
13048 (base32
13049 "0gwbgmjzlgv9ba95cgaigjnc9njzi7qznhvzp0qrnnlq3nbcm1k1"))))
13050 (build-system cmake-build-system)
13051 (arguments
13052 `(#:tests? #f ; No tests exist
13053 #:configure-flags
13054 (let ((shared-mime-info (assoc-ref %build-inputs "shared-mime-info"))
13055 (out (assoc-ref %outputs "out")))
13056 (list (string-append "-DFREEDESKTOP_GLOBS=" shared-mime-info
13057 "/share/mime/globs")
13058 (string-append "-DFREEDESKTOP_ALIAS=" shared-mime-info
13059 "/share/mime/aliases")
13060 (string-append "-DFREEDESKTOP_ICONS=" shared-mime-info
13061 "/share/mime/generic-icons")
13062 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
13063 (string-append "-DPREFIX_BIN=" out "/bin")))
13064 #:phases
13065 (modify-phases %standard-phases
13066 (add-after 'unpack 'patch-installation-destination
13067 (lambda* (#:key outputs #:allow-other-keys)
13068 (substitute* "CMakeLists.txt"
13069 ;; This is done so we can override.
13070 (("^set.CMAKE_INSTALL_PREFIX") "set(QCMAKE_INSTALL_PREFIX")
13071 ;; This is done so we can override.
13072 (("`set.PREFIX_BIN") "set(QPREFIX_BIN")))))))
13073 (native-inputs
13074 (list cmake pkg-config intltool gnu-gettext))
13075 (inputs
13076 (list glib gtk+ libx11 libsm libxv libxaw libxcb libxkbfile
13077 shared-mime-info))
13078 (synopsis "File manager")
13079 (description "This package provides a graphical file manager.")
13080 (home-page "http://xffm.org/")
13081 (license license:gpl3+)
13082 (properties '((upstream-name . "xffm")))))