gnu: rhythmbox: Update to 3.4.6.
[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.2")
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 "0ph4b05cjlkzbn8vil4hjkwvfr1cp819yi2qifp418p15rm4lk8f"))))
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 (native-inputs
6706 (list gettext-minimal
6707 itstool
6708 `(,glib "bin")
6709 gobject-introspection
6710 pkg-config
6711 libxml2))
6712 (inputs
6713 (list gnome-desktop
6714 shared-mime-info
6715 adwaita-icon-theme
6716 exempi
6717 lcms
6718 libexif
6719 libhandy
6720 libpeas
6721 libportal
6722 libjpeg-turbo
6723 librsvg
6724 gtk))
6725 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome")
6726 (synopsis "GNOME image viewer")
6727 (description "Eye of GNOME is the GNOME image viewer. It
6728 supports image conversion, rotation, and slideshows.")
6729 (license license:gpl2+)))
6730
6731 (define-public eog-plugins
6732 ;; Note: EOG looks for its plugins (via libpeas) in ~/.local as well as
6733 ;; $DATA/eog/plugins, where DATA is one of the entries in
6734 ;; $XDG_DATA_DIRS. Thus, for EOG to find these, you have to have
6735 ;; 'XDG_DATA_DIRS' appropriately set.
6736 (package
6737 (name "eog-plugins")
6738 (version "3.26.8")
6739 (source (origin
6740 (method url-fetch)
6741 (uri (string-append "mirror://gnome/sources/eog-plugins/"
6742 (version-major+minor version) "/"
6743 "eog-plugins-" version ".tar.xz"))
6744 (sha256
6745 (base32
6746 "1dcxdjp7x092wn0iq7975f9b05ksb5kl5mxmyiqmydrja91ryw40"))))
6747 (build-system gnu-build-system)
6748 (arguments
6749 '(#:phases
6750 (modify-phases %standard-phases
6751 (add-after 'install 'fix-plugins-path
6752 ;; XXX: EOG looks its plugins in "share/eog/plugins", not in
6753 ;; "lib/eog/plugins".
6754 (lambda* (#:key outputs #:allow-other-keys)
6755 (let* ((out (assoc-ref outputs "out"))
6756 (plugins (string-append out "/share/eog/plugins")))
6757 (mkdir (dirname plugins))
6758 (symlink (string-append out "/lib/eog/plugins") plugins)))))))
6759 (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins")
6760 (synopsis "Extensions for the Eye of GNOME image viewer")
6761 (native-inputs
6762 (list pkg-config gettext-minimal))
6763 (inputs
6764 (list eog
6765 glib
6766 gtk+
6767 libpeas
6768 libexif
6769 libchamplain))
6770 (description
6771 "This package provides plugins for the Eye of GNOME (EOG) image viewer,
6772 notably:
6773
6774 @itemize
6775 @item @dfn{EXIF Display}, which displays camera (EXIF) information;
6776 @item @dfn{Map}, which displays a map of where the picture was taken on the
6777 side panel;
6778 @item @dfn{Slideshow Shuffle}, to shuffle images in slideshow mode.
6779 @end itemize\n")
6780
6781 ;; XXX: eog-postasa-plugin-resources.c (which we don't build) contains a
6782 ;; long suspicious byte stream that goes to a
6783 ;; ".gresource.eog_postasa_plugin" ELF section.
6784 (license license:gpl2+)))
6785
6786 (define-public libgudev
6787 (package
6788 (name "libgudev")
6789 (version "236")
6790 (source (origin
6791 (method url-fetch)
6792 (uri (string-append "mirror://gnome/sources/" name "/"
6793 version "/" name "-" version ".tar.xz"))
6794 (sha256
6795 (base32
6796 "094mgjmwgsgqrr1i0vd20ynvlkihvs3vgbmpbrhswjsrdp86j0z5"))))
6797 (build-system meson-build-system)
6798 (native-inputs
6799 `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
6800 ("gobject-introspection" ,gobject-introspection)
6801 ("pkg-config" ,pkg-config)))
6802 (propagated-inputs
6803 (list glib ; in Requires of gudev-1.0.pc
6804 eudev)) ; in Requires.private of gudev-1.0.pc
6805 (inputs
6806 `(("udev" ,eudev)))
6807 (home-page "https://wiki.gnome.org/Projects/libgudev")
6808 (synopsis "GObject bindings for libudev")
6809 (description
6810 "This library provides GObject bindings for libudev. It was originally
6811 part of udev-extras, then udev, then systemd. It's now a project on its own.")
6812 (license license:lgpl2.1+)))
6813
6814 (define-public gvfs
6815 (package
6816 (name "gvfs")
6817 (version "1.50.2")
6818 (source (origin
6819 (method url-fetch)
6820 (uri (string-append "mirror://gnome/sources/gvfs/"
6821 (version-major+minor version) "/"
6822 "gvfs-" version ".tar.xz"))
6823 (sha256
6824 (base32
6825 "0pmc0vda1ksm9l7v64h4bm8qnv16amb7nifgy0882hzg2n62pmq3"))))
6826 (build-system meson-build-system)
6827 (arguments
6828 (list #:glib-or-gtk? #t
6829 #:configure-flags
6830 #~(list "-Dsystemduserunitdir=no"
6831 "-Dtmpfilesdir=no"
6832 ;; Otherwise, the RUNPATH will lack the final path component.
6833 (string-append "-Dc_link_args=-Wl,-rpath="
6834 #$output "/lib/gvfs"))))
6835 (native-inputs
6836 (list `(,glib "bin") ;for glib-genmarshal, etc.
6837 gettext-minimal
6838 gtk-doc/stable
6839 pkg-config
6840 libxslt))
6841 (inputs
6842 (list avahi
6843 docbook-xml-4.2
6844 docbook-xsl
6845 dbus
6846 elogind
6847 fuse-3
6848 gcr
6849 glib
6850 gnome-online-accounts
6851 gsettings-desktop-schemas
6852 libarchive
6853 libbluray
6854 libcap
6855 libcdio-paranoia
6856 libgcrypt
6857 libgdata
6858 libgphoto2
6859 libgudev
6860 libimobiledevice
6861 libmtp
6862 libnfs
6863 libsecret
6864 samba
6865 libsoup
6866 libxml2
6867 openssh
6868 polkit
6869 udisks))
6870 (home-page "https://wiki.gnome.org/gvfs/")
6871 (synopsis "Userspace virtual file system for GIO")
6872 (description
6873 "GVFS is a userspace virtual file system designed to work with the I/O
6874 abstraction of GIO. It contains a GIO module that seamlessly adds GVFS
6875 support to all applications using the GIO API. It also supports exposing the
6876 GVFS mounts to non-GIO applications using FUSE.
6877
6878 GVFS comes with a set of backends, including trash support, SFTP, SMB, HTTP,
6879 DAV, and others.")
6880 (license license:lgpl2.0+)))
6881
6882 (define-public gusb-minimal
6883 (package
6884 (name "gusb-minimal")
6885 (version "0.3.5")
6886 (source (origin
6887 (method git-fetch)
6888 (uri (git-reference
6889 (url "https://github.com/hughsie/libgusb")
6890 (commit version)))
6891 (file-name (git-file-name name version))
6892 (sha256
6893 (base32
6894 "0ifhdqhpyxwsg0z9s1anj7cf5pya5qsqyp5ksh9n7mqwa4lrjkl8"))))
6895 (build-system meson-build-system)
6896 (arguments
6897 `(#:tests? #f ;libusb fails to initialize. Wonder what that is.
6898 #:configure-flags
6899 (cons "-Ddocs=false"
6900 (if ,(%current-target-system)
6901 ;; Introspection data cannot currently be cross-compiled.
6902 '("-Dintrospection=false"
6903 ;; Requires introspection data.
6904 "-Dvapi=false")
6905 '()))))
6906 (native-inputs
6907 (list gobject-introspection pkg-config python vala))
6908 (propagated-inputs
6909 ;; Both of these are required by gusb.pc.
6910 (list glib libusb))
6911 (home-page "https://github.com/hughsie/libgusb")
6912 (synopsis "GLib binding for libusb1")
6913 (description
6914 "GUsb is a GObject wrapper for libusb1 that makes it easy to do
6915 asynchronous control, bulk and interrupt transfers with proper cancellation
6916 and integration into a mainloop. This makes it easy to integrate low level
6917 USB transfers with your high-level application or system daemon.")
6918 (license license:lgpl2.1+)))
6919
6920 (define-public gusb
6921 (package/inherit gusb-minimal
6922 (name "gusb")
6923 (arguments
6924 (substitute-keyword-arguments (package-arguments gusb-minimal)
6925 ((#:configure-flags flags)
6926 `(cons "-Ddocs=true"
6927 (delete "-Ddocs=false" ,flags)))))
6928 (native-inputs
6929 (cons `("gtk-doc" ,gtk-doc/stable)
6930 (package-native-inputs gusb-minimal)))))
6931
6932 (define-public simple-scan
6933 (package
6934 (name "simple-scan")
6935 (version "42.1")
6936 (source
6937 (origin
6938 (method url-fetch)
6939 (uri (string-append "mirror://gnome/sources/simple-scan/"
6940 (version-major version) "/"
6941 "simple-scan-" version ".tar.xz"))
6942 (sha256
6943 (base32 "09i23f8j3knppyxmikzfq9s09xarsgp9sqx9mfyvas8p3ihw16w5"))))
6944 (build-system meson-build-system)
6945 ;; TODO: Fix icons in home screen, About dialogue, and scan menu.
6946 (arguments
6947 '(#:glib-or-gtk? #t))
6948 (native-inputs
6949 (list gettext-minimal
6950 itstool
6951 `(,glib "bin") ; glib-compile-schemas, etc.
6952 pkg-config
6953 python
6954 vala
6955 libxml2))
6956 (inputs
6957 (list gtk+
6958 zlib
6959 cairo
6960 colord
6961 gdk-pixbuf
6962 gusb
6963 libhandy
6964 sane-backends))
6965 (home-page "https://gitlab.gnome.org/GNOME/simple-scan")
6966 (synopsis "Document and image scanner")
6967 (description
6968 "Document Scanner is an easy-to-use application that lets you connect your
6969 scanner and quickly capture images and documents in an appropriate format. It
6970 supports any scanner for which a suitable SANE driver is available, which is
6971 almost all of them.")
6972 (license license:gpl3+)))
6973
6974 (define-public eolie
6975 (package
6976 (name "eolie")
6977 (version "0.9.101")
6978 (source (origin
6979 (method url-fetch)
6980 (uri (string-append "https://adishatz.org/eolie/eolie-"
6981 version ".tar.xz"))
6982 (sha256
6983 (base32
6984 "1v8n21y75abdzsnx5idyd0q6yfb6cd0sqbknlbkwh5fdgvjzyvwn"))))
6985 (build-system meson-build-system)
6986 (arguments
6987 `(#:glib-or-gtk? #t
6988 #:phases
6989 (modify-phases %standard-phases
6990 (add-after 'unpack 'skip-gtk-update-icon-cache
6991 ;; Don't create 'icon-theme.cache'.
6992 (lambda _
6993 (substitute* "meson_post_install.py"
6994 (("gtk-update-icon-cache") "true"))
6995 #t))
6996 (add-after 'wrap 'wrap-more
6997 (lambda* (#:key inputs outputs #:allow-other-keys)
6998 (let* ((out (assoc-ref outputs "out"))
6999 ;; These libraries must be on LD_LIBRARY_PATH.
7000 (libs '("gtkspell3" "webkitgtk" "libsoup" "libsecret"
7001 "atk" "gtk+" "gsettings-desktop-schemas"
7002 "gobject-introspection"))
7003 (path (string-join
7004 (map (lambda (lib)
7005 (string-append (assoc-ref inputs lib) "/lib"))
7006 libs)
7007 ":")))
7008 (wrap-program (string-append out "/bin/eolie")
7009 `("LD_LIBRARY_PATH" ":" prefix (,path))
7010 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
7011 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))
7012 #t)))))
7013 (native-inputs
7014 `(("intltool" ,intltool)
7015 ("itstool" ,itstool)
7016 ("pkg-config" ,pkg-config)
7017 ("python" ,python)
7018 ("glib:bin" ,glib "bin")))
7019 (inputs
7020 `(("gobject-introspection" ,gobject-introspection)
7021 ("glib-networking" ,glib-networking)
7022 ("cairo" ,cairo)
7023 ("gtk+" ,gtk+)
7024 ("atk" ,atk) ; propagated by gtk+, but we need it in LD_LIBRARY_PATH
7025 ("python" ,python-wrapper)
7026 ("python-dateutil" ,python-dateutil)
7027 ("python-pyfxa" ,python-pyfxa)
7028 ("python-pygobject" ,python-pygobject)
7029 ("python-pycairo" ,python-pycairo)
7030 ("python-pycrypto" ,python-pycrypto)
7031 ("libhandy" ,libhandy)
7032 ("libsecret" ,libsecret)
7033 ("gtkspell3" ,gtkspell3)
7034 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
7035 ("gnome-settings-daemon" ,gnome-settings-daemon) ; desktop-schemas are not enough
7036 ("webkitgtk" ,webkitgtk)))
7037 (home-page "https://wiki.gnome.org/Apps/Eolie")
7038 (synopsis "Web browser for GNOME")
7039 (description
7040 "Eolie is a new web browser for GNOME. It features Firefox sync support,
7041 a secret password store, an adblocker, and a modern UI.")
7042 (license license:gpl3+)))
7043
7044 (define-public epiphany
7045 (package
7046 (name "epiphany")
7047 (version "42.2")
7048 (source (origin
7049 (method url-fetch)
7050 (uri (string-append "mirror://gnome/sources/epiphany/"
7051 (version-major version) "/"
7052 "epiphany-" version ".tar.xz"))
7053 (sha256
7054 (base32
7055 "0b8rhns3b58f8dnp83mm1g933aqf88d8wrfyyp7jq3fihvw2rh4j"))))
7056 (build-system meson-build-system)
7057 (arguments
7058 (list
7059 #:glib-or-gtk? #t
7060 #:phases
7061 #~(modify-phases %standard-phases
7062 (add-after 'unpack 'skip-gtk-update-icon-cache
7063 ;; Don't create 'icon-theme.cache'.
7064 (lambda _
7065 (substitute* "post_install.py"
7066 (("gtk-update-icon-cache") "true"))))
7067 (add-after 'unpack 'disable-failing-tests
7068 (lambda _
7069 (substitute* "tests/meson.build"
7070 ;; embed_shell fails, because webkitgtk apparently no longer
7071 ;; supports overriding the ftp schema web_app_utils fails due
7072 ;; to missing network access.
7073 (("(embed_shell|web_app_utils)_test,")
7074 "find_program('sh'), args: ['-c', 'exit 77'],"))))
7075 (add-before 'check 'pre-check
7076 (lambda _
7077 ;; Tests require a running X server.
7078 (system "Xvfb :1 &")
7079 (setenv "DISPLAY" ":1"))))
7080 #:configure-flags
7081 ;; Otherwise, the RUNPATH will lack the final 'epiphany' path component.
7082 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7083 #$output "/lib/epiphany"))))
7084 (propagated-inputs (list dconf))
7085 (native-inputs (list desktop-file-utils ; for update-desktop-database
7086 `(,glib "bin") ; for glib-mkenums
7087 intltool
7088 itstool
7089 pkg-config
7090 libxml2
7091 xorg-server-for-tests))
7092 (inputs (list avahi
7093 gcr
7094 librsvg ; for loading SVG files
7095 glib-networking
7096 gnome-desktop
7097 gsettings-desktop-schemas
7098 json-glib
7099 iso-codes
7100 libarchive
7101 libdazzle
7102 libhandy
7103 libnotify
7104 libportal
7105 libsecret
7106 libxslt
7107 nettle ; for hogweed
7108 sqlite
7109 webkitgtk-with-libsoup2))
7110 (home-page "https://wiki.gnome.org/Apps/Web")
7111 (synopsis "GNOME web browser")
7112 (description
7113 "Epiphany is a GNOME web browser targeted at non-technical users. Its
7114 principles are simplicity and standards compliance.")
7115 (license license:gpl2+)))
7116
7117 (define-public d-feet
7118 (package
7119 (name "d-feet")
7120 (version "0.3.14")
7121 (source (origin
7122 (method url-fetch)
7123 (uri (string-append "mirror://gnome/sources/" name "/"
7124 (version-major+minor version) "/"
7125 name "-" version ".tar.xz"))
7126 (sha256
7127 (base32
7128 "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"))))
7129 (build-system glib-or-gtk-build-system)
7130 (arguments
7131 '(#:out-of-source? #f ; tests need to run in the source directory.
7132 #:phases
7133 (modify-phases %standard-phases
7134 (add-before
7135 'check 'pre-check
7136 (lambda _
7137 ;; The test suite requires a running X server.
7138 (system "Xvfb :1 &")
7139 (setenv "DISPLAY" ":1")
7140 ;; Don't fail on missing '/etc/machine-id'.
7141 (setenv "DBUS_FATAL_WARNINGS" "0")
7142 ;; tests.py and window.py don't meet E402:
7143 ;; E402 module level import not at top of file
7144 (substitute* "src/tests/Makefile"
7145 (("--ignore=E123") "--ignore=E123,E402"))
7146 #t))
7147 (add-after
7148 'install 'wrap-program
7149 (lambda* (#:key outputs #:allow-other-keys)
7150 (let ((prog (string-append (assoc-ref outputs "out")
7151 "/bin/d-feet")))
7152 (wrap-program prog
7153 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
7154 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
7155 #t))))))
7156 (native-inputs
7157 `(("intltool" ,intltool)
7158 ("itstool" ,itstool)
7159 ("pkg-config" ,pkg-config)
7160 ("python-pep8" ,python-pep8)
7161 ("xmllint" ,libxml2)
7162 ("xorg-server" ,xorg-server-for-tests)))
7163 (inputs
7164 `(("gobject-introspection" ,gobject-introspection)
7165 ("gtk+" ,gtk+)
7166 ("python" ,python-wrapper)
7167 ("hicolor-icon-theme" ,hicolor-icon-theme)
7168 ("python-pygobject" ,python-pygobject)))
7169 (home-page "https://wiki.gnome.org/Apps/DFeet")
7170 (synopsis "D-Bus debugger")
7171 (description
7172 "D-Feet is a D-Bus debugger, which can be used to inspect D-Bus interfaces
7173 of running programs and invoke methods on those interfaces.")
7174 (license license:gpl2+)))
7175
7176 (define-public yelp-xsl
7177 (package
7178 (name "yelp-xsl")
7179 (version "41.0")
7180 (source
7181 (origin
7182 (method url-fetch)
7183 (uri
7184 (string-append "mirror://gnome/sources/" name "/"
7185 (version-major version) "/"
7186 name "-" version ".tar.xz"))
7187 (sha256
7188 (base32 "19d46rkajvr0f04560vlrzwvac88x5j8ilvzwkawbn5vjg069kf8"))))
7189 (build-system gnu-build-system)
7190 (arguments
7191 `(#:configure-flags
7192 (list
7193 "--enable-doc")))
7194 (native-inputs
7195 `(("ducktype" ,mallard-ducktype)
7196 ("gettext" ,gettext-minimal)
7197 ("intltool" ,intltool)
7198 ("itstool" ,itstool)
7199 ("xmllint" ,libxml2)
7200 ("xsltproc" ,libxslt)))
7201 (synopsis "XSL stylesheets for Yelp")
7202 (description "Yelp-XSL is a collection of programs and data files to help
7203 you build, maintain, and distribute documentation. It provides XSLT stylesheets
7204 that can be built upon for help viewers and publishing systems. These
7205 stylesheets output JavaScript and CSS content, and reference images
7206 provided by yelp-xsl. It also redistributes copies of the jQuery and
7207 jQuery.Syntax JavaScript libraries.")
7208 (home-page "https://wiki.gnome.org/Apps/Yelp")
7209 (license
7210 (list
7211 ;; XSLT
7212 license:gpl2+
7213 ;; Images
7214 license:lgpl2.1+
7215 ;; JavaScript
7216 license:expat))))
7217
7218 (define-public yelp
7219 (package
7220 (name "yelp")
7221 (version "41.0")
7222 (source (origin
7223 (method url-fetch)
7224 (uri (string-append "mirror://gnome/sources/" name "/"
7225 (version-major version) "/"
7226 name "-" version ".tar.xz"))
7227 (sha256
7228 (base32
7229 "11shrqass8ak8m10nayqssa6sbrrxa13ffpamvqi1c0yzkxdk9r5"))))
7230 (build-system glib-or-gtk-build-system)
7231 (native-inputs
7232 (list `(,glib "bin") ; for glib-genmarshal, etc.
7233 intltool itstool pkg-config))
7234 (propagated-inputs
7235 (list dconf))
7236 (inputs
7237 (list gsettings-desktop-schemas libxslt sqlite webkitgtk yelp-xsl))
7238 (home-page "https://wiki.gnome.org/Apps/Yelp")
7239 (synopsis "GNOME help browser")
7240 (description
7241 "Yelp is the help viewer in Gnome. It natively views Mallard, DocBook,
7242 man, info, and HTML documents. It can locate documents according to the
7243 freedesktop.org help system specification.")
7244 (license license:gpl2+)))
7245
7246 (define-public yelp-tools
7247 (package
7248 (name "yelp-tools")
7249 (version "3.32.2")
7250 (source
7251 (origin
7252 (method url-fetch)
7253 (uri
7254 (string-append "mirror://gnome/sources/" name "/"
7255 (version-major+minor version) "/"
7256 name "-" version ".tar.xz"))
7257 (sha256
7258 (base32 "1yg8f5g5wadhmy4yfd9yjhvd8vll4gq4l86ibp0b42qbxnsmcf0q"))))
7259 (build-system gnu-build-system)
7260 (native-inputs
7261 (list pkg-config))
7262 (inputs
7263 (list yelp-xsl))
7264 (propagated-inputs
7265 ;; Needed by `yelp-build', `yelp-check' or 'yelp.m4'.
7266 `(("itstool" ,itstool)
7267 ("xmllint" ,libxml2)
7268 ("xsltproc" ,libxslt)))
7269 (synopsis "Yelp documentation tools")
7270 (description
7271 "Yelp-tools is a collection of scripts and build utilities to help create,
7272 manage, and publish documentation for Yelp and the web. Most of the heavy
7273 lifting is done by packages like yelp-xsl and itstool. This package just
7274 wraps things up in a developer-friendly way.")
7275 (home-page "https://wiki.gnome.org/Apps/Yelp/Tools")
7276 (license license:gpl2+)))
7277
7278 (define-public libgee
7279 (package
7280 (name "libgee")
7281 (version "0.20.3")
7282 (source (origin
7283 (method url-fetch)
7284 (uri (string-append "mirror://gnome/sources/libgee/"
7285 (version-major+minor version) "/"
7286 "libgee-" version ".tar.xz"))
7287 (sha256
7288 (base32
7289 "1pm525wm11dhwz24m8bpcln9547lmrigl6cxf3qsbg4cr3pyvdfh"))))
7290 (build-system gnu-build-system)
7291 (arguments
7292 `(#:phases
7293 (modify-phases %standard-phases
7294 (add-after 'unpack 'fix-introspection-install-dir
7295 (lambda* (#:key outputs #:allow-other-keys)
7296 (let ((out (assoc-ref outputs "out")))
7297 (substitute* "gee/Makefile.in"
7298 (("@INTROSPECTION_GIRDIR@")
7299 (string-append out "/share/gir-1.0/"))
7300 (("@INTROSPECTION_TYPELIBDIR@")
7301 (string-append out "/lib/girepository-1.0/")))))))))
7302 (native-inputs
7303 (list `(,glib "bin") pkg-config))
7304 (inputs
7305 (list glib gobject-introspection))
7306 (home-page "https://wiki.gnome.org/Projects/Libgee")
7307 (synopsis "GObject collection library")
7308 (description
7309 "Libgee is a utility library providing GObject-based interfaces and
7310 classes for commonly used data structures.")
7311 (license license:lgpl2.1+)))
7312
7313 (define-public gexiv2
7314 (package
7315 (name "gexiv2")
7316 (version "0.12.2")
7317 (source (origin
7318 (method url-fetch)
7319 (uri (string-append "mirror://gnome/sources/" name "/"
7320 (version-major+minor version) "/"
7321 name "-" version ".tar.xz"))
7322 (sha256
7323 (base32
7324 "0k4ljzzz5dwqndw8awvlw3ala8rh3b2rk9i4jzvywc53mi9ba8i3"))))
7325 (build-system meson-build-system)
7326 (native-inputs
7327 (list gcr
7328 `(,glib "bin") pkg-config vala))
7329 (propagated-inputs
7330 ;; Listed in "Requires" section of gexiv2.pc
7331 (list exiv2))
7332 (inputs
7333 (list glib gobject-introspection))
7334 (home-page "https://wiki.gnome.org/Projects/gexiv2")
7335 (synopsis "GObject wrapper around the Exiv2 photo metadata library")
7336 (description
7337 "Gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It
7338 allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP
7339 metadata in photo and video files of various formats.")
7340 (license license:gpl2+)))
7341
7342 (define-public shotwell
7343 (package
7344 (name "shotwell")
7345 (version "0.30.16")
7346 (source (origin
7347 (method url-fetch)
7348 (uri (string-append "mirror://gnome/sources/shotwell/"
7349 (version-major+minor version) "/"
7350 "shotwell-" version ".tar.xz"))
7351 (sha256
7352 (base32
7353 "1yhqfmz49qkls4i6xaznm5ybwzv19jxsqjdic60wn0ykvbxjr269"))))
7354 (build-system meson-build-system)
7355 (arguments
7356 '(#:glib-or-gtk? #t
7357 #:phases
7358 (modify-phases %standard-phases
7359 (add-after 'unpack 'skip-gtk-update-icon-cache
7360 (lambda _
7361 (substitute* "build-aux/meson/postinstall.py"
7362 (("gtk-update-icon-cache") (which "true"))
7363 (("update-desktop-database") (which "true")))
7364 #t)))))
7365 (propagated-inputs
7366 (list dconf))
7367 (native-inputs
7368 `(("gettext" ,gettext-minimal)
7369 ("glib:bin" ,glib "bin")
7370 ("itstool" ,itstool)
7371 ("pkg-config" ,pkg-config)
7372 ("python" ,python)
7373 ("vala" ,vala)))
7374 (inputs
7375 `(("gcr" ,gcr)
7376 ("gexiv2" ,gexiv2)
7377 ("gst-plugins-base" ,gst-plugins-base)
7378 ("gstreamer" ,gstreamer)
7379 ("json-glib" ,json-glib)
7380 ("libgdata" ,libgdata)
7381 ("libgee" ,libgee)
7382 ("libgphoto2" ,libgphoto2)
7383 ("libgudev" ,libgudev)
7384 ("libraw" ,libraw)
7385 ("libxml2" ,libxml2)
7386 ("sqlite" ,sqlite)
7387 ("webkitgtk" ,webkitgtk-with-libsoup2)))
7388 (home-page "https://wiki.gnome.org/Apps/Shotwell")
7389 (synopsis "Photo manager for GNOME 3")
7390 (description
7391 "Shotwell is a digital photo manager designed for the GNOME desktop
7392 environment. It allows you to import photos from disk or camera, organize
7393 them by keywords and events, view them in full-window or fullscreen mode, and
7394 share them with others via social networking and more.")
7395 (license license:lgpl2.1+)))
7396
7397 (define-public file-roller
7398 (package
7399 (name "file-roller")
7400 (version "3.40.0")
7401 (source (origin
7402 (method url-fetch)
7403 (uri (string-append "mirror://gnome/sources/file-roller/"
7404 (version-major+minor version) "/"
7405 "file-roller-" version ".tar.xz"))
7406 (sha256
7407 (base32
7408 "039w1dcpa5ypmv6sm634alk9vbcdkyvy595vkh5gn032jsiqca2a"))))
7409 (build-system meson-build-system)
7410 (native-inputs
7411 (list desktop-file-utils ; for update-desktop-database
7412 intltool
7413 itstool
7414 pkg-config
7415 python
7416 `(,gtk+ "bin") ; gtk-update-icon-cache
7417 `(,glib "bin")))
7418 ;; TODO: Add libnautilus.
7419 (inputs
7420 (list gtk+
7421 gdk-pixbuf
7422 json-glib
7423 libarchive
7424 libnotify
7425 nettle
7426 libxml2))
7427 (synopsis "Graphical archive manager for GNOME")
7428 (description "File Roller is an archive manager for the GNOME desktop
7429 environment that allows users to view, unpack, and create compressed archives
7430 such as gzip tarballs.")
7431 (home-page "http://fileroller.sourceforge.net/")
7432 (license license:gpl2+)))
7433
7434 (define-public gnome-session
7435 (package
7436 (name "gnome-session")
7437 (version "42.0")
7438 (source (origin
7439 (method url-fetch)
7440 (uri (string-append "mirror://gnome/sources/" name "/"
7441 (version-major version) "/"
7442 name "-" version ".tar.xz"))
7443 (patches (search-patches "gnome-session-support-elogind.patch"))
7444 (sha256
7445 (base32
7446 "1alwjqr36rd0s132qs2clwnxgilcbylps6lm41lr50mn782hdjiw"))))
7447 (arguments
7448 `(#:glib-or-gtk? #t
7449 #:phases
7450 (modify-phases %standard-phases
7451 (add-after 'install 'wrap-gnome-session
7452 (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
7453 ;; Make sure 'gnome-session' finds the 'gsettings' program.
7454 (wrap-program (search-input-file outputs "bin/gnome-session")
7455 `("PATH" ":" prefix
7456 (,(dirname (search-input-file (or native-inputs inputs)
7457 "bin/gdbus"))))))))
7458 #:configure-flags
7459 '("-Ddocbook=false" ; FIXME: disabled because of docbook validation error
7460 "-Dman=false" ; FIXME: disabled because of docbook validation error
7461 "-Delogind=true"
7462 "-Dsystemd=false"
7463 "-Dsystemd_session=disable"
7464 "-Dsystemd_journal=false")))
7465 (build-system meson-build-system)
7466 (native-inputs
7467 (list docbook-xml
7468 docbook-xsl
7469 `(,glib "bin") ; for glib-compile-schemas, etc.
7470 intltool
7471 libxml2 ;for 'XML_CATALOG_FILES'
7472 libxslt
7473 pkg-config
7474 xmlto))
7475 (inputs
7476 (list elogind
7477 gnome-desktop
7478 gsettings-desktop-schemas
7479 gtk+
7480 json-glib
7481 libsm
7482 libxcomposite
7483 libxtst
7484 mesa
7485 upower
7486 xtrans))
7487 (synopsis "Session manager for GNOME")
7488 (description
7489 "This package contains the GNOME session manager, as well as a
7490 configuration program to choose applications starting on login.")
7491 (home-page "https://wiki.gnome.org/Projects/SessionManagement")
7492 (license license:gpl2+)))
7493
7494 (define-public gjs
7495 (package
7496 (name "gjs")
7497 (version "1.72.2")
7498 (source (origin
7499 (method url-fetch)
7500 (uri (string-append "mirror://gnome/sources/" name "/"
7501 (version-major+minor version) "/"
7502 name "-" version ".tar.xz"))
7503 (sha256
7504 (base32
7505 "0xrrv9lsi087yb9yf146a1aarf5yh6rf4jw9blx30zasvjdkgvnx"))
7506 (modules '((guix build utils)))
7507 (snippet
7508 '(begin
7509 (substitute* "installed-tests/scripts/testCommandLine.sh"
7510 (("Valentín") "")
7511 (("☭") ""))))))
7512 (build-system meson-build-system)
7513 (arguments
7514 '(#:configure-flags '("-Dinstalled_tests=false")
7515 #:phases
7516 (modify-phases %standard-phases
7517 (add-before 'check 'pre-check
7518 (lambda _
7519 ;; The test suite requires a running X server.
7520 (system "Xvfb :1 &")
7521 (setenv "DISPLAY" ":1")
7522
7523 ;; For the missing /etc/machine-id.
7524 (setenv "DBUS_FATAL_WARNINGS" "0"))))))
7525 (native-inputs
7526 (list `(,glib "bin") ;for glib-compile-resources
7527 pkg-config
7528 libxml2
7529 ;; For testing
7530 dbus
7531 dconf ;required to properly store settings
7532 util-linux
7533 xorg-server-for-tests))
7534 (propagated-inputs
7535 ;; These are all in the Requires.private field of gjs-1.0.pc.
7536 (list cairo gobject-introspection mozjs-91))
7537 (inputs
7538 (list gtk+ readline))
7539 (synopsis "Javascript bindings for GNOME")
7540 (home-page "https://wiki.gnome.org/Gjs")
7541 (description
7542 "Gjs is a javascript binding for GNOME. It's mainly based on spidermonkey
7543 javascript engine and the GObject introspection framework.")
7544 (license license:gpl2+)))
7545
7546 (define-public gedit
7547 (package
7548 (name "gedit")
7549 (version "42.2")
7550 (source (origin
7551 (method url-fetch)
7552 (uri (string-append "mirror://gnome/sources/" name "/"
7553 (version-major version) "/"
7554 name "-" version ".tar.xz"))
7555 (sha256
7556 (base32
7557 "1jlgzihi4ywvlr4xj2vbnnxzar8j3mwj0jcn8jp6dh0a3w8jjqiw"))))
7558 (build-system meson-build-system)
7559 (arguments
7560 (list
7561 #:glib-or-gtk? #t
7562 #:configure-flags
7563 ;; Otherwise, the RUNPATH will lack the final path component.
7564 #~(list (string-append "-Dc_link_args=-Wl,-rpath="
7565 #$output "/lib/gedit"))
7566 #:phases
7567 #~(modify-phases %standard-phases
7568 (add-after 'unpack 'skip-gtk-update-icon-cache
7569 ;; Don't create 'icon-theme.cache'.
7570 (lambda _
7571 (substitute* "build-aux/meson/post_install.py"
7572 (("gtk-update-icon-cache") (which "true")))))
7573 (add-after 'unpack 'do-not-invoke-git
7574 (lambda* (#:key inputs #:allow-other-keys)
7575 (substitute* "meson.build"
7576 ((".*git.*") ""))))
7577 (add-after 'install 'wrap-gedit
7578 (lambda* (#:key outputs #:allow-other-keys)
7579 (wrap-program (search-input-file outputs "bin/gedit")
7580 ;; For plugins.
7581 `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
7582 `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
7583 ;; For language-specs.
7584 `("XDG_DATA_DIRS" ":" prefix
7585 (,(string-append #$(this-package-input "gtksourceview")
7586 "/share")))))))))
7587 (propagated-inputs
7588 (list dconf))
7589 (native-inputs
7590 (list desktop-file-utils ;for update-desktop-database
7591 `(,glib "bin") ;for glib-mkenums, etc.
7592 gobject-introspection
7593 intltool
7594 itstool
7595 libxml2
7596 pkg-config
7597 python
7598 vala))
7599 (inputs
7600 (list adwaita-icon-theme
7601 bash-minimal
7602 glib
7603 gsettings-desktop-schemas
7604 gspell
7605 gtk+
7606 gtksourceview-4
7607 libpeas
7608 libsoup
7609 python
7610 python-pygobject))
7611 (home-page "https://wiki.gnome.org/Apps/Gedit")
7612 (synopsis "GNOME text editor")
7613 (description "While aiming at simplicity and ease of use, gedit is a
7614 powerful general purpose text editor.")
7615 (license license:gpl2+)))
7616
7617 (define-public zenity
7618 (package
7619 (name "zenity")
7620 (version "3.43.0")
7621 (source (origin
7622 (method url-fetch)
7623 (uri (string-append "mirror://gnome/sources/zenity/"
7624 (version-major+minor version) "/"
7625 "zenity-" version ".tar.xz"))
7626 (sha256
7627 (base32
7628 "0czq2vx636xbvg7zbdqkxq41zgm7v1h048awy0cgls0q1hgcmmxh"))))
7629 (build-system meson-build-system)
7630 (arguments
7631 (list #:phases #~(modify-phases %standard-phases
7632 (add-after 'unpack 'disable-gtk-update-icon-cache
7633 ;; The gtk-update-icon-cache tool is only run when
7634 ;; DESTDIR is unset.
7635 (lambda _
7636 (setenv "DESTDIR" "/"))))))
7637 (native-inputs (list gettext-minimal itstool pkg-config))
7638 (inputs (list gtk+))
7639 (synopsis "Display graphical dialog boxes from shell scripts")
7640 (home-page "https://www.gnome.org")
7641 (description
7642 "Zenity is a rewrite of gdialog, the GNOME port of dialog which allows you
7643 to display dialog boxes from the commandline and shell scripts.")
7644 (license license:lgpl2.0+)))
7645
7646 (define-public mutter
7647 (package
7648 (name "mutter")
7649 (version "42.4")
7650 (source (origin
7651 (method url-fetch)
7652 (uri (string-append "mirror://gnome/sources/" name "/"
7653 (version-major version) "/"
7654 name "-" version ".tar.xz"))
7655 (sha256
7656 (base32
7657 "0h1ak3201mdc2qbf67fhcn801ddp33hm0f0c52zis1l7s6ipyb62"))))
7658 ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked
7659 ;; versions of cogl and clutter. As a result, many of the inputs,
7660 ;; propagated-inputs, and configure flags used in cogl and clutter are
7661 ;; needed here as well.
7662 (build-system meson-build-system)
7663 (arguments
7664 (list
7665 #:imported-modules `(,@%meson-build-system-modules
7666 (guix build syscalls))
7667 #:modules '((guix build meson-build-system)
7668 (guix build syscalls)
7669 (guix build utils)
7670 (ice-9 match))
7671 #:glib-or-gtk? #t
7672 #:configure-flags
7673 #~(list
7674 ;; Otherwise, the RUNPATH will lack the final path component.
7675 (string-append "-Dc_link_args=-Wl,-rpath="
7676 #$output "/lib:"
7677 #$output "/lib/mutter-9")
7678 ;; Disable systemd support.
7679 "-Dsystemd=false"
7680 ;; The following flags are needed for the bundled clutter
7681 (string-append "-Dxwayland_path="
7682 (search-input-file %build-inputs "bin/Xwayland"))
7683 ;; the remaining flags are needed for the bundled cogl
7684 (string-append "-Dopengl_libname="
7685 (search-input-file %build-inputs "lib/libGL.so"))
7686 (string-append "-Dgles2_libname="
7687 (search-input-file %build-inputs "lib/libGLESv2.so"))
7688 "-Degl_device=true" ;false by default
7689 "-Dwayland_eglstream=true") ;false by default
7690 #:test-options '(list "--verbose")
7691 #:phases
7692 #~(modify-phases %standard-phases
7693 (add-after 'unpack 'adjust-runpath-linker-directives
7694 (lambda _
7695 ;; By default Mutter uses RPATH instead of RUNPATH, which our
7696 ;; customized linker script makes use of. Some libraries are
7697 ;; also installed under lib/mutter-10 and need to be added to
7698 ;; the RUNPATH.
7699 (substitute* "meson.build"
7700 (("'-Wl,--disable-new-dtags'")
7701 (string-append "'-Wl,-rpath=" #$output "/lib/mutter-10'")))))
7702 (add-after 'unpack 'patch-dlopen-calls
7703 (lambda* (#:key inputs #:allow-other-keys)
7704 (substitute* "src/wayland/meta-wayland-egl-stream.c"
7705 (("libnvidia-egl-wayland.so.1")
7706 (search-input-file inputs "lib/libnvidia-egl-wayland.so.1")))))
7707 (add-before 'configure 'set-udev-dir
7708 (lambda _
7709 (setenv "PKG_CONFIG_UDEV_UDEVDIR"
7710 (string-append #$output "/lib/udev"))))
7711 (add-after 'unpack 'disable-problematic-tests
7712 (lambda _
7713 ;; The native-headless test hangs due to attempting to use audio,
7714 ;; unavailable in the container.
7715 ;; Note: the following sed expression deletes the whole test(...)
7716 ;; expression paragraph. For an explanation, see: info '(sed)
7717 ;; Multiline techniques'.
7718 (invoke "sed" "/./{H;$!d} ; x ; s/^.*native-headless.*$//"
7719 "-i" "src/tests/meson.build")
7720 ;; Timeline tests may unexpectedly fail on missed frames, so
7721 ;; let's disable them as well.
7722 ;; See <https://gitlab.gnome.org/GNOME/mutter/-/issues/2125>
7723 (substitute* "src/tests/clutter/conform/meson.build"
7724 (("'timeline.*',") ""))))
7725 (replace 'check
7726 (lambda* (#:key tests? test-options parallel-tests?
7727 #:allow-other-keys)
7728 (when tests?
7729 ;; Setup (see the 'test-mutter' CI target at
7730 ;; https://gitlab.gnome.org/GNOME/mutter/-/raw/main/.gitlab-ci.yml).
7731 (setenv "HOME" "/tmp")
7732 (setenv "XDG_RUNTIME_DIR" (string-append (getcwd)
7733 "/runtime-dir"))
7734 (mkdir (getenv "XDG_RUNTIME_DIR"))
7735 (chmod (getenv "XDG_RUNTIME_DIR") #o700)
7736
7737 (setenv "GSETTINGS_SCHEMA_DIR" "data")
7738 (setenv "MUTTER_DEBUG_DUMMY_MODE_SPECS" "800x600@10.0")
7739 (setenv "PIPEWIRE_DEBUG" "2")
7740 (setenv "PIPEWIRE_LOG" "meson-logs/pipewire.log")
7741 (setenv "XVFB_SERVER_ARGS" "+iglx -noreset")
7742 (setenv "G_SLICE" "always-malloc")
7743 (setenv "MALLOC_CHECK" "3")
7744 (setenv "NO_AT_BRIDGE" "1")
7745 ;; This is needed, otherwise the "mutter:core+mutter/unit /
7746 ;; anonymous-file" test would fail (see:
7747 ;; https://gitlab.gnome.org/GNOME/mutter/-/issues/2017).
7748 (setenv "CI_JOB_ID" "1")
7749
7750 (invoke "glib-compile-schemas" (getenv "GSETTINGS_SCHEMA_DIR"))
7751 (mkdir-p (getenv "XDG_RUNTIME_DIR"))
7752 (chmod (getenv "XDG_RUNTIME_DIR") #o755)
7753 (invoke "pipewire" "--version") ;check for pipewire
7754 (system "pipewire &") ;always returns 0 due to forking
7755
7756 (setenv "MESON_TESTTHREADS"
7757 (if parallel-tests?
7758 (number->string (parallel-job-count))
7759 "1"))
7760 (match (primitive-fork)
7761 (0 ;child process
7762 (set-child-subreaper!)
7763 ;; Use tini so that signals are properly handled and
7764 ;; doubly-forked processes get reaped; otherwise,
7765 ;; python-dbusmock would waste time polling for the dbus
7766 ;; processes it spawns to be reaped, in vain.
7767 (apply execlp "tini" "--"
7768 "dbus-run-session" "--"
7769 "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
7770 "meson" "test" "-t" "0" "--print-errorlogs"
7771 test-options))
7772 (pid
7773 (match (waitpid pid)
7774 ((_ . status)
7775 (unless (zero? status)
7776 (error "`meson test' exited with status"
7777 status))))))))))))
7778 (native-inputs
7779 (list desktop-file-utils ;for update-desktop-database
7780 `(,glib "bin") ;for glib-compile-schemas, etc.
7781 gobject-introspection
7782 intltool
7783 pkg-config
7784 xvfb-run
7785 ;; For git build
7786 autoconf
7787 automake
7788 libtool
7789 wayland-protocols-next
7790 ;; For tests.
7791 ;; Warnings are configured to be fatal during the tests; add an icon
7792 ;; theme to please libxcursor.
7793 adwaita-icon-theme
7794 libxcursor ;for XCURSOR_PATH
7795 pipewire-0.3
7796 python
7797 python-dbus
7798 python-dbusmock
7799 tini)) ;acting as init (zombie reaper)
7800 (propagated-inputs
7801 (list gsettings-desktop-schemas-next ;required by libmutter.pc
7802 gtk+ ;required by libmutter.pc
7803 ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
7804 atk
7805 cairo
7806 eudev
7807 gdk-pixbuf
7808 glib
7809 json-glib
7810 libinput
7811 libx11
7812 libxcomposite
7813 libxcvt
7814 libxdamage
7815 libxext
7816 libxfixes
7817 libxkbcommon
7818 libxml2
7819 libxrandr
7820 mesa
7821 pango
7822 xinput))
7823 (inputs
7824 (list egl-wayland ;for wayland-eglstream-protocols
7825 elogind
7826 gnome-desktop
7827 gnome-settings-daemon
7828 graphene
7829 libcanberra
7830 libgudev
7831 libice
7832 libsm
7833 libwacom
7834 libxkbfile
7835 libxrandr
7836 libxtst
7837 pipewire-0.3
7838 startup-notification
7839 sysprof
7840 upower
7841 xkeyboard-config
7842 xorg-server-xwayland
7843 zenity))
7844 (synopsis "Window and compositing manager")
7845 (home-page "https://www.gnome.org")
7846 (description
7847 "Mutter is a window and compositing manager that displays and manages your
7848 desktop via OpenGL. Mutter combines a sophisticated display engine using the
7849 Clutter toolkit with solid window-management logic inherited from the Metacity
7850 window manager.")
7851 (license license:gpl2+)))
7852
7853 (define-public gnome-online-accounts
7854 (package
7855 (name "gnome-online-accounts")
7856 (version "3.45.2")
7857 (source (origin
7858 (method url-fetch)
7859 (uri (string-append "mirror://gnome/sources/" name "/"
7860 (version-major+minor version) "/"
7861 name "-" version ".tar.xz"))
7862 (sha256
7863 (base32
7864 "15zzzndbfba8a497vxb6cmy1y22l3lfn4sx9s9r59kwzd83i6fxn"))))
7865 (build-system meson-build-system)
7866 (arguments
7867 (list
7868 #:glib-or-gtk? #t
7869 #:phases
7870 #~(modify-phases %standard-phases
7871 (add-before 'install 'disable-gtk-update-icon-cache
7872 (lambda _
7873 (setenv "DESTDIR" "/"))))))
7874 (native-inputs
7875 (list gettext-minimal
7876 `(,glib "bin") ; for glib-compile-schemas, etc.
7877 gobject-introspection
7878 libxslt
7879 pkg-config
7880 vala))
7881 (propagated-inputs
7882 (list glib ; required by goa-1.0.pc
7883 gtk+)) ; required by goa-backend-1.0.pc
7884 (inputs
7885 (list docbook-xsl
7886 gcr
7887 json-glib
7888 libsecret
7889 mit-krb5
7890 rest-next
7891 webkitgtk))
7892 (synopsis "Single sign-on framework for GNOME")
7893 (home-page "https://wiki.gnome.org/Projects/GnomeOnlineAccounts")
7894 (description
7895 "GNOME Online Accounts provides interfaces so that applications and
7896 libraries in GNOME can access the user's online accounts. It has providers
7897 for Google, ownCloud, Facebook, Flickr, Windows Live, Pocket, Foursquare,
7898 Microsoft Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.")
7899 (license license:lgpl2.0+)))
7900
7901 (define-public gnome-online-accounts-3.44
7902 (package
7903 (inherit gnome-online-accounts)
7904 (name "gnome-online-accounts")
7905 (version "3.44.0")
7906 (source (origin
7907 (method url-fetch)
7908 (uri (string-append "mirror://gnome/sources/" name "/"
7909 (version-major+minor version) "/"
7910 name "-" version ".tar.xz"))
7911 (sha256
7912 (base32
7913 "0hkkxa3zqyl0i4kw1p3ak4alwxw4wydh9al6fzwbcdgl0r0ms79q"))))
7914 (build-system glib-or-gtk-build-system)
7915 (arguments (substitute-keyword-arguments
7916 (strip-keyword-arguments
7917 '(#:glib-or-gtk?)
7918 (package-arguments gnome-online-accounts))
7919 ((#:phases phases)
7920 #~(modify-phases #$phases
7921 (delete 'disable-gtk-update-icon-cache)))))
7922 (inputs (modify-inputs (package-inputs gnome-online-accounts)
7923 (replace "rest" rest)
7924 (replace "webkitgtk" webkitgtk-with-libsoup2)))))
7925
7926 (define-public evolution-data-server
7927 (package
7928 (name "evolution-data-server")
7929 (version "3.44.4")
7930 (source
7931 (origin
7932 (method url-fetch)
7933 (uri (string-append "mirror://gnome/sources/" name "/"
7934 (version-major+minor version) "/"
7935 name "-" version ".tar.xz"))
7936 (sha256
7937 (base32 "1sxjrjr31wqbp9g4pf6dwj8rc4mi7c5fbfd489ha92ym7246bin0"))))
7938 (build-system cmake-build-system)
7939 (arguments
7940 (list
7941 #:configure-flags
7942 #~(let* ((lib (string-append #$output "/lib"))
7943 (runpaths (map (lambda (s)
7944 (string-append lib "/evolution-data-server/" s))
7945 '("addressbook-backends" "calendar-backends"
7946 "camel-providers" "credential-modules"
7947 "registry-modules"))))
7948 (list "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support
7949 "-DENABLE_VALA_BINDINGS=ON"
7950 (string-append "-DCMAKE_INSTALL_RPATH=" lib ";"
7951 (string-append lib "/evolution-data-server;")
7952 (string-join runpaths ";"))
7953 "-DENABLE_INTROSPECTION=ON" ;required for Vala bindings
7954 "-DWITH_PHONENUMBER=ON"))
7955 #:phases
7956 #~(modify-phases %standard-phases
7957 (add-after 'unpack 'disable-failing-tests
7958 (lambda _
7959 ;; tests/book-migration/test-migration.c:160:test_fetch_contacts:
7960 ;; assertion failed (g_slist_length (contacts) == 20): (0 == 20)
7961 (delete-file-recursively "tests/book-migration")
7962 (substitute* "tests/CMakeLists.txt"
7963 (("add_subdirectory\\(book-migration\\)") ""))))
7964 (add-after 'unpack 'patch-paths
7965 (lambda _
7966 (substitute* '("tests/test-server-utils/e-test-server-utils.c"
7967 "tests/libedata-book/data-test-utils.c"
7968 "tests/libedata-book/test-book-cache-utils.c"
7969 "tests/libedata-cal/test-cal-cache-utils.c")
7970 (("/bin/rm") (which "rm")))))
7971 (add-before 'configure 'dont-override-rpath
7972 (lambda _
7973 (substitute* "CMakeLists.txt"
7974 ;; CMakeLists.txt hard-codes runpath to just the libdir.
7975 ;; Remove it so the configure flag is respected.
7976 (("SET\\(CMAKE_INSTALL_RPATH .*") "")))))))
7977 (native-inputs
7978 (list `(,glib "bin") ; for glib-mkenums, etc.
7979 gobject-introspection
7980 gperf
7981 gsettings-desktop-schemas
7982 intltool
7983 pkg-config
7984 protobuf
7985 vala
7986 python-wrapper))
7987 (propagated-inputs
7988 ;; These are all in the Requires field of .pc files.
7989 (list gtk+
7990 libical
7991 libsecret
7992 libsoup-minimal-2
7993 nss
7994 sqlite))
7995 (inputs
7996 (list bdb
7997 boost
7998 gcr
7999 gnome-online-accounts
8000 json-glib
8001 libcanberra
8002 libgweather
8003 libphonenumber
8004 mit-krb5
8005 openldap
8006 webkitgtk-with-libsoup2))
8007 (synopsis "Store address books and calendars")
8008 (home-page "https://wiki.gnome.org/Apps/Evolution")
8009 (description
8010 "This package provides a unified backend for programs that work with
8011 contacts, tasks, and calendar information. It was originally developed for
8012 Evolution (hence the name), but is now used by other packages as well.")
8013 (license license:lgpl2.0)))
8014
8015 (define-public caribou
8016 (package
8017 (name "caribou")
8018 (version "0.4.21")
8019 (source (origin
8020 (method url-fetch)
8021 (uri (string-append "mirror://gnome/sources/" name "/"
8022 (version-major+minor version) "/"
8023 name "-" version ".tar.xz"))
8024 (sha256
8025 (base32
8026 "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww"))))
8027 (build-system glib-or-gtk-build-system)
8028 (arguments
8029 '(#:phases
8030 (modify-phases %standard-phases
8031 (add-before
8032 'build 'pre-build
8033 (lambda* (#:key outputs #:allow-other-keys)
8034 (let ((out (assoc-ref outputs "out")))
8035 ;; Use absolute shared library path in Caribou-1.0.typelib.
8036 (substitute* "libcaribou/Makefile"
8037 (("--shared-library=libcaribou.so")
8038 (string-append "--shared-library="
8039 out "/lib/libcaribou.so")))
8040 #t)))
8041 (add-after 'install 'wrap-programs
8042 (lambda* (#:key outputs #:allow-other-keys)
8043 (let* ((out (assoc-ref outputs "out"))
8044 (python-path (getenv "GUIX_PYTHONPATH"))
8045 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
8046 (for-each
8047 (lambda (prog)
8048 (wrap-program prog
8049 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
8050 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8051 (list (string-append out "/bin/caribou-preferences")
8052 (string-append out "/libexec/antler-keyboard"))))
8053 #t)))))
8054 (native-inputs
8055 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
8056 ("gobject-introspection" ,gobject-introspection)
8057 ("intltool" ,intltool)
8058 ("pkg-config" ,pkg-config)
8059 ("python" ,python)
8060 ("vala" ,vala)
8061 ("xsltproc" ,libxslt)))
8062 (propagated-inputs
8063 ;; caribou-1.0.pc refers to all these.
8064 (list libgee libxklavier libxtst gtk+))
8065 (inputs
8066 `(("clutter" ,clutter)
8067 ("dconf" ,dconf)
8068 ("gtk+-2" ,gtk+-2)
8069 ("python-pygobject" ,python-pygobject)))
8070 (synopsis "Text entry and UI navigation application")
8071 (home-page "https://wiki.gnome.org/Projects/Caribou")
8072 (description
8073 "Caribou is an input assistive technology intended for switch and pointer
8074 users.")
8075 (license license:lgpl2.1)))
8076
8077 (define-public network-manager
8078 (package
8079 (name "network-manager")
8080 (version "1.40.0")
8081 (source (origin
8082 (method url-fetch)
8083 (uri (string-append "mirror://gnome/sources/NetworkManager/"
8084 (version-major+minor version) "/"
8085 "NetworkManager-" version ".tar.xz"))
8086 (patches (search-patches "network-manager-plugin-path.patch"
8087 "network-manager-meson.patch"))
8088 (sha256
8089 (base32
8090 "00zwx7cvl8p8xv5h8yvlj2r5wycbvbqia7z4hjmmvjicpiby1rxf"))))
8091 (build-system meson-build-system)
8092 (outputs '("out"
8093 "doc")) ; 8 MiB of gtk-doc HTML
8094 (arguments
8095 (list
8096 #:configure-flags
8097 #~(list
8098 ;; Otherwise, the RUNPATH will lack the final 'NetworkManager' path
8099 ;; component.
8100 (string-append "-Dc_link_args=-Wl,-rpath="
8101 #$output "/lib:"
8102 #$output "/lib/NetworkManager/" #$version)
8103 "-Dsystemd_journal=false"
8104 "-Dsession_tracking=elogind"
8105 "-Dsuspend_resume=elogind"
8106 "-Dsystemdsystemunitdir=no"
8107 "-Dsession_tracking_consolekit=false"
8108 "-Ddhcpcd=no"
8109 "-Ddhcpcanon=no"
8110 "-Dcrypto=gnutls"
8111 "-Diwd=true"
8112 "-Dlibaudit=yes"
8113 "-Dqt=false"
8114 "-Ddocs=true"
8115 "--sysconfdir=/etc"
8116 "--localstatedir=/var"
8117 (string-append "-Dudev_dir="
8118 #$output "/lib/udev")
8119 (string-append "-Ddbus_conf_dir="
8120 #$output "/etc/dbus-1/system.d")
8121
8122 (string-append "-Ddhclient=" (search-input-file %build-inputs
8123 "/sbin/dhclient")))
8124 #:phases
8125 #~(modify-phases %standard-phases
8126 (add-after 'unpack 'patch-dlopen-call-to-libjansson.so
8127 (lambda* (#:key inputs #:allow-other-keys)
8128 (substitute* "src/libnm-glib-aux/nm-json-aux.c"
8129 (("(handle = dlopen\\()soname" _ head)
8130 (string-append
8131 head "\"" (search-input-file inputs
8132 "lib/libjansson.so") "\"")))))
8133 (add-before 'configure 'pre-configure
8134 (lambda _
8135 ;; These tests try to test aspects of network-manager's
8136 ;; functionality within restricted containers, but they don't
8137 ;; cope with being already in the Guix build jail as that jail
8138 ;; lacks some features that they would like to proxy over (like
8139 ;; a /sys mount).
8140 (substitute* "src/core/tests/meson.build"
8141 ((".*test-l3cfg.*") ""))
8142 (substitute* "src/core/devices/tests/meson.build"
8143 ((".*test-acd.*") "")
8144 ((".*test-lldp.*") ""))
8145 (substitute* "src/core/platform/tests/meson.build"
8146 ((".*test-address-linux.*") "")
8147 ((".*test-cleanup-linux.*") "")
8148 ((".*test-link-linux.*") "")
8149 ((".*test-lldp.*") "")
8150 ((".*test-route-linux.*") "")
8151 ((".*test-tc-linux.*") ""))))
8152 (add-after 'unpack 'patch-docbook-xml
8153 (lambda* (#:key inputs #:allow-other-keys)
8154 (substitute* (find-files "." ".*\\.(xsl|xml)")
8155 (("http://.*/docbookx\\.dtd")
8156 (search-input-file inputs "xml/dtd/docbook/docbookx.dtd")))))
8157 (add-before 'check 'pre-check
8158 (lambda _
8159 ;; For the missing /etc/machine-id.
8160 (setenv "DBUS_FATAL_WARNINGS" "0")))
8161 (add-before 'install 'no-polkit-magic
8162 ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
8163 (lambda _
8164 (setenv "PKEXEC_UID" "something")))
8165 (add-after 'install 'move-doc
8166 (lambda _
8167 (mkdir-p (string-append #$output:doc "/share"))
8168 (for-each (lambda (directory)
8169 (copy-recursively (string-append #$output directory)
8170 (string-append #$output:doc
8171 directory))
8172 (delete-file-recursively
8173 (string-append #$output directory)))
8174 '("/share/doc" "/share/gtk-doc")))))))
8175 (propagated-inputs
8176 (list glib))
8177 (native-inputs
8178 (list `(,glib "bin") ; for gdbus-codegen
8179 gtk-doc/stable
8180 gobject-introspection
8181 docbook-xml
8182 docbook-xsl
8183 intltool
8184 libxslt
8185 libxml2
8186 pkg-config
8187 vala
8188 ;; For testing.
8189 python-wrapper
8190 python-dbus
8191 python-pygobject))
8192 (inputs
8193 (list curl
8194 cyrus-sasl
8195 dbus-glib
8196 dnsmasq
8197 eudev
8198 gnutls
8199 iptables
8200 isc-dhcp
8201 iwd ; wpa_supplicant alternative
8202 jansson
8203 audit
8204 libgcrypt
8205 libgudev
8206 libndp
8207 libnl
8208 libselinux
8209 libsoup
8210 mobile-broadband-provider-info
8211 modem-manager
8212 newt ;for the 'nmtui' console interface
8213 openresolv ; alternative resolv.conf manager
8214 polkit
8215 ppp
8216 readline
8217 util-linux
8218 elogind))
8219 (synopsis "Network connection manager")
8220 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8221 (description
8222 "NetworkManager is a system network service that manages your network
8223 devices and connections, attempting to keep active network connectivity when
8224 available. It manages ethernet, WiFi, mobile broadband (WWAN), and PPPoE
8225 devices, and provides VPN integration with a variety of different VPN
8226 services.")
8227 ;; “This NetworkManager project consists of the daemon, client tools, and
8228 ;; libnm. libnm is licensed LGPL-2.1+, while the rest is licensed under
8229 ;; GPL-2.0+.”
8230 (license (list license:gpl2+
8231 license:lgpl2.1+))
8232 (properties '((upstream-name . "NetworkManager")))))
8233
8234 (define-public network-manager-openvpn
8235 (package
8236 (name "network-manager-openvpn")
8237 (version "1.8.12")
8238 (source (origin
8239 (method url-fetch)
8240 (uri (string-append
8241 "mirror://gnome/sources/NetworkManager-openvpn/"
8242 (version-major+minor version)
8243 "/NetworkManager-openvpn-" version ".tar.xz"))
8244 (sha256
8245 (base32
8246 "062kh4zj7jfbwy4zzcwpq2m457bzbpm3l18s0ysnw3mgia3siz8f"))))
8247 (build-system gnu-build-system)
8248 (arguments
8249 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
8250 #:phases
8251 (modify-phases %standard-phases
8252 (add-after 'configure 'patch-path
8253 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8254 (let* ((ovpn (search-input-file inputs "/sbin/openvpn"))
8255 (modprobe (search-input-file inputs "/bin/modprobe"))
8256 (pretty-ovpn (string-append "\"" ovpn "\"")))
8257 (for-each
8258 (lambda (file)
8259 (substitute* file
8260 (("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
8261 (("\"/usr/sbin/openvpn\"") pretty-ovpn)
8262 (("\"/sbin/openvpn\"") pretty-ovpn)
8263 (("/sbin/modprobe") modprobe)))
8264 '("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
8265 #t)))))
8266 (native-inputs
8267 (list pkg-config intltool))
8268 (inputs
8269 (list gtk+
8270 kmod
8271 openvpn
8272 network-manager
8273 libnma
8274 libsecret))
8275 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8276 (synopsis "OpenVPN plug-in for NetworkManager")
8277 (description
8278 "This extension of NetworkManager allows it to take care of connections
8279 to virtual private networks (VPNs) via OpenVPN.")
8280 (license license:gpl2+)
8281 (properties `((upstream-name . "NetworkManager-openvpn")))))
8282
8283 (define-public network-manager-vpnc
8284 (package
8285 (name "network-manager-vpnc")
8286 (version "1.2.6")
8287 (source (origin
8288 (method url-fetch)
8289 (uri (string-append
8290 "mirror://gnome/sources/NetworkManager-vpnc/"
8291 (version-major+minor version)
8292 "/NetworkManager-vpnc-" version ".tar.xz"))
8293 (sha256
8294 (base32
8295 "1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
8296 (build-system gnu-build-system)
8297 (arguments
8298 `(#:configure-flags '("--enable-absolute-paths"
8299 "--localstatedir=/var"
8300 ;; libnm-glib has been removed from network-manager
8301 ;; 1de8383ad9fdfc8f552117e5d109bdfa7005634b
8302 "--with-libnm-glib=no")
8303 #:phases
8304 (modify-phases %standard-phases
8305 (add-after 'configure 'patch-path
8306 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8307 (let* ((vpnc (search-input-file inputs "/sbin/vpnc"))
8308 (modprobe (search-input-file inputs "/bin/modprobe"))
8309 (pretty-ovpn (string-append "\"" vpnc "\"")))
8310 (substitute* "src/nm-vpnc-service.c"
8311 (("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
8312 (("\"/usr/sbin/vpnc\"") pretty-ovpn)
8313 (("\"/sbin/vpnc\"") pretty-ovpn)
8314 (("/sbin/modprobe") modprobe)))
8315 #t)))))
8316 (native-inputs
8317 (list pkg-config intltool))
8318 (inputs
8319 (list gtk+
8320 kmod
8321 vpnc
8322 network-manager
8323 libnma
8324 libsecret))
8325 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8326 (synopsis "VPNC plug-in for NetworkManager")
8327 (description
8328 "Support for configuring virtual private networks based on VPNC.
8329 Compatible with Cisco VPN concentrators configured to use IPsec.")
8330 (license license:gpl2+)
8331 (properties `((upstream-name . "NetworkManager-vpnc")))))
8332
8333 (define-public network-manager-openconnect
8334 (package
8335 (name "network-manager-openconnect")
8336 (version "1.2.6")
8337 (source (origin
8338 (method url-fetch)
8339 (uri (string-append
8340 "mirror://gnome/sources/NetworkManager-openconnect/"
8341 (version-major+minor version)
8342 "/NetworkManager-openconnect-" version ".tar.xz"))
8343 (sha256
8344 (base32
8345 "0nlp290nkawc4wqm978n4vhzg3xdqi8kpjjx19l855vab41rh44m"))))
8346 (build-system gnu-build-system)
8347 (arguments
8348 `(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
8349 #:phases
8350 (modify-phases %standard-phases
8351 (add-after 'configure 'patch-path
8352 (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
8353 (let* ((openconnect (search-input-file inputs
8354 "/sbin/openconnect"))
8355 (modprobe (search-input-file inputs "/bin/modprobe"))
8356 (pretty-ovpn (string-append "\"" openconnect "\"")))
8357 (substitute* "src/nm-openconnect-service.c"
8358 (("\"/usr(/local)?/s?bin/openconnect\"") pretty-ovpn)
8359 (("/sbin/modprobe") modprobe)))
8360 #t)))))
8361 (native-inputs
8362 (list intltool libnma pkg-config))
8363 (inputs
8364 (list gcr
8365 gtk+
8366 kmod
8367 libsecret
8368 libxml2
8369 lz4
8370 network-manager
8371 openconnect))
8372 (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
8373 (synopsis "OpenConnect plug-in for NetworkManager")
8374 (description
8375 "This extension of NetworkManager allows it to take care of connections
8376 to @acronym{VPNs, virtual private networks} via OpenConnect, an open client for
8377 Cisco's AnyConnect SSL VPN.")
8378 (license license:gpl2+)
8379 (properties `((upstream-name . "NetworkManager-openconnect")
8380
8381 ;; The 'etc/dbus-1/system.d/nm-openconnect-service.conf'
8382 ;; file refers to account "nm-openconnect". Specify it here
8383 ;; so that 'network-manager-service-type' creates it.
8384 (user-accounts . ("nm-openconnect"))))))
8385
8386 (define-public mobile-broadband-provider-info
8387 (package
8388 (name "mobile-broadband-provider-info")
8389 (version "20190116")
8390 (source (origin
8391 (method url-fetch)
8392 (uri (string-append
8393 "mirror://gnome/sources/"
8394 "mobile-broadband-provider-info/" version "/"
8395 "mobile-broadband-provider-info-" version ".tar.xz"))
8396 (sha256
8397 (base32
8398 "16y5lc7pfdvai9c8xwb825zc3v46039gghbip13fqslf5gw11fic"))))
8399 (build-system gnu-build-system)
8400 (arguments
8401 `(#:tests? #f)) ; no tests
8402 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8403 (synopsis "Database of broadband connection configuration")
8404 (description "Database of broadband connection configuration.")
8405 (license license:public-domain)))
8406
8407 (define-public network-manager-applet
8408 (package
8409 (name "network-manager-applet")
8410 (version "1.28.0")
8411 (source (origin
8412 (method url-fetch)
8413 (uri (string-append "mirror://gnome/sources/network-manager-applet/"
8414 (version-major+minor version) "/"
8415 "network-manager-applet-" version ".tar.xz"))
8416 (sha256
8417 (base32
8418 "17742kgmbj9w545zwnirgr0i40zl0xzp8jx7b8c1krp93mc4h0sw"))))
8419 (build-system meson-build-system)
8420 (arguments
8421 `(#:glib-or-gtk? #t
8422 #:configure-flags
8423 '("-Dappindicator=yes")))
8424 (native-inputs
8425 (list gettext-minimal
8426 `(,glib "bin") ; for glib-compile-resources, etc.
8427 gobject-introspection
8428 gtk-doc/stable
8429 pkg-config))
8430 (propagated-inputs
8431 ;; libnm-gtk.pc refers to all these.
8432 (list dbus-glib gtk+ network-manager
8433 ;; nm-applet need by org.gnome.nm-applet.gschema.xml
8434 libnma))
8435 (inputs
8436 (list gcr
8437 libappindicator
8438 libgudev
8439 libnotify
8440 libsecret
8441 libselinux
8442 jansson ; for team support
8443 modem-manager))
8444 (synopsis "Applet for managing network connections")
8445 (home-page "https://wiki.gnome.org/Projects/NetworkManager")
8446 (description
8447 "This package contains a systray applet for NetworkManager. It displays
8448 the available networks and allows users to easily switch between them.")
8449 (license license:gpl2+)))
8450
8451 (define-public libxml++
8452 (package
8453 (name "libxml++")
8454 (version "3.2.0")
8455 (source
8456 (origin
8457 (method git-fetch)
8458 (uri (git-reference
8459 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8460 (commit version)))
8461 (file-name (git-file-name name version))
8462 (sha256
8463 (base32 "0wjz591rjlgbah7dcq8i0yn0zw9d62b7g6r0pppx81ic0cx8n8ga"))))
8464 (build-system gnu-build-system)
8465 (arguments
8466 `(#:phases
8467 (modify-phases %standard-phases
8468 (add-after 'unpack 'fix-documentation
8469 (lambda* (#:key inputs #:allow-other-keys)
8470 (let ((xmldoc (string-append (assoc-ref inputs "docbook-xml")
8471 "/xml/dtd/docbook"))
8472 (xsldoc (string-append (assoc-ref inputs "docbook-xsl")
8473 "/xml/xsl/docbook-xsl-"
8474 ,(package-version docbook-xsl))))
8475 (substitute* '("examples/dom_xpath/example.xml"
8476 "docs/manual/libxml++_without_code.xml")
8477 (("http://.*/docbookx\\.dtd")
8478 (string-append xmldoc "/docbookx.dtd")))
8479 (setenv "SGML_CATALOG_FILES"
8480 (string-append xmldoc "/catalog.xml"))
8481 (substitute* "docs/manual/docbook-customisation.xsl"
8482 (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
8483 (string-append xsldoc "/html/chunk.xsl")))))))))
8484 (propagated-inputs
8485 ;; libxml++-3.0.pc refers to all these.
8486 (list glibmm-2.64 libxml2))
8487 (native-inputs
8488 (list autoconf
8489 automake
8490 doxygen
8491 docbook-xml
8492 docbook-xsl
8493 graphviz ; for dot
8494 libtool
8495 libxslt
8496 mm-common
8497 perl
8498 pkg-config))
8499 (home-page "https://github.com/libxmlplusplus/libxmlplusplus/")
8500 (synopsis "C++ bindings to the libxml2 XML parser library")
8501 (description
8502 "This package provides a C++ interface to the libxml2 XML parser
8503 library.")
8504 (license license:lgpl2.1+)))
8505
8506 ;; This is the last release providing the 2.6 API, hence the name.
8507 ;; This is needed by tascam-gtk
8508 (define-public libxml++-2
8509 (package
8510 (inherit libxml++)
8511 (name "libxml++")
8512 (version "2.40.1")
8513 (source
8514 (origin
8515 (method git-fetch)
8516 (uri (git-reference
8517 (url "https://github.com/libxmlplusplus/libxmlplusplus")
8518 (commit version)))
8519 (file-name (git-file-name name version))
8520 (sha256
8521 (base32 "0gbfi4l88w828gmyc9br11l003ylyi4vigp5d1kfgsn0k4cig3y9"))))))
8522
8523 (define-public gdm
8524 (package
8525 (name "gdm")
8526 (version "42.0")
8527 (source (origin
8528 (method url-fetch)
8529 (uri (string-append "mirror://gnome/sources/" name "/"
8530 (version-major version) "/"
8531 name "-" version ".tar.xz"))
8532 (sha256
8533 (base32
8534 "0m9qmm3vm81jmqlc30a1fb79hsr4l4lpiw0zjxww3gipd6bsqa53"))
8535 (patches
8536 (search-patches
8537 "gdm-default-session.patch"
8538 "gdm-elogind-support.patch"
8539 "gdm-remove-hardcoded-xwayland-path.patch"
8540 "gdm-wayland-session-wrapper-from-env.patch"
8541 "gdm-pass-gdk-pixbuf-loader-env.patch"))))
8542 (build-system meson-build-system)
8543 (arguments
8544 (list
8545 #:glib-or-gtk? #t
8546 #:configure-flags
8547 #~(list
8548 "-Dplymouth=disabled"
8549 "-Dsystemd-journal=false"
8550
8551 ;; Using --with-initial-vt=7 allows GDM to run alongside TTY 1,
8552 ;; instead of having to replace it (i.e., stopping the mingetty
8553 ;; service for TTY 1 before starting GDM).
8554 "-Dinitial-vt=7"
8555
8556 ;; Use elogind instead of systemd.
8557 "-Dlogind-provider=elogind"
8558 "-Dsystemdsystemunitdir=no"
8559 "-Dsystemduserunitdir=no"
8560
8561 ;; Use '/etc/environment' for locale settings instead of the
8562 ;; systemd-specific '/etc/locale.conf'.
8563 "-Dlang-file=/etc/environment"
8564
8565 (string-append "-Dudev-dir=" #$output "/lib/udev")
8566
8567 "--localstatedir=/var"
8568 (string-append "-Ddefault-path="
8569 (string-join '("/run/setuid-programs"
8570 "/run/current-system/profile/bin"
8571 "/run/current-system/profile/sbin")
8572 ":"))
8573 ;; Put GDM in bindir so that glib-or-gtk-build-system wraps the
8574 ;; XDG_DATA_DIRS so that it finds its schemas.
8575 "--sbindir" (string-append #$output "/bin"))
8576 #:phases
8577 #~(modify-phases %standard-phases
8578 (add-after 'unpack 'patch-paths
8579 (lambda* (#:key inputs #:allow-other-keys)
8580 (substitute* "daemon/gdm-session.c"
8581 (("dbus-run-session")
8582 (search-input-file inputs "bin/dbus-run-session")))))
8583 (add-before 'configure 'pre-configure
8584 (lambda* (#:key inputs #:allow-other-keys)
8585 ;; We don't have <systemd/sd-daemon.h>.
8586 (substitute* '("common/gdm-log.c"
8587 "daemon/gdm-server.c"
8588 "daemon/gdm-session-worker.c"
8589 "daemon/gdm-session-worker-job.c")
8590 (("#include <systemd/sd-daemon\\.h>") ""))
8591 ;; Use elogind for sd-login.
8592 (substitute* '("common/gdm-common.c"
8593 "daemon/gdm-local-display-factory.c"
8594 "daemon/gdm-manager.c"
8595 "libgdm/gdm-user-switching.c")
8596 (("#include <systemd/sd-login\\.h>")
8597 "#include <elogind/sd-login.h>"))
8598 ;; Look for system-installed sessions in
8599 ;; /run/current-system/profile/share.
8600 (substitute* '("libgdm/gdm-sessions.c"
8601 "daemon/gdm-session.c"
8602 "daemon/gdm-display.c"
8603 "daemon/gdm-launch-environment.c")
8604 (("DATADIR \"/x")
8605 "\"/run/current-system/profile/share/x")
8606 (("DATADIR \"/wayland")
8607 "\"/run/current-system/profile/share/wayland")
8608 (("DATADIR \"/gnome")
8609 "\"/run/current-system/profile/share/gnome"))
8610 (let ((propagate '("GDM_CUSTOM_CONF"
8611 "GDM_DBUS_DAEMON"
8612 "GDM_X_SERVER"
8613 "GDM_X_SESSION"
8614 ;; XXX: Remove this once GNOME Shell is
8615 ;; a dependency of GDM.
8616 "XDG_DATA_DIRS")))
8617 (substitute* "daemon/gdm-session.c"
8618 (("set_up_session_environment \\(self\\);")
8619 (apply string-append
8620 "set_up_session_environment (self);\n"
8621 (map (lambda (name)
8622 (string-append
8623 "gdm_session_set_environment_variable "
8624 "(self, \"" name "\","
8625 "g_getenv (\"" name "\"));\n"))
8626 propagate)))))
8627 ;; Find the configuration file using an environment variable.
8628 (substitute* '("common/gdm-settings.c")
8629 (("GDM_CUSTOM_CONF")
8630 (string-append "(g_getenv(\"GDM_CUSTOM_CONF\") != NULL"
8631 " ? g_getenv(\"GDM_CUSTOM_CONF\")"
8632 " : GDM_CUSTOM_CONF)")))
8633 ;; Use service-supplied path to X.
8634 (substitute* '("daemon/gdm-server.c")
8635 (("\\(X_SERVER X_SERVER_ARG_FORMAT")
8636 "(\"%s\" X_SERVER_ARG_FORMAT, g_getenv (\"GDM_X_SERVER\")"))
8637 (substitute* '("daemon/gdm-wayland-session.c"
8638 "daemon/gdm-x-session.c")
8639 (("\"dbus-daemon\"")
8640 "g_getenv (\"GDM_DBUS_DAEMON\")")
8641 (("X_SERVER")
8642 "g_getenv (\"GDM_X_SERVER\")")
8643 (("GDMCONFDIR \"/Xsession\"")
8644 "g_getenv (\"GDM_X_SESSION\")"))
8645 ;; Use an absolute path for GNOME Session.
8646 (substitute* "daemon/gdm-launch-environment.c"
8647 (("\"gnome-session\"")
8648 (format #f "~s"
8649 (search-input-file inputs "bin/gnome-session"))))
8650 ;; Do not automatically select the placeholder session.
8651 (substitute* "daemon/gdm-session.c"
8652 (("!g_str_has_suffix [(]base_name, \"\\.desktop\"[)]")
8653 (string-append "!g_str_has_suffix (base_name, \".desktop\") || "
8654 "(g_strcmp0(search_dirs[i], \""
8655 #$output "/share/gdm/BuiltInSessions/"
8656 "\") == 0 && "
8657 "g_strcmp0(base_name, \"fail.desktop\") == 0)"))
8658 (("g_error [(]\"GdmSession: no session desktop files installed, aborting\\.\\.\\.\"[)];")
8659 "{ self->fallback_session_name = g_strdup(\"fail\"); goto out; }"))))
8660 (add-before 'install 'install-logo
8661 (lambda* (#:key inputs #:allow-other-keys)
8662 (let ((icon (search-input-file inputs "share/icons/hicolor/\
8663 scalable/apps/guix-white-icon.svg"))
8664 (schema (string-append #$output "/share/glib-2.0/schemas/\
8665 org.gnome.login-screen.gschema.override")))
8666 (mkdir-p (dirname schema))
8667 (with-output-to-file schema
8668 (lambda ()
8669 (format #t "\
8670 [org.gnome.login-screen]
8671 logo='~a'~%" icon))))))
8672 ;; GDM requires that there be at least one desktop entry
8673 ;; file. This phase installs a hidden one that simply
8674 ;; fails. This enables users to use GDM with a
8675 ;; '~/.xsession' script with no other desktop entry files.
8676 ;; See <https://bugs.gnu.org/35068>.
8677 (add-after 'install 'install-placeholder-desktop-entry
8678 (lambda _
8679 (let* ((sessions (string-append #$output
8680 "/share/gdm/BuiltInSessions"))
8681 (fail (string-append sessions "/fail.desktop")))
8682 (mkdir-p sessions)
8683 (with-output-to-file fail
8684 (lambda ()
8685 (for-each
8686 display
8687 '("[Desktop Entry]\n"
8688 "Encoding=UTF-8\n"
8689 "Type=Application\n"
8690 "Name=Fail\n"
8691 "Comment=This session fails immediately.\n"
8692 "NoDisplay=true\n"
8693 "Exec=false\n")))))))
8694 ;; GDM needs GNOME Session to run these applications. We link
8695 ;; their autostart files in `share/gdm/greeter/autostart'
8696 ;; because GDM explicitly tells GNOME Session to look there.
8697 ;;
8698 ;; XXX: GNOME Shell should be linked here too, but currently
8699 ;; GNOME Shell depends on GDM.
8700 (add-after 'install 'link-autostart-files
8701 (lambda* (#:key inputs #:allow-other-keys)
8702 (let ((autostart (string-append #$output "/share/gdm/"
8703 "greeter/autostart"))
8704 (settings #$(this-package-input "gnome-settings-daemon")))
8705 (mkdir-p autostart)
8706 (with-directory-excursion autostart
8707 (for-each (lambda (desktop)
8708 (symlink desktop (basename desktop)))
8709 (find-files
8710 (string-append settings "/etc/xdg"))))))))))
8711 (native-inputs
8712 (list `(,glib "bin") ;for glib-compile-schemas, etc.
8713 dconf
8714 gobject-introspection
8715 guix-icons
8716 intltool
8717 itstool
8718 libxml2
8719 pkg-config))
8720 (inputs
8721 (list accountsservice
8722 check ;for testing
8723 dbus
8724 elogind
8725 eudev
8726 gnome-session
8727 gnome-settings-daemon
8728 gtk+
8729 iso-codes
8730 libcanberra
8731 libgudev
8732 linux-pam))
8733 (synopsis "Display manager for GNOME")
8734 (home-page "https://wiki.gnome.org/Projects/GDM/")
8735 (description
8736 "GNOME Display Manager is a system service that is responsible for
8737 providing graphical log-ins and managing local and remote displays.")
8738 (license license:gpl2+)))
8739
8740 (define-public libgtop
8741 (package
8742 (name "libgtop")
8743 (version "2.40.0")
8744 (source (origin
8745 (method url-fetch)
8746 (uri (string-append "mirror://gnome/sources/libgtop/"
8747 (version-major+minor version) "/"
8748 "libgtop-" version ".tar.xz"))
8749 (sha256
8750 (base32
8751 "1m6jbqk8maa52gxrf223442fr5bvvxgb7ham6v039i3r1i62gwvq"))))
8752 (build-system gnu-build-system)
8753 (native-inputs
8754 (list gobject-introspection intltool perl pkg-config))
8755 (propagated-inputs
8756 (list glib)) ; required by libgtop-2.0.pc
8757 (synopsis "Portable system access library")
8758 (home-page "https://www.gnome.org/")
8759 (description
8760 "LibGTop is a library to get system specific data such as CPU and memory
8761 usage and information about running processes.")
8762 (license license:gpl2+)))
8763
8764 (define-public gnome-bluetooth
8765 (package
8766 (name "gnome-bluetooth")
8767 (version "42.4")
8768 (source (origin
8769 (method url-fetch)
8770 (uri (string-append "mirror://gnome/sources/gnome-bluetooth/"
8771 (version-major+minor version) "/"
8772 "gnome-bluetooth-" version ".tar.xz"))
8773 (sha256
8774 (base32
8775 "1p5wq3rh9p7fhka57qcds6lvphd26yyc18ilncx95jbcvcfcyvqx"))))
8776 (build-system meson-build-system)
8777 (native-inputs
8778 (list gettext-minimal
8779 gobject-introspection
8780 `(,glib "bin") ;for gdbus-codegen, etc.
8781 libxml2
8782 pkg-config
8783 python
8784 python-dbus))
8785 (propagated-inputs
8786 ;; These are all required by the gnome-bluetooth .pc file.
8787 (list glib
8788 gtk
8789 libadwaita))
8790 (inputs
8791 (list eudev
8792 gsound
8793 libnotify
8794 ;; TODO: Delete pango-next after it's the default.
8795 pango-next
8796 python-dbus
8797 upower))
8798 (synopsis "GNOME Bluetooth subsystem")
8799 (home-page "https://wiki.gnome.org/Projects/GnomeBluetooth")
8800 (description
8801 "This package contains tools for managing and manipulating Bluetooth
8802 devices using the GNOME desktop.")
8803 (license license:lgpl2.1+)))
8804
8805 (define-public gnome-control-center
8806 (package
8807 (name "gnome-control-center")
8808 (version "42.3")
8809 (source (origin
8810 (method url-fetch)
8811 (uri (string-append "mirror://gnome/sources/" name "/"
8812 (version-major version) "/"
8813 name "-" version ".tar.xz"))
8814 (sha256
8815 (base32
8816 "0zhw6hcrrcpq1zjkyzr5ipznxnzd2aczrqd7n2y7xbz21mjy62nf"))))
8817 (build-system meson-build-system)
8818 (arguments
8819 (list
8820 #:glib-or-gtk? #t
8821 #:phases
8822 #~(modify-phases %standard-phases
8823 (add-before 'configure 'patch-paths
8824 (lambda* (#:key inputs #:allow-other-keys)
8825 (substitute* "panels/datetime/tz.h"
8826 (("/usr/share/zoneinfo/zone.tab")
8827 (search-input-file inputs "share/zoneinfo/zone.tab")))
8828 (substitute* "tests/datetime/test-endianess.c"
8829 (("/usr/share/locale")
8830 (search-input-directory inputs "share/locale")))
8831 (substitute* "panels/region/cc-region-panel.c"
8832 (("\"gkbd-keyboard-display")
8833 (string-append "\"" (search-input-file
8834 inputs "bin/gkbd-keyboard-display"))))
8835 (substitute* '("panels/network/net-device-bluetooth.c"
8836 "panels/network/net-device-mobile.c"
8837 "panels/network/connection-editor/net-connection-editor.c")
8838 (("\"nm-connection-editor")
8839 (string-append "\"" (search-input-file
8840 inputs "bin/nm-connection-editor"))))
8841 (substitute* "panels/user-accounts/run-passwd.c"
8842 (("/usr/bin/passwd")
8843 "/run/setuid-programs/passwd"))
8844 (substitute* "panels/info-overview/cc-info-overview-panel.c"
8845 (("DATADIR \"/gnome/gnome-version.xml\"")
8846 (format #f "~s" (search-input-file
8847 inputs "share/gnome/gnome-version.xml"))))))
8848 (add-after 'unpack 'skip-gtk-update-icon-cache
8849 ;; Don't create 'icon-theme.cache'.
8850 (lambda _
8851 (substitute* "build-aux/meson/meson_post_install.py"
8852 (("gtk-update-icon-cache") (which "true"))))))))
8853 (native-inputs
8854 (list docbook-xsl
8855 gettext-minimal
8856 `(,glib "bin") ;for glib-mkenums, etc.
8857 libxslt
8858 pkg-config
8859 python
8860 python-dbusmock
8861 xorg-server-for-tests))
8862 (inputs
8863 (list accountsservice
8864 colord-gtk
8865 cups
8866 dconf
8867 gcr
8868 gnome-bluetooth
8869 gnome-desktop
8870 gnome-online-accounts
8871 gnome-session
8872 gnome-settings-daemon
8873 gnutls
8874 grilo
8875 gsound
8876 ibus
8877 libadwaita
8878 libgnomekbd
8879 libgudev
8880 libgtop
8881 libnma
8882 libpwquality
8883 librsvg ;for loading SVG files
8884 libsecret
8885 libxml2
8886 libwacom
8887 mesa
8888 mit-krb5
8889 modem-manager
8890 network-manager-applet
8891 polkit
8892 pulseaudio
8893 samba
8894 tzdata
8895 udisks
8896 upower))
8897 (synopsis "Utilities to configure the GNOME desktop")
8898 (home-page "https://www.gnome.org/")
8899 (description
8900 "This package contains configuration applets for the GNOME desktop,
8901 allowing to set accessibility configuration, desktop fonts, keyboard and mouse
8902 properties, sound setup, desktop theme and background, user interface
8903 properties, screen resolution, and other GNOME parameters.")
8904 (license license:gpl2+)))
8905
8906 (define-public gnome-shell
8907 (package
8908 (name "gnome-shell")
8909 (version "42.4")
8910 (source (origin
8911 (method url-fetch)
8912 (uri (string-append "mirror://gnome/sources/" name "/"
8913 (version-major version) "/"
8914 name "-" version ".tar.xz"))
8915 (sha256
8916 (base32
8917 "0kn5fclciybp2fs38wd39hdz85y91pas0ckfa02pmyx91sbz4pw7"))))
8918 (build-system meson-build-system)
8919 (arguments
8920 (let ((disallowed-references
8921 (list (gexp-input glib "bin")
8922 (gexp-input libxslt)
8923 (gexp-input meson)
8924 (gexp-input ruby-sass))))
8925 (list
8926 #:glib-or-gtk? #t
8927 #:disallowed-references disallowed-references
8928 #:configure-flags
8929 #~(list "-Dsystemd=false"
8930 ;; Otherwise, the RUNPATH will lack the final path component.
8931 (string-append "-Dc_link_args=-Wl,-rpath="
8932 #$output "/lib/gnome-shell"))
8933 #:modules '((guix build meson-build-system)
8934 (guix build utils)
8935 (ice-9 match)
8936 (srfi srfi-1)
8937 (srfi srfi-26))
8938 #:phases
8939 #~(modify-phases %standard-phases
8940 (add-after 'unpack 'fix-keysdir
8941 (lambda _
8942 (let ((keysdir
8943 (string-append #$output
8944 "/share/gnome-control-center/keybindings")))
8945 (substitute* "meson.build"
8946 (("keysdir =.*")
8947 (string-append "keysdir = '" keysdir "'\n"))))))
8948 (add-after 'unpack 'skip-gtk-update-icon-cache
8949 ;; Don't create 'icon-theme.cache'.
8950 (lambda _
8951 (substitute* "meson.build"
8952 (("gtk_update_icon_cache: true")
8953 "gtk_update_icon_cache: false"))))
8954 (add-before 'configure 'record-absolute-file-names
8955 (lambda* (#:key inputs #:allow-other-keys)
8956 (let ((ibus-daemon (search-input-file inputs "bin/ibus-daemon"))
8957 (gkbd-keyboard-display
8958 (search-input-file inputs "bin/gkbd-keyboard-display")))
8959 (substitute* "js/misc/ibusManager.js"
8960 (("'ibus-daemon'")
8961 (string-append "'" ibus-daemon "'")))
8962 (substitute* "js/ui/status/keyboard.js"
8963 (("'gkbd-keyboard-display'")
8964 (string-append "'" gkbd-keyboard-display "'"))))))
8965 (add-before 'check 'pre-check
8966 (lambda* (#:key inputs #:allow-other-keys)
8967 ;; Tests require a running X server.
8968 (system "Xvfb :1 &")
8969 (setenv "DISPLAY" ":1")
8970 (setenv "HOME" "/tmp"))) ;to avoid "fatal" warnings
8971 (add-after 'install 'wrap-programs
8972 (lambda* (#:key inputs #:allow-other-keys)
8973 (let ((gi-typelib-path (getenv "GI_TYPELIB_PATH"))
8974 (python-path
8975 (string-join
8976 (filter (lambda (item)
8977 (not (any (cut string-prefix? <> item)
8978 '#$disallowed-references)))
8979 (string-split (getenv "GUIX_PYTHONPATH") #\:))
8980 ":")))
8981 (for-each
8982 (lambda (prog)
8983 (wrap-program (string-append #$output "/bin/" prog)
8984 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8985 '("gnome-shell" "gnome-extensions-app"))
8986 (substitute* (string-append #$output "/share/gnome-shell/"
8987 "org.gnome.Shell.Extensions")
8988 (("imports\\.package\\.start" all)
8989 (string-append "'" gi-typelib-path "'.split(':').forEach("
8990 "path => imports.gi.GIRepository.Repository."
8991 "prepend_search_path(path));\n"
8992 all)))
8993 (for-each
8994 (lambda (prog)
8995 (wrap-program (string-append #$output "/bin/" prog)
8996 `("GUIX_PYTHONPATH" ":" prefix (,python-path))
8997 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
8998 '("gnome-shell-perf-tool")))))
8999 (add-after 'install 'rewire
9000 (lambda* (#:key inputs #:allow-other-keys)
9001 (for-each
9002 (lambda (tool)
9003 (call-with-output-file (string-append #$output
9004 "/bin/" tool)
9005 (lambda (port)
9006 (format port "#!~a
9007 printf '~a is deprecated. Use the \"gnome-extensions\" CLI or \
9008 \"gnome-extensions-app\" instead.\\n'"
9009 (search-input-file inputs "bin/bash")
9010 tool))))
9011 '("gnome-shell-extension-tool" "gnome-shell-extension-prefs"))))
9012 (replace 'glib-or-gtk-wrap
9013 (let ((wrap (assoc-ref %standard-phases 'glib-or-gtk-wrap)))
9014 (lambda* (#:key inputs outputs #:allow-other-keys)
9015 ;; By default glib:bin et al. would end up in the XDG_DATA_DIRS
9016 ;; settings of the wrappers created by the 'glib-or-gtk-wrap'
9017 ;; phase. Fix that since we don't need these.
9018 (wrap #:inputs
9019 (filter (match-lambda
9020 ((label . output)
9021 (not (member output
9022 '#$disallowed-references))))
9023 inputs)
9024 #:outputs outputs))))))))
9025 (native-inputs
9026 (list asciidoc
9027 gettext-minimal
9028 `(,glib "bin") ;for glib-compile-schemas, etc.
9029 desktop-file-utils ;for update-desktop-database
9030 gobject-introspection
9031 hicolor-icon-theme
9032 libxslt
9033 perl
9034 pkg-config
9035 python
9036 ruby-sass
9037 sassc
9038 ;; For tests
9039 xorg-server-for-tests))
9040 (inputs
9041 (list accountsservice
9042 caribou
9043 docbook-xsl
9044 evolution-data-server
9045 gcr
9046 gdm
9047 librsvg
9048 gjs
9049 gtk
9050 gnome-autoar
9051 gnome-bluetooth
9052 gnome-desktop
9053 gnome-settings-daemon
9054 graphene
9055 gst-plugins-base
9056 ibus
9057 libcanberra
9058 libcroco
9059 libgnomekbd ;for gkbd-keyboard-display
9060 libgweather4
9061 libnma
9062 libsoup
9063 mesa-headers
9064 mutter
9065 network-manager-applet
9066 polkit
9067 pulseaudio
9068 python-pygobject
9069 startup-notification
9070 telepathy-logger
9071 upower
9072 ;; XXX: These requirements were added in 3.24, but no mention in NEWS.
9073 ;; Missing propagation? See also: <https://bugs.gnu.org/27264>
9074 librsvg
9075 geoclue))
9076 (synopsis "Desktop shell for GNOME")
9077 (home-page "https://wiki.gnome.org/Projects/GnomeShell")
9078 (description
9079 "GNOME Shell provides core user interface functions for the GNOME desktop,
9080 like switching to windows and launching applications.")
9081 (license license:gpl2+)))
9082
9083 (define-public gtk-vnc
9084 (package
9085 (name "gtk-vnc")
9086 (version "1.2.0")
9087 (source
9088 (origin
9089 (method url-fetch)
9090 (uri
9091 (string-append "mirror://gnome/sources/" name "/"
9092 (version-major+minor version) "/"
9093 name "-" version ".tar.xz"))
9094 (sha256
9095 (base32 "0jmr6igyzcj2wmx5v5ywaazvdz3hx6a6rys26yb4l4s71l281bvs"))))
9096 (build-system meson-build-system)
9097 (arguments
9098 `(#:meson ,meson-0.60
9099 #:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
9100 (native-inputs
9101 (append
9102 ;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
9103 ;; dependency on other platforms (FIXME).
9104 (if (target-x86-64?)
9105 (list gjs)
9106 '())
9107 (list gettext-minimal
9108 `(,glib "bin")
9109 gobject-introspection
9110 node
9111 perl
9112 pkg-config
9113 python-wrapper
9114 vala)))
9115 (inputs
9116 (list cairo (librsvg-for-system)))
9117 (propagated-inputs
9118 ;; These are all in Requires or Requires.private of the .pc files.
9119 (list cyrus-sasl
9120 gdk-pixbuf
9121 glib
9122 gnutls
9123 gtk+
9124 libgcrypt
9125 libx11
9126 pulseaudio
9127 zlib))
9128 (synopsis "VNC client viewer widget for GTK+")
9129 (description "GTK-VNC is a project providing client side APIs for the RFB
9130 protocol / VNC remote desktop technology. It is built using coroutines allowing
9131 it to be completely asynchronous while remaining single threaded. It provides a
9132 core C library, and bindings for Python (PyGTK).")
9133 (home-page "https://wiki.gnome.org/Projects/gtk-vnc")
9134 (license license:lgpl2.1+)))
9135
9136 (define-public gnome-autoar
9137 (package
9138 (name "gnome-autoar")
9139 (version "0.4.3")
9140 (source (origin
9141 (method url-fetch)
9142 (uri (string-append "mirror://gnome/sources/" name "/"
9143 (version-major+minor version) "/"
9144 name "-" version ".tar.xz"))
9145 (sha256
9146 (base32
9147 "124y4j3wgb6axgfzw9f00865r033fg7b0qy9qgfsp5ilan4hgpvv"))))
9148 (build-system meson-build-system)
9149 (native-inputs
9150 (list gobject-introspection `(,glib "bin") pkg-config))
9151 (propagated-inputs
9152 (list libarchive)) ; Required by gnome-autoar-0.pc
9153 (inputs
9154 (list gtk+))
9155 (synopsis "Archives integration support for GNOME")
9156 (home-page "https://git.gnome.org/browse/gnome-autoar/")
9157 (description
9158 "GNOME Autoar is a library which makes creating and extracting archives
9159 easy, safe, and automatic.")
9160 (license license:lgpl2.1+)))
9161
9162 (define-public tracker
9163 (package
9164 (name "tracker")
9165 (version "3.3.3")
9166 (source (origin
9167 (method url-fetch)
9168 (uri (string-append "mirror://gnome/sources/tracker/"
9169 (version-major+minor version) "/"
9170 "tracker-" version ".tar.xz"))
9171 (sha256
9172 (base32
9173 "0r144kdqxdzs51qn495vablzf1zxkhkk6imrlrzj9wiqwc2gg520"))))
9174 (build-system meson-build-system)
9175 (arguments
9176 `(#:glib-or-gtk? #t
9177 #:configure-flags
9178 ;; Otherwise, the RUNPATH will lack the final path component.
9179 (list (string-append "-Dc_link_args=-Wl,-rpath="
9180 (assoc-ref %outputs "out") "/lib:"
9181 (assoc-ref %outputs "out") "/lib/tracker-3.0")
9182 "-Ddocs=false"
9183 "-Dsystemd_user_services=false")
9184 #:phases
9185 (modify-phases %standard-phases
9186 (add-before 'configure 'set-shell
9187 (lambda _
9188 (setenv "SHELL" (which "bash"))))
9189 (add-before 'configure 'fix-paths
9190 (lambda* (#:key inputs #:allow-other-keys)
9191 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9192 (file (search-input-file inputs manpage)))
9193 (substitute* "docs/manpages/meson.build"
9194 (("/etc/asciidoc[^']+")
9195 file)))))
9196 (replace 'check
9197 (lambda* (#:key tests? #:allow-other-keys)
9198 (when tests?
9199 ;; Some tests expect to write to $HOME.
9200 (setenv "HOME" "/tmp")
9201 (invoke "dbus-run-session" "--" "meson" "test"
9202 "--print-errorlogs")))))))
9203 (native-inputs
9204 (list gettext-minimal
9205 `(,glib "bin")
9206 gobject-introspection
9207 docbook-xsl
9208 docbook-xml
9209 gsettings-desktop-schemas
9210 asciidoc
9211 libxslt
9212 cmake-minimal
9213 python-pygobject
9214 gtk-doc/stable
9215 dbus
9216 pkg-config
9217 python
9218 vala))
9219 (inputs
9220 (list dbus
9221 libsoup))
9222 (propagated-inputs
9223 ;; These are in Requires or Requires.private of tracker-sparql-3.0.pc.
9224 (list glib
9225 icu4c ;libunistring gets miner-miner-fs test to fail
9226 json-glib
9227 libxml2
9228 sqlite))
9229 (synopsis "Metadata database, indexer and search tool")
9230 (home-page "https://wiki.gnome.org/Projects/Tracker")
9231 (description
9232 "Tracker is a search engine and triplestore for desktop, embedded and mobile.
9233
9234 It is a middleware component aimed at desktop application developers who want
9235 their apps to browse and search user content. It's not designed to be used
9236 directly by desktop users, but it provides a commandline tool named
9237 @command{tracker} for the adventurous.
9238
9239 Tracker allows your application to instantly perform full-text searches across
9240 all documents. This feature is used by the @{emph{search} bar in GNOME Files, for
9241 example. This is achieved by indexing the user's home directory in the
9242 background.
9243
9244 Tracker also allows your application to query and list content that the user
9245 has stored. For example, GNOME Music displays all the music files that are
9246 found by Tracker. This means that GNOME Music doesn't need to maintain a
9247 database of its own.
9248
9249 If you need to go beyond simple searches, Tracker is also a linked data
9250 endpoint and it understands SPARQL.")
9251 ;; https://gitlab.gnome.org/GNOME/tracker/-/blob/master/COPYING:
9252 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9253 ;; libstemmer is bsd-3 and the rest is gpl2+.
9254 (license (list license:gpl2+
9255 license:bsd-3
9256 license:lgpl2.1+))))
9257
9258 (define-public tracker-miners
9259 (package
9260 (name "tracker-miners")
9261 (version "3.3.1")
9262 (source (origin
9263 (method url-fetch)
9264 (uri (string-append "mirror://gnome/sources/tracker-miners/"
9265 (version-major+minor version)
9266 "/tracker-miners-" version ".tar.xz"))
9267 (sha256
9268 (base32
9269 "151w6ljq1gk9idqfq9qs3w16vms91jnxy59c9kx6jaf0fb9cdp9y"))))
9270 (build-system meson-build-system)
9271 (arguments
9272 `(#:glib-or-gtk? #t
9273 #:configure-flags
9274 (list "-Dminer_rss=false" ; libgrss is required.
9275 ;; Ensure the RUNPATH contains all installed library locations.
9276 (string-append "-Dc_link_args=-Wl,-rpath="
9277 (assoc-ref %outputs "out")
9278 "/lib/tracker-miners-3.0")
9279 ;; TODO: Enable functional tests. Currently, the following error
9280 ;; appears:
9281 ;; Exception: The functional tests require DConf to be the default
9282 ;; GSettings backend. Got GKeyfileSettingsBackend instead.
9283 "-Dfunctional_tests=false"
9284 "-Dsystemd_user_services=false")
9285 #:phases
9286 (modify-phases %standard-phases
9287 (add-before 'configure 'set-shell
9288 (lambda _
9289 (setenv "SHELL" (which "bash"))))
9290 (add-before 'configure 'fix-paths
9291 (lambda* (#:key inputs #:allow-other-keys)
9292 (let* ((manpage "/etc/asciidoc/docbook-xsl/manpage.xsl")
9293 (file (search-input-file inputs manpage)))
9294 (substitute* "docs/manpages/meson.build"
9295 (("/etc/asciidoc[^']+")
9296 file)))))
9297 (add-before 'configure 'fix-tests
9298 (lambda* (#:key inputs #:allow-other-keys)
9299 ;; Disable those tests that require the functional_tests option
9300 ;; to be true and the UPower daemon to be started.
9301 (substitute* "examples/python/meson.build"
9302 (("foreach example_name:.*")
9303 "foreach example_name: []"))
9304 ;; Disable this test that is failing randomly:
9305 ;; https://gitlab.gnome.org/GNOME/tracker-miners/-/issues/170.
9306 (substitute* "tests/libtracker-miner/meson.build"
9307 (("'miner-fs'.*")
9308 ""))))
9309 (replace 'check
9310 (lambda* (#:key tests? #:allow-other-keys)
9311 (when tests?
9312 ;; Some tests expect to write to $HOME.
9313 (setenv "HOME" "/tmp")
9314 (setenv "LANG" "en_US.UTF-8")
9315 (invoke "dbus-run-session" "--" "meson" "test"
9316 "--print-errorlogs"
9317 ;; Do not run the slow test, which fail (see:
9318 ;; https://gitlab.gnome.org/GNOME/tracker-miners
9319 ;; /-/issues/226).
9320 "--no-suite" "slow")))))))
9321 (native-inputs
9322 (list dbus
9323 intltool
9324 `(,glib "bin")
9325 docbook-xsl
9326 docbook-xml
9327 gsettings-desktop-schemas
9328 asciidoc
9329 libxslt
9330 gobject-introspection
9331 pkg-config
9332 python-pygobject))
9333 (inputs
9334 (list exempi
9335 ffmpeg
9336 flac
9337 giflib
9338 glib
9339 gstreamer
9340 icu4c
9341 json-glib
9342 libcue
9343 libexif
9344 libgsf
9345 libgxps
9346 libiptcdata
9347 libjpeg-turbo
9348 libosinfo
9349 libpng
9350 libseccomp
9351 libsoup
9352 libtiff
9353 libvorbis
9354 libxml2
9355 poppler
9356 shared-mime-info
9357 taglib
9358 totem-pl-parser
9359 tracker
9360 upower
9361 zlib))
9362 (synopsis "Metadata database, indexer and search tool")
9363 (home-page "https://wiki.gnome.org/Projects/Tracker")
9364 (description
9365 "Tracker is an advanced framework for first class objects with associated
9366 metadata and tags. It provides a one stop solution for all metadata, tags,
9367 shared object databases, search tools and indexing.")
9368 ;; src/libtracker-*/* and src/tracker-extract/* are covered by lgpl2.1+,
9369 ;; src/gvdb/* are covered by lgpl2.0+, and the rest is gpl2+.
9370 (license (list license:gpl2+
9371 license:lgpl2.1+
9372 license:lgpl2.0+))))
9373
9374 (define-public nautilus
9375 (package
9376 (name "nautilus")
9377 (version "41.1")
9378 (source (origin
9379 (method url-fetch)
9380 (uri (string-append "mirror://gnome/sources/" name "/"
9381 (version-major version) "/"
9382 name "-" version ".tar.xz"))
9383 (sha256
9384 (base32
9385 "0bsqh241m43x3qb3z0mjakjic610ncl95zhjdgls649phnc30qry"))
9386 (patches
9387 ;; This patch is already upstream and can be removed next
9388 ;; release.
9389 (search-patches "nautilus-add-libportal-gtk3.patch"))))
9390 (build-system meson-build-system)
9391 (arguments
9392 `(#:glib-or-gtk? #t
9393 #:phases
9394 (modify-phases %standard-phases
9395 (add-after 'unpack 'make-extensible
9396 (lambda _
9397 (substitute* "src/nautilus-module.c"
9398 (("static gboolean initialized = FALSE;" all)
9399 (string-append all "
9400 const char *extension_path;
9401 char **extension_dirs, **d;
9402 ")
9403 )
9404 (("load_module_dir \\(NAUTILUS_EXTENSIONDIR\\);" all)
9405 (string-append all
9406 "
9407 extension_path = g_getenv (\"NAUTILUS_EXTENSION_PATH\");
9408 if (extension_path)
9409 {
9410 extension_dirs = g_strsplit (extension_path, \":\", -1);
9411 for (d = extension_dirs; d != NULL && *d != NULL; d++)
9412 load_module_dir(*d);
9413 g_strfreev(extension_dirs);
9414 }
9415 ")))))
9416 (add-after 'unpack 'skip-gtk-update-icon-cache
9417 ;; Don't create 'icon-theme.cache'.
9418 (lambda _
9419 (substitute* "build-aux/meson/postinstall.py"
9420 (("gtk-update-icon-cache") "true")))))
9421 ;; XXX: FAIL: check-nautilus
9422 ;; Settings schema 'org.gnome.nautilus.preferences' is not installed
9423 #:tests? #f))
9424 (native-inputs
9425 (list desktop-file-utils ; for update-desktop-database
9426 `(,glib "bin") ; for glib-mkenums, etc.
9427 gobject-introspection
9428 intltool
9429 pkg-config
9430 python))
9431 (inputs
9432 (list dconf
9433 gexiv2
9434 gvfs
9435 exempi
9436 gnome-desktop
9437 gnome-autoar
9438 gst-plugins-base
9439 json-glib
9440 libhandy
9441 libportal
9442 libseccomp
9443 libselinux
9444 libsoup-minimal-2 ; to satisfy tracker dependencies
9445 tracker
9446 tracker-miners
9447 ;; XXX: gtk+ is required by libnautilus-extension.pc
9448 ;;
9449 ;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
9450 ;; package. See:
9451 ;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
9452 gtk+
9453 libexif
9454 libxml2))
9455 (native-search-paths
9456 (list (search-path-specification
9457 (variable "NAUTILUS_EXTENSION_PATH")
9458 (files '("lib/nautilus/site-extensions")))))
9459 (synopsis "File manager for GNOME")
9460 (home-page "https://wiki.gnome.org/Apps/Nautilus")
9461 (description
9462 "Nautilus (Files) is a file manager designed to fit the GNOME desktop
9463 design and behaviour, giving the user a simple way to navigate and manage its
9464 files.")
9465 (license license:gpl2+)))
9466
9467 (define-public baobab
9468 (package
9469 (name "baobab")
9470 (version "42.0")
9471 (source (origin
9472 (method url-fetch)
9473 (uri (string-append
9474 "mirror://gnome/sources/" name "/"
9475 (version-major version) "/"
9476 name "-" version ".tar.xz"))
9477 (sha256
9478 (base32
9479 "1p2hg8qxbvdfax9z4qjhdsxia93zrsdq58krx8zjnn5ipbkan6jb"))))
9480 (build-system meson-build-system)
9481 (arguments
9482 '(#:glib-or-gtk? #t))
9483 (native-inputs
9484 (list desktop-file-utils ;for update-desktop-database
9485 gettext-minimal
9486 `(,glib "bin")
9487 `(,gtk+ "bin") ;for gtk-update-icon-cache
9488 itstool
9489 libxml2
9490 pkg-config
9491 python
9492 vala))
9493 (inputs
9494 (list gtk libadwaita libhandy
9495 ;; XXX: Ensure pango-next is used instead of the equally propagated
9496 ;; 'pango'.
9497 pango-next))
9498 (synopsis "Disk usage analyzer for GNOME")
9499 (description
9500 "Baobab (Disk Usage Analyzer) is a graphical application to analyse disk
9501 usage in the GNOME desktop environment. It can easily scan device volumes or
9502 a specific user-requested directory branch (local or remote). Once the scan
9503 is complete it provides a graphical representation of each selected folder.")
9504 (home-page "https://wiki.gnome.org/Apps/Baobab")
9505 (license license:gpl2+)))
9506
9507 (define-public gnome-backgrounds
9508 (package
9509 (name "gnome-backgrounds")
9510 (version "41.0")
9511 (source
9512 (origin
9513 (method url-fetch)
9514 (uri (string-append "mirror://gnome/sources/" name "/"
9515 (version-major version) "/"
9516 name "-" version ".tar.xz"))
9517 (sha256
9518 (base32
9519 "0i9id5z72dqddh94648zylyf41amqq5lhny8sbyg1v8v4q6sr88x"))))
9520 (build-system meson-build-system)
9521 (native-inputs (list gettext-minimal))
9522 (home-page "https://gitlab.gnome.org/GNOME/gnome-backgrounds")
9523 (synopsis "Background images for the GNOME desktop")
9524 (description
9525 "GNOME backgrounds package contains a collection of graphics files which
9526 can be used as backgrounds in the GNOME Desktop environment. Additionally,
9527 the package creates the proper framework and directory structure so that you
9528 can add your own files to the collection.")
9529 (license (list license:gpl2+
9530 license:cc-by2.0
9531 license:cc-by-sa2.0
9532 license:cc-by-sa3.0))))
9533
9534 (define-public gnome-screenshot
9535 (package
9536 (name "gnome-screenshot")
9537 (version "41.0")
9538 (source
9539 (origin
9540 (method url-fetch)
9541 (uri (string-append "mirror://gnome/sources/" name "/"
9542 (version-major version) "/"
9543 name "-" version ".tar.xz"))
9544 (sha256
9545 (base32
9546 "15wmikwk62cdi93gas77nqh4fbhlrxrncyfmcd1gfa34jbn7vnsa"))
9547 (patches
9548 (search-patches "gnome-screenshot-meson-0.60.patch"))))
9549 (build-system meson-build-system)
9550 (arguments
9551 '(#:glib-or-gtk? #t
9552 #:phases
9553 (modify-phases %standard-phases
9554 (add-after 'unpack 'skip-gtk-update-icon-cache
9555 ;; Don't create 'icon-theme.cache'.
9556 (lambda _
9557 (substitute* "build-aux/postinstall.py"
9558 (("gtk-update-icon-cache") "true")))))))
9559 (native-inputs
9560 (list appstream-glib
9561 desktop-file-utils ; for update-desktop-database
9562 gettext-minimal
9563 `(,glib "bin") ; for glib-compile-schemas, etc.
9564 pkg-config
9565 python))
9566 (inputs
9567 (list gtk+
9568 libhandy
9569 libx11
9570 libxext))
9571 (home-page "https://gitlab.gnome.org/GNOME/gnome-screenshot")
9572 (synopsis "Take pictures of your screen")
9573 (description
9574 "GNOME Screenshot is a utility used for taking screenshots of the entire
9575 screen, a window or a user defined area of the screen, with optional
9576 beautifying border effects.")
9577 (license license:gpl2+)))
9578
9579 (define-public dconf-editor
9580 (package
9581 (name "dconf-editor")
9582 (version "3.38.3")
9583 (source
9584 (origin
9585 (method url-fetch)
9586 (uri (string-append "mirror://gnome/sources/" name "/"
9587 (version-major+minor version) "/"
9588 name "-" version ".tar.xz"))
9589 (sha256
9590 (base32
9591 "1qvrxrk1h8bd75xwasxbvlkqrw6xkavjimvc7sslkw6lvb3z86jp"))))
9592 (build-system meson-build-system)
9593 (native-inputs
9594 `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0.
9595 ("gtk+-bin" ,gtk+ "bin") ; for gtk-update-icon-cache
9596 ("intltool" ,intltool)
9597 ("pkg-config" ,pkg-config)
9598 ("vala" ,vala)))
9599 (inputs
9600 (list dconf gtk+ libxml2))
9601 (home-page "https://gitlab.gnome.org/GNOME/dconf-editor")
9602 (synopsis "Graphical editor for GNOME's dconf configuration system")
9603 (description
9604 "Dconf-editor is a graphical tool for browsing and editing the dconf
9605 configuration system for GNOME. It allows users to configure desktop
9606 software that do not provide their own configuration interface.")
9607 (license license:lgpl2.1+)))
9608
9609 (define-public gnome-default-applications
9610 (package
9611 (name "gnome-default-applications")
9612 (version "0")
9613 (build-system trivial-build-system)
9614 (source #f)
9615 (propagated-inputs
9616 (list nautilus evince))
9617 (arguments
9618 `(#:modules ((guix build utils))
9619 #:builder
9620 (begin
9621 (use-modules (guix build utils))
9622 (let* ((out (assoc-ref %outputs "out"))
9623 (apps (string-append out "/share/applications")))
9624 (mkdir-p apps)
9625 (call-with-output-file (string-append apps "/gnome-mimeapps.list")
9626 (lambda (port)
9627 (format port "[Default Applications]\n")
9628 (format port "inode/directory=org.gnome.Nautilus.desktop\n")
9629 (format port "application/pdf=evince.desktop\n")
9630 (format port "application/postscript=evince.desktop\n")))
9631 #t))))
9632 (synopsis "Default MIME type associations for the GNOME desktop")
9633 (description
9634 "Given many installed packages which might handle a given MIME type, a
9635 user running the GNOME desktop probably has some preferences: for example,
9636 that folders be opened by default by the Nautilus file manager, not the Baobab
9637 disk usage analyzer. This package establishes that set of default MIME type
9638 associations for GNOME.")
9639 (license license:gpl3+)
9640 (home-page #f)))
9641
9642 (define-public libgovirt
9643 (package
9644 (name "libgovirt")
9645 (version "0.3.8")
9646 (source (origin
9647 (method url-fetch)
9648 (uri (string-append "mirror://gnome/sources/" name "/"
9649 (version-major+minor version) "/"
9650 name "-" version ".tar.xz"))
9651 (sha256
9652 (base32
9653 "1y0x1wyakj3ya33hgj0w1jkbcn50q21gmn2zyalxysqp55i1ij8x"))))
9654 (build-system glib-or-gtk-build-system)
9655 (native-inputs
9656 (list gettext-minimal
9657 `(,glib "bin")
9658 gobject-introspection
9659 gsettings-desktop-schemas
9660 `(,gtk+ "bin")
9661 pkg-config))
9662 (inputs
9663 (list glib-networking ; GIO plugin--for the tests
9664 rest))
9665 (synopsis "GoVirt Library")
9666 (description "GoVirt is a GObject wrapper for the oVirt REST API.")
9667 (home-page "https://gitlab.gnome.org/GNOME/libgovirt")
9668 (license license:gpl2+)))
9669
9670 (define-public gnome-weather
9671 (package
9672 (name "gnome-weather")
9673 (version "42.0")
9674 (source (origin
9675 (method url-fetch)
9676 (uri (string-append "mirror://gnome/sources/" name "/"
9677 (version-major version) "/"
9678 name "-" version ".tar.xz"))
9679 (sha256
9680 (base32
9681 "0rdl0ywdk8jlq819wr1sbdzdvsasz11pp30fylzvprakv28yd7jp"))))
9682 (build-system meson-build-system)
9683 (arguments
9684 (list
9685 #:glib-or-gtk? #t
9686 #:phases
9687 #~(modify-phases %standard-phases
9688 (add-after 'unpack 'fix-service-file
9689 (lambda _
9690 (substitute* "data/org.gnome.Weather.service.in"
9691 (("Exec=[[:graph:]]+")
9692 (string-append "Exec=" #$output
9693 "/bin/gnome-weather")))))
9694 (add-after 'unpack 'disable-gtk-update-icon-cache
9695 (lambda _
9696 (setenv "DESTDIR" "/")))
9697 (add-after 'install 'fix-desktop-file
9698 ;; FIXME: "gapplication launch org.gnome.Weather" fails for some
9699 ;; reason. See https://issues.guix.gnu.org/issue/39324.
9700 (lambda* (#:key outputs #:allow-other-keys)
9701 (substitute* (search-input-file
9702 outputs
9703 "share/applications/org.gnome.Weather.desktop")
9704 (("Exec=.*") "Exec=gnome-weather\n"))))
9705 (add-after 'install 'wrap
9706 (lambda* (#:key outputs #:allow-other-keys)
9707 ;; GNOME Weather needs the typelib files of GTK+, Pango etc at
9708 ;; runtime.
9709 (wrap-program (search-input-file outputs "bin/gnome-weather")
9710 `("GI_TYPELIB_PATH" ":" prefix
9711 (,(getenv "GI_TYPELIB_PATH")))))))))
9712 (native-inputs
9713 (list gettext-minimal
9714 `(,glib "bin")
9715 gobject-introspection
9716 pkg-config))
9717 (inputs
9718 (list appstream-glib
9719 bash-minimal
9720 geoclue
9721 gjs
9722 gsettings-desktop-schemas-next
9723 gtk
9724 libadwaita
9725 libgweather4))
9726 (synopsis "Weather monitoring for GNOME desktop")
9727 (description "GNOME Weather is a small application that allows you to
9728 monitor the current weather conditions for your city, or anywhere in the
9729 world.")
9730 (home-page "https://wiki.gnome.org/Apps/Weather")
9731 (license license:gpl2+)))
9732
9733 (define-public gnome
9734 (package
9735 (name "gnome")
9736 (version (package-version gnome-shell))
9737 (source #f)
9738 (build-system trivial-build-system)
9739 (arguments '(#:builder (begin (mkdir %output) #t)))
9740 (propagated-inputs
9741 `(;; GNOME-Core-OS-Services
9742 ("accountsservice" ,accountsservice)
9743 ("network-manager" ,network-manager)
9744 ("packagekit" ,packagekit)
9745 ("upower" ,upower)
9746 ;; GNOME-Core-Shell
9747 ("adwaita-icon-theme" ,adwaita-icon-theme)
9748 ("gdm" ,gdm)
9749 ("glib-networking" ,glib-networking)
9750 ("gnome-backgrounds" ,gnome-backgrounds)
9751 ("gnome-bluetooth" ,gnome-bluetooth)
9752 ("gnome-color-manager" ,gnome-color-manager)
9753 ("gnome-control-center" ,gnome-control-center)
9754 ("gnome-desktop" ,gnome-desktop)
9755 ("gnome-initial-setup" ,gnome-initial-setup)
9756 ("gnome-keyring" ,gnome-keyring)
9757 ("gnome-menus" ,gnome-menus)
9758 ("gnome-session" ,gnome-session)
9759 ("gnome-settings-daemon" ,gnome-settings-daemon)
9760 ("gnome-shell-extensions" ,gnome-shell-extensions)
9761 ("gnome-shell" ,gnome-shell)
9762 ("gnome-themes-extra" ,gnome-themes-extra)
9763 ("gnome-user-docs" ,gnome-user-docs)
9764 ("gnome-user-share" ,gnome-user-share)
9765 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
9766 ("gvfs" ,gvfs)
9767 ("mutter" ,mutter)
9768 ("orca" ,orca)
9769 ("rygel" ,rygel)
9770 ("sushi" ,sushi)
9771 ;; GNOME-Core-Utilities
9772 ("baobab" ,baobab)
9773 ("cheese" ,cheese)
9774 ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
9775 ;; only works on x86_64, so exclude it on other architectures.
9776 ,@(if (string-prefix? "x86_64" (%current-system))
9777 `(("eog" ,eog))
9778 '())
9779 ("epiphany" ,epiphany)
9780 ("evince" ,evince)
9781 ("file-roller" ,file-roller)
9782 ("gedit" ,gedit)
9783 ("gnome-boxes" ,gnome-boxes)
9784 ("gnome-calculator" ,gnome-calculator)
9785 ("gnome-calendar" ,gnome-calendar)
9786 ("gnome-characters" ,gnome-characters)
9787 ("gnome-clocks" ,gnome-clocks)
9788 ("gnome-contacts" ,gnome-contacts)
9789 ("gnome-disk-utility" ,gnome-disk-utility)
9790 ("gnome-font-viewer" ,gnome-font-viewer)
9791 ("gnome-maps" ,gnome-maps)
9792 ("gnome-music" ,gnome-music)
9793 ("gnome-photos" ,gnome-photos)
9794 ("gnome-screenshot" ,gnome-screenshot)
9795 ("gnome-system-monitor" ,gnome-system-monitor)
9796 ("gnome-terminal" ,gnome-terminal)
9797 ("gnome-weather" ,gnome-weather)
9798 ("nautilus" ,nautilus)
9799 ("simple-scan" ,simple-scan)
9800 ("totem" ,totem)
9801 ("tracker-miners" ,tracker-miners)
9802 ("yelp" ,yelp)
9803 ;; Others
9804 ("hicolor-icon-theme" ,hicolor-icon-theme)
9805 ("gnome-online-accounts" ,gnome-online-accounts)
9806
9807 ;; Packages not part of GNOME proper but that are needed for a good
9808 ;; experience. See <https://bugs.gnu.org/39646>.
9809 ;; XXX: Find out exactly which ones are needed and why.
9810 ("font-abattis-cantarell" ,font-abattis-cantarell)
9811 ("font-dejavu" ,font-dejavu)
9812 ("at-spi2-core" ,at-spi2-core-minimal)
9813 ("dbus" ,dbus)
9814 ("dconf" ,dconf)
9815 ("desktop-file-utils" ,desktop-file-utils)
9816 ("gnome-default-applications" ,gnome-default-applications)
9817 ("gst-plugins-base" ,gst-plugins-base)
9818 ("gst-plugins-good" ,gst-plugins-good)
9819 ("gucharmap" ,gucharmap)
9820 ("pinentry-gnome3" ,pinentry-gnome3)
9821 ("pulseaudio" ,pulseaudio)
9822 ("shared-mime-info" ,shared-mime-info)
9823 ("system-config-printer" ,system-config-printer)
9824 ("xdg-user-dirs" ,xdg-user-dirs)
9825 ("yelp" ,yelp)
9826 ("zenity" ,zenity)))
9827 (synopsis "The GNU desktop environment")
9828 (home-page "https://www.gnome.org/")
9829 (description
9830 "GNOME is the graphical desktop for GNU. It includes a wide variety of
9831 applications for browsing the web, editing text and images, creating
9832 documents and diagrams, playing media, scanning, and much more.")
9833 (license license:gpl2+)))
9834
9835 (define-public byzanz
9836 ;; The last stable release of Byzanz was in 2011, but there have been many
9837 ;; useful commits made to the Byzanz repository since then that it would be
9838 ;; silly to use such an old release.
9839 (let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
9840 (package
9841 (name "byzanz")
9842 (version (string-append "0.2-1." (string-take commit 7)))
9843 (source (origin
9844 (method git-fetch)
9845 (uri (git-reference
9846 (url "https://git.gnome.org/browse/byzanz")
9847 (commit commit)))
9848 (file-name (string-append name "-" version "-checkout"))
9849 (sha256
9850 (base32
9851 "1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
9852 (build-system glib-or-gtk-build-system)
9853 (arguments
9854 '(#:phases
9855 (modify-phases %standard-phases
9856 (add-before 'bootstrap 'build-without-Werror
9857 (lambda _
9858 ;; The build system cleverly detects that we're not building from
9859 ;; a release tarball and turns on -Werror for GCC.
9860 ;; Unsurprisingly, there is a warning during compilation that
9861 ;; causes the build to fail unnecessarily, so we remove the flag.
9862 (substitute* '("configure.ac")
9863 (("-Werror") ""))
9864 #t)))))
9865 (native-inputs
9866 (list autoconf
9867 automake
9868 gnome-common
9869 intltool
9870 libtool
9871 pkg-config
9872 which))
9873 (inputs
9874 (list glib gstreamer gst-plugins-base gtk+))
9875 (synopsis "Desktop recording program")
9876 (description "Byzanz is a simple desktop recording program with a
9877 command-line interface. It can record part or all of an X display for a
9878 specified duration and save it as a GIF encoded animated image file.")
9879 (home-page "https://git.gnome.org/browse/byzanz")
9880 (license license:gpl2+))))
9881
9882 (define-public authenticator
9883 (package
9884 (name "authenticator")
9885 (version "3.32.2")
9886 (source
9887 (origin
9888 (method git-fetch)
9889 (uri (git-reference
9890 (url "https://gitlab.gnome.org/World/Authenticator")
9891 (commit version)))
9892 (file-name (git-file-name name version))
9893 (sha256
9894 (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
9895 (build-system meson-build-system)
9896 (arguments
9897 `(#:meson ,meson-0.59
9898 #:glib-or-gtk? #t
9899 #:phases
9900 (modify-phases %standard-phases
9901 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
9902 (lambda* (#:key inputs outputs #:allow-other-keys)
9903 (let ((prog (string-append (assoc-ref outputs "out")
9904 "/bin/authenticator"))
9905 (pylib (string-append (assoc-ref outputs "out")
9906 "/lib/python"
9907 ,(version-major+minor
9908 (package-version
9909 (this-package-input "python")))
9910 "/site-packages")))
9911 (wrap-program prog
9912 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
9913 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
9914 (native-inputs
9915 (list desktop-file-utils
9916 gettext-minimal
9917 `(,glib "bin")
9918 gobject-introspection
9919 `(,gtk+ "bin")
9920 pkg-config))
9921 (inputs
9922 (list gsettings-desktop-schemas
9923 gtk+
9924 libhandy-0.0
9925 libsecret
9926 python
9927 python-beautifulsoup4
9928 python-pillow
9929 python-pyfavicon
9930 python-pygobject
9931 python-pyotp
9932 python-pyzbar
9933 yoyo-migrations
9934 zbar))
9935 (home-page "https://gitlab.gnome.org/World/Authenticator/")
9936 (synopsis "Two-factor authentication application built for GNOME")
9937 (description
9938 "Authenticator is a two-factor authentication (2FA) application built for
9939 the GNOME desktop environment.
9940
9941 Features:
9942
9943 @itemize
9944 @item QR code scanner
9945 @item Beautiful UI
9946 @item Huge database of more than 560 supported services
9947 @item Keep your PIN tokens secure by locking the application with a password
9948 @item Automatically fetch an image for services using their favicon
9949 @item The possibility to add new services
9950 @end itemize")
9951 (license license:gpl3+)))
9952
9953 (define-public gsound
9954 (package
9955 (name "gsound")
9956 (version "1.0.3")
9957 (source (origin
9958 (method url-fetch)
9959 (uri (string-append "mirror://gnome/sources/gsound/"
9960 (version-major+minor version) "/"
9961 "gsound-" version ".tar.xz"))
9962 (sha256
9963 (base32
9964 "06l80xgykj7x1kqkjvcq06pwj2rmca458zvs053qc55x3sg06bfa"))))
9965 (build-system meson-build-system)
9966 (native-inputs
9967 (list pkg-config gobject-introspection vala))
9968 (propagated-inputs
9969 (list libcanberra)) ; in Requires.private of gsound.pc
9970 (home-page "https://wiki.gnome.org/Projects/GSound")
9971 (synopsis "GObject wrapper for libcanberra")
9972 (description
9973 "GSound is a small library for playing system sounds. It's designed to be
9974 used via GObject Introspection, and is a thin wrapper around the libcanberra C
9975 library.")
9976 (license license:lgpl2.1+)))
9977
9978 (define-public libzapojit
9979 (package
9980 (name "libzapojit")
9981 (version "0.0.3")
9982 (source (origin
9983 (method url-fetch)
9984 (uri (string-append "mirror://gnome/sources/" name "/"
9985 (version-major+minor version) "/"
9986 name "-" version ".tar.xz"))
9987 (sha256
9988 (base32
9989 "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"))))
9990 (build-system gnu-build-system)
9991 (native-inputs
9992 (list gobject-introspection intltool pkg-config))
9993 (inputs
9994 (list gnome-online-accounts json-glib rest))
9995 (home-page "https://wiki.gnome.org/Projects/Zapojit")
9996 (synopsis "Library for accessing SkyDrive and Hotmail")
9997 (description
9998 "Libzapojit is a GLib-based library for accessing online service APIs of
9999 Microsoft SkyDrive and Hotmail, using their REST protocols.")
10000 (license license:lgpl2.1+)))
10001
10002 (define-public gnome-clocks
10003 (package
10004 (name "gnome-clocks")
10005 (version "42.0")
10006 (source (origin
10007 (method url-fetch)
10008 (uri (string-append "mirror://gnome/sources/" name "/"
10009 (version-major version) "/"
10010 name "-" version ".tar.xz"))
10011 (sha256
10012 (base32
10013 "1q3gvniwd4dkr1ghqpp05zr7qswdhaxqrn8j6bm3qbh39bdihw8f"))))
10014 (build-system meson-build-system)
10015 (arguments
10016 '(#:glib-or-gtk? #t
10017 #:phases
10018 (modify-phases %standard-phases
10019 (add-after 'unpack 'skip-gtk-update-icon-cache
10020 ;; Don't create 'icon-theme.cache'.
10021 (lambda _
10022 (substitute* "meson.build"
10023 (("gtk_update_icon_cache: true")
10024 "gtk_update_icon_cache: false")))))))
10025 (native-inputs
10026 (list desktop-file-utils
10027 gettext-minimal
10028 `(,glib "bin") ; for glib-compile-resources
10029 itstool
10030 pkg-config
10031 vala-next))
10032 (inputs
10033 (list geoclue
10034 geocode-glib-with-libsoup2
10035 glib
10036 gnome-desktop
10037 gsound
10038 gtk
10039 libadwaita
10040 libgweather4-with-libsoup2))
10041 (home-page "https://wiki.gnome.org/Apps/Clocks")
10042 (synopsis "GNOME's clock application")
10043 (description
10044 "GNOME Clocks is a simple clocks application designed to fit the GNOME
10045 desktop. It supports world clock, stop watch, alarms, and count down timer.")
10046 (license license:gpl3+)))
10047
10048 (define-public gnome-calendar
10049 (package
10050 (name "gnome-calendar")
10051 (version "42.2")
10052 (source (origin
10053 (method url-fetch)
10054 (uri (string-append "mirror://gnome/sources/" name "/"
10055 (version-major version) "/"
10056 name "-" version ".tar.xz"))
10057 (sha256
10058 (base32
10059 "1ggvnl2jnc24nzpkjvsk57vpckjzb14a7mmnk6jjm84nmqxccz5f"))))
10060 (build-system meson-build-system)
10061 (arguments
10062 `(#:glib-or-gtk? #t
10063 #:phases
10064 (modify-phases %standard-phases
10065 (add-after 'unpack 'skip-gtk-update-icon-cache
10066 ;; Don't create 'icon-theme.cache'.
10067 (lambda _
10068 (substitute* "meson.build"
10069 (("gtk_update_icon_cache: true")
10070 "gtk_update_icon_cache: false")))))))
10071 (native-inputs
10072 (list gettext-minimal
10073 `(,glib "bin") ; For glib-compile-schemas
10074 pkg-config))
10075 (inputs
10076 ;; Note: not propagating evolution-data-server-3.44 to keep profiles
10077 ;; clean from libsoup2.
10078 (list evolution-data-server-3.44
10079 geoclue
10080 geocode-glib-with-libsoup2
10081 gnome-online-accounts-3.44
10082 gsettings-desktop-schemas
10083 libadwaita
10084 libdazzle
10085 libgweather4-with-libsoup2
10086 ;; Remove pango-next when it's the default.
10087 pango-next))
10088 (home-page "https://wiki.gnome.org/Apps/Calendar")
10089 (synopsis "GNOME's calendar application")
10090 (description
10091 "GNOME Calendar is a simple calendar application designed to fit the GNOME
10092 desktop. It supports multiple calendars, month, week and year view.")
10093 (license license:gpl3+)))
10094
10095 (define-public gnome-todo
10096 (package
10097 (name "gnome-todo")
10098 (version "41.0")
10099 (source (origin
10100 (method url-fetch)
10101 (uri (string-append "mirror://gnome/sources/" name "/"
10102 (version-major version) "/"
10103 name "-" version ".tar.xz"))
10104 (sha256
10105 (base32
10106 "1r94880d4khbjhhfnhaba3y3d4hv2bri82rzfzxn27s5iybpqras"))
10107 (patches (search-patches "gnome-todo-libportal.patch"))))
10108 (build-system meson-build-system)
10109 (arguments
10110 (list
10111 #:glib-or-gtk? #t
10112 #:phases
10113 #~(modify-phases %standard-phases
10114 (add-after 'unpack 'skip-gtk-update-icon-cache
10115 (lambda _
10116 (substitute* "build-aux/meson/meson_post_install.py"
10117 (("gtk-update-icon-cache") "true"))))
10118 (delete 'check)
10119 (add-after 'install 'check
10120 (assoc-ref %standard-phases
10121 'check))
10122 (add-before 'check 'pre-check
10123 (lambda _
10124 (setenv "GSETTINGS_SCHEMA_DIR"
10125 (string-append #$output "/share/glib-2.0/schemas")))))))
10126 (native-inputs
10127 (list gettext-minimal
10128 gobject-introspection
10129 `(,glib "bin") ;for glib-compile-resources
10130 `(,gtk "bin") ;for gtk-update-icon-cache
10131 itstool
10132 pkg-config))
10133 (inputs
10134 (list rest ;for Todoist plugin
10135 gtk
10136 json-glib ;for Todoist plugin
10137 libadwaita
10138 evolution-data-server
10139 libical
10140 libpeas
10141 libportal
10142 python-pygobject
10143 evolution-data-server
10144 gnome-online-accounts
10145 gsettings-desktop-schemas))
10146 (home-page "https://wiki.gnome.org/Apps/Todo")
10147 (synopsis "GNOME's ToDo Application")
10148 (description "GNOME To Do is a simplistic personal task manager designed
10149 to perfectly fit the GNOME desktop.")
10150 (license license:gpl3+)))
10151
10152 (define-public gnome-dictionary
10153 (package
10154 (name "gnome-dictionary")
10155 (version "40.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 "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f"))))
10164 (build-system meson-build-system)
10165 (arguments
10166 `(#:glib-or-gtk? #t
10167 #:phases
10168 (modify-phases %standard-phases
10169 (add-after 'unpack 'skip-gtk-update-icon-cache
10170 ;; Don't create 'icon-theme.cache'.
10171 (lambda _
10172 (substitute* "build-aux/meson/post-install.py"
10173 (("gtk-update-icon-cache") "true")))))))
10174 (native-inputs
10175 (list `(,glib "bin")
10176 gobject-introspection
10177 intltool
10178 itstool
10179 pkg-config
10180 libxml2))
10181 (inputs
10182 (list gsettings-desktop-schemas
10183 gtk+))
10184 (home-page "https://wiki.gnome.org/Apps/Dictionary")
10185 (synopsis "Look up words in dictionary sources")
10186 (description
10187 "GNOME Dictionary can look for the definition or translation of a word in
10188 existing databases over the internet.")
10189 (license license:gpl3+)))
10190
10191 (define-public gnome-tweaks
10192 (package
10193 (name "gnome-tweaks")
10194 (version "40.10")
10195 (source (origin
10196 (method url-fetch)
10197 (uri (string-append "mirror://gnome/sources/gnome-tweaks/"
10198 (version-major version) "/"
10199 "gnome-tweaks-" version ".tar.xz"))
10200 (patches
10201 (list (search-patch "gnome-tweaks-search-paths.patch")))
10202 (sha256
10203 (base32
10204 "1z13xy804hld9q8k0vq5y4j5jk7m0ayqzkli8jxpymwrlcrkpzfg"))))
10205 (build-system meson-build-system)
10206 (arguments
10207 (list
10208 #:glib-or-gtk? #t
10209 #:configure-flags #~(list "-Dlocalstatedir=/tmp"
10210 "-Dsysconfdir=/tmp")
10211 #:imported-modules `((guix build python-build-system)
10212 ,@%meson-build-system-modules)
10213 #:modules '((guix build meson-build-system)
10214 ((guix build python-build-system) #:prefix python:)
10215 (guix build utils))
10216 #:phases
10217 #~(modify-phases %standard-phases
10218 (add-after 'unpack 'skip-gtk-update-icon-cache
10219 ;; Don't create 'icon-theme.cache'.
10220 (lambda _
10221 (substitute* "meson-postinstall.py"
10222 (("gtk-update-icon-cache") "true"))))
10223 (add-after 'install 'wrap
10224 (assoc-ref python:%standard-phases 'wrap))
10225 (add-after 'wrap 'wrap-gi-typelib-and-python
10226 (lambda* (#:key inputs outputs #:allow-other-keys)
10227 (wrap-program (search-input-file outputs "bin/gnome-tweaks")
10228 `("GI_TYPELIB_PATH" ":" prefix
10229 (,(getenv "GI_TYPELIB_PATH")))
10230 `("GUIX_PYTHONPATH" ":" prefix
10231 (,(python:site-packages inputs outputs)))))))))
10232 (native-inputs
10233 (list `(,glib "bin") ; for glib-compile-resources, etc.
10234 gettext-minimal
10235 pkg-config))
10236 (inputs
10237 (list bash-minimal ; to execute the wrapper program
10238 gnome-desktop
10239 gtk+
10240 gobject-introspection
10241 gsettings-desktop-schemas
10242 libhandy
10243 libnotify
10244 libsoup
10245 nautilus
10246 python
10247 python-pygobject))
10248 (synopsis "Customize advanced GNOME 3 options")
10249 (home-page "https://wiki.gnome.org/Apps/Tweaks")
10250 (description
10251 "GNOME Tweaks allows adjusting advanced configuration settings in
10252 GNOME 3. This includes things like the fonts used in user interface elements,
10253 alternative user interface themes, changes in window management behavior,
10254 GNOME Shell appearance and extension, etc.")
10255 (license license:gpl3+)))
10256
10257 (define-public gnome-shell-extensions
10258 (package
10259 (name "gnome-shell-extensions")
10260 (version "42.3")
10261 (source (origin
10262 (method url-fetch)
10263 (uri (string-append "mirror://gnome/sources/" name "/"
10264 (version-major version) "/"
10265 name "-" version ".tar.xz"))
10266 (sha256
10267 (base32
10268 "1z3k4bvq8f2s0q9q7i093w4hrz289lci7xlib20aqa4z5sivxhhf"))))
10269 (build-system meson-build-system)
10270 (arguments
10271 '(#:configure-flags '("-Dextension_set=all")))
10272 (native-inputs
10273 (list `(,glib "bin")
10274 gettext-minimal
10275 pkg-config))
10276 (propagated-inputs
10277 (list glib))
10278 (synopsis "Extensions for GNOME Shell")
10279 (description "GNOME Shell extensions modify and extend GNOME Shell
10280 functionality and behavior.")
10281 (home-page "https://extensions.gnome.org/")
10282 (license license:gpl3+)))
10283
10284 (define-public folks
10285 (package
10286 (name "folks")
10287 (version "0.15.5")
10288 (source (origin
10289 (method url-fetch)
10290 (uri (string-append
10291 "mirror://gnome/sources/folks/"
10292 (version-major+minor version) "/"
10293 "folks-" version ".tar.xz"))
10294 (sha256
10295 (base32
10296 "11lhfn6b7gml4ckj2dkm6g889j21wpvj90srwjp85k9hcf4qmzqg"))))
10297 (build-system meson-build-system)
10298 (arguments
10299 '(#:phases
10300 (modify-phases %standard-phases
10301 (add-after 'unpack 'skip-gtk-update-icon-cache
10302 ;; Don't create 'icon-theme.cache'.
10303 (lambda _
10304 (substitute* "meson_post_install.py"
10305 (("gtk-update-icon-cache") "true")))))))
10306 (inputs
10307 (list bdb
10308 dbus-glib
10309 evolution-data-server
10310 glib
10311 libgee
10312 readline
10313 telepathy-glib))
10314 (native-inputs
10315 (list gettext-minimal
10316 `(,glib "bin")
10317 gobject-introspection
10318 python-dbusmock
10319 pkg-config
10320 python
10321 vala))
10322 (synopsis "Library to aggregate data about people")
10323 (description "Libfolks is a library that aggregates information about people
10324 from multiple sources (e.g., Telepathy connection managers for IM contacts,
10325 Evolution Data Server for local contacts, libsocialweb for web service contacts,
10326 etc.) to create metacontacts. It's written in Vala, which generates C code when
10327 compiled.")
10328 (home-page "https://wiki.gnome.org/Projects/Folks")
10329 (license license:lgpl2.1+)))
10330
10331 (define-public gfbgraph
10332 (package
10333 (name "gfbgraph")
10334 (version "0.2.4")
10335 (source (origin
10336 (method url-fetch)
10337 (uri (string-append
10338 "mirror://gnome/sources/gfbgraph/"
10339 (version-major+minor version) "/"
10340 "gfbgraph-" version ".tar.xz"))
10341 (sha256
10342 (base32
10343 "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0"))))
10344 (build-system glib-or-gtk-build-system)
10345 (arguments
10346 `(#:tests? #f ; tests appear to require the network
10347 #:configure-flags '("--disable-static"
10348 "--enable-gtk-doc"
10349 "--enable-introspection")))
10350 (native-inputs
10351 (list gobject-introspection
10352 gtk-doc/stable
10353 pkg-config
10354 ;; The 0.2.4 ‘release’ tarball isn't bootstrapped.
10355 autoconf
10356 automake
10357 libtool
10358 which))
10359 (inputs
10360 `(("json-glib" ,json-glib)
10361 ("gnome-online-accounts" ,gnome-online-accounts)
10362 ("rest" ,rest)))
10363 (synopsis "GLib/GObject wrapper for the Facebook API")
10364 (description "This library allows you to use the Facebook API from
10365 GLib/GObject code.")
10366 (home-page "https://wiki.gnome.org/Projects/GFBGraph")
10367 (license license:lgpl2.1+)))
10368
10369 (define-public libgnomekbd
10370 (package
10371 (name "libgnomekbd")
10372 (version "3.28.0")
10373 (source (origin
10374 (method url-fetch)
10375 (uri (string-append "mirror://gnome/sources/libgnomekbd/"
10376 (version-major+minor version) "/"
10377 "libgnomekbd-" version ".tar.xz"))
10378 (sha256
10379 (base32
10380 "1jarhq9crhq0wfnbcz7x3hgxbkan98ax3p2jwcgzj9jc7r27l1dk"))))
10381 (build-system gnu-build-system)
10382 (native-inputs
10383 (list autoconf
10384 automake
10385 `(,glib "bin")
10386 libtool
10387 pkg-config
10388 gettext-minimal
10389 gobject-introspection))
10390 (propagated-inputs
10391 ;; Referred to in .h files and .pc.
10392 (list glib
10393 gtk+
10394 libxklavier))
10395 (home-page "https://www.gnome.org")
10396 (synopsis "GNOME keyboard configuration library")
10397 (description
10398 "Libgnomekbd is a keyboard configuration library for the GNOME desktop
10399 environment, which can notably display keyboard layouts.")
10400 (license license:lgpl2.0+)))
10401
10402 ;;; This package is no longer maintained:
10403 ;;; https://wiki.gnome.org/Attic/LibUnique
10404 ;;; "Unique is now in maintenance mode, and its usage is strongly discouraged.
10405 ;;; Applications should use the GtkApplication class provided by GTK+ 3.0."
10406 (define-public libunique
10407 (package
10408 (name "libunique")
10409 (version "3.0.2")
10410 (source (origin
10411 (method url-fetch)
10412 (uri (string-append "mirror://gnome/sources/" name "/"
10413 (version-major+minor version) "/"
10414 name "-" version ".tar.xz"))
10415 (sha256
10416 (base32
10417 "0f70lkw66v9cj72q0iw1s2546r6bwwcd8idcm3621fg2fgh2rw58"))))
10418 (build-system glib-or-gtk-build-system)
10419 (arguments
10420 `(#:configure-flags '("--disable-static"
10421 "--disable-dbus" ; use gdbus
10422 "--enable-introspection")))
10423 (native-inputs
10424 `(("pkg-config" ,pkg-config)
10425 ("gobject-introspection" ,gobject-introspection)
10426 ("glib:bin" ,glib "bin")
10427 ("gtk-doc" ,gtk-doc/stable)))
10428 (propagated-inputs
10429 ;; Referred to in .h files and .pc.
10430 (list gtk+))
10431 (home-page "https://wiki.gnome.org/Attic/LibUnique")
10432 (synopsis "Library for writing single instance applications")
10433 (description
10434 "Libunique is a library for writing single instance applications. If you
10435 launch a single instance application twice, the second instance will either just
10436 quit or will send a message to the running instance. Libunique makes it easy to
10437 write this kind of application, by providing a base class, taking care of all
10438 the IPC machinery needed to send messages to a running instance, and also
10439 handling the startup notification side.")
10440 (license license:lgpl2.1+)))
10441
10442 (define-public gnome-calculator
10443 (package
10444 (name "gnome-calculator")
10445 (version "42.2")
10446 (source
10447 (origin
10448 (method url-fetch)
10449 (uri (string-append "mirror://gnome/sources/" name "/"
10450 (version-major version) "/"
10451 name "-" version ".tar.xz"))
10452 (sha256
10453 (base32
10454 "1866qn0r9xp7b7j1436kry2k3bdh9ikhz2wm41jxcn1nljyb3nik"))))
10455 (build-system meson-build-system)
10456 (arguments
10457 '(#:glib-or-gtk? #t
10458 #:phases
10459 (modify-phases %standard-phases
10460 (add-after 'unpack 'skip-gtk-update-icon-cache
10461 (lambda _
10462 (substitute* "meson.build"
10463 (("gtk_update_icon_cache: true")
10464 "gtk_update_icon_cache: false"))))
10465 (add-before 'check 'pre-check
10466 (lambda _
10467 ;; Tests require a writable HOME.
10468 (setenv "HOME" (getcwd)))))))
10469 (native-inputs
10470 (list gettext-minimal
10471 `(,glib "bin") ;for glib-compile-schemas, gio-2.0.
10472 itstool
10473 pkg-config
10474 python
10475 vala))
10476 (inputs
10477 (list gsettings-desktop-schemas-next
10478 gtksourceview
10479 libadwaita
10480 libgee
10481 libhandy
10482 libsoup-minimal-2
10483 libxml2
10484 mpc
10485 mpfr))
10486 (home-page "https://wiki.gnome.org/Apps/Calculator")
10487 (synopsis "Desktop calculator")
10488 (description
10489 "Calculator is an application that solves mathematical equations and
10490 is suitable as a default application in a Desktop environment.")
10491 (license license:gpl3)))
10492
10493 (define-public xpad
10494 (package
10495 (name "xpad")
10496 (version "5.8.0")
10497 (source
10498 (origin
10499 (method url-fetch)
10500 (uri (string-append "https://launchpad.net/xpad/trunk/"
10501 version "/+download/"
10502 name "-" version ".tar.bz2"))
10503 (sha256
10504 (base32
10505 "1sc2dz4yxx6glnqpnhiby85g2blnsfn8d3fvbaqhdi2hi0q54q7j"))))
10506 (build-system gnu-build-system)
10507 (native-inputs
10508 (list autoconf automake
10509 `(,gtk+ "bin") intltool pkg-config))
10510 (inputs
10511 (list gtksourceview libsm))
10512 (home-page "https://wiki.gnome.org/Apps/Xpad")
10513 (synopsis "Virtual sticky note")
10514 (description
10515 "Xpad is a sticky note that strives to be simple, fault tolerant,
10516 and customizable. Xpad consists of independent pad windows, each is
10517 basically a text box in which notes can be written.")
10518 (license license:gpl3+)))
10519
10520 (define-public gucharmap
10521 (let ((unicode-files
10522 '(("Blocks.txt"
10523 "041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
10524 ("DerivedAge.txt"
10525 "04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
10526 ("NamesList.txt"
10527 "0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
10528 ("Scripts.txt"
10529 "18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
10530 ("UnicodeData.txt"
10531 "07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
10532 ("Unihan.zip"
10533 "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
10534 (package
10535 (name "gucharmap")
10536 (version "12.0.1")
10537 (source
10538 (origin
10539 (method url-fetch)
10540 (uri (string-append "mirror://gnome/sources/" name "/"
10541 (version-major+minor version) "/"
10542 name "-" version ".tar.xz"))
10543 (sha256
10544 (base32
10545 "0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
10546 (build-system glib-or-gtk-build-system)
10547 (arguments
10548 `(#:modules ((ice-9 match)
10549 (guix build glib-or-gtk-build-system)
10550 (guix build utils))
10551 #:configure-flags
10552 (list "--with-unicode-data=../unicode-data")
10553 #:phases
10554 (modify-phases %standard-phases
10555 (add-after 'unpack 'prepare-unicode-data
10556 (lambda* (#:key inputs #:allow-other-keys)
10557 (mkdir-p "../unicode-data")
10558 (with-directory-excursion "../unicode-data"
10559 (for-each (match-lambda
10560 ((file _)
10561 (install-file (assoc-ref inputs file) ".")))
10562 ',unicode-files))
10563 #t)))))
10564 (native-inputs
10565 `(("desktop-file-utils" ,desktop-file-utils)
10566 ("glib:bin" ,glib "bin") ; for glib-compile-resources.
10567 ("gobject-introspection" ,gobject-introspection)
10568 ("intltool" ,intltool)
10569 ("itstool" ,itstool)
10570 ("pkg-config" ,pkg-config)
10571 ,@(map (match-lambda
10572 ((file hash)
10573 `(,file
10574 ,(origin
10575 (method url-fetch)
10576 (uri (string-append
10577 "http://www.unicode.org/Public/12.0.0/ucd/"
10578 file))
10579 (sha256 (base32 hash))))))
10580 unicode-files)
10581 ("unzip" ,unzip)))
10582 (inputs
10583 `(("gtk+" ,gtk+)
10584 ("xmllint" ,libxml2)))
10585 (home-page "https://wiki.gnome.org/Apps/Gucharmap")
10586 (synopsis "Unicode character picker and font browser")
10587 (description
10588 "This program allows you to browse through all the available Unicode
10589 characters and categories for the installed fonts, and to examine their
10590 detailed properties. It is an easy way to find the character you might
10591 only know by its Unicode name or code point.")
10592 (license license:gpl3+))))
10593
10594 (define-public gcolor3
10595 (package
10596 (name "gcolor3")
10597 (version "2.4.0")
10598 (source
10599 (origin
10600 (method git-fetch)
10601 (uri (git-reference
10602 (url "https://gitlab.gnome.org/World/gcolor3")
10603 (commit (string-append "v" version))))
10604 (file-name (git-file-name name version))
10605 (sha256
10606 (base32 "1igqmach1vhcrvbpw346pmkbb5kabbb806ssswrvkp569n700wmc"))
10607 ;; XXX: Remove when upgrading
10608 (patches (search-patches "gcolor3-update-libportal-usage.patch"))))
10609 (build-system meson-build-system)
10610 (arguments
10611 `(#:glib-or-gtk? #t))
10612 (native-inputs
10613 (list desktop-file-utils gettext-minimal
10614 `(,glib "bin")
10615 `(,gtk+ "bin") pkg-config))
10616 (inputs
10617 (list gsettings-desktop-schemas gtk+ libportal))
10618 (home-page "https://www.hjdskes.nl/projects/gcolor3/")
10619 (synopsis "Simple color chooser written in GTK3")
10620 (description "Color Picker is a simple color chooser written in GTK3. It
10621 supports both X and Wayland display servers.")
10622 (license license:gpl2+)))
10623
10624 (define-public bluefish
10625 (package
10626 (name "bluefish")
10627 (version "2.2.12")
10628 (source
10629 (origin
10630 (method url-fetch)
10631 (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/"
10632 "bluefish-" version ".tar.gz"))
10633 (sha256
10634 (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl"))))
10635 (build-system gnu-build-system)
10636 (native-inputs
10637 (list desktop-file-utils intltool pkg-config))
10638 (inputs
10639 (list enchant gtk+ python-wrapper libxml2 gucharmap))
10640 (home-page "http://bluefish.openoffice.nl")
10641 (synopsis "Web development studio")
10642 (description
10643 "Bluefish is an editor aimed at programmers and web developers,
10644 with many options to write web sites, scripts and other code.
10645 Bluefish supports many programming and markup languages.")
10646 (license license:gpl3+)))
10647
10648 (define-public gnome-system-monitor
10649 (package
10650 (name "gnome-system-monitor")
10651 (version "42.0")
10652 (source
10653 (origin
10654 (method url-fetch)
10655 (uri (string-append "mirror://gnome/sources/" name "/"
10656 (version-major version) "/"
10657 name "-" version ".tar.xz"))
10658 (sha256
10659 (base32
10660 "1p3mq32pfd9260aql5nys806g0c4nrswacwqs8ms40920ci9s8qk"))))
10661 (build-system meson-build-system)
10662 (arguments
10663 '(#:glib-or-gtk? #t
10664 #:configure-flags '("-Dsystemd=false")))
10665 (native-inputs
10666 (list `(,glib "bin") ;for glib-mkenums.
10667 `(,gtk+ "bin") ;gtk-update-icon-cache
10668 intltool
10669 itstool
10670 libgtop
10671 polkit
10672 pkg-config))
10673 (inputs
10674 (list gdk-pixbuf ;for loading SVG files.
10675 gtk+
10676 gtkmm-3
10677 libhandy
10678 librsvg
10679 libxml2
10680 libwnck))
10681 (home-page "https://wiki.gnome.org/Apps/SystemMonitor")
10682 (synopsis "Process viewer and system resource monitor for GNOME")
10683 (description
10684 "GNOME System Monitor is a GNOME process viewer and system monitor with
10685 an attractive, easy-to-use interface. It has features, such as a tree view
10686 for process dependencies, icons for processes, the ability to hide processes,
10687 graphical time histories of CPU/memory/swap usage and the ability to
10688 kill/reinice processes.")
10689 (license license:gpl2+)))
10690
10691 (define-public python-pyatspi
10692 (package
10693 (name "python-pyatspi")
10694 (version "2.34.0")
10695 (source (origin
10696 (method url-fetch)
10697 (uri (string-append
10698 "mirror://gnome/sources/pyatspi/"
10699 (version-major+minor version)
10700 "/pyatspi-" version ".tar.xz"))
10701 (sha256
10702 (base32
10703 "0j3f75j0zd6ca8msg7yr19qsfirqkn9fk8pqbjnlhqrpri455g4p"))))
10704 (build-system gnu-build-system)
10705 (arguments
10706 `(#:phases
10707 (modify-phases %standard-phases
10708 (add-before 'build 'fix-atk-load
10709 (lambda _
10710 (substitute* "pyatspi/__init__.py"
10711 (("from gi.repository import Atspi")
10712 "gi.require_version('Gtk', '3.0')
10713 from gi.repository import Gtk
10714 from gi.repository import Atspi"))
10715 #t)))))
10716 (native-inputs
10717 (list pkg-config))
10718 (inputs
10719 (list python))
10720 (propagated-inputs
10721 (list python-pygobject))
10722 (synopsis "Python client bindings for D-Bus AT-SPI")
10723 (home-page "https://wiki.linuxfoundation.org/accessibility\
10724 /atk/at-spi/at-spi_on_d-bus")
10725 (description
10726 "This package includes a python client library for the AT-SPI D-Bus
10727 accessibility infrastructure.")
10728 (license license:lgpl2.0)
10729 (properties '((upstream-name . "pyatspi")))))
10730
10731 (define-public orca
10732 (package
10733 (name "orca")
10734 (version "41.0")
10735 (source (origin
10736 (method url-fetch)
10737 (uri (string-append
10738 "mirror://gnome/sources/" name "/"
10739 (version-major version) "/"
10740 name "-" version ".tar.xz"))
10741 (sha256
10742 (base32
10743 "1gflnsv6d5qn5rh1f16yfa0q0yv8yvd0l5lbwrsdg7z18lafb5vn"))))
10744 (build-system glib-or-gtk-build-system)
10745 (arguments
10746 '(#:phases
10747 (modify-phases %standard-phases
10748 (add-before 'configure 'qualify-xkbcomp
10749 (lambda* (#:key inputs #:allow-other-keys)
10750 (let ((xkbcomp (string-append
10751 (assoc-ref inputs "xkbcomp") "/bin/xkbcomp")))
10752 (substitute* "src/orca/orca.py"
10753 (("'xkbcomp'") (format #f "'~a'" xkbcomp))))))
10754 (add-after 'install 'wrap-orca
10755 (lambda* (#:key outputs #:allow-other-keys)
10756 (let* ((out (assoc-ref outputs "out"))
10757 (prog (string-append out "/bin/orca")))
10758 (wrap-program prog
10759 `("GI_TYPELIB_PATH" ":" prefix
10760 (,(getenv "GI_TYPELIB_PATH")))
10761 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix
10762 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))
10763 `("GUIX_PYTHONPATH" ":" prefix
10764 (,(getenv "GUIX_PYTHONPATH"))))))))))
10765 (native-inputs
10766 (list intltool
10767 itstool
10768 pkg-config
10769 libxml2))
10770 (inputs
10771 (list at-spi2-atk
10772 gsettings-desktop-schemas
10773 gstreamer
10774 gst-plugins-base
10775 gst-plugins-good
10776 gtk+
10777 python
10778 python-pygobject
10779 python-pyatspi
10780 speech-dispatcher
10781 xkbcomp))
10782 (synopsis
10783 "Screen reader for individuals who are blind or visually impaired")
10784 (home-page "https://wiki.gnome.org/Projects/Orca")
10785 (description
10786 "Orca is a screen reader that provides access to the graphical desktop
10787 via speech and refreshable braille. Orca works with applications and toolkits
10788 that support the Assistive Technology Service Provider Interface (AT-SPI).")
10789 (license license:lgpl2.1+)))
10790
10791 (define-public gspell
10792 (package
10793 (name "gspell")
10794 (version "1.8.2")
10795 (source (origin
10796 (method url-fetch)
10797 (uri (string-append "mirror://gnome/sources/" name "/"
10798 (version-major+minor version) "/"
10799 name "-" version ".tar.xz"))
10800 (sha256
10801 (base32
10802 "1miybm1z5cl91i25l7mfqlxhv7j8yy8rcgi0s1bgbb2vm71rb4dv"))
10803 (patches (search-patches "gspell-dash-test.patch"))))
10804 (build-system glib-or-gtk-build-system)
10805 (arguments
10806 '(#:configure-flags (list "--enable-vala")
10807 #:phases
10808 (modify-phases %standard-phases
10809 (add-before 'check 'pre-check
10810 (lambda* (#:key inputs #:allow-other-keys)
10811 ;; Tests require a running X server.
10812 (system "Xvfb :1 &")
10813 (setenv "DISPLAY" ":1")
10814
10815 ;; For the missing /etc/machine-id.
10816 (setenv "DBUS_FATAL_WARNINGS" "0")
10817
10818 ;; Allow Enchant and its Aspell backend to find the en_US
10819 ;; dictionary.
10820 (setenv "ASPELL_DICT_DIR"
10821 (search-input-directory inputs "/lib/aspell")))))))
10822 (inputs
10823 (list iso-codes))
10824 (native-inputs
10825 `(("glib" ,glib "bin")
10826 ("gobject-introspection" ,gobject-introspection)
10827 ("pkg-config" ,pkg-config)
10828 ("vala" ,vala) ;for VAPI, needed by Geary
10829 ("xmllint" ,libxml2)
10830
10831 ;; For tests.
10832 ("aspell-dict-en" ,aspell-dict-en)
10833 ("xorg-server" ,xorg-server-for-tests)))
10834 (propagated-inputs
10835 ;; Referred by .pc file.
10836 (list enchant glib gtk+))
10837 (home-page "https://wiki.gnome.org/Projects/gspell")
10838 (synopsis "GNOME's alternative spell checker")
10839 (description
10840 "gspell provides a flexible API to add spell-checking to a GTK+
10841 application. It provides a GObject API, spell-checking to text entries and
10842 text views, and buttons to choose the language.")
10843 (license license:gpl2+)))
10844
10845 (define-public gnome-planner
10846 (package
10847 (name "gnome-planner")
10848 (version "0.14.6")
10849 (source (origin
10850 (method url-fetch)
10851 (uri (string-append "mirror://gnome/sources/planner/"
10852 (version-major+minor version) "/planner-"
10853 version ".tar.xz"))
10854 (sha256
10855 (base32
10856 "15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
10857 (build-system glib-or-gtk-build-system)
10858 (arguments
10859 ;; Disable the Python bindings because the Planner program functions
10860 ;; without them, and (as of 2017-06-13) we have not packaged all of
10861 ;; packages that are necessary for building the Python bindings.
10862 `(#:configure-flags
10863 (list "--disable-python"
10864 ,@(if (string=? "aarch64-linux" (%current-system))
10865 '("--build=aarch64-unknown-linux-gnu")
10866 '()))))
10867 (inputs
10868 (list libgnomecanvas
10869 libgnomeui
10870 libglade
10871 gnome-vfs
10872 gconf
10873 libxml2
10874 libxslt
10875 gtk+
10876 glib))
10877 (native-inputs
10878 (list intltool scrollkeeper pkg-config))
10879 (home-page "https://wiki.gnome.org/Apps/Planner")
10880 (synopsis "Project management software for the GNOME desktop")
10881 (description
10882 "GNOME Planner is a project management tool based on the Work Breakdown
10883 Structure (WBS). Its goal is to enable you to easily plan projects. Based on
10884 the resources, tasks, and constraints that you define, Planner generates
10885 various views into a project. For example, Planner can show a Gantt chart of
10886 the project. It can show a detailed summary of tasks including their
10887 duration, cost, and current progress. It can also show a report of resource
10888 utilization that highlights under-utilized and over-utilized resources. These
10889 views can be printed as PDF or PostScript files, or exported to HTML.")
10890 (license license:gpl2+)))
10891
10892 (define-public lollypop
10893 (package
10894 (name "lollypop")
10895 (version "1.4.24")
10896 (source
10897 (origin
10898 (method url-fetch)
10899 (uri (string-append "https://adishatz.org/lollypop/"
10900 "lollypop-" version ".tar.xz"))
10901 (sha256
10902 (base32 "10cw3x75siibmnbh4zhfmf2vd08fqjs3lj3l4wpk6zj9h22ncfxw"))))
10903 (build-system meson-build-system)
10904 (arguments
10905 `(#:imported-modules
10906 (,@%meson-build-system-modules
10907 (guix build python-build-system))
10908 #:modules
10909 ((guix build meson-build-system)
10910 ((guix build python-build-system) #:prefix python:)
10911 (guix build utils))
10912 #:glib-or-gtk? #t
10913 #:tests? #f ; no test suite
10914 #:phases
10915 (modify-phases %standard-phases
10916 (add-after 'install 'wrap-program
10917 (lambda* (#:key outputs #:allow-other-keys)
10918 (let ((out (assoc-ref outputs "out"))
10919 (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
10920 (wrap-program (string-append out "/bin/lollypop")
10921 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
10922 #t))
10923 (add-after 'install 'wrap-python
10924 (assoc-ref python:%standard-phases 'wrap)))))
10925 (native-inputs
10926 `(("gettext" ,gettext-minimal)
10927 ("glib:bin" ,glib "bin") ; For glib-compile-resources
10928 ("gtk+:bin" ,gtk+ "bin") ; For gtk-update-icon-cache
10929 ("pkg-config" ,pkg-config)))
10930 (inputs
10931 `(("glib-networking" ,glib-networking)
10932 ("gobject-introspection" ,gobject-introspection)
10933 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
10934 ("gst-plugins-base" ,gst-plugins-base)
10935 ("libnotify" ,libnotify)
10936 ("libsecret" ,libsecret)
10937 ("libhandy" ,libhandy)
10938 ("libsoup" ,libsoup-minimal-2)
10939 ("python" ,python)
10940 ("python-beautifulsoup4" ,python-beautifulsoup4)
10941 ("python-gst" ,python-gst)
10942 ("python-pil" ,python-pillow)
10943 ("python-pycairo" ,python-pycairo)
10944 ("python-pygobject" ,python-pygobject)
10945 ("python-pylast" ,python-pylast)
10946 ("totem-pl-parser" ,totem-pl-parser)
10947 ("webkitgtk" ,webkitgtk)))
10948 (propagated-inputs
10949 (list ;; gst-plugins-base is required to start Lollypop,
10950 ;; the others are required to play streaming.
10951 gst-plugins-good gst-plugins-ugly))
10952 (home-page "https://wiki.gnome.org/Apps/Lollypop")
10953 (synopsis "GNOME music playing application")
10954 (description
10955 "Lollypop is a music player designed to play well with GNOME desktop.
10956 Lollypop plays audio formats such as mp3, mp4, ogg and flac and gets information
10957 from artists and tracks from the web. It also fetches cover artworks
10958 automatically and it can stream songs from online music services and charts.")
10959 (license license:gpl3+)))
10960
10961 (define-public gnome-video-effects
10962 (package
10963 (name "gnome-video-effects")
10964 (version "0.5.0")
10965 (source (origin
10966 (method url-fetch)
10967 (uri (string-append "mirror://gnome/sources/" name "/"
10968 (version-major+minor version) "/" name "-"
10969 version ".tar.xz"))
10970 (sha256
10971 (base32
10972 "1j6h98whgkcxrh30bwvnxvyqxrxchgpdgqhl0j71xz7x72dqxijd"))))
10973 (build-system meson-build-system)
10974 (native-inputs
10975 (list gettext-minimal pkg-config))
10976 (home-page "https://wiki.gnome.org/Projects/GnomeVideoEffects")
10977 (synopsis "Video effects for Cheese and other GNOME applications")
10978 (description
10979 "A collection of GStreamer video filters and effects to be used in
10980 photo-booth-like software, such as Cheese.")
10981 (license license:gpl2+)))
10982
10983 (define-public cheese
10984 (package
10985 (name "cheese")
10986 (version "41.0")
10987 (source (origin
10988 (method url-fetch)
10989 (uri (string-append "mirror://gnome/sources/" name "/"
10990 (version-major version) "/" name "-"
10991 version ".tar.xz"))
10992 (sha256
10993 (base32
10994 "1y92glc0d6w323x2bdbc0gdh1jdffvkbv6cwlwm1rx0wgvv1svqh"))))
10995 (arguments
10996 `(#:glib-or-gtk? #t
10997 #:meson ,meson-0.60
10998 ;; Tests require GDK.
10999 #:tests? #f
11000 #:phases
11001 (modify-phases %standard-phases
11002 (add-after 'unpack 'skip-gtk-update-icon-cache
11003 (lambda _
11004 ;; Don't create 'icon-theme.cache'
11005 (substitute* "meson_post_install.py"
11006 (("gtk-update-icon-cache") (which "true")))
11007 #t))
11008 (add-after 'install 'wrap-cheese
11009 (lambda* (#:key inputs outputs #:allow-other-keys)
11010 (let ((out (assoc-ref outputs "out"))
11011 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
11012 (wrap-program (string-append out "/bin/cheese")
11013 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
11014 #t)))))
11015 (build-system meson-build-system)
11016 (native-inputs
11017 (list docbook-xsl
11018 docbook-xml-4.3
11019 gettext-minimal
11020 `(,glib "bin")
11021 gtk-doc/stable
11022 itstool
11023 libxml2
11024 libxslt
11025 pkg-config
11026 vala))
11027 (propagated-inputs
11028 (list gnome-video-effects
11029 clutter
11030 clutter-gst
11031 clutter-gtk
11032 libcanberra
11033 gdk-pixbuf
11034 glib
11035 gstreamer))
11036 (inputs
11037 (list gnome-desktop
11038 gobject-introspection
11039 gst-plugins-base
11040 gst-plugins-good
11041 gst-plugins-bad
11042 gtk+
11043 libx11
11044 libxtst))
11045 (home-page "https://wiki.gnome.org/Apps/Cheese")
11046 (synopsis "Webcam photo booth software for GNOME")
11047 (description
11048 "Cheese uses your webcam to take photos and videos. Cheese can also
11049 apply fancy special effects and lets you share the fun with others.")
11050 (license license:gpl2+)))
11051
11052 (define-public passwordsafe
11053 (package
11054 (name "passwordsafe")
11055 (version "5.1")
11056 (source
11057 (origin
11058 (method git-fetch)
11059 (uri (git-reference
11060 (url "https://gitlab.gnome.org/World/secrets")
11061 (commit version)))
11062 (file-name (git-file-name name version))
11063 (sha256
11064 (base32 "0kd43j6i017wdsqj6d5gnxhfv4ijnh3xahlw7md2gh51i8p682j6"))))
11065 (build-system meson-build-system)
11066 (arguments
11067 (list #:glib-or-gtk? #t
11068 #:meson meson-0.59
11069 #:phases
11070 #~(modify-phases %standard-phases
11071 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
11072 (lambda* (#:key outputs #:allow-other-keys)
11073 (let ((prog (string-append #$output
11074 "/bin/gnome-passwordsafe"))
11075 (pylib (string-append
11076 #$output "/lib/python"
11077 #$(version-major+minor
11078 (package-version (this-package-input "python")))
11079 "/site-packages")))
11080 (wrap-program prog
11081 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11082 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11083 (native-inputs
11084 (list desktop-file-utils
11085 gettext-minimal
11086 `(,glib "bin")
11087 gobject-introspection
11088 `(,gtk+ "bin")
11089 pkg-config))
11090 (inputs
11091 (list glib
11092 gsettings-desktop-schemas
11093 gtk+
11094 libhandy
11095 libpwquality
11096 python
11097 python-pygobject
11098 python-pykeepass))
11099 (home-page "https://gitlab.gnome.org/World/PasswordSafe")
11100 (synopsis "Password manager for the GNOME desktop")
11101 (description
11102 "Password Safe is a password manager which makes use of the KeePass v4
11103 format. It integrates perfectly with the GNOME desktop and provides an easy
11104 and uncluttered interface for the management of password databases.")
11105 (license license:gpl3+)))
11106
11107 (define-public sound-juicer
11108 (package
11109 (name "sound-juicer")
11110 (version "3.24.0")
11111 (source
11112 (origin
11113 (method url-fetch)
11114 (uri (string-append "mirror://gnome/sources/" name "/"
11115 (version-major+minor version) "/"
11116 name "-" version ".tar.xz"))
11117 (sha256
11118 (base32
11119 "19qg4xv0f9rkq34lragkmhii1llxsa87llbl28i759b0ks4f6sny"))))
11120 (build-system glib-or-gtk-build-system)
11121 (native-inputs
11122 (list desktop-file-utils intltool itstool pkg-config libxml2))
11123 (inputs
11124 (list gtk+
11125 gsettings-desktop-schemas
11126 gstreamer
11127 gst-plugins-base
11128 gst-plugins-good
11129 iso-codes
11130 brasero
11131 libcanberra
11132 libdiscid
11133 libmusicbrainz
11134 neon))
11135 (home-page "https://wiki.gnome.org/Apps/SoundJuicer")
11136 (synopsis "Audio music cd ripper")
11137 (description "Sound Juicer extracts audio from compact discs and convert it
11138 into audio files that a personal computer or digital audio player can play.
11139 It supports ripping to any audio codec supported by a GStreamer plugin, such as
11140 mp3, Ogg Vorbis and FLAC")
11141 (license license:gpl2+)))
11142
11143 (define-public soundconverter
11144 (package
11145 (name "soundconverter")
11146 (version "3.0.2")
11147 (source
11148 (origin
11149 (method url-fetch)
11150 (uri (string-append "https://launchpad.net/soundconverter/trunk/"
11151 version "/+download/"
11152 "soundconverter-" version ".tar.xz"))
11153
11154 (sha256
11155 (base32 "1jv8m82hi23ilrgdznlc1jhp2jm8bw1yrw0chh3qw2l0sixvkl11"))))
11156 (build-system glib-or-gtk-build-system)
11157 (arguments
11158 `(#:imported-modules ((guix build python-build-system)
11159 (guix build glib-or-gtk-build-system)
11160 ,@%gnu-build-system-modules)
11161
11162 #:modules ((guix build glib-or-gtk-build-system)
11163 (guix build utils)
11164 ((guix build gnu-build-system) #:prefix gnu:)
11165 ((guix build python-build-system) #:prefix python:))
11166
11167 #:phases
11168 (modify-phases %standard-phases
11169 (add-after 'install 'wrap-soundconverter-for-python
11170 (assoc-ref python:%standard-phases 'wrap))
11171 (add-after 'install 'wrap-soundconverter
11172 (lambda* (#:key inputs outputs #:allow-other-keys)
11173 (let ((out (assoc-ref outputs "out"))
11174 (gi-typelib-path (getenv "GI_TYPELIB_PATH"))
11175 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
11176 (wrap-program (string-append out "/bin/soundconverter")
11177 `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
11178 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
11179 #t)))))
11180 (native-inputs
11181 `(("intltool" ,intltool)
11182 ("pkg-config" ,pkg-config)
11183 ("glib:bin" ,glib "bin")))
11184 (inputs
11185 (list gtk+ python python-pygobject gstreamer gst-plugins-base))
11186 (home-page "https://soundconverter.org/")
11187 (synopsis "Convert between audio formats with a graphical interface")
11188 (description
11189 "SoundConverter supports converting between many audio formats including
11190 Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and
11191 configurable file renaming.")
11192 (license license:gpl3)))
11193
11194 (define-public workrave
11195 (package
11196 (name "workrave")
11197 (version "1.10.50")
11198 (source
11199 (origin
11200 (method git-fetch)
11201 (uri (git-reference
11202 (url "https://github.com/rcaelers/workrave")
11203 (commit (string-append "v" (string-map
11204 (match-lambda (#\. #\_) (chr chr))
11205 version)))))
11206 (file-name (git-file-name name version))
11207 (sha256
11208 (base32 "0fj3fqmdn4nsjgvbbvzpxw2mgiihcr1zpb08amg2p6hg9n11y9bx"))))
11209 (build-system glib-or-gtk-build-system)
11210 (arguments
11211 ;; The only tests are maintainer tests (in po/), which fail.
11212 `(#:tests? #f))
11213 (inputs (list glib
11214 gtk+
11215 gdk-pixbuf
11216 gtkmm-3
11217 glibmm
11218 libx11
11219 libxtst
11220 dconf
11221 libice
11222 libsm
11223 libxscrnsaver))
11224 (native-inputs `(("boost" ,boost)
11225 ("pkg-config" ,pkg-config)
11226 ("gettext" ,gettext-minimal)
11227 ("autoconf" ,autoconf)
11228 ("autoconf-archive" , autoconf-archive)
11229 ("automake" ,automake)
11230 ("libtool" ,libtool)
11231 ("intltool" ,intltool)
11232 ("gobject-introspection" ,gobject-introspection)
11233 ("python3" ,python-3)
11234 ("python-jinja2" ,python-jinja2)))
11235 (synopsis "Tool to help prevent repetitive strain injury (RSI)")
11236 (description
11237 "Workrave is a program that assists in the recovery and prevention of
11238 repetitive strain injury (@dfn{RSI}). The program frequently alerts you to take
11239 micro-pauses and rest breaks, and restricts you to your daily limit.")
11240 (home-page "http://www.workrave.org")
11241 (license license:gpl3+)))
11242
11243 (define-public ghex
11244 (package
11245 (name "ghex")
11246 (version "3.18.4")
11247 (source (origin
11248 (method url-fetch)
11249 (uri (string-append "mirror://gnome/sources/ghex/"
11250 (version-major+minor version) "/"
11251 "ghex-" version ".tar.xz"))
11252 (sha256
11253 (base32
11254 "1h1pjrr9wynclfykizqd78dbi785wjz6b63p31k87kjvzy8w3nf2"))))
11255 (build-system meson-build-system)
11256 (arguments
11257 '(#:glib-or-gtk? #t
11258 #:phases
11259 (modify-phases %standard-phases
11260 (add-after 'unpack 'skip-gtk-update-icon-cache
11261 ;; Don't create 'icon-theme.cache'.
11262 (lambda _
11263 (substitute* "meson_post_install.py"
11264 (("gtk-update-icon-cache") (which "true")))
11265 #t)))))
11266 (native-inputs
11267 `(("pkg-config" ,pkg-config)
11268 ("glib:bin" ,glib "bin") ; for glib-compile-schemas
11269 ("gnome-common" ,gnome-common)
11270 ("which" ,which)
11271 ("intltool" ,intltool)
11272 ("yelp-tools" ,yelp-tools)
11273 ("desktop-file-utils" ,desktop-file-utils))) ; for 'desktop-file-validate'
11274 (inputs
11275 `(("atk" ,atk)
11276 ("gtk" ,gtk+)))
11277 (synopsis "GNOME hexadecimal editor")
11278 (description "The GHex program can view and edit files in two ways:
11279 hexadecimal or ASCII. It is useful for editing binary files in general.")
11280 (home-page "https://wiki.gnome.org/Apps/Ghex")
11281 (license license:gpl2)))
11282
11283 (define-public libdazzle
11284 (package
11285 (name "libdazzle")
11286 (version "3.44.0")
11287 (source (origin
11288 (method url-fetch)
11289 (uri (string-append "mirror://gnome/sources/libdazzle/"
11290 (version-major+minor version) "/"
11291 "libdazzle-" version ".tar.xz"))
11292 (sha256
11293 (base32
11294 "1blfs61ifv4fywl0wbr1cm3rvmgrv06yiqajbnq0qs72nrgf9lrw"))))
11295 (build-system meson-build-system)
11296 (arguments
11297 `(#:phases
11298 (modify-phases %standard-phases
11299 (add-before 'check 'pre-check
11300 (lambda _
11301 ;; Tests require a running X server.
11302 (system "Xvfb :1 &")
11303 (setenv "DISPLAY" ":1"))))))
11304 (native-inputs
11305 (list `(,glib "bin") ; glib-compile-resources
11306 gobject-introspection
11307 pkg-config
11308 ;; For tests.
11309 xorg-server-for-tests
11310 vala))
11311 (inputs
11312 (list glib
11313 gtk+))
11314 (home-page "https://gitlab.gnome.org/GNOME/libdazzle")
11315 (synopsis "Companion library to GObject and Gtk+")
11316 (description "The libdazzle library is a companion library to GObject and
11317 Gtk+. It provides various features that the authors wish were in the
11318 underlying library but cannot for various reasons. In most cases, they are
11319 wildly out of scope for those libraries. In other cases, they are not quite
11320 generic enough to work for everyone.")
11321 (license license:gpl3+)))
11322
11323 (define-public evolution
11324 (package
11325 (name "evolution")
11326 (version "3.42.1")
11327 (source (origin
11328 (method url-fetch)
11329 (uri (string-append "mirror://gnome/sources/evolution/"
11330 (version-major+minor version) "/"
11331 "evolution-" version ".tar.xz"))
11332 (sha256
11333 (base32
11334 "0igfzapdvgfx2gnpwfkjfkn7l5j186wk88ni39vqas1sl7ijlls6"))))
11335 (build-system cmake-build-system)
11336 (arguments
11337 `(#:imported-modules (,@%cmake-build-system-modules
11338 (guix build glib-or-gtk-build-system))
11339 #:modules ((guix build cmake-build-system)
11340 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11341 (guix build utils))
11342 #:configure-flags
11343 (list "-DENABLE_PST_IMPORT=OFF" ; libpst is not packaged
11344 "-DENABLE_LIBCRYPTUI=OFF") ; libcryptui hasn't seen a release
11345 ; in four years and cannot be built.
11346 #:phases
11347 (modify-phases %standard-phases
11348 ;; The build system attempts to install user interface modules to the
11349 ;; output directory of the "evolution-data-server" package. This
11350 ;; change redirects that change.
11351 (add-after 'unpack 'patch-ui-module-dir
11352 (lambda* (#:key outputs #:allow-other-keys)
11353 (substitute* "src/modules/alarm-notify/CMakeLists.txt"
11354 (("\\$\\{edsuimoduledir\\}")
11355 (string-append (assoc-ref outputs "out")
11356 "/lib/evolution-data-server/ui-modules")))))
11357 (add-after 'install 'glib-or-gtk-compile-schemas
11358 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
11359 (add-after 'install 'glib-or-gtk-wrap
11360 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11361 (native-inputs
11362 (list `(,glib "bin") ; glib-mkenums
11363 pkg-config intltool itstool))
11364 (inputs
11365 `(("enchant" ,enchant)
11366 ("evolution-data-server" ,evolution-data-server) ; must be the same version
11367 ("gcr" ,gcr)
11368 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11369 ("gnome-autoar" ,gnome-autoar)
11370 ("gnome-desktop" ,gnome-desktop)
11371 ("gspell" ,gspell)
11372 ("highlight" ,highlight)
11373 ("libcanberra" ,libcanberra)
11374 ("libgweather" ,libgweather)
11375 ("libnotify" ,libnotify)
11376 ("libsoup" ,libsoup)
11377 ("nss" ,nss)
11378 ("openldap" ,openldap)
11379 ("webkitgtk" ,webkitgtk-with-libsoup2) ; because of evolution-data-server
11380 ("ytnef" ,ytnef)))
11381 (home-page "https://gitlab.gnome.org/GNOME/evolution")
11382 (synopsis "Manage your email, contacts and schedule")
11383 (description "Evolution is a personal information management application
11384 that provides integrated mail, calendaring and address book
11385 functionality.")
11386 ;; See COPYING for details.
11387 (license (list license:lgpl2.1 license:lgpl3 ; either one of these
11388 license:openldap2.8 ; addressbook/gui/component/openldap-extract.h
11389 license:lgpl2.1+)))) ; smime/lib/*
11390
11391 (define-public gthumb
11392 (package
11393 (name "gthumb")
11394 (version "3.12.2")
11395 (source (origin
11396 (method url-fetch)
11397 (uri (string-append "mirror://gnome/sources/gthumb/"
11398 (version-major+minor version) "/"
11399 "gthumb-" version ".tar.xz"))
11400 (sha256
11401 (base32
11402 "09flm8s6jrvfya2ypw5873mnnani8ssy7wdv3ra1cljk4bjszy4p"))))
11403 (build-system meson-build-system)
11404 (arguments
11405 `(#:glib-or-gtk? #t
11406 #:configure-flags
11407 ;; Ensure the RUNPATH contains all installed library locations.
11408 (list (string-append "-Dc_link_args=-Wl,-rpath="
11409 (assoc-ref %outputs "out")
11410 "/lib/gthumb/extensions")
11411 (string-append "-Dcpp_link_args=-Wl,-rpath="
11412 (assoc-ref %outputs "out")
11413 "/lib/gthumb/extensions"))))
11414 (native-inputs
11415 `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
11416 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11417 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
11418 ("intltool" ,intltool)
11419 ("itstool" ,itstool)
11420 ("pkg-config" ,pkg-config)
11421 ("python" ,python)))
11422 (inputs
11423 `(("clutter" ,clutter)
11424 ("clutter-gst" ,clutter-gst)
11425 ("clutter-gtk" ,clutter-gtk)
11426 ("colord" ,colord)
11427 ("exiv2" ,exiv2)
11428 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11429 ("gstreamer" ,gstreamer)
11430 ("gtk" ,gtk+)
11431 ("libheif" ,libheif)
11432 ("libjpeg" ,libjpeg-turbo)
11433 ("libraw" ,libraw)
11434 ("librsvg" ,librsvg)
11435 ("libtiff" ,libtiff)
11436 ("libwebp" ,libwebp)))
11437 (home-page "https://wiki.gnome.org/Apps/Gthumb")
11438 (synopsis "GNOME image viewer and browser")
11439 (description "GThumb is an image viewer, browser, organizer, editor and
11440 advanced image management tool")
11441 (license license:gpl2+)))
11442
11443 (define-public terminator
11444 (package
11445 (name "terminator")
11446 (version "2.1.1")
11447 (source
11448 (origin
11449 (method url-fetch)
11450 (uri (string-append "https://github.com/gnome-terminator/terminator/"
11451 "releases/download/v" version "/"
11452 name "-" version ".tar.gz"))
11453 (sha256
11454 (base32 "0xdgmam7ghnxw6g38a4gjw3kk3rhga8c66lns18k928jlr9fmddw"))))
11455 (build-system python-build-system)
11456 (native-inputs
11457 `(("gettext" ,gettext-minimal)
11458 ("glib:bin" ,glib "bin") ; for glib-compile-resources
11459 ("gobject-introspection" ,gobject-introspection)
11460 ("intltool" ,intltool)
11461 ("pkg-config" ,pkg-config)
11462 ("python-psutil" ,python-psutil)
11463 ("python-pytest-runner" ,python-pytest-runner)
11464 ("python-pytest" ,python-pytest)))
11465 (inputs
11466 `(("cairo" ,cairo)
11467 ("dbus-glib" ,dbus-glib)
11468 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
11469 ("gtk+" ,gtk+)
11470 ("python" ,python-wrapper)
11471 ("python-dbus" ,python-dbus)
11472 ("python-notify2" ,python-notify2)
11473 ("python-pycairo" ,python-pycairo)
11474 ("python-pygobject" ,python-pygobject)
11475 ("vte" ,vte)))
11476 (propagated-inputs
11477 (list python-configobj))
11478 (arguments
11479 ;; One test out of 28 fails due to dbus-python and python-notify; skip
11480 ;; tests.
11481 `(#:tests? #f
11482 #:imported-modules ((guix build glib-or-gtk-build-system)
11483 ,@%python-build-system-modules)
11484 #:modules ((guix build python-build-system)
11485 ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
11486 (guix build utils))
11487 #:phases
11488 (modify-phases %standard-phases
11489 (add-after 'unpack 'handle-dbus-python
11490 (lambda _
11491 ;; python-dbus cannot be found but it's really there. See
11492 ;; https://github.com/SpotlightKid/jack-select/issues/2
11493 (substitute* "setup.py"
11494 (("'dbus-python',") ""))))
11495 (add-after 'install 'wrap-program
11496 (lambda* (#:key outputs #:allow-other-keys)
11497 (let ((prog (string-append (assoc-ref outputs "out")
11498 "/bin/terminator"))
11499 (pylib (string-append (assoc-ref outputs "out")
11500 "/lib/python"
11501 ,(version-major+minor
11502 (package-version python))
11503 "/site-packages")))
11504 (wrap-program prog
11505 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
11506 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
11507 (add-after 'wrap-program 'glib-or-gtk-wrap
11508 (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
11509 (home-page "https://gnome-terminator.org/")
11510 (synopsis "Store and run multiple GNOME terminals in one window")
11511 (description
11512 "Terminator allows you to run multiple GNOME terminals in a grid and
11513 tabs, and it supports drag and drop re-ordering of terminals.")
11514 (license license:gpl2)))
11515
11516 (define-public libhandy
11517 (package
11518 (name "libhandy")
11519 (version "1.7.90")
11520 (source
11521 (origin
11522 (method git-fetch)
11523 (uri (git-reference
11524 (url "https://gitlab.gnome.org/GNOME/libhandy")
11525 (commit version)))
11526 (file-name (git-file-name name version))
11527 (sha256
11528 (base32 "1z8sbx7g19c1p8dy0sn0l25qfvrd2j28h269lsqm1y98r818h2k1"))))
11529 (build-system meson-build-system)
11530 (arguments
11531 `(#:configure-flags
11532 '("-Dglade_catalog=enabled"
11533 ;; XXX: Generating the documentation fails because the
11534 ;; libhandy.devhelp2 document cannot be created. This seems to be
11535 ;; caused by a problem during the XSL transformation.
11536 "-Dgtk_doc=false")
11537 #:phases
11538 (modify-phases %standard-phases
11539 (add-after 'unpack 'patch-docbook-xml
11540 (lambda* (#:key inputs #:allow-other-keys)
11541 (for-each
11542 (lambda (file)
11543 (substitute* file
11544 (("http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd")
11545 (search-input-file inputs
11546 "/xml/dtd/docbook/docbookx.dtd"))))
11547 (find-files "doc" "\\.xml"))))
11548 (add-before 'check 'pre-check
11549 (lambda _
11550 ;; Tests require a running X server.
11551 (system "Xvfb :1 &")
11552 (setenv "DISPLAY" ":1"))))))
11553 (inputs
11554 (list gtk+ glade3))
11555 (native-inputs
11556 (list gobject-introspection ; for g-ir-scanner
11557 `(,glib "bin")
11558 vala
11559 libxml2
11560 libxslt
11561 docbook-xsl
11562 docbook-xml-4.3
11563 gtk-doc/stable
11564 pkg-config
11565 gettext-minimal
11566
11567 ;; Test suite dependencies.
11568 hicolor-icon-theme
11569 xorg-server-for-tests))
11570 (home-page "https://gitlab.gnome.org/GNOME/libhandy/")
11571 (synopsis "Library full of GTK+ widgets for mobile phones")
11572 (description "The aim of the handy library is to help with developing user
11573 interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets
11574 for usage on small and big screens.")
11575 (license license:lgpl2.1+)))
11576
11577 (define-public libhandy-0.0
11578 (package
11579 (inherit libhandy)
11580 (version "0.0.13")
11581 (source
11582 (origin
11583 (method git-fetch)
11584 (uri (git-reference
11585 (url "https://gitlab.gnome.org/GNOME/libhandy")
11586 (commit (string-append "v" version))))
11587 (file-name (git-file-name "libhandy" version))
11588 (sha256
11589 (base32 "1y23k623sjkldfrdiwfarpchg5mg58smcy1pkgnwfwca15wm1ra5"))))
11590 (arguments
11591 (substitute-keyword-arguments (package-arguments libhandy)
11592 ((#:configure-flags flags)
11593 '(list "-Dglade_catalog=disabled" "-Dgtk_doc=true"))))))
11594
11595 (define-public libgit2-glib
11596 (package
11597 (name "libgit2-glib")
11598 (version "1.0.0.1")
11599 (source (origin
11600 (method url-fetch)
11601 (uri (string-append "mirror://gnome/sources/" name "/"
11602 (version-major+minor version) "/"
11603 name "-" version ".tar.xz"))
11604 (sha256
11605 (base32
11606 "0mrb21cgqmbhbxqxwx76yry1ifqj1k4vy6455n6s034m6rlms2j6"))))
11607 (build-system meson-build-system)
11608 (native-inputs
11609 (list `(,glib "bin") ;; For glib-mkenums
11610 gobject-introspection
11611 pkg-config
11612 python-pygobject
11613 python-wrapper
11614 vala))
11615 (inputs
11616 (list glib libssh2))
11617 (propagated-inputs
11618 (list ;; In Requires of libgit2-glib.pc.
11619 libgit2))
11620 (synopsis "GLib wrapper around the libgit2 Git access library")
11621 (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
11622 access library. It only implements the core plumbing functions, not really the
11623 higher level porcelain stuff.")
11624 (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
11625 (license license:gpl2+)))
11626
11627 (define-public gitg
11628 (package
11629 (name "gitg")
11630 (version "41")
11631 (source (origin
11632 (method url-fetch)
11633 (uri (string-append "mirror://gnome/sources/" name "/"
11634 (version-major version) "/"
11635 name "-" version ".tar.xz"))
11636 (sha256
11637 (base32
11638 "0aa6djcf7rjw0q688mfy47k67bbjpnx6aw1xs94abfhgn6gipdkz"))))
11639 (build-system meson-build-system)
11640 (arguments
11641 (list
11642 #:glib-or-gtk? #t
11643 #:phases
11644 #~(modify-phases %standard-phases
11645 (add-after 'unpack 'disable-post-install-partially
11646 (lambda _
11647 (substitute* "meson_post_install.py"
11648 (("'python'") ; there are no python sources to compile
11649 (string-append "'" (which "true") "'"))
11650 (("gtk-update-icon-cache") (which "true")))))
11651 (add-after 'unpack 'fix-test-sources
11652 (lambda _
11653 (substitute* "tests/libgitg/test-commit.vala"
11654 (("/bin/bash") (which "bash")))))
11655 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11656 (lambda* (#:key outputs #:allow-other-keys)
11657 (let ((prog (string-append #$output "/bin/gitg")))
11658 (wrap-program prog
11659 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11660 (inputs
11661 (list glib
11662 gsettings-desktop-schemas
11663 gspell
11664 gtk+
11665 gtksourceview
11666 json-glib
11667 libdazzle
11668 libgee
11669 libgit2-glib
11670 libpeas
11671 libsecret
11672 libsoup-minimal-2
11673 libxml2))
11674 (native-inputs
11675 (list `(,glib "bin")
11676 `(,gtk+ "bin")
11677 gobject-introspection
11678 intltool
11679 pkg-config
11680 python
11681 vala))
11682 (synopsis "Graphical user interface for git")
11683 (description
11684 "gitg is a graphical user interface for git. It aims at being a small,
11685 fast and convenient tool to visualize the history of git repositories.
11686 Besides visualization, gitg also provides several utilities to manage your
11687 repository and commit your work.")
11688 (home-page "https://wiki.gnome.org/Apps/Gitg")
11689 (license license:gpl2+)))
11690
11691 (define-public gamin
11692 (package
11693 (name "gamin")
11694 (version "0.1.10")
11695 (source (origin
11696 (method url-fetch)
11697 (uri (string-append "mirror://gnome/sources/" name "/"
11698 (version-major+minor version) "/"
11699 name "-" version ".tar.bz2"))
11700 (sha256
11701 (base32
11702 "02n1zr9y8q9lyczhcz0nxar1vmf8p2mmbw8kq0v43wg21jr4i6d5"))))
11703 (build-system gnu-build-system)
11704 (arguments
11705 `(#:phases
11706 (modify-phases %standard-phases
11707 ;; The 'config.sub' is too old to recognise aarch64.
11708 ,@(if (and=> (%current-target-system) target-aarch64?)
11709 `((add-after 'unpack 'replace-config.sub
11710 (lambda _
11711 (delete-file "config.sub")
11712 (symlink (which "config.sub") "config.sub"))))
11713 '())
11714 (add-after 'unpack 'remove-deprecated-macro
11715 (lambda _
11716 (substitute* '("server/gam_node.c"
11717 "server/gam_subscription.h"
11718 "server/gam_node.h"
11719 "server/gam_subscription.c")
11720 (("G_CONST_RETURN") "const"))
11721 #t))
11722 ;; The configure script runs a test program unconditionally,
11723 ;; without an option to manually set the test result.
11724 ;; Override this test anyway.
11725 ,@(if (%current-target-system)
11726 `((add-after 'bootstrap 'set-have-abstract-sockets
11727 (lambda _
11728 (define in-abstract-sockets-test? #f)
11729 (substitute* "configure"
11730 (("^#### Abstract sockets\n$")
11731 (set! in-abstract-sockets-test? #t)
11732 "#### Abstract sockets\n")
11733 (("^have_abstract_sockets=no\n$")
11734 (set! in-abstract-sockets-test? #f)
11735 ;; ‘Abstract sockets’ appear to be Linux-only.
11736 (string-append "have_abstract_sockets="
11737 ,(if (target-linux?)
11738 "yes"
11739 "no")
11740 "\nif false; then\nif false; then :\n"))
11741 (("^(.*\n)$" line)
11742 (if in-abstract-sockets-test?
11743 "" ; delete
11744 line))))))
11745 '()))))
11746 (inputs
11747 (list glib))
11748 (native-inputs
11749 `(("pkg-config" ,pkg-config)
11750 ,@(if (and=> (%current-target-system) target-aarch64?)
11751 `(("config" ,config))
11752 '())))
11753 (home-page "https://people.gnome.org/~veillard/gamin/")
11754 (synopsis "File alteration monitor")
11755 (description
11756 "Gamin is a file and directory monitoring system defined to be a subset
11757 of the FAM (File Alteration Monitor) system. This is a service provided by a
11758 library which detects when a file or a directory has been modified.")
11759 (license license:gpl2+)))
11760
11761 (define-public gnome-mahjongg
11762 (package
11763 (name "gnome-mahjongg")
11764 (version "3.38.3")
11765 (source (origin
11766 (method url-fetch)
11767 (uri (string-append "mirror://gnome/sources/" name "/"
11768 (version-major+minor version) "/" name "-"
11769 version ".tar.xz"))
11770 (sha256
11771 (base32
11772 "144ia3zn9rhwa1xbdkvsz6m0dsysl6mxvqw9bnrlh845hmyy9cfj"))))
11773 (build-system meson-build-system)
11774 (arguments
11775 `(#:meson ,meson-0.59
11776 #:glib-or-gtk? #t))
11777 (native-inputs
11778 `(("appstream-glib" ,appstream-glib)
11779 ("gettext" ,gettext-minimal)
11780 ("glib:bin" ,glib "bin") ;; For glib-compile-resources
11781 ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
11782 ("itstool" ,itstool)
11783 ("pkg-config" ,pkg-config)
11784 ("vala" ,vala)))
11785 (propagated-inputs
11786 (list dconf))
11787 (inputs
11788 (list glib gtk+))
11789 (synopsis "Mahjongg tile-matching game")
11790 (description "GNOME Mahjongg is a game based on the classic Chinese
11791 tile-matching game Mahjongg. It features multiple board layouts, tile themes,
11792 and a high score table.")
11793 (home-page "https://wiki.gnome.org/Apps/Mahjongg")
11794 (license license:gpl2+)))
11795
11796 (define-public gnome-themes-extra
11797 (package
11798 (name "gnome-themes-extra")
11799 (version "3.28")
11800 (source
11801 (origin
11802 (method url-fetch)
11803 (uri (string-append "mirror://gnome/sources/" name "/"
11804 (version-major+minor version) "/" name "-"
11805 version ".tar.xz"))
11806 (sha256
11807 (base32
11808 "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw"))))
11809 (build-system gnu-build-system)
11810 (arguments
11811 '(#:configure-flags
11812 ;; Don't create 'icon-theme.cache'.
11813 (let* ((coreutils (assoc-ref %build-inputs "coreutils"))
11814 (true (string-append coreutils "/bin/true")))
11815 (list (string-append "GTK_UPDATE_ICON_CACHE=" true)))))
11816 (native-inputs
11817 `(("glib:bin" ,glib "bin")
11818 ("intltool" ,intltool)
11819 ("pkg-config" ,pkg-config)))
11820 (inputs
11821 `(("glib" ,glib)
11822 ("gtk+" ,gtk+)
11823 ("gtk+-2" ,gtk+-2)
11824 ("librsvg" ,librsvg)
11825 ("libxml2" ,libxml2)))
11826 (home-page "https://gitlab.gnome.org/GNOME/gnome-themes-extra")
11827 (synopsis "GNOME Extra Themes")
11828 (description "This package provides themes and related elements that don't
11829 really fit in other upstream packages. It offers legacy support for GTK+ 2
11830 versions of Adwaita, Adwaita-dark and HighContrast themes. It also provides
11831 index files needed for Adwaita to be used outside of GNOME.")
11832 (license license:lgpl2.1+)))
11833
11834 (define-public gnome-themes-standard
11835 (deprecated-package "gnome-themes-standard" gnome-themes-extra))
11836
11837 (define-public gnote
11838 (package
11839 (name "gnote")
11840 (version "41.2")
11841 (source
11842 (origin
11843 (method url-fetch)
11844 (uri (string-append "mirror://gnome/sources/" name "/"
11845 (version-major version) "/"
11846 "gnote-" version ".tar.xz"))
11847 (sha256
11848 (base32 "0gs2j988rwfrxckb8qxlkyxnvqsv30q32myqish6hssfa51yzc11"))))
11849 (build-system meson-build-system)
11850 (arguments
11851 `(#:glib-or-gtk? #t
11852 #:phases (modify-phases %standard-phases
11853 (add-after 'unpack 'skip-gtk-update-icon-cache
11854 ;; Don't create 'icon-theme.cache'.
11855 (lambda _
11856 (substitute* "post-install.py"
11857 (("gtk-update-icon-cache") "true")))))))
11858 (native-inputs
11859 (list desktop-file-utils
11860 `(,glib "bin")
11861 gobject-introspection
11862 intltool
11863 itstool
11864 pkg-config
11865 python))
11866 (inputs
11867 (list glibmm
11868 gsettings-desktop-schemas
11869 gspell
11870 gtk+
11871 gtkmm-3
11872 libsecret
11873 `(,util-linux "lib")
11874 libxml2
11875 libxslt))
11876 (synopsis "Note-taking application for the GNOME desktop")
11877 (description "Gnote is a note-taking application written for the GNOME
11878 desktop environment.")
11879 (home-page "https://wiki.gnome.org/Apps/Gnote")
11880 (license license:gpl3+)))
11881
11882 (define-public polari
11883 (package
11884 (name "polari")
11885 (version "41.0")
11886 (source (origin
11887 (method url-fetch)
11888 (uri (string-append "mirror://gnome/sources/polari/"
11889 (version-major version)
11890 "/polari-" version ".tar.xz"))
11891 (sha256
11892 (base32
11893 "1ss0x8idwar1q9p9535kzqb8idy7k2r48vrbjiyccw03cs0mzc53"))))
11894 (build-system meson-build-system)
11895 (arguments
11896 `(#:glib-or-gtk? #t
11897 #:phases
11898 (modify-phases %standard-phases
11899 (add-after 'unpack 'skip-gtk-update-icon-cache
11900 (lambda _
11901 (substitute* "meson/meson-postinstall.sh"
11902 (("gtk-update-icon-cache") (which "true")))))
11903 (add-after 'install 'fix-desktop-file
11904 ;; Hardcode launcher to be on the safe side
11905 (lambda* (#:key outputs #:allow-other-keys)
11906 (let ((out (assoc-ref outputs "out")))
11907 (substitute* (string-append out "/share/applications/"
11908 "org.gnome.Polari.desktop")
11909 (("Exec=.*") (string-append "Exec=" out "/bin/polari\n"))))))
11910 (add-after 'glib-or-gtk-wrap 'wrap-typelib
11911 (lambda* (#:key outputs #:allow-other-keys)
11912 (let ((prog (string-append (assoc-ref outputs "out")
11913 "/bin/polari")))
11914 (wrap-program prog
11915 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
11916 (inputs
11917 (list glib
11918 gsettings-desktop-schemas
11919 gspell
11920 gtk
11921 gjs
11922 libsecret
11923 libsoup-minimal-2
11924 telepathy-glib
11925 telepathy-logger))
11926 (native-inputs
11927 (list `(,glib "bin")
11928 gobject-introspection
11929 intltool
11930 pkg-config
11931 yelp-tools))
11932 (propagated-inputs
11933 (list telepathy-idle telepathy-mission-control))
11934 (synopsis "Simple IRC Client")
11935 (description
11936 "Polari is a simple Internet Relay Chat (IRC) client that is designed to
11937 integrate seamlessly with the GNOME desktop.")
11938 (home-page "https://wiki.gnome.org/Apps/Polari")
11939 (license license:gpl2+)))
11940
11941 (define-public gnome-boxes
11942 (package
11943 (name "gnome-boxes")
11944 (version "42.3")
11945 (source
11946 (origin
11947 (method url-fetch)
11948 (uri (string-append "mirror://gnome/sources/gnome-boxes/"
11949 (version-major version) "/"
11950 "gnome-boxes-" version ".tar.xz"))
11951 (sha256
11952 (base32 "1lv0bdh935qj6wkv3ixg2pcv8yrapj79z02gw4fal3rhz3xggvsn"))))
11953 (build-system meson-build-system)
11954 (arguments
11955 (list #:glib-or-gtk? #t
11956 #:configure-flags #~(list "-Drdp=false"
11957 (string-append "-Dc_link_args=-Wl,-rpath="
11958 #$output
11959 "/lib/gnome-boxes"))
11960 #:phases #~(modify-phases %standard-phases
11961 (add-after 'unpack 'disable-gtk-update-icon-cache
11962 (lambda _
11963 (setenv "DESTDIR" "/"))))))
11964 (native-inputs
11965 (list desktop-file-utils ;for update-desktop-database
11966 gettext-minimal
11967 `(,glib "bin") ;for glib-compile-resources
11968 itstool
11969 pkg-config
11970 python
11971 vala))
11972 (inputs
11973 (list glib-networking ;for TLS support
11974 gsettings-desktop-schemas
11975 gtk+
11976 gtk-vnc
11977 gtksourceview
11978 json-glib
11979 libarchive
11980 libgudev
11981 libhandy
11982 libosinfo
11983 libsecret
11984 libsoup-minimal-2
11985 libusb
11986 libvirt
11987 libvirt-glib
11988 libxml2
11989 sparql-query
11990 spice-gtk
11991 tracker
11992 vte
11993 webkitgtk-with-libsoup2)) ;for webkit2gtk-4.0
11994 (home-page "https://wiki.gnome.org/Apps/Boxes")
11995 (synopsis "View, access, and manage remote and virtual systems")
11996 (description "GNOME Boxes is a simple application to view, access, and
11997 manage remote and virtual systems. Note that this application requires the
11998 @code{libvirt} and @code{virtlog} daemons to run. Use the command
11999 @command{info '(guix) Virtualization Services'} to learn how to configure
12000 these services on the Guix System.")
12001 (license (list
12002 ;; For data/icons/empty-boxes.png.
12003 license:cc-by2.0
12004 ;; For all others.
12005 license:lgpl2.0+))))
12006
12007 (define-public geary
12008 (package
12009 (name "geary")
12010 (version "40.0")
12011 (source (origin
12012 (method git-fetch)
12013 (uri (git-reference
12014 (url "https://gitlab.gnome.org/GNOME/geary.git")
12015 (commit (string-append "gnome-" version))))
12016 (file-name (git-file-name name version))
12017 (sha256
12018 (base32
12019 "04hvw86r8sczvjm1z3ls5y5y5h6nyfb648rjkfx05ib00mqq5v1x"))))
12020 (build-system meson-build-system)
12021 (arguments
12022 `(#:glib-or-gtk? #t
12023 #:configure-flags
12024 '("-Dprofile=release")
12025 #:phases (modify-phases %standard-phases
12026 (add-after 'unpack 'disable-failing-tests
12027 (lambda _
12028 (substitute* "test/test-client.vala"
12029 (("client.add_suite\\(new Application.CertificateManagerTest\\(\\).suite\\);")
12030 ""))))
12031 (add-after 'unpack 'generate-vapis
12032 (lambda* (#:key inputs #:allow-other-keys)
12033 ;; It’s not possible to generate the GMime vapi, because
12034 ;; there’s custom metadata that gmime didn’t
12035 ;; install. Thus, the vapi should be built and installed
12036 ;; with gmime.
12037 (define gmime
12038 (assoc-ref inputs "gmime"))
12039 (copy-file (string-append gmime "/share/vala/vapi/gmime-3.0.vapi")
12040 "bindings/vapi/gmime-3.0.vapi")))
12041 (add-after 'unpack 'disable-postinstall-script
12042 (lambda _
12043 (substitute* "build-aux/post_install.py"
12044 (("gtk-update-icon-cache")
12045 "true"))))
12046 (add-before 'check 'setup-home
12047 (lambda _
12048 ;; Tests require a writable HOME.
12049 (setenv "HOME" (getcwd))))
12050 (add-before 'check 'setup-xvfb
12051 (lambda _
12052 (system "Xvfb :1 &")
12053 (setenv "DISPLAY" ":1"))))))
12054 (inputs
12055 (list enchant
12056 folks
12057 gcr
12058 glib
12059 gmime
12060 gnome-online-accounts
12061 gsettings-desktop-schemas
12062 gspell
12063 gsound
12064 gtk+
12065 iso-codes
12066 json-glib
12067 libcanberra
12068 libgee
12069 libhandy
12070 libpeas
12071 libsecret
12072 libstemmer
12073 libunwind
12074 sqlite
12075 webkitgtk-with-libsoup2
12076 ytnef))
12077 (native-inputs
12078 (list appstream-glib
12079 cmake-minimal
12080 desktop-file-utils
12081 gettext-minimal
12082 glib
12083 `(,glib "bin")
12084 gmime
12085 gobject-introspection
12086 gsettings-desktop-schemas
12087 itstool
12088 libarchive
12089 libxml2
12090 pkg-config
12091 python-minimal
12092 vala
12093 xorg-server-for-tests))
12094 (synopsis "GNOME email application built around conversations")
12095 (description
12096 "Geary collects related messages together into conversations,
12097 making it easy to find and follow your discussions. Full-text and keyword
12098 search makes it easy to find the email you are looking for. Geary's
12099 full-featured composer lets you send rich, styled text with images, links, and
12100 lists, but also send lightweight, easy to read text messages. Geary
12101 automatically picks up your existing GNOME Online Accounts, and adding more is
12102 easy. Geary has a clean, fast, modern interface that works like you want it
12103 to.")
12104 (home-page "https://wiki.gnome.org/Apps/Geary")
12105 (license (list
12106 ;; geary
12107 license:lgpl2.1+
12108 ;; icons
12109 license:cc-by3.0
12110 license:cc-by-sa3.0
12111 license:public-domain
12112 ;; snowball
12113 license:bsd-2))))
12114
12115 (define-public glabels
12116 (package
12117 (name "glabels")
12118 (version "3.4.1")
12119 (source
12120 (origin
12121 (method url-fetch)
12122 (uri (string-append "mirror://gnome/sources/" name "/"
12123 (version-major+minor version) "/"
12124 "glabels-" version ".tar.xz"))
12125 (sha256
12126 (base32 "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q"))))
12127 (build-system glib-or-gtk-build-system)
12128 (native-inputs
12129 `(("gettext" ,gettext-minimal)
12130 ("glib:bin" ,glib "bin")
12131 ("intltool" ,intltool)
12132 ("itstool" ,itstool)
12133 ("pkg-config" ,pkg-config)))
12134 (inputs
12135 (list gtk+ librsvg libxml2))
12136 (arguments
12137 `(#:configure-flags '("CFLAGS=-fcommon")))
12138 (home-page "https://glabels.org/")
12139 (synopsis "Program for creating labels and business cards")
12140 (description
12141 "gLabels is a program for creating labels and business cards. It is
12142 designed to work with various laser/ink-jet peel-off label and business
12143 card sheets that you’ll find at most office supply stores.")
12144 (license license:gpl3+)))
12145
12146 (define-public gnome-latex
12147 (package
12148 (name "gnome-latex")
12149 (version "3.41.2")
12150 (source
12151 (origin
12152 (method url-fetch)
12153 (uri (string-append "mirror://gnome/sources/" name "/"
12154 (version-major+minor version) "/"
12155 "gnome-latex-" version ".tar.xz"))
12156 (sha256
12157 (base32 "0cynhmrn99f4f3kddczsc58ak4b9sv2zkfbcyz7z16848nhz047k"))))
12158 (build-system glib-or-gtk-build-system)
12159 (native-inputs
12160 (list gettext-minimal
12161 `(,glib "bin")
12162 gobject-introspection
12163 gtk-doc/stable
12164 itstool
12165 pkg-config
12166 vala))
12167 (inputs
12168 (list dconf
12169 glib
12170 gspell
12171 libgee
12172 tepl
12173 uchardet))
12174 (home-page "https://wiki.gnome.org/Apps/GNOME-LaTeX")
12175 (synopsis "LaTeX editor for the GNOME desktop")
12176 (description
12177 "GNOME LaTeX is a LaTeX editor for the GNOME desktop. It has features
12178 such as build tools, completion of LaTeX commands, structure navigation,
12179 symbol tables, document templates, project management, spell-checking, menus
12180 and toolbars.")
12181 (license license:gpl3+)))
12182
12183 (define-public setzer
12184 (package
12185 (name "setzer")
12186 (version "0.4.1")
12187 (source
12188 (origin
12189 (method git-fetch)
12190 (uri (git-reference
12191 (url "https://github.com/cvfosammmm/Setzer")
12192 (commit (string-append "v" version))))
12193 (file-name (git-file-name name version))
12194 (sha256
12195 (base32 "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av"))))
12196 (build-system meson-build-system)
12197 (arguments
12198 `(#:glib-or-gtk? #t
12199 #:phases
12200 (modify-phases %standard-phases
12201 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12202 (lambda* (#:key outputs #:allow-other-keys)
12203 (let ((prog (string-append (assoc-ref outputs "out")
12204 "/bin/setzer"))
12205 (pylib (string-append (assoc-ref outputs "out")
12206 "/lib/python"
12207 ,(version-major+minor
12208 (package-version python))
12209 "/site-packages")))
12210 (wrap-program prog
12211 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12212 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12213 #t))))))
12214 (native-inputs
12215 `(("desktop-file-utils" ,desktop-file-utils)
12216 ("gettext" ,gettext-minimal)
12217 ("glib:bin" ,glib "bin")
12218 ("gobject-introspection" ,gobject-introspection)
12219 ("gtk+:bin" ,gtk+ "bin")
12220 ("python-wrapper" ,python-wrapper)))
12221 (inputs
12222 `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
12223 ("gspell" ,gspell)
12224 ("gtk+" ,gtk+)
12225 ("gtksourceview" ,gtksourceview)
12226 ("pango" ,pango)
12227 ("poppler" ,poppler)
12228 ("python-pdfminer" ,python-pdfminer-six)
12229 ("python-pycairo" ,python-pycairo)
12230 ("python-pygobject" ,python-pygobject)
12231 ("python-pyxdg" ,python-pyxdg)
12232 ("webkitgtk" ,webkitgtk)
12233 ("xdg-utils" ,xdg-utils)))
12234 (home-page "https://www.cvfosammmm.org/setzer/")
12235 (synopsis "LaTeX editor written in Python with GTK+")
12236 (description
12237 "Setzer is a simple yet full-featured LaTeX editor written in Python with
12238 GTK+. It integrates well with the GNOME desktop environment.")
12239 (license license:gpl3+)))
12240
12241 (define-public apostrophe
12242 (package
12243 (name "apostrophe")
12244 (version "2.5")
12245 (source (origin
12246 (method git-fetch)
12247 (uri (git-reference
12248 (url "https://gitlab.gnome.org/somas/apostrophe")
12249 (commit (string-append "v" version))))
12250 (file-name (git-file-name name version))
12251 (sha256
12252 (base32
12253 "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp"))))
12254 (build-system meson-build-system)
12255 (arguments
12256 `(#:glib-or-gtk? #t
12257 #:meson ,meson-0.59 ;fails with 0.60
12258 #:phases
12259 (modify-phases %standard-phases
12260 (add-after 'unpack 'patch-meson
12261 (lambda _
12262 (substitute* "build-aux/meson_post_install.py"
12263 (("gtk-update-icon-cache") "true"))))
12264 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12265 (lambda* (#:key inputs outputs #:allow-other-keys)
12266 (let ((prog (string-append (assoc-ref outputs "out")
12267 "/bin/apostrophe"))
12268 (pylib (string-append (assoc-ref outputs "out")
12269 "/lib/python"
12270 ,(version-major+minor
12271 (package-version
12272 (this-package-input "python")))
12273 "/site-packages")))
12274 (wrap-program prog
12275 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12276 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
12277 `("PATH" prefix (,(dirname
12278 (search-input-file inputs
12279 "/bin/pandoc")))))))))))
12280 (inputs
12281 (list glib
12282 gobject-introspection
12283 gspell
12284 gtk+
12285 libhandy
12286 pandoc
12287 python
12288 python-chardet
12289 python-levenshtein
12290 python-regex
12291 python-pycairo
12292 python-pygobject
12293 python-pyenchant
12294 python-pypandoc
12295 webkitgtk-with-libsoup2))
12296 (native-inputs
12297 (list gettext-minimal
12298 `(,glib "bin")
12299 pkg-config
12300 sassc))
12301 (home-page "https://gitlab.gnome.org/somas/apostrophe")
12302 (synopsis "Markdown editor written in Python with GTK+")
12303 (description "Apostrophe is a GTK+ based distraction-free Markdown editor.
12304 It uses pandoc as back-end for parsing Markdown.")
12305 (license license:gpl3)))
12306
12307 (define-public libratbag
12308 (package
12309 (name "libratbag")
12310 (version "0.16")
12311 (source
12312 (origin
12313 (method git-fetch)
12314 (uri (git-reference
12315 (url "https://github.com/libratbag/libratbag")
12316 (commit (string-append "v" version))))
12317 (file-name (git-file-name name version))
12318 (sha256
12319 (base32 "0jjf6xc3a37icp5dvbxla3ai9is2ns31m0llbfq1bmb6dk8cd4n0"))))
12320 (build-system meson-build-system)
12321 (arguments
12322 `(#:configure-flags
12323 (list "-Dsystemd=false"
12324 "-Dlogind-provider=elogind"
12325 ,@(if (not (package? (this-package-native-input "valgrind")))
12326 `("-Dtests=false") ; Some tests still run.
12327 `()))
12328 #:phases
12329 (modify-phases %standard-phases
12330 (add-after 'install 'wrap
12331 (lambda* (#:key inputs outputs #:allow-other-keys)
12332 (let* ((out (assoc-ref outputs "out"))
12333 (site (string-append
12334 "/lib/python"
12335 ,(version-major+minor (package-version python))
12336 "/site-packages"))
12337 (evdev (string-append
12338 (assoc-ref inputs "python-evdev") site))
12339 (pygo (string-append
12340 (assoc-ref inputs "python-pygobject") site))
12341 (python-wrap
12342 `("GUIX_PYTHONPATH" = (,evdev ,pygo))))
12343 (wrap-program (string-append out "/bin/" "ratbagctl")
12344 python-wrap)
12345 #t))))))
12346 (native-inputs
12347 (append
12348 (list check pkg-config swig)
12349 (if (member (%current-system) (package-supported-systems valgrind))
12350 (list valgrind)
12351 '())))
12352 (inputs
12353 `(("glib" ,glib)
12354 ("json-glib" ,json-glib)
12355 ("libevdev" ,libevdev)
12356 ("libsystemd" ,elogind)
12357 ("libunistring" ,libunistring)
12358 ("python" ,python)
12359 ("python-evdev" ,python-evdev)
12360 ("python-pygobject" ,python-pygobject)
12361 ("udev" ,eudev)))
12362 (home-page "https://github.com/libratbag/libratbag")
12363 (synopsis "DBus daemon and utility for configuring gaming mice")
12364 (description "libratbag provides @command{ratbagd}, a DBus daemon to
12365 configure input devices, mainly gaming mice. The daemon provides a generic
12366 way to access the various features exposed by these mice and abstracts away
12367 hardware-specific and kernel-specific quirks. There is also the
12368 @command{ratbagctl} command line interface for configuring devices.
12369
12370 libratbag currently supports devices from Logitech, Etekcity, GSkill, Roccat,
12371 Steelseries.
12372
12373 The ratbagd DBus service can be enabled by adding the following service to
12374 your operating-system definition:
12375
12376 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12377 (license license:expat)))
12378
12379 (define-public piper
12380 (package
12381 (name "piper")
12382 (version "0.7")
12383 (source
12384 (origin
12385 (method git-fetch)
12386 (uri (git-reference
12387 (url "https://github.com/libratbag/piper")
12388 (commit version)))
12389 (sha256
12390 (base32 "0jsvfy0ihdcgnqljfgs41lys1nlz18qvsa0a8ndx3pyr41f8w8wf"))
12391 (file-name (git-file-name name version))))
12392 (build-system meson-build-system)
12393 (native-inputs
12394 (list appstream
12395 gettext-minimal
12396 `(,glib "bin")
12397 gobject-introspection
12398 pkg-config
12399 python-flake8))
12400 (inputs
12401 (list adwaita-icon-theme
12402 gtk+
12403 `(,gtk+ "bin")
12404 libratbag
12405 python
12406 python-evdev
12407 python-lxml
12408 python-pycairo
12409 python-pygobject))
12410 (arguments
12411 (list #:glib-or-gtk? #t
12412 #:phases
12413 #~(modify-phases %standard-phases
12414 (add-after 'unpack 'dont-update-gtk-icon-cache
12415 (lambda _
12416 (substitute* "meson.build"
12417 (("meson.add_install_script('meson_install.sh')") ""))))
12418 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12419 (lambda _
12420 (let ((pylib (string-append #$output
12421 "/lib/python"
12422 #$(version-major+minor
12423 (package-version python))
12424 "/site-packages")))
12425 (wrap-program
12426 (string-append #$output "/bin/piper")
12427 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12428 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))
12429 (add-before 'check 'flake8-config
12430 (lambda _
12431 ;; Make sure the tests use the local flake8 config
12432 (symlink (string-append #$source "/.flake8") ".flake8"))))))
12433 (home-page "https://github.com/libratbag/piper/")
12434 (synopsis "Configure bindings and LEDs on gaming mice")
12435 (description "Piper is a GTK+ application for configuring gaming mice with
12436 onboard configuration for key bindings via libratbag. Piper requires
12437 a @command{ratbagd} daemon running with root privileges. It can be run
12438 manually as root, but is preferably configured as a DBus service that can
12439 launch on demand. This can be configured by enabling the following service,
12440 provided there is a DBus service present:
12441
12442 (simple-service 'ratbagd dbus-root-service-type (list libratbag))")
12443 (license license:gpl2)))
12444
12445 (define-public parlatype
12446 (package
12447 (name "parlatype")
12448 (version "3.1")
12449 (source
12450 (origin
12451 (method git-fetch)
12452 (uri (git-reference
12453 (url "https://github.com/gkarsay/parlatype")
12454 (commit (string-append "v" version))))
12455 (file-name (git-file-name name version))
12456 (sha256
12457 (base32 "0cqrzbkyksfsm57riirmjkwf2nf2dgl1xpps1wvqxpij475qcb9b"))))
12458 (build-system meson-build-system)
12459 (arguments
12460 `(#:glib-or-gtk? #t
12461 #:tests? #f ;require internet access
12462 #:phases
12463 (modify-phases %standard-phases
12464 (add-after 'unpack 'skip-gtk-update-icon-cache
12465 (lambda _
12466 (substitute* "data/meson_post_install.py"
12467 (("gtk-update-icon-cache") "true"))))
12468 (add-after 'install 'wrap-parlatype
12469 ;; Add gstreamer plugin provided in this package to system's
12470 ;; plugins.
12471 (lambda* (#:key outputs #:allow-other-keys)
12472 (let* ((out (assoc-ref outputs "out"))
12473 (gst-plugin-path (string-append
12474 out "/lib/gstreamer-1.0/"
12475 ":"
12476 (getenv "GST_PLUGIN_SYSTEM_PATH"))))
12477 (wrap-program (string-append out "/bin/parlatype")
12478 `("GST_PLUGIN_SYSTEM_PATH" ":" = (,gst-plugin-path)))))))))
12479 (native-inputs
12480 (list appstream-glib
12481 desktop-file-utils ;for desktop-file-validate
12482 gettext-minimal
12483 `(,glib "bin") ;for glib-compile-resources
12484 pkg-config
12485 yelp-tools))
12486 (inputs
12487 (list gst-plugins-base
12488 gst-plugins-good
12489 gstreamer
12490 gtk+
12491 iso-codes
12492 pocketsphinx
12493 pulseaudio
12494 sphinxbase))
12495 (home-page "https://www.parlatype.org")
12496 (synopsis "GNOME audio player for transcription")
12497 (description "Parlatype is an audio player for the GNOME desktop
12498 environment. Its main purpose is the manual transcription of spoken
12499 audio files.")
12500 (license license:gpl3+)))
12501
12502 (define-public jsonrpc-glib
12503 (package
12504 (name "jsonrpc-glib")
12505 (version "3.34.0")
12506 (source (origin
12507 (method url-fetch)
12508 (uri (string-append "mirror://gnome/sources/" name "/"
12509 (version-major+minor version) "/"
12510 name "-" version ".tar.xz"))
12511 (sha256
12512 (base32
12513 "0j05x4xv2cp3cbmp30m68z8g4rdw7b030ip4wszyfj9ya15v5kni"))))
12514 (build-system meson-build-system)
12515 (inputs
12516 (list json-glib glib))
12517 (native-inputs
12518 (list pkg-config
12519 `(,glib "bin") ; for glib-genmarshal, etc.
12520 gobject-introspection vala))
12521 (home-page "https://gitlab.gnome.org/GNOME/jsonrpc-glib")
12522 (synopsis "JSON-RPC library for GLib")
12523 (description "Jsonrpc-GLib is a library to communicate with JSON-RPC based
12524 peers in either a synchronous or asynchronous fashion. It also allows
12525 communicating using the GVariant serialization format instead of JSON when
12526 both peers support it. You might want that when communicating on a single
12527 host to avoid parser overhead and memory-allocator fragmentation.")
12528 (license license:lgpl2.1+)))
12529
12530 (define-public feedbackd
12531 (package
12532 (name "feedbackd")
12533 (version "0.0.0+git20200527")
12534 (source (origin
12535 (method git-fetch)
12536 (uri (git-reference
12537 (url "https://source.puri.sm/Librem5/feedbackd.git")
12538 (commit (string-append "v" version))))
12539 (file-name (git-file-name name version))
12540 (sha256
12541 (base32
12542 "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
12543 (build-system meson-build-system)
12544 (native-inputs
12545 (list `(,glib "bin") gobject-introspection pkg-config vala))
12546 (inputs
12547 (list dbus gsound json-glib libgudev))
12548 (propagated-inputs
12549 (list glib)) ; in Requires of libfeedback-0.0.pc
12550 (synopsis "Haptic/visual/audio feedback via DBus")
12551 (description "Feedbackd provides a DBus daemon to act on events to provide
12552 haptic, visual and audio feedback. It offers the libfeedbackd library and
12553 GObject introspection bindings.")
12554 (home-page "https://source.puri.sm/Librem5/feedbackd")
12555 (license (list license:lgpl2.1+ ; libfeedbackd
12556 license:lgpl3+)))) ; the rest
12557
12558 (define-public sysprof
12559 (package
12560 (name "sysprof")
12561 (version "3.44.0")
12562 (source
12563 (origin
12564 (method url-fetch)
12565 (uri (string-append "mirror://gnome/sources/sysprof/"
12566 (version-major+minor version) "/"
12567 "sysprof-" version ".tar.xz"))
12568 (sha256
12569 (base32 "0nq0icbln0ryqzlybr7wyl19mhr3vkqzs6wasn430fwpf5drypdb"))))
12570 (build-system meson-build-system)
12571 (arguments
12572 (list
12573 #:configure-flags
12574 #~(list (string-append "-Dsystemdunitdir=" #$output "/share/systemd"))
12575 #:phases
12576 #~(modify-phases %standard-phases
12577 (add-after 'unpack 'patch-install-script
12578 (lambda _
12579 (substitute* "build-aux/meson/post_install.sh"
12580 (("gtk-update-icon-cache") "true")
12581 (("update-desktop-database") "true")))))))
12582 (propagated-inputs
12583 (list polkit))
12584 (inputs
12585 (list glib
12586 gtk+
12587 json-glib
12588 libdazzle
12589 libunwind
12590 polkit))
12591 (native-inputs
12592 (list gettext-minimal
12593 `(,glib "bin") ;for gdbus-codegen, etc.
12594 itstool
12595 pkg-config
12596 libxml2))
12597 ;; This home page is so woefully out of date as to be essentially useless.
12598 ;; (home-page "http://www.sysprof.com")
12599 (home-page "https://wiki.gnome.org/Apps/Sysprof")
12600 (synopsis "System-wide performance profiler for GNU/Linux")
12601 (description
12602 "Sysprof performs detailed, accurate, and fast CPU profiling of an entire
12603 GNU/Linux system including the kernel and all user-space applications. This
12604 helps find the function(s) in which a program spends most of its time.
12605
12606 It uses the kernel's built-in @code{ptrace} feature and handles shared
12607 libraries. Applications do not need to be recompiled--or even restarted.")
12608 (license license:gpl3+)))
12609
12610 (define-public gnome-builder
12611 (package
12612 (name "gnome-builder")
12613 (version "41.2")
12614 (source (origin
12615 (method url-fetch)
12616 (uri (string-append "mirror://gnome/sources/" name "/"
12617 (version-major version) "/"
12618 name "-" version ".tar.xz"))
12619 (sha256
12620 (base32
12621 "04p031i999dccbnlbysmr6f93x7dji7b559j6yhdsqbqgxb7ncan"))
12622 (patches
12623 (search-patches "gnome-builder-update-libportal.patch"))))
12624 (build-system meson-build-system)
12625 (arguments
12626 (list
12627 #:glib-or-gtk? #t ;To wrap binaries and compile schemas
12628 #:configure-flags
12629 #~(list "-Dnetwork_tests=false"
12630 ;; TODO: Enable all plugins...
12631 ;; Flatpak plugin wants libsoup 2
12632 "-Dplugin_flatpak=false"
12633 ;; ... except this one.
12634 "-Dplugin_update_manager=false")
12635 #:phases
12636 #~(modify-phases %standard-phases
12637 (add-after 'unpack 'patch-meson
12638 (lambda* (#:key inputs #:allow-other-keys)
12639 (substitute* "build-aux/meson/post_install.py"
12640 (("gtk-update-icon-cache") "true")
12641 (("update-desktop-database") "true"))
12642 (substitute* "src/libide/meson.build"
12643 (("/usr/lib") (string-append (assoc-ref inputs
12644 "python-pygobject")
12645 "/lib")))))
12646 (add-after 'configure 'fix-ninja
12647 (lambda _
12648 ;; #43296: meson(?) incorrectly assumes we want to link
12649 ;; this PIE against a static libselinux.
12650 (substitute* "build.ninja"
12651 (("libselinux\\.a") "libselinux.so"))))
12652 (add-before 'check 'pre-check
12653 (lambda _
12654 (system "Xvfb :1 &")
12655 (setenv "DISPLAY" ":1"))))))
12656 (inputs (list cmark
12657 clang
12658 devhelp-with-libsoup2
12659 glade3
12660 gspell
12661 gtk+
12662 json-glib
12663 jsonrpc-glib
12664 libdazzle
12665 libgit2-glib
12666 libpeas
12667 libportal
12668 libsoup-minimal-2
12669 llvm
12670 python
12671 python-pygobject
12672 sysprof
12673 template-glib
12674 vte
12675 webkitgtk-with-libsoup2))
12676 (propagated-inputs (list gtksourceview)) ; needed for settings
12677 (native-inputs (list desktop-file-utils ; for desktop-file-validate
12678 `(,glib "bin")
12679 gettext-minimal
12680 pkg-config
12681 python ; for meson scripts
12682 vala
12683 xorg-server-for-tests))
12684 (home-page "https://wiki.gnome.org/Apps/Builder")
12685 (synopsis "Toolsmith for GNOME-based applications")
12686 (description
12687 "Builder aims to be an integrated development environment (IDE) for
12688 writing GNOME-based software. It features fuzzy search, auto-completion,
12689 a mini code map, documentation browsing, Git integration, an integrated
12690 profiler via Sysprof, debugging support, and more.")
12691 (license license:gpl3+)))
12692
12693 (define-public komikku
12694 (package
12695 (name "komikku")
12696 (version "0.41.0")
12697 (source
12698 (origin
12699 (method git-fetch)
12700 (uri (git-reference
12701 (url "https://gitlab.com/valos/Komikku/")
12702 (commit (string-append "v" version))))
12703 (file-name (git-file-name name version))
12704 (sha256
12705 (base32
12706 "17r059srxrx26w40swy47pdpyigyjdczp8550g4rfh86qs3ld4il"))))
12707 (build-system meson-build-system)
12708 (arguments
12709 `(#:glib-or-gtk? #t
12710 #:phases
12711 (modify-phases %standard-phases
12712 (add-after 'unpack 'patch-sources
12713 (lambda _
12714 (substitute* "komikku/utils.py"
12715 (("from komikku\\.servers import get_servers_list")
12716 ;; code following that line should migrate old databases
12717 ;; but the line itself results in an import error
12718 "return data_dir_path"))))
12719 (add-after 'unpack 'skip-gtk-update-icon-cache
12720 (lambda _
12721 (substitute* "meson_post_install.py"
12722 (("gtk-update-icon-cache") (which "true")))
12723 #t))
12724 (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
12725 (lambda* (#:key outputs #:allow-other-keys)
12726 (let ((prog (string-append (assoc-ref outputs "out")
12727 "/bin/komikku")))
12728 (wrap-program prog
12729 `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
12730 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
12731 #t))))))
12732 (inputs
12733 (list gtk+
12734 libhandy
12735 libnotify
12736 libsecret
12737 python
12738 python-beautifulsoup4
12739 python-brotli
12740 python-cloudscraper
12741 python-dateparser
12742 python-keyring
12743 python-lxml
12744 python-magic
12745 python-natsort
12746 python-pillow
12747 python-pure-protobuf
12748 python-pycairo
12749 python-pygobject
12750 python-requests
12751 python-unidecode
12752 webkitgtk-with-libsoup2))
12753 (native-inputs
12754 (list desktop-file-utils
12755 gettext-minimal
12756 `(,glib "bin")
12757 gobject-introspection
12758 pkg-config))
12759 (home-page "https://gitlab.com/valos/Komikku")
12760 (synopsis "Manga reader for GNOME")
12761 (description "Komikku is an online/offline manga reader for GNOME,
12762 developed with the aim of being used with the Librem 5 phone.")
12763 (license license:gpl3+)))
12764
12765 (define-public libgda
12766 (package
12767 (name "libgda")
12768 (version "6.0.0")
12769 (source
12770 (origin
12771 (method url-fetch)
12772 (uri (string-append "mirror://gnome/sources/" name "/"
12773 (version-major+minor version) "/"
12774 name "-" version ".tar.xz"))
12775 (sha256
12776 (base32 "0w564z7krgjk19r39mi5qn4kggpdg9ggbyn9pb4aavb61r14npwr"))
12777 (patches (search-patches "libgda-cve-2021-39359.patch"
12778 "libgda-fix-build.patch"
12779 "libgda-fix-missing-initialization.patch"
12780 "libgda-skip-postgresql-tests.patch"))))
12781 (build-system meson-build-system)
12782 (native-inputs
12783 (list intltool
12784 iso-codes
12785 `(,glib "bin")
12786 gnome-common
12787 gettext-minimal
12788 gobject-introspection
12789 gtk-doc/stable
12790 pkg-config
12791 python
12792 vala
12793 yelp-tools))
12794 (inputs
12795 (list json-glib
12796 glib
12797 glade3
12798 gtk+
12799 libsecret
12800 libxslt
12801 openssl
12802 sqlite
12803 vala))
12804 (propagated-inputs
12805 (list libxml2)) ; required by libgda-5.0.pc
12806 (home-page "https://gitlab.gnome.org/GNOME/libgda")
12807 (synopsis "Uniform data access")
12808 (description
12809 "GNU Data Access (GDA) is an attempt to provide uniform access to
12810 different kinds of data sources (databases, information servers, mail spools,
12811 etc). It is a complete architecture that provides all you need to access
12812 your data.")
12813 (license license:lgpl2.1+)))
12814
12815 (define-public gtranslator
12816 (package
12817 (name "gtranslator")
12818 (version "42.0")
12819 (source (origin
12820 (method url-fetch)
12821 (uri (string-append "mirror://gnome/sources/" name "/"
12822 (version-major version) "/"
12823 name "-" version ".tar.xz"))
12824 (sha256
12825 (base32
12826 "0fzi48s3wz9mf6c1ndpkby83bgshgn2116nqjq31n1j3wszvqrra"))))
12827 (build-system meson-build-system)
12828 (arguments
12829 (list #:build-type "release" ;otherwise it tries to fetch stuff via git
12830 #:glib-or-gtk? #t
12831 #:phases
12832 #~(modify-phases %standard-phases
12833 (add-after 'unpack 'skip-gtk-update-icon-cache
12834 (lambda _
12835 (substitute* "build-aux/meson/meson_post_install.py"
12836 (("gtk-update-icon-cache") (which "true"))))))))
12837 (native-inputs
12838 (list `(,glib-next "bin")
12839 gettext-minimal
12840 itstool
12841 pkg-config))
12842 (inputs
12843 (list json-glib
12844 jsonrpc-glib
12845 gettext-minimal
12846 glib-next
12847 gsettings-desktop-schemas
12848 gspell
12849 libgda
12850 libhandy
12851 libsoup
12852 pango-next))
12853 (propagated-inputs
12854 (list gtksourceview-4)) ; required for source view
12855 (home-page "https://wiki.gnome.org/Apps/Gtranslator")
12856 (synopsis "Translation making program")
12857 (description
12858 "gtranslator is a quite comfortable gettext po/po.gz/(g)mo files editor
12859 for the GNOME 3.x platform with many features. It aims to be a very complete
12860 editing environment for translation issues within the GNU gettext/GNOME desktop
12861 world.")
12862 (license license:gpl3+)))
12863
12864
12865 (define-public ocrfeeder
12866 (package
12867 (name "ocrfeeder")
12868 (version "0.8.5")
12869 (source (origin
12870 (method url-fetch)
12871 (uri (string-append "mirror://gnome/sources/ocrfeeder/"
12872 (version-major+minor version) "/"
12873 "ocrfeeder-" version ".tar.xz"))
12874 (sha256
12875 (base32
12876 "1vaaphzk6zn7pp2x9scphdzlbsma910wnbhd9xry50nx95cjlgdh"))))
12877 (build-system gnu-build-system)
12878 (arguments
12879 `(#:phases
12880 (modify-phases %standard-phases
12881 (add-after
12882 'install 'wrap-program
12883 (lambda* (#:key outputs #:allow-other-keys)
12884 (let ((prog (string-append (assoc-ref outputs "out")
12885 "/bin/" "ocrfeeder"))
12886 (pylib (string-append (assoc-ref outputs "out")
12887 "/lib/python"
12888 ,(version-major+minor
12889 (package-version python))
12890 "/site-packages")))
12891 (wrap-program prog
12892 `("PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
12893 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
12894 (native-inputs
12895 `(("glib:bin" ,glib "bin") ; for glib-compile-resources
12896 ("gobject-introspection" ,gobject-introspection)
12897 ("gtk+:bin" ,gtk+ "bin") ; for gtk-update-icon-cache
12898 ("intltool" ,intltool)
12899 ("itstool" ,itstool)
12900 ("pkg-config" ,pkg-config)
12901 ("xmllint" ,libxml2)))
12902 (inputs
12903 `(("enchant" ,enchant)
12904 ("glib" ,glib)
12905 ("goocanvas" ,goocanvas)
12906 ("gtk" ,gtk+)
12907 ("gtkspell3" ,gtkspell3)
12908 ("libjpeg" ,libjpeg-turbo)
12909 ("libtiff" ,libtiff)
12910 ("libraw" ,libraw)
12911 ("ocrad" ,ocrad)
12912 ("python" ,python-wrapper)
12913 ("python-pygobject" ,python-pygobject)
12914 ("python-odfpy" ,python-odfpy)
12915 ("python-pillow" ,python-pillow)
12916 ("python-pyenchant" ,python-pyenchant)
12917 ("python-reportlab" ,python-reportlab)
12918 ("python-sane" ,python-sane)
12919 ("sane-backends" ,sane-backends)
12920 ("tesseract-ocr" ,tesseract-ocr)))
12921 (home-page "https://wiki.gnome.org/Apps/OCRFeeder")
12922 (synopsis "Complete OCR Suite")
12923 (description "OCRFeeder is a complete Optical Character Recognition and
12924 Document Analysis and Recognition program.")
12925 (license license:gpl3+)))
12926
12927 (define-public libadwaita
12928 (package
12929 (name "libadwaita")
12930 (version "1.2.rc")
12931 (source (origin
12932 (method url-fetch)
12933 (uri (string-append "mirror://gnome/sources/libadwaita/"
12934 (version-major+minor version) "/"
12935 "libadwaita-" version ".tar.xz"))
12936 (sha256
12937 (base32
12938 "1syg7fkpcsw0q6fy3g79myb9m9bvrnh3rjrm6g4bfg1pnlqf1w22"))))
12939 (build-system meson-build-system)
12940 (arguments
12941 `(#:phases
12942 (modify-phases %standard-phases
12943 (add-before 'check 'pre-check
12944 (lambda* (#:key inputs #:allow-other-keys)
12945 ;; Tests require a running X server.
12946 (system "Xvfb :1 &")
12947 (setenv "DISPLAY" ":1"))))))
12948 (native-inputs
12949 (list gettext-minimal
12950 `(,glib "bin")
12951 gobject-introspection
12952 gtk-doc/stable
12953 pkg-config
12954 sassc
12955 vala
12956 xorg-server-for-tests))
12957 (propagated-inputs
12958 (list gtk)) ;libadwaita-1.pc 'Requires' it
12959 (home-page "https://gnome.pages.gitlab.gnome.org/libadwaita/")
12960 (synopsis "Building blocks for GNOME applications")
12961 (description
12962 "@code{libadwaita} offers widgets and objects to build GNOME
12963 applications scaling from desktop workstations to mobile phones. It is the
12964 successor of @code{libhandy} for GTK4.")
12965 (license license:lgpl2.1+)))
12966
12967 (define-public gnome-power-manager
12968 (package
12969 (name "gnome-power-manager")
12970 (version "3.32.0")
12971 (source (origin
12972 (method url-fetch)
12973 (uri (string-append "mirror://gnome/sources/" name "/"
12974 (version-major+minor version) "/"
12975 name "-" version ".tar.xz"))
12976 (sha256
12977 (base32
12978 "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g"))))
12979 (build-system meson-build-system)
12980 (inputs
12981 (list upower gtk+ gsettings-desktop-schemas adwaita-icon-theme))
12982 (native-inputs
12983 (list desktop-file-utils
12984 `(,glib "bin") gettext-minimal pkg-config))
12985 (home-page "https://gitlab.gnome.org/GNOME/gnome-power-manager")
12986 (synopsis "Power management daemon for the GNOME desktop")
12987 (description "@code{gnome-power-manager} is a tool for viewing present and
12988 historical battery usage and related statistics.")
12989 (license license:gpl2)))
12990
12991 (define-public xffm+
12992 (package
12993 (name "xffm+")
12994 (version "0.94")
12995 (source (origin
12996 (method url-fetch)
12997 (uri (string-append "mirror://sourceforge/xffm/xffm+/xffm+-"
12998 version ".tar.bz2"))
12999 (sha256
13000 (base32
13001 "0gwbgmjzlgv9ba95cgaigjnc9njzi7qznhvzp0qrnnlq3nbcm1k1"))))
13002 (build-system cmake-build-system)
13003 (arguments
13004 `(#:tests? #f ; No tests exist
13005 #:configure-flags
13006 (let ((shared-mime-info (assoc-ref %build-inputs "shared-mime-info"))
13007 (out (assoc-ref %outputs "out")))
13008 (list (string-append "-DFREEDESKTOP_GLOBS=" shared-mime-info
13009 "/share/mime/globs")
13010 (string-append "-DFREEDESKTOP_ALIAS=" shared-mime-info
13011 "/share/mime/aliases")
13012 (string-append "-DFREEDESKTOP_ICONS=" shared-mime-info
13013 "/share/mime/generic-icons")
13014 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
13015 (string-append "-DPREFIX_BIN=" out "/bin")))
13016 #:phases
13017 (modify-phases %standard-phases
13018 (add-after 'unpack 'patch-installation-destination
13019 (lambda* (#:key outputs #:allow-other-keys)
13020 (substitute* "CMakeLists.txt"
13021 ;; This is done so we can override.
13022 (("^set.CMAKE_INSTALL_PREFIX") "set(QCMAKE_INSTALL_PREFIX")
13023 ;; This is done so we can override.
13024 (("`set.PREFIX_BIN") "set(QPREFIX_BIN")))))))
13025 (native-inputs
13026 (list cmake pkg-config intltool gnu-gettext))
13027 (inputs
13028 (list glib gtk+ libx11 libsm libxv libxaw libxcb libxkbfile
13029 shared-mime-info))
13030 (synopsis "File manager")
13031 (description "This package provides a graphical file manager.")
13032 (home-page "http://xffm.org/")
13033 (license license:gpl3+)
13034 (properties '((upstream-name . "xffm")))))